var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __commonJS = (cb, mod) => function __require2() {
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all7) => {
  for (var name2 in all7)
    __defProp(target, name2, { get: all7[name2], enumerable: true });
};
var __copyProps = (to2, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to2, key) && key !== except)
        __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to2;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// ../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js
var require_cjs12 = __commonJS({
  "../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js"(exports2, module2) {
    "use strict";
    var isMergeableObject = function isMergeableObject2(value) {
      return isNonNullObject(value) && !isSpecial(value);
    };
    function isNonNullObject(value) {
      return !!value && typeof value === "object";
    }
    function isSpecial(value) {
      var stringValue = Object.prototype.toString.call(value);
      return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value);
    }
    var canUseSymbol = typeof Symbol === "function" && Symbol.for;
    var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for("react.element") : 60103;
    function isReactElement(value) {
      return value.$$typeof === REACT_ELEMENT_TYPE;
    }
    function emptyTarget(val) {
      return Array.isArray(val) ? [] : {};
    }
    function cloneUnlessOtherwiseSpecified(value, options) {
      return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;
    }
    function defaultArrayMerge(target, source, options) {
      return target.concat(source).map(function(element) {
        return cloneUnlessOtherwiseSpecified(element, options);
      });
    }
    function getMergeFunction(key, options) {
      if (!options.customMerge) {
        return deepmerge;
      }
      var customMerge = options.customMerge(key);
      return typeof customMerge === "function" ? customMerge : deepmerge;
    }
    function getEnumerableOwnPropertySymbols(target) {
      return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) {
        return Object.propertyIsEnumerable.call(target, symbol);
      }) : [];
    }
    function getKeys(target) {
      return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));
    }
    function propertyIsOnObject(object, property) {
      try {
        return property in object;
      } catch (_3) {
        return false;
      }
    }
    function propertyIsUnsafe(target, key) {
      return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key));
    }
    function mergeObject(target, source, options) {
      var destination = {};
      if (options.isMergeableObject(target)) {
        getKeys(target).forEach(function(key) {
          destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
        });
      }
      getKeys(source).forEach(function(key) {
        if (propertyIsUnsafe(target, key)) {
          return;
        }
        if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
          destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
        } else {
          destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
        }
      });
      return destination;
    }
    function deepmerge(target, source, options) {
      options = options || {};
      options.arrayMerge = options.arrayMerge || defaultArrayMerge;
      options.isMergeableObject = options.isMergeableObject || isMergeableObject;
      options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
      var sourceIsArray = Array.isArray(source);
      var targetIsArray = Array.isArray(target);
      var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
      if (!sourceAndTargetTypesMatch) {
        return cloneUnlessOtherwiseSpecified(source, options);
      } else if (sourceIsArray) {
        return options.arrayMerge(target, source, options);
      } else {
        return mergeObject(target, source, options);
      }
    }
    deepmerge.all = function deepmergeAll(array, options) {
      if (!Array.isArray(array)) {
        throw new Error("first argument should be an array");
      }
      return array.reduce(function(prev, next) {
        return deepmerge(prev, next, options);
      }, {});
    };
    var deepmerge_1 = deepmerge;
    module2.exports = deepmerge_1;
  }
});

// src/index.ts
var index_exports = {};
__export(index_exports, {
  default: () => index_default
});
module.exports = __toCommonJS(index_exports);

// ../../node_modules/.pnpm/zod@3.22.4/node_modules/zod/lib/index.mjs
var util;
(function(util4) {
  util4.assertEqual = (val) => val;
  function assertIs(_arg) {
  }
  util4.assertIs = assertIs;
  function assertNever(_x) {
    throw new Error();
  }
  util4.assertNever = assertNever;
  util4.arrayToEnum = (items) => {
    const obj = {};
    for (const item of items) {
      obj[item] = item;
    }
    return obj;
  };
  util4.getValidEnumValues = (obj) => {
    const validKeys = util4.objectKeys(obj).filter((k3) => typeof obj[obj[k3]] !== "number");
    const filtered = {};
    for (const k3 of validKeys) {
      filtered[k3] = obj[k3];
    }
    return util4.objectValues(filtered);
  };
  util4.objectValues = (obj) => {
    return util4.objectKeys(obj).map(function(e2) {
      return obj[e2];
    });
  };
  util4.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => {
    const keys = [];
    for (const key in object) {
      if (Object.prototype.hasOwnProperty.call(object, key)) {
        keys.push(key);
      }
    }
    return keys;
  };
  util4.find = (arr, checker) => {
    for (const item of arr) {
      if (checker(item))
        return item;
    }
    return void 0;
  };
  util4.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && isFinite(val) && Math.floor(val) === val;
  function joinValues(array, separator = " | ") {
    return array.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator);
  }
  util4.joinValues = joinValues;
  util4.jsonStringifyReplacer = (_3, value) => {
    if (typeof value === "bigint") {
      return value.toString();
    }
    return value;
  };
})(util || (util = {}));
var objectUtil;
(function(objectUtil2) {
  objectUtil2.mergeShapes = (first, second) => {
    return {
      ...first,
      ...second
      // second overwrites first
    };
  };
})(objectUtil || (objectUtil = {}));
var ZodParsedType = util.arrayToEnum([
  "string",
  "nan",
  "number",
  "integer",
  "float",
  "boolean",
  "date",
  "bigint",
  "symbol",
  "function",
  "undefined",
  "null",
  "array",
  "object",
  "unknown",
  "promise",
  "void",
  "never",
  "map",
  "set"
]);
var getParsedType = (data) => {
  const t9 = typeof data;
  switch (t9) {
    case "undefined":
      return ZodParsedType.undefined;
    case "string":
      return ZodParsedType.string;
    case "number":
      return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
    case "boolean":
      return ZodParsedType.boolean;
    case "function":
      return ZodParsedType.function;
    case "bigint":
      return ZodParsedType.bigint;
    case "symbol":
      return ZodParsedType.symbol;
    case "object":
      if (Array.isArray(data)) {
        return ZodParsedType.array;
      }
      if (data === null) {
        return ZodParsedType.null;
      }
      if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") {
        return ZodParsedType.promise;
      }
      if (typeof Map !== "undefined" && data instanceof Map) {
        return ZodParsedType.map;
      }
      if (typeof Set !== "undefined" && data instanceof Set) {
        return ZodParsedType.set;
      }
      if (typeof Date !== "undefined" && data instanceof Date) {
        return ZodParsedType.date;
      }
      return ZodParsedType.object;
    default:
      return ZodParsedType.unknown;
  }
};
var ZodIssueCode = util.arrayToEnum([
  "invalid_type",
  "invalid_literal",
  "custom",
  "invalid_union",
  "invalid_union_discriminator",
  "invalid_enum_value",
  "unrecognized_keys",
  "invalid_arguments",
  "invalid_return_type",
  "invalid_date",
  "invalid_string",
  "too_small",
  "too_big",
  "invalid_intersection_types",
  "not_multiple_of",
  "not_finite"
]);
var quotelessJson = (obj) => {
  const json = JSON.stringify(obj, null, 2);
  return json.replace(/"([^"]+)":/g, "$1:");
};
var ZodError = class extends Error {
  constructor(issues) {
    super();
    this.issues = [];
    this.addIssue = (sub) => {
      this.issues = [...this.issues, sub];
    };
    this.addIssues = (subs = []) => {
      this.issues = [...this.issues, ...subs];
    };
    const actualProto = new.target.prototype;
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(this, actualProto);
    } else {
      this.__proto__ = actualProto;
    }
    this.name = "ZodError";
    this.issues = issues;
  }
  get errors() {
    return this.issues;
  }
  format(_mapper) {
    const mapper = _mapper || function(issue) {
      return issue.message;
    };
    const fieldErrors = { _errors: [] };
    const processError = (error) => {
      for (const issue of error.issues) {
        if (issue.code === "invalid_union") {
          issue.unionErrors.map(processError);
        } else if (issue.code === "invalid_return_type") {
          processError(issue.returnTypeError);
        } else if (issue.code === "invalid_arguments") {
          processError(issue.argumentsError);
        } else if (issue.path.length === 0) {
          fieldErrors._errors.push(mapper(issue));
        } else {
          let curr = fieldErrors;
          let i3 = 0;
          while (i3 < issue.path.length) {
            const el = issue.path[i3];
            const terminal = i3 === issue.path.length - 1;
            if (!terminal) {
              curr[el] = curr[el] || { _errors: [] };
            } else {
              curr[el] = curr[el] || { _errors: [] };
              curr[el]._errors.push(mapper(issue));
            }
            curr = curr[el];
            i3++;
          }
        }
      }
    };
    processError(this);
    return fieldErrors;
  }
  toString() {
    return this.message;
  }
  get message() {
    return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
  }
  get isEmpty() {
    return this.issues.length === 0;
  }
  flatten(mapper = (issue) => issue.message) {
    const fieldErrors = {};
    const formErrors = [];
    for (const sub of this.issues) {
      if (sub.path.length > 0) {
        fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
        fieldErrors[sub.path[0]].push(mapper(sub));
      } else {
        formErrors.push(mapper(sub));
      }
    }
    return { formErrors, fieldErrors };
  }
  get formErrors() {
    return this.flatten();
  }
};
ZodError.create = (issues) => {
  const error = new ZodError(issues);
  return error;
};
var errorMap = (issue, _ctx) => {
  let message;
  switch (issue.code) {
    case ZodIssueCode.invalid_type:
      if (issue.received === ZodParsedType.undefined) {
        message = "Required";
      } else {
        message = `Expected ${issue.expected}, received ${issue.received}`;
      }
      break;
    case ZodIssueCode.invalid_literal:
      message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;
      break;
    case ZodIssueCode.unrecognized_keys:
      message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`;
      break;
    case ZodIssueCode.invalid_union:
      message = `Invalid input`;
      break;
    case ZodIssueCode.invalid_union_discriminator:
      message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;
      break;
    case ZodIssueCode.invalid_enum_value:
      message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;
      break;
    case ZodIssueCode.invalid_arguments:
      message = `Invalid function arguments`;
      break;
    case ZodIssueCode.invalid_return_type:
      message = `Invalid function return type`;
      break;
    case ZodIssueCode.invalid_date:
      message = `Invalid date`;
      break;
    case ZodIssueCode.invalid_string:
      if (typeof issue.validation === "object") {
        if ("includes" in issue.validation) {
          message = `Invalid input: must include "${issue.validation.includes}"`;
          if (typeof issue.validation.position === "number") {
            message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
          }
        } else if ("startsWith" in issue.validation) {
          message = `Invalid input: must start with "${issue.validation.startsWith}"`;
        } else if ("endsWith" in issue.validation) {
          message = `Invalid input: must end with "${issue.validation.endsWith}"`;
        } else {
          util.assertNever(issue.validation);
        }
      } else if (issue.validation !== "regex") {
        message = `Invalid ${issue.validation}`;
      } else {
        message = "Invalid";
      }
      break;
    case ZodIssueCode.too_small:
      if (issue.type === "array")
        message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
      else if (issue.type === "string")
        message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
      else if (issue.type === "number")
        message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
      else if (issue.type === "date")
        message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
      else
        message = "Invalid input";
      break;
    case ZodIssueCode.too_big:
      if (issue.type === "array")
        message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
      else if (issue.type === "string")
        message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
      else if (issue.type === "number")
        message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
      else if (issue.type === "bigint")
        message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
      else if (issue.type === "date")
        message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
      else
        message = "Invalid input";
      break;
    case ZodIssueCode.custom:
      message = `Invalid input`;
      break;
    case ZodIssueCode.invalid_intersection_types:
      message = `Intersection results could not be merged`;
      break;
    case ZodIssueCode.not_multiple_of:
      message = `Number must be a multiple of ${issue.multipleOf}`;
      break;
    case ZodIssueCode.not_finite:
      message = "Number must be finite";
      break;
    default:
      message = _ctx.defaultError;
      util.assertNever(issue);
  }
  return { message };
};
var overrideErrorMap = errorMap;
function setErrorMap(map2) {
  overrideErrorMap = map2;
}
function getErrorMap() {
  return overrideErrorMap;
}
var makeIssue = (params) => {
  const { data, path: path3, errorMaps, issueData } = params;
  const fullPath = [...path3, ...issueData.path || []];
  const fullIssue = {
    ...issueData,
    path: fullPath
  };
  let errorMessage = "";
  const maps = errorMaps.filter((m2) => !!m2).slice().reverse();
  for (const map2 of maps) {
    errorMessage = map2(fullIssue, { data, defaultError: errorMessage }).message;
  }
  return {
    ...issueData,
    path: fullPath,
    message: issueData.message || errorMessage
  };
};
var EMPTY_PATH = [];
function addIssueToContext(ctx, issueData) {
  const issue = makeIssue({
    issueData,
    data: ctx.data,
    path: ctx.path,
    errorMaps: [
      ctx.common.contextualErrorMap,
      ctx.schemaErrorMap,
      getErrorMap(),
      errorMap
      // then global default map
    ].filter((x3) => !!x3)
  });
  ctx.common.issues.push(issue);
}
var ParseStatus = class _ParseStatus {
  constructor() {
    this.value = "valid";
  }
  dirty() {
    if (this.value === "valid")
      this.value = "dirty";
  }
  abort() {
    if (this.value !== "aborted")
      this.value = "aborted";
  }
  static mergeArray(status, results) {
    const arrayValue = [];
    for (const s2 of results) {
      if (s2.status === "aborted")
        return INVALID;
      if (s2.status === "dirty")
        status.dirty();
      arrayValue.push(s2.value);
    }
    return { status: status.value, value: arrayValue };
  }
  static async mergeObjectAsync(status, pairs) {
    const syncPairs = [];
    for (const pair of pairs) {
      syncPairs.push({
        key: await pair.key,
        value: await pair.value
      });
    }
    return _ParseStatus.mergeObjectSync(status, syncPairs);
  }
  static mergeObjectSync(status, pairs) {
    const finalObject = {};
    for (const pair of pairs) {
      const { key, value } = pair;
      if (key.status === "aborted")
        return INVALID;
      if (value.status === "aborted")
        return INVALID;
      if (key.status === "dirty")
        status.dirty();
      if (value.status === "dirty")
        status.dirty();
      if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) {
        finalObject[key.value] = value.value;
      }
    }
    return { status: status.value, value: finalObject };
  }
};
var INVALID = Object.freeze({
  status: "aborted"
});
var DIRTY = (value) => ({ status: "dirty", value });
var OK = (value) => ({ status: "valid", value });
var isAborted = (x3) => x3.status === "aborted";
var isDirty = (x3) => x3.status === "dirty";
var isValid = (x3) => x3.status === "valid";
var isAsync = (x3) => typeof Promise !== "undefined" && x3 instanceof Promise;
var errorUtil;
(function(errorUtil2) {
  errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {};
  errorUtil2.toString = (message) => typeof message === "string" ? message : message === null || message === void 0 ? void 0 : message.message;
})(errorUtil || (errorUtil = {}));
var ParseInputLazyPath = class {
  constructor(parent, value, path3, key) {
    this._cachedPath = [];
    this.parent = parent;
    this.data = value;
    this._path = path3;
    this._key = key;
  }
  get path() {
    if (!this._cachedPath.length) {
      if (this._key instanceof Array) {
        this._cachedPath.push(...this._path, ...this._key);
      } else {
        this._cachedPath.push(...this._path, this._key);
      }
    }
    return this._cachedPath;
  }
};
var handleResult = (ctx, result) => {
  if (isValid(result)) {
    return { success: true, data: result.value };
  } else {
    if (!ctx.common.issues.length) {
      throw new Error("Validation failed but no issues detected.");
    }
    return {
      success: false,
      get error() {
        if (this._error)
          return this._error;
        const error = new ZodError(ctx.common.issues);
        this._error = error;
        return this._error;
      }
    };
  }
};
function processCreateParams(params) {
  if (!params)
    return {};
  const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;
  if (errorMap2 && (invalid_type_error || required_error)) {
    throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
  }
  if (errorMap2)
    return { errorMap: errorMap2, description };
  const customMap = (iss, ctx) => {
    if (iss.code !== "invalid_type")
      return { message: ctx.defaultError };
    if (typeof ctx.data === "undefined") {
      return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };
    }
    return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };
  };
  return { errorMap: customMap, description };
}
var ZodType = class {
  constructor(def) {
    this.spa = this.safeParseAsync;
    this._def = def;
    this.parse = this.parse.bind(this);
    this.safeParse = this.safeParse.bind(this);
    this.parseAsync = this.parseAsync.bind(this);
    this.safeParseAsync = this.safeParseAsync.bind(this);
    this.spa = this.spa.bind(this);
    this.refine = this.refine.bind(this);
    this.refinement = this.refinement.bind(this);
    this.superRefine = this.superRefine.bind(this);
    this.optional = this.optional.bind(this);
    this.nullable = this.nullable.bind(this);
    this.nullish = this.nullish.bind(this);
    this.array = this.array.bind(this);
    this.promise = this.promise.bind(this);
    this.or = this.or.bind(this);
    this.and = this.and.bind(this);
    this.transform = this.transform.bind(this);
    this.brand = this.brand.bind(this);
    this.default = this.default.bind(this);
    this.catch = this.catch.bind(this);
    this.describe = this.describe.bind(this);
    this.pipe = this.pipe.bind(this);
    this.readonly = this.readonly.bind(this);
    this.isNullable = this.isNullable.bind(this);
    this.isOptional = this.isOptional.bind(this);
  }
  get description() {
    return this._def.description;
  }
  _getType(input) {
    return getParsedType(input.data);
  }
  _getOrReturnCtx(input, ctx) {
    return ctx || {
      common: input.parent.common,
      data: input.data,
      parsedType: getParsedType(input.data),
      schemaErrorMap: this._def.errorMap,
      path: input.path,
      parent: input.parent
    };
  }
  _processInputParams(input) {
    return {
      status: new ParseStatus(),
      ctx: {
        common: input.parent.common,
        data: input.data,
        parsedType: getParsedType(input.data),
        schemaErrorMap: this._def.errorMap,
        path: input.path,
        parent: input.parent
      }
    };
  }
  _parseSync(input) {
    const result = this._parse(input);
    if (isAsync(result)) {
      throw new Error("Synchronous parse encountered promise.");
    }
    return result;
  }
  _parseAsync(input) {
    const result = this._parse(input);
    return Promise.resolve(result);
  }
  parse(data, params) {
    const result = this.safeParse(data, params);
    if (result.success)
      return result.data;
    throw result.error;
  }
  safeParse(data, params) {
    var _a4;
    const ctx = {
      common: {
        issues: [],
        async: (_a4 = params === null || params === void 0 ? void 0 : params.async) !== null && _a4 !== void 0 ? _a4 : false,
        contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap
      },
      path: (params === null || params === void 0 ? void 0 : params.path) || [],
      schemaErrorMap: this._def.errorMap,
      parent: null,
      data,
      parsedType: getParsedType(data)
    };
    const result = this._parseSync({ data, path: ctx.path, parent: ctx });
    return handleResult(ctx, result);
  }
  async parseAsync(data, params) {
    const result = await this.safeParseAsync(data, params);
    if (result.success)
      return result.data;
    throw result.error;
  }
  async safeParseAsync(data, params) {
    const ctx = {
      common: {
        issues: [],
        contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,
        async: true
      },
      path: (params === null || params === void 0 ? void 0 : params.path) || [],
      schemaErrorMap: this._def.errorMap,
      parent: null,
      data,
      parsedType: getParsedType(data)
    };
    const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });
    const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
    return handleResult(ctx, result);
  }
  refine(check, message) {
    const getIssueProperties = (val) => {
      if (typeof message === "string" || typeof message === "undefined") {
        return { message };
      } else if (typeof message === "function") {
        return message(val);
      } else {
        return message;
      }
    };
    return this._refinement((val, ctx) => {
      const result = check(val);
      const setError = () => ctx.addIssue({
        code: ZodIssueCode.custom,
        ...getIssueProperties(val)
      });
      if (typeof Promise !== "undefined" && result instanceof Promise) {
        return result.then((data) => {
          if (!data) {
            setError();
            return false;
          } else {
            return true;
          }
        });
      }
      if (!result) {
        setError();
        return false;
      } else {
        return true;
      }
    });
  }
  refinement(check, refinementData) {
    return this._refinement((val, ctx) => {
      if (!check(val)) {
        ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData);
        return false;
      } else {
        return true;
      }
    });
  }
  _refinement(refinement) {
    return new ZodEffects({
      schema: this,
      typeName: ZodFirstPartyTypeKind.ZodEffects,
      effect: { type: "refinement", refinement }
    });
  }
  superRefine(refinement) {
    return this._refinement(refinement);
  }
  optional() {
    return ZodOptional.create(this, this._def);
  }
  nullable() {
    return ZodNullable.create(this, this._def);
  }
  nullish() {
    return this.nullable().optional();
  }
  array() {
    return ZodArray.create(this, this._def);
  }
  promise() {
    return ZodPromise.create(this, this._def);
  }
  or(option2) {
    return ZodUnion.create([this, option2], this._def);
  }
  and(incoming) {
    return ZodIntersection.create(this, incoming, this._def);
  }
  transform(transform) {
    return new ZodEffects({
      ...processCreateParams(this._def),
      schema: this,
      typeName: ZodFirstPartyTypeKind.ZodEffects,
      effect: { type: "transform", transform }
    });
  }
  default(def) {
    const defaultValueFunc = typeof def === "function" ? def : () => def;
    return new ZodDefault({
      ...processCreateParams(this._def),
      innerType: this,
      defaultValue: defaultValueFunc,
      typeName: ZodFirstPartyTypeKind.ZodDefault
    });
  }
  brand() {
    return new ZodBranded({
      typeName: ZodFirstPartyTypeKind.ZodBranded,
      type: this,
      ...processCreateParams(this._def)
    });
  }
  catch(def) {
    const catchValueFunc = typeof def === "function" ? def : () => def;
    return new ZodCatch({
      ...processCreateParams(this._def),
      innerType: this,
      catchValue: catchValueFunc,
      typeName: ZodFirstPartyTypeKind.ZodCatch
    });
  }
  describe(description) {
    const This = this.constructor;
    return new This({
      ...this._def,
      description
    });
  }
  pipe(target) {
    return ZodPipeline.create(this, target);
  }
  readonly() {
    return ZodReadonly.create(this);
  }
  isOptional() {
    return this.safeParse(void 0).success;
  }
  isNullable() {
    return this.safeParse(null).success;
  }
};
var cuidRegex = /^c[^\s-]{8,}$/i;
var cuid2Regex = /^[a-z][a-z0-9]*$/;
var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;
var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
var _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
var emojiRegex;
var ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;
var ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;
var datetimeRegex = (args) => {
  if (args.precision) {
    if (args.offset) {
      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`);
    } else {
      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`);
    }
  } else if (args.precision === 0) {
    if (args.offset) {
      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$`);
    } else {
      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$`);
    }
  } else {
    if (args.offset) {
      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$`);
    } else {
      return new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$`);
    }
  }
};
function isValidIP(ip, version) {
  if ((version === "v4" || !version) && ipv4Regex.test(ip)) {
    return true;
  }
  if ((version === "v6" || !version) && ipv6Regex.test(ip)) {
    return true;
  }
  return false;
}
var ZodString = class _ZodString extends ZodType {
  _parse(input) {
    if (this._def.coerce) {
      input.data = String(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.string) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(
        ctx2,
        {
          code: ZodIssueCode.invalid_type,
          expected: ZodParsedType.string,
          received: ctx2.parsedType
        }
        //
      );
      return INVALID;
    }
    const status = new ParseStatus();
    let ctx = void 0;
    for (const check of this._def.checks) {
      if (check.kind === "min") {
        if (input.data.length < check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            minimum: check.value,
            type: "string",
            inclusive: true,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        if (input.data.length > check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            maximum: check.value,
            type: "string",
            inclusive: true,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "length") {
        const tooBig = input.data.length > check.value;
        const tooSmall = input.data.length < check.value;
        if (tooBig || tooSmall) {
          ctx = this._getOrReturnCtx(input, ctx);
          if (tooBig) {
            addIssueToContext(ctx, {
              code: ZodIssueCode.too_big,
              maximum: check.value,
              type: "string",
              inclusive: true,
              exact: true,
              message: check.message
            });
          } else if (tooSmall) {
            addIssueToContext(ctx, {
              code: ZodIssueCode.too_small,
              minimum: check.value,
              type: "string",
              inclusive: true,
              exact: true,
              message: check.message
            });
          }
          status.dirty();
        }
      } else if (check.kind === "email") {
        if (!emailRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "email",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "emoji") {
        if (!emojiRegex) {
          emojiRegex = new RegExp(_emojiRegex, "u");
        }
        if (!emojiRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "emoji",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "uuid") {
        if (!uuidRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "uuid",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "cuid") {
        if (!cuidRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "cuid",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "cuid2") {
        if (!cuid2Regex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "cuid2",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "ulid") {
        if (!ulidRegex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "ulid",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "url") {
        try {
          new URL(input.data);
        } catch (_a4) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "url",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "regex") {
        check.regex.lastIndex = 0;
        const testResult = check.regex.test(input.data);
        if (!testResult) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "regex",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "trim") {
        input.data = input.data.trim();
      } else if (check.kind === "includes") {
        if (!input.data.includes(check.value, check.position)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: { includes: check.value, position: check.position },
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "toLowerCase") {
        input.data = input.data.toLowerCase();
      } else if (check.kind === "toUpperCase") {
        input.data = input.data.toUpperCase();
      } else if (check.kind === "startsWith") {
        if (!input.data.startsWith(check.value)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: { startsWith: check.value },
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "endsWith") {
        if (!input.data.endsWith(check.value)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: { endsWith: check.value },
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "datetime") {
        const regex = datetimeRegex(check);
        if (!regex.test(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_string,
            validation: "datetime",
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "ip") {
        if (!isValidIP(input.data, check.version)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            validation: "ip",
            code: ZodIssueCode.invalid_string,
            message: check.message
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return { status: status.value, value: input.data };
  }
  _regex(regex, validation, message) {
    return this.refinement((data) => regex.test(data), {
      validation,
      code: ZodIssueCode.invalid_string,
      ...errorUtil.errToObj(message)
    });
  }
  _addCheck(check) {
    return new _ZodString({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  email(message) {
    return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) });
  }
  url(message) {
    return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) });
  }
  emoji(message) {
    return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) });
  }
  uuid(message) {
    return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) });
  }
  cuid(message) {
    return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
  }
  cuid2(message) {
    return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) });
  }
  ulid(message) {
    return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) });
  }
  ip(options) {
    return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) });
  }
  datetime(options) {
    var _a4;
    if (typeof options === "string") {
      return this._addCheck({
        kind: "datetime",
        precision: null,
        offset: false,
        message: options
      });
    }
    return this._addCheck({
      kind: "datetime",
      precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
      offset: (_a4 = options === null || options === void 0 ? void 0 : options.offset) !== null && _a4 !== void 0 ? _a4 : false,
      ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
    });
  }
  regex(regex, message) {
    return this._addCheck({
      kind: "regex",
      regex,
      ...errorUtil.errToObj(message)
    });
  }
  includes(value, options) {
    return this._addCheck({
      kind: "includes",
      value,
      position: options === null || options === void 0 ? void 0 : options.position,
      ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
    });
  }
  startsWith(value, message) {
    return this._addCheck({
      kind: "startsWith",
      value,
      ...errorUtil.errToObj(message)
    });
  }
  endsWith(value, message) {
    return this._addCheck({
      kind: "endsWith",
      value,
      ...errorUtil.errToObj(message)
    });
  }
  min(minLength, message) {
    return this._addCheck({
      kind: "min",
      value: minLength,
      ...errorUtil.errToObj(message)
    });
  }
  max(maxLength, message) {
    return this._addCheck({
      kind: "max",
      value: maxLength,
      ...errorUtil.errToObj(message)
    });
  }
  length(len, message) {
    return this._addCheck({
      kind: "length",
      value: len,
      ...errorUtil.errToObj(message)
    });
  }
  /**
   * @deprecated Use z.string().min(1) instead.
   * @see {@link ZodString.min}
   */
  nonempty(message) {
    return this.min(1, errorUtil.errToObj(message));
  }
  trim() {
    return new _ZodString({
      ...this._def,
      checks: [...this._def.checks, { kind: "trim" }]
    });
  }
  toLowerCase() {
    return new _ZodString({
      ...this._def,
      checks: [...this._def.checks, { kind: "toLowerCase" }]
    });
  }
  toUpperCase() {
    return new _ZodString({
      ...this._def,
      checks: [...this._def.checks, { kind: "toUpperCase" }]
    });
  }
  get isDatetime() {
    return !!this._def.checks.find((ch) => ch.kind === "datetime");
  }
  get isEmail() {
    return !!this._def.checks.find((ch) => ch.kind === "email");
  }
  get isURL() {
    return !!this._def.checks.find((ch) => ch.kind === "url");
  }
  get isEmoji() {
    return !!this._def.checks.find((ch) => ch.kind === "emoji");
  }
  get isUUID() {
    return !!this._def.checks.find((ch) => ch.kind === "uuid");
  }
  get isCUID() {
    return !!this._def.checks.find((ch) => ch.kind === "cuid");
  }
  get isCUID2() {
    return !!this._def.checks.find((ch) => ch.kind === "cuid2");
  }
  get isULID() {
    return !!this._def.checks.find((ch) => ch.kind === "ulid");
  }
  get isIP() {
    return !!this._def.checks.find((ch) => ch.kind === "ip");
  }
  get minLength() {
    let min = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min === null || ch.value > min)
          min = ch.value;
      }
    }
    return min;
  }
  get maxLength() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2;
  }
};
ZodString.create = (params) => {
  var _a4;
  return new ZodString({
    checks: [],
    typeName: ZodFirstPartyTypeKind.ZodString,
    coerce: (_a4 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a4 !== void 0 ? _a4 : false,
    ...processCreateParams(params)
  });
};
function floatSafeRemainder(val, step) {
  const valDecCount = (val.toString().split(".")[1] || "").length;
  const stepDecCount = (step.toString().split(".")[1] || "").length;
  const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;
  const valInt = parseInt(val.toFixed(decCount).replace(".", ""));
  const stepInt = parseInt(step.toFixed(decCount).replace(".", ""));
  return valInt % stepInt / Math.pow(10, decCount);
}
var ZodNumber = class _ZodNumber extends ZodType {
  constructor() {
    super(...arguments);
    this.min = this.gte;
    this.max = this.lte;
    this.step = this.multipleOf;
  }
  _parse(input) {
    if (this._def.coerce) {
      input.data = Number(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.number) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.number,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    let ctx = void 0;
    const status = new ParseStatus();
    for (const check of this._def.checks) {
      if (check.kind === "int") {
        if (!util.isInteger(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.invalid_type,
            expected: "integer",
            received: "float",
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "min") {
        const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
        if (tooSmall) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            minimum: check.value,
            type: "number",
            inclusive: check.inclusive,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
        if (tooBig) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            maximum: check.value,
            type: "number",
            inclusive: check.inclusive,
            exact: false,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "multipleOf") {
        if (floatSafeRemainder(input.data, check.value) !== 0) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.not_multiple_of,
            multipleOf: check.value,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "finite") {
        if (!Number.isFinite(input.data)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.not_finite,
            message: check.message
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return { status: status.value, value: input.data };
  }
  gte(value, message) {
    return this.setLimit("min", value, true, errorUtil.toString(message));
  }
  gt(value, message) {
    return this.setLimit("min", value, false, errorUtil.toString(message));
  }
  lte(value, message) {
    return this.setLimit("max", value, true, errorUtil.toString(message));
  }
  lt(value, message) {
    return this.setLimit("max", value, false, errorUtil.toString(message));
  }
  setLimit(kind, value, inclusive, message) {
    return new _ZodNumber({
      ...this._def,
      checks: [
        ...this._def.checks,
        {
          kind,
          value,
          inclusive,
          message: errorUtil.toString(message)
        }
      ]
    });
  }
  _addCheck(check) {
    return new _ZodNumber({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  int(message) {
    return this._addCheck({
      kind: "int",
      message: errorUtil.toString(message)
    });
  }
  positive(message) {
    return this._addCheck({
      kind: "min",
      value: 0,
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  negative(message) {
    return this._addCheck({
      kind: "max",
      value: 0,
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  nonpositive(message) {
    return this._addCheck({
      kind: "max",
      value: 0,
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  nonnegative(message) {
    return this._addCheck({
      kind: "min",
      value: 0,
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  multipleOf(value, message) {
    return this._addCheck({
      kind: "multipleOf",
      value,
      message: errorUtil.toString(message)
    });
  }
  finite(message) {
    return this._addCheck({
      kind: "finite",
      message: errorUtil.toString(message)
    });
  }
  safe(message) {
    return this._addCheck({
      kind: "min",
      inclusive: true,
      value: Number.MIN_SAFE_INTEGER,
      message: errorUtil.toString(message)
    })._addCheck({
      kind: "max",
      inclusive: true,
      value: Number.MAX_SAFE_INTEGER,
      message: errorUtil.toString(message)
    });
  }
  get minValue() {
    let min = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min === null || ch.value > min)
          min = ch.value;
      }
    }
    return min;
  }
  get maxValue() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2;
  }
  get isInt() {
    return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
  }
  get isFinite() {
    let max2 = null, min = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
        return true;
      } else if (ch.kind === "min") {
        if (min === null || ch.value > min)
          min = ch.value;
      } else if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return Number.isFinite(min) && Number.isFinite(max2);
  }
};
ZodNumber.create = (params) => {
  return new ZodNumber({
    checks: [],
    typeName: ZodFirstPartyTypeKind.ZodNumber,
    coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
    ...processCreateParams(params)
  });
};
var ZodBigInt = class _ZodBigInt extends ZodType {
  constructor() {
    super(...arguments);
    this.min = this.gte;
    this.max = this.lte;
  }
  _parse(input) {
    if (this._def.coerce) {
      input.data = BigInt(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.bigint) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.bigint,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    let ctx = void 0;
    const status = new ParseStatus();
    for (const check of this._def.checks) {
      if (check.kind === "min") {
        const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;
        if (tooSmall) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            type: "bigint",
            minimum: check.value,
            inclusive: check.inclusive,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;
        if (tooBig) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            type: "bigint",
            maximum: check.value,
            inclusive: check.inclusive,
            message: check.message
          });
          status.dirty();
        }
      } else if (check.kind === "multipleOf") {
        if (input.data % check.value !== BigInt(0)) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.not_multiple_of,
            multipleOf: check.value,
            message: check.message
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return { status: status.value, value: input.data };
  }
  gte(value, message) {
    return this.setLimit("min", value, true, errorUtil.toString(message));
  }
  gt(value, message) {
    return this.setLimit("min", value, false, errorUtil.toString(message));
  }
  lte(value, message) {
    return this.setLimit("max", value, true, errorUtil.toString(message));
  }
  lt(value, message) {
    return this.setLimit("max", value, false, errorUtil.toString(message));
  }
  setLimit(kind, value, inclusive, message) {
    return new _ZodBigInt({
      ...this._def,
      checks: [
        ...this._def.checks,
        {
          kind,
          value,
          inclusive,
          message: errorUtil.toString(message)
        }
      ]
    });
  }
  _addCheck(check) {
    return new _ZodBigInt({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  positive(message) {
    return this._addCheck({
      kind: "min",
      value: BigInt(0),
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  negative(message) {
    return this._addCheck({
      kind: "max",
      value: BigInt(0),
      inclusive: false,
      message: errorUtil.toString(message)
    });
  }
  nonpositive(message) {
    return this._addCheck({
      kind: "max",
      value: BigInt(0),
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  nonnegative(message) {
    return this._addCheck({
      kind: "min",
      value: BigInt(0),
      inclusive: true,
      message: errorUtil.toString(message)
    });
  }
  multipleOf(value, message) {
    return this._addCheck({
      kind: "multipleOf",
      value,
      message: errorUtil.toString(message)
    });
  }
  get minValue() {
    let min = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min === null || ch.value > min)
          min = ch.value;
      }
    }
    return min;
  }
  get maxValue() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2;
  }
};
ZodBigInt.create = (params) => {
  var _a4;
  return new ZodBigInt({
    checks: [],
    typeName: ZodFirstPartyTypeKind.ZodBigInt,
    coerce: (_a4 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a4 !== void 0 ? _a4 : false,
    ...processCreateParams(params)
  });
};
var ZodBoolean = class extends ZodType {
  _parse(input) {
    if (this._def.coerce) {
      input.data = Boolean(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.boolean) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.boolean,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
};
ZodBoolean.create = (params) => {
  return new ZodBoolean({
    typeName: ZodFirstPartyTypeKind.ZodBoolean,
    coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
    ...processCreateParams(params)
  });
};
var ZodDate = class _ZodDate extends ZodType {
  _parse(input) {
    if (this._def.coerce) {
      input.data = new Date(input.data);
    }
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.date) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.date,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    if (isNaN(input.data.getTime())) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_date
      });
      return INVALID;
    }
    const status = new ParseStatus();
    let ctx = void 0;
    for (const check of this._def.checks) {
      if (check.kind === "min") {
        if (input.data.getTime() < check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_small,
            message: check.message,
            inclusive: true,
            exact: false,
            minimum: check.value,
            type: "date"
          });
          status.dirty();
        }
      } else if (check.kind === "max") {
        if (input.data.getTime() > check.value) {
          ctx = this._getOrReturnCtx(input, ctx);
          addIssueToContext(ctx, {
            code: ZodIssueCode.too_big,
            message: check.message,
            inclusive: true,
            exact: false,
            maximum: check.value,
            type: "date"
          });
          status.dirty();
        }
      } else {
        util.assertNever(check);
      }
    }
    return {
      status: status.value,
      value: new Date(input.data.getTime())
    };
  }
  _addCheck(check) {
    return new _ZodDate({
      ...this._def,
      checks: [...this._def.checks, check]
    });
  }
  min(minDate, message) {
    return this._addCheck({
      kind: "min",
      value: minDate.getTime(),
      message: errorUtil.toString(message)
    });
  }
  max(maxDate, message) {
    return this._addCheck({
      kind: "max",
      value: maxDate.getTime(),
      message: errorUtil.toString(message)
    });
  }
  get minDate() {
    let min = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "min") {
        if (min === null || ch.value > min)
          min = ch.value;
      }
    }
    return min != null ? new Date(min) : null;
  }
  get maxDate() {
    let max2 = null;
    for (const ch of this._def.checks) {
      if (ch.kind === "max") {
        if (max2 === null || ch.value < max2)
          max2 = ch.value;
      }
    }
    return max2 != null ? new Date(max2) : null;
  }
};
ZodDate.create = (params) => {
  return new ZodDate({
    checks: [],
    coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,
    typeName: ZodFirstPartyTypeKind.ZodDate,
    ...processCreateParams(params)
  });
};
var ZodSymbol = class extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.symbol) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.symbol,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
};
ZodSymbol.create = (params) => {
  return new ZodSymbol({
    typeName: ZodFirstPartyTypeKind.ZodSymbol,
    ...processCreateParams(params)
  });
};
var ZodUndefined = class extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.undefined) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.undefined,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
};
ZodUndefined.create = (params) => {
  return new ZodUndefined({
    typeName: ZodFirstPartyTypeKind.ZodUndefined,
    ...processCreateParams(params)
  });
};
var ZodNull = class extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.null) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.null,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
};
ZodNull.create = (params) => {
  return new ZodNull({
    typeName: ZodFirstPartyTypeKind.ZodNull,
    ...processCreateParams(params)
  });
};
var ZodAny = class extends ZodType {
  constructor() {
    super(...arguments);
    this._any = true;
  }
  _parse(input) {
    return OK(input.data);
  }
};
ZodAny.create = (params) => {
  return new ZodAny({
    typeName: ZodFirstPartyTypeKind.ZodAny,
    ...processCreateParams(params)
  });
};
var ZodUnknown = class extends ZodType {
  constructor() {
    super(...arguments);
    this._unknown = true;
  }
  _parse(input) {
    return OK(input.data);
  }
};
ZodUnknown.create = (params) => {
  return new ZodUnknown({
    typeName: ZodFirstPartyTypeKind.ZodUnknown,
    ...processCreateParams(params)
  });
};
var ZodNever = class extends ZodType {
  _parse(input) {
    const ctx = this._getOrReturnCtx(input);
    addIssueToContext(ctx, {
      code: ZodIssueCode.invalid_type,
      expected: ZodParsedType.never,
      received: ctx.parsedType
    });
    return INVALID;
  }
};
ZodNever.create = (params) => {
  return new ZodNever({
    typeName: ZodFirstPartyTypeKind.ZodNever,
    ...processCreateParams(params)
  });
};
var ZodVoid = class extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.undefined) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.void,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return OK(input.data);
  }
};
ZodVoid.create = (params) => {
  return new ZodVoid({
    typeName: ZodFirstPartyTypeKind.ZodVoid,
    ...processCreateParams(params)
  });
};
var ZodArray = class _ZodArray extends ZodType {
  _parse(input) {
    const { ctx, status } = this._processInputParams(input);
    const def = this._def;
    if (ctx.parsedType !== ZodParsedType.array) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.array,
        received: ctx.parsedType
      });
      return INVALID;
    }
    if (def.exactLength !== null) {
      const tooBig = ctx.data.length > def.exactLength.value;
      const tooSmall = ctx.data.length < def.exactLength.value;
      if (tooBig || tooSmall) {
        addIssueToContext(ctx, {
          code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,
          minimum: tooSmall ? def.exactLength.value : void 0,
          maximum: tooBig ? def.exactLength.value : void 0,
          type: "array",
          inclusive: true,
          exact: true,
          message: def.exactLength.message
        });
        status.dirty();
      }
    }
    if (def.minLength !== null) {
      if (ctx.data.length < def.minLength.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_small,
          minimum: def.minLength.value,
          type: "array",
          inclusive: true,
          exact: false,
          message: def.minLength.message
        });
        status.dirty();
      }
    }
    if (def.maxLength !== null) {
      if (ctx.data.length > def.maxLength.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_big,
          maximum: def.maxLength.value,
          type: "array",
          inclusive: true,
          exact: false,
          message: def.maxLength.message
        });
        status.dirty();
      }
    }
    if (ctx.common.async) {
      return Promise.all([...ctx.data].map((item, i3) => {
        return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i3));
      })).then((result2) => {
        return ParseStatus.mergeArray(status, result2);
      });
    }
    const result = [...ctx.data].map((item, i3) => {
      return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i3));
    });
    return ParseStatus.mergeArray(status, result);
  }
  get element() {
    return this._def.type;
  }
  min(minLength, message) {
    return new _ZodArray({
      ...this._def,
      minLength: { value: minLength, message: errorUtil.toString(message) }
    });
  }
  max(maxLength, message) {
    return new _ZodArray({
      ...this._def,
      maxLength: { value: maxLength, message: errorUtil.toString(message) }
    });
  }
  length(len, message) {
    return new _ZodArray({
      ...this._def,
      exactLength: { value: len, message: errorUtil.toString(message) }
    });
  }
  nonempty(message) {
    return this.min(1, message);
  }
};
ZodArray.create = (schema, params) => {
  return new ZodArray({
    type: schema,
    minLength: null,
    maxLength: null,
    exactLength: null,
    typeName: ZodFirstPartyTypeKind.ZodArray,
    ...processCreateParams(params)
  });
};
function deepPartialify(schema) {
  if (schema instanceof ZodObject) {
    const newShape = {};
    for (const key in schema.shape) {
      const fieldSchema = schema.shape[key];
      newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));
    }
    return new ZodObject({
      ...schema._def,
      shape: () => newShape
    });
  } else if (schema instanceof ZodArray) {
    return new ZodArray({
      ...schema._def,
      type: deepPartialify(schema.element)
    });
  } else if (schema instanceof ZodOptional) {
    return ZodOptional.create(deepPartialify(schema.unwrap()));
  } else if (schema instanceof ZodNullable) {
    return ZodNullable.create(deepPartialify(schema.unwrap()));
  } else if (schema instanceof ZodTuple) {
    return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));
  } else {
    return schema;
  }
}
var ZodObject = class _ZodObject extends ZodType {
  constructor() {
    super(...arguments);
    this._cached = null;
    this.nonstrict = this.passthrough;
    this.augment = this.extend;
  }
  _getCached() {
    if (this._cached !== null)
      return this._cached;
    const shape = this._def.shape();
    const keys = util.objectKeys(shape);
    return this._cached = { shape, keys };
  }
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.object) {
      const ctx2 = this._getOrReturnCtx(input);
      addIssueToContext(ctx2, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.object,
        received: ctx2.parsedType
      });
      return INVALID;
    }
    const { status, ctx } = this._processInputParams(input);
    const { shape, keys: shapeKeys } = this._getCached();
    const extraKeys = [];
    if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) {
      for (const key in ctx.data) {
        if (!shapeKeys.includes(key)) {
          extraKeys.push(key);
        }
      }
    }
    const pairs = [];
    for (const key of shapeKeys) {
      const keyValidator = shape[key];
      const value = ctx.data[key];
      pairs.push({
        key: { status: "valid", value: key },
        value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),
        alwaysSet: key in ctx.data
      });
    }
    if (this._def.catchall instanceof ZodNever) {
      const unknownKeys = this._def.unknownKeys;
      if (unknownKeys === "passthrough") {
        for (const key of extraKeys) {
          pairs.push({
            key: { status: "valid", value: key },
            value: { status: "valid", value: ctx.data[key] }
          });
        }
      } else if (unknownKeys === "strict") {
        if (extraKeys.length > 0) {
          addIssueToContext(ctx, {
            code: ZodIssueCode.unrecognized_keys,
            keys: extraKeys
          });
          status.dirty();
        }
      } else if (unknownKeys === "strip") ;
      else {
        throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);
      }
    } else {
      const catchall = this._def.catchall;
      for (const key of extraKeys) {
        const value = ctx.data[key];
        pairs.push({
          key: { status: "valid", value: key },
          value: catchall._parse(
            new ParseInputLazyPath(ctx, value, ctx.path, key)
            //, ctx.child(key), value, getParsedType(value)
          ),
          alwaysSet: key in ctx.data
        });
      }
    }
    if (ctx.common.async) {
      return Promise.resolve().then(async () => {
        const syncPairs = [];
        for (const pair of pairs) {
          const key = await pair.key;
          syncPairs.push({
            key,
            value: await pair.value,
            alwaysSet: pair.alwaysSet
          });
        }
        return syncPairs;
      }).then((syncPairs) => {
        return ParseStatus.mergeObjectSync(status, syncPairs);
      });
    } else {
      return ParseStatus.mergeObjectSync(status, pairs);
    }
  }
  get shape() {
    return this._def.shape();
  }
  strict(message) {
    errorUtil.errToObj;
    return new _ZodObject({
      ...this._def,
      unknownKeys: "strict",
      ...message !== void 0 ? {
        errorMap: (issue, ctx) => {
          var _a4, _b2, _c, _d;
          const defaultError = (_c = (_b2 = (_a4 = this._def).errorMap) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;
          if (issue.code === "unrecognized_keys")
            return {
              message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError
            };
          return {
            message: defaultError
          };
        }
      } : {}
    });
  }
  strip() {
    return new _ZodObject({
      ...this._def,
      unknownKeys: "strip"
    });
  }
  passthrough() {
    return new _ZodObject({
      ...this._def,
      unknownKeys: "passthrough"
    });
  }
  // const AugmentFactory =
  //   <Def extends ZodObjectDef>(def: Def) =>
  //   <Augmentation extends ZodRawShape>(
  //     augmentation: Augmentation
  //   ): ZodObject<
  //     extendShape<ReturnType<Def["shape"]>, Augmentation>,
  //     Def["unknownKeys"],
  //     Def["catchall"]
  //   > => {
  //     return new ZodObject({
  //       ...def,
  //       shape: () => ({
  //         ...def.shape(),
  //         ...augmentation,
  //       }),
  //     }) as any;
  //   };
  extend(augmentation) {
    return new _ZodObject({
      ...this._def,
      shape: () => ({
        ...this._def.shape(),
        ...augmentation
      })
    });
  }
  /**
   * Prior to zod@1.0.12 there was a bug in the
   * inferred type of merged objects. Please
   * upgrade if you are experiencing issues.
   */
  merge(merging) {
    const merged = new _ZodObject({
      unknownKeys: merging._def.unknownKeys,
      catchall: merging._def.catchall,
      shape: () => ({
        ...this._def.shape(),
        ...merging._def.shape()
      }),
      typeName: ZodFirstPartyTypeKind.ZodObject
    });
    return merged;
  }
  // merge<
  //   Incoming extends AnyZodObject,
  //   Augmentation extends Incoming["shape"],
  //   NewOutput extends {
  //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
  //       ? Augmentation[k]["_output"]
  //       : k extends keyof Output
  //       ? Output[k]
  //       : never;
  //   },
  //   NewInput extends {
  //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
  //       ? Augmentation[k]["_input"]
  //       : k extends keyof Input
  //       ? Input[k]
  //       : never;
  //   }
  // >(
  //   merging: Incoming
  // ): ZodObject<
  //   extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
  //   Incoming["_def"]["unknownKeys"],
  //   Incoming["_def"]["catchall"],
  //   NewOutput,
  //   NewInput
  // > {
  //   const merged: any = new ZodObject({
  //     unknownKeys: merging._def.unknownKeys,
  //     catchall: merging._def.catchall,
  //     shape: () =>
  //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
  //     typeName: ZodFirstPartyTypeKind.ZodObject,
  //   }) as any;
  //   return merged;
  // }
  setKey(key, schema) {
    return this.augment({ [key]: schema });
  }
  // merge<Incoming extends AnyZodObject>(
  //   merging: Incoming
  // ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
  // ZodObject<
  //   extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
  //   Incoming["_def"]["unknownKeys"],
  //   Incoming["_def"]["catchall"]
  // > {
  //   // const mergedShape = objectUtil.mergeShapes(
  //   //   this._def.shape(),
  //   //   merging._def.shape()
  //   // );
  //   const merged: any = new ZodObject({
  //     unknownKeys: merging._def.unknownKeys,
  //     catchall: merging._def.catchall,
  //     shape: () =>
  //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
  //     typeName: ZodFirstPartyTypeKind.ZodObject,
  //   }) as any;
  //   return merged;
  // }
  catchall(index) {
    return new _ZodObject({
      ...this._def,
      catchall: index
    });
  }
  pick(mask) {
    const shape = {};
    util.objectKeys(mask).forEach((key) => {
      if (mask[key] && this.shape[key]) {
        shape[key] = this.shape[key];
      }
    });
    return new _ZodObject({
      ...this._def,
      shape: () => shape
    });
  }
  omit(mask) {
    const shape = {};
    util.objectKeys(this.shape).forEach((key) => {
      if (!mask[key]) {
        shape[key] = this.shape[key];
      }
    });
    return new _ZodObject({
      ...this._def,
      shape: () => shape
    });
  }
  /**
   * @deprecated
   */
  deepPartial() {
    return deepPartialify(this);
  }
  partial(mask) {
    const newShape = {};
    util.objectKeys(this.shape).forEach((key) => {
      const fieldSchema = this.shape[key];
      if (mask && !mask[key]) {
        newShape[key] = fieldSchema;
      } else {
        newShape[key] = fieldSchema.optional();
      }
    });
    return new _ZodObject({
      ...this._def,
      shape: () => newShape
    });
  }
  required(mask) {
    const newShape = {};
    util.objectKeys(this.shape).forEach((key) => {
      if (mask && !mask[key]) {
        newShape[key] = this.shape[key];
      } else {
        const fieldSchema = this.shape[key];
        let newField = fieldSchema;
        while (newField instanceof ZodOptional) {
          newField = newField._def.innerType;
        }
        newShape[key] = newField;
      }
    });
    return new _ZodObject({
      ...this._def,
      shape: () => newShape
    });
  }
  keyof() {
    return createZodEnum(util.objectKeys(this.shape));
  }
};
ZodObject.create = (shape, params) => {
  return new ZodObject({
    shape: () => shape,
    unknownKeys: "strip",
    catchall: ZodNever.create(),
    typeName: ZodFirstPartyTypeKind.ZodObject,
    ...processCreateParams(params)
  });
};
ZodObject.strictCreate = (shape, params) => {
  return new ZodObject({
    shape: () => shape,
    unknownKeys: "strict",
    catchall: ZodNever.create(),
    typeName: ZodFirstPartyTypeKind.ZodObject,
    ...processCreateParams(params)
  });
};
ZodObject.lazycreate = (shape, params) => {
  return new ZodObject({
    shape,
    unknownKeys: "strip",
    catchall: ZodNever.create(),
    typeName: ZodFirstPartyTypeKind.ZodObject,
    ...processCreateParams(params)
  });
};
var ZodUnion = class extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const options = this._def.options;
    function handleResults(results) {
      for (const result of results) {
        if (result.result.status === "valid") {
          return result.result;
        }
      }
      for (const result of results) {
        if (result.result.status === "dirty") {
          ctx.common.issues.push(...result.ctx.common.issues);
          return result.result;
        }
      }
      const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_union,
        unionErrors
      });
      return INVALID;
    }
    if (ctx.common.async) {
      return Promise.all(options.map(async (option2) => {
        const childCtx = {
          ...ctx,
          common: {
            ...ctx.common,
            issues: []
          },
          parent: null
        };
        return {
          result: await option2._parseAsync({
            data: ctx.data,
            path: ctx.path,
            parent: childCtx
          }),
          ctx: childCtx
        };
      })).then(handleResults);
    } else {
      let dirty = void 0;
      const issues = [];
      for (const option2 of options) {
        const childCtx = {
          ...ctx,
          common: {
            ...ctx.common,
            issues: []
          },
          parent: null
        };
        const result = option2._parseSync({
          data: ctx.data,
          path: ctx.path,
          parent: childCtx
        });
        if (result.status === "valid") {
          return result;
        } else if (result.status === "dirty" && !dirty) {
          dirty = { result, ctx: childCtx };
        }
        if (childCtx.common.issues.length) {
          issues.push(childCtx.common.issues);
        }
      }
      if (dirty) {
        ctx.common.issues.push(...dirty.ctx.common.issues);
        return dirty.result;
      }
      const unionErrors = issues.map((issues2) => new ZodError(issues2));
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_union,
        unionErrors
      });
      return INVALID;
    }
  }
  get options() {
    return this._def.options;
  }
};
ZodUnion.create = (types2, params) => {
  return new ZodUnion({
    options: types2,
    typeName: ZodFirstPartyTypeKind.ZodUnion,
    ...processCreateParams(params)
  });
};
var getDiscriminator = (type) => {
  if (type instanceof ZodLazy) {
    return getDiscriminator(type.schema);
  } else if (type instanceof ZodEffects) {
    return getDiscriminator(type.innerType());
  } else if (type instanceof ZodLiteral) {
    return [type.value];
  } else if (type instanceof ZodEnum) {
    return type.options;
  } else if (type instanceof ZodNativeEnum) {
    return Object.keys(type.enum);
  } else if (type instanceof ZodDefault) {
    return getDiscriminator(type._def.innerType);
  } else if (type instanceof ZodUndefined) {
    return [void 0];
  } else if (type instanceof ZodNull) {
    return [null];
  } else {
    return null;
  }
};
var ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.object) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.object,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const discriminator = this.discriminator;
    const discriminatorValue = ctx.data[discriminator];
    const option2 = this.optionsMap.get(discriminatorValue);
    if (!option2) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_union_discriminator,
        options: Array.from(this.optionsMap.keys()),
        path: [discriminator]
      });
      return INVALID;
    }
    if (ctx.common.async) {
      return option2._parseAsync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      });
    } else {
      return option2._parseSync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      });
    }
  }
  get discriminator() {
    return this._def.discriminator;
  }
  get options() {
    return this._def.options;
  }
  get optionsMap() {
    return this._def.optionsMap;
  }
  /**
   * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
   * However, it only allows a union of objects, all of which need to share a discriminator property. This property must
   * have a different value for each object in the union.
   * @param discriminator the name of the discriminator property
   * @param types an array of object schemas
   * @param params
   */
  static create(discriminator, options, params) {
    const optionsMap = /* @__PURE__ */ new Map();
    for (const type of options) {
      const discriminatorValues = getDiscriminator(type.shape[discriminator]);
      if (!discriminatorValues) {
        throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
      }
      for (const value of discriminatorValues) {
        if (optionsMap.has(value)) {
          throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
        }
        optionsMap.set(value, type);
      }
    }
    return new _ZodDiscriminatedUnion({
      typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
      discriminator,
      options,
      optionsMap,
      ...processCreateParams(params)
    });
  }
};
function mergeValues(a2, b2) {
  const aType = getParsedType(a2);
  const bType = getParsedType(b2);
  if (a2 === b2) {
    return { valid: true, data: a2 };
  } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {
    const bKeys = util.objectKeys(b2);
    const sharedKeys = util.objectKeys(a2).filter((key) => bKeys.indexOf(key) !== -1);
    const newObj = { ...a2, ...b2 };
    for (const key of sharedKeys) {
      const sharedValue = mergeValues(a2[key], b2[key]);
      if (!sharedValue.valid) {
        return { valid: false };
      }
      newObj[key] = sharedValue.data;
    }
    return { valid: true, data: newObj };
  } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {
    if (a2.length !== b2.length) {
      return { valid: false };
    }
    const newArray = [];
    for (let index = 0; index < a2.length; index++) {
      const itemA = a2[index];
      const itemB = b2[index];
      const sharedValue = mergeValues(itemA, itemB);
      if (!sharedValue.valid) {
        return { valid: false };
      }
      newArray.push(sharedValue.data);
    }
    return { valid: true, data: newArray };
  } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a2 === +b2) {
    return { valid: true, data: a2 };
  } else {
    return { valid: false };
  }
}
var ZodIntersection = class extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    const handleParsed = (parsedLeft, parsedRight) => {
      if (isAborted(parsedLeft) || isAborted(parsedRight)) {
        return INVALID;
      }
      const merged = mergeValues(parsedLeft.value, parsedRight.value);
      if (!merged.valid) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.invalid_intersection_types
        });
        return INVALID;
      }
      if (isDirty(parsedLeft) || isDirty(parsedRight)) {
        status.dirty();
      }
      return { status: status.value, value: merged.data };
    };
    if (ctx.common.async) {
      return Promise.all([
        this._def.left._parseAsync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        }),
        this._def.right._parseAsync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        })
      ]).then(([left2, right2]) => handleParsed(left2, right2));
    } else {
      return handleParsed(this._def.left._parseSync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      }), this._def.right._parseSync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      }));
    }
  }
};
ZodIntersection.create = (left2, right2, params) => {
  return new ZodIntersection({
    left: left2,
    right: right2,
    typeName: ZodFirstPartyTypeKind.ZodIntersection,
    ...processCreateParams(params)
  });
};
var ZodTuple = class _ZodTuple extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.array) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.array,
        received: ctx.parsedType
      });
      return INVALID;
    }
    if (ctx.data.length < this._def.items.length) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.too_small,
        minimum: this._def.items.length,
        inclusive: true,
        exact: false,
        type: "array"
      });
      return INVALID;
    }
    const rest = this._def.rest;
    if (!rest && ctx.data.length > this._def.items.length) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.too_big,
        maximum: this._def.items.length,
        inclusive: true,
        exact: false,
        type: "array"
      });
      status.dirty();
    }
    const items = [...ctx.data].map((item, itemIndex) => {
      const schema = this._def.items[itemIndex] || this._def.rest;
      if (!schema)
        return null;
      return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));
    }).filter((x3) => !!x3);
    if (ctx.common.async) {
      return Promise.all(items).then((results) => {
        return ParseStatus.mergeArray(status, results);
      });
    } else {
      return ParseStatus.mergeArray(status, items);
    }
  }
  get items() {
    return this._def.items;
  }
  rest(rest) {
    return new _ZodTuple({
      ...this._def,
      rest
    });
  }
};
ZodTuple.create = (schemas, params) => {
  if (!Array.isArray(schemas)) {
    throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
  }
  return new ZodTuple({
    items: schemas,
    typeName: ZodFirstPartyTypeKind.ZodTuple,
    rest: null,
    ...processCreateParams(params)
  });
};
var ZodRecord = class _ZodRecord extends ZodType {
  get keySchema() {
    return this._def.keyType;
  }
  get valueSchema() {
    return this._def.valueType;
  }
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.object) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.object,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const pairs = [];
    const keyType = this._def.keyType;
    const valueType = this._def.valueType;
    for (const key in ctx.data) {
      pairs.push({
        key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),
        value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key))
      });
    }
    if (ctx.common.async) {
      return ParseStatus.mergeObjectAsync(status, pairs);
    } else {
      return ParseStatus.mergeObjectSync(status, pairs);
    }
  }
  get element() {
    return this._def.valueType;
  }
  static create(first, second, third) {
    if (second instanceof ZodType) {
      return new _ZodRecord({
        keyType: first,
        valueType: second,
        typeName: ZodFirstPartyTypeKind.ZodRecord,
        ...processCreateParams(third)
      });
    }
    return new _ZodRecord({
      keyType: ZodString.create(),
      valueType: first,
      typeName: ZodFirstPartyTypeKind.ZodRecord,
      ...processCreateParams(second)
    });
  }
};
var ZodMap = class extends ZodType {
  get keySchema() {
    return this._def.keyType;
  }
  get valueSchema() {
    return this._def.valueType;
  }
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.map) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.map,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const keyType = this._def.keyType;
    const valueType = this._def.valueType;
    const pairs = [...ctx.data.entries()].map(([key, value], index) => {
      return {
        key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])),
        value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"]))
      };
    });
    if (ctx.common.async) {
      const finalMap = /* @__PURE__ */ new Map();
      return Promise.resolve().then(async () => {
        for (const pair of pairs) {
          const key = await pair.key;
          const value = await pair.value;
          if (key.status === "aborted" || value.status === "aborted") {
            return INVALID;
          }
          if (key.status === "dirty" || value.status === "dirty") {
            status.dirty();
          }
          finalMap.set(key.value, value.value);
        }
        return { status: status.value, value: finalMap };
      });
    } else {
      const finalMap = /* @__PURE__ */ new Map();
      for (const pair of pairs) {
        const key = pair.key;
        const value = pair.value;
        if (key.status === "aborted" || value.status === "aborted") {
          return INVALID;
        }
        if (key.status === "dirty" || value.status === "dirty") {
          status.dirty();
        }
        finalMap.set(key.value, value.value);
      }
      return { status: status.value, value: finalMap };
    }
  }
};
ZodMap.create = (keyType, valueType, params) => {
  return new ZodMap({
    valueType,
    keyType,
    typeName: ZodFirstPartyTypeKind.ZodMap,
    ...processCreateParams(params)
  });
};
var ZodSet = class _ZodSet extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.set) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.set,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const def = this._def;
    if (def.minSize !== null) {
      if (ctx.data.size < def.minSize.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_small,
          minimum: def.minSize.value,
          type: "set",
          inclusive: true,
          exact: false,
          message: def.minSize.message
        });
        status.dirty();
      }
    }
    if (def.maxSize !== null) {
      if (ctx.data.size > def.maxSize.value) {
        addIssueToContext(ctx, {
          code: ZodIssueCode.too_big,
          maximum: def.maxSize.value,
          type: "set",
          inclusive: true,
          exact: false,
          message: def.maxSize.message
        });
        status.dirty();
      }
    }
    const valueType = this._def.valueType;
    function finalizeSet(elements2) {
      const parsedSet = /* @__PURE__ */ new Set();
      for (const element of elements2) {
        if (element.status === "aborted")
          return INVALID;
        if (element.status === "dirty")
          status.dirty();
        parsedSet.add(element.value);
      }
      return { status: status.value, value: parsedSet };
    }
    const elements = [...ctx.data.values()].map((item, i3) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i3)));
    if (ctx.common.async) {
      return Promise.all(elements).then((elements2) => finalizeSet(elements2));
    } else {
      return finalizeSet(elements);
    }
  }
  min(minSize, message) {
    return new _ZodSet({
      ...this._def,
      minSize: { value: minSize, message: errorUtil.toString(message) }
    });
  }
  max(maxSize, message) {
    return new _ZodSet({
      ...this._def,
      maxSize: { value: maxSize, message: errorUtil.toString(message) }
    });
  }
  size(size, message) {
    return this.min(size, message).max(size, message);
  }
  nonempty(message) {
    return this.min(1, message);
  }
};
ZodSet.create = (valueType, params) => {
  return new ZodSet({
    valueType,
    minSize: null,
    maxSize: null,
    typeName: ZodFirstPartyTypeKind.ZodSet,
    ...processCreateParams(params)
  });
};
var ZodFunction = class _ZodFunction extends ZodType {
  constructor() {
    super(...arguments);
    this.validate = this.implement;
  }
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.function) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.function,
        received: ctx.parsedType
      });
      return INVALID;
    }
    function makeArgsIssue(args, error) {
      return makeIssue({
        data: args,
        path: ctx.path,
        errorMaps: [
          ctx.common.contextualErrorMap,
          ctx.schemaErrorMap,
          getErrorMap(),
          errorMap
        ].filter((x3) => !!x3),
        issueData: {
          code: ZodIssueCode.invalid_arguments,
          argumentsError: error
        }
      });
    }
    function makeReturnsIssue(returns, error) {
      return makeIssue({
        data: returns,
        path: ctx.path,
        errorMaps: [
          ctx.common.contextualErrorMap,
          ctx.schemaErrorMap,
          getErrorMap(),
          errorMap
        ].filter((x3) => !!x3),
        issueData: {
          code: ZodIssueCode.invalid_return_type,
          returnTypeError: error
        }
      });
    }
    const params = { errorMap: ctx.common.contextualErrorMap };
    const fn3 = ctx.data;
    if (this._def.returns instanceof ZodPromise) {
      const me3 = this;
      return OK(async function(...args) {
        const error = new ZodError([]);
        const parsedArgs = await me3._def.args.parseAsync(args, params).catch((e2) => {
          error.addIssue(makeArgsIssue(args, e2));
          throw error;
        });
        const result = await Reflect.apply(fn3, this, parsedArgs);
        const parsedReturns = await me3._def.returns._def.type.parseAsync(result, params).catch((e2) => {
          error.addIssue(makeReturnsIssue(result, e2));
          throw error;
        });
        return parsedReturns;
      });
    } else {
      const me3 = this;
      return OK(function(...args) {
        const parsedArgs = me3._def.args.safeParse(args, params);
        if (!parsedArgs.success) {
          throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
        }
        const result = Reflect.apply(fn3, this, parsedArgs.data);
        const parsedReturns = me3._def.returns.safeParse(result, params);
        if (!parsedReturns.success) {
          throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
        }
        return parsedReturns.data;
      });
    }
  }
  parameters() {
    return this._def.args;
  }
  returnType() {
    return this._def.returns;
  }
  args(...items) {
    return new _ZodFunction({
      ...this._def,
      args: ZodTuple.create(items).rest(ZodUnknown.create())
    });
  }
  returns(returnType) {
    return new _ZodFunction({
      ...this._def,
      returns: returnType
    });
  }
  implement(func) {
    const validatedFunc = this.parse(func);
    return validatedFunc;
  }
  strictImplement(func) {
    const validatedFunc = this.parse(func);
    return validatedFunc;
  }
  static create(args, returns, params) {
    return new _ZodFunction({
      args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),
      returns: returns || ZodUnknown.create(),
      typeName: ZodFirstPartyTypeKind.ZodFunction,
      ...processCreateParams(params)
    });
  }
};
var ZodLazy = class extends ZodType {
  get schema() {
    return this._def.getter();
  }
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const lazySchema = this._def.getter();
    return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });
  }
};
ZodLazy.create = (getter, params) => {
  return new ZodLazy({
    getter,
    typeName: ZodFirstPartyTypeKind.ZodLazy,
    ...processCreateParams(params)
  });
};
var ZodLiteral = class extends ZodType {
  _parse(input) {
    if (input.data !== this._def.value) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        received: ctx.data,
        code: ZodIssueCode.invalid_literal,
        expected: this._def.value
      });
      return INVALID;
    }
    return { status: "valid", value: input.data };
  }
  get value() {
    return this._def.value;
  }
};
ZodLiteral.create = (value, params) => {
  return new ZodLiteral({
    value,
    typeName: ZodFirstPartyTypeKind.ZodLiteral,
    ...processCreateParams(params)
  });
};
function createZodEnum(values, params) {
  return new ZodEnum({
    values,
    typeName: ZodFirstPartyTypeKind.ZodEnum,
    ...processCreateParams(params)
  });
}
var ZodEnum = class _ZodEnum extends ZodType {
  _parse(input) {
    if (typeof input.data !== "string") {
      const ctx = this._getOrReturnCtx(input);
      const expectedValues = this._def.values;
      addIssueToContext(ctx, {
        expected: util.joinValues(expectedValues),
        received: ctx.parsedType,
        code: ZodIssueCode.invalid_type
      });
      return INVALID;
    }
    if (this._def.values.indexOf(input.data) === -1) {
      const ctx = this._getOrReturnCtx(input);
      const expectedValues = this._def.values;
      addIssueToContext(ctx, {
        received: ctx.data,
        code: ZodIssueCode.invalid_enum_value,
        options: expectedValues
      });
      return INVALID;
    }
    return OK(input.data);
  }
  get options() {
    return this._def.values;
  }
  get enum() {
    const enumValues = {};
    for (const val of this._def.values) {
      enumValues[val] = val;
    }
    return enumValues;
  }
  get Values() {
    const enumValues = {};
    for (const val of this._def.values) {
      enumValues[val] = val;
    }
    return enumValues;
  }
  get Enum() {
    const enumValues = {};
    for (const val of this._def.values) {
      enumValues[val] = val;
    }
    return enumValues;
  }
  extract(values) {
    return _ZodEnum.create(values);
  }
  exclude(values) {
    return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));
  }
};
ZodEnum.create = createZodEnum;
var ZodNativeEnum = class extends ZodType {
  _parse(input) {
    const nativeEnumValues = util.getValidEnumValues(this._def.values);
    const ctx = this._getOrReturnCtx(input);
    if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {
      const expectedValues = util.objectValues(nativeEnumValues);
      addIssueToContext(ctx, {
        expected: util.joinValues(expectedValues),
        received: ctx.parsedType,
        code: ZodIssueCode.invalid_type
      });
      return INVALID;
    }
    if (nativeEnumValues.indexOf(input.data) === -1) {
      const expectedValues = util.objectValues(nativeEnumValues);
      addIssueToContext(ctx, {
        received: ctx.data,
        code: ZodIssueCode.invalid_enum_value,
        options: expectedValues
      });
      return INVALID;
    }
    return OK(input.data);
  }
  get enum() {
    return this._def.values;
  }
};
ZodNativeEnum.create = (values, params) => {
  return new ZodNativeEnum({
    values,
    typeName: ZodFirstPartyTypeKind.ZodNativeEnum,
    ...processCreateParams(params)
  });
};
var ZodPromise = class extends ZodType {
  unwrap() {
    return this._def.type;
  }
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.promise,
        received: ctx.parsedType
      });
      return INVALID;
    }
    const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);
    return OK(promisified.then((data) => {
      return this._def.type.parseAsync(data, {
        path: ctx.path,
        errorMap: ctx.common.contextualErrorMap
      });
    }));
  }
};
ZodPromise.create = (schema, params) => {
  return new ZodPromise({
    type: schema,
    typeName: ZodFirstPartyTypeKind.ZodPromise,
    ...processCreateParams(params)
  });
};
var ZodEffects = class extends ZodType {
  innerType() {
    return this._def.schema;
  }
  sourceType() {
    return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
  }
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    const effect = this._def.effect || null;
    const checkCtx = {
      addIssue: (arg) => {
        addIssueToContext(ctx, arg);
        if (arg.fatal) {
          status.abort();
        } else {
          status.dirty();
        }
      },
      get path() {
        return ctx.path;
      }
    };
    checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
    if (effect.type === "preprocess") {
      const processed = effect.transform(ctx.data, checkCtx);
      if (ctx.common.issues.length) {
        return {
          status: "dirty",
          value: ctx.data
        };
      }
      if (ctx.common.async) {
        return Promise.resolve(processed).then((processed2) => {
          return this._def.schema._parseAsync({
            data: processed2,
            path: ctx.path,
            parent: ctx
          });
        });
      } else {
        return this._def.schema._parseSync({
          data: processed,
          path: ctx.path,
          parent: ctx
        });
      }
    }
    if (effect.type === "refinement") {
      const executeRefinement = (acc) => {
        const result = effect.refinement(acc, checkCtx);
        if (ctx.common.async) {
          return Promise.resolve(result);
        }
        if (result instanceof Promise) {
          throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
        }
        return acc;
      };
      if (ctx.common.async === false) {
        const inner = this._def.schema._parseSync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        });
        if (inner.status === "aborted")
          return INVALID;
        if (inner.status === "dirty")
          status.dirty();
        executeRefinement(inner.value);
        return { status: status.value, value: inner.value };
      } else {
        return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {
          if (inner.status === "aborted")
            return INVALID;
          if (inner.status === "dirty")
            status.dirty();
          return executeRefinement(inner.value).then(() => {
            return { status: status.value, value: inner.value };
          });
        });
      }
    }
    if (effect.type === "transform") {
      if (ctx.common.async === false) {
        const base = this._def.schema._parseSync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        });
        if (!isValid(base))
          return base;
        const result = effect.transform(base.value, checkCtx);
        if (result instanceof Promise) {
          throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);
        }
        return { status: status.value, value: result };
      } else {
        return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {
          if (!isValid(base))
            return base;
          return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));
        });
      }
    }
    util.assertNever(effect);
  }
};
ZodEffects.create = (schema, effect, params) => {
  return new ZodEffects({
    schema,
    typeName: ZodFirstPartyTypeKind.ZodEffects,
    effect,
    ...processCreateParams(params)
  });
};
ZodEffects.createWithPreprocess = (preprocess2, schema, params) => {
  return new ZodEffects({
    schema,
    effect: { type: "preprocess", transform: preprocess2 },
    typeName: ZodFirstPartyTypeKind.ZodEffects,
    ...processCreateParams(params)
  });
};
var ZodOptional = class extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType === ZodParsedType.undefined) {
      return OK(void 0);
    }
    return this._def.innerType._parse(input);
  }
  unwrap() {
    return this._def.innerType;
  }
};
ZodOptional.create = (type, params) => {
  return new ZodOptional({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodOptional,
    ...processCreateParams(params)
  });
};
var ZodNullable = class extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType === ZodParsedType.null) {
      return OK(null);
    }
    return this._def.innerType._parse(input);
  }
  unwrap() {
    return this._def.innerType;
  }
};
ZodNullable.create = (type, params) => {
  return new ZodNullable({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodNullable,
    ...processCreateParams(params)
  });
};
var ZodDefault = class extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    let data = ctx.data;
    if (ctx.parsedType === ZodParsedType.undefined) {
      data = this._def.defaultValue();
    }
    return this._def.innerType._parse({
      data,
      path: ctx.path,
      parent: ctx
    });
  }
  removeDefault() {
    return this._def.innerType;
  }
};
ZodDefault.create = (type, params) => {
  return new ZodDefault({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodDefault,
    defaultValue: typeof params.default === "function" ? params.default : () => params.default,
    ...processCreateParams(params)
  });
};
var ZodCatch = class extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const newCtx = {
      ...ctx,
      common: {
        ...ctx.common,
        issues: []
      }
    };
    const result = this._def.innerType._parse({
      data: newCtx.data,
      path: newCtx.path,
      parent: {
        ...newCtx
      }
    });
    if (isAsync(result)) {
      return result.then((result2) => {
        return {
          status: "valid",
          value: result2.status === "valid" ? result2.value : this._def.catchValue({
            get error() {
              return new ZodError(newCtx.common.issues);
            },
            input: newCtx.data
          })
        };
      });
    } else {
      return {
        status: "valid",
        value: result.status === "valid" ? result.value : this._def.catchValue({
          get error() {
            return new ZodError(newCtx.common.issues);
          },
          input: newCtx.data
        })
      };
    }
  }
  removeCatch() {
    return this._def.innerType;
  }
};
ZodCatch.create = (type, params) => {
  return new ZodCatch({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodCatch,
    catchValue: typeof params.catch === "function" ? params.catch : () => params.catch,
    ...processCreateParams(params)
  });
};
var ZodNaN = class extends ZodType {
  _parse(input) {
    const parsedType = this._getType(input);
    if (parsedType !== ZodParsedType.nan) {
      const ctx = this._getOrReturnCtx(input);
      addIssueToContext(ctx, {
        code: ZodIssueCode.invalid_type,
        expected: ZodParsedType.nan,
        received: ctx.parsedType
      });
      return INVALID;
    }
    return { status: "valid", value: input.data };
  }
};
ZodNaN.create = (params) => {
  return new ZodNaN({
    typeName: ZodFirstPartyTypeKind.ZodNaN,
    ...processCreateParams(params)
  });
};
var BRAND = Symbol("zod_brand");
var ZodBranded = class extends ZodType {
  _parse(input) {
    const { ctx } = this._processInputParams(input);
    const data = ctx.data;
    return this._def.type._parse({
      data,
      path: ctx.path,
      parent: ctx
    });
  }
  unwrap() {
    return this._def.type;
  }
};
var ZodPipeline = class _ZodPipeline extends ZodType {
  _parse(input) {
    const { status, ctx } = this._processInputParams(input);
    if (ctx.common.async) {
      const handleAsync = async () => {
        const inResult = await this._def.in._parseAsync({
          data: ctx.data,
          path: ctx.path,
          parent: ctx
        });
        if (inResult.status === "aborted")
          return INVALID;
        if (inResult.status === "dirty") {
          status.dirty();
          return DIRTY(inResult.value);
        } else {
          return this._def.out._parseAsync({
            data: inResult.value,
            path: ctx.path,
            parent: ctx
          });
        }
      };
      return handleAsync();
    } else {
      const inResult = this._def.in._parseSync({
        data: ctx.data,
        path: ctx.path,
        parent: ctx
      });
      if (inResult.status === "aborted")
        return INVALID;
      if (inResult.status === "dirty") {
        status.dirty();
        return {
          status: "dirty",
          value: inResult.value
        };
      } else {
        return this._def.out._parseSync({
          data: inResult.value,
          path: ctx.path,
          parent: ctx
        });
      }
    }
  }
  static create(a2, b2) {
    return new _ZodPipeline({
      in: a2,
      out: b2,
      typeName: ZodFirstPartyTypeKind.ZodPipeline
    });
  }
};
var ZodReadonly = class extends ZodType {
  _parse(input) {
    const result = this._def.innerType._parse(input);
    if (isValid(result)) {
      result.value = Object.freeze(result.value);
    }
    return result;
  }
};
ZodReadonly.create = (type, params) => {
  return new ZodReadonly({
    innerType: type,
    typeName: ZodFirstPartyTypeKind.ZodReadonly,
    ...processCreateParams(params)
  });
};
var custom = (check, params = {}, fatal) => {
  if (check)
    return ZodAny.create().superRefine((data, ctx) => {
      var _a4, _b2;
      if (!check(data)) {
        const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
        const _fatal = (_b2 = (_a4 = p.fatal) !== null && _a4 !== void 0 ? _a4 : fatal) !== null && _b2 !== void 0 ? _b2 : true;
        const p2 = typeof p === "string" ? { message: p } : p;
        ctx.addIssue({ code: "custom", ...p2, fatal: _fatal });
      }
    });
  return ZodAny.create();
};
var late = {
  object: ZodObject.lazycreate
};
var ZodFirstPartyTypeKind;
(function(ZodFirstPartyTypeKind2) {
  ZodFirstPartyTypeKind2["ZodString"] = "ZodString";
  ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber";
  ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN";
  ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt";
  ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean";
  ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate";
  ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol";
  ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined";
  ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull";
  ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny";
  ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown";
  ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever";
  ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid";
  ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray";
  ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject";
  ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion";
  ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion";
  ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection";
  ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple";
  ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord";
  ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap";
  ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet";
  ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction";
  ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy";
  ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral";
  ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum";
  ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects";
  ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum";
  ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional";
  ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable";
  ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault";
  ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch";
  ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise";
  ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded";
  ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline";
  ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly";
})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
var instanceOfType = (cls, params = {
  message: `Input not instance of ${cls.name}`
}) => custom((data) => data instanceof cls, params);
var stringType = ZodString.create;
var numberType = ZodNumber.create;
var nanType = ZodNaN.create;
var bigIntType = ZodBigInt.create;
var booleanType = ZodBoolean.create;
var dateType = ZodDate.create;
var symbolType = ZodSymbol.create;
var undefinedType = ZodUndefined.create;
var nullType = ZodNull.create;
var anyType = ZodAny.create;
var unknownType = ZodUnknown.create;
var neverType = ZodNever.create;
var voidType = ZodVoid.create;
var arrayType = ZodArray.create;
var objectType = ZodObject.create;
var strictObjectType = ZodObject.strictCreate;
var unionType = ZodUnion.create;
var discriminatedUnionType = ZodDiscriminatedUnion.create;
var intersectionType = ZodIntersection.create;
var tupleType = ZodTuple.create;
var recordType = ZodRecord.create;
var mapType = ZodMap.create;
var setType = ZodSet.create;
var functionType = ZodFunction.create;
var lazyType = ZodLazy.create;
var literalType = ZodLiteral.create;
var enumType = ZodEnum.create;
var nativeEnumType = ZodNativeEnum.create;
var promiseType = ZodPromise.create;
var effectsType = ZodEffects.create;
var optionalType = ZodOptional.create;
var nullableType = ZodNullable.create;
var preprocessType = ZodEffects.createWithPreprocess;
var pipelineType = ZodPipeline.create;
var ostring = () => stringType().optional();
var onumber = () => numberType().optional();
var oboolean = () => booleanType().optional();
var coerce = {
  string: ((arg) => ZodString.create({ ...arg, coerce: true })),
  number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),
  boolean: ((arg) => ZodBoolean.create({
    ...arg,
    coerce: true
  })),
  bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),
  date: ((arg) => ZodDate.create({ ...arg, coerce: true }))
};
var NEVER = INVALID;
var z = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  defaultErrorMap: errorMap,
  setErrorMap,
  getErrorMap,
  makeIssue,
  EMPTY_PATH,
  addIssueToContext,
  ParseStatus,
  INVALID,
  DIRTY,
  OK,
  isAborted,
  isDirty,
  isValid,
  isAsync,
  get util() {
    return util;
  },
  get objectUtil() {
    return objectUtil;
  },
  ZodParsedType,
  getParsedType,
  ZodType,
  ZodString,
  ZodNumber,
  ZodBigInt,
  ZodBoolean,
  ZodDate,
  ZodSymbol,
  ZodUndefined,
  ZodNull,
  ZodAny,
  ZodUnknown,
  ZodNever,
  ZodVoid,
  ZodArray,
  ZodObject,
  ZodUnion,
  ZodDiscriminatedUnion,
  ZodIntersection,
  ZodTuple,
  ZodRecord,
  ZodMap,
  ZodSet,
  ZodFunction,
  ZodLazy,
  ZodLiteral,
  ZodEnum,
  ZodNativeEnum,
  ZodPromise,
  ZodEffects,
  ZodTransformer: ZodEffects,
  ZodOptional,
  ZodNullable,
  ZodDefault,
  ZodCatch,
  ZodNaN,
  BRAND,
  ZodBranded,
  ZodPipeline,
  ZodReadonly,
  custom,
  Schema: ZodType,
  ZodSchema: ZodType,
  late,
  get ZodFirstPartyTypeKind() {
    return ZodFirstPartyTypeKind;
  },
  coerce,
  any: anyType,
  array: arrayType,
  bigint: bigIntType,
  boolean: booleanType,
  date: dateType,
  discriminatedUnion: discriminatedUnionType,
  effect: effectsType,
  "enum": enumType,
  "function": functionType,
  "instanceof": instanceOfType,
  intersection: intersectionType,
  lazy: lazyType,
  literal: literalType,
  map: mapType,
  nan: nanType,
  nativeEnum: nativeEnumType,
  never: neverType,
  "null": nullType,
  nullable: nullableType,
  number: numberType,
  object: objectType,
  oboolean,
  onumber,
  optional: optionalType,
  ostring,
  pipeline: pipelineType,
  preprocess: preprocessType,
  promise: promiseType,
  record: recordType,
  set: setType,
  strictObject: strictObjectType,
  string: stringType,
  symbol: symbolType,
  transformer: effectsType,
  tuple: tupleType,
  "undefined": undefinedType,
  union: unionType,
  unknown: unknownType,
  "void": voidType,
  NEVER,
  ZodIssueCode,
  quotelessJson,
  ZodError
});

// ../../node_modules/.pnpm/@directus+extensions@1.0.2_@unhead+vue@1.11.20_vue@3.5.28_typescript@5.9.3___knex@3.1.0_582501c913ce590f0928d3227fb67e1c/node_modules/@directus/extensions/dist/index.js
var APP_EXTENSION_TYPES = ["interface", "display", "layout", "module", "panel", "theme"];
var API_EXTENSION_TYPES = ["hook", "endpoint"];
var HYBRID_EXTENSION_TYPES = ["operation"];
var BUNDLE_EXTENSION_TYPES = ["bundle"];
var EXTENSION_TYPES = [
  ...APP_EXTENSION_TYPES,
  ...API_EXTENSION_TYPES,
  ...HYBRID_EXTENSION_TYPES,
  ...BUNDLE_EXTENSION_TYPES
];
var NESTED_EXTENSION_TYPES = [
  ...APP_EXTENSION_TYPES,
  ...API_EXTENSION_TYPES,
  ...HYBRID_EXTENSION_TYPES
];
var APP_OR_HYBRID_EXTENSION_TYPES = [...APP_EXTENSION_TYPES, ...HYBRID_EXTENSION_TYPES];
var APP_OR_HYBRID_EXTENSION_PACKAGE_TYPES = [
  ...APP_OR_HYBRID_EXTENSION_TYPES,
  ...BUNDLE_EXTENSION_TYPES
];
var EXTENSION_PKG_KEY = "directus:extension";
var SplitEntrypoint = z.object({
  app: z.string(),
  api: z.string()
});
var ExtensionSandboxRequestedScopes = z.object({
  request: z.optional(
    z.object({
      urls: z.array(z.string()),
      methods: z.array(
        z.union([z.literal("GET"), z.literal("POST"), z.literal("PATCH"), z.literal("PUT"), z.literal("DELETE")])
      )
    })
  ),
  log: z.optional(z.object({})),
  sleep: z.optional(z.object({}))
});
var ExtensionSandboxOptions = z.optional(
  z.object({
    enabled: z.boolean(),
    requestedScopes: ExtensionSandboxRequestedScopes
  })
);
var ExtensionOptionsBundleEntry = z.union([
  z.object({
    type: z.enum(API_EXTENSION_TYPES),
    name: z.string(),
    source: z.string()
  }),
  z.object({
    type: z.enum(APP_EXTENSION_TYPES),
    name: z.string(),
    source: z.string()
  }),
  z.object({
    type: z.enum(HYBRID_EXTENSION_TYPES),
    name: z.string(),
    source: SplitEntrypoint
  })
]);
var ExtensionOptionsBase = z.object({
  host: z.string(),
  hidden: z.boolean().optional()
});
var ExtensionOptionsApp = z.object({
  type: z.enum(APP_EXTENSION_TYPES),
  path: z.string(),
  source: z.string()
});
var ExtensionOptionsApi = z.object({
  type: z.enum(API_EXTENSION_TYPES),
  path: z.string(),
  source: z.string(),
  sandbox: ExtensionSandboxOptions
});
var ExtensionOptionsHybrid = z.object({
  type: z.enum(HYBRID_EXTENSION_TYPES),
  path: SplitEntrypoint,
  source: SplitEntrypoint,
  sandbox: ExtensionSandboxOptions
});
var ExtensionOptionsBundle = z.object({
  type: z.literal("bundle"),
  partial: z.boolean().optional(),
  path: SplitEntrypoint,
  entries: z.array(ExtensionOptionsBundleEntry)
});
var ExtensionOptionsBundleEntries = z.array(ExtensionOptionsBundleEntry);
var ExtensionOptions = ExtensionOptionsBase.and(
  z.union([ExtensionOptionsApp, ExtensionOptionsApi, ExtensionOptionsHybrid, ExtensionOptionsBundle])
);
var ExtensionManifest = z.object({
  name: z.string(),
  version: z.string(),
  type: z.union([z.literal("module"), z.literal("commonjs")]).optional(),
  description: z.string().optional(),
  icon: z.string().optional(),
  dependencies: z.record(z.string()).optional(),
  devDependencies: z.record(z.string()).optional(),
  [EXTENSION_PKG_KEY]: ExtensionOptions
});
function defineEndpoint(config) {
  return config;
}

// ../pdf-library/dist/server.js
var import_node_events = require("node:events");
var import_promises = require("node:stream/promises");
var import_buffer = require("buffer");
var import_node_stream = require("node:stream");
var import_node_crypto = __toESM(require("node:crypto"), 1);
var import_node_events2 = __toESM(require("node:events"), 1);
var import_node_stream2 = __toESM(require("node:stream"), 1);
var import_node_url = __toESM(require("node:url"), 1);
var import_node_stream3 = require("node:stream");
var import_node_zlib = __toESM(require("node:zlib"), 1);
var import_node_events3 = require("node:events");
var import_node_util = require("node:util");
var import_node_util2 = require("node:util");
var import_node_net = __toESM(require("node:net"), 1);
var import_node_dns = require("node:dns");
var import_node_util3 = require("node:util");
var import_node_os = __toESM(require("node:os"), 1);
var import_node_process = __toESM(require("node:process"), 1);
var import_node_util4 = require("node:util");
var import_node_tls = require("node:tls");
var import_node_https = __toESM(require("node:https"), 1);
var import_node_http = __toESM(require("node:http"), 1);
var import_node_crypto2 = require("node:crypto");
var import_node_diagnostics_channel = __toESM(require("node:diagnostics_channel"), 1);
var import_node_process2 = __toESM(require("node:process"), 1);
var import_node_buffer = require("node:buffer");
var import_node_stream4 = require("node:stream");
var import_node_http2 = __toESM(require("node:http"), 1);
var import_node_events4 = require("node:events");
var import_promises2 = require("node:timers/promises");
var import_node_fs = __toESM(require("node:fs"), 1);
var import_node_http3 = __toESM(require("node:http"), 1);
var import_node_https2 = __toESM(require("node:https"), 1);
var import_node_http4 = require("node:http");
var import_node_net2 = require("node:net");
var import_node_tls2 = __toESM(require("node:tls"), 1);
var import_node_url2 = require("node:url");
var import_node_url3 = require("node:url");
var import_node_http5 = __toESM(require("node:http"), 1);
var import_node_https3 = __toESM(require("node:https"), 1);
var import_node_net3 = require("node:net");
var import_node_tls3 = __toESM(require("node:tls"), 1);
var import_node_url4 = require("node:url");
var import_node_zlib2 = __toESM(require("node:zlib"), 1);
var import_node_stream5 = require("node:stream");
var import_node_url5 = require("node:url");
var import_promises3 = require("node:fs/promises");
var import_promises4 = require("node:fs/promises");
var import_module = require("module");
var import_web = require("node:stream/web");
var import_node_stream6 = require("node:stream");
var import_renderer = require("@react-pdf/renderer");
var import_renderer2 = require("@react-pdf/renderer");
var import_jsx_runtime = require("react/jsx-runtime");
var import_renderer3 = require("@react-pdf/renderer");
var import_jsx_runtime2 = require("react/jsx-runtime");
var import_renderer4 = require("@react-pdf/renderer");
var import_jsx_runtime3 = require("react/jsx-runtime");
var import_renderer5 = require("@react-pdf/renderer");
var import_jsx_runtime4 = require("react/jsx-runtime");
var import_renderer6 = require("@react-pdf/renderer");
var import_jsx_runtime5 = require("react/jsx-runtime");
var import_renderer7 = require("@react-pdf/renderer");
var import_jsx_runtime6 = require("react/jsx-runtime");
var import_renderer8 = require("@react-pdf/renderer");
var import_jsx_runtime7 = require("react/jsx-runtime");
var import_renderer9 = require("@react-pdf/renderer");
var import_jsx_runtime8 = require("react/jsx-runtime");
var import_jsx_runtime9 = require("react/jsx-runtime");
var import_renderer10 = require("@react-pdf/renderer");
var import_jsx_runtime10 = require("react/jsx-runtime");
var import_renderer11 = require("@react-pdf/renderer");
var import_jsx_runtime11 = require("react/jsx-runtime");
var import_renderer12 = require("@react-pdf/renderer");
var import_jsx_runtime12 = require("react/jsx-runtime");
var import_crypto = __toESM(require("crypto"), 1);
var import_url = __toESM(require("url"), 1);
var import_http = __toESM(require("http"), 1);
var import_https = __toESM(require("https"), 1);
var import_http2 = __toESM(require("http2"), 1);
var import_util = __toESM(require("util"), 1);
var import_zlib = __toESM(require("zlib"), 1);
var import_stream = __toESM(require("stream"), 1);
var import_stream2 = __toESM(require("stream"), 1);
var import_events = require("events");
var import_util2 = __toESM(require("util"), 1);
var import_stream3 = require("stream");
var import_stream4 = __toESM(require("stream"), 1);
var fs2 = __toESM(require("node:fs/promises"), 1);
var path = __toESM(require("node:path"), 1);
var import_node_fs2 = require("node:fs");
var crypto3 = __toESM(require("node:crypto"), 1);
var import_renderer13 = require("@react-pdf/renderer");
var import_react = require("react");
var __create2 = Object.create;
var __defProp2 = Object.defineProperty;
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
var __getOwnPropNames2 = Object.getOwnPropertyNames;
var __getProtoOf2 = Object.getPrototypeOf;
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
var __require = /* @__PURE__ */ ((x3) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x3, {
  get: (a2, b2) => (typeof require !== "undefined" ? require : a2)[b2]
}) : x3)(function(x3) {
  if (typeof require !== "undefined") return require.apply(this, arguments);
  throw Error('Dynamic require of "' + x3 + '" is not supported');
});
var __esm = (fn3, res) => function __init() {
  return fn3 && (res = (0, fn3[__getOwnPropNames2(fn3)[0]])(fn3 = 0)), res;
};
var __commonJS2 = (cb, mod3) => function __require2() {
  return mod3 || (0, cb[__getOwnPropNames2(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports;
};
var __export2 = (target, all52) => {
  for (var name2 in all52)
    __defProp2(target, name2, { get: all52[name2], enumerable: true });
};
var __copyProps2 = (to2, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames2(from))
      if (!__hasOwnProp2.call(to2, key) && key !== except)
        __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
  }
  return to2;
};
var __toESM2 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create2(__getProtoOf2(mod3)) : {}, __copyProps2(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod3 || !mod3.__esModule ? __defProp2(target, "default", { value: mod3, enumerable: true }) : target,
  mod3
));
var __toCommonJS2 = (mod3) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod3);
var tslib_es6_exports = {};
__export2(tslib_es6_exports, {
  __addDisposableResource: () => __addDisposableResource,
  __assign: () => __assign,
  __asyncDelegator: () => __asyncDelegator,
  __asyncGenerator: () => __asyncGenerator,
  __asyncValues: () => __asyncValues,
  __await: () => __await,
  __awaiter: () => __awaiter,
  __classPrivateFieldGet: () => __classPrivateFieldGet,
  __classPrivateFieldIn: () => __classPrivateFieldIn,
  __classPrivateFieldSet: () => __classPrivateFieldSet,
  __createBinding: () => __createBinding,
  __decorate: () => __decorate,
  __disposeResources: () => __disposeResources,
  __esDecorate: () => __esDecorate,
  __exportStar: () => __exportStar,
  __extends: () => __extends,
  __generator: () => __generator,
  __importDefault: () => __importDefault,
  __importStar: () => __importStar,
  __makeTemplateObject: () => __makeTemplateObject,
  __metadata: () => __metadata,
  __param: () => __param,
  __propKey: () => __propKey,
  __read: () => __read,
  __rest: () => __rest,
  __rewriteRelativeImportExtension: () => __rewriteRelativeImportExtension,
  __runInitializers: () => __runInitializers,
  __setFunctionName: () => __setFunctionName,
  __spread: () => __spread,
  __spreadArray: () => __spreadArray,
  __spreadArrays: () => __spreadArrays,
  __values: () => __values,
  default: () => tslib_es6_default
});
function __extends(d, b2) {
  if (typeof b2 !== "function" && b2 !== null)
    throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
  extendStatics(d, b2);
  function __() {
    this.constructor = d;
  }
  d.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
}
function __rest(s2, e2) {
  var t9 = {};
  for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p) && e2.indexOf(p) < 0)
    t9[p] = s2[p];
  if (s2 != null && typeof Object.getOwnPropertySymbols === "function")
    for (var i22 = 0, p = Object.getOwnPropertySymbols(s2); i22 < p.length; i22++) {
      if (e2.indexOf(p[i22]) < 0 && Object.prototype.propertyIsEnumerable.call(s2, p[i22]))
        t9[p[i22]] = s2[p[i22]];
    }
  return t9;
}
function __decorate(decorators, target, key, desc) {
  var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
  else for (var i22 = decorators.length - 1; i22 >= 0; i22--) if (d = decorators[i22]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
  return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
}
function __param(paramIndex, decorator) {
  return function(target, key) {
    decorator(target, key, paramIndex);
  };
}
function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
  function accept(f) {
    if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
    return f;
  }
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
  var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
  var _3, done = false;
  for (var i22 = decorators.length - 1; i22 >= 0; i22--) {
    var context = {};
    for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
    for (var p in contextIn.access) context.access[p] = contextIn.access[p];
    context.addInitializer = function(f) {
      if (done) throw new TypeError("Cannot add initializers after decoration has completed");
      extraInitializers.push(accept(f || null));
    };
    var result = (0, decorators[i22])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
    if (kind === "accessor") {
      if (result === void 0) continue;
      if (result === null || typeof result !== "object") throw new TypeError("Object expected");
      if (_3 = accept(result.get)) descriptor.get = _3;
      if (_3 = accept(result.set)) descriptor.set = _3;
      if (_3 = accept(result.init)) initializers.unshift(_3);
    } else if (_3 = accept(result)) {
      if (kind === "field") initializers.unshift(_3);
      else descriptor[key] = _3;
    }
  }
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
  done = true;
}
function __runInitializers(thisArg, initializers, value) {
  var useValue = arguments.length > 2;
  for (var i22 = 0; i22 < initializers.length; i22++) {
    value = useValue ? initializers[i22].call(thisArg, value) : initializers[i22].call(thisArg);
  }
  return useValue ? value : void 0;
}
function __propKey(x3) {
  return typeof x3 === "symbol" ? x3 : "".concat(x3);
}
function __setFunctionName(f, name2, prefix) {
  if (typeof name2 === "symbol") name2 = name2.description ? "[".concat(name2.description, "]") : "";
  return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name2) : name2 });
}
function __metadata(metadataKey, metadataValue) {
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P3, generator2) {
  function adopt(value) {
    return value instanceof P3 ? value : new P3(function(resolve2) {
      resolve2(value);
    });
  }
  return new (P3 || (P3 = Promise))(function(resolve2, reject) {
    function fulfilled(value) {
      try {
        step(generator2.next(value));
      } catch (e2) {
        reject(e2);
      }
    }
    function rejected(value) {
      try {
        step(generator2["throw"](value));
      } catch (e2) {
        reject(e2);
      }
    }
    function step(result) {
      result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected);
    }
    step((generator2 = generator2.apply(thisArg, _arguments || [])).next());
  });
}
function __generator(thisArg, body) {
  var _3 = { label: 0, sent: function() {
    if (t9[0] & 1) throw t9[1];
    return t9[1];
  }, trys: [], ops: [] }, f, y2, t9, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
  return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
    return this;
  }), g;
  function verb(n22) {
    return function(v2) {
      return step([n22, v2]);
    };
  }
  function step(op) {
    if (f) throw new TypeError("Generator is already executing.");
    while (g && (g = 0, op[0] && (_3 = 0)), _3) try {
      if (f = 1, y2 && (t9 = op[0] & 2 ? y2["return"] : op[0] ? y2["throw"] || ((t9 = y2["return"]) && t9.call(y2), 0) : y2.next) && !(t9 = t9.call(y2, op[1])).done) return t9;
      if (y2 = 0, t9) op = [op[0] & 2, t9.value];
      switch (op[0]) {
        case 0:
        case 1:
          t9 = op;
          break;
        case 4:
          _3.label++;
          return { value: op[1], done: false };
        case 5:
          _3.label++;
          y2 = op[1];
          op = [0];
          continue;
        case 7:
          op = _3.ops.pop();
          _3.trys.pop();
          continue;
        default:
          if (!(t9 = _3.trys, t9 = t9.length > 0 && t9[t9.length - 1]) && (op[0] === 6 || op[0] === 2)) {
            _3 = 0;
            continue;
          }
          if (op[0] === 3 && (!t9 || op[1] > t9[0] && op[1] < t9[3])) {
            _3.label = op[1];
            break;
          }
          if (op[0] === 6 && _3.label < t9[1]) {
            _3.label = t9[1];
            t9 = op;
            break;
          }
          if (t9 && _3.label < t9[2]) {
            _3.label = t9[2];
            _3.ops.push(op);
            break;
          }
          if (t9[2]) _3.ops.pop();
          _3.trys.pop();
          continue;
      }
      op = body.call(thisArg, _3);
    } catch (e2) {
      op = [6, e2];
      y2 = 0;
    } finally {
      f = t9 = 0;
    }
    if (op[0] & 5) throw op[1];
    return { value: op[0] ? op[1] : void 0, done: true };
  }
}
function __exportStar(m2, o22) {
  for (var p in m2) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o22, p)) __createBinding(o22, m2, p);
}
function __values(o22) {
  var s2 = typeof Symbol === "function" && Symbol.iterator, m2 = s2 && o22[s2], i22 = 0;
  if (m2) return m2.call(o22);
  if (o22 && typeof o22.length === "number") return {
    next: function() {
      if (o22 && i22 >= o22.length) o22 = void 0;
      return { value: o22 && o22[i22++], done: !o22 };
    }
  };
  throw new TypeError(s2 ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o22, n22) {
  var m2 = typeof Symbol === "function" && o22[Symbol.iterator];
  if (!m2) return o22;
  var i22 = m2.call(o22), r2, ar3 = [], e2;
  try {
    while ((n22 === void 0 || n22-- > 0) && !(r2 = i22.next()).done) ar3.push(r2.value);
  } catch (error) {
    e2 = { error };
  } finally {
    try {
      if (r2 && !r2.done && (m2 = i22["return"])) m2.call(i22);
    } finally {
      if (e2) throw e2.error;
    }
  }
  return ar3;
}
function __spread() {
  for (var ar3 = [], i22 = 0; i22 < arguments.length; i22++)
    ar3 = ar3.concat(__read(arguments[i22]));
  return ar3;
}
function __spreadArrays() {
  for (var s2 = 0, i22 = 0, il = arguments.length; i22 < il; i22++) s2 += arguments[i22].length;
  for (var r2 = Array(s2), k3 = 0, i22 = 0; i22 < il; i22++)
    for (var a2 = arguments[i22], j2 = 0, jl = a2.length; j2 < jl; j2++, k3++)
      r2[k3] = a2[j2];
  return r2;
}
function __spreadArray(to2, from, pack) {
  if (pack || arguments.length === 2) for (var i22 = 0, l2 = from.length, ar3; i22 < l2; i22++) {
    if (ar3 || !(i22 in from)) {
      if (!ar3) ar3 = Array.prototype.slice.call(from, 0, i22);
      ar3[i22] = from[i22];
    }
  }
  return to2.concat(ar3 || Array.prototype.slice.call(from));
}
function __await(v2) {
  return this instanceof __await ? (this.v = v2, this) : new __await(v2);
}
function __asyncGenerator(thisArg, _arguments, generator2) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var g = generator2.apply(thisArg, _arguments || []), i22, q3 = [];
  return i22 = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i22[Symbol.asyncIterator] = function() {
    return this;
  }, i22;
  function awaitReturn(f) {
    return function(v2) {
      return Promise.resolve(v2).then(f, reject);
    };
  }
  function verb(n22, f) {
    if (g[n22]) {
      i22[n22] = function(v2) {
        return new Promise(function(a2, b2) {
          q3.push([n22, v2, a2, b2]) > 1 || resume(n22, v2);
        });
      };
      if (f) i22[n22] = f(i22[n22]);
    }
  }
  function resume(n22, v2) {
    try {
      step(g[n22](v2));
    } catch (e2) {
      settle2(q3[0][3], e2);
    }
  }
  function step(r2) {
    r2.value instanceof __await ? Promise.resolve(r2.value.v).then(fulfill, reject) : settle2(q3[0][2], r2);
  }
  function fulfill(value) {
    resume("next", value);
  }
  function reject(value) {
    resume("throw", value);
  }
  function settle2(f, v2) {
    if (f(v2), q3.shift(), q3.length) resume(q3[0][0], q3[0][1]);
  }
}
function __asyncDelegator(o22) {
  var i22, p;
  return i22 = {}, verb("next"), verb("throw", function(e2) {
    throw e2;
  }), verb("return"), i22[Symbol.iterator] = function() {
    return this;
  }, i22;
  function verb(n22, f) {
    i22[n22] = o22[n22] ? function(v2) {
      return (p = !p) ? { value: __await(o22[n22](v2)), done: false } : f ? f(v2) : v2;
    } : f;
  }
}
function __asyncValues(o22) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var m2 = o22[Symbol.asyncIterator], i22;
  return m2 ? m2.call(o22) : (o22 = typeof __values === "function" ? __values(o22) : o22[Symbol.iterator](), i22 = {}, verb("next"), verb("throw"), verb("return"), i22[Symbol.asyncIterator] = function() {
    return this;
  }, i22);
  function verb(n22) {
    i22[n22] = o22[n22] && function(v2) {
      return new Promise(function(resolve2, reject) {
        v2 = o22[n22](v2), settle2(resolve2, reject, v2.done, v2.value);
      });
    };
  }
  function settle2(resolve2, reject, d, v2) {
    Promise.resolve(v2).then(function(v22) {
      resolve2({ value: v22, done: d });
    }, reject);
  }
}
function __makeTemplateObject(cooked, raw) {
  if (Object.defineProperty) {
    Object.defineProperty(cooked, "raw", { value: raw });
  } else {
    cooked.raw = raw;
  }
  return cooked;
}
function __importStar(mod3) {
  if (mod3 && mod3.__esModule) return mod3;
  var result = {};
  if (mod3 != null) {
    for (var k3 = ownKeys(mod3), i22 = 0; i22 < k3.length; i22++) if (k3[i22] !== "default") __createBinding(result, mod3, k3[i22]);
  }
  __setModuleDefault(result, mod3);
  return result;
}
function __importDefault(mod3) {
  return mod3 && mod3.__esModule ? mod3 : { default: mod3 };
}
function __classPrivateFieldGet(receiver, state, kind, f) {
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
function __classPrivateFieldSet(receiver, state, value, kind, f) {
  if (kind === "m") throw new TypeError("Private method is not writable");
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
  return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
}
function __classPrivateFieldIn(state, receiver) {
  if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object");
  return typeof state === "function" ? receiver === state : state.has(receiver);
}
function __addDisposableResource(env, value, async) {
  if (value !== null && value !== void 0) {
    if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
    var dispose, inner;
    if (async) {
      if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
      dispose = value[Symbol.asyncDispose];
    }
    if (dispose === void 0) {
      if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
      dispose = value[Symbol.dispose];
      if (async) inner = dispose;
    }
    if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
    if (inner) dispose = function() {
      try {
        inner.call(this);
      } catch (e2) {
        return Promise.reject(e2);
      }
    };
    env.stack.push({ value, dispose, async });
  } else if (async) {
    env.stack.push({ async: true });
  }
  return value;
}
function __disposeResources(env) {
  function fail(e2) {
    env.error = env.hasError ? new _SuppressedError(e2, env.error, "An error was suppressed during disposal.") : e2;
    env.hasError = true;
  }
  var r2, s2 = 0;
  function next() {
    while (r2 = env.stack.pop()) {
      try {
        if (!r2.async && s2 === 1) return s2 = 0, env.stack.push(r2), Promise.resolve().then(next);
        if (r2.dispose) {
          var result = r2.dispose.call(r2.value);
          if (r2.async) return s2 |= 2, Promise.resolve(result).then(next, function(e2) {
            fail(e2);
            return next();
          });
        } else s2 |= 1;
      } catch (e2) {
        fail(e2);
      }
    }
    if (s2 === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
    if (env.hasError) throw env.error;
  }
  return next();
}
function __rewriteRelativeImportExtension(path22, preserveJsx) {
  if (typeof path22 === "string" && /^\.\.?\//.test(path22)) {
    return path22.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m2, tsx, d, ext, cm) {
      return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m2 : d + ext + "." + cm.toLowerCase() + "js";
    });
  }
  return path22;
}
var extendStatics;
var __assign;
var __createBinding;
var __setModuleDefault;
var ownKeys;
var _SuppressedError;
var tslib_es6_default;
var init_tslib_es6 = __esm({
  "../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"() {
    extendStatics = function(d, b2) {
      extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b22) {
        d2.__proto__ = b22;
      } || function(d2, b22) {
        for (var p in b22) if (Object.prototype.hasOwnProperty.call(b22, p)) d2[p] = b22[p];
      };
      return extendStatics(d, b2);
    };
    __assign = function() {
      __assign = Object.assign || function __assign2(t9) {
        for (var s2, i22 = 1, n22 = arguments.length; i22 < n22; i22++) {
          s2 = arguments[i22];
          for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p)) t9[p] = s2[p];
        }
        return t9;
      };
      return __assign.apply(this, arguments);
    };
    __createBinding = Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    });
    __setModuleDefault = Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    };
    ownKeys = function(o22) {
      ownKeys = Object.getOwnPropertyNames || function(o3) {
        var ar3 = [];
        for (var k3 in o3) if (Object.prototype.hasOwnProperty.call(o3, k3)) ar3[ar3.length] = k3;
        return ar3;
      };
      return ownKeys(o22);
    };
    _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
      var e2 = new Error(message);
      return e2.name = "SuppressedError", e2.error = error, e2.suppressed = suppressed, e2;
    };
    tslib_es6_default = {
      __extends,
      __assign,
      __rest,
      __decorate,
      __param,
      __esDecorate,
      __runInitializers,
      __propKey,
      __setFunctionName,
      __metadata,
      __awaiter,
      __generator,
      __createBinding,
      __exportStar,
      __values,
      __read,
      __spread,
      __spreadArrays,
      __spreadArray,
      __await,
      __asyncGenerator,
      __asyncDelegator,
      __asyncValues,
      __makeTemplateObject,
      __importStar,
      __importDefault,
      __classPrivateFieldGet,
      __classPrivateFieldSet,
      __classPrivateFieldIn,
      __addDisposableResource,
      __disposeResources,
      __rewriteRelativeImportExtension
    };
  }
});
var require_errors = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/errors.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SessionError = exports2.RetryRequestError = exports2.MissingRouteError = exports2.CriticalError = exports2.NonRetryableError = void 0;
    var NonRetryableError2 = class extends Error {
    };
    exports2.NonRetryableError = NonRetryableError2;
    var CriticalError2 = class extends NonRetryableError2 {
    };
    exports2.CriticalError = CriticalError2;
    var MissingRouteError2 = class extends CriticalError2 {
    };
    exports2.MissingRouteError = MissingRouteError2;
    var RetryRequestError2 = class extends Error {
      constructor(message) {
        super(message ?? "Request is being retried at the user's request");
      }
    };
    exports2.RetryRequestError = RetryRequestError2;
    var SessionError2 = class extends RetryRequestError2 {
      constructor(message) {
        super(`Detected a session error, rotating session... ${message ? `
${message}` : ""}`);
      }
    };
    exports2.SessionError = SessionError2;
  }
});
var require_callsites = __commonJS2({
  "../../node_modules/.pnpm/callsites@3.1.0/node_modules/callsites/index.js"(exports2, module2) {
    "use strict";
    var callsites2 = () => {
      const _prepareStackTrace = Error.prepareStackTrace;
      Error.prepareStackTrace = (_3, stack2) => stack2;
      const stack = new Error().stack.slice(1);
      Error.prepareStackTrace = _prepareStackTrace;
      return stack;
    };
    module2.exports = callsites2;
    module2.exports.default = callsites2;
  }
});
var require_is_valid_identifier = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/is-valid-identifier.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var identifierRegex2 = /^[a-z$_][$\w]*$/i;
    var reservedSet2 = /* @__PURE__ */ new Set([
      "undefined",
      "null",
      "true",
      "false",
      "super",
      "this",
      "Infinity",
      "NaN"
    ]);
    exports2.default = (string) => string && !reservedSet2.has(string) && identifierRegex2.test(string);
  }
});
var require_is_node = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/node/is-node.js"(exports2) {
    "use strict";
    var _a22;
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.default = Boolean((_a22 = process === null || process === void 0 ? void 0 : process.versions) === null || _a22 === void 0 ? void 0 : _a22.node);
  }
});
var require_infer_label = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/infer-label.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.inferLabel = void 0;
    var fs32 = __require("fs");
    var is_valid_identifier_1 = require_is_valid_identifier();
    var is_node_1 = require_is_node();
    var labelRegex2 = /^.*?\((?<label>.*?)[,)]/;
    var inferLabel2 = (callsites2) => {
      var _a22;
      if (!is_node_1.default) {
        return;
      }
      const functionCallStackFrame = callsites2[1];
      if (!functionCallStackFrame) {
        return;
      }
      const fileName = functionCallStackFrame.getFileName();
      const lineNumber = functionCallStackFrame.getLineNumber();
      const columnNumber = functionCallStackFrame.getColumnNumber();
      if (fileName === null || lineNumber === null || columnNumber === null) {
        return;
      }
      let content2 = [];
      try {
        content2 = fs32.readFileSync(fileName, "utf8").split("\n");
      } catch {
        return;
      }
      let line = content2[lineNumber - 1];
      if (!line) {
        return;
      }
      line = line.slice(columnNumber - 1);
      const match = labelRegex2.exec(line);
      if (!((_a22 = match === null || match === void 0 ? void 0 : match.groups) === null || _a22 === void 0 ? void 0 : _a22.label)) {
        return;
      }
      const token2 = match.groups.label;
      if ((0, is_valid_identifier_1.default)(token2) || (0, is_valid_identifier_1.default)(token2.split(".").pop())) {
        return token2;
      }
      return;
    };
    exports2.inferLabel = inferLabel2;
  }
});
var require_dist = __commonJS2({
  "../../node_modules/.pnpm/@sindresorhus+is@4.6.0/node_modules/@sindresorhus/is/dist/index.js"(exports2, module2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var typedArrayTypeNames3 = [
      "Int8Array",
      "Uint8Array",
      "Uint8ClampedArray",
      "Int16Array",
      "Uint16Array",
      "Int32Array",
      "Uint32Array",
      "Float32Array",
      "Float64Array",
      "BigInt64Array",
      "BigUint64Array"
    ];
    function isTypedArrayName3(name2) {
      return typedArrayTypeNames3.includes(name2);
    }
    var objectTypeNames3 = [
      "Function",
      "Generator",
      "AsyncGenerator",
      "GeneratorFunction",
      "AsyncGeneratorFunction",
      "AsyncFunction",
      "Observable",
      "Array",
      "Buffer",
      "Blob",
      "Object",
      "RegExp",
      "Date",
      "Error",
      "Map",
      "Set",
      "WeakMap",
      "WeakSet",
      "ArrayBuffer",
      "SharedArrayBuffer",
      "DataView",
      "Promise",
      "URL",
      "FormData",
      "URLSearchParams",
      "HTMLElement",
      ...typedArrayTypeNames3
    ];
    function isObjectTypeName3(name2) {
      return objectTypeNames3.includes(name2);
    }
    var primitiveTypeNames3 = [
      "null",
      "undefined",
      "string",
      "number",
      "bigint",
      "boolean",
      "symbol"
    ];
    function isPrimitiveTypeName3(name2) {
      return primitiveTypeNames3.includes(name2);
    }
    function isOfType2(type) {
      return (value) => typeof value === type;
    }
    var { toString: toString5 } = Object.prototype;
    var getObjectType3 = (value) => {
      const objectTypeName = toString5.call(value).slice(8, -1);
      if (/HTML\w+Element/.test(objectTypeName) && is32.domElement(value)) {
        return "HTMLElement";
      }
      if (isObjectTypeName3(objectTypeName)) {
        return objectTypeName;
      }
      return void 0;
    };
    var isObjectOfType2 = (type) => (value) => getObjectType3(value) === type;
    function is32(value) {
      if (value === null) {
        return "null";
      }
      switch (typeof value) {
        case "undefined":
          return "undefined";
        case "string":
          return "string";
        case "number":
          return "number";
        case "boolean":
          return "boolean";
        case "function":
          return "Function";
        case "bigint":
          return "bigint";
        case "symbol":
          return "symbol";
        default:
      }
      if (is32.observable(value)) {
        return "Observable";
      }
      if (is32.array(value)) {
        return "Array";
      }
      if (is32.buffer(value)) {
        return "Buffer";
      }
      const tagType = getObjectType3(value);
      if (tagType) {
        return tagType;
      }
      if (value instanceof String || value instanceof Boolean || value instanceof Number) {
        throw new TypeError("Please don't use object wrappers for primitive types");
      }
      return "Object";
    }
    is32.undefined = isOfType2("undefined");
    is32.string = isOfType2("string");
    var isNumberType2 = isOfType2("number");
    is32.number = (value) => isNumberType2(value) && !is32.nan(value);
    is32.bigint = isOfType2("bigint");
    is32.function_ = isOfType2("function");
    is32.null_ = (value) => value === null;
    is32.class_ = (value) => is32.function_(value) && value.toString().startsWith("class ");
    is32.boolean = (value) => value === true || value === false;
    is32.symbol = isOfType2("symbol");
    is32.numericString = (value) => is32.string(value) && !is32.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value));
    is32.array = (value, assertion) => {
      if (!Array.isArray(value)) {
        return false;
      }
      if (!is32.function_(assertion)) {
        return true;
      }
      return value.every(assertion);
    };
    is32.buffer = (value) => {
      var _a22, _b2, _c, _d;
      return (_d = (_c = (_b2 = (_a22 = value) === null || _a22 === void 0 ? void 0 : _a22.constructor) === null || _b2 === void 0 ? void 0 : _b2.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b2, value)) !== null && _d !== void 0 ? _d : false;
    };
    is32.blob = (value) => isObjectOfType2("Blob")(value);
    is32.nullOrUndefined = (value) => is32.null_(value) || is32.undefined(value);
    is32.object = (value) => !is32.null_(value) && (typeof value === "object" || is32.function_(value));
    is32.iterable = (value) => {
      var _a22;
      return is32.function_((_a22 = value) === null || _a22 === void 0 ? void 0 : _a22[Symbol.iterator]);
    };
    is32.asyncIterable = (value) => {
      var _a22;
      return is32.function_((_a22 = value) === null || _a22 === void 0 ? void 0 : _a22[Symbol.asyncIterator]);
    };
    is32.generator = (value) => {
      var _a22, _b2;
      return is32.iterable(value) && is32.function_((_a22 = value) === null || _a22 === void 0 ? void 0 : _a22.next) && is32.function_((_b2 = value) === null || _b2 === void 0 ? void 0 : _b2.throw);
    };
    is32.asyncGenerator = (value) => is32.asyncIterable(value) && is32.function_(value.next) && is32.function_(value.throw);
    is32.nativePromise = (value) => isObjectOfType2("Promise")(value);
    var hasPromiseAPI = (value) => {
      var _a22, _b2;
      return is32.function_((_a22 = value) === null || _a22 === void 0 ? void 0 : _a22.then) && is32.function_((_b2 = value) === null || _b2 === void 0 ? void 0 : _b2.catch);
    };
    is32.promise = (value) => is32.nativePromise(value) || hasPromiseAPI(value);
    is32.generatorFunction = isObjectOfType2("GeneratorFunction");
    is32.asyncGeneratorFunction = (value) => getObjectType3(value) === "AsyncGeneratorFunction";
    is32.asyncFunction = (value) => getObjectType3(value) === "AsyncFunction";
    is32.boundFunction = (value) => is32.function_(value) && !value.hasOwnProperty("prototype");
    is32.regExp = isObjectOfType2("RegExp");
    is32.date = isObjectOfType2("Date");
    is32.error = isObjectOfType2("Error");
    is32.map = (value) => isObjectOfType2("Map")(value);
    is32.set = (value) => isObjectOfType2("Set")(value);
    is32.weakMap = (value) => isObjectOfType2("WeakMap")(value);
    is32.weakSet = (value) => isObjectOfType2("WeakSet")(value);
    is32.int8Array = isObjectOfType2("Int8Array");
    is32.uint8Array = isObjectOfType2("Uint8Array");
    is32.uint8ClampedArray = isObjectOfType2("Uint8ClampedArray");
    is32.int16Array = isObjectOfType2("Int16Array");
    is32.uint16Array = isObjectOfType2("Uint16Array");
    is32.int32Array = isObjectOfType2("Int32Array");
    is32.uint32Array = isObjectOfType2("Uint32Array");
    is32.float32Array = isObjectOfType2("Float32Array");
    is32.float64Array = isObjectOfType2("Float64Array");
    is32.bigInt64Array = isObjectOfType2("BigInt64Array");
    is32.bigUint64Array = isObjectOfType2("BigUint64Array");
    is32.arrayBuffer = isObjectOfType2("ArrayBuffer");
    is32.sharedArrayBuffer = isObjectOfType2("SharedArrayBuffer");
    is32.dataView = isObjectOfType2("DataView");
    is32.enumCase = (value, targetEnum) => Object.values(targetEnum).includes(value);
    is32.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;
    is32.urlInstance = (value) => isObjectOfType2("URL")(value);
    is32.urlString = (value) => {
      if (!is32.string(value)) {
        return false;
      }
      try {
        new URL(value);
        return true;
      } catch (_a22) {
        return false;
      }
    };
    is32.truthy = (value) => Boolean(value);
    is32.falsy = (value) => !value;
    is32.nan = (value) => Number.isNaN(value);
    is32.primitive = (value) => is32.null_(value) || isPrimitiveTypeName3(typeof value);
    is32.integer = (value) => Number.isInteger(value);
    is32.safeInteger = (value) => Number.isSafeInteger(value);
    is32.plainObject = (value) => {
      if (toString5.call(value) !== "[object Object]") {
        return false;
      }
      const prototype2 = Object.getPrototypeOf(value);
      return prototype2 === null || prototype2 === Object.getPrototypeOf({});
    };
    is32.typedArray = (value) => isTypedArrayName3(getObjectType3(value));
    var isValidLength3 = (value) => is32.safeInteger(value) && value >= 0;
    is32.arrayLike = (value) => !is32.nullOrUndefined(value) && !is32.function_(value) && isValidLength3(value.length);
    is32.inRange = (value, range) => {
      if (is32.number(range)) {
        return value >= Math.min(0, range) && value <= Math.max(range, 0);
      }
      if (is32.array(range) && range.length === 2) {
        return value >= Math.min(...range) && value <= Math.max(...range);
      }
      throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);
    };
    var NODE_TYPE_ELEMENT3 = 1;
    var DOM_PROPERTIES_TO_CHECK3 = [
      "innerHTML",
      "ownerDocument",
      "style",
      "attributes",
      "nodeValue"
    ];
    is32.domElement = (value) => {
      return is32.object(value) && value.nodeType === NODE_TYPE_ELEMENT3 && is32.string(value.nodeName) && !is32.plainObject(value) && DOM_PROPERTIES_TO_CHECK3.every((property) => property in value);
    };
    is32.observable = (value) => {
      var _a22, _b2, _c, _d;
      if (!value) {
        return false;
      }
      if (value === ((_b2 = (_a22 = value)[Symbol.observable]) === null || _b2 === void 0 ? void 0 : _b2.call(_a22))) {
        return true;
      }
      if (value === ((_d = (_c = value)["@@observable"]) === null || _d === void 0 ? void 0 : _d.call(_c))) {
        return true;
      }
      return false;
    };
    is32.nodeStream = (value) => is32.object(value) && is32.function_(value.pipe) && !is32.observable(value);
    is32.infinite = (value) => value === Infinity || value === -Infinity;
    var isAbsoluteMod22 = (remainder) => (value) => is32.integer(value) && Math.abs(value % 2) === remainder;
    is32.evenInteger = isAbsoluteMod22(0);
    is32.oddInteger = isAbsoluteMod22(1);
    is32.emptyArray = (value) => is32.array(value) && value.length === 0;
    is32.nonEmptyArray = (value) => is32.array(value) && value.length > 0;
    is32.emptyString = (value) => is32.string(value) && value.length === 0;
    var isWhiteSpaceString2 = (value) => is32.string(value) && !/\S/.test(value);
    is32.emptyStringOrWhitespace = (value) => is32.emptyString(value) || isWhiteSpaceString2(value);
    is32.nonEmptyString = (value) => is32.string(value) && value.length > 0;
    is32.nonEmptyStringAndNotWhitespace = (value) => is32.string(value) && !is32.emptyStringOrWhitespace(value);
    is32.emptyObject = (value) => is32.object(value) && !is32.map(value) && !is32.set(value) && Object.keys(value).length === 0;
    is32.nonEmptyObject = (value) => is32.object(value) && !is32.map(value) && !is32.set(value) && Object.keys(value).length > 0;
    is32.emptySet = (value) => is32.set(value) && value.size === 0;
    is32.nonEmptySet = (value) => is32.set(value) && value.size > 0;
    is32.emptyMap = (value) => is32.map(value) && value.size === 0;
    is32.nonEmptyMap = (value) => is32.map(value) && value.size > 0;
    is32.propertyKey = (value) => is32.any([is32.string, is32.number, is32.symbol], value);
    is32.formData = (value) => isObjectOfType2("FormData")(value);
    is32.urlSearchParams = (value) => isObjectOfType2("URLSearchParams")(value);
    var predicateOnArray3 = (method, predicate, values) => {
      if (!is32.function_(predicate)) {
        throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
      }
      if (values.length === 0) {
        throw new TypeError("Invalid number of values");
      }
      return method.call(values, predicate);
    };
    is32.any = (predicate, ...values) => {
      const predicates3 = is32.array(predicate) ? predicate : [predicate];
      return predicates3.some((singlePredicate) => predicateOnArray3(Array.prototype.some, singlePredicate, values));
    };
    is32.all = (predicate, ...values) => predicateOnArray3(Array.prototype.every, predicate, values);
    var assertType2 = (condition, description, value, options = {}) => {
      if (!condition) {
        const { multipleValues } = options;
        const valuesMessage = multipleValues ? `received values of types ${[
          ...new Set(value.map((singleValue) => `\`${is32(singleValue)}\``))
        ].join(", ")}` : `received value of type \`${is32(value)}\``;
        throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`);
      }
    };
    exports2.assert = {
      // Unknowns.
      undefined: (value) => assertType2(is32.undefined(value), "undefined", value),
      string: (value) => assertType2(is32.string(value), "string", value),
      number: (value) => assertType2(is32.number(value), "number", value),
      bigint: (value) => assertType2(is32.bigint(value), "bigint", value),
      // eslint-disable-next-line @typescript-eslint/ban-types
      function_: (value) => assertType2(is32.function_(value), "Function", value),
      null_: (value) => assertType2(is32.null_(value), "null", value),
      class_: (value) => assertType2(is32.class_(value), "Class", value),
      boolean: (value) => assertType2(is32.boolean(value), "boolean", value),
      symbol: (value) => assertType2(is32.symbol(value), "symbol", value),
      numericString: (value) => assertType2(is32.numericString(value), "string with a number", value),
      array: (value, assertion) => {
        const assert3 = assertType2;
        assert3(is32.array(value), "Array", value);
        if (assertion) {
          value.forEach(assertion);
        }
      },
      buffer: (value) => assertType2(is32.buffer(value), "Buffer", value),
      blob: (value) => assertType2(is32.blob(value), "Blob", value),
      nullOrUndefined: (value) => assertType2(is32.nullOrUndefined(value), "null or undefined", value),
      object: (value) => assertType2(is32.object(value), "Object", value),
      iterable: (value) => assertType2(is32.iterable(value), "Iterable", value),
      asyncIterable: (value) => assertType2(is32.asyncIterable(value), "AsyncIterable", value),
      generator: (value) => assertType2(is32.generator(value), "Generator", value),
      asyncGenerator: (value) => assertType2(is32.asyncGenerator(value), "AsyncGenerator", value),
      nativePromise: (value) => assertType2(is32.nativePromise(value), "native Promise", value),
      promise: (value) => assertType2(is32.promise(value), "Promise", value),
      generatorFunction: (value) => assertType2(is32.generatorFunction(value), "GeneratorFunction", value),
      asyncGeneratorFunction: (value) => assertType2(is32.asyncGeneratorFunction(value), "AsyncGeneratorFunction", value),
      // eslint-disable-next-line @typescript-eslint/ban-types
      asyncFunction: (value) => assertType2(is32.asyncFunction(value), "AsyncFunction", value),
      // eslint-disable-next-line @typescript-eslint/ban-types
      boundFunction: (value) => assertType2(is32.boundFunction(value), "Function", value),
      regExp: (value) => assertType2(is32.regExp(value), "RegExp", value),
      date: (value) => assertType2(is32.date(value), "Date", value),
      error: (value) => assertType2(is32.error(value), "Error", value),
      map: (value) => assertType2(is32.map(value), "Map", value),
      set: (value) => assertType2(is32.set(value), "Set", value),
      weakMap: (value) => assertType2(is32.weakMap(value), "WeakMap", value),
      weakSet: (value) => assertType2(is32.weakSet(value), "WeakSet", value),
      int8Array: (value) => assertType2(is32.int8Array(value), "Int8Array", value),
      uint8Array: (value) => assertType2(is32.uint8Array(value), "Uint8Array", value),
      uint8ClampedArray: (value) => assertType2(is32.uint8ClampedArray(value), "Uint8ClampedArray", value),
      int16Array: (value) => assertType2(is32.int16Array(value), "Int16Array", value),
      uint16Array: (value) => assertType2(is32.uint16Array(value), "Uint16Array", value),
      int32Array: (value) => assertType2(is32.int32Array(value), "Int32Array", value),
      uint32Array: (value) => assertType2(is32.uint32Array(value), "Uint32Array", value),
      float32Array: (value) => assertType2(is32.float32Array(value), "Float32Array", value),
      float64Array: (value) => assertType2(is32.float64Array(value), "Float64Array", value),
      bigInt64Array: (value) => assertType2(is32.bigInt64Array(value), "BigInt64Array", value),
      bigUint64Array: (value) => assertType2(is32.bigUint64Array(value), "BigUint64Array", value),
      arrayBuffer: (value) => assertType2(is32.arrayBuffer(value), "ArrayBuffer", value),
      sharedArrayBuffer: (value) => assertType2(is32.sharedArrayBuffer(value), "SharedArrayBuffer", value),
      dataView: (value) => assertType2(is32.dataView(value), "DataView", value),
      enumCase: (value, targetEnum) => assertType2(is32.enumCase(value, targetEnum), "EnumCase", value),
      urlInstance: (value) => assertType2(is32.urlInstance(value), "URL", value),
      urlString: (value) => assertType2(is32.urlString(value), "string with a URL", value),
      truthy: (value) => assertType2(is32.truthy(value), "truthy", value),
      falsy: (value) => assertType2(is32.falsy(value), "falsy", value),
      nan: (value) => assertType2(is32.nan(value), "NaN", value),
      primitive: (value) => assertType2(is32.primitive(value), "primitive", value),
      integer: (value) => assertType2(is32.integer(value), "integer", value),
      safeInteger: (value) => assertType2(is32.safeInteger(value), "integer", value),
      plainObject: (value) => assertType2(is32.plainObject(value), "plain object", value),
      typedArray: (value) => assertType2(is32.typedArray(value), "TypedArray", value),
      arrayLike: (value) => assertType2(is32.arrayLike(value), "array-like", value),
      domElement: (value) => assertType2(is32.domElement(value), "HTMLElement", value),
      observable: (value) => assertType2(is32.observable(value), "Observable", value),
      nodeStream: (value) => assertType2(is32.nodeStream(value), "Node.js Stream", value),
      infinite: (value) => assertType2(is32.infinite(value), "infinite number", value),
      emptyArray: (value) => assertType2(is32.emptyArray(value), "empty array", value),
      nonEmptyArray: (value) => assertType2(is32.nonEmptyArray(value), "non-empty array", value),
      emptyString: (value) => assertType2(is32.emptyString(value), "empty string", value),
      emptyStringOrWhitespace: (value) => assertType2(is32.emptyStringOrWhitespace(value), "empty string or whitespace", value),
      nonEmptyString: (value) => assertType2(is32.nonEmptyString(value), "non-empty string", value),
      nonEmptyStringAndNotWhitespace: (value) => assertType2(is32.nonEmptyStringAndNotWhitespace(value), "non-empty string and not whitespace", value),
      emptyObject: (value) => assertType2(is32.emptyObject(value), "empty object", value),
      nonEmptyObject: (value) => assertType2(is32.nonEmptyObject(value), "non-empty object", value),
      emptySet: (value) => assertType2(is32.emptySet(value), "empty set", value),
      nonEmptySet: (value) => assertType2(is32.nonEmptySet(value), "non-empty set", value),
      emptyMap: (value) => assertType2(is32.emptyMap(value), "empty map", value),
      nonEmptyMap: (value) => assertType2(is32.nonEmptyMap(value), "non-empty map", value),
      propertyKey: (value) => assertType2(is32.propertyKey(value), "PropertyKey", value),
      formData: (value) => assertType2(is32.formData(value), "FormData", value),
      urlSearchParams: (value) => assertType2(is32.urlSearchParams(value), "URLSearchParams", value),
      // Numbers.
      evenInteger: (value) => assertType2(is32.evenInteger(value), "even integer", value),
      oddInteger: (value) => assertType2(is32.oddInteger(value), "odd integer", value),
      // Two arguments.
      directInstanceOf: (instance, class_) => assertType2(is32.directInstanceOf(instance, class_), "T", instance),
      inRange: (value, range) => assertType2(is32.inRange(value, range), "in range", value),
      // Variadic functions.
      any: (predicate, ...values) => {
        return assertType2(is32.any(predicate, ...values), "predicate returns truthy for any value", values, { multipleValues: true });
      },
      all: (predicate, ...values) => assertType2(is32.all(predicate, ...values), "predicate returns truthy for all values", values, { multipleValues: true })
    };
    Object.defineProperties(is32, {
      class: {
        value: is32.class_
      },
      function: {
        value: is32.function_
      },
      null: {
        value: is32.null_
      }
    });
    Object.defineProperties(exports2.assert, {
      class: {
        value: exports2.assert.class_
      },
      function: {
        value: exports2.assert.function_
      },
      null: {
        value: exports2.assert.null_
      }
    });
    exports2.default = is32;
    module2.exports = is32;
    module2.exports.default = is32;
    module2.exports.assert = exports2.assert;
  }
});
var require_generate_stack = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/generate-stack.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.generateStackTrace = void 0;
    var generateStackTrace2 = () => {
      const stack = new RangeError("INTERNAL_OW_ERROR").stack;
      return stack;
    };
    exports2.generateStackTrace = generateStackTrace2;
  }
});
var require_argument_error = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/argument-error.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ArgumentError = void 0;
    var generate_stack_1 = require_generate_stack();
    var wrapStackTrace2 = (error, stack) => `${error.name}: ${error.message}
${stack}`;
    var ArgumentError2 = class extends Error {
      constructor(message, context, errors = /* @__PURE__ */ new Map()) {
        super(message);
        Object.defineProperty(this, "validationErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = "ArgumentError";
        if (Error.captureStackTrace) {
          Error.captureStackTrace(this, context);
        } else {
          this.stack = wrapStackTrace2(this, (0, generate_stack_1.generateStackTrace)());
        }
        this.validationErrors = errors;
      }
    };
    exports2.ArgumentError = ArgumentError2;
  }
});
var require_random_id = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/random-id.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.default = () => Math.random().toString(16).slice(2);
  }
});
var require_not = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/operators/not.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.not = void 0;
    var random_id_1 = require_random_id();
    var predicate_1 = require_predicate();
    var not2 = (predicate) => {
      const originalAddValidator = predicate.addValidator;
      predicate.addValidator = (validator) => {
        const { validator: fn3, message, negatedMessage } = validator;
        const placeholder = (0, random_id_1.default)();
        validator.message = (value, label) => negatedMessage ? negatedMessage(value, label) : message(value, placeholder).replace(/ to /, "$&not ").replace(placeholder, label);
        validator.validator = (value) => !fn3(value);
        predicate[predicate_1.validatorSymbol].push(validator);
        predicate.addValidator = originalAddValidator;
        return predicate;
      };
      return predicate;
    };
    exports2.not = not2;
  }
});
var require_base_predicate = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/base-predicate.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.isPredicate = exports2.testSymbol = void 0;
    exports2.testSymbol = Symbol("test");
    var isPredicate2 = (value) => Boolean(value[exports2.testSymbol]);
    exports2.isPredicate = isPredicate2;
  }
});
var require_generate_argument_error_message = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/generate-argument-error-message.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.generateArgumentErrorMessage = void 0;
    var generateArgumentErrorMessage2 = (errors, isAny2 = false) => {
      const message = [];
      const errorArray = [...errors.entries()];
      const anyErrorWithoutOneItemOnly = errorArray.some(([, array]) => array.size !== 1);
      if (errorArray.length === 1) {
        const [, returnedErrors] = errorArray[0];
        if (!isAny2 && returnedErrors.size === 1) {
          const [errorMessage] = returnedErrors;
          return errorMessage;
        }
        for (const entry of returnedErrors) {
          message.push(`${isAny2 ? "  - " : ""}${entry}`);
        }
        return message.join("\n");
      }
      if (!anyErrorWithoutOneItemOnly) {
        return errorArray.map(([, [item]]) => `  - ${item}`).join("\n");
      }
      for (const [key, value] of errorArray) {
        message.push(`Errors from the "${key}" predicate:`);
        for (const entry of value) {
          message.push(`  - ${entry}`);
        }
      }
      return message.join("\n");
    };
    exports2.generateArgumentErrorMessage = generateArgumentErrorMessage2;
  }
});
var require_predicate = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/predicate.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Predicate = exports2.validatorSymbol = void 0;
    var is_1 = require_dist();
    var argument_error_1 = require_argument_error();
    var not_1 = require_not();
    var base_predicate_1 = require_base_predicate();
    var generate_argument_error_message_1 = require_generate_argument_error_message();
    exports2.validatorSymbol = Symbol("validators");
    var Predicate2 = class {
      constructor(type, options = {}) {
        Object.defineProperty(this, "type", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: type
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
        Object.defineProperty(this, "context", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {
            validators: []
          }
        });
        this.context = {
          ...this.context,
          ...this.options
        };
        const typeString = this.type.charAt(0).toLowerCase() + this.type.slice(1);
        this.addValidator({
          message: (value, label) => {
            const label_ = label === null || label === void 0 ? void 0 : label.slice(this.type.length + 1);
            return `Expected ${label_ || "argument"} to be of type \`${this.type}\` but received type \`${(0, is_1.default)(value)}\``;
          },
          validator: (value) => is_1.default[typeString](value)
        });
      }
      /**
      @hidden
      */
      [base_predicate_1.testSymbol](value, main2, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const { validator, message } of this.context.validators) {
          if (this.options.optional === true && value === void 0) {
            continue;
          }
          let result;
          try {
            result = validator(value);
          } catch (error) {
            result = error;
          }
          if (result === true) {
            continue;
          }
          const label2 = is_1.default.function_(label) ? label() : label;
          const labelWithTick = label2 && idLabel ? `\`${label2}\`` : label2;
          const label_ = labelWithTick ? `${this.type} ${labelWithTick}` : this.type;
          const mapKey = label2 || this.type;
          const currentErrors = errors.get(mapKey);
          const errorMessage = message(value, label_, result);
          if (currentErrors) {
            currentErrors.add(errorMessage);
          } else {
            errors.set(mapKey, /* @__PURE__ */ new Set([errorMessage]));
          }
        }
        if (errors.size > 0) {
          const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors);
          throw new argument_error_1.ArgumentError(message, main2, errors);
        }
      }
      /**
      @hidden
      */
      get [exports2.validatorSymbol]() {
        return this.context.validators;
      }
      /**
      Invert the following validators.
      */
      get not() {
        return (0, not_1.not)(this);
      }
      /**
          Test if the value matches a custom validation function. The validation function should return an object containing a `validator` and `message`. If the `validator` is `false`, the validation fails and the `message` will be used as error message. If the `message` is a function, the function is invoked with the `label` as argument to let you further customize the error message.
      
          @param customValidator - Custom validation function.
          */
      validate(customValidator) {
        return this.addValidator({
          message: (_3, label, error) => typeof error === "string" ? `(${label}) ${error}` : error(label),
          validator: (value) => {
            const { message, validator } = customValidator(value);
            if (validator) {
              return true;
            }
            return message;
          }
        });
      }
      /**
          Test if the value matches a custom validation function. The validation function should return `true` if the value passes the function. If the function either returns `false` or a string, the function fails and the string will be used as error message.
      
          @param validator - Validation function.
          */
      is(validator) {
        return this.addValidator({
          message: (value, label, error) => error ? `(${label}) ${error}` : `Expected ${label} \`${value}\` to pass custom validation function`,
          validator
        });
      }
      /**
          Provide a new error message to be thrown when the validation fails.
      
          @param newMessage - Either a string containing the new message or a function returning the new message.
      
          @example
          ```
          ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow'));
          //=> ArgumentError: Expected unicorn, got rainbow
          ```
      
          @example
          ```
          ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \`${value}\``));
          //=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈`
          ```
          */
      message(newMessage) {
        const { validators: validators4 } = this.context;
        validators4[validators4.length - 1].message = (value, label) => {
          if (typeof newMessage === "function") {
            return newMessage(value, label);
          }
          return newMessage;
        };
        return this;
      }
      /**
          Register a new validator.
      
          @param validator - Validator to register.
          */
      addValidator(validator) {
        this.context.validators.push(validator);
        return this;
      }
    };
    exports2.Predicate = Predicate2;
  }
});
var require_vali_date = __commonJS2({
  "../../node_modules/.pnpm/vali-date@1.0.0/node_modules/vali-date/index.js"(exports2, module2) {
    "use strict";
    module2.exports = function(str) {
      return !isNaN(Date.parse(str));
    };
  }
});
var require_string = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/string.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.StringPredicate = void 0;
    var is_1 = require_dist();
    var valiDate2 = require_vali_date();
    var predicate_1 = require_predicate();
    var StringPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("string", options);
      }
      /**
          Test a string to have a specific length.
      
          @param length - The length of the string.
          */
      length(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value}\``,
          validator: (value) => value.length === length
        });
      }
      /**
          Test a string to have a minimum length.
      
          @param length - The minimum length of the string.
          */
      minLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value}\``,
          validator: (value) => value.length >= length,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value}\``
        });
      }
      /**
          Test a string to have a maximum length.
      
          @param length - The maximum length of the string.
          */
      maxLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value}\``,
          validator: (value) => value.length <= length,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value}\``
        });
      }
      /**
          Test a string against a regular expression.
      
          @param regex - The regular expression to match the value with.
          */
      matches(regex) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to match \`${regex}\`, got \`${value}\``,
          validator: (value) => regex.test(value)
        });
      }
      /**
          Test a string to start with a specific value.
      
          @param searchString - The value that should be the start of the string.
          */
      startsWith(searchString) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to start with \`${searchString}\`, got \`${value}\``,
          validator: (value) => value.startsWith(searchString)
        });
      }
      /**
          Test a string to end with a specific value.
      
          @param searchString - The value that should be the end of the string.
          */
      endsWith(searchString) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to end with \`${searchString}\`, got \`${value}\``,
          validator: (value) => value.endsWith(searchString)
        });
      }
      /**
          Test a string to include a specific value.
      
          @param searchString - The value that should be included in the string.
          */
      includes(searchString) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to include \`${searchString}\`, got \`${value}\``,
          validator: (value) => value.includes(searchString)
        });
      }
      /**
          Test if the string is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message: (value, label) => {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got \`${value}\``;
          },
          validator: (value) => list.includes(value)
        });
      }
      /**
      Test a string to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be empty, got \`${value}\``,
          validator: (value) => value === ""
        });
      }
      /**
      Test a string to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (value) => value !== ""
        });
      }
      /**
          Test a string to be equal to a specified string.
      
          @param expected - Expected value to match.
          */
      equals(expected) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be equal to \`${expected}\`, got \`${value}\``,
          validator: (value) => value === expected
        });
      }
      /**
      Test a string to be alphanumeric.
      */
      get alphanumeric() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be alphanumeric, got \`${value}\``,
          validator: (value) => /^[a-z\d]+$/i.test(value)
        });
      }
      /**
      Test a string to be alphabetical.
      */
      get alphabetical() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be alphabetical, got \`${value}\``,
          validator: (value) => /^[a-z]+$/gi.test(value)
        });
      }
      /**
      Test a string to be numeric.
      */
      get numeric() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be numeric, got \`${value}\``,
          validator: (value) => /^[+-]?\d+$/i.test(value)
        });
      }
      /**
      Test a string to be a valid date.
      */
      get date() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be a date, got \`${value}\``,
          validator: valiDate2
        });
      }
      /**
      Test a non-empty string to be lowercase. Matching both alphabetical & numbers.
      */
      get lowercase() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be lowercase, got \`${value}\``,
          validator: (value) => value.trim() !== "" && value === value.toLowerCase()
        });
      }
      /**
      Test a non-empty string to be uppercase. Matching both alphabetical & numbers.
      */
      get uppercase() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be uppercase, got \`${value}\``,
          validator: (value) => value.trim() !== "" && value === value.toUpperCase()
        });
      }
      /**
      Test a string to be a valid URL.
      */
      get url() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be a URL, got \`${value}\``,
          validator: is_1.default.urlString
        });
      }
    };
    exports2.StringPredicate = StringPredicate2;
  }
});
var require_number = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/number.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.NumberPredicate = void 0;
    var is_1 = require_dist();
    var predicate_1 = require_predicate();
    var NumberPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("number", options);
      }
      /**
          Test a number to be in a specified range.
      
          @param start - Start of the range.
          @param end - End of the range.
          */
      inRange(start, end) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be in range [${start}..${end}], got ${value}`,
          validator: (value) => is_1.default.inRange(value, [start, end])
        });
      }
      /**
          Test a number to be greater than the provided value.
      
          @param number - Minimum value.
          */
      greaterThan(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be greater than ${number}, got ${value}`,
          validator: (value) => value > number
        });
      }
      /**
          Test a number to be greater than or equal to the provided value.
      
          @param number - Minimum value.
          */
      greaterThanOrEqual(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be greater than or equal to ${number}, got ${value}`,
          validator: (value) => value >= number
        });
      }
      /**
          Test a number to be less than the provided value.
      
          @param number - Maximum value.
          */
      lessThan(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be less than ${number}, got ${value}`,
          validator: (value) => value < number
        });
      }
      /**
          Test a number to be less than or equal to the provided value.
      
          @param number - Minimum value.
          */
      lessThanOrEqual(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be less than or equal to ${number}, got ${value}`,
          validator: (value) => value <= number
        });
      }
      /**
          Test a number to be equal to a specified number.
      
          @param expected - Expected value to match.
          */
      equal(expected) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be equal to ${expected}, got ${value}`,
          validator: (value) => value === expected
        });
      }
      /**
          Test if a number is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message: (value, label) => {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got ${value}`;
          },
          validator: (value) => list.includes(value)
        });
      }
      /**
      Test a number to be an integer.
      */
      get integer() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be an integer, got ${value}`,
          validator: (value) => is_1.default.integer(value)
        });
      }
      /**
      Test a number to be finite.
      */
      get finite() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be finite, got ${value}`,
          validator: (value) => !is_1.default.infinite(value)
        });
      }
      /**
      Test a number to be infinite.
      */
      get infinite() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be infinite, got ${value}`,
          validator: (value) => is_1.default.infinite(value)
        });
      }
      /**
      Test a number to be positive.
      */
      get positive() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be positive, got ${value}`,
          validator: (value) => value > 0
        });
      }
      /**
      Test a number to be negative.
      */
      get negative() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be negative, got ${value}`,
          validator: (value) => value < 0
        });
      }
      /**
      Test a number to be an integer or infinite.
      */
      get integerOrInfinite() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be an integer or infinite, got ${value}`,
          validator: (value) => is_1.default.integer(value) || is_1.default.infinite(value)
        });
      }
      /**
      Test a number to be in a valid range for a 8-bit unsigned integer.
      */
      get uint8() {
        return this.integer.inRange(0, 255);
      }
      /**
      Test a number to be in a valid range for a 16-bit unsigned integer.
      */
      get uint16() {
        return this.integer.inRange(0, 65535);
      }
      /**
      Test a number to be in a valid range for a 32-bit unsigned integer.
      */
      get uint32() {
        return this.integer.inRange(0, 4294967295);
      }
      /**
      Test a number to be in a valid range for a 8-bit signed integer.
      */
      get int8() {
        return this.integer.inRange(-128, 127);
      }
      /**
      Test a number to be in a valid range for a 16-bit signed integer.
      */
      get int16() {
        return this.integer.inRange(-32768, 32767);
      }
      /**
      Test a number to be in a valid range for a 32-bit signed integer.
      */
      get int32() {
        return this.integer.inRange(-2147483648, 2147483647);
      }
    };
    exports2.NumberPredicate = NumberPredicate2;
  }
});
var require_bigint = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/bigint.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.BigIntPredicate = void 0;
    var predicate_1 = require_predicate();
    var BigIntPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("bigint", options);
      }
    };
    exports2.BigIntPredicate = BigIntPredicate2;
  }
});
var require_boolean = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/boolean.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.BooleanPredicate = void 0;
    var predicate_1 = require_predicate();
    var BooleanPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("boolean", options);
      }
      /**
      Test a boolean to be true.
      */
      get true() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be true, got ${value}`,
          validator: (value) => value
        });
      }
      /**
      Test a boolean to be false.
      */
      get false() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be false, got ${value}`,
          validator: (value) => !value
        });
      }
    };
    exports2.BooleanPredicate = BooleanPredicate2;
  }
});
var require_lodash = __commonJS2({
  "../../node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js"(exports2, module2) {
    var LARGE_ARRAY_SIZE = 200;
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    var COMPARE_PARTIAL_FLAG = 1;
    var COMPARE_UNORDERED_FLAG = 2;
    var MAX_SAFE_INTEGER = 9007199254740991;
    var argsTag = "[object Arguments]";
    var arrayTag = "[object Array]";
    var asyncTag = "[object AsyncFunction]";
    var boolTag = "[object Boolean]";
    var dateTag = "[object Date]";
    var errorTag = "[object Error]";
    var funcTag = "[object Function]";
    var genTag = "[object GeneratorFunction]";
    var mapTag = "[object Map]";
    var numberTag = "[object Number]";
    var nullTag = "[object Null]";
    var objectTag = "[object Object]";
    var promiseTag = "[object Promise]";
    var proxyTag = "[object Proxy]";
    var regexpTag = "[object RegExp]";
    var setTag = "[object Set]";
    var stringTag = "[object String]";
    var symbolTag = "[object Symbol]";
    var undefinedTag = "[object Undefined]";
    var weakMapTag = "[object WeakMap]";
    var arrayBufferTag = "[object ArrayBuffer]";
    var dataViewTag = "[object DataView]";
    var float32Tag = "[object Float32Array]";
    var float64Tag = "[object Float64Array]";
    var int8Tag = "[object Int8Array]";
    var int16Tag = "[object Int16Array]";
    var int32Tag = "[object Int32Array]";
    var uint8Tag = "[object Uint8Array]";
    var uint8ClampedTag = "[object Uint8ClampedArray]";
    var uint16Tag = "[object Uint16Array]";
    var uint32Tag = "[object Uint32Array]";
    var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
    var reIsHostCtor = /^\[object .+?Constructor\]$/;
    var reIsUint = /^(?:0|[1-9]\d*)$/;
    var typedArrayTags = {};
    typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
    typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
    var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
    var freeSelf = typeof self == "object" && self && self.Object === Object && self;
    var root = freeGlobal || freeSelf || Function("return this")();
    var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2;
    var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2;
    var moduleExports = freeModule && freeModule.exports === freeExports;
    var freeProcess = moduleExports && freeGlobal.process;
    var nodeUtil = (function() {
      try {
        return freeProcess && freeProcess.binding && freeProcess.binding("util");
      } catch (e2) {
      }
    })();
    var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
    function arrayFilter(array, predicate) {
      var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
      while (++index < length) {
        var value = array[index];
        if (predicate(value, index, array)) {
          result[resIndex++] = value;
        }
      }
      return result;
    }
    function arrayPush(array, values) {
      var index = -1, length = values.length, offset = array.length;
      while (++index < length) {
        array[offset + index] = values[index];
      }
      return array;
    }
    function arraySome(array, predicate) {
      var index = -1, length = array == null ? 0 : array.length;
      while (++index < length) {
        if (predicate(array[index], index, array)) {
          return true;
        }
      }
      return false;
    }
    function baseTimes(n22, iteratee) {
      var index = -1, result = Array(n22);
      while (++index < n22) {
        result[index] = iteratee(index);
      }
      return result;
    }
    function baseUnary(func) {
      return function(value) {
        return func(value);
      };
    }
    function cacheHas(cache, key) {
      return cache.has(key);
    }
    function getValue(object, key) {
      return object == null ? void 0 : object[key];
    }
    function mapToArray(map2) {
      var index = -1, result = Array(map2.size);
      map2.forEach(function(value, key) {
        result[++index] = [key, value];
      });
      return result;
    }
    function overArg(func, transform) {
      return function(arg) {
        return func(transform(arg));
      };
    }
    function setToArray(set) {
      var index = -1, result = Array(set.size);
      set.forEach(function(value) {
        result[++index] = value;
      });
      return result;
    }
    var arrayProto = Array.prototype;
    var funcProto = Function.prototype;
    var objectProto = Object.prototype;
    var coreJsData = root["__core-js_shared__"];
    var funcToString = funcProto.toString;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    var maskSrcKey = (function() {
      var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
      return uid ? "Symbol(src)_1." + uid : "";
    })();
    var nativeObjectToString = objectProto.toString;
    var reIsNative = RegExp(
      "^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
    );
    var Buffer4 = moduleExports ? root.Buffer : void 0;
    var Symbol2 = root.Symbol;
    var Uint8Array2 = root.Uint8Array;
    var propertyIsEnumerable = objectProto.propertyIsEnumerable;
    var splice = arrayProto.splice;
    var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
    var nativeGetSymbols = Object.getOwnPropertySymbols;
    var nativeIsBuffer = Buffer4 ? Buffer4.isBuffer : void 0;
    var nativeKeys = overArg(Object.keys, Object);
    var DataView2 = getNative(root, "DataView");
    var Map2 = getNative(root, "Map");
    var Promise2 = getNative(root, "Promise");
    var Set2 = getNative(root, "Set");
    var WeakMap2 = getNative(root, "WeakMap");
    var nativeCreate = getNative(Object, "create");
    var dataViewCtorString = toSource(DataView2);
    var mapCtorString = toSource(Map2);
    var promiseCtorString = toSource(Promise2);
    var setCtorString = toSource(Set2);
    var weakMapCtorString = toSource(WeakMap2);
    var symbolProto = Symbol2 ? Symbol2.prototype : void 0;
    var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
    function Hash(entries2) {
      var index = -1, length = entries2 == null ? 0 : entries2.length;
      this.clear();
      while (++index < length) {
        var entry = entries2[index];
        this.set(entry[0], entry[1]);
      }
    }
    function hashClear() {
      this.__data__ = nativeCreate ? nativeCreate(null) : {};
      this.size = 0;
    }
    function hashDelete(key) {
      var result = this.has(key) && delete this.__data__[key];
      this.size -= result ? 1 : 0;
      return result;
    }
    function hashGet(key) {
      var data = this.__data__;
      if (nativeCreate) {
        var result = data[key];
        return result === HASH_UNDEFINED ? void 0 : result;
      }
      return hasOwnProperty2.call(data, key) ? data[key] : void 0;
    }
    function hashHas(key) {
      var data = this.__data__;
      return nativeCreate ? data[key] !== void 0 : hasOwnProperty2.call(data, key);
    }
    function hashSet(key, value) {
      var data = this.__data__;
      this.size += this.has(key) ? 0 : 1;
      data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
      return this;
    }
    Hash.prototype.clear = hashClear;
    Hash.prototype["delete"] = hashDelete;
    Hash.prototype.get = hashGet;
    Hash.prototype.has = hashHas;
    Hash.prototype.set = hashSet;
    function ListCache(entries2) {
      var index = -1, length = entries2 == null ? 0 : entries2.length;
      this.clear();
      while (++index < length) {
        var entry = entries2[index];
        this.set(entry[0], entry[1]);
      }
    }
    function listCacheClear() {
      this.__data__ = [];
      this.size = 0;
    }
    function listCacheDelete(key) {
      var data = this.__data__, index = assocIndexOf(data, key);
      if (index < 0) {
        return false;
      }
      var lastIndex = data.length - 1;
      if (index == lastIndex) {
        data.pop();
      } else {
        splice.call(data, index, 1);
      }
      --this.size;
      return true;
    }
    function listCacheGet(key) {
      var data = this.__data__, index = assocIndexOf(data, key);
      return index < 0 ? void 0 : data[index][1];
    }
    function listCacheHas(key) {
      return assocIndexOf(this.__data__, key) > -1;
    }
    function listCacheSet(key, value) {
      var data = this.__data__, index = assocIndexOf(data, key);
      if (index < 0) {
        ++this.size;
        data.push([key, value]);
      } else {
        data[index][1] = value;
      }
      return this;
    }
    ListCache.prototype.clear = listCacheClear;
    ListCache.prototype["delete"] = listCacheDelete;
    ListCache.prototype.get = listCacheGet;
    ListCache.prototype.has = listCacheHas;
    ListCache.prototype.set = listCacheSet;
    function MapCache(entries2) {
      var index = -1, length = entries2 == null ? 0 : entries2.length;
      this.clear();
      while (++index < length) {
        var entry = entries2[index];
        this.set(entry[0], entry[1]);
      }
    }
    function mapCacheClear() {
      this.size = 0;
      this.__data__ = {
        "hash": new Hash(),
        "map": new (Map2 || ListCache)(),
        "string": new Hash()
      };
    }
    function mapCacheDelete(key) {
      var result = getMapData(this, key)["delete"](key);
      this.size -= result ? 1 : 0;
      return result;
    }
    function mapCacheGet(key) {
      return getMapData(this, key).get(key);
    }
    function mapCacheHas(key) {
      return getMapData(this, key).has(key);
    }
    function mapCacheSet(key, value) {
      var data = getMapData(this, key), size = data.size;
      data.set(key, value);
      this.size += data.size == size ? 0 : 1;
      return this;
    }
    MapCache.prototype.clear = mapCacheClear;
    MapCache.prototype["delete"] = mapCacheDelete;
    MapCache.prototype.get = mapCacheGet;
    MapCache.prototype.has = mapCacheHas;
    MapCache.prototype.set = mapCacheSet;
    function SetCache(values) {
      var index = -1, length = values == null ? 0 : values.length;
      this.__data__ = new MapCache();
      while (++index < length) {
        this.add(values[index]);
      }
    }
    function setCacheAdd(value) {
      this.__data__.set(value, HASH_UNDEFINED);
      return this;
    }
    function setCacheHas(value) {
      return this.__data__.has(value);
    }
    SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
    SetCache.prototype.has = setCacheHas;
    function Stack(entries2) {
      var data = this.__data__ = new ListCache(entries2);
      this.size = data.size;
    }
    function stackClear() {
      this.__data__ = new ListCache();
      this.size = 0;
    }
    function stackDelete(key) {
      var data = this.__data__, result = data["delete"](key);
      this.size = data.size;
      return result;
    }
    function stackGet(key) {
      return this.__data__.get(key);
    }
    function stackHas(key) {
      return this.__data__.has(key);
    }
    function stackSet(key, value) {
      var data = this.__data__;
      if (data instanceof ListCache) {
        var pairs = data.__data__;
        if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
          pairs.push([key, value]);
          this.size = ++data.size;
          return this;
        }
        data = this.__data__ = new MapCache(pairs);
      }
      data.set(key, value);
      this.size = data.size;
      return this;
    }
    Stack.prototype.clear = stackClear;
    Stack.prototype["delete"] = stackDelete;
    Stack.prototype.get = stackGet;
    Stack.prototype.has = stackHas;
    Stack.prototype.set = stackSet;
    function arrayLikeKeys(value, inherited) {
      var isArr = isArray3(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer3(value), isType = !isArr && !isArg && !isBuff && isTypedArray3(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
      for (var key in value) {
        if ((inherited || hasOwnProperty2.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
        (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
        isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
        isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
        isIndex(key, length)))) {
          result.push(key);
        }
      }
      return result;
    }
    function assocIndexOf(array, key) {
      var length = array.length;
      while (length--) {
        if (eq(array[length][0], key)) {
          return length;
        }
      }
      return -1;
    }
    function baseGetAllKeys(object, keysFunc, symbolsFunc) {
      var result = keysFunc(object);
      return isArray3(object) ? result : arrayPush(result, symbolsFunc(object));
    }
    function baseGetTag(value) {
      if (value == null) {
        return value === void 0 ? undefinedTag : nullTag;
      }
      return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString2(value);
    }
    function baseIsArguments(value) {
      return isObjectLike(value) && baseGetTag(value) == argsTag;
    }
    function baseIsEqual(value, other, bitmask, customizer, stack) {
      if (value === other) {
        return true;
      }
      if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
        return value !== value && other !== other;
      }
      return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
    }
    function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
      var objIsArr = isArray3(object), othIsArr = isArray3(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);
      objTag = objTag == argsTag ? objectTag : objTag;
      othTag = othTag == argsTag ? objectTag : othTag;
      var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
      if (isSameTag && isBuffer3(object)) {
        if (!isBuffer3(other)) {
          return false;
        }
        objIsArr = true;
        objIsObj = false;
      }
      if (isSameTag && !objIsObj) {
        stack || (stack = new Stack());
        return objIsArr || isTypedArray3(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
      }
      if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
        var objIsWrapped = objIsObj && hasOwnProperty2.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty2.call(other, "__wrapped__");
        if (objIsWrapped || othIsWrapped) {
          var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
          stack || (stack = new Stack());
          return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
        }
      }
      if (!isSameTag) {
        return false;
      }
      stack || (stack = new Stack());
      return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
    }
    function baseIsNative(value) {
      if (!isObject4(value) || isMasked(value)) {
        return false;
      }
      var pattern = isFunction5(value) ? reIsNative : reIsHostCtor;
      return pattern.test(toSource(value));
    }
    function baseIsTypedArray(value) {
      return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
    }
    function baseKeys(object) {
      if (!isPrototype(object)) {
        return nativeKeys(object);
      }
      var result = [];
      for (var key in Object(object)) {
        if (hasOwnProperty2.call(object, key) && key != "constructor") {
          result.push(key);
        }
      }
      return result;
    }
    function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;
      if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
        return false;
      }
      var stacked = stack.get(array);
      if (stacked && stack.get(other)) {
        return stacked == other;
      }
      var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : void 0;
      stack.set(array, other);
      stack.set(other, array);
      while (++index < arrLength) {
        var arrValue = array[index], othValue = other[index];
        if (customizer) {
          var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
        }
        if (compared !== void 0) {
          if (compared) {
            continue;
          }
          result = false;
          break;
        }
        if (seen) {
          if (!arraySome(other, function(othValue2, othIndex) {
            if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
              return seen.push(othIndex);
            }
          })) {
            result = false;
            break;
          }
        } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
          result = false;
          break;
        }
      }
      stack["delete"](array);
      stack["delete"](other);
      return result;
    }
    function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
      switch (tag) {
        case dataViewTag:
          if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
            return false;
          }
          object = object.buffer;
          other = other.buffer;
        case arrayBufferTag:
          if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {
            return false;
          }
          return true;
        case boolTag:
        case dateTag:
        case numberTag:
          return eq(+object, +other);
        case errorTag:
          return object.name == other.name && object.message == other.message;
        case regexpTag:
        case stringTag:
          return object == other + "";
        case mapTag:
          var convert2 = mapToArray;
        case setTag:
          var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
          convert2 || (convert2 = setToArray);
          if (object.size != other.size && !isPartial) {
            return false;
          }
          var stacked = stack.get(object);
          if (stacked) {
            return stacked == other;
          }
          bitmask |= COMPARE_UNORDERED_FLAG;
          stack.set(object, other);
          var result = equalArrays(convert2(object), convert2(other), bitmask, customizer, equalFunc, stack);
          stack["delete"](object);
          return result;
        case symbolTag:
          if (symbolValueOf) {
            return symbolValueOf.call(object) == symbolValueOf.call(other);
          }
      }
      return false;
    }
    function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
      if (objLength != othLength && !isPartial) {
        return false;
      }
      var index = objLength;
      while (index--) {
        var key = objProps[index];
        if (!(isPartial ? key in other : hasOwnProperty2.call(other, key))) {
          return false;
        }
      }
      var stacked = stack.get(object);
      if (stacked && stack.get(other)) {
        return stacked == other;
      }
      var result = true;
      stack.set(object, other);
      stack.set(other, object);
      var skipCtor = isPartial;
      while (++index < objLength) {
        key = objProps[index];
        var objValue = object[key], othValue = other[key];
        if (customizer) {
          var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
        }
        if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
          result = false;
          break;
        }
        skipCtor || (skipCtor = key == "constructor");
      }
      if (result && !skipCtor) {
        var objCtor = object.constructor, othCtor = other.constructor;
        if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
          result = false;
        }
      }
      stack["delete"](object);
      stack["delete"](other);
      return result;
    }
    function getAllKeys(object) {
      return baseGetAllKeys(object, keys, getSymbols);
    }
    function getMapData(map2, key) {
      var data = map2.__data__;
      return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
    }
    function getNative(object, key) {
      var value = getValue(object, key);
      return baseIsNative(value) ? value : void 0;
    }
    function getRawTag(value) {
      var isOwn = hasOwnProperty2.call(value, symToStringTag), tag = value[symToStringTag];
      try {
        value[symToStringTag] = void 0;
        var unmasked = true;
      } catch (e2) {
      }
      var result = nativeObjectToString.call(value);
      if (unmasked) {
        if (isOwn) {
          value[symToStringTag] = tag;
        } else {
          delete value[symToStringTag];
        }
      }
      return result;
    }
    var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
      if (object == null) {
        return [];
      }
      object = Object(object);
      return arrayFilter(nativeGetSymbols(object), function(symbol) {
        return propertyIsEnumerable.call(object, symbol);
      });
    };
    var getTag = baseGetTag;
    if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) {
      getTag = function(value) {
        var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
        if (ctorString) {
          switch (ctorString) {
            case dataViewCtorString:
              return dataViewTag;
            case mapCtorString:
              return mapTag;
            case promiseCtorString:
              return promiseTag;
            case setCtorString:
              return setTag;
            case weakMapCtorString:
              return weakMapTag;
          }
        }
        return result;
      };
    }
    function isIndex(value, length) {
      length = length == null ? MAX_SAFE_INTEGER : length;
      return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
    }
    function isKeyable(value) {
      var type = typeof value;
      return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
    }
    function isMasked(func) {
      return !!maskSrcKey && maskSrcKey in func;
    }
    function isPrototype(value) {
      var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
      return value === proto;
    }
    function objectToString2(value) {
      return nativeObjectToString.call(value);
    }
    function toSource(func) {
      if (func != null) {
        try {
          return funcToString.call(func);
        } catch (e2) {
        }
        try {
          return func + "";
        } catch (e2) {
        }
      }
      return "";
    }
    function eq(value, other) {
      return value === other || value !== value && other !== other;
    }
    var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
      return arguments;
    })()) ? baseIsArguments : function(value) {
      return isObjectLike(value) && hasOwnProperty2.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
    };
    var isArray3 = Array.isArray;
    function isArrayLike2(value) {
      return value != null && isLength(value.length) && !isFunction5(value);
    }
    var isBuffer3 = nativeIsBuffer || stubFalse;
    function isEqual5(value, other) {
      return baseIsEqual(value, other);
    }
    function isFunction5(value) {
      if (!isObject4(value)) {
        return false;
      }
      var tag = baseGetTag(value);
      return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
    }
    function isLength(value) {
      return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
    }
    function isObject4(value) {
      var type = typeof value;
      return value != null && (type == "object" || type == "function");
    }
    function isObjectLike(value) {
      return value != null && typeof value == "object";
    }
    var isTypedArray3 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
    function keys(object) {
      return isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object);
    }
    function stubArray() {
      return [];
    }
    function stubFalse() {
      return false;
    }
    module2.exports = isEqual5;
  }
});
var require_test = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/test.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var base_predicate_1 = require_base_predicate();
    function test3(value, label, predicate, idLabel = true) {
      predicate[base_predicate_1.testSymbol](value, test3, label, idLabel);
    }
    exports2.default = test3;
  }
});
var require_match_shape = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/match-shape.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.exact = exports2.partial = void 0;
    var is_1 = require_dist();
    var test_1 = require_test();
    var base_predicate_1 = require_base_predicate();
    function partial2(object, shape, parent) {
      try {
        for (const key of Object.keys(shape)) {
          const label = parent ? `${parent}.${key}` : key;
          if ((0, base_predicate_1.isPredicate)(shape[key])) {
            (0, test_1.default)(object[key], label, shape[key]);
          } else if (is_1.default.plainObject(shape[key])) {
            const result = partial2(object[key], shape[key], label);
            if (result !== true) {
              return result;
            }
          }
        }
        return true;
      } catch (error) {
        return error.message;
      }
    }
    exports2.partial = partial2;
    function exact2(object, shape, parent, isArray3) {
      try {
        const objectKeys = new Set(Object.keys(object));
        for (const key of Object.keys(shape)) {
          objectKeys.delete(key);
          const label = parent ? `${parent}.${key}` : key;
          if ((0, base_predicate_1.isPredicate)(shape[key])) {
            (0, test_1.default)(object[key], label, shape[key]);
          } else if (is_1.default.plainObject(shape[key])) {
            if (!Object.prototype.hasOwnProperty.call(object, key)) {
              return `Expected \`${label}\` to exist`;
            }
            const result = exact2(object[key], shape[key], label);
            if (result !== true) {
              return result;
            }
          }
        }
        if (objectKeys.size > 0) {
          const firstKey = [...objectKeys.keys()][0];
          const label = parent ? `${parent}.${firstKey}` : firstKey;
          return `Did not expect ${isArray3 ? "element" : "property"} \`${label}\` to exist, got \`${object[firstKey]}\``;
        }
        return true;
      } catch (error) {
        return error.message;
      }
    }
    exports2.exact = exact2;
  }
});
var require_of_type = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/of-type.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var test_1 = require_test();
    exports2.default = (source, name2, predicate) => {
      try {
        for (const item of source) {
          (0, test_1.default)(item, name2, predicate, false);
        }
        return true;
      } catch (error) {
        return error.message;
      }
    };
  }
});
var require_array = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/array.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ArrayPredicate = void 0;
    var isEqual5 = require_lodash();
    var predicate_1 = require_predicate();
    var match_shape_1 = require_match_shape();
    var of_type_1 = require_of_type();
    var ArrayPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("array", options);
      }
      /**
          Test an array to have a specific length.
      
          @param length - The length of the array.
          */
      length(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length === length
        });
      }
      /**
          Test an array to have a minimum length.
      
          @param length - The minimum length of the array.
          */
      minLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length >= length,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value.length}\``
        });
      }
      /**
          Test an array to have a maximum length.
      
          @param length - The maximum length of the array.
          */
      maxLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length <= length,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value.length}\``
        });
      }
      /**
          Test an array to start with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the start of the array.
          */
      startsWith(searchElement) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to start with \`${searchElement}\`, got \`${value[0]}\``,
          validator: (value) => value[0] === searchElement
        });
      }
      /**
          Test an array to end with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the end of the array.
          */
      endsWith(searchElement) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to end with \`${searchElement}\`, got \`${value[value.length - 1]}\``,
          validator: (value) => value[value.length - 1] === searchElement
        });
      }
      /**
          Test an array to include all the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includes(...searchElements) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to include all elements of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value)}\``,
          validator: (value) => searchElements.every((element) => value.includes(element))
        });
      }
      /**
          Test an array to include any of the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includesAny(...searchElements) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to include any element of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value)}\``,
          validator: (value) => searchElements.some((element) => value.includes(element))
        });
      }
      /**
      Test an array to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be empty, got \`${JSON.stringify(value)}\``,
          validator: (value) => value.length === 0
        });
      }
      /**
      Test an array to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (value) => value.length > 0
        });
      }
      /**
          Test an array to be deeply equal to the provided array.
      
          @param expected - Expected value to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(value)}\``,
          validator: (value) => isEqual5(value, expected)
        });
      }
      /**
          Test all elements in the array to match to provided predicate.
      
          @param predicate - The predicate that should be applied against every individual item.
      
          @example
          ```
          ow(['a', 1], ow.array.ofType(ow.any(ow.string, ow.number)));
          ```
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (value) => (0, of_type_1.default)(value, "values", predicate)
        });
      }
      /**
          Test if the elements in the array exactly matches the elements placed at the same indices in the predicates array.
      
          @param predicates - Predicates to test the array against. Describes what the tested array should look like.
      
          @example
          ```
          ow(['1', 2], ow.array.exactShape([ow.string, ow.number]));
          ```
          */
      exactShape(predicates3) {
        const shape = predicates3;
        return this.addValidator({
          message: (_3, label, message) => `${message.replace("Expected", "Expected element")} in ${label}`,
          validator: (object) => (0, match_shape_1.exact)(object, shape, void 0, true)
        });
      }
    };
    exports2.ArrayPredicate = ArrayPredicate2;
  }
});
var require_is_obj = __commonJS2({
  "../../node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js"(exports2, module2) {
    "use strict";
    module2.exports = (value) => {
      const type = typeof value;
      return value !== null && (type === "object" || type === "function");
    };
  }
});
var require_dot_prop = __commonJS2({
  "../../node_modules/.pnpm/dot-prop@6.0.1/node_modules/dot-prop/index.js"(exports2, module2) {
    "use strict";
    var isObj = require_is_obj();
    var disallowedKeys2 = /* @__PURE__ */ new Set([
      "__proto__",
      "prototype",
      "constructor"
    ]);
    var isValidPath = (pathSegments) => !pathSegments.some((segment) => disallowedKeys2.has(segment));
    function getPathSegments2(path22) {
      const pathArray = path22.split(".");
      const parts = [];
      for (let i22 = 0; i22 < pathArray.length; i22++) {
        let p = pathArray[i22];
        while (p[p.length - 1] === "\\" && pathArray[i22 + 1] !== void 0) {
          p = p.slice(0, -1) + ".";
          p += pathArray[++i22];
        }
        parts.push(p);
      }
      if (!isValidPath(parts)) {
        return [];
      }
      return parts;
    }
    module2.exports = {
      get(object, path22, value) {
        if (!isObj(object) || typeof path22 !== "string") {
          return value === void 0 ? object : value;
        }
        const pathArray = getPathSegments2(path22);
        if (pathArray.length === 0) {
          return;
        }
        for (let i22 = 0; i22 < pathArray.length; i22++) {
          object = object[pathArray[i22]];
          if (object === void 0 || object === null) {
            if (i22 !== pathArray.length - 1) {
              return value;
            }
            break;
          }
        }
        return object === void 0 ? value : object;
      },
      set(object, path22, value) {
        if (!isObj(object) || typeof path22 !== "string") {
          return object;
        }
        const root = object;
        const pathArray = getPathSegments2(path22);
        for (let i22 = 0; i22 < pathArray.length; i22++) {
          const p = pathArray[i22];
          if (!isObj(object[p])) {
            object[p] = {};
          }
          if (i22 === pathArray.length - 1) {
            object[p] = value;
          }
          object = object[p];
        }
        return root;
      },
      delete(object, path22) {
        if (!isObj(object) || typeof path22 !== "string") {
          return false;
        }
        const pathArray = getPathSegments2(path22);
        for (let i22 = 0; i22 < pathArray.length; i22++) {
          const p = pathArray[i22];
          if (i22 === pathArray.length - 1) {
            delete object[p];
            return true;
          }
          object = object[p];
          if (!isObj(object)) {
            return false;
          }
        }
      },
      has(object, path22) {
        if (!isObj(object) || typeof path22 !== "string") {
          return false;
        }
        const pathArray = getPathSegments2(path22);
        if (pathArray.length === 0) {
          return false;
        }
        for (let i22 = 0; i22 < pathArray.length; i22++) {
          if (isObj(object)) {
            if (!(pathArray[i22] in object)) {
              return false;
            }
            object = object[pathArray[i22]];
          } else {
            return false;
          }
        }
        return true;
      }
    };
  }
});
var require_has_items = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/has-items.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.default = (source, items, maxValues = 5) => {
      const missingValues = [];
      for (const value of items) {
        if (source.has(value)) {
          continue;
        }
        missingValues.push(value);
        if (missingValues.length === maxValues) {
          return missingValues;
        }
      }
      return missingValues.length === 0 ? true : missingValues;
    };
  }
});
var require_of_type_deep = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/utils/of-type-deep.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var is_1 = require_dist();
    var test_1 = require_test();
    var ofTypeDeep2 = (object, predicate) => {
      if (!is_1.default.plainObject(object)) {
        (0, test_1.default)(object, "deep values", predicate, false);
        return true;
      }
      return Object.values(object).every((value) => ofTypeDeep2(value, predicate));
    };
    exports2.default = (object, predicate) => {
      try {
        return ofTypeDeep2(object, predicate);
      } catch (error) {
        return error.message;
      }
    };
  }
});
var require_object = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/object.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ObjectPredicate = void 0;
    var is_1 = require_dist();
    var dotProp = require_dot_prop();
    var isEqual5 = require_lodash();
    var has_items_1 = require_has_items();
    var of_type_1 = require_of_type();
    var of_type_deep_1 = require_of_type_deep();
    var match_shape_1 = require_match_shape();
    var predicate_1 = require_predicate();
    var ObjectPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("object", options);
      }
      /**
      Test if an Object is a plain object.
      */
      get plain() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to be a plain object`,
          validator: (object) => is_1.default.plainObject(object)
        });
      }
      /**
      Test an object to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be empty, got \`${JSON.stringify(object)}\``,
          validator: (object) => Object.keys(object).length === 0
        });
      }
      /**
      Test an object to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (object) => Object.keys(object).length > 0
        });
      }
      /**
          Test all the values in the object to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (object) => (0, of_type_1.default)(Object.values(object), "values", predicate)
        });
      }
      /**
          Test all the values in the object deeply to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      deepValuesOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (object) => (0, of_type_deep_1.default)(object, predicate)
        });
      }
      /**
          Test an object to be deeply equal to the provided object.
      
          @param expected - Expected object to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(object)}\``,
          validator: (object) => isEqual5(object, expected)
        });
      }
      /**
          Test an object to be of a specific instance type.
      
          @param instance - The expected instance type of the object.
          */
      instanceOf(instance) {
        return this.addValidator({
          message: (object, label) => {
            var _a22;
            let { name: name2 } = (_a22 = object === null || object === void 0 ? void 0 : object.constructor) !== null && _a22 !== void 0 ? _a22 : {};
            if (!name2 || name2 === "Object") {
              name2 = JSON.stringify(object);
            }
            return `Expected ${label} \`${name2}\` to be of type \`${instance.name}\``;
          },
          validator: (object) => object instanceof instance
        });
      }
      /**
          Test an object to include all the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that should be present in the object.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (object) => (0, has_items_1.default)({
            has: (item) => dotProp.has(object, item)
          }, keys)
        });
      }
      /**
          Test an object to include any of the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that could be a key in the object.
          */
      hasAnyKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``,
          validator: (object) => keys.some((key) => dotProp.has(object, key))
        });
      }
      /**
          Test an object to match the `shape` partially. This means that it ignores unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          const object = {
              unicorn: '🦄',
              rainbow: '🌈'
          };
      
          ow(object, ow.object.partialShape({
              unicorn: ow.string
          }));
          ```
          */
      partialShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          message: (_3, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => (0, match_shape_1.partial)(object, shape)
        });
      }
      /**
          Test an object to match the `shape` exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          ow({unicorn: '🦄'}, ow.object.exactShape({
              unicorn: ow.string
          }));
          ```
          */
      exactShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          message: (_3, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => (0, match_shape_1.exact)(object, shape)
        });
      }
    };
    exports2.ObjectPredicate = ObjectPredicate2;
  }
});
var require_date = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/date.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DatePredicate = void 0;
    var predicate_1 = require_predicate();
    var DatePredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("date", options);
      }
      /**
          Test a date to be before another date.
      
          @param date - Maximum value.
          */
      before(date) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} ${value.toISOString()} to be before ${date.toISOString()}`,
          validator: (value) => value.getTime() < date.getTime()
        });
      }
      /**
          Test a date to be before another date.
      
          @param date - Minimum value.
          */
      after(date) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} ${value.toISOString()} to be after ${date.toISOString()}`,
          validator: (value) => value.getTime() > date.getTime()
        });
      }
    };
    exports2.DatePredicate = DatePredicate2;
  }
});
var require_error = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/error.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ErrorPredicate = void 0;
    var predicate_1 = require_predicate();
    var ErrorPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("error", options);
      }
      /**
          Test an error to have a specific name.
      
          @param expected - Expected name of the Error.
          */
      name(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} to have name \`${expected}\`, got \`${error.name}\``,
          validator: (error) => error.name === expected
        });
      }
      /**
          Test an error to have a specific message.
      
          @param expected - Expected message of the Error.
          */
      message(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to be \`${expected}\`, got \`${error.message}\``,
          validator: (error) => error.message === expected
        });
      }
      /**
          Test the error message to include a specific message.
      
          @param message - Message that should be included in the error.
          */
      messageIncludes(message) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to include \`${message}\`, got \`${error.message}\``,
          validator: (error) => error.message.includes(message)
        });
      }
      /**
          Test the error object to have specific keys.
      
          @param keys - One or more keys which should be part of the error object.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} message to have keys \`${keys.join("`, `")}\``,
          validator: (error) => keys.every((key) => Object.prototype.hasOwnProperty.call(error, key))
        });
      }
      /**
          Test an error to be of a specific instance type.
      
          @param instance - The expected instance type of the error.
          */
      instanceOf(instance) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} \`${error.name}\` to be of type \`${instance.name}\``,
          validator: (error) => error instanceof instance
        });
      }
      /**
      Test an Error to be a TypeError.
      */
      get typeError() {
        return this.instanceOf(TypeError);
      }
      /**
      Test an Error to be an EvalError.
      */
      get evalError() {
        return this.instanceOf(EvalError);
      }
      /**
      Test an Error to be a RangeError.
      */
      get rangeError() {
        return this.instanceOf(RangeError);
      }
      /**
      Test an Error to be a ReferenceError.
      */
      get referenceError() {
        return this.instanceOf(ReferenceError);
      }
      /**
      Test an Error to be a SyntaxError.
      */
      get syntaxError() {
        return this.instanceOf(SyntaxError);
      }
      /**
      Test an Error to be a URIError.
      */
      get uriError() {
        return this.instanceOf(URIError);
      }
    };
    exports2.ErrorPredicate = ErrorPredicate2;
  }
});
var require_map = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/map.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.MapPredicate = void 0;
    var isEqual5 = require_lodash();
    var has_items_1 = require_has_items();
    var of_type_1 = require_of_type();
    var predicate_1 = require_predicate();
    var MapPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Map", options);
      }
      /**
          Test a Map to have a specific size.
      
          @param size - The size of the Map.
          */
      size(size) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to have size \`${size}\`, got \`${map2.size}\``,
          validator: (map2) => map2.size === size
        });
      }
      /**
          Test an Map to have a minimum size.
      
          @param size - The minimum size of the Map.
          */
      minSize(size) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${map2.size}\``,
          validator: (map2) => map2.size >= size,
          negatedMessage: (map2, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${map2.size}\``
        });
      }
      /**
          Test an Map to have a maximum size.
      
          @param size - The maximum size of the Map.
          */
      maxSize(size) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${map2.size}\``,
          validator: (map2) => map2.size <= size,
          negatedMessage: (map2, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${map2.size}\``
        });
      }
      /**
          Test a Map to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the Map.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map2) => (0, has_items_1.default)(map2, keys)
        });
      }
      /**
          Test a Map to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the Map.
          */
      hasAnyKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``,
          validator: (map2) => keys.some((key) => map2.has(key))
        });
      }
      /**
          Test a Map to include all the provided values. The values are tested by identity, not structure.
      
          @param values - The values that should be a value in the Map.
          */
      hasValues(...values) {
        return this.addValidator({
          message: (_3, label, missingValues) => `Expected ${label} to have values \`${JSON.stringify(missingValues)}\``,
          validator: (map2) => (0, has_items_1.default)(new Set(map2.values()), values)
        });
      }
      /**
          Test a Map to include any of the provided values. The values are tested by identity, not structure.
      
          @param values - The values that could be a value in the Map.
          */
      hasAnyValues(...values) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any value of \`${JSON.stringify(values)}\``,
          validator: (map2) => {
            const valueSet = new Set(map2.values());
            return values.some((key) => valueSet.has(key));
          }
        });
      }
      /**
          Test all the keys in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every key in the Map.
          */
      keysOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (map2) => (0, of_type_1.default)(map2.keys(), "keys", predicate)
        });
      }
      /**
          Test all the values in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the Map.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (map2) => (0, of_type_1.default)(map2.values(), "values", predicate)
        });
      }
      /**
      Test a Map to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...map2])}\``,
          validator: (map2) => map2.size === 0
        });
      }
      /**
      Test a Map to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (map2) => map2.size > 0
        });
      }
      /**
          Test a Map to be deeply equal to the provided Map.
      
          @param expected - Expected Map to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...map2])}\``,
          validator: (map2) => isEqual5(map2, expected)
        });
      }
    };
    exports2.MapPredicate = MapPredicate2;
  }
});
var require_weak_map = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/weak-map.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.WeakMapPredicate = void 0;
    var has_items_1 = require_has_items();
    var predicate_1 = require_predicate();
    var WeakMapPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakMap", options);
      }
      /**
          Test a WeakMap to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the WeakMap.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map2) => (0, has_items_1.default)(map2, keys)
        });
      }
      /**
          Test a WeakMap to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the WeakMap.
          */
      hasAnyKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``,
          validator: (map2) => keys.some((key) => map2.has(key))
        });
      }
    };
    exports2.WeakMapPredicate = WeakMapPredicate2;
  }
});
var require_set = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/set.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SetPredicate = void 0;
    var isEqual5 = require_lodash();
    var has_items_1 = require_has_items();
    var of_type_1 = require_of_type();
    var predicate_1 = require_predicate();
    var SetPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Set", options);
      }
      /**
          Test a Set to have a specific size.
      
          @param size - The size of the Set.
          */
      size(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have size \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size === size
        });
      }
      /**
          Test a Set to have a minimum size.
      
          @param size - The minimum size of the Set.
          */
      minSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size >= size,
          negatedMessage: (set, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to have a maximum size.
      
          @param size - The maximum size of the Set.
          */
      maxSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size <= size,
          negatedMessage: (set, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the Set.
          */
      has(...items) {
        return this.addValidator({
          message: (_3, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => (0, has_items_1.default)(set, items)
        });
      }
      /**
          Test a Set to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the Set.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
      /**
          Test all the items in the Set to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every item in the Set.
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (set) => (0, of_type_1.default)(set, "values", predicate)
        });
      }
      /**
      Test a Set to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...set])}\``,
          validator: (set) => set.size === 0
        });
      }
      /**
      Test a Set to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (set) => set.size > 0
        });
      }
      /**
          Test a Set to be deeply equal to the provided Set.
      
          @param expected - Expected Set to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...set])}\``,
          validator: (set) => isEqual5(set, expected)
        });
      }
    };
    exports2.SetPredicate = SetPredicate2;
  }
});
var require_weak_set = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/weak-set.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.WeakSetPredicate = void 0;
    var has_items_1 = require_has_items();
    var predicate_1 = require_predicate();
    var WeakSetPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakSet", options);
      }
      /**
          Test a WeakSet to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the WeakSet.
          */
      has(...items) {
        return this.addValidator({
          message: (_3, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => (0, has_items_1.default)(set, items)
        });
      }
      /**
          Test a WeakSet to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the WeakSet.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
    };
    exports2.WeakSetPredicate = WeakSetPredicate2;
  }
});
var require_typed_array = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/typed-array.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.TypedArrayPredicate = void 0;
    var predicate_1 = require_predicate();
    var TypedArrayPredicate2 = class extends predicate_1.Predicate {
      /**
          Test a typed array to have a specific byte length.
      
          @param byteLength - The byte length of the typed array.
          */
      byteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength === byteLength2
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the typed array.
          */
      minByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength >= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2 - 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param length - The minimum byte length of the typed array.
          */
      maxByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength <= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2 + 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test a typed array to have a specific length.
      
          @param length - The length of the typed array.
          */
      length(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length === length
        });
      }
      /**
          Test a typed array to have a minimum length.
      
          @param length - The minimum length of the typed array.
          */
      minLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length >= length,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value.length}\``
        });
      }
      /**
          Test a typed array to have a maximum length.
      
          @param length - The maximum length of the typed array.
          */
      maxLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length <= length,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value.length}\``
        });
      }
    };
    exports2.TypedArrayPredicate = TypedArrayPredicate2;
  }
});
var require_array_buffer = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/array-buffer.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ArrayBufferPredicate = void 0;
    var predicate_1 = require_predicate();
    var ArrayBufferPredicate2 = class extends predicate_1.Predicate {
      /**
          Test an array buffer to have a specific byte length.
      
          @param byteLength - The byte length of the array buffer.
          */
      byteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength === byteLength2
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the array buffer.
          */
      minByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength >= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2 - 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param length - The minimum byte length of the array buffer.
          */
      maxByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength <= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2 + 1}\`, got \`${value.byteLength}\``
        });
      }
    };
    exports2.ArrayBufferPredicate = ArrayBufferPredicate2;
  }
});
var require_data_view = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/data-view.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DataViewPredicate = void 0;
    var predicate_1 = require_predicate();
    var DataViewPredicate2 = class extends predicate_1.Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("DataView", options);
      }
      /**
          Test a DataView to have a specific byte length.
      
          @param byteLength - The byte length of the DataView.
          */
      byteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength === byteLength2
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the DataView.
          */
      minByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength >= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2 - 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param length - The minimum byte length of the DataView.
          */
      maxByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength <= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2 + 1}\`, got \`${value.byteLength}\``
        });
      }
    };
    exports2.DataViewPredicate = DataViewPredicate2;
  }
});
var require_any = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates/any.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.AnyPredicate = void 0;
    var argument_error_1 = require_argument_error();
    var base_predicate_1 = require_base_predicate();
    var generate_argument_error_message_1 = require_generate_argument_error_message();
    var AnyPredicate2 = class {
      constructor(predicates3, options = {}) {
        Object.defineProperty(this, "predicates", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: predicates3
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
      }
      [base_predicate_1.testSymbol](value, main2, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const predicate of this.predicates) {
          try {
            main2(value, label, predicate, idLabel);
            return;
          } catch (error) {
            if (value === void 0 && this.options.optional === true) {
              return;
            }
            if (error instanceof argument_error_1.ArgumentError) {
              for (const [key, value2] of error.validationErrors.entries()) {
                const alreadyPresent = errors.get(key);
                errors.set(key, /* @__PURE__ */ new Set([...alreadyPresent !== null && alreadyPresent !== void 0 ? alreadyPresent : [], ...value2]));
              }
            }
          }
        }
        if (errors.size > 0) {
          const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors, true);
          throw new argument_error_1.ArgumentError(`Any predicate failed with the following errors:
${message}`, main2, errors);
        }
      }
    };
    exports2.AnyPredicate = AnyPredicate2;
  }
});
var require_predicates = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/predicates.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.AnyPredicate = exports2.DataViewPredicate = exports2.ArrayBufferPredicate = exports2.TypedArrayPredicate = exports2.WeakSetPredicate = exports2.SetPredicate = exports2.WeakMapPredicate = exports2.MapPredicate = exports2.ErrorPredicate = exports2.DatePredicate = exports2.ObjectPredicate = exports2.ArrayPredicate = exports2.BooleanPredicate = exports2.BigIntPredicate = exports2.NumberPredicate = exports2.StringPredicate = void 0;
    var string_1 = require_string();
    Object.defineProperty(exports2, "StringPredicate", { enumerable: true, get: function() {
      return string_1.StringPredicate;
    } });
    var number_1 = require_number();
    Object.defineProperty(exports2, "NumberPredicate", { enumerable: true, get: function() {
      return number_1.NumberPredicate;
    } });
    var bigint_1 = require_bigint();
    Object.defineProperty(exports2, "BigIntPredicate", { enumerable: true, get: function() {
      return bigint_1.BigIntPredicate;
    } });
    var boolean_1 = require_boolean();
    Object.defineProperty(exports2, "BooleanPredicate", { enumerable: true, get: function() {
      return boolean_1.BooleanPredicate;
    } });
    var predicate_1 = require_predicate();
    var array_1 = require_array();
    Object.defineProperty(exports2, "ArrayPredicate", { enumerable: true, get: function() {
      return array_1.ArrayPredicate;
    } });
    var object_1 = require_object();
    Object.defineProperty(exports2, "ObjectPredicate", { enumerable: true, get: function() {
      return object_1.ObjectPredicate;
    } });
    var date_1 = require_date();
    Object.defineProperty(exports2, "DatePredicate", { enumerable: true, get: function() {
      return date_1.DatePredicate;
    } });
    var error_1 = require_error();
    Object.defineProperty(exports2, "ErrorPredicate", { enumerable: true, get: function() {
      return error_1.ErrorPredicate;
    } });
    var map_1 = require_map();
    Object.defineProperty(exports2, "MapPredicate", { enumerable: true, get: function() {
      return map_1.MapPredicate;
    } });
    var weak_map_1 = require_weak_map();
    Object.defineProperty(exports2, "WeakMapPredicate", { enumerable: true, get: function() {
      return weak_map_1.WeakMapPredicate;
    } });
    var set_1 = require_set();
    Object.defineProperty(exports2, "SetPredicate", { enumerable: true, get: function() {
      return set_1.SetPredicate;
    } });
    var weak_set_1 = require_weak_set();
    Object.defineProperty(exports2, "WeakSetPredicate", { enumerable: true, get: function() {
      return weak_set_1.WeakSetPredicate;
    } });
    var typed_array_1 = require_typed_array();
    Object.defineProperty(exports2, "TypedArrayPredicate", { enumerable: true, get: function() {
      return typed_array_1.TypedArrayPredicate;
    } });
    var array_buffer_1 = require_array_buffer();
    Object.defineProperty(exports2, "ArrayBufferPredicate", { enumerable: true, get: function() {
      return array_buffer_1.ArrayBufferPredicate;
    } });
    var data_view_1 = require_data_view();
    Object.defineProperty(exports2, "DataViewPredicate", { enumerable: true, get: function() {
      return data_view_1.DataViewPredicate;
    } });
    var any_1 = require_any();
    Object.defineProperty(exports2, "AnyPredicate", { enumerable: true, get: function() {
      return any_1.AnyPredicate;
    } });
    exports2.default = (object, options) => {
      Object.defineProperties(object, {
        string: {
          get: () => new string_1.StringPredicate(options)
        },
        number: {
          get: () => new number_1.NumberPredicate(options)
        },
        bigint: {
          get: () => new bigint_1.BigIntPredicate(options)
        },
        boolean: {
          get: () => new boolean_1.BooleanPredicate(options)
        },
        undefined: {
          get: () => new predicate_1.Predicate("undefined", options)
        },
        null: {
          get: () => new predicate_1.Predicate("null", options)
        },
        nullOrUndefined: {
          get: () => new predicate_1.Predicate("nullOrUndefined", options)
        },
        nan: {
          get: () => new predicate_1.Predicate("nan", options)
        },
        symbol: {
          get: () => new predicate_1.Predicate("symbol", options)
        },
        array: {
          get: () => new array_1.ArrayPredicate(options)
        },
        object: {
          get: () => new object_1.ObjectPredicate(options)
        },
        date: {
          get: () => new date_1.DatePredicate(options)
        },
        error: {
          get: () => new error_1.ErrorPredicate(options)
        },
        map: {
          get: () => new map_1.MapPredicate(options)
        },
        weakMap: {
          get: () => new weak_map_1.WeakMapPredicate(options)
        },
        set: {
          get: () => new set_1.SetPredicate(options)
        },
        weakSet: {
          get: () => new weak_set_1.WeakSetPredicate(options)
        },
        function: {
          get: () => new predicate_1.Predicate("Function", options)
        },
        buffer: {
          get: () => new predicate_1.Predicate("Buffer", options)
        },
        regExp: {
          get: () => new predicate_1.Predicate("RegExp", options)
        },
        promise: {
          get: () => new predicate_1.Predicate("Promise", options)
        },
        typedArray: {
          get: () => new typed_array_1.TypedArrayPredicate("TypedArray", options)
        },
        int8Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Int8Array", options)
        },
        uint8Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint8Array", options)
        },
        uint8ClampedArray: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint8ClampedArray", options)
        },
        int16Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Int16Array", options)
        },
        uint16Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint16Array", options)
        },
        int32Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Int32Array", options)
        },
        uint32Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Uint32Array", options)
        },
        float32Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Float32Array", options)
        },
        float64Array: {
          get: () => new typed_array_1.TypedArrayPredicate("Float64Array", options)
        },
        arrayBuffer: {
          get: () => new array_buffer_1.ArrayBufferPredicate("ArrayBuffer", options)
        },
        sharedArrayBuffer: {
          get: () => new array_buffer_1.ArrayBufferPredicate("SharedArrayBuffer", options)
        },
        dataView: {
          get: () => new data_view_1.DataViewPredicate(options)
        },
        iterable: {
          get: () => new predicate_1.Predicate("Iterable", options)
        },
        any: {
          value: (...predicates3) => new any_1.AnyPredicate(predicates3, options)
        }
      });
      return object;
    };
  }
});
var require_modifiers = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/modifiers.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var predicates_1 = require_predicates();
    exports2.default = (object) => {
      Object.defineProperties(object, {
        optional: {
          get: () => (0, predicates_1.default)({}, { optional: true })
        }
      });
      return object;
    };
  }
});
var require_dist2 = __commonJS2({
  "../../node_modules/.pnpm/ow@0.28.2/node_modules/ow/dist/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __exportStar2 = exports2 && exports2.__exportStar || function(m2, exports22) {
      for (var p in m2) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports22, p)) __createBinding2(exports22, m2, p);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ArgumentError = exports2.Predicate = void 0;
    var callsites_1 = require_callsites();
    var infer_label_1 = require_infer_label();
    var predicate_1 = require_predicate();
    Object.defineProperty(exports2, "Predicate", { enumerable: true, get: function() {
      return predicate_1.Predicate;
    } });
    var base_predicate_1 = require_base_predicate();
    var modifiers_1 = require_modifiers();
    var predicates_1 = require_predicates();
    var test_1 = require_test();
    var ow2 = (value, labelOrPredicate, predicate) => {
      if (!(0, base_predicate_1.isPredicate)(labelOrPredicate) && typeof labelOrPredicate !== "string") {
        throw new TypeError(`Expected second argument to be a predicate or a string, got \`${typeof labelOrPredicate}\``);
      }
      if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) {
        const stackFrames = (0, callsites_1.default)();
        (0, test_1.default)(value, () => (0, infer_label_1.inferLabel)(stackFrames), labelOrPredicate);
        return;
      }
      (0, test_1.default)(value, labelOrPredicate, predicate);
    };
    Object.defineProperties(ow2, {
      isValid: {
        value: (value, predicate) => {
          try {
            (0, test_1.default)(value, "", predicate);
            return true;
          } catch {
            return false;
          }
        }
      },
      create: {
        value: (labelOrPredicate, predicate) => (value, label) => {
          if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) {
            const stackFrames = (0, callsites_1.default)();
            (0, test_1.default)(value, label !== null && label !== void 0 ? label : (() => (0, infer_label_1.inferLabel)(stackFrames)), labelOrPredicate);
            return;
          }
          (0, test_1.default)(value, label !== null && label !== void 0 ? label : labelOrPredicate, predicate);
        }
      }
    });
    var _ow2 = (0, predicates_1.default)((0, modifiers_1.default)(ow2));
    exports2.default = _ow2;
    __exportStar2(require_predicates(), exports2);
    var argument_error_1 = require_argument_error();
    Object.defineProperty(exports2, "ArgumentError", { enumerable: true, get: function() {
      return argument_error_1.ArgumentError;
    } });
  }
});
var require_cjs = __commonJS2({
  "../../node_modules/.pnpm/@apify+timeout@0.3.2/node_modules/@apify/timeout/cjs/index.cjs"(exports2, module2) {
    "use strict";
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var index_exports2 = {};
    __export22(index_exports2, {
      TimeoutError: () => TimeoutError3,
      addTimeoutToPromise: () => addTimeoutToPromise,
      storage: () => storage2,
      tryCancel: () => tryCancel
    });
    module2.exports = __toCommonJS22(index_exports2);
    var import_node_async_hooks = __require("async_hooks");
    var storage2 = new import_node_async_hooks.AsyncLocalStorage();
    var _TimeoutError = class _TimeoutError extends Error {
    };
    __name2(_TimeoutError, "TimeoutError");
    var TimeoutError3 = _TimeoutError;
    var _InternalTimeoutError = class _InternalTimeoutError extends TimeoutError3 {
    };
    __name2(_InternalTimeoutError, "InternalTimeoutError");
    var InternalTimeoutError = _InternalTimeoutError;
    function tryCancel() {
      const signal = storage2.getStore()?.cancelTask.signal;
      if (signal?.aborted) {
        throw new InternalTimeoutError("Promise handler has been canceled due to a timeout");
      }
    }
    __name2(tryCancel, "tryCancel");
    async function addTimeoutToPromise(handler, timeoutMillis, errorMessage) {
      const context = storage2.getStore() ?? {
        cancelTask: new AbortController()
      };
      let returnValue;
      const wrap = /* @__PURE__ */ __name2(async () => {
        try {
          returnValue = await handler();
        } catch (e2) {
          if (!(e2 instanceof InternalTimeoutError)) {
            throw e2;
          }
        }
      }, "wrap");
      return new Promise((resolve2, reject) => {
        const timeout = setTimeout(() => {
          context.cancelTask.abort();
          const error = errorMessage instanceof Error ? errorMessage : new TimeoutError3(errorMessage);
          reject(error);
        }, timeoutMillis);
        storage2.run(context, () => {
          wrap().then(() => resolve2(returnValue)).catch(reject).finally(() => clearTimeout(timeout));
        });
      });
    }
    __name2(addTimeoutToPromise, "addTimeoutToPromise");
  }
});
var require_cjs2 = __commonJS2({
  "../../node_modules/.pnpm/@apify+consts@2.51.0/node_modules/@apify/consts/cjs/index.cjs"(exports2, module2) {
    "use strict";
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var index_exports2 = {};
    __export22(index_exports2, {
      ACTOR_BUILD_ARGS: () => ACTOR_BUILD_ARGS,
      ACTOR_CATEGORIES: () => ACTOR_CATEGORIES,
      ACTOR_ENV_VARS: () => ACTOR_ENV_VARS,
      ACTOR_EVENT_NAMES: () => ACTOR_EVENT_NAMES,
      ACTOR_JOB_STATUSES: () => ACTOR_JOB_STATUSES,
      ACTOR_JOB_TERMINAL_STATUSES: () => ACTOR_JOB_TERMINAL_STATUSES,
      ACTOR_JOB_TYPES: () => ACTOR_JOB_TYPES,
      ACTOR_LIMITS: () => ACTOR_LIMITS,
      ACTOR_NAME: () => ACTOR_NAME,
      ACTOR_PERMISSION_LEVEL: () => ACTOR_PERMISSION_LEVEL,
      ACTOR_RESTART_ON_ERROR: () => ACTOR_RESTART_ON_ERROR,
      ACTOR_SOURCE_TYPES: () => ACTOR_SOURCE_TYPES,
      ACTOR_TYPES: () => ACTOR_TYPES,
      ACT_JOB_STATUSES: () => ACT_JOB_STATUSES,
      ACT_JOB_TERMINAL_STATUSES: () => ACT_JOB_TERMINAL_STATUSES,
      ACT_JOB_TYPES: () => ACT_JOB_TYPES,
      ACT_RESTART_ON_ERROR: () => ACT_RESTART_ON_ERROR,
      ACT_SOURCE_TYPES: () => ACT_SOURCE_TYPES,
      ACT_TYPES: () => ACT_TYPES,
      ALL_ACTOR_CATEGORIES: () => ALL_ACTOR_CATEGORIES,
      ANONYMOUS_USERNAME: () => ANONYMOUS_USERNAME,
      APIFY_ENV_VARS: () => APIFY_ENV_VARS,
      APIFY_ID_REGEX: () => APIFY_ID_REGEX,
      APIFY_PROXY_VALUE_REGEX: () => APIFY_PROXY_VALUE_REGEX,
      BUILD_TAG_LATEST: () => BUILD_TAG_LATEST,
      COMMA_SEPARATED_EMAILS_REGEX: () => COMMA_SEPARATED_EMAILS_REGEX,
      COMMA_SEPARATED_EMAILS_REGEX_STR: () => COMMA_SEPARATED_EMAILS_REGEX_STR,
      COMMA_SEPARATED_LIST_ENV_VARS: () => COMMA_SEPARATED_LIST_ENV_VARS,
      COMPUTE_UNIT_MB: () => COMPUTE_UNIT_MB,
      COMPUTE_UNIT_MILLIS: () => COMPUTE_UNIT_MILLIS,
      CONTACT_LINK_REGEX: () => CONTACT_LINK_REGEX,
      DEFAULT_ACTOR_STANDBY_PORT: () => DEFAULT_ACTOR_STANDBY_PORT,
      DEFAULT_CONTAINER_PORT: () => DEFAULT_CONTAINER_PORT,
      DEFAULT_PLATFORM_LIMITS: () => DEFAULT_PLATFORM_LIMITS,
      DNS_SAFE_NAME_MAX_LENGTH: () => DNS_SAFE_NAME_MAX_LENGTH,
      DNS_SAFE_NAME_REGEX: () => DNS_SAFE_NAME_REGEX,
      DOCKER_LABELS: () => DOCKER_LABELS,
      EMAIL: () => EMAIL,
      EMAIL_REGEX: () => EMAIL_REGEX,
      EMAIL_REGEX_STR: () => EMAIL_REGEX_STR,
      ENV_VARS: () => ENV_VARS,
      FINISHED_PROJECT_STATUSES: () => FINISHED_PROJECT_STATUSES,
      FREE_SUBSCRIPTION_PLAN_CODE: () => FREE_SUBSCRIPTION_PLAN_CODE,
      GITHUB_GIST_URL_REGEX: () => GITHUB_GIST_URL_REGEX,
      GITHUB_REGEX: () => GITHUB_REGEX,
      GIT_MAIN_BRANCH: () => GIT_MAIN_BRANCH,
      GIT_REPO_REGEX: () => GIT_REPO_REGEX,
      HTTP_URL_REGEX: () => HTTP_URL_REGEX,
      INTEGER_ENV_VARS: () => INTEGER_ENV_VARS,
      ISSUES_STATUS_ALL: () => ISSUES_STATUS_ALL,
      ISSUES_STATUS_TYPES: () => ISSUES_STATUS_TYPES,
      JSON_ENCODED_ENV_VARS: () => JSON_ENCODED_ENV_VARS,
      KEY_VALUE_STORE_KEYS: () => KEY_VALUE_STORE_KEYS,
      KEY_VALUE_STORE_KEY_REGEX: () => KEY_VALUE_STORE_KEY_REGEX,
      LINKEDIN_PROFILE_REGEX: () => LINKEDIN_PROFILE_REGEX,
      LOCAL_ACTOR_ENV_VARS: () => LOCAL_ACTOR_ENV_VARS,
      LOCAL_APIFY_ENV_VARS: () => LOCAL_APIFY_ENV_VARS,
      LOCAL_ENV_VARS: () => LOCAL_ENV_VARS,
      LOCAL_STORAGE_SUBDIRS: () => LOCAL_STORAGE_SUBDIRS,
      MARKETPLACE_USER_ROLES: () => MARKETPLACE_USER_ROLES,
      MAX_MULTIFILE_BYTES: () => MAX_MULTIFILE_BYTES,
      MAX_PAYLOAD_SIZE_BYTES: () => MAX_PAYLOAD_SIZE_BYTES,
      META_ORIGINS: () => META_ORIGINS,
      ME_USER_NAME_PLACEHOLDER: () => ME_USER_NAME_PLACEHOLDER,
      PROFILE_NAME: () => PROFILE_NAME,
      PROJECT_STATUSES: () => PROJECT_STATUSES,
      PROXY_URL_REGEX: () => PROXY_URL_REGEX,
      RELATIVE_URL_REGEX: () => RELATIVE_URL_REGEX,
      REQUEST_QUEUE_HEAD_MAX_LIMIT: () => REQUEST_QUEUE_HEAD_MAX_LIMIT,
      REQUEST_QUEUE_MAX_REQUESTS_PER_BATCH_OPERATION: () => REQUEST_QUEUE_MAX_REQUESTS_PER_BATCH_OPERATION,
      RUN_GENERAL_ACCESS: () => RUN_GENERAL_ACCESS,
      SHORT_CRAWLER_ID_LENGTH: () => SHORT_CRAWLER_ID_LENGTH,
      SOURCE_FILE_FORMATS: () => SOURCE_FILE_FORMATS,
      SPLIT_PATH_REGEX: () => SPLIT_PATH_REGEX,
      STORAGE_GENERAL_ACCESS: () => STORAGE_GENERAL_ACCESS,
      STORAGE_OWNERSHIP_FILTER: () => STORAGE_OWNERSHIP_FILTER,
      TWITTER_REGEX: () => TWITTER_REGEX,
      URL_REGEX: () => URL_REGEX,
      USERNAME: () => USERNAME,
      USER_BASIC_TEXT_XSS_OPTIONS: () => USER_BASIC_TEXT_XSS_OPTIONS,
      USER_PERSONA_TYPES: () => USER_PERSONA_TYPES,
      VERSION_INT_MAJOR_BASE: () => VERSION_INT_MAJOR_BASE,
      VERSION_INT_MINOR_BASE: () => VERSION_INT_MINOR_BASE,
      WEBHOOK_ALLOWED_PAYLOAD_VARIABLES: () => WEBHOOK_ALLOWED_PAYLOAD_VARIABLES,
      WEBHOOK_DEFAULT_PAYLOAD_TEMPLATE: () => WEBHOOK_DEFAULT_PAYLOAD_TEMPLATE,
      WEBHOOK_DISPATCH_STATUSES: () => WEBHOOK_DISPATCH_STATUSES,
      WEBHOOK_EVENT_TYPES: () => WEBHOOK_EVENT_TYPES,
      WEBHOOK_EVENT_TYPE_GROUPS: () => WEBHOOK_EVENT_TYPE_GROUPS,
      WORKER_SERVICE_TYPES: () => WORKER_SERVICE_TYPES
    });
    module2.exports = __toCommonJS22(index_exports2);
    var namePartSubRegexStr = "[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+";
    var nameSubRegexStr = `${namePartSubRegexStr}(?:\\.${namePartSubRegexStr})*`;
    var domainPartSubRegexStr = "[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?";
    var domainSubRegexStr = `${domainPartSubRegexStr}(?:\\.${domainPartSubRegexStr})+`;
    var EMAIL_REGEX_STR = `${nameSubRegexStr}@${domainSubRegexStr}`;
    var EMAIL_REGEX = new RegExp(`^${EMAIL_REGEX_STR}$`);
    var COMMA_SEPARATED_EMAILS_REGEX_STR = `(${EMAIL_REGEX_STR})( *, *${EMAIL_REGEX_STR})*`;
    var COMMA_SEPARATED_EMAILS_REGEX = new RegExp(`^${COMMA_SEPARATED_EMAILS_REGEX_STR}$`);
    var GIT_REPO_REGEX = /^(?:git|ssh|https?|git@[-\w.]+):(\/\/)?(.*?)(\/?|#[-\d\w._:/]+?)$/;
    var DNS_SAFE_NAME_REGEX = /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])$/;
    var APIFY_PROXY_VALUE_REGEX = /^[\w._~]+$/;
    var PROXY_URL_REGEX = /^(socks(4|4a|5|5h)?|https?):\/\/(([^:]+:)?[^@]*@)?[^.:@]+\.[^:]+:[\d]+?$/;
    var KEY_VALUE_STORE_KEY_REGEX = /^([a-zA-Z0-9!\-_.'()]{1,256})$/;
    var GITHUB_REGEX_STR = "[a-z\\d](?:[a-z\\d]|-(?=[a-z\\d])){0,38}";
    var TWITTER_REGEX = /^@[a-z0-9_]{1,15}$/i;
    var GITHUB_REGEX = new RegExp(`^${GITHUB_REGEX_STR}$`, "i");
    var LINKEDIN_PROFILE_REGEX = /^(https?:\/\/)?(www\.)?([a-z]{2}\.)?linkedin.com\/(in|company)\/([A-Za-z0-9_-]+)\/?$/;
    var URL_REGEX = /^https?:\/\//i;
    var HTTP_URL_REGEX = new RegExp(
      "^(?:(?:(?:https?):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?|xn--[a-z0-9]+))(?::\\d{2,5})?(?:[/?#]\\S*)?$",
      "i"
    );
    var GITHUB_GIST_URL_REGEX = new RegExp(`^https:\\/\\/gist\\.github\\.com\\/${GITHUB_REGEX_STR}\\/[0-9a-f]{32}$`, "i");
    var SPLIT_PATH_REGEX = /[^/]+/g;
    var RELATIVE_URL_REGEX = /^(?!www\.|(?:http|ftp)s?:\/\/|[A-Za-z]:\|\/\/).*/i;
    var CONTACT_LINK_REGEX = /^(mailto|tel|sms):.*$/i;
    var APIFY_ID_REGEX = /[a-zA-Z0-9]{17}/;
    var FREE_SUBSCRIPTION_PLAN_CODE = "DEV";
    var ACTOR_JOB_TYPES = {
      BUILD: "BUILD",
      RUN: "RUN"
    };
    var ACTOR_SOURCE_TYPES = {
      SOURCE_CODE: "SOURCE_CODE",
      SOURCE_FILES: "SOURCE_FILES",
      GIT_REPO: "GIT_REPO",
      TARBALL: "TARBALL",
      GITHUB_GIST: "GITHUB_GIST"
    };
    var ACTOR_EVENT_NAMES = {
      CPU_INFO: "cpuInfo",
      SYSTEM_INFO: "systemInfo",
      MIGRATING: "migrating",
      PERSIST_STATE: "persistState",
      ABORTING: "aborting"
    };
    var ACTOR_JOB_STATUSES = {
      READY: "READY",
      // started but not allocated to any worker yet
      RUNNING: "RUNNING",
      // running on worker
      SUCCEEDED: "SUCCEEDED",
      // finished and all good
      FAILED: "FAILED",
      // run or build failed
      TIMING_OUT: "TIMING-OUT",
      // timing out now
      TIMED_OUT: "TIMED-OUT",
      // timed out
      ABORTING: "ABORTING",
      // being aborted by user
      ABORTED: "ABORTED"
      // aborted by user
    };
    var WEBHOOK_DISPATCH_STATUSES = {
      ACTIVE: "ACTIVE",
      // Attempting to deliver the webhook
      SUCCEEDED: "SUCCEEDED",
      // Webhook was delivered
      FAILED: "FAILED"
      // All calls to webhook target URL failed
    };
    var ACTOR_JOB_TERMINAL_STATUSES = [
      ACTOR_JOB_STATUSES.SUCCEEDED,
      ACTOR_JOB_STATUSES.FAILED,
      ACTOR_JOB_STATUSES.TIMED_OUT,
      ACTOR_JOB_STATUSES.ABORTED
    ];
    var WORKER_SERVICE_TYPES = {
      CRAWLING: "crawling",
      ACTOR: "actor"
    };
    var META_ORIGINS = {
      DEVELOPMENT: "DEVELOPMENT",
      // Job started from Developer console in Source section of actor
      WEB: "WEB",
      // Job started from other place on the website (either console or task detail page)
      API: "API",
      // Job started through API
      SCHEDULER: "SCHEDULER",
      // Job started through Scheduler
      TEST: "TEST",
      // Job started through test actor page
      WEBHOOK: "WEBHOOK",
      // Job started by the webhook
      ACTOR: "ACTOR",
      // Job started by another actor run
      CLI: "CLI",
      // Job started by apify CLI
      STANDBY: "STANDBY"
      // Job started by Actor Standby
    };
    var DOCKER_LABELS = {
      ACTOR_BUILD_ID: "com.apify.actBuildId",
      ACTOR_RUN_ID: "com.apify.actRunId",
      // Kept for backwards compatibility, will be removed soon (TODO: remove old usages!)
      /** @deprecated Use ACTOR_BUILD_ID instead! */
      ACT_BUILD_ID: "com.apify.actBuildId",
      /** @deprecated Use ACTOR_RUN_ID instead! */
      ACT_RUN_ID: "com.apify.actRunId"
    };
    var ACTOR_TYPES = {
      ACT: "acts",
      CRAWLER: "crawlers"
    };
    var ME_USER_NAME_PLACEHOLDER = "me";
    var ANONYMOUS_USERNAME = "anonymous";
    var USERNAME = {
      MIN_LENGTH: 3,
      MAX_LENGTH: 30,
      // Regexes matching a potentially allowed username. The numbers must match MIN and MAX!
      // Note that username must also pass isForbiddenUser() test to be allowed!
      REGEX: /^[a-z0-9_.-]{3,30}$/i,
      RESTRICTED_REGEX: /^(?!.*apify)[a-z0-9_.-]{3,30}$/i
    };
    var EMAIL = {
      MAX_LENGTH: 254,
      // see https://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690
      REGEX: EMAIL_REGEX
    };
    var PROFILE_NAME = {
      MAX_LENGTH: 50,
      REGEX: /^(?!.*:\/\/)[^@><]*$/
      // Prohibits usage of @, <, > and ://
    };
    var DNS_SAFE_NAME_MAX_LENGTH = 63;
    var ACTOR_NAME = {
      MIN_LENGTH: 3,
      MAX_LENGTH: DNS_SAFE_NAME_MAX_LENGTH,
      // DNS-safe string length
      REGEX: DNS_SAFE_NAME_REGEX
    };
    var SHORT_CRAWLER_ID_LENGTH = 5;
    var BUILD_TAG_LATEST = "latest";
    var ACTOR_RESTART_ON_ERROR = {
      MAX_RESTARTS: 3,
      // This needs to be low enough so that it only covers restart loops, rather than e.g.
      // errors during crawling of large lists of URLs
      INTERVAL_MILLIS: 1 * 60 * 1e3
    };
    var ACT_RESTART_ON_ERROR = ACTOR_RESTART_ON_ERROR;
    var ACT_JOB_TYPES = ACTOR_JOB_TYPES;
    var ACT_SOURCE_TYPES = ACTOR_SOURCE_TYPES;
    var ACT_JOB_STATUSES = ACTOR_JOB_STATUSES;
    var ACT_JOB_TERMINAL_STATUSES = ACTOR_JOB_TERMINAL_STATUSES;
    var ACT_TYPES = ACTOR_TYPES;
    var COMPUTE_UNIT_MB = 1024;
    var COMPUTE_UNIT_MILLIS = 60 * 60 * 1e3;
    var ACTOR_LIMITS = {
      // The actualy used limit is taken from private package @apify-packages/consts
      BUILD_DEFAULT_MEMORY_MBYTES: 4096,
      // Maximum duration of build in seconds.
      BUILD_TIMEOUT_SECS: 1800,
      // For each build or run container, set disk quota based on memory size
      RUN_DISK_TO_MEMORY_SIZE_COEFF: 2,
      // For each build or run container, set CPU cores based on memory size
      RUN_MEMORY_MBYTES_PER_CPU_CORE: 4096,
      // The default limit of memory for all running Actor jobs for free accounts.
      FREE_ACCOUNT_MAX_MEMORY_MBYTES: 8192,
      // The default limit of memory for all running Actor jobs for paid accounts.
      PAID_ACCOUNT_MAX_MEMORY_MBYTES: 65536,
      // Minimum and maximum memory for a single act run.
      MIN_RUN_MEMORY_MBYTES: 128,
      MAX_RUN_MEMORY_MBYTES: 32768,
      // Maximum size of actor input schema.
      INPUT_SCHEMA_MAX_BYTES: 500 * 1024,
      // Max length of run/build log in number of characters
      LOG_MAX_CHARS: 10 * 1024 * 1024
    };
    var DEFAULT_PLATFORM_LIMITS = {
      // Maximum number of actors per user
      MAX_ACTORS_PER_USER: 500,
      // Maximum number of tasks per user
      MAX_TASKS_PER_USER: 5e3,
      // Maximum number of schedules per user
      MAX_SCHEDULES_PER_USER: 100,
      // Maximum number of webhooks per user
      MAX_WEBHOOKS_PER_USER: 100,
      // Maximum number of concurrent actor runs per user for free accounts.
      FREE_ACCOUNT_MAX_CONCURRENT_ACTOR_RUNS_PER_USER: 25,
      // Maximum number of concurrent actor runs per user for paid accounts.
      PAID_ACCOUNT_MAX_CONCURRENT_ACTOR_RUNS_PER_USER: 250,
      // Maximum number of actors per scheduler
      MAX_ACTORS_PER_SCHEDULER: 10,
      // Maximum number of tasks per scheduler
      MAX_TASKS_PER_SCHEDULER: 10
    };
    var REQUEST_QUEUE_HEAD_MAX_LIMIT = 1e3;
    var APIFY_ENV_VARS = {
      ACTOR_PRICING_INFO: "APIFY_ACTOR_PRICING_INFO",
      API_BASE_URL: "APIFY_API_BASE_URL",
      API_PUBLIC_BASE_URL: "APIFY_API_PUBLIC_BASE_URL",
      CHARGED_ACTOR_EVENT_COUNTS: "APIFY_CHARGED_ACTOR_EVENT_COUNTS",
      CHROME_EXECUTABLE_PATH: "APIFY_CHROME_EXECUTABLE_PATH",
      DEDICATED_CPUS: "APIFY_DEDICATED_CPUS",
      DISABLE_OUTDATED_WARNING: "APIFY_DISABLE_OUTDATED_WARNING",
      FACT: "APIFY_FACT",
      HEADLESS: "APIFY_HEADLESS",
      INPUT_SECRETS_PRIVATE_KEY_FILE: "APIFY_INPUT_SECRETS_PRIVATE_KEY_FILE",
      INPUT_SECRETS_PRIVATE_KEY_PASSPHRASE: "APIFY_INPUT_SECRETS_PRIVATE_KEY_PASSPHRASE",
      IS_AT_HOME: "APIFY_IS_AT_HOME",
      LOCAL_STORAGE_DIR: "APIFY_LOCAL_STORAGE_DIR",
      LOG_FORMAT: "APIFY_LOG_FORMAT",
      LOG_LEVEL: "APIFY_LOG_LEVEL",
      METAMORPH_AFTER_SLEEP_MILLIS: "APIFY_METAMORPH_AFTER_SLEEP_MILLIS",
      META_ORIGIN: "APIFY_META_ORIGIN",
      PERSIST_STATE_INTERVAL_MILLIS: "APIFY_PERSIST_STATE_INTERVAL_MILLIS",
      PROXY_HOSTNAME: "APIFY_PROXY_HOSTNAME",
      PROXY_PASSWORD: "APIFY_PROXY_PASSWORD",
      PROXY_PORT: "APIFY_PROXY_PORT",
      PROXY_STATUS_URL: "APIFY_PROXY_STATUS_URL",
      PURGE_ON_START: "APIFY_PURGE_ON_START",
      SDK_LATEST_VERSION: "APIFY_SDK_LATEST_VERSION",
      SYSTEM_INFO_INTERVAL_MILLIS: "APIFY_SYSTEM_INFO_INTERVAL_MILLIS",
      TOKEN: "APIFY_TOKEN",
      USER_ID: "APIFY_USER_ID",
      USER_IS_PAYING: "APIFY_USER_IS_PAYING",
      USER_PRICING_TIER: "APIFY_USER_PRICING_TIER",
      WORKFLOW_KEY: "APIFY_WORKFLOW_KEY",
      XVFB: "APIFY_XVFB",
      // Replaced by ACTOR_ENV_VARS, kept for backward compatibility:
      ACTOR_BUILD_ID: "APIFY_ACTOR_BUILD_ID",
      ACTOR_BUILD_NUMBER: "APIFY_ACTOR_BUILD_NUMBER",
      ACTOR_EVENTS_WS_URL: "APIFY_ACTOR_EVENTS_WS_URL",
      ACTOR_ID: "APIFY_ACTOR_ID",
      ACTOR_MAX_PAID_DATASET_ITEMS: "ACTOR_MAX_PAID_DATASET_ITEMS",
      ACTOR_RUN_ID: "APIFY_ACTOR_RUN_ID",
      ACTOR_TASK_ID: "APIFY_ACTOR_TASK_ID",
      CONTAINER_PORT: "APIFY_CONTAINER_PORT",
      CONTAINER_URL: "APIFY_CONTAINER_URL",
      DEFAULT_DATASET_ID: "APIFY_DEFAULT_DATASET_ID",
      DEFAULT_KEY_VALUE_STORE_ID: "APIFY_DEFAULT_KEY_VALUE_STORE_ID",
      DEFAULT_REQUEST_QUEUE_ID: "APIFY_DEFAULT_REQUEST_QUEUE_ID",
      INPUT_KEY: "APIFY_INPUT_KEY",
      MEMORY_MBYTES: "APIFY_MEMORY_MBYTES",
      STARTED_AT: "APIFY_STARTED_AT",
      TIMEOUT_AT: "APIFY_TIMEOUT_AT",
      // Deprecated, keep them for backward compatibility:
      ACT_ID: "APIFY_ACT_ID",
      ACT_RUN_ID: "APIFY_ACT_RUN_ID"
    };
    var ENV_VARS = APIFY_ENV_VARS;
    var ACTOR_ENV_VARS = {
      BUILD_ID: "ACTOR_BUILD_ID",
      BUILD_NUMBER: "ACTOR_BUILD_NUMBER",
      BUILD_TAGS: "ACTOR_BUILD_TAGS",
      DEFAULT_DATASET_ID: "ACTOR_DEFAULT_DATASET_ID",
      DEFAULT_KEY_VALUE_STORE_ID: "ACTOR_DEFAULT_KEY_VALUE_STORE_ID",
      DEFAULT_REQUEST_QUEUE_ID: "ACTOR_DEFAULT_REQUEST_QUEUE_ID",
      STORAGES_JSON: "ACTOR_STORAGES_JSON",
      EVENTS_WEBSOCKET_URL: "ACTOR_EVENTS_WEBSOCKET_URL",
      FULL_NAME: "ACTOR_FULL_NAME",
      ID: "ACTOR_ID",
      INPUT_KEY: "ACTOR_INPUT_KEY",
      MAX_PAID_DATASET_ITEMS: "ACTOR_MAX_PAID_DATASET_ITEMS",
      MAX_TOTAL_CHARGE_USD: "ACTOR_MAX_TOTAL_CHARGE_USD",
      MEMORY_MBYTES: "ACTOR_MEMORY_MBYTES",
      RESTART_ON_ERROR: "ACTOR_RESTART_ON_ERROR",
      PERMISSION_LEVEL: "ACTOR_PERMISSION_LEVEL",
      RUN_ID: "ACTOR_RUN_ID",
      STANDBY_PORT: "ACTOR_STANDBY_PORT",
      STANDBY_URL: "ACTOR_STANDBY_URL",
      STARTED_AT: "ACTOR_STARTED_AT",
      TASK_ID: "ACTOR_TASK_ID",
      TIMEOUT_AT: "ACTOR_TIMEOUT_AT",
      WEB_SERVER_PORT: "ACTOR_WEB_SERVER_PORT",
      WEB_SERVER_URL: "ACTOR_WEB_SERVER_URL"
    };
    var INTEGER_ENV_VARS = [
      // Actor env vars
      ACTOR_ENV_VARS.MAX_PAID_DATASET_ITEMS,
      ACTOR_ENV_VARS.MEMORY_MBYTES,
      ACTOR_ENV_VARS.STANDBY_PORT,
      ACTOR_ENV_VARS.WEB_SERVER_PORT,
      // Apify env vars
      APIFY_ENV_VARS.ACTOR_MAX_PAID_DATASET_ITEMS,
      APIFY_ENV_VARS.CONTAINER_PORT,
      APIFY_ENV_VARS.DEDICATED_CPUS,
      APIFY_ENV_VARS.MEMORY_MBYTES,
      APIFY_ENV_VARS.METAMORPH_AFTER_SLEEP_MILLIS,
      APIFY_ENV_VARS.PERSIST_STATE_INTERVAL_MILLIS,
      APIFY_ENV_VARS.PROXY_PORT,
      APIFY_ENV_VARS.SYSTEM_INFO_INTERVAL_MILLIS
    ];
    var COMMA_SEPARATED_LIST_ENV_VARS = [
      ACTOR_ENV_VARS.BUILD_TAGS
    ];
    var JSON_ENCODED_ENV_VARS = [
      ACTOR_ENV_VARS.STORAGES_JSON
    ];
    var ACTOR_BUILD_ARGS = {
      ACTOR_PATH_IN_DOCKER_CONTEXT: "ACTOR_PATH_IN_DOCKER_CONTEXT"
    };
    var DEFAULT_CONTAINER_PORT = 4321;
    var DEFAULT_ACTOR_STANDBY_PORT = DEFAULT_CONTAINER_PORT;
    var LOCAL_STORAGE_SUBDIRS = {
      datasets: "datasets",
      keyValueStores: "key_value_stores",
      requestQueues: "request_queues"
    };
    var LOCAL_ACTOR_ENV_VARS = {
      [ACTOR_ENV_VARS.STANDBY_PORT]: DEFAULT_CONTAINER_PORT.toString(),
      [ACTOR_ENV_VARS.DEFAULT_DATASET_ID]: "default",
      [ACTOR_ENV_VARS.DEFAULT_KEY_VALUE_STORE_ID]: "default",
      [ACTOR_ENV_VARS.DEFAULT_REQUEST_QUEUE_ID]: "default",
      [ACTOR_ENV_VARS.WEB_SERVER_PORT]: DEFAULT_CONTAINER_PORT.toString(),
      [ACTOR_ENV_VARS.WEB_SERVER_URL]: `http://localhost:${DEFAULT_CONTAINER_PORT}`
      // Must match port line above!
    };
    var LOCAL_APIFY_ENV_VARS = {
      [APIFY_ENV_VARS.CONTAINER_PORT]: LOCAL_ACTOR_ENV_VARS.ACTOR_WEB_SERVER_PORT,
      [APIFY_ENV_VARS.CONTAINER_URL]: LOCAL_ACTOR_ENV_VARS.ACTOR_WEB_SERVER_URL,
      [APIFY_ENV_VARS.DEFAULT_DATASET_ID]: LOCAL_ACTOR_ENV_VARS.ACTOR_DEFAULT_DATASET_ID,
      [APIFY_ENV_VARS.DEFAULT_KEY_VALUE_STORE_ID]: LOCAL_ACTOR_ENV_VARS.ACTOR_DEFAULT_KEY_VALUE_STORE_ID,
      [APIFY_ENV_VARS.DEFAULT_REQUEST_QUEUE_ID]: LOCAL_ACTOR_ENV_VARS.ACTOR_DEFAULT_REQUEST_QUEUE_ID,
      [APIFY_ENV_VARS.PROXY_HOSTNAME]: "proxy.apify.com",
      [APIFY_ENV_VARS.PROXY_PORT]: 8e3.toString()
    };
    var LOCAL_ENV_VARS = LOCAL_APIFY_ENV_VARS;
    var KEY_VALUE_STORE_KEYS = {
      INPUT: "INPUT",
      OUTPUT: "OUTPUT"
    };
    var MAX_PAYLOAD_SIZE_BYTES = 9437184;
    var ACTOR_CATEGORIES = {
      AI: "AI",
      AGENTS: "Agents",
      AUTOMATION: "Automation",
      BUSINESS: "Business",
      COVID_19: "Covid-19",
      DEVELOPER_EXAMPLES: "Developer examples",
      DEVELOPER_TOOLS: "Developer tools",
      ECOMMERCE: "E-commerce",
      FOR_CREATORS: "For creators",
      GAMES: "Games",
      JOBS: "Jobs",
      LEAD_GENERATION: "Lead generation",
      MARKETING: "Marketing",
      NEWS: "News",
      SEO_TOOLS: "SEO tools",
      SOCIAL_MEDIA: "Social media",
      TRAVEL: "Travel",
      VIDEOS: "Videos",
      REAL_ESTATE: "Real estate",
      SPORTS: "Sports",
      EDUCATION: "Education",
      INTEGRATIONS: "Integrations",
      OTHER: "Other",
      OPEN_SOURCE: "Open source",
      MCP_SERVERS: "MCP servers"
    };
    var ALL_ACTOR_CATEGORIES = {
      ...ACTOR_CATEGORIES
      // ...LEGACY_ACTOR_CATEGORIES,
    };
    var VERSION_INT_MAJOR_BASE = 1e7;
    var VERSION_INT_MINOR_BASE = 1e5;
    var USER_BASIC_TEXT_XSS_OPTIONS = {
      whiteList: {
        a: ["href", "title", "target"],
        code: [],
        strong: [],
        b: [],
        br: [],
        ul: [],
        li: [],
        ol: [],
        i: [],
        u: [],
        p: []
      }
    };
    var WEBHOOK_EVENT_TYPES = {
      ACTOR_RUN_CREATED: "ACTOR.RUN.CREATED",
      ACTOR_RUN_SUCCEEDED: "ACTOR.RUN.SUCCEEDED",
      ACTOR_RUN_FAILED: "ACTOR.RUN.FAILED",
      ACTOR_RUN_TIMED_OUT: "ACTOR.RUN.TIMED_OUT",
      ACTOR_RUN_ABORTED: "ACTOR.RUN.ABORTED",
      ACTOR_RUN_RESURRECTED: "ACTOR.RUN.RESURRECTED",
      ACTOR_BUILD_CREATED: "ACTOR.BUILD.CREATED",
      ACTOR_BUILD_SUCCEEDED: "ACTOR.BUILD.SUCCEEDED",
      ACTOR_BUILD_FAILED: "ACTOR.BUILD.FAILED",
      ACTOR_BUILD_TIMED_OUT: "ACTOR.BUILD.TIMED_OUT",
      ACTOR_BUILD_ABORTED: "ACTOR.BUILD.ABORTED",
      TEST: "TEST"
    };
    var WEBHOOK_EVENT_TYPE_GROUPS = {
      ACTOR_RUN: [
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_CREATED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_ABORTED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_RESURRECTED
      ],
      ACTOR_BUILD: [
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_CREATED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_ABORTED
      ],
      // If one of these occurs then we can be sure that none other can occur for the same triggerer.
      ACTOR_RUN_TERMINAL: [
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_RUN_ABORTED
      ],
      ACTOR_BUILD_TERMINAL: [
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_SUCCEEDED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_FAILED,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_TIMED_OUT,
        WEBHOOK_EVENT_TYPES.ACTOR_BUILD_ABORTED
      ]
    };
    var WEBHOOK_DEFAULT_PAYLOAD_TEMPLATE = `{
    "userId": {{userId}},
    "createdAt": {{createdAt}},
    "eventType": {{eventType}},
    "eventData": {{eventData}},
    "resource": {{resource}}
}`;
    var WEBHOOK_ALLOWED_PAYLOAD_VARIABLES = /* @__PURE__ */ new Set([
      "userId",
      "createdAt",
      "eventType",
      "eventData",
      "resource"
    ]);
    var MAX_MULTIFILE_BYTES = 3 * 1024 ** 2;
    var SOURCE_FILE_FORMATS = {
      TEXT: "TEXT",
      BASE64: "BASE64"
    };
    var PROJECT_STATUSES = {
      REQUEST: "REQUEST",
      SPECIFICATION: "SPECIFICATION",
      OFFERS: "OFFERS",
      DEPOSIT: "DEPOSIT",
      DEPOSIT_PAID: "DEPOSIT_PAID",
      NEW: "NEW",
      IN_PROGRESS: "IN_PROGRESS",
      QA: "QA",
      CUSTOMER_QA: "CUSTOMER_QA",
      READY_FOR_INVOICE: "READY_FOR_INVOICE",
      INVOICED: "INVOICED",
      PAID: "PAID",
      DELIVERED: "DELIVERED",
      CLOSED: "CLOSED",
      FINISHED: "FINISHED"
    };
    var FINISHED_PROJECT_STATUSES = [
      PROJECT_STATUSES.READY_FOR_INVOICE,
      PROJECT_STATUSES.INVOICED,
      PROJECT_STATUSES.PAID,
      PROJECT_STATUSES.DELIVERED,
      PROJECT_STATUSES.FINISHED
    ];
    var MARKETPLACE_USER_ROLES = {
      DEVELOPER: "DEVELOPER",
      DATA_EXPERT: "DATA_EXPERT",
      CUSTOMER: "CUSTOMER"
    };
    var USER_PERSONA_TYPES = {
      DEVELOPER: "DEVELOPER",
      USER: "USER"
    };
    var GIT_MAIN_BRANCH = "main";
    var REQUEST_QUEUE_MAX_REQUESTS_PER_BATCH_OPERATION = 25;
    var ISSUES_STATUS_TYPES = {
      OPEN: "OPEN",
      CLOSED: "CLOSED"
    };
    var ISSUES_STATUS_ALL = "ALL";
    var STORAGE_GENERAL_ACCESS = {
      /** Respect the user setting of the storage owner (default behavior). */
      FOLLOW_USER_SETTING: "FOLLOW_USER_SETTING",
      /** Only signed-in users with explicit access can read this storage. */
      RESTRICTED: "RESTRICTED",
      /** Anyone with a link, or the unique storage ID, can read the storage. */
      ANYONE_WITH_ID_CAN_READ: "ANYONE_WITH_ID_CAN_READ",
      /** Anyone with a link, the unique storage ID, or the storage name, can read the storage. */
      ANYONE_WITH_NAME_CAN_READ: "ANYONE_WITH_NAME_CAN_READ"
    };
    var RUN_GENERAL_ACCESS = {
      /** Respect the user setting of the run owner (default behavior). */
      FOLLOW_USER_SETTING: "FOLLOW_USER_SETTING",
      /** Only signed-in users with explicit access can read this run. */
      RESTRICTED: "RESTRICTED",
      /** Anyone with a link, or the unique run ID, can read the run. */
      ANYONE_WITH_ID_CAN_READ: "ANYONE_WITH_ID_CAN_READ"
    };
    var ACTOR_PERMISSION_LEVEL = {
      /** Full permission Actors have access to all user data in the account. */
      FULL_PERMISSIONS: "FULL_PERMISSIONS",
      /**
       * Limited permission Actors have access only to specific resources:
       * - default storages
       * - storages provided via input
       * - the current run
       * - ...
       *
       * Broadly speaking, limited permission Actors cannot access any account data not related to the current run.
       * For details refer to the Apify documentation.
       */
      LIMITED_PERMISSIONS: "LIMITED_PERMISSIONS"
    };
    var STORAGE_OWNERSHIP_FILTER = {
      /** Return only storages owned by the user. */
      OWNED_BY_ME: "ownedByMe",
      /** Return only storages shared with the user. */
      SHARED_WITH_ME: "sharedWithMe"
    };
  }
});
var require_symbols = __commonJS2({
  "../../node_modules/.pnpm/ansi-colors@4.1.3/node_modules/ansi-colors/symbols.js"(exports2, module2) {
    "use strict";
    var isHyper = typeof process !== "undefined" && process.env.TERM_PROGRAM === "Hyper";
    var isWindows = typeof process !== "undefined" && process.platform === "win32";
    var isLinux = typeof process !== "undefined" && process.platform === "linux";
    var common = {
      ballotDisabled: "\u2612",
      ballotOff: "\u2610",
      ballotOn: "\u2611",
      bullet: "\u2022",
      bulletWhite: "\u25E6",
      fullBlock: "\u2588",
      heart: "\u2764",
      identicalTo: "\u2261",
      line: "\u2500",
      mark: "\u203B",
      middot: "\xB7",
      minus: "\uFF0D",
      multiplication: "\xD7",
      obelus: "\xF7",
      pencilDownRight: "\u270E",
      pencilRight: "\u270F",
      pencilUpRight: "\u2710",
      percent: "%",
      pilcrow2: "\u2761",
      pilcrow: "\xB6",
      plusMinus: "\xB1",
      question: "?",
      section: "\xA7",
      starsOff: "\u2606",
      starsOn: "\u2605",
      upDownArrow: "\u2195"
    };
    var windows = Object.assign({}, common, {
      check: "\u221A",
      cross: "\xD7",
      ellipsisLarge: "...",
      ellipsis: "...",
      info: "i",
      questionSmall: "?",
      pointer: ">",
      pointerSmall: "\xBB",
      radioOff: "( )",
      radioOn: "(*)",
      warning: "\u203C"
    });
    var other = Object.assign({}, common, {
      ballotCross: "\u2718",
      check: "\u2714",
      cross: "\u2716",
      ellipsisLarge: "\u22EF",
      ellipsis: "\u2026",
      info: "\u2139",
      questionFull: "\uFF1F",
      questionSmall: "\uFE56",
      pointer: isLinux ? "\u25B8" : "\u276F",
      pointerSmall: isLinux ? "\u2023" : "\u203A",
      radioOff: "\u25EF",
      radioOn: "\u25C9",
      warning: "\u26A0"
    });
    module2.exports = isWindows && !isHyper ? windows : other;
    Reflect.defineProperty(module2.exports, "common", { enumerable: false, value: common });
    Reflect.defineProperty(module2.exports, "windows", { enumerable: false, value: windows });
    Reflect.defineProperty(module2.exports, "other", { enumerable: false, value: other });
  }
});
var require_ansi_colors = __commonJS2({
  "../../node_modules/.pnpm/ansi-colors@4.1.3/node_modules/ansi-colors/index.js"(exports2, module2) {
    "use strict";
    var isObject4 = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
    var ANSI_REGEX = /[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g;
    var hasColor = () => {
      if (typeof process !== "undefined") {
        return process.env.FORCE_COLOR !== "0";
      }
      return false;
    };
    var create2 = () => {
      const colors = {
        enabled: hasColor(),
        visible: true,
        styles: {},
        keys: {}
      };
      const ansi = (style2) => {
        let open = style2.open = `\x1B[${style2.codes[0]}m`;
        let close = style2.close = `\x1B[${style2.codes[1]}m`;
        let regex = style2.regex = new RegExp(`\\u001b\\[${style2.codes[1]}m`, "g");
        style2.wrap = (input, newline) => {
          if (input.includes(close)) input = input.replace(regex, close + open);
          let output = open + input + close;
          return newline ? output.replace(/\r*\n/g, `${close}$&${open}`) : output;
        };
        return style2;
      };
      const wrap = (style2, input, newline) => {
        return typeof style2 === "function" ? style2(input) : style2.wrap(input, newline);
      };
      const style = (input, stack) => {
        if (input === "" || input == null) return "";
        if (colors.enabled === false) return input;
        if (colors.visible === false) return "";
        let str = "" + input;
        let nl2 = str.includes("\n");
        let n22 = stack.length;
        if (n22 > 0 && stack.includes("unstyle")) {
          stack = [.../* @__PURE__ */ new Set(["unstyle", ...stack])].reverse();
        }
        while (n22-- > 0) str = wrap(colors.styles[stack[n22]], str, nl2);
        return str;
      };
      const define2 = (name2, codes, type) => {
        colors.styles[name2] = ansi({ name: name2, codes });
        let keys = colors.keys[type] || (colors.keys[type] = []);
        keys.push(name2);
        Reflect.defineProperty(colors, name2, {
          configurable: true,
          enumerable: true,
          set(value) {
            colors.alias(name2, value);
          },
          get() {
            let color = (input) => style(input, color.stack);
            Reflect.setPrototypeOf(color, colors);
            color.stack = this.stack ? this.stack.concat(name2) : [name2];
            return color;
          }
        });
      };
      define2("reset", [0, 0], "modifier");
      define2("bold", [1, 22], "modifier");
      define2("dim", [2, 22], "modifier");
      define2("italic", [3, 23], "modifier");
      define2("underline", [4, 24], "modifier");
      define2("inverse", [7, 27], "modifier");
      define2("hidden", [8, 28], "modifier");
      define2("strikethrough", [9, 29], "modifier");
      define2("black", [30, 39], "color");
      define2("red", [31, 39], "color");
      define2("green", [32, 39], "color");
      define2("yellow", [33, 39], "color");
      define2("blue", [34, 39], "color");
      define2("magenta", [35, 39], "color");
      define2("cyan", [36, 39], "color");
      define2("white", [37, 39], "color");
      define2("gray", [90, 39], "color");
      define2("grey", [90, 39], "color");
      define2("bgBlack", [40, 49], "bg");
      define2("bgRed", [41, 49], "bg");
      define2("bgGreen", [42, 49], "bg");
      define2("bgYellow", [43, 49], "bg");
      define2("bgBlue", [44, 49], "bg");
      define2("bgMagenta", [45, 49], "bg");
      define2("bgCyan", [46, 49], "bg");
      define2("bgWhite", [47, 49], "bg");
      define2("blackBright", [90, 39], "bright");
      define2("redBright", [91, 39], "bright");
      define2("greenBright", [92, 39], "bright");
      define2("yellowBright", [93, 39], "bright");
      define2("blueBright", [94, 39], "bright");
      define2("magentaBright", [95, 39], "bright");
      define2("cyanBright", [96, 39], "bright");
      define2("whiteBright", [97, 39], "bright");
      define2("bgBlackBright", [100, 49], "bgBright");
      define2("bgRedBright", [101, 49], "bgBright");
      define2("bgGreenBright", [102, 49], "bgBright");
      define2("bgYellowBright", [103, 49], "bgBright");
      define2("bgBlueBright", [104, 49], "bgBright");
      define2("bgMagentaBright", [105, 49], "bgBright");
      define2("bgCyanBright", [106, 49], "bgBright");
      define2("bgWhiteBright", [107, 49], "bgBright");
      colors.ansiRegex = ANSI_REGEX;
      colors.hasColor = colors.hasAnsi = (str) => {
        colors.ansiRegex.lastIndex = 0;
        return typeof str === "string" && str !== "" && colors.ansiRegex.test(str);
      };
      colors.alias = (name2, color) => {
        let fn3 = typeof color === "string" ? colors[color] : color;
        if (typeof fn3 !== "function") {
          throw new TypeError("Expected alias to be the name of an existing color (string) or a function");
        }
        if (!fn3.stack) {
          Reflect.defineProperty(fn3, "name", { value: name2 });
          colors.styles[name2] = fn3;
          fn3.stack = [name2];
        }
        Reflect.defineProperty(colors, name2, {
          configurable: true,
          enumerable: true,
          set(value) {
            colors.alias(name2, value);
          },
          get() {
            let color2 = (input) => style(input, color2.stack);
            Reflect.setPrototypeOf(color2, colors);
            color2.stack = this.stack ? this.stack.concat(fn3.stack) : fn3.stack;
            return color2;
          }
        });
      };
      colors.theme = (custom2) => {
        if (!isObject4(custom2)) throw new TypeError("Expected theme to be an object");
        for (let name2 of Object.keys(custom2)) {
          colors.alias(name2, custom2[name2]);
        }
        return colors;
      };
      colors.alias("unstyle", (str) => {
        if (typeof str === "string" && str !== "") {
          colors.ansiRegex.lastIndex = 0;
          return str.replace(colors.ansiRegex, "");
        }
        return "";
      });
      colors.alias("noop", (str) => str);
      colors.none = colors.clear = colors.noop;
      colors.stripColor = colors.unstyle;
      colors.symbols = require_symbols();
      colors.define = define2;
      return colors;
    };
    module2.exports = create2();
    module2.exports.create = create2;
  }
});
var require_cjs3 = __commonJS2({
  "../../node_modules/.pnpm/@apify+log@2.5.32/node_modules/@apify/log/cjs/index.cjs"(exports2, module2) {
    "use strict";
    var __create22 = Object.create;
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __getProtoOf22 = Object.getPrototypeOf;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __defNormalProp22 = (obj, key, value) => key in obj ? __defProp32(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toESM22 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create22(__getProtoOf22(mod3)) : {}, __copyProps22(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp32(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value) => __defNormalProp22(obj, typeof key !== "symbol" ? key + "" : key, value);
    var index_exports2 = {};
    __export22(index_exports2, {
      IS_APIFY_LOGGER_EXCEPTION: () => IS_APIFY_LOGGER_EXCEPTION,
      LEVELS: () => LEVELS,
      LEVEL_TO_STRING: () => LEVEL_TO_STRING,
      Log: () => Log2,
      LogFormat: () => LogFormat,
      LogLevel: () => LogLevel2,
      Logger: () => Logger2,
      LoggerJson: () => LoggerJson2,
      LoggerText: () => LoggerText2,
      PREFERRED_API_ERROR_FIELDS: () => PREFERRED_API_ERROR_FIELDS,
      PREFERRED_DATA_FIELDS: () => PREFERRED_DATA_FIELDS,
      PREFERRED_ERROR_FIELDS: () => PREFERRED_ERROR_FIELDS,
      PREFERRED_FIELDS: () => PREFERRED_FIELDS,
      PREFERRED_HTTP_FIELDS: () => PREFERRED_HTTP_FIELDS,
      PREFERRED_ID_FIELDS: () => PREFERRED_ID_FIELDS,
      PREFIX_DELIMITER: () => PREFIX_DELIMITER,
      TRUNCATION_FLAG_KEY: () => TRUNCATION_FLAG_KEY,
      TRUNCATION_SUFFIX: () => TRUNCATION_SUFFIX,
      default: () => index_default2,
      getFormatFromEnv: () => getFormatFromEnv,
      getLevelFromEnv: () => getLevelFromEnv,
      sanitizeData: () => sanitizeData,
      truncate: () => truncate
    });
    module2.exports = __toCommonJS22(index_exports2);
    var LogLevel2 = /* @__PURE__ */ ((LogLevel22) => {
      LogLevel22[LogLevel22["OFF"] = 0] = "OFF";
      LogLevel22[LogLevel22["ERROR"] = 1] = "ERROR";
      LogLevel22[LogLevel22["SOFT_FAIL"] = 2] = "SOFT_FAIL";
      LogLevel22[LogLevel22["WARNING"] = 3] = "WARNING";
      LogLevel22[LogLevel22["INFO"] = 4] = "INFO";
      LogLevel22[LogLevel22["DEBUG"] = 5] = "DEBUG";
      LogLevel22[LogLevel22["PERF"] = 6] = "PERF";
      return LogLevel22;
    })(LogLevel2 || {});
    var LEVELS = LogLevel2;
    var LEVEL_TO_STRING = Object.keys(LogLevel2).filter((x3) => Number.isNaN(+x3));
    var LogFormat = /* @__PURE__ */ ((LogFormat2) => {
      LogFormat2["JSON"] = "JSON";
      LogFormat2["TEXT"] = "TEXT";
      return LogFormat2;
    })(LogFormat || {});
    var IS_APIFY_LOGGER_EXCEPTION = Symbol("apify.processed_error");
    var PREFIX_DELIMITER = ":";
    var TRUNCATION_FLAG_KEY = "[TRUNCATED]";
    var TRUNCATION_SUFFIX = "...[truncated]";
    var PREFERRED_ID_FIELDS = [
      "_id",
      "id",
      "userId",
      "impersonatedUserId",
      "impersonatingUserId",
      "adminUserId",
      "actorId",
      "actorTaskId",
      "taskId",
      "buildId",
      "buildNumber",
      "runId"
    ];
    var PREFERRED_ERROR_FIELDS = [
      "name",
      "message",
      "stack",
      "cause"
    ];
    var PREFERRED_HTTP_FIELDS = [
      "url",
      "method",
      "code",
      "status",
      "statusCode",
      "statusText"
    ];
    var PREFERRED_API_ERROR_FIELDS = [
      "errorCode",
      "errorMessage",
      "errorResponse"
    ];
    var PREFERRED_DATA_FIELDS = [
      "response",
      "request",
      "data",
      "payload",
      "details",
      "exception",
      "config",
      "headers"
    ];
    var PREFERRED_FIELDS = [
      ...PREFERRED_ID_FIELDS,
      ...PREFERRED_ERROR_FIELDS,
      ...PREFERRED_HTTP_FIELDS,
      ...PREFERRED_API_ERROR_FIELDS,
      ...PREFERRED_DATA_FIELDS
    ];
    var import_consts = require_cjs2();
    function truncate(str, maxLength, suffix = TRUNCATION_SUFFIX) {
      maxLength = Math.floor(maxLength);
      if (suffix.length > maxLength) {
        throw new Error("suffix string cannot be longer than maxLength");
      }
      if (typeof str === "string" && str.length > maxLength) {
        str = str.substr(0, maxLength - suffix.length) + suffix;
      }
      return str;
    }
    __name2(truncate, "truncate");
    function getLevelFromEnv() {
      const envVar = process.env[import_consts.APIFY_ENV_VARS.LOG_LEVEL];
      if (!envVar) return 4;
      if (Number.isFinite(+envVar)) return +envVar;
      if (LogLevel2[envVar]) return LogLevel2[envVar];
      return +envVar;
    }
    __name2(getLevelFromEnv, "getLevelFromEnv");
    function getFormatFromEnv() {
      const envVar = process.env[import_consts.APIFY_ENV_VARS.LOG_FORMAT] || "TEXT";
      switch (envVar.toLowerCase()) {
        case "JSON".toLowerCase():
          return "JSON";
        case "TEXT".toLowerCase():
          return "TEXT";
        default:
          console.warn(`Unknown value for environment variable ${import_consts.APIFY_ENV_VARS.LOG_FORMAT}: ${envVar}`);
          return "TEXT";
      }
    }
    __name2(getFormatFromEnv, "getFormatFromEnv");
    function sanitizeData(data, options) {
      const {
        maxDepth = Infinity,
        gradualLimitFactor = 1,
        maxStringLength = Infinity,
        maxArrayLength = Infinity,
        maxFields = Infinity,
        preferredFieldsMap = {},
        truncationSuffix = TRUNCATION_SUFFIX,
        truncationFlagKey = TRUNCATION_FLAG_KEY
      } = options;
      if (typeof data === "string") {
        return data.length > maxStringLength ? truncate(data, maxStringLength, truncationSuffix) : data;
      }
      if (["number", "boolean", "symbol", "bigint"].includes(typeof data) || data == null || data instanceof Date) {
        return data;
      }
      if (data instanceof Error) {
        const { name: name2, message, stack, cause, ...rest } = data;
        data = { name: name2, message, stack, cause, ...rest, [IS_APIFY_LOGGER_EXCEPTION]: true };
      }
      const nextCall = /* @__PURE__ */ __name2((dat) => sanitizeData(
        dat,
        {
          ...options,
          maxDepth: maxDepth - 1,
          maxStringLength: Math.max(
            Math.floor(maxStringLength * gradualLimitFactor),
            truncationSuffix.length
            // always at least the length of the truncation suffix
          ),
          maxArrayLength: Math.floor(maxArrayLength * gradualLimitFactor),
          maxFields: Math.floor(maxFields * gradualLimitFactor)
        }
      ), "nextCall");
      if (Array.isArray(data)) {
        if (maxDepth <= 0) return "[array]";
        const sanitized = data.slice(0, maxArrayLength).map(nextCall);
        if (data.length > maxArrayLength) {
          sanitized.push(truncationSuffix);
        }
        return sanitized;
      }
      if (typeof data === "object" && data !== null) {
        if (maxDepth <= 0) return "[object]";
        const allKeys = Reflect.ownKeys(data);
        allKeys.sort((a2, b2) => {
          const aIndex = preferredFieldsMap[String(a2)] ?? -1;
          const bIndex = preferredFieldsMap[String(b2)] ?? -1;
          if (aIndex === -1 && bIndex === -1) return 0;
          if (aIndex === -1) return 1;
          if (bIndex === -1) return -1;
          return aIndex - bIndex;
        });
        const sanitized = {};
        allKeys.slice(0, maxFields).forEach((key) => {
          sanitized[key] = nextCall(data[key]);
        });
        if (allKeys.length > maxFields) {
          sanitized[truncationFlagKey] = true;
        }
        return sanitized;
      }
      if (typeof data === "function") {
        return "[function]";
      }
      console.log(`WARNING: Object cannot be logged: ${data}`);
      return void 0;
    }
    __name2(sanitizeData, "sanitizeData");
    var import_node_events5 = __require("events");
    var _Logger = class _Logger extends import_node_events5.EventEmitter {
      constructor(options) {
        super();
        this.options = options;
      }
      setOptions(options) {
        this.options = { ...this.options, ...options };
      }
      getOptions() {
        return this.options;
      }
      _outputWithConsole(level, line) {
        switch (level) {
          case 1:
            console.error(line);
            break;
          case 3:
            console.warn(line);
            break;
          case 5:
            console.debug(line);
            break;
          default:
            console.log(line);
        }
      }
      // eslint-disable-next-line @typescript-eslint/no-unused-vars
      _log(level, message, data, exception, opts = {}) {
        throw new Error("log() method must be implemented!");
      }
      log(level, message, ...args) {
        const line = this._log(level, message, ...args);
        this.emit("line", line);
      }
    };
    __name2(_Logger, "Logger");
    var Logger2 = _Logger;
    var DEFAULT_OPTIONS2 = {
      skipLevelInfo: false,
      skipTime: false
    };
    var _LoggerJson = class _LoggerJson extends Logger2 {
      constructor(options = {}) {
        super({ ...DEFAULT_OPTIONS2, ...options });
      }
      _log(level, message, data, exception, opts = {}) {
        const { prefix, suffix } = opts;
        if (exception) data = { ...data, exception };
        if (prefix) message = `${prefix}${PREFIX_DELIMITER} ${message}`;
        if (suffix) message = `${message} ${suffix}`;
        const rec = {
          time: !this.options.skipTime ? /* @__PURE__ */ new Date() : void 0,
          level: this.options.skipLevelInfo && level === 4 ? void 0 : LogLevel2[level],
          msg: message,
          ...data
        };
        const line = JSON.stringify(rec);
        this._outputWithConsole(level, line);
        return line;
      }
    };
    __name2(_LoggerJson, "LoggerJson");
    var LoggerJson2 = _LoggerJson;
    var import_ansi_colors2 = __toESM22(require_ansi_colors());
    var import_ansi_colors = __toESM22(require_ansi_colors());
    function identicalSequenceRange(a2, b2) {
      for (let i22 = 0; i22 < a2.length - 3; i22++) {
        const pos = b2.indexOf(a2[i22]);
        if (pos !== -1) {
          const rest = b2.length - pos;
          if (rest > 3) {
            let len = 1;
            const maxLen = Math.min(a2.length - i22, rest);
            while (maxLen > len && a2[i22 + len] === b2[pos + len]) {
              len++;
            }
            if (len > 3) {
              return { len, offset: i22 };
            }
          }
        }
      }
      return { len: 0, offset: 0 };
    }
    __name2(identicalSequenceRange, "identicalSequenceRange");
    function getStackString(error) {
      return error.stack ? String(error.stack) : Error.prototype.toString.call(error);
    }
    __name2(getStackString, "getStackString");
    function getStackFrames(err2, stack) {
      const frames = stack.split("\n");
      let cause;
      try {
        ({ cause } = err2);
      } catch {
      }
      if (cause != null && typeof cause === "object" && IS_APIFY_LOGGER_EXCEPTION in cause) {
        const causeStack = getStackString(cause);
        const causeStackStart = causeStack.indexOf("\n    at");
        if (causeStackStart !== -1) {
          const causeFrames = causeStack.slice(causeStackStart + 1).split("\n");
          const { len, offset } = identicalSequenceRange(frames, causeFrames);
          if (len > 0) {
            const skipped = len - 2;
            const msg = `    ... ${skipped} lines matching cause stack trace ...`;
            frames.splice(offset + 1, skipped, import_ansi_colors.default.grey(msg));
          }
        }
      }
      return frames;
    }
    __name2(getStackFrames, "getStackFrames");
    var SHORTEN_LEVELS = {
      SOFT_FAIL: "SFAIL",
      WARNING: "WARN"
    };
    var LEVEL_TO_COLOR = {
      [
        1
        /* ERROR */
      ]: "red",
      [
        2
        /* SOFT_FAIL */
      ]: "red",
      [
        3
        /* WARNING */
      ]: "yellow",
      [
        4
        /* INFO */
      ]: "green",
      [
        5
        /* DEBUG */
      ]: "blue",
      [
        6
        /* PERF */
      ]: "magenta"
    };
    var SHORTENED_LOG_LEVELS = LEVEL_TO_STRING.map((level) => SHORTEN_LEVELS[level] || level);
    var MAX_LEVEL_LENGTH_SPACES = Math.max(...SHORTENED_LOG_LEVELS.map((l2) => l2.length));
    var getLevelIndent = /* @__PURE__ */ __name2((level) => {
      let spaces = "";
      for (let i22 = 0; i22 < MAX_LEVEL_LENGTH_SPACES - level.length; i22++) spaces += " ";
      return spaces;
    }, "getLevelIndent");
    var DEFAULT_OPTIONS22 = {
      skipTime: true
    };
    var _LoggerText = class _LoggerText extends Logger2 {
      constructor(options = {}) {
        super({ ...DEFAULT_OPTIONS22, ...options });
      }
      _log(level, message, data, exception, opts = {}) {
        let { prefix, suffix } = opts;
        let maybeDate = "";
        if (!this.options.skipTime) {
          maybeDate = `${(/* @__PURE__ */ new Date()).toISOString().replace("Z", "").replace("T", " ")} `;
        }
        const errStack = exception ? this._parseException(exception) : "";
        const color = LEVEL_TO_COLOR[level];
        const levelStr = SHORTENED_LOG_LEVELS[level];
        const levelIndent = getLevelIndent(levelStr);
        const dataStr = !data ? "" : ` ${JSON.stringify(data)}`;
        prefix = prefix ? ` ${prefix}${PREFIX_DELIMITER}` : "";
        suffix = suffix ? ` ${suffix}` : "";
        const line = `${import_ansi_colors2.default.gray(maybeDate)}${import_ansi_colors2.default[color](levelStr)}${levelIndent}${import_ansi_colors2.default.yellow(prefix)} ${message || ""}${import_ansi_colors2.default.gray(dataStr)}${import_ansi_colors2.default.yellow(suffix)}${errStack}`;
        this._outputWithConsole(level, line);
        return line;
      }
      _parseException(exception, indentLevel = 1) {
        if (["string", "boolean", "number", "undefined", "bigint"].includes(typeof exception)) {
          return `
${exception}`;
        }
        if (exception === null) {
          return "\nnull";
        }
        if (typeof exception === "symbol") {
          return `
${exception.toString()}`;
        }
        if (typeof exception === "object" && IS_APIFY_LOGGER_EXCEPTION in exception) {
          return this._parseLoggerException(exception, indentLevel);
        }
        return `
${JSON.stringify(exception, null, 2)}`;
      }
      _parseLoggerException(exception, indentLevel = 1) {
        const errDetails = [];
        if (exception.type) {
          errDetails.push(`type=${exception.type}`);
        }
        if (exception.details) {
          Object.entries(exception.details).map(([key, val]) => errDetails.push(`${key}=${val}`));
        }
        const errorString = exception.stack || exception.reason || exception.message;
        const isStack = errorString === exception.stack;
        const errorLines = getStackFrames(exception, errorString);
        if (isStack) {
          errorLines[0] = exception.message || errorLines[0];
        }
        if (errDetails.length) {
          errorLines[0] += import_ansi_colors2.default.gray(`(details: ${errDetails.join(", ")})`);
        }
        for (let i22 = 1; i22 < errorLines.length; i22++) {
          errorLines[i22] = import_ansi_colors2.default.gray(errorLines[i22]);
        }
        if (exception.cause) {
          const causeString = this._parseException(exception.cause, indentLevel + 1);
          const causeLines = causeString.trim().split("\n");
          errorLines.push(import_ansi_colors2.default.red(`  CAUSE: ${import_ansi_colors2.default.reset(causeLines[0])}`), ...causeLines.slice(1));
        }
        return `
${errorLines.map((line) => `${" ".repeat(indentLevel * 2)}${line}`).join("\n")}`;
      }
    };
    __name2(_LoggerText, "LoggerText");
    var LoggerText2 = _LoggerText;
    var getLoggerForFormat = /* @__PURE__ */ __name2((format) => {
      switch (format) {
        case "JSON":
          return new LoggerJson2();
        case "TEXT":
        default:
          return new LoggerText2();
      }
    }, "getLoggerForFormat");
    var getDefaultOptions = /* @__PURE__ */ __name2(() => ({
      level: getLevelFromEnv(),
      maxDepth: 4,
      gradualLimitFactor: 1 / 2,
      // at each depth level, the limits will be reduced by half
      maxStringLength: 1e3,
      maxArrayLength: 500,
      maxFields: 20,
      preferredFields: [...PREFERRED_FIELDS],
      prefix: null,
      suffix: null,
      truncationSuffix: TRUNCATION_SUFFIX,
      truncationFlagKey: TRUNCATION_FLAG_KEY,
      logger: getLoggerForFormat(getFormatFromEnv()),
      data: {}
    }), "getDefaultOptions");
    var _Log = class _Log2 {
      constructor(options = {}) {
        __publicField2(this, "LEVELS", LogLevel2);
        __publicField2(this, "options");
        __publicField2(this, "preferredFieldsMap");
        __publicField2(this, "warningsOnceLogged", /* @__PURE__ */ new Set());
        this.options = { ...getDefaultOptions(), ...options };
        if (!LogLevel2[this.options.level]) throw new Error('Options "level" must be one of log.LEVELS enum!');
        if (typeof this.options.maxDepth !== "number") throw new Error('Options "maxDepth" must be a number!');
        if (typeof this.options.gradualLimitFactor !== "number") throw new Error('Options "gradualLimitFactor" must be a number!');
        if (typeof this.options.maxStringLength !== "number") throw new Error('Options "maxStringLength" must be a number!');
        if (typeof this.options.maxArrayLength !== "number") throw new Error('Options "maxArrayLength" must be a number!');
        if (typeof this.options.maxFields !== "number") throw new Error('Options "maxFields" must be a number!');
        if (!Array.isArray(this.options.preferredFields)) throw new Error('Options "preferredFields" must be an array!');
        if (this.options.prefix && typeof this.options.prefix !== "string") throw new Error('Options "prefix" must be a string!');
        if (this.options.suffix && typeof this.options.suffix !== "string") throw new Error('Options "suffix" must be a string!');
        if (typeof this.options.truncationSuffix !== "string") throw new Error('Options "truncationSuffix" must be a string!');
        if (typeof this.options.truncationFlagKey !== "string") throw new Error('Options "truncationFlagKey" must be a string!');
        if (typeof this.options.logger !== "object") throw new Error('Options "logger" must be an object!');
        if (typeof this.options.data !== "object") throw new Error('Options "data" must be an object!');
        this.preferredFieldsMap = Object.fromEntries(
          this.options.preferredFields.map((field, index) => [field, index])
        );
      }
      _sanitizeData(obj) {
        return sanitizeData(
          obj,
          {
            maxDepth: this.options.maxDepth,
            gradualLimitFactor: this.options.gradualLimitFactor,
            maxStringLength: this.options.maxStringLength,
            maxArrayLength: this.options.maxArrayLength,
            maxFields: this.options.maxFields,
            preferredFieldsMap: this.preferredFieldsMap,
            truncationSuffix: this.options.truncationSuffix,
            truncationFlagKey: this.options.truncationFlagKey
          }
        );
      }
      /**
       * Returns the currently selected logging level. This is useful for checking whether a message
       * will actually be printed to the console before one actually performs a resource intensive operation
       * to construct the message, such as querying a DB for some metadata that need to be added. If the log
       * level is not high enough at the moment, it doesn't make sense to execute the query.
       */
      getLevel() {
        return this.options.level;
      }
      /**
       * Sets the log level to the given value, preventing messages from less important log levels
       * from being printed to the console. Use in conjunction with the `log.LEVELS` constants such as
       *
       * ```
       * log.setLevel(log.LEVELS.DEBUG);
       * ```
       *
       * Default log level is INFO.
       */
      setLevel(level) {
        if (!LogLevel2[level]) throw new Error('Options "level" must be one of log.LEVELS enum!');
        this.options.level = level;
      }
      internal(level, message, data, exception) {
        if (level > this.options.level) return;
        data = { ...this.options.data, ...data };
        data = Reflect.ownKeys(data).length > 0 ? this._sanitizeData(data) : void 0;
        exception = this._sanitizeData(exception);
        this.options.logger.log(level, message, data, exception, {
          prefix: this.options.prefix,
          suffix: this.options.suffix
        });
      }
      /**
       * Configures logger.
       */
      setOptions(options) {
        this.options = { ...this.options, ...options };
      }
      /**
       * Returns the logger configuration.
       */
      getOptions() {
        return { ...this.options };
      }
      /**
       * Creates a new instance of logger that inherits settings from a parent logger.
       */
      child(options) {
        let { prefix } = this.options;
        if (options.prefix) {
          prefix = prefix ? `${prefix}${PREFIX_DELIMITER}${options.prefix}` : options.prefix;
        }
        const data = options.data ? { ...this.options.data, ...options.data } : this.options.data;
        const newOptions = {
          ...this.options,
          ...options,
          prefix,
          data
        };
        return new _Log2(newOptions);
      }
      /**
       * Logs an `ERROR` message. Use this method to log error messages that are not directly connected
       * to an exception. For logging exceptions, use the `log.exception` method.
       */
      error(message, data) {
        this.internal(1, message, data);
      }
      /**
       * Logs an `ERROR` level message with a nicely formatted exception. Note that the exception is the first parameter
       * here and an additional message is only optional.
       */
      exception(exception, message, data) {
        this.internal(1, message, data, exception);
      }
      softFail(message, data) {
        this.internal(2, message, data);
      }
      /**
       * Logs a `WARNING` level message. Data are stringified and appended to the message.
       */
      warning(message, data) {
        this.internal(3, message, data);
      }
      /**
       * Logs an `INFO` message. `INFO` is the default log level so info messages will be always logged,
       * unless the log level is changed. Data are stringified and appended to the message.
       */
      info(message, data) {
        this.internal(4, message, data);
      }
      /**
       * Logs a `DEBUG` message. By default, it will not be written to the console. To see `DEBUG`
       * messages in the console, set the log level to `DEBUG` either using the `log.setLevel(log.LEVELS.DEBUG)`
       * method or using the environment variable `APIFY_LOG_LEVEL=DEBUG`. Data are stringified and appended
       * to the message.
       */
      debug(message, data) {
        this.internal(5, message, data);
      }
      perf(message, data) {
        this.internal(6, message, data);
      }
      /**
       * Logs a `WARNING` level message only once.
       */
      warningOnce(message) {
        if (this.warningsOnceLogged.has(message)) return;
        this.warningsOnceLogged.add(message);
        this.warning(message);
      }
      /**
       * Logs given message only once as WARNING. It's used to warn user that some feature he is using has been deprecated.
       */
      deprecated(message) {
        this.warningOnce(message);
      }
    };
    __name2(_Log, "Log");
    var Log2 = _Log;
    var log2 = new Log2();
    var index_default2 = log2;
  }
});
var require_cjs4 = __commonJS2({
  "../../node_modules/.pnpm/@apify+utilities@2.25.4/node_modules/@apify/utilities/cjs/index.cjs"(exports2, module2) {
    "use strict";
    var __create22 = Object.create;
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __getProtoOf22 = Object.getPrototypeOf;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __defNormalProp22 = (obj, key, value) => key in obj ? __defProp32(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toESM22 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create22(__getProtoOf22(mod3)) : {}, __copyProps22(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp32(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value) => __defNormalProp22(obj, typeof key !== "symbol" ? key + "" : key, value);
    var index_exports2 = {};
    __export22(index_exports2, {
      CHECK_TYPES: () => CHECK_TYPES,
      CodeHashManager: () => CodeHashManager,
      CodeHashMetaKey: () => CodeHashMetaKey,
      HealthChecker: () => HealthChecker,
      InvalidJsonError: () => InvalidJsonError,
      InvalidVariableError: () => InvalidVariableError,
      JsonVariable: () => JsonVariable,
      ParseJsonlStream: () => ParseJsonlStream,
      RetryableError: () => RetryableError,
      WebhookPayloadTemplate: () => WebhookPayloadTemplate,
      betterClearInterval: () => betterClearInterval,
      betterSetInterval: () => betterSetInterval,
      buildOrVersionNumberIntToStr: () => buildOrVersionNumberIntToStr,
      checkParamPrototypeOrThrow: () => checkParamPrototypeOrThrow,
      concatStreamToBuffer: () => concatStreamToBuffer,
      configureLogger: () => configureLogger,
      createHmacSignature: () => createHmacSignature,
      createHmacSignatureAsync: () => createHmacSignatureAsync,
      createInjectableRegExp: () => createInjectableRegExp,
      createStorageContentSignature: () => createStorageContentSignature,
      createStorageContentSignatureAsync: () => createStorageContentSignatureAsync,
      cryptoRandomObjectId: () => cryptoRandomObjectId,
      dateToString: () => dateToString,
      delayPromise: () => delayPromise,
      deterministicUniqueId: () => deterministicUniqueId,
      escapeForBson: () => escapeForBson,
      escapePropertyName: () => escapePropertyName,
      escapeRegExp: () => escapeRegExp,
      expressErrorHandler: () => expressErrorHandler,
      getOrdinalSuffix: () => getOrdinalSuffix,
      getRandomInt: () => getRandomInt,
      http404Route: () => http404Route,
      isBadForMongo: () => isBadForMongo,
      isBuffer: () => isBuffer3,
      isForbiddenUsername: () => isForbiddenUsername,
      isNullOrUndefined: () => isNullOrUndefined2,
      isUrlRelative: () => isUrlRelative,
      jsonStringifyExtended: () => jsonStringifyExtended,
      leftpad: () => leftpad,
      markedDecreaseHeadsLevel: () => markedDecreaseHeadsLevel,
      markedSetNofollowLinks: () => markedSetNofollowLinks,
      normalizeUrl: () => normalizeUrl2,
      parseBooleanOrNull: () => parseBooleanOrNull,
      parseDateFromJson: () => parseDateFromJson,
      parseUrl: () => parseUrl,
      privateDecrypt: () => privateDecrypt,
      promisifyServerListen: () => promisifyServerListen,
      publicEncrypt: () => publicEncrypt,
      readStreamToString: () => readStreamToString,
      removeFromArray: () => removeFromArray,
      retryWithExpBackoff: () => retryWithExpBackoff,
      separateImports: () => separateImports,
      sequentializePromises: () => sequentializePromises,
      splitFullName: () => splitFullName,
      timeoutPromise: () => timeoutPromise,
      traverseObject: () => traverseObject,
      truncate: () => truncate,
      unescapeFromBson: () => unescapeFromBson,
      unescapePropertyName: () => unescapePropertyName,
      weightedAverage: () => weightedAverage
    });
    module2.exports = __toCommonJS22(index_exports2);
    var import_node_crypto3 = __toESM22(__require("crypto"));
    var import_consts = require_cjs2();
    var import_log = __toESM22(require_cjs3());
    function cryptoRandomObjectId(length = 17) {
      const chars = "abcdefghijklmnopqrstuvwxyzABCEDFGHIJKLMNOPQRSTUVWXYZ0123456789";
      const bytes = import_node_crypto3.default.randomBytes(length);
      let str = "";
      for (let i22 = bytes.length - 1; i22 >= 0; i22--) {
        str += chars[(bytes[i22] | 0) % chars.length];
      }
      return str;
    }
    __name2(cryptoRandomObjectId, "cryptoRandomObjectId");
    function deterministicUniqueId(key, length = 17) {
      return import_node_crypto3.default.createHash("sha256").update(key).digest("base64").replace(/(\+|\/|=)/g, "x").substr(0, length);
    }
    __name2(deterministicUniqueId, "deterministicUniqueId");
    function getRandomInt(maxExcluded) {
      maxExcluded = Math.floor(maxExcluded);
      return Math.floor(Math.random() * maxExcluded);
    }
    __name2(getRandomInt, "getRandomInt");
    function parseDateFromJson(date) {
      if (typeof date === "string") {
        return new Date(Date.parse(date));
      }
      return date;
    }
    __name2(parseDateFromJson, "parseDateFromJson");
    async function delayPromise(millis) {
      return new Promise(((resolve2) => {
        if (millis > 0) {
          setTimeout(() => resolve2(), millis);
        } else {
          resolve2();
        }
      }));
    }
    __name2(delayPromise, "delayPromise");
    function removeFromArray(array, element) {
      const index = array.indexOf(element);
      if (index >= 0) {
        array.splice(index, 1);
        return true;
      }
      return false;
    }
    __name2(removeFromArray, "removeFromArray");
    function http404Route(req, res) {
      res.status(404);
      res.send("Page not found");
    }
    __name2(http404Route, "http404Route");
    function expressErrorHandler(err2, req, res, next) {
      import_log.default.warning("Client HTTP request failed", { url: req.url, errMsg: err2.message });
      if (res.headersSent) {
        next(err2);
        return;
      }
      res.status(505);
      res.send("Internal server error");
    }
    __name2(expressErrorHandler, "expressErrorHandler");
    function betterSetInterval(func, delay2) {
      let scheduleNextRun;
      let timeoutId;
      let isRunning = true;
      const funcWrapper = /* @__PURE__ */ __name2(function() {
        void new Promise((resolve2) => {
          resolve2(func(() => void 0));
        }).finally(scheduleNextRun);
      }, "funcWrapper");
      scheduleNextRun = /* @__PURE__ */ __name2(function() {
        if (isRunning) timeoutId = setTimeout(funcWrapper, delay2);
      }, "scheduleNextRun");
      funcWrapper();
      return {
        _betterClearInterval() {
          isRunning = false;
          clearTimeout(timeoutId);
        }
      };
    }
    __name2(betterSetInterval, "betterSetInterval");
    function betterClearInterval(intervalID) {
      if (intervalID && intervalID._betterClearInterval) {
        try {
          intervalID._betterClearInterval();
        } catch (e2) {
          import_log.default.exception(e2, "_betterClearInterval() threw an exception!?");
        }
      }
    }
    __name2(betterClearInterval, "betterClearInterval");
    function escapeRegExp(str) {
      return String(str).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
    }
    __name2(escapeRegExp, "escapeRegExp");
    function leftpad(str, len, ch = " ") {
      str = String(str);
      let i22 = -1;
      if (!ch && ch !== 0) ch = " ";
      len -= str.length;
      while (++i22 < len) {
        str = ch + str;
      }
      return str;
    }
    __name2(leftpad, "leftpad");
    function weightedAverage(val1, weight1, val2, weight2) {
      return (val1 * weight1 + val2 * weight2) / (weight1 + weight2);
    }
    __name2(weightedAverage, "weightedAverage");
    var FORBIDDEN_USERNAMES_REGEXPS = [
      // App routes
      "page-not-found",
      "docs",
      "terms-of-use",
      "about",
      "pricing",
      "privacy-policy",
      "customers",
      "request-form",
      "request-solution",
      "release-notes",
      "jobs",
      "api-reference",
      "video-tutorials",
      "acts",
      "key-value-stores",
      "schedules",
      "account",
      "sign-up",
      "sign-in-discourse",
      "admin",
      "documentation",
      "change-password",
      "enroll-account",
      "forgot-password",
      "reset-password",
      "sign-in",
      "verify-email",
      "live-status",
      "browser-info",
      "webhooks",
      "health-check",
      "api",
      "change-log",
      "dashboard",
      "community",
      "crawlers",
      "ext",
      "schemas",
      // Various strings
      "admin",
      "administration",
      "crawler",
      "act",
      "library",
      "lib",
      "apifier",
      "team",
      "contact",
      "doc",
      "documentation",
      "for-business",
      "for-developers",
      "developers",
      "business",
      "integrations",
      "job",
      "setting",
      "settings",
      "privacy",
      "policy",
      "assets",
      "help",
      "config",
      "configuration",
      "terms",
      "hiring",
      "hire",
      "status",
      "status-page",
      "solutions",
      "support",
      "market",
      "marketplace",
      "download",
      "downloads",
      "username",
      "users",
      "user",
      "login",
      "logout",
      "signin",
      "sign",
      "signup",
      "sign-out",
      "signout",
      "plugins",
      "plug-ins",
      "reset",
      "password",
      "passwords",
      "square",
      "profile-photos",
      "profiles",
      "true",
      "false",
      "js",
      "css",
      "img",
      "images",
      "image",
      "partials",
      "fonts",
      "font",
      "dynamic_templates",
      "app",
      "schedules",
      "community",
      "storage",
      "storages",
      "account",
      "node_modules",
      "bower_components",
      "video",
      "knowledgebase",
      "forum",
      "customers",
      "blog",
      "health-check",
      "health",
      "anim",
      "forum_topics.json",
      "forum_categories.json",
      "me",
      "you",
      "him",
      "she",
      "it",
      "external",
      "actor",
      "crawler",
      "scheduler",
      "api",
      "sdk",
      "puppeteer",
      "webdriver",
      "selenium",
      "(selenium.*webdriver)",
      "undefined",
      "page-analyzer",
      "wp-login.php",
      "welcome.action",
      "echo",
      "proxy",
      "super-proxy",
      "gdpr",
      "case-studies",
      "use-cases",
      "how-to",
      "kb",
      "cookies",
      "cookie-policy",
      "cookies-policy",
      "powered-by",
      "run",
      "runs",
      "actor",
      "actors",
      "act",
      "acts",
      "success-stories",
      "roadmap",
      "join-marketplace",
      "presskit",
      "press-kit",
      "covid-19",
      "covid",
      "covid19",
      "matfyz",
      "ideas",
      "public-actors",
      "resources",
      "partners",
      "affiliate",
      "industries",
      "web-scraping",
      "custom-solutions",
      "solution-provider",
      "alternatives",
      "platform",
      "freelancers",
      "freelancer",
      "partner",
      "preview",
      "templates",
      "data-for-generative-ai",
      "discord",
      "praguecrawl",
      "prague-crawl",
      "bob",
      "ai-agents",
      "reel",
      "video-reel",
      "mcp",
      "model-context-protocol",
      "modelcontextprotocol",
      "apify.com",
      "design-kit",
      "press-kit",
      "scrapers",
      "professional-services",
      "challenge",
      "challange",
      "1m-challenge",
      "1m-usd-challenge",
      // Special files
      "index",
      "index\\.html",
      "(favicon\\.[a-z]+)",
      "BingSiteAuth.xml",
      "(google.+\\.html)",
      "robots\\.txt",
      "(sitemap\\.[a-z]+)",
      "(apple-touch-icon.*)",
      "security-whitepaper\\.pdf",
      "security\\.txt",
      // All hidden files
      "(\\..*)",
      // Username starting with xxx-
      "(xxx-.*)",
      // Username starting with install-cli. (see https://docs.apify.com/cli/docs/installation)
      "(install-cli\\..*)",
      // Strings not starting with letter or number
      "([^0-9a-z].*)",
      // Strings not ending with letter or number
      "(.*[^0-9a-z])",
      // Strings where there's more than one underscore, comma or dash in row
      "(.*[_.\\-]{2}.*)",
      // Reserved usernames from https://github.com/shouldbee/reserved-usernames/blob/master/reserved-usernames.json
      "0",
      "about",
      "access",
      "account",
      "accounts",
      "activate",
      "activities",
      "activity",
      "ad",
      "add",
      "address",
      "adm",
      "admin",
      "administration",
      "administrator",
      "ads",
      "adult",
      "advertising",
      "affiliate",
      "affiliates",
      "ajax",
      "all",
      "alpha",
      "analysis",
      "analytics",
      "android",
      "anon",
      "anonymous",
      "api",
      "app",
      "apps",
      "archive",
      "archives",
      "article",
      "asct",
      "asset",
      "atom",
      "auth",
      "authentication",
      "avatar",
      "backup",
      "balancer-manager",
      "banner",
      "banners",
      "beta",
      "billing",
      "bin",
      "blog",
      "blogs",
      "board",
      "book",
      "bookmark",
      "bot",
      "bots",
      "bug",
      "business",
      "cache",
      "cadastro",
      "calendar",
      "call",
      "campaign",
      "cancel",
      "captcha",
      "career",
      "careers",
      "cart",
      "categories",
      "category",
      "cgi",
      "cgi-bin",
      "changelog",
      "chat",
      "check",
      "checking",
      "checkout",
      "client",
      "cliente",
      "clients",
      "code",
      "codereview",
      "comercial",
      "comment",
      "comments",
      "communities",
      "community",
      "company",
      "compare",
      "compras",
      "config",
      "configuration",
      "connect",
      "contact",
      "contact-us",
      "contact_us",
      "contactus",
      "contest",
      "contribute",
      "corp",
      "create",
      "css",
      "dashboard",
      "data",
      "db",
      "default",
      "delete",
      "demo",
      "design",
      "designer",
      "destroy",
      "dev",
      "devel",
      "developer",
      "developers",
      "diagram",
      "diary",
      "dict",
      "dictionary",
      "die",
      "dir",
      "direct_messages",
      "directory",
      "dist",
      "doc",
      "docs",
      "documentation",
      "domain",
      "download",
      "downloads",
      "ecommerce",
      "edit",
      "editor",
      "edu",
      "education",
      "email",
      "employment",
      "empty",
      "end",
      "enterprise",
      "entries",
      "entry",
      "error",
      "errors",
      "eval",
      "event",
      "exit",
      "explore",
      "facebook",
      "faq",
      "favorite",
      "favorites",
      "feature",
      "features",
      "feed",
      "feedback",
      "feeds",
      "file",
      "files",
      "first",
      "flash",
      "fleet",
      "fleets",
      "flog",
      "follow",
      "followers",
      "following",
      "forgot",
      "form",
      "forum",
      "forums",
      "founder",
      "free",
      "friend",
      "friends",
      "ftp",
      "gadget",
      "gadgets",
      "game",
      "games",
      "get",
      "gift",
      "gifts",
      "gist",
      "github",
      "graph",
      "group",
      "groups",
      "guest",
      "guests",
      "help",
      "home",
      "homepage",
      "host",
      "hosting",
      "hostmaster",
      "hostname",
      "howto",
      "hpg",
      "html",
      "http",
      "httpd",
      "https",
      "i",
      "iamges",
      "icon",
      "icons",
      "id",
      "idea",
      "ideas",
      "image",
      "images",
      "imap",
      "img",
      "index",
      "indice",
      "info",
      "information",
      "inquiry",
      "instagram",
      "intranet",
      "invitations",
      "invite",
      "ipad",
      "iphone",
      "irc",
      "is",
      "issue",
      "issues",
      "it",
      "item",
      "items",
      "java",
      "javascript",
      "job",
      "jobs",
      "join",
      "js",
      "json",
      "jump",
      "knowledgebase",
      "language",
      "languages",
      "last",
      "ldap-status",
      "legal",
      "license",
      "link",
      "links",
      "linux",
      "list",
      "lists",
      "log",
      "log-in",
      "log-out",
      "log_in",
      "log_out",
      "login",
      "logout",
      "logs",
      "m",
      "mac",
      "mail",
      "mail1",
      "mail2",
      "mail3",
      "mail4",
      "mail5",
      "mailer",
      "mailing",
      "maintenance",
      "manager",
      "manual",
      "map",
      "maps",
      "marketing",
      "master",
      "me",
      "media",
      "member",
      "members",
      "message",
      "messages",
      "messenger",
      "microblog",
      "microblogs",
      "mine",
      "mis",
      "mob",
      "mobile",
      "movie",
      "movies",
      "mp3",
      "msg",
      "msn",
      "music",
      "musicas",
      "mx",
      "my",
      "mysql",
      "name",
      "named",
      "nan",
      "navi",
      "navigation",
      "net",
      "network",
      "new",
      "news",
      "newsletter",
      "nick",
      "nickname",
      "notes",
      "noticias",
      "notification",
      "notifications",
      "notify",
      "ns",
      "ns1",
      "ns10",
      "ns2",
      "ns3",
      "ns4",
      "ns5",
      "ns6",
      "ns7",
      "ns8",
      "ns9",
      "null",
      "oauth",
      "oauth_clients",
      "offer",
      "offers",
      "official",
      "old",
      "online",
      "openid",
      "operator",
      "order",
      "orders",
      "organization",
      "organizations",
      "overview",
      "owner",
      "owners",
      "page",
      "pager",
      "pages",
      "panel",
      "password",
      "payment",
      "perl",
      "phone",
      "photo",
      "photoalbum",
      "photos",
      "php",
      "phpmyadmin",
      "phppgadmin",
      "phpredisadmin",
      "pic",
      "pics",
      "ping",
      "plan",
      "plans",
      "plugin",
      "plugins",
      "policy",
      "pop",
      "pop3",
      "popular",
      "portal",
      "post",
      "postfix",
      "postmaster",
      "posts",
      "pr",
      "premium",
      "press",
      "price",
      "pricing",
      "privacy",
      "privacy-policy",
      "privacy_policy",
      "privacypolicy",
      "private",
      "product",
      "products",
      "profile",
      "project",
      "projects",
      "promo",
      "pub",
      "public",
      "purpose",
      "put",
      "python",
      "query",
      "random",
      "ranking",
      "read",
      "readme",
      "recent",
      "recruit",
      "recruitment",
      "register",
      "registration",
      "release",
      "remove",
      "replies",
      "report",
      "reports",
      "repositories",
      "repository",
      "req",
      "request",
      "requests",
      "reset",
      "roc",
      "root",
      "rss",
      "ruby",
      "rule",
      "sag",
      "sale",
      "sales",
      "sample",
      "samples",
      "save",
      "school",
      "script",
      "scripts",
      "search",
      "secure",
      "security",
      "self",
      "send",
      "server",
      "server-info",
      "server-status",
      "service",
      "services",
      "session",
      "sessions",
      "setting",
      "settings",
      "setup",
      "share",
      "shop",
      "show",
      "sign-in",
      "sign-up",
      "sign_in",
      "sign_up",
      "signin",
      "signout",
      "signup",
      "site",
      "sitemap",
      "sites",
      "smartphone",
      "smtp",
      "soporte",
      "source",
      "spec",
      "special",
      "sql",
      "src",
      "ssh",
      "ssl",
      "ssladmin",
      "ssladministrator",
      "sslwebmaster",
      "staff",
      "stage",
      "staging",
      "start",
      "stat",
      "state",
      "static",
      "stats",
      "status",
      "store",
      "stores",
      "stories",
      "style",
      "styleguide",
      "stylesheet",
      "stylesheets",
      "subdomain",
      "subscribe",
      "subscription",
      "subscriptions",
      "suporte",
      "support",
      "svn",
      "swf",
      "sys",
      "sysadmin",
      "sysadministrator",
      "system",
      "tablet",
      "tablets",
      "tag",
      "talk",
      "task",
      "tasks",
      "team",
      "teams",
      "tech",
      "telnet",
      "term",
      "terms",
      "terms-of-service",
      "terms_of_service",
      "termsofservice",
      "test",
      "test1",
      "test2",
      "test3",
      "teste",
      "testing",
      "tests",
      "theme",
      "themes",
      "thread",
      "threads",
      "tmp",
      "todo",
      "tool",
      "tools",
      "top",
      "topic",
      "topics",
      "tos",
      "tour",
      "translations",
      "trends",
      "tutorial",
      "tux",
      "tv",
      "twitter",
      "undef",
      "unfollow",
      "unsubscribe",
      "update",
      "upload",
      "uploads",
      "url",
      "usage",
      "user",
      "username",
      "users",
      "usuario",
      "vendas",
      "ver",
      "version",
      "video",
      "videos",
      "visitor",
      "watch",
      "weather",
      "web",
      "webhook",
      "webhooks",
      "webmail",
      "webmaster",
      "website",
      "websites",
      "welcome",
      "widget",
      "widgets",
      "wiki",
      "win",
      "windows",
      "word",
      "work",
      "works",
      "workshop",
      "ww",
      "wws",
      "www",
      "www1",
      "www2",
      "www3",
      "www4",
      "www5",
      "www6",
      "www7",
      "wwws",
      "wwww",
      "xfn",
      "xml",
      "xmpp",
      "xpg",
      "xxx",
      "yaml",
      "year",
      "yml",
      "you",
      "yourdomain",
      "yourname",
      "yoursite",
      "yourusername"
    ];
    var FORBIDDEN_REGEXP = new RegExp(`^(${import_consts.ANONYMOUS_USERNAME}|${FORBIDDEN_USERNAMES_REGEXPS.join("|")})$`, "i");
    function isForbiddenUsername(username) {
      return !!username.match(import_consts.APIFY_ID_REGEX) || !!username.match(FORBIDDEN_REGEXP);
    }
    __name2(isForbiddenUsername, "isForbiddenUsername");
    async function sequentializePromises(promises) {
      if (!promises.length) return [];
      const results = [];
      for (const promiseOrFunc of promises) {
        const promise = promiseOrFunc instanceof Function ? promiseOrFunc() : promiseOrFunc;
        results.push(await promise);
      }
      return results;
    }
    __name2(sequentializePromises, "sequentializePromises");
    function checkParamPrototypeOrThrow(paramVal, paramName, prototypes, prototypeName, isOptional2 = false) {
      if (isOptional2 && (paramVal === void 0 || paramVal === null)) return;
      const hasCorrectPrototype = prototypes instanceof Array ? prototypes.some((prototype2) => paramVal instanceof prototype2) : paramVal instanceof prototypes;
      if (!hasCorrectPrototype) throw new Error(`Parameter "${paramName}" must be an instance of ${prototypeName}`);
    }
    __name2(checkParamPrototypeOrThrow, "checkParamPrototypeOrThrow");
    function promisifyServerListen(server) {
      return async (port) => {
        return new Promise((resolve2, reject) => {
          const onError = /* @__PURE__ */ __name2((err2) => {
            removeListeners();
            reject(err2);
          }, "onError");
          const onListening = /* @__PURE__ */ __name2(() => {
            removeListeners();
            resolve2();
          }, "onListening");
          const removeListeners = /* @__PURE__ */ __name2(() => {
            server.removeListener("error", onError);
            server.removeListener("listening", onListening);
          }, "removeListeners");
          server.on("error", onError);
          server.on("listening", onListening);
          server.listen(port);
        });
      };
    }
    __name2(promisifyServerListen, "promisifyServerListen");
    function configureLogger(givenLog, isProduction) {
      if (isProduction) {
        givenLog.setOptions({
          level: import_log.LogLevel.INFO,
          logger: new import_log.LoggerJson()
        });
      } else {
        givenLog.setOptions({ level: import_log.LogLevel.DEBUG });
      }
    }
    __name2(configureLogger, "configureLogger");
    async function timeoutPromise(promise, timeoutMillis, errorMessage = "Promise has timed-out") {
      return new Promise((resolve2, reject) => {
        let timeout;
        let hasFulfilled = false;
        const callback = /* @__PURE__ */ __name2((err2, result) => {
          if (hasFulfilled) return;
          clearTimeout(timeout);
          hasFulfilled = true;
          if (err2) {
            reject(err2);
            return;
          }
          resolve2(result);
        }, "callback");
        promise.then((result) => callback(null, result), callback);
        timeout = setTimeout(() => callback(new Error(errorMessage)), timeoutMillis);
      });
    }
    __name2(timeoutPromise, "timeoutPromise");
    function createInjectableRegExp(regex) {
      return new RegExp(regex.source.replace(/^\^|\$$/g, ""));
    }
    __name2(createInjectableRegExp, "createInjectableRegExp");
    var import_consts2 = require_cjs2();
    function isNullOrUndefined2(obj) {
      return obj == null;
    }
    __name2(isNullOrUndefined2, "isNullOrUndefined");
    function isBuffer3(obj) {
      return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj);
    }
    __name2(isBuffer3, "isBuffer");
    function dateToString(date, middleT) {
      if (!(date instanceof Date)) {
        return "";
      }
      const year = date.getFullYear();
      const month = date.getMonth() + 1;
      const day = date.getDate();
      const hours = date.getHours();
      const minutes = date.getMinutes();
      const seconds = date.getSeconds();
      const millis = date.getMilliseconds();
      const pad = /* @__PURE__ */ __name2((num) => num < 10 ? `0${num}` : num, "pad");
      const datePart = `${year}-${pad(month)}-${pad(day)}`;
      const millisPart = millis < 10 ? `00${millis}` : millis < 100 ? `0${millis}` : millis;
      const timePart = `${pad(hours)}:${pad(minutes)}:${pad(seconds)}.${millisPart}`;
      return `${datePart}${middleT ? "T" : " "}${timePart}`;
    }
    __name2(dateToString, "dateToString");
    function truncate(str, maxLength, suffix = "...[truncated]") {
      maxLength = Math.floor(maxLength);
      if (suffix.length > maxLength) {
        throw new Error("suffix string cannot be longer than maxLength");
      }
      if (typeof str === "string" && str.length > maxLength) {
        str = str.substr(0, maxLength - suffix.length) + suffix;
      }
      return str;
    }
    __name2(truncate, "truncate");
    function getOrdinalSuffix(num) {
      const s2 = ["th", "st", "nd", "rd"];
      const v2 = num % 100;
      return s2[(v2 - 20) % 10] || s2[v2] || s2[0];
    }
    __name2(getOrdinalSuffix, "getOrdinalSuffix");
    function parseUrl(str) {
      if (typeof str !== "string") return {};
      const o22 = {
        strictMode: false,
        key: [
          "source",
          "protocol",
          "authority",
          "userInfo",
          "user",
          "password",
          "host",
          "port",
          "relative",
          "path",
          "directory",
          "file",
          "query",
          "fragment"
        ],
        q: {
          name: "queryKey",
          parser: /(?:^|&)([^&=]*)=?([^&]*)/g
        },
        parser: {
          strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
          // eslint-disable-line max-len,no-useless-escape
          loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
          // eslint-disable-line max-len,no-useless-escape
        }
      };
      const m2 = o22.parser[o22.strictMode ? "strict" : "loose"].exec(str);
      const uri = {};
      let i22 = o22.key.length;
      while (i22--) uri[o22.key[i22]] = m2[i22] || "";
      uri[o22.q.name] = {};
      uri[o22.key[12]].replace(o22.q.parser, ($0, $1, $2) => {
        if ($1) uri[o22.q.name][$1] = $2;
      });
      uri.fragmentKey = {};
      if (uri.fragment) {
        uri.fragment.replace(o22.q.parser, (($0, $1, $2) => {
          if ($1) uri.fragmentKey[$1] = $2;
        }));
      }
      return uri;
    }
    __name2(parseUrl, "parseUrl");
    function normalizeUrl2(url2, keepFragment) {
      if (typeof url2 !== "string" || !url2.length) {
        return null;
      }
      let urlObj;
      try {
        urlObj = new URL(url2.trim());
      } catch {
        return null;
      }
      const { searchParams } = urlObj;
      for (const key of [...searchParams.keys()]) {
        if (key.startsWith("utm_")) {
          searchParams.delete(key);
        }
      }
      searchParams.sort();
      const protocol = urlObj.protocol.toLowerCase();
      const host = urlObj.host.toLowerCase();
      const path22 = urlObj.pathname.replace(/\/$/, "");
      const search = searchParams.toString() ? `?${searchParams}` : "";
      const hash = keepFragment ? urlObj.hash : "";
      return `${protocol}//${host}${path22}${search}${hash}`;
    }
    __name2(normalizeUrl2, "normalizeUrl");
    function markedSetNofollowLinks(href, title, text, referrerHostname) {
      let urlParsed;
      try {
        urlParsed = new URL(href);
      } catch {
      }
      const isApifyLink = urlParsed && /(\.|^)apify\.com$/i.test(urlParsed.hostname);
      const isSameHostname = !referrerHostname || urlParsed && urlParsed.hostname === referrerHostname;
      if (isApifyLink && isSameHostname) {
        return `<a href="${href}">${title || text}</a>`;
      }
      if (isApifyLink) {
        return `<a rel="noopener noreferrer" target="_blank" href="${href}">${title || text}</a>`;
      }
      return `<a rel="noopener noreferrer nofollow" target="_blank" href="${href}">${title || text}</a>`;
    }
    __name2(markedSetNofollowLinks, "markedSetNofollowLinks");
    function markedDecreaseHeadsLevel(text, level) {
      level += 1;
      return `<h${level}>${text}</h${level}>`;
    }
    __name2(markedDecreaseHeadsLevel, "markedDecreaseHeadsLevel");
    function buildOrVersionNumberIntToStr(int) {
      if (typeof int !== "number" || !(int >= 0)) return null;
      const major2 = Math.floor(int / import_consts2.VERSION_INT_MAJOR_BASE);
      const remainder = int % import_consts2.VERSION_INT_MAJOR_BASE;
      const minor2 = Math.floor(remainder / import_consts2.VERSION_INT_MINOR_BASE);
      const build = remainder % import_consts2.VERSION_INT_MINOR_BASE;
      let str = `${major2}.${minor2}`;
      if (build > 0) str += `.${build}`;
      return str;
    }
    __name2(buildOrVersionNumberIntToStr, "buildOrVersionNumberIntToStr");
    var ESCAPE_DOT = "\uFF0E";
    var ESCAPE_DOLLAR = "\uFF04";
    var ESCAPE_TO_BSON = "\uFF54\uFF4F\uFF22\uFF33\uFF2F\uFF2E";
    var ESCAPE_TO_STRING = "\uFF54\uFF4F\uFF33\uFF54\uFF52\uFF49\uFF4E\uFF47";
    var ESCAPE_BSON_TYPE = "\uFF3F\uFF42\uFF53\uFF4F\uFF4E\uFF54\uFF59\uFF50\uFF45";
    var ESCAPE_NULL = "";
    var REGEXP_IS_ESCAPED = new RegExp(`(${ESCAPE_DOT}|^${ESCAPE_DOLLAR}|^${ESCAPE_TO_BSON}$|^${ESCAPE_BSON_TYPE}|^${ESCAPE_TO_STRING}$)`);
    var REGEXP_DOT = new RegExp(ESCAPE_DOT, "g");
    var REGEXP_DOLLAR = new RegExp(`^${ESCAPE_DOLLAR}`);
    var REGEXP_TO_BSON = new RegExp(`^${ESCAPE_TO_BSON}$`);
    var REGEXP_TO_STRING = new RegExp(`^${ESCAPE_TO_STRING}$`);
    var REGEXP_BSON_TYPE = new RegExp(`^${ESCAPE_BSON_TYPE}$`);
    function escapePropertyName(name2) {
      if (/(\.|^\$|^toBSON$|^_bsontype$|^toString$|\0)/.test(name2)) {
        name2 = name2.replace(/\./g, ESCAPE_DOT);
        name2 = name2.replace(/^\$/, ESCAPE_DOLLAR);
        name2 = name2.replace(/^toBSON$/, ESCAPE_TO_BSON);
        name2 = name2.replace(/^toString$/, ESCAPE_TO_STRING);
        name2 = name2.replace(/^_bsontype$/, ESCAPE_BSON_TYPE);
        name2 = name2.replace(/\0/g, ESCAPE_NULL);
      }
      return name2;
    }
    __name2(escapePropertyName, "escapePropertyName");
    function unescapePropertyName(name2) {
      if (REGEXP_IS_ESCAPED.test(name2)) {
        name2 = name2.replace(REGEXP_DOT, ".");
        name2 = name2.replace(REGEXP_DOLLAR, "$");
        name2 = name2.replace(REGEXP_TO_BSON, "toBSON");
        name2 = name2.replace(REGEXP_TO_STRING, "toString");
        name2 = name2.replace(REGEXP_BSON_TYPE, "_bsontype");
      }
      return name2;
    }
    __name2(unescapePropertyName, "unescapePropertyName");
    function traverseObject(obj, clone, transformFunc) {
      if (obj === null || typeof obj !== "object" || Object.prototype.toString.call(obj) === "[object Date]" || isBuffer3(obj)) return obj;
      let result;
      if (Array.isArray(obj)) {
        result = clone ? new Array(obj.length) : obj;
        for (let i22 = 0; i22 < obj.length; i22++) {
          const val = traverseObject(obj[i22], clone, transformFunc);
          if (clone) result[i22] = val;
        }
        return result;
      }
      result = clone ? {} : obj;
      for (const key in obj) {
        const val = traverseObject(obj[key], clone, transformFunc);
        const [transformedKey, transformedVal] = transformFunc(key, val);
        if (key === transformedKey) {
          if (clone || val !== transformedVal) result[key] = transformedVal;
        } else {
          result[transformedKey] = transformedVal;
          if (!clone) delete obj[key];
        }
      }
      return result;
    }
    __name2(traverseObject, "traverseObject");
    function escapeForBson(obj, clone = false) {
      return traverseObject(obj, clone, (key, value) => [escapePropertyName(key), value]);
    }
    __name2(escapeForBson, "escapeForBson");
    function unescapeFromBson(obj, clone = false) {
      return traverseObject(obj, clone, (key, value) => [unescapePropertyName(key), value]);
    }
    __name2(unescapeFromBson, "unescapeFromBson");
    function isBadForMongo(obj) {
      let isBad = false;
      try {
        traverseObject(obj, false, (key, value) => {
          const escapedKey = escapePropertyName(key);
          if (key !== escapedKey) {
            isBad = true;
            throw new Error();
          }
          return [key, value];
        });
      } catch (e2) {
        if (!isBad) throw e2;
      }
      return isBad;
    }
    __name2(isBadForMongo, "isBadForMongo");
    var _JsonVariable = class _JsonVariable {
      constructor(name2) {
        this.name = name2;
      }
      getToken() {
        return `{{${this.name}}}`;
      }
    };
    __name2(_JsonVariable, "JsonVariable");
    var JsonVariable = _JsonVariable;
    function jsonStringifyExtended(value, replacer, space = 0) {
      if (replacer && !(replacer instanceof Function)) throw new Error('Parameter "replacer" of jsonStringifyExtended() must be a function!');
      const replacements = {};
      const extendedReplacer = /* @__PURE__ */ __name2((key, val) => {
        val = replacer ? replacer(key, val) : val;
        if (val instanceof Function) return val.toString();
        if (val instanceof JsonVariable) {
          const randomToken = `<<<REPLACEMENT_TOKEN::${Math.random()}>>>`;
          replacements[randomToken] = val.getToken();
          return randomToken;
        }
        return val;
      }, "extendedReplacer");
      let stringifiedValue = JSON.stringify(value, extendedReplacer, space);
      Object.entries(replacements).forEach(([replacementToken, replacementValue]) => {
        stringifiedValue = stringifiedValue.replace(`"${replacementToken}"`, replacementValue);
      });
      return stringifiedValue;
    }
    __name2(jsonStringifyExtended, "jsonStringifyExtended");
    function splitFullName(fullName) {
      if (typeof fullName !== "string") return [null, null];
      const names = (fullName || "").trim().split(" ");
      const nonEmptyNames = names.filter((val) => val);
      if (nonEmptyNames.length === 0) {
        return [null, null];
      }
      if (nonEmptyNames.length === 1) {
        return [null, nonEmptyNames[0]];
      }
      return [names[0], nonEmptyNames.slice(1).join(" ")];
    }
    __name2(splitFullName, "splitFullName");
    function isUrlRelative(url2) {
      return import_consts2.RELATIVE_URL_REGEX.test(url2);
    }
    __name2(isUrlRelative, "isUrlRelative");
    var import_log2 = __toESM22(require_cjs3());
    var _RetryableError = class _RetryableError extends Error {
      constructor(error, ...args) {
        super(...args);
        __publicField2(this, "error");
        this.error = error;
      }
    };
    __name2(_RetryableError, "RetryableError");
    var RetryableError = _RetryableError;
    async function retryWithExpBackoff(params = {}) {
      const { func, expBackoffMillis, expBackoffMaxRepeats } = params;
      if (typeof func !== "function") {
        throw new Error('Parameter "func" should be a function.');
      }
      if (typeof expBackoffMillis !== "number") {
        throw new Error('Parameter "expBackoffMillis" should be a number.');
      }
      if (typeof expBackoffMaxRepeats !== "number") {
        throw new Error('Parameter "expBackoffMaxRepeats" should be a number.');
      }
      for (let i22 = 0; ; i22++) {
        let error;
        try {
          return await func();
        } catch (e2) {
          error = e2;
        }
        if (!(error instanceof RetryableError)) {
          throw error;
        }
        if (i22 >= expBackoffMaxRepeats - 1) {
          throw error.error;
        }
        const waitMillis = expBackoffMillis * 2 ** i22;
        const rand = /* @__PURE__ */ __name2((from, to2) => from + Math.floor(Math.random() * (to2 - from + 1)), "rand");
        const randomizedWaitMillis = rand(waitMillis, waitMillis * 2);
        if (i22 === Math.round(expBackoffMaxRepeats / 2)) {
          import_log2.default.warning(`Retry failed ${i22} times and will be repeated in ${randomizedWaitMillis}ms`, {
            originalError: error.error.message,
            errorDetails: Reflect.get(error.error, "details")
          });
        }
        await delayPromise(randomizedWaitMillis);
      }
    }
    __name2(retryWithExpBackoff, "retryWithExpBackoff");
    var CHECK_TYPES = /* @__PURE__ */ ((CHECK_TYPES2) => {
      CHECK_TYPES2["MONGODB_PING"] = "MONGODB_PING";
      CHECK_TYPES2["MONGODB_READ"] = "MONGODB_READ";
      CHECK_TYPES2["MONGODB_WRITE"] = "MONGODB_WRITE";
      CHECK_TYPES2["REDIS"] = "REDIS";
      CHECK_TYPES2["REDIS_PING"] = "REDIS_PING";
      CHECK_TYPES2["REDIS_WRITE"] = "REDIS_WRITE";
      return CHECK_TYPES2;
    })(CHECK_TYPES || {});
    var _HealthChecker = class _HealthChecker {
      constructor(options) {
        this.options = options;
        __publicField2(this, "checks");
        __publicField2(this, "redisPrefix");
        __publicField2(this, "redisTtlSecs");
        __publicField2(this, "checkTimeoutMillis");
        __publicField2(this, "mongoDbWriteTestCollection");
        __publicField2(this, "mongoDbWriteTestRemoveOlderThanSecs");
        const {
          checks,
          redisPrefix = "health-check",
          redisTtlSecs = 15,
          checkTimeoutMillis = 15e3,
          mongoDbWriteTestCollection = "healthCheckPlayground",
          mongoDbWriteTestRemoveOlderThanSecs = 15
        } = options;
        if (!Array.isArray(checks)) throw new Error('Parameter "check" must be an array');
        checks.map((check) => this._validateCheck(check));
        this.checks = checks;
        this.redisPrefix = redisPrefix;
        this.redisTtlSecs = redisTtlSecs;
        this.checkTimeoutMillis = checkTimeoutMillis;
        this.mongoDbWriteTestCollection = mongoDbWriteTestCollection;
        this.mongoDbWriteTestRemoveOlderThanSecs = mongoDbWriteTestRemoveOlderThanSecs;
      }
      async ensureIsHealthy() {
        for (const check of this.checks) {
          try {
            const checkPromise = this._performCheck(check);
            await timeoutPromise(checkPromise, this.checkTimeoutMillis, "Check has timed-out");
          } catch (_err) {
            const err2 = _err;
            throw new Error(`Health check test "${check.type}" failed with an error: ${err2.message}"`);
          }
        }
      }
      _validateCheck(check) {
        if (!(check.type in CHECK_TYPES)) throw new Error(`Check type "${check.type}" is invalid`);
        if (typeof check.client !== "object") throw new Error(`Check client must be an object got "${typeof check.client}" instead`);
      }
      async _performCheck(check) {
        switch (check.type) {
          case "MONGODB_PING":
            return this._testMongoDbPing(check);
          case "MONGODB_READ":
            return this._testMongoDbRead(check);
          case "MONGODB_WRITE":
            return this._testMongoDbWrite(check);
          case "REDIS_PING":
            return this._testRedisPing(check);
          case "REDIS":
          case "REDIS_WRITE":
            return this._testRedisWrite(check);
          default:
            throw new Error("Unknown check type");
        }
      }
      async _testMongoDbPing({ client }) {
        const response = await client.command({ ping: 1 });
        if (response.ok !== 1) throw new Error(`Got ${response.ok} instead of 1!`);
      }
      async _testMongoDbRead({ client }) {
        const response = await client.listCollections().toArray();
        if (!Array.isArray(response)) throw new Error(`Got ${typeof response} instead of an array!`);
      }
      async _testMongoDbWrite({ client }) {
        const id = cryptoRandomObjectId();
        const collection = client.collection(this.mongoDbWriteTestCollection);
        await collection.deleteMany({
          createdAt: {
            $lt: new Date(Date.now() - this.mongoDbWriteTestRemoveOlderThanSecs * 1e3)
          }
        });
        await collection.insertOne({
          _id: id,
          createdAt: /* @__PURE__ */ new Date()
        });
        const retrieved = await collection.findOne({ _id: id });
        if (!retrieved) throw new Error(`Item with ID "${id}" not found!`);
      }
      async _testRedisPing({ client }) {
        const response = await client.ping();
        if (response !== "PONG") throw new Error(`Got "${response}" instead of "PONG"!`);
      }
      async _testRedisWrite({ client }) {
        const key = `${this.redisPrefix}:${cryptoRandomObjectId()}`;
        const expected = "OK";
        await client.set(key, expected, "EX", this.redisTtlSecs);
        const given = await client.get(key);
        if (given !== expected) throw new Error(`Returned value "${given}" is not equal to "${expected}"!`);
      }
    };
    __name2(_HealthChecker, "HealthChecker");
    __publicField2(_HealthChecker, "CHECK_TYPES", CHECK_TYPES);
    var HealthChecker = _HealthChecker;
    var import_node_stream72 = __require("stream");
    var _ParseJsonlStream = class _ParseJsonlStream extends import_node_stream72.Transform {
      constructor() {
        super(...arguments);
        __publicField2(this, "pendingChunk", null);
      }
      parseLineAndEmitObject(line) {
        line = line.trim();
        if (!line) {
          return;
        }
        try {
          const obj = JSON.parse(line);
          this.emit("object", obj);
        } catch (e2) {
          throw new Error(`Cannot parse JSON stream data ('${String(line)}'): ${String(e2)}`);
        }
      }
      _transform(chunk2, encoding, callback) {
        let allData;
        if (this.pendingChunk) {
          allData = this.pendingChunk + chunk2;
          this.pendingChunk = null;
        } else {
          allData = chunk2;
        }
        const lines = allData.toString().split("\n");
        if (lines[lines.length - 1] !== "") {
          this.pendingChunk = lines.pop();
        }
        try {
          for (let i22 = 0; i22 < lines.length; i22++) {
            this.parseLineAndEmitObject(lines[i22]);
          }
        } catch (err2) {
          callback(err2, null);
          return;
        }
        callback(null, chunk2);
      }
      // This function is called right after stream.end() is called by the writer.
      // It just tries to process the pending chunk and returns an error if that fails.
      _flush(callback) {
        if (this.pendingChunk) {
          try {
            this.parseLineAndEmitObject(this.pendingChunk);
            this.pendingChunk = null;
          } catch (err2) {
            callback(err2, null);
            return;
          }
        }
        callback();
      }
    };
    __name2(_ParseJsonlStream, "ParseJsonlStream");
    var ParseJsonlStream = _ParseJsonlStream;
    async function concatStreamToBuffer(stream5) {
      return new Promise((resolve2, reject) => {
        const chunks = [];
        stream5.on("data", (chunk2) => {
          chunks.push(chunk2);
        }).on("error", (e2) => reject(e2)).on("end", () => {
          const buffer = Buffer.concat(chunks);
          return resolve2(buffer);
        });
      });
    }
    __name2(concatStreamToBuffer, "concatStreamToBuffer");
    async function readStreamToString(stream5, encoding) {
      const buffer = await concatStreamToBuffer(stream5);
      return buffer.toString(encoding);
    }
    __name2(readStreamToString, "readStreamToString");
    var _WebhookPayloadTemplateError = class _WebhookPayloadTemplateError extends Error {
      constructor(message) {
        super(message);
        this.name = this.constructor.name;
        if (typeof Error.captureStackTrace === "function") {
          Error.captureStackTrace(this, this.constructor);
        }
      }
    };
    __name2(_WebhookPayloadTemplateError, "WebhookPayloadTemplateError");
    var WebhookPayloadTemplateError = _WebhookPayloadTemplateError;
    var _InvalidJsonError = class _InvalidJsonError extends WebhookPayloadTemplateError {
      constructor(originalError) {
        super(originalError.message);
      }
    };
    __name2(_InvalidJsonError, "InvalidJsonError");
    var InvalidJsonError = _InvalidJsonError;
    var _InvalidVariableError = class _InvalidVariableError extends Error {
      constructor(variable) {
        super(`Invalid payload template variable: ${variable}`);
      }
    };
    __name2(_InvalidVariableError, "InvalidVariableError");
    var InvalidVariableError = _InvalidVariableError;
    var _WebhookPayloadTemplate = class _WebhookPayloadTemplate2 {
      constructor(template, allowedVariables = null, context = {}) {
        this.template = template;
        this.allowedVariables = allowedVariables;
        this.context = context;
        __publicField2(this, "payload");
        __publicField2(this, "replacedVariables", []);
        this.payload = template;
      }
      /**
       * Parse existing webhook payload template string into an object, replacing
       * template variables using the provided context.
       *
       * Parse also validates the template structure, so it can be used
       * to check validity of the template JSON and usage of allowedVariables.
       */
      static parse(payloadTemplate, allowedVariables = null, context = {}, options = {}) {
        const type = typeof payloadTemplate;
        if (type !== "string") throw new Error(`Cannot parse a ${type} payload template.`);
        const template = new _WebhookPayloadTemplate2(payloadTemplate, allowedVariables, context);
        const data = template._parse();
        if (options.interpolateStrings) {
          return template._interpolate(data);
        }
        return data;
      }
      /**
       * Stringify an object into a webhook payload template.
       * Values created using `getTemplateVariable('foo.bar')`
       * will be stringified to `{{foo.bar}}` template variable.
       */
      static stringify(objectTemplate, replacer, indent = 2) {
        const type = typeof objectTemplate;
        if (!objectTemplate || type !== "object") throw new Error(`Cannot stringify a ${type} payload template.`);
        return jsonStringifyExtended(objectTemplate, replacer, indent);
      }
      /**
       * Produces an instance of a template variable that can be used
       * in objects and will be stringified into `{{variableName}}` syntax.
       *
       * **Example:**
       * ```js
       * const resourceVariable = WebhookPayloadTemplate.getVariable('resource');
       * const objectTemplate = {
       *     foo: 'foo',
       *     bar: ['bar'],
       *     res: resourceVariable,
       * }
       *
       * const payloadTemplate = WebhookPayloadTemplate.stringify(objectTemplate);
       * ```
       *
       * **Produces:**
       * ```json
       * {
       *     "foo": "foo",
       *     "bar": ["bar"],
       *     "res": {{resource}},
       * }
       * ```
       */
      static getVariable(variableName) {
        return new JsonVariable(variableName);
      }
      _parse() {
        let currentIndex = 0;
        while (true) {
          try {
            return JSON.parse(this.payload);
          } catch (err2) {
            const position = this._findPositionOfNextVariable(currentIndex);
            if (!position) {
              throw new InvalidJsonError(err2);
            }
            if (!position.isInsideString) {
              this._replaceVariable(position);
            }
            currentIndex = position.openBraceIndex + 1;
          }
        }
      }
      _interpolate(value) {
        if (typeof value === "string") {
          return this._interpolateString(value);
        }
        if (Array.isArray(value)) {
          return this._interpolateArray(value);
        }
        if (typeof value === "object" && value !== null) {
          return this._interpolateObject(value);
        }
        return value;
      }
      _interpolateString(value) {
        if (value.match(/^\{\{([a-zA-Z0-9.]+)\}\}$/)) {
          const variableName = value.substring(2, value.length - 2);
          this._validateVariableName(variableName);
          return this._getVariableValue(variableName);
        }
        return value.replace(/\{\{([a-zA-Z0-9.]+)\}\}/g, (match, variableName) => {
          this._validateVariableName(variableName);
          const variableValue = this._getVariableValue(variableName);
          return `${variableValue}`;
        });
      }
      _interpolateObject(value) {
        const result = {};
        Object.entries(value).forEach(([key, v2]) => {
          result[key] = this._interpolate(v2);
        });
        return result;
      }
      _interpolateArray(value) {
        return value.map(this._interpolate.bind(this));
      }
      _findPositionOfNextVariable(startIndex = 0) {
        const openBraceIndex = this.payload.indexOf("{{", startIndex);
        const closeBraceIndex = this.payload.indexOf("}}", openBraceIndex) + 1;
        const someVariableMaybeExists = openBraceIndex > -1 && closeBraceIndex > -1;
        if (!someVariableMaybeExists) return null;
        const isInsideString = this._isVariableInsideString(openBraceIndex);
        return { isInsideString, openBraceIndex, closeBraceIndex };
      }
      _isVariableInsideString(openBraceIndex) {
        const unescapedQuoteCount = this._countUnescapedDoubleQuotesUpToIndex(openBraceIndex);
        return unescapedQuoteCount % 2 === 1;
      }
      _countUnescapedDoubleQuotesUpToIndex(index) {
        const payloadSection = this.payload.substring(0, index);
        let unescapedQuoteCount = 0;
        for (let i22 = 0; i22 < payloadSection.length; i22++) {
          const char = payloadSection[i22];
          const prevChar = payloadSection[i22 - 1];
          if (char === '"' && prevChar !== "\\") {
            unescapedQuoteCount++;
          }
        }
        return unescapedQuoteCount;
      }
      _replaceVariable({ openBraceIndex, closeBraceIndex }) {
        const variableName = this.payload.substring(openBraceIndex + 2, closeBraceIndex - 1);
        this._validateVariableName(variableName);
        const replacement = this._getVariableReplacement(variableName);
        this.replacedVariables.push({ variableName, replacement });
        this.payload = this.payload.substring(0, openBraceIndex) + replacement + this.payload.substring(closeBraceIndex + 1);
      }
      _validateVariableName(variableName) {
        if (this.allowedVariables === null) return;
        const [variable] = variableName.split(".");
        const isVariableValid = this.allowedVariables.has(variable);
        if (!isVariableValid) throw new InvalidVariableError(variableName);
      }
      _getVariableValue(variableName) {
        const [variable, ...properties] = variableName.split(".");
        const context = this.context[variable];
        const value = properties.reduce((ctx, prop) => {
          if (!ctx || typeof ctx !== "object") return null;
          return ctx[prop];
        }, context);
        return value;
      }
      _getVariableReplacement(variableName) {
        const value = this._getVariableValue(variableName);
        return value ? JSON.stringify(value) : null;
      }
    };
    __name2(_WebhookPayloadTemplate, "WebhookPayloadTemplate");
    var WebhookPayloadTemplate = _WebhookPayloadTemplate;
    var import_node_crypto22 = __toESM22(__require("crypto"));
    var ENCRYPTION_ALGORITHM = "aes-256-gcm";
    var ENCRYPTION_KEY_LENGTH = 32;
    var ENCRYPTION_IV_LENGTH = 16;
    var ENCRYPTION_AUTH_TAG_LENGTH = 16;
    function publicEncrypt({ publicKey, value }) {
      const key = cryptoRandomObjectId(ENCRYPTION_KEY_LENGTH);
      const initVector = cryptoRandomObjectId(ENCRYPTION_IV_LENGTH);
      const cipher = import_node_crypto22.default.createCipheriv(ENCRYPTION_ALGORITHM, key, initVector);
      const bufferFromValue = Buffer.from(value, "utf-8");
      const bufferFromKey = Buffer.from(key, "utf-8");
      const bufferFromInitVector = Buffer.from(initVector, "utf-8");
      const passwordBuffer = Buffer.concat([bufferFromKey, bufferFromInitVector]);
      const encryptedValue = Buffer.concat([cipher.update(bufferFromValue), cipher.final(), cipher.getAuthTag()]);
      const encryptedPassword = import_node_crypto22.default.publicEncrypt(publicKey, passwordBuffer);
      return {
        encryptedPassword: encryptedPassword.toString("base64"),
        encryptedValue: encryptedValue.toString("base64")
      };
    }
    __name2(publicEncrypt, "publicEncrypt");
    function privateDecrypt({
      privateKey,
      encryptedPassword,
      encryptedValue
    }) {
      const encryptedValueBuffer = Buffer.from(encryptedValue, "base64");
      const encryptedPasswordBuffer = Buffer.from(encryptedPassword, "base64");
      const passwordBuffer = import_node_crypto22.default.privateDecrypt(privateKey, encryptedPasswordBuffer);
      if (passwordBuffer.length !== ENCRYPTION_KEY_LENGTH + ENCRYPTION_IV_LENGTH) {
        throw new Error("privateDecrypt: Decryption failed, invalid password length!");
      }
      const authTagBuffer = encryptedValueBuffer.slice(encryptedValueBuffer.length - ENCRYPTION_AUTH_TAG_LENGTH);
      const encryptedDataBuffer = encryptedValueBuffer.slice(0, encryptedValueBuffer.length - ENCRYPTION_AUTH_TAG_LENGTH);
      const encryptionKeyBuffer = passwordBuffer.slice(0, ENCRYPTION_KEY_LENGTH);
      const initVectorBuffer = passwordBuffer.slice(ENCRYPTION_KEY_LENGTH);
      const decipher = import_node_crypto22.default.createDecipheriv(ENCRYPTION_ALGORITHM, encryptionKeyBuffer, initVectorBuffer);
      decipher.setAuthTag(authTagBuffer);
      return Buffer.concat([decipher.update(encryptedDataBuffer), decipher.final()]).toString("utf-8");
    }
    __name2(privateDecrypt, "privateDecrypt");
    function separateImports(code) {
      const lines = code.split("\n");
      return {
        code: lines.filter((line) => !line.trim().startsWith("import")).join("\n"),
        imports: lines.filter((line) => line.trim().startsWith("import")).join("\n")
      };
    }
    __name2(separateImports, "separateImports");
    var import_node_crypto32 = __require("crypto");
    var CodeHashMetaKey = /* @__PURE__ */ ((CodeHashMetaKey2) => {
      CodeHashMetaKey2["VERSION"] = "v";
      CodeHashMetaKey2["USER"] = "u";
      return CodeHashMetaKey2;
    })(CodeHashMetaKey || {});
    var _CodeHashManager = class _CodeHashManager2 {
      constructor(secret) {
        this.secret = secret;
      }
      /**
       * Encodes object (e.g. input for actor) to a string hash and uses the `secret` to sign the hash.
       */
      encode(data, userId) {
        const meta = {
          [
            "u"
            /* USER */
          ]: userId,
          [
            "v"
            /* VERSION */
          ]: _CodeHashManager2.VERSION
        };
        const metaBase64 = this.toBase64(JSON.stringify(meta));
        const inputBase64 = this.toBase64(JSON.stringify(data));
        const dataToSign = [metaBase64, inputBase64].join(_CodeHashManager2.SECTION_SEPARATOR);
        const signature = this.generateSignature(dataToSign);
        const signatureBase64 = this.toBase64(signature);
        const parts = [metaBase64, inputBase64, signatureBase64];
        return parts.join(_CodeHashManager2.SECTION_SEPARATOR);
      }
      decode(urlHash) {
        const parts = urlHash.split(_CodeHashManager2.SECTION_SEPARATOR);
        const dataToSign = parts.slice(0, 2).join(_CodeHashManager2.SECTION_SEPARATOR);
        const meta = JSON.parse(this.fromBase64(parts[0]).toString());
        const data = JSON.parse(this.fromBase64(parts[1]).toString());
        const signature = this.fromBase64(parts[2]);
        const expectedSignature = this.generateSignature(dataToSign);
        const isSignatureValid = (0, import_node_crypto32.timingSafeEqual)(signature, expectedSignature);
        return {
          data,
          meta: {
            userId: meta[
              "u"
              /* USER */
            ],
            version: meta[
              "v"
              /* VERSION */
            ],
            isSignatureValid
          }
        };
      }
      toBase64(data) {
        return Buffer.from(data).toString("base64url");
      }
      fromBase64(encoded) {
        return Buffer.from(encoded, "base64url");
      }
      generateSignature(data) {
        return (0, import_node_crypto32.createHmac)("sha256", this.secret).update(data).digest();
      }
    };
    __name2(_CodeHashManager, "CodeHashManager");
    __publicField2(_CodeHashManager, "SECTION_SEPARATOR", ".");
    __publicField2(_CodeHashManager, "VERSION", 1);
    var CodeHashManager = _CodeHashManager;
    var import_node_crypto4 = __toESM22(__require("crypto"));
    var CHARSET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
    function encodeBase62(num) {
      if (num === 0n) {
        return CHARSET[0];
      }
      let res = "";
      while (num > 0n) {
        res = CHARSET[Number(num % 62n)] + res;
        num /= 62n;
      }
      return res;
    }
    __name2(encodeBase62, "encodeBase62");
    function createHmacSignature(secretKey, message) {
      const signature = import_node_crypto4.default.createHmac("sha256", secretKey).update(message).digest("hex").substring(0, 30);
      return encodeBase62(BigInt(`0x${signature}`));
    }
    __name2(createHmacSignature, "createHmacSignature");
    var subtleCrypto = globalThis.crypto?.subtle;
    async function ensureSubtleCryptoExists() {
      if (!subtleCrypto) {
        try {
          subtleCrypto = __require("crypto")?.webcrypto?.subtle;
          if (subtleCrypto) return;
        } catch {
        }
        try {
          subtleCrypto = (await import("crypto"))?.webcrypto?.subtle;
        } catch {
        }
        if (!subtleCrypto) {
          throw new Error(`SubtleCrypto is not available in this environment.
Please ensure you're running in an environment that supports Web Crypto API,
or submit an issue to https://github.com/apify/apify-shared-js so we can help you further.`);
        }
      }
    }
    __name2(ensureSubtleCryptoExists, "ensureSubtleCryptoExists");
    async function createHmacSignatureAsync(secretKey, message) {
      await ensureSubtleCryptoExists();
      const encoder = new TextEncoder();
      const key = await subtleCrypto.importKey(
        "raw",
        encoder.encode(secretKey),
        { name: "HMAC", hash: "SHA-256" },
        false,
        ["sign"]
      );
      const signatureBuffer = await subtleCrypto.sign(
        "HMAC",
        key,
        encoder.encode(message)
      );
      const signatureArray = new Uint8Array(signatureBuffer);
      const signatureHex = Array.from(signatureArray).map((b2) => b2.toString(16).padStart(2, "0")).join("").substring(0, 30);
      return encodeBase62(BigInt(`0x${signatureHex}`));
    }
    __name2(createHmacSignatureAsync, "createHmacSignatureAsync");
    function createStorageContentSignature({
      resourceId,
      urlSigningSecretKey,
      expiresInMillis,
      version = 0
    }) {
      const expiresAt = expiresInMillis ? (/* @__PURE__ */ new Date()).getTime() + expiresInMillis : 0;
      const hmac = createHmacSignature(urlSigningSecretKey, `${version}.${expiresAt}.${resourceId}`);
      return Buffer.from(`${version}.${expiresAt}.${hmac}`).toString("base64url");
    }
    __name2(createStorageContentSignature, "createStorageContentSignature");
    function typedArrayToBase64Url(typedArray) {
      let binary = "";
      for (let i22 = 0; i22 < typedArray.length; i22++) {
        binary += String.fromCharCode(typedArray[i22]);
      }
      const base64 = btoa(binary);
      return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
    }
    __name2(typedArrayToBase64Url, "typedArrayToBase64Url");
    async function createStorageContentSignatureAsync({
      resourceId,
      urlSigningSecretKey,
      expiresInMillis,
      version = 0
    }) {
      const expiresAt = expiresInMillis ? (/* @__PURE__ */ new Date()).getTime() + expiresInMillis : 0;
      const hmac = await createHmacSignatureAsync(urlSigningSecretKey, `${version}.${expiresAt}.${resourceId}`);
      return typedArrayToBase64Url(new TextEncoder().encode(`${version}.${expiresAt}.${hmac}`));
    }
    __name2(createStorageContentSignatureAsync, "createStorageContentSignatureAsync");
    var parseBooleanOrNull = /* @__PURE__ */ __name2((value) => {
      if (value === true || value === 1) return true;
      if (value === false || value === 0) return false;
      if (typeof value === "string") {
        const lowerValue = value.trim().toLowerCase();
        if (lowerValue === "true" || lowerValue === "1") return true;
        if (lowerValue === "false" || lowerValue === "0") return false;
      }
      return null;
    }, "parseBooleanOrNull");
  }
});
var require_isArray = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isArray.js"(exports2, module2) {
    var isArray3 = Array.isArray;
    module2.exports = isArray3;
  }
});
var require_freeGlobal = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_freeGlobal.js"(exports2, module2) {
    var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
    module2.exports = freeGlobal;
  }
});
var require_root = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_root.js"(exports2, module2) {
    var freeGlobal = require_freeGlobal();
    var freeSelf = typeof self == "object" && self && self.Object === Object && self;
    var root = freeGlobal || freeSelf || Function("return this")();
    module2.exports = root;
  }
});
var require_Symbol = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Symbol.js"(exports2, module2) {
    var root = require_root();
    var Symbol2 = root.Symbol;
    module2.exports = Symbol2;
  }
});
var require_getRawTag = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getRawTag.js"(exports2, module2) {
    var Symbol2 = require_Symbol();
    var objectProto = Object.prototype;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    var nativeObjectToString = objectProto.toString;
    var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
    function getRawTag(value) {
      var isOwn = hasOwnProperty2.call(value, symToStringTag), tag = value[symToStringTag];
      try {
        value[symToStringTag] = void 0;
        var unmasked = true;
      } catch (e2) {
      }
      var result = nativeObjectToString.call(value);
      if (unmasked) {
        if (isOwn) {
          value[symToStringTag] = tag;
        } else {
          delete value[symToStringTag];
        }
      }
      return result;
    }
    module2.exports = getRawTag;
  }
});
var require_objectToString = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_objectToString.js"(exports2, module2) {
    var objectProto = Object.prototype;
    var nativeObjectToString = objectProto.toString;
    function objectToString2(value) {
      return nativeObjectToString.call(value);
    }
    module2.exports = objectToString2;
  }
});
var require_baseGetTag = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGetTag.js"(exports2, module2) {
    var Symbol2 = require_Symbol();
    var getRawTag = require_getRawTag();
    var objectToString2 = require_objectToString();
    var nullTag = "[object Null]";
    var undefinedTag = "[object Undefined]";
    var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;
    function baseGetTag(value) {
      if (value == null) {
        return value === void 0 ? undefinedTag : nullTag;
      }
      return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString2(value);
    }
    module2.exports = baseGetTag;
  }
});
var require_isObjectLike = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObjectLike.js"(exports2, module2) {
    function isObjectLike(value) {
      return value != null && typeof value == "object";
    }
    module2.exports = isObjectLike;
  }
});
var require_isSymbol = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isSymbol.js"(exports2, module2) {
    var baseGetTag = require_baseGetTag();
    var isObjectLike = require_isObjectLike();
    var symbolTag = "[object Symbol]";
    function isSymbol2(value) {
      return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
    }
    module2.exports = isSymbol2;
  }
});
var require_isKey = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isKey.js"(exports2, module2) {
    var isArray3 = require_isArray();
    var isSymbol2 = require_isSymbol();
    var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
    var reIsPlainProp = /^\w*$/;
    function isKey(value, object) {
      if (isArray3(value)) {
        return false;
      }
      var type = typeof value;
      if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol2(value)) {
        return true;
      }
      return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);
    }
    module2.exports = isKey;
  }
});
var require_isObject = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isObject.js"(exports2, module2) {
    function isObject4(value) {
      var type = typeof value;
      return value != null && (type == "object" || type == "function");
    }
    module2.exports = isObject4;
  }
});
var require_isFunction = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/isFunction.js"(exports2, module2) {
    var baseGetTag = require_baseGetTag();
    var isObject4 = require_isObject();
    var asyncTag = "[object AsyncFunction]";
    var funcTag = "[object Function]";
    var genTag = "[object GeneratorFunction]";
    var proxyTag = "[object Proxy]";
    function isFunction5(value) {
      if (!isObject4(value)) {
        return false;
      }
      var tag = baseGetTag(value);
      return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
    }
    module2.exports = isFunction5;
  }
});
var require_coreJsData = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_coreJsData.js"(exports2, module2) {
    var root = require_root();
    var coreJsData = root["__core-js_shared__"];
    module2.exports = coreJsData;
  }
});
var require_isMasked = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isMasked.js"(exports2, module2) {
    var coreJsData = require_coreJsData();
    var maskSrcKey = (function() {
      var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
      return uid ? "Symbol(src)_1." + uid : "";
    })();
    function isMasked(func) {
      return !!maskSrcKey && maskSrcKey in func;
    }
    module2.exports = isMasked;
  }
});
var require_toSource = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_toSource.js"(exports2, module2) {
    var funcProto = Function.prototype;
    var funcToString = funcProto.toString;
    function toSource(func) {
      if (func != null) {
        try {
          return funcToString.call(func);
        } catch (e2) {
        }
        try {
          return func + "";
        } catch (e2) {
        }
      }
      return "";
    }
    module2.exports = toSource;
  }
});
var require_baseIsNative = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIsNative.js"(exports2, module2) {
    var isFunction5 = require_isFunction();
    var isMasked = require_isMasked();
    var isObject4 = require_isObject();
    var toSource = require_toSource();
    var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
    var reIsHostCtor = /^\[object .+?Constructor\]$/;
    var funcProto = Function.prototype;
    var objectProto = Object.prototype;
    var funcToString = funcProto.toString;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    var reIsNative = RegExp(
      "^" + funcToString.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
    );
    function baseIsNative(value) {
      if (!isObject4(value) || isMasked(value)) {
        return false;
      }
      var pattern = isFunction5(value) ? reIsNative : reIsHostCtor;
      return pattern.test(toSource(value));
    }
    module2.exports = baseIsNative;
  }
});
var require_getValue = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getValue.js"(exports2, module2) {
    function getValue(object, key) {
      return object == null ? void 0 : object[key];
    }
    module2.exports = getValue;
  }
});
var require_getNative = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getNative.js"(exports2, module2) {
    var baseIsNative = require_baseIsNative();
    var getValue = require_getValue();
    function getNative(object, key) {
      var value = getValue(object, key);
      return baseIsNative(value) ? value : void 0;
    }
    module2.exports = getNative;
  }
});
var require_nativeCreate = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_nativeCreate.js"(exports2, module2) {
    var getNative = require_getNative();
    var nativeCreate = getNative(Object, "create");
    module2.exports = nativeCreate;
  }
});
var require_hashClear = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashClear.js"(exports2, module2) {
    var nativeCreate = require_nativeCreate();
    function hashClear() {
      this.__data__ = nativeCreate ? nativeCreate(null) : {};
      this.size = 0;
    }
    module2.exports = hashClear;
  }
});
var require_hashDelete = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashDelete.js"(exports2, module2) {
    function hashDelete(key) {
      var result = this.has(key) && delete this.__data__[key];
      this.size -= result ? 1 : 0;
      return result;
    }
    module2.exports = hashDelete;
  }
});
var require_hashGet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashGet.js"(exports2, module2) {
    var nativeCreate = require_nativeCreate();
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    var objectProto = Object.prototype;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    function hashGet(key) {
      var data = this.__data__;
      if (nativeCreate) {
        var result = data[key];
        return result === HASH_UNDEFINED ? void 0 : result;
      }
      return hasOwnProperty2.call(data, key) ? data[key] : void 0;
    }
    module2.exports = hashGet;
  }
});
var require_hashHas = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashHas.js"(exports2, module2) {
    var nativeCreate = require_nativeCreate();
    var objectProto = Object.prototype;
    var hasOwnProperty2 = objectProto.hasOwnProperty;
    function hashHas(key) {
      var data = this.__data__;
      return nativeCreate ? data[key] !== void 0 : hasOwnProperty2.call(data, key);
    }
    module2.exports = hashHas;
  }
});
var require_hashSet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_hashSet.js"(exports2, module2) {
    var nativeCreate = require_nativeCreate();
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    function hashSet(key, value) {
      var data = this.__data__;
      this.size += this.has(key) ? 0 : 1;
      data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
      return this;
    }
    module2.exports = hashSet;
  }
});
var require_Hash = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Hash.js"(exports2, module2) {
    var hashClear = require_hashClear();
    var hashDelete = require_hashDelete();
    var hashGet = require_hashGet();
    var hashHas = require_hashHas();
    var hashSet = require_hashSet();
    function Hash(entries2) {
      var index = -1, length = entries2 == null ? 0 : entries2.length;
      this.clear();
      while (++index < length) {
        var entry = entries2[index];
        this.set(entry[0], entry[1]);
      }
    }
    Hash.prototype.clear = hashClear;
    Hash.prototype["delete"] = hashDelete;
    Hash.prototype.get = hashGet;
    Hash.prototype.has = hashHas;
    Hash.prototype.set = hashSet;
    module2.exports = Hash;
  }
});
var require_listCacheClear = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheClear.js"(exports2, module2) {
    function listCacheClear() {
      this.__data__ = [];
      this.size = 0;
    }
    module2.exports = listCacheClear;
  }
});
var require_eq = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/eq.js"(exports2, module2) {
    function eq(value, other) {
      return value === other || value !== value && other !== other;
    }
    module2.exports = eq;
  }
});
var require_assocIndexOf = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_assocIndexOf.js"(exports2, module2) {
    var eq = require_eq();
    function assocIndexOf(array, key) {
      var length = array.length;
      while (length--) {
        if (eq(array[length][0], key)) {
          return length;
        }
      }
      return -1;
    }
    module2.exports = assocIndexOf;
  }
});
var require_listCacheDelete = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheDelete.js"(exports2, module2) {
    var assocIndexOf = require_assocIndexOf();
    var arrayProto = Array.prototype;
    var splice = arrayProto.splice;
    function listCacheDelete(key) {
      var data = this.__data__, index = assocIndexOf(data, key);
      if (index < 0) {
        return false;
      }
      var lastIndex = data.length - 1;
      if (index == lastIndex) {
        data.pop();
      } else {
        splice.call(data, index, 1);
      }
      --this.size;
      return true;
    }
    module2.exports = listCacheDelete;
  }
});
var require_listCacheGet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheGet.js"(exports2, module2) {
    var assocIndexOf = require_assocIndexOf();
    function listCacheGet(key) {
      var data = this.__data__, index = assocIndexOf(data, key);
      return index < 0 ? void 0 : data[index][1];
    }
    module2.exports = listCacheGet;
  }
});
var require_listCacheHas = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheHas.js"(exports2, module2) {
    var assocIndexOf = require_assocIndexOf();
    function listCacheHas(key) {
      return assocIndexOf(this.__data__, key) > -1;
    }
    module2.exports = listCacheHas;
  }
});
var require_listCacheSet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_listCacheSet.js"(exports2, module2) {
    var assocIndexOf = require_assocIndexOf();
    function listCacheSet(key, value) {
      var data = this.__data__, index = assocIndexOf(data, key);
      if (index < 0) {
        ++this.size;
        data.push([key, value]);
      } else {
        data[index][1] = value;
      }
      return this;
    }
    module2.exports = listCacheSet;
  }
});
var require_ListCache = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_ListCache.js"(exports2, module2) {
    var listCacheClear = require_listCacheClear();
    var listCacheDelete = require_listCacheDelete();
    var listCacheGet = require_listCacheGet();
    var listCacheHas = require_listCacheHas();
    var listCacheSet = require_listCacheSet();
    function ListCache(entries2) {
      var index = -1, length = entries2 == null ? 0 : entries2.length;
      this.clear();
      while (++index < length) {
        var entry = entries2[index];
        this.set(entry[0], entry[1]);
      }
    }
    ListCache.prototype.clear = listCacheClear;
    ListCache.prototype["delete"] = listCacheDelete;
    ListCache.prototype.get = listCacheGet;
    ListCache.prototype.has = listCacheHas;
    ListCache.prototype.set = listCacheSet;
    module2.exports = ListCache;
  }
});
var require_Map = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Map.js"(exports2, module2) {
    var getNative = require_getNative();
    var root = require_root();
    var Map2 = getNative(root, "Map");
    module2.exports = Map2;
  }
});
var require_mapCacheClear = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheClear.js"(exports2, module2) {
    var Hash = require_Hash();
    var ListCache = require_ListCache();
    var Map2 = require_Map();
    function mapCacheClear() {
      this.size = 0;
      this.__data__ = {
        "hash": new Hash(),
        "map": new (Map2 || ListCache)(),
        "string": new Hash()
      };
    }
    module2.exports = mapCacheClear;
  }
});
var require_isKeyable = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_isKeyable.js"(exports2, module2) {
    function isKeyable(value) {
      var type = typeof value;
      return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
    }
    module2.exports = isKeyable;
  }
});
var require_getMapData = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_getMapData.js"(exports2, module2) {
    var isKeyable = require_isKeyable();
    function getMapData(map2, key) {
      var data = map2.__data__;
      return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
    }
    module2.exports = getMapData;
  }
});
var require_mapCacheDelete = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheDelete.js"(exports2, module2) {
    var getMapData = require_getMapData();
    function mapCacheDelete(key) {
      var result = getMapData(this, key)["delete"](key);
      this.size -= result ? 1 : 0;
      return result;
    }
    module2.exports = mapCacheDelete;
  }
});
var require_mapCacheGet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheGet.js"(exports2, module2) {
    var getMapData = require_getMapData();
    function mapCacheGet(key) {
      return getMapData(this, key).get(key);
    }
    module2.exports = mapCacheGet;
  }
});
var require_mapCacheHas = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheHas.js"(exports2, module2) {
    var getMapData = require_getMapData();
    function mapCacheHas(key) {
      return getMapData(this, key).has(key);
    }
    module2.exports = mapCacheHas;
  }
});
var require_mapCacheSet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_mapCacheSet.js"(exports2, module2) {
    var getMapData = require_getMapData();
    function mapCacheSet(key, value) {
      var data = getMapData(this, key), size = data.size;
      data.set(key, value);
      this.size += data.size == size ? 0 : 1;
      return this;
    }
    module2.exports = mapCacheSet;
  }
});
var require_MapCache = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_MapCache.js"(exports2, module2) {
    var mapCacheClear = require_mapCacheClear();
    var mapCacheDelete = require_mapCacheDelete();
    var mapCacheGet = require_mapCacheGet();
    var mapCacheHas = require_mapCacheHas();
    var mapCacheSet = require_mapCacheSet();
    function MapCache(entries2) {
      var index = -1, length = entries2 == null ? 0 : entries2.length;
      this.clear();
      while (++index < length) {
        var entry = entries2[index];
        this.set(entry[0], entry[1]);
      }
    }
    MapCache.prototype.clear = mapCacheClear;
    MapCache.prototype["delete"] = mapCacheDelete;
    MapCache.prototype.get = mapCacheGet;
    MapCache.prototype.has = mapCacheHas;
    MapCache.prototype.set = mapCacheSet;
    module2.exports = MapCache;
  }
});
var require_memoize = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/memoize.js"(exports2, module2) {
    var MapCache = require_MapCache();
    var FUNC_ERROR_TEXT = "Expected a function";
    function memoize(func, resolver) {
      if (typeof func != "function" || resolver != null && typeof resolver != "function") {
        throw new TypeError(FUNC_ERROR_TEXT);
      }
      var memoized = function() {
        var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
        if (cache.has(key)) {
          return cache.get(key);
        }
        var result = func.apply(this, args);
        memoized.cache = cache.set(key, result) || cache;
        return result;
      };
      memoized.cache = new (memoize.Cache || MapCache)();
      return memoized;
    }
    memoize.Cache = MapCache;
    module2.exports = memoize;
  }
});
var require_memoizeCapped = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_memoizeCapped.js"(exports2, module2) {
    var memoize = require_memoize();
    var MAX_MEMOIZE_SIZE = 500;
    function memoizeCapped(func) {
      var result = memoize(func, function(key) {
        if (cache.size === MAX_MEMOIZE_SIZE) {
          cache.clear();
        }
        return key;
      });
      var cache = result.cache;
      return result;
    }
    module2.exports = memoizeCapped;
  }
});
var require_stringToPath = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_stringToPath.js"(exports2, module2) {
    var memoizeCapped = require_memoizeCapped();
    var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
    var reEscapeChar = /\\(\\)?/g;
    var stringToPath = memoizeCapped(function(string) {
      var result = [];
      if (string.charCodeAt(0) === 46) {
        result.push("");
      }
      string.replace(rePropName, function(match, number, quote, subString) {
        result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
      });
      return result;
    });
    module2.exports = stringToPath;
  }
});
var require_arrayMap = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayMap.js"(exports2, module2) {
    function arrayMap(array, iteratee) {
      var index = -1, length = array == null ? 0 : array.length, result = Array(length);
      while (++index < length) {
        result[index] = iteratee(array[index], index, array);
      }
      return result;
    }
    module2.exports = arrayMap;
  }
});
var require_baseToString = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseToString.js"(exports2, module2) {
    var Symbol2 = require_Symbol();
    var arrayMap = require_arrayMap();
    var isArray3 = require_isArray();
    var isSymbol2 = require_isSymbol();
    var INFINITY2 = 1 / 0;
    var symbolProto = Symbol2 ? Symbol2.prototype : void 0;
    var symbolToString = symbolProto ? symbolProto.toString : void 0;
    function baseToString(value) {
      if (typeof value == "string") {
        return value;
      }
      if (isArray3(value)) {
        return arrayMap(value, baseToString) + "";
      }
      if (isSymbol2(value)) {
        return symbolToString ? symbolToString.call(value) : "";
      }
      var result = value + "";
      return result == "0" && 1 / value == -INFINITY2 ? "-0" : result;
    }
    module2.exports = baseToString;
  }
});
var require_toString = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/toString.js"(exports2, module2) {
    var baseToString = require_baseToString();
    function toString5(value) {
      return value == null ? "" : baseToString(value);
    }
    module2.exports = toString5;
  }
});
var require_castPath = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_castPath.js"(exports2, module2) {
    var isArray3 = require_isArray();
    var isKey = require_isKey();
    var stringToPath = require_stringToPath();
    var toString5 = require_toString();
    function castPath(value, object) {
      if (isArray3(value)) {
        return value;
      }
      return isKey(value, object) ? [value] : stringToPath(toString5(value));
    }
    module2.exports = castPath;
  }
});
var require_toKey = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_toKey.js"(exports2, module2) {
    var isSymbol2 = require_isSymbol();
    var INFINITY2 = 1 / 0;
    function toKey(value) {
      if (typeof value == "string" || isSymbol2(value)) {
        return value;
      }
      var result = value + "";
      return result == "0" && 1 / value == -INFINITY2 ? "-0" : result;
    }
    module2.exports = toKey;
  }
});
var require_baseGet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseGet.js"(exports2, module2) {
    var castPath = require_castPath();
    var toKey = require_toKey();
    function baseGet(object, path22) {
      path22 = castPath(path22, object);
      var index = 0, length = path22.length;
      while (object != null && index < length) {
        object = object[toKey(path22[index++])];
      }
      return index && index == length ? object : void 0;
    }
    module2.exports = baseGet;
  }
});
var require_get = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/get.js"(exports2, module2) {
    var baseGet = require_baseGet();
    function get2(object, path22, defaultValue) {
      var result = object == null ? void 0 : baseGet(object, path22);
      return result === void 0 ? defaultValue : result;
    }
    module2.exports = get2;
  }
});
var require_es6 = __commonJS2({
  "../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/es6/index.js"(exports2, module2) {
    "use strict";
    module2.exports = function equal(a2, b2) {
      if (a2 === b2) return true;
      if (a2 && b2 && typeof a2 == "object" && typeof b2 == "object") {
        if (a2.constructor !== b2.constructor) return false;
        var length, i22, keys;
        if (Array.isArray(a2)) {
          length = a2.length;
          if (length != b2.length) return false;
          for (i22 = length; i22-- !== 0; )
            if (!equal(a2[i22], b2[i22])) return false;
          return true;
        }
        if (a2 instanceof Map && b2 instanceof Map) {
          if (a2.size !== b2.size) return false;
          for (i22 of a2.entries())
            if (!b2.has(i22[0])) return false;
          for (i22 of a2.entries())
            if (!equal(i22[1], b2.get(i22[0]))) return false;
          return true;
        }
        if (a2 instanceof Set && b2 instanceof Set) {
          if (a2.size !== b2.size) return false;
          for (i22 of a2.entries())
            if (!b2.has(i22[0])) return false;
          return true;
        }
        if (ArrayBuffer.isView(a2) && ArrayBuffer.isView(b2)) {
          length = a2.length;
          if (length != b2.length) return false;
          for (i22 = length; i22-- !== 0; )
            if (a2[i22] !== b2[i22]) return false;
          return true;
        }
        if (a2.constructor === RegExp) return a2.source === b2.source && a2.flags === b2.flags;
        if (a2.valueOf !== Object.prototype.valueOf) return a2.valueOf() === b2.valueOf();
        if (a2.toString !== Object.prototype.toString) return a2.toString() === b2.toString();
        keys = Object.keys(a2);
        length = keys.length;
        if (length !== Object.keys(b2).length) return false;
        for (i22 = length; i22-- !== 0; )
          if (!Object.prototype.hasOwnProperty.call(b2, keys[i22])) return false;
        for (i22 = length; i22-- !== 0; ) {
          var key = keys[i22];
          if (!equal(a2[key], b2[key])) return false;
        }
        return true;
      }
      return a2 !== a2 && b2 !== b2;
    };
  }
});
var require_setCacheAdd = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setCacheAdd.js"(exports2, module2) {
    var HASH_UNDEFINED = "__lodash_hash_undefined__";
    function setCacheAdd(value) {
      this.__data__.set(value, HASH_UNDEFINED);
      return this;
    }
    module2.exports = setCacheAdd;
  }
});
var require_setCacheHas = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setCacheHas.js"(exports2, module2) {
    function setCacheHas(value) {
      return this.__data__.has(value);
    }
    module2.exports = setCacheHas;
  }
});
var require_SetCache = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_SetCache.js"(exports2, module2) {
    var MapCache = require_MapCache();
    var setCacheAdd = require_setCacheAdd();
    var setCacheHas = require_setCacheHas();
    function SetCache(values) {
      var index = -1, length = values == null ? 0 : values.length;
      this.__data__ = new MapCache();
      while (++index < length) {
        this.add(values[index]);
      }
    }
    SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
    SetCache.prototype.has = setCacheHas;
    module2.exports = SetCache;
  }
});
var require_baseFindIndex = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseFindIndex.js"(exports2, module2) {
    function baseFindIndex(array, predicate, fromIndex, fromRight) {
      var length = array.length, index = fromIndex + (fromRight ? 1 : -1);
      while (fromRight ? index-- : ++index < length) {
        if (predicate(array[index], index, array)) {
          return index;
        }
      }
      return -1;
    }
    module2.exports = baseFindIndex;
  }
});
var require_baseIsNaN = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIsNaN.js"(exports2, module2) {
    function baseIsNaN(value) {
      return value !== value;
    }
    module2.exports = baseIsNaN;
  }
});
var require_strictIndexOf = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_strictIndexOf.js"(exports2, module2) {
    function strictIndexOf(array, value, fromIndex) {
      var index = fromIndex - 1, length = array.length;
      while (++index < length) {
        if (array[index] === value) {
          return index;
        }
      }
      return -1;
    }
    module2.exports = strictIndexOf;
  }
});
var require_baseIndexOf = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseIndexOf.js"(exports2, module2) {
    var baseFindIndex = require_baseFindIndex();
    var baseIsNaN = require_baseIsNaN();
    var strictIndexOf = require_strictIndexOf();
    function baseIndexOf(array, value, fromIndex) {
      return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);
    }
    module2.exports = baseIndexOf;
  }
});
var require_arrayIncludes = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayIncludes.js"(exports2, module2) {
    var baseIndexOf = require_baseIndexOf();
    function arrayIncludes(array, value) {
      var length = array == null ? 0 : array.length;
      return !!length && baseIndexOf(array, value, 0) > -1;
    }
    module2.exports = arrayIncludes;
  }
});
var require_arrayIncludesWith = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_arrayIncludesWith.js"(exports2, module2) {
    function arrayIncludesWith(array, value, comparator) {
      var index = -1, length = array == null ? 0 : array.length;
      while (++index < length) {
        if (comparator(value, array[index])) {
          return true;
        }
      }
      return false;
    }
    module2.exports = arrayIncludesWith;
  }
});
var require_cacheHas = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_cacheHas.js"(exports2, module2) {
    function cacheHas(cache, key) {
      return cache.has(key);
    }
    module2.exports = cacheHas;
  }
});
var require_Set = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_Set.js"(exports2, module2) {
    var getNative = require_getNative();
    var root = require_root();
    var Set2 = getNative(root, "Set");
    module2.exports = Set2;
  }
});
var require_noop = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/noop.js"(exports2, module2) {
    function noop5() {
    }
    module2.exports = noop5;
  }
});
var require_setToArray = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_setToArray.js"(exports2, module2) {
    function setToArray(set) {
      var index = -1, result = Array(set.size);
      set.forEach(function(value) {
        result[++index] = value;
      });
      return result;
    }
    module2.exports = setToArray;
  }
});
var require_createSet = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_createSet.js"(exports2, module2) {
    var Set2 = require_Set();
    var noop5 = require_noop();
    var setToArray = require_setToArray();
    var INFINITY2 = 1 / 0;
    var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY2) ? noop5 : function(values) {
      return new Set2(values);
    };
    module2.exports = createSet;
  }
});
var require_baseUniq = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/_baseUniq.js"(exports2, module2) {
    var SetCache = require_SetCache();
    var arrayIncludes = require_arrayIncludes();
    var arrayIncludesWith = require_arrayIncludesWith();
    var cacheHas = require_cacheHas();
    var createSet = require_createSet();
    var setToArray = require_setToArray();
    var LARGE_ARRAY_SIZE = 200;
    function baseUniq(array, iteratee, comparator) {
      var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result;
      if (comparator) {
        isCommon = false;
        includes2 = arrayIncludesWith;
      } else if (length >= LARGE_ARRAY_SIZE) {
        var set = iteratee ? null : createSet(array);
        if (set) {
          return setToArray(set);
        }
        isCommon = false;
        includes2 = cacheHas;
        seen = new SetCache();
      } else {
        seen = iteratee ? [] : result;
      }
      outer:
        while (++index < length) {
          var value = array[index], computed = iteratee ? iteratee(value) : value;
          value = comparator || value !== 0 ? value : 0;
          if (isCommon && computed === computed) {
            var seenIndex = seen.length;
            while (seenIndex--) {
              if (seen[seenIndex] === computed) {
                continue outer;
              }
            }
            if (iteratee) {
              seen.push(computed);
            }
            result.push(value);
          } else if (!includes2(seen, computed, comparator)) {
            if (seen !== result) {
              seen.push(computed);
            }
            result.push(value);
          }
        }
      return result;
    }
    module2.exports = baseUniq;
  }
});
var require_uniqWith = __commonJS2({
  "../../node_modules/.pnpm/lodash@4.17.23/node_modules/lodash/uniqWith.js"(exports2, module2) {
    var baseUniq = require_baseUniq();
    function uniqWith(array, comparator) {
      comparator = typeof comparator == "function" ? comparator : void 0;
      return array && array.length ? baseUniq(array, void 0, comparator) : [];
    }
    module2.exports = uniqWith;
  }
});
var require_cjs5 = __commonJS2({
  "../../node_modules/.pnpm/@sapphire+shapeshift@3.9.7/node_modules/@sapphire/shapeshift/dist/cjs/index.cjs"(exports2) {
    "use strict";
    var get2 = require_get();
    var fastDeepEqual = require_es6();
    var uniqWith = require_uniqWith();
    function _interopDefault(e3) {
      return e3 && e3.__esModule ? e3 : { default: e3 };
    }
    var get__default = /* @__PURE__ */ _interopDefault(get2);
    var fastDeepEqual__default = /* @__PURE__ */ _interopDefault(fastDeepEqual);
    var uniqWith__default = /* @__PURE__ */ _interopDefault(uniqWith);
    var __defProp32 = Object.defineProperty;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var validationEnabled = true;
    function setGlobalValidationEnabled(enabled) {
      validationEnabled = enabled;
    }
    __name2(setGlobalValidationEnabled, "setGlobalValidationEnabled");
    function getGlobalValidationEnabled() {
      return validationEnabled;
    }
    __name2(getGlobalValidationEnabled, "getGlobalValidationEnabled");
    var _Result = class _Result2 {
      constructor(success, value, error) {
        this.success = success;
        if (success) {
          this.value = value;
        } else {
          this.error = error;
        }
      }
      isOk() {
        return this.success;
      }
      isErr() {
        return !this.success;
      }
      unwrap() {
        if (this.isOk())
          return this.value;
        throw this.error;
      }
      static ok(value) {
        return new _Result2(true, value);
      }
      static err(error) {
        return new _Result2(false, void 0, error);
      }
    };
    __name2(_Result, "Result");
    var Result = _Result;
    function getValue(valueOrFn) {
      return typeof valueOrFn === "function" ? valueOrFn() : valueOrFn;
    }
    __name2(getValue, "getValue");
    var e2;
    var t9;
    var n22;
    var r2 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis;
    var o22 = e2 = {};
    function i22() {
      throw new Error("setTimeout has not been defined");
    }
    __name2(i22, "i");
    function u2() {
      throw new Error("clearTimeout has not been defined");
    }
    __name2(u2, "u");
    function c3(e3) {
      if (t9 === setTimeout)
        return setTimeout(e3, 0);
      if ((t9 === i22 || !t9) && setTimeout)
        return t9 = setTimeout, setTimeout(e3, 0);
      try {
        return t9(e3, 0);
      } catch (n3) {
        try {
          return t9.call(null, e3, 0);
        } catch (n4) {
          return t9.call(this || r2, e3, 0);
        }
      }
    }
    __name2(c3, "c");
    !(function() {
      try {
        t9 = "function" == typeof setTimeout ? setTimeout : i22;
      } catch (e3) {
        t9 = i22;
      }
      try {
        n22 = "function" == typeof clearTimeout ? clearTimeout : u2;
      } catch (e3) {
        n22 = u2;
      }
    })();
    var l2;
    var s2 = [];
    var f = false;
    var a2 = -1;
    function h23() {
      f && l2 && (f = false, l2.length ? s2 = l2.concat(s2) : a2 = -1, s2.length && d());
    }
    __name2(h23, "h");
    function d() {
      if (!f) {
        var e3 = c3(h23);
        f = true;
        for (var t32 = s2.length; t32; ) {
          for (l2 = s2, s2 = []; ++a2 < t32; )
            l2 && l2[a2].run();
          a2 = -1, t32 = s2.length;
        }
        l2 = null, f = false, (function(e4) {
          if (n22 === clearTimeout)
            return clearTimeout(e4);
          if ((n22 === u2 || !n22) && clearTimeout)
            return n22 = clearTimeout, clearTimeout(e4);
          try {
            n22(e4);
          } catch (t42) {
            try {
              return n22.call(null, e4);
            } catch (t52) {
              return n22.call(this || r2, e4);
            }
          }
        })(e3);
      }
    }
    __name2(d, "d");
    function m2(e3, t32) {
      (this || r2).fun = e3, (this || r2).array = t32;
    }
    __name2(m2, "m");
    function p() {
    }
    __name2(p, "p");
    o22.nextTick = function(e3) {
      var t32 = new Array(arguments.length - 1);
      if (arguments.length > 1)
        for (var n3 = 1; n3 < arguments.length; n3++)
          t32[n3 - 1] = arguments[n3];
      s2.push(new m2(e3, t32)), 1 !== s2.length || f || c3(d);
    }, m2.prototype.run = function() {
      (this || r2).fun.apply(null, (this || r2).array);
    }, o22.title = "browser", o22.browser = true, o22.env = {}, o22.argv = [], o22.version = "", o22.versions = {}, o22.on = p, o22.addListener = p, o22.once = p, o22.off = p, o22.removeListener = p, o22.removeAllListeners = p, o22.emit = p, o22.prependListener = p, o22.prependOnceListener = p, o22.listeners = function(e3) {
      return [];
    }, o22.binding = function(e3) {
      throw new Error("process.binding is not supported");
    }, o22.cwd = function() {
      return "/";
    }, o22.chdir = function(e3) {
      throw new Error("process.chdir is not supported");
    }, o22.umask = function() {
      return 0;
    };
    var T3 = e2;
    T3.addListener;
    T3.argv;
    T3.binding;
    T3.browser;
    T3.chdir;
    T3.cwd;
    T3.emit;
    T3.env;
    T3.listeners;
    T3.nextTick;
    T3.off;
    T3.on;
    T3.once;
    T3.prependListener;
    T3.prependOnceListener;
    T3.removeAllListeners;
    T3.removeListener;
    T3.title;
    T3.umask;
    T3.version;
    T3.versions;
    var t22 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag;
    var e22 = Object.prototype.toString;
    var o222 = /* @__PURE__ */ __name2(function(o3) {
      return !(t22 && o3 && "object" == typeof o3 && Symbol.toStringTag in o3) && "[object Arguments]" === e22.call(o3);
    }, "o");
    var n222 = /* @__PURE__ */ __name2(function(t32) {
      return !!o222(t32) || null !== t32 && "object" == typeof t32 && "number" == typeof t32.length && t32.length >= 0 && "[object Array]" !== e22.call(t32) && "[object Function]" === e22.call(t32.callee);
    }, "n");
    var r22 = (function() {
      return o222(arguments);
    })();
    o222.isLegacyArguments = n222;
    var l22 = r22 ? o222 : n222;
    var t$1 = Object.prototype.toString;
    var o$1 = Function.prototype.toString;
    var n$1 = /^\s*(?:function)?\*/;
    var e$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag;
    var r$1 = Object.getPrototypeOf;
    var c22 = (function() {
      if (!e$1)
        return false;
      try {
        return Function("return function*() {}")();
      } catch (t32) {
      }
    })();
    var u22 = c22 ? r$1(c22) : {};
    var i222 = /* @__PURE__ */ __name2(function(c32) {
      return "function" == typeof c32 && (!!n$1.test(o$1.call(c32)) || (e$1 ? r$1(c32) === u22 : "[object GeneratorFunction]" === t$1.call(c32)));
    }, "i");
    var t$2 = "function" == typeof Object.create ? function(t32, e3) {
      e3 && (t32.super_ = e3, t32.prototype = Object.create(e3.prototype, { constructor: { value: t32, enumerable: false, writable: true, configurable: true } }));
    } : function(t32, e3) {
      if (e3) {
        t32.super_ = e3;
        var o3 = /* @__PURE__ */ __name2(function() {
        }, "o");
        o3.prototype = e3.prototype, t32.prototype = new o3(), t32.prototype.constructor = t32;
      }
    };
    var i$1 = /* @__PURE__ */ __name2(function(e3) {
      return e3 && "object" == typeof e3 && "function" == typeof e3.copy && "function" == typeof e3.fill && "function" == typeof e3.readUInt8;
    }, "i$1");
    var o$2 = {};
    var u$1 = i$1;
    var f2 = l22;
    var a22 = i222;
    function c$1(e3) {
      return e3.call.bind(e3);
    }
    __name2(c$1, "c$1");
    var s22 = "undefined" != typeof BigInt;
    var p2 = "undefined" != typeof Symbol;
    var y2 = p2 && void 0 !== Symbol.toStringTag;
    var l$1 = "undefined" != typeof Uint8Array;
    var d2 = "undefined" != typeof ArrayBuffer;
    if (l$1 && y2)
      var g = Object.getPrototypeOf(Uint8Array.prototype), b2 = c$1(Object.getOwnPropertyDescriptor(g, Symbol.toStringTag).get);
    var m22 = c$1(Object.prototype.toString);
    var h222 = c$1(Number.prototype.valueOf);
    var j2 = c$1(String.prototype.valueOf);
    var A2 = c$1(Boolean.prototype.valueOf);
    if (s22)
      var w3 = c$1(BigInt.prototype.valueOf);
    if (p2)
      var v2 = c$1(Symbol.prototype.valueOf);
    function O3(e3, t32) {
      if ("object" != typeof e3)
        return false;
      try {
        return t32(e3), true;
      } catch (e4) {
        return false;
      }
    }
    __name2(O3, "O");
    function S3(e3) {
      return l$1 && y2 ? void 0 !== b2(e3) : B3(e3) || k3(e3) || E2(e3) || D(e3) || U3(e3) || P3(e3) || x3(e3) || I4(e3) || M2(e3) || z4(e3) || F(e3);
    }
    __name2(S3, "S");
    function B3(e3) {
      return l$1 && y2 ? "Uint8Array" === b2(e3) : "[object Uint8Array]" === m22(e3) || u$1(e3) && void 0 !== e3.buffer;
    }
    __name2(B3, "B");
    function k3(e3) {
      return l$1 && y2 ? "Uint8ClampedArray" === b2(e3) : "[object Uint8ClampedArray]" === m22(e3);
    }
    __name2(k3, "k");
    function E2(e3) {
      return l$1 && y2 ? "Uint16Array" === b2(e3) : "[object Uint16Array]" === m22(e3);
    }
    __name2(E2, "E");
    function D(e3) {
      return l$1 && y2 ? "Uint32Array" === b2(e3) : "[object Uint32Array]" === m22(e3);
    }
    __name2(D, "D");
    function U3(e3) {
      return l$1 && y2 ? "Int8Array" === b2(e3) : "[object Int8Array]" === m22(e3);
    }
    __name2(U3, "U");
    function P3(e3) {
      return l$1 && y2 ? "Int16Array" === b2(e3) : "[object Int16Array]" === m22(e3);
    }
    __name2(P3, "P");
    function x3(e3) {
      return l$1 && y2 ? "Int32Array" === b2(e3) : "[object Int32Array]" === m22(e3);
    }
    __name2(x3, "x");
    function I4(e3) {
      return l$1 && y2 ? "Float32Array" === b2(e3) : "[object Float32Array]" === m22(e3);
    }
    __name2(I4, "I");
    function M2(e3) {
      return l$1 && y2 ? "Float64Array" === b2(e3) : "[object Float64Array]" === m22(e3);
    }
    __name2(M2, "M");
    function z4(e3) {
      return l$1 && y2 ? "BigInt64Array" === b2(e3) : "[object BigInt64Array]" === m22(e3);
    }
    __name2(z4, "z");
    function F(e3) {
      return l$1 && y2 ? "BigUint64Array" === b2(e3) : "[object BigUint64Array]" === m22(e3);
    }
    __name2(F, "F");
    function T22(e3) {
      return "[object Map]" === m22(e3);
    }
    __name2(T22, "T");
    function N3(e3) {
      return "[object Set]" === m22(e3);
    }
    __name2(N3, "N");
    function W3(e3) {
      return "[object WeakMap]" === m22(e3);
    }
    __name2(W3, "W");
    function $2(e3) {
      return "[object WeakSet]" === m22(e3);
    }
    __name2($2, "$");
    function C(e3) {
      return "[object ArrayBuffer]" === m22(e3);
    }
    __name2(C, "C");
    function V3(e3) {
      return "undefined" != typeof ArrayBuffer && (C.working ? C(e3) : e3 instanceof ArrayBuffer);
    }
    __name2(V3, "V");
    function G3(e3) {
      return "[object DataView]" === m22(e3);
    }
    __name2(G3, "G");
    function R2(e3) {
      return "undefined" != typeof DataView && (G3.working ? G3(e3) : e3 instanceof DataView);
    }
    __name2(R2, "R");
    function J3(e3) {
      return "[object SharedArrayBuffer]" === m22(e3);
    }
    __name2(J3, "J");
    function _3(e3) {
      return "undefined" != typeof SharedArrayBuffer && (J3.working ? J3(e3) : e3 instanceof SharedArrayBuffer);
    }
    __name2(_3, "_");
    function H3(e3) {
      return O3(e3, h222);
    }
    __name2(H3, "H");
    function Z3(e3) {
      return O3(e3, j2);
    }
    __name2(Z3, "Z");
    function q3(e3) {
      return O3(e3, A2);
    }
    __name2(q3, "q");
    function K3(e3) {
      return s22 && O3(e3, w3);
    }
    __name2(K3, "K");
    function L3(e3) {
      return p2 && O3(e3, v2);
    }
    __name2(L3, "L");
    o$2.isArgumentsObject = f2, o$2.isGeneratorFunction = a22, o$2.isPromise = function(e3) {
      return "undefined" != typeof Promise && e3 instanceof Promise || null !== e3 && "object" == typeof e3 && "function" == typeof e3.then && "function" == typeof e3.catch;
    }, o$2.isArrayBufferView = function(e3) {
      return d2 && ArrayBuffer.isView ? ArrayBuffer.isView(e3) : S3(e3) || R2(e3);
    }, o$2.isTypedArray = S3, o$2.isUint8Array = B3, o$2.isUint8ClampedArray = k3, o$2.isUint16Array = E2, o$2.isUint32Array = D, o$2.isInt8Array = U3, o$2.isInt16Array = P3, o$2.isInt32Array = x3, o$2.isFloat32Array = I4, o$2.isFloat64Array = M2, o$2.isBigInt64Array = z4, o$2.isBigUint64Array = F, T22.working = "undefined" != typeof Map && T22(/* @__PURE__ */ new Map()), o$2.isMap = function(e3) {
      return "undefined" != typeof Map && (T22.working ? T22(e3) : e3 instanceof Map);
    }, N3.working = "undefined" != typeof Set && N3(/* @__PURE__ */ new Set()), o$2.isSet = function(e3) {
      return "undefined" != typeof Set && (N3.working ? N3(e3) : e3 instanceof Set);
    }, W3.working = "undefined" != typeof WeakMap && W3(/* @__PURE__ */ new WeakMap()), o$2.isWeakMap = function(e3) {
      return "undefined" != typeof WeakMap && (W3.working ? W3(e3) : e3 instanceof WeakMap);
    }, $2.working = "undefined" != typeof WeakSet && $2(/* @__PURE__ */ new WeakSet()), o$2.isWeakSet = function(e3) {
      return $2(e3);
    }, C.working = "undefined" != typeof ArrayBuffer && C(new ArrayBuffer()), o$2.isArrayBuffer = V3, G3.working = "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView && G3(new DataView(new ArrayBuffer(1), 0, 1)), o$2.isDataView = R2, J3.working = "undefined" != typeof SharedArrayBuffer && J3(new SharedArrayBuffer()), o$2.isSharedArrayBuffer = _3, o$2.isAsyncFunction = function(e3) {
      return "[object AsyncFunction]" === m22(e3);
    }, o$2.isMapIterator = function(e3) {
      return "[object Map Iterator]" === m22(e3);
    }, o$2.isSetIterator = function(e3) {
      return "[object Set Iterator]" === m22(e3);
    }, o$2.isGeneratorObject = function(e3) {
      return "[object Generator]" === m22(e3);
    }, o$2.isWebAssemblyCompiledModule = function(e3) {
      return "[object WebAssembly.Module]" === m22(e3);
    }, o$2.isNumberObject = H3, o$2.isStringObject = Z3, o$2.isBooleanObject = q3, o$2.isBigIntObject = K3, o$2.isSymbolObject = L3, o$2.isBoxedPrimitive = function(e3) {
      return H3(e3) || Z3(e3) || q3(e3) || K3(e3) || L3(e3);
    }, o$2.isAnyArrayBuffer = function(e3) {
      return l$1 && (V3(e3) || _3(e3));
    }, ["isProxy", "isExternal", "isModuleNamespaceObject"].forEach(function(e3) {
      Object.defineProperty(o$2, e3, { enumerable: false, value: function() {
        throw new Error(e3 + " is not supported in userland");
      } });
    });
    var Q3 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis;
    var X2 = {};
    var Y3 = T3;
    var ee3 = Object.getOwnPropertyDescriptors || function(e3) {
      for (var t32 = Object.keys(e3), r3 = {}, n3 = 0; n3 < t32.length; n3++)
        r3[t32[n3]] = Object.getOwnPropertyDescriptor(e3, t32[n3]);
      return r3;
    };
    var te2 = /%[sdj%]/g;
    X2.format = function(e3) {
      if (!ge3(e3)) {
        for (var t32 = [], r3 = 0; r3 < arguments.length; r3++)
          t32.push(oe2(arguments[r3]));
        return t32.join(" ");
      }
      r3 = 1;
      for (var n3 = arguments, i3 = n3.length, o3 = String(e3).replace(te2, function(e4) {
        if ("%%" === e4)
          return "%";
        if (r3 >= i3)
          return e4;
        switch (e4) {
          case "%s":
            return String(n3[r3++]);
          case "%d":
            return Number(n3[r3++]);
          case "%j":
            try {
              return JSON.stringify(n3[r3++]);
            } catch (e5) {
              return "[Circular]";
            }
          default:
            return e4;
        }
      }), u3 = n3[r3]; r3 < i3; u3 = n3[++r3])
        le3(u3) || !he3(u3) ? o3 += " " + u3 : o3 += " " + oe2(u3);
      return o3;
    }, X2.deprecate = function(e3, t32) {
      if (void 0 !== Y3 && true === Y3.noDeprecation)
        return e3;
      if (void 0 === Y3)
        return function() {
          return X2.deprecate(e3, t32).apply(this || Q3, arguments);
        };
      var r3 = false;
      return function() {
        if (!r3) {
          if (Y3.throwDeprecation)
            throw new Error(t32);
          Y3.traceDeprecation ? console.trace(t32) : console.error(t32), r3 = true;
        }
        return e3.apply(this || Q3, arguments);
      };
    };
    var re3 = {};
    var ne3 = /^$/;
    if (Y3.env.NODE_DEBUG) {
      ie3 = Y3.env.NODE_DEBUG;
      ie3 = ie3.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), ne3 = new RegExp("^" + ie3 + "$", "i");
    }
    var ie3;
    function oe2(e3, t32) {
      var r3 = { seen: [], stylize: fe3 };
      return arguments.length >= 3 && (r3.depth = arguments[2]), arguments.length >= 4 && (r3.colors = arguments[3]), ye3(t32) ? r3.showHidden = t32 : t32 && X2._extend(r3, t32), be3(r3.showHidden) && (r3.showHidden = false), be3(r3.depth) && (r3.depth = 2), be3(r3.colors) && (r3.colors = false), be3(r3.customInspect) && (r3.customInspect = true), r3.colors && (r3.stylize = ue2), ae2(r3, e3, r3.depth);
    }
    __name2(oe2, "oe");
    function ue2(e3, t32) {
      var r3 = oe2.styles[t32];
      return r3 ? "\x1B[" + oe2.colors[r3][0] + "m" + e3 + "\x1B[" + oe2.colors[r3][1] + "m" : e3;
    }
    __name2(ue2, "ue");
    function fe3(e3, t32) {
      return e3;
    }
    __name2(fe3, "fe");
    function ae2(e3, t32, r3) {
      if (e3.customInspect && t32 && we3(t32.inspect) && t32.inspect !== X2.inspect && (!t32.constructor || t32.constructor.prototype !== t32)) {
        var n3 = t32.inspect(r3, e3);
        return ge3(n3) || (n3 = ae2(e3, n3, r3)), n3;
      }
      var i3 = (function(e4, t42) {
        if (be3(t42))
          return e4.stylize("undefined", "undefined");
        if (ge3(t42)) {
          var r4 = "'" + JSON.stringify(t42).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
          return e4.stylize(r4, "string");
        }
        if (de3(t42))
          return e4.stylize("" + t42, "number");
        if (ye3(t42))
          return e4.stylize("" + t42, "boolean");
        if (le3(t42))
          return e4.stylize("null", "null");
      })(e3, t32);
      if (i3)
        return i3;
      var o3 = Object.keys(t32), u3 = (function(e4) {
        var t42 = {};
        return e4.forEach(function(e5, r4) {
          t42[e5] = true;
        }), t42;
      })(o3);
      if (e3.showHidden && (o3 = Object.getOwnPropertyNames(t32)), Ae2(t32) && (o3.indexOf("message") >= 0 || o3.indexOf("description") >= 0))
        return ce3(t32);
      if (0 === o3.length) {
        if (we3(t32)) {
          var f3 = t32.name ? ": " + t32.name : "";
          return e3.stylize("[Function" + f3 + "]", "special");
        }
        if (me3(t32))
          return e3.stylize(RegExp.prototype.toString.call(t32), "regexp");
        if (je3(t32))
          return e3.stylize(Date.prototype.toString.call(t32), "date");
        if (Ae2(t32))
          return ce3(t32);
      }
      var a3, c32 = "", s4 = false, p3 = ["{", "}"];
      (pe3(t32) && (s4 = true, p3 = ["[", "]"]), we3(t32)) && (c32 = " [Function" + (t32.name ? ": " + t32.name : "") + "]");
      return me3(t32) && (c32 = " " + RegExp.prototype.toString.call(t32)), je3(t32) && (c32 = " " + Date.prototype.toUTCString.call(t32)), Ae2(t32) && (c32 = " " + ce3(t32)), 0 !== o3.length || s4 && 0 != t32.length ? r3 < 0 ? me3(t32) ? e3.stylize(RegExp.prototype.toString.call(t32), "regexp") : e3.stylize("[Object]", "special") : (e3.seen.push(t32), a3 = s4 ? (function(e4, t42, r4, n4, i4) {
        for (var o4 = [], u4 = 0, f4 = t42.length; u4 < f4; ++u4)
          ke3(t42, String(u4)) ? o4.push(se3(e4, t42, r4, n4, String(u4), true)) : o4.push("");
        return i4.forEach(function(i5) {
          i5.match(/^\d+$/) || o4.push(se3(e4, t42, r4, n4, i5, true));
        }), o4;
      })(e3, t32, r3, u3, o3) : o3.map(function(n4) {
        return se3(e3, t32, r3, u3, n4, s4);
      }), e3.seen.pop(), (function(e4, t42, r4) {
        var n4 = 0;
        if (e4.reduce(function(e5, t52) {
          return n4++, t52.indexOf("\n") >= 0 && n4++, e5 + t52.replace(/\u001b\[\d\d?m/g, "").length + 1;
        }, 0) > 60)
          return r4[0] + ("" === t42 ? "" : t42 + "\n ") + " " + e4.join(",\n  ") + " " + r4[1];
        return r4[0] + t42 + " " + e4.join(", ") + " " + r4[1];
      })(a3, c32, p3)) : p3[0] + c32 + p3[1];
    }
    __name2(ae2, "ae");
    function ce3(e3) {
      return "[" + Error.prototype.toString.call(e3) + "]";
    }
    __name2(ce3, "ce");
    function se3(e3, t32, r3, n3, i3, o3) {
      var u3, f3, a3;
      if ((a3 = Object.getOwnPropertyDescriptor(t32, i3) || { value: t32[i3] }).get ? f3 = a3.set ? e3.stylize("[Getter/Setter]", "special") : e3.stylize("[Getter]", "special") : a3.set && (f3 = e3.stylize("[Setter]", "special")), ke3(n3, i3) || (u3 = "[" + i3 + "]"), f3 || (e3.seen.indexOf(a3.value) < 0 ? (f3 = le3(r3) ? ae2(e3, a3.value, null) : ae2(e3, a3.value, r3 - 1)).indexOf("\n") > -1 && (f3 = o3 ? f3.split("\n").map(function(e4) {
        return "  " + e4;
      }).join("\n").substr(2) : "\n" + f3.split("\n").map(function(e4) {
        return "   " + e4;
      }).join("\n")) : f3 = e3.stylize("[Circular]", "special")), be3(u3)) {
        if (o3 && i3.match(/^\d+$/))
          return f3;
        (u3 = JSON.stringify("" + i3)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (u3 = u3.substr(1, u3.length - 2), u3 = e3.stylize(u3, "name")) : (u3 = u3.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), u3 = e3.stylize(u3, "string"));
      }
      return u3 + ": " + f3;
    }
    __name2(se3, "se");
    function pe3(e3) {
      return Array.isArray(e3);
    }
    __name2(pe3, "pe");
    function ye3(e3) {
      return "boolean" == typeof e3;
    }
    __name2(ye3, "ye");
    function le3(e3) {
      return null === e3;
    }
    __name2(le3, "le");
    function de3(e3) {
      return "number" == typeof e3;
    }
    __name2(de3, "de");
    function ge3(e3) {
      return "string" == typeof e3;
    }
    __name2(ge3, "ge");
    function be3(e3) {
      return void 0 === e3;
    }
    __name2(be3, "be");
    function me3(e3) {
      return he3(e3) && "[object RegExp]" === ve3(e3);
    }
    __name2(me3, "me");
    function he3(e3) {
      return "object" == typeof e3 && null !== e3;
    }
    __name2(he3, "he");
    function je3(e3) {
      return he3(e3) && "[object Date]" === ve3(e3);
    }
    __name2(je3, "je");
    function Ae2(e3) {
      return he3(e3) && ("[object Error]" === ve3(e3) || e3 instanceof Error);
    }
    __name2(Ae2, "Ae");
    function we3(e3) {
      return "function" == typeof e3;
    }
    __name2(we3, "we");
    function ve3(e3) {
      return Object.prototype.toString.call(e3);
    }
    __name2(ve3, "ve");
    function Oe3(e3) {
      return e3 < 10 ? "0" + e3.toString(10) : e3.toString(10);
    }
    __name2(Oe3, "Oe");
    X2.debuglog = function(e3) {
      if (e3 = e3.toUpperCase(), !re3[e3])
        if (ne3.test(e3)) {
          var t32 = Y3.pid;
          re3[e3] = function() {
            var r3 = X2.format.apply(X2, arguments);
            console.error("%s %d: %s", e3, t32, r3);
          };
        } else
          re3[e3] = function() {
          };
      return re3[e3];
    }, X2.inspect = oe2, oe2.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] }, oe2.styles = { special: "cyan", number: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", date: "magenta", regexp: "red" }, X2.types = o$2, X2.isArray = pe3, X2.isBoolean = ye3, X2.isNull = le3, X2.isNullOrUndefined = function(e3) {
      return null == e3;
    }, X2.isNumber = de3, X2.isString = ge3, X2.isSymbol = function(e3) {
      return "symbol" == typeof e3;
    }, X2.isUndefined = be3, X2.isRegExp = me3, X2.types.isRegExp = me3, X2.isObject = he3, X2.isDate = je3, X2.types.isDate = je3, X2.isError = Ae2, X2.types.isNativeError = Ae2, X2.isFunction = we3, X2.isPrimitive = function(e3) {
      return null === e3 || "boolean" == typeof e3 || "number" == typeof e3 || "string" == typeof e3 || "symbol" == typeof e3 || void 0 === e3;
    }, X2.isBuffer = i$1;
    var Se3 = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    function Be3() {
      var e3 = /* @__PURE__ */ new Date(), t32 = [Oe3(e3.getHours()), Oe3(e3.getMinutes()), Oe3(e3.getSeconds())].join(":");
      return [e3.getDate(), Se3[e3.getMonth()], t32].join(" ");
    }
    __name2(Be3, "Be");
    function ke3(e3, t32) {
      return Object.prototype.hasOwnProperty.call(e3, t32);
    }
    __name2(ke3, "ke");
    X2.log = function() {
      console.log("%s - %s", Be3(), X2.format.apply(X2, arguments));
    }, X2.inherits = t$2, X2._extend = function(e3, t32) {
      if (!t32 || !he3(t32))
        return e3;
      for (var r3 = Object.keys(t32), n3 = r3.length; n3--; )
        e3[r3[n3]] = t32[r3[n3]];
      return e3;
    };
    var Ee3 = "undefined" != typeof Symbol ? Symbol("util.promisify.custom") : void 0;
    function De3(e3, t32) {
      if (!e3) {
        var r3 = new Error("Promise was rejected with a falsy value");
        r3.reason = e3, e3 = r3;
      }
      return t32(e3);
    }
    __name2(De3, "De");
    X2.promisify = function(e3) {
      if ("function" != typeof e3)
        throw new TypeError('The "original" argument must be of type Function');
      if (Ee3 && e3[Ee3]) {
        var t32;
        if ("function" != typeof (t32 = e3[Ee3]))
          throw new TypeError('The "util.promisify.custom" argument must be of type Function');
        return Object.defineProperty(t32, Ee3, { value: t32, enumerable: false, writable: false, configurable: true }), t32;
      }
      function t32() {
        for (var t42, r3, n3 = new Promise(function(e4, n4) {
          t42 = e4, r3 = n4;
        }), i3 = [], o3 = 0; o3 < arguments.length; o3++)
          i3.push(arguments[o3]);
        i3.push(function(e4, n4) {
          e4 ? r3(e4) : t42(n4);
        });
        try {
          e3.apply(this || Q3, i3);
        } catch (e4) {
          r3(e4);
        }
        return n3;
      }
      __name2(t32, "t");
      return Object.setPrototypeOf(t32, Object.getPrototypeOf(e3)), Ee3 && Object.defineProperty(t32, Ee3, { value: t32, enumerable: false, writable: false, configurable: true }), Object.defineProperties(t32, ee3(e3));
    }, X2.promisify.custom = Ee3, X2.callbackify = function(e3) {
      if ("function" != typeof e3)
        throw new TypeError('The "original" argument must be of type Function');
      function t32() {
        for (var t42 = [], r3 = 0; r3 < arguments.length; r3++)
          t42.push(arguments[r3]);
        var n3 = t42.pop();
        if ("function" != typeof n3)
          throw new TypeError("The last argument must be of type Function");
        var i3 = this || Q3, o3 = /* @__PURE__ */ __name2(function() {
          return n3.apply(i3, arguments);
        }, "o");
        e3.apply(this || Q3, t42).then(function(e4) {
          Y3.nextTick(o3.bind(null, null, e4));
        }, function(e4) {
          Y3.nextTick(De3.bind(null, e4, o3));
        });
      }
      __name2(t32, "t");
      return Object.setPrototypeOf(t32, Object.getPrototypeOf(e3)), Object.defineProperties(t32, ee3(e3)), t32;
    };
    X2._extend;
    X2.callbackify;
    X2.debuglog;
    X2.deprecate;
    X2.format;
    X2.inherits;
    X2.inspect;
    X2.isArray;
    X2.isBoolean;
    X2.isBuffer;
    X2.isDate;
    X2.isError;
    X2.isFunction;
    X2.isNull;
    X2.isNullOrUndefined;
    X2.isNumber;
    X2.isObject;
    X2.isPrimitive;
    X2.isRegExp;
    X2.isString;
    X2.isSymbol;
    X2.isUndefined;
    X2.log;
    X2.promisify;
    X2._extend;
    X2.callbackify;
    X2.debuglog;
    X2.deprecate;
    X2.format;
    X2.inherits;
    X2.inspect;
    X2.isArray;
    X2.isBoolean;
    X2.isBuffer;
    X2.isDate;
    X2.isError;
    X2.isFunction;
    X2.isNull;
    X2.isNullOrUndefined;
    X2.isNumber;
    X2.isObject;
    X2.isPrimitive;
    X2.isRegExp;
    X2.isString;
    X2.isSymbol;
    X2.isUndefined;
    X2.log;
    X2.promisify;
    X2.types;
    X2._extend;
    X2.callbackify;
    X2.debuglog;
    X2.deprecate;
    X2.format;
    X2.inherits;
    var inspect2 = X2.inspect;
    X2.isArray;
    X2.isBoolean;
    X2.isBuffer;
    X2.isDate;
    X2.isError;
    X2.isFunction;
    X2.isNull;
    X2.isNullOrUndefined;
    X2.isNumber;
    X2.isObject;
    X2.isPrimitive;
    X2.isRegExp;
    X2.isString;
    X2.isSymbol;
    X2.isUndefined;
    X2.log;
    X2.promisify;
    X2.types;
    X2.TextEncoder = globalThis.TextEncoder;
    X2.TextDecoder = globalThis.TextDecoder;
    var customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
    var customInspectSymbolStackLess = Symbol.for("nodejs.util.inspect.custom.stack-less");
    var _BaseError = class _BaseError extends Error {
      [customInspectSymbol](depth, options) {
        return `${this[customInspectSymbolStackLess](depth, options)}
${this.stack.slice(this.stack.indexOf("\n"))}`;
      }
    };
    __name2(_BaseError, "BaseError");
    var BaseError = _BaseError;
    var _BaseConstraintError = class _BaseConstraintError extends BaseError {
      constructor(constraint, message, given) {
        super(message);
        this.constraint = constraint;
        this.given = given;
      }
    };
    __name2(_BaseConstraintError, "BaseConstraintError");
    var BaseConstraintError = _BaseConstraintError;
    var _ExpectedConstraintError = class _ExpectedConstraintError extends BaseConstraintError {
      constructor(constraint, message, given, expected) {
        super(constraint, message, given);
        this.expected = expected;
      }
      toJSON() {
        return {
          name: this.name,
          constraint: this.constraint,
          given: this.given,
          expected: this.expected
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const constraint = options.stylize(this.constraint, "string");
        if (depth < 0) {
          return options.stylize(`[ExpectedConstraintError: ${constraint}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header2 = `${options.stylize("ExpectedConstraintError", "special")} > ${constraint}`;
        const message = options.stylize(this.message, "regexp");
        const expectedBlock = `
  ${options.stylize("Expected: ", "string")}${options.stylize(this.expected, "boolean")}`;
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header2}
  ${message}
${expectedBlock}
${givenBlock}`;
      }
    };
    __name2(_ExpectedConstraintError, "ExpectedConstraintError");
    var ExpectedConstraintError = _ExpectedConstraintError;
    function whenConstraint(key, options, validator) {
      return {
        run(input, parent) {
          if (!parent) {
            return Result.err(new ExpectedConstraintError("s.object(T.when)", "Validator has no parent", parent, "Validator to have a parent"));
          }
          const isKeyArray = Array.isArray(key);
          const value = isKeyArray ? key.map((k22) => get__default.default(parent, k22)) : get__default.default(parent, key);
          const predicate = resolveBooleanIs(options, value, isKeyArray) ? options.then : options.otherwise;
          if (predicate) {
            return predicate(validator).run(input);
          }
          return Result.ok(input);
        }
      };
    }
    __name2(whenConstraint, "whenConstraint");
    function resolveBooleanIs(options, value, isKeyArray) {
      if (options.is === void 0) {
        return isKeyArray ? !value.some((val) => !val) : Boolean(value);
      }
      if (typeof options.is === "function") {
        return options.is(value);
      }
      return value === options.is;
    }
    __name2(resolveBooleanIs, "resolveBooleanIs");
    var _BaseValidator = class _BaseValidator {
      constructor(constraints = []) {
        this.constraints = [];
        this.isValidationEnabled = null;
        this.constraints = constraints;
      }
      setParent(parent) {
        this.parent = parent;
        return this;
      }
      get optional() {
        return new UnionValidator([new LiteralValidator(void 0), this.clone()]);
      }
      get nullable() {
        return new UnionValidator([new LiteralValidator(null), this.clone()]);
      }
      get nullish() {
        return new UnionValidator([new NullishValidator(), this.clone()]);
      }
      get array() {
        return new ArrayValidator(this.clone());
      }
      get set() {
        return new SetValidator(this.clone());
      }
      or(...predicates3) {
        return new UnionValidator([this.clone(), ...predicates3]);
      }
      transform(cb) {
        return this.addConstraint({ run: (input) => Result.ok(cb(input)) });
      }
      reshape(cb) {
        return this.addConstraint({ run: cb });
      }
      default(value) {
        return new DefaultValidator(this.clone(), value);
      }
      when(key, options) {
        return this.addConstraint(whenConstraint(key, options, this));
      }
      describe(description) {
        const clone = this.clone();
        clone.description = description;
        return clone;
      }
      run(value) {
        let result = this.handle(value);
        if (result.isErr())
          return result;
        for (const constraint of this.constraints) {
          result = constraint.run(result.value, this.parent);
          if (result.isErr())
            break;
        }
        return result;
      }
      parse(value) {
        if (!this.shouldRunConstraints) {
          return this.handle(value).unwrap();
        }
        return this.constraints.reduce((v22, constraint) => constraint.run(v22).unwrap(), this.handle(value).unwrap());
      }
      is(value) {
        return this.run(value).isOk();
      }
      /**
       * Sets if the validator should also run constraints or just do basic checks.
       * @param isValidationEnabled Whether this validator should be enabled or disabled. You can pass boolean or a function returning boolean which will be called just before parsing.
       * Set to `null` to go off of the global configuration.
       */
      setValidationEnabled(isValidationEnabled) {
        const clone = this.clone();
        clone.isValidationEnabled = isValidationEnabled;
        return clone;
      }
      getValidationEnabled() {
        return getValue(this.isValidationEnabled);
      }
      get shouldRunConstraints() {
        return getValue(this.isValidationEnabled) ?? getGlobalValidationEnabled();
      }
      clone() {
        const clone = Reflect.construct(this.constructor, [this.constraints]);
        clone.isValidationEnabled = this.isValidationEnabled;
        return clone;
      }
      addConstraint(constraint) {
        const clone = this.clone();
        clone.constraints = clone.constraints.concat(constraint);
        return clone;
      }
    };
    __name2(_BaseValidator, "BaseValidator");
    var BaseValidator = _BaseValidator;
    function isUnique(input) {
      if (input.length < 2)
        return true;
      const uniqueArray2 = uniqWith__default.default(input, fastDeepEqual__default.default);
      return uniqueArray2.length === input.length;
    }
    __name2(isUnique, "isUnique");
    function lessThan(a3, b22) {
      return a3 < b22;
    }
    __name2(lessThan, "lessThan");
    function lessThanOrEqual(a3, b22) {
      return a3 <= b22;
    }
    __name2(lessThanOrEqual, "lessThanOrEqual");
    function greaterThan(a3, b22) {
      return a3 > b22;
    }
    __name2(greaterThan, "greaterThan");
    function greaterThanOrEqual(a3, b22) {
      return a3 >= b22;
    }
    __name2(greaterThanOrEqual, "greaterThanOrEqual");
    function equal(a3, b22) {
      return a3 === b22;
    }
    __name2(equal, "equal");
    function notEqual(a3, b22) {
      return a3 !== b22;
    }
    __name2(notEqual, "notEqual");
    function arrayLengthComparator(comparator, name2, expected, length) {
      return {
        run(input) {
          return comparator(input.length, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthComparator, "arrayLengthComparator");
    function arrayLengthLessThan(value) {
      const expected = `expected.length < ${value}`;
      return arrayLengthComparator(lessThan, "s.array(T).lengthLessThan", expected, value);
    }
    __name2(arrayLengthLessThan, "arrayLengthLessThan");
    function arrayLengthLessThanOrEqual(value) {
      const expected = `expected.length <= ${value}`;
      return arrayLengthComparator(lessThanOrEqual, "s.array(T).lengthLessThanOrEqual", expected, value);
    }
    __name2(arrayLengthLessThanOrEqual, "arrayLengthLessThanOrEqual");
    function arrayLengthGreaterThan(value) {
      const expected = `expected.length > ${value}`;
      return arrayLengthComparator(greaterThan, "s.array(T).lengthGreaterThan", expected, value);
    }
    __name2(arrayLengthGreaterThan, "arrayLengthGreaterThan");
    function arrayLengthGreaterThanOrEqual(value) {
      const expected = `expected.length >= ${value}`;
      return arrayLengthComparator(greaterThanOrEqual, "s.array(T).lengthGreaterThanOrEqual", expected, value);
    }
    __name2(arrayLengthGreaterThanOrEqual, "arrayLengthGreaterThanOrEqual");
    function arrayLengthEqual(value) {
      const expected = `expected.length === ${value}`;
      return arrayLengthComparator(equal, "s.array(T).lengthEqual", expected, value);
    }
    __name2(arrayLengthEqual, "arrayLengthEqual");
    function arrayLengthNotEqual(value) {
      const expected = `expected.length !== ${value}`;
      return arrayLengthComparator(notEqual, "s.array(T).lengthNotEqual", expected, value);
    }
    __name2(arrayLengthNotEqual, "arrayLengthNotEqual");
    function arrayLengthRange(start, endBefore) {
      const expected = `expected.length >= ${start} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length >= start && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRange", "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthRange, "arrayLengthRange");
    function arrayLengthRangeInclusive(start, end) {
      const expected = `expected.length >= ${start} && expected.length <= ${end}`;
      return {
        run(input) {
          return input.length >= start && input.length <= end ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRangeInclusive", "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthRangeInclusive, "arrayLengthRangeInclusive");
    function arrayLengthRangeExclusive(startAfter, endBefore) {
      const expected = `expected.length > ${startAfter} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length > startAfter && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRangeExclusive", "Invalid Array length", input, expected));
        }
      };
    }
    __name2(arrayLengthRangeExclusive, "arrayLengthRangeExclusive");
    var uniqueArray = {
      run(input) {
        return isUnique(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).unique", "Array values are not unique", input, "Expected all values to be unique"));
      }
    };
    var _CombinedPropertyError = class _CombinedPropertyError2 extends BaseError {
      constructor(errors) {
        super("Received one or more errors");
        this.errors = errors;
      }
      [customInspectSymbolStackLess](depth, options) {
        if (depth < 0) {
          return options.stylize("[CombinedPropertyError]", "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const header2 = `${options.stylize("CombinedPropertyError", "special")} (${options.stylize(this.errors.length.toString(), "number")})`;
        const message = options.stylize(this.message, "regexp");
        const errors = this.errors.map(([key, error]) => {
          const property = _CombinedPropertyError2.formatProperty(key, options);
          const body = error[customInspectSymbolStackLess](depth - 1, newOptions).replace(/\n/g, padding);
          return `  input${property}${padding}${body}`;
        }).join("\n\n");
        return `${header2}
  ${message}

${errors}`;
      }
      static formatProperty(key, options) {
        if (typeof key === "string")
          return options.stylize(`.${key}`, "symbol");
        if (typeof key === "number")
          return `[${options.stylize(key.toString(), "number")}]`;
        return `[${options.stylize("Symbol", "symbol")}(${key.description})]`;
      }
    };
    __name2(_CombinedPropertyError, "CombinedPropertyError");
    var CombinedPropertyError = _CombinedPropertyError;
    var _ValidationError = class _ValidationError extends BaseError {
      constructor(validator, message, given) {
        super(message);
        this.validator = validator;
        this.given = given;
      }
      toJSON() {
        return {
          name: this.name,
          validator: this.validator,
          given: this.given
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const validator = options.stylize(this.validator, "string");
        if (depth < 0) {
          return options.stylize(`[ValidationError: ${validator}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header2 = `${options.stylize("ValidationError", "special")} > ${validator}`;
        const message = options.stylize(this.message, "regexp");
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header2}
  ${message}
${givenBlock}`;
      }
    };
    __name2(_ValidationError, "ValidationError");
    var ValidationError = _ValidationError;
    var _ArrayValidator = class _ArrayValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      lengthLessThan(length) {
        return this.addConstraint(arrayLengthLessThan(length));
      }
      lengthLessThanOrEqual(length) {
        return this.addConstraint(arrayLengthLessThanOrEqual(length));
      }
      lengthGreaterThan(length) {
        return this.addConstraint(arrayLengthGreaterThan(length));
      }
      lengthGreaterThanOrEqual(length) {
        return this.addConstraint(arrayLengthGreaterThanOrEqual(length));
      }
      lengthEqual(length) {
        return this.addConstraint(arrayLengthEqual(length));
      }
      lengthNotEqual(length) {
        return this.addConstraint(arrayLengthNotEqual(length));
      }
      lengthRange(start, endBefore) {
        return this.addConstraint(arrayLengthRange(start, endBefore));
      }
      lengthRangeInclusive(startAt, endAt) {
        return this.addConstraint(arrayLengthRangeInclusive(startAt, endAt));
      }
      lengthRangeExclusive(startAfter, endBefore) {
        return this.addConstraint(arrayLengthRangeExclusive(startAfter, endBefore));
      }
      get unique() {
        return this.addConstraint(uniqueArray);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(values) {
        if (!Array.isArray(values)) {
          return Result.err(new ValidationError("s.array(T)", "Expected an array", values));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(values);
        }
        const errors = [];
        const transformed = [];
        for (let i3 = 0; i3 < values.length; i3++) {
          const result = this.validator.run(values[i3]);
          if (result.isOk())
            transformed.push(result.value);
          else
            errors.push([i3, result.error]);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_ArrayValidator, "ArrayValidator");
    var ArrayValidator = _ArrayValidator;
    function bigintComparator(comparator, name2, expected, number) {
      return {
        run(input) {
          return comparator(input, number) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, "Invalid bigint value", input, expected));
        }
      };
    }
    __name2(bigintComparator, "bigintComparator");
    function bigintLessThan(value) {
      const expected = `expected < ${value}n`;
      return bigintComparator(lessThan, "s.bigint.lessThan", expected, value);
    }
    __name2(bigintLessThan, "bigintLessThan");
    function bigintLessThanOrEqual(value) {
      const expected = `expected <= ${value}n`;
      return bigintComparator(lessThanOrEqual, "s.bigint.lessThanOrEqual", expected, value);
    }
    __name2(bigintLessThanOrEqual, "bigintLessThanOrEqual");
    function bigintGreaterThan(value) {
      const expected = `expected > ${value}n`;
      return bigintComparator(greaterThan, "s.bigint.greaterThan", expected, value);
    }
    __name2(bigintGreaterThan, "bigintGreaterThan");
    function bigintGreaterThanOrEqual(value) {
      const expected = `expected >= ${value}n`;
      return bigintComparator(greaterThanOrEqual, "s.bigint.greaterThanOrEqual", expected, value);
    }
    __name2(bigintGreaterThanOrEqual, "bigintGreaterThanOrEqual");
    function bigintEqual(value) {
      const expected = `expected === ${value}n`;
      return bigintComparator(equal, "s.bigint.equal", expected, value);
    }
    __name2(bigintEqual, "bigintEqual");
    function bigintNotEqual(value) {
      const expected = `expected !== ${value}n`;
      return bigintComparator(notEqual, "s.bigint.notEqual", expected, value);
    }
    __name2(bigintNotEqual, "bigintNotEqual");
    function bigintDivisibleBy(divider) {
      const expected = `expected % ${divider}n === 0n`;
      return {
        run(input) {
          return input % divider === 0n ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.bigint.divisibleBy", "BigInt is not divisible", input, expected));
        }
      };
    }
    __name2(bigintDivisibleBy, "bigintDivisibleBy");
    var _BigIntValidator = class _BigIntValidator extends BaseValidator {
      lessThan(number) {
        return this.addConstraint(bigintLessThan(number));
      }
      lessThanOrEqual(number) {
        return this.addConstraint(bigintLessThanOrEqual(number));
      }
      greaterThan(number) {
        return this.addConstraint(bigintGreaterThan(number));
      }
      greaterThanOrEqual(number) {
        return this.addConstraint(bigintGreaterThanOrEqual(number));
      }
      equal(number) {
        return this.addConstraint(bigintEqual(number));
      }
      notEqual(number) {
        return this.addConstraint(bigintNotEqual(number));
      }
      get positive() {
        return this.greaterThanOrEqual(0n);
      }
      get negative() {
        return this.lessThan(0n);
      }
      divisibleBy(number) {
        return this.addConstraint(bigintDivisibleBy(number));
      }
      get abs() {
        return this.transform((value) => value < 0 ? -value : value);
      }
      intN(bits2) {
        return this.transform((value) => BigInt.asIntN(bits2, value));
      }
      uintN(bits2) {
        return this.transform((value) => BigInt.asUintN(bits2, value));
      }
      handle(value) {
        return typeof value === "bigint" ? Result.ok(value) : Result.err(new ValidationError("s.bigint", "Expected a bigint primitive", value));
      }
    };
    __name2(_BigIntValidator, "BigIntValidator");
    var BigIntValidator = _BigIntValidator;
    var booleanTrue = {
      run(input) {
        return input ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.boolean.true", "Invalid boolean value", input, "true"));
      }
    };
    var booleanFalse = {
      run(input) {
        return input ? Result.err(new ExpectedConstraintError("s.boolean.false", "Invalid boolean value", input, "false")) : Result.ok(input);
      }
    };
    var _BooleanValidator = class _BooleanValidator extends BaseValidator {
      get true() {
        return this.addConstraint(booleanTrue);
      }
      get false() {
        return this.addConstraint(booleanFalse);
      }
      equal(value) {
        return value ? this.true : this.false;
      }
      notEqual(value) {
        return value ? this.false : this.true;
      }
      handle(value) {
        return typeof value === "boolean" ? Result.ok(value) : Result.err(new ValidationError("s.boolean", "Expected a boolean primitive", value));
      }
    };
    __name2(_BooleanValidator, "BooleanValidator");
    var BooleanValidator = _BooleanValidator;
    function dateComparator(comparator, name2, expected, number) {
      return {
        run(input) {
          return comparator(input.getTime(), number) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, "Invalid Date value", input, expected));
        }
      };
    }
    __name2(dateComparator, "dateComparator");
    function dateLessThan(value) {
      const expected = `expected < ${value.toISOString()}`;
      return dateComparator(lessThan, "s.date.lessThan", expected, value.getTime());
    }
    __name2(dateLessThan, "dateLessThan");
    function dateLessThanOrEqual(value) {
      const expected = `expected <= ${value.toISOString()}`;
      return dateComparator(lessThanOrEqual, "s.date.lessThanOrEqual", expected, value.getTime());
    }
    __name2(dateLessThanOrEqual, "dateLessThanOrEqual");
    function dateGreaterThan(value) {
      const expected = `expected > ${value.toISOString()}`;
      return dateComparator(greaterThan, "s.date.greaterThan", expected, value.getTime());
    }
    __name2(dateGreaterThan, "dateGreaterThan");
    function dateGreaterThanOrEqual(value) {
      const expected = `expected >= ${value.toISOString()}`;
      return dateComparator(greaterThanOrEqual, "s.date.greaterThanOrEqual", expected, value.getTime());
    }
    __name2(dateGreaterThanOrEqual, "dateGreaterThanOrEqual");
    function dateEqual(value) {
      const expected = `expected === ${value.toISOString()}`;
      return dateComparator(equal, "s.date.equal", expected, value.getTime());
    }
    __name2(dateEqual, "dateEqual");
    function dateNotEqual(value) {
      const expected = `expected !== ${value.toISOString()}`;
      return dateComparator(notEqual, "s.date.notEqual", expected, value.getTime());
    }
    __name2(dateNotEqual, "dateNotEqual");
    var dateInvalid = {
      run(input) {
        return Number.isNaN(input.getTime()) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.date.invalid", "Invalid Date value", input, "expected === NaN"));
      }
    };
    var dateValid = {
      run(input) {
        return Number.isNaN(input.getTime()) ? Result.err(new ExpectedConstraintError("s.date.valid", "Invalid Date value", input, "expected !== NaN")) : Result.ok(input);
      }
    };
    var _DateValidator = class _DateValidator extends BaseValidator {
      lessThan(date) {
        return this.addConstraint(dateLessThan(new Date(date)));
      }
      lessThanOrEqual(date) {
        return this.addConstraint(dateLessThanOrEqual(new Date(date)));
      }
      greaterThan(date) {
        return this.addConstraint(dateGreaterThan(new Date(date)));
      }
      greaterThanOrEqual(date) {
        return this.addConstraint(dateGreaterThanOrEqual(new Date(date)));
      }
      equal(date) {
        const resolved = new Date(date);
        return Number.isNaN(resolved.getTime()) ? this.invalid : this.addConstraint(dateEqual(resolved));
      }
      notEqual(date) {
        const resolved = new Date(date);
        return Number.isNaN(resolved.getTime()) ? this.valid : this.addConstraint(dateNotEqual(resolved));
      }
      get valid() {
        return this.addConstraint(dateValid);
      }
      get invalid() {
        return this.addConstraint(dateInvalid);
      }
      handle(value) {
        return value instanceof Date ? Result.ok(value) : Result.err(new ValidationError("s.date", "Expected a Date", value));
      }
    };
    __name2(_DateValidator, "DateValidator");
    var DateValidator = _DateValidator;
    var _ExpectedValidationError = class _ExpectedValidationError extends ValidationError {
      constructor(validator, message, given, expected) {
        super(validator, message, given);
        this.expected = expected;
      }
      toJSON() {
        return {
          name: this.name,
          validator: this.validator,
          given: this.given,
          expected: this.expected
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const validator = options.stylize(this.validator, "string");
        if (depth < 0) {
          return options.stylize(`[ExpectedValidationError: ${validator}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const expected = inspect2(this.expected, newOptions).replace(/\n/g, padding);
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header2 = `${options.stylize("ExpectedValidationError", "special")} > ${validator}`;
        const message = options.stylize(this.message, "regexp");
        const expectedBlock = `
  ${options.stylize("Expected:", "string")}${padding}${expected}`;
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header2}
  ${message}
${expectedBlock}
${givenBlock}`;
      }
    };
    __name2(_ExpectedValidationError, "ExpectedValidationError");
    var ExpectedValidationError = _ExpectedValidationError;
    var _InstanceValidator = class _InstanceValidator extends BaseValidator {
      constructor(expected, constraints = []) {
        super(constraints);
        this.expected = expected;
      }
      handle(value) {
        return value instanceof this.expected ? Result.ok(value) : Result.err(new ExpectedValidationError("s.instance(V)", "Expected", value, this.expected));
      }
      clone() {
        return Reflect.construct(this.constructor, [this.expected, this.constraints]);
      }
    };
    __name2(_InstanceValidator, "InstanceValidator");
    var InstanceValidator = _InstanceValidator;
    var _LiteralValidator = class _LiteralValidator extends BaseValidator {
      constructor(literal2, constraints = []) {
        super(constraints);
        this.expected = literal2;
      }
      handle(value) {
        return Object.is(value, this.expected) ? Result.ok(value) : Result.err(new ExpectedValidationError("s.literal(V)", "Expected values to be equals", value, this.expected));
      }
      clone() {
        return Reflect.construct(this.constructor, [this.expected, this.constraints]);
      }
    };
    __name2(_LiteralValidator, "LiteralValidator");
    var LiteralValidator = _LiteralValidator;
    var _NeverValidator = class _NeverValidator extends BaseValidator {
      handle(value) {
        return Result.err(new ValidationError("s.never", "Expected a value to not be passed", value));
      }
    };
    __name2(_NeverValidator, "NeverValidator");
    var NeverValidator = _NeverValidator;
    var _NullishValidator = class _NullishValidator extends BaseValidator {
      handle(value) {
        return value === void 0 || value === null ? Result.ok(value) : Result.err(new ValidationError("s.nullish", "Expected undefined or null", value));
      }
    };
    __name2(_NullishValidator, "NullishValidator");
    var NullishValidator = _NullishValidator;
    function numberComparator(comparator, name2, expected, number) {
      return {
        run(input) {
          return comparator(input, number) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, "Invalid number value", input, expected));
        }
      };
    }
    __name2(numberComparator, "numberComparator");
    function numberLessThan(value) {
      const expected = `expected < ${value}`;
      return numberComparator(lessThan, "s.number.lessThan", expected, value);
    }
    __name2(numberLessThan, "numberLessThan");
    function numberLessThanOrEqual(value) {
      const expected = `expected <= ${value}`;
      return numberComparator(lessThanOrEqual, "s.number.lessThanOrEqual", expected, value);
    }
    __name2(numberLessThanOrEqual, "numberLessThanOrEqual");
    function numberGreaterThan(value) {
      const expected = `expected > ${value}`;
      return numberComparator(greaterThan, "s.number.greaterThan", expected, value);
    }
    __name2(numberGreaterThan, "numberGreaterThan");
    function numberGreaterThanOrEqual(value) {
      const expected = `expected >= ${value}`;
      return numberComparator(greaterThanOrEqual, "s.number.greaterThanOrEqual", expected, value);
    }
    __name2(numberGreaterThanOrEqual, "numberGreaterThanOrEqual");
    function numberEqual(value) {
      const expected = `expected === ${value}`;
      return numberComparator(equal, "s.number.equal", expected, value);
    }
    __name2(numberEqual, "numberEqual");
    function numberNotEqual(value) {
      const expected = `expected !== ${value}`;
      return numberComparator(notEqual, "s.number.notEqual", expected, value);
    }
    __name2(numberNotEqual, "numberNotEqual");
    var numberInt = {
      run(input) {
        return Number.isInteger(input) ? Result.ok(input) : Result.err(
          new ExpectedConstraintError("s.number.int", "Given value is not an integer", input, "Number.isInteger(expected) to be true")
        );
      }
    };
    var numberSafeInt = {
      run(input) {
        return Number.isSafeInteger(input) ? Result.ok(input) : Result.err(
          new ExpectedConstraintError(
            "s.number.safeInt",
            "Given value is not a safe integer",
            input,
            "Number.isSafeInteger(expected) to be true"
          )
        );
      }
    };
    var numberFinite = {
      run(input) {
        return Number.isFinite(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.finite", "Given value is not finite", input, "Number.isFinite(expected) to be true"));
      }
    };
    var numberNaN = {
      run(input) {
        return Number.isNaN(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.equal(NaN)", "Invalid number value", input, "expected === NaN"));
      }
    };
    var numberNotNaN = {
      run(input) {
        return Number.isNaN(input) ? Result.err(new ExpectedConstraintError("s.number.notEqual(NaN)", "Invalid number value", input, "expected !== NaN")) : Result.ok(input);
      }
    };
    function numberDivisibleBy(divider) {
      const expected = `expected % ${divider} === 0`;
      return {
        run(input) {
          return input % divider === 0 ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.divisibleBy", "Number is not divisible", input, expected));
        }
      };
    }
    __name2(numberDivisibleBy, "numberDivisibleBy");
    var _NumberValidator = class _NumberValidator extends BaseValidator {
      lessThan(number) {
        return this.addConstraint(numberLessThan(number));
      }
      lessThanOrEqual(number) {
        return this.addConstraint(numberLessThanOrEqual(number));
      }
      greaterThan(number) {
        return this.addConstraint(numberGreaterThan(number));
      }
      greaterThanOrEqual(number) {
        return this.addConstraint(numberGreaterThanOrEqual(number));
      }
      equal(number) {
        return Number.isNaN(number) ? this.addConstraint(numberNaN) : this.addConstraint(numberEqual(number));
      }
      notEqual(number) {
        return Number.isNaN(number) ? this.addConstraint(numberNotNaN) : this.addConstraint(numberNotEqual(number));
      }
      get int() {
        return this.addConstraint(numberInt);
      }
      get safeInt() {
        return this.addConstraint(numberSafeInt);
      }
      get finite() {
        return this.addConstraint(numberFinite);
      }
      get positive() {
        return this.greaterThanOrEqual(0);
      }
      get negative() {
        return this.lessThan(0);
      }
      divisibleBy(divider) {
        return this.addConstraint(numberDivisibleBy(divider));
      }
      get abs() {
        return this.transform(Math.abs);
      }
      get sign() {
        return this.transform(Math.sign);
      }
      get trunc() {
        return this.transform(Math.trunc);
      }
      get floor() {
        return this.transform(Math.floor);
      }
      get fround() {
        return this.transform(Math.fround);
      }
      get round() {
        return this.transform(Math.round);
      }
      get ceil() {
        return this.transform(Math.ceil);
      }
      handle(value) {
        return typeof value === "number" ? Result.ok(value) : Result.err(new ValidationError("s.number", "Expected a number primitive", value));
      }
    };
    __name2(_NumberValidator, "NumberValidator");
    var NumberValidator = _NumberValidator;
    var _MissingPropertyError = class _MissingPropertyError extends BaseError {
      constructor(property) {
        super("A required property is missing");
        this.property = property;
      }
      toJSON() {
        return {
          name: this.name,
          property: this.property
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const property = options.stylize(this.property.toString(), "string");
        if (depth < 0) {
          return options.stylize(`[MissingPropertyError: ${property}]`, "special");
        }
        const header2 = `${options.stylize("MissingPropertyError", "special")} > ${property}`;
        const message = options.stylize(this.message, "regexp");
        return `${header2}
  ${message}`;
      }
    };
    __name2(_MissingPropertyError, "MissingPropertyError");
    var MissingPropertyError = _MissingPropertyError;
    var _UnknownPropertyError = class _UnknownPropertyError extends BaseError {
      constructor(property, value) {
        super("Received unexpected property");
        this.property = property;
        this.value = value;
      }
      toJSON() {
        return {
          name: this.name,
          property: this.property,
          value: this.value
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const property = options.stylize(this.property.toString(), "string");
        if (depth < 0) {
          return options.stylize(`[UnknownPropertyError: ${property}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const given = inspect2(this.value, newOptions).replace(/\n/g, padding);
        const header2 = `${options.stylize("UnknownPropertyError", "special")} > ${property}`;
        const message = options.stylize(this.message, "regexp");
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header2}
  ${message}
${givenBlock}`;
      }
    };
    __name2(_UnknownPropertyError, "UnknownPropertyError");
    var UnknownPropertyError = _UnknownPropertyError;
    var _DefaultValidator = class _DefaultValidator extends BaseValidator {
      constructor(validator, value, constraints = []) {
        super(constraints);
        this.validator = validator;
        this.defaultValue = value;
      }
      default(value) {
        const clone = this.clone();
        clone.defaultValue = value;
        return clone;
      }
      handle(value) {
        return typeof value === "undefined" ? Result.ok(getValue(this.defaultValue)) : this.validator["handle"](value);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.defaultValue, this.constraints]);
      }
    };
    __name2(_DefaultValidator, "DefaultValidator");
    var DefaultValidator = _DefaultValidator;
    var _CombinedError = class _CombinedError extends BaseError {
      constructor(errors) {
        super("Received one or more errors");
        this.errors = errors;
      }
      [customInspectSymbolStackLess](depth, options) {
        if (depth < 0) {
          return options.stylize("[CombinedError]", "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true };
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const header2 = `${options.stylize("CombinedError", "special")} (${options.stylize(this.errors.length.toString(), "number")})`;
        const message = options.stylize(this.message, "regexp");
        const errors = this.errors.map((error, i3) => {
          const index = options.stylize((i3 + 1).toString(), "number");
          const body = error[customInspectSymbolStackLess](depth - 1, newOptions).replace(/\n/g, padding);
          return `  ${index} ${body}`;
        }).join("\n\n");
        return `${header2}
  ${message}

${errors}`;
      }
    };
    __name2(_CombinedError, "CombinedError");
    var CombinedError = _CombinedError;
    var _UnionValidator = class _UnionValidator2 extends BaseValidator {
      constructor(validators4, constraints = []) {
        super(constraints);
        this.validators = validators4;
      }
      get optional() {
        if (this.validators.length === 0)
          return new _UnionValidator2([new LiteralValidator(void 0)], this.constraints);
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === void 0)
            return this.clone();
          if (validator.expected === null) {
            return new _UnionValidator2(
              [new NullishValidator(), ...this.validators.slice(1)],
              this.constraints
            );
          }
        } else if (validator instanceof NullishValidator) {
          return this.clone();
        }
        return new _UnionValidator2([new LiteralValidator(void 0), ...this.validators]);
      }
      get required() {
        if (this.validators.length === 0)
          return this.clone();
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === void 0)
            return new _UnionValidator2(this.validators.slice(1), this.constraints);
        } else if (validator instanceof NullishValidator) {
          return new _UnionValidator2([new LiteralValidator(null), ...this.validators.slice(1)], this.constraints);
        }
        return this.clone();
      }
      get nullable() {
        if (this.validators.length === 0)
          return new _UnionValidator2([new LiteralValidator(null)], this.constraints);
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === null)
            return this.clone();
          if (validator.expected === void 0) {
            return new _UnionValidator2(
              [new NullishValidator(), ...this.validators.slice(1)],
              this.constraints
            );
          }
        } else if (validator instanceof NullishValidator) {
          return this.clone();
        }
        return new _UnionValidator2([new LiteralValidator(null), ...this.validators]);
      }
      get nullish() {
        if (this.validators.length === 0)
          return new _UnionValidator2([new NullishValidator()], this.constraints);
        const [validator] = this.validators;
        if (validator instanceof LiteralValidator) {
          if (validator.expected === null || validator.expected === void 0) {
            return new _UnionValidator2([new NullishValidator(), ...this.validators.slice(1)], this.constraints);
          }
        } else if (validator instanceof NullishValidator) {
          return this.clone();
        }
        return new _UnionValidator2([new NullishValidator(), ...this.validators]);
      }
      or(...predicates3) {
        return new _UnionValidator2([...this.validators, ...predicates3]);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validators, this.constraints]);
      }
      handle(value) {
        const errors = [];
        for (const validator of this.validators) {
          const result = validator.run(value);
          if (result.isOk())
            return result;
          errors.push(result.error);
        }
        return Result.err(new CombinedError(errors));
      }
    };
    __name2(_UnionValidator, "UnionValidator");
    var UnionValidator = _UnionValidator;
    var _ObjectValidator = class _ObjectValidator2 extends BaseValidator {
      constructor(shape, strategy = 0, constraints = []) {
        super(constraints);
        this.keys = [];
        this.requiredKeys = /* @__PURE__ */ new Map();
        this.possiblyUndefinedKeys = /* @__PURE__ */ new Map();
        this.possiblyUndefinedKeysWithDefaults = /* @__PURE__ */ new Map();
        this.shape = shape;
        this.strategy = strategy;
        switch (this.strategy) {
          case 0:
            this.handleStrategy = (value) => this.handleIgnoreStrategy(value);
            break;
          case 1: {
            this.handleStrategy = (value) => this.handleStrictStrategy(value);
            break;
          }
          case 2:
            this.handleStrategy = (value) => this.handlePassthroughStrategy(value);
            break;
        }
        const shapeEntries = Object.entries(shape);
        this.keys = shapeEntries.map(([key]) => key);
        for (const [key, validator] of shapeEntries) {
          if (validator instanceof UnionValidator) {
            const [possiblyLiteralOrNullishPredicate] = validator["validators"];
            if (possiblyLiteralOrNullishPredicate instanceof NullishValidator) {
              this.possiblyUndefinedKeys.set(key, validator);
            } else if (possiblyLiteralOrNullishPredicate instanceof LiteralValidator) {
              if (possiblyLiteralOrNullishPredicate.expected === void 0) {
                this.possiblyUndefinedKeys.set(key, validator);
              } else {
                this.requiredKeys.set(key, validator);
              }
            } else if (validator instanceof DefaultValidator) {
              this.possiblyUndefinedKeysWithDefaults.set(key, validator);
            } else {
              this.requiredKeys.set(key, validator);
            }
          } else if (validator instanceof NullishValidator) {
            this.possiblyUndefinedKeys.set(key, validator);
          } else if (validator instanceof LiteralValidator) {
            if (validator.expected === void 0) {
              this.possiblyUndefinedKeys.set(key, validator);
            } else {
              this.requiredKeys.set(key, validator);
            }
          } else if (validator instanceof DefaultValidator) {
            this.possiblyUndefinedKeysWithDefaults.set(key, validator);
          } else {
            this.requiredKeys.set(key, validator);
          }
        }
      }
      get strict() {
        return Reflect.construct(this.constructor, [this.shape, 1, this.constraints]);
      }
      get ignore() {
        return Reflect.construct(this.constructor, [this.shape, 0, this.constraints]);
      }
      get passthrough() {
        return Reflect.construct(this.constructor, [this.shape, 2, this.constraints]);
      }
      get partial() {
        const shape = Object.fromEntries(this.keys.map((key) => [key, this.shape[key].optional]));
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      get required() {
        const shape = Object.fromEntries(
          this.keys.map((key) => {
            let validator = this.shape[key];
            if (validator instanceof UnionValidator)
              validator = validator.required;
            return [key, validator];
          })
        );
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      extend(schema) {
        const shape = { ...this.shape, ...schema instanceof _ObjectValidator2 ? schema.shape : schema };
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      pick(keys) {
        const shape = Object.fromEntries(
          keys.filter((key) => this.keys.includes(key)).map((key) => [key, this.shape[key]])
        );
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      omit(keys) {
        const shape = Object.fromEntries(
          this.keys.filter((key) => !keys.includes(key)).map((key) => [key, this.shape[key]])
        );
        return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]);
      }
      handle(value) {
        const typeOfValue = typeof value;
        if (typeOfValue !== "object") {
          return Result.err(new ValidationError("s.object(T)", `Expected the value to be an object, but received ${typeOfValue} instead`, value));
        }
        if (value === null) {
          return Result.err(new ValidationError("s.object(T)", "Expected the value to not be null", value));
        }
        if (Array.isArray(value)) {
          return Result.err(new ValidationError("s.object(T)", "Expected the value to not be an array", value));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(value);
        }
        for (const predicate of Object.values(this.shape)) {
          predicate.setParent(this.parent ?? value);
        }
        return this.handleStrategy(value);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.shape, this.strategy, this.constraints]);
      }
      handleIgnoreStrategy(value) {
        const errors = [];
        const finalObject = {};
        const inputEntries = new Map(Object.entries(value));
        const runPredicate = /* @__PURE__ */ __name2((key, predicate) => {
          const result = predicate.run(value[key]);
          if (result.isOk()) {
            finalObject[key] = result.value;
          } else {
            const error = result.error;
            errors.push([key, error]);
          }
        }, "runPredicate");
        for (const [key, predicate] of this.requiredKeys) {
          if (inputEntries.delete(key)) {
            runPredicate(key, predicate);
          } else {
            errors.push([key, new MissingPropertyError(key)]);
          }
        }
        for (const [key, validator] of this.possiblyUndefinedKeysWithDefaults) {
          inputEntries.delete(key);
          runPredicate(key, validator);
        }
        if (inputEntries.size === 0) {
          return errors.length === 0 ? Result.ok(finalObject) : Result.err(new CombinedPropertyError(errors));
        }
        const checkInputEntriesInsteadOfSchemaKeys = this.possiblyUndefinedKeys.size > inputEntries.size;
        if (checkInputEntriesInsteadOfSchemaKeys) {
          for (const [key] of inputEntries) {
            const predicate = this.possiblyUndefinedKeys.get(key);
            if (predicate) {
              runPredicate(key, predicate);
            }
          }
        } else {
          for (const [key, predicate] of this.possiblyUndefinedKeys) {
            if (inputEntries.delete(key)) {
              runPredicate(key, predicate);
            }
          }
        }
        return errors.length === 0 ? Result.ok(finalObject) : Result.err(new CombinedPropertyError(errors));
      }
      handleStrictStrategy(value) {
        const errors = [];
        const finalResult = {};
        const inputEntries = new Map(Object.entries(value));
        const runPredicate = /* @__PURE__ */ __name2((key, predicate) => {
          const result = predicate.run(value[key]);
          if (result.isOk()) {
            finalResult[key] = result.value;
          } else {
            const error = result.error;
            errors.push([key, error]);
          }
        }, "runPredicate");
        for (const [key, predicate] of this.requiredKeys) {
          if (inputEntries.delete(key)) {
            runPredicate(key, predicate);
          } else {
            errors.push([key, new MissingPropertyError(key)]);
          }
        }
        for (const [key, validator] of this.possiblyUndefinedKeysWithDefaults) {
          inputEntries.delete(key);
          runPredicate(key, validator);
        }
        for (const [key, predicate] of this.possiblyUndefinedKeys) {
          if (inputEntries.size === 0) {
            break;
          }
          if (inputEntries.delete(key)) {
            runPredicate(key, predicate);
          }
        }
        if (inputEntries.size !== 0) {
          for (const [key, value2] of inputEntries.entries()) {
            errors.push([key, new UnknownPropertyError(key, value2)]);
          }
        }
        return errors.length === 0 ? Result.ok(finalResult) : Result.err(new CombinedPropertyError(errors));
      }
      handlePassthroughStrategy(value) {
        const result = this.handleIgnoreStrategy(value);
        return result.isErr() ? result : Result.ok({ ...value, ...result.value });
      }
    };
    __name2(_ObjectValidator, "ObjectValidator");
    var ObjectValidator = _ObjectValidator;
    var _PassthroughValidator = class _PassthroughValidator extends BaseValidator {
      handle(value) {
        return Result.ok(value);
      }
    };
    __name2(_PassthroughValidator, "PassthroughValidator");
    var PassthroughValidator = _PassthroughValidator;
    var _RecordValidator = class _RecordValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(value) {
        if (typeof value !== "object") {
          return Result.err(new ValidationError("s.record(T)", "Expected an object", value));
        }
        if (value === null) {
          return Result.err(new ValidationError("s.record(T)", "Expected the value to not be null", value));
        }
        if (Array.isArray(value)) {
          return Result.err(new ValidationError("s.record(T)", "Expected the value to not be an array", value));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(value);
        }
        const errors = [];
        const transformed = {};
        for (const [key, val] of Object.entries(value)) {
          const result = this.validator.run(val);
          if (result.isOk())
            transformed[key] = result.value;
          else
            errors.push([key, result.error]);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_RecordValidator, "RecordValidator");
    var RecordValidator = _RecordValidator;
    var _SetValidator = class _SetValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(values) {
        if (!(values instanceof Set)) {
          return Result.err(new ValidationError("s.set(T)", "Expected a set", values));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(values);
        }
        const errors = [];
        const transformed = /* @__PURE__ */ new Set();
        for (const value of values) {
          const result = this.validator.run(value);
          if (result.isOk())
            transformed.add(result.value);
          else
            errors.push(result.error);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedError(errors));
      }
    };
    __name2(_SetValidator, "SetValidator");
    var SetValidator = _SetValidator;
    var accountRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]$/i;
    function validateEmail(email) {
      if (!email)
        return false;
      const atIndex = email.indexOf("@");
      if (atIndex === -1)
        return false;
      if (atIndex > 64)
        return false;
      const domainIndex = atIndex + 1;
      if (email.includes("@", domainIndex))
        return false;
      if (email.length - domainIndex > 255)
        return false;
      let dotIndex = email.indexOf(".", domainIndex);
      if (dotIndex === -1)
        return false;
      let lastDotIndex = domainIndex;
      do {
        if (dotIndex - lastDotIndex > 63)
          return false;
        lastDotIndex = dotIndex + 1;
      } while ((dotIndex = email.indexOf(".", lastDotIndex)) !== -1);
      if (email.length - lastDotIndex > 63)
        return false;
      return accountRegex.test(email.slice(0, atIndex)) && validateEmailDomain(email.slice(domainIndex));
    }
    __name2(validateEmail, "validateEmail");
    function validateEmailDomain(domain) {
      try {
        return new URL(`http://${domain}`).hostname === domain;
      } catch {
        return false;
      }
    }
    __name2(validateEmailDomain, "validateEmailDomain");
    var v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
    var v4Str = `(${v4Seg}[.]){3}${v4Seg}`;
    var IPv4Reg = new RegExp(`^${v4Str}$`);
    var v6Seg = "(?:[0-9a-fA-F]{1,4})";
    var IPv6Reg = new RegExp(
      `^((?:${v6Seg}:){7}(?:${v6Seg}|:)|(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$`
    );
    function isIPv4(s4) {
      return IPv4Reg.test(s4);
    }
    __name2(isIPv4, "isIPv4");
    function isIPv63(s4) {
      return IPv6Reg.test(s4);
    }
    __name2(isIPv63, "isIPv6");
    function isIP(s4) {
      if (isIPv4(s4))
        return 4;
      if (isIPv63(s4))
        return 6;
      return 0;
    }
    __name2(isIP, "isIP");
    var phoneNumberRegex = /^((?:\+|0{0,2})\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
    function validatePhoneNumber(input) {
      return phoneNumberRegex.test(input);
    }
    __name2(validatePhoneNumber, "validatePhoneNumber");
    var _MultiplePossibilitiesConstraintError = class _MultiplePossibilitiesConstraintError extends BaseConstraintError {
      constructor(constraint, message, given, expected) {
        super(constraint, message, given);
        this.expected = expected;
      }
      toJSON() {
        return {
          name: this.name,
          constraint: this.constraint,
          given: this.given,
          expected: this.expected
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const constraint = options.stylize(this.constraint, "string");
        if (depth < 0) {
          return options.stylize(`[MultiplePossibilitiesConstraintError: ${constraint}]`, "special");
        }
        const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 };
        const verticalLine = options.stylize("|", "undefined");
        const padding = `
  ${verticalLine} `;
        const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
        const header2 = `${options.stylize("MultiplePossibilitiesConstraintError", "special")} > ${constraint}`;
        const message = options.stylize(this.message, "regexp");
        const expectedPadding = `
  ${verticalLine} - `;
        const expectedBlock = `
  ${options.stylize("Expected any of the following:", "string")}${expectedPadding}${this.expected.map((possible) => options.stylize(possible, "boolean")).join(expectedPadding)}`;
        const givenBlock = `
  ${options.stylize("Received:", "regexp")}${padding}${given}`;
        return `${header2}
  ${message}
${expectedBlock}
${givenBlock}`;
      }
    };
    __name2(_MultiplePossibilitiesConstraintError, "MultiplePossibilitiesConstraintError");
    var MultiplePossibilitiesConstraintError = _MultiplePossibilitiesConstraintError;
    function combinedErrorFn(...fns) {
      switch (fns.length) {
        case 0:
          return () => null;
        case 1:
          return fns[0];
        case 2: {
          const [fn0, fn1] = fns;
          return (...params) => fn0(...params) || fn1(...params);
        }
        default: {
          return (...params) => {
            for (const fn3 of fns) {
              const result = fn3(...params);
              if (result)
                return result;
            }
            return null;
          };
        }
      }
    }
    __name2(combinedErrorFn, "combinedErrorFn");
    function createUrlValidators(options) {
      const fns = [];
      if (options?.allowedProtocols?.length)
        fns.push(allowedProtocolsFn(options.allowedProtocols));
      if (options?.allowedDomains?.length)
        fns.push(allowedDomainsFn(options.allowedDomains));
      return combinedErrorFn(...fns);
    }
    __name2(createUrlValidators, "createUrlValidators");
    function allowedProtocolsFn(allowedProtocols) {
      return (input, url2) => allowedProtocols.includes(url2.protocol) ? null : new MultiplePossibilitiesConstraintError("s.string.url", "Invalid URL protocol", input, allowedProtocols);
    }
    __name2(allowedProtocolsFn, "allowedProtocolsFn");
    function allowedDomainsFn(allowedDomains) {
      return (input, url2) => allowedDomains.includes(url2.hostname) ? null : new MultiplePossibilitiesConstraintError("s.string.url", "Invalid URL domain", input, allowedDomains);
    }
    __name2(allowedDomainsFn, "allowedDomainsFn");
    function stringLengthComparator(comparator, name2, expected, length) {
      return {
        run(input) {
          return comparator(input.length, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, "Invalid string length", input, expected));
        }
      };
    }
    __name2(stringLengthComparator, "stringLengthComparator");
    function stringLengthLessThan(length) {
      const expected = `expected.length < ${length}`;
      return stringLengthComparator(lessThan, "s.string.lengthLessThan", expected, length);
    }
    __name2(stringLengthLessThan, "stringLengthLessThan");
    function stringLengthLessThanOrEqual(length) {
      const expected = `expected.length <= ${length}`;
      return stringLengthComparator(lessThanOrEqual, "s.string.lengthLessThanOrEqual", expected, length);
    }
    __name2(stringLengthLessThanOrEqual, "stringLengthLessThanOrEqual");
    function stringLengthGreaterThan(length) {
      const expected = `expected.length > ${length}`;
      return stringLengthComparator(greaterThan, "s.string.lengthGreaterThan", expected, length);
    }
    __name2(stringLengthGreaterThan, "stringLengthGreaterThan");
    function stringLengthGreaterThanOrEqual(length) {
      const expected = `expected.length >= ${length}`;
      return stringLengthComparator(greaterThanOrEqual, "s.string.lengthGreaterThanOrEqual", expected, length);
    }
    __name2(stringLengthGreaterThanOrEqual, "stringLengthGreaterThanOrEqual");
    function stringLengthEqual(length) {
      const expected = `expected.length === ${length}`;
      return stringLengthComparator(equal, "s.string.lengthEqual", expected, length);
    }
    __name2(stringLengthEqual, "stringLengthEqual");
    function stringLengthNotEqual(length) {
      const expected = `expected.length !== ${length}`;
      return stringLengthComparator(notEqual, "s.string.lengthNotEqual", expected, length);
    }
    __name2(stringLengthNotEqual, "stringLengthNotEqual");
    function stringEmail() {
      return {
        run(input) {
          return validateEmail(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.string.email", "Invalid email address", input, "expected to be an email address"));
        }
      };
    }
    __name2(stringEmail, "stringEmail");
    function stringRegexValidator(type, expected, regex) {
      return {
        run(input) {
          return regex.test(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError(type, "Invalid string format", input, expected));
        }
      };
    }
    __name2(stringRegexValidator, "stringRegexValidator");
    function stringUrl(options) {
      const validatorFn = createUrlValidators(options);
      return {
        run(input) {
          let url2;
          try {
            url2 = new URL(input);
          } catch {
            return Result.err(new ExpectedConstraintError("s.string.url", "Invalid URL", input, "expected to match a URL"));
          }
          const validatorFnResult = validatorFn(input, url2);
          if (validatorFnResult === null)
            return Result.ok(input);
          return Result.err(validatorFnResult);
        }
      };
    }
    __name2(stringUrl, "stringUrl");
    function stringIp(version) {
      const ipVersion = version ? `v${version}` : "";
      const validatorFn = version === 4 ? isIPv4 : version === 6 ? isIPv63 : isIP;
      const name2 = `s.string.ip${ipVersion}`;
      const message = `Invalid IP${ipVersion} address`;
      const expected = `expected to be an IP${ipVersion} address`;
      return {
        run(input) {
          return validatorFn(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, message, input, expected));
        }
      };
    }
    __name2(stringIp, "stringIp");
    function stringRegex(regex) {
      return stringRegexValidator("s.string.regex", `expected ${regex}.test(expected) to be true`, regex);
    }
    __name2(stringRegex, "stringRegex");
    function stringUuid({ version = 4, nullable = false } = {}) {
      version ?? (version = "1-5");
      const regex = new RegExp(
        `^(?:[0-9A-F]{8}-[0-9A-F]{4}-[${version}][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}${nullable ? "|00000000-0000-0000-0000-000000000000" : ""})$`,
        "i"
      );
      const expected = `expected to match UUID${typeof version === "number" ? `v${version}` : ` in range of ${version}`}`;
      return stringRegexValidator("s.string.uuid", expected, regex);
    }
    __name2(stringUuid, "stringUuid");
    function stringDate() {
      return {
        run(input) {
          const time = Date.parse(input);
          return Number.isNaN(time) ? Result.err(
            new ExpectedConstraintError(
              "s.string.date",
              "Invalid date string",
              input,
              "expected to be a valid date string (in the ISO 8601 or ECMA-262 format)"
            )
          ) : Result.ok(input);
        }
      };
    }
    __name2(stringDate, "stringDate");
    function stringPhone() {
      return {
        run(input) {
          return validatePhoneNumber(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.string.phone", "Invalid phone number", input, "expected to be a phone number"));
        }
      };
    }
    __name2(stringPhone, "stringPhone");
    var _StringValidator = class _StringValidator extends BaseValidator {
      lengthLessThan(length) {
        return this.addConstraint(stringLengthLessThan(length));
      }
      lengthLessThanOrEqual(length) {
        return this.addConstraint(stringLengthLessThanOrEqual(length));
      }
      lengthGreaterThan(length) {
        return this.addConstraint(stringLengthGreaterThan(length));
      }
      lengthGreaterThanOrEqual(length) {
        return this.addConstraint(stringLengthGreaterThanOrEqual(length));
      }
      lengthEqual(length) {
        return this.addConstraint(stringLengthEqual(length));
      }
      lengthNotEqual(length) {
        return this.addConstraint(stringLengthNotEqual(length));
      }
      get email() {
        return this.addConstraint(stringEmail());
      }
      url(options) {
        return this.addConstraint(stringUrl(options));
      }
      uuid(options) {
        return this.addConstraint(stringUuid(options));
      }
      regex(regex) {
        return this.addConstraint(stringRegex(regex));
      }
      get date() {
        return this.addConstraint(stringDate());
      }
      get ipv4() {
        return this.ip(4);
      }
      get ipv6() {
        return this.ip(6);
      }
      ip(version) {
        return this.addConstraint(stringIp(version));
      }
      phone() {
        return this.addConstraint(stringPhone());
      }
      handle(value) {
        return typeof value === "string" ? Result.ok(value) : Result.err(new ValidationError("s.string", "Expected a string primitive", value));
      }
    };
    __name2(_StringValidator, "StringValidator");
    var StringValidator = _StringValidator;
    var _TupleValidator = class _TupleValidator extends BaseValidator {
      constructor(validators4, constraints = []) {
        super(constraints);
        this.validators = [];
        this.validators = validators4;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validators, this.constraints]);
      }
      handle(values) {
        if (!Array.isArray(values)) {
          return Result.err(new ValidationError("s.tuple(T)", "Expected an array", values));
        }
        if (values.length !== this.validators.length) {
          return Result.err(new ValidationError("s.tuple(T)", `Expected an array of length ${this.validators.length}`, values));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(values);
        }
        const errors = [];
        const transformed = [];
        for (let i3 = 0; i3 < values.length; i3++) {
          const result = this.validators[i3].run(values[i3]);
          if (result.isOk())
            transformed.push(result.value);
          else
            errors.push([i3, result.error]);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_TupleValidator, "TupleValidator");
    var TupleValidator = _TupleValidator;
    var _MapValidator = class _MapValidator extends BaseValidator {
      constructor(keyValidator, valueValidator, constraints = []) {
        super(constraints);
        this.keyValidator = keyValidator;
        this.valueValidator = valueValidator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.keyValidator, this.valueValidator, this.constraints]);
      }
      handle(value) {
        if (!(value instanceof Map)) {
          return Result.err(new ValidationError("s.map(K, V)", "Expected a map", value));
        }
        if (!this.shouldRunConstraints) {
          return Result.ok(value);
        }
        const errors = [];
        const transformed = /* @__PURE__ */ new Map();
        for (const [key, val] of value.entries()) {
          const keyResult = this.keyValidator.run(key);
          const valueResult = this.valueValidator.run(val);
          const { length } = errors;
          if (keyResult.isErr())
            errors.push([key, keyResult.error]);
          if (valueResult.isErr())
            errors.push([key, valueResult.error]);
          if (errors.length === length)
            transformed.set(keyResult.value, valueResult.value);
        }
        return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors));
      }
    };
    __name2(_MapValidator, "MapValidator");
    var MapValidator = _MapValidator;
    var _LazyValidator = class _LazyValidator extends BaseValidator {
      constructor(validator, constraints = []) {
        super(constraints);
        this.validator = validator;
      }
      clone() {
        return Reflect.construct(this.constructor, [this.validator, this.constraints]);
      }
      handle(values) {
        return this.validator(values).run(values);
      }
    };
    __name2(_LazyValidator, "LazyValidator");
    var LazyValidator = _LazyValidator;
    var _UnknownEnumValueError = class _UnknownEnumValueError extends BaseError {
      constructor(value, keys, enumMappings) {
        super("Expected the value to be one of the following enum values:");
        this.value = value;
        this.enumKeys = keys;
        this.enumMappings = enumMappings;
      }
      toJSON() {
        return {
          name: this.name,
          value: this.value,
          enumKeys: this.enumKeys,
          enumMappings: [...this.enumMappings.entries()]
        };
      }
      [customInspectSymbolStackLess](depth, options) {
        const value = options.stylize(this.value.toString(), "string");
        if (depth < 0) {
          return options.stylize(`[UnknownEnumValueError: ${value}]`, "special");
        }
        const padding = `
  ${options.stylize("|", "undefined")} `;
        const pairs = this.enumKeys.map((key) => {
          const enumValue = this.enumMappings.get(key);
          return `${options.stylize(key, "string")} or ${options.stylize(
            enumValue.toString(),
            typeof enumValue === "number" ? "number" : "string"
          )}`;
        }).join(padding);
        const header2 = `${options.stylize("UnknownEnumValueError", "special")} > ${value}`;
        const message = options.stylize(this.message, "regexp");
        const pairsBlock = `${padding}${pairs}`;
        return `${header2}
  ${message}
${pairsBlock}`;
      }
    };
    __name2(_UnknownEnumValueError, "UnknownEnumValueError");
    var UnknownEnumValueError = _UnknownEnumValueError;
    var _NativeEnumValidator = class _NativeEnumValidator extends BaseValidator {
      constructor(enumShape) {
        super();
        this.hasNumericElements = false;
        this.enumMapping = /* @__PURE__ */ new Map();
        this.enumShape = enumShape;
        this.enumKeys = Object.keys(enumShape).filter((key) => {
          return typeof enumShape[enumShape[key]] !== "number";
        });
        for (const key of this.enumKeys) {
          const enumValue = enumShape[key];
          this.enumMapping.set(key, enumValue);
          this.enumMapping.set(enumValue, enumValue);
          if (typeof enumValue === "number") {
            this.hasNumericElements = true;
            this.enumMapping.set(`${enumValue}`, enumValue);
          }
        }
      }
      handle(value) {
        const typeOfValue = typeof value;
        if (typeOfValue === "number") {
          if (!this.hasNumericElements) {
            return Result.err(new ValidationError("s.nativeEnum(T)", "Expected the value to be a string", value));
          }
        } else if (typeOfValue !== "string") {
          return Result.err(new ValidationError("s.nativeEnum(T)", "Expected the value to be a string or number", value));
        }
        const casted = value;
        const possibleEnumValue = this.enumMapping.get(casted);
        return typeof possibleEnumValue === "undefined" ? Result.err(new UnknownEnumValueError(casted, this.enumKeys, this.enumMapping)) : Result.ok(possibleEnumValue);
      }
      clone() {
        return Reflect.construct(this.constructor, [this.enumShape]);
      }
    };
    __name2(_NativeEnumValidator, "NativeEnumValidator");
    var NativeEnumValidator = _NativeEnumValidator;
    function typedArrayByteLengthComparator(comparator, name2, expected, length) {
      return {
        run(input) {
          return comparator(input.byteLength, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, "Invalid Typed Array byte length", input, expected));
        }
      };
    }
    __name2(typedArrayByteLengthComparator, "typedArrayByteLengthComparator");
    function typedArrayByteLengthLessThan(value) {
      const expected = `expected.byteLength < ${value}`;
      return typedArrayByteLengthComparator(lessThan, "s.typedArray(T).byteLengthLessThan", expected, value);
    }
    __name2(typedArrayByteLengthLessThan, "typedArrayByteLengthLessThan");
    function typedArrayByteLengthLessThanOrEqual(value) {
      const expected = `expected.byteLength <= ${value}`;
      return typedArrayByteLengthComparator(lessThanOrEqual, "s.typedArray(T).byteLengthLessThanOrEqual", expected, value);
    }
    __name2(typedArrayByteLengthLessThanOrEqual, "typedArrayByteLengthLessThanOrEqual");
    function typedArrayByteLengthGreaterThan(value) {
      const expected = `expected.byteLength > ${value}`;
      return typedArrayByteLengthComparator(greaterThan, "s.typedArray(T).byteLengthGreaterThan", expected, value);
    }
    __name2(typedArrayByteLengthGreaterThan, "typedArrayByteLengthGreaterThan");
    function typedArrayByteLengthGreaterThanOrEqual(value) {
      const expected = `expected.byteLength >= ${value}`;
      return typedArrayByteLengthComparator(greaterThanOrEqual, "s.typedArray(T).byteLengthGreaterThanOrEqual", expected, value);
    }
    __name2(typedArrayByteLengthGreaterThanOrEqual, "typedArrayByteLengthGreaterThanOrEqual");
    function typedArrayByteLengthEqual(value) {
      const expected = `expected.byteLength === ${value}`;
      return typedArrayByteLengthComparator(equal, "s.typedArray(T).byteLengthEqual", expected, value);
    }
    __name2(typedArrayByteLengthEqual, "typedArrayByteLengthEqual");
    function typedArrayByteLengthNotEqual(value) {
      const expected = `expected.byteLength !== ${value}`;
      return typedArrayByteLengthComparator(notEqual, "s.typedArray(T).byteLengthNotEqual", expected, value);
    }
    __name2(typedArrayByteLengthNotEqual, "typedArrayByteLengthNotEqual");
    function typedArrayByteLengthRange(start, endBefore) {
      const expected = `expected.byteLength >= ${start} && expected.byteLength < ${endBefore}`;
      return {
        run(input) {
          return input.byteLength >= start && input.byteLength < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).byteLengthRange", "Invalid Typed Array byte length", input, expected));
        }
      };
    }
    __name2(typedArrayByteLengthRange, "typedArrayByteLengthRange");
    function typedArrayByteLengthRangeInclusive(start, end) {
      const expected = `expected.byteLength >= ${start} && expected.byteLength <= ${end}`;
      return {
        run(input) {
          return input.byteLength >= start && input.byteLength <= end ? Result.ok(input) : Result.err(
            new ExpectedConstraintError("s.typedArray(T).byteLengthRangeInclusive", "Invalid Typed Array byte length", input, expected)
          );
        }
      };
    }
    __name2(typedArrayByteLengthRangeInclusive, "typedArrayByteLengthRangeInclusive");
    function typedArrayByteLengthRangeExclusive(startAfter, endBefore) {
      const expected = `expected.byteLength > ${startAfter} && expected.byteLength < ${endBefore}`;
      return {
        run(input) {
          return input.byteLength > startAfter && input.byteLength < endBefore ? Result.ok(input) : Result.err(
            new ExpectedConstraintError("s.typedArray(T).byteLengthRangeExclusive", "Invalid Typed Array byte length", input, expected)
          );
        }
      };
    }
    __name2(typedArrayByteLengthRangeExclusive, "typedArrayByteLengthRangeExclusive");
    function typedArrayLengthComparator(comparator, name2, expected, length) {
      return {
        run(input) {
          return comparator(input.length, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name2, "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthComparator, "typedArrayLengthComparator");
    function typedArrayLengthLessThan(value) {
      const expected = `expected.length < ${value}`;
      return typedArrayLengthComparator(lessThan, "s.typedArray(T).lengthLessThan", expected, value);
    }
    __name2(typedArrayLengthLessThan, "typedArrayLengthLessThan");
    function typedArrayLengthLessThanOrEqual(value) {
      const expected = `expected.length <= ${value}`;
      return typedArrayLengthComparator(lessThanOrEqual, "s.typedArray(T).lengthLessThanOrEqual", expected, value);
    }
    __name2(typedArrayLengthLessThanOrEqual, "typedArrayLengthLessThanOrEqual");
    function typedArrayLengthGreaterThan(value) {
      const expected = `expected.length > ${value}`;
      return typedArrayLengthComparator(greaterThan, "s.typedArray(T).lengthGreaterThan", expected, value);
    }
    __name2(typedArrayLengthGreaterThan, "typedArrayLengthGreaterThan");
    function typedArrayLengthGreaterThanOrEqual(value) {
      const expected = `expected.length >= ${value}`;
      return typedArrayLengthComparator(greaterThanOrEqual, "s.typedArray(T).lengthGreaterThanOrEqual", expected, value);
    }
    __name2(typedArrayLengthGreaterThanOrEqual, "typedArrayLengthGreaterThanOrEqual");
    function typedArrayLengthEqual(value) {
      const expected = `expected.length === ${value}`;
      return typedArrayLengthComparator(equal, "s.typedArray(T).lengthEqual", expected, value);
    }
    __name2(typedArrayLengthEqual, "typedArrayLengthEqual");
    function typedArrayLengthNotEqual(value) {
      const expected = `expected.length !== ${value}`;
      return typedArrayLengthComparator(notEqual, "s.typedArray(T).lengthNotEqual", expected, value);
    }
    __name2(typedArrayLengthNotEqual, "typedArrayLengthNotEqual");
    function typedArrayLengthRange(start, endBefore) {
      const expected = `expected.length >= ${start} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length >= start && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRange", "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthRange, "typedArrayLengthRange");
    function typedArrayLengthRangeInclusive(start, end) {
      const expected = `expected.length >= ${start} && expected.length <= ${end}`;
      return {
        run(input) {
          return input.length >= start && input.length <= end ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRangeInclusive", "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthRangeInclusive, "typedArrayLengthRangeInclusive");
    function typedArrayLengthRangeExclusive(startAfter, endBefore) {
      const expected = `expected.length > ${startAfter} && expected.length < ${endBefore}`;
      return {
        run(input) {
          return input.length > startAfter && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRangeExclusive", "Invalid Typed Array length", input, expected));
        }
      };
    }
    __name2(typedArrayLengthRangeExclusive, "typedArrayLengthRangeExclusive");
    var vowels = ["a", "e", "i", "o", "u"];
    var aOrAn = /* @__PURE__ */ __name2((word) => {
      return `${vowels.includes(word[0].toLowerCase()) ? "an" : "a"} ${word}`;
    }, "aOrAn");
    var TypedArrays = {
      Int8Array: (x22) => x22 instanceof Int8Array,
      Uint8Array: (x22) => x22 instanceof Uint8Array,
      Uint8ClampedArray: (x22) => x22 instanceof Uint8ClampedArray,
      Int16Array: (x22) => x22 instanceof Int16Array,
      Uint16Array: (x22) => x22 instanceof Uint16Array,
      Int32Array: (x22) => x22 instanceof Int32Array,
      Uint32Array: (x22) => x22 instanceof Uint32Array,
      Float32Array: (x22) => x22 instanceof Float32Array,
      Float64Array: (x22) => x22 instanceof Float64Array,
      BigInt64Array: (x22) => x22 instanceof BigInt64Array,
      BigUint64Array: (x22) => x22 instanceof BigUint64Array,
      TypedArray: (x22) => ArrayBuffer.isView(x22) && !(x22 instanceof DataView)
    };
    var _TypedArrayValidator = class _TypedArrayValidator extends BaseValidator {
      constructor(type, constraints = []) {
        super(constraints);
        this.type = type;
      }
      byteLengthLessThan(length) {
        return this.addConstraint(typedArrayByteLengthLessThan(length));
      }
      byteLengthLessThanOrEqual(length) {
        return this.addConstraint(typedArrayByteLengthLessThanOrEqual(length));
      }
      byteLengthGreaterThan(length) {
        return this.addConstraint(typedArrayByteLengthGreaterThan(length));
      }
      byteLengthGreaterThanOrEqual(length) {
        return this.addConstraint(typedArrayByteLengthGreaterThanOrEqual(length));
      }
      byteLengthEqual(length) {
        return this.addConstraint(typedArrayByteLengthEqual(length));
      }
      byteLengthNotEqual(length) {
        return this.addConstraint(typedArrayByteLengthNotEqual(length));
      }
      byteLengthRange(start, endBefore) {
        return this.addConstraint(typedArrayByteLengthRange(start, endBefore));
      }
      byteLengthRangeInclusive(startAt, endAt) {
        return this.addConstraint(typedArrayByteLengthRangeInclusive(startAt, endAt));
      }
      byteLengthRangeExclusive(startAfter, endBefore) {
        return this.addConstraint(typedArrayByteLengthRangeExclusive(startAfter, endBefore));
      }
      lengthLessThan(length) {
        return this.addConstraint(typedArrayLengthLessThan(length));
      }
      lengthLessThanOrEqual(length) {
        return this.addConstraint(typedArrayLengthLessThanOrEqual(length));
      }
      lengthGreaterThan(length) {
        return this.addConstraint(typedArrayLengthGreaterThan(length));
      }
      lengthGreaterThanOrEqual(length) {
        return this.addConstraint(typedArrayLengthGreaterThanOrEqual(length));
      }
      lengthEqual(length) {
        return this.addConstraint(typedArrayLengthEqual(length));
      }
      lengthNotEqual(length) {
        return this.addConstraint(typedArrayLengthNotEqual(length));
      }
      lengthRange(start, endBefore) {
        return this.addConstraint(typedArrayLengthRange(start, endBefore));
      }
      lengthRangeInclusive(startAt, endAt) {
        return this.addConstraint(typedArrayLengthRangeInclusive(startAt, endAt));
      }
      lengthRangeExclusive(startAfter, endBefore) {
        return this.addConstraint(typedArrayLengthRangeExclusive(startAfter, endBefore));
      }
      clone() {
        return Reflect.construct(this.constructor, [this.type, this.constraints]);
      }
      handle(value) {
        return TypedArrays[this.type](value) ? Result.ok(value) : Result.err(new ValidationError("s.typedArray", `Expected ${aOrAn(this.type)}`, value));
      }
    };
    __name2(_TypedArrayValidator, "TypedArrayValidator");
    var TypedArrayValidator = _TypedArrayValidator;
    var _Shapes = class _Shapes {
      get string() {
        return new StringValidator();
      }
      get number() {
        return new NumberValidator();
      }
      get bigint() {
        return new BigIntValidator();
      }
      get boolean() {
        return new BooleanValidator();
      }
      get date() {
        return new DateValidator();
      }
      object(shape) {
        return new ObjectValidator(shape);
      }
      get undefined() {
        return this.literal(void 0);
      }
      get null() {
        return this.literal(null);
      }
      get nullish() {
        return new NullishValidator();
      }
      get any() {
        return new PassthroughValidator();
      }
      get unknown() {
        return new PassthroughValidator();
      }
      get never() {
        return new NeverValidator();
      }
      enum(...values) {
        return this.union(...values.map((value) => this.literal(value)));
      }
      nativeEnum(enumShape) {
        return new NativeEnumValidator(enumShape);
      }
      literal(value) {
        if (value instanceof Date)
          return this.date.equal(value);
        return new LiteralValidator(value);
      }
      instance(expected) {
        return new InstanceValidator(expected);
      }
      union(...validators4) {
        return new UnionValidator(validators4);
      }
      array(validator) {
        return new ArrayValidator(validator);
      }
      typedArray(type = "TypedArray") {
        return new TypedArrayValidator(type);
      }
      get int8Array() {
        return this.typedArray("Int8Array");
      }
      get uint8Array() {
        return this.typedArray("Uint8Array");
      }
      get uint8ClampedArray() {
        return this.typedArray("Uint8ClampedArray");
      }
      get int16Array() {
        return this.typedArray("Int16Array");
      }
      get uint16Array() {
        return this.typedArray("Uint16Array");
      }
      get int32Array() {
        return this.typedArray("Int32Array");
      }
      get uint32Array() {
        return this.typedArray("Uint32Array");
      }
      get float32Array() {
        return this.typedArray("Float32Array");
      }
      get float64Array() {
        return this.typedArray("Float64Array");
      }
      get bigInt64Array() {
        return this.typedArray("BigInt64Array");
      }
      get bigUint64Array() {
        return this.typedArray("BigUint64Array");
      }
      tuple(validators4) {
        return new TupleValidator(validators4);
      }
      set(validator) {
        return new SetValidator(validator);
      }
      record(validator) {
        return new RecordValidator(validator);
      }
      map(keyValidator, valueValidator) {
        return new MapValidator(keyValidator, valueValidator);
      }
      lazy(validator) {
        return new LazyValidator(validator);
      }
    };
    __name2(_Shapes, "Shapes");
    var Shapes = _Shapes;
    var s3 = new Shapes();
    exports2.BaseError = BaseError;
    exports2.CombinedError = CombinedError;
    exports2.CombinedPropertyError = CombinedPropertyError;
    exports2.ExpectedConstraintError = ExpectedConstraintError;
    exports2.ExpectedValidationError = ExpectedValidationError;
    exports2.MissingPropertyError = MissingPropertyError;
    exports2.MultiplePossibilitiesConstraintError = MultiplePossibilitiesConstraintError;
    exports2.Result = Result;
    exports2.UnknownEnumValueError = UnknownEnumValueError;
    exports2.UnknownPropertyError = UnknownPropertyError;
    exports2.ValidationError = ValidationError;
    exports2.customInspectSymbol = customInspectSymbol;
    exports2.customInspectSymbolStackLess = customInspectSymbolStackLess;
    exports2.getGlobalValidationEnabled = getGlobalValidationEnabled;
    exports2.s = s3;
    exports2.setGlobalValidationEnabled = setGlobalValidationEnabled;
  }
});
var require_universalify = __commonJS2({
  "../../node_modules/.pnpm/universalify@2.0.1/node_modules/universalify/index.js"(exports2) {
    "use strict";
    exports2.fromCallback = function(fn3) {
      return Object.defineProperty(function(...args) {
        if (typeof args[args.length - 1] === "function") fn3.apply(this, args);
        else {
          return new Promise((resolve2, reject) => {
            args.push((err2, res) => err2 != null ? reject(err2) : resolve2(res));
            fn3.apply(this, args);
          });
        }
      }, "name", { value: fn3.name });
    };
    exports2.fromPromise = function(fn3) {
      return Object.defineProperty(function(...args) {
        const cb = args[args.length - 1];
        if (typeof cb !== "function") return fn3.apply(this, args);
        else {
          args.pop();
          fn3.apply(this, args).then((r2) => cb(null, r2), cb);
        }
      }, "name", { value: fn3.name });
    };
  }
});
var require_polyfills = __commonJS2({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/polyfills.js"(exports2, module2) {
    var constants = __require("constants");
    var origCwd = process.cwd;
    var cwd = null;
    var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform;
    process.cwd = function() {
      if (!cwd)
        cwd = origCwd.call(process);
      return cwd;
    };
    try {
      process.cwd();
    } catch (er3) {
    }
    if (typeof process.chdir === "function") {
      chdir = process.chdir;
      process.chdir = function(d) {
        cwd = null;
        chdir.call(process, d);
      };
      if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir);
    }
    var chdir;
    module2.exports = patch;
    function patch(fs32) {
      if (constants.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
        patchLchmod(fs32);
      }
      if (!fs32.lutimes) {
        patchLutimes(fs32);
      }
      fs32.chown = chownFix(fs32.chown);
      fs32.fchown = chownFix(fs32.fchown);
      fs32.lchown = chownFix(fs32.lchown);
      fs32.chmod = chmodFix(fs32.chmod);
      fs32.fchmod = chmodFix(fs32.fchmod);
      fs32.lchmod = chmodFix(fs32.lchmod);
      fs32.chownSync = chownFixSync(fs32.chownSync);
      fs32.fchownSync = chownFixSync(fs32.fchownSync);
      fs32.lchownSync = chownFixSync(fs32.lchownSync);
      fs32.chmodSync = chmodFixSync(fs32.chmodSync);
      fs32.fchmodSync = chmodFixSync(fs32.fchmodSync);
      fs32.lchmodSync = chmodFixSync(fs32.lchmodSync);
      fs32.stat = statFix(fs32.stat);
      fs32.fstat = statFix(fs32.fstat);
      fs32.lstat = statFix(fs32.lstat);
      fs32.statSync = statFixSync(fs32.statSync);
      fs32.fstatSync = statFixSync(fs32.fstatSync);
      fs32.lstatSync = statFixSync(fs32.lstatSync);
      if (fs32.chmod && !fs32.lchmod) {
        fs32.lchmod = function(path22, mode, cb) {
          if (cb) process.nextTick(cb);
        };
        fs32.lchmodSync = function() {
        };
      }
      if (fs32.chown && !fs32.lchown) {
        fs32.lchown = function(path22, uid, gid, cb) {
          if (cb) process.nextTick(cb);
        };
        fs32.lchownSync = function() {
        };
      }
      if (platform === "win32") {
        fs32.rename = typeof fs32.rename !== "function" ? fs32.rename : (function(fs$rename) {
          function rename(from, to2, cb) {
            var start = Date.now();
            var backoff = 0;
            fs$rename(from, to2, function CB(er3) {
              if (er3 && (er3.code === "EACCES" || er3.code === "EPERM" || er3.code === "EBUSY") && Date.now() - start < 6e4) {
                setTimeout(function() {
                  fs32.stat(to2, function(stater, st3) {
                    if (stater && stater.code === "ENOENT")
                      fs$rename(from, to2, CB);
                    else
                      cb(er3);
                  });
                }, backoff);
                if (backoff < 100)
                  backoff += 10;
                return;
              }
              if (cb) cb(er3);
            });
          }
          if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename);
          return rename;
        })(fs32.rename);
      }
      fs32.read = typeof fs32.read !== "function" ? fs32.read : (function(fs$read) {
        function read2(fd2, buffer, offset, length, position, callback_) {
          var callback;
          if (callback_ && typeof callback_ === "function") {
            var eagCounter = 0;
            callback = function(er3, _3, __) {
              if (er3 && er3.code === "EAGAIN" && eagCounter < 10) {
                eagCounter++;
                return fs$read.call(fs32, fd2, buffer, offset, length, position, callback);
              }
              callback_.apply(this, arguments);
            };
          }
          return fs$read.call(fs32, fd2, buffer, offset, length, position, callback);
        }
        if (Object.setPrototypeOf) Object.setPrototypeOf(read2, fs$read);
        return read2;
      })(fs32.read);
      fs32.readSync = typeof fs32.readSync !== "function" ? fs32.readSync : /* @__PURE__ */ (function(fs$readSync) {
        return function(fd2, buffer, offset, length, position) {
          var eagCounter = 0;
          while (true) {
            try {
              return fs$readSync.call(fs32, fd2, buffer, offset, length, position);
            } catch (er3) {
              if (er3.code === "EAGAIN" && eagCounter < 10) {
                eagCounter++;
                continue;
              }
              throw er3;
            }
          }
        };
      })(fs32.readSync);
      function patchLchmod(fs42) {
        fs42.lchmod = function(path22, mode, callback) {
          fs42.open(
            path22,
            constants.O_WRONLY | constants.O_SYMLINK,
            mode,
            function(err2, fd2) {
              if (err2) {
                if (callback) callback(err2);
                return;
              }
              fs42.fchmod(fd2, mode, function(err3) {
                fs42.close(fd2, function(err22) {
                  if (callback) callback(err3 || err22);
                });
              });
            }
          );
        };
        fs42.lchmodSync = function(path22, mode) {
          var fd2 = fs42.openSync(path22, constants.O_WRONLY | constants.O_SYMLINK, mode);
          var threw = true;
          var ret;
          try {
            ret = fs42.fchmodSync(fd2, mode);
            threw = false;
          } finally {
            if (threw) {
              try {
                fs42.closeSync(fd2);
              } catch (er3) {
              }
            } else {
              fs42.closeSync(fd2);
            }
          }
          return ret;
        };
      }
      function patchLutimes(fs42) {
        if (constants.hasOwnProperty("O_SYMLINK") && fs42.futimes) {
          fs42.lutimes = function(path22, at3, mt2, cb) {
            fs42.open(path22, constants.O_SYMLINK, function(er3, fd2) {
              if (er3) {
                if (cb) cb(er3);
                return;
              }
              fs42.futimes(fd2, at3, mt2, function(er22) {
                fs42.close(fd2, function(er222) {
                  if (cb) cb(er22 || er222);
                });
              });
            });
          };
          fs42.lutimesSync = function(path22, at3, mt2) {
            var fd2 = fs42.openSync(path22, constants.O_SYMLINK);
            var ret;
            var threw = true;
            try {
              ret = fs42.futimesSync(fd2, at3, mt2);
              threw = false;
            } finally {
              if (threw) {
                try {
                  fs42.closeSync(fd2);
                } catch (er3) {
                }
              } else {
                fs42.closeSync(fd2);
              }
            }
            return ret;
          };
        } else if (fs42.futimes) {
          fs42.lutimes = function(_a22, _b2, _c, cb) {
            if (cb) process.nextTick(cb);
          };
          fs42.lutimesSync = function() {
          };
        }
      }
      function chmodFix(orig) {
        if (!orig) return orig;
        return function(target, mode, cb) {
          return orig.call(fs32, target, mode, function(er3) {
            if (chownErOk(er3)) er3 = null;
            if (cb) cb.apply(this, arguments);
          });
        };
      }
      function chmodFixSync(orig) {
        if (!orig) return orig;
        return function(target, mode) {
          try {
            return orig.call(fs32, target, mode);
          } catch (er3) {
            if (!chownErOk(er3)) throw er3;
          }
        };
      }
      function chownFix(orig) {
        if (!orig) return orig;
        return function(target, uid, gid, cb) {
          return orig.call(fs32, target, uid, gid, function(er3) {
            if (chownErOk(er3)) er3 = null;
            if (cb) cb.apply(this, arguments);
          });
        };
      }
      function chownFixSync(orig) {
        if (!orig) return orig;
        return function(target, uid, gid) {
          try {
            return orig.call(fs32, target, uid, gid);
          } catch (er3) {
            if (!chownErOk(er3)) throw er3;
          }
        };
      }
      function statFix(orig) {
        if (!orig) return orig;
        return function(target, options, cb) {
          if (typeof options === "function") {
            cb = options;
            options = null;
          }
          function callback(er3, stats) {
            if (stats) {
              if (stats.uid < 0) stats.uid += 4294967296;
              if (stats.gid < 0) stats.gid += 4294967296;
            }
            if (cb) cb.apply(this, arguments);
          }
          return options ? orig.call(fs32, target, options, callback) : orig.call(fs32, target, callback);
        };
      }
      function statFixSync(orig) {
        if (!orig) return orig;
        return function(target, options) {
          var stats = options ? orig.call(fs32, target, options) : orig.call(fs32, target);
          if (stats) {
            if (stats.uid < 0) stats.uid += 4294967296;
            if (stats.gid < 0) stats.gid += 4294967296;
          }
          return stats;
        };
      }
      function chownErOk(er3) {
        if (!er3)
          return true;
        if (er3.code === "ENOSYS")
          return true;
        var nonroot = !process.getuid || process.getuid() !== 0;
        if (nonroot) {
          if (er3.code === "EINVAL" || er3.code === "EPERM")
            return true;
        }
        return false;
      }
    }
  }
});
var require_legacy_streams = __commonJS2({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js"(exports2, module2) {
    var Stream = __require("stream").Stream;
    module2.exports = legacy;
    function legacy(fs32) {
      return {
        ReadStream,
        WriteStream
      };
      function ReadStream(path22, options) {
        if (!(this instanceof ReadStream)) return new ReadStream(path22, options);
        Stream.call(this);
        var self2 = this;
        this.path = path22;
        this.fd = null;
        this.readable = true;
        this.paused = false;
        this.flags = "r";
        this.mode = 438;
        this.bufferSize = 64 * 1024;
        options = options || {};
        var keys = Object.keys(options);
        for (var index = 0, length = keys.length; index < length; index++) {
          var key = keys[index];
          this[key] = options[key];
        }
        if (this.encoding) this.setEncoding(this.encoding);
        if (this.start !== void 0) {
          if ("number" !== typeof this.start) {
            throw TypeError("start must be a Number");
          }
          if (this.end === void 0) {
            this.end = Infinity;
          } else if ("number" !== typeof this.end) {
            throw TypeError("end must be a Number");
          }
          if (this.start > this.end) {
            throw new Error("start must be <= end");
          }
          this.pos = this.start;
        }
        if (this.fd !== null) {
          process.nextTick(function() {
            self2._read();
          });
          return;
        }
        fs32.open(this.path, this.flags, this.mode, function(err2, fd2) {
          if (err2) {
            self2.emit("error", err2);
            self2.readable = false;
            return;
          }
          self2.fd = fd2;
          self2.emit("open", fd2);
          self2._read();
        });
      }
      function WriteStream(path22, options) {
        if (!(this instanceof WriteStream)) return new WriteStream(path22, options);
        Stream.call(this);
        this.path = path22;
        this.fd = null;
        this.writable = true;
        this.flags = "w";
        this.encoding = "binary";
        this.mode = 438;
        this.bytesWritten = 0;
        options = options || {};
        var keys = Object.keys(options);
        for (var index = 0, length = keys.length; index < length; index++) {
          var key = keys[index];
          this[key] = options[key];
        }
        if (this.start !== void 0) {
          if ("number" !== typeof this.start) {
            throw TypeError("start must be a Number");
          }
          if (this.start < 0) {
            throw new Error("start must be >= zero");
          }
          this.pos = this.start;
        }
        this.busy = false;
        this._queue = [];
        if (this.fd === null) {
          this._open = fs32.open;
          this._queue.push([this._open, this.path, this.flags, this.mode, void 0]);
          this.flush();
        }
      }
    }
  }
});
var require_clone = __commonJS2({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/clone.js"(exports2, module2) {
    "use strict";
    module2.exports = clone;
    var getPrototypeOf2 = Object.getPrototypeOf || function(obj) {
      return obj.__proto__;
    };
    function clone(obj) {
      if (obj === null || typeof obj !== "object")
        return obj;
      if (obj instanceof Object)
        var copy = { __proto__: getPrototypeOf2(obj) };
      else
        var copy = /* @__PURE__ */ Object.create(null);
      Object.getOwnPropertyNames(obj).forEach(function(key) {
        Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key));
      });
      return copy;
    }
  }
});
var require_graceful_fs = __commonJS2({
  "../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js"(exports2, module2) {
    var fs32 = __require("fs");
    var polyfills = require_polyfills();
    var legacy = require_legacy_streams();
    var clone = require_clone();
    var util32 = __require("util");
    var gracefulQueue;
    var previousSymbol;
    if (typeof Symbol === "function" && typeof Symbol.for === "function") {
      gracefulQueue = Symbol.for("graceful-fs.queue");
      previousSymbol = Symbol.for("graceful-fs.previous");
    } else {
      gracefulQueue = "___graceful-fs.queue";
      previousSymbol = "___graceful-fs.previous";
    }
    function noop5() {
    }
    function publishQueue(context, queue2) {
      Object.defineProperty(context, gracefulQueue, {
        get: function() {
          return queue2;
        }
      });
    }
    var debug2 = noop5;
    if (util32.debuglog)
      debug2 = util32.debuglog("gfs4");
    else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ""))
      debug2 = function() {
        var m2 = util32.format.apply(util32, arguments);
        m2 = "GFS4: " + m2.split(/\n/).join("\nGFS4: ");
        console.error(m2);
      };
    if (!fs32[gracefulQueue]) {
      queue = global[gracefulQueue] || [];
      publishQueue(fs32, queue);
      fs32.close = (function(fs$close) {
        function close(fd2, cb) {
          return fs$close.call(fs32, fd2, function(err2) {
            if (!err2) {
              resetQueue();
            }
            if (typeof cb === "function")
              cb.apply(this, arguments);
          });
        }
        Object.defineProperty(close, previousSymbol, {
          value: fs$close
        });
        return close;
      })(fs32.close);
      fs32.closeSync = (function(fs$closeSync) {
        function closeSync(fd2) {
          fs$closeSync.apply(fs32, arguments);
          resetQueue();
        }
        Object.defineProperty(closeSync, previousSymbol, {
          value: fs$closeSync
        });
        return closeSync;
      })(fs32.closeSync);
      if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) {
        process.on("exit", function() {
          debug2(fs32[gracefulQueue]);
          __require("assert").equal(fs32[gracefulQueue].length, 0);
        });
      }
    }
    var queue;
    if (!global[gracefulQueue]) {
      publishQueue(global, fs32[gracefulQueue]);
    }
    module2.exports = patch(clone(fs32));
    if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs32.__patched) {
      module2.exports = patch(fs32);
      fs32.__patched = true;
    }
    function patch(fs42) {
      polyfills(fs42);
      fs42.gracefulify = patch;
      fs42.createReadStream = createReadStream;
      fs42.createWriteStream = createWriteStream;
      var fs$readFile = fs42.readFile;
      fs42.readFile = readFile2;
      function readFile2(path22, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        return go$readFile(path22, options, cb);
        function go$readFile(path3, options2, cb2, startTime) {
          return fs$readFile(path3, options2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$readFile, [path3, options2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$writeFile = fs42.writeFile;
      fs42.writeFile = writeFile2;
      function writeFile2(path22, data, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        return go$writeFile(path22, data, options, cb);
        function go$writeFile(path3, data2, options2, cb2, startTime) {
          return fs$writeFile(path3, data2, options2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$writeFile, [path3, data2, options2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$appendFile = fs42.appendFile;
      if (fs$appendFile)
        fs42.appendFile = appendFile;
      function appendFile(path22, data, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        return go$appendFile(path22, data, options, cb);
        function go$appendFile(path3, data2, options2, cb2, startTime) {
          return fs$appendFile(path3, data2, options2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$appendFile, [path3, data2, options2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$copyFile = fs42.copyFile;
      if (fs$copyFile)
        fs42.copyFile = copyFile;
      function copyFile(src, dest, flags, cb) {
        if (typeof flags === "function") {
          cb = flags;
          flags = 0;
        }
        return go$copyFile(src, dest, flags, cb);
        function go$copyFile(src2, dest2, flags2, cb2, startTime) {
          return fs$copyFile(src2, dest2, flags2, function(err2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$copyFile, [src2, dest2, flags2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      var fs$readdir = fs42.readdir;
      fs42.readdir = readdir;
      var noReaddirOptionVersions = /^v[0-5]\./;
      function readdir(path22, options, cb) {
        if (typeof options === "function")
          cb = options, options = null;
        var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir2(path3, options2, cb2, startTime) {
          return fs$readdir(path3, fs$readdirCallback(
            path3,
            options2,
            cb2,
            startTime
          ));
        } : function go$readdir2(path3, options2, cb2, startTime) {
          return fs$readdir(path3, options2, fs$readdirCallback(
            path3,
            options2,
            cb2,
            startTime
          ));
        };
        return go$readdir(path22, options, cb);
        function fs$readdirCallback(path3, options2, cb2, startTime) {
          return function(err2, files) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([
                go$readdir,
                [path3, options2, cb2],
                err2,
                startTime || Date.now(),
                Date.now()
              ]);
            else {
              if (files && files.sort)
                files.sort();
              if (typeof cb2 === "function")
                cb2.call(this, err2, files);
            }
          };
        }
      }
      if (process.version.substr(0, 4) === "v0.8") {
        var legStreams = legacy(fs42);
        ReadStream = legStreams.ReadStream;
        WriteStream = legStreams.WriteStream;
      }
      var fs$ReadStream = fs42.ReadStream;
      if (fs$ReadStream) {
        ReadStream.prototype = Object.create(fs$ReadStream.prototype);
        ReadStream.prototype.open = ReadStream$open;
      }
      var fs$WriteStream = fs42.WriteStream;
      if (fs$WriteStream) {
        WriteStream.prototype = Object.create(fs$WriteStream.prototype);
        WriteStream.prototype.open = WriteStream$open;
      }
      Object.defineProperty(fs42, "ReadStream", {
        get: function() {
          return ReadStream;
        },
        set: function(val) {
          ReadStream = val;
        },
        enumerable: true,
        configurable: true
      });
      Object.defineProperty(fs42, "WriteStream", {
        get: function() {
          return WriteStream;
        },
        set: function(val) {
          WriteStream = val;
        },
        enumerable: true,
        configurable: true
      });
      var FileReadStream = ReadStream;
      Object.defineProperty(fs42, "FileReadStream", {
        get: function() {
          return FileReadStream;
        },
        set: function(val) {
          FileReadStream = val;
        },
        enumerable: true,
        configurable: true
      });
      var FileWriteStream = WriteStream;
      Object.defineProperty(fs42, "FileWriteStream", {
        get: function() {
          return FileWriteStream;
        },
        set: function(val) {
          FileWriteStream = val;
        },
        enumerable: true,
        configurable: true
      });
      function ReadStream(path22, options) {
        if (this instanceof ReadStream)
          return fs$ReadStream.apply(this, arguments), this;
        else
          return ReadStream.apply(Object.create(ReadStream.prototype), arguments);
      }
      function ReadStream$open() {
        var that = this;
        open(that.path, that.flags, that.mode, function(err2, fd2) {
          if (err2) {
            if (that.autoClose)
              that.destroy();
            that.emit("error", err2);
          } else {
            that.fd = fd2;
            that.emit("open", fd2);
            that.read();
          }
        });
      }
      function WriteStream(path22, options) {
        if (this instanceof WriteStream)
          return fs$WriteStream.apply(this, arguments), this;
        else
          return WriteStream.apply(Object.create(WriteStream.prototype), arguments);
      }
      function WriteStream$open() {
        var that = this;
        open(that.path, that.flags, that.mode, function(err2, fd2) {
          if (err2) {
            that.destroy();
            that.emit("error", err2);
          } else {
            that.fd = fd2;
            that.emit("open", fd2);
          }
        });
      }
      function createReadStream(path22, options) {
        return new fs42.ReadStream(path22, options);
      }
      function createWriteStream(path22, options) {
        return new fs42.WriteStream(path22, options);
      }
      var fs$open = fs42.open;
      fs42.open = open;
      function open(path22, flags, mode, cb) {
        if (typeof mode === "function")
          cb = mode, mode = null;
        return go$open(path22, flags, mode, cb);
        function go$open(path3, flags2, mode2, cb2, startTime) {
          return fs$open(path3, flags2, mode2, function(err2, fd2) {
            if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
              enqueue([go$open, [path3, flags2, mode2, cb2], err2, startTime || Date.now(), Date.now()]);
            else {
              if (typeof cb2 === "function")
                cb2.apply(this, arguments);
            }
          });
        }
      }
      return fs42;
    }
    function enqueue(elem) {
      debug2("ENQUEUE", elem[0].name, elem[1]);
      fs32[gracefulQueue].push(elem);
      retry();
    }
    var retryTimer;
    function resetQueue() {
      var now = Date.now();
      for (var i22 = 0; i22 < fs32[gracefulQueue].length; ++i22) {
        if (fs32[gracefulQueue][i22].length > 2) {
          fs32[gracefulQueue][i22][3] = now;
          fs32[gracefulQueue][i22][4] = now;
        }
      }
      retry();
    }
    function retry() {
      clearTimeout(retryTimer);
      retryTimer = void 0;
      if (fs32[gracefulQueue].length === 0)
        return;
      var elem = fs32[gracefulQueue].shift();
      var fn3 = elem[0];
      var args = elem[1];
      var err2 = elem[2];
      var startTime = elem[3];
      var lastTime = elem[4];
      if (startTime === void 0) {
        debug2("RETRY", fn3.name, args);
        fn3.apply(null, args);
      } else if (Date.now() - startTime >= 6e4) {
        debug2("TIMEOUT", fn3.name, args);
        var cb = args.pop();
        if (typeof cb === "function")
          cb.call(null, err2);
      } else {
        var sinceAttempt = Date.now() - lastTime;
        var sinceStart = Math.max(lastTime - startTime, 1);
        var desiredDelay = Math.min(sinceStart * 1.2, 100);
        if (sinceAttempt >= desiredDelay) {
          debug2("RETRY", fn3.name, args);
          fn3.apply(null, args.concat([startTime]));
        } else {
          fs32[gracefulQueue].push(elem);
        }
      }
      if (retryTimer === void 0) {
        retryTimer = setTimeout(retry, 0);
      }
    }
  }
});
var require_fs = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/fs/index.js"(exports2) {
    "use strict";
    var u2 = require_universalify().fromCallback;
    var fs32 = require_graceful_fs();
    var api = [
      "access",
      "appendFile",
      "chmod",
      "chown",
      "close",
      "copyFile",
      "cp",
      "fchmod",
      "fchown",
      "fdatasync",
      "fstat",
      "fsync",
      "ftruncate",
      "futimes",
      "glob",
      "lchmod",
      "lchown",
      "lutimes",
      "link",
      "lstat",
      "mkdir",
      "mkdtemp",
      "open",
      "opendir",
      "readdir",
      "readFile",
      "readlink",
      "realpath",
      "rename",
      "rm",
      "rmdir",
      "stat",
      "statfs",
      "symlink",
      "truncate",
      "unlink",
      "utimes",
      "writeFile"
    ].filter((key) => {
      return typeof fs32[key] === "function";
    });
    Object.assign(exports2, fs32);
    api.forEach((method) => {
      exports2[method] = u2(fs32[method]);
    });
    exports2.exists = function(filename, callback) {
      if (typeof callback === "function") {
        return fs32.exists(filename, callback);
      }
      return new Promise((resolve2) => {
        return fs32.exists(filename, resolve2);
      });
    };
    exports2.read = function(fd2, buffer, offset, length, position, callback) {
      if (typeof callback === "function") {
        return fs32.read(fd2, buffer, offset, length, position, callback);
      }
      return new Promise((resolve2, reject) => {
        fs32.read(fd2, buffer, offset, length, position, (err2, bytesRead, buffer2) => {
          if (err2) return reject(err2);
          resolve2({ bytesRead, buffer: buffer2 });
        });
      });
    };
    exports2.write = function(fd2, buffer, ...args) {
      if (typeof args[args.length - 1] === "function") {
        return fs32.write(fd2, buffer, ...args);
      }
      return new Promise((resolve2, reject) => {
        fs32.write(fd2, buffer, ...args, (err2, bytesWritten, buffer2) => {
          if (err2) return reject(err2);
          resolve2({ bytesWritten, buffer: buffer2 });
        });
      });
    };
    exports2.readv = function(fd2, buffers, ...args) {
      if (typeof args[args.length - 1] === "function") {
        return fs32.readv(fd2, buffers, ...args);
      }
      return new Promise((resolve2, reject) => {
        fs32.readv(fd2, buffers, ...args, (err2, bytesRead, buffers2) => {
          if (err2) return reject(err2);
          resolve2({ bytesRead, buffers: buffers2 });
        });
      });
    };
    exports2.writev = function(fd2, buffers, ...args) {
      if (typeof args[args.length - 1] === "function") {
        return fs32.writev(fd2, buffers, ...args);
      }
      return new Promise((resolve2, reject) => {
        fs32.writev(fd2, buffers, ...args, (err2, bytesWritten, buffers2) => {
          if (err2) return reject(err2);
          resolve2({ bytesWritten, buffers: buffers2 });
        });
      });
    };
    if (typeof fs32.realpath.native === "function") {
      exports2.realpath.native = u2(fs32.realpath.native);
    } else {
      process.emitWarning(
        "fs.realpath.native is not a function. Is fs being monkey-patched?",
        "Warning",
        "fs-extra-WARN0003"
      );
    }
  }
});
var require_utils = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/utils.js"(exports2, module2) {
    "use strict";
    var path22 = __require("path");
    module2.exports.checkPath = function checkPath(pth) {
      if (process.platform === "win32") {
        const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path22.parse(pth).root, ""));
        if (pathHasInvalidWinCharacters) {
          const error = new Error(`Path contains invalid characters: ${pth}`);
          error.code = "EINVAL";
          throw error;
        }
      }
    };
  }
});
var require_make_dir = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/make-dir.js"(exports2, module2) {
    "use strict";
    var fs32 = require_fs();
    var { checkPath } = require_utils();
    var getMode = (options) => {
      const defaults42 = { mode: 511 };
      if (typeof options === "number") return options;
      return { ...defaults42, ...options }.mode;
    };
    module2.exports.makeDir = async (dir, options) => {
      checkPath(dir);
      return fs32.mkdir(dir, {
        mode: getMode(options),
        recursive: true
      });
    };
    module2.exports.makeDirSync = (dir, options) => {
      checkPath(dir);
      return fs32.mkdirSync(dir, {
        mode: getMode(options),
        recursive: true
      });
    };
  }
});
var require_mkdirs = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/mkdirs/index.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var { makeDir: _makeDir, makeDirSync } = require_make_dir();
    var makeDir = u2(_makeDir);
    module2.exports = {
      mkdirs: makeDir,
      mkdirsSync: makeDirSync,
      // alias
      mkdirp: makeDir,
      mkdirpSync: makeDirSync,
      ensureDir: makeDir,
      ensureDirSync: makeDirSync
    };
  }
});
var require_path_exists = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/path-exists/index.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var fs32 = require_fs();
    function pathExists(path22) {
      return fs32.access(path22).then(() => true).catch(() => false);
    }
    module2.exports = {
      pathExists: u2(pathExists),
      pathExistsSync: fs32.existsSync
    };
  }
});
var require_utimes = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/utimes.js"(exports2, module2) {
    "use strict";
    var fs32 = require_fs();
    var u2 = require_universalify().fromPromise;
    async function utimesMillis(path22, atime, mtime) {
      const fd2 = await fs32.open(path22, "r+");
      let closeErr = null;
      try {
        await fs32.futimes(fd2, atime, mtime);
      } finally {
        try {
          await fs32.close(fd2);
        } catch (e2) {
          closeErr = e2;
        }
      }
      if (closeErr) {
        throw closeErr;
      }
    }
    function utimesMillisSync(path22, atime, mtime) {
      const fd2 = fs32.openSync(path22, "r+");
      fs32.futimesSync(fd2, atime, mtime);
      return fs32.closeSync(fd2);
    }
    module2.exports = {
      utimesMillis: u2(utimesMillis),
      utimesMillisSync
    };
  }
});
var require_stat = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/stat.js"(exports2, module2) {
    "use strict";
    var fs32 = require_fs();
    var path22 = __require("path");
    var u2 = require_universalify().fromPromise;
    function getStats(src, dest, opts) {
      const statFunc = opts.dereference ? (file) => fs32.stat(file, { bigint: true }) : (file) => fs32.lstat(file, { bigint: true });
      return Promise.all([
        statFunc(src),
        statFunc(dest).catch((err2) => {
          if (err2.code === "ENOENT") return null;
          throw err2;
        })
      ]).then(([srcStat, destStat]) => ({ srcStat, destStat }));
    }
    function getStatsSync(src, dest, opts) {
      let destStat;
      const statFunc = opts.dereference ? (file) => fs32.statSync(file, { bigint: true }) : (file) => fs32.lstatSync(file, { bigint: true });
      const srcStat = statFunc(src);
      try {
        destStat = statFunc(dest);
      } catch (err2) {
        if (err2.code === "ENOENT") return { srcStat, destStat: null };
        throw err2;
      }
      return { srcStat, destStat };
    }
    async function checkPaths(src, dest, funcName, opts) {
      const { srcStat, destStat } = await getStats(src, dest, opts);
      if (destStat) {
        if (areIdentical(srcStat, destStat)) {
          const srcBaseName = path22.basename(src);
          const destBaseName = path22.basename(dest);
          if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
            return { srcStat, destStat, isChangingCase: true };
          }
          throw new Error("Source and destination must not be the same.");
        }
        if (srcStat.isDirectory() && !destStat.isDirectory()) {
          throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`);
        }
        if (!srcStat.isDirectory() && destStat.isDirectory()) {
          throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`);
        }
      }
      if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return { srcStat, destStat };
    }
    function checkPathsSync(src, dest, funcName, opts) {
      const { srcStat, destStat } = getStatsSync(src, dest, opts);
      if (destStat) {
        if (areIdentical(srcStat, destStat)) {
          const srcBaseName = path22.basename(src);
          const destBaseName = path22.basename(dest);
          if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
            return { srcStat, destStat, isChangingCase: true };
          }
          throw new Error("Source and destination must not be the same.");
        }
        if (srcStat.isDirectory() && !destStat.isDirectory()) {
          throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`);
        }
        if (!srcStat.isDirectory() && destStat.isDirectory()) {
          throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`);
        }
      }
      if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return { srcStat, destStat };
    }
    async function checkParentPaths(src, srcStat, dest, funcName) {
      const srcParent = path22.resolve(path22.dirname(src));
      const destParent = path22.resolve(path22.dirname(dest));
      if (destParent === srcParent || destParent === path22.parse(destParent).root) return;
      let destStat;
      try {
        destStat = await fs32.stat(destParent, { bigint: true });
      } catch (err2) {
        if (err2.code === "ENOENT") return;
        throw err2;
      }
      if (areIdentical(srcStat, destStat)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return checkParentPaths(src, srcStat, destParent, funcName);
    }
    function checkParentPathsSync(src, srcStat, dest, funcName) {
      const srcParent = path22.resolve(path22.dirname(src));
      const destParent = path22.resolve(path22.dirname(dest));
      if (destParent === srcParent || destParent === path22.parse(destParent).root) return;
      let destStat;
      try {
        destStat = fs32.statSync(destParent, { bigint: true });
      } catch (err2) {
        if (err2.code === "ENOENT") return;
        throw err2;
      }
      if (areIdentical(srcStat, destStat)) {
        throw new Error(errMsg(src, dest, funcName));
      }
      return checkParentPathsSync(src, srcStat, destParent, funcName);
    }
    function areIdentical(srcStat, destStat) {
      return destStat.ino !== void 0 && destStat.dev !== void 0 && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev;
    }
    function isSrcSubdir(src, dest) {
      const srcArr = path22.resolve(src).split(path22.sep).filter((i22) => i22);
      const destArr = path22.resolve(dest).split(path22.sep).filter((i22) => i22);
      return srcArr.every((cur, i22) => destArr[i22] === cur);
    }
    function errMsg(src, dest, funcName) {
      return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`;
    }
    module2.exports = {
      // checkPaths
      checkPaths: u2(checkPaths),
      checkPathsSync,
      // checkParent
      checkParentPaths: u2(checkParentPaths),
      checkParentPathsSync,
      // Misc
      isSrcSubdir,
      areIdentical
    };
  }
});
var require_async = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/util/async.js"(exports2, module2) {
    "use strict";
    async function asyncIteratorConcurrentProcess(iterator2, fn3) {
      const promises = [];
      for await (const item of iterator2) {
        promises.push(
          fn3(item).then(
            () => null,
            (err2) => err2 ?? new Error("unknown error")
          )
        );
      }
      await Promise.all(
        promises.map(
          (promise) => promise.then((possibleErr) => {
            if (possibleErr !== null) throw possibleErr;
          })
        )
      );
    }
    module2.exports = {
      asyncIteratorConcurrentProcess
    };
  }
});
var require_copy = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/copy.js"(exports2, module2) {
    "use strict";
    var fs32 = require_fs();
    var path22 = __require("path");
    var { mkdirs } = require_mkdirs();
    var { pathExists } = require_path_exists();
    var { utimesMillis } = require_utimes();
    var stat = require_stat();
    var { asyncIteratorConcurrentProcess } = require_async();
    async function copy(src, dest, opts = {}) {
      if (typeof opts === "function") {
        opts = { filter: opts };
      }
      opts.clobber = "clobber" in opts ? !!opts.clobber : true;
      opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber;
      if (opts.preserveTimestamps && process.arch === "ia32") {
        process.emitWarning(
          "Using the preserveTimestamps option in 32-bit node is not recommended;\n\n	see https://github.com/jprichardson/node-fs-extra/issues/269",
          "Warning",
          "fs-extra-WARN0001"
        );
      }
      const { srcStat, destStat } = await stat.checkPaths(src, dest, "copy", opts);
      await stat.checkParentPaths(src, srcStat, dest, "copy");
      const include = await runFilter(src, dest, opts);
      if (!include) return;
      const destParent = path22.dirname(dest);
      const dirExists = await pathExists(destParent);
      if (!dirExists) {
        await mkdirs(destParent);
      }
      await getStatsAndPerformCopy(destStat, src, dest, opts);
    }
    async function runFilter(src, dest, opts) {
      if (!opts.filter) return true;
      return opts.filter(src, dest);
    }
    async function getStatsAndPerformCopy(destStat, src, dest, opts) {
      const statFn = opts.dereference ? fs32.stat : fs32.lstat;
      const srcStat = await statFn(src);
      if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts);
      if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts);
      if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts);
      if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`);
      if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`);
      throw new Error(`Unknown file: ${src}`);
    }
    async function onFile(srcStat, destStat, src, dest, opts) {
      if (!destStat) return copyFile(srcStat, src, dest, opts);
      if (opts.overwrite) {
        await fs32.unlink(dest);
        return copyFile(srcStat, src, dest, opts);
      }
      if (opts.errorOnExist) {
        throw new Error(`'${dest}' already exists`);
      }
    }
    async function copyFile(srcStat, src, dest, opts) {
      await fs32.copyFile(src, dest);
      if (opts.preserveTimestamps) {
        if (fileIsNotWritable(srcStat.mode)) {
          await makeFileWritable(dest, srcStat.mode);
        }
        const updatedSrcStat = await fs32.stat(src);
        await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
      }
      return fs32.chmod(dest, srcStat.mode);
    }
    function fileIsNotWritable(srcMode) {
      return (srcMode & 128) === 0;
    }
    function makeFileWritable(dest, srcMode) {
      return fs32.chmod(dest, srcMode | 128);
    }
    async function onDir(srcStat, destStat, src, dest, opts) {
      if (!destStat) {
        await fs32.mkdir(dest);
      }
      await asyncIteratorConcurrentProcess(await fs32.opendir(src), async (item) => {
        const srcItem = path22.join(src, item.name);
        const destItem = path22.join(dest, item.name);
        const include = await runFilter(srcItem, destItem, opts);
        if (include) {
          const { destStat: destStat2 } = await stat.checkPaths(srcItem, destItem, "copy", opts);
          await getStatsAndPerformCopy(destStat2, srcItem, destItem, opts);
        }
      });
      if (!destStat) {
        await fs32.chmod(dest, srcStat.mode);
      }
    }
    async function onLink(destStat, src, dest, opts) {
      let resolvedSrc = await fs32.readlink(src);
      if (opts.dereference) {
        resolvedSrc = path22.resolve(process.cwd(), resolvedSrc);
      }
      if (!destStat) {
        return fs32.symlink(resolvedSrc, dest);
      }
      let resolvedDest = null;
      try {
        resolvedDest = await fs32.readlink(dest);
      } catch (e2) {
        if (e2.code === "EINVAL" || e2.code === "UNKNOWN") return fs32.symlink(resolvedSrc, dest);
        throw e2;
      }
      if (opts.dereference) {
        resolvedDest = path22.resolve(process.cwd(), resolvedDest);
      }
      if (resolvedSrc !== resolvedDest) {
        if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
          throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
        }
        if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
          throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
        }
      }
      await fs32.unlink(dest);
      return fs32.symlink(resolvedSrc, dest);
    }
    module2.exports = copy;
  }
});
var require_copy_sync = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/copy-sync.js"(exports2, module2) {
    "use strict";
    var fs32 = require_graceful_fs();
    var path22 = __require("path");
    var mkdirsSync = require_mkdirs().mkdirsSync;
    var utimesMillisSync = require_utimes().utimesMillisSync;
    var stat = require_stat();
    function copySync(src, dest, opts) {
      if (typeof opts === "function") {
        opts = { filter: opts };
      }
      opts = opts || {};
      opts.clobber = "clobber" in opts ? !!opts.clobber : true;
      opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber;
      if (opts.preserveTimestamps && process.arch === "ia32") {
        process.emitWarning(
          "Using the preserveTimestamps option in 32-bit node is not recommended;\n\n	see https://github.com/jprichardson/node-fs-extra/issues/269",
          "Warning",
          "fs-extra-WARN0002"
        );
      }
      const { srcStat, destStat } = stat.checkPathsSync(src, dest, "copy", opts);
      stat.checkParentPathsSync(src, srcStat, dest, "copy");
      if (opts.filter && !opts.filter(src, dest)) return;
      const destParent = path22.dirname(dest);
      if (!fs32.existsSync(destParent)) mkdirsSync(destParent);
      return getStats(destStat, src, dest, opts);
    }
    function getStats(destStat, src, dest, opts) {
      const statSync = opts.dereference ? fs32.statSync : fs32.lstatSync;
      const srcStat = statSync(src);
      if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts);
      else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts);
      else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts);
      else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`);
      else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`);
      throw new Error(`Unknown file: ${src}`);
    }
    function onFile(srcStat, destStat, src, dest, opts) {
      if (!destStat) return copyFile(srcStat, src, dest, opts);
      return mayCopyFile(srcStat, src, dest, opts);
    }
    function mayCopyFile(srcStat, src, dest, opts) {
      if (opts.overwrite) {
        fs32.unlinkSync(dest);
        return copyFile(srcStat, src, dest, opts);
      } else if (opts.errorOnExist) {
        throw new Error(`'${dest}' already exists`);
      }
    }
    function copyFile(srcStat, src, dest, opts) {
      fs32.copyFileSync(src, dest);
      if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest);
      return setDestMode(dest, srcStat.mode);
    }
    function handleTimestamps(srcMode, src, dest) {
      if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode);
      return setDestTimestamps(src, dest);
    }
    function fileIsNotWritable(srcMode) {
      return (srcMode & 128) === 0;
    }
    function makeFileWritable(dest, srcMode) {
      return setDestMode(dest, srcMode | 128);
    }
    function setDestMode(dest, srcMode) {
      return fs32.chmodSync(dest, srcMode);
    }
    function setDestTimestamps(src, dest) {
      const updatedSrcStat = fs32.statSync(src);
      return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
    }
    function onDir(srcStat, destStat, src, dest, opts) {
      if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts);
      return copyDir(src, dest, opts);
    }
    function mkDirAndCopy(srcMode, src, dest, opts) {
      fs32.mkdirSync(dest);
      copyDir(src, dest, opts);
      return setDestMode(dest, srcMode);
    }
    function copyDir(src, dest, opts) {
      const dir = fs32.opendirSync(src);
      try {
        let dirent;
        while ((dirent = dir.readSync()) !== null) {
          copyDirItem(dirent.name, src, dest, opts);
        }
      } finally {
        dir.closeSync();
      }
    }
    function copyDirItem(item, src, dest, opts) {
      const srcItem = path22.join(src, item);
      const destItem = path22.join(dest, item);
      if (opts.filter && !opts.filter(srcItem, destItem)) return;
      const { destStat } = stat.checkPathsSync(srcItem, destItem, "copy", opts);
      return getStats(destStat, srcItem, destItem, opts);
    }
    function onLink(destStat, src, dest, opts) {
      let resolvedSrc = fs32.readlinkSync(src);
      if (opts.dereference) {
        resolvedSrc = path22.resolve(process.cwd(), resolvedSrc);
      }
      if (!destStat) {
        return fs32.symlinkSync(resolvedSrc, dest);
      } else {
        let resolvedDest;
        try {
          resolvedDest = fs32.readlinkSync(dest);
        } catch (err2) {
          if (err2.code === "EINVAL" || err2.code === "UNKNOWN") return fs32.symlinkSync(resolvedSrc, dest);
          throw err2;
        }
        if (opts.dereference) {
          resolvedDest = path22.resolve(process.cwd(), resolvedDest);
        }
        if (resolvedSrc !== resolvedDest) {
          if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
            throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
          }
          if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
            throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
          }
        }
        return copyLink(resolvedSrc, dest);
      }
    }
    function copyLink(resolvedSrc, dest) {
      fs32.unlinkSync(dest);
      return fs32.symlinkSync(resolvedSrc, dest);
    }
    module2.exports = copySync;
  }
});
var require_copy2 = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/copy/index.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    module2.exports = {
      copy: u2(require_copy()),
      copySync: require_copy_sync()
    };
  }
});
var require_remove = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/remove/index.js"(exports2, module2) {
    "use strict";
    var fs32 = require_graceful_fs();
    var u2 = require_universalify().fromCallback;
    function remove(path22, callback) {
      fs32.rm(path22, { recursive: true, force: true }, callback);
    }
    function removeSync(path22) {
      fs32.rmSync(path22, { recursive: true, force: true });
    }
    module2.exports = {
      remove: u2(remove),
      removeSync
    };
  }
});
var require_empty = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/empty/index.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var fs32 = require_fs();
    var path22 = __require("path");
    var mkdir2 = require_mkdirs();
    var remove = require_remove();
    var emptyDir = u2(async function emptyDir2(dir) {
      let items;
      try {
        items = await fs32.readdir(dir);
      } catch {
        return mkdir2.mkdirs(dir);
      }
      return Promise.all(items.map((item) => remove.remove(path22.join(dir, item))));
    });
    function emptyDirSync(dir) {
      let items;
      try {
        items = fs32.readdirSync(dir);
      } catch {
        return mkdir2.mkdirsSync(dir);
      }
      items.forEach((item) => {
        item = path22.join(dir, item);
        remove.removeSync(item);
      });
    }
    module2.exports = {
      emptyDirSync,
      emptydirSync: emptyDirSync,
      emptyDir,
      emptydir: emptyDir
    };
  }
});
var require_file = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/file.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var path22 = __require("path");
    var fs32 = require_fs();
    var mkdir2 = require_mkdirs();
    async function createFile(file) {
      let stats;
      try {
        stats = await fs32.stat(file);
      } catch {
      }
      if (stats && stats.isFile()) return;
      const dir = path22.dirname(file);
      let dirStats = null;
      try {
        dirStats = await fs32.stat(dir);
      } catch (err2) {
        if (err2.code === "ENOENT") {
          await mkdir2.mkdirs(dir);
          await fs32.writeFile(file, "");
          return;
        } else {
          throw err2;
        }
      }
      if (dirStats.isDirectory()) {
        await fs32.writeFile(file, "");
      } else {
        await fs32.readdir(dir);
      }
    }
    function createFileSync(file) {
      let stats;
      try {
        stats = fs32.statSync(file);
      } catch {
      }
      if (stats && stats.isFile()) return;
      const dir = path22.dirname(file);
      try {
        if (!fs32.statSync(dir).isDirectory()) {
          fs32.readdirSync(dir);
        }
      } catch (err2) {
        if (err2 && err2.code === "ENOENT") mkdir2.mkdirsSync(dir);
        else throw err2;
      }
      fs32.writeFileSync(file, "");
    }
    module2.exports = {
      createFile: u2(createFile),
      createFileSync
    };
  }
});
var require_link = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/link.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var path22 = __require("path");
    var fs32 = require_fs();
    var mkdir2 = require_mkdirs();
    var { pathExists } = require_path_exists();
    var { areIdentical } = require_stat();
    async function createLink(srcpath, dstpath) {
      let dstStat;
      try {
        dstStat = await fs32.lstat(dstpath);
      } catch {
      }
      let srcStat;
      try {
        srcStat = await fs32.lstat(srcpath);
      } catch (err2) {
        err2.message = err2.message.replace("lstat", "ensureLink");
        throw err2;
      }
      if (dstStat && areIdentical(srcStat, dstStat)) return;
      const dir = path22.dirname(dstpath);
      const dirExists = await pathExists(dir);
      if (!dirExists) {
        await mkdir2.mkdirs(dir);
      }
      await fs32.link(srcpath, dstpath);
    }
    function createLinkSync(srcpath, dstpath) {
      let dstStat;
      try {
        dstStat = fs32.lstatSync(dstpath);
      } catch {
      }
      try {
        const srcStat = fs32.lstatSync(srcpath);
        if (dstStat && areIdentical(srcStat, dstStat)) return;
      } catch (err2) {
        err2.message = err2.message.replace("lstat", "ensureLink");
        throw err2;
      }
      const dir = path22.dirname(dstpath);
      const dirExists = fs32.existsSync(dir);
      if (dirExists) return fs32.linkSync(srcpath, dstpath);
      mkdir2.mkdirsSync(dir);
      return fs32.linkSync(srcpath, dstpath);
    }
    module2.exports = {
      createLink: u2(createLink),
      createLinkSync
    };
  }
});
var require_symlink_paths = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink-paths.js"(exports2, module2) {
    "use strict";
    var path22 = __require("path");
    var fs32 = require_fs();
    var { pathExists } = require_path_exists();
    var u2 = require_universalify().fromPromise;
    async function symlinkPaths(srcpath, dstpath) {
      if (path22.isAbsolute(srcpath)) {
        try {
          await fs32.lstat(srcpath);
        } catch (err2) {
          err2.message = err2.message.replace("lstat", "ensureSymlink");
          throw err2;
        }
        return {
          toCwd: srcpath,
          toDst: srcpath
        };
      }
      const dstdir = path22.dirname(dstpath);
      const relativeToDst = path22.join(dstdir, srcpath);
      const exists = await pathExists(relativeToDst);
      if (exists) {
        return {
          toCwd: relativeToDst,
          toDst: srcpath
        };
      }
      try {
        await fs32.lstat(srcpath);
      } catch (err2) {
        err2.message = err2.message.replace("lstat", "ensureSymlink");
        throw err2;
      }
      return {
        toCwd: srcpath,
        toDst: path22.relative(dstdir, srcpath)
      };
    }
    function symlinkPathsSync(srcpath, dstpath) {
      if (path22.isAbsolute(srcpath)) {
        const exists2 = fs32.existsSync(srcpath);
        if (!exists2) throw new Error("absolute srcpath does not exist");
        return {
          toCwd: srcpath,
          toDst: srcpath
        };
      }
      const dstdir = path22.dirname(dstpath);
      const relativeToDst = path22.join(dstdir, srcpath);
      const exists = fs32.existsSync(relativeToDst);
      if (exists) {
        return {
          toCwd: relativeToDst,
          toDst: srcpath
        };
      }
      const srcExists = fs32.existsSync(srcpath);
      if (!srcExists) throw new Error("relative srcpath does not exist");
      return {
        toCwd: srcpath,
        toDst: path22.relative(dstdir, srcpath)
      };
    }
    module2.exports = {
      symlinkPaths: u2(symlinkPaths),
      symlinkPathsSync
    };
  }
});
var require_symlink_type = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink-type.js"(exports2, module2) {
    "use strict";
    var fs32 = require_fs();
    var u2 = require_universalify().fromPromise;
    async function symlinkType(srcpath, type) {
      if (type) return type;
      let stats;
      try {
        stats = await fs32.lstat(srcpath);
      } catch {
        return "file";
      }
      return stats && stats.isDirectory() ? "dir" : "file";
    }
    function symlinkTypeSync(srcpath, type) {
      if (type) return type;
      let stats;
      try {
        stats = fs32.lstatSync(srcpath);
      } catch {
        return "file";
      }
      return stats && stats.isDirectory() ? "dir" : "file";
    }
    module2.exports = {
      symlinkType: u2(symlinkType),
      symlinkTypeSync
    };
  }
});
var require_symlink = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/symlink.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var path22 = __require("path");
    var fs32 = require_fs();
    var { mkdirs, mkdirsSync } = require_mkdirs();
    var { symlinkPaths, symlinkPathsSync } = require_symlink_paths();
    var { symlinkType, symlinkTypeSync } = require_symlink_type();
    var { pathExists } = require_path_exists();
    var { areIdentical } = require_stat();
    async function createSymlink(srcpath, dstpath, type) {
      let stats;
      try {
        stats = await fs32.lstat(dstpath);
      } catch {
      }
      if (stats && stats.isSymbolicLink()) {
        const [srcStat, dstStat] = await Promise.all([
          fs32.stat(srcpath),
          fs32.stat(dstpath)
        ]);
        if (areIdentical(srcStat, dstStat)) return;
      }
      const relative = await symlinkPaths(srcpath, dstpath);
      srcpath = relative.toDst;
      const toType = await symlinkType(relative.toCwd, type);
      const dir = path22.dirname(dstpath);
      if (!await pathExists(dir)) {
        await mkdirs(dir);
      }
      return fs32.symlink(srcpath, dstpath, toType);
    }
    function createSymlinkSync(srcpath, dstpath, type) {
      let stats;
      try {
        stats = fs32.lstatSync(dstpath);
      } catch {
      }
      if (stats && stats.isSymbolicLink()) {
        const srcStat = fs32.statSync(srcpath);
        const dstStat = fs32.statSync(dstpath);
        if (areIdentical(srcStat, dstStat)) return;
      }
      const relative = symlinkPathsSync(srcpath, dstpath);
      srcpath = relative.toDst;
      type = symlinkTypeSync(relative.toCwd, type);
      const dir = path22.dirname(dstpath);
      const exists = fs32.existsSync(dir);
      if (exists) return fs32.symlinkSync(srcpath, dstpath, type);
      mkdirsSync(dir);
      return fs32.symlinkSync(srcpath, dstpath, type);
    }
    module2.exports = {
      createSymlink: u2(createSymlink),
      createSymlinkSync
    };
  }
});
var require_ensure = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/ensure/index.js"(exports2, module2) {
    "use strict";
    var { createFile, createFileSync } = require_file();
    var { createLink, createLinkSync } = require_link();
    var { createSymlink, createSymlinkSync } = require_symlink();
    module2.exports = {
      // file
      createFile,
      createFileSync,
      ensureFile: createFile,
      ensureFileSync: createFileSync,
      // link
      createLink,
      createLinkSync,
      ensureLink: createLink,
      ensureLinkSync: createLinkSync,
      // symlink
      createSymlink,
      createSymlinkSync,
      ensureSymlink: createSymlink,
      ensureSymlinkSync: createSymlinkSync
    };
  }
});
var require_utils2 = __commonJS2({
  "../../node_modules/.pnpm/jsonfile@6.2.0/node_modules/jsonfile/utils.js"(exports2, module2) {
    function stringify(obj, { EOL = "\n", finalEOL = true, replacer = null, spaces } = {}) {
      const EOF = finalEOL ? EOL : "";
      const str = JSON.stringify(obj, replacer, spaces);
      return str.replace(/\n/g, EOL) + EOF;
    }
    function stripBom(content2) {
      if (Buffer.isBuffer(content2)) content2 = content2.toString("utf8");
      return content2.replace(/^\uFEFF/, "");
    }
    module2.exports = { stringify, stripBom };
  }
});
var require_jsonfile = __commonJS2({
  "../../node_modules/.pnpm/jsonfile@6.2.0/node_modules/jsonfile/index.js"(exports2, module2) {
    var _fs;
    try {
      _fs = require_graceful_fs();
    } catch (_3) {
      _fs = __require("fs");
    }
    var universalify = require_universalify();
    var { stringify, stripBom } = require_utils2();
    async function _readFile(file, options = {}) {
      if (typeof options === "string") {
        options = { encoding: options };
      }
      const fs32 = options.fs || _fs;
      const shouldThrow = "throws" in options ? options.throws : true;
      let data = await universalify.fromCallback(fs32.readFile)(file, options);
      data = stripBom(data);
      let obj;
      try {
        obj = JSON.parse(data, options ? options.reviver : null);
      } catch (err2) {
        if (shouldThrow) {
          err2.message = `${file}: ${err2.message}`;
          throw err2;
        } else {
          return null;
        }
      }
      return obj;
    }
    var readFile2 = universalify.fromPromise(_readFile);
    function readFileSync2(file, options = {}) {
      if (typeof options === "string") {
        options = { encoding: options };
      }
      const fs32 = options.fs || _fs;
      const shouldThrow = "throws" in options ? options.throws : true;
      try {
        let content2 = fs32.readFileSync(file, options);
        content2 = stripBom(content2);
        return JSON.parse(content2, options.reviver);
      } catch (err2) {
        if (shouldThrow) {
          err2.message = `${file}: ${err2.message}`;
          throw err2;
        } else {
          return null;
        }
      }
    }
    async function _writeFile(file, obj, options = {}) {
      const fs32 = options.fs || _fs;
      const str = stringify(obj, options);
      await universalify.fromCallback(fs32.writeFile)(file, str, options);
    }
    var writeFile2 = universalify.fromPromise(_writeFile);
    function writeFileSync(file, obj, options = {}) {
      const fs32 = options.fs || _fs;
      const str = stringify(obj, options);
      return fs32.writeFileSync(file, str, options);
    }
    module2.exports = {
      readFile: readFile2,
      readFileSync: readFileSync2,
      writeFile: writeFile2,
      writeFileSync
    };
  }
});
var require_jsonfile2 = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/jsonfile.js"(exports2, module2) {
    "use strict";
    var jsonFile = require_jsonfile();
    module2.exports = {
      // jsonfile exports
      readJson: jsonFile.readFile,
      readJsonSync: jsonFile.readFileSync,
      writeJson: jsonFile.writeFile,
      writeJsonSync: jsonFile.writeFileSync
    };
  }
});
var require_output_file = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/output-file/index.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var fs32 = require_fs();
    var path22 = __require("path");
    var mkdir2 = require_mkdirs();
    var pathExists = require_path_exists().pathExists;
    async function outputFile(file, data, encoding = "utf-8") {
      const dir = path22.dirname(file);
      if (!await pathExists(dir)) {
        await mkdir2.mkdirs(dir);
      }
      return fs32.writeFile(file, data, encoding);
    }
    function outputFileSync(file, ...args) {
      const dir = path22.dirname(file);
      if (!fs32.existsSync(dir)) {
        mkdir2.mkdirsSync(dir);
      }
      fs32.writeFileSync(file, ...args);
    }
    module2.exports = {
      outputFile: u2(outputFile),
      outputFileSync
    };
  }
});
var require_output_json = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/output-json.js"(exports2, module2) {
    "use strict";
    var { stringify } = require_utils2();
    var { outputFile } = require_output_file();
    async function outputJson(file, data, options = {}) {
      const str = stringify(data, options);
      await outputFile(file, str, options);
    }
    module2.exports = outputJson;
  }
});
var require_output_json_sync = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/output-json-sync.js"(exports2, module2) {
    "use strict";
    var { stringify } = require_utils2();
    var { outputFileSync } = require_output_file();
    function outputJsonSync(file, data, options) {
      const str = stringify(data, options);
      outputFileSync(file, str, options);
    }
    module2.exports = outputJsonSync;
  }
});
var require_json = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/json/index.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    var jsonFile = require_jsonfile2();
    jsonFile.outputJson = u2(require_output_json());
    jsonFile.outputJsonSync = require_output_json_sync();
    jsonFile.outputJSON = jsonFile.outputJson;
    jsonFile.outputJSONSync = jsonFile.outputJsonSync;
    jsonFile.writeJSON = jsonFile.writeJson;
    jsonFile.writeJSONSync = jsonFile.writeJsonSync;
    jsonFile.readJSON = jsonFile.readJson;
    jsonFile.readJSONSync = jsonFile.readJsonSync;
    module2.exports = jsonFile;
  }
});
var require_move = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/move.js"(exports2, module2) {
    "use strict";
    var fs32 = require_fs();
    var path22 = __require("path");
    var { copy } = require_copy2();
    var { remove } = require_remove();
    var { mkdirp } = require_mkdirs();
    var { pathExists } = require_path_exists();
    var stat = require_stat();
    async function move(src, dest, opts = {}) {
      const overwrite = opts.overwrite || opts.clobber || false;
      const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, "move", opts);
      await stat.checkParentPaths(src, srcStat, dest, "move");
      const destParent = path22.dirname(dest);
      const parsedParentPath = path22.parse(destParent);
      if (parsedParentPath.root !== destParent) {
        await mkdirp(destParent);
      }
      return doRename(src, dest, overwrite, isChangingCase);
    }
    async function doRename(src, dest, overwrite, isChangingCase) {
      if (!isChangingCase) {
        if (overwrite) {
          await remove(dest);
        } else if (await pathExists(dest)) {
          throw new Error("dest already exists.");
        }
      }
      try {
        await fs32.rename(src, dest);
      } catch (err2) {
        if (err2.code !== "EXDEV") {
          throw err2;
        }
        await moveAcrossDevice(src, dest, overwrite);
      }
    }
    async function moveAcrossDevice(src, dest, overwrite) {
      const opts = {
        overwrite,
        errorOnExist: true,
        preserveTimestamps: true
      };
      await copy(src, dest, opts);
      return remove(src);
    }
    module2.exports = move;
  }
});
var require_move_sync = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/move-sync.js"(exports2, module2) {
    "use strict";
    var fs32 = require_graceful_fs();
    var path22 = __require("path");
    var copySync = require_copy2().copySync;
    var removeSync = require_remove().removeSync;
    var mkdirpSync = require_mkdirs().mkdirpSync;
    var stat = require_stat();
    function moveSync(src, dest, opts) {
      opts = opts || {};
      const overwrite = opts.overwrite || opts.clobber || false;
      const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, "move", opts);
      stat.checkParentPathsSync(src, srcStat, dest, "move");
      if (!isParentRoot(dest)) mkdirpSync(path22.dirname(dest));
      return doRename(src, dest, overwrite, isChangingCase);
    }
    function isParentRoot(dest) {
      const parent = path22.dirname(dest);
      const parsedPath = path22.parse(parent);
      return parsedPath.root === parent;
    }
    function doRename(src, dest, overwrite, isChangingCase) {
      if (isChangingCase) return rename(src, dest, overwrite);
      if (overwrite) {
        removeSync(dest);
        return rename(src, dest, overwrite);
      }
      if (fs32.existsSync(dest)) throw new Error("dest already exists.");
      return rename(src, dest, overwrite);
    }
    function rename(src, dest, overwrite) {
      try {
        fs32.renameSync(src, dest);
      } catch (err2) {
        if (err2.code !== "EXDEV") throw err2;
        return moveAcrossDevice(src, dest, overwrite);
      }
    }
    function moveAcrossDevice(src, dest, overwrite) {
      const opts = {
        overwrite,
        errorOnExist: true,
        preserveTimestamps: true
      };
      copySync(src, dest, opts);
      return removeSync(src);
    }
    module2.exports = moveSync;
  }
});
var require_move2 = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/move/index.js"(exports2, module2) {
    "use strict";
    var u2 = require_universalify().fromPromise;
    module2.exports = {
      move: u2(require_move()),
      moveSync: require_move_sync()
    };
  }
});
var require_lib = __commonJS2({
  "../../node_modules/.pnpm/fs-extra@11.3.3/node_modules/fs-extra/lib/index.js"(exports2, module2) {
    "use strict";
    module2.exports = {
      // Export promiseified graceful-fs:
      ...require_fs(),
      // Export extra methods:
      ...require_copy2(),
      ...require_empty(),
      ...require_ensure(),
      ...require_json(),
      ...require_mkdirs(),
      ...require_move2(),
      ...require_output_file(),
      ...require_path_exists(),
      ...require_remove()
    };
  }
});
var require_retry_operation = __commonJS2({
  "../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry_operation.js"(exports2, module2) {
    function RetryOperation(timeouts, options) {
      if (typeof options === "boolean") {
        options = { forever: options };
      }
      this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));
      this._timeouts = timeouts;
      this._options = options || {};
      this._maxRetryTime = options && options.maxRetryTime || Infinity;
      this._fn = null;
      this._errors = [];
      this._attempts = 1;
      this._operationTimeout = null;
      this._operationTimeoutCb = null;
      this._timeout = null;
      this._operationStart = null;
      if (this._options.forever) {
        this._cachedTimeouts = this._timeouts.slice(0);
      }
    }
    module2.exports = RetryOperation;
    RetryOperation.prototype.reset = function() {
      this._attempts = 1;
      this._timeouts = this._originalTimeouts;
    };
    RetryOperation.prototype.stop = function() {
      if (this._timeout) {
        clearTimeout(this._timeout);
      }
      this._timeouts = [];
      this._cachedTimeouts = null;
    };
    RetryOperation.prototype.retry = function(err2) {
      if (this._timeout) {
        clearTimeout(this._timeout);
      }
      if (!err2) {
        return false;
      }
      var currentTime = (/* @__PURE__ */ new Date()).getTime();
      if (err2 && currentTime - this._operationStart >= this._maxRetryTime) {
        this._errors.unshift(new Error("RetryOperation timeout occurred"));
        return false;
      }
      this._errors.push(err2);
      var timeout = this._timeouts.shift();
      if (timeout === void 0) {
        if (this._cachedTimeouts) {
          this._errors.splice(this._errors.length - 1, this._errors.length);
          this._timeouts = this._cachedTimeouts.slice(0);
          timeout = this._timeouts.shift();
        } else {
          return false;
        }
      }
      var self2 = this;
      var timer2 = setTimeout(function() {
        self2._attempts++;
        if (self2._operationTimeoutCb) {
          self2._timeout = setTimeout(function() {
            self2._operationTimeoutCb(self2._attempts);
          }, self2._operationTimeout);
          if (self2._options.unref) {
            self2._timeout.unref();
          }
        }
        self2._fn(self2._attempts);
      }, timeout);
      if (this._options.unref) {
        timer2.unref();
      }
      return true;
    };
    RetryOperation.prototype.attempt = function(fn3, timeoutOps) {
      this._fn = fn3;
      if (timeoutOps) {
        if (timeoutOps.timeout) {
          this._operationTimeout = timeoutOps.timeout;
        }
        if (timeoutOps.cb) {
          this._operationTimeoutCb = timeoutOps.cb;
        }
      }
      var self2 = this;
      if (this._operationTimeoutCb) {
        this._timeout = setTimeout(function() {
          self2._operationTimeoutCb();
        }, self2._operationTimeout);
      }
      this._operationStart = (/* @__PURE__ */ new Date()).getTime();
      this._fn(this._attempts);
    };
    RetryOperation.prototype.try = function(fn3) {
      console.log("Using RetryOperation.try() is deprecated");
      this.attempt(fn3);
    };
    RetryOperation.prototype.start = function(fn3) {
      console.log("Using RetryOperation.start() is deprecated");
      this.attempt(fn3);
    };
    RetryOperation.prototype.start = RetryOperation.prototype.try;
    RetryOperation.prototype.errors = function() {
      return this._errors;
    };
    RetryOperation.prototype.attempts = function() {
      return this._attempts;
    };
    RetryOperation.prototype.mainError = function() {
      if (this._errors.length === 0) {
        return null;
      }
      var counts = {};
      var mainError = null;
      var mainErrorCount = 0;
      for (var i22 = 0; i22 < this._errors.length; i22++) {
        var error = this._errors[i22];
        var message = error.message;
        var count = (counts[message] || 0) + 1;
        counts[message] = count;
        if (count >= mainErrorCount) {
          mainError = error;
          mainErrorCount = count;
        }
      }
      return mainError;
    };
  }
});
var require_retry = __commonJS2({
  "../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/lib/retry.js"(exports2) {
    var RetryOperation = require_retry_operation();
    exports2.operation = function(options) {
      var timeouts = exports2.timeouts(options);
      return new RetryOperation(timeouts, {
        forever: options && options.forever,
        unref: options && options.unref,
        maxRetryTime: options && options.maxRetryTime
      });
    };
    exports2.timeouts = function(options) {
      if (options instanceof Array) {
        return [].concat(options);
      }
      var opts = {
        retries: 10,
        factor: 2,
        minTimeout: 1 * 1e3,
        maxTimeout: Infinity,
        randomize: false
      };
      for (var key in options) {
        opts[key] = options[key];
      }
      if (opts.minTimeout > opts.maxTimeout) {
        throw new Error("minTimeout is greater than maxTimeout");
      }
      var timeouts = [];
      for (var i22 = 0; i22 < opts.retries; i22++) {
        timeouts.push(this.createTimeout(i22, opts));
      }
      if (options && options.forever && !timeouts.length) {
        timeouts.push(this.createTimeout(i22, opts));
      }
      timeouts.sort(function(a2, b2) {
        return a2 - b2;
      });
      return timeouts;
    };
    exports2.createTimeout = function(attempt, opts) {
      var random = opts.randomize ? Math.random() + 1 : 1;
      var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt));
      timeout = Math.min(timeout, opts.maxTimeout);
      return timeout;
    };
    exports2.wrap = function(obj, options, methods) {
      if (options instanceof Array) {
        methods = options;
        options = null;
      }
      if (!methods) {
        methods = [];
        for (var key in obj) {
          if (typeof obj[key] === "function") {
            methods.push(key);
          }
        }
      }
      for (var i22 = 0; i22 < methods.length; i22++) {
        var method = methods[i22];
        var original = obj[method];
        obj[method] = function retryWrapper(original2) {
          var op = exports2.operation(options);
          var args = Array.prototype.slice.call(arguments, 1);
          var callback = args.pop();
          args.push(function(err2) {
            if (op.retry(err2)) {
              return;
            }
            if (err2) {
              arguments[0] = op.mainError();
            }
            callback.apply(this, arguments);
          });
          op.attempt(function() {
            original2.apply(obj, args);
          });
        }.bind(obj, original);
        obj[method].options = options;
      }
    };
  }
});
var require_retry2 = __commonJS2({
  "../../node_modules/.pnpm/retry@0.12.0/node_modules/retry/index.js"(exports2, module2) {
    module2.exports = require_retry();
  }
});
var require_signals = __commonJS2({
  "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports2, module2) {
    module2.exports = [
      "SIGABRT",
      "SIGALRM",
      "SIGHUP",
      "SIGINT",
      "SIGTERM"
    ];
    if (process.platform !== "win32") {
      module2.exports.push(
        "SIGVTALRM",
        "SIGXCPU",
        "SIGXFSZ",
        "SIGUSR2",
        "SIGTRAP",
        "SIGSYS",
        "SIGQUIT",
        "SIGIOT"
        // should detect profiler and enable/disable accordingly.
        // see #21
        // 'SIGPROF'
      );
    }
    if (process.platform === "linux") {
      module2.exports.push(
        "SIGIO",
        "SIGPOLL",
        "SIGPWR",
        "SIGSTKFLT",
        "SIGUNUSED"
      );
    }
  }
});
var require_signal_exit = __commonJS2({
  "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports2, module2) {
    var process42 = global.process;
    var processOk = function(process5) {
      return process5 && typeof process5 === "object" && typeof process5.removeListener === "function" && typeof process5.emit === "function" && typeof process5.reallyExit === "function" && typeof process5.listeners === "function" && typeof process5.kill === "function" && typeof process5.pid === "number" && typeof process5.on === "function";
    };
    if (!processOk(process42)) {
      module2.exports = function() {
        return function() {
        };
      };
    } else {
      assert3 = __require("assert");
      signals = require_signals();
      isWin = /^win/i.test(process42.platform);
      EE = __require("events");
      if (typeof EE !== "function") {
        EE = EE.EventEmitter;
      }
      if (process42.__signal_exit_emitter__) {
        emitter = process42.__signal_exit_emitter__;
      } else {
        emitter = process42.__signal_exit_emitter__ = new EE();
        emitter.count = 0;
        emitter.emitted = {};
      }
      if (!emitter.infinite) {
        emitter.setMaxListeners(Infinity);
        emitter.infinite = true;
      }
      module2.exports = function(cb, opts) {
        if (!processOk(global.process)) {
          return function() {
          };
        }
        assert3.equal(typeof cb, "function", "a callback must be provided for exit handler");
        if (loaded === false) {
          load();
        }
        var ev = "exit";
        if (opts && opts.alwaysLast) {
          ev = "afterexit";
        }
        var remove = function() {
          emitter.removeListener(ev, cb);
          if (emitter.listeners("exit").length === 0 && emitter.listeners("afterexit").length === 0) {
            unload();
          }
        };
        emitter.on(ev, cb);
        return remove;
      };
      unload = function unload2() {
        if (!loaded || !processOk(global.process)) {
          return;
        }
        loaded = false;
        signals.forEach(function(sig) {
          try {
            process42.removeListener(sig, sigListeners[sig]);
          } catch (er3) {
          }
        });
        process42.emit = originalProcessEmit;
        process42.reallyExit = originalProcessReallyExit;
        emitter.count -= 1;
      };
      module2.exports.unload = unload;
      emit = function emit2(event, code, signal) {
        if (emitter.emitted[event]) {
          return;
        }
        emitter.emitted[event] = true;
        emitter.emit(event, code, signal);
      };
      sigListeners = {};
      signals.forEach(function(sig) {
        sigListeners[sig] = function listener() {
          if (!processOk(global.process)) {
            return;
          }
          var listeners = process42.listeners(sig);
          if (listeners.length === emitter.count) {
            unload();
            emit("exit", null, sig);
            emit("afterexit", null, sig);
            if (isWin && sig === "SIGHUP") {
              sig = "SIGINT";
            }
            process42.kill(process42.pid, sig);
          }
        };
      });
      module2.exports.signals = function() {
        return signals;
      };
      loaded = false;
      load = function load2() {
        if (loaded || !processOk(global.process)) {
          return;
        }
        loaded = true;
        emitter.count += 1;
        signals = signals.filter(function(sig) {
          try {
            process42.on(sig, sigListeners[sig]);
            return true;
          } catch (er3) {
            return false;
          }
        });
        process42.emit = processEmit;
        process42.reallyExit = processReallyExit;
      };
      module2.exports.load = load;
      originalProcessReallyExit = process42.reallyExit;
      processReallyExit = function processReallyExit2(code) {
        if (!processOk(global.process)) {
          return;
        }
        process42.exitCode = code || /* istanbul ignore next */
        0;
        emit("exit", process42.exitCode, null);
        emit("afterexit", process42.exitCode, null);
        originalProcessReallyExit.call(process42, process42.exitCode);
      };
      originalProcessEmit = process42.emit;
      processEmit = function processEmit2(ev, arg) {
        if (ev === "exit" && processOk(global.process)) {
          if (arg !== void 0) {
            process42.exitCode = arg;
          }
          var ret = originalProcessEmit.apply(this, arguments);
          emit("exit", process42.exitCode, null);
          emit("afterexit", process42.exitCode, null);
          return ret;
        } else {
          return originalProcessEmit.apply(this, arguments);
        }
      };
    }
    var assert3;
    var signals;
    var isWin;
    var EE;
    var emitter;
    var unload;
    var emit;
    var sigListeners;
    var loaded;
    var load;
    var originalProcessReallyExit;
    var processReallyExit;
    var originalProcessEmit;
    var processEmit;
  }
});
var require_mtime_precision = __commonJS2({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/mtime-precision.js"(exports2, module2) {
    "use strict";
    var cacheSymbol = Symbol();
    function probe(file, fs32, callback) {
      const cachedPrecision = fs32[cacheSymbol];
      if (cachedPrecision) {
        return fs32.stat(file, (err2, stat) => {
          if (err2) {
            return callback(err2);
          }
          callback(null, stat.mtime, cachedPrecision);
        });
      }
      const mtime = new Date(Math.ceil(Date.now() / 1e3) * 1e3 + 5);
      fs32.utimes(file, mtime, mtime, (err2) => {
        if (err2) {
          return callback(err2);
        }
        fs32.stat(file, (err3, stat) => {
          if (err3) {
            return callback(err3);
          }
          const precision = stat.mtime.getTime() % 1e3 === 0 ? "s" : "ms";
          Object.defineProperty(fs32, cacheSymbol, { value: precision });
          callback(null, stat.mtime, precision);
        });
      });
    }
    function getMtime(precision) {
      let now = Date.now();
      if (precision === "s") {
        now = Math.ceil(now / 1e3) * 1e3;
      }
      return new Date(now);
    }
    module2.exports.probe = probe;
    module2.exports.getMtime = getMtime;
  }
});
var require_lockfile = __commonJS2({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/lockfile.js"(exports2, module2) {
    "use strict";
    var path22 = __require("path");
    var fs32 = require_graceful_fs();
    var retry = require_retry2();
    var onExit = require_signal_exit();
    var mtimePrecision = require_mtime_precision();
    var locks = {};
    function getLockFile(file, options) {
      return options.lockfilePath || `${file}.lock`;
    }
    function resolveCanonicalPath(file, options, callback) {
      if (!options.realpath) {
        return callback(null, path22.resolve(file));
      }
      options.fs.realpath(file, callback);
    }
    function acquireLock(file, options, callback) {
      const lockfilePath = getLockFile(file, options);
      options.fs.mkdir(lockfilePath, (err2) => {
        if (!err2) {
          return mtimePrecision.probe(lockfilePath, options.fs, (err3, mtime, mtimePrecision2) => {
            if (err3) {
              options.fs.rmdir(lockfilePath, () => {
              });
              return callback(err3);
            }
            callback(null, mtime, mtimePrecision2);
          });
        }
        if (err2.code !== "EEXIST") {
          return callback(err2);
        }
        if (options.stale <= 0) {
          return callback(Object.assign(new Error("Lock file is already being held"), { code: "ELOCKED", file }));
        }
        options.fs.stat(lockfilePath, (err3, stat) => {
          if (err3) {
            if (err3.code === "ENOENT") {
              return acquireLock(file, { ...options, stale: 0 }, callback);
            }
            return callback(err3);
          }
          if (!isLockStale(stat, options)) {
            return callback(Object.assign(new Error("Lock file is already being held"), { code: "ELOCKED", file }));
          }
          removeLock(file, options, (err4) => {
            if (err4) {
              return callback(err4);
            }
            acquireLock(file, { ...options, stale: 0 }, callback);
          });
        });
      });
    }
    function isLockStale(stat, options) {
      return stat.mtime.getTime() < Date.now() - options.stale;
    }
    function removeLock(file, options, callback) {
      options.fs.rmdir(getLockFile(file, options), (err2) => {
        if (err2 && err2.code !== "ENOENT") {
          return callback(err2);
        }
        callback();
      });
    }
    function updateLock(file, options) {
      const lock2 = locks[file];
      if (lock2.updateTimeout) {
        return;
      }
      lock2.updateDelay = lock2.updateDelay || options.update;
      lock2.updateTimeout = setTimeout(() => {
        lock2.updateTimeout = null;
        options.fs.stat(lock2.lockfilePath, (err2, stat) => {
          const isOverThreshold = lock2.lastUpdate + options.stale < Date.now();
          if (err2) {
            if (err2.code === "ENOENT" || isOverThreshold) {
              return setLockAsCompromised(file, lock2, Object.assign(err2, { code: "ECOMPROMISED" }));
            }
            lock2.updateDelay = 1e3;
            return updateLock(file, options);
          }
          const isMtimeOurs = lock2.mtime.getTime() === stat.mtime.getTime();
          if (!isMtimeOurs) {
            return setLockAsCompromised(
              file,
              lock2,
              Object.assign(
                new Error("Unable to update lock within the stale threshold"),
                { code: "ECOMPROMISED" }
              )
            );
          }
          const mtime = mtimePrecision.getMtime(lock2.mtimePrecision);
          options.fs.utimes(lock2.lockfilePath, mtime, mtime, (err3) => {
            const isOverThreshold2 = lock2.lastUpdate + options.stale < Date.now();
            if (lock2.released) {
              return;
            }
            if (err3) {
              if (err3.code === "ENOENT" || isOverThreshold2) {
                return setLockAsCompromised(file, lock2, Object.assign(err3, { code: "ECOMPROMISED" }));
              }
              lock2.updateDelay = 1e3;
              return updateLock(file, options);
            }
            lock2.mtime = mtime;
            lock2.lastUpdate = Date.now();
            lock2.updateDelay = null;
            updateLock(file, options);
          });
        });
      }, lock2.updateDelay);
      if (lock2.updateTimeout.unref) {
        lock2.updateTimeout.unref();
      }
    }
    function setLockAsCompromised(file, lock2, err2) {
      lock2.released = true;
      if (lock2.updateTimeout) {
        clearTimeout(lock2.updateTimeout);
      }
      if (locks[file] === lock2) {
        delete locks[file];
      }
      lock2.options.onCompromised(err2);
    }
    function lock(file, options, callback) {
      options = {
        stale: 1e4,
        update: null,
        realpath: true,
        retries: 0,
        fs: fs32,
        onCompromised: (err2) => {
          throw err2;
        },
        ...options
      };
      options.retries = options.retries || 0;
      options.retries = typeof options.retries === "number" ? { retries: options.retries } : options.retries;
      options.stale = Math.max(options.stale || 0, 2e3);
      options.update = options.update == null ? options.stale / 2 : options.update || 0;
      options.update = Math.max(Math.min(options.update, options.stale / 2), 1e3);
      resolveCanonicalPath(file, options, (err2, file2) => {
        if (err2) {
          return callback(err2);
        }
        const operation = retry.operation(options.retries);
        operation.attempt(() => {
          acquireLock(file2, options, (err3, mtime, mtimePrecision2) => {
            if (operation.retry(err3)) {
              return;
            }
            if (err3) {
              return callback(operation.mainError());
            }
            const lock2 = locks[file2] = {
              lockfilePath: getLockFile(file2, options),
              mtime,
              mtimePrecision: mtimePrecision2,
              options,
              lastUpdate: Date.now()
            };
            updateLock(file2, options);
            callback(null, (releasedCallback) => {
              if (lock2.released) {
                return releasedCallback && releasedCallback(Object.assign(new Error("Lock is already released"), { code: "ERELEASED" }));
              }
              unlock(file2, { ...options, realpath: false }, releasedCallback);
            });
          });
        });
      });
    }
    function unlock(file, options, callback) {
      options = {
        fs: fs32,
        realpath: true,
        ...options
      };
      resolveCanonicalPath(file, options, (err2, file2) => {
        if (err2) {
          return callback(err2);
        }
        const lock2 = locks[file2];
        if (!lock2) {
          return callback(Object.assign(new Error("Lock is not acquired/owned by you"), { code: "ENOTACQUIRED" }));
        }
        lock2.updateTimeout && clearTimeout(lock2.updateTimeout);
        lock2.released = true;
        delete locks[file2];
        removeLock(file2, options, callback);
      });
    }
    function check(file, options, callback) {
      options = {
        stale: 1e4,
        realpath: true,
        fs: fs32,
        ...options
      };
      options.stale = Math.max(options.stale || 0, 2e3);
      resolveCanonicalPath(file, options, (err2, file2) => {
        if (err2) {
          return callback(err2);
        }
        options.fs.stat(getLockFile(file2, options), (err3, stat) => {
          if (err3) {
            return err3.code === "ENOENT" ? callback(null, false) : callback(err3);
          }
          return callback(null, !isLockStale(stat, options));
        });
      });
    }
    function getLocks() {
      return locks;
    }
    onExit(() => {
      for (const file in locks) {
        const options = locks[file].options;
        try {
          options.fs.rmdirSync(getLockFile(file, options));
        } catch (e2) {
        }
      }
    });
    module2.exports.lock = lock;
    module2.exports.unlock = unlock;
    module2.exports.check = check;
    module2.exports.getLocks = getLocks;
  }
});
var require_adapter = __commonJS2({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/lib/adapter.js"(exports2, module2) {
    "use strict";
    var fs32 = require_graceful_fs();
    function createSyncFs(fs42) {
      const methods = ["mkdir", "realpath", "stat", "rmdir", "utimes"];
      const newFs = { ...fs42 };
      methods.forEach((method) => {
        newFs[method] = (...args) => {
          const callback = args.pop();
          let ret;
          try {
            ret = fs42[`${method}Sync`](...args);
          } catch (err2) {
            return callback(err2);
          }
          callback(null, ret);
        };
      });
      return newFs;
    }
    function toPromise(method) {
      return (...args) => new Promise((resolve2, reject) => {
        args.push((err2, result) => {
          if (err2) {
            reject(err2);
          } else {
            resolve2(result);
          }
        });
        method(...args);
      });
    }
    function toSync(method) {
      return (...args) => {
        let err2;
        let result;
        args.push((_err, _result) => {
          err2 = _err;
          result = _result;
        });
        method(...args);
        if (err2) {
          throw err2;
        }
        return result;
      };
    }
    function toSyncOptions(options) {
      options = { ...options };
      options.fs = createSyncFs(options.fs || fs32);
      if (typeof options.retries === "number" && options.retries > 0 || options.retries && typeof options.retries.retries === "number" && options.retries.retries > 0) {
        throw Object.assign(new Error("Cannot use retries with the sync api"), { code: "ESYNC" });
      }
      return options;
    }
    module2.exports = {
      toPromise,
      toSync,
      toSyncOptions
    };
  }
});
var require_proper_lockfile = __commonJS2({
  "../../node_modules/.pnpm/proper-lockfile@4.1.2/node_modules/proper-lockfile/index.js"(exports2, module2) {
    "use strict";
    var lockfile = require_lockfile();
    var { toPromise, toSync, toSyncOptions } = require_adapter();
    async function lock(file, options) {
      const release = await toPromise(lockfile.lock)(file, options);
      return toPromise(release);
    }
    function lockSync(file, options) {
      const release = toSync(lockfile.lock)(file, toSyncOptions(options));
      return toSync(release);
    }
    function unlock(file, options) {
      return toPromise(lockfile.unlock)(file, options);
    }
    function unlockSync(file, options) {
      return toSync(lockfile.unlock)(file, toSyncOptions(options));
    }
    function check(file, options) {
      return toPromise(lockfile.check)(file, options);
    }
    function checkSync(file, options) {
      return toSync(lockfile.check)(file, toSyncOptions(options));
    }
    module2.exports = lock;
    module2.exports.lock = lock;
    module2.exports.unlock = unlock;
    module2.exports.lockSync = lockSync;
    module2.exports.unlockSync = unlockSync;
    module2.exports.check = check;
    module2.exports.checkSync = checkSync;
  }
});
var require_fs_utils = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/background-handler/fs-utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.handleMessage = handleMessage;
    exports2.lockAndWrite = lockAndWrite;
    exports2.lockAndCallback = lockAndCallback;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_fs_1 = __require("node:fs");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var promises_2 = __require("node:timers/promises");
    var fs_extra_1 = require_lib();
    var proper_lockfile_1 = require_proper_lockfile();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var backgroundHandlerLog = log_1.default.child({ prefix: "MemoryStorageBackgroundHandler" });
    async function handleMessage(message) {
      switch (message.action) {
        case "update-metadata":
          await updateMetadata(message);
          break;
        default:
          backgroundHandlerLog.warning(`Unknown background handler message action ${message.action}`);
      }
    }
    async function updateMetadata(message) {
      if (!message.writeMetadata) {
        return;
      }
      const dir = message.entityDirectory;
      await (0, fs_extra_1.ensureDir)(dir);
      const filePath = (0, node_path_1.resolve)(dir, "__metadata__.json");
      await (0, promises_1.writeFile)(filePath, JSON.stringify(message.data, null, "	"));
    }
    async function lockAndWrite(filePath, data, stringify = true, retry = 10, timeout = 10) {
      await lockAndCallback(filePath, async () => {
        await new Promise((pResolve, reject) => {
          (0, node_fs_1.writeFile)(filePath, stringify ? JSON.stringify(data, null, "	") : data, (err2) => {
            if (err2) {
              reject(err2);
            } else {
              pResolve();
            }
          });
        });
      }, retry, timeout);
    }
    async function lockAndCallback(filePath, callback, retry = 10, timeout = 10) {
      let release = null;
      try {
        release = await (0, proper_lockfile_1.lock)(filePath, { realpath: false });
        return await callback();
      } catch (e2) {
        if (e2.code === "ELOCKED" && retry > 0) {
          await (0, promises_2.setTimeout)(timeout);
          return lockAndCallback(filePath, callback, retry - 1, timeout * 2);
        }
        throw e2;
      } finally {
        if (release) {
          await release();
        }
      }
    }
  }
});
var require_background_handler = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/background-handler/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.promiseMap = void 0;
    exports2.scheduleBackgroundTask = scheduleBackgroundTask;
    var node_crypto_1 = __require("node:crypto");
    var fs_utils_1 = require_fs_utils();
    exports2.promiseMap = /* @__PURE__ */ new Map();
    function scheduleBackgroundTask(message) {
      const id = (0, node_crypto_1.randomUUID)();
      let promiseResolve;
      const promise = new Promise((res) => {
        promiseResolve = res;
      });
      exports2.promiseMap.set(id, {
        promise,
        resolve: promiseResolve
      });
      void handleBackgroundMessage({
        ...message,
        messageId: id
      });
    }
    async function handleBackgroundMessage(message) {
      await (0, fs_utils_1.handleMessage)(message);
      exports2.promiseMap.get(message.messageId)?.resolve();
      exports2.promiseMap.delete(message.messageId);
    }
  }
});
var require_unicode = __commonJS2({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/unicode.js"(exports2, module2) {
    module2.exports.Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
    module2.exports.ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
    module2.exports.ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
  }
});
var require_util = __commonJS2({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/util.js"(exports2, module2) {
    var unicode2 = require_unicode();
    module2.exports = {
      isSpaceSeparator(c3) {
        return typeof c3 === "string" && unicode2.Space_Separator.test(c3);
      },
      isIdStartChar(c3) {
        return typeof c3 === "string" && (c3 >= "a" && c3 <= "z" || c3 >= "A" && c3 <= "Z" || c3 === "$" || c3 === "_" || unicode2.ID_Start.test(c3));
      },
      isIdContinueChar(c3) {
        return typeof c3 === "string" && (c3 >= "a" && c3 <= "z" || c3 >= "A" && c3 <= "Z" || c3 >= "0" && c3 <= "9" || c3 === "$" || c3 === "_" || c3 === "\u200C" || c3 === "\u200D" || unicode2.ID_Continue.test(c3));
      },
      isDigit(c3) {
        return typeof c3 === "string" && /[0-9]/.test(c3);
      },
      isHexDigit(c3) {
        return typeof c3 === "string" && /[0-9A-Fa-f]/.test(c3);
      }
    };
  }
});
var require_parse = __commonJS2({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/parse.js"(exports2, module2) {
    var util32 = require_util();
    var source;
    var parseState;
    var stack;
    var pos;
    var line;
    var column;
    var token2;
    var key;
    var root;
    module2.exports = function parse(text, reviver) {
      source = String(text);
      parseState = "start";
      stack = [];
      pos = 0;
      line = 1;
      column = 0;
      token2 = void 0;
      key = void 0;
      root = void 0;
      do {
        token2 = lex();
        parseStates[parseState]();
      } while (token2.type !== "eof");
      if (typeof reviver === "function") {
        return internalize({ "": root }, "", reviver);
      }
      return root;
    };
    function internalize(holder, name2, reviver) {
      const value = holder[name2];
      if (value != null && typeof value === "object") {
        if (Array.isArray(value)) {
          for (let i22 = 0; i22 < value.length; i22++) {
            const key2 = String(i22);
            const replacement = internalize(value, key2, reviver);
            if (replacement === void 0) {
              delete value[key2];
            } else {
              Object.defineProperty(value, key2, {
                value: replacement,
                writable: true,
                enumerable: true,
                configurable: true
              });
            }
          }
        } else {
          for (const key2 in value) {
            const replacement = internalize(value, key2, reviver);
            if (replacement === void 0) {
              delete value[key2];
            } else {
              Object.defineProperty(value, key2, {
                value: replacement,
                writable: true,
                enumerable: true,
                configurable: true
              });
            }
          }
        }
      }
      return reviver.call(holder, name2, value);
    }
    var lexState;
    var buffer;
    var doubleQuote;
    var sign;
    var c3;
    function lex() {
      lexState = "default";
      buffer = "";
      doubleQuote = false;
      sign = 1;
      for (; ; ) {
        c3 = peek();
        const token22 = lexStates[lexState]();
        if (token22) {
          return token22;
        }
      }
    }
    function peek() {
      if (source[pos]) {
        return String.fromCodePoint(source.codePointAt(pos));
      }
    }
    function read2() {
      const c4 = peek();
      if (c4 === "\n") {
        line++;
        column = 0;
      } else if (c4) {
        column += c4.length;
      } else {
        column++;
      }
      if (c4) {
        pos += c4.length;
      }
      return c4;
    }
    var lexStates = {
      default() {
        switch (c3) {
          case "	":
          case "\v":
          case "\f":
          case " ":
          case "\xA0":
          case "\uFEFF":
          case "\n":
          case "\r":
          case "\u2028":
          case "\u2029":
            read2();
            return;
          case "/":
            read2();
            lexState = "comment";
            return;
          case void 0:
            read2();
            return newToken("eof");
        }
        if (util32.isSpaceSeparator(c3)) {
          read2();
          return;
        }
        return lexStates[parseState]();
      },
      comment() {
        switch (c3) {
          case "*":
            read2();
            lexState = "multiLineComment";
            return;
          case "/":
            read2();
            lexState = "singleLineComment";
            return;
        }
        throw invalidChar(read2());
      },
      multiLineComment() {
        switch (c3) {
          case "*":
            read2();
            lexState = "multiLineCommentAsterisk";
            return;
          case void 0:
            throw invalidChar(read2());
        }
        read2();
      },
      multiLineCommentAsterisk() {
        switch (c3) {
          case "*":
            read2();
            return;
          case "/":
            read2();
            lexState = "default";
            return;
          case void 0:
            throw invalidChar(read2());
        }
        read2();
        lexState = "multiLineComment";
      },
      singleLineComment() {
        switch (c3) {
          case "\n":
          case "\r":
          case "\u2028":
          case "\u2029":
            read2();
            lexState = "default";
            return;
          case void 0:
            read2();
            return newToken("eof");
        }
        read2();
      },
      value() {
        switch (c3) {
          case "{":
          case "[":
            return newToken("punctuator", read2());
          case "n":
            read2();
            literal2("ull");
            return newToken("null", null);
          case "t":
            read2();
            literal2("rue");
            return newToken("boolean", true);
          case "f":
            read2();
            literal2("alse");
            return newToken("boolean", false);
          case "-":
          case "+":
            if (read2() === "-") {
              sign = -1;
            }
            lexState = "sign";
            return;
          case ".":
            buffer = read2();
            lexState = "decimalPointLeading";
            return;
          case "0":
            buffer = read2();
            lexState = "zero";
            return;
          case "1":
          case "2":
          case "3":
          case "4":
          case "5":
          case "6":
          case "7":
          case "8":
          case "9":
            buffer = read2();
            lexState = "decimalInteger";
            return;
          case "I":
            read2();
            literal2("nfinity");
            return newToken("numeric", Infinity);
          case "N":
            read2();
            literal2("aN");
            return newToken("numeric", NaN);
          case '"':
          case "'":
            doubleQuote = read2() === '"';
            buffer = "";
            lexState = "string";
            return;
        }
        throw invalidChar(read2());
      },
      identifierNameStartEscape() {
        if (c3 !== "u") {
          throw invalidChar(read2());
        }
        read2();
        const u2 = unicodeEscape2();
        switch (u2) {
          case "$":
          case "_":
            break;
          default:
            if (!util32.isIdStartChar(u2)) {
              throw invalidIdentifier();
            }
            break;
        }
        buffer += u2;
        lexState = "identifierName";
      },
      identifierName() {
        switch (c3) {
          case "$":
          case "_":
          case "\u200C":
          case "\u200D":
            buffer += read2();
            return;
          case "\\":
            read2();
            lexState = "identifierNameEscape";
            return;
        }
        if (util32.isIdContinueChar(c3)) {
          buffer += read2();
          return;
        }
        return newToken("identifier", buffer);
      },
      identifierNameEscape() {
        if (c3 !== "u") {
          throw invalidChar(read2());
        }
        read2();
        const u2 = unicodeEscape2();
        switch (u2) {
          case "$":
          case "_":
          case "\u200C":
          case "\u200D":
            break;
          default:
            if (!util32.isIdContinueChar(u2)) {
              throw invalidIdentifier();
            }
            break;
        }
        buffer += u2;
        lexState = "identifierName";
      },
      sign() {
        switch (c3) {
          case ".":
            buffer = read2();
            lexState = "decimalPointLeading";
            return;
          case "0":
            buffer = read2();
            lexState = "zero";
            return;
          case "1":
          case "2":
          case "3":
          case "4":
          case "5":
          case "6":
          case "7":
          case "8":
          case "9":
            buffer = read2();
            lexState = "decimalInteger";
            return;
          case "I":
            read2();
            literal2("nfinity");
            return newToken("numeric", sign * Infinity);
          case "N":
            read2();
            literal2("aN");
            return newToken("numeric", NaN);
        }
        throw invalidChar(read2());
      },
      zero() {
        switch (c3) {
          case ".":
            buffer += read2();
            lexState = "decimalPoint";
            return;
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
          case "x":
          case "X":
            buffer += read2();
            lexState = "hexadecimal";
            return;
        }
        return newToken("numeric", sign * 0);
      },
      decimalInteger() {
        switch (c3) {
          case ".":
            buffer += read2();
            lexState = "decimalPoint";
            return;
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
        }
        if (util32.isDigit(c3)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      decimalPointLeading() {
        if (util32.isDigit(c3)) {
          buffer += read2();
          lexState = "decimalFraction";
          return;
        }
        throw invalidChar(read2());
      },
      decimalPoint() {
        switch (c3) {
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
        }
        if (util32.isDigit(c3)) {
          buffer += read2();
          lexState = "decimalFraction";
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      decimalFraction() {
        switch (c3) {
          case "e":
          case "E":
            buffer += read2();
            lexState = "decimalExponent";
            return;
        }
        if (util32.isDigit(c3)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      decimalExponent() {
        switch (c3) {
          case "+":
          case "-":
            buffer += read2();
            lexState = "decimalExponentSign";
            return;
        }
        if (util32.isDigit(c3)) {
          buffer += read2();
          lexState = "decimalExponentInteger";
          return;
        }
        throw invalidChar(read2());
      },
      decimalExponentSign() {
        if (util32.isDigit(c3)) {
          buffer += read2();
          lexState = "decimalExponentInteger";
          return;
        }
        throw invalidChar(read2());
      },
      decimalExponentInteger() {
        if (util32.isDigit(c3)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      hexadecimal() {
        if (util32.isHexDigit(c3)) {
          buffer += read2();
          lexState = "hexadecimalInteger";
          return;
        }
        throw invalidChar(read2());
      },
      hexadecimalInteger() {
        if (util32.isHexDigit(c3)) {
          buffer += read2();
          return;
        }
        return newToken("numeric", sign * Number(buffer));
      },
      string() {
        switch (c3) {
          case "\\":
            read2();
            buffer += escape22();
            return;
          case '"':
            if (doubleQuote) {
              read2();
              return newToken("string", buffer);
            }
            buffer += read2();
            return;
          case "'":
            if (!doubleQuote) {
              read2();
              return newToken("string", buffer);
            }
            buffer += read2();
            return;
          case "\n":
          case "\r":
            throw invalidChar(read2());
          case "\u2028":
          case "\u2029":
            separatorChar(c3);
            break;
          case void 0:
            throw invalidChar(read2());
        }
        buffer += read2();
      },
      start() {
        switch (c3) {
          case "{":
          case "[":
            return newToken("punctuator", read2());
        }
        lexState = "value";
      },
      beforePropertyName() {
        switch (c3) {
          case "$":
          case "_":
            buffer = read2();
            lexState = "identifierName";
            return;
          case "\\":
            read2();
            lexState = "identifierNameStartEscape";
            return;
          case "}":
            return newToken("punctuator", read2());
          case '"':
          case "'":
            doubleQuote = read2() === '"';
            lexState = "string";
            return;
        }
        if (util32.isIdStartChar(c3)) {
          buffer += read2();
          lexState = "identifierName";
          return;
        }
        throw invalidChar(read2());
      },
      afterPropertyName() {
        if (c3 === ":") {
          return newToken("punctuator", read2());
        }
        throw invalidChar(read2());
      },
      beforePropertyValue() {
        lexState = "value";
      },
      afterPropertyValue() {
        switch (c3) {
          case ",":
          case "}":
            return newToken("punctuator", read2());
        }
        throw invalidChar(read2());
      },
      beforeArrayValue() {
        if (c3 === "]") {
          return newToken("punctuator", read2());
        }
        lexState = "value";
      },
      afterArrayValue() {
        switch (c3) {
          case ",":
          case "]":
            return newToken("punctuator", read2());
        }
        throw invalidChar(read2());
      },
      end() {
        throw invalidChar(read2());
      }
    };
    function newToken(type, value) {
      return {
        type,
        value,
        line,
        column
      };
    }
    function literal2(s2) {
      for (const c4 of s2) {
        const p = peek();
        if (p !== c4) {
          throw invalidChar(read2());
        }
        read2();
      }
    }
    function escape22() {
      const c4 = peek();
      switch (c4) {
        case "b":
          read2();
          return "\b";
        case "f":
          read2();
          return "\f";
        case "n":
          read2();
          return "\n";
        case "r":
          read2();
          return "\r";
        case "t":
          read2();
          return "	";
        case "v":
          read2();
          return "\v";
        case "0":
          read2();
          if (util32.isDigit(peek())) {
            throw invalidChar(read2());
          }
          return "\0";
        case "x":
          read2();
          return hexEscape();
        case "u":
          read2();
          return unicodeEscape2();
        case "\n":
        case "\u2028":
        case "\u2029":
          read2();
          return "";
        case "\r":
          read2();
          if (peek() === "\n") {
            read2();
          }
          return "";
        case "1":
        case "2":
        case "3":
        case "4":
        case "5":
        case "6":
        case "7":
        case "8":
        case "9":
          throw invalidChar(read2());
        case void 0:
          throw invalidChar(read2());
      }
      return read2();
    }
    function hexEscape() {
      let buffer2 = "";
      let c4 = peek();
      if (!util32.isHexDigit(c4)) {
        throw invalidChar(read2());
      }
      buffer2 += read2();
      c4 = peek();
      if (!util32.isHexDigit(c4)) {
        throw invalidChar(read2());
      }
      buffer2 += read2();
      return String.fromCodePoint(parseInt(buffer2, 16));
    }
    function unicodeEscape2() {
      let buffer2 = "";
      let count = 4;
      while (count-- > 0) {
        const c4 = peek();
        if (!util32.isHexDigit(c4)) {
          throw invalidChar(read2());
        }
        buffer2 += read2();
      }
      return String.fromCodePoint(parseInt(buffer2, 16));
    }
    var parseStates = {
      start() {
        if (token2.type === "eof") {
          throw invalidEOF();
        }
        push();
      },
      beforePropertyName() {
        switch (token2.type) {
          case "identifier":
          case "string":
            key = token2.value;
            parseState = "afterPropertyName";
            return;
          case "punctuator":
            pop();
            return;
          case "eof":
            throw invalidEOF();
        }
      },
      afterPropertyName() {
        if (token2.type === "eof") {
          throw invalidEOF();
        }
        parseState = "beforePropertyValue";
      },
      beforePropertyValue() {
        if (token2.type === "eof") {
          throw invalidEOF();
        }
        push();
      },
      beforeArrayValue() {
        if (token2.type === "eof") {
          throw invalidEOF();
        }
        if (token2.type === "punctuator" && token2.value === "]") {
          pop();
          return;
        }
        push();
      },
      afterPropertyValue() {
        if (token2.type === "eof") {
          throw invalidEOF();
        }
        switch (token2.value) {
          case ",":
            parseState = "beforePropertyName";
            return;
          case "}":
            pop();
        }
      },
      afterArrayValue() {
        if (token2.type === "eof") {
          throw invalidEOF();
        }
        switch (token2.value) {
          case ",":
            parseState = "beforeArrayValue";
            return;
          case "]":
            pop();
        }
      },
      end() {
      }
    };
    function push() {
      let value;
      switch (token2.type) {
        case "punctuator":
          switch (token2.value) {
            case "{":
              value = {};
              break;
            case "[":
              value = [];
              break;
          }
          break;
        case "null":
        case "boolean":
        case "numeric":
        case "string":
          value = token2.value;
          break;
      }
      if (root === void 0) {
        root = value;
      } else {
        const parent = stack[stack.length - 1];
        if (Array.isArray(parent)) {
          parent.push(value);
        } else {
          Object.defineProperty(parent, key, {
            value,
            writable: true,
            enumerable: true,
            configurable: true
          });
        }
      }
      if (value !== null && typeof value === "object") {
        stack.push(value);
        if (Array.isArray(value)) {
          parseState = "beforeArrayValue";
        } else {
          parseState = "beforePropertyName";
        }
      } else {
        const current = stack[stack.length - 1];
        if (current == null) {
          parseState = "end";
        } else if (Array.isArray(current)) {
          parseState = "afterArrayValue";
        } else {
          parseState = "afterPropertyValue";
        }
      }
    }
    function pop() {
      stack.pop();
      const current = stack[stack.length - 1];
      if (current == null) {
        parseState = "end";
      } else if (Array.isArray(current)) {
        parseState = "afterArrayValue";
      } else {
        parseState = "afterPropertyValue";
      }
    }
    function invalidChar(c4) {
      if (c4 === void 0) {
        return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
      }
      return syntaxError(`JSON5: invalid character '${formatChar(c4)}' at ${line}:${column}`);
    }
    function invalidEOF() {
      return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
    }
    function invalidIdentifier() {
      column -= 5;
      return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`);
    }
    function separatorChar(c4) {
      console.warn(`JSON5: '${formatChar(c4)}' in strings is not valid ECMAScript; consider escaping`);
    }
    function formatChar(c4) {
      const replacements = {
        "'": "\\'",
        '"': '\\"',
        "\\": "\\\\",
        "\b": "\\b",
        "\f": "\\f",
        "\n": "\\n",
        "\r": "\\r",
        "	": "\\t",
        "\v": "\\v",
        "\0": "\\0",
        "\u2028": "\\u2028",
        "\u2029": "\\u2029"
      };
      if (replacements[c4]) {
        return replacements[c4];
      }
      if (c4 < " ") {
        const hexString = c4.charCodeAt(0).toString(16);
        return "\\x" + ("00" + hexString).substring(hexString.length);
      }
      return c4;
    }
    function syntaxError(message) {
      const err2 = new SyntaxError(message);
      err2.lineNumber = line;
      err2.columnNumber = column;
      return err2;
    }
  }
});
var require_stringify = __commonJS2({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/stringify.js"(exports2, module2) {
    var util32 = require_util();
    module2.exports = function stringify(value, replacer, space) {
      const stack = [];
      let indent = "";
      let propertyList;
      let replacerFunc;
      let gap = "";
      let quote;
      if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) {
        space = replacer.space;
        quote = replacer.quote;
        replacer = replacer.replacer;
      }
      if (typeof replacer === "function") {
        replacerFunc = replacer;
      } else if (Array.isArray(replacer)) {
        propertyList = [];
        for (const v2 of replacer) {
          let item;
          if (typeof v2 === "string") {
            item = v2;
          } else if (typeof v2 === "number" || v2 instanceof String || v2 instanceof Number) {
            item = String(v2);
          }
          if (item !== void 0 && propertyList.indexOf(item) < 0) {
            propertyList.push(item);
          }
        }
      }
      if (space instanceof Number) {
        space = Number(space);
      } else if (space instanceof String) {
        space = String(space);
      }
      if (typeof space === "number") {
        if (space > 0) {
          space = Math.min(10, Math.floor(space));
          gap = "          ".substr(0, space);
        }
      } else if (typeof space === "string") {
        gap = space.substr(0, 10);
      }
      return serializeProperty("", { "": value });
      function serializeProperty(key, holder) {
        let value2 = holder[key];
        if (value2 != null) {
          if (typeof value2.toJSON5 === "function") {
            value2 = value2.toJSON5(key);
          } else if (typeof value2.toJSON === "function") {
            value2 = value2.toJSON(key);
          }
        }
        if (replacerFunc) {
          value2 = replacerFunc.call(holder, key, value2);
        }
        if (value2 instanceof Number) {
          value2 = Number(value2);
        } else if (value2 instanceof String) {
          value2 = String(value2);
        } else if (value2 instanceof Boolean) {
          value2 = value2.valueOf();
        }
        switch (value2) {
          case null:
            return "null";
          case true:
            return "true";
          case false:
            return "false";
        }
        if (typeof value2 === "string") {
          return quoteString(value2, false);
        }
        if (typeof value2 === "number") {
          return String(value2);
        }
        if (typeof value2 === "object") {
          return Array.isArray(value2) ? serializeArray2(value2) : serializeObject(value2);
        }
        return void 0;
      }
      function quoteString(value2) {
        const quotes = {
          "'": 0.1,
          '"': 0.2
        };
        const replacements = {
          "'": "\\'",
          '"': '\\"',
          "\\": "\\\\",
          "\b": "\\b",
          "\f": "\\f",
          "\n": "\\n",
          "\r": "\\r",
          "	": "\\t",
          "\v": "\\v",
          "\0": "\\0",
          "\u2028": "\\u2028",
          "\u2029": "\\u2029"
        };
        let product = "";
        for (let i22 = 0; i22 < value2.length; i22++) {
          const c3 = value2[i22];
          switch (c3) {
            case "'":
            case '"':
              quotes[c3]++;
              product += c3;
              continue;
            case "\0":
              if (util32.isDigit(value2[i22 + 1])) {
                product += "\\x00";
                continue;
              }
          }
          if (replacements[c3]) {
            product += replacements[c3];
            continue;
          }
          if (c3 < " ") {
            let hexString = c3.charCodeAt(0).toString(16);
            product += "\\x" + ("00" + hexString).substring(hexString.length);
            continue;
          }
          product += c3;
        }
        const quoteChar = quote || Object.keys(quotes).reduce((a2, b2) => quotes[a2] < quotes[b2] ? a2 : b2);
        product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]);
        return quoteChar + product + quoteChar;
      }
      function serializeObject(value2) {
        if (stack.indexOf(value2) >= 0) {
          throw TypeError("Converting circular structure to JSON5");
        }
        stack.push(value2);
        let stepback = indent;
        indent = indent + gap;
        let keys = propertyList || Object.keys(value2);
        let partial2 = [];
        for (const key of keys) {
          const propertyString = serializeProperty(key, value2);
          if (propertyString !== void 0) {
            let member = serializeKey(key) + ":";
            if (gap !== "") {
              member += " ";
            }
            member += propertyString;
            partial2.push(member);
          }
        }
        let final;
        if (partial2.length === 0) {
          final = "{}";
        } else {
          let properties;
          if (gap === "") {
            properties = partial2.join(",");
            final = "{" + properties + "}";
          } else {
            let separator = ",\n" + indent;
            properties = partial2.join(separator);
            final = "{\n" + indent + properties + ",\n" + stepback + "}";
          }
        }
        stack.pop();
        indent = stepback;
        return final;
      }
      function serializeKey(key) {
        if (key.length === 0) {
          return quoteString(key, true);
        }
        const firstChar = String.fromCodePoint(key.codePointAt(0));
        if (!util32.isIdStartChar(firstChar)) {
          return quoteString(key, true);
        }
        for (let i22 = firstChar.length; i22 < key.length; i22++) {
          if (!util32.isIdContinueChar(String.fromCodePoint(key.codePointAt(i22)))) {
            return quoteString(key, true);
          }
        }
        return key;
      }
      function serializeArray2(value2) {
        if (stack.indexOf(value2) >= 0) {
          throw TypeError("Converting circular structure to JSON5");
        }
        stack.push(value2);
        let stepback = indent;
        indent = indent + gap;
        let partial2 = [];
        for (let i22 = 0; i22 < value2.length; i22++) {
          const propertyString = serializeProperty(String(i22), value2);
          partial2.push(propertyString !== void 0 ? propertyString : "null");
        }
        let final;
        if (partial2.length === 0) {
          final = "[]";
        } else {
          if (gap === "") {
            let properties = partial2.join(",");
            final = "[" + properties + "]";
          } else {
            let separator = ",\n" + indent;
            let properties = partial2.join(separator);
            final = "[\n" + indent + properties + ",\n" + stepback + "]";
          }
        }
        stack.pop();
        indent = stepback;
        return final;
      }
    };
  }
});
var require_lib2 = __commonJS2({
  "../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/index.js"(exports2, module2) {
    var parse = require_parse();
    var stringify = require_stringify();
    var JSON5 = {
      parse,
      stringify
    };
    module2.exports = JSON5;
  }
});
var require_db = __commonJS2({
  "../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json"(exports2, module2) {
    module2.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
      }
    };
  }
});
var require_mime_db = __commonJS2({
  "../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js"(exports2, module2) {
    module2.exports = require_db();
  }
});
var require_mime_types = __commonJS2({
  "../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js"(exports2) {
    "use strict";
    var db = require_mime_db();
    var extname = __require("path").extname;
    var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
    var TEXT_TYPE_REGEXP = /^text\//i;
    exports2.charset = charset;
    exports2.charsets = { lookup: charset };
    exports2.contentType = contentType;
    exports2.extension = extension;
    exports2.extensions = /* @__PURE__ */ Object.create(null);
    exports2.lookup = lookup;
    exports2.types = /* @__PURE__ */ Object.create(null);
    populateMaps(exports2.extensions, exports2.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;
    }
    function contentType(str) {
      if (!str || typeof str !== "string") {
        return false;
      }
      var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
      if (!mime) {
        return false;
      }
      if (mime.indexOf("charset") === -1) {
        var charset2 = exports2.charset(mime);
        if (charset2) mime += "; charset=" + charset2.toLowerCase();
      }
      return mime;
    }
    function extension(type) {
      if (!type || typeof type !== "string") {
        return false;
      }
      var match = EXTRACT_TYPE_REGEXP.exec(type);
      var exts = match && exports2.extensions[match[1].toLowerCase()];
      if (!exts || !exts.length) {
        return false;
      }
      return exts[0];
    }
    function lookup(path22) {
      if (!path22 || typeof path22 !== "string") {
        return false;
      }
      var extension2 = extname("x." + path22).toLowerCase().substr(1);
      if (!extension2) {
        return false;
      }
      return exports2.types[extension2] || false;
    }
    function populateMaps(extensions2, types2) {
      var preference = ["nginx", "apache", void 0, "iana"];
      Object.keys(db).forEach(function forEachMimeType(type) {
        var mime = db[type];
        var exts = mime.extensions;
        if (!exts || !exts.length) {
          return;
        }
        extensions2[type] = exts;
        for (var i22 = 0; i22 < exts.length; i22++) {
          var extension2 = exts[i22];
          if (types2[extension2]) {
            var from = preference.indexOf(db[types2[extension2]].source);
            var to2 = preference.indexOf(mime.source);
            if (types2[extension2] !== "application/octet-stream" && (from > to2 || from === to2 && types2[extension2].substr(0, 12) === "application/")) {
              continue;
            }
          }
          types2[extension2] = type;
        }
      });
    }
  }
});
var require_cjs6 = __commonJS2({
  "../../node_modules/.pnpm/@sapphire+async-queue@1.5.5/node_modules/@sapphire/async-queue/dist/cjs/index.cjs"(exports2) {
    "use strict";
    var __defProp32 = Object.defineProperty;
    var __defNormalProp22 = (obj, key, value) => key in obj ? __defProp32(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var __publicField2 = (obj, key, value) => __defNormalProp22(obj, typeof key !== "symbol" ? key + "" : key, value);
    var _AsyncQueueEntry = class _AsyncQueueEntry {
      constructor(queue) {
        __publicField2(this, "promise");
        __publicField2(this, "resolve");
        __publicField2(this, "reject");
        __publicField2(this, "queue");
        __publicField2(this, "signal", null);
        __publicField2(this, "signalListener", null);
        this.queue = queue;
        this.promise = new Promise((resolve2, reject) => {
          this.resolve = resolve2;
          this.reject = reject;
        });
      }
      setSignal(signal) {
        if (signal.aborted) return this;
        this.signal = signal;
        this.signalListener = () => {
          const index = this.queue["promises"].indexOf(this);
          if (index !== -1) this.queue["promises"].splice(index, 1);
          this.reject(new Error("Request aborted manually"));
        };
        this.signal.addEventListener("abort", this.signalListener);
        return this;
      }
      use() {
        this.dispose();
        this.resolve();
        return this;
      }
      abort() {
        this.dispose();
        this.reject(new Error("Request aborted manually"));
        return this;
      }
      dispose() {
        if (this.signal) {
          this.signal.removeEventListener("abort", this.signalListener);
          this.signal = null;
          this.signalListener = null;
        }
      }
    };
    __name2(_AsyncQueueEntry, "AsyncQueueEntry");
    var AsyncQueueEntry = _AsyncQueueEntry;
    var _AsyncQueue = class _AsyncQueue {
      constructor() {
        __publicField2(this, "promises", []);
      }
      /**
       * The amount of entries in the queue, including the head.
       * @seealso {@link queued} for the queued count.
       */
      get remaining() {
        return this.promises.length;
      }
      /**
       * The amount of queued entries.
       * @seealso {@link remaining} for the count with the head.
       */
      get queued() {
        return this.remaining === 0 ? 0 : this.remaining - 1;
      }
      /**
       * Waits for last promise and queues a new one
       * @example
       * ```typescript
       * const queue = new AsyncQueue();
       * async function request(url, options) {
       *     await queue.wait({ signal: options.signal });
       *     try {
       *         const result = await fetch(url, options);
       *         // Do some operations with 'result'
       *     } finally {
       *         // Remove first entry from the queue and resolve for the next entry
       *         queue.shift();
       *     }
       * }
       *
       * request(someUrl1, someOptions1); // Will call fetch() immediately
       * request(someUrl2, someOptions2); // Will call fetch() after the first finished
       * request(someUrl3, someOptions3); // Will call fetch() after the second finished
       * ```
       */
      wait(options) {
        const entry = new AsyncQueueEntry(this);
        if (this.promises.length === 0) {
          this.promises.push(entry);
          return Promise.resolve();
        }
        this.promises.push(entry);
        if (options?.signal) entry.setSignal(options.signal);
        return entry.promise;
      }
      /**
       * Unlocks the head lock and transfers the next lock (if any) to the head.
       */
      shift() {
        if (this.promises.length === 0) return;
        if (this.promises.length === 1) {
          this.promises.shift();
          return;
        }
        this.promises.shift();
        this.promises[0].use();
      }
      /**
       * Aborts all the pending promises.
       * @note To avoid race conditions, this does **not** unlock the head lock.
       */
      abortAll() {
        if (this.queued === 0) return;
        for (let i22 = 1; i22 < this.promises.length; ++i22) {
          this.promises[i22].abort();
        }
        this.promises.length = 1;
      }
    };
    __name2(_AsyncQueue, "AsyncQueue");
    var AsyncQueue = _AsyncQueue;
    exports2.AsyncQueue = AsyncQueue;
  }
});
var require_fs2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/fs.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DatasetFileSystemEntry = void 0;
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var async_queue_1 = require_cjs6();
    var fs_extra_1 = require_lib();
    var fs_utils_1 = require_fs_utils();
    var DatasetFileSystemEntry = class {
      constructor(options) {
        Object.defineProperty(this, "filePath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fsQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        this.filePath = (0, node_path_1.resolve)(options.storeDirectory, `${options.entityId}.json`);
      }
      async get() {
        await this.fsQueue.wait();
        try {
          return JSON.parse(await (0, promises_1.readFile)(this.filePath, "utf-8"));
        } finally {
          this.fsQueue.shift();
        }
      }
      async update(data) {
        await this.fsQueue.wait();
        try {
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
          await (0, fs_utils_1.lockAndWrite)(this.filePath, data);
        } finally {
          this.fsQueue.shift();
        }
      }
      async delete() {
        await this.fsQueue.wait();
        await (0, promises_1.rm)(this.filePath, { force: true });
        this.fsQueue.shift();
      }
    };
    exports2.DatasetFileSystemEntry = DatasetFileSystemEntry;
  }
});
var require_consts = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/consts.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DEFAULT_API_PARAM_LIMIT = exports2.StorageTypes = exports2.REQUEST_ID_LENGTH = void 0;
    exports2.REQUEST_ID_LENGTH = 15;
    var StorageTypes;
    (function(StorageTypes2) {
      StorageTypes2["RequestQueue"] = "Request queue";
      StorageTypes2["KeyValueStore"] = "Key-value store";
      StorageTypes2["Dataset"] = "Dataset";
    })(StorageTypes || (exports2.StorageTypes = StorageTypes = {}));
    exports2.DEFAULT_API_PARAM_LIMIT = 1e3;
  }
});
var require_utils3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.memoryStorageLog = void 0;
    exports2.purgeNullsFromObject = purgeNullsFromObject;
    exports2.uniqueKeyToRequestId = uniqueKeyToRequestId;
    exports2.isBuffer = isBuffer3;
    exports2.isStream = isStream3;
    exports2.createPaginatedList = createPaginatedList;
    exports2.createKeyList = createKeyList;
    exports2.createKeyStringList = createKeyStringList;
    exports2.createPaginatedEntryList = createPaginatedEntryList;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_crypto_1 = __require("node:crypto");
    var shapeshift_1 = require_cjs5();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var consts_1 = require_consts();
    function purgeNullsFromObject(object) {
      if (object && typeof object === "object" && !Array.isArray(object)) {
        for (const [key, value] of Object.entries(object)) {
          if (value === null)
            Reflect.deleteProperty(object, key);
        }
      }
      return object;
    }
    function uniqueKeyToRequestId(uniqueKey) {
      const str = (0, node_crypto_1.createHash)("sha256").update(uniqueKey).digest("base64").replace(/(\+|\/|=)/g, "");
      return str.length > consts_1.REQUEST_ID_LENGTH ? str.slice(0, consts_1.REQUEST_ID_LENGTH) : str;
    }
    function isBuffer3(value) {
      try {
        shapeshift_1.s.union(shapeshift_1.s.instance(Buffer), shapeshift_1.s.instance(ArrayBuffer), shapeshift_1.s.typedArray()).parse(value);
        return true;
      } catch {
        return false;
      }
    }
    function isStream3(value) {
      return typeof value === "object" && value && ["on", "pipe"].every((key) => key in value && typeof value[key] === "function");
    }
    exports2.memoryStorageLog = log_1.default.child({ prefix: "MemoryStorage" });
    function createPaginatedList(getPage, options = {}) {
      const offset = options.offset ?? 0;
      const firstPagePromise = getPage(offset, options.limit ?? Infinity);
      async function* asyncGenerator() {
        let currentPage = await firstPagePromise;
        yield* currentPage.items;
        const limit = Math.min(options.limit ?? currentPage.total, currentPage.total);
        let currentOffset = offset + currentPage.items.length;
        let remainingItems = Math.min(currentPage.total - offset, limit) - currentPage.items.length;
        while (currentPage.items.length > 0 && // Continue only if at least some items were returned in the last page.
        remainingItems > 0) {
          currentPage = await getPage(currentOffset, remainingItems);
          yield* currentPage.items;
          currentOffset += currentPage.items.length;
          remainingItems -= currentPage.items.length;
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
    function createKeyList(getPage, options = {}) {
      const firstPagePromise = getPage(options.exclusiveStartKey);
      async function* asyncGenerator() {
        let currentPage = await firstPagePromise;
        yield* currentPage.items;
        let remainingItems = options.limit ? options.limit - currentPage.items.length : void 0;
        while (currentPage.items.length > 0 && currentPage.nextExclusiveStartKey !== void 0 && (remainingItems === void 0 || remainingItems > 0)) {
          currentPage = await getPage(currentPage.nextExclusiveStartKey);
          yield* currentPage.items;
          if (remainingItems !== void 0) {
            remainingItems -= currentPage.items.length;
          }
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
    function createKeyStringList(getPage, options = {}) {
      const firstPagePromise = getPage(options.exclusiveStartKey);
      async function* asyncGenerator() {
        let currentPage = await firstPagePromise;
        for (const item of currentPage.items) {
          yield item.key;
        }
        let remainingItems = options.limit ? options.limit - currentPage.items.length : void 0;
        while (currentPage.items.length > 0 && currentPage.nextExclusiveStartKey !== void 0 && (remainingItems === void 0 || remainingItems > 0)) {
          currentPage = await getPage(currentPage.nextExclusiveStartKey);
          for (const item of currentPage.items) {
            yield item.key;
          }
          if (remainingItems !== void 0) {
            remainingItems -= currentPage.items.length;
          }
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
    function createPaginatedEntryList(getPage, options = {}) {
      const offset = options.offset ?? 0;
      const firstPagePromise = getPage(offset, options.limit ?? Infinity).then((result) => ({
        ...result,
        items: result.items.map((item, i22) => [offset + i22, item])
      }));
      async function* asyncGenerator() {
        let currentIndex = offset;
        for await (const item of createPaginatedList(getPage, options)) {
          yield [currentIndex++, item];
        }
      }
      return Object.defineProperty(firstPagePromise, Symbol.asyncIterator, {
        value: asyncGenerator
      });
    }
  }
});
var require_fs3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/fs.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.KeyValueFileSystemEntry = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var win32_1 = __require("node:path/win32");
    var async_queue_1 = require_cjs6();
    var fs_extra_1 = require_lib();
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var fs_utils_1 = require_fs_utils();
    var utils_1 = require_utils3();
    var KeyValueFileSystemEntry = class {
      constructor(options) {
        Object.defineProperty(this, "storeDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "writeMetadata", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "filePath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fileMetadataPath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "rawRecord", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fsQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        this.storeDirectory = options.storeDirectory;
        this.writeMetadata = options.writeMetadata;
      }
      async get() {
        await this.fsQueue.wait();
        let file;
        try {
          file = await (0, promises_1.readFile)(this.filePath);
        } catch {
          try {
            file = await (0, promises_1.readFile)((0, node_path_1.resolve)(this.storeDirectory, this.rawRecord.key));
            utils_1.memoryStorageLog.warning([
              `Key-value entry "${this.rawRecord.key}" for store ${(0, win32_1.basename)(this.storeDirectory)} does not have a file extension, assuming it as text.`,
              "If you want to have correct interpretation of the file, you should add a file extension to the entry."
            ].join("\n"));
            file = file.toString("utf-8");
          } catch {
            throw new Error(`Could not find file at ${this.filePath}`);
          }
        } finally {
          this.fsQueue.shift();
        }
        return {
          ...this.rawRecord,
          value: file
        };
      }
      async update(data) {
        await this.fsQueue.wait();
        const contentType = mime_types_1.default.contentType(data.key);
        const fileName = (
          // the content type might include charset, e.g. `text/html; charset=utf-8`, so we check via `startsWith` instead of `===`
          contentType && data.contentType && contentType.startsWith(data.contentType) ? data.key : `${data.key}.${data.extension}`
        );
        this.filePath ?? (this.filePath = (0, node_path_1.resolve)(this.storeDirectory, fileName));
        this.fileMetadataPath ?? (this.fileMetadataPath = (0, node_path_1.resolve)(this.storeDirectory, `${data.key}.__metadata__.json`));
        const { value, ...rest } = data;
        this.rawRecord = rest;
        try {
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
          await (0, fs_utils_1.lockAndWrite)(this.filePath, value, false);
          if (this.writeMetadata) {
            await (0, fs_utils_1.lockAndWrite)(this.fileMetadataPath, JSON.stringify(rest), true);
          }
        } finally {
          this.fsQueue.shift();
        }
      }
      async delete() {
        await this.fsQueue.wait();
        await (0, promises_1.rm)(this.filePath, { force: true });
        await (0, promises_1.rm)(this.fileMetadataPath, { force: true });
        this.fsQueue.shift();
      }
    };
    exports2.KeyValueFileSystemEntry = KeyValueFileSystemEntry;
  }
});
var require_fs4 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/fs.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestQueueFileSystemEntry = void 0;
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var async_queue_1 = require_cjs6();
    var fs_extra_1 = require_lib();
    var fs_utils_1 = require_fs_utils();
    var RequestQueueFileSystemEntry = class {
      constructor(options) {
        Object.defineProperty(this, "filePath", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "fsQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "directoryExists", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "sweepTimeout", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "orderNo", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.filePath = (0, node_path_1.resolve)(options.storeDirectory, `${options.requestId}.json`);
      }
      async get(force = false) {
        await this.fsQueue.wait();
        this.setOrRefreshSweepTimeout();
        if (this.data && !force) {
          this.fsQueue.shift();
          return this.data;
        }
        try {
          return await (0, fs_utils_1.lockAndCallback)(this.filePath, async () => {
            const req = JSON.parse(await (0, promises_1.readFile)(this.filePath, "utf-8"));
            this.data = req;
            this.orderNo = req.orderNo;
            return req;
          });
        } finally {
          this.fsQueue.shift();
        }
      }
      async update(data) {
        await this.fsQueue.wait();
        this.data = data;
        try {
          if (!this.directoryExists) {
            await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
            this.directoryExists = true;
          }
          await (0, fs_utils_1.lockAndWrite)(this.filePath, data);
          this.orderNo = data.orderNo;
        } finally {
          this.setOrRefreshSweepTimeout();
          this.fsQueue.shift();
        }
      }
      async delete() {
        await this.fsQueue.wait();
        await (0, promises_1.rm)(this.filePath, { force: true });
        this.fsQueue.shift();
      }
      setOrRefreshSweepTimeout() {
        if (this.sweepTimeout) {
          this.sweepTimeout.refresh();
        } else {
          this.sweepTimeout = setTimeout(() => {
            this.sweepTimeout = void 0;
            this.data = void 0;
          }, 6e4).unref();
        }
      }
    };
    exports2.RequestQueueFileSystemEntry = RequestQueueFileSystemEntry;
  }
});
var require_content_type = __commonJS2({
  "../../node_modules/.pnpm/content-type@1.0.5/node_modules/content-type/index.js"(exports2) {
    "use strict";
    var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
    var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
    var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
    var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
    var QUOTE_REGEXP = /([\\"])/g;
    var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
    exports2.format = format;
    exports2.parse = parse;
    function format(obj) {
      if (!obj || typeof obj !== "object") {
        throw new TypeError("argument obj is required");
      }
      var parameters = obj.parameters;
      var type = obj.type;
      if (!type || !TYPE_REGEXP.test(type)) {
        throw new TypeError("invalid type");
      }
      var string = type;
      if (parameters && typeof parameters === "object") {
        var param;
        var params = Object.keys(parameters).sort();
        for (var i22 = 0; i22 < params.length; i22++) {
          param = params[i22];
          if (!TOKEN_REGEXP.test(param)) {
            throw new TypeError("invalid parameter name");
          }
          string += "; " + param + "=" + qstring(parameters[param]);
        }
      }
      return string;
    }
    function parse(string) {
      if (!string) {
        throw new TypeError("argument string is required");
      }
      var header2 = typeof string === "object" ? getcontenttype(string) : string;
      if (typeof header2 !== "string") {
        throw new TypeError("argument string is required to be a string");
      }
      var index = header2.indexOf(";");
      var type = index !== -1 ? header2.slice(0, index).trim() : header2.trim();
      if (!TYPE_REGEXP.test(type)) {
        throw new TypeError("invalid media type");
      }
      var obj = new ContentType(type.toLowerCase());
      if (index !== -1) {
        var key;
        var match;
        var value;
        PARAM_REGEXP.lastIndex = index;
        while (match = PARAM_REGEXP.exec(header2)) {
          if (match.index !== index) {
            throw new TypeError("invalid parameter format");
          }
          index += match[0].length;
          key = match[1].toLowerCase();
          value = match[2];
          if (value.charCodeAt(0) === 34) {
            value = value.slice(1, -1);
            if (value.indexOf("\\") !== -1) {
              value = value.replace(QESC_REGEXP, "$1");
            }
          }
          obj.parameters[key] = value;
        }
        if (index !== header2.length) {
          throw new TypeError("invalid parameter format");
        }
      }
      return obj;
    }
    function getcontenttype(obj) {
      var header2;
      if (typeof obj.getHeader === "function") {
        header2 = obj.getHeader("content-type");
      } else if (typeof obj.headers === "object") {
        header2 = obj.headers && obj.headers["content-type"];
      }
      if (typeof header2 !== "string") {
        throw new TypeError("content-type header is missing from object");
      }
      return header2;
    }
    function qstring(val) {
      var str = String(val);
      if (TOKEN_REGEXP.test(str)) {
        return str;
      }
      if (str.length > 0 && !TEXT_REGEXP.test(str)) {
        throw new TypeError("invalid parameter value");
      }
      return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
    }
    function ContentType(type) {
      this.parameters = /* @__PURE__ */ Object.create(null);
      this.type = type;
    }
  }
});
var require_body_parser = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/body-parser.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.maybeParseBody = maybeParseBody;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var content_type_1 = tslib_1.__importDefault(require_content_type());
    var json5_1 = tslib_1.__importDefault(require_lib2());
    var CONTENT_TYPE_JSON = "application/json";
    var STRINGIFIABLE_CONTENT_TYPE_RXS = [new RegExp(`^${CONTENT_TYPE_JSON}$`, "i"), /^application\/.*xml$/i, /^text\//i];
    function maybeParseBody(body, contentTypeHeader) {
      let contentType;
      let charset;
      try {
        const result = content_type_1.default.parse(contentTypeHeader);
        contentType = result.type;
        charset = result.parameters.charset;
      } catch {
        return body;
      }
      if (!areDataStringifiable(contentType, charset))
        return body;
      const dataString = isomorphicBufferToString(body, charset);
      return contentType === CONTENT_TYPE_JSON ? json5_1.default.parse(dataString) : dataString;
    }
    function isomorphicBufferToString(buffer, encoding) {
      if (buffer.constructor.name !== ArrayBuffer.name) {
        return buffer.toString(encoding);
      }
      const utf8decoder = new TextDecoder();
      return utf8decoder.decode(new Uint8Array(buffer));
    }
    function isCharsetStringifiable(charset) {
      if (!charset)
        return true;
      return Buffer.isEncoding(charset);
    }
    function isContentTypeStringifiable(contentType) {
      if (!contentType)
        return false;
      return STRINGIFIABLE_CONTENT_TYPE_RXS.some((rx) => rx.test(contentType));
    }
    function areDataStringifiable(contentType, charset) {
      return isContentTypeStringifiable(contentType) && isCharsetStringifiable(charset);
    }
  }
});
var require_memory = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/memory.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.KeyValueMemoryEntry = void 0;
    var KeyValueMemoryEntry = class {
      constructor() {
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      async get() {
        return this.data;
      }
      update(data) {
        this.data = data;
      }
      delete() {
      }
    };
    exports2.KeyValueMemoryEntry = KeyValueMemoryEntry;
  }
});
var require_key_value_store = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/key-value-store/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.createKeyValueStorageImplementation = createKeyValueStorageImplementation;
    var fs_1 = require_fs3();
    var memory_1 = require_memory();
    function createKeyValueStorageImplementation(options) {
      if (options.persistStorage) {
        return new fs_1.KeyValueFileSystemEntry(options);
      }
      return new memory_1.KeyValueMemoryEntry();
    }
  }
});
var require_base_client = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/common/base-client.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.BaseClient = void 0;
    var BaseClient = class {
      constructor(id) {
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.id = id;
      }
      throwOnNonExisting(clientType) {
        throw new Error(`${clientType} with id: ${this.id} does not exist.`);
      }
      throwOnDuplicateEntry(clientType, keyName, value) {
        throw new Error(`${clientType} with ${keyName}: ${value} already exists.`);
      }
    };
    exports2.BaseClient = BaseClient;
  }
});
var require_key_value_store2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/key-value-store.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.KeyValueStoreClient = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_crypto_1 = __require("node:crypto");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var node_stream_1 = __require("node:stream");
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var background_handler_1 = require_background_handler();
    var body_parser_1 = require_body_parser();
    var cache_helpers_1 = require_cache_helpers();
    var consts_1 = require_consts();
    var key_value_store_1 = require_key_value_store();
    var utils_1 = require_utils3();
    var base_client_1 = require_base_client();
    var DEFAULT_LOCAL_FILE_EXTENSION = "bin";
    var KeyValueStoreClient = class extends base_client_1.BaseClient {
      constructor(options) {
        super(options.id ?? (0, node_crypto_1.randomUUID)());
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "accessedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "modifiedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "keyValueStoreDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueEntries", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = options.name;
        this.keyValueStoreDirectory = (0, node_path_1.resolve)(options.baseStorageDirectory, this.name ?? this.id);
        this.client = options.client;
      }
      async get() {
        const found = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (found) {
          found.updateTimestamps(false);
          return found.toKeyValueStoreInfo();
        }
        return void 0;
      }
      async update(newFields = {}) {
        const parsed = shapeshift_1.s.object({
          name: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).parse(newFields);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        if (!parsed.name) {
          return existingStoreById.toKeyValueStoreInfo();
        }
        const existingStoreByName = this.client.keyValueStoresHandled.find((store) => store.name?.toLowerCase() === parsed.name.toLowerCase());
        if (existingStoreByName) {
          this.throwOnDuplicateEntry(consts_1.StorageTypes.KeyValueStore, "name", parsed.name);
        }
        existingStoreById.name = parsed.name;
        const previousDir = existingStoreById.keyValueStoreDirectory;
        existingStoreById.keyValueStoreDirectory = (0, node_path_1.resolve)(this.client.keyValueStoresDirectory, parsed.name ?? existingStoreById.name ?? existingStoreById.id);
        await (0, fs_extra_1.move)(previousDir, existingStoreById.keyValueStoreDirectory, { overwrite: true });
        existingStoreById.updateTimestamps(true);
        return existingStoreById.toKeyValueStoreInfo();
      }
      async delete() {
        const storeIndex = this.client.keyValueStoresHandled.findIndex((store) => store.id === this.id);
        if (storeIndex !== -1) {
          const [oldClient] = this.client.keyValueStoresHandled.splice(storeIndex, 1);
          oldClient.keyValueEntries.clear();
          await (0, promises_1.rm)(oldClient.keyValueStoreDirectory, { recursive: true, force: true });
        }
      }
      listKeys(options = {}) {
        const { limit, exclusiveStartKey, prefix } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.greaterThan(0).optional,
          exclusiveStartKey: shapeshift_1.s.string.optional,
          collection: shapeshift_1.s.string.optional,
          // This is ignored, but kept for validation consistency with API client.
          prefix: shapeshift_1.s.string.optional
        }).parse(options);
        return (0, utils_1.createKeyList)((pageExclusiveStartKey) => this.listKeysPage({
          limit: limit ?? consts_1.DEFAULT_API_PARAM_LIMIT,
          exclusiveStartKey: pageExclusiveStartKey,
          prefix
        }), { exclusiveStartKey, limit });
      }
      keys(options = {}) {
        const { limit, exclusiveStartKey, prefix } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.greaterThan(0).optional,
          exclusiveStartKey: shapeshift_1.s.string.optional,
          collection: shapeshift_1.s.string.optional,
          prefix: shapeshift_1.s.string.optional
        }).parse(options);
        return (0, utils_1.createKeyStringList)((pageExclusiveStartKey) => this.listKeysPage({
          limit: limit ?? consts_1.DEFAULT_API_PARAM_LIMIT,
          exclusiveStartKey: pageExclusiveStartKey,
          prefix
        }), { exclusiveStartKey, limit });
      }
      values(options = {}) {
        const keys = this.keys.bind(this);
        const getRecord = this.getRecord.bind(this);
        const limit = options.limit;
        const firstPageKeysPromise = keys(options);
        const firstPageValuesPromise = (async () => {
          const firstPageKeys = await firstPageKeysPromise;
          const values = [];
          for (const item of firstPageKeys.items) {
            if (limit !== void 0 && values.length >= limit)
              break;
            const record = await getRecord(item.key);
            if (record) {
              values.push(record.value);
            }
          }
          return values;
        })();
        async function* asyncGenerator() {
          const firstPageValues = await firstPageValuesPromise;
          let yielded = 0;
          for (const value of firstPageValues) {
            if (limit !== void 0 && yielded >= limit)
              return;
            yield value;
            yielded++;
          }
          const firstPageKeys = await firstPageKeysPromise;
          if (firstPageKeys.nextExclusiveStartKey && (limit === void 0 || yielded < limit)) {
            for await (const key of keys({ ...options, exclusiveStartKey: firstPageKeys.nextExclusiveStartKey })) {
              if (limit !== void 0 && yielded >= limit)
                return;
              const record = await getRecord(key);
              if (record) {
                yield record.value;
                yielded++;
              }
            }
          }
        }
        return Object.defineProperty(firstPageValuesPromise, Symbol.asyncIterator, {
          value: asyncGenerator
        });
      }
      entries(options = {}) {
        const keys = this.keys.bind(this);
        const getRecord = this.getRecord.bind(this);
        const limit = options.limit;
        const firstPageKeysPromise = keys(options);
        const firstPageEntriesPromise = (async () => {
          const firstPageKeys = await firstPageKeysPromise;
          const entries2 = [];
          for (const item of firstPageKeys.items) {
            if (limit !== void 0 && entries2.length >= limit)
              break;
            const record = await getRecord(item.key);
            if (record) {
              entries2.push([item.key, record.value]);
            }
          }
          return entries2;
        })();
        async function* asyncGenerator() {
          const firstPageEntries = await firstPageEntriesPromise;
          let yielded = 0;
          for (const entry of firstPageEntries) {
            if (limit !== void 0 && yielded >= limit)
              return;
            yield entry;
            yielded++;
          }
          const firstPageKeys = await firstPageKeysPromise;
          if (firstPageKeys.nextExclusiveStartKey && (limit === void 0 || yielded < limit)) {
            for await (const key of keys({ ...options, exclusiveStartKey: firstPageKeys.nextExclusiveStartKey })) {
              if (limit !== void 0 && yielded >= limit)
                return;
              const record = await getRecord(key);
              if (record) {
                yield [key, record.value];
                yielded++;
              }
            }
          }
        }
        return Object.defineProperty(firstPageEntriesPromise, Symbol.asyncIterator, {
          value: asyncGenerator
        });
      }
      async listKeysPage(options = {}) {
        const { limit = consts_1.DEFAULT_API_PARAM_LIMIT, exclusiveStartKey, prefix } = options;
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const items = [];
        for (const storageEntry of existingStoreById.keyValueEntries.values()) {
          const record = await storageEntry.get();
          const size = Buffer.byteLength(record.value);
          items.push({
            key: record.key,
            size
          });
        }
        items.sort((a2, b2) => {
          return a2.key.localeCompare(b2.key);
        });
        const filteredItems = items.filter((item) => !prefix || item.key.startsWith(prefix));
        let truncatedItems = filteredItems;
        if (exclusiveStartKey) {
          const keyPos = filteredItems.findIndex((item) => item.key === exclusiveStartKey);
          if (keyPos !== -1)
            truncatedItems = filteredItems.slice(keyPos + 1);
        }
        const limitedItems = truncatedItems.slice(0, limit);
        const lastItemInStore = filteredItems.at(-1);
        const lastSelectedItem = limitedItems.at(-1);
        const isLastSelectedItemAbsolutelyLast = lastItemInStore === lastSelectedItem;
        const nextExclusiveStartKey = isLastSelectedItemAbsolutelyLast ? void 0 : lastSelectedItem?.key;
        existingStoreById.updateTimestamps(false);
        return {
          count: limitedItems.length,
          limit,
          exclusiveStartKey,
          isTruncated: !isLastSelectedItemAbsolutelyLast,
          nextExclusiveStartKey,
          items: limitedItems
        };
      }
      /**
       * Tests whether a record with the given key exists in the key-value store without retrieving its value.
       *
       * @param key The queried record key.
       * @returns `true` if the record exists, `false` if it does not.
       */
      async recordExists(key) {
        shapeshift_1.s.string.parse(key);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        return existingStoreById.keyValueEntries.has(key);
      }
      async getRecord(key, options = {}) {
        shapeshift_1.s.string.parse(key);
        shapeshift_1.s.object({
          buffer: shapeshift_1.s.boolean.optional,
          // These options are ignored, but kept here
          // for validation consistency with API client.
          stream: shapeshift_1.s.boolean.optional,
          disableRedirect: shapeshift_1.s.boolean.optional
        }).parse(options);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const storageEntry = existingStoreById.keyValueEntries.get(key);
        if (!storageEntry) {
          return void 0;
        }
        const entry = await storageEntry.get();
        const record = {
          key: entry.key,
          value: entry.value,
          contentType: entry.contentType ?? mime_types_1.default.contentType(entry.extension)
        };
        if (options.stream) {
          record.value = node_stream_1.Readable.from(record.value);
        } else if (options.buffer) {
          record.value = Buffer.from(record.value);
        } else {
          record.value = (0, body_parser_1.maybeParseBody)(record.value, record.contentType);
        }
        existingStoreById.updateTimestamps(false);
        return record;
      }
      async setRecord(record) {
        shapeshift_1.s.object({
          key: shapeshift_1.s.string.lengthGreaterThan(0),
          value: shapeshift_1.s.union(
            shapeshift_1.s.null,
            shapeshift_1.s.string,
            shapeshift_1.s.number,
            shapeshift_1.s.instance(Buffer),
            shapeshift_1.s.instance(ArrayBuffer),
            shapeshift_1.s.typedArray(),
            // disabling validation will make shapeshift only check the object given is an actual object, not null, nor array
            shapeshift_1.s.object({}).setValidationEnabled(false)
          ),
          contentType: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).parse(record);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const { key } = record;
        let { value, contentType } = record;
        const valueIsStream = (0, utils_1.isStream)(value);
        const isValueStreamOrBuffer = valueIsStream || (0, utils_1.isBuffer)(value);
        if (!contentType) {
          if (isValueStreamOrBuffer)
            contentType = "application/octet-stream";
          else if (typeof value === "string")
            contentType = "text/plain; charset=utf-8";
          else
            contentType = "application/json; charset=utf-8";
        }
        const extension = mime_types_1.default.extension(contentType) || DEFAULT_LOCAL_FILE_EXTENSION;
        const isContentTypeJson = extension === "json";
        if (isContentTypeJson && !isValueStreamOrBuffer && typeof value !== "string") {
          try {
            value = JSON.stringify(value, null, 2);
          } catch (err2) {
            const msg = `The record value cannot be stringified to JSON. Please provide other content type.
Cause: ${err2.message}`;
            throw new Error(msg);
          }
        }
        if (valueIsStream) {
          const chunks = [];
          for await (const chunk2 of value) {
            chunks.push(chunk2);
          }
          value = Buffer.concat(chunks);
        }
        const _record = {
          extension,
          key,
          value,
          contentType
        };
        const entry = (0, key_value_store_1.createKeyValueStorageImplementation)({
          persistStorage: this.client.persistStorage,
          storeDirectory: existingStoreById.keyValueStoreDirectory,
          writeMetadata: existingStoreById.client.writeMetadata
        });
        await entry.update(_record);
        existingStoreById.keyValueEntries.set(key, entry);
        existingStoreById.updateTimestamps(true);
      }
      async deleteRecord(key) {
        shapeshift_1.s.string.parse(key);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.KeyValueStore);
        }
        const entry = existingStoreById.keyValueEntries.get(key);
        if (entry) {
          existingStoreById.keyValueEntries.delete(key);
          existingStoreById.updateTimestamps(true);
          await entry.delete();
        }
      }
      toKeyValueStoreInfo() {
        return {
          id: this.id,
          name: this.name,
          accessedAt: this.accessedAt,
          createdAt: this.createdAt,
          modifiedAt: this.modifiedAt,
          userId: "1"
        };
      }
      updateTimestamps(hasBeenModified) {
        this.accessedAt = /* @__PURE__ */ new Date();
        if (hasBeenModified) {
          this.modifiedAt = /* @__PURE__ */ new Date();
        }
        const data = this.toKeyValueStoreInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          data,
          entityType: "keyValueStores",
          entityDirectory: this.keyValueStoreDirectory,
          id: this.name ?? this.id,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
      }
    };
    exports2.KeyValueStoreClient = KeyValueStoreClient;
  }
});
var require_memory2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/memory.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestQueueMemoryEntry = void 0;
    var RequestQueueMemoryEntry = class {
      constructor() {
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "orderNo", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      async get() {
        return this.data;
      }
      update(data) {
        this.data = data;
        this.orderNo = data.orderNo;
      }
      delete() {
      }
    };
    exports2.RequestQueueMemoryEntry = RequestQueueMemoryEntry;
  }
});
var require_request_queue = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/request-queue/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.createRequestQueueStorageImplementation = createRequestQueueStorageImplementation;
    var fs_1 = require_fs4();
    var memory_1 = require_memory2();
    function createRequestQueueStorageImplementation(options) {
      if (options.persistStorage) {
        return new fs_1.RequestQueueFileSystemEntry(options);
      }
      return new memory_1.RequestQueueMemoryEntry();
    }
  }
});
var require_request_queue2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/request-queue.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestQueueClient = void 0;
    var node_crypto_1 = __require("node:crypto");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var async_queue_1 = require_cjs6();
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var consts_1 = require_consts();
    var request_queue_1 = require_request_queue();
    var utils_1 = require_utils3();
    var base_client_1 = require_base_client();
    var requestShape = shapeshift_1.s.object({
      id: shapeshift_1.s.string,
      url: shapeshift_1.s.string.url({ allowedProtocols: ["http:", "https:"] }),
      uniqueKey: shapeshift_1.s.string,
      method: shapeshift_1.s.string.optional,
      retryCount: shapeshift_1.s.number.int.optional,
      handledAt: shapeshift_1.s.union(shapeshift_1.s.string, shapeshift_1.s.date.valid).optional
    }).passthrough;
    var requestShapeWithoutId = requestShape.omit(["id"]);
    var batchRequestShapeWithoutId = requestShapeWithoutId.array;
    var requestOptionsShape = shapeshift_1.s.object({
      forefront: shapeshift_1.s.boolean.optional
    });
    var RequestQueueClient = class extends base_client_1.BaseClient {
      constructor(options) {
        super(options.id ?? (0, node_crypto_1.randomUUID)());
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "accessedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "modifiedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "handledRequestCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "pendingRequestCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "requestQueueDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "mutex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        Object.defineProperty(this, "forefrontRequestIds", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "requests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = options.name;
        this.requestQueueDirectory = (0, node_path_1.resolve)(options.baseStorageDirectory, this.name ?? this.id);
        this.client = options.client;
      }
      async getQueue() {
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        existingQueueById.updateTimestamps(false);
        return existingQueueById;
      }
      async get() {
        const found = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (found) {
          found.updateTimestamps(false);
          return found.toRequestQueueInfo();
        }
        return void 0;
      }
      async update(newFields) {
        const parsed = shapeshift_1.s.object({
          name: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).passthrough.parse(newFields);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        if (!parsed.name) {
          return existingQueueById.toRequestQueueInfo();
        }
        const existingQueueByName = this.client.requestQueuesHandled.find((queue) => queue.name?.toLowerCase() === parsed.name.toLowerCase());
        if (existingQueueByName) {
          this.throwOnDuplicateEntry(consts_1.StorageTypes.RequestQueue, "name", parsed.name);
        }
        existingQueueById.name = parsed.name;
        const previousDir = existingQueueById.requestQueueDirectory;
        existingQueueById.requestQueueDirectory = (0, node_path_1.resolve)(this.client.requestQueuesDirectory, parsed.name ?? existingQueueById.name ?? existingQueueById.id);
        await (0, fs_extra_1.move)(previousDir, existingQueueById.requestQueueDirectory, { overwrite: true });
        existingQueueById.updateTimestamps(true);
        return existingQueueById.toRequestQueueInfo();
      }
      async delete() {
        const storeIndex = this.client.requestQueuesHandled.findIndex((queue) => queue.id === this.id);
        if (storeIndex !== -1) {
          const [oldClient] = this.client.requestQueuesHandled.splice(storeIndex, 1);
          oldClient.pendingRequestCount = 0;
          oldClient.requests.clear();
          await (0, promises_1.rm)(oldClient.requestQueueDirectory, { recursive: true, force: true });
        }
      }
      *requestKeyIterator(rqClient) {
        for (let i22 = this.forefrontRequestIds.length - 1; i22 >= 0; i22--) {
          yield this.forefrontRequestIds[i22];
        }
        for (const key of rqClient.requests.keys()) {
          yield key;
        }
      }
      async listHead(options = {}) {
        const { limit } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.optional.default(100)
        }).parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        existingQueueById.updateTimestamps(false);
        const items = [];
        const seenRequestIds = /* @__PURE__ */ new Set();
        const handledForefrontIds = /* @__PURE__ */ new Set();
        for (const requestId of this.requestKeyIterator(existingQueueById)) {
          if (items.length === limit) {
            break;
          }
          if (seenRequestIds.has(requestId)) {
            continue;
          }
          seenRequestIds.add(requestId);
          const storageEntry = existingQueueById.requests.get(requestId);
          let { orderNo } = storageEntry;
          let loaded;
          if (typeof orderNo === "undefined") {
            loaded = await storageEntry.get();
            orderNo = loaded.orderNo;
          }
          if (orderNo) {
            items.push(await storageEntry.get());
          } else if (this.forefrontRequestIds.includes(requestId)) {
            handledForefrontIds.add(requestId);
          }
        }
        this.forefrontRequestIds = this.forefrontRequestIds.filter((id) => !handledForefrontIds.has(id));
        return {
          limit,
          hadMultipleClients: false,
          queueModifiedAt: existingQueueById.modifiedAt,
          items: items.sort((a2, b2) => a2.orderNo - b2.orderNo).map(({ json }) => this._jsonToRequest(json))
        };
      }
      async listAndLockHead(options) {
        const { limit, lockSecs } = shapeshift_1.s.object({
          limit: shapeshift_1.s.number.lessThanOrEqual(25).optional.default(25),
          lockSecs: shapeshift_1.s.number
        }).parse(options);
        const queue = await this.getQueue();
        const start = Date.now();
        const isLocked = (request) => !request.orderNo || request.orderNo > start || request.orderNo < -start;
        const items = [];
        await queue.mutex.wait();
        try {
          const seenRequestIds = /* @__PURE__ */ new Set();
          const handledForefrontIds = /* @__PURE__ */ new Set();
          for (const requestId of this.requestKeyIterator(queue)) {
            if (items.length === limit) {
              break;
            }
            if (seenRequestIds.has(requestId)) {
              continue;
            }
            seenRequestIds.add(requestId);
            const storageEntry = queue.requests.get(requestId);
            if (storageEntry.orderNo === null) {
              if (this.forefrontRequestIds.includes(requestId)) {
                handledForefrontIds.add(requestId);
              }
              continue;
            }
            const request = await storageEntry.get(true);
            if (isLocked(request)) {
              continue;
            }
            request.orderNo = (start + lockSecs * 1e3) * (request.orderNo > 0 ? 1 : -1);
            await storageEntry.update(request);
            items.push(request);
          }
          this.forefrontRequestIds = this.forefrontRequestIds.filter((id) => !handledForefrontIds.has(id));
          return {
            limit,
            lockSecs,
            hadMultipleClients: false,
            queueModifiedAt: queue.modifiedAt,
            items: items.map(({ json }) => this._jsonToRequest(json))
          };
        } finally {
          queue.mutex.shift();
        }
      }
      async prolongRequestLock(id, options) {
        shapeshift_1.s.string.parse(id);
        const { lockSecs, forefront } = shapeshift_1.s.object({
          lockSecs: shapeshift_1.s.number,
          forefront: shapeshift_1.s.boolean.optional.default(false)
        }).parse(options);
        const queue = await this.getQueue();
        const request = queue.requests.get(id);
        const internalRequest = await request?.get();
        if (!internalRequest) {
          throw new Error(`Request with ID ${id} not found in queue ${queue.name ?? queue.id}`);
        }
        const canProlong = (r2) => !!r2.orderNo;
        if (!canProlong(internalRequest)) {
          throw new Error(`Request with ID ${id} has already been handled in queue ${queue.name ?? queue.id}`);
        }
        const unlockTimestamp = Math.abs(internalRequest.orderNo) + lockSecs * 1e3;
        internalRequest.orderNo = forefront ? -unlockTimestamp : unlockTimestamp;
        await request?.update(internalRequest);
        if (forefront)
          this.forefrontRequestIds.push(id);
        return {
          lockExpiresAt: new Date(unlockTimestamp)
        };
      }
      async deleteRequestLock(id, options = {}) {
        shapeshift_1.s.string.parse(id);
        const { forefront } = shapeshift_1.s.object({
          forefront: shapeshift_1.s.boolean.optional.default(false)
        }).parse(options);
        const queue = await this.getQueue();
        const request = queue.requests.get(id);
        const internalRequest = await request?.get();
        if (!internalRequest) {
          throw new Error(`Request with ID ${id} not found in queue ${queue.name ?? queue.id}`);
        }
        const start = Date.now();
        const isLocked = (r2) => r2.orderNo && (r2.orderNo > start || r2.orderNo < -start);
        if (!isLocked(internalRequest)) {
          throw new Error(`Request with ID ${id} is not locked in queue ${queue.name ?? queue.id}`);
        }
        internalRequest.orderNo = forefront ? -start : start;
        if (forefront)
          this.forefrontRequestIds.push(id);
        await request?.update(internalRequest);
      }
      async addRequest(request, options = {}) {
        requestShapeWithoutId.parse(request);
        requestOptionsShape.parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const requestModel = this._createInternalRequest(request, options.forefront);
        const existingRequestWithIdEntry = existingQueueById.requests.get(requestModel.id);
        if (existingRequestWithIdEntry) {
          const existingRequestWithId = await existingRequestWithIdEntry.get();
          existingQueueById.updateTimestamps(false);
          return {
            requestId: existingRequestWithId.id,
            wasAlreadyHandled: existingRequestWithId.orderNo === null,
            wasAlreadyPresent: true
          };
        }
        const newEntry = (0, request_queue_1.createRequestQueueStorageImplementation)({
          persistStorage: existingQueueById.client.persistStorage,
          requestId: requestModel.id,
          storeDirectory: existingQueueById.requestQueueDirectory
        });
        await newEntry.update(requestModel);
        existingQueueById.requests.set(requestModel.id, newEntry);
        existingQueueById.updateTimestamps(true);
        if (requestModel.orderNo) {
          existingQueueById.pendingRequestCount += 1;
        } else {
          existingQueueById.handledRequestCount += 1;
        }
        if (options.forefront) {
          this.forefrontRequestIds.push(requestModel.id);
        }
        return {
          requestId: requestModel.id,
          // We return wasAlreadyHandled: false even though the request may
          // have been added as handled, because that's how API behaves.
          wasAlreadyHandled: false,
          wasAlreadyPresent: false
        };
      }
      async batchAddRequests(requests, options = {}) {
        batchRequestShapeWithoutId.parse(requests);
        requestOptionsShape.parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const result = {
          processedRequests: [],
          unprocessedRequests: []
        };
        for (const model of requests) {
          const requestModel = this._createInternalRequest(model, options.forefront);
          const existingRequestWithIdEntry = existingQueueById.requests.get(requestModel.id);
          if (existingRequestWithIdEntry) {
            const existingRequestWithId = await existingRequestWithIdEntry.get();
            result.processedRequests.push({
              requestId: existingRequestWithId.id,
              uniqueKey: existingRequestWithId.uniqueKey,
              wasAlreadyHandled: existingRequestWithId.orderNo === null,
              wasAlreadyPresent: true
            });
            continue;
          }
          const newEntry = (0, request_queue_1.createRequestQueueStorageImplementation)({
            persistStorage: existingQueueById.client.persistStorage,
            requestId: requestModel.id,
            storeDirectory: existingQueueById.requestQueueDirectory
          });
          await newEntry.update(requestModel);
          existingQueueById.requests.set(requestModel.id, newEntry);
          if (requestModel.orderNo) {
            existingQueueById.pendingRequestCount += 1;
          } else {
            existingQueueById.handledRequestCount += 1;
          }
          if (options.forefront) {
            this.forefrontRequestIds.push(requestModel.id);
          }
          result.processedRequests.push({
            requestId: requestModel.id,
            uniqueKey: requestModel.uniqueKey,
            // We return wasAlreadyHandled: false even though the request may
            // have been added as handled, because that's how API behaves.
            wasAlreadyHandled: false,
            wasAlreadyPresent: false
          });
        }
        existingQueueById.updateTimestamps(true);
        return result;
      }
      async getRequest(id) {
        shapeshift_1.s.string.parse(id);
        const queue = await this.getQueue();
        const json = (await queue.requests.get(id)?.get())?.json;
        return this._jsonToRequest(json);
      }
      async updateRequest(request, options = {}) {
        requestShape.parse(request);
        requestOptionsShape.parse(options);
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const requestModel = this._createInternalRequest(request, options.forefront);
        const existingRequestEntry = existingQueueById.requests.get(requestModel.id);
        if (!existingRequestEntry) {
          return this.addRequest(request, options);
        }
        const existingRequest = await existingRequestEntry.get();
        const newEntry = (0, request_queue_1.createRequestQueueStorageImplementation)({
          persistStorage: existingQueueById.client.persistStorage,
          requestId: requestModel.id,
          storeDirectory: existingQueueById.requestQueueDirectory
        });
        await newEntry.update(requestModel);
        existingQueueById.requests.set(requestModel.id, newEntry);
        const isRequestHandledStateChanging = typeof existingRequest.orderNo !== typeof requestModel.orderNo;
        const requestWasHandledBeforeUpdate = existingRequest.orderNo === null;
        const requestIsHandledAfterUpdate = requestModel.orderNo === null;
        if (isRequestHandledStateChanging) {
          existingQueueById.pendingRequestCount += requestWasHandledBeforeUpdate ? 1 : -1;
        }
        if (requestIsHandledAfterUpdate) {
          existingQueueById.handledRequestCount += 1;
        }
        existingQueueById.updateTimestamps(true);
        if (options.forefront && !requestIsHandledAfterUpdate) {
          this.forefrontRequestIds.push(requestModel.id);
        }
        return {
          requestId: requestModel.id,
          wasAlreadyHandled: requestWasHandledBeforeUpdate,
          wasAlreadyPresent: true
        };
      }
      async deleteRequest(id) {
        const existingQueueById = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, this.name ?? this.id);
        if (!existingQueueById) {
          this.throwOnNonExisting(consts_1.StorageTypes.RequestQueue);
        }
        const entry = existingQueueById.requests.get(id);
        if (entry) {
          const request = await entry.get();
          existingQueueById.requests.delete(id);
          existingQueueById.updateTimestamps(true);
          if (request.orderNo) {
            existingQueueById.pendingRequestCount -= 1;
          } else {
            existingQueueById.handledRequestCount -= 1;
          }
          await entry.delete();
        }
      }
      toRequestQueueInfo() {
        return {
          accessedAt: this.accessedAt,
          createdAt: this.createdAt,
          hadMultipleClients: false,
          handledRequestCount: this.handledRequestCount,
          id: this.id,
          modifiedAt: this.modifiedAt,
          name: this.name,
          pendingRequestCount: this.pendingRequestCount,
          stats: {},
          totalRequestCount: this.requests.size,
          userId: "1"
        };
      }
      updateTimestamps(hasBeenModified) {
        this.accessedAt = /* @__PURE__ */ new Date();
        if (hasBeenModified) {
          this.modifiedAt = /* @__PURE__ */ new Date();
        }
        const data = {
          ...this.toRequestQueueInfo(),
          forefrontRequestIds: this.forefrontRequestIds
        };
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          data,
          entityType: "requestQueues",
          entityDirectory: this.requestQueueDirectory,
          id: this.name ?? this.id,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
      }
      _jsonToRequest(requestJson) {
        if (!requestJson)
          return void 0;
        const request = JSON.parse(requestJson);
        return (0, utils_1.purgeNullsFromObject)(request);
      }
      _createInternalRequest(request, forefront) {
        const orderNo = this._calculateOrderNo(request, forefront);
        const id = (0, utils_1.uniqueKeyToRequestId)(request.uniqueKey);
        if (request.id && request.id !== id) {
          throw new Error("Request ID does not match its uniqueKey.");
        }
        const json = JSON.stringify({ ...request, id });
        return {
          id,
          json,
          method: request.method,
          orderNo,
          retryCount: request.retryCount ?? 0,
          uniqueKey: request.uniqueKey,
          url: request.url
        };
      }
      _calculateOrderNo(request, forefront) {
        if (request.handledAt)
          return null;
        const timestamp = Date.now();
        return forefront ? -timestamp : timestamp;
      }
    };
    exports2.RequestQueueClient = RequestQueueClient;
  }
});
var require_cache_helpers = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/cache-helpers.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.findOrCacheDatasetByPossibleId = findOrCacheDatasetByPossibleId;
    exports2.findOrCacheKeyValueStoreByPossibleId = findOrCacheKeyValueStoreByPossibleId;
    exports2.findRequestQueueByPossibleId = findRequestQueueByPossibleId;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var json5_1 = tslib_1.__importDefault(require_lib2());
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var fs_1 = require_fs2();
    var fs_2 = require_fs3();
    var fs_3 = require_fs4();
    var uuidRegex2 = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
    async function findOrCacheDatasetByPossibleId(client, entryNameOrId) {
      const found = client.datasetClientsHandled.find((store) => store.id === entryNameOrId || store.name?.toLowerCase() === entryNameOrId.toLowerCase());
      if (found) {
        return found;
      }
      const datasetDir = (0, node_path_1.resolve)(client.datasetsDirectory, entryNameOrId);
      try {
        await (0, promises_1.access)(datasetDir);
      } catch {
        return void 0;
      }
      const directoryEntries = await (0, promises_1.opendir)(datasetDir);
      let id;
      let name2;
      let itemCount = 0;
      const entries2 = /* @__PURE__ */ new Set();
      let createdAt = /* @__PURE__ */ new Date();
      let accessedAt = /* @__PURE__ */ new Date();
      let modifiedAt = /* @__PURE__ */ new Date();
      let hasSeenMetadataFile = false;
      for await (const entry of directoryEntries) {
        if (entry.isFile()) {
          if (entry.name === "__metadata__.json") {
            hasSeenMetadataFile = true;
            const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(datasetDir, entry.name), "utf8");
            if (!fileContent)
              continue;
            const metadata = JSON.parse(fileContent);
            id = metadata.id;
            name2 = metadata.name;
            itemCount = metadata.itemCount;
            createdAt = new Date(metadata.createdAt);
            accessedAt = new Date(metadata.accessedAt);
            modifiedAt = new Date(metadata.modifiedAt);
            continue;
          }
          const entryName = entry.name.split(".")[0];
          entries2.add(entryName);
          if (!hasSeenMetadataFile) {
            itemCount++;
          }
        }
      }
      if (id === void 0 && name2 === void 0) {
        const isUuid = uuidRegex2.test(entryNameOrId);
        if (isUuid) {
          id = entryNameOrId;
        } else {
          name2 = entryNameOrId;
        }
      }
      const newClient = new dataset_1.DatasetClient({
        baseStorageDirectory: client.datasetsDirectory,
        client,
        id,
        name: name2
      });
      newClient.accessedAt = accessedAt;
      newClient.createdAt = createdAt;
      newClient.modifiedAt = modifiedAt;
      newClient.itemCount = itemCount;
      for (const entryId of entries2.values()) {
        const entry = new fs_1.DatasetFileSystemEntry({
          storeDirectory: datasetDir,
          entityId: entryId,
          persistStorage: true
        });
        newClient["datasetEntries"].set(entryId, entry);
      }
      client.datasetClientsHandled.push(newClient);
      return newClient;
    }
    async function findOrCacheKeyValueStoreByPossibleId(client, entryNameOrId) {
      const found = client.keyValueStoresHandled.find((store) => store.id === entryNameOrId || store.name?.toLowerCase() === entryNameOrId.toLowerCase());
      if (found) {
        return found;
      }
      const keyValueStoreDir = (0, node_path_1.resolve)(client.keyValueStoresDirectory, entryNameOrId);
      try {
        await (0, promises_1.access)(keyValueStoreDir);
      } catch {
        return void 0;
      }
      const directoryEntries = await (0, promises_1.opendir)(keyValueStoreDir);
      let id;
      let name2;
      let createdAt = /* @__PURE__ */ new Date();
      let accessedAt = /* @__PURE__ */ new Date();
      let modifiedAt = /* @__PURE__ */ new Date();
      const internalRecords = /* @__PURE__ */ new Map();
      let hasSeenMetadataForEntry = false;
      for await (const entry of directoryEntries) {
        if (entry.isFile()) {
          if (entry.name === "__metadata__.json") {
            const fileContent2 = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name), "utf8");
            if (!fileContent2)
              continue;
            const metadata = JSON.parse(fileContent2);
            id = metadata.id;
            name2 = metadata.name;
            createdAt = new Date(metadata.createdAt);
            accessedAt = new Date(metadata.accessedAt);
            modifiedAt = new Date(metadata.modifiedAt);
            continue;
          }
          if (entry.name.includes(".__metadata__.")) {
            hasSeenMetadataForEntry = true;
            const fileContent2 = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name), "utf8");
            if (!fileContent2)
              continue;
            const metadata = JSON.parse(fileContent2);
            const newRecord2 = {
              ...internalRecords.get(metadata.key),
              ...metadata
            };
            internalRecords.set(metadata.key, newRecord2);
            continue;
          }
          const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name));
          const fileExtension = (0, node_path_1.extname)(entry.name);
          const contentType = mime_types_1.default.contentType(entry.name) || "text/plain";
          const extension = mime_types_1.default.extension(contentType);
          if (contentType.includes("application/json")) {
            const stringifiedJson = fileContent.toString("utf8");
            try {
              json5_1.default.parse(stringifiedJson);
            } catch {
              utils_1.memoryStorageLog.warning(`Key-value entry "${entry.name}" for store ${entryNameOrId} has invalid JSON content and will be ignored from the store.`);
              continue;
            }
          }
          const nameSplit = entry.name.split(".");
          if (fileExtension) {
            nameSplit.pop();
          }
          const key = nameSplit.join(".");
          const newRecord = {
            key,
            extension,
            contentType,
            ...internalRecords.get(key)
          };
          internalRecords.set(key, newRecord);
        }
      }
      if (id === void 0 && name2 === void 0) {
        const isUuid = uuidRegex2.test(entryNameOrId);
        if (isUuid) {
          id = entryNameOrId;
        } else {
          name2 = entryNameOrId;
        }
      }
      const newClient = new key_value_store_1.KeyValueStoreClient({
        baseStorageDirectory: client.keyValueStoresDirectory,
        client,
        id,
        name: name2
      });
      newClient.accessedAt = accessedAt;
      newClient.createdAt = createdAt;
      newClient.modifiedAt = modifiedAt;
      for (const [key, record] of internalRecords) {
        const entry = new fs_2.KeyValueFileSystemEntry({
          persistStorage: true,
          storeDirectory: keyValueStoreDir,
          writeMetadata: hasSeenMetadataForEntry
        });
        entry["rawRecord"] = { ...record };
        entry["filePath"] = (0, node_path_1.resolve)(keyValueStoreDir, `${record.key}.${record.extension}`);
        entry["fileMetadataPath"] = (0, node_path_1.resolve)(keyValueStoreDir, `${record.key}.__metadata__.json`);
        newClient["keyValueEntries"].set(key, entry);
      }
      client.keyValueStoresHandled.push(newClient);
      return newClient;
    }
    async function findRequestQueueByPossibleId(client, entryNameOrId) {
      const found = client.requestQueuesHandled.find((store) => store.id === entryNameOrId || store.name?.toLowerCase() === entryNameOrId.toLowerCase());
      if (found) {
        return found;
      }
      const requestQueueDir = (0, node_path_1.resolve)(client.requestQueuesDirectory, entryNameOrId);
      try {
        await (0, promises_1.access)(requestQueueDir);
      } catch {
        return void 0;
      }
      const directoryEntries = await (0, promises_1.opendir)(requestQueueDir);
      let id;
      let name2;
      let createdAt = /* @__PURE__ */ new Date();
      let accessedAt = /* @__PURE__ */ new Date();
      let modifiedAt = /* @__PURE__ */ new Date();
      let pendingRequestCount = 0;
      let handledRequestCount = 0;
      const entries2 = /* @__PURE__ */ new Set();
      let forefrontRequestIds = [];
      for await (const entry of directoryEntries) {
        if (entry.isFile()) {
          switch (entry.name) {
            case "__metadata__.json": {
              const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(requestQueueDir, entry.name), "utf8");
              if (!fileContent)
                continue;
              const metadata = JSON.parse(fileContent);
              id = metadata.id;
              name2 = metadata.name;
              createdAt = new Date(metadata.createdAt);
              accessedAt = new Date(metadata.accessedAt);
              modifiedAt = new Date(metadata.modifiedAt);
              pendingRequestCount = metadata.pendingRequestCount;
              handledRequestCount = metadata.handledRequestCount;
              forefrontRequestIds = metadata?.forefrontRequestIds ?? [];
              break;
            }
            default: {
              if (entry.name.startsWith(".") || !entry.name.endsWith(".json")) {
                continue;
              }
              const entryName = entry.name.split(".")[0];
              try {
                const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(requestQueueDir, entry.name), "utf8");
                JSON.parse(fileContent);
                entries2.add(entryName);
              } catch {
                utils_1.memoryStorageLog.warning(`Request queue entry "${entry.name}" for store ${entryNameOrId} has invalid JSON content and will be ignored from the store.`);
              }
            }
          }
        }
      }
      if (id === void 0 && name2 === void 0) {
        const isUuid = uuidRegex2.test(entryNameOrId);
        if (isUuid) {
          id = entryNameOrId;
        } else {
          name2 = entryNameOrId;
        }
      }
      const newClient = new request_queue_1.RequestQueueClient({
        baseStorageDirectory: client.requestQueuesDirectory,
        client,
        id,
        name: name2
      });
      newClient.accessedAt = accessedAt;
      newClient.createdAt = createdAt;
      newClient.modifiedAt = modifiedAt;
      newClient.pendingRequestCount = pendingRequestCount;
      newClient.handledRequestCount = handledRequestCount;
      newClient.forefrontRequestIds = forefrontRequestIds;
      for (const requestId of entries2) {
        const entry = new fs_3.RequestQueueFileSystemEntry({
          persistStorage: true,
          requestId,
          storeDirectory: requestQueueDir
        });
        newClient["requests"].set(requestId, entry);
      }
      client.requestQueuesHandled.push(newClient);
      return newClient;
    }
    var dataset_1 = require_dataset2();
    var key_value_store_1 = require_key_value_store2();
    var request_queue_1 = require_request_queue2();
    var utils_1 = require_utils3();
  }
});
var require_memory3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/memory.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DatasetMemoryEntry = void 0;
    var DatasetMemoryEntry = class {
      constructor() {
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      async get() {
        return this.data;
      }
      update(data) {
        this.data = data;
      }
      delete() {
      }
    };
    exports2.DatasetMemoryEntry = DatasetMemoryEntry;
  }
});
var require_dataset = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/fs/dataset/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.createDatasetStorageImplementation = createDatasetStorageImplementation;
    var fs_1 = require_fs2();
    var memory_1 = require_memory3();
    function createDatasetStorageImplementation(options) {
      if (options.persistStorage) {
        return new fs_1.DatasetFileSystemEntry(options);
      }
      return new memory_1.DatasetMemoryEntry();
    }
  }
});
var require_dataset2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/dataset.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DatasetClient = void 0;
    var node_crypto_1 = __require("node:crypto");
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var consts_1 = require_consts();
    var dataset_1 = require_dataset();
    var utils_1 = require_utils3();
    var base_client_1 = require_base_client();
    var LIST_ITEMS_LIMIT = 999999999999;
    var LOCAL_ENTRY_NAME_DIGITS = 9;
    var DatasetClient = class extends base_client_1.BaseClient {
      constructor(options) {
        super(options.id ?? (0, node_crypto_1.randomUUID)());
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "accessedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "modifiedAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "itemCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "datasetDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "datasetEntries", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = options.name;
        this.datasetDirectory = (0, node_path_1.resolve)(options.baseStorageDirectory, this.name ?? this.id);
        this.client = options.client;
      }
      async get() {
        const found = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (found) {
          found.updateTimestamps(false);
          return found.toDatasetInfo();
        }
        return void 0;
      }
      async update(newFields = {}) {
        const parsed = shapeshift_1.s.object({
          name: shapeshift_1.s.string.lengthGreaterThan(0).optional
        }).parse(newFields);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.Dataset);
        }
        if (!parsed.name) {
          return existingStoreById.toDatasetInfo();
        }
        const existingStoreByName = this.client.datasetClientsHandled.find((store) => store.name?.toLowerCase() === parsed.name.toLowerCase());
        if (existingStoreByName) {
          this.throwOnDuplicateEntry(consts_1.StorageTypes.Dataset, "name", parsed.name);
        }
        existingStoreById.name = parsed.name;
        const previousDir = existingStoreById.datasetDirectory;
        existingStoreById.datasetDirectory = (0, node_path_1.resolve)(this.client.datasetsDirectory, parsed.name ?? existingStoreById.name ?? existingStoreById.id);
        await (0, fs_extra_1.move)(previousDir, existingStoreById.datasetDirectory, { overwrite: true });
        existingStoreById.updateTimestamps(true);
        return existingStoreById.toDatasetInfo();
      }
      async delete() {
        const storeIndex = this.client.datasetClientsHandled.findIndex((store) => store.id === this.id);
        if (storeIndex !== -1) {
          const [oldClient] = this.client.datasetClientsHandled.splice(storeIndex, 1);
          oldClient.itemCount = 0;
          oldClient.datasetEntries.clear();
          await (0, promises_1.rm)(oldClient.datasetDirectory, { recursive: true, force: true });
        }
      }
      async downloadItems() {
        throw new Error("This method is not implemented in @crawlee/memory-storage");
      }
      listItems(options = {}) {
        const { desc, limit, offset } = shapeshift_1.s.object({
          desc: shapeshift_1.s.boolean.optional,
          limit: shapeshift_1.s.number.int.optional,
          offset: shapeshift_1.s.number.int.optional
        }).parse(options);
        return (0, utils_1.createPaginatedList)((pageOffset, pageLimit) => this.listItemsPage({
          desc,
          offset: pageOffset,
          limit: Math.min(pageLimit, LIST_ITEMS_LIMIT)
        }), { offset, limit });
      }
      listEntries(options = {}) {
        const { desc, limit, offset } = shapeshift_1.s.object({
          desc: shapeshift_1.s.boolean.optional,
          limit: shapeshift_1.s.number.int.optional,
          offset: shapeshift_1.s.number.int.optional
        }).parse(options);
        return (0, utils_1.createPaginatedEntryList)((pageOffset, pageLimit) => this.listItemsPage({
          desc,
          offset: pageOffset,
          limit: Math.min(pageLimit, LIST_ITEMS_LIMIT)
        }), { offset, limit });
      }
      async listItemsPage(options = {}) {
        const { limit = LIST_ITEMS_LIMIT, offset = 0, desc } = options;
        const existingStoreById = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.Dataset);
        }
        const [start, end] = existingStoreById.getStartAndEndIndexes(desc ? Math.max(existingStoreById.itemCount - offset - limit, 0) : offset, limit);
        const items = [];
        for (let idx = start; idx < end; idx++) {
          const entryNumber = this.generateLocalEntryName(idx);
          items.push(await existingStoreById.datasetEntries.get(entryNumber).get());
        }
        existingStoreById.updateTimestamps(false);
        return {
          count: items.length,
          desc: desc ?? false,
          items: desc ? items.reverse() : items,
          limit,
          offset,
          total: existingStoreById.itemCount
        };
      }
      async pushItems(items) {
        const rawItems = shapeshift_1.s.union(shapeshift_1.s.string, shapeshift_1.s.object({}).passthrough, shapeshift_1.s.array(shapeshift_1.s.union(shapeshift_1.s.string, shapeshift_1.s.object({}).passthrough))).parse(items);
        const existingStoreById = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, this.name ?? this.id);
        if (!existingStoreById) {
          this.throwOnNonExisting(consts_1.StorageTypes.Dataset);
        }
        const normalized = this.normalizeItems(rawItems);
        const addedIds = [];
        for (const entry of normalized) {
          const idx = this.generateLocalEntryName(++existingStoreById.itemCount);
          const storageEntry = (0, dataset_1.createDatasetStorageImplementation)({
            entityId: idx,
            persistStorage: this.client.persistStorage,
            storeDirectory: existingStoreById.datasetDirectory
          });
          await storageEntry.update(entry);
          existingStoreById.datasetEntries.set(idx, storageEntry);
          addedIds.push(idx);
        }
        existingStoreById.updateTimestamps(true);
      }
      toDatasetInfo() {
        return {
          id: this.id,
          accessedAt: this.accessedAt,
          createdAt: this.createdAt,
          itemCount: this.itemCount,
          modifiedAt: this.modifiedAt,
          name: this.name
        };
      }
      generateLocalEntryName(idx) {
        return idx.toString().padStart(LOCAL_ENTRY_NAME_DIGITS, "0");
      }
      getStartAndEndIndexes(offset, limit = this.itemCount) {
        const start = offset + 1;
        const end = Math.min(offset + limit, this.itemCount) + 1;
        return [start, end];
      }
      /**
       * To emulate API and split arrays of items into individual dataset items,
       * we need to normalize the input items - which can be strings, objects
       * or arrays of those - into objects, so that we can save them one by one
       * later. We could potentially do this directly with strings, but let's
       * not optimize prematurely.
       */
      normalizeItems(items) {
        if (typeof items === "string") {
          items = JSON.parse(items);
        }
        return Array.isArray(items) ? items.map((item) => this.normalizeItem(item)) : [this.normalizeItem(items)];
      }
      normalizeItem(item) {
        if (typeof item === "string") {
          item = JSON.parse(item);
        }
        if (Array.isArray(item)) {
          throw new Error(`Each dataset item can only be a single JSON object, not an array. Received: [${item.join(",\n")}]`);
        }
        if (typeof item !== "object" || item === null) {
          throw new Error(`Each dataset item must be a JSON object. Received: ${item}`);
        }
        return item;
      }
      updateTimestamps(hasBeenModified) {
        this.accessedAt = /* @__PURE__ */ new Date();
        if (hasBeenModified) {
          this.modifiedAt = /* @__PURE__ */ new Date();
        }
        const data = this.toDatasetInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          data,
          entityType: "datasets",
          entityDirectory: this.datasetDirectory,
          id: this.name ?? this.id,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
      }
    };
    exports2.DatasetClient = DatasetClient;
  }
});
var require_dataset_collection = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/dataset-collection.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DatasetCollectionClient = void 0;
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var dataset_1 = require_dataset2();
    var DatasetCollectionClient = class {
      constructor({ baseStorageDirectory, client }) {
        Object.defineProperty(this, "datasetsDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.datasetsDirectory = (0, node_path_1.resolve)(baseStorageDirectory);
        this.client = client;
      }
      async list() {
        return {
          total: this.client.datasetClientsHandled.length,
          count: this.client.datasetClientsHandled.length,
          offset: 0,
          limit: this.client.datasetClientsHandled.length,
          desc: false,
          items: this.client.datasetClientsHandled.map((store) => store.toDatasetInfo()).sort((a2, b2) => a2.createdAt.getTime() - b2.createdAt.getTime())
        };
      }
      async getOrCreate(name2) {
        shapeshift_1.s.string.optional.parse(name2);
        if (name2) {
          const found = await (0, cache_helpers_1.findOrCacheDatasetByPossibleId)(this.client, name2);
          if (found) {
            return found.toDatasetInfo();
          }
        }
        const newStore = new dataset_1.DatasetClient({ name: name2, baseStorageDirectory: this.datasetsDirectory, client: this.client });
        this.client.datasetClientsHandled.push(newStore);
        const datasetInfo = newStore.toDatasetInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          entityType: "datasets",
          entityDirectory: newStore.datasetDirectory,
          id: datasetInfo.name ?? datasetInfo.id,
          data: datasetInfo,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
        return datasetInfo;
      }
    };
    exports2.DatasetCollectionClient = DatasetCollectionClient;
  }
});
var require_key_value_store_collection = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/key-value-store-collection.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.KeyValueStoreCollectionClient = void 0;
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var key_value_store_1 = require_key_value_store2();
    var KeyValueStoreCollectionClient = class {
      constructor({ baseStorageDirectory, client }) {
        Object.defineProperty(this, "keyValueStoresDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.keyValueStoresDirectory = (0, node_path_1.resolve)(baseStorageDirectory);
        this.client = client;
      }
      async list() {
        return {
          total: this.client.keyValueStoresHandled.length,
          count: this.client.keyValueStoresHandled.length,
          offset: 0,
          limit: this.client.keyValueStoresHandled.length,
          desc: false,
          items: this.client.keyValueStoresHandled.map((store) => store.toKeyValueStoreInfo()).sort((a2, b2) => a2.createdAt.getTime() - b2.createdAt.getTime())
        };
      }
      async getOrCreate(name2) {
        shapeshift_1.s.string.optional.parse(name2);
        if (name2) {
          const found = await (0, cache_helpers_1.findOrCacheKeyValueStoreByPossibleId)(this.client, name2);
          if (found) {
            return found.toKeyValueStoreInfo();
          }
        }
        const newStore = new key_value_store_1.KeyValueStoreClient({
          name: name2,
          baseStorageDirectory: this.keyValueStoresDirectory,
          client: this.client
        });
        this.client.keyValueStoresHandled.push(newStore);
        const kvStoreInfo = newStore.toKeyValueStoreInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          entityType: "keyValueStores",
          entityDirectory: newStore.keyValueStoreDirectory,
          id: kvStoreInfo.name ?? kvStoreInfo.id,
          data: kvStoreInfo,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
        return kvStoreInfo;
      }
    };
    exports2.KeyValueStoreCollectionClient = KeyValueStoreCollectionClient;
  }
});
var require_request_queue_collection = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/resource-clients/request-queue-collection.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestQueueCollectionClient = void 0;
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var background_handler_1 = require_background_handler();
    var cache_helpers_1 = require_cache_helpers();
    var request_queue_1 = require_request_queue2();
    var RequestQueueCollectionClient = class {
      constructor({ baseStorageDirectory, client }) {
        Object.defineProperty(this, "requestQueuesDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.requestQueuesDirectory = (0, node_path_1.resolve)(baseStorageDirectory);
        this.client = client;
      }
      async list() {
        return {
          total: this.client.requestQueuesHandled.length,
          count: this.client.requestQueuesHandled.length,
          offset: 0,
          limit: this.client.requestQueuesHandled.length,
          desc: false,
          items: this.client.requestQueuesHandled.map((store) => store.toRequestQueueInfo()).sort((a2, b2) => a2.createdAt.getTime() - b2.createdAt.getTime())
        };
      }
      async getOrCreate(name2) {
        shapeshift_1.s.string.optional.parse(name2);
        if (name2) {
          const found = await (0, cache_helpers_1.findRequestQueueByPossibleId)(this.client, name2);
          if (found) {
            return found.toRequestQueueInfo();
          }
        }
        const newStore = new request_queue_1.RequestQueueClient({
          name: name2,
          baseStorageDirectory: this.requestQueuesDirectory,
          client: this.client
        });
        this.client.requestQueuesHandled.push(newStore);
        const queueInfo = newStore.toRequestQueueInfo();
        (0, background_handler_1.scheduleBackgroundTask)({
          action: "update-metadata",
          entityType: "requestQueues",
          entityDirectory: newStore.requestQueueDirectory,
          id: queueInfo.name ?? queueInfo.id,
          data: queueInfo,
          writeMetadata: this.client.writeMetadata,
          persistStorage: this.client.persistStorage
        });
        return queueInfo;
      }
    };
    exports2.RequestQueueCollectionClient = RequestQueueCollectionClient;
  }
});
var require_memory_storage = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/memory-storage.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.MemoryStorage = void 0;
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var shapeshift_1 = require_cjs5();
    var fs_extra_1 = require_lib();
    var index_1 = require_background_handler();
    var dataset_1 = require_dataset2();
    var dataset_collection_1 = require_dataset_collection();
    var key_value_store_1 = require_key_value_store2();
    var key_value_store_collection_1 = require_key_value_store_collection();
    var request_queue_1 = require_request_queue2();
    var request_queue_collection_1 = require_request_queue_collection();
    var MemoryStorage = class {
      constructor(options = {}) {
        Object.defineProperty(this, "localDataDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "datasetsDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStoresDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestQueuesDirectory", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "writeMetadata", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStorage", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStoresHandled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "datasetClientsHandled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "requestQueuesHandled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        shapeshift_1.s.object({
          localDataDirectory: shapeshift_1.s.string.optional,
          writeMetadata: shapeshift_1.s.boolean.optional,
          persistStorage: shapeshift_1.s.boolean.optional
        }).parse(options);
        const defaultStorageDir = () => {
          if ((0, fs_extra_1.pathExistsSync)((0, node_path_1.resolve)("./crawlee_storage"))) {
            return "./crawlee_storage";
          }
          return "./storage";
        };
        this.localDataDirectory = options.localDataDirectory ?? process.env.CRAWLEE_STORAGE_DIR ?? defaultStorageDir();
        this.datasetsDirectory = (0, node_path_1.resolve)(this.localDataDirectory, "datasets");
        this.keyValueStoresDirectory = (0, node_path_1.resolve)(this.localDataDirectory, "key_value_stores");
        this.requestQueuesDirectory = (0, node_path_1.resolve)(this.localDataDirectory, "request_queues");
        this.writeMetadata = options.writeMetadata ?? process.env.DEBUG?.includes("*") ?? process.env.DEBUG?.includes("crawlee:memory-storage") ?? false;
        this.persistStorage = options.persistStorage ?? (process.env.CRAWLEE_PERSIST_STORAGE ? !["false", "0", ""].includes(process.env.CRAWLEE_PERSIST_STORAGE) : true);
      }
      datasets() {
        return new dataset_collection_1.DatasetCollectionClient({
          baseStorageDirectory: this.datasetsDirectory,
          client: this
        });
      }
      dataset(id) {
        shapeshift_1.s.string.parse(id);
        return new dataset_1.DatasetClient({ id, baseStorageDirectory: this.datasetsDirectory, client: this });
      }
      keyValueStores() {
        return new key_value_store_collection_1.KeyValueStoreCollectionClient({
          baseStorageDirectory: this.keyValueStoresDirectory,
          client: this
        });
      }
      keyValueStore(id) {
        shapeshift_1.s.string.parse(id);
        return new key_value_store_1.KeyValueStoreClient({ id, baseStorageDirectory: this.keyValueStoresDirectory, client: this });
      }
      requestQueues() {
        return new request_queue_collection_1.RequestQueueCollectionClient({
          baseStorageDirectory: this.requestQueuesDirectory,
          client: this
        });
      }
      requestQueue(id, options = {}) {
        shapeshift_1.s.string.parse(id);
        shapeshift_1.s.object({
          clientKey: shapeshift_1.s.string.optional,
          timeoutSecs: shapeshift_1.s.number.optional
        }).parse(options);
        return new request_queue_1.RequestQueueClient({
          id,
          baseStorageDirectory: this.requestQueuesDirectory,
          client: this,
          ...options
        });
      }
      async setStatusMessage(message, options = {}) {
        shapeshift_1.s.string.parse(message);
        shapeshift_1.s.object({
          isStatusMessageTerminal: shapeshift_1.s.boolean.optional
        }).parse(options);
        return Promise.resolve();
      }
      /**
       * Cleans up the default storage directories before the run starts:
       *  - local directory containing the default dataset;
       *  - all records from the default key-value store in the local directory, except for the "INPUT" key;
       *  - local directory containing the default request queue.
       */
      async purge() {
        const keyValueStores = await (0, promises_1.readdir)(this.keyValueStoresDirectory).catch(() => []);
        const keyValueStorePromises = [];
        for (const keyValueStoreFolder of keyValueStores) {
          if (keyValueStoreFolder.startsWith("__CRAWLEE_TEMPORARY") || keyValueStoreFolder.startsWith("__OLD")) {
            keyValueStorePromises.push((await this.batchRemoveFiles((0, node_path_1.resolve)(this.keyValueStoresDirectory, keyValueStoreFolder)))());
          } else if (keyValueStoreFolder === "default") {
            keyValueStorePromises.push(this.handleDefaultKeyValueStore((0, node_path_1.resolve)(this.keyValueStoresDirectory, keyValueStoreFolder))());
          }
        }
        void Promise.allSettled(keyValueStorePromises);
        const datasets = await (0, promises_1.readdir)(this.datasetsDirectory).catch(() => []);
        const datasetPromises = [];
        for (const datasetFolder of datasets) {
          if (datasetFolder === "default" || datasetFolder.startsWith("__CRAWLEE_TEMPORARY")) {
            datasetPromises.push((await this.batchRemoveFiles((0, node_path_1.resolve)(this.datasetsDirectory, datasetFolder)))());
          }
        }
        void Promise.allSettled(datasetPromises);
        const requestQueues = await (0, promises_1.readdir)(this.requestQueuesDirectory).catch(() => []);
        const requestQueuePromises = [];
        for (const requestQueueFolder of requestQueues) {
          if (requestQueueFolder === "default" || requestQueueFolder.startsWith("__CRAWLEE_TEMPORARY")) {
            requestQueuePromises.push((await this.batchRemoveFiles((0, node_path_1.resolve)(this.requestQueuesDirectory, requestQueueFolder)))());
          }
        }
        void Promise.allSettled(requestQueuePromises);
      }
      /**
       * This method should be called at the end of the process, to ensure all data is saved.
       */
      async teardown() {
        const promises = [...index_1.promiseMap.values()].map(async ({ promise }) => promise);
        await Promise.all(promises);
      }
      handleDefaultKeyValueStore(folder) {
        const storagePathExists = (0, fs_extra_1.pathExistsSync)(folder);
        const temporaryPath = (0, node_path_1.resolve)(folder, "../__CRAWLEE_MIGRATING_KEY_VALUE_STORE__");
        const possibleInputKeys = ["INPUT", "INPUT.json", "INPUT.bin", "INPUT.txt"];
        if (storagePathExists) {
          (0, fs_extra_1.ensureDirSync)(temporaryPath);
          for (const entity of possibleInputKeys) {
            const originalFilePath = (0, node_path_1.resolve)(folder, entity);
            const tempFilePath = (0, node_path_1.resolve)(temporaryPath, entity);
            try {
              (0, fs_extra_1.moveSync)(originalFilePath, tempFilePath);
            } catch {
            }
          }
          let counter = 0;
          let tempPathForOldFolder = (0, node_path_1.resolve)(folder, `../__OLD_DEFAULT_${counter}__`);
          let done = false;
          while (!done) {
            try {
              (0, fs_extra_1.moveSync)(folder, tempPathForOldFolder);
              done = true;
            } catch {
              tempPathForOldFolder = (0, node_path_1.resolve)(folder, `../__OLD_DEFAULT_${++counter}__`);
            }
          }
          (0, fs_extra_1.moveSync)(temporaryPath, folder);
          return async () => (await this.batchRemoveFiles(tempPathForOldFolder))();
        }
        return async () => Promise.resolve();
      }
      async batchRemoveFiles(folder, counter = 0) {
        const folderExists = (0, fs_extra_1.pathExistsSync)(folder);
        if (folderExists) {
          const temporaryFolder = (0, node_path_1.resolve)(folder, `../__CRAWLEE_TEMPORARY_${counter}__`);
          try {
            await (0, fs_extra_1.move)(folder, temporaryFolder);
          } catch {
            return this.batchRemoveFiles(folder, ++counter);
          }
          return async () => {
            const entries2 = await (0, promises_1.readdir)(temporaryFolder);
            let processed = 0;
            let promises = [];
            for (const entry of entries2) {
              processed++;
              promises.push((0, promises_1.rm)((0, node_path_1.resolve)(temporaryFolder, entry), { force: true }));
              if (processed % 2e3 === 0) {
                await Promise.allSettled(promises);
                promises = [];
              }
            }
            await Promise.allSettled(promises);
            await (0, promises_1.rm)(temporaryFolder, { force: true, recursive: true });
          };
        }
        return async () => Promise.resolve();
      }
    };
    exports2.MemoryStorage = MemoryStorage;
  }
});
var require_memory_storage2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+memory-storage@3.16.0/node_modules/@crawlee/memory-storage/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_memory_storage(), exports2);
  }
});
var require_dist3 = __commonJS2({
  "../../node_modules/.pnpm/@vladfrangu+async_event_emitter@2.4.7/node_modules/@vladfrangu/async_event_emitter/dist/index.cjs"(exports2, module2) {
    "use strict";
    var __create22 = Object.create;
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __getProtoOf22 = Object.getPrototypeOf;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var __esm2 = (fn3, res) => function __init() {
      return fn3 && (res = (0, fn3[__getOwnPropNames22(fn3)[0]])(fn3 = 0)), res;
    };
    var __commonJS22 = (cb, mod3) => function __require2() {
      return mod3 || (0, cb[__getOwnPropNames22(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports;
    };
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toESM22 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create22(__getProtoOf22(mod3)) : {}, __copyProps22(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp32(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var init_cjs_shims = __esm2({
      "node_modules/tsup/assets/cjs_shims.js"() {
      }
    });
    var require_inspect = __commonJS22({
      "node_modules/node-inspect-extracted/dist/inspect.js"(exports22, module22) {
        init_cjs_shims();
        !(function(t9, e2) {
          "object" == typeof exports22 && "object" == typeof module22 ? module22.exports = e2() : "function" == typeof define && define.amd ? define([], e2) : "object" == typeof exports22 ? exports22.util = e2() : t9.util = e2();
        })(exports22, () => (() => {
          "use strict";
          var t9 = { 22: (t22) => {
            t22.exports = { CHAR_DOT: 46, CHAR_FORWARD_SLASH: 47, CHAR_BACKWARD_SLASH: 92 };
          }, 24: (t22) => {
            t22.exports = URL;
          }, 33: (t22, e22, r2) => {
            function n22(t32) {
              return n22 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n22(t32);
            }
            __name2(n22, "n");
            function o22(t32, e3) {
              var r22 = "undefined" != typeof Symbol && t32[Symbol.iterator] || t32["@@iterator"];
              if (!r22) {
                if (Array.isArray(t32) || (r22 = (function(t42, e4) {
                  if (t42) {
                    if ("string" == typeof t42) return a2(t42, e4);
                    var r3 = {}.toString.call(t42).slice(8, -1);
                    return "Object" === r3 && t42.constructor && (r3 = t42.constructor.name), "Map" === r3 || "Set" === r3 ? Array.from(t42) : "Arguments" === r3 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r3) ? a2(t42, e4) : void 0;
                  }
                })(t32)) || e3 && t32 && "number" == typeof t32.length) {
                  r22 && (t32 = r22);
                  var n222 = 0, o222 = /* @__PURE__ */ __name2(function() {
                  }, "o");
                  return { s: o222, n: /* @__PURE__ */ __name2(function() {
                    return n222 >= t32.length ? { done: true } : { done: false, value: t32[n222++] };
                  }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                    throw t42;
                  }, "e"), f: o222 };
                }
                throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              }
              var i222, c22 = true, u22 = false;
              return { s: /* @__PURE__ */ __name2(function() {
                r22 = r22.call(t32);
              }, "s"), n: /* @__PURE__ */ __name2(function() {
                var t42 = r22.next();
                return c22 = t42.done, t42;
              }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                u22 = true, i222 = t42;
              }, "e"), f: /* @__PURE__ */ __name2(function() {
                try {
                  c22 || null == r22.return || r22.return();
                } finally {
                  if (u22) throw i222;
                }
              }, "f") };
            }
            __name2(o22, "o");
            function a2(t32, e3) {
              (null == e3 || e3 > t32.length) && (e3 = t32.length);
              for (var r22 = 0, n222 = Array(e3); r22 < e3; r22++) n222[r22] = t32[r22];
              return n222;
            }
            __name2(a2, "a");
            function i22(t32, e3) {
              var r22 = Object.keys(t32);
              if (Object.getOwnPropertySymbols) {
                var n222 = Object.getOwnPropertySymbols(t32);
                e3 && (n222 = n222.filter(function(e4) {
                  return Object.getOwnPropertyDescriptor(t32, e4).enumerable;
                })), r22.push.apply(r22, n222);
              }
              return r22;
            }
            __name2(i22, "i");
            function c3(t32) {
              for (var e3 = 1; e3 < arguments.length; e3++) {
                var r22 = null != arguments[e3] ? arguments[e3] : {};
                e3 % 2 ? i22(Object(r22), true).forEach(function(e4) {
                  u2(t32, e4, r22[e4]);
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t32, Object.getOwnPropertyDescriptors(r22)) : i22(Object(r22)).forEach(function(e4) {
                  Object.defineProperty(t32, e4, Object.getOwnPropertyDescriptor(r22, e4));
                });
              }
              return t32;
            }
            __name2(c3, "c");
            function u2(t32, e3, r22) {
              return (e3 = (function(t42) {
                var e4 = (function(t52) {
                  if ("object" != n22(t52) || !t52) return t52;
                  var e5 = t52[Symbol.toPrimitive];
                  if (void 0 !== e5) {
                    var r3 = e5.call(t52, "string");
                    if ("object" != n22(r3)) return r3;
                    throw new TypeError("@@toPrimitive must return a primitive value.");
                  }
                  return String(t52);
                })(t42);
                return "symbol" == n22(e4) ? e4 : e4 + "";
              })(e3)) in t32 ? Object.defineProperty(t32, e3, { value: r22, enumerable: true, configurable: true, writable: true }) : t32[e3] = r22, t32;
            }
            __name2(u2, "u");
            var l2, f, s2, y2 = r2(425), p = y2.AggregateError, g = y2.AggregateErrorPrototype, v2 = y2.Array, h23 = y2.ArrayBuffer, d = y2.ArrayBufferPrototype, b2 = y2.ArrayIsArray, m2 = y2.ArrayPrototype, S3 = y2.ArrayPrototypeFilter, P3 = y2.ArrayPrototypeForEach, x3 = y2.ArrayPrototypeIncludes, w3 = y2.ArrayPrototypeIndexOf, A2 = y2.ArrayPrototypeJoin, O3 = y2.ArrayPrototypeMap, _3 = y2.ArrayPrototypePop, j2 = y2.ArrayPrototypePush, E2 = y2.ArrayPrototypePushApply, k3 = y2.ArrayPrototypeSlice, I4 = y2.ArrayPrototypeSort, R2 = y2.ArrayPrototypeSplice, L3 = y2.ArrayPrototypeUnshift, T3 = y2.BigIntPrototypeValueOf, B3 = y2.Boolean, z4 = y2.BooleanPrototype, M2 = y2.BooleanPrototypeValueOf, C = y2.DataView, D = y2.DataViewPrototype, N3 = y2.Date, F = y2.DatePrototype, W3 = y2.DatePrototypeGetTime, H3 = y2.DatePrototypeToISOString, U3 = y2.DatePrototypeToString, G3 = y2.Error, V3 = y2.ErrorPrototype, Z3 = y2.ErrorPrototypeToString, $2 = y2.Function, Y3 = y2.FunctionPrototype, q3 = y2.FunctionPrototypeBind, J3 = y2.FunctionPrototypeCall, K3 = y2.FunctionPrototypeSymbolHasInstance, Q3 = y2.FunctionPrototypeToString, X2 = y2.JSONStringify, tt3 = y2.Map, et22 = y2.MapPrototype, rt3 = y2.MapPrototypeEntries, nt3 = y2.MapPrototypeGetSize, ot3 = y2.MathFloor, at3 = y2.MathMax, it3 = y2.MathMin, ct3 = y2.MathRound, ut3 = y2.MathSqrt, lt3 = y2.MathTrunc, ft3 = y2.Number, st3 = y2.NumberIsFinite, yt3 = y2.NumberIsNaN, pt3 = y2.NumberParseFloat, gt3 = y2.NumberParseInt, vt3 = y2.NumberPrototype, ht3 = y2.NumberPrototypeToString, dt3 = y2.NumberPrototypeValueOf, bt3 = y2.Object, mt2 = y2.ObjectAssign, St3 = y2.ObjectDefineProperty, Pt3 = y2.ObjectGetOwnPropertyDescriptor, xt3 = y2.ObjectGetOwnPropertyNames, wt3 = y2.ObjectGetOwnPropertySymbols, At2 = y2.ObjectGetPrototypeOf, Ot3 = y2.ObjectIs, _t3 = y2.ObjectKeys, jt3 = y2.ObjectPrototype, Et3 = y2.ObjectPrototypeHasOwnProperty, kt3 = y2.ObjectPrototypePropertyIsEnumerable, It3 = y2.ObjectSeal, Rt3 = y2.ObjectSetPrototypeOf, Lt3 = y2.Promise, Tt3 = y2.PromisePrototype, Bt3 = y2.RangeError, zt3 = y2.RangeErrorPrototype, Mt3 = y2.ReflectApply, Ct3 = y2.ReflectOwnKeys, Dt3 = y2.RegExp, Nt3 = y2.RegExpPrototype, Ft3 = y2.RegExpPrototypeExec, Wt3 = y2.RegExpPrototypeSymbolReplace, Ht3 = y2.RegExpPrototypeSymbolSplit, Ut3 = y2.RegExpPrototypeToString, Gt3 = y2.SafeMap, Vt3 = y2.SafeSet, Zt3 = y2.SafeStringIterator, $t3 = y2.Set, Yt3 = y2.SetPrototype, qt3 = y2.SetPrototypeGetSize, Jt2 = y2.SetPrototypeValues, Kt2 = y2.String, Qt2 = y2.StringPrototype, Xt2 = y2.StringPrototypeCharCodeAt, te2 = y2.StringPrototypeCodePointAt, ee3 = y2.StringPrototypeEndsWith, re3 = y2.StringPrototypeIncludes, ne3 = y2.StringPrototypeIndexOf, oe2 = y2.StringPrototypeLastIndexOf, ae2 = y2.StringPrototypeNormalize, ie3 = y2.StringPrototypePadEnd, ce3 = y2.StringPrototypePadStart, ue2 = y2.StringPrototypeRepeat, le3 = y2.StringPrototypeReplace, fe3 = y2.StringPrototypeReplaceAll, se3 = y2.StringPrototypeSlice, ye3 = y2.StringPrototypeSplit, pe3 = y2.StringPrototypeStartsWith, ge3 = y2.StringPrototypeToLowerCase, ve3 = y2.StringPrototypeTrim, he3 = y2.StringPrototypeValueOf, de3 = y2.SymbolIterator, be3 = y2.SymbolPrototypeToString, me3 = y2.SymbolPrototypeValueOf, Se3 = y2.SymbolToPrimitive, Pe2 = y2.SymbolToStringTag, xe3 = y2.TypeError, we3 = y2.TypeErrorPrototype, Ae2 = y2.TypedArray, Oe3 = y2.TypedArrayPrototype, _e3 = y2.TypedArrayPrototypeGetLength, je3 = y2.TypedArrayPrototypeGetSymbolToStringTag, Ee3 = y2.Uint8Array, ke3 = y2.WeakMap, Ie3 = y2.WeakMapPrototype, Re3 = y2.WeakSet, Le3 = y2.WeakSetPrototype, Te3 = y2.globalThis, Be3 = y2.internalBinding, ze3 = y2.uncurryThis, Me3 = r2(153), Ce3 = Me3.constants, De3 = Ce3.ALL_PROPERTIES, Ne3 = Ce3.ONLY_ENUMERABLE, Fe3 = Ce3.kPending, We3 = Ce3.kRejected, He2 = Me3.getOwnNonIndexProperties, Ue3 = Me3.getPromiseDetails, Ge3 = Me3.getProxyDetails, Ve3 = Me3.previewEntries, Ze3 = Me3.getConstructorName, $e2 = Me3.getExternalValue, Ye3 = Me3.Proxy, qe3 = r2(923), Je3 = qe3.customInspectSymbol, Ke3 = qe3.isError, Qe3 = qe3.join, Xe3 = qe3.removeColors, tr3 = r2(924).isStackOverflowError, er3 = r2(617), rr3 = er3.isAsyncFunction, nr2 = er3.isGeneratorFunction, or3 = er3.isAnyArrayBuffer, ar3 = er3.isArrayBuffer, ir3 = er3.isArgumentsObject, cr3 = er3.isBoxedPrimitive, ur3 = er3.isDataView, lr3 = er3.isExternal, fr3 = er3.isMap, sr3 = er3.isMapIterator, yr3 = er3.isModuleNamespaceObject, pr3 = er3.isNativeError, gr3 = er3.isPromise, vr3 = er3.isSet, hr4 = er3.isSetIterator, dr3 = er3.isWeakMap, br3 = er3.isWeakSet, mr3 = er3.isRegExp, Sr3 = er3.isDate, Pr2 = er3.isTypedArray, xr3 = er3.isStringObject, wr3 = er3.isNumberObject, Ar3 = er3.isBooleanObject, Or3 = er3.isBigIntObject, _r3 = r2(229), jr2 = r2(705).BuiltinModule, Er3 = r2(116), kr3 = Er3.validateObject, Ir2 = Er3.validateString, Rr2 = Er3.kValidateObjectAllowArray;
            function Lr3(t32) {
              return (f = f || r2(802)).pathToFileURL(t32).href;
            }
            __name2(Lr3, "Lr");
            var Tr3, Br3, zr3, Mr3, Cr3, Dr3 = new Vt3(S3(xt3(Te3), function(t32) {
              return null !== Ft3(/^[A-Z][a-zA-Z0-9]+$/, t32);
            })), Nr2 = /* @__PURE__ */ __name2(function(t32) {
              return void 0 === t32 && void 0 !== t32;
            }, "Nr"), Fr3 = It3({ showHidden: false, depth: 2, colors: false, customInspect: true, showProxy: false, maxArrayLength: 100, maxStringLength: 1e4, breakLength: 80, compact: 3, sorted: false, getters: false, numericSeparator: false });
            try {
              Tr3 = new Dt3("[\\x00-\\x1f\\x27\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]"), Br3 = new Dt3("[\0-\\x1f\\x27\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]", "g"), zr3 = new Dt3("[\\x00-\\x1f\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]"), Mr3 = new Dt3("[\\x00-\\x1f\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]", "g");
              var Wr3 = new Dt3("(?<=\\n)");
              Cr3 = /* @__PURE__ */ __name2(function(t32) {
                return Ht3(Wr3, t32);
              }, "Cr");
            } catch (t32) {
              Tr3 = /[\x00-\x1f\x27\x5c\x7f-\x9f]/, Br3 = /[\x00-\x1f\x27\x5c\x7f-\x9f]/g, zr3 = /[\x00-\x1f\x5c\x7f-\x9f]/, Mr3 = /[\x00-\x1f\x5c\x7f-\x9f]/g, Cr3 = /* @__PURE__ */ __name2(function(t42) {
                var e3 = Ht3(/\n/, t42), r22 = _3(e3), n222 = O3(e3, function(t52) {
                  return t52 + "\n";
                });
                return "" !== r22 && n222.push(r22), n222;
              }, "Cr");
            }
            var Hr3, Ur3 = /^[a-zA-Z_][a-zA-Z_0-9]*$/, Gr3 = /^(0|[1-9][0-9]*)$/, Vr3 = /^ {4}at (?:[^/\\(]+ \(|)node:(.+):\d+:\d+\)?$/, Zr3 = /^(\s+[^(]*?)\s*{/, $r3 = /(\/\/.*?\n)|(\/\*(.|\n)*?\*\/)/g, Yr3 = ["\\x00", "\\x01", "\\x02", "\\x03", "\\x04", "\\x05", "\\x06", "\\x07", "\\b", "\\t", "\\n", "\\x0B", "\\f", "\\r", "\\x0E", "\\x0F", "\\x10", "\\x11", "\\x12", "\\x13", "\\x14", "\\x15", "\\x16", "\\x17", "\\x18", "\\x19", "\\x1A", "\\x1B", "\\x1C", "\\x1D", "\\x1E", "\\x1F", "", "", "", "", "", "", "", "\\'", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\\\\", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\\x7F", "\\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"], qr2 = new Dt3("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))", "g");
            function Jr3(t32, e3) {
              var r22 = { budget: {}, indentationLvl: 0, seen: [], currentDepth: 0, stylize: on22, showHidden: Fr3.showHidden, depth: Fr3.depth, colors: Fr3.colors, customInspect: Fr3.customInspect, showProxy: Fr3.showProxy, maxArrayLength: Fr3.maxArrayLength, maxStringLength: Fr3.maxStringLength, breakLength: Fr3.breakLength, compact: Fr3.compact, sorted: Fr3.sorted, getters: Fr3.getters, numericSeparator: Fr3.numericSeparator };
              if (arguments.length > 1) {
                if (arguments.length > 2 && (void 0 !== arguments[2] && (r22.depth = arguments[2]), arguments.length > 3 && void 0 !== arguments[3] && (r22.colors = arguments[3])), "boolean" == typeof e3) r22.showHidden = e3;
                else if (e3) for (var n222 = _t3(e3), o222 = 0; o222 < n222.length; ++o222) {
                  var a22 = n222[o222];
                  Et3(Fr3, a22) || "stylize" === a22 ? r22[a22] = e3[a22] : void 0 === r22.userOptions && (r22.userOptions = e3);
                }
              }
              return r22.colors && (r22.stylize = nn3), null === r22.maxArrayLength && (r22.maxArrayLength = 1 / 0), null === r22.maxStringLength && (r22.maxStringLength = 1 / 0), gn3(r22, t32, 0);
            }
            __name2(Jr3, "Jr");
            Jr3.custom = Je3, St3(Jr3, "defaultOptions", { __proto__: null, get: /* @__PURE__ */ __name2(function() {
              return Fr3;
            }, "get"), set: /* @__PURE__ */ __name2(function(t32) {
              return kr3(t32, "options"), mt2(Fr3, t32);
            }, "set") });
            var Kr2 = 39, Qr2 = 49;
            function Xr3(t32, e3) {
              St3(Jr3.colors, e3, { __proto__: null, get: /* @__PURE__ */ __name2(function() {
                return this[t32];
              }, "get"), set: /* @__PURE__ */ __name2(function(e4) {
                this[t32] = e4;
              }, "set"), configurable: true, enumerable: false });
            }
            __name2(Xr3, "Xr");
            function tn3(t32, e3) {
              return -1 === e3 ? '"'.concat(t32, '"') : -2 === e3 ? "`".concat(t32, "`") : "'".concat(t32, "'");
            }
            __name2(tn3, "tn");
            function en3(t32) {
              var e3 = Xt2(t32);
              return Yr3.length > e3 ? Yr3[e3] : "\\u".concat(ht3(e3, 16));
            }
            __name2(en3, "en");
            function rn3(t32) {
              var e3 = Tr3, r22 = Br3, n222 = 39;
              if (re3(t32, "'") && (re3(t32, '"') ? re3(t32, "`") || re3(t32, "${") || (n222 = -2) : n222 = -1, 39 !== n222 && (e3 = zr3, r22 = Mr3)), t32.length < 5e3 && null === Ft3(e3, t32)) return tn3(t32, n222);
              if (t32.length > 100) return tn3(t32 = Wt3(r22, t32, en3), n222);
              for (var o222 = "", a22 = 0, i222 = 0; i222 < t32.length; i222++) {
                var c22 = Xt2(t32, i222);
                if (c22 === n222 || 92 === c22 || c22 < 32 || c22 > 126 && c22 < 160) o222 += a22 === i222 ? Yr3[c22] : "".concat(se3(t32, a22, i222)).concat(Yr3[c22]), a22 = i222 + 1;
                else if (c22 >= 55296 && c22 <= 57343) {
                  if (c22 <= 56319 && i222 + 1 < t32.length) {
                    var u22 = Xt2(t32, i222 + 1);
                    if (u22 >= 56320 && u22 <= 57343) {
                      i222++;
                      continue;
                    }
                  }
                  o222 += "".concat(se3(t32, a22, i222), "\\u").concat(ht3(c22, 16)), a22 = i222 + 1;
                }
              }
              return a22 !== t32.length && (o222 += se3(t32, a22)), tn3(o222, n222);
            }
            __name2(rn3, "rn");
            function nn3(t32, e3) {
              var r22 = Jr3.styles[e3];
              if (void 0 !== r22) {
                var n222 = Jr3.colors[r22];
                if (void 0 !== n222) return "\x1B[".concat(n222[0], "m").concat(t32, "\x1B[").concat(n222[1], "m");
              }
              return t32;
            }
            __name2(nn3, "nn");
            function on22(t32) {
              return t32;
            }
            __name2(on22, "on");
            function an3() {
              return [];
            }
            __name2(an3, "an");
            function cn3(t32, e3) {
              try {
                return t32 instanceof e3;
              } catch (t42) {
                return false;
              }
            }
            __name2(cn3, "cn");
            Jr3.colors = { __proto__: null, reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], blink: [5, 25], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29], doubleunderline: [21, 24], black: [30, Kr2], red: [31, Kr2], green: [32, Kr2], yellow: [33, Kr2], blue: [34, Kr2], magenta: [35, Kr2], cyan: [36, Kr2], white: [37, Kr2], bgBlack: [40, Qr2], bgRed: [41, Qr2], bgGreen: [42, Qr2], bgYellow: [43, Qr2], bgBlue: [44, Qr2], bgMagenta: [45, Qr2], bgCyan: [46, Qr2], bgWhite: [47, Qr2], framed: [51, 54], overlined: [53, 55], gray: [90, Kr2], redBright: [91, Kr2], greenBright: [92, Kr2], yellowBright: [93, Kr2], blueBright: [94, Kr2], magentaBright: [95, Kr2], cyanBright: [96, Kr2], whiteBright: [97, Kr2], bgGray: [100, Qr2], bgRedBright: [101, Qr2], bgGreenBright: [102, Qr2], bgYellowBright: [103, Qr2], bgBlueBright: [104, Qr2], bgMagentaBright: [105, Qr2], bgCyanBright: [106, Qr2], bgWhiteBright: [107, Qr2] }, Xr3("gray", "grey"), Xr3("gray", "blackBright"), Xr3("bgGray", "bgGrey"), Xr3("bgGray", "bgBlackBright"), Xr3("dim", "faint"), Xr3("strikethrough", "crossedout"), Xr3("strikethrough", "strikeThrough"), Xr3("strikethrough", "crossedOut"), Xr3("hidden", "conceal"), Xr3("inverse", "swapColors"), Xr3("inverse", "swapcolors"), Xr3("doubleunderline", "doubleUnderline"), Jr3.styles = mt2({ __proto__: null }, { special: "cyan", number: "yellow", bigint: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", symbol: "green", date: "magenta", regexp: "red", module: "underline" });
            var un3 = new Gt3().set(m2, { name: "Array", constructor: v2 }).set(d, { name: "ArrayBuffer", constructor: h23 }).set(Y3, { name: "Function", constructor: $2 }).set(et22, { name: "Map", constructor: tt3 }).set(Yt3, { name: "Set", constructor: $t3 }).set(jt3, { name: "Object", constructor: bt3 }).set(Oe3, { name: "TypedArray", constructor: Ae2 }).set(Nt3, { name: "RegExp", constructor: Dt3 }).set(F, { name: "Date", constructor: N3 }).set(D, { name: "DataView", constructor: C }).set(V3, { name: "Error", constructor: G3 }).set(g, { name: "AggregateError", constructor: p }).set(zt3, { name: "RangeError", constructor: Bt3 }).set(we3, { name: "TypeError", constructor: xe3 }).set(z4, { name: "Boolean", constructor: B3 }).set(vt3, { name: "Number", constructor: ft3 }).set(Qt2, { name: "String", constructor: Kt2 }).set(Tt3, { name: "Promise", constructor: Lt3 }).set(Ie3, { name: "WeakMap", constructor: ke3 }).set(Le3, { name: "WeakSet", constructor: Re3 });
            function ln3(t32, e3, r22, n222) {
              for (var o222, a22 = t32; t32 || Nr2(t32); ) {
                var i222 = un3.get(t32);
                if (void 0 !== i222) {
                  var u22 = i222.name, l22 = i222.constructor;
                  if (K3(l22, a22)) return void 0 !== n222 && o222 !== t32 && fn3(e3, a22, o222 || a22, r22, n222), u22;
                }
                var f2 = Pt3(t32, "constructor");
                if (void 0 !== f2 && "function" == typeof f2.value && "" !== f2.value.name && cn3(a22, f2.value)) return void 0 === n222 || o222 === t32 && Dr3.has(f2.value.name) || fn3(e3, a22, o222 || a22, r22, n222), Kt2(f2.value.name);
                t32 = At2(t32), void 0 === o222 && (o222 = t32);
              }
              if (null === o222) return null;
              var s22 = Ze3(a22);
              if (r22 > e3.depth && null !== e3.depth) return "".concat(s22, " <Complex prototype>");
              var y22 = ln3(o222, e3, r22 + 1, n222);
              return null === y22 ? "".concat(s22, " <").concat(Jr3(o222, c3(c3({}, e3), {}, { customInspect: false, depth: -1 })), ">") : "".concat(s22, " <").concat(y22, ">");
            }
            __name2(ln3, "ln");
            function fn3(t32, e3, r22, n222, a22) {
              var i222, c22, u22 = 0;
              do {
                if (0 !== u22 || e3 === r22) {
                  if (null === (r22 = At2(r22))) return;
                  var l22 = Pt3(r22, "constructor");
                  if (void 0 !== l22 && "function" == typeof l22.value && Dr3.has(l22.value.name)) return;
                }
                0 === u22 ? c22 = new Vt3() : P3(i222, function(t42) {
                  return c22.add(t42);
                }), i222 = Ct3(r22), j2(t32.seen, e3);
                var f2, s22 = o22(i222);
                try {
                  for (s22.s(); !(f2 = s22.n()).done; ) {
                    var y22 = f2.value;
                    if (!("constructor" === y22 || Et3(e3, y22) || 0 !== u22 && c22.has(y22))) {
                      var p2 = Pt3(r22, y22);
                      if ("function" != typeof p2.value) {
                        var g2 = Nn3(t32, r22, n222, y22, 0, p2, e3);
                        t32.colors ? j2(a22, "\x1B[2m".concat(g2, "\x1B[22m")) : j2(a22, g2);
                      }
                    }
                  }
                } catch (t42) {
                  s22.e(t42);
                } finally {
                  s22.f();
                }
                _3(t32.seen);
              } while (3 !== ++u22);
            }
            __name2(fn3, "fn");
            function sn3(t32, e3, r22) {
              var n222 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "";
              return null === t32 ? "" !== e3 && r22 !== e3 ? "[".concat(r22).concat(n222, ": null prototype] [").concat(e3, "] ") : "[".concat(r22).concat(n222, ": null prototype] ") : "" !== e3 && t32 !== e3 ? "".concat(t32).concat(n222, " [").concat(e3, "] ") : "".concat(t32).concat(n222, " ");
            }
            __name2(sn3, "sn");
            function yn3(t32, e3) {
              var r22, n222 = wt3(t32);
              if (e3) r22 = xt3(t32), 0 !== n222.length && E2(r22, n222);
              else {
                try {
                  r22 = _t3(t32);
                } catch (e4) {
                  _r3(pr3(e4) && "ReferenceError" === e4.name && yr3(t32)), r22 = xt3(t32);
                }
                0 !== n222.length && E2(r22, S3(n222, function(e4) {
                  return kt3(t32, e4);
                }));
              }
              return r22;
            }
            __name2(yn3, "yn");
            function pn2(t32, e3, r22) {
              var n222 = "";
              return null === e3 && (n222 = Ze3(t32)) === r22 && (n222 = "Object"), sn3(e3, r22, n222);
            }
            __name2(pn2, "pn");
            function gn3(t32, e3, a22, i222) {
              if ("object" !== n22(e3) && "function" != typeof e3 && !Nr2(e3)) return An3(t32.stylize, e3, t32);
              if (null === e3) return t32.stylize("null", "null");
              var u22 = e3, l22 = Ge3(e3, !!t32.showProxy);
              if (void 0 !== l22) {
                if (null === l22 || null === l22[0]) return t32.stylize("<Revoked Proxy>", "special");
                if (t32.showProxy) return (function(t42, e4, r22) {
                  if (r22 > t42.depth && null !== t42.depth) return t42.stylize("Proxy [Array]", "special");
                  r22 += 1, t42.indentationLvl += 2;
                  var n222 = [gn3(t42, e4[0], r22), gn3(t42, e4[1], r22)];
                  return t42.indentationLvl -= 2, Wn3(t42, n222, "", ["Proxy [", "]"], 2, r22);
                })(t32, l22, a22);
                e3 = l22;
              }
              if (t32.customInspect) {
                var p2, g2 = e3[Je3];
                if ("function" == typeof g2 && g2 !== Jr3 && (null === (p2 = Pt3(e3, "constructor")) || void 0 === p2 || null === (p2 = p2.value) || void 0 === p2 ? void 0 : p2.prototype) !== e3) {
                  var v22 = null === t32.depth ? null : t32.depth - a22, h222 = void 0 !== l22 || !K3(bt3, u22), d2 = J3(g2, u22, v22, (function(t42, e4) {
                    var r22 = c3({ stylize: t42.stylize, showHidden: t42.showHidden, depth: t42.depth, colors: t42.colors, customInspect: t42.customInspect, showProxy: t42.showProxy, maxArrayLength: t42.maxArrayLength, maxStringLength: t42.maxStringLength, breakLength: t42.breakLength, compact: t42.compact, sorted: t42.sorted, getters: t42.getters, numericSeparator: t42.numericSeparator }, t42.userOptions);
                    if (e4) {
                      Rt3(r22, null);
                      var a3, i3 = o22(_t3(r22));
                      try {
                        for (i3.s(); !(a3 = i3.n()).done; ) {
                          var u3 = a3.value;
                          "object" !== n22(r22[u3]) && "function" != typeof r22[u3] || null === r22[u3] || delete r22[u3];
                        }
                      } catch (t52) {
                        i3.e(t52);
                      } finally {
                        i3.f();
                      }
                      r22.stylize = Rt3(function(e5, r3) {
                        var n222;
                        try {
                          n222 = "".concat(t42.stylize(e5, r3));
                        } catch (t52) {
                        }
                        return "string" != typeof n222 ? e5 : n222;
                      }, null);
                    }
                    return r22;
                  })(t32, h222), Jr3);
                  if (d2 !== u22) return "string" != typeof d2 ? gn3(t32, d2, a22) : fe3(d2, "\n", "\n".concat(ue2(" ", t32.indentationLvl)));
                }
              }
              if (t32.seen.includes(e3)) {
                var m22 = 1;
                return void 0 === t32.circular ? (t32.circular = new Gt3(), t32.circular.set(e3, m22)) : void 0 === (m22 = t32.circular.get(e3)) && (m22 = t32.circular.size + 1, t32.circular.set(e3, m22)), t32.stylize("[Circular *".concat(m22, "]"), "special");
              }
              return (function(t42, e4, n222, a3) {
                var i3, c22;
                t42.showHidden && (n222 <= t42.depth || null === t42.depth) && (c22 = []);
                var u3 = ln3(e4, t42, n222, c22);
                void 0 !== c22 && 0 === c22.length && (c22 = void 0);
                var l3 = e4[Pe2];
                ("string" != typeof l3 || "" !== l3 && (t42.showHidden ? Et3 : kt3)(e4, Pe2)) && (l3 = "");
                var p3, g3, v3 = "", h3 = an3, d3 = true, m3 = 0, S22 = t42.showHidden ? De3 : Ne3, P22 = 0;
                if (de3 in e4 || null === u3) if (d3 = false, b2(e4)) {
                  var O22 = "Array" !== u3 || "" !== l3 ? sn3(u3, l3, "Array", "(".concat(e4.length, ")")) : "";
                  if (i3 = He2(e4, S22), p3 = ["".concat(O22, "["), "]"], 0 === e4.length && 0 === i3.length && void 0 === c22) return "".concat(p3[0], "]");
                  P22 = 2, h3 = En3;
                } else if (vr3(e4)) {
                  var _22 = qt3(e4), B22 = sn3(u3, l3, "Set", "(".concat(_22, ")"));
                  if (i3 = yn3(e4, t42.showHidden), h3 = q3(In3, null, null !== u3 ? e4 : Jt2(e4)), 0 === _22 && 0 === i3.length && void 0 === c22) return "".concat(B22, "{}");
                  p3 = ["".concat(B22, "{"), "}"];
                } else if (fr3(e4)) {
                  var z22 = nt3(e4), C2 = sn3(u3, l3, "Map", "(".concat(z22, ")"));
                  if (i3 = yn3(e4, t42.showHidden), h3 = q3(Rn3, null, null !== u3 ? e4 : rt3(e4)), 0 === z22 && 0 === i3.length && void 0 === c22) return "".concat(C2, "{}");
                  p3 = ["".concat(C2, "{"), "}"];
                } else if (Pr2(e4)) {
                  i3 = He2(e4, S22);
                  var D2 = e4, N22 = "";
                  null === u3 && (N22 = je3(e4), D2 = new y2[N22](e4));
                  var F2 = _e3(e4), G22 = sn3(u3, l3, N22, "(".concat(F2, ")"));
                  if (p3 = ["".concat(G22, "["), "]"], 0 === e4.length && 0 === i3.length && !t42.showHidden) return "".concat(p3[0], "]");
                  h3 = q3(kn3, null, D2, F2), P22 = 2;
                } else sr3(e4) ? (i3 = yn3(e4, t42.showHidden), p3 = vn3("Map", l3), h3 = q3(Cn3, null, p3)) : hr4(e4) ? (i3 = yn3(e4, t42.showHidden), p3 = vn3("Set", l3), h3 = q3(Cn3, null, p3)) : d3 = true;
                if (d3) {
                  if (i3 = yn3(e4, t42.showHidden), p3 = ["{", "}"], "function" == typeof e4) {
                    if (v3 = (function(t52, e5, r22, n3) {
                      var o222 = Q3(e5);
                      if (pe3(o222, "class") && "}" === o222[o222.length - 1]) {
                        var a4 = se3(o222, 5, -1), i4 = ne3(a4, "{");
                        if (-1 !== i4 && (!re3(se3(a4, 0, i4), "(") || null !== Ft3(Zr3, Wt3($r3, a4)))) return (function(t62, e6, r3) {
                          var n4 = Et3(t62, "name") && t62.name || "(anonymous)", o3 = "class ".concat(n4);
                          if ("Function" !== e6 && null !== e6 && (o3 += " [".concat(e6, "]")), "" !== r3 && e6 !== r3 && (o3 += " [".concat(r3, "]")), null !== e6) {
                            var a5 = At2(t62).name;
                            a5 && (o3 += " extends ".concat(a5));
                          } else o3 += " extends [null prototype]";
                          return "[".concat(o3, "]");
                        })(e5, r22, n3);
                      }
                      var c32 = "Function";
                      nr2(e5) && (c32 = "Generator".concat(c32)), rr3(e5) && (c32 = "Async".concat(c32));
                      var u4 = "[".concat(c32);
                      return null === r22 && (u4 += " (null prototype)"), "" === e5.name ? u4 += " (anonymous)" : u4 += ": ".concat("string" == typeof e5.name ? e5.name : gn3(t52, e5.name)), u4 += "]", r22 !== c32 && null !== r22 && (u4 += " ".concat(r22)), "" !== n3 && r22 !== n3 && (u4 += " [".concat(n3, "]")), u4;
                    })(t42, e4, u3, l3), 0 === i3.length && void 0 === c22) return t42.stylize(v3, "special");
                  } else if ("Object" === u3) {
                    if (ir3(e4) ? p3[0] = "[Arguments] {" : "" !== l3 && (p3[0] = "".concat(sn3(u3, l3, "Object"), "{")), 0 === i3.length && void 0 === c22) return "".concat(p3[0], "}");
                  } else if (mr3(e4)) {
                    v3 = Ut3(null !== u3 ? e4 : new Dt3(e4));
                    var V22 = sn3(u3, l3, "RegExp");
                    if ("RegExp " !== V22 && (v3 = "".concat(V22).concat(v3)), 0 === i3.length && void 0 === c22 || n222 > t42.depth && null !== t42.depth) return t42.stylize(v3, "regexp");
                  } else if (Sr3(e4)) {
                    v3 = yt3(W3(e4)) ? U3(e4) : H3(e4);
                    var Z22 = sn3(u3, l3, "Date");
                    if ("Date " !== Z22 && (v3 = "".concat(Z22).concat(v3)), 0 === i3.length && void 0 === c22) return t42.stylize(v3, "date");
                  } else if (Ke3(e4)) {
                    if (v3 = (function(t52, e5, r22, n3, a4) {
                      var i4 = null != t52.name ? t52.name : "Error", c32 = dn3(n3, t52);
                      (function(t62, e6, r3, n4) {
                        if (!t62.showHidden && 0 !== e6.length) for (var o222 = 0, a5 = ["name", "message", "stack"]; o222 < a5.length; o222++) {
                          var i5 = a5[o222], c4 = w3(e6, i5);
                          -1 === c4 || "string" == typeof r3[i5] && !re3(n4, r3[i5]) || R2(e6, c4, 1);
                        }
                      })(n3, a4, t52, c32), !("cause" in t52) || 0 !== a4.length && x3(a4, "cause") || j2(a4, "cause"), !b2(t52.errors) || 0 !== a4.length && x3(a4, "errors") || j2(a4, "errors"), c32 = (function(t62, e6, r3, n4) {
                        var o222 = r3.length;
                        if ("string" != typeof r3 && (t62 = le3(t62, "".concat(r3), "".concat(r3, " [").concat(se3(sn3(e6, n4, "Error"), 0, -1), "]"))), null === e6 || ee3(r3, "Error") && pe3(t62, r3) && (t62.length === o222 || ":" === t62[o222] || "\n" === t62[o222])) {
                          var a5 = "Error";
                          if (null === e6) {
                            var i5 = Ft3(/^([A-Z][a-z_ A-Z0-9[\]()-]+)(?::|\n {4}at)/, t62) || Ft3(/^([a-z_A-Z0-9-]*Error)$/, t62);
                            o222 = (a5 = (null == i5 ? void 0 : i5[1]) || "").length, a5 = a5 || "Error";
                          }
                          var c4 = se3(sn3(e6, n4, a5), 0, -1);
                          r3 !== c4 && (t62 = re3(c4, r3) ? 0 === o222 ? "".concat(c4, ": ").concat(t62) : "".concat(c4).concat(se3(t62, o222)) : "".concat(c4, " [").concat(r3, "]").concat(se3(t62, o222)));
                        }
                        return t62;
                      })(c32, e5, i4, r22);
                      var u4 = t52.message && ne3(c32, t52.message) || -1;
                      -1 !== u4 && (u4 += t52.message.length);
                      var l4 = ne3(c32, "\n    at", u4);
                      if (-1 === l4) c32 = "[".concat(c32, "]");
                      else {
                        var f2 = se3(c32, 0, l4), s22 = (function(t62, e6, r3) {
                          var n4, o222 = ye3(r3, "\n");
                          try {
                            n4 = e6.cause;
                          } catch (t72) {
                          }
                          if (null != n4 && Ke3(n4)) {
                            var a5 = dn3(t62, n4), i5 = ne3(a5, "\n    at");
                            if (-1 !== i5) {
                              var c4 = hn3(o222, ye3(se3(a5, i5 + 1), "\n")), u5 = c4.len, l5 = c4.offset;
                              if (u5 > 0) {
                                var f3 = u5 - 2, s3 = "    ... ".concat(f3, " lines matching cause stack trace ...");
                                o222.splice(l5 + 1, f3, t62.stylize(s3, "undefined"));
                              }
                            }
                          }
                          return o222;
                        })(n3, t52, se3(c32, l4 + 1));
                        if (n3.colors) {
                          var y22, p4, g4 = (function() {
                            var t62;
                            try {
                              t62 = process.cwd();
                            } catch (t72) {
                              return;
                            }
                            return t62;
                          })(), v4 = o22(s22);
                          try {
                            for (v4.s(); !(p4 = v4.n()).done; ) {
                              var h4 = p4.value, d4 = Ft3(Vr3, h4);
                              if (null !== d4 && jr2.exists(d4[1])) f2 += "\n".concat(n3.stylize(h4, "undefined"));
                              else {
                                if (f2 += "\n", h4 = bn3(n3, h4), void 0 !== g4) {
                                  var m4 = mn3(n3, h4, g4);
                                  m4 === h4 && (m4 = mn3(n3, h4, y22 = y22 || Lr3(g4))), h4 = m4;
                                }
                                f2 += h4;
                              }
                            }
                          } catch (t62) {
                            v4.e(t62);
                          } finally {
                            v4.f();
                          }
                        } else f2 += "\n".concat(A2(s22, "\n"));
                        c32 = f2;
                      }
                      if (0 !== n3.indentationLvl) {
                        var S32 = ue2(" ", n3.indentationLvl);
                        c32 = fe3(c32, "\n", "\n".concat(S32));
                      }
                      return c32;
                    })(e4, u3, l3, t42, i3), 0 === i3.length && void 0 === c22) return v3;
                  } else if (or3(e4)) {
                    var $22 = sn3(u3, l3, ar3(e4) ? "ArrayBuffer" : "SharedArrayBuffer");
                    if (void 0 === a3) h3 = jn3;
                    else if (0 === i3.length && void 0 === c22) return $22 + "{ byteLength: ".concat(xn3(t42.stylize, e4.byteLength, false), " }");
                    p3[0] = "".concat($22, "{"), L3(i3, "byteLength");
                  } else if (ur3(e4)) p3[0] = "".concat(sn3(u3, l3, "DataView"), "{"), L3(i3, "byteLength", "byteOffset", "buffer");
                  else if (gr3(e4)) p3[0] = "".concat(sn3(u3, l3, "Promise"), "{"), h3 = Dn3;
                  else if (br3(e4)) p3[0] = "".concat(sn3(u3, l3, "WeakSet"), "{"), h3 = t42.showHidden ? zn3 : Bn3;
                  else if (dr3(e4)) p3[0] = "".concat(sn3(u3, l3, "WeakMap"), "{"), h3 = t42.showHidden ? Mn3 : Bn3;
                  else if (yr3(e4)) p3[0] = "".concat(sn3(u3, l3, "Module"), "{"), h3 = On3.bind(null, i3);
                  else if (cr3(e4)) {
                    if (v3 = (function(t52, e5, r22, n3, o222) {
                      var a4, i4;
                      wr3(t52) ? (a4 = dt3, i4 = "Number") : xr3(t52) ? (a4 = he3, i4 = "String", r22.splice(0, t52.length)) : Ar3(t52) ? (a4 = M2, i4 = "Boolean") : Or3(t52) ? (a4 = T3, i4 = "BigInt") : (a4 = me3, i4 = "Symbol");
                      var c32 = "[".concat(i4);
                      return i4 !== n3 && (c32 += null === n3 ? " (null prototype)" : " (".concat(n3, ")")), c32 += ": ".concat(An3(on22, a4(t52), e5), "]"), "" !== o222 && o222 !== n3 && (c32 += " [".concat(o222, "]")), 0 !== r22.length || e5.stylize === on22 ? c32 : e5.stylize(c32, ge3(i4));
                    })(e4, t42, i3, u3, l3), 0 === i3.length && void 0 === c22) return v3;
                  } else if (!(function(t52) {
                    return f = f || r2(802), "string" == typeof t52.href && t52 instanceof f.URL;
                  })(e4) || n222 > t42.depth && null !== t42.depth) {
                    if (0 === i3.length && void 0 === c22) {
                      if (lr3(e4)) {
                        var Y22 = $e2(e4).toString(16);
                        return t42.stylize("[External: ".concat(Y22, "]"), "special");
                      }
                      return "".concat(pn2(e4, u3, l3), "{}");
                    }
                    p3[0] = "".concat(pn2(e4, u3, l3), "{");
                  } else if (i3 = (function(t52) {
                    return s2 = s2 || wt3(new f.URL("http://user:pass@localhost:8080/?foo=bar#baz")), t52.filter(function(t62) {
                      return -1 === s2[t62];
                    });
                  })(i3), v3 = e4.href, 0 === i3.length && void 0 === c22) return v3;
                }
                if (n222 > t42.depth && null !== t42.depth) {
                  var J22 = se3(pn2(e4, u3, l3), 0, -1);
                  return null !== u3 && (J22 = "[".concat(J22, "]")), t42.stylize(J22, "special");
                }
                n222 += 1, t42.seen.push(e4), t42.currentDepth = n222;
                var K22 = t42.indentationLvl;
                try {
                  for (g3 = h3(t42, e4, n222), m3 = 0; m3 < i3.length; m3++) j2(g3, Nn3(t42, e4, n222, i3[m3], P22));
                  void 0 !== c22 && E2(g3, c22);
                } catch (r22) {
                  if (!tr3(r22)) throw r22;
                  return (function(t52, e5, r3, n3) {
                    return t52.seen.pop(), t52.indentationLvl = n3, t52.stylize("[".concat(r3, ": Inspection interrupted ") + "prematurely. Maximum call stack size exceeded.]", "special");
                  })(t42, 0, se3(pn2(e4, u3, l3), 0, -1), K22);
                }
                if (void 0 !== t42.circular) {
                  var X22 = t42.circular.get(e4);
                  if (void 0 !== X22) {
                    var tt22 = t42.stylize("<ref *".concat(X22, ">"), "special");
                    true !== t42.compact ? v3 = "" === v3 ? tt22 : "".concat(tt22, " ").concat(v3) : p3[0] = "".concat(tt22, " ").concat(p3[0]);
                  }
                }
                if (t42.seen.pop(), t42.sorted) {
                  var et222 = true === t42.sorted ? void 0 : t42.sorted;
                  if (0 === P22) I4(g3, et222);
                  else if (i3.length > 1) {
                    var ot22 = I4(k3(g3, g3.length - i3.length), et222);
                    L3(ot22, g3, g3.length - i3.length, i3.length), Mt3(R2, null, ot22);
                  }
                }
                var at22 = Wn3(t42, g3, v3, p3, P22, n222, e4), it22 = (t42.budget[t42.indentationLvl] || 0) + at22.length;
                return t42.budget[t42.indentationLvl] = it22, it22 > Math.pow(2, 27) && (t42.depth = -1), at22;
              })(t32, e3, a22, i222);
            }
            __name2(gn3, "gn");
            function vn3(t32, e3) {
              return e3 !== "".concat(t32, " Iterator") && ("" !== e3 && (e3 += "] ["), e3 += "".concat(t32, " Iterator")), ["[".concat(e3, "] {"), "}"];
            }
            __name2(vn3, "vn");
            function hn3(t32, e3) {
              for (var r22 = 0; r22 < t32.length - 3; r22++) {
                var n222 = w3(e3, t32[r22]);
                if (-1 !== n222) {
                  var o222 = e3.length - n222;
                  if (o222 > 3) {
                    for (var a22 = 1, i222 = it3(t32.length - r22, o222); i222 > a22 && t32[r22 + a22] === e3[n222 + a22]; ) a22++;
                    if (a22 > 3) return { len: a22, offset: r22 };
                  }
                }
              }
              return { len: 0, offset: 0 };
            }
            __name2(hn3, "hn");
            function dn3(t32, e3) {
              if (e3.stack) {
                if ("string" == typeof e3.stack) return e3.stack;
                t32.seen.push(e3), t32.indentationLvl += 4;
                var r22 = gn3(t32, e3.stack);
                return t32.indentationLvl -= 4, t32.seen.pop(), "".concat(Z3(e3), "\n    ").concat(r22);
              }
              return Z3(e3);
            }
            __name2(dn3, "dn");
            function bn3(t32, e3) {
              for (var r22 = "", n222 = 0, o222 = 0; ; ) {
                var a22 = ne3(e3, "node_modules", o222);
                if (-1 === a22) break;
                var i222 = e3[a22 - 1], c22 = e3[a22 + 12];
                if ("/" !== c22 && "\\" !== c22 || "/" !== i222 && "\\" !== i222) o222 = a22 + 1;
                else {
                  var u22 = a22 + 13;
                  r22 += se3(e3, n222, u22);
                  var l22 = ne3(e3, i222, u22);
                  "@" === e3[u22] && (l22 = ne3(e3, i222, l22 + 1));
                  var f2 = se3(e3, u22, l22);
                  r22 += t32.stylize(f2, "module"), n222 = l22, o222 = l22;
                }
              }
              return 0 !== n222 && (e3 = r22 + se3(e3, n222)), e3;
            }
            __name2(bn3, "bn");
            function mn3(t32, e3, r22) {
              var n222 = ne3(e3, r22), o222 = "", a22 = r22.length;
              if (-1 !== n222) {
                "file://" === se3(e3, n222 - 7, n222) && (a22 += 7, n222 -= 7);
                var i222 = "(" === e3[n222 - 1] ? n222 - 1 : n222, c22 = i222 !== n222 && ee3(e3, ")") ? -1 : e3.length, u22 = n222 + a22 + 1, l22 = se3(e3, i222, u22);
                o222 += se3(e3, 0, i222), o222 += t32.stylize(l22, "undefined"), o222 += se3(e3, u22, c22), -1 === c22 && (o222 += t32.stylize(")", "undefined"));
              } else o222 += e3;
              return o222;
            }
            __name2(mn3, "mn");
            function Sn3(t32) {
              var e3 = "", r22 = t32.length;
              _r3(0 !== r22);
              for (var n222 = "-" === t32[0] ? 1 : 0; r22 >= n222 + 4; r22 -= 3) e3 = "_".concat(se3(t32, r22 - 3, r22)).concat(e3);
              return r22 === t32.length ? t32 : "".concat(se3(t32, 0, r22)).concat(e3);
            }
            __name2(Sn3, "Sn");
            var Pn3 = /* @__PURE__ */ __name2(function(t32) {
              return "... ".concat(t32, " more item").concat(t32 > 1 ? "s" : "");
            }, "Pn");
            function xn3(t32, e3, r22) {
              if (!r22) return Ot3(e3, -0) ? t32("-0", "number") : t32("".concat(e3), "number");
              var n222 = lt3(e3), o222 = Kt2(n222);
              return n222 === e3 ? !st3(e3) || re3(o222, "e") ? t32(o222, "number") : t32("".concat(Sn3(o222)), "number") : yt3(e3) ? t32(o222, "number") : t32("".concat(Sn3(o222), ".").concat((function(t42) {
                for (var e4 = "", r3 = 0; r3 < t42.length - 3; r3 += 3) e4 += "".concat(se3(t42, r3, r3 + 3), "_");
                return 0 === r3 ? t42 : "".concat(e4).concat(se3(t42, r3));
              })(se3(Kt2(e3), o222.length + 1))), "number");
            }
            __name2(xn3, "xn");
            function wn3(t32, e3, r22) {
              var n222 = Kt2(e3);
              return t32("".concat(r22 ? Sn3(n222) : n222, "n"), "bigint");
            }
            __name2(wn3, "wn");
            function An3(t32, e3, r22) {
              if ("string" == typeof e3) {
                var n222 = "";
                if (e3.length > r22.maxStringLength) {
                  var o222 = e3.length - r22.maxStringLength;
                  e3 = se3(e3, 0, r22.maxStringLength), n222 = "... ".concat(o222, " more character").concat(o222 > 1 ? "s" : "");
                }
                return true !== r22.compact && e3.length > 16 && e3.length > r22.breakLength - r22.indentationLvl - 4 ? A2(O3(Cr3(e3), function(e4) {
                  return t32(rn3(e4), "string");
                }), " +\n".concat(ue2(" ", r22.indentationLvl + 2))) + n222 : t32(rn3(e3), "string") + n222;
              }
              return "number" == typeof e3 ? xn3(t32, e3, r22.numericSeparator) : "bigint" == typeof e3 ? wn3(t32, e3, r22.numericSeparator) : "boolean" == typeof e3 ? t32("".concat(e3), "boolean") : void 0 === e3 ? t32("undefined", "undefined") : t32(be3(e3), "symbol");
            }
            __name2(An3, "An");
            function On3(t32, e3, r22, n222) {
              for (var o222 = new v2(t32.length), a22 = 0; a22 < t32.length; a22++) try {
                o222[a22] = Nn3(e3, r22, n222, t32[a22], 0);
              } catch (r3) {
                _r3(pr3(r3) && "ReferenceError" === r3.name);
                var i222 = u2({}, t32[a22], "");
                o222[a22] = Nn3(e3, i222, n222, t32[a22], 0);
                var c22 = oe2(o222[a22], " ");
                o222[a22] = se3(o222[a22], 0, c22 + 1) + e3.stylize("<uninitialized>", "special");
              }
              return t32.length = 0, o222;
            }
            __name2(On3, "On");
            function _n3(t32, e3, r22, n222, o222, a22) {
              for (var i222 = _t3(e3), c22 = a22; a22 < i222.length && o222.length < n222; a22++) {
                var u22 = i222[a22], l22 = +u22;
                if (l22 > Math.pow(2, 32) - 2) break;
                if ("".concat(c22) !== u22) {
                  if (null === Ft3(Gr3, u22)) break;
                  var f2 = l22 - c22, s22 = f2 > 1 ? "s" : "", y22 = "<".concat(f2, " empty item").concat(s22, ">");
                  if (j2(o222, t32.stylize(y22, "undefined")), c22 = l22, o222.length === n222) break;
                }
                j2(o222, Nn3(t32, e3, r22, u22, 1)), c22++;
              }
              var p2 = e3.length - c22;
              if (o222.length !== n222) {
                if (p2 > 0) {
                  var g2 = p2 > 1 ? "s" : "", v22 = "<".concat(p2, " empty item").concat(g2, ">");
                  j2(o222, t32.stylize(v22, "undefined"));
                }
              } else p2 > 0 && j2(o222, Pn3(p2));
              return o222;
            }
            __name2(_n3, "_n");
            function jn3(t32, e3) {
              var n222;
              try {
                n222 = new Ee3(e3);
              } catch (e4) {
                return [t32.stylize("(detached)", "special")];
              }
              void 0 === l2 && (l2 = ze3(r2(883).h.prototype.hexSlice));
              var o222 = ve3(Wt3(/(.{2})/g, l2(n222, 0, it3(t32.maxArrayLength, n222.length)), "$1 ")), a22 = n222.length - t32.maxArrayLength;
              return a22 > 0 && (o222 += " ... ".concat(a22, " more byte").concat(a22 > 1 ? "s" : "")), ["".concat(t32.stylize("[Uint8Contents]", "special"), ": <").concat(o222, ">")];
            }
            __name2(jn3, "jn");
            function En3(t32, e3, r22) {
              for (var n222 = e3.length, o222 = it3(at3(0, t32.maxArrayLength), n222), a22 = n222 - o222, i222 = [], c22 = 0; c22 < o222; c22++) {
                if (!Et3(e3, c22)) return _n3(t32, e3, r22, o222, i222, c22);
                j2(i222, Nn3(t32, e3, r22, c22, 1));
              }
              return a22 > 0 && j2(i222, Pn3(a22)), i222;
            }
            __name2(En3, "En");
            function kn3(t32, e3, r22, n222, o222) {
              for (var a22 = it3(at3(0, r22.maxArrayLength), e3), i222 = t32.length - a22, c22 = new v2(a22), u22 = t32.length > 0 && "number" == typeof t32[0] ? xn3 : wn3, l22 = 0; l22 < a22; ++l22) c22[l22] = u22(r22.stylize, t32[l22], r22.numericSeparator);
              if (i222 > 0 && (c22[a22] = Pn3(i222)), r22.showHidden) {
                r22.indentationLvl += 2;
                for (var f2 = 0, s22 = ["BYTES_PER_ELEMENT", "length", "byteLength", "byteOffset", "buffer"]; f2 < s22.length; f2++) {
                  var y22 = s22[f2], p2 = gn3(r22, t32[y22], o222, true);
                  j2(c22, "[".concat(y22, "]: ").concat(p2));
                }
                r22.indentationLvl -= 2;
              }
              return c22;
            }
            __name2(kn3, "kn");
            function In3(t32, e3, r22, n222) {
              var a22 = t32.size, i222 = it3(at3(0, e3.maxArrayLength), a22), c22 = a22 - i222, u22 = [];
              e3.indentationLvl += 2;
              var l22, f2 = 0, s22 = o22(t32);
              try {
                for (s22.s(); !(l22 = s22.n()).done; ) {
                  var y22 = l22.value;
                  if (f2 >= i222) break;
                  j2(u22, gn3(e3, y22, n222)), f2++;
                }
              } catch (t42) {
                s22.e(t42);
              } finally {
                s22.f();
              }
              return c22 > 0 && j2(u22, Pn3(c22)), e3.indentationLvl -= 2, u22;
            }
            __name2(In3, "In");
            function Rn3(t32, e3, r22, n222) {
              var a22 = t32.size, i222 = it3(at3(0, e3.maxArrayLength), a22), c22 = a22 - i222, u22 = [];
              e3.indentationLvl += 2;
              var l22, f2 = 0, s22 = o22(t32);
              try {
                for (s22.s(); !(l22 = s22.n()).done; ) {
                  var y22 = l22.value, p2 = y22[0], g2 = y22[1];
                  if (f2 >= i222) break;
                  j2(u22, "".concat(gn3(e3, p2, n222), " => ").concat(gn3(e3, g2, n222))), f2++;
                }
              } catch (t42) {
                s22.e(t42);
              } finally {
                s22.f();
              }
              return c22 > 0 && j2(u22, Pn3(c22)), e3.indentationLvl -= 2, u22;
            }
            __name2(Rn3, "Rn");
            function Ln3(t32, e3, r22, n222) {
              var o222 = at3(t32.maxArrayLength, 0), a22 = it3(o222, r22.length), i222 = new v2(a22);
              t32.indentationLvl += 2;
              for (var c22 = 0; c22 < a22; c22++) i222[c22] = gn3(t32, r22[c22], e3);
              t32.indentationLvl -= 2, 0 !== n222 || t32.sorted || I4(i222);
              var u22 = r22.length - a22;
              return u22 > 0 && j2(i222, Pn3(u22)), i222;
            }
            __name2(Ln3, "Ln");
            function Tn3(t32, e3, r22, n222) {
              var o222 = at3(t32.maxArrayLength, 0), a22 = r22.length / 2, i222 = a22 - o222, c22 = it3(o222, a22), u22 = new v2(c22), l22 = 0;
              if (t32.indentationLvl += 2, 0 === n222) {
                for (; l22 < c22; l22++) {
                  var f2 = 2 * l22;
                  u22[l22] = "".concat(gn3(t32, r22[f2], e3), " => ").concat(gn3(t32, r22[f2 + 1], e3));
                }
                t32.sorted || I4(u22);
              } else for (; l22 < c22; l22++) {
                var s22 = 2 * l22, y22 = [gn3(t32, r22[s22], e3), gn3(t32, r22[s22 + 1], e3)];
                u22[l22] = Wn3(t32, y22, "", ["[", "]"], 2, e3);
              }
              return t32.indentationLvl -= 2, i222 > 0 && j2(u22, Pn3(i222)), u22;
            }
            __name2(Tn3, "Tn");
            function Bn3(t32) {
              return [t32.stylize("<items unknown>", "special")];
            }
            __name2(Bn3, "Bn");
            function zn3(t32, e3, r22) {
              return Ln3(t32, r22, Ve3(e3), 0);
            }
            __name2(zn3, "zn");
            function Mn3(t32, e3, r22) {
              return Tn3(t32, r22, Ve3(e3), 0);
            }
            __name2(Mn3, "Mn");
            function Cn3(t32, e3, r22, n222) {
              var o222 = Ve3(r22, true), a22 = o222[0];
              return o222[1] ? (t32[0] = Wt3(/ Iterator] {$/, t32[0], " Entries] {"), Tn3(e3, n222, a22, 2)) : Ln3(e3, n222, a22, 1);
            }
            __name2(Cn3, "Cn");
            function Dn3(t32, e3, r22) {
              var n222, o222 = Ue3(e3), a22 = o222[0], i222 = o222[1];
              if (a22 === Fe3) n222 = [t32.stylize("<pending>", "special")];
              else {
                t32.indentationLvl += 2;
                var c22 = gn3(t32, i222, r22);
                t32.indentationLvl -= 2, n222 = [a22 === We3 ? "".concat(t32.stylize("<rejected>", "special"), " ").concat(c22) : c22];
              }
              return n222;
            }
            __name2(Dn3, "Dn");
            function Nn3(t32, e3, r22, o222, a22, i222) {
              var c22, u22, l22 = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : e3, f2 = " ";
              if (void 0 !== (i222 = i222 || Pt3(e3, o222) || { value: e3[o222], enumerable: true }).value) {
                var s22 = true !== t32.compact || 0 !== a22 ? 2 : 3;
                t32.indentationLvl += s22, u22 = gn3(t32, i222.value, r22), 3 === s22 && t32.breakLength < Hr3(u22, t32.colors) && (f2 = "\n".concat(ue2(" ", t32.indentationLvl))), t32.indentationLvl -= s22;
              } else if (void 0 !== i222.get) {
                var y22 = void 0 !== i222.set ? "Getter/Setter" : "Getter", p2 = t32.stylize, g2 = "special";
                if (t32.getters && (true === t32.getters || "get" === t32.getters && void 0 === i222.set || "set" === t32.getters && void 0 !== i222.set)) try {
                  var v22 = J3(i222.get, l22);
                  if (t32.indentationLvl += 2, null === v22) u22 = "".concat(p2("[".concat(y22, ":"), g2), " ").concat(p2("null", "null")).concat(p2("]", g2));
                  else if ("object" === n22(v22)) u22 = "".concat(p2("[".concat(y22, "]"), g2), " ").concat(gn3(t32, v22, r22));
                  else {
                    var h222 = An3(p2, v22, t32);
                    u22 = "".concat(p2("[".concat(y22, ":"), g2), " ").concat(h222).concat(p2("]", g2));
                  }
                  t32.indentationLvl -= 2;
                } catch (t42) {
                  var d2 = "<Inspection threw (".concat(t42.message, ")>");
                  u22 = "".concat(p2("[".concat(y22, ":"), g2), " ").concat(d2).concat(p2("]", g2));
                }
                else u22 = t32.stylize("[".concat(y22, "]"), g2);
              } else u22 = void 0 !== i222.set ? t32.stylize("[Setter]", "special") : t32.stylize("undefined", "undefined");
              if (1 === a22) return u22;
              if ("symbol" === n22(o222)) {
                var b22 = Wt3(Br3, be3(o222), en3);
                c22 = t32.stylize(b22, "symbol");
              } else c22 = null !== Ft3(Ur3, o222) ? "__proto__" === o222 ? "['__proto__']" : t32.stylize(o222, "name") : t32.stylize(rn3(o222), "string");
              return false === i222.enumerable && (c22 = "[".concat(c22, "]")), "".concat(c22, ":").concat(f2).concat(u22);
            }
            __name2(Nn3, "Nn");
            function Fn2(t32, e3, r22, n222) {
              var o222 = e3.length + r22;
              if (o222 + e3.length > t32.breakLength) return false;
              for (var a22 = 0; a22 < e3.length; a22++) if (t32.colors ? o222 += Xe3(e3[a22]).length : o222 += e3[a22].length, o222 > t32.breakLength) return false;
              return "" === n222 || !re3(n222, "\n");
            }
            __name2(Fn2, "Fn");
            function Wn3(t32, e3, r22, n222, o222, a22, i222) {
              if (true !== t32.compact) {
                if ("number" == typeof t32.compact && t32.compact >= 1) {
                  var c22 = e3.length;
                  if (2 === o222 && c22 > 6 && (e3 = (function(t42, e4, r3) {
                    var n3 = 0, o3 = 0, a3 = 0, i3 = e4.length;
                    t42.maxArrayLength < e4.length && i3--;
                    for (var c32 = new v2(i3); a3 < i3; a3++) {
                      var u3 = Hr3(e4[a3], t42.colors);
                      c32[a3] = u3, n3 += u3 + 2, o3 < u3 && (o3 = u3);
                    }
                    var l3 = o3 + 2;
                    if (3 * l3 + t42.indentationLvl < t42.breakLength && (n3 / l3 > 5 || o3 <= 6)) {
                      var f3 = ut3(l3 - n3 / e4.length), s3 = at3(l3 - 3 - f3, 1), y22 = it3(ct3(ut3(2.5 * s3 * i3) / s3), ot3((t42.breakLength - t42.indentationLvl) / l3), 4 * t42.compact, 15);
                      if (y22 <= 1) return e4;
                      for (var p2 = [], g2 = [], h222 = 0; h222 < y22; h222++) {
                        for (var d2 = 0, b22 = h222; b22 < e4.length; b22 += y22) c32[b22] > d2 && (d2 = c32[b22]);
                        d2 += 2, g2[h222] = d2;
                      }
                      var m22 = ce3;
                      if (void 0 !== r3) {
                        for (var S22 = 0; S22 < e4.length; S22++) if ("number" != typeof r3[S22] && "bigint" != typeof r3[S22]) {
                          m22 = ie3;
                          break;
                        }
                      }
                      for (var P22 = 0; P22 < i3; P22 += y22) {
                        for (var x22 = it3(P22 + y22, i3), w22 = "", A22 = P22; A22 < x22 - 1; A22++) {
                          var O22 = g2[A22 - P22] + e4[A22].length - c32[A22];
                          w22 += m22("".concat(e4[A22], ", "), O22, " ");
                        }
                        if (m22 === ce3) {
                          var _22 = g2[A22 - P22] + e4[A22].length - c32[A22] - 2;
                          w22 += ce3(e4[A22], _22, " ");
                        } else w22 += e4[A22];
                        j2(p2, w22);
                      }
                      t42.maxArrayLength < e4.length && j2(p2, e4[i3]), e4 = p2;
                    }
                    return e4;
                  })(t32, e3, i222)), t32.currentDepth - a22 < t32.compact && c22 === e3.length && Fn2(t32, e3, e3.length + t32.indentationLvl + n222[0].length + r22.length + 10, r22)) {
                    var u22 = Qe3(e3, ", ");
                    if (!re3(u22, "\n")) return "".concat(r22 ? "".concat(r22, " ") : "").concat(n222[0], " ").concat(u22) + " ".concat(n222[1]);
                  }
                }
                var l22 = "\n".concat(ue2(" ", t32.indentationLvl));
                return "".concat(r22 ? "".concat(r22, " ") : "").concat(n222[0]).concat(l22, "  ") + "".concat(Qe3(e3, ",".concat(l22, "  "))).concat(l22).concat(n222[1]);
              }
              if (Fn2(t32, e3, 0, r22)) return "".concat(n222[0]).concat(r22 ? " ".concat(r22) : "", " ").concat(Qe3(e3, ", "), " ") + n222[1];
              var f2 = ue2(" ", t32.indentationLvl), s22 = "" === r22 && 1 === n222[0].length ? " " : "".concat(r22 ? " ".concat(r22) : "", "\n").concat(f2, "  ");
              return "".concat(n222[0]).concat(s22).concat(Qe3(e3, ",\n".concat(f2, "  ")), " ").concat(n222[1]);
            }
            __name2(Wn3, "Wn");
            function Hn2(t32) {
              var e3 = Ge3(t32, false);
              if (void 0 !== e3) {
                if (null === e3) return true;
                t32 = e3;
              }
              var r22 = Et3, n222 = Et3;
              if ("function" != typeof t32.toString) {
                if ("function" != typeof t32[Se3]) return true;
                if (Et3(t32, Se3)) return false;
                r22 = Un3;
              } else {
                if (Et3(t32, "toString")) return false;
                if ("function" != typeof t32[Se3]) n222 = Un3;
                else if (Et3(t32, Se3)) return false;
              }
              var o222 = t32;
              do {
                o222 = At2(o222);
              } while (!r22(o222, "toString") && !n222(o222, Se3));
              var a22 = Pt3(o222, "constructor");
              return void 0 !== a22 && "function" == typeof a22.value && Dr3.has(a22.value.name);
            }
            __name2(Hn2, "Hn");
            function Un3() {
              return false;
            }
            __name2(Un3, "Un");
            var Gn3, Vn3 = /* @__PURE__ */ __name2(function(t32) {
              return ye3(t32.message, "\n", 1)[0];
            }, "Vn");
            function Zn3(t32) {
              try {
                return X2(t32);
              } catch (t42) {
                if (!Gn3) try {
                  var e3 = {};
                  e3.a = e3, X2(e3);
                } catch (t52) {
                  Gn3 = Vn3(t52);
                }
                if ("TypeError" === t42.name && Vn3(t42) === Gn3) return "[Circular]";
                throw t42;
              }
            }
            __name2(Zn3, "Zn");
            function $n3(t32, e3) {
              var r22;
              return xn3(on22, t32, null !== (r22 = null == e3 ? void 0 : e3.numericSeparator) && void 0 !== r22 ? r22 : Fr3.numericSeparator);
            }
            __name2($n3, "$n");
            function Yn3(t32, e3) {
              var r22;
              return wn3(on22, t32, null !== (r22 = null == e3 ? void 0 : e3.numericSeparator) && void 0 !== r22 ? r22 : Fr3.numericSeparator);
            }
            __name2(Yn3, "Yn");
            function qn3(t32, e3) {
              var r22 = e3[0], o222 = 0, a22 = "", i222 = "";
              if ("string" == typeof r22) {
                if (1 === e3.length) return r22;
                for (var u22, l22 = 0, f2 = 0; f2 < r22.length - 1; f2++) if (37 === Xt2(r22, f2)) {
                  var s22 = Xt2(r22, ++f2);
                  if (o222 + 1 !== e3.length) {
                    switch (s22) {
                      case 115:
                        var y22 = e3[++o222];
                        u22 = "number" == typeof y22 ? $n3(y22, t32) : "bigint" == typeof y22 ? Yn3(y22, t32) : "object" === n22(y22) && null !== y22 && Hn2(y22) ? Jr3(y22, c3(c3({}, t32), {}, { compact: 3, colors: false, depth: 0 })) : Kt2(y22);
                        break;
                      case 106:
                        u22 = Zn3(e3[++o222]);
                        break;
                      case 100:
                        var p2 = e3[++o222];
                        u22 = "bigint" == typeof p2 ? Yn3(p2, t32) : "symbol" === n22(p2) ? "NaN" : $n3(ft3(p2), t32);
                        break;
                      case 79:
                        u22 = Jr3(e3[++o222], t32);
                        break;
                      case 111:
                        u22 = Jr3(e3[++o222], c3(c3({}, t32), {}, { showHidden: true, showProxy: true, depth: 4 }));
                        break;
                      case 105:
                        var g2 = e3[++o222];
                        u22 = "bigint" == typeof g2 ? Yn3(g2, t32) : "symbol" === n22(g2) ? "NaN" : $n3(gt3(g2), t32);
                        break;
                      case 102:
                        var v22 = e3[++o222];
                        u22 = "symbol" === n22(v22) ? "NaN" : $n3(pt3(v22), t32);
                        break;
                      case 99:
                        o222 += 1, u22 = "";
                        break;
                      case 37:
                        a22 += se3(r22, l22, f2), l22 = f2 + 1;
                        continue;
                      default:
                        continue;
                    }
                    l22 !== f2 - 1 && (a22 += se3(r22, l22, f2 - 1)), a22 += u22, l22 = f2 + 1;
                  } else 37 === s22 && (a22 += se3(r22, l22, f2), l22 = f2 + 1);
                }
                0 !== l22 && (o222++, i222 = " ", l22 < r22.length && (a22 += se3(r22, l22)));
              }
              for (; o222 < e3.length; ) {
                var h222 = e3[o222];
                a22 += i222, a22 += "string" != typeof h222 ? Jr3(h222, t32) : h222, i222 = " ", o222++;
              }
              return a22;
            }
            __name2(qn3, "qn");
            function Jn3(t32) {
              return t32 <= 31 || t32 >= 127 && t32 <= 159 || t32 >= 768 && t32 <= 879 || t32 >= 8203 && t32 <= 8207 || t32 >= 8400 && t32 <= 8447 || t32 >= 65024 && t32 <= 65039 || t32 >= 65056 && t32 <= 65071 || t32 >= 917760 && t32 <= 917999;
            }
            __name2(Jn3, "Jn");
            if (Be3("config").hasIntl) _r3(false);
            else {
              Hr3 = /* @__PURE__ */ __name2(function(t32) {
                var e3 = 0;
                (!(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]) && (t32 = Qn3(t32)), t32 = ae2(t32, "NFC");
                var r22, n222 = o22(new Zt3(t32));
                try {
                  for (n222.s(); !(r22 = n222.n()).done; ) {
                    var a22 = r22.value, i222 = te2(a22, 0);
                    Kn3(i222) ? e3 += 2 : Jn3(i222) || e3++;
                  }
                } catch (t42) {
                  n222.e(t42);
                } finally {
                  n222.f();
                }
                return e3;
              }, "Hr");
              var Kn3 = /* @__PURE__ */ __name2(function(t32) {
                return t32 >= 4352 && (t32 <= 4447 || 9001 === t32 || 9002 === t32 || t32 >= 11904 && t32 <= 12871 && 12351 !== t32 || t32 >= 12880 && t32 <= 19903 || t32 >= 19968 && t32 <= 42182 || t32 >= 43360 && t32 <= 43388 || t32 >= 44032 && t32 <= 55203 || t32 >= 63744 && t32 <= 64255 || t32 >= 65040 && t32 <= 65049 || t32 >= 65072 && t32 <= 65131 || t32 >= 65281 && t32 <= 65376 || t32 >= 65504 && t32 <= 65510 || t32 >= 110592 && t32 <= 110593 || t32 >= 127488 && t32 <= 127569 || t32 >= 127744 && t32 <= 128591 || t32 >= 131072 && t32 <= 262141);
              }, "Kn");
            }
            function Qn3(t32) {
              return Ir2(t32, "str"), Wt3(qr2, t32, "");
            }
            __name2(Qn3, "Qn");
            var Xn3 = { 34: "&quot;", 38: "&amp;", 39: "&apos;", 60: "&lt;", 62: "&gt;", 160: "&nbsp;" };
            function to2(t32) {
              return t32.replace(/[\u0000-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u00FF]/g, function(t42) {
                var e3 = Kt2(t42.charCodeAt(0));
                return Xn3[e3] || "&#" + e3 + ";";
              });
            }
            __name2(to2, "to");
            t22.exports = { identicalSequenceRange: hn3, inspect: Jr3, inspectDefaultOptions: Fr3, format: /* @__PURE__ */ __name2(function() {
              for (var t32 = arguments.length, e3 = new Array(t32), r22 = 0; r22 < t32; r22++) e3[r22] = arguments[r22];
              return qn3(void 0, e3);
            }, "format"), formatWithOptions: /* @__PURE__ */ __name2(function(t32) {
              kr3(t32, "inspectOptions", Rr2);
              for (var e3 = arguments.length, r22 = new Array(e3 > 1 ? e3 - 1 : 0), n222 = 1; n222 < e3; n222++) r22[n222 - 1] = arguments[n222];
              return qn3(t32, r22);
            }, "formatWithOptions"), getStringWidth: Hr3, stripVTControlCharacters: Qn3, isZeroWidthCodePoint: Jn3, stylizeWithColor: nn3, stylizeWithHTML: /* @__PURE__ */ __name2(function(t32, e3) {
              var r22 = Jr3.styles[e3];
              return void 0 !== r22 ? '<span style="color:'.concat(r22, ';">').concat(to2(t32), "</span>") : to2(t32);
            }, "stylizeWithHTML"), Proxy: Ye3 };
          }, 116: (t22, e22, r2) => {
            function n22(t32) {
              return n22 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n22(t32);
            }
            __name2(n22, "n");
            var o22 = r2(425).ArrayIsArray, a2 = r2(924), i22 = a2.hideStackFrames, c3 = a2.codes.ERR_INVALID_ARG_TYPE, u2 = i22(function(t32, e3) {
              var r22 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
              if (0 === r22) {
                if (null === t32 || o22(t32)) throw new c3(e3, "Object", t32);
                if ("object" !== n22(t32)) throw new c3(e3, "Object", t32);
              } else {
                if (!(1 & r22) && null === t32) throw new c3(e3, "Object", t32);
                if (!(2 & r22) && o22(t32)) throw new c3(e3, "Object", t32);
                var a22 = !(4 & r22), i222 = n22(t32);
                if ("object" !== i222 && (a22 || "function" !== i222)) throw new c3(e3, "Object", t32);
              }
            });
            t22.exports = { kValidateObjectNone: 0, kValidateObjectAllowNullable: 1, kValidateObjectAllowArray: 2, kValidateObjectAllowFunction: 4, validateObject: u2, validateString: /* @__PURE__ */ __name2(function(t32, e3) {
              if ("string" != typeof t32) throw new c3(e3, "string", t32);
            }, "validateString") };
          }, 153: (t22, e22, r2) => {
            function n22(t32) {
              return n22 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n22(t32);
            }
            __name2(n22, "n");
            function o22(t32, e3) {
              return (function(t42) {
                if (Array.isArray(t42)) return t42;
              })(t32) || (function(t42, e4) {
                var r22 = null == t42 ? null : "undefined" != typeof Symbol && t42[Symbol.iterator] || t42["@@iterator"];
                if (null != r22) {
                  var n222, o222, a22, i222, c22 = [], u22 = true, l22 = false;
                  try {
                    if (a22 = (r22 = r22.call(t42)).next, 0 === e4) {
                      if (Object(r22) !== r22) return;
                      u22 = false;
                    } else for (; !(u22 = (n222 = a22.call(r22)).done) && (c22.push(n222.value), c22.length !== e4); u22 = true) ;
                  } catch (t52) {
                    l22 = true, o222 = t52;
                  } finally {
                    try {
                      if (!u22 && null != r22.return && (i222 = r22.return(), Object(i222) !== i222)) return;
                    } finally {
                      if (l22) throw o222;
                    }
                  }
                  return c22;
                }
              })(t32, e3) || i22(t32, e3) || (function() {
                throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              })();
            }
            __name2(o22, "o");
            function a2(t32, e3) {
              var r22 = "undefined" != typeof Symbol && t32[Symbol.iterator] || t32["@@iterator"];
              if (!r22) {
                if (Array.isArray(t32) || (r22 = i22(t32)) || e3 && t32 && "number" == typeof t32.length) {
                  r22 && (t32 = r22);
                  var n222 = 0, o222 = /* @__PURE__ */ __name2(function() {
                  }, "o");
                  return { s: o222, n: /* @__PURE__ */ __name2(function() {
                    return n222 >= t32.length ? { done: true } : { done: false, value: t32[n222++] };
                  }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                    throw t42;
                  }, "e"), f: o222 };
                }
                throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              }
              var a22, c22 = true, u22 = false;
              return { s: /* @__PURE__ */ __name2(function() {
                r22 = r22.call(t32);
              }, "s"), n: /* @__PURE__ */ __name2(function() {
                var t42 = r22.next();
                return c22 = t42.done, t42;
              }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                u22 = true, a22 = t42;
              }, "e"), f: /* @__PURE__ */ __name2(function() {
                try {
                  c22 || null == r22.return || r22.return();
                } finally {
                  if (u22) throw a22;
                }
              }, "f") };
            }
            __name2(a2, "a");
            function i22(t32, e3) {
              if (t32) {
                if ("string" == typeof t32) return c3(t32, e3);
                var r22 = {}.toString.call(t32).slice(8, -1);
                return "Object" === r22 && t32.constructor && (r22 = t32.constructor.name), "Map" === r22 || "Set" === r22 ? Array.from(t32) : "Arguments" === r22 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r22) ? c3(t32, e3) : void 0;
              }
            }
            __name2(i22, "i");
            function c3(t32, e3) {
              (null == e3 || e3 > t32.length) && (e3 = t32.length);
              for (var r22 = 0, n222 = Array(e3); r22 < e3; r22++) n222[r22] = t32[r22];
              return n222;
            }
            __name2(c3, "c");
            var u2 = r2(425), l2 = u2.BigInt, f = u2.Error, s2 = u2.NumberParseInt, y2 = u2.ObjectEntries, p = u2.ObjectGetOwnPropertyDescriptor, g = u2.ObjectGetOwnPropertyDescriptors, v2 = u2.ObjectGetOwnPropertySymbols, h23 = u2.ObjectPrototypeToString, d = u2.Symbol, b2 = r2(569), m2 = d("kPending"), S3 = d("kRejected");
            t22.exports = { constants: { kPending: m2, kRejected: S3, ALL_PROPERTIES: 0, ONLY_ENUMERABLE: 2 }, getOwnNonIndexProperties: /* @__PURE__ */ __name2(function(t32) {
              var e3, r22 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2, n222 = g(t32), i222 = [], c22 = a2(y2(n222));
              try {
                for (c22.s(); !(e3 = c22.n()).done; ) {
                  var u22 = o22(e3.value, 2), l22 = u22[0], f2 = u22[1];
                  if (!/^(0|[1-9][0-9]*)$/.test(l22) || s2(l22, 10) >= Math.pow(2, 32) - 1) {
                    if (2 === r22 && !f2.enumerable) continue;
                    i222.push(l22);
                  }
                }
              } catch (t42) {
                c22.e(t42);
              } finally {
                c22.f();
              }
              var h222, d2 = a2(v2(t32));
              try {
                for (d2.s(); !(h222 = d2.n()).done; ) {
                  var b22 = h222.value, m22 = p(t32, b22);
                  (2 !== r22 || m22.enumerable) && i222.push(b22);
                }
              } catch (t42) {
                d2.e(t42);
              } finally {
                d2.f();
              }
              return i222;
            }, "getOwnNonIndexProperties"), getPromiseDetails: /* @__PURE__ */ __name2(function() {
              return [m2, void 0];
            }, "getPromiseDetails"), getProxyDetails: b2.getProxyDetails, Proxy: b2.Proxy, previewEntries: /* @__PURE__ */ __name2(function(t32) {
              return [[], false];
            }, "previewEntries"), getConstructorName: /* @__PURE__ */ __name2(function(t32) {
              var e3;
              if (!t32 || "object" !== n22(t32)) throw new f("Invalid object");
              if (null !== (e3 = t32.constructor) && void 0 !== e3 && e3.name) return t32.constructor.name;
              var r22 = h23(t32).match(/^\[object ([^\]]+)\]/);
              return r22 ? r22[1] : "Object";
            }, "getConstructorName"), getExternalValue: /* @__PURE__ */ __name2(function() {
              return l2(0);
            }, "getExternalValue") };
          }, 229: (t22, e22, r2) => {
            var n22;
            function o22() {
              return n22 = null != n22 ? n22 : r2(924).codes.ERR_INTERNAL_ASSERTION;
            }
            __name2(o22, "o");
            function a2(t32, e3) {
              if (!t32) throw new (o22())(e3);
            }
            __name2(a2, "a");
            a2.fail = function(t32) {
              throw new (o22())(t32);
            }, t22.exports = a2;
          }, 370: (t22, e22, r2) => {
            var n22 = r2(425), o22 = n22.StringPrototypeCharCodeAt, a2 = n22.StringPrototypeLastIndexOf, i22 = n22.StringPrototypeSlice, c3 = r2(22), u2 = c3.CHAR_DOT, l2 = c3.CHAR_FORWARD_SLASH, f = r2(116).validateString;
            function s2(t32) {
              return t32 === l2;
            }
            __name2(s2, "s");
            function y2(t32, e3, r22, n222) {
              for (var c22 = "", f2 = 0, s22 = -1, y22 = 0, p = 0, g = 0; g <= t32.length; ++g) {
                if (g < t32.length) p = o22(t32, g);
                else {
                  if (n222(p)) break;
                  p = l2;
                }
                if (n222(p)) {
                  if (s22 === g - 1 || 1 === y22) ;
                  else if (2 === y22) {
                    if (c22.length < 2 || 2 !== f2 || o22(c22, c22.length - 1) !== u2 || o22(c22, c22.length - 2) !== u2) {
                      if (c22.length > 2) {
                        var v2 = a2(c22, r22);
                        -1 === v2 ? (c22 = "", f2 = 0) : f2 = (c22 = i22(c22, 0, v2)).length - 1 - a2(c22, r22), s22 = g, y22 = 0;
                        continue;
                      }
                      if (0 !== c22.length) {
                        c22 = "", f2 = 0, s22 = g, y22 = 0;
                        continue;
                      }
                    }
                    e3 && (c22 += c22.length > 0 ? "".concat(r22, "..") : "..", f2 = 2);
                  } else c22.length > 0 ? c22 += "".concat(r22).concat(i22(t32, s22 + 1, g)) : c22 = i22(t32, s22 + 1, g), f2 = g - s22 - 1;
                  s22 = g, y22 = 0;
                } else p === u2 && -1 !== y22 ? ++y22 : y22 = -1;
              }
              return c22;
            }
            __name2(y2, "y");
            t22.exports = { isPosixPathSeparator: s2, normalizeString: y2, resolve: /* @__PURE__ */ __name2(function() {
              if ((0 === arguments.length || 1 === arguments.length && ("" === (arguments.length <= 0 ? void 0 : arguments[0]) || "." === (arguments.length <= 0 ? void 0 : arguments[0]))) && o22("/", 0) === l2) return "/";
              for (var t32 = "", e3 = false, r22 = arguments.length - 1; r22 >= 0 && !e3; r22--) {
                var n222 = r22 < 0 || arguments.length <= r22 ? void 0 : arguments[r22];
                f(n222, "paths[".concat(r22, "]")), 0 !== n222.length && (t32 = "".concat(n222, "/").concat(t32), e3 = o22(n222, 0) === l2);
              }
              return e3 || (t32 = "".concat("/", "/").concat(t32), e3 = o22("/", 0) === l2), t32 = y2(t32, !e3, "/", s2), e3 ? "/".concat(t32) : t32.length > 0 ? t32 : ".";
            }, "resolve") };
          }, 425: (t22) => {
            function e22() {
              var t32, n222, o222 = "function" == typeof Symbol ? Symbol : {}, a22 = o222.iterator || "@@iterator", i222 = o222.toStringTag || "@@toStringTag";
              function c22(e3, o3, a3, i3) {
                var c32 = o3 && o3.prototype instanceof l22 ? o3 : l22, f3 = Object.create(c32.prototype);
                return r2(f3, "_invoke", (function(e4, r22, o4) {
                  var a4, i4, c4, l3 = 0, f4 = o4 || [], s3 = false, y3 = { p: 0, n: 0, v: t32, a: p3, f: p3.bind(t32, 4), d: /* @__PURE__ */ __name2(function(e5, r3) {
                    return a4 = e5, i4 = 0, c4 = t32, y3.n = r3, u22;
                  }, "d") };
                  function p3(e5, r3) {
                    for (i4 = e5, c4 = r3, n222 = 0; !s3 && l3 && !o5 && n222 < f4.length; n222++) {
                      var o5, a5 = f4[n222], p4 = y3.p, g3 = a5[2];
                      e5 > 3 ? (o5 = g3 === r3) && (c4 = a5[(i4 = a5[4]) ? 5 : (i4 = 3, 3)], a5[4] = a5[5] = t32) : a5[0] <= p4 && ((o5 = e5 < 2 && p4 < a5[1]) ? (i4 = 0, y3.v = r3, y3.n = a5[1]) : p4 < g3 && (o5 = e5 < 3 || a5[0] > r3 || r3 > g3) && (a5[4] = e5, a5[5] = r3, y3.n = g3, i4 = 0));
                    }
                    if (o5 || e5 > 1) return u22;
                    throw s3 = true, r3;
                  }
                  __name2(p3, "p");
                  return function(o5, f5, g3) {
                    if (l3 > 1) throw TypeError("Generator is already running");
                    for (s3 && 1 === f5 && p3(f5, g3), i4 = f5, c4 = g3; (n222 = i4 < 2 ? t32 : c4) || !s3; ) {
                      a4 || (i4 ? i4 < 3 ? (i4 > 1 && (y3.n = -1), p3(i4, c4)) : y3.n = c4 : y3.v = c4);
                      try {
                        if (l3 = 2, a4) {
                          if (i4 || (o5 = "next"), n222 = a4[o5]) {
                            if (!(n222 = n222.call(a4, c4))) throw TypeError("iterator result is not an object");
                            if (!n222.done) return n222;
                            c4 = n222.value, i4 < 2 && (i4 = 0);
                          } else 1 === i4 && (n222 = a4.return) && n222.call(a4), i4 < 2 && (c4 = TypeError("The iterator does not provide a '" + o5 + "' method"), i4 = 1);
                          a4 = t32;
                        } else if ((n222 = (s3 = y3.n < 0) ? c4 : e4.call(r22, y3)) !== u22) break;
                      } catch (e5) {
                        a4 = t32, i4 = 1, c4 = e5;
                      } finally {
                        l3 = 1;
                      }
                    }
                    return { value: n222, done: s3 };
                  };
                })(e3, a3, i3), true), f3;
              }
              __name2(c22, "c");
              var u22 = {};
              function l22() {
              }
              __name2(l22, "l");
              function f2() {
              }
              __name2(f2, "f");
              function s22() {
              }
              __name2(s22, "s");
              n222 = Object.getPrototypeOf;
              var y22 = [][a22] ? n222(n222([][a22]())) : (r2(n222 = {}, a22, function() {
                return this;
              }), n222), p2 = s22.prototype = l22.prototype = Object.create(y22);
              function g2(t42) {
                return Object.setPrototypeOf ? Object.setPrototypeOf(t42, s22) : (t42.__proto__ = s22, r2(t42, i222, "GeneratorFunction")), t42.prototype = Object.create(p2), t42;
              }
              __name2(g2, "g");
              return f2.prototype = s22, r2(p2, "constructor", s22), r2(s22, "constructor", f2), f2.displayName = "GeneratorFunction", r2(s22, i222, "GeneratorFunction"), r2(p2), r2(p2, i222, "Generator"), r2(p2, a22, function() {
                return this;
              }), r2(p2, "toString", function() {
                return "[object Generator]";
              }), (e22 = /* @__PURE__ */ __name2(function() {
                return { w: c22, m: g2 };
              }, "e"))();
            }
            __name2(e22, "e");
            function r2(t32, e3, n222, o222) {
              var a22 = Object.defineProperty;
              try {
                a22({}, "", {});
              } catch (t42) {
                a22 = 0;
              }
              r2 = /* @__PURE__ */ __name2(function(t42, e4, n3, o3) {
                function i222(e5, n4) {
                  r2(t42, e5, function(t52) {
                    return this._invoke(e5, n4, t52);
                  });
                }
                __name2(i222, "i");
                e4 ? a22 ? a22(t42, e4, { value: n3, enumerable: !o3, configurable: !o3, writable: !o3 }) : t42[e4] = n3 : (i222("next", 0), i222("throw", 1), i222("return", 2));
              }, "r"), r2(t32, e3, n222, o222);
            }
            __name2(r2, "r");
            function n22(t32, e3, r22) {
              return e3 = a2(e3), (function(t42, e4) {
                if (e4 && ("object" == d(e4) || "function" == typeof e4)) return e4;
                if (void 0 !== e4) throw new TypeError("Derived constructors may only return object or undefined");
                return (function(t52) {
                  if (void 0 === t52) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                  return t52;
                })(t42);
              })(t32, o22() ? Reflect.construct(e3, r22 || [], a2(t32).constructor) : e3.apply(t32, r22));
            }
            __name2(n22, "n");
            function o22() {
              try {
                var t32 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
                }));
              } catch (t42) {
              }
              return (o22 = /* @__PURE__ */ __name2(function() {
                return !!t32;
              }, "o"))();
            }
            __name2(o22, "o");
            function a2(t32) {
              return a2 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t42) {
                return t42.__proto__ || Object.getPrototypeOf(t42);
              }, a2(t32);
            }
            __name2(a2, "a");
            function i22(t32, e3) {
              if ("function" != typeof e3 && null !== e3) throw new TypeError("Super expression must either be null or a function");
              t32.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t32, writable: true, configurable: true } }), Object.defineProperty(t32, "prototype", { writable: false }), e3 && c3(t32, e3);
            }
            __name2(i22, "i");
            function c3(t32, e3) {
              return c3 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t42, e4) {
                return t42.__proto__ = e4, t42;
              }, c3(t32, e3);
            }
            __name2(c3, "c");
            function u2(t32, e3) {
              if (!(t32 instanceof e3)) throw new TypeError("Cannot call a class as a function");
            }
            __name2(u2, "u");
            function l2(t32, e3) {
              for (var r22 = 0; r22 < e3.length; r22++) {
                var n222 = e3[r22];
                n222.enumerable = n222.enumerable || false, n222.configurable = true, "value" in n222 && (n222.writable = true), Object.defineProperty(t32, g(n222.key), n222);
              }
            }
            __name2(l2, "l");
            function f(t32, e3, r22) {
              return e3 && l2(t32.prototype, e3), r22 && l2(t32, r22), Object.defineProperty(t32, "prototype", { writable: false }), t32;
            }
            __name2(f, "f");
            function s2(t32, e3) {
              var r22 = Object.keys(t32);
              if (Object.getOwnPropertySymbols) {
                var n222 = Object.getOwnPropertySymbols(t32);
                e3 && (n222 = n222.filter(function(e4) {
                  return Object.getOwnPropertyDescriptor(t32, e4).enumerable;
                })), r22.push.apply(r22, n222);
              }
              return r22;
            }
            __name2(s2, "s");
            function y2(t32) {
              for (var e3 = 1; e3 < arguments.length; e3++) {
                var r22 = null != arguments[e3] ? arguments[e3] : {};
                e3 % 2 ? s2(Object(r22), true).forEach(function(e4) {
                  p(t32, e4, r22[e4]);
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t32, Object.getOwnPropertyDescriptors(r22)) : s2(Object(r22)).forEach(function(e4) {
                  Object.defineProperty(t32, e4, Object.getOwnPropertyDescriptor(r22, e4));
                });
              }
              return t32;
            }
            __name2(y2, "y");
            function p(t32, e3, r22) {
              return (e3 = g(e3)) in t32 ? Object.defineProperty(t32, e3, { value: r22, enumerable: true, configurable: true, writable: true }) : t32[e3] = r22, t32;
            }
            __name2(p, "p");
            function g(t32) {
              var e3 = (function(t42) {
                if ("object" != d(t42) || !t42) return t42;
                var e4 = t42[Symbol.toPrimitive];
                if (void 0 !== e4) {
                  var r22 = e4.call(t42, "string");
                  if ("object" != d(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == d(e3) ? e3 : e3 + "";
            }
            __name2(g, "g");
            function v2(t32, e3) {
              var r22 = "undefined" != typeof Symbol && t32[Symbol.iterator] || t32["@@iterator"];
              if (!r22) {
                if (Array.isArray(t32) || (r22 = (function(t42, e4) {
                  if (t42) {
                    if ("string" == typeof t42) return h23(t42, e4);
                    var r3 = {}.toString.call(t42).slice(8, -1);
                    return "Object" === r3 && t42.constructor && (r3 = t42.constructor.name), "Map" === r3 || "Set" === r3 ? Array.from(t42) : "Arguments" === r3 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r3) ? h23(t42, e4) : void 0;
                  }
                })(t32)) || e3 && t32 && "number" == typeof t32.length) {
                  r22 && (t32 = r22);
                  var n222 = 0, o222 = /* @__PURE__ */ __name2(function() {
                  }, "o");
                  return { s: o222, n: /* @__PURE__ */ __name2(function() {
                    return n222 >= t32.length ? { done: true } : { done: false, value: t32[n222++] };
                  }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                    throw t42;
                  }, "e"), f: o222 };
                }
                throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
              }
              var a22, i222 = true, c22 = false;
              return { s: /* @__PURE__ */ __name2(function() {
                r22 = r22.call(t32);
              }, "s"), n: /* @__PURE__ */ __name2(function() {
                var t42 = r22.next();
                return i222 = t42.done, t42;
              }, "n"), e: /* @__PURE__ */ __name2(function(t42) {
                c22 = true, a22 = t42;
              }, "e"), f: /* @__PURE__ */ __name2(function() {
                try {
                  i222 || null == r22.return || r22.return();
                } finally {
                  if (c22) throw a22;
                }
              }, "f") };
            }
            __name2(v2, "v");
            function h23(t32, e3) {
              (null == e3 || e3 > t32.length) && (e3 = t32.length);
              for (var r22 = 0, n222 = Array(e3); r22 < e3; r22++) n222[r22] = t32[r22];
              return n222;
            }
            __name2(h23, "h");
            function d(t32) {
              return d = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, d(t32);
            }
            __name2(d, "d");
            function b2(t32) {
              return function() {
                return new m2(t32.apply(this, arguments));
              };
            }
            __name2(b2, "b");
            function m2(t32) {
              var e3, r22;
              function n222(e4, r3) {
                try {
                  var a22 = t32[e4](r3), i222 = a22.value, c22 = i222 instanceof S3;
                  Promise.resolve(c22 ? i222.v : i222).then(function(r4) {
                    if (c22) {
                      var u22 = "return" === e4 ? "return" : "next";
                      if (!i222.k || r4.done) return n222(u22, r4);
                      r4 = t32[u22](r4).value;
                    }
                    o222(a22.done ? "return" : "normal", r4);
                  }, function(t42) {
                    n222("throw", t42);
                  });
                } catch (t42) {
                  o222("throw", t42);
                }
              }
              __name2(n222, "n");
              function o222(t42, o3) {
                switch (t42) {
                  case "return":
                    e3.resolve({ value: o3, done: true });
                    break;
                  case "throw":
                    e3.reject(o3);
                    break;
                  default:
                    e3.resolve({ value: o3, done: false });
                }
                (e3 = e3.next) ? n222(e3.key, e3.arg) : r22 = null;
              }
              __name2(o222, "o");
              this._invoke = function(t42, o3) {
                return new Promise(function(a22, i222) {
                  var c22 = { key: t42, arg: o3, resolve: a22, reject: i222, next: null };
                  r22 ? r22 = r22.next = c22 : (e3 = r22 = c22, n222(t42, o3));
                });
              }, "function" != typeof t32.return && (this.return = void 0);
            }
            __name2(m2, "m");
            function S3(t32, e3) {
              this.v = t32, this.k = e3;
            }
            __name2(S3, "S");
            m2.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
              return this;
            }, m2.prototype.next = function(t32) {
              return this._invoke("next", t32);
            }, m2.prototype.throw = function(t32) {
              return this._invoke("throw", t32);
            }, m2.prototype.return = function(t32) {
              return this._invoke("return", t32);
            };
            var P3 = { __proto__: null }, x3 = Reflect.defineProperty, w3 = Reflect.getOwnPropertyDescriptor, A2 = Reflect.ownKeys, O3 = Function.prototype, _3 = O3.apply, j2 = O3.bind, E2 = O3.call, k3 = j2.bind(E2);
            P3.uncurryThis = k3;
            var I4 = j2.bind(_3);
            P3.applyBind = I4;
            var R2 = ["ArrayOf", "ArrayPrototypePush", "ArrayPrototypeUnshift", "MathHypot", "MathMax", "MathMin", "StringFromCharCode", "StringFromCodePoint", "StringPrototypeConcat", "TypedArrayOf"];
            function L3(t32) {
              return "symbol" === d(t32) ? "Symbol".concat(t32.description[7].toUpperCase()).concat(t32.description.slice(8)) : "".concat(t32[0].toUpperCase()).concat(t32.slice(1));
            }
            __name2(L3, "L");
            function T3(t32, e3, r22, n222) {
              var o222 = n222.enumerable, a22 = n222.get, i222 = n222.set;
              x3(t32, "".concat(e3, "Get").concat(r22), { __proto__: null, value: k3(a22), enumerable: o222 }), void 0 !== i222 && x3(t32, "".concat(e3, "Set").concat(r22), { __proto__: null, value: k3(i222), enumerable: o222 });
            }
            __name2(T3, "T");
            function B3(t32, e3, r22) {
              var n222, o222 = v2(A2(t32));
              try {
                for (o222.s(); !(n222 = o222.n()).done; ) {
                  var a22 = n222.value, i222 = L3(a22), c22 = w3(t32, a22);
                  if ("get" in c22) T3(e3, r22, i222, c22);
                  else {
                    var u22 = "".concat(r22).concat(i222);
                    x3(e3, u22, y2({ __proto__: null }, c22)), R2.includes(u22) && x3(e3, "".concat(u22, "Apply"), { __proto__: null, value: I4(c22.value, t32) });
                  }
                }
              } catch (t42) {
                o222.e(t42);
              } finally {
                o222.f();
              }
            }
            __name2(B3, "B");
            function z4(t32, e3, r22) {
              var n222, o222 = v2(A2(t32));
              try {
                for (o222.s(); !(n222 = o222.n()).done; ) {
                  var a22 = n222.value, i222 = L3(a22), c22 = w3(t32, a22);
                  if ("get" in c22) T3(e3, r22, i222, c22);
                  else {
                    var u22 = c22.value;
                    "function" == typeof u22 && (c22.value = k3(u22));
                    var l22 = "".concat(r22).concat(i222);
                    x3(e3, l22, y2({ __proto__: null }, c22)), R2.includes(l22) && x3(e3, "".concat(l22, "Apply"), { __proto__: null, value: I4(u22) });
                  }
                }
              } catch (t42) {
                o222.e(t42);
              } finally {
                o222.f();
              }
            }
            __name2(z4, "z");
            ["Proxy", "globalThis"].forEach(function(t32) {
              P3[t32] = globalThis[t32];
            }), [decodeURI, decodeURIComponent, encodeURI, encodeURIComponent].forEach(function(t32) {
              P3[t32.name] = t32;
            }), [escape, eval, unescape].forEach(function(t32) {
              P3[t32.name] = t32;
            }), ["Atomics", "JSON", "Math", "Proxy", "Reflect"].forEach(function(t32) {
              B3(globalThis[t32], P3, t32);
            }), ["AggregateError", "Array", "ArrayBuffer", "BigInt", "BigInt64Array", "BigUint64Array", "Boolean", "DataView", "Date", "Error", "EvalError", "FinalizationRegistry", "Float32Array", "Float64Array", "Function", "Int16Array", "Int32Array", "Int8Array", "Map", "Number", "Object", "RangeError", "ReferenceError", "RegExp", "Set", "String", "Symbol", "SyntaxError", "TypeError", "URIError", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "WeakMap", "WeakRef", "WeakSet"].forEach(function(t32) {
              var e3 = globalThis[t32];
              e3 && (P3[t32] = e3, B3(e3, P3, t32), z4(e3.prototype, P3, "".concat(t32, "Prototype")));
            }), ["Promise"].forEach(function(t32) {
              var e3 = globalThis[t32];
              P3[t32] = e3, (function(t42, e4, r22) {
                var n222, o222 = v2(A2(t42));
                try {
                  for (o222.s(); !(n222 = o222.n()).done; ) {
                    var a22 = n222.value, i222 = L3(a22), c22 = w3(t42, a22);
                    if ("get" in c22) T3(e4, r22, i222, c22);
                    else {
                      var u22 = c22.value;
                      "function" == typeof u22 && (c22.value = u22.bind(t42));
                      var l22 = "".concat(r22).concat(i222);
                      x3(e4, l22, y2({ __proto__: null }, c22));
                    }
                  }
                } catch (t52) {
                  o222.e(t52);
                } finally {
                  o222.f();
                }
              })(e3, P3, t32), z4(e3.prototype, P3, "".concat(t32, "Prototype"));
            }), [{ name: "TypedArray", original: Reflect.getPrototypeOf(Uint8Array) }, { name: "ArrayIterator", original: { prototype: Reflect.getPrototypeOf(Array.prototype[Symbol.iterator]()) } }, { name: "StringIterator", original: { prototype: Reflect.getPrototypeOf(String.prototype[Symbol.iterator]()) } }].forEach(function(t32) {
              var e3 = t32.name, r22 = t32.original;
              P3[e3] = r22, z4(r22, P3, e3), z4(r22.prototype, P3, "".concat(e3, "Prototype"));
            }), P3.IteratorPrototype = Reflect.getPrototypeOf(P3.ArrayIteratorPrototype);
            var M2 = P3.ArrayPrototypeForEach, C = P3.FinalizationRegistry, D = P3.FunctionPrototypeCall, N3 = P3.Map, F = P3.ObjectFreeze, W3 = P3.ObjectSetPrototypeOf, H3 = P3.RegExp, U3 = P3.Set, G3 = P3.SymbolIterator, V3 = P3.WeakMap, Z3 = P3.WeakRef, $2 = P3.WeakSet, Y3 = /* @__PURE__ */ __name2(function(t32, e3) {
              var r22 = (function() {
                return f(/* @__PURE__ */ __name2(function e4(r3) {
                  u2(this, e4), this._iterator = t32(r3);
                }, "e"), [{ key: "next", value: /* @__PURE__ */ __name2(function() {
                  return e3(this._iterator);
                }, "value") }, { key: G3, value: /* @__PURE__ */ __name2(function() {
                  return this;
                }, "value") }]);
              })();
              return W3(r22.prototype, null), F(r22.prototype), F(r22), r22;
            }, "Y");
            P3.SafeArrayIterator = Y3(P3.ArrayPrototypeSymbolIterator, P3.ArrayIteratorPrototypeNext), P3.SafeStringIterator = Y3(P3.StringPrototypeSymbolIterator, P3.StringIteratorPrototypeNext);
            var q3 = /* @__PURE__ */ __name2(function(t32, e3) {
              M2(A2(t32), function(r22) {
                w3(e3, r22) || x3(e3, r22, y2({ __proto__: null }, w3(t32, r22)));
              });
            }, "q"), J3 = /* @__PURE__ */ __name2(function(t32, e3) {
              if (G3 in t32.prototype) {
                var r22, n222 = new t32();
                M2(A2(t32.prototype), function(o222) {
                  if (!w3(e3.prototype, o222)) {
                    var a22, i222 = w3(t32.prototype, o222);
                    if ("function" == typeof i222.value && 0 === i222.value.length && G3 in (null !== (a22 = D(i222.value, n222)) && void 0 !== a22 ? a22 : {})) {
                      var c22 = k3(i222.value);
                      r22 = r22 || k3(c22(n222).next);
                      var u22 = Y3(c22, r22);
                      i222.value = function() {
                        return new u22(this);
                      };
                    }
                    x3(e3.prototype, o222, y2({ __proto__: null }, i222));
                  }
                });
              } else q3(t32.prototype, e3.prototype);
              return q3(t32, e3), W3(e3.prototype, null), F(e3.prototype), F(e3), e3;
            }, "J");
            P3.makeSafe = J3, P3.SafeMap = J3(N3, (function(t32) {
              function e3(t42) {
                return u2(this, e3), n22(this, e3, [t42]);
              }
              __name2(e3, "e");
              return i22(e3, t32), f(e3);
            })(N3)), P3.SafeWeakMap = J3(V3, (function(t32) {
              function e3(t42) {
                return u2(this, e3), n22(this, e3, [t42]);
              }
              __name2(e3, "e");
              return i22(e3, t32), f(e3);
            })(V3)), P3.SafeSet = J3(U3, (function(t32) {
              function e3(t42) {
                return u2(this, e3), n22(this, e3, [t42]);
              }
              __name2(e3, "e");
              return i22(e3, t32), f(e3);
            })(U3)), P3.SafeWeakSet = J3($2, (function(t32) {
              function e3(t42) {
                return u2(this, e3), n22(this, e3, [t42]);
              }
              __name2(e3, "e");
              return i22(e3, t32), f(e3);
            })($2)), P3.SafeFinalizationRegistry = J3(C, (function(t32) {
              function e3(t42) {
                return u2(this, e3), n22(this, e3, [t42]);
              }
              __name2(e3, "e");
              return i22(e3, t32), f(e3);
            })(C)), P3.SafeWeakRef = J3(Z3, (function(t32) {
              function e3(t42) {
                return u2(this, e3), n22(this, e3, [t42]);
              }
              __name2(e3, "e");
              return i22(e3, t32), f(e3);
            })(Z3)), P3.AsyncIteratorPrototype = P3.ReflectGetPrototypeOf(b2(e22().m(/* @__PURE__ */ __name2(function t32() {
              return e22().w(function(t42) {
                for (; ; ) if (0 === t42.n) return t42.a(2);
              }, t32);
            }, "t")))).prototype, P3.internalBinding = function(t32) {
              if ("config" === t32) return { hasIntl: false };
              throw new Error('unknown module: "'.concat(t32, '"'));
            }, P3._stringPrototypeReplaceAll = function(t32, e3, r22) {
              return "[object regexp]" === Object.prototype.toString.call(e3).toLowerCase() ? t32.replace(e3, r22) : t32.replace(new H3(e3, "g"), r22);
            }, P3.StringPrototypeReplaceAll = P3.StringPrototypeReplaceAll || P3._stringPrototypeReplaceAll, W3(P3, null), F(P3), t22.exports = P3;
          }, 569: (t22, e22, r2) => {
            function n22(t32) {
              return n22 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n22(t32);
            }
            __name2(n22, "n");
            function o22(t32, e3) {
              for (var r22 = 0; r22 < e3.length; r22++) {
                var n222 = e3[r22];
                n222.enumerable = n222.enumerable || false, n222.configurable = true, "value" in n222 && (n222.writable = true), Object.defineProperty(t32, a2(n222.key), n222);
              }
            }
            __name2(o22, "o");
            function a2(t32) {
              var e3 = (function(t42) {
                if ("object" != n22(t42) || !t42) return t42;
                var e4 = t42[Symbol.toPrimitive];
                if (void 0 !== e4) {
                  var r22 = e4.call(t42, "string");
                  if ("object" != n22(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == n22(e3) ? e3 : e3 + "";
            }
            __name2(a2, "a");
            var i22 = r2(425), c3 = i22.Proxy, u2 = i22.ProxyRevocable, l2 = new (0, i22.SafeWeakMap)(), f = (function() {
              return t32 = /* @__PURE__ */ __name2(function t42(e4, r22) {
                !(function(t52, e5) {
                  if (!(t52 instanceof e5)) throw new TypeError("Cannot call a class as a function");
                })(this, t42);
                var n222 = new c3(e4, r22);
                return l2.set(n222, [e4, r22]), n222;
              }, "t"), e3 = [{ key: "getProxyDetails", value: /* @__PURE__ */ __name2(function(t42) {
                var e4 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], r22 = l2.get(t42);
                if (r22) return e4 ? r22 : r22[0];
              }, "value") }, { key: "revocable", value: /* @__PURE__ */ __name2(function(t42, e4) {
                var r22 = u2(t42, e4);
                l2.set(r22.proxy, [t42, e4]);
                var n222 = r22.revoke;
                return r22.revoke = function() {
                  l2.set(r22.proxy, [null, null]), n222();
                }, r22;
              }, "value") }], null, e3 && o22(t32, e3), Object.defineProperty(t32, "prototype", { writable: false }), t32;
              var t32, e3;
            })();
            t22.exports = { getProxyDetails: f.getProxyDetails.bind(f), Proxy: f };
          }, 617: (t22, e22, r2) => {
            function n22(t32) {
              return n22 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n22(t32);
            }
            __name2(n22, "n");
            var o22 = r2(425), a2 = o22.ArrayIsArray, i22 = o22.BigInt, c3 = o22.Boolean, u2 = o22.DatePrototype, l2 = o22.Error, f = o22.FunctionPrototype, s2 = o22.MapPrototypeHas, y2 = o22.Number, p = o22.ObjectDefineProperty, g = o22.ObjectGetOwnPropertyDescriptor, v2 = o22.ObjectGetPrototypeOf, h23 = o22.ObjectIsFrozen, d = o22.ObjectPrototype, b2 = o22.SetPrototypeHas, m2 = o22.String, S3 = o22.Symbol, P3 = o22.SymbolToStringTag, x3 = o22.globalThis, w3 = r2(153).getConstructorName;
            function A2(t32) {
              for (var e3 = arguments.length, r22 = new Array(e3 > 1 ? e3 - 1 : 0), o222 = 1; o222 < e3; o222++) r22[o222 - 1] = arguments[o222];
              for (var a22 = 0, i222 = r22; a22 < i222.length; a22++) {
                var c22 = i222[a22], u22 = x3[c22];
                if (u22 && t32 instanceof u22) return true;
              }
              for (; t32; ) {
                if ("object" !== n22(t32)) return false;
                if (r22.indexOf(w3(t32)) >= 0) return true;
                t32 = v2(t32);
              }
              return false;
            }
            __name2(A2, "A");
            function O3(t32) {
              return function(e3) {
                if (!A2(e3, t32.name)) return false;
                try {
                  t32.prototype.valueOf.call(e3);
                } catch (t42) {
                  return false;
                }
                return true;
              };
            }
            __name2(O3, "O");
            "object" !== n22(x3) && (p(d, "__magic__", { get: /* @__PURE__ */ __name2(function() {
              return this;
            }, "get"), configurable: true }), __magic__.globalThis = __magic__, delete d.__magic__);
            var _3 = O3(m2), j2 = O3(y2), E2 = O3(c3), k3 = O3(i22), I4 = O3(S3);
            t22.exports = { isAsyncFunction: /* @__PURE__ */ __name2(function(t32) {
              return "function" == typeof t32 && f.toString.call(t32).startsWith("async");
            }, "isAsyncFunction"), isGeneratorFunction: /* @__PURE__ */ __name2(function(t32) {
              return "function" == typeof t32 && f.toString.call(t32).match(/^(async\s+)?function *\*/);
            }, "isGeneratorFunction"), isAnyArrayBuffer: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "ArrayBuffer", "SharedArrayBuffer");
            }, "isAnyArrayBuffer"), isArrayBuffer: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "ArrayBuffer");
            }, "isArrayBuffer"), isArgumentsObject: /* @__PURE__ */ __name2(function(t32) {
              if (null !== t32 && "object" === n22(t32) && !a2(t32) && "number" == typeof t32.length && t32.length === (0 | t32.length) && t32.length >= 0) {
                var e3 = g(t32, "callee");
                return e3 && !e3.enumerable;
              }
              return false;
            }, "isArgumentsObject"), isBoxedPrimitive: /* @__PURE__ */ __name2(function(t32) {
              return j2(t32) || _3(t32) || E2(t32) || k3(t32) || I4(t32);
            }, "isBoxedPrimitive"), isDataView: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "DataView");
            }, "isDataView"), isExternal: /* @__PURE__ */ __name2(function(t32) {
              return "object" === n22(t32) && h23(t32) && null == v2(t32);
            }, "isExternal"), isMap: /* @__PURE__ */ __name2(function(t32) {
              if (!A2(t32, "Map")) return false;
              try {
                s2(t32);
              } catch (t42) {
                return false;
              }
              return true;
            }, "isMap"), isMapIterator: /* @__PURE__ */ __name2(function(t32) {
              return "[object Map Iterator]" === d.toString.call(v2(t32));
            }, "isMapIterator"), isModuleNamespaceObject: /* @__PURE__ */ __name2(function(t32) {
              return t32 && "object" === n22(t32) && "Module" === t32[P3];
            }, "isModuleNamespaceObject"), isNativeError: /* @__PURE__ */ __name2(function(t32) {
              return t32 instanceof l2 && A2(t32, "Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "AggregateError");
            }, "isNativeError"), isPromise: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "Promise");
            }, "isPromise"), isSet: /* @__PURE__ */ __name2(function(t32) {
              if (!A2(t32, "Set")) return false;
              try {
                b2(t32);
              } catch (t42) {
                return false;
              }
              return true;
            }, "isSet"), isSetIterator: /* @__PURE__ */ __name2(function(t32) {
              return "[object Set Iterator]" === d.toString.call(v2(t32));
            }, "isSetIterator"), isWeakMap: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "WeakMap");
            }, "isWeakMap"), isWeakSet: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "WeakSet");
            }, "isWeakSet"), isRegExp: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "RegExp");
            }, "isRegExp"), isDate: /* @__PURE__ */ __name2(function(t32) {
              if (A2(t32, "Date")) try {
                return u2.getTime.call(t32), true;
              } catch (t42) {
              }
              return false;
            }, "isDate"), isTypedArray: /* @__PURE__ */ __name2(function(t32) {
              return A2(t32, "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "BigInt64Array", "BigUint64Array");
            }, "isTypedArray"), isStringObject: _3, isNumberObject: j2, isBooleanObject: E2, isBigIntObject: k3, isSymbolObject: I4 };
          }, 705: (t22) => {
            var e22 = ["_http_agent", "_http_client", "_http_common", "_http_incoming", "_http_outgoing", "_http_server", "_stream_duplex", "_stream_passthrough", "_stream_readable", "_stream_transform", "_stream_wrap", "_stream_writable", "_tls_common", "_tls_wrap", "assert", "assert/strict", "async_hooks", "buffer", "child_process", "cluster", "console", "constants", "crypto", "dgram", "diagnostics_channel", "dns", "dns/promises", "domain", "events", "fs", "fs/promises", "http", "http2", "https", "inspector", "module", "Module", "net", "os", "path", "path/posix", "path/win32", "perf_hooks", "process", "punycode", "querystring", "readline", "readline/promises", "repl", "stream", "stream/consumers", "stream/promises", "stream/web", "string_decoder", "sys", "timers", "timers/promises", "tls", "trace_events", "tty", "url", "util", "util/types", "v8", "vm", "wasi", "worker_threads", "zlib"];
            t22.exports.BuiltinModule = { exists: /* @__PURE__ */ __name2(function(t32) {
              return t32.startsWith("internal/") || -1 !== e22.indexOf(t32);
            }, "exists") };
          }, 802: (t22, e22, r2) => {
            var n22 = r2(425), o22 = n22.StringPrototypeCharCodeAt, a2 = n22.StringPrototypeIncludes, i22 = n22.StringPrototypeReplace, c3 = r2(24), u2 = r2(22).CHAR_FORWARD_SLASH, l2 = r2(370), f = /%/g, s2 = /\\/g, y2 = /\n/g, p = /\r/g, g = /\t/g;
            t22.exports = { pathToFileURL: /* @__PURE__ */ __name2(function(t32) {
              var e3 = new c3("file://"), r22 = l2.resolve(t32);
              return o22(t32, t32.length - 1) === u2 && r22[r22.length - 1] !== l2.sep && (r22 += "/"), e3.pathname = (function(t42) {
                return a2(t42, "%") && (t42 = i22(t42, f, "%25")), a2(t42, "\\") && (t42 = i22(t42, s2, "%5C")), a2(t42, "\n") && (t42 = i22(t42, y2, "%0A")), a2(t42, "\r") && (t42 = i22(t42, p, "%0D")), a2(t42, "	") && (t42 = i22(t42, g, "%09")), t42;
              })(r22), e3;
            }, "pathToFileURL"), URL: c3 };
          }, 883: (t22, e22, r2) => {
            function n22(t32) {
              return n22 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, n22(t32);
            }
            __name2(n22, "n");
            function o22(t32, e3) {
              for (var r22 = 0; r22 < e3.length; r22++) {
                var n222 = e3[r22];
                n222.enumerable = n222.enumerable || false, n222.configurable = true, "value" in n222 && (n222.writable = true), Object.defineProperty(t32, a2(n222.key), n222);
              }
            }
            __name2(o22, "o");
            function a2(t32) {
              var e3 = (function(t42) {
                if ("object" != n22(t42) || !t42) return t42;
                var e4 = t42[Symbol.toPrimitive];
                if (void 0 !== e4) {
                  var r22 = e4.call(t42, "string");
                  if ("object" != n22(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == n22(e3) ? e3 : e3 + "";
            }
            __name2(a2, "a");
            var i22 = r2(425).ArrayPrototypeMap, c3 = (function() {
              return t32 = /* @__PURE__ */ __name2(function t42() {
                !(function(t52, e4) {
                  if (!(t52 instanceof e4)) throw new TypeError("Cannot call a class as a function");
                })(this, t42);
              }, "t"), e3 = [{ key: "hexSlice", value: /* @__PURE__ */ __name2(function() {
                var t42 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, e4 = arguments.length > 1 ? arguments[1] : void 0;
                return i22(this.slice(t42, e4), function(t52) {
                  return ("00" + t52.toString(16)).slice(-2);
                }).join("");
              }, "value") }], e3 && o22(t32.prototype, e3), Object.defineProperty(t32, "prototype", { writable: false }), t32;
              var t32, e3;
            })();
            e22.h = c3;
          }, 923: (t22, e22, r2) => {
            var n22 = r2(425), o22 = n22.ArrayPrototypeJoin, a2 = n22.Error, i22 = n22.StringPrototypeReplace, c3 = n22.SymbolFor, u2 = /\u001b\[\d\d?m/g;
            t22.exports = { customInspectSymbol: c3("nodejs.util.inspect.custom"), isError: /* @__PURE__ */ __name2(function(t32) {
              return t32 instanceof a2;
            }, "isError"), join: o22, removeColors: /* @__PURE__ */ __name2(function(t32) {
              return i22(t32, u2, "");
            }, "removeColors") };
          }, 924: (t22, e22, r2) => {
            function n22(t32, e3) {
              (null == e3 || e3 > t32.length) && (e3 = t32.length);
              for (var r22 = 0, n222 = Array(e3); r22 < e3; r22++) n222[r22] = t32[r22];
              return n222;
            }
            __name2(n22, "n");
            function o22(t32) {
              return o22 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t42) {
                return typeof t42;
              } : function(t42) {
                return t42 && "function" == typeof Symbol && t42.constructor === Symbol && t42 !== Symbol.prototype ? "symbol" : typeof t42;
              }, o22(t32);
            }
            __name2(o22, "o");
            function a2(t32, e3) {
              for (var r22 = 0; r22 < e3.length; r22++) {
                var n222 = e3[r22];
                n222.enumerable = n222.enumerable || false, n222.configurable = true, "value" in n222 && (n222.writable = true), Object.defineProperty(t32, i22(n222.key), n222);
              }
            }
            __name2(a2, "a");
            function i22(t32) {
              var e3 = (function(t42) {
                if ("object" != o22(t42) || !t42) return t42;
                var e4 = t42[Symbol.toPrimitive];
                if (void 0 !== e4) {
                  var r22 = e4.call(t42, "string");
                  if ("object" != o22(r22)) return r22;
                  throw new TypeError("@@toPrimitive must return a primitive value.");
                }
                return String(t42);
              })(t32);
              return "symbol" == o22(e3) ? e3 : e3 + "";
            }
            __name2(i22, "i");
            function c3() {
              try {
                var t32 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
                }));
              } catch (t42) {
              }
              return (c3 = /* @__PURE__ */ __name2(function() {
                return !!t32;
              }, "c"))();
            }
            __name2(c3, "c");
            function u2(t32) {
              return u2 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t42) {
                return t42.__proto__ || Object.getPrototypeOf(t42);
              }, u2(t32);
            }
            __name2(u2, "u");
            function l2(t32, e3) {
              return l2 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t42, e4) {
                return t42.__proto__ = e4, t42;
              }, l2(t32, e3);
            }
            __name2(l2, "l");
            var f, s2, y2 = r2(425), p = y2.ArrayIsArray, g = y2.ArrayPrototypeIncludes, v2 = y2.ArrayPrototypeIndexOf, h23 = y2.ArrayPrototypeJoin, d = y2.ArrayPrototypePush, b2 = y2.ArrayPrototypeSlice, m2 = y2.ArrayPrototypeSplice, S3 = y2.Error, P3 = y2.ErrorCaptureStackTrace, x3 = y2.JSONStringify, w3 = y2.ObjectDefineProperty, A2 = y2.ReflectApply, O3 = y2.RegExpPrototypeExec, _3 = y2.SafeMap, j2 = y2.SafeWeakMap, E2 = y2.String, k3 = y2.StringPrototypeEndsWith, I4 = y2.StringPrototypeIncludes, R2 = y2.StringPrototypeIndexOf, L3 = y2.StringPrototypeSlice, T3 = y2.StringPrototypeToLowerCase, B3 = y2.Symbol, z4 = y2.TypeError, M2 = B3("kIsNodeError"), C = new _3(), D = {}, N3 = /^[A-Z][a-zA-Z0-9]*$/, F = ["string", "function", "number", "object", "Function", "Object", "boolean", "bigint", "symbol"], W3 = new j2(), H3 = r2(229), U3 = null;
            function G3(t32, e3) {
              var r22 = (function(t42) {
                function r3() {
                  var t52, n3, a22, l22;
                  (function(t62, e4) {
                    if (!(t62 instanceof e4)) throw new TypeError("Cannot call a class as a function");
                  })(this, r3), t52 = (function(t62, e4, r4) {
                    return e4 = u2(e4), (function(t72, e5) {
                      if (e5 && ("object" == o22(e5) || "function" == typeof e5)) return e5;
                      if (void 0 !== e5) throw new TypeError("Derived constructors may only return object or undefined");
                      return (function(t82) {
                        if (void 0 === t82) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return t82;
                      })(t72);
                    })(t62, c3() ? Reflect.construct(e4, r4 || [], u2(t62).constructor) : e4.apply(t62, r4));
                  })(this, r3), n3 = t52, l22 = e3, (a22 = i22(a22 = "code")) in n3 ? Object.defineProperty(n3, a22, { value: l22, enumerable: true, configurable: true, writable: true }) : n3[a22] = l22;
                  for (var f3 = arguments.length, s3 = new Array(f3), y22 = 0; y22 < f3; y22++) s3[y22] = arguments[y22];
                  return w3(t52, "message", { __proto__: null, value: Z3(e3, s3, t52), enumerable: false, writable: true, configurable: true }), t52;
                }
                __name2(r3, "r");
                return (function(t52, e4) {
                  if ("function" != typeof e4 && null !== e4) throw new TypeError("Super expression must either be null or a function");
                  t52.prototype = Object.create(e4 && e4.prototype, { constructor: { value: t52, writable: true, configurable: true } }), Object.defineProperty(t52, "prototype", { writable: false }), e4 && l2(t52, e4);
                })(r3, t42), n222 = r3, (f2 = [{ key: "toString", value: /* @__PURE__ */ __name2(function() {
                  return "".concat(this.name, " [").concat(e3, "]: ").concat(this.message);
                }, "value") }]) && a2(n222.prototype, f2), s22 && a2(n222, s22), Object.defineProperty(n222, "prototype", { writable: false }), n222;
                var n222, f2, s22;
              })(t32);
              return r22;
            }
            __name2(G3, "G");
            function V3(t32, e3, r22) {
              C.set(t32, e3);
              var n222 = G3(r22, t32);
              D[t32] = n222;
            }
            __name2(V3, "V");
            function Z3(t32, e3, r22) {
              var n222 = C.get(t32);
              if ("function" == typeof n222) return H3(n222.length <= e3.length, "Code: ".concat(t32, "; The provided arguments length (").concat(e3.length, ") does not ") + "match the required ones (".concat(n222.length, ").")), A2(n222, r22, e3);
            }
            __name2(Z3, "Z");
            var $2 = B3("kEnhanceStackBeforeInspector");
            function Y3(t32) {
              if (null === t32) return "null";
              if (void 0 === t32) return "undefined";
              switch (o22(t32)) {
                case "bigint":
                  return "type bigint (".concat(t32, "n)");
                case "number":
                  return 0 === t32 ? 1 / t32 == -1 / 0 ? "type number (-0)" : "type number (0)" : t32 != t32 ? "type number (NaN)" : t32 === 1 / 0 ? "type number (Infinity)" : t32 === -1 / 0 ? "type number (-Infinity)" : "type number (".concat(t32, ")");
                case "boolean":
                  return t32 ? "type boolean (true)" : "type boolean (false)";
                case "symbol":
                  return "type symbol (".concat(E2(t32), ")");
                case "function":
                  return "function ".concat(t32.name);
                case "object":
                  return t32.constructor && "name" in t32.constructor ? "an instance of ".concat(t32.constructor.name) : "".concat((U3 = U3 || r2(33)).inspect(t32, { depth: -1 }));
                case "string":
                  return t32.length > 28 && (t32 = "".concat(L3(t32, 0, 25), "...")), -1 === R2(t32, "'") ? "type string ('".concat(t32, "')") : "type string (".concat(x3(t32), ")");
              }
            }
            __name2(Y3, "Y");
            function q3(t32) {
              var e3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "and";
              switch (t32.length) {
                case 0:
                  return "";
                case 1:
                  return "".concat(t32[0]);
                case 2:
                  return "".concat(t32[0], " ").concat(e3, " ").concat(t32[1]);
                case 3:
                  return "".concat(t32[0], ", ").concat(t32[1], ", ").concat(e3, " ").concat(t32[2]);
                default:
                  return "".concat(h23(b2(t32, 0, -1), ", "), ", ").concat(e3, " ").concat(t32[t32.length - 1]);
              }
            }
            __name2(q3, "q");
            t22.exports = { codes: D, determineSpecificType: Y3, E: V3, formatList: q3, getMessage: Z3, hideStackFrames: /* @__PURE__ */ __name2(function(t32) {
              function e3() {
                try {
                  for (var r22 = arguments.length, n222 = new Array(r22), o222 = 0; o222 < r22; o222++) n222[o222] = arguments[o222];
                  return A2(t32, this, n222);
                } catch (t42) {
                  throw S3.stackTraceLimit && P3(t42, e3), t42;
                }
              }
              __name2(e3, "e");
              return e3.withoutStackTrace = t32, e3;
            }, "hideStackFrames"), isStackOverflowError: /* @__PURE__ */ __name2(function(t32) {
              if (void 0 === s2) try {
                var e3 = /* @__PURE__ */ __name2(function() {
                  e3();
                }, "e");
                e3();
              } catch (t42) {
                s2 = t42.message, f = t42.name;
              }
              return t32 && t32.name === f && t32.message === s2;
            }, "isStackOverflowError"), kEnhanceStackBeforeInspector: $2, kIsNodeError: M2, overrideStackTrace: W3 }, V3("ERR_INTERNAL_ASSERTION", function(t32) {
              var e3 = "This is caused by either a bug in Node.js or incorrect usage of Node.js internals.\nPlease open an issue with this stack trace at https://github.com/nodejs/node/issues\n";
              return void 0 === t32 ? e3 : "".concat(t32, "\n").concat(e3);
            }, S3), V3("ERR_INVALID_ARG_TYPE", function(t32, e3, r22) {
              H3("string" == typeof t32, "'name' must be a string"), p(e3) || (e3 = [e3]);
              var o222 = "The ";
              if (k3(t32, " argument")) o222 += "".concat(t32, " ");
              else {
                var a22 = I4(t32, ".") ? "property" : "argument";
                o222 += '"'.concat(t32, '" ').concat(a22, " ");
              }
              o222 += "must be ";
              var i222, c22 = [], u22 = [], l22 = [], f2 = (function(t42, e4) {
                var r3 = "undefined" != typeof Symbol && t42[Symbol.iterator] || t42["@@iterator"];
                if (!r3) {
                  if (Array.isArray(t42) || (r3 = (function(t52, e5) {
                    if (t52) {
                      if ("string" == typeof t52) return n22(t52, e5);
                      var r4 = {}.toString.call(t52).slice(8, -1);
                      return "Object" === r4 && t52.constructor && (r4 = t52.constructor.name), "Map" === r4 || "Set" === r4 ? Array.from(t52) : "Arguments" === r4 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r4) ? n22(t52, e5) : void 0;
                    }
                  })(t42)) || e4 && t42 && "number" == typeof t42.length) {
                    r3 && (t42 = r3);
                    var o3 = 0, a3 = /* @__PURE__ */ __name2(function() {
                    }, "a");
                    return { s: a3, n: /* @__PURE__ */ __name2(function() {
                      return o3 >= t42.length ? { done: true } : { done: false, value: t42[o3++] };
                    }, "n"), e: /* @__PURE__ */ __name2(function(t52) {
                      throw t52;
                    }, "e"), f: a3 };
                  }
                  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
                }
                var i3, c32 = true, u3 = false;
                return { s: /* @__PURE__ */ __name2(function() {
                  r3 = r3.call(t42);
                }, "s"), n: /* @__PURE__ */ __name2(function() {
                  var t52 = r3.next();
                  return c32 = t52.done, t52;
                }, "n"), e: /* @__PURE__ */ __name2(function(t52) {
                  u3 = true, i3 = t52;
                }, "e"), f: /* @__PURE__ */ __name2(function() {
                  try {
                    c32 || null == r3.return || r3.return();
                  } finally {
                    if (u3) throw i3;
                  }
                }, "f") };
              })(e3);
              try {
                for (f2.s(); !(i222 = f2.n()).done; ) {
                  var s22 = i222.value;
                  H3("string" == typeof s22, "All expected entries have to be of type string"), g(F, s22) ? d(c22, T3(s22)) : null !== O3(N3, s22) ? d(u22, s22) : (H3("object" !== s22, 'The value "object" should be written as "Object"'), d(l22, s22));
                }
              } catch (t42) {
                f2.e(t42);
              } finally {
                f2.f();
              }
              if (u22.length > 0) {
                var y22 = v2(c22, "object");
                -1 !== y22 && (m2(c22, y22, 1), d(u22, "Object"));
              }
              return c22.length > 0 && (o222 += "".concat(c22.length > 1 ? "one of type" : "of type", " ").concat(q3(c22, "or")), (u22.length > 0 || l22.length > 0) && (o222 += " or ")), u22.length > 0 && (o222 += "an instance of ".concat(q3(u22, "or")), l22.length > 0 && (o222 += " or ")), l22.length > 0 && (l22.length > 1 ? o222 += "one of ".concat(q3(l22, "or")) : (T3(l22[0]) !== l22[0] && (o222 += "an "), o222 += "".concat(l22[0]))), o222 + ". Received ".concat(Y3(r22));
            }, z4);
          } }, e2 = {};
          return (/* @__PURE__ */ __name2(function r2(n22) {
            var o22 = e2[n22];
            if (void 0 !== o22) return o22.exports;
            var a2 = e2[n22] = { exports: {} };
            return t9[n22](a2, a2.exports, r2), a2.exports;
          }, "r"))(33);
        })());
      }
    });
    var src_exports = {};
    __export22(src_exports, {
      AbortError: () => AbortError3,
      AsyncEventEmitter: () => AsyncEventEmitter
    });
    module2.exports = __toCommonJS22(src_exports);
    init_cjs_shims();
    init_cjs_shims();
    var import_inspect = __toESM22(require_inspect(), 1);
    var {
      // The commented out things are not visible from normal node's util.
      // identicalSequenceRange,
      inspect: inspect2,
      // inspectDefaultOptions,
      format,
      formatWithOptions,
      // getStringWidth,
      stripVTControlCharacters,
      // isZeroWidthCodePoint,
      stylizeWithColor,
      stylizeWithHTML,
      Proxy: Proxy2
    } = import_inspect.default;
    function validateListener(input) {
      if (typeof input !== "function") {
        throw new TypeError(`The listener argument must be a function. Received ${typeof input}`);
      }
    }
    __name2(validateListener, "validateListener");
    function validateAbortSignal(input) {
      if (input && !(input instanceof AbortSignal)) {
        throw new TypeError(`The signal option must be an AbortSignal. Received ${input}`);
      }
    }
    __name2(validateAbortSignal, "validateAbortSignal");
    function spliceOne(list, index) {
      for (; index + 1 < list.length; index++) {
        list[index] = list[index + 1];
      }
      list.pop();
    }
    __name2(spliceOne, "spliceOne");
    function arrayClone(arr) {
      switch (arr.length) {
        case 2:
          return [arr[0], arr[1]];
        case 3:
          return [arr[0], arr[1], arr[2]];
        case 4:
          return [arr[0], arr[1], arr[2], arr[3]];
        case 5:
          return [arr[0], arr[1], arr[2], arr[3], arr[4]];
        case 6:
          return [arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]];
      }
      return arr.slice();
    }
    __name2(arrayClone, "arrayClone");
    function identicalSequenceRange(a2, b2) {
      for (let i22 = 0; i22 < a2.length - 3; i22++) {
        const pos = b2.indexOf(a2[i22]);
        if (pos !== -1) {
          const rest = b2.length - pos;
          if (rest > 3) {
            let len = 1;
            const maxLen = Math.min(a2.length - i22, rest);
            while (maxLen > len && a2[i22 + len] === b2[pos + len]) {
              len++;
            }
            if (len > 3) {
              return [len, i22];
            }
          }
        }
      }
      return [0, 0];
    }
    __name2(identicalSequenceRange, "identicalSequenceRange");
    function enhanceStackTrace(err2, own) {
      let ctorInfo = "";
      try {
        const { name: name2 } = this.constructor;
        if (name2 !== "AsyncEventEmitter") ctorInfo = ` on ${name2} instance`;
      } catch {
      }
      const sep = `
Emitted 'error' event${ctorInfo} at:
`;
      const errStack = err2.stack.split("\n").slice(1);
      const ownStack = own.stack.split("\n").slice(1);
      const { 0: len, 1: off } = identicalSequenceRange(ownStack, errStack);
      if (len > 0) {
        ownStack.splice(off + 1, len - 2, "    [... lines matching original stack trace ...]");
      }
      return err2.stack + sep + ownStack.join("\n");
    }
    __name2(enhanceStackTrace, "enhanceStackTrace");
    var brandSymbol = Symbol.for("async-event-emitter.ts-brand");
    var kCapturePromiseRejections = Symbol.for("async-event-emitter.ts-capture-promise-rejections");
    var _a22;
    brandSymbol, _a22 = kCapturePromiseRejections;
    var _AsyncEventEmitter = class _AsyncEventEmitter2 {
      constructor() {
        this._events = {
          __proto__: null
        };
        this._eventCount = 0;
        this._maxListeners = 10;
        this._internalPromiseMap = /* @__PURE__ */ new Map();
        this._wrapperId = 0n;
        this[_a22] = true;
      }
      addListener(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, false);
        this._addListener(eventName, wrapped, false);
        return this;
      }
      on(eventName, listener) {
        return this.addListener(eventName, listener);
      }
      once(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, true);
        this._addListener(eventName, wrapped, false);
        return this;
      }
      removeListener(eventName, listener) {
        validateListener(listener);
        const events = this._events;
        const eventList = events[eventName];
        if (eventList === void 0) {
          return this;
        }
        if (eventList === listener || eventList.listener === listener) {
          if (--this._eventCount === 0) {
            this._events = { __proto__: null };
          } else {
            delete events[eventName];
            if (events.removeListener) {
              this.emit(
                "removeListener",
                eventName,
                eventList.listener ?? eventList
              );
            }
          }
        } else if (typeof eventList !== "function") {
          let position = -1;
          for (let i22 = eventList.length - 1; i22 >= 0; i22--) {
            if (eventList[i22] === listener || eventList[i22].listener === listener) {
              position = i22;
              break;
            }
          }
          if (position < 0) {
            return this;
          }
          if (position === 0) {
            eventList.shift();
          } else {
            spliceOne(eventList, position);
          }
          if (eventList.length === 0) {
            delete events[eventName];
            --this._eventCount;
          }
          if (events.removeListener !== void 0) {
            this.emit("removeListener", eventName, listener);
          }
        }
        return this;
      }
      off(eventName, listener) {
        return this.removeListener(eventName, listener);
      }
      removeAllListeners(event) {
        const events = this._events;
        if (events.removeListener === void 0) {
          if (!event) {
            this._events = { __proto__: null };
            this._eventCount = 0;
          } else if (events[event] !== void 0) {
            if (--this._eventCount === 0) {
              this._events = { __proto__: null };
            } else {
              delete events[event];
            }
          }
          return this;
        }
        if (!event) {
          for (const key of Reflect.ownKeys(events)) {
            if (key === "removeListener") {
              continue;
            }
            this.removeAllListeners(key);
          }
          this.removeAllListeners("removeListener");
          this._events = { __proto__: null };
          this._eventCount = 0;
          return this;
        }
        const listeners = events[event];
        if (typeof listeners === "function") {
          this.removeListener(event, listeners);
        } else if (listeners !== void 0) {
          for (let i22 = listeners.length - 1; i22 >= 0; i22--) {
            this.removeListener(event, listeners[i22]);
          }
        }
        return this;
      }
      setMaxListeners(n22) {
        if (typeof n22 !== "number" || n22 < 0 || Number.isNaN(n22)) {
          throw new RangeError(`Expected to get a non-negative number for "setMaxListeners", got ${n22} instead`);
        }
        this._maxListeners = n22;
        return this;
      }
      getMaxListeners() {
        return this._maxListeners;
      }
      listeners(eventName) {
        const eventList = this._events[eventName];
        if (eventList === void 0) {
          return [];
        }
        if (typeof eventList === "function") {
          return [eventList.listener ?? eventList];
        }
        const ret = arrayClone(eventList);
        for (let i22 = 0; i22 < ret.length; ++i22) {
          const orig = ret[i22].listener;
          if (typeof orig === "function") {
            ret[i22] = orig;
          }
        }
        return ret;
      }
      rawListeners(eventName) {
        const eventList = this._events[eventName];
        if (eventList === void 0) {
          return [];
        }
        if (typeof eventList === "function") {
          return [eventList];
        }
        return arrayClone(eventList);
      }
      emit(eventName, ...args) {
        let doError = eventName === "error";
        const events = this._events;
        if (events !== void 0) {
          doError = doError && events.error === void 0;
        } else if (!doError) {
          return false;
        }
        if (doError) {
          let er3;
          if (args.length > 0) {
            er3 = args[0];
          }
          if (er3 instanceof Error) {
            try {
              const capture = {};
              Error.captureStackTrace(capture, _AsyncEventEmitter2.prototype.emit);
              Object.defineProperty(er3, "stack", {
                value: enhanceStackTrace.call(this, er3, capture),
                configurable: true
              });
            } catch {
            }
            throw er3;
          }
          let stringifiedError;
          try {
            stringifiedError = inspect2(er3);
          } catch {
            stringifiedError = String(er3);
          }
          const err2 = new Error(`Unhandled 'error' event emitted, received ${stringifiedError}`);
          err2.context = er3;
          throw err2;
        }
        const handlers2 = events[eventName];
        if (handlers2 === void 0) {
          return false;
        }
        if (typeof handlers2 === "function") {
          const result = handlers2.apply(this, args);
          if (result !== void 0 && result !== null) {
            handleMaybeAsync(this, result);
          }
        } else {
          const len = handlers2.length;
          const listeners = arrayClone(handlers2);
          for (let i22 = 0; i22 < len; ++i22) {
            const result = listeners[i22].apply(this, args);
            if (result !== void 0 && result !== null) {
              handleMaybeAsync(this, result);
            }
          }
        }
        return true;
      }
      listenerCount(eventName) {
        const events = this._events;
        if (events === void 0) {
          return 0;
        }
        const eventListeners = events[eventName];
        if (typeof eventListeners === "function") {
          return 1;
        }
        return eventListeners?.length ?? 0;
      }
      prependListener(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, false);
        this._addListener(eventName, wrapped, true);
        return this;
      }
      prependOnceListener(eventName, listener) {
        validateListener(listener);
        const wrapped = this._wrapListener(eventName, listener, true);
        this._addListener(eventName, wrapped, true);
        return this;
      }
      eventNames() {
        return this._eventCount > 0 ? Reflect.ownKeys(this._events) : [];
      }
      async waitForAllListenersToComplete() {
        const promises = [...this._internalPromiseMap.values()];
        if (promises.length === 0) {
          return false;
        }
        await Promise.all(promises);
        return true;
      }
      _addListener(eventName, wrappedListener, prepend) {
        if (this._events.newListener !== void 0) {
          this.emit(
            "newListener",
            eventName,
            wrappedListener.listener ?? wrappedListener
          );
        }
        let existing = this._events[eventName];
        if (existing === void 0) {
          existing = this._events[eventName] = wrappedListener;
          ++this._eventCount;
        } else if (typeof existing === "function") {
          existing = this._events[eventName] = prepend ? [wrappedListener, existing] : [existing, wrappedListener];
        } else if (prepend) {
          existing.unshift(wrappedListener);
        } else {
          existing.push(wrappedListener);
        }
        const existingWarnedAboutMaxListeners = Reflect.get(existing, "_hasWarnedAboutMaxListeners");
        if (this._maxListeners > 0 && existing.length > this._maxListeners && !existingWarnedAboutMaxListeners) {
          Reflect.set(existing, "_hasWarnedAboutMaxListeners", true);
          const warningMessage = [
            `Possible AsyncEventEmitter memory leak detected. ${existing.length} ${String(
              eventName
            )} listeners added to ${this.constructor.name}.`,
            `Use emitter.setMaxListeners() to increase the limit.`
          ].join(" ");
          console.warn(warningMessage);
        }
      }
      _wrapListener(eventName, listener, once) {
        if (!once) {
          return listener;
        }
        const state = {
          fired: false,
          wrapFn: void 0,
          eventEmitter: this,
          eventName,
          listener
        };
        const aliased = onceWrapper;
        const wrapped = aliased.bind(state);
        wrapped.listener = listener;
        state.wrapFn = wrapped;
        return wrapped;
      }
      static listenerCount(emitter, eventName) {
        return emitter.listenerCount(eventName);
      }
      static async once(emitter, eventName, options = {}) {
        const signal = options?.signal;
        validateAbortSignal(signal);
        if (signal?.aborted) {
          throw new AbortError3(void 0, { cause: getReason(signal) });
        }
        return new Promise((resolve2, reject) => {
          const errorListener = /* @__PURE__ */ __name2((err2) => {
            emitter.removeListener(eventName, resolver);
            if (signal) {
              eventTargetAgnosticRemoveListener(emitter, eventName, abortListener);
            }
            reject(err2);
          }, "errorListener");
          const resolver = /* @__PURE__ */ __name2((...args) => {
            emitter.removeListener("error", errorListener);
            if (signal) {
              eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
            }
            resolve2(args);
          }, "resolver");
          emitter.once(eventName, resolver);
          if (eventName !== "error") {
            emitter.once("error", errorListener);
          }
          const abortListener = /* @__PURE__ */ __name2(() => {
            eventTargetAgnosticRemoveListener(emitter, eventName, resolver);
            eventTargetAgnosticRemoveListener(emitter, "error", errorListener);
            reject(new AbortError3(void 0, { cause: getReason(signal) }));
          }, "abortListener");
          if (signal) {
            eventTargetAgnosticAddListener(signal, "abort", abortListener, { once: true });
          }
        });
      }
      static on(emitter, eventName, options = {}) {
        const signal = options?.signal;
        validateAbortSignal(signal);
        if (signal?.aborted) {
          throw new AbortError3(void 0, { cause: getReason(signal) });
        }
        const unconsumedEvents = [];
        const unconsumedPromises = [];
        let error = null;
        let finished2 = false;
        const abortListener = /* @__PURE__ */ __name2(() => {
          errorHandler(new AbortError3(void 0, { cause: getReason(signal) }));
        }, "abortListener");
        const eventHandler = /* @__PURE__ */ __name2((...args) => {
          const promise = unconsumedPromises.shift();
          if (promise) {
            promise.resolve(createIterResult(args, false));
          } else {
            unconsumedEvents.push(args);
          }
        }, "eventHandler");
        const errorHandler = /* @__PURE__ */ __name2((err2) => {
          finished2 = true;
          const toError = unconsumedPromises.shift();
          if (toError) {
            toError.reject(err2);
          } else {
            error = err2;
          }
          void iterator2.return();
        }, "errorHandler");
        const iterator2 = Object.setPrototypeOf(
          {
            next() {
              const value = unconsumedEvents.shift();
              if (value) {
                return Promise.resolve(createIterResult(value, false));
              }
              if (error) {
                const p = Promise.reject(error);
                error = null;
                return p;
              }
              if (finished2) {
                return Promise.resolve(createIterResult(void 0, true));
              }
              return new Promise((resolve2, reject) => {
                unconsumedPromises.push({ resolve: resolve2, reject });
              });
            },
            return() {
              emitter.off(eventName, eventHandler);
              emitter.off("error", errorHandler);
              if (signal) {
                eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
              }
              finished2 = true;
              const doneResult = createIterResult(void 0, true);
              for (const promise of unconsumedPromises) {
                promise.resolve(doneResult);
              }
              return Promise.resolve(doneResult);
            },
            throw(err2) {
              if (!err2 || !(err2 instanceof Error)) {
                throw new TypeError(
                  `Expected Error instance to be thrown in AsyncEventEmitter.AsyncIterator. Got ${err2}`
                );
              }
              error = err2;
              emitter.off(eventName, eventHandler);
              emitter.off("error", errorHandler);
            },
            [Symbol.asyncIterator]() {
              return this;
            }
          },
          AsyncIteratorPrototype
        );
        emitter.on(eventName, eventHandler);
        if (eventName !== "error") {
          emitter.on("error", errorHandler);
        }
        if (signal) {
          eventTargetAgnosticAddListener(signal, "abort", abortListener);
        }
        return iterator2;
      }
    };
    __name2(_AsyncEventEmitter, "AsyncEventEmitter");
    var AsyncEventEmitter = _AsyncEventEmitter;
    function onceWrapper() {
      if (!this.fired) {
        this.eventEmitter.removeListener(this.eventName, this.wrapFn);
        this.fired = true;
        if (arguments.length === 0) {
          return this.listener.call(this.eventEmitter);
        }
        return this.listener.apply(this.eventEmitter, arguments);
      }
    }
    __name2(onceWrapper, "onceWrapper");
    function getReason(signal) {
      return signal?.reason;
    }
    __name2(getReason, "getReason");
    function eventTargetAgnosticRemoveListener(emitter, name2, listener, flags) {
      if (typeof emitter.off === "function") {
        emitter.off(name2, listener);
      } else if (typeof emitter.removeEventListener === "function") {
        emitter.removeEventListener(name2, listener, flags);
      }
    }
    __name2(eventTargetAgnosticRemoveListener, "eventTargetAgnosticRemoveListener");
    function eventTargetAgnosticAddListener(emitter, name2, listener, flags) {
      if (typeof emitter.on === "function") {
        if (flags?.once) {
          emitter.once(name2, listener);
        } else {
          emitter.on(name2, listener);
        }
      } else if (typeof emitter.addEventListener === "function") {
        emitter.addEventListener(name2, listener, flags);
      }
    }
    __name2(eventTargetAgnosticAddListener, "eventTargetAgnosticAddListener");
    var AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () {
    }).prototype);
    function createIterResult(value, done) {
      return { value, done };
    }
    __name2(createIterResult, "createIterResult");
    var _AbortError = class _AbortError extends Error {
      constructor(message = "The operation was aborted", options = void 0) {
        if (options !== void 0 && typeof options !== "object") {
          throw new TypeError(`Failed to create AbortError: options is not an object or undefined`);
        }
        super(message, options);
        this.code = "ABORT_ERR";
        this.name = "AbortError";
      }
    };
    __name2(_AbortError, "AbortError");
    var AbortError3 = _AbortError;
    function handleMaybeAsync(emitter, result) {
      if (!emitter[kCapturePromiseRejections]) {
        return;
      }
      try {
        const the = result.then;
        const fin = result.finally;
        let handledPromise = result;
        if (typeof the === "function") {
          handledPromise = the.call(result, void 0, (error) => {
            emitErrorFromRejectionHandler(emitter, error);
          });
        }
        if (typeof fin === "function") {
          const promiseId = String(++emitter["_wrapperId"]);
          emitter["_internalPromiseMap"].set(promiseId, result);
          fin.call(handledPromise, /* @__PURE__ */ __name2(function final() {
            emitter["_internalPromiseMap"].delete(promiseId);
          }, "final"));
        }
      } catch (err2) {
        emitter.emit("error", err2);
      }
    }
    __name2(handleMaybeAsync, "handleMaybeAsync");
    function emitErrorFromRejectionHandler(emitter, error) {
      setTimeout(() => {
        try {
          emitter[kCapturePromiseRejections] = false;
          emitter.emit("error", error);
        } finally {
          emitter[kCapturePromiseRejections] = true;
        }
      }, 0);
    }
    __name2(emitErrorFromRejectionHandler, "emitErrorFromRejectionHandler");
  }
});
var require_event_manager = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/event_manager.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.EventManager = exports2.EventType = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var async_event_emitter_1 = require_dist3();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var EventType2;
    (function(EventType3) {
      EventType3["PERSIST_STATE"] = "persistState";
      EventType3["SYSTEM_INFO"] = "systemInfo";
      EventType3["MIGRATING"] = "migrating";
      EventType3["ABORTING"] = "aborting";
      EventType3["EXIT"] = "exit";
    })(EventType2 || (exports2.EventType = EventType2 = {}));
    var EventManager3 = class {
      constructor(config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_event_emitter_1.AsyncEventEmitter()
        });
        Object.defineProperty(this, "initialized", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "intervals", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.default.child({ prefix: "Events" })
        });
        this.events.setMaxListeners(50);
      }
      /**
       * Initializes the event manager by creating the `persistState` event interval.
       * This is automatically called at the beginning of `crawler.run()`.
       */
      async init() {
        if (this.initialized) {
          return;
        }
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        this.intervals.persistState = (0, utilities_1.betterSetInterval)((intervalCallback) => {
          this.emit("persistState", { isMigrating: false });
          intervalCallback();
        }, persistStateIntervalMillis);
        this.initialized = true;
      }
      /**
       * Clears the internal `persistState` event interval.
       * This is automatically called at the end of `crawler.run()`.
       */
      async close() {
        if (!this.initialized) {
          return;
        }
        (0, utilities_1.betterClearInterval)(this.intervals.persistState);
        this.initialized = false;
        this.emit("persistState", { isMigrating: false });
        await this.waitForAllListenersToComplete();
      }
      on(event, listener) {
        this.events.on(event, listener);
      }
      off(event, listener) {
        if (listener) {
          this.events.removeListener(event, listener);
        } else {
          this.events.removeAllListeners(event);
        }
      }
      emit(event, ...args) {
        this.events.emit(event, ...args);
      }
      isInitialized() {
        return this.initialized;
      }
      /**
       * @internal
       */
      listenerCount(event) {
        return this.events.listenerCount(event);
      }
      /**
       * @internal
       */
      listeners(event) {
        return this.events.listeners(event);
      }
      /**
       * @internal
       */
      async waitForAllListenersToComplete() {
        return this.events.waitForAllListenersToComplete();
      }
    };
    exports2.EventManager = EventManager3;
  }
});
var require_blocked = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/blocked.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ROTATE_PROXY_ERRORS = exports2.RETRY_CSS_SELECTORS = exports2.CLOUDFLARE_RETRY_CSS_SELECTORS = void 0;
    exports2.CLOUDFLARE_RETRY_CSS_SELECTORS = ['#turnstile-wrapper iframe[src^="https://challenges.cloudflare.com"]'];
    exports2.RETRY_CSS_SELECTORS = [
      ...exports2.CLOUDFLARE_RETRY_CSS_SELECTORS,
      'div#infoDiv0 a[href*="//www.google.com/policies/terms/"]',
      'iframe[src*="_Incapsula_Resource"]'
    ];
    exports2.ROTATE_PROXY_ERRORS = [
      "ECONNRESET",
      "ECONNREFUSED",
      "ERR_PROXY_CONNECTION_FAILED",
      "ERR_TUNNEL_CONNECTION_FAILED",
      "Proxy responded with"
    ];
  }
});
var require_types = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/types.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
  }
});
var require_options = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/options.js"(exports2) {
    "use strict";
    var __assign2 = exports2 && exports2.__assign || function() {
      __assign2 = Object.assign || function(t9) {
        for (var s2, i22 = 1, n22 = arguments.length; i22 < n22; i22++) {
          s2 = arguments[i22];
          for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p))
            t9[p] = s2[p];
        }
        return t9;
      };
      return __assign2.apply(this, arguments);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.flatten = void 0;
    var defaultOpts2 = {
      xml: false,
      decodeEntities: true
    };
    exports2.default = defaultOpts2;
    var xmlModeDefault = {
      _useHtmlParser2: true,
      xmlMode: true
    };
    function flatten2(options) {
      return (options === null || options === void 0 ? void 0 : options.xml) ? typeof options.xml === "boolean" ? xmlModeDefault : __assign2(__assign2({}, xmlModeDefault), options.xml) : options !== null && options !== void 0 ? options : void 0;
    }
    exports2.flatten = flatten2;
  }
});
var require_lib3 = __commonJS2({
  "../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Doctype = exports2.CDATA = exports2.Tag = exports2.Style = exports2.Script = exports2.Comment = exports2.Directive = exports2.Text = exports2.Root = exports2.isTag = exports2.ElementType = void 0;
    var ElementType2;
    (function(ElementType22) {
      ElementType22["Root"] = "root";
      ElementType22["Text"] = "text";
      ElementType22["Directive"] = "directive";
      ElementType22["Comment"] = "comment";
      ElementType22["Script"] = "script";
      ElementType22["Style"] = "style";
      ElementType22["Tag"] = "tag";
      ElementType22["CDATA"] = "cdata";
      ElementType22["Doctype"] = "doctype";
    })(ElementType2 = exports2.ElementType || (exports2.ElementType = {}));
    function isTag3(elem) {
      return elem.type === ElementType2.Tag || elem.type === ElementType2.Script || elem.type === ElementType2.Style;
    }
    exports2.isTag = isTag3;
    exports2.Root = ElementType2.Root;
    exports2.Text = ElementType2.Text;
    exports2.Directive = ElementType2.Directive;
    exports2.Comment = ElementType2.Comment;
    exports2.Script = ElementType2.Script;
    exports2.Style = ElementType2.Style;
    exports2.Tag = ElementType2.Tag;
    exports2.CDATA = ElementType2.CDATA;
    exports2.Doctype = ElementType2.Doctype;
  }
});
var require_node = __commonJS2({
  "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js"(exports2) {
    "use strict";
    var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() {
      var extendStatics2 = function(d, b2) {
        extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b22) {
          d2.__proto__ = b22;
        } || function(d2, b22) {
          for (var p in b22) if (Object.prototype.hasOwnProperty.call(b22, p)) d2[p] = b22[p];
        };
        return extendStatics2(d, b2);
      };
      return function(d, b2) {
        if (typeof b2 !== "function" && b2 !== null)
          throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
        extendStatics2(d, b2);
        function __() {
          this.constructor = d;
        }
        d.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
      };
    })();
    var __assign2 = exports2 && exports2.__assign || function() {
      __assign2 = Object.assign || function(t9) {
        for (var s2, i22 = 1, n22 = arguments.length; i22 < n22; i22++) {
          s2 = arguments[i22];
          for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p))
            t9[p] = s2[p];
        }
        return t9;
      };
      return __assign2.apply(this, arguments);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.cloneNode = exports2.hasChildren = exports2.isDocument = exports2.isDirective = exports2.isComment = exports2.isText = exports2.isCDATA = exports2.isTag = exports2.Element = exports2.Document = exports2.CDATA = exports2.NodeWithChildren = exports2.ProcessingInstruction = exports2.Comment = exports2.Text = exports2.DataNode = exports2.Node = void 0;
    var domelementtype_1 = require_lib3();
    var Node2 = (
      /** @class */
      (function() {
        function Node22() {
          this.parent = null;
          this.prev = null;
          this.next = null;
          this.startIndex = null;
          this.endIndex = null;
        }
        Object.defineProperty(Node22.prototype, "parentNode", {
          // Read-write aliases for properties
          /**
           * Same as {@link parent}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.parent;
          },
          set: function(parent) {
            this.parent = parent;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Node22.prototype, "previousSibling", {
          /**
           * Same as {@link prev}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.prev;
          },
          set: function(prev) {
            this.prev = prev;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Node22.prototype, "nextSibling", {
          /**
           * Same as {@link next}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.next;
          },
          set: function(next) {
            this.next = next;
          },
          enumerable: false,
          configurable: true
        });
        Node22.prototype.cloneNode = function(recursive) {
          if (recursive === void 0) {
            recursive = false;
          }
          return cloneNode2(this, recursive);
        };
        return Node22;
      })()
    );
    exports2.Node = Node2;
    var DataNode2 = (
      /** @class */
      (function(_super) {
        __extends2(DataNode22, _super);
        function DataNode22(data) {
          var _this = _super.call(this) || this;
          _this.data = data;
          return _this;
        }
        Object.defineProperty(DataNode22.prototype, "nodeValue", {
          /**
           * Same as {@link data}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.data;
          },
          set: function(data) {
            this.data = data;
          },
          enumerable: false,
          configurable: true
        });
        return DataNode22;
      })(Node2)
    );
    exports2.DataNode = DataNode2;
    var Text4 = (
      /** @class */
      (function(_super) {
        __extends2(Text22, _super);
        function Text22() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.Text;
          return _this;
        }
        Object.defineProperty(Text22.prototype, "nodeType", {
          get: function() {
            return 3;
          },
          enumerable: false,
          configurable: true
        });
        return Text22;
      })(DataNode2)
    );
    exports2.Text = Text4;
    var Comment3 = (
      /** @class */
      (function(_super) {
        __extends2(Comment22, _super);
        function Comment22() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.Comment;
          return _this;
        }
        Object.defineProperty(Comment22.prototype, "nodeType", {
          get: function() {
            return 8;
          },
          enumerable: false,
          configurable: true
        });
        return Comment22;
      })(DataNode2)
    );
    exports2.Comment = Comment3;
    var ProcessingInstruction2 = (
      /** @class */
      (function(_super) {
        __extends2(ProcessingInstruction22, _super);
        function ProcessingInstruction22(name2, data) {
          var _this = _super.call(this, data) || this;
          _this.name = name2;
          _this.type = domelementtype_1.ElementType.Directive;
          return _this;
        }
        Object.defineProperty(ProcessingInstruction22.prototype, "nodeType", {
          get: function() {
            return 1;
          },
          enumerable: false,
          configurable: true
        });
        return ProcessingInstruction22;
      })(DataNode2)
    );
    exports2.ProcessingInstruction = ProcessingInstruction2;
    var NodeWithChildren2 = (
      /** @class */
      (function(_super) {
        __extends2(NodeWithChildren22, _super);
        function NodeWithChildren22(children) {
          var _this = _super.call(this) || this;
          _this.children = children;
          return _this;
        }
        Object.defineProperty(NodeWithChildren22.prototype, "firstChild", {
          // Aliases
          /** First child of the node. */
          get: function() {
            var _a22;
            return (_a22 = this.children[0]) !== null && _a22 !== void 0 ? _a22 : null;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(NodeWithChildren22.prototype, "lastChild", {
          /** Last child of the node. */
          get: function() {
            return this.children.length > 0 ? this.children[this.children.length - 1] : null;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(NodeWithChildren22.prototype, "childNodes", {
          /**
           * Same as {@link children}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.children;
          },
          set: function(children) {
            this.children = children;
          },
          enumerable: false,
          configurable: true
        });
        return NodeWithChildren22;
      })(Node2)
    );
    exports2.NodeWithChildren = NodeWithChildren2;
    var CDATA3 = (
      /** @class */
      (function(_super) {
        __extends2(CDATA22, _super);
        function CDATA22() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.CDATA;
          return _this;
        }
        Object.defineProperty(CDATA22.prototype, "nodeType", {
          get: function() {
            return 4;
          },
          enumerable: false,
          configurable: true
        });
        return CDATA22;
      })(NodeWithChildren2)
    );
    exports2.CDATA = CDATA3;
    var Document2 = (
      /** @class */
      (function(_super) {
        __extends2(Document22, _super);
        function Document22() {
          var _this = _super !== null && _super.apply(this, arguments) || this;
          _this.type = domelementtype_1.ElementType.Root;
          return _this;
        }
        Object.defineProperty(Document22.prototype, "nodeType", {
          get: function() {
            return 9;
          },
          enumerable: false,
          configurable: true
        });
        return Document22;
      })(NodeWithChildren2)
    );
    exports2.Document = Document2;
    var Element2 = (
      /** @class */
      (function(_super) {
        __extends2(Element22, _super);
        function Element22(name2, attribs, children, type) {
          if (children === void 0) {
            children = [];
          }
          if (type === void 0) {
            type = name2 === "script" ? domelementtype_1.ElementType.Script : name2 === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag;
          }
          var _this = _super.call(this, children) || this;
          _this.name = name2;
          _this.attribs = attribs;
          _this.type = type;
          return _this;
        }
        Object.defineProperty(Element22.prototype, "nodeType", {
          get: function() {
            return 1;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Element22.prototype, "tagName", {
          // DOM Level 1 aliases
          /**
           * Same as {@link name}.
           * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
           */
          get: function() {
            return this.name;
          },
          set: function(name2) {
            this.name = name2;
          },
          enumerable: false,
          configurable: true
        });
        Object.defineProperty(Element22.prototype, "attributes", {
          get: function() {
            var _this = this;
            return Object.keys(this.attribs).map(function(name2) {
              var _a22, _b2;
              return {
                name: name2,
                value: _this.attribs[name2],
                namespace: (_a22 = _this["x-attribsNamespace"]) === null || _a22 === void 0 ? void 0 : _a22[name2],
                prefix: (_b2 = _this["x-attribsPrefix"]) === null || _b2 === void 0 ? void 0 : _b2[name2]
              };
            });
          },
          enumerable: false,
          configurable: true
        });
        return Element22;
      })(NodeWithChildren2)
    );
    exports2.Element = Element2;
    function isTag3(node) {
      return (0, domelementtype_1.isTag)(node);
    }
    exports2.isTag = isTag3;
    function isCDATA2(node) {
      return node.type === domelementtype_1.ElementType.CDATA;
    }
    exports2.isCDATA = isCDATA2;
    function isText2(node) {
      return node.type === domelementtype_1.ElementType.Text;
    }
    exports2.isText = isText2;
    function isComment2(node) {
      return node.type === domelementtype_1.ElementType.Comment;
    }
    exports2.isComment = isComment2;
    function isDirective2(node) {
      return node.type === domelementtype_1.ElementType.Directive;
    }
    exports2.isDirective = isDirective2;
    function isDocument2(node) {
      return node.type === domelementtype_1.ElementType.Root;
    }
    exports2.isDocument = isDocument2;
    function hasChildren2(node) {
      return Object.prototype.hasOwnProperty.call(node, "children");
    }
    exports2.hasChildren = hasChildren2;
    function cloneNode2(node, recursive) {
      if (recursive === void 0) {
        recursive = false;
      }
      var result;
      if (isText2(node)) {
        result = new Text4(node.data);
      } else if (isComment2(node)) {
        result = new Comment3(node.data);
      } else if (isTag3(node)) {
        var children = recursive ? cloneChildren2(node.children) : [];
        var clone_1 = new Element2(node.name, __assign2({}, node.attribs), children);
        children.forEach(function(child) {
          return child.parent = clone_1;
        });
        if (node.namespace != null) {
          clone_1.namespace = node.namespace;
        }
        if (node["x-attribsNamespace"]) {
          clone_1["x-attribsNamespace"] = __assign2({}, node["x-attribsNamespace"]);
        }
        if (node["x-attribsPrefix"]) {
          clone_1["x-attribsPrefix"] = __assign2({}, node["x-attribsPrefix"]);
        }
        result = clone_1;
      } else if (isCDATA2(node)) {
        var children = recursive ? cloneChildren2(node.children) : [];
        var clone_2 = new CDATA3(children);
        children.forEach(function(child) {
          return child.parent = clone_2;
        });
        result = clone_2;
      } else if (isDocument2(node)) {
        var children = recursive ? cloneChildren2(node.children) : [];
        var clone_3 = new Document2(children);
        children.forEach(function(child) {
          return child.parent = clone_3;
        });
        if (node["x-mode"]) {
          clone_3["x-mode"] = node["x-mode"];
        }
        result = clone_3;
      } else if (isDirective2(node)) {
        var instruction = new ProcessingInstruction2(node.name, node.data);
        if (node["x-name"] != null) {
          instruction["x-name"] = node["x-name"];
          instruction["x-publicId"] = node["x-publicId"];
          instruction["x-systemId"] = node["x-systemId"];
        }
        result = instruction;
      } else {
        throw new Error("Not implemented yet: ".concat(node.type));
      }
      result.startIndex = node.startIndex;
      result.endIndex = node.endIndex;
      if (node.sourceCodeLocation != null) {
        result.sourceCodeLocation = node.sourceCodeLocation;
      }
      return result;
    }
    exports2.cloneNode = cloneNode2;
    function cloneChildren2(childs) {
      var children = childs.map(function(child) {
        return cloneNode2(child, true);
      });
      for (var i22 = 1; i22 < children.length; i22++) {
        children[i22].prev = children[i22 - 1];
        children[i22 - 1].next = children[i22];
      }
      return children;
    }
  }
});
var require_lib4 = __commonJS2({
  "../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __exportStar2 = exports2 && exports2.__exportStar || function(m2, exports22) {
      for (var p in m2) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports22, p)) __createBinding2(exports22, m2, p);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DomHandler = void 0;
    var domelementtype_1 = require_lib3();
    var node_js_1 = require_node();
    __exportStar2(require_node(), exports2);
    var defaultOpts2 = {
      withStartIndices: false,
      withEndIndices: false,
      xmlMode: false
    };
    var DomHandler2 = (
      /** @class */
      (function() {
        function DomHandler22(callback, options, elementCB) {
          this.dom = [];
          this.root = new node_js_1.Document(this.dom);
          this.done = false;
          this.tagStack = [this.root];
          this.lastNode = null;
          this.parser = null;
          if (typeof options === "function") {
            elementCB = options;
            options = defaultOpts2;
          }
          if (typeof callback === "object") {
            options = callback;
            callback = void 0;
          }
          this.callback = callback !== null && callback !== void 0 ? callback : null;
          this.options = options !== null && options !== void 0 ? options : defaultOpts2;
          this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
        }
        DomHandler22.prototype.onparserinit = function(parser) {
          this.parser = parser;
        };
        DomHandler22.prototype.onreset = function() {
          this.dom = [];
          this.root = new node_js_1.Document(this.dom);
          this.done = false;
          this.tagStack = [this.root];
          this.lastNode = null;
          this.parser = null;
        };
        DomHandler22.prototype.onend = function() {
          if (this.done)
            return;
          this.done = true;
          this.parser = null;
          this.handleCallback(null);
        };
        DomHandler22.prototype.onerror = function(error) {
          this.handleCallback(error);
        };
        DomHandler22.prototype.onclosetag = function() {
          this.lastNode = null;
          var elem = this.tagStack.pop();
          if (this.options.withEndIndices) {
            elem.endIndex = this.parser.endIndex;
          }
          if (this.elementCB)
            this.elementCB(elem);
        };
        DomHandler22.prototype.onopentag = function(name2, attribs) {
          var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : void 0;
          var element = new node_js_1.Element(name2, attribs, void 0, type);
          this.addNode(element);
          this.tagStack.push(element);
        };
        DomHandler22.prototype.ontext = function(data) {
          var lastNode = this.lastNode;
          if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {
            lastNode.data += data;
            if (this.options.withEndIndices) {
              lastNode.endIndex = this.parser.endIndex;
            }
          } else {
            var node = new node_js_1.Text(data);
            this.addNode(node);
            this.lastNode = node;
          }
        };
        DomHandler22.prototype.oncomment = function(data) {
          if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {
            this.lastNode.data += data;
            return;
          }
          var node = new node_js_1.Comment(data);
          this.addNode(node);
          this.lastNode = node;
        };
        DomHandler22.prototype.oncommentend = function() {
          this.lastNode = null;
        };
        DomHandler22.prototype.oncdatastart = function() {
          var text = new node_js_1.Text("");
          var node = new node_js_1.CDATA([text]);
          this.addNode(node);
          text.parent = node;
          this.lastNode = text;
        };
        DomHandler22.prototype.oncdataend = function() {
          this.lastNode = null;
        };
        DomHandler22.prototype.onprocessinginstruction = function(name2, data) {
          var node = new node_js_1.ProcessingInstruction(name2, data);
          this.addNode(node);
        };
        DomHandler22.prototype.handleCallback = function(error) {
          if (typeof this.callback === "function") {
            this.callback(error, this.dom);
          } else if (error) {
            throw error;
          }
        };
        DomHandler22.prototype.addNode = function(node) {
          var parent = this.tagStack[this.tagStack.length - 1];
          var previousSibling = parent.children[parent.children.length - 1];
          if (this.options.withStartIndices) {
            node.startIndex = this.parser.startIndex;
          }
          if (this.options.withEndIndices) {
            node.endIndex = this.parser.endIndex;
          }
          parent.children.push(node);
          if (previousSibling) {
            node.prev = previousSibling;
            previousSibling.next = node;
          }
          node.parent = parent;
          this.lastNode = null;
        };
        return DomHandler22;
      })()
    );
    exports2.DomHandler = DomHandler2;
    exports2.default = DomHandler2;
  }
});
var require_decode_data_html = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.default = new Uint16Array(
      // prettier-ignore
      '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(c3) {
        return c3.charCodeAt(0);
      })
    );
  }
});
var require_decode_data_xml = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.default = new Uint16Array(
      // prettier-ignore
      "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(c3) {
        return c3.charCodeAt(0);
      })
    );
  }
});
var require_decode_codepoint = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js"(exports2) {
    "use strict";
    var _a22;
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.replaceCodePoint = exports2.fromCodePoint = void 0;
    var decodeMap2 = /* @__PURE__ */ new Map([
      [0, 65533],
      // C1 Unicode control character reference replacements
      [128, 8364],
      [130, 8218],
      [131, 402],
      [132, 8222],
      [133, 8230],
      [134, 8224],
      [135, 8225],
      [136, 710],
      [137, 8240],
      [138, 352],
      [139, 8249],
      [140, 338],
      [142, 381],
      [145, 8216],
      [146, 8217],
      [147, 8220],
      [148, 8221],
      [149, 8226],
      [150, 8211],
      [151, 8212],
      [152, 732],
      [153, 8482],
      [154, 353],
      [155, 8250],
      [156, 339],
      [158, 382],
      [159, 376]
    ]);
    exports2.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
    (_a22 = String.fromCodePoint) !== null && _a22 !== void 0 ? _a22 : function(codePoint) {
      var output = "";
      if (codePoint > 65535) {
        codePoint -= 65536;
        output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
        codePoint = 56320 | codePoint & 1023;
      }
      output += String.fromCharCode(codePoint);
      return output;
    };
    function replaceCodePoint2(codePoint) {
      var _a32;
      if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
        return 65533;
      }
      return (_a32 = decodeMap2.get(codePoint)) !== null && _a32 !== void 0 ? _a32 : codePoint;
    }
    exports2.replaceCodePoint = replaceCodePoint2;
    function decodeCodePoint2(codePoint) {
      return (0, exports2.fromCodePoint)(replaceCodePoint2(codePoint));
    }
    exports2.default = decodeCodePoint2;
  }
});
var require_decode = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.decodeXML = exports2.decodeHTMLStrict = exports2.decodeHTMLAttribute = exports2.decodeHTML = exports2.determineBranch = exports2.EntityDecoder = exports2.DecodingMode = exports2.BinTrieFlags = exports2.fromCodePoint = exports2.replaceCodePoint = exports2.decodeCodePoint = exports2.xmlDecodeTree = exports2.htmlDecodeTree = void 0;
    var decode_data_html_js_1 = __importDefault2(require_decode_data_html());
    exports2.htmlDecodeTree = decode_data_html_js_1.default;
    var decode_data_xml_js_1 = __importDefault2(require_decode_data_xml());
    exports2.xmlDecodeTree = decode_data_xml_js_1.default;
    var decode_codepoint_js_1 = __importStar2(require_decode_codepoint());
    exports2.decodeCodePoint = decode_codepoint_js_1.default;
    var decode_codepoint_js_2 = require_decode_codepoint();
    Object.defineProperty(exports2, "replaceCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.replaceCodePoint;
    } });
    Object.defineProperty(exports2, "fromCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.fromCodePoint;
    } });
    var CharCodes3;
    (function(CharCodes22) {
      CharCodes22[CharCodes22["NUM"] = 35] = "NUM";
      CharCodes22[CharCodes22["SEMI"] = 59] = "SEMI";
      CharCodes22[CharCodes22["EQUALS"] = 61] = "EQUALS";
      CharCodes22[CharCodes22["ZERO"] = 48] = "ZERO";
      CharCodes22[CharCodes22["NINE"] = 57] = "NINE";
      CharCodes22[CharCodes22["LOWER_A"] = 97] = "LOWER_A";
      CharCodes22[CharCodes22["LOWER_F"] = 102] = "LOWER_F";
      CharCodes22[CharCodes22["LOWER_X"] = 120] = "LOWER_X";
      CharCodes22[CharCodes22["LOWER_Z"] = 122] = "LOWER_Z";
      CharCodes22[CharCodes22["UPPER_A"] = 65] = "UPPER_A";
      CharCodes22[CharCodes22["UPPER_F"] = 70] = "UPPER_F";
      CharCodes22[CharCodes22["UPPER_Z"] = 90] = "UPPER_Z";
    })(CharCodes3 || (CharCodes3 = {}));
    var TO_LOWER_BIT2 = 32;
    var BinTrieFlags2;
    (function(BinTrieFlags22) {
      BinTrieFlags22[BinTrieFlags22["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
      BinTrieFlags22[BinTrieFlags22["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
      BinTrieFlags22[BinTrieFlags22["JUMP_TABLE"] = 127] = "JUMP_TABLE";
    })(BinTrieFlags2 = exports2.BinTrieFlags || (exports2.BinTrieFlags = {}));
    function isNumber32(code) {
      return code >= CharCodes3.ZERO && code <= CharCodes3.NINE;
    }
    function isHexadecimalCharacter2(code) {
      return code >= CharCodes3.UPPER_A && code <= CharCodes3.UPPER_F || code >= CharCodes3.LOWER_A && code <= CharCodes3.LOWER_F;
    }
    function isAsciiAlphaNumeric2(code) {
      return code >= CharCodes3.UPPER_A && code <= CharCodes3.UPPER_Z || code >= CharCodes3.LOWER_A && code <= CharCodes3.LOWER_Z || isNumber32(code);
    }
    function isEntityInAttributeInvalidEnd2(code) {
      return code === CharCodes3.EQUALS || isAsciiAlphaNumeric2(code);
    }
    var EntityDecoderState2;
    (function(EntityDecoderState22) {
      EntityDecoderState22[EntityDecoderState22["EntityStart"] = 0] = "EntityStart";
      EntityDecoderState22[EntityDecoderState22["NumericStart"] = 1] = "NumericStart";
      EntityDecoderState22[EntityDecoderState22["NumericDecimal"] = 2] = "NumericDecimal";
      EntityDecoderState22[EntityDecoderState22["NumericHex"] = 3] = "NumericHex";
      EntityDecoderState22[EntityDecoderState22["NamedEntity"] = 4] = "NamedEntity";
    })(EntityDecoderState2 || (EntityDecoderState2 = {}));
    var DecodingMode2;
    (function(DecodingMode22) {
      DecodingMode22[DecodingMode22["Legacy"] = 0] = "Legacy";
      DecodingMode22[DecodingMode22["Strict"] = 1] = "Strict";
      DecodingMode22[DecodingMode22["Attribute"] = 2] = "Attribute";
    })(DecodingMode2 = exports2.DecodingMode || (exports2.DecodingMode = {}));
    var EntityDecoder2 = (
      /** @class */
      (function() {
        function EntityDecoder22(decodeTree, emitCodePoint, errors) {
          this.decodeTree = decodeTree;
          this.emitCodePoint = emitCodePoint;
          this.errors = errors;
          this.state = EntityDecoderState2.EntityStart;
          this.consumed = 1;
          this.result = 0;
          this.treeIndex = 0;
          this.excess = 1;
          this.decodeMode = DecodingMode2.Strict;
        }
        EntityDecoder22.prototype.startEntity = function(decodeMode) {
          this.decodeMode = decodeMode;
          this.state = EntityDecoderState2.EntityStart;
          this.result = 0;
          this.treeIndex = 0;
          this.excess = 1;
          this.consumed = 1;
        };
        EntityDecoder22.prototype.write = function(str, offset) {
          switch (this.state) {
            case EntityDecoderState2.EntityStart: {
              if (str.charCodeAt(offset) === CharCodes3.NUM) {
                this.state = EntityDecoderState2.NumericStart;
                this.consumed += 1;
                return this.stateNumericStart(str, offset + 1);
              }
              this.state = EntityDecoderState2.NamedEntity;
              return this.stateNamedEntity(str, offset);
            }
            case EntityDecoderState2.NumericStart: {
              return this.stateNumericStart(str, offset);
            }
            case EntityDecoderState2.NumericDecimal: {
              return this.stateNumericDecimal(str, offset);
            }
            case EntityDecoderState2.NumericHex: {
              return this.stateNumericHex(str, offset);
            }
            case EntityDecoderState2.NamedEntity: {
              return this.stateNamedEntity(str, offset);
            }
          }
        };
        EntityDecoder22.prototype.stateNumericStart = function(str, offset) {
          if (offset >= str.length) {
            return -1;
          }
          if ((str.charCodeAt(offset) | TO_LOWER_BIT2) === CharCodes3.LOWER_X) {
            this.state = EntityDecoderState2.NumericHex;
            this.consumed += 1;
            return this.stateNumericHex(str, offset + 1);
          }
          this.state = EntityDecoderState2.NumericDecimal;
          return this.stateNumericDecimal(str, offset);
        };
        EntityDecoder22.prototype.addToNumericResult = function(str, start, end, base) {
          if (start !== end) {
            var digitCount = end - start;
            this.result = this.result * Math.pow(base, digitCount) + parseInt(str.substr(start, digitCount), base);
            this.consumed += digitCount;
          }
        };
        EntityDecoder22.prototype.stateNumericHex = function(str, offset) {
          var startIdx = offset;
          while (offset < str.length) {
            var char = str.charCodeAt(offset);
            if (isNumber32(char) || isHexadecimalCharacter2(char)) {
              offset += 1;
            } else {
              this.addToNumericResult(str, startIdx, offset, 16);
              return this.emitNumericEntity(char, 3);
            }
          }
          this.addToNumericResult(str, startIdx, offset, 16);
          return -1;
        };
        EntityDecoder22.prototype.stateNumericDecimal = function(str, offset) {
          var startIdx = offset;
          while (offset < str.length) {
            var char = str.charCodeAt(offset);
            if (isNumber32(char)) {
              offset += 1;
            } else {
              this.addToNumericResult(str, startIdx, offset, 10);
              return this.emitNumericEntity(char, 2);
            }
          }
          this.addToNumericResult(str, startIdx, offset, 10);
          return -1;
        };
        EntityDecoder22.prototype.emitNumericEntity = function(lastCp, expectedLength) {
          var _a22;
          if (this.consumed <= expectedLength) {
            (_a22 = this.errors) === null || _a22 === void 0 ? void 0 : _a22.absenceOfDigitsInNumericCharacterReference(this.consumed);
            return 0;
          }
          if (lastCp === CharCodes3.SEMI) {
            this.consumed += 1;
          } else if (this.decodeMode === DecodingMode2.Strict) {
            return 0;
          }
          this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);
          if (this.errors) {
            if (lastCp !== CharCodes3.SEMI) {
              this.errors.missingSemicolonAfterCharacterReference();
            }
            this.errors.validateNumericCharacterReference(this.result);
          }
          return this.consumed;
        };
        EntityDecoder22.prototype.stateNamedEntity = function(str, offset) {
          var decodeTree = this.decodeTree;
          var current = decodeTree[this.treeIndex];
          var valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
          for (; offset < str.length; offset++, this.excess++) {
            var char = str.charCodeAt(offset);
            this.treeIndex = determineBranch2(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
            if (this.treeIndex < 0) {
              return this.result === 0 || // If we are parsing an attribute
              this.decodeMode === DecodingMode2.Attribute && // We shouldn't have consumed any characters after the entity,
              (valueLength === 0 || // And there should be no invalid characters.
              isEntityInAttributeInvalidEnd2(char)) ? 0 : this.emitNotTerminatedNamedEntity();
            }
            current = decodeTree[this.treeIndex];
            valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
            if (valueLength !== 0) {
              if (char === CharCodes3.SEMI) {
                return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
              }
              if (this.decodeMode !== DecodingMode2.Strict) {
                this.result = this.treeIndex;
                this.consumed += this.excess;
                this.excess = 0;
              }
            }
          }
          return -1;
        };
        EntityDecoder22.prototype.emitNotTerminatedNamedEntity = function() {
          var _a22;
          var _b2 = this, result = _b2.result, decodeTree = _b2.decodeTree;
          var valueLength = (decodeTree[result] & BinTrieFlags2.VALUE_LENGTH) >> 14;
          this.emitNamedEntityData(result, valueLength, this.consumed);
          (_a22 = this.errors) === null || _a22 === void 0 ? void 0 : _a22.missingSemicolonAfterCharacterReference();
          return this.consumed;
        };
        EntityDecoder22.prototype.emitNamedEntityData = function(result, valueLength, consumed) {
          var decodeTree = this.decodeTree;
          this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags2.VALUE_LENGTH : decodeTree[result + 1], consumed);
          if (valueLength === 3) {
            this.emitCodePoint(decodeTree[result + 2], consumed);
          }
          return consumed;
        };
        EntityDecoder22.prototype.end = function() {
          var _a22;
          switch (this.state) {
            case EntityDecoderState2.NamedEntity: {
              return this.result !== 0 && (this.decodeMode !== DecodingMode2.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
            }
            // Otherwise, emit a numeric entity if we have one.
            case EntityDecoderState2.NumericDecimal: {
              return this.emitNumericEntity(0, 2);
            }
            case EntityDecoderState2.NumericHex: {
              return this.emitNumericEntity(0, 3);
            }
            case EntityDecoderState2.NumericStart: {
              (_a22 = this.errors) === null || _a22 === void 0 ? void 0 : _a22.absenceOfDigitsInNumericCharacterReference(this.consumed);
              return 0;
            }
            case EntityDecoderState2.EntityStart: {
              return 0;
            }
          }
        };
        return EntityDecoder22;
      })()
    );
    exports2.EntityDecoder = EntityDecoder2;
    function getDecoder2(decodeTree) {
      var ret = "";
      var decoder2 = new EntityDecoder2(decodeTree, function(str) {
        return ret += (0, decode_codepoint_js_1.fromCodePoint)(str);
      });
      return function decodeWithTrie(str, decodeMode) {
        var lastIndex = 0;
        var offset = 0;
        while ((offset = str.indexOf("&", offset)) >= 0) {
          ret += str.slice(lastIndex, offset);
          decoder2.startEntity(decodeMode);
          var len = decoder2.write(
            str,
            // Skip the "&"
            offset + 1
          );
          if (len < 0) {
            lastIndex = offset + decoder2.end();
            break;
          }
          lastIndex = offset + len;
          offset = len === 0 ? lastIndex + 1 : lastIndex;
        }
        var result = ret + str.slice(lastIndex);
        ret = "";
        return result;
      };
    }
    function determineBranch2(decodeTree, current, nodeIdx, char) {
      var branchCount = (current & BinTrieFlags2.BRANCH_LENGTH) >> 7;
      var jumpOffset = current & BinTrieFlags2.JUMP_TABLE;
      if (branchCount === 0) {
        return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
      }
      if (jumpOffset) {
        var value = char - jumpOffset;
        return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1;
      }
      var lo2 = nodeIdx;
      var hi3 = lo2 + branchCount - 1;
      while (lo2 <= hi3) {
        var mid = lo2 + hi3 >>> 1;
        var midVal = decodeTree[mid];
        if (midVal < char) {
          lo2 = mid + 1;
        } else if (midVal > char) {
          hi3 = mid - 1;
        } else {
          return decodeTree[mid + branchCount];
        }
      }
      return -1;
    }
    exports2.determineBranch = determineBranch2;
    var htmlDecoder2 = getDecoder2(decode_data_html_js_1.default);
    var xmlDecoder2 = getDecoder2(decode_data_xml_js_1.default);
    function decodeHTML2(str, mode) {
      if (mode === void 0) {
        mode = DecodingMode2.Legacy;
      }
      return htmlDecoder2(str, mode);
    }
    exports2.decodeHTML = decodeHTML2;
    function decodeHTMLAttribute2(str) {
      return htmlDecoder2(str, DecodingMode2.Attribute);
    }
    exports2.decodeHTMLAttribute = decodeHTMLAttribute2;
    function decodeHTMLStrict2(str) {
      return htmlDecoder2(str, DecodingMode2.Strict);
    }
    exports2.decodeHTMLStrict = decodeHTMLStrict2;
    function decodeXML2(str) {
      return xmlDecoder2(str, DecodingMode2.Strict);
    }
    exports2.decodeXML = decodeXML2;
  }
});
var require_encode_html = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    function restoreDiff2(arr) {
      for (var i22 = 1; i22 < arr.length; i22++) {
        arr[i22][0] += arr[i22 - 1][0] + 1;
      }
      return arr;
    }
    exports2.default = new Map(/* @__PURE__ */ restoreDiff2([[9, "&Tab;"], [0, "&NewLine;"], [22, "&excl;"], [0, "&quot;"], [0, "&num;"], [0, "&dollar;"], [0, "&percnt;"], [0, "&amp;"], [0, "&apos;"], [0, "&lpar;"], [0, "&rpar;"], [0, "&ast;"], [0, "&plus;"], [0, "&comma;"], [1, "&period;"], [0, "&sol;"], [10, "&colon;"], [0, "&semi;"], [0, { v: "&lt;", n: 8402, o: "&nvlt;" }], [0, { v: "&equals;", n: 8421, o: "&bne;" }], [0, { v: "&gt;", n: 8402, o: "&nvgt;" }], [0, "&quest;"], [0, "&commat;"], [26, "&lbrack;"], [0, "&bsol;"], [0, "&rbrack;"], [0, "&Hat;"], [0, "&lowbar;"], [0, "&DiacriticalGrave;"], [5, { n: 106, o: "&fjlig;" }], [20, "&lbrace;"], [0, "&verbar;"], [0, "&rbrace;"], [34, "&nbsp;"], [0, "&iexcl;"], [0, "&cent;"], [0, "&pound;"], [0, "&curren;"], [0, "&yen;"], [0, "&brvbar;"], [0, "&sect;"], [0, "&die;"], [0, "&copy;"], [0, "&ordf;"], [0, "&laquo;"], [0, "&not;"], [0, "&shy;"], [0, "&circledR;"], [0, "&macr;"], [0, "&deg;"], [0, "&PlusMinus;"], [0, "&sup2;"], [0, "&sup3;"], [0, "&acute;"], [0, "&micro;"], [0, "&para;"], [0, "&centerdot;"], [0, "&cedil;"], [0, "&sup1;"], [0, "&ordm;"], [0, "&raquo;"], [0, "&frac14;"], [0, "&frac12;"], [0, "&frac34;"], [0, "&iquest;"], [0, "&Agrave;"], [0, "&Aacute;"], [0, "&Acirc;"], [0, "&Atilde;"], [0, "&Auml;"], [0, "&angst;"], [0, "&AElig;"], [0, "&Ccedil;"], [0, "&Egrave;"], [0, "&Eacute;"], [0, "&Ecirc;"], [0, "&Euml;"], [0, "&Igrave;"], [0, "&Iacute;"], [0, "&Icirc;"], [0, "&Iuml;"], [0, "&ETH;"], [0, "&Ntilde;"], [0, "&Ograve;"], [0, "&Oacute;"], [0, "&Ocirc;"], [0, "&Otilde;"], [0, "&Ouml;"], [0, "&times;"], [0, "&Oslash;"], [0, "&Ugrave;"], [0, "&Uacute;"], [0, "&Ucirc;"], [0, "&Uuml;"], [0, "&Yacute;"], [0, "&THORN;"], [0, "&szlig;"], [0, "&agrave;"], [0, "&aacute;"], [0, "&acirc;"], [0, "&atilde;"], [0, "&auml;"], [0, "&aring;"], [0, "&aelig;"], [0, "&ccedil;"], [0, "&egrave;"], [0, "&eacute;"], [0, "&ecirc;"], [0, "&euml;"], [0, "&igrave;"], [0, "&iacute;"], [0, "&icirc;"], [0, "&iuml;"], [0, "&eth;"], [0, "&ntilde;"], [0, "&ograve;"], [0, "&oacute;"], [0, "&ocirc;"], [0, "&otilde;"], [0, "&ouml;"], [0, "&div;"], [0, "&oslash;"], [0, "&ugrave;"], [0, "&uacute;"], [0, "&ucirc;"], [0, "&uuml;"], [0, "&yacute;"], [0, "&thorn;"], [0, "&yuml;"], [0, "&Amacr;"], [0, "&amacr;"], [0, "&Abreve;"], [0, "&abreve;"], [0, "&Aogon;"], [0, "&aogon;"], [0, "&Cacute;"], [0, "&cacute;"], [0, "&Ccirc;"], [0, "&ccirc;"], [0, "&Cdot;"], [0, "&cdot;"], [0, "&Ccaron;"], [0, "&ccaron;"], [0, "&Dcaron;"], [0, "&dcaron;"], [0, "&Dstrok;"], [0, "&dstrok;"], [0, "&Emacr;"], [0, "&emacr;"], [2, "&Edot;"], [0, "&edot;"], [0, "&Eogon;"], [0, "&eogon;"], [0, "&Ecaron;"], [0, "&ecaron;"], [0, "&Gcirc;"], [0, "&gcirc;"], [0, "&Gbreve;"], [0, "&gbreve;"], [0, "&Gdot;"], [0, "&gdot;"], [0, "&Gcedil;"], [1, "&Hcirc;"], [0, "&hcirc;"], [0, "&Hstrok;"], [0, "&hstrok;"], [0, "&Itilde;"], [0, "&itilde;"], [0, "&Imacr;"], [0, "&imacr;"], [2, "&Iogon;"], [0, "&iogon;"], [0, "&Idot;"], [0, "&imath;"], [0, "&IJlig;"], [0, "&ijlig;"], [0, "&Jcirc;"], [0, "&jcirc;"], [0, "&Kcedil;"], [0, "&kcedil;"], [0, "&kgreen;"], [0, "&Lacute;"], [0, "&lacute;"], [0, "&Lcedil;"], [0, "&lcedil;"], [0, "&Lcaron;"], [0, "&lcaron;"], [0, "&Lmidot;"], [0, "&lmidot;"], [0, "&Lstrok;"], [0, "&lstrok;"], [0, "&Nacute;"], [0, "&nacute;"], [0, "&Ncedil;"], [0, "&ncedil;"], [0, "&Ncaron;"], [0, "&ncaron;"], [0, "&napos;"], [0, "&ENG;"], [0, "&eng;"], [0, "&Omacr;"], [0, "&omacr;"], [2, "&Odblac;"], [0, "&odblac;"], [0, "&OElig;"], [0, "&oelig;"], [0, "&Racute;"], [0, "&racute;"], [0, "&Rcedil;"], [0, "&rcedil;"], [0, "&Rcaron;"], [0, "&rcaron;"], [0, "&Sacute;"], [0, "&sacute;"], [0, "&Scirc;"], [0, "&scirc;"], [0, "&Scedil;"], [0, "&scedil;"], [0, "&Scaron;"], [0, "&scaron;"], [0, "&Tcedil;"], [0, "&tcedil;"], [0, "&Tcaron;"], [0, "&tcaron;"], [0, "&Tstrok;"], [0, "&tstrok;"], [0, "&Utilde;"], [0, "&utilde;"], [0, "&Umacr;"], [0, "&umacr;"], [0, "&Ubreve;"], [0, "&ubreve;"], [0, "&Uring;"], [0, "&uring;"], [0, "&Udblac;"], [0, "&udblac;"], [0, "&Uogon;"], [0, "&uogon;"], [0, "&Wcirc;"], [0, "&wcirc;"], [0, "&Ycirc;"], [0, "&ycirc;"], [0, "&Yuml;"], [0, "&Zacute;"], [0, "&zacute;"], [0, "&Zdot;"], [0, "&zdot;"], [0, "&Zcaron;"], [0, "&zcaron;"], [19, "&fnof;"], [34, "&imped;"], [63, "&gacute;"], [65, "&jmath;"], [142, "&circ;"], [0, "&caron;"], [16, "&breve;"], [0, "&DiacriticalDot;"], [0, "&ring;"], [0, "&ogon;"], [0, "&DiacriticalTilde;"], [0, "&dblac;"], [51, "&DownBreve;"], [127, "&Alpha;"], [0, "&Beta;"], [0, "&Gamma;"], [0, "&Delta;"], [0, "&Epsilon;"], [0, "&Zeta;"], [0, "&Eta;"], [0, "&Theta;"], [0, "&Iota;"], [0, "&Kappa;"], [0, "&Lambda;"], [0, "&Mu;"], [0, "&Nu;"], [0, "&Xi;"], [0, "&Omicron;"], [0, "&Pi;"], [0, "&Rho;"], [1, "&Sigma;"], [0, "&Tau;"], [0, "&Upsilon;"], [0, "&Phi;"], [0, "&Chi;"], [0, "&Psi;"], [0, "&ohm;"], [7, "&alpha;"], [0, "&beta;"], [0, "&gamma;"], [0, "&delta;"], [0, "&epsi;"], [0, "&zeta;"], [0, "&eta;"], [0, "&theta;"], [0, "&iota;"], [0, "&kappa;"], [0, "&lambda;"], [0, "&mu;"], [0, "&nu;"], [0, "&xi;"], [0, "&omicron;"], [0, "&pi;"], [0, "&rho;"], [0, "&sigmaf;"], [0, "&sigma;"], [0, "&tau;"], [0, "&upsi;"], [0, "&phi;"], [0, "&chi;"], [0, "&psi;"], [0, "&omega;"], [7, "&thetasym;"], [0, "&Upsi;"], [2, "&phiv;"], [0, "&piv;"], [5, "&Gammad;"], [0, "&digamma;"], [18, "&kappav;"], [0, "&rhov;"], [3, "&epsiv;"], [0, "&backepsilon;"], [10, "&IOcy;"], [0, "&DJcy;"], [0, "&GJcy;"], [0, "&Jukcy;"], [0, "&DScy;"], [0, "&Iukcy;"], [0, "&YIcy;"], [0, "&Jsercy;"], [0, "&LJcy;"], [0, "&NJcy;"], [0, "&TSHcy;"], [0, "&KJcy;"], [1, "&Ubrcy;"], [0, "&DZcy;"], [0, "&Acy;"], [0, "&Bcy;"], [0, "&Vcy;"], [0, "&Gcy;"], [0, "&Dcy;"], [0, "&IEcy;"], [0, "&ZHcy;"], [0, "&Zcy;"], [0, "&Icy;"], [0, "&Jcy;"], [0, "&Kcy;"], [0, "&Lcy;"], [0, "&Mcy;"], [0, "&Ncy;"], [0, "&Ocy;"], [0, "&Pcy;"], [0, "&Rcy;"], [0, "&Scy;"], [0, "&Tcy;"], [0, "&Ucy;"], [0, "&Fcy;"], [0, "&KHcy;"], [0, "&TScy;"], [0, "&CHcy;"], [0, "&SHcy;"], [0, "&SHCHcy;"], [0, "&HARDcy;"], [0, "&Ycy;"], [0, "&SOFTcy;"], [0, "&Ecy;"], [0, "&YUcy;"], [0, "&YAcy;"], [0, "&acy;"], [0, "&bcy;"], [0, "&vcy;"], [0, "&gcy;"], [0, "&dcy;"], [0, "&iecy;"], [0, "&zhcy;"], [0, "&zcy;"], [0, "&icy;"], [0, "&jcy;"], [0, "&kcy;"], [0, "&lcy;"], [0, "&mcy;"], [0, "&ncy;"], [0, "&ocy;"], [0, "&pcy;"], [0, "&rcy;"], [0, "&scy;"], [0, "&tcy;"], [0, "&ucy;"], [0, "&fcy;"], [0, "&khcy;"], [0, "&tscy;"], [0, "&chcy;"], [0, "&shcy;"], [0, "&shchcy;"], [0, "&hardcy;"], [0, "&ycy;"], [0, "&softcy;"], [0, "&ecy;"], [0, "&yucy;"], [0, "&yacy;"], [1, "&iocy;"], [0, "&djcy;"], [0, "&gjcy;"], [0, "&jukcy;"], [0, "&dscy;"], [0, "&iukcy;"], [0, "&yicy;"], [0, "&jsercy;"], [0, "&ljcy;"], [0, "&njcy;"], [0, "&tshcy;"], [0, "&kjcy;"], [1, "&ubrcy;"], [0, "&dzcy;"], [7074, "&ensp;"], [0, "&emsp;"], [0, "&emsp13;"], [0, "&emsp14;"], [1, "&numsp;"], [0, "&puncsp;"], [0, "&ThinSpace;"], [0, "&hairsp;"], [0, "&NegativeMediumSpace;"], [0, "&zwnj;"], [0, "&zwj;"], [0, "&lrm;"], [0, "&rlm;"], [0, "&dash;"], [2, "&ndash;"], [0, "&mdash;"], [0, "&horbar;"], [0, "&Verbar;"], [1, "&lsquo;"], [0, "&CloseCurlyQuote;"], [0, "&lsquor;"], [1, "&ldquo;"], [0, "&CloseCurlyDoubleQuote;"], [0, "&bdquo;"], [1, "&dagger;"], [0, "&Dagger;"], [0, "&bull;"], [2, "&nldr;"], [0, "&hellip;"], [9, "&permil;"], [0, "&pertenk;"], [0, "&prime;"], [0, "&Prime;"], [0, "&tprime;"], [0, "&backprime;"], [3, "&lsaquo;"], [0, "&rsaquo;"], [3, "&oline;"], [2, "&caret;"], [1, "&hybull;"], [0, "&frasl;"], [10, "&bsemi;"], [7, "&qprime;"], [7, { v: "&MediumSpace;", n: 8202, o: "&ThickSpace;" }], [0, "&NoBreak;"], [0, "&af;"], [0, "&InvisibleTimes;"], [0, "&ic;"], [72, "&euro;"], [46, "&tdot;"], [0, "&DotDot;"], [37, "&complexes;"], [2, "&incare;"], [4, "&gscr;"], [0, "&hamilt;"], [0, "&Hfr;"], [0, "&Hopf;"], [0, "&planckh;"], [0, "&hbar;"], [0, "&imagline;"], [0, "&Ifr;"], [0, "&lagran;"], [0, "&ell;"], [1, "&naturals;"], [0, "&numero;"], [0, "&copysr;"], [0, "&weierp;"], [0, "&Popf;"], [0, "&Qopf;"], [0, "&realine;"], [0, "&real;"], [0, "&reals;"], [0, "&rx;"], [3, "&trade;"], [1, "&integers;"], [2, "&mho;"], [0, "&zeetrf;"], [0, "&iiota;"], [2, "&bernou;"], [0, "&Cayleys;"], [1, "&escr;"], [0, "&Escr;"], [0, "&Fouriertrf;"], [1, "&Mellintrf;"], [0, "&order;"], [0, "&alefsym;"], [0, "&beth;"], [0, "&gimel;"], [0, "&daleth;"], [12, "&CapitalDifferentialD;"], [0, "&dd;"], [0, "&ee;"], [0, "&ii;"], [10, "&frac13;"], [0, "&frac23;"], [0, "&frac15;"], [0, "&frac25;"], [0, "&frac35;"], [0, "&frac45;"], [0, "&frac16;"], [0, "&frac56;"], [0, "&frac18;"], [0, "&frac38;"], [0, "&frac58;"], [0, "&frac78;"], [49, "&larr;"], [0, "&ShortUpArrow;"], [0, "&rarr;"], [0, "&darr;"], [0, "&harr;"], [0, "&updownarrow;"], [0, "&nwarr;"], [0, "&nearr;"], [0, "&LowerRightArrow;"], [0, "&LowerLeftArrow;"], [0, "&nlarr;"], [0, "&nrarr;"], [1, { v: "&rarrw;", n: 824, o: "&nrarrw;" }], [0, "&Larr;"], [0, "&Uarr;"], [0, "&Rarr;"], [0, "&Darr;"], [0, "&larrtl;"], [0, "&rarrtl;"], [0, "&LeftTeeArrow;"], [0, "&mapstoup;"], [0, "&map;"], [0, "&DownTeeArrow;"], [1, "&hookleftarrow;"], [0, "&hookrightarrow;"], [0, "&larrlp;"], [0, "&looparrowright;"], [0, "&harrw;"], [0, "&nharr;"], [1, "&lsh;"], [0, "&rsh;"], [0, "&ldsh;"], [0, "&rdsh;"], [1, "&crarr;"], [0, "&cularr;"], [0, "&curarr;"], [2, "&circlearrowleft;"], [0, "&circlearrowright;"], [0, "&leftharpoonup;"], [0, "&DownLeftVector;"], [0, "&RightUpVector;"], [0, "&LeftUpVector;"], [0, "&rharu;"], [0, "&DownRightVector;"], [0, "&dharr;"], [0, "&dharl;"], [0, "&RightArrowLeftArrow;"], [0, "&udarr;"], [0, "&LeftArrowRightArrow;"], [0, "&leftleftarrows;"], [0, "&upuparrows;"], [0, "&rightrightarrows;"], [0, "&ddarr;"], [0, "&leftrightharpoons;"], [0, "&Equilibrium;"], [0, "&nlArr;"], [0, "&nhArr;"], [0, "&nrArr;"], [0, "&DoubleLeftArrow;"], [0, "&DoubleUpArrow;"], [0, "&DoubleRightArrow;"], [0, "&dArr;"], [0, "&DoubleLeftRightArrow;"], [0, "&DoubleUpDownArrow;"], [0, "&nwArr;"], [0, "&neArr;"], [0, "&seArr;"], [0, "&swArr;"], [0, "&lAarr;"], [0, "&rAarr;"], [1, "&zigrarr;"], [6, "&larrb;"], [0, "&rarrb;"], [15, "&DownArrowUpArrow;"], [7, "&loarr;"], [0, "&roarr;"], [0, "&hoarr;"], [0, "&forall;"], [0, "&comp;"], [0, { v: "&part;", n: 824, o: "&npart;" }], [0, "&exist;"], [0, "&nexist;"], [0, "&empty;"], [1, "&Del;"], [0, "&Element;"], [0, "&NotElement;"], [1, "&ni;"], [0, "&notni;"], [2, "&prod;"], [0, "&coprod;"], [0, "&sum;"], [0, "&minus;"], [0, "&MinusPlus;"], [0, "&dotplus;"], [1, "&Backslash;"], [0, "&lowast;"], [0, "&compfn;"], [1, "&radic;"], [2, "&prop;"], [0, "&infin;"], [0, "&angrt;"], [0, { v: "&ang;", n: 8402, o: "&nang;" }], [0, "&angmsd;"], [0, "&angsph;"], [0, "&mid;"], [0, "&nmid;"], [0, "&DoubleVerticalBar;"], [0, "&NotDoubleVerticalBar;"], [0, "&and;"], [0, "&or;"], [0, { v: "&cap;", n: 65024, o: "&caps;" }], [0, { v: "&cup;", n: 65024, o: "&cups;" }], [0, "&int;"], [0, "&Int;"], [0, "&iiint;"], [0, "&conint;"], [0, "&Conint;"], [0, "&Cconint;"], [0, "&cwint;"], [0, "&ClockwiseContourIntegral;"], [0, "&awconint;"], [0, "&there4;"], [0, "&becaus;"], [0, "&ratio;"], [0, "&Colon;"], [0, "&dotminus;"], [1, "&mDDot;"], [0, "&homtht;"], [0, { v: "&sim;", n: 8402, o: "&nvsim;" }], [0, { v: "&backsim;", n: 817, o: "&race;" }], [0, { v: "&ac;", n: 819, o: "&acE;" }], [0, "&acd;"], [0, "&VerticalTilde;"], [0, "&NotTilde;"], [0, { v: "&eqsim;", n: 824, o: "&nesim;" }], [0, "&sime;"], [0, "&NotTildeEqual;"], [0, "&cong;"], [0, "&simne;"], [0, "&ncong;"], [0, "&ap;"], [0, "&nap;"], [0, "&ape;"], [0, { v: "&apid;", n: 824, o: "&napid;" }], [0, "&backcong;"], [0, { v: "&asympeq;", n: 8402, o: "&nvap;" }], [0, { v: "&bump;", n: 824, o: "&nbump;" }], [0, { v: "&bumpe;", n: 824, o: "&nbumpe;" }], [0, { v: "&doteq;", n: 824, o: "&nedot;" }], [0, "&doteqdot;"], [0, "&efDot;"], [0, "&erDot;"], [0, "&Assign;"], [0, "&ecolon;"], [0, "&ecir;"], [0, "&circeq;"], [1, "&wedgeq;"], [0, "&veeeq;"], [1, "&triangleq;"], [2, "&equest;"], [0, "&ne;"], [0, { v: "&Congruent;", n: 8421, o: "&bnequiv;" }], [0, "&nequiv;"], [1, { v: "&le;", n: 8402, o: "&nvle;" }], [0, { v: "&ge;", n: 8402, o: "&nvge;" }], [0, { v: "&lE;", n: 824, o: "&nlE;" }], [0, { v: "&gE;", n: 824, o: "&ngE;" }], [0, { v: "&lnE;", n: 65024, o: "&lvertneqq;" }], [0, { v: "&gnE;", n: 65024, o: "&gvertneqq;" }], [0, { v: "&ll;", n: new Map(/* @__PURE__ */ restoreDiff2([[824, "&nLtv;"], [7577, "&nLt;"]])) }], [0, { v: "&gg;", n: new Map(/* @__PURE__ */ restoreDiff2([[824, "&nGtv;"], [7577, "&nGt;"]])) }], [0, "&between;"], [0, "&NotCupCap;"], [0, "&nless;"], [0, "&ngt;"], [0, "&nle;"], [0, "&nge;"], [0, "&lesssim;"], [0, "&GreaterTilde;"], [0, "&nlsim;"], [0, "&ngsim;"], [0, "&LessGreater;"], [0, "&gl;"], [0, "&NotLessGreater;"], [0, "&NotGreaterLess;"], [0, "&pr;"], [0, "&sc;"], [0, "&prcue;"], [0, "&sccue;"], [0, "&PrecedesTilde;"], [0, { v: "&scsim;", n: 824, o: "&NotSucceedsTilde;" }], [0, "&NotPrecedes;"], [0, "&NotSucceeds;"], [0, { v: "&sub;", n: 8402, o: "&NotSubset;" }], [0, { v: "&sup;", n: 8402, o: "&NotSuperset;" }], [0, "&nsub;"], [0, "&nsup;"], [0, "&sube;"], [0, "&supe;"], [0, "&NotSubsetEqual;"], [0, "&NotSupersetEqual;"], [0, { v: "&subne;", n: 65024, o: "&varsubsetneq;" }], [0, { v: "&supne;", n: 65024, o: "&varsupsetneq;" }], [1, "&cupdot;"], [0, "&UnionPlus;"], [0, { v: "&sqsub;", n: 824, o: "&NotSquareSubset;" }], [0, { v: "&sqsup;", n: 824, o: "&NotSquareSuperset;" }], [0, "&sqsube;"], [0, "&sqsupe;"], [0, { v: "&sqcap;", n: 65024, o: "&sqcaps;" }], [0, { v: "&sqcup;", n: 65024, o: "&sqcups;" }], [0, "&CirclePlus;"], [0, "&CircleMinus;"], [0, "&CircleTimes;"], [0, "&osol;"], [0, "&CircleDot;"], [0, "&circledcirc;"], [0, "&circledast;"], [1, "&circleddash;"], [0, "&boxplus;"], [0, "&boxminus;"], [0, "&boxtimes;"], [0, "&dotsquare;"], [0, "&RightTee;"], [0, "&dashv;"], [0, "&DownTee;"], [0, "&bot;"], [1, "&models;"], [0, "&DoubleRightTee;"], [0, "&Vdash;"], [0, "&Vvdash;"], [0, "&VDash;"], [0, "&nvdash;"], [0, "&nvDash;"], [0, "&nVdash;"], [0, "&nVDash;"], [0, "&prurel;"], [1, "&LeftTriangle;"], [0, "&RightTriangle;"], [0, { v: "&LeftTriangleEqual;", n: 8402, o: "&nvltrie;" }], [0, { v: "&RightTriangleEqual;", n: 8402, o: "&nvrtrie;" }], [0, "&origof;"], [0, "&imof;"], [0, "&multimap;"], [0, "&hercon;"], [0, "&intcal;"], [0, "&veebar;"], [1, "&barvee;"], [0, "&angrtvb;"], [0, "&lrtri;"], [0, "&bigwedge;"], [0, "&bigvee;"], [0, "&bigcap;"], [0, "&bigcup;"], [0, "&diam;"], [0, "&sdot;"], [0, "&sstarf;"], [0, "&divideontimes;"], [0, "&bowtie;"], [0, "&ltimes;"], [0, "&rtimes;"], [0, "&leftthreetimes;"], [0, "&rightthreetimes;"], [0, "&backsimeq;"], [0, "&curlyvee;"], [0, "&curlywedge;"], [0, "&Sub;"], [0, "&Sup;"], [0, "&Cap;"], [0, "&Cup;"], [0, "&fork;"], [0, "&epar;"], [0, "&lessdot;"], [0, "&gtdot;"], [0, { v: "&Ll;", n: 824, o: "&nLl;" }], [0, { v: "&Gg;", n: 824, o: "&nGg;" }], [0, { v: "&leg;", n: 65024, o: "&lesg;" }], [0, { v: "&gel;", n: 65024, o: "&gesl;" }], [2, "&cuepr;"], [0, "&cuesc;"], [0, "&NotPrecedesSlantEqual;"], [0, "&NotSucceedsSlantEqual;"], [0, "&NotSquareSubsetEqual;"], [0, "&NotSquareSupersetEqual;"], [2, "&lnsim;"], [0, "&gnsim;"], [0, "&precnsim;"], [0, "&scnsim;"], [0, "&nltri;"], [0, "&NotRightTriangle;"], [0, "&nltrie;"], [0, "&NotRightTriangleEqual;"], [0, "&vellip;"], [0, "&ctdot;"], [0, "&utdot;"], [0, "&dtdot;"], [0, "&disin;"], [0, "&isinsv;"], [0, "&isins;"], [0, { v: "&isindot;", n: 824, o: "&notindot;" }], [0, "&notinvc;"], [0, "&notinvb;"], [1, { v: "&isinE;", n: 824, o: "&notinE;" }], [0, "&nisd;"], [0, "&xnis;"], [0, "&nis;"], [0, "&notnivc;"], [0, "&notnivb;"], [6, "&barwed;"], [0, "&Barwed;"], [1, "&lceil;"], [0, "&rceil;"], [0, "&LeftFloor;"], [0, "&rfloor;"], [0, "&drcrop;"], [0, "&dlcrop;"], [0, "&urcrop;"], [0, "&ulcrop;"], [0, "&bnot;"], [1, "&profline;"], [0, "&profsurf;"], [1, "&telrec;"], [0, "&target;"], [5, "&ulcorn;"], [0, "&urcorn;"], [0, "&dlcorn;"], [0, "&drcorn;"], [2, "&frown;"], [0, "&smile;"], [9, "&cylcty;"], [0, "&profalar;"], [7, "&topbot;"], [6, "&ovbar;"], [1, "&solbar;"], [60, "&angzarr;"], [51, "&lmoustache;"], [0, "&rmoustache;"], [2, "&OverBracket;"], [0, "&bbrk;"], [0, "&bbrktbrk;"], [37, "&OverParenthesis;"], [0, "&UnderParenthesis;"], [0, "&OverBrace;"], [0, "&UnderBrace;"], [2, "&trpezium;"], [4, "&elinters;"], [59, "&blank;"], [164, "&circledS;"], [55, "&boxh;"], [1, "&boxv;"], [9, "&boxdr;"], [3, "&boxdl;"], [3, "&boxur;"], [3, "&boxul;"], [3, "&boxvr;"], [7, "&boxvl;"], [7, "&boxhd;"], [7, "&boxhu;"], [7, "&boxvh;"], [19, "&boxH;"], [0, "&boxV;"], [0, "&boxdR;"], [0, "&boxDr;"], [0, "&boxDR;"], [0, "&boxdL;"], [0, "&boxDl;"], [0, "&boxDL;"], [0, "&boxuR;"], [0, "&boxUr;"], [0, "&boxUR;"], [0, "&boxuL;"], [0, "&boxUl;"], [0, "&boxUL;"], [0, "&boxvR;"], [0, "&boxVr;"], [0, "&boxVR;"], [0, "&boxvL;"], [0, "&boxVl;"], [0, "&boxVL;"], [0, "&boxHd;"], [0, "&boxhD;"], [0, "&boxHD;"], [0, "&boxHu;"], [0, "&boxhU;"], [0, "&boxHU;"], [0, "&boxvH;"], [0, "&boxVh;"], [0, "&boxVH;"], [19, "&uhblk;"], [3, "&lhblk;"], [3, "&block;"], [8, "&blk14;"], [0, "&blk12;"], [0, "&blk34;"], [13, "&square;"], [8, "&blacksquare;"], [0, "&EmptyVerySmallSquare;"], [1, "&rect;"], [0, "&marker;"], [2, "&fltns;"], [1, "&bigtriangleup;"], [0, "&blacktriangle;"], [0, "&triangle;"], [2, "&blacktriangleright;"], [0, "&rtri;"], [3, "&bigtriangledown;"], [0, "&blacktriangledown;"], [0, "&dtri;"], [2, "&blacktriangleleft;"], [0, "&ltri;"], [6, "&loz;"], [0, "&cir;"], [32, "&tridot;"], [2, "&bigcirc;"], [8, "&ultri;"], [0, "&urtri;"], [0, "&lltri;"], [0, "&EmptySmallSquare;"], [0, "&FilledSmallSquare;"], [8, "&bigstar;"], [0, "&star;"], [7, "&phone;"], [49, "&female;"], [1, "&male;"], [29, "&spades;"], [2, "&clubs;"], [1, "&hearts;"], [0, "&diamondsuit;"], [3, "&sung;"], [2, "&flat;"], [0, "&natural;"], [0, "&sharp;"], [163, "&check;"], [3, "&cross;"], [8, "&malt;"], [21, "&sext;"], [33, "&VerticalSeparator;"], [25, "&lbbrk;"], [0, "&rbbrk;"], [84, "&bsolhsub;"], [0, "&suphsol;"], [28, "&LeftDoubleBracket;"], [0, "&RightDoubleBracket;"], [0, "&lang;"], [0, "&rang;"], [0, "&Lang;"], [0, "&Rang;"], [0, "&loang;"], [0, "&roang;"], [7, "&longleftarrow;"], [0, "&longrightarrow;"], [0, "&longleftrightarrow;"], [0, "&DoubleLongLeftArrow;"], [0, "&DoubleLongRightArrow;"], [0, "&DoubleLongLeftRightArrow;"], [1, "&longmapsto;"], [2, "&dzigrarr;"], [258, "&nvlArr;"], [0, "&nvrArr;"], [0, "&nvHarr;"], [0, "&Map;"], [6, "&lbarr;"], [0, "&bkarow;"], [0, "&lBarr;"], [0, "&dbkarow;"], [0, "&drbkarow;"], [0, "&DDotrahd;"], [0, "&UpArrowBar;"], [0, "&DownArrowBar;"], [2, "&Rarrtl;"], [2, "&latail;"], [0, "&ratail;"], [0, "&lAtail;"], [0, "&rAtail;"], [0, "&larrfs;"], [0, "&rarrfs;"], [0, "&larrbfs;"], [0, "&rarrbfs;"], [2, "&nwarhk;"], [0, "&nearhk;"], [0, "&hksearow;"], [0, "&hkswarow;"], [0, "&nwnear;"], [0, "&nesear;"], [0, "&seswar;"], [0, "&swnwar;"], [8, { v: "&rarrc;", n: 824, o: "&nrarrc;" }], [1, "&cudarrr;"], [0, "&ldca;"], [0, "&rdca;"], [0, "&cudarrl;"], [0, "&larrpl;"], [2, "&curarrm;"], [0, "&cularrp;"], [7, "&rarrpl;"], [2, "&harrcir;"], [0, "&Uarrocir;"], [0, "&lurdshar;"], [0, "&ldrushar;"], [2, "&LeftRightVector;"], [0, "&RightUpDownVector;"], [0, "&DownLeftRightVector;"], [0, "&LeftUpDownVector;"], [0, "&LeftVectorBar;"], [0, "&RightVectorBar;"], [0, "&RightUpVectorBar;"], [0, "&RightDownVectorBar;"], [0, "&DownLeftVectorBar;"], [0, "&DownRightVectorBar;"], [0, "&LeftUpVectorBar;"], [0, "&LeftDownVectorBar;"], [0, "&LeftTeeVector;"], [0, "&RightTeeVector;"], [0, "&RightUpTeeVector;"], [0, "&RightDownTeeVector;"], [0, "&DownLeftTeeVector;"], [0, "&DownRightTeeVector;"], [0, "&LeftUpTeeVector;"], [0, "&LeftDownTeeVector;"], [0, "&lHar;"], [0, "&uHar;"], [0, "&rHar;"], [0, "&dHar;"], [0, "&luruhar;"], [0, "&ldrdhar;"], [0, "&ruluhar;"], [0, "&rdldhar;"], [0, "&lharul;"], [0, "&llhard;"], [0, "&rharul;"], [0, "&lrhard;"], [0, "&udhar;"], [0, "&duhar;"], [0, "&RoundImplies;"], [0, "&erarr;"], [0, "&simrarr;"], [0, "&larrsim;"], [0, "&rarrsim;"], [0, "&rarrap;"], [0, "&ltlarr;"], [1, "&gtrarr;"], [0, "&subrarr;"], [1, "&suplarr;"], [0, "&lfisht;"], [0, "&rfisht;"], [0, "&ufisht;"], [0, "&dfisht;"], [5, "&lopar;"], [0, "&ropar;"], [4, "&lbrke;"], [0, "&rbrke;"], [0, "&lbrkslu;"], [0, "&rbrksld;"], [0, "&lbrksld;"], [0, "&rbrkslu;"], [0, "&langd;"], [0, "&rangd;"], [0, "&lparlt;"], [0, "&rpargt;"], [0, "&gtlPar;"], [0, "&ltrPar;"], [3, "&vzigzag;"], [1, "&vangrt;"], [0, "&angrtvbd;"], [6, "&ange;"], [0, "&range;"], [0, "&dwangle;"], [0, "&uwangle;"], [0, "&angmsdaa;"], [0, "&angmsdab;"], [0, "&angmsdac;"], [0, "&angmsdad;"], [0, "&angmsdae;"], [0, "&angmsdaf;"], [0, "&angmsdag;"], [0, "&angmsdah;"], [0, "&bemptyv;"], [0, "&demptyv;"], [0, "&cemptyv;"], [0, "&raemptyv;"], [0, "&laemptyv;"], [0, "&ohbar;"], [0, "&omid;"], [0, "&opar;"], [1, "&operp;"], [1, "&olcross;"], [0, "&odsold;"], [1, "&olcir;"], [0, "&ofcir;"], [0, "&olt;"], [0, "&ogt;"], [0, "&cirscir;"], [0, "&cirE;"], [0, "&solb;"], [0, "&bsolb;"], [3, "&boxbox;"], [3, "&trisb;"], [0, "&rtriltri;"], [0, { v: "&LeftTriangleBar;", n: 824, o: "&NotLeftTriangleBar;" }], [0, { v: "&RightTriangleBar;", n: 824, o: "&NotRightTriangleBar;" }], [11, "&iinfin;"], [0, "&infintie;"], [0, "&nvinfin;"], [4, "&eparsl;"], [0, "&smeparsl;"], [0, "&eqvparsl;"], [5, "&blacklozenge;"], [8, "&RuleDelayed;"], [1, "&dsol;"], [9, "&bigodot;"], [0, "&bigoplus;"], [0, "&bigotimes;"], [1, "&biguplus;"], [1, "&bigsqcup;"], [5, "&iiiint;"], [0, "&fpartint;"], [2, "&cirfnint;"], [0, "&awint;"], [0, "&rppolint;"], [0, "&scpolint;"], [0, "&npolint;"], [0, "&pointint;"], [0, "&quatint;"], [0, "&intlarhk;"], [10, "&pluscir;"], [0, "&plusacir;"], [0, "&simplus;"], [0, "&plusdu;"], [0, "&plussim;"], [0, "&plustwo;"], [1, "&mcomma;"], [0, "&minusdu;"], [2, "&loplus;"], [0, "&roplus;"], [0, "&Cross;"], [0, "&timesd;"], [0, "&timesbar;"], [1, "&smashp;"], [0, "&lotimes;"], [0, "&rotimes;"], [0, "&otimesas;"], [0, "&Otimes;"], [0, "&odiv;"], [0, "&triplus;"], [0, "&triminus;"], [0, "&tritime;"], [0, "&intprod;"], [2, "&amalg;"], [0, "&capdot;"], [1, "&ncup;"], [0, "&ncap;"], [0, "&capand;"], [0, "&cupor;"], [0, "&cupcap;"], [0, "&capcup;"], [0, "&cupbrcap;"], [0, "&capbrcup;"], [0, "&cupcup;"], [0, "&capcap;"], [0, "&ccups;"], [0, "&ccaps;"], [2, "&ccupssm;"], [2, "&And;"], [0, "&Or;"], [0, "&andand;"], [0, "&oror;"], [0, "&orslope;"], [0, "&andslope;"], [1, "&andv;"], [0, "&orv;"], [0, "&andd;"], [0, "&ord;"], [1, "&wedbar;"], [6, "&sdote;"], [3, "&simdot;"], [2, { v: "&congdot;", n: 824, o: "&ncongdot;" }], [0, "&easter;"], [0, "&apacir;"], [0, { v: "&apE;", n: 824, o: "&napE;" }], [0, "&eplus;"], [0, "&pluse;"], [0, "&Esim;"], [0, "&Colone;"], [0, "&Equal;"], [1, "&ddotseq;"], [0, "&equivDD;"], [0, "&ltcir;"], [0, "&gtcir;"], [0, "&ltquest;"], [0, "&gtquest;"], [0, { v: "&leqslant;", n: 824, o: "&nleqslant;" }], [0, { v: "&geqslant;", n: 824, o: "&ngeqslant;" }], [0, "&lesdot;"], [0, "&gesdot;"], [0, "&lesdoto;"], [0, "&gesdoto;"], [0, "&lesdotor;"], [0, "&gesdotol;"], [0, "&lap;"], [0, "&gap;"], [0, "&lne;"], [0, "&gne;"], [0, "&lnap;"], [0, "&gnap;"], [0, "&lEg;"], [0, "&gEl;"], [0, "&lsime;"], [0, "&gsime;"], [0, "&lsimg;"], [0, "&gsiml;"], [0, "&lgE;"], [0, "&glE;"], [0, "&lesges;"], [0, "&gesles;"], [0, "&els;"], [0, "&egs;"], [0, "&elsdot;"], [0, "&egsdot;"], [0, "&el;"], [0, "&eg;"], [2, "&siml;"], [0, "&simg;"], [0, "&simlE;"], [0, "&simgE;"], [0, { v: "&LessLess;", n: 824, o: "&NotNestedLessLess;" }], [0, { v: "&GreaterGreater;", n: 824, o: "&NotNestedGreaterGreater;" }], [1, "&glj;"], [0, "&gla;"], [0, "&ltcc;"], [0, "&gtcc;"], [0, "&lescc;"], [0, "&gescc;"], [0, "&smt;"], [0, "&lat;"], [0, { v: "&smte;", n: 65024, o: "&smtes;" }], [0, { v: "&late;", n: 65024, o: "&lates;" }], [0, "&bumpE;"], [0, { v: "&PrecedesEqual;", n: 824, o: "&NotPrecedesEqual;" }], [0, { v: "&sce;", n: 824, o: "&NotSucceedsEqual;" }], [2, "&prE;"], [0, "&scE;"], [0, "&precneqq;"], [0, "&scnE;"], [0, "&prap;"], [0, "&scap;"], [0, "&precnapprox;"], [0, "&scnap;"], [0, "&Pr;"], [0, "&Sc;"], [0, "&subdot;"], [0, "&supdot;"], [0, "&subplus;"], [0, "&supplus;"], [0, "&submult;"], [0, "&supmult;"], [0, "&subedot;"], [0, "&supedot;"], [0, { v: "&subE;", n: 824, o: "&nsubE;" }], [0, { v: "&supE;", n: 824, o: "&nsupE;" }], [0, "&subsim;"], [0, "&supsim;"], [2, { v: "&subnE;", n: 65024, o: "&varsubsetneqq;" }], [0, { v: "&supnE;", n: 65024, o: "&varsupsetneqq;" }], [2, "&csub;"], [0, "&csup;"], [0, "&csube;"], [0, "&csupe;"], [0, "&subsup;"], [0, "&supsub;"], [0, "&subsub;"], [0, "&supsup;"], [0, "&suphsub;"], [0, "&supdsub;"], [0, "&forkv;"], [0, "&topfork;"], [0, "&mlcp;"], [8, "&Dashv;"], [1, "&Vdashl;"], [0, "&Barv;"], [0, "&vBar;"], [0, "&vBarv;"], [1, "&Vbar;"], [0, "&Not;"], [0, "&bNot;"], [0, "&rnmid;"], [0, "&cirmid;"], [0, "&midcir;"], [0, "&topcir;"], [0, "&nhpar;"], [0, "&parsim;"], [9, { v: "&parsl;", n: 8421, o: "&nparsl;" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff2([[56476, "&Ascr;"], [1, "&Cscr;"], [0, "&Dscr;"], [2, "&Gscr;"], [2, "&Jscr;"], [0, "&Kscr;"], [2, "&Nscr;"], [0, "&Oscr;"], [0, "&Pscr;"], [0, "&Qscr;"], [1, "&Sscr;"], [0, "&Tscr;"], [0, "&Uscr;"], [0, "&Vscr;"], [0, "&Wscr;"], [0, "&Xscr;"], [0, "&Yscr;"], [0, "&Zscr;"], [0, "&ascr;"], [0, "&bscr;"], [0, "&cscr;"], [0, "&dscr;"], [1, "&fscr;"], [1, "&hscr;"], [0, "&iscr;"], [0, "&jscr;"], [0, "&kscr;"], [0, "&lscr;"], [0, "&mscr;"], [0, "&nscr;"], [1, "&pscr;"], [0, "&qscr;"], [0, "&rscr;"], [0, "&sscr;"], [0, "&tscr;"], [0, "&uscr;"], [0, "&vscr;"], [0, "&wscr;"], [0, "&xscr;"], [0, "&yscr;"], [0, "&zscr;"], [52, "&Afr;"], [0, "&Bfr;"], [1, "&Dfr;"], [0, "&Efr;"], [0, "&Ffr;"], [0, "&Gfr;"], [2, "&Jfr;"], [0, "&Kfr;"], [0, "&Lfr;"], [0, "&Mfr;"], [0, "&Nfr;"], [0, "&Ofr;"], [0, "&Pfr;"], [0, "&Qfr;"], [1, "&Sfr;"], [0, "&Tfr;"], [0, "&Ufr;"], [0, "&Vfr;"], [0, "&Wfr;"], [0, "&Xfr;"], [0, "&Yfr;"], [1, "&afr;"], [0, "&bfr;"], [0, "&cfr;"], [0, "&dfr;"], [0, "&efr;"], [0, "&ffr;"], [0, "&gfr;"], [0, "&hfr;"], [0, "&ifr;"], [0, "&jfr;"], [0, "&kfr;"], [0, "&lfr;"], [0, "&mfr;"], [0, "&nfr;"], [0, "&ofr;"], [0, "&pfr;"], [0, "&qfr;"], [0, "&rfr;"], [0, "&sfr;"], [0, "&tfr;"], [0, "&ufr;"], [0, "&vfr;"], [0, "&wfr;"], [0, "&xfr;"], [0, "&yfr;"], [0, "&zfr;"], [0, "&Aopf;"], [0, "&Bopf;"], [1, "&Dopf;"], [0, "&Eopf;"], [0, "&Fopf;"], [0, "&Gopf;"], [1, "&Iopf;"], [0, "&Jopf;"], [0, "&Kopf;"], [0, "&Lopf;"], [0, "&Mopf;"], [1, "&Oopf;"], [3, "&Sopf;"], [0, "&Topf;"], [0, "&Uopf;"], [0, "&Vopf;"], [0, "&Wopf;"], [0, "&Xopf;"], [0, "&Yopf;"], [1, "&aopf;"], [0, "&bopf;"], [0, "&copf;"], [0, "&dopf;"], [0, "&eopf;"], [0, "&fopf;"], [0, "&gopf;"], [0, "&hopf;"], [0, "&iopf;"], [0, "&jopf;"], [0, "&kopf;"], [0, "&lopf;"], [0, "&mopf;"], [0, "&nopf;"], [0, "&oopf;"], [0, "&popf;"], [0, "&qopf;"], [0, "&ropf;"], [0, "&sopf;"], [0, "&topf;"], [0, "&uopf;"], [0, "&vopf;"], [0, "&wopf;"], [0, "&xopf;"], [0, "&yopf;"], [0, "&zopf;"]])) }], [8906, "&fflig;"], [0, "&filig;"], [0, "&fllig;"], [0, "&ffilig;"], [0, "&ffllig;"]]));
  }
});
var require_escape = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.getCodePoint = exports2.xmlReplacer = void 0;
    exports2.xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
    var xmlCodeMap2 = /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [39, "&apos;"],
      [60, "&lt;"],
      [62, "&gt;"]
    ]);
    exports2.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
    String.prototype.codePointAt != null ? function(str, index) {
      return str.codePointAt(index);
    } : (
      // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
      (function(c3, index) {
        return (c3.charCodeAt(index) & 64512) === 55296 ? (c3.charCodeAt(index) - 55296) * 1024 + c3.charCodeAt(index + 1) - 56320 + 65536 : c3.charCodeAt(index);
      })
    );
    function encodeXML2(str) {
      var ret = "";
      var lastIdx = 0;
      var match;
      while ((match = exports2.xmlReplacer.exec(str)) !== null) {
        var i22 = match.index;
        var char = str.charCodeAt(i22);
        var next = xmlCodeMap2.get(char);
        if (next !== void 0) {
          ret += str.substring(lastIdx, i22) + next;
          lastIdx = i22 + 1;
        } else {
          ret += "".concat(str.substring(lastIdx, i22), "&#x").concat((0, exports2.getCodePoint)(str, i22).toString(16), ";");
          lastIdx = exports2.xmlReplacer.lastIndex += Number((char & 64512) === 55296);
        }
      }
      return ret + str.substr(lastIdx);
    }
    exports2.encodeXML = encodeXML2;
    exports2.escape = encodeXML2;
    function getEscaper2(regex, map2) {
      return function escape22(data) {
        var match;
        var lastIdx = 0;
        var result = "";
        while (match = regex.exec(data)) {
          if (lastIdx !== match.index) {
            result += data.substring(lastIdx, match.index);
          }
          result += map2.get(match[0].charCodeAt(0));
          lastIdx = match.index + 1;
        }
        return result + data.substring(lastIdx);
      };
    }
    exports2.escapeUTF8 = getEscaper2(/[&<>'"]/g, xmlCodeMap2);
    exports2.escapeAttribute = getEscaper2(/["&\u00A0]/g, /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [160, "&nbsp;"]
    ]));
    exports2.escapeText = getEscaper2(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
      [38, "&amp;"],
      [60, "&lt;"],
      [62, "&gt;"],
      [160, "&nbsp;"]
    ]));
  }
});
var require_encode = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js"(exports2) {
    "use strict";
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.encodeNonAsciiHTML = exports2.encodeHTML = void 0;
    var encode_html_js_1 = __importDefault2(require_encode_html());
    var escape_js_1 = require_escape();
    var htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;
    function encodeHTML2(data) {
      return encodeHTMLTrieRe(htmlReplacer, data);
    }
    exports2.encodeHTML = encodeHTML2;
    function encodeNonAsciiHTML2(data) {
      return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);
    }
    exports2.encodeNonAsciiHTML = encodeNonAsciiHTML2;
    function encodeHTMLTrieRe(regExp, str) {
      var ret = "";
      var lastIdx = 0;
      var match;
      while ((match = regExp.exec(str)) !== null) {
        var i22 = match.index;
        ret += str.substring(lastIdx, i22);
        var char = str.charCodeAt(i22);
        var next = encode_html_js_1.default.get(char);
        if (typeof next === "object") {
          if (i22 + 1 < str.length) {
            var nextChar = str.charCodeAt(i22 + 1);
            var value = typeof next.n === "number" ? next.n === nextChar ? next.o : void 0 : next.n.get(nextChar);
            if (value !== void 0) {
              ret += value;
              lastIdx = regExp.lastIndex += 1;
              continue;
            }
          }
          next = next.v;
        }
        if (next !== void 0) {
          ret += next;
          lastIdx = i22 + 1;
        } else {
          var cp = (0, escape_js_1.getCodePoint)(str, i22);
          ret += "&#x".concat(cp.toString(16), ";");
          lastIdx = regExp.lastIndex += Number(cp !== char);
        }
      }
      return ret + str.substr(lastIdx);
    }
  }
});
var require_lib5 = __commonJS2({
  "../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.decodeXMLStrict = exports2.decodeHTML5Strict = exports2.decodeHTML4Strict = exports2.decodeHTML5 = exports2.decodeHTML4 = exports2.decodeHTMLAttribute = exports2.decodeHTMLStrict = exports2.decodeHTML = exports2.decodeXML = exports2.DecodingMode = exports2.EntityDecoder = exports2.encodeHTML5 = exports2.encodeHTML4 = exports2.encodeNonAsciiHTML = exports2.encodeHTML = exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.encode = exports2.decodeStrict = exports2.decode = exports2.EncodingMode = exports2.EntityLevel = void 0;
    var decode_js_1 = require_decode();
    var encode_js_1 = require_encode();
    var escape_js_1 = require_escape();
    var EntityLevel2;
    (function(EntityLevel22) {
      EntityLevel22[EntityLevel22["XML"] = 0] = "XML";
      EntityLevel22[EntityLevel22["HTML"] = 1] = "HTML";
    })(EntityLevel2 = exports2.EntityLevel || (exports2.EntityLevel = {}));
    var EncodingMode2;
    (function(EncodingMode22) {
      EncodingMode22[EncodingMode22["UTF8"] = 0] = "UTF8";
      EncodingMode22[EncodingMode22["ASCII"] = 1] = "ASCII";
      EncodingMode22[EncodingMode22["Extensive"] = 2] = "Extensive";
      EncodingMode22[EncodingMode22["Attribute"] = 3] = "Attribute";
      EncodingMode22[EncodingMode22["Text"] = 4] = "Text";
    })(EncodingMode2 = exports2.EncodingMode || (exports2.EncodingMode = {}));
    function decode(data, options) {
      if (options === void 0) {
        options = EntityLevel2.XML;
      }
      var level = typeof options === "number" ? options : options.level;
      if (level === EntityLevel2.HTML) {
        var mode = typeof options === "object" ? options.mode : void 0;
        return (0, decode_js_1.decodeHTML)(data, mode);
      }
      return (0, decode_js_1.decodeXML)(data);
    }
    exports2.decode = decode;
    function decodeStrict(data, options) {
      var _a22;
      if (options === void 0) {
        options = EntityLevel2.XML;
      }
      var opts = typeof options === "number" ? { level: options } : options;
      (_a22 = opts.mode) !== null && _a22 !== void 0 ? _a22 : opts.mode = decode_js_1.DecodingMode.Strict;
      return decode(data, opts);
    }
    exports2.decodeStrict = decodeStrict;
    function encode3(data, options) {
      if (options === void 0) {
        options = EntityLevel2.XML;
      }
      var opts = typeof options === "number" ? { level: options } : options;
      if (opts.mode === EncodingMode2.UTF8)
        return (0, escape_js_1.escapeUTF8)(data);
      if (opts.mode === EncodingMode2.Attribute)
        return (0, escape_js_1.escapeAttribute)(data);
      if (opts.mode === EncodingMode2.Text)
        return (0, escape_js_1.escapeText)(data);
      if (opts.level === EntityLevel2.HTML) {
        if (opts.mode === EncodingMode2.ASCII) {
          return (0, encode_js_1.encodeNonAsciiHTML)(data);
        }
        return (0, encode_js_1.encodeHTML)(data);
      }
      return (0, escape_js_1.encodeXML)(data);
    }
    exports2.encode = encode3;
    var escape_js_2 = require_escape();
    Object.defineProperty(exports2, "encodeXML", { enumerable: true, get: function() {
      return escape_js_2.encodeXML;
    } });
    Object.defineProperty(exports2, "escape", { enumerable: true, get: function() {
      return escape_js_2.escape;
    } });
    Object.defineProperty(exports2, "escapeUTF8", { enumerable: true, get: function() {
      return escape_js_2.escapeUTF8;
    } });
    Object.defineProperty(exports2, "escapeAttribute", { enumerable: true, get: function() {
      return escape_js_2.escapeAttribute;
    } });
    Object.defineProperty(exports2, "escapeText", { enumerable: true, get: function() {
      return escape_js_2.escapeText;
    } });
    var encode_js_2 = require_encode();
    Object.defineProperty(exports2, "encodeHTML", { enumerable: true, get: function() {
      return encode_js_2.encodeHTML;
    } });
    Object.defineProperty(exports2, "encodeNonAsciiHTML", { enumerable: true, get: function() {
      return encode_js_2.encodeNonAsciiHTML;
    } });
    Object.defineProperty(exports2, "encodeHTML4", { enumerable: true, get: function() {
      return encode_js_2.encodeHTML;
    } });
    Object.defineProperty(exports2, "encodeHTML5", { enumerable: true, get: function() {
      return encode_js_2.encodeHTML;
    } });
    var decode_js_2 = require_decode();
    Object.defineProperty(exports2, "EntityDecoder", { enumerable: true, get: function() {
      return decode_js_2.EntityDecoder;
    } });
    Object.defineProperty(exports2, "DecodingMode", { enumerable: true, get: function() {
      return decode_js_2.DecodingMode;
    } });
    Object.defineProperty(exports2, "decodeXML", { enumerable: true, get: function() {
      return decode_js_2.decodeXML;
    } });
    Object.defineProperty(exports2, "decodeHTML", { enumerable: true, get: function() {
      return decode_js_2.decodeHTML;
    } });
    Object.defineProperty(exports2, "decodeHTMLStrict", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLStrict;
    } });
    Object.defineProperty(exports2, "decodeHTMLAttribute", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLAttribute;
    } });
    Object.defineProperty(exports2, "decodeHTML4", { enumerable: true, get: function() {
      return decode_js_2.decodeHTML;
    } });
    Object.defineProperty(exports2, "decodeHTML5", { enumerable: true, get: function() {
      return decode_js_2.decodeHTML;
    } });
    Object.defineProperty(exports2, "decodeHTML4Strict", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLStrict;
    } });
    Object.defineProperty(exports2, "decodeHTML5Strict", { enumerable: true, get: function() {
      return decode_js_2.decodeHTMLStrict;
    } });
    Object.defineProperty(exports2, "decodeXMLStrict", { enumerable: true, get: function() {
      return decode_js_2.decodeXML;
    } });
  }
});
var require_foreignNames = __commonJS2({
  "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.attributeNames = exports2.elementNames = void 0;
    exports2.elementNames = new Map([
      "altGlyph",
      "altGlyphDef",
      "altGlyphItem",
      "animateColor",
      "animateMotion",
      "animateTransform",
      "clipPath",
      "feBlend",
      "feColorMatrix",
      "feComponentTransfer",
      "feComposite",
      "feConvolveMatrix",
      "feDiffuseLighting",
      "feDisplacementMap",
      "feDistantLight",
      "feDropShadow",
      "feFlood",
      "feFuncA",
      "feFuncB",
      "feFuncG",
      "feFuncR",
      "feGaussianBlur",
      "feImage",
      "feMerge",
      "feMergeNode",
      "feMorphology",
      "feOffset",
      "fePointLight",
      "feSpecularLighting",
      "feSpotLight",
      "feTile",
      "feTurbulence",
      "foreignObject",
      "glyphRef",
      "linearGradient",
      "radialGradient",
      "textPath"
    ].map(function(val) {
      return [val.toLowerCase(), val];
    }));
    exports2.attributeNames = new Map([
      "definitionURL",
      "attributeName",
      "attributeType",
      "baseFrequency",
      "baseProfile",
      "calcMode",
      "clipPathUnits",
      "diffuseConstant",
      "edgeMode",
      "filterUnits",
      "glyphRef",
      "gradientTransform",
      "gradientUnits",
      "kernelMatrix",
      "kernelUnitLength",
      "keyPoints",
      "keySplines",
      "keyTimes",
      "lengthAdjust",
      "limitingConeAngle",
      "markerHeight",
      "markerUnits",
      "markerWidth",
      "maskContentUnits",
      "maskUnits",
      "numOctaves",
      "pathLength",
      "patternContentUnits",
      "patternTransform",
      "patternUnits",
      "pointsAtX",
      "pointsAtY",
      "pointsAtZ",
      "preserveAlpha",
      "preserveAspectRatio",
      "primitiveUnits",
      "refX",
      "refY",
      "repeatCount",
      "repeatDur",
      "requiredExtensions",
      "requiredFeatures",
      "specularConstant",
      "specularExponent",
      "spreadMethod",
      "startOffset",
      "stdDeviation",
      "stitchTiles",
      "surfaceScale",
      "systemLanguage",
      "tableValues",
      "targetX",
      "targetY",
      "textLength",
      "viewBox",
      "viewTarget",
      "xChannelSelector",
      "yChannelSelector",
      "zoomAndPan"
    ].map(function(val) {
      return [val.toLowerCase(), val];
    }));
  }
});
var require_lib6 = __commonJS2({
  "../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js"(exports2) {
    "use strict";
    var __assign2 = exports2 && exports2.__assign || function() {
      __assign2 = Object.assign || function(t9) {
        for (var s2, i22 = 1, n22 = arguments.length; i22 < n22; i22++) {
          s2 = arguments[i22];
          for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p))
            t9[p] = s2[p];
        }
        return t9;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.render = void 0;
    var ElementType2 = __importStar2(require_lib3());
    var entities_1 = require_lib5();
    var foreignNames_js_1 = require_foreignNames();
    var unencodedElements2 = /* @__PURE__ */ new Set([
      "style",
      "script",
      "xmp",
      "iframe",
      "noembed",
      "noframes",
      "plaintext",
      "noscript"
    ]);
    function replaceQuotes2(value) {
      return value.replace(/"/g, "&quot;");
    }
    function formatAttributes2(attributes, opts) {
      var _a22;
      if (!attributes)
        return;
      var encode3 = ((_a22 = opts.encodeEntities) !== null && _a22 !== void 0 ? _a22 : opts.decodeEntities) === false ? replaceQuotes2 : opts.xmlMode || opts.encodeEntities !== "utf8" ? entities_1.encodeXML : entities_1.escapeAttribute;
      return Object.keys(attributes).map(function(key) {
        var _a32, _b2;
        var value = (_a32 = attributes[key]) !== null && _a32 !== void 0 ? _a32 : "";
        if (opts.xmlMode === "foreign") {
          key = (_b2 = foreignNames_js_1.attributeNames.get(key)) !== null && _b2 !== void 0 ? _b2 : key;
        }
        if (!opts.emptyAttrs && !opts.xmlMode && value === "") {
          return key;
        }
        return "".concat(key, '="').concat(encode3(value), '"');
      }).join(" ");
    }
    var singleTag2 = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
    function render4(node, options) {
      if (options === void 0) {
        options = {};
      }
      var nodes = "length" in node ? node : [node];
      var output = "";
      for (var i22 = 0; i22 < nodes.length; i22++) {
        output += renderNode2(nodes[i22], options);
      }
      return output;
    }
    exports2.render = render4;
    exports2.default = render4;
    function renderNode2(node, options) {
      switch (node.type) {
        case ElementType2.Root:
          return render4(node.children, options);
        // @ts-expect-error We don't use `Doctype` yet
        case ElementType2.Doctype:
        case ElementType2.Directive:
          return renderDirective2(node);
        case ElementType2.Comment:
          return renderComment2(node);
        case ElementType2.CDATA:
          return renderCdata2(node);
        case ElementType2.Script:
        case ElementType2.Style:
        case ElementType2.Tag:
          return renderTag2(node, options);
        case ElementType2.Text:
          return renderText2(node, options);
      }
    }
    var foreignModeIntegrationPoints2 = /* @__PURE__ */ new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignObject",
      "desc",
      "title"
    ]);
    var foreignElements2 = /* @__PURE__ */ new Set(["svg", "math"]);
    function renderTag2(elem, opts) {
      var _a22;
      if (opts.xmlMode === "foreign") {
        elem.name = (_a22 = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a22 !== void 0 ? _a22 : elem.name;
        if (elem.parent && foreignModeIntegrationPoints2.has(elem.parent.name)) {
          opts = __assign2(__assign2({}, opts), { xmlMode: false });
        }
      }
      if (!opts.xmlMode && foreignElements2.has(elem.name)) {
        opts = __assign2(__assign2({}, opts), { xmlMode: "foreign" });
      }
      var tag = "<".concat(elem.name);
      var attribs = formatAttributes2(elem.attribs, opts);
      if (attribs) {
        tag += " ".concat(attribs);
      }
      if (elem.children.length === 0 && (opts.xmlMode ? (
        // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
        opts.selfClosingTags !== false
      ) : (
        // User explicitly asked for self-closing tags, even in HTML mode
        opts.selfClosingTags && singleTag2.has(elem.name)
      ))) {
        if (!opts.xmlMode)
          tag += " ";
        tag += "/>";
      } else {
        tag += ">";
        if (elem.children.length > 0) {
          tag += render4(elem.children, opts);
        }
        if (opts.xmlMode || !singleTag2.has(elem.name)) {
          tag += "</".concat(elem.name, ">");
        }
      }
      return tag;
    }
    function renderDirective2(elem) {
      return "<".concat(elem.data, ">");
    }
    function renderText2(elem, opts) {
      var _a22;
      var data = elem.data || "";
      if (((_a22 = opts.encodeEntities) !== null && _a22 !== void 0 ? _a22 : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements2.has(elem.parent.name))) {
        data = opts.xmlMode || opts.encodeEntities !== "utf8" ? (0, entities_1.encodeXML)(data) : (0, entities_1.escapeText)(data);
      }
      return data;
    }
    function renderCdata2(elem) {
      return "<![CDATA[".concat(elem.children[0].data, "]]>");
    }
    function renderComment2(elem) {
      return "<!--".concat(elem.data, "-->");
    }
  }
});
var require_stringify2 = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/stringify.js"(exports2) {
    "use strict";
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getOuterHTML = getOuterHTML;
    exports2.getInnerHTML = getInnerHTML;
    exports2.getText = getText2;
    exports2.textContent = textContent2;
    exports2.innerText = innerText;
    var domhandler_1 = require_lib4();
    var dom_serializer_1 = __importDefault2(require_lib6());
    var domelementtype_1 = require_lib3();
    function getOuterHTML(node, options) {
      return (0, dom_serializer_1.default)(node, options);
    }
    function getInnerHTML(node, options) {
      return (0, domhandler_1.hasChildren)(node) ? node.children.map(function(node2) {
        return getOuterHTML(node2, options);
      }).join("") : "";
    }
    function getText2(node) {
      if (Array.isArray(node))
        return node.map(getText2).join("");
      if ((0, domhandler_1.isTag)(node))
        return node.name === "br" ? "\n" : getText2(node.children);
      if ((0, domhandler_1.isCDATA)(node))
        return getText2(node.children);
      if ((0, domhandler_1.isText)(node))
        return node.data;
      return "";
    }
    function textContent2(node) {
      if (Array.isArray(node))
        return node.map(textContent2).join("");
      if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {
        return textContent2(node.children);
      }
      if ((0, domhandler_1.isText)(node))
        return node.data;
      return "";
    }
    function innerText(node) {
      if (Array.isArray(node))
        return node.map(innerText).join("");
      if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {
        return innerText(node.children);
      }
      if ((0, domhandler_1.isText)(node))
        return node.data;
      return "";
    }
  }
});
var require_traversal = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/traversal.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getChildren = getChildren;
    exports2.getParent = getParent;
    exports2.getSiblings = getSiblings;
    exports2.getAttributeValue = getAttributeValue;
    exports2.hasAttrib = hasAttrib;
    exports2.getName = getName;
    exports2.nextElementSibling = nextElementSibling;
    exports2.prevElementSibling = prevElementSibling;
    var domhandler_1 = require_lib4();
    function getChildren(elem) {
      return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];
    }
    function getParent(elem) {
      return elem.parent || null;
    }
    function getSiblings(elem) {
      var _a22, _b2;
      var parent = getParent(elem);
      if (parent != null)
        return getChildren(parent);
      var siblings = [elem];
      var prev = elem.prev, next = elem.next;
      while (prev != null) {
        siblings.unshift(prev);
        _a22 = prev, prev = _a22.prev;
      }
      while (next != null) {
        siblings.push(next);
        _b2 = next, next = _b2.next;
      }
      return siblings;
    }
    function getAttributeValue(elem, name2) {
      var _a22;
      return (_a22 = elem.attribs) === null || _a22 === void 0 ? void 0 : _a22[name2];
    }
    function hasAttrib(elem, name2) {
      return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name2) && elem.attribs[name2] != null;
    }
    function getName(elem) {
      return elem.name;
    }
    function nextElementSibling(elem) {
      var _a22;
      var next = elem.next;
      while (next !== null && !(0, domhandler_1.isTag)(next))
        _a22 = next, next = _a22.next;
      return next;
    }
    function prevElementSibling(elem) {
      var _a22;
      var prev = elem.prev;
      while (prev !== null && !(0, domhandler_1.isTag)(prev))
        _a22 = prev, prev = _a22.prev;
      return prev;
    }
  }
});
var require_manipulation = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/manipulation.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.removeElement = removeElement;
    exports2.replaceElement = replaceElement;
    exports2.appendChild = appendChild;
    exports2.append = append2;
    exports2.prependChild = prependChild;
    exports2.prepend = prepend;
    function removeElement(elem) {
      if (elem.prev)
        elem.prev.next = elem.next;
      if (elem.next)
        elem.next.prev = elem.prev;
      if (elem.parent) {
        var childs = elem.parent.children;
        var childsIndex = childs.lastIndexOf(elem);
        if (childsIndex >= 0) {
          childs.splice(childsIndex, 1);
        }
      }
      elem.next = null;
      elem.prev = null;
      elem.parent = null;
    }
    function replaceElement(elem, replacement) {
      var prev = replacement.prev = elem.prev;
      if (prev) {
        prev.next = replacement;
      }
      var next = replacement.next = elem.next;
      if (next) {
        next.prev = replacement;
      }
      var parent = replacement.parent = elem.parent;
      if (parent) {
        var childs = parent.children;
        childs[childs.lastIndexOf(elem)] = replacement;
        elem.parent = null;
      }
    }
    function appendChild(parent, child) {
      removeElement(child);
      child.next = null;
      child.parent = parent;
      if (parent.children.push(child) > 1) {
        var sibling = parent.children[parent.children.length - 2];
        sibling.next = child;
        child.prev = sibling;
      } else {
        child.prev = null;
      }
    }
    function append2(elem, next) {
      removeElement(next);
      var parent = elem.parent;
      var currNext = elem.next;
      next.next = currNext;
      next.prev = elem;
      elem.next = next;
      next.parent = parent;
      if (currNext) {
        currNext.prev = next;
        if (parent) {
          var childs = parent.children;
          childs.splice(childs.lastIndexOf(currNext), 0, next);
        }
      } else if (parent) {
        parent.children.push(next);
      }
    }
    function prependChild(parent, child) {
      removeElement(child);
      child.parent = parent;
      child.prev = null;
      if (parent.children.unshift(child) !== 1) {
        var sibling = parent.children[1];
        sibling.prev = child;
        child.next = sibling;
      } else {
        child.next = null;
      }
    }
    function prepend(elem, prev) {
      removeElement(prev);
      var parent = elem.parent;
      if (parent) {
        var childs = parent.children;
        childs.splice(childs.indexOf(elem), 0, prev);
      }
      if (elem.prev) {
        elem.prev.next = prev;
      }
      prev.parent = parent;
      prev.prev = elem.prev;
      prev.next = elem;
      elem.prev = prev;
    }
  }
});
var require_querying = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/querying.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.filter = filter22;
    exports2.find = find;
    exports2.findOneChild = findOneChild;
    exports2.findOne = findOne2;
    exports2.existsOne = existsOne;
    exports2.findAll = findAll;
    var domhandler_1 = require_lib4();
    function filter22(test3, node, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return find(test3, Array.isArray(node) ? node : [node], recurse, limit);
    }
    function find(test3, nodes, recurse, limit) {
      var result = [];
      var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];
      var indexStack = [0];
      for (; ; ) {
        if (indexStack[0] >= nodeStack[0].length) {
          if (indexStack.length === 1) {
            return result;
          }
          nodeStack.shift();
          indexStack.shift();
          continue;
        }
        var elem = nodeStack[0][indexStack[0]++];
        if (test3(elem)) {
          result.push(elem);
          if (--limit <= 0)
            return result;
        }
        if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {
          indexStack.unshift(0);
          nodeStack.unshift(elem.children);
        }
      }
    }
    function findOneChild(test3, nodes) {
      return nodes.find(test3);
    }
    function findOne2(test3, nodes, recurse) {
      if (recurse === void 0) {
        recurse = true;
      }
      var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];
      for (var i22 = 0; i22 < searchedNodes.length; i22++) {
        var node = searchedNodes[i22];
        if ((0, domhandler_1.isTag)(node) && test3(node)) {
          return node;
        }
        if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {
          var found = findOne2(test3, node.children, true);
          if (found)
            return found;
        }
      }
      return null;
    }
    function existsOne(test3, nodes) {
      return (Array.isArray(nodes) ? nodes : [nodes]).some(function(node) {
        return (0, domhandler_1.isTag)(node) && test3(node) || (0, domhandler_1.hasChildren)(node) && existsOne(test3, node.children);
      });
    }
    function findAll(test3, nodes) {
      var result = [];
      var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];
      var indexStack = [0];
      for (; ; ) {
        if (indexStack[0] >= nodeStack[0].length) {
          if (nodeStack.length === 1) {
            return result;
          }
          nodeStack.shift();
          indexStack.shift();
          continue;
        }
        var elem = nodeStack[0][indexStack[0]++];
        if ((0, domhandler_1.isTag)(elem) && test3(elem))
          result.push(elem);
        if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {
          indexStack.unshift(0);
          nodeStack.unshift(elem.children);
        }
      }
    }
  }
});
var require_legacy = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/legacy.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.testElement = testElement;
    exports2.getElements = getElements;
    exports2.getElementById = getElementById;
    exports2.getElementsByTagName = getElementsByTagName2;
    exports2.getElementsByClassName = getElementsByClassName;
    exports2.getElementsByTagType = getElementsByTagType;
    var domhandler_1 = require_lib4();
    var querying_js_1 = require_querying();
    var Checks = {
      tag_name: function(name2) {
        if (typeof name2 === "function") {
          return function(elem) {
            return (0, domhandler_1.isTag)(elem) && name2(elem.name);
          };
        } else if (name2 === "*") {
          return domhandler_1.isTag;
        }
        return function(elem) {
          return (0, domhandler_1.isTag)(elem) && elem.name === name2;
        };
      },
      tag_type: function(type) {
        if (typeof type === "function") {
          return function(elem) {
            return type(elem.type);
          };
        }
        return function(elem) {
          return elem.type === type;
        };
      },
      tag_contains: function(data) {
        if (typeof data === "function") {
          return function(elem) {
            return (0, domhandler_1.isText)(elem) && data(elem.data);
          };
        }
        return function(elem) {
          return (0, domhandler_1.isText)(elem) && elem.data === data;
        };
      }
    };
    function getAttribCheck(attrib, value) {
      if (typeof value === "function") {
        return function(elem) {
          return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]);
        };
      }
      return function(elem) {
        return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value;
      };
    }
    function combineFuncs(a2, b2) {
      return function(elem) {
        return a2(elem) || b2(elem);
      };
    }
    function compileTest(options) {
      var funcs = Object.keys(options).map(function(key) {
        var value = options[key];
        return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value) : getAttribCheck(key, value);
      });
      return funcs.length === 0 ? null : funcs.reduce(combineFuncs);
    }
    function testElement(options, node) {
      var test3 = compileTest(options);
      return test3 ? test3(node) : true;
    }
    function getElements(options, nodes, recurse, limit) {
      if (limit === void 0) {
        limit = Infinity;
      }
      var test3 = compileTest(options);
      return test3 ? (0, querying_js_1.filter)(test3, nodes, recurse, limit) : [];
    }
    function getElementById(id, nodes, recurse) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (!Array.isArray(nodes))
        nodes = [nodes];
      return (0, querying_js_1.findOne)(getAttribCheck("id", id), nodes, recurse);
    }
    function getElementsByTagName2(tagName, nodes, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return (0, querying_js_1.filter)(Checks["tag_name"](tagName), nodes, recurse, limit);
    }
    function getElementsByClassName(className, nodes, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return (0, querying_js_1.filter)(getAttribCheck("class", className), nodes, recurse, limit);
    }
    function getElementsByTagType(type, nodes, recurse, limit) {
      if (recurse === void 0) {
        recurse = true;
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      return (0, querying_js_1.filter)(Checks["tag_type"](type), nodes, recurse, limit);
    }
  }
});
var require_helpers = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/helpers.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DocumentPosition = void 0;
    exports2.removeSubsets = removeSubsets;
    exports2.compareDocumentPosition = compareDocumentPosition;
    exports2.uniqueSort = uniqueSort;
    var domhandler_1 = require_lib4();
    function removeSubsets(nodes) {
      var idx = nodes.length;
      while (--idx >= 0) {
        var node = nodes[idx];
        if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {
          nodes.splice(idx, 1);
          continue;
        }
        for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {
          if (nodes.includes(ancestor)) {
            nodes.splice(idx, 1);
            break;
          }
        }
      }
      return nodes;
    }
    var DocumentPosition2;
    (function(DocumentPosition22) {
      DocumentPosition22[DocumentPosition22["DISCONNECTED"] = 1] = "DISCONNECTED";
      DocumentPosition22[DocumentPosition22["PRECEDING"] = 2] = "PRECEDING";
      DocumentPosition22[DocumentPosition22["FOLLOWING"] = 4] = "FOLLOWING";
      DocumentPosition22[DocumentPosition22["CONTAINS"] = 8] = "CONTAINS";
      DocumentPosition22[DocumentPosition22["CONTAINED_BY"] = 16] = "CONTAINED_BY";
    })(DocumentPosition2 || (exports2.DocumentPosition = DocumentPosition2 = {}));
    function compareDocumentPosition(nodeA, nodeB) {
      var aParents = [];
      var bParents = [];
      if (nodeA === nodeB) {
        return 0;
      }
      var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;
      while (current) {
        aParents.unshift(current);
        current = current.parent;
      }
      current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;
      while (current) {
        bParents.unshift(current);
        current = current.parent;
      }
      var maxIdx = Math.min(aParents.length, bParents.length);
      var idx = 0;
      while (idx < maxIdx && aParents[idx] === bParents[idx]) {
        idx++;
      }
      if (idx === 0) {
        return DocumentPosition2.DISCONNECTED;
      }
      var sharedParent = aParents[idx - 1];
      var siblings = sharedParent.children;
      var aSibling = aParents[idx];
      var bSibling = bParents[idx];
      if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {
        if (sharedParent === nodeB) {
          return DocumentPosition2.FOLLOWING | DocumentPosition2.CONTAINED_BY;
        }
        return DocumentPosition2.FOLLOWING;
      }
      if (sharedParent === nodeA) {
        return DocumentPosition2.PRECEDING | DocumentPosition2.CONTAINS;
      }
      return DocumentPosition2.PRECEDING;
    }
    function uniqueSort(nodes) {
      nodes = nodes.filter(function(node, i22, arr) {
        return !arr.includes(node, i22 + 1);
      });
      nodes.sort(function(a2, b2) {
        var relative = compareDocumentPosition(a2, b2);
        if (relative & DocumentPosition2.PRECEDING) {
          return -1;
        } else if (relative & DocumentPosition2.FOLLOWING) {
          return 1;
        }
        return 0;
      });
      return nodes;
    }
  }
});
var require_feeds = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/feeds.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getFeed = getFeed2;
    var stringify_js_1 = require_stringify2();
    var legacy_js_1 = require_legacy();
    function getFeed2(doc) {
      var feedRoot = getOneElement(isValidFeed, doc);
      return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot);
    }
    function getAtomFeed(feedRoot) {
      var _a22;
      var childs = feedRoot.children;
      var feed = {
        type: "atom",
        items: (0, legacy_js_1.getElementsByTagName)("entry", childs).map(function(item) {
          var _a32;
          var children = item.children;
          var entry = { media: getMediaElements(children) };
          addConditionally(entry, "id", "id", children);
          addConditionally(entry, "title", "title", children);
          var href2 = (_a32 = getOneElement("link", children)) === null || _a32 === void 0 ? void 0 : _a32.attribs["href"];
          if (href2) {
            entry.link = href2;
          }
          var description = fetch2("summary", children) || fetch2("content", children);
          if (description) {
            entry.description = description;
          }
          var pubDate = fetch2("updated", children);
          if (pubDate) {
            entry.pubDate = new Date(pubDate);
          }
          return entry;
        })
      };
      addConditionally(feed, "id", "id", childs);
      addConditionally(feed, "title", "title", childs);
      var href = (_a22 = getOneElement("link", childs)) === null || _a22 === void 0 ? void 0 : _a22.attribs["href"];
      if (href) {
        feed.link = href;
      }
      addConditionally(feed, "description", "subtitle", childs);
      var updated = fetch2("updated", childs);
      if (updated) {
        feed.updated = new Date(updated);
      }
      addConditionally(feed, "author", "email", childs, true);
      return feed;
    }
    function getRssFeed(feedRoot) {
      var _a22, _b2;
      var childs = (_b2 = (_a22 = getOneElement("channel", feedRoot.children)) === null || _a22 === void 0 ? void 0 : _a22.children) !== null && _b2 !== void 0 ? _b2 : [];
      var feed = {
        type: feedRoot.name.substr(0, 3),
        id: "",
        items: (0, legacy_js_1.getElementsByTagName)("item", feedRoot.children).map(function(item) {
          var children = item.children;
          var entry = { media: getMediaElements(children) };
          addConditionally(entry, "id", "guid", children);
          addConditionally(entry, "title", "title", children);
          addConditionally(entry, "link", "link", children);
          addConditionally(entry, "description", "description", children);
          var pubDate = fetch2("pubDate", children) || fetch2("dc:date", children);
          if (pubDate)
            entry.pubDate = new Date(pubDate);
          return entry;
        })
      };
      addConditionally(feed, "title", "title", childs);
      addConditionally(feed, "link", "link", childs);
      addConditionally(feed, "description", "description", childs);
      var updated = fetch2("lastBuildDate", childs);
      if (updated) {
        feed.updated = new Date(updated);
      }
      addConditionally(feed, "author", "managingEditor", childs, true);
      return feed;
    }
    var MEDIA_KEYS_STRING = ["url", "type", "lang"];
    var MEDIA_KEYS_INT = [
      "fileSize",
      "bitrate",
      "framerate",
      "samplingrate",
      "channels",
      "duration",
      "height",
      "width"
    ];
    function getMediaElements(where) {
      return (0, legacy_js_1.getElementsByTagName)("media:content", where).map(function(elem) {
        var attribs = elem.attribs;
        var media = {
          medium: attribs["medium"],
          isDefault: !!attribs["isDefault"]
        };
        for (var _i2 = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i2 < MEDIA_KEYS_STRING_1.length; _i2++) {
          var attrib = MEDIA_KEYS_STRING_1[_i2];
          if (attribs[attrib]) {
            media[attrib] = attribs[attrib];
          }
        }
        for (var _a22 = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a22 < MEDIA_KEYS_INT_1.length; _a22++) {
          var attrib = MEDIA_KEYS_INT_1[_a22];
          if (attribs[attrib]) {
            media[attrib] = parseInt(attribs[attrib], 10);
          }
        }
        if (attribs["expression"]) {
          media.expression = attribs["expression"];
        }
        return media;
      });
    }
    function getOneElement(tagName, node) {
      return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];
    }
    function fetch2(tagName, where, recurse) {
      if (recurse === void 0) {
        recurse = false;
      }
      return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();
    }
    function addConditionally(obj, prop, tagName, where, recurse) {
      if (recurse === void 0) {
        recurse = false;
      }
      var val = fetch2(tagName, where, recurse);
      if (val)
        obj[prop] = val;
    }
    function isValidFeed(value) {
      return value === "rss" || value === "feed" || value === "rdf:RDF";
    }
  }
});
var require_lib7 = __commonJS2({
  "../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __exportStar2 = exports2 && exports2.__exportStar || function(m2, exports22) {
      for (var p in m2) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports22, p)) __createBinding2(exports22, m2, p);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.hasChildren = exports2.isDocument = exports2.isComment = exports2.isText = exports2.isCDATA = exports2.isTag = void 0;
    __exportStar2(require_stringify2(), exports2);
    __exportStar2(require_traversal(), exports2);
    __exportStar2(require_manipulation(), exports2);
    __exportStar2(require_querying(), exports2);
    __exportStar2(require_legacy(), exports2);
    __exportStar2(require_helpers(), exports2);
    __exportStar2(require_feeds(), exports2);
    var domhandler_1 = require_lib4();
    Object.defineProperty(exports2, "isTag", { enumerable: true, get: function() {
      return domhandler_1.isTag;
    } });
    Object.defineProperty(exports2, "isCDATA", { enumerable: true, get: function() {
      return domhandler_1.isCDATA;
    } });
    Object.defineProperty(exports2, "isText", { enumerable: true, get: function() {
      return domhandler_1.isText;
    } });
    Object.defineProperty(exports2, "isComment", { enumerable: true, get: function() {
      return domhandler_1.isComment;
    } });
    Object.defineProperty(exports2, "isDocument", { enumerable: true, get: function() {
      return domhandler_1.isDocument;
    } });
    Object.defineProperty(exports2, "hasChildren", { enumerable: true, get: function() {
      return domhandler_1.hasChildren;
    } });
  }
});
var require_static = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/static.js"(exports2) {
    "use strict";
    var __assign2 = exports2 && exports2.__assign || function() {
      __assign2 = Object.assign || function(t9) {
        for (var s2, i22 = 1, n22 = arguments.length; i22 < n22; i22++) {
          s2 = arguments[i22];
          for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p))
            t9[p] = s2[p];
        }
        return t9;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.merge = exports2.contains = exports2.root = exports2.parseHTML = exports2.text = exports2.xml = exports2.html = void 0;
    var domutils_1 = require_lib7();
    var options_js_1 = __importStar2(require_options());
    function render4(that, dom, options) {
      if (!that)
        return "";
      return that(dom !== null && dom !== void 0 ? dom : that._root.children, null, void 0, options).toString();
    }
    function isOptions(dom, options) {
      return !options && typeof dom === "object" && dom != null && !("length" in dom) && !("type" in dom);
    }
    function html(dom, options) {
      var toRender = isOptions(dom) ? (options = dom, void 0) : dom;
      var opts = __assign2(__assign2(__assign2({}, options_js_1.default), this === null || this === void 0 ? void 0 : this._options), (0, options_js_1.flatten)(options !== null && options !== void 0 ? options : {}));
      return render4(this, toRender, opts);
    }
    exports2.html = html;
    function xml(dom) {
      var options = __assign2(__assign2({}, this._options), { xmlMode: true });
      return render4(this, dom, options);
    }
    exports2.xml = xml;
    function text(elements) {
      var elems = elements ? elements : this ? this.root() : [];
      var ret = "";
      for (var i22 = 0; i22 < elems.length; i22++) {
        ret += (0, domutils_1.textContent)(elems[i22]);
      }
      return ret;
    }
    exports2.text = text;
    function parseHTML(data, context, keepScripts) {
      if (keepScripts === void 0) {
        keepScripts = typeof context === "boolean" ? context : false;
      }
      if (!data || typeof data !== "string") {
        return null;
      }
      if (typeof context === "boolean") {
        keepScripts = context;
      }
      var parsed = this.load(data, options_js_1.default, false);
      if (!keepScripts) {
        parsed("script").remove();
      }
      return parsed.root()[0].children.slice();
    }
    exports2.parseHTML = parseHTML;
    function root() {
      return this(this._root);
    }
    exports2.root = root;
    function contains(container2, contained) {
      if (contained === container2) {
        return false;
      }
      var next = contained;
      while (next && next !== next.parent) {
        next = next.parent;
        if (next === container2) {
          return true;
        }
      }
      return false;
    }
    exports2.contains = contains;
    function merge22(arr1, arr2) {
      if (!isArrayLike2(arr1) || !isArrayLike2(arr2)) {
        return;
      }
      var newLength = arr1.length;
      var len = +arr2.length;
      for (var i22 = 0; i22 < len; i22++) {
        arr1[newLength++] = arr2[i22];
      }
      arr1.length = newLength;
      return arr1;
    }
    exports2.merge = merge22;
    function isArrayLike2(item) {
      if (Array.isArray(item)) {
        return true;
      }
      if (typeof item !== "object" || !Object.prototype.hasOwnProperty.call(item, "length") || typeof item.length !== "number" || item.length < 0) {
        return false;
      }
      for (var i22 = 0; i22 < item.length; i22++) {
        if (!(i22 in item)) {
          return false;
        }
      }
      return true;
    }
  }
});
var require_utils4 = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.isHtml = exports2.cloneDom = exports2.domEach = exports2.cssCase = exports2.camelCase = exports2.isCheerio = exports2.isTag = void 0;
    var domhandler_1 = require_lib4();
    var domhandler_2 = require_lib4();
    Object.defineProperty(exports2, "isTag", { enumerable: true, get: function() {
      return domhandler_2.isTag;
    } });
    function isCheerio(maybeCheerio) {
      return maybeCheerio.cheerio != null;
    }
    exports2.isCheerio = isCheerio;
    function camelCase(str) {
      return str.replace(/[_.-](\w|$)/g, function(_3, x3) {
        return x3.toUpperCase();
      });
    }
    exports2.camelCase = camelCase;
    function cssCase(str) {
      return str.replace(/[A-Z]/g, "-$&").toLowerCase();
    }
    exports2.cssCase = cssCase;
    function domEach(array, fn3) {
      var len = array.length;
      for (var i22 = 0; i22 < len; i22++)
        fn3(array[i22], i22);
      return array;
    }
    exports2.domEach = domEach;
    function cloneDom(dom) {
      var clone = "length" in dom ? Array.prototype.map.call(dom, function(el) {
        return (0, domhandler_1.cloneNode)(el, true);
      }) : [(0, domhandler_1.cloneNode)(dom, true)];
      var root = new domhandler_1.Document(clone);
      clone.forEach(function(node) {
        node.parent = root;
      });
      return clone;
    }
    exports2.cloneDom = cloneDom;
    var CharacterCodes;
    (function(CharacterCodes2) {
      CharacterCodes2[CharacterCodes2["LowerA"] = 97] = "LowerA";
      CharacterCodes2[CharacterCodes2["LowerZ"] = 122] = "LowerZ";
      CharacterCodes2[CharacterCodes2["UpperA"] = 65] = "UpperA";
      CharacterCodes2[CharacterCodes2["UpperZ"] = 90] = "UpperZ";
      CharacterCodes2[CharacterCodes2["Exclamation"] = 33] = "Exclamation";
    })(CharacterCodes || (CharacterCodes = {}));
    function isHtml(str) {
      var tagStart = str.indexOf("<");
      if (tagStart < 0 || tagStart > str.length - 3)
        return false;
      var tagChar = str.charCodeAt(tagStart + 1);
      return (tagChar >= CharacterCodes.LowerA && tagChar <= CharacterCodes.LowerZ || tagChar >= CharacterCodes.UpperA && tagChar <= CharacterCodes.UpperZ || tagChar === CharacterCodes.Exclamation) && str.includes(">", tagStart + 2);
    }
    exports2.isHtml = isHtml;
  }
});
var require_attributes = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/attributes.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.toggleClass = exports2.removeClass = exports2.addClass = exports2.hasClass = exports2.removeAttr = exports2.val = exports2.data = exports2.prop = exports2.attr = void 0;
    var static_js_1 = require_static();
    var utils_js_1 = require_utils4();
    var domutils_1 = require_lib7();
    var hasOwn = Object.prototype.hasOwnProperty;
    var rspace = /\s+/;
    var dataAttrPrefix = "data-";
    var primitives = {
      null: null,
      true: true,
      false: false
    };
    var rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i;
    var rbrace = /^{[^]*}$|^\[[^]*]$/;
    function getAttr(elem, name2, xmlMode) {
      var _a22;
      if (!elem || !(0, utils_js_1.isTag)(elem))
        return void 0;
      (_a22 = elem.attribs) !== null && _a22 !== void 0 ? _a22 : elem.attribs = {};
      if (!name2) {
        return elem.attribs;
      }
      if (hasOwn.call(elem.attribs, name2)) {
        return !xmlMode && rboolean.test(name2) ? name2 : elem.attribs[name2];
      }
      if (elem.name === "option" && name2 === "value") {
        return (0, static_js_1.text)(elem.children);
      }
      if (elem.name === "input" && (elem.attribs["type"] === "radio" || elem.attribs["type"] === "checkbox") && name2 === "value") {
        return "on";
      }
      return void 0;
    }
    function setAttr(el, name2, value) {
      if (value === null) {
        removeAttribute(el, name2);
      } else {
        el.attribs[name2] = "".concat(value);
      }
    }
    function attr(name2, value) {
      if (typeof name2 === "object" || value !== void 0) {
        if (typeof value === "function") {
          if (typeof name2 !== "string") {
            {
              throw new Error("Bad combination of arguments.");
            }
          }
          return (0, utils_js_1.domEach)(this, function(el, i22) {
            if ((0, utils_js_1.isTag)(el))
              setAttr(el, name2, value.call(el, i22, el.attribs[name2]));
          });
        }
        return (0, utils_js_1.domEach)(this, function(el) {
          if (!(0, utils_js_1.isTag)(el))
            return;
          if (typeof name2 === "object") {
            Object.keys(name2).forEach(function(objName) {
              var objValue = name2[objName];
              setAttr(el, objName, objValue);
            });
          } else {
            setAttr(el, name2, value);
          }
        });
      }
      return arguments.length > 1 ? this : getAttr(this[0], name2, this.options.xmlMode);
    }
    exports2.attr = attr;
    function getProp(el, name2, xmlMode) {
      return name2 in el ? (
        // @ts-expect-error TS doesn't like us accessing the value directly here.
        el[name2]
      ) : !xmlMode && rboolean.test(name2) ? getAttr(el, name2, false) !== void 0 : getAttr(el, name2, xmlMode);
    }
    function setProp(el, name2, value, xmlMode) {
      if (name2 in el) {
        el[name2] = value;
      } else {
        setAttr(el, name2, !xmlMode && rboolean.test(name2) ? value ? "" : null : "".concat(value));
      }
    }
    function prop(name2, value) {
      var _this = this;
      var _a22;
      if (typeof name2 === "string" && value === void 0) {
        var el = this[0];
        if (!el || !(0, utils_js_1.isTag)(el))
          return void 0;
        switch (name2) {
          case "style": {
            var property_1 = this.css();
            var keys = Object.keys(property_1);
            keys.forEach(function(p, i22) {
              property_1[i22] = p;
            });
            property_1.length = keys.length;
            return property_1;
          }
          case "tagName":
          case "nodeName": {
            return el.name.toUpperCase();
          }
          case "href":
          case "src": {
            var prop_1 = (_a22 = el.attribs) === null || _a22 === void 0 ? void 0 : _a22[name2];
            if (typeof URL !== "undefined" && (name2 === "href" && (el.tagName === "a" || el.name === "link") || name2 === "src" && (el.tagName === "img" || el.tagName === "iframe" || el.tagName === "audio" || el.tagName === "video" || el.tagName === "source")) && prop_1 !== void 0 && this.options.baseURI) {
              return new URL(prop_1, this.options.baseURI).href;
            }
            return prop_1;
          }
          case "innerText": {
            return (0, domutils_1.innerText)(el);
          }
          case "textContent": {
            return (0, domutils_1.textContent)(el);
          }
          case "outerHTML":
            return this.clone().wrap("<container />").parent().html();
          case "innerHTML":
            return this.html();
          default:
            return getProp(el, name2, this.options.xmlMode);
        }
      }
      if (typeof name2 === "object" || value !== void 0) {
        if (typeof value === "function") {
          if (typeof name2 === "object") {
            throw new Error("Bad combination of arguments.");
          }
          return (0, utils_js_1.domEach)(this, function(el2, i22) {
            if ((0, utils_js_1.isTag)(el2)) {
              setProp(el2, name2, value.call(el2, i22, getProp(el2, name2, _this.options.xmlMode)), _this.options.xmlMode);
            }
          });
        }
        return (0, utils_js_1.domEach)(this, function(el2) {
          if (!(0, utils_js_1.isTag)(el2))
            return;
          if (typeof name2 === "object") {
            Object.keys(name2).forEach(function(key) {
              var val2 = name2[key];
              setProp(el2, key, val2, _this.options.xmlMode);
            });
          } else {
            setProp(el2, name2, value, _this.options.xmlMode);
          }
        });
      }
      return void 0;
    }
    exports2.prop = prop;
    function setData(el, name2, value) {
      var _a22;
      var elem = el;
      (_a22 = elem.data) !== null && _a22 !== void 0 ? _a22 : elem.data = {};
      if (typeof name2 === "object")
        Object.assign(elem.data, name2);
      else if (typeof name2 === "string" && value !== void 0) {
        elem.data[name2] = value;
      }
    }
    function readData(el, name2) {
      var domNames;
      var jsNames;
      var value;
      if (name2 == null) {
        domNames = Object.keys(el.attribs).filter(function(attrName) {
          return attrName.startsWith(dataAttrPrefix);
        });
        jsNames = domNames.map(function(domName2) {
          return (0, utils_js_1.camelCase)(domName2.slice(dataAttrPrefix.length));
        });
      } else {
        domNames = [dataAttrPrefix + (0, utils_js_1.cssCase)(name2)];
        jsNames = [name2];
      }
      for (var idx = 0; idx < domNames.length; ++idx) {
        var domName = domNames[idx];
        var jsName = jsNames[idx];
        if (hasOwn.call(el.attribs, domName) && !hasOwn.call(el.data, jsName)) {
          value = el.attribs[domName];
          if (hasOwn.call(primitives, value)) {
            value = primitives[value];
          } else if (value === String(Number(value))) {
            value = Number(value);
          } else if (rbrace.test(value)) {
            try {
              value = JSON.parse(value);
            } catch (e2) {
            }
          }
          el.data[jsName] = value;
        }
      }
      return name2 == null ? el.data : value;
    }
    function data(name2, value) {
      var _a22;
      var elem = this[0];
      if (!elem || !(0, utils_js_1.isTag)(elem))
        return;
      var dataEl = elem;
      (_a22 = dataEl.data) !== null && _a22 !== void 0 ? _a22 : dataEl.data = {};
      if (!name2) {
        return readData(dataEl);
      }
      if (typeof name2 === "object" || value !== void 0) {
        (0, utils_js_1.domEach)(this, function(el) {
          if ((0, utils_js_1.isTag)(el)) {
            if (typeof name2 === "object")
              setData(el, name2);
            else
              setData(el, name2, value);
          }
        });
        return this;
      }
      if (hasOwn.call(dataEl.data, name2)) {
        return dataEl.data[name2];
      }
      return readData(dataEl, name2);
    }
    exports2.data = data;
    function val(value) {
      var querying = arguments.length === 0;
      var element = this[0];
      if (!element || !(0, utils_js_1.isTag)(element))
        return querying ? void 0 : this;
      switch (element.name) {
        case "textarea":
          return this.text(value);
        case "select": {
          var option2 = this.find("option:selected");
          if (!querying) {
            if (this.attr("multiple") == null && typeof value === "object") {
              return this;
            }
            this.find("option").removeAttr("selected");
            var values = typeof value !== "object" ? [value] : value;
            for (var i22 = 0; i22 < values.length; i22++) {
              this.find('option[value="'.concat(values[i22], '"]')).attr("selected", "");
            }
            return this;
          }
          return this.attr("multiple") ? option2.toArray().map(function(el) {
            return (0, static_js_1.text)(el.children);
          }) : option2.attr("value");
        }
        case "input":
        case "option":
          return querying ? this.attr("value") : this.attr("value", value);
      }
      return void 0;
    }
    exports2.val = val;
    function removeAttribute(elem, name2) {
      if (!elem.attribs || !hasOwn.call(elem.attribs, name2))
        return;
      delete elem.attribs[name2];
    }
    function splitNames(names) {
      return names ? names.trim().split(rspace) : [];
    }
    function removeAttr(name2) {
      var attrNames = splitNames(name2);
      var _loop_1 = function(i3) {
        (0, utils_js_1.domEach)(this_1, function(elem) {
          if ((0, utils_js_1.isTag)(elem))
            removeAttribute(elem, attrNames[i3]);
        });
      };
      var this_1 = this;
      for (var i22 = 0; i22 < attrNames.length; i22++) {
        _loop_1(i22);
      }
      return this;
    }
    exports2.removeAttr = removeAttr;
    function hasClass(className) {
      return this.toArray().some(function(elem) {
        var clazz = (0, utils_js_1.isTag)(elem) && elem.attribs["class"];
        var idx = -1;
        if (clazz && className.length) {
          while ((idx = clazz.indexOf(className, idx + 1)) > -1) {
            var end = idx + className.length;
            if ((idx === 0 || rspace.test(clazz[idx - 1])) && (end === clazz.length || rspace.test(clazz[end]))) {
              return true;
            }
          }
        }
        return false;
      });
    }
    exports2.hasClass = hasClass;
    function addClass(value) {
      if (typeof value === "function") {
        return (0, utils_js_1.domEach)(this, function(el2, i3) {
          if ((0, utils_js_1.isTag)(el2)) {
            var className2 = el2.attribs["class"] || "";
            addClass.call([el2], value.call(el2, i3, className2));
          }
        });
      }
      if (!value || typeof value !== "string")
        return this;
      var classNames = value.split(rspace);
      var numElements = this.length;
      for (var i22 = 0; i22 < numElements; i22++) {
        var el = this[i22];
        if (!(0, utils_js_1.isTag)(el))
          continue;
        var className = getAttr(el, "class", false);
        if (!className) {
          setAttr(el, "class", classNames.join(" ").trim());
        } else {
          var setClass = " ".concat(className, " ");
          for (var j2 = 0; j2 < classNames.length; j2++) {
            var appendClass = "".concat(classNames[j2], " ");
            if (!setClass.includes(" ".concat(appendClass)))
              setClass += appendClass;
          }
          setAttr(el, "class", setClass.trim());
        }
      }
      return this;
    }
    exports2.addClass = addClass;
    function removeClass(name2) {
      if (typeof name2 === "function") {
        return (0, utils_js_1.domEach)(this, function(el, i22) {
          if ((0, utils_js_1.isTag)(el)) {
            removeClass.call([el], name2.call(el, i22, el.attribs["class"] || ""));
          }
        });
      }
      var classes = splitNames(name2);
      var numClasses = classes.length;
      var removeAll = arguments.length === 0;
      return (0, utils_js_1.domEach)(this, function(el) {
        if (!(0, utils_js_1.isTag)(el))
          return;
        if (removeAll) {
          el.attribs["class"] = "";
        } else {
          var elClasses = splitNames(el.attribs["class"]);
          var changed = false;
          for (var j2 = 0; j2 < numClasses; j2++) {
            var index = elClasses.indexOf(classes[j2]);
            if (index >= 0) {
              elClasses.splice(index, 1);
              changed = true;
              j2--;
            }
          }
          if (changed) {
            el.attribs["class"] = elClasses.join(" ");
          }
        }
      });
    }
    exports2.removeClass = removeClass;
    function toggleClass(value, stateVal) {
      if (typeof value === "function") {
        return (0, utils_js_1.domEach)(this, function(el2, i3) {
          if ((0, utils_js_1.isTag)(el2)) {
            toggleClass.call([el2], value.call(el2, i3, el2.attribs["class"] || "", stateVal), stateVal);
          }
        });
      }
      if (!value || typeof value !== "string")
        return this;
      var classNames = value.split(rspace);
      var numClasses = classNames.length;
      var state = typeof stateVal === "boolean" ? stateVal ? 1 : -1 : 0;
      var numElements = this.length;
      for (var i22 = 0; i22 < numElements; i22++) {
        var el = this[i22];
        if (!(0, utils_js_1.isTag)(el))
          continue;
        var elementClasses = splitNames(el.attribs["class"]);
        for (var j2 = 0; j2 < numClasses; j2++) {
          var index = elementClasses.indexOf(classNames[j2]);
          if (state >= 0 && index < 0) {
            elementClasses.push(classNames[j2]);
          } else if (state <= 0 && index >= 0) {
            elementClasses.splice(index, 1);
          }
        }
        el.attribs["class"] = elementClasses.join(" ");
      }
      return this;
    }
    exports2.toggleClass = toggleClass;
  }
});
var require_types2 = __commonJS2({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/types.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.AttributeAction = exports2.IgnoreCaseMode = exports2.SelectorType = void 0;
    var SelectorType;
    (function(SelectorType2) {
      SelectorType2["Attribute"] = "attribute";
      SelectorType2["Pseudo"] = "pseudo";
      SelectorType2["PseudoElement"] = "pseudo-element";
      SelectorType2["Tag"] = "tag";
      SelectorType2["Universal"] = "universal";
      SelectorType2["Adjacent"] = "adjacent";
      SelectorType2["Child"] = "child";
      SelectorType2["Descendant"] = "descendant";
      SelectorType2["Parent"] = "parent";
      SelectorType2["Sibling"] = "sibling";
      SelectorType2["ColumnCombinator"] = "column-combinator";
    })(SelectorType = exports2.SelectorType || (exports2.SelectorType = {}));
    exports2.IgnoreCaseMode = {
      Unknown: null,
      QuirksMode: "quirks",
      IgnoreCase: true,
      CaseSensitive: false
    };
    var AttributeAction;
    (function(AttributeAction2) {
      AttributeAction2["Any"] = "any";
      AttributeAction2["Element"] = "element";
      AttributeAction2["End"] = "end";
      AttributeAction2["Equals"] = "equals";
      AttributeAction2["Exists"] = "exists";
      AttributeAction2["Hyphen"] = "hyphen";
      AttributeAction2["Not"] = "not";
      AttributeAction2["Start"] = "start";
    })(AttributeAction = exports2.AttributeAction || (exports2.AttributeAction = {}));
  }
});
var require_parse2 = __commonJS2({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/parse.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.parse = exports2.isTraversal = void 0;
    var types_1 = require_types2();
    var reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/;
    var reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi;
    var actionTypes = /* @__PURE__ */ new Map([
      [126, types_1.AttributeAction.Element],
      [94, types_1.AttributeAction.Start],
      [36, types_1.AttributeAction.End],
      [42, types_1.AttributeAction.Any],
      [33, types_1.AttributeAction.Not],
      [124, types_1.AttributeAction.Hyphen]
    ]);
    var unpackPseudos = /* @__PURE__ */ new Set([
      "has",
      "not",
      "matches",
      "is",
      "where",
      "host",
      "host-context"
    ]);
    function isTraversal(selector) {
      switch (selector.type) {
        case types_1.SelectorType.Adjacent:
        case types_1.SelectorType.Child:
        case types_1.SelectorType.Descendant:
        case types_1.SelectorType.Parent:
        case types_1.SelectorType.Sibling:
        case types_1.SelectorType.ColumnCombinator:
          return true;
        default:
          return false;
      }
    }
    exports2.isTraversal = isTraversal;
    var stripQuotesFromPseudos = /* @__PURE__ */ new Set(["contains", "icontains"]);
    function funescape(_3, escaped, escapedWhitespace) {
      var high = parseInt(escaped, 16) - 65536;
      return high !== high || escapedWhitespace ? escaped : high < 0 ? (
        // BMP codepoint
        String.fromCharCode(high + 65536)
      ) : (
        // Supplemental Plane codepoint (surrogate pair)
        String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320)
      );
    }
    function unescapeCSS(str) {
      return str.replace(reEscape, funescape);
    }
    function isQuote(c3) {
      return c3 === 39 || c3 === 34;
    }
    function isWhitespace2(c3) {
      return c3 === 32 || c3 === 9 || c3 === 10 || c3 === 12 || c3 === 13;
    }
    function parse(selector) {
      var subselects = [];
      var endIndex = parseSelector(subselects, "".concat(selector), 0);
      if (endIndex < selector.length) {
        throw new Error("Unmatched selector: ".concat(selector.slice(endIndex)));
      }
      return subselects;
    }
    exports2.parse = parse;
    function parseSelector(subselects, selector, selectorIndex) {
      var tokens = [];
      function getName(offset) {
        var match = selector.slice(selectorIndex + offset).match(reName);
        if (!match) {
          throw new Error("Expected name, found ".concat(selector.slice(selectorIndex)));
        }
        var name2 = match[0];
        selectorIndex += offset + name2.length;
        return unescapeCSS(name2);
      }
      function stripWhitespace(offset) {
        selectorIndex += offset;
        while (selectorIndex < selector.length && isWhitespace2(selector.charCodeAt(selectorIndex))) {
          selectorIndex++;
        }
      }
      function readValueWithParenthesis() {
        selectorIndex += 1;
        var start = selectorIndex;
        var counter = 1;
        for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {
          if (selector.charCodeAt(selectorIndex) === 40 && !isEscaped(selectorIndex)) {
            counter++;
          } else if (selector.charCodeAt(selectorIndex) === 41 && !isEscaped(selectorIndex)) {
            counter--;
          }
        }
        if (counter) {
          throw new Error("Parenthesis not matched");
        }
        return unescapeCSS(selector.slice(start, selectorIndex - 1));
      }
      function isEscaped(pos) {
        var slashCount = 0;
        while (selector.charCodeAt(--pos) === 92)
          slashCount++;
        return (slashCount & 1) === 1;
      }
      function ensureNotTraversal() {
        if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {
          throw new Error("Did not expect successive traversals.");
        }
      }
      function addTraversal(type) {
        if (tokens.length > 0 && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) {
          tokens[tokens.length - 1].type = type;
          return;
        }
        ensureNotTraversal();
        tokens.push({ type });
      }
      function addSpecialAttribute(name2, action2) {
        tokens.push({
          type: types_1.SelectorType.Attribute,
          name: name2,
          action: action2,
          value: getName(1),
          namespace: null,
          ignoreCase: "quirks"
        });
      }
      function finalizeSubselector() {
        if (tokens.length && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) {
          tokens.pop();
        }
        if (tokens.length === 0) {
          throw new Error("Empty sub-selector");
        }
        subselects.push(tokens);
      }
      stripWhitespace(0);
      if (selector.length === selectorIndex) {
        return selectorIndex;
      }
      loop: while (selectorIndex < selector.length) {
        var firstChar = selector.charCodeAt(selectorIndex);
        switch (firstChar) {
          // Whitespace
          case 32:
          case 9:
          case 10:
          case 12:
          case 13: {
            if (tokens.length === 0 || tokens[0].type !== types_1.SelectorType.Descendant) {
              ensureNotTraversal();
              tokens.push({ type: types_1.SelectorType.Descendant });
            }
            stripWhitespace(1);
            break;
          }
          // Traversals
          case 62: {
            addTraversal(types_1.SelectorType.Child);
            stripWhitespace(1);
            break;
          }
          case 60: {
            addTraversal(types_1.SelectorType.Parent);
            stripWhitespace(1);
            break;
          }
          case 126: {
            addTraversal(types_1.SelectorType.Sibling);
            stripWhitespace(1);
            break;
          }
          case 43: {
            addTraversal(types_1.SelectorType.Adjacent);
            stripWhitespace(1);
            break;
          }
          // Special attribute selectors: .class, #id
          case 46: {
            addSpecialAttribute("class", types_1.AttributeAction.Element);
            break;
          }
          case 35: {
            addSpecialAttribute("id", types_1.AttributeAction.Equals);
            break;
          }
          case 91: {
            stripWhitespace(1);
            var name_1 = void 0;
            var namespace = null;
            if (selector.charCodeAt(selectorIndex) === 124) {
              name_1 = getName(1);
            } else if (selector.startsWith("*|", selectorIndex)) {
              namespace = "*";
              name_1 = getName(2);
            } else {
              name_1 = getName(0);
              if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 61) {
                namespace = name_1;
                name_1 = getName(1);
              }
            }
            stripWhitespace(0);
            var action = types_1.AttributeAction.Exists;
            var possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));
            if (possibleAction) {
              action = possibleAction;
              if (selector.charCodeAt(selectorIndex + 1) !== 61) {
                throw new Error("Expected `=`");
              }
              stripWhitespace(2);
            } else if (selector.charCodeAt(selectorIndex) === 61) {
              action = types_1.AttributeAction.Equals;
              stripWhitespace(1);
            }
            var value = "";
            var ignoreCase = null;
            if (action !== "exists") {
              if (isQuote(selector.charCodeAt(selectorIndex))) {
                var quote = selector.charCodeAt(selectorIndex);
                var sectionEnd = selectorIndex + 1;
                while (sectionEnd < selector.length && (selector.charCodeAt(sectionEnd) !== quote || isEscaped(sectionEnd))) {
                  sectionEnd += 1;
                }
                if (selector.charCodeAt(sectionEnd) !== quote) {
                  throw new Error("Attribute value didn't end");
                }
                value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));
                selectorIndex = sectionEnd + 1;
              } else {
                var valueStart = selectorIndex;
                while (selectorIndex < selector.length && (!isWhitespace2(selector.charCodeAt(selectorIndex)) && selector.charCodeAt(selectorIndex) !== 93 || isEscaped(selectorIndex))) {
                  selectorIndex += 1;
                }
                value = unescapeCSS(selector.slice(valueStart, selectorIndex));
              }
              stripWhitespace(0);
              var forceIgnore = selector.charCodeAt(selectorIndex) | 32;
              if (forceIgnore === 115) {
                ignoreCase = false;
                stripWhitespace(1);
              } else if (forceIgnore === 105) {
                ignoreCase = true;
                stripWhitespace(1);
              }
            }
            if (selector.charCodeAt(selectorIndex) !== 93) {
              throw new Error("Attribute selector didn't terminate");
            }
            selectorIndex += 1;
            var attributeSelector = {
              type: types_1.SelectorType.Attribute,
              name: name_1,
              action,
              value,
              namespace,
              ignoreCase
            };
            tokens.push(attributeSelector);
            break;
          }
          case 58: {
            if (selector.charCodeAt(selectorIndex + 1) === 58) {
              tokens.push({
                type: types_1.SelectorType.PseudoElement,
                name: getName(2).toLowerCase(),
                data: selector.charCodeAt(selectorIndex) === 40 ? readValueWithParenthesis() : null
              });
              continue;
            }
            var name_2 = getName(1).toLowerCase();
            var data = null;
            if (selector.charCodeAt(selectorIndex) === 40) {
              if (unpackPseudos.has(name_2)) {
                if (isQuote(selector.charCodeAt(selectorIndex + 1))) {
                  throw new Error("Pseudo-selector ".concat(name_2, " cannot be quoted"));
                }
                data = [];
                selectorIndex = parseSelector(data, selector, selectorIndex + 1);
                if (selector.charCodeAt(selectorIndex) !== 41) {
                  throw new Error("Missing closing parenthesis in :".concat(name_2, " (").concat(selector, ")"));
                }
                selectorIndex += 1;
              } else {
                data = readValueWithParenthesis();
                if (stripQuotesFromPseudos.has(name_2)) {
                  var quot = data.charCodeAt(0);
                  if (quot === data.charCodeAt(data.length - 1) && isQuote(quot)) {
                    data = data.slice(1, -1);
                  }
                }
                data = unescapeCSS(data);
              }
            }
            tokens.push({ type: types_1.SelectorType.Pseudo, name: name_2, data });
            break;
          }
          case 44: {
            finalizeSubselector();
            tokens = [];
            stripWhitespace(1);
            break;
          }
          default: {
            if (selector.startsWith("/*", selectorIndex)) {
              var endIndex = selector.indexOf("*/", selectorIndex + 2);
              if (endIndex < 0) {
                throw new Error("Comment was not terminated");
              }
              selectorIndex = endIndex + 2;
              if (tokens.length === 0) {
                stripWhitespace(0);
              }
              break;
            }
            var namespace = null;
            var name_3 = void 0;
            if (firstChar === 42) {
              selectorIndex += 1;
              name_3 = "*";
            } else if (firstChar === 124) {
              name_3 = "";
              if (selector.charCodeAt(selectorIndex + 1) === 124) {
                addTraversal(types_1.SelectorType.ColumnCombinator);
                stripWhitespace(2);
                break;
              }
            } else if (reName.test(selector.slice(selectorIndex))) {
              name_3 = getName(0);
            } else {
              break loop;
            }
            if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 124) {
              namespace = name_3;
              if (selector.charCodeAt(selectorIndex + 1) === 42) {
                name_3 = "*";
                selectorIndex += 2;
              } else {
                name_3 = getName(1);
              }
            }
            tokens.push(name_3 === "*" ? { type: types_1.SelectorType.Universal, namespace } : { type: types_1.SelectorType.Tag, name: name_3, namespace });
          }
        }
      }
      finalizeSubselector();
      return selectorIndex;
    }
  }
});
var require_stringify3 = __commonJS2({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/stringify.js"(exports2) {
    "use strict";
    var __spreadArray2 = exports2 && exports2.__spreadArray || function(to2, from, pack) {
      if (pack || arguments.length === 2) for (var i22 = 0, l2 = from.length, ar3; i22 < l2; i22++) {
        if (ar3 || !(i22 in from)) {
          if (!ar3) ar3 = Array.prototype.slice.call(from, 0, i22);
          ar3[i22] = from[i22];
        }
      }
      return to2.concat(ar3 || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.stringify = void 0;
    var types_1 = require_types2();
    var attribValChars = ["\\", '"'];
    var pseudoValChars = __spreadArray2(__spreadArray2([], attribValChars, true), ["(", ")"], false);
    var charsToEscapeInAttributeValue = new Set(attribValChars.map(function(c3) {
      return c3.charCodeAt(0);
    }));
    var charsToEscapeInPseudoValue = new Set(pseudoValChars.map(function(c3) {
      return c3.charCodeAt(0);
    }));
    var charsToEscapeInName = new Set(__spreadArray2(__spreadArray2([], pseudoValChars, true), [
      "~",
      "^",
      "$",
      "*",
      "+",
      "!",
      "|",
      ":",
      "[",
      "]",
      " ",
      "."
    ], false).map(function(c3) {
      return c3.charCodeAt(0);
    }));
    function stringify(selector) {
      return selector.map(function(token2) {
        return token2.map(stringifyToken).join("");
      }).join(", ");
    }
    exports2.stringify = stringify;
    function stringifyToken(token2, index, arr) {
      switch (token2.type) {
        // Simple types
        case types_1.SelectorType.Child:
          return index === 0 ? "> " : " > ";
        case types_1.SelectorType.Parent:
          return index === 0 ? "< " : " < ";
        case types_1.SelectorType.Sibling:
          return index === 0 ? "~ " : " ~ ";
        case types_1.SelectorType.Adjacent:
          return index === 0 ? "+ " : " + ";
        case types_1.SelectorType.Descendant:
          return " ";
        case types_1.SelectorType.ColumnCombinator:
          return index === 0 ? "|| " : " || ";
        case types_1.SelectorType.Universal:
          return token2.namespace === "*" && index + 1 < arr.length && "name" in arr[index + 1] ? "" : "".concat(getNamespace(token2.namespace), "*");
        case types_1.SelectorType.Tag:
          return getNamespacedName(token2);
        case types_1.SelectorType.PseudoElement:
          return "::".concat(escapeName2(token2.name, charsToEscapeInName)).concat(token2.data === null ? "" : "(".concat(escapeName2(token2.data, charsToEscapeInPseudoValue), ")"));
        case types_1.SelectorType.Pseudo:
          return ":".concat(escapeName2(token2.name, charsToEscapeInName)).concat(token2.data === null ? "" : "(".concat(typeof token2.data === "string" ? escapeName2(token2.data, charsToEscapeInPseudoValue) : stringify(token2.data), ")"));
        case types_1.SelectorType.Attribute: {
          if (token2.name === "id" && token2.action === types_1.AttributeAction.Equals && token2.ignoreCase === "quirks" && !token2.namespace) {
            return "#".concat(escapeName2(token2.value, charsToEscapeInName));
          }
          if (token2.name === "class" && token2.action === types_1.AttributeAction.Element && token2.ignoreCase === "quirks" && !token2.namespace) {
            return ".".concat(escapeName2(token2.value, charsToEscapeInName));
          }
          var name_1 = getNamespacedName(token2);
          if (token2.action === types_1.AttributeAction.Exists) {
            return "[".concat(name_1, "]");
          }
          return "[".concat(name_1).concat(getActionValue(token2.action), '="').concat(escapeName2(token2.value, charsToEscapeInAttributeValue), '"').concat(token2.ignoreCase === null ? "" : token2.ignoreCase ? " i" : " s", "]");
        }
      }
    }
    function getActionValue(action) {
      switch (action) {
        case types_1.AttributeAction.Equals:
          return "";
        case types_1.AttributeAction.Element:
          return "~";
        case types_1.AttributeAction.Start:
          return "^";
        case types_1.AttributeAction.End:
          return "$";
        case types_1.AttributeAction.Any:
          return "*";
        case types_1.AttributeAction.Not:
          return "!";
        case types_1.AttributeAction.Hyphen:
          return "|";
        case types_1.AttributeAction.Exists:
          throw new Error("Shouldn't be here");
      }
    }
    function getNamespacedName(token2) {
      return "".concat(getNamespace(token2.namespace)).concat(escapeName2(token2.name, charsToEscapeInName));
    }
    function getNamespace(namespace) {
      return namespace !== null ? "".concat(namespace === "*" ? "*" : escapeName2(namespace, charsToEscapeInName), "|") : "";
    }
    function escapeName2(str, charsToEscape) {
      var lastIdx = 0;
      var ret = "";
      for (var i22 = 0; i22 < str.length; i22++) {
        if (charsToEscape.has(str.charCodeAt(i22))) {
          ret += "".concat(str.slice(lastIdx, i22), "\\").concat(str.charAt(i22));
          lastIdx = i22 + 1;
        }
      }
      return ret.length > 0 ? ret + str.slice(lastIdx) : str;
    }
  }
});
var require_commonjs = __commonJS2({
  "../../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/commonjs/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __exportStar2 = exports2 && exports2.__exportStar || function(m2, exports22) {
      for (var p in m2) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports22, p)) __createBinding2(exports22, m2, p);
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.stringify = exports2.parse = exports2.isTraversal = void 0;
    __exportStar2(require_types2(), exports2);
    var parse_1 = require_parse2();
    Object.defineProperty(exports2, "isTraversal", { enumerable: true, get: function() {
      return parse_1.isTraversal;
    } });
    Object.defineProperty(exports2, "parse", { enumerable: true, get: function() {
      return parse_1.parse;
    } });
    var stringify_1 = require_stringify3();
    Object.defineProperty(exports2, "stringify", { enumerable: true, get: function() {
      return stringify_1.stringify;
    } });
  }
});
var require_boolbase = __commonJS2({
  "../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js"(exports2, module2) {
    module2.exports = {
      trueFunc: function trueFunc() {
        return true;
      },
      falseFunc: function falseFunc() {
        return false;
      }
    };
  }
});
var require_sort = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/sort.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.isTraversal = void 0;
    var css_what_1 = require_commonjs();
    var procedure = /* @__PURE__ */ new Map([
      [css_what_1.SelectorType.Universal, 50],
      [css_what_1.SelectorType.Tag, 30],
      [css_what_1.SelectorType.Attribute, 1],
      [css_what_1.SelectorType.Pseudo, 0]
    ]);
    function isTraversal(token2) {
      return !procedure.has(token2.type);
    }
    exports2.isTraversal = isTraversal;
    var attributes = /* @__PURE__ */ new Map([
      [css_what_1.AttributeAction.Exists, 10],
      [css_what_1.AttributeAction.Equals, 8],
      [css_what_1.AttributeAction.Not, 7],
      [css_what_1.AttributeAction.Start, 6],
      [css_what_1.AttributeAction.End, 6],
      [css_what_1.AttributeAction.Any, 5]
    ]);
    function sortByProcedure(arr) {
      var procs = arr.map(getProcedure);
      for (var i22 = 1; i22 < arr.length; i22++) {
        var procNew = procs[i22];
        if (procNew < 0)
          continue;
        for (var j2 = i22 - 1; j2 >= 0 && procNew < procs[j2]; j2--) {
          var token2 = arr[j2 + 1];
          arr[j2 + 1] = arr[j2];
          arr[j2] = token2;
          procs[j2 + 1] = procs[j2];
          procs[j2] = procNew;
        }
      }
    }
    exports2.default = sortByProcedure;
    function getProcedure(token2) {
      var _a22, _b2;
      var proc = (_a22 = procedure.get(token2.type)) !== null && _a22 !== void 0 ? _a22 : -1;
      if (token2.type === css_what_1.SelectorType.Attribute) {
        proc = (_b2 = attributes.get(token2.action)) !== null && _b2 !== void 0 ? _b2 : 4;
        if (token2.action === css_what_1.AttributeAction.Equals && token2.name === "id") {
          proc = 9;
        }
        if (token2.ignoreCase) {
          proc >>= 1;
        }
      } else if (token2.type === css_what_1.SelectorType.Pseudo) {
        if (!token2.data) {
          proc = 3;
        } else if (token2.name === "has" || token2.name === "contains") {
          proc = 0;
        } else if (Array.isArray(token2.data)) {
          proc = Math.min.apply(Math, token2.data.map(function(d) {
            return Math.min.apply(Math, d.map(getProcedure));
          }));
          if (proc < 0) {
            proc = 0;
          }
        } else {
          proc = 2;
        }
      }
      return proc;
    }
  }
});
var require_attributes2 = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/attributes.js"(exports2) {
    "use strict";
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.attributeRules = void 0;
    var boolbase_1 = __importDefault2(require_boolbase());
    var reChars = /[-[\]{}()*+?.,\\^$|#\s]/g;
    function escapeRegex(value) {
      return value.replace(reChars, "\\$&");
    }
    var caseInsensitiveAttributes = /* @__PURE__ */ new Set([
      "accept",
      "accept-charset",
      "align",
      "alink",
      "axis",
      "bgcolor",
      "charset",
      "checked",
      "clear",
      "codetype",
      "color",
      "compact",
      "declare",
      "defer",
      "dir",
      "direction",
      "disabled",
      "enctype",
      "face",
      "frame",
      "hreflang",
      "http-equiv",
      "lang",
      "language",
      "link",
      "media",
      "method",
      "multiple",
      "nohref",
      "noresize",
      "noshade",
      "nowrap",
      "readonly",
      "rel",
      "rev",
      "rules",
      "scope",
      "scrolling",
      "selected",
      "shape",
      "target",
      "text",
      "type",
      "valign",
      "valuetype",
      "vlink"
    ]);
    function shouldIgnoreCase(selector, options) {
      return typeof selector.ignoreCase === "boolean" ? selector.ignoreCase : selector.ignoreCase === "quirks" ? !!options.quirksMode : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);
    }
    exports2.attributeRules = {
      equals: function(next, data, options) {
        var adapter2 = options.adapter;
        var name2 = data.name;
        var value = data.value;
        if (shouldIgnoreCase(data, options)) {
          value = value.toLowerCase();
          return function(elem) {
            var attr = adapter2.getAttributeValue(elem, name2);
            return attr != null && attr.length === value.length && attr.toLowerCase() === value && next(elem);
          };
        }
        return function(elem) {
          return adapter2.getAttributeValue(elem, name2) === value && next(elem);
        };
      },
      hyphen: function(next, data, options) {
        var adapter2 = options.adapter;
        var name2 = data.name;
        var value = data.value;
        var len = value.length;
        if (shouldIgnoreCase(data, options)) {
          value = value.toLowerCase();
          return function hyphenIC(elem) {
            var attr = adapter2.getAttributeValue(elem, name2);
            return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len).toLowerCase() === value && next(elem);
          };
        }
        return function hyphen(elem) {
          var attr = adapter2.getAttributeValue(elem, name2);
          return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len) === value && next(elem);
        };
      },
      element: function(next, data, options) {
        var adapter2 = options.adapter;
        var name2 = data.name, value = data.value;
        if (/\s/.test(value)) {
          return boolbase_1.default.falseFunc;
        }
        var regex = new RegExp("(?:^|\\s)".concat(escapeRegex(value), "(?:$|\\s)"), shouldIgnoreCase(data, options) ? "i" : "");
        return function element(elem) {
          var attr = adapter2.getAttributeValue(elem, name2);
          return attr != null && attr.length >= value.length && regex.test(attr) && next(elem);
        };
      },
      exists: function(next, _a22, _b2) {
        var name2 = _a22.name;
        var adapter2 = _b2.adapter;
        return function(elem) {
          return adapter2.hasAttrib(elem, name2) && next(elem);
        };
      },
      start: function(next, data, options) {
        var adapter2 = options.adapter;
        var name2 = data.name;
        var value = data.value;
        var len = value.length;
        if (len === 0) {
          return boolbase_1.default.falseFunc;
        }
        if (shouldIgnoreCase(data, options)) {
          value = value.toLowerCase();
          return function(elem) {
            var attr = adapter2.getAttributeValue(elem, name2);
            return attr != null && attr.length >= len && attr.substr(0, len).toLowerCase() === value && next(elem);
          };
        }
        return function(elem) {
          var _a22;
          return !!((_a22 = adapter2.getAttributeValue(elem, name2)) === null || _a22 === void 0 ? void 0 : _a22.startsWith(value)) && next(elem);
        };
      },
      end: function(next, data, options) {
        var adapter2 = options.adapter;
        var name2 = data.name;
        var value = data.value;
        var len = -value.length;
        if (len === 0) {
          return boolbase_1.default.falseFunc;
        }
        if (shouldIgnoreCase(data, options)) {
          value = value.toLowerCase();
          return function(elem) {
            var _a22;
            return ((_a22 = adapter2.getAttributeValue(elem, name2)) === null || _a22 === void 0 ? void 0 : _a22.substr(len).toLowerCase()) === value && next(elem);
          };
        }
        return function(elem) {
          var _a22;
          return !!((_a22 = adapter2.getAttributeValue(elem, name2)) === null || _a22 === void 0 ? void 0 : _a22.endsWith(value)) && next(elem);
        };
      },
      any: function(next, data, options) {
        var adapter2 = options.adapter;
        var name2 = data.name, value = data.value;
        if (value === "") {
          return boolbase_1.default.falseFunc;
        }
        if (shouldIgnoreCase(data, options)) {
          var regex_1 = new RegExp(escapeRegex(value), "i");
          return function anyIC(elem) {
            var attr = adapter2.getAttributeValue(elem, name2);
            return attr != null && attr.length >= value.length && regex_1.test(attr) && next(elem);
          };
        }
        return function(elem) {
          var _a22;
          return !!((_a22 = adapter2.getAttributeValue(elem, name2)) === null || _a22 === void 0 ? void 0 : _a22.includes(value)) && next(elem);
        };
      },
      not: function(next, data, options) {
        var adapter2 = options.adapter;
        var name2 = data.name;
        var value = data.value;
        if (value === "") {
          return function(elem) {
            return !!adapter2.getAttributeValue(elem, name2) && next(elem);
          };
        } else if (shouldIgnoreCase(data, options)) {
          value = value.toLowerCase();
          return function(elem) {
            var attr = adapter2.getAttributeValue(elem, name2);
            return (attr == null || attr.length !== value.length || attr.toLowerCase() !== value) && next(elem);
          };
        }
        return function(elem) {
          return adapter2.getAttributeValue(elem, name2) !== value && next(elem);
        };
      }
    };
  }
});
var require_parse3 = __commonJS2({
  "../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.parse = void 0;
    var whitespace = /* @__PURE__ */ new Set([9, 10, 12, 13, 32]);
    var ZERO = "0".charCodeAt(0);
    var NINE = "9".charCodeAt(0);
    function parse(formula) {
      formula = formula.trim().toLowerCase();
      if (formula === "even") {
        return [2, 0];
      } else if (formula === "odd") {
        return [2, 1];
      }
      var idx = 0;
      var a2 = 0;
      var sign = readSign();
      var number = readNumber();
      if (idx < formula.length && formula.charAt(idx) === "n") {
        idx++;
        a2 = sign * (number !== null && number !== void 0 ? number : 1);
        skipWhitespace();
        if (idx < formula.length) {
          sign = readSign();
          skipWhitespace();
          number = readNumber();
        } else {
          sign = number = 0;
        }
      }
      if (number === null || idx < formula.length) {
        throw new Error("n-th rule couldn't be parsed ('".concat(formula, "')"));
      }
      return [a2, sign * number];
      function readSign() {
        if (formula.charAt(idx) === "-") {
          idx++;
          return -1;
        }
        if (formula.charAt(idx) === "+") {
          idx++;
        }
        return 1;
      }
      function readNumber() {
        var start = idx;
        var value = 0;
        while (idx < formula.length && formula.charCodeAt(idx) >= ZERO && formula.charCodeAt(idx) <= NINE) {
          value = value * 10 + (formula.charCodeAt(idx) - ZERO);
          idx++;
        }
        return idx === start ? null : value;
      }
      function skipWhitespace() {
        while (idx < formula.length && whitespace.has(formula.charCodeAt(idx))) {
          idx++;
        }
      }
    }
    exports2.parse = parse;
  }
});
var require_compile = __commonJS2({
  "../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.js"(exports2) {
    "use strict";
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.generate = exports2.compile = void 0;
    var boolbase_1 = __importDefault2(require_boolbase());
    function compile2(parsed) {
      var a2 = parsed[0];
      var b2 = parsed[1] - 1;
      if (b2 < 0 && a2 <= 0)
        return boolbase_1.default.falseFunc;
      if (a2 === -1)
        return function(index) {
          return index <= b2;
        };
      if (a2 === 0)
        return function(index) {
          return index === b2;
        };
      if (a2 === 1)
        return b2 < 0 ? boolbase_1.default.trueFunc : function(index) {
          return index >= b2;
        };
      var absA = Math.abs(a2);
      var bMod = (b2 % absA + absA) % absA;
      return a2 > 1 ? function(index) {
        return index >= b2 && index % absA === bMod;
      } : function(index) {
        return index <= b2 && index % absA === bMod;
      };
    }
    exports2.compile = compile2;
    function generate(parsed) {
      var a2 = parsed[0];
      var b2 = parsed[1] - 1;
      var n22 = 0;
      if (a2 < 0) {
        var aPos_1 = -a2;
        var minValue_1 = (b2 % aPos_1 + aPos_1) % aPos_1;
        return function() {
          var val = minValue_1 + aPos_1 * n22++;
          return val > b2 ? null : val;
        };
      }
      if (a2 === 0)
        return b2 < 0 ? (
          // There are no result — always return `null`
          (function() {
            return null;
          })
        ) : (
          // Return `b` exactly once
          (function() {
            return n22++ === 0 ? b2 : null;
          })
        );
      if (b2 < 0) {
        b2 += a2 * Math.ceil(-b2 / a2);
      }
      return function() {
        return a2 * n22++ + b2;
      };
    }
    exports2.generate = generate;
  }
});
var require_lib8 = __commonJS2({
  "../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.sequence = exports2.generate = exports2.compile = exports2.parse = void 0;
    var parse_js_1 = require_parse3();
    Object.defineProperty(exports2, "parse", { enumerable: true, get: function() {
      return parse_js_1.parse;
    } });
    var compile_js_1 = require_compile();
    Object.defineProperty(exports2, "compile", { enumerable: true, get: function() {
      return compile_js_1.compile;
    } });
    Object.defineProperty(exports2, "generate", { enumerable: true, get: function() {
      return compile_js_1.generate;
    } });
    function nthCheck(formula) {
      return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));
    }
    exports2.default = nthCheck;
    function sequence(formula) {
      return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));
    }
    exports2.sequence = sequence;
  }
});
var require_filters = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/filters.js"(exports2) {
    "use strict";
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.filters = void 0;
    var nth_check_1 = __importDefault2(require_lib8());
    var boolbase_1 = __importDefault2(require_boolbase());
    function getChildFunc(next, adapter2) {
      return function(elem) {
        var parent = adapter2.getParent(elem);
        return parent != null && adapter2.isTag(parent) && next(elem);
      };
    }
    exports2.filters = {
      contains: function(next, text, _a22) {
        var adapter2 = _a22.adapter;
        return function contains(elem) {
          return next(elem) && adapter2.getText(elem).includes(text);
        };
      },
      icontains: function(next, text, _a22) {
        var adapter2 = _a22.adapter;
        var itext = text.toLowerCase();
        return function icontains(elem) {
          return next(elem) && adapter2.getText(elem).toLowerCase().includes(itext);
        };
      },
      // Location specific methods
      "nth-child": function(next, rule, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthChild(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i22 = 0; i22 < siblings.length; i22++) {
            if (equals(elem, siblings[i22]))
              break;
            if (adapter2.isTag(siblings[i22])) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      "nth-last-child": function(next, rule, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthLastChild(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i22 = siblings.length - 1; i22 >= 0; i22--) {
            if (equals(elem, siblings[i22]))
              break;
            if (adapter2.isTag(siblings[i22])) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      "nth-of-type": function(next, rule, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthOfType(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i22 = 0; i22 < siblings.length; i22++) {
            var currentSibling = siblings[i22];
            if (equals(elem, currentSibling))
              break;
            if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === adapter2.getName(elem)) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      "nth-last-of-type": function(next, rule, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var func = (0, nth_check_1.default)(rule);
        if (func === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        if (func === boolbase_1.default.trueFunc)
          return getChildFunc(next, adapter2);
        return function nthLastOfType(elem) {
          var siblings = adapter2.getSiblings(elem);
          var pos = 0;
          for (var i22 = siblings.length - 1; i22 >= 0; i22--) {
            var currentSibling = siblings[i22];
            if (equals(elem, currentSibling))
              break;
            if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === adapter2.getName(elem)) {
              pos++;
            }
          }
          return func(pos) && next(elem);
        };
      },
      // TODO determine the actual root element
      root: function(next, _rule, _a22) {
        var adapter2 = _a22.adapter;
        return function(elem) {
          var parent = adapter2.getParent(elem);
          return (parent == null || !adapter2.isTag(parent)) && next(elem);
        };
      },
      scope: function(next, rule, options, context) {
        var equals = options.equals;
        if (!context || context.length === 0) {
          return exports2.filters["root"](next, rule, options);
        }
        if (context.length === 1) {
          return function(elem) {
            return equals(context[0], elem) && next(elem);
          };
        }
        return function(elem) {
          return context.includes(elem) && next(elem);
        };
      },
      hover: dynamicStatePseudo("isHovered"),
      visited: dynamicStatePseudo("isVisited"),
      active: dynamicStatePseudo("isActive")
    };
    function dynamicStatePseudo(name2) {
      return function dynamicPseudo(next, _rule, _a22) {
        var adapter2 = _a22.adapter;
        var func = adapter2[name2];
        if (typeof func !== "function") {
          return boolbase_1.default.falseFunc;
        }
        return function active(elem) {
          return func(elem) && next(elem);
        };
      };
    }
  }
});
var require_pseudos = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/pseudos.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.verifyPseudoArgs = exports2.pseudos = void 0;
    exports2.pseudos = {
      empty: function(elem, _a22) {
        var adapter2 = _a22.adapter;
        return !adapter2.getChildren(elem).some(function(elem2) {
          return adapter2.isTag(elem2) || adapter2.getText(elem2) !== "";
        });
      },
      "first-child": function(elem, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        if (adapter2.prevElementSibling) {
          return adapter2.prevElementSibling(elem) == null;
        }
        var firstChild = adapter2.getSiblings(elem).find(function(elem2) {
          return adapter2.isTag(elem2);
        });
        return firstChild != null && equals(elem, firstChild);
      },
      "last-child": function(elem, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var siblings = adapter2.getSiblings(elem);
        for (var i22 = siblings.length - 1; i22 >= 0; i22--) {
          if (equals(elem, siblings[i22]))
            return true;
          if (adapter2.isTag(siblings[i22]))
            break;
        }
        return false;
      },
      "first-of-type": function(elem, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var siblings = adapter2.getSiblings(elem);
        var elemName = adapter2.getName(elem);
        for (var i22 = 0; i22 < siblings.length; i22++) {
          var currentSibling = siblings[i22];
          if (equals(elem, currentSibling))
            return true;
          if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === elemName) {
            break;
          }
        }
        return false;
      },
      "last-of-type": function(elem, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var siblings = adapter2.getSiblings(elem);
        var elemName = adapter2.getName(elem);
        for (var i22 = siblings.length - 1; i22 >= 0; i22--) {
          var currentSibling = siblings[i22];
          if (equals(elem, currentSibling))
            return true;
          if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === elemName) {
            break;
          }
        }
        return false;
      },
      "only-of-type": function(elem, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        var elemName = adapter2.getName(elem);
        return adapter2.getSiblings(elem).every(function(sibling) {
          return equals(elem, sibling) || !adapter2.isTag(sibling) || adapter2.getName(sibling) !== elemName;
        });
      },
      "only-child": function(elem, _a22) {
        var adapter2 = _a22.adapter, equals = _a22.equals;
        return adapter2.getSiblings(elem).every(function(sibling) {
          return equals(elem, sibling) || !adapter2.isTag(sibling);
        });
      }
    };
    function verifyPseudoArgs(func, name2, subselect, argIndex) {
      if (subselect === null) {
        if (func.length > argIndex) {
          throw new Error("Pseudo-class :".concat(name2, " requires an argument"));
        }
      } else if (func.length === argIndex) {
        throw new Error("Pseudo-class :".concat(name2, " doesn't have any arguments"));
      }
    }
    exports2.verifyPseudoArgs = verifyPseudoArgs;
  }
});
var require_aliases = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/aliases.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.aliases = void 0;
    exports2.aliases = {
      // Links
      "any-link": ":is(a, area, link)[href]",
      link: ":any-link:not(:visited)",
      // Forms
      // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements
      disabled: ":is(\n        :is(button, input, select, textarea, optgroup, option)[disabled],\n        optgroup[disabled] > option,\n        fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n    )",
      enabled: ":not(:disabled)",
      checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",
      required: ":is(input, select, textarea)[required]",
      optional: ":is(input, select, textarea):not([required])",
      // JQuery extensions
      // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness
      selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",
      checkbox: "[type=checkbox]",
      file: "[type=file]",
      password: "[type=password]",
      radio: "[type=radio]",
      reset: "[type=reset]",
      image: "[type=image]",
      submit: "[type=submit]",
      parent: ":not(:empty)",
      header: ":is(h1, h2, h3, h4, h5, h6)",
      button: ":is(button, input[type=button])",
      input: ":is(input, textarea, select, button)",
      text: "input:is(:not([type!='']), [type=text])"
    };
  }
});
var require_subselects = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/subselects.js"(exports2) {
    "use strict";
    var __spreadArray2 = exports2 && exports2.__spreadArray || function(to2, from, pack) {
      if (pack || arguments.length === 2) for (var i22 = 0, l2 = from.length, ar3; i22 < l2; i22++) {
        if (ar3 || !(i22 in from)) {
          if (!ar3) ar3 = Array.prototype.slice.call(from, 0, i22);
          ar3[i22] = from[i22];
        }
      }
      return to2.concat(ar3 || Array.prototype.slice.call(from));
    };
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.subselects = exports2.getNextSiblings = exports2.ensureIsTag = exports2.PLACEHOLDER_ELEMENT = void 0;
    var boolbase_1 = __importDefault2(require_boolbase());
    var sort_js_1 = require_sort();
    exports2.PLACEHOLDER_ELEMENT = {};
    function ensureIsTag(next, adapter2) {
      if (next === boolbase_1.default.falseFunc)
        return boolbase_1.default.falseFunc;
      return function(elem) {
        return adapter2.isTag(elem) && next(elem);
      };
    }
    exports2.ensureIsTag = ensureIsTag;
    function getNextSiblings(elem, adapter2) {
      var siblings = adapter2.getSiblings(elem);
      if (siblings.length <= 1)
        return [];
      var elemIndex = siblings.indexOf(elem);
      if (elemIndex < 0 || elemIndex === siblings.length - 1)
        return [];
      return siblings.slice(elemIndex + 1).filter(adapter2.isTag);
    }
    exports2.getNextSiblings = getNextSiblings;
    function copyOptions(options) {
      return {
        xmlMode: !!options.xmlMode,
        lowerCaseAttributeNames: !!options.lowerCaseAttributeNames,
        lowerCaseTags: !!options.lowerCaseTags,
        quirksMode: !!options.quirksMode,
        cacheResults: !!options.cacheResults,
        pseudos: options.pseudos,
        adapter: options.adapter,
        equals: options.equals
      };
    }
    var is32 = function(next, token2, options, context, compileToken) {
      var func = compileToken(token2, copyOptions(options), context);
      return func === boolbase_1.default.trueFunc ? next : func === boolbase_1.default.falseFunc ? boolbase_1.default.falseFunc : function(elem) {
        return func(elem) && next(elem);
      };
    };
    exports2.subselects = {
      is: is32,
      /**
       * `:matches` and `:where` are aliases for `:is`.
       */
      matches: is32,
      where: is32,
      not: function(next, token2, options, context, compileToken) {
        var func = compileToken(token2, copyOptions(options), context);
        return func === boolbase_1.default.falseFunc ? next : func === boolbase_1.default.trueFunc ? boolbase_1.default.falseFunc : function(elem) {
          return !func(elem) && next(elem);
        };
      },
      has: function(next, subselect, options, _context, compileToken) {
        var adapter2 = options.adapter;
        var opts = copyOptions(options);
        opts.relativeSelector = true;
        var context = subselect.some(function(s2) {
          return s2.some(sort_js_1.isTraversal);
        }) ? (
          // Used as a placeholder. Will be replaced with the actual element.
          [exports2.PLACEHOLDER_ELEMENT]
        ) : void 0;
        var compiled = compileToken(subselect, opts, context);
        if (compiled === boolbase_1.default.falseFunc)
          return boolbase_1.default.falseFunc;
        var hasElement = ensureIsTag(compiled, adapter2);
        if (context && compiled !== boolbase_1.default.trueFunc) {
          var _a22 = compiled.shouldTestNextSiblings, shouldTestNextSiblings_1 = _a22 === void 0 ? false : _a22;
          return function(elem) {
            if (!next(elem))
              return false;
            context[0] = elem;
            var childs = adapter2.getChildren(elem);
            var nextElements = shouldTestNextSiblings_1 ? __spreadArray2(__spreadArray2([], childs, true), getNextSiblings(elem, adapter2), true) : childs;
            return adapter2.existsOne(hasElement, nextElements);
          };
        }
        return function(elem) {
          return next(elem) && adapter2.existsOne(hasElement, adapter2.getChildren(elem));
        };
      }
    };
  }
});
var require_pseudo_selectors = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/pseudo-selectors/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.compilePseudoSelector = exports2.aliases = exports2.pseudos = exports2.filters = void 0;
    var css_what_1 = require_commonjs();
    var filters_js_1 = require_filters();
    Object.defineProperty(exports2, "filters", { enumerable: true, get: function() {
      return filters_js_1.filters;
    } });
    var pseudos_js_1 = require_pseudos();
    Object.defineProperty(exports2, "pseudos", { enumerable: true, get: function() {
      return pseudos_js_1.pseudos;
    } });
    var aliases_js_1 = require_aliases();
    Object.defineProperty(exports2, "aliases", { enumerable: true, get: function() {
      return aliases_js_1.aliases;
    } });
    var subselects_js_1 = require_subselects();
    function compilePseudoSelector(next, selector, options, context, compileToken) {
      var _a22;
      var name2 = selector.name, data = selector.data;
      if (Array.isArray(data)) {
        if (!(name2 in subselects_js_1.subselects)) {
          throw new Error("Unknown pseudo-class :".concat(name2, "(").concat(data, ")"));
        }
        return subselects_js_1.subselects[name2](next, data, options, context, compileToken);
      }
      var userPseudo = (_a22 = options.pseudos) === null || _a22 === void 0 ? void 0 : _a22[name2];
      var stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases_js_1.aliases[name2];
      if (typeof stringPseudo === "string") {
        if (data != null) {
          throw new Error("Pseudo ".concat(name2, " doesn't have any arguments"));
        }
        var alias = (0, css_what_1.parse)(stringPseudo);
        return subselects_js_1.subselects["is"](next, alias, options, context, compileToken);
      }
      if (typeof userPseudo === "function") {
        (0, pseudos_js_1.verifyPseudoArgs)(userPseudo, name2, data, 1);
        return function(elem) {
          return userPseudo(elem, data) && next(elem);
        };
      }
      if (name2 in filters_js_1.filters) {
        return filters_js_1.filters[name2](next, data, options, context);
      }
      if (name2 in pseudos_js_1.pseudos) {
        var pseudo_1 = pseudos_js_1.pseudos[name2];
        (0, pseudos_js_1.verifyPseudoArgs)(pseudo_1, name2, data, 2);
        return function(elem) {
          return pseudo_1(elem, options, data) && next(elem);
        };
      }
      throw new Error("Unknown pseudo-class :".concat(name2));
    }
    exports2.compilePseudoSelector = compilePseudoSelector;
  }
});
var require_general = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/general.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.compileGeneralSelector = void 0;
    var attributes_js_1 = require_attributes2();
    var index_js_1 = require_pseudo_selectors();
    var css_what_1 = require_commonjs();
    function getElementParent(node, adapter2) {
      var parent = adapter2.getParent(node);
      if (parent && adapter2.isTag(parent)) {
        return parent;
      }
      return null;
    }
    function compileGeneralSelector(next, selector, options, context, compileToken) {
      var adapter2 = options.adapter, equals = options.equals;
      switch (selector.type) {
        case css_what_1.SelectorType.PseudoElement: {
          throw new Error("Pseudo-elements are not supported by css-select");
        }
        case css_what_1.SelectorType.ColumnCombinator: {
          throw new Error("Column combinators are not yet supported by css-select");
        }
        case css_what_1.SelectorType.Attribute: {
          if (selector.namespace != null) {
            throw new Error("Namespaced attributes are not yet supported by css-select");
          }
          if (!options.xmlMode || options.lowerCaseAttributeNames) {
            selector.name = selector.name.toLowerCase();
          }
          return attributes_js_1.attributeRules[selector.action](next, selector, options);
        }
        case css_what_1.SelectorType.Pseudo: {
          return (0, index_js_1.compilePseudoSelector)(next, selector, options, context, compileToken);
        }
        // Tags
        case css_what_1.SelectorType.Tag: {
          if (selector.namespace != null) {
            throw new Error("Namespaced tag names are not yet supported by css-select");
          }
          var name_1 = selector.name;
          if (!options.xmlMode || options.lowerCaseTags) {
            name_1 = name_1.toLowerCase();
          }
          return function tag(elem) {
            return adapter2.getName(elem) === name_1 && next(elem);
          };
        }
        // Traversal
        case css_what_1.SelectorType.Descendant: {
          if (options.cacheResults === false || typeof WeakSet === "undefined") {
            return function descendant(elem) {
              var current = elem;
              while (current = getElementParent(current, adapter2)) {
                if (next(current)) {
                  return true;
                }
              }
              return false;
            };
          }
          var isFalseCache_1 = /* @__PURE__ */ new WeakSet();
          return function cachedDescendant(elem) {
            var current = elem;
            while (current = getElementParent(current, adapter2)) {
              if (!isFalseCache_1.has(current)) {
                if (adapter2.isTag(current) && next(current)) {
                  return true;
                }
                isFalseCache_1.add(current);
              }
            }
            return false;
          };
        }
        case "_flexibleDescendant": {
          return function flexibleDescendant(elem) {
            var current = elem;
            do {
              if (next(current))
                return true;
            } while (current = getElementParent(current, adapter2));
            return false;
          };
        }
        case css_what_1.SelectorType.Parent: {
          return function parent(elem) {
            return adapter2.getChildren(elem).some(function(elem2) {
              return adapter2.isTag(elem2) && next(elem2);
            });
          };
        }
        case css_what_1.SelectorType.Child: {
          return function child(elem) {
            var parent = adapter2.getParent(elem);
            return parent != null && adapter2.isTag(parent) && next(parent);
          };
        }
        case css_what_1.SelectorType.Sibling: {
          return function sibling(elem) {
            var siblings = adapter2.getSiblings(elem);
            for (var i22 = 0; i22 < siblings.length; i22++) {
              var currentSibling = siblings[i22];
              if (equals(elem, currentSibling))
                break;
              if (adapter2.isTag(currentSibling) && next(currentSibling)) {
                return true;
              }
            }
            return false;
          };
        }
        case css_what_1.SelectorType.Adjacent: {
          if (adapter2.prevElementSibling) {
            return function adjacent(elem) {
              var previous = adapter2.prevElementSibling(elem);
              return previous != null && next(previous);
            };
          }
          return function adjacent(elem) {
            var siblings = adapter2.getSiblings(elem);
            var lastElement;
            for (var i22 = 0; i22 < siblings.length; i22++) {
              var currentSibling = siblings[i22];
              if (equals(elem, currentSibling))
                break;
              if (adapter2.isTag(currentSibling)) {
                lastElement = currentSibling;
              }
            }
            return !!lastElement && next(lastElement);
          };
        }
        case css_what_1.SelectorType.Universal: {
          if (selector.namespace != null && selector.namespace !== "*") {
            throw new Error("Namespaced universal selectors are not yet supported by css-select");
          }
          return next;
        }
      }
    }
    exports2.compileGeneralSelector = compileGeneralSelector;
  }
});
var require_compile2 = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/compile.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.compileToken = exports2.compileUnsafe = exports2.compile = void 0;
    var css_what_1 = require_commonjs();
    var boolbase_1 = __importDefault2(require_boolbase());
    var sort_js_1 = __importStar2(require_sort());
    var general_js_1 = require_general();
    var subselects_js_1 = require_subselects();
    function compile2(selector, options, context) {
      var next = compileUnsafe(selector, options, context);
      return (0, subselects_js_1.ensureIsTag)(next, options.adapter);
    }
    exports2.compile = compile2;
    function compileUnsafe(selector, options, context) {
      var token2 = typeof selector === "string" ? (0, css_what_1.parse)(selector) : selector;
      return compileToken(token2, options, context);
    }
    exports2.compileUnsafe = compileUnsafe;
    function includesScopePseudo(t9) {
      return t9.type === css_what_1.SelectorType.Pseudo && (t9.name === "scope" || Array.isArray(t9.data) && t9.data.some(function(data) {
        return data.some(includesScopePseudo);
      }));
    }
    var DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };
    var FLEXIBLE_DESCENDANT_TOKEN = {
      type: "_flexibleDescendant"
    };
    var SCOPE_TOKEN = {
      type: css_what_1.SelectorType.Pseudo,
      name: "scope",
      data: null
    };
    function absolutize(token2, _a22, context) {
      var adapter2 = _a22.adapter;
      var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function(e2) {
        var parent = adapter2.isTag(e2) && adapter2.getParent(e2);
        return e2 === subselects_js_1.PLACEHOLDER_ELEMENT || parent && adapter2.isTag(parent);
      }));
      for (var _i2 = 0, token_1 = token2; _i2 < token_1.length; _i2++) {
        var t9 = token_1[_i2];
        if (t9.length > 0 && (0, sort_js_1.isTraversal)(t9[0]) && t9[0].type !== css_what_1.SelectorType.Descendant) {
        } else if (hasContext && !t9.some(includesScopePseudo)) {
          t9.unshift(DESCENDANT_TOKEN);
        } else {
          continue;
        }
        t9.unshift(SCOPE_TOKEN);
      }
    }
    function compileToken(token2, options, context) {
      var _a22;
      token2.forEach(sort_js_1.default);
      context = (_a22 = options.context) !== null && _a22 !== void 0 ? _a22 : context;
      var isArrayContext = Array.isArray(context);
      var finalContext = context && (Array.isArray(context) ? context : [context]);
      if (options.relativeSelector !== false) {
        absolutize(token2, options, finalContext);
      } else if (token2.some(function(t9) {
        return t9.length > 0 && (0, sort_js_1.isTraversal)(t9[0]);
      })) {
        throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");
      }
      var shouldTestNextSiblings = false;
      var query = token2.map(function(rules) {
        if (rules.length >= 2) {
          var first = rules[0], second = rules[1];
          if (first.type !== css_what_1.SelectorType.Pseudo || first.name !== "scope") {
          } else if (isArrayContext && second.type === css_what_1.SelectorType.Descendant) {
            rules[1] = FLEXIBLE_DESCENDANT_TOKEN;
          } else if (second.type === css_what_1.SelectorType.Adjacent || second.type === css_what_1.SelectorType.Sibling) {
            shouldTestNextSiblings = true;
          }
        }
        return compileRules(rules, options, finalContext);
      }).reduce(reduceRules, boolbase_1.default.falseFunc);
      query.shouldTestNextSiblings = shouldTestNextSiblings;
      return query;
    }
    exports2.compileToken = compileToken;
    function compileRules(rules, options, context) {
      var _a22;
      return rules.reduce(function(previous, rule) {
        return previous === boolbase_1.default.falseFunc ? boolbase_1.default.falseFunc : (0, general_js_1.compileGeneralSelector)(previous, rule, options, context, compileToken);
      }, (_a22 = options.rootFunc) !== null && _a22 !== void 0 ? _a22 : boolbase_1.default.trueFunc);
    }
    function reduceRules(a2, b2) {
      if (b2 === boolbase_1.default.falseFunc || a2 === boolbase_1.default.trueFunc) {
        return a2;
      }
      if (a2 === boolbase_1.default.falseFunc || b2 === boolbase_1.default.trueFunc) {
        return b2;
      }
      return function combine(elem) {
        return a2(elem) || b2(elem);
      };
    }
  }
});
var require_lib9 = __commonJS2({
  "../../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.aliases = exports2.pseudos = exports2.filters = exports2.is = exports2.selectOne = exports2.selectAll = exports2.prepareContext = exports2._compileToken = exports2._compileUnsafe = exports2.compile = void 0;
    var DomUtils = __importStar2(require_lib7());
    var boolbase_1 = __importDefault2(require_boolbase());
    var compile_js_1 = require_compile2();
    var subselects_js_1 = require_subselects();
    var defaultEquals = function(a2, b2) {
      return a2 === b2;
    };
    var defaultOptions2 = {
      adapter: DomUtils,
      equals: defaultEquals
    };
    function convertOptionFormats(options) {
      var _a22, _b2, _c, _d;
      var opts = options !== null && options !== void 0 ? options : defaultOptions2;
      (_a22 = opts.adapter) !== null && _a22 !== void 0 ? _a22 : opts.adapter = DomUtils;
      (_b2 = opts.equals) !== null && _b2 !== void 0 ? _b2 : opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals;
      return opts;
    }
    function wrapCompile(func) {
      return function addAdapter(selector, options, context) {
        var opts = convertOptionFormats(options);
        return func(selector, opts, context);
      };
    }
    exports2.compile = wrapCompile(compile_js_1.compile);
    exports2._compileUnsafe = wrapCompile(compile_js_1.compileUnsafe);
    exports2._compileToken = wrapCompile(compile_js_1.compileToken);
    function getSelectorFunc(searchFunc) {
      return function select(query, elements, options) {
        var opts = convertOptionFormats(options);
        if (typeof query !== "function") {
          query = (0, compile_js_1.compileUnsafe)(query, opts, elements);
        }
        var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings);
        return searchFunc(query, filteredElements, opts);
      };
    }
    function prepareContext(elems, adapter2, shouldTestNextSiblings) {
      if (shouldTestNextSiblings === void 0) {
        shouldTestNextSiblings = false;
      }
      if (shouldTestNextSiblings) {
        elems = appendNextSiblings(elems, adapter2);
      }
      return Array.isArray(elems) ? adapter2.removeSubsets(elems) : adapter2.getChildren(elems);
    }
    exports2.prepareContext = prepareContext;
    function appendNextSiblings(elem, adapter2) {
      var elems = Array.isArray(elem) ? elem.slice(0) : [elem];
      var elemsLength = elems.length;
      for (var i22 = 0; i22 < elemsLength; i22++) {
        var nextSiblings = (0, subselects_js_1.getNextSiblings)(elems[i22], adapter2);
        elems.push.apply(elems, nextSiblings);
      }
      return elems;
    }
    exports2.selectAll = getSelectorFunc(function(query, elems, options) {
      return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 ? [] : options.adapter.findAll(query, elems);
    });
    exports2.selectOne = getSelectorFunc(function(query, elems, options) {
      return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 ? null : options.adapter.findOne(query, elems);
    });
    function is32(elem, query, options) {
      var opts = convertOptionFormats(options);
      return (typeof query === "function" ? query : (0, compile_js_1.compile)(query, opts))(elem);
    }
    exports2.is = is32;
    exports2.default = exports2.selectAll;
    var index_js_1 = require_pseudo_selectors();
    Object.defineProperty(exports2, "filters", { enumerable: true, get: function() {
      return index_js_1.filters;
    } });
    Object.defineProperty(exports2, "pseudos", { enumerable: true, get: function() {
      return index_js_1.pseudos;
    } });
    Object.defineProperty(exports2, "aliases", { enumerable: true, get: function() {
      return index_js_1.aliases;
    } });
  }
});
var require_positionals = __commonJS2({
  "../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/positionals.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getLimit = exports2.isFilter = exports2.filterNames = void 0;
    exports2.filterNames = /* @__PURE__ */ new Set([
      "first",
      "last",
      "eq",
      "gt",
      "nth",
      "lt",
      "even",
      "odd"
    ]);
    function isFilter(s2) {
      if (s2.type !== "pseudo")
        return false;
      if (exports2.filterNames.has(s2.name))
        return true;
      if (s2.name === "not" && Array.isArray(s2.data)) {
        return s2.data.some(function(s22) {
          return s22.some(isFilter);
        });
      }
      return false;
    }
    exports2.isFilter = isFilter;
    function getLimit(filter22, data, partLimit) {
      var num = data != null ? parseInt(data, 10) : NaN;
      switch (filter22) {
        case "first":
          return 1;
        case "nth":
        case "eq":
          return isFinite(num) ? num >= 0 ? num + 1 : Infinity : 0;
        case "lt":
          return isFinite(num) ? num >= 0 ? Math.min(num, partLimit) : Infinity : 0;
        case "gt":
          return isFinite(num) ? Infinity : 0;
        case "odd":
          return 2 * partLimit;
        case "even":
          return 2 * partLimit - 1;
        case "last":
        case "not":
          return Infinity;
      }
    }
    exports2.getLimit = getLimit;
  }
});
var require_helpers2 = __commonJS2({
  "../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/helpers.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.groupSelectors = exports2.getDocumentRoot = void 0;
    var positionals_js_1 = require_positionals();
    function getDocumentRoot(node) {
      while (node.parent)
        node = node.parent;
      return node;
    }
    exports2.getDocumentRoot = getDocumentRoot;
    function groupSelectors(selectors) {
      var filteredSelectors = [];
      var plainSelectors = [];
      for (var _i2 = 0, selectors_1 = selectors; _i2 < selectors_1.length; _i2++) {
        var selector = selectors_1[_i2];
        if (selector.some(positionals_js_1.isFilter)) {
          filteredSelectors.push(selector);
        } else {
          plainSelectors.push(selector);
        }
      }
      return [plainSelectors, filteredSelectors];
    }
    exports2.groupSelectors = groupSelectors;
  }
});
var require_lib10 = __commonJS2({
  "../../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/index.js"(exports2) {
    "use strict";
    var __assign2 = exports2 && exports2.__assign || function() {
      __assign2 = Object.assign || function(t9) {
        for (var s2, i22 = 1, n22 = arguments.length; i22 < n22; i22++) {
          s2 = arguments[i22];
          for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p))
            t9[p] = s2[p];
        }
        return t9;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __spreadArray2 = exports2 && exports2.__spreadArray || function(to2, from, pack) {
      if (pack || arguments.length === 2) for (var i22 = 0, l2 = from.length, ar3; i22 < l2; i22++) {
        if (ar3 || !(i22 in from)) {
          if (!ar3) ar3 = Array.prototype.slice.call(from, 0, i22);
          ar3[i22] = from[i22];
        }
      }
      return to2.concat(ar3 || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.select = exports2.filter = exports2.some = exports2.is = exports2.aliases = exports2.pseudos = exports2.filters = void 0;
    var css_what_1 = require_commonjs();
    var css_select_1 = require_lib9();
    var DomUtils = __importStar2(require_lib7());
    var boolbase = __importStar2(require_boolbase());
    var helpers_js_1 = require_helpers2();
    var positionals_js_1 = require_positionals();
    var css_select_2 = require_lib9();
    Object.defineProperty(exports2, "filters", { enumerable: true, get: function() {
      return css_select_2.filters;
    } });
    Object.defineProperty(exports2, "pseudos", { enumerable: true, get: function() {
      return css_select_2.pseudos;
    } });
    Object.defineProperty(exports2, "aliases", { enumerable: true, get: function() {
      return css_select_2.aliases;
    } });
    var UNIVERSAL_SELECTOR = {
      type: css_what_1.SelectorType.Universal,
      namespace: null
    };
    var SCOPE_PSEUDO = {
      type: css_what_1.SelectorType.Pseudo,
      name: "scope",
      data: null
    };
    function is32(element, selector, options) {
      if (options === void 0) {
        options = {};
      }
      return some([element], selector, options);
    }
    exports2.is = is32;
    function some(elements, selector, options) {
      if (options === void 0) {
        options = {};
      }
      if (typeof selector === "function")
        return elements.some(selector);
      var _a22 = (0, helpers_js_1.groupSelectors)((0, css_what_1.parse)(selector)), plain = _a22[0], filtered = _a22[1];
      return plain.length > 0 && elements.some((0, css_select_1._compileToken)(plain, options)) || filtered.some(function(sel) {
        return filterBySelector(sel, elements, options).length > 0;
      });
    }
    exports2.some = some;
    function filterByPosition(filter3, elems, data, options) {
      var num = typeof data === "string" ? parseInt(data, 10) : NaN;
      switch (filter3) {
        case "first":
        case "lt":
          return elems;
        case "last":
          return elems.length > 0 ? [elems[elems.length - 1]] : elems;
        case "nth":
        case "eq":
          return isFinite(num) && Math.abs(num) < elems.length ? [num < 0 ? elems[elems.length + num] : elems[num]] : [];
        case "gt":
          return isFinite(num) ? elems.slice(num + 1) : [];
        case "even":
          return elems.filter(function(_3, i22) {
            return i22 % 2 === 0;
          });
        case "odd":
          return elems.filter(function(_3, i22) {
            return i22 % 2 === 1;
          });
        case "not": {
          var filtered_1 = new Set(filterParsed(data, elems, options));
          return elems.filter(function(e2) {
            return !filtered_1.has(e2);
          });
        }
      }
    }
    function filter22(selector, elements, options) {
      if (options === void 0) {
        options = {};
      }
      return filterParsed((0, css_what_1.parse)(selector), elements, options);
    }
    exports2.filter = filter22;
    function filterParsed(selector, elements, options) {
      if (elements.length === 0)
        return [];
      var _a22 = (0, helpers_js_1.groupSelectors)(selector), plainSelectors = _a22[0], filteredSelectors = _a22[1];
      var found;
      if (plainSelectors.length) {
        var filtered = filterElements(elements, plainSelectors, options);
        if (filteredSelectors.length === 0) {
          return filtered;
        }
        if (filtered.length) {
          found = new Set(filtered);
        }
      }
      for (var i22 = 0; i22 < filteredSelectors.length && (found === null || found === void 0 ? void 0 : found.size) !== elements.length; i22++) {
        var filteredSelector = filteredSelectors[i22];
        var missing = found ? elements.filter(function(e2) {
          return DomUtils.isTag(e2) && !found.has(e2);
        }) : elements;
        if (missing.length === 0)
          break;
        var filtered = filterBySelector(filteredSelector, elements, options);
        if (filtered.length) {
          if (!found) {
            if (i22 === filteredSelectors.length - 1) {
              return filtered;
            }
            found = new Set(filtered);
          } else {
            filtered.forEach(function(el) {
              return found.add(el);
            });
          }
        }
      }
      return typeof found !== "undefined" ? found.size === elements.length ? elements : (
        // Filter elements to preserve order
        elements.filter(function(el) {
          return found.has(el);
        })
      ) : [];
    }
    function filterBySelector(selector, elements, options) {
      var _a22;
      if (selector.some(css_what_1.isTraversal)) {
        var root = (_a22 = options.root) !== null && _a22 !== void 0 ? _a22 : (0, helpers_js_1.getDocumentRoot)(elements[0]);
        var opts = __assign2(__assign2({}, options), { context: elements, relativeSelector: false });
        selector.push(SCOPE_PSEUDO);
        return findFilterElements(root, selector, opts, true, elements.length);
      }
      return findFilterElements(elements, selector, options, false, elements.length);
    }
    function select(selector, root, options, limit) {
      if (options === void 0) {
        options = {};
      }
      if (limit === void 0) {
        limit = Infinity;
      }
      if (typeof selector === "function") {
        return find(root, selector);
      }
      var _a22 = (0, helpers_js_1.groupSelectors)((0, css_what_1.parse)(selector)), plain = _a22[0], filtered = _a22[1];
      var results = filtered.map(function(sel) {
        return findFilterElements(root, sel, options, true, limit);
      });
      if (plain.length) {
        results.push(findElements(root, plain, options, limit));
      }
      if (results.length === 0) {
        return [];
      }
      if (results.length === 1) {
        return results[0];
      }
      return DomUtils.uniqueSort(results.reduce(function(a2, b2) {
        return __spreadArray2(__spreadArray2([], a2, true), b2, true);
      }));
    }
    exports2.select = select;
    function findFilterElements(root, selector, options, queryForSelector, totalLimit) {
      var filterIndex = selector.findIndex(positionals_js_1.isFilter);
      var sub = selector.slice(0, filterIndex);
      var filter3 = selector[filterIndex];
      var partLimit = selector.length - 1 === filterIndex ? totalLimit : Infinity;
      var limit = (0, positionals_js_1.getLimit)(filter3.name, filter3.data, partLimit);
      if (limit === 0)
        return [];
      var elemsNoLimit = sub.length === 0 && !Array.isArray(root) ? DomUtils.getChildren(root).filter(DomUtils.isTag) : sub.length === 0 ? (Array.isArray(root) ? root : [root]).filter(DomUtils.isTag) : queryForSelector || sub.some(css_what_1.isTraversal) ? findElements(root, [sub], options, limit) : filterElements(root, [sub], options);
      var elems = elemsNoLimit.slice(0, limit);
      var result = filterByPosition(filter3.name, elems, filter3.data, options);
      if (result.length === 0 || selector.length === filterIndex + 1) {
        return result;
      }
      var remainingSelector = selector.slice(filterIndex + 1);
      var remainingHasTraversal = remainingSelector.some(css_what_1.isTraversal);
      if (remainingHasTraversal) {
        if ((0, css_what_1.isTraversal)(remainingSelector[0])) {
          var type = remainingSelector[0].type;
          if (type === css_what_1.SelectorType.Sibling || type === css_what_1.SelectorType.Adjacent) {
            result = (0, css_select_1.prepareContext)(result, DomUtils, true);
          }
          remainingSelector.unshift(UNIVERSAL_SELECTOR);
        }
        options = __assign2(__assign2({}, options), {
          // Avoid absolutizing the selector
          relativeSelector: false,
          /*
           * Add a custom root func, to make sure traversals don't match elements
           * that aren't a part of the considered tree.
           */
          rootFunc: function(el) {
            return result.includes(el);
          }
        });
      } else if (options.rootFunc && options.rootFunc !== boolbase.trueFunc) {
        options = __assign2(__assign2({}, options), { rootFunc: boolbase.trueFunc });
      }
      return remainingSelector.some(positionals_js_1.isFilter) ? findFilterElements(result, remainingSelector, options, false, totalLimit) : remainingHasTraversal ? (
        // Query existing elements to resolve traversal.
        findElements(result, [remainingSelector], options, totalLimit)
      ) : (
        // If we don't have any more traversals, simply filter elements.
        filterElements(result, [remainingSelector], options)
      );
    }
    function findElements(root, sel, options, limit) {
      var query = (0, css_select_1._compileToken)(sel, options, root);
      return find(root, query, limit);
    }
    function find(root, query, limit) {
      if (limit === void 0) {
        limit = Infinity;
      }
      var elems = (0, css_select_1.prepareContext)(root, DomUtils, query.shouldTestNextSiblings);
      return DomUtils.find(function(node) {
        return DomUtils.isTag(node) && query(node);
      }, elems, true, limit);
    }
    function filterElements(elements, sel, options) {
      var els = (Array.isArray(elements) ? elements : [elements]).filter(DomUtils.isTag);
      if (els.length === 0)
        return els;
      var query = (0, css_select_1._compileToken)(sel, options);
      return query === boolbase.trueFunc ? els : els.filter(query);
    }
  }
});
var require_traversing = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/traversing.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __spreadArray2 = exports2 && exports2.__spreadArray || function(to2, from, pack) {
      if (pack || arguments.length === 2) for (var i22 = 0, l2 = from.length, ar3; i22 < l2; i22++) {
        if (ar3 || !(i22 in from)) {
          if (!ar3) ar3 = Array.prototype.slice.call(from, 0, i22);
          ar3[i22] = from[i22];
        }
      }
      return to2.concat(ar3 || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.addBack = exports2.add = exports2.end = exports2.slice = exports2.index = exports2.toArray = exports2.get = exports2.eq = exports2.last = exports2.first = exports2.has = exports2.not = exports2.is = exports2.filterArray = exports2.filter = exports2.map = exports2.each = exports2.contents = exports2.children = exports2.siblings = exports2.prevUntil = exports2.prevAll = exports2.prev = exports2.nextUntil = exports2.nextAll = exports2.next = exports2.closest = exports2.parentsUntil = exports2.parents = exports2.parent = exports2.find = void 0;
    var domhandler_1 = require_lib4();
    var select = __importStar2(require_lib10());
    var utils_js_1 = require_utils4();
    var static_js_1 = require_static();
    var domutils_1 = require_lib7();
    var reSiblingSelector = /^\s*[~+]/;
    function find(selectorOrHaystack) {
      var _a22;
      if (!selectorOrHaystack) {
        return this._make([]);
      }
      var context = this.toArray();
      if (typeof selectorOrHaystack !== "string") {
        var haystack = (0, utils_js_1.isCheerio)(selectorOrHaystack) ? selectorOrHaystack.toArray() : [selectorOrHaystack];
        return this._make(haystack.filter(function(elem) {
          return context.some(function(node) {
            return (0, static_js_1.contains)(node, elem);
          });
        }));
      }
      var elems = reSiblingSelector.test(selectorOrHaystack) ? context : this.children().toArray();
      var options = {
        context,
        root: (_a22 = this._root) === null || _a22 === void 0 ? void 0 : _a22[0],
        // Pass options that are recognized by `cheerio-select`
        xmlMode: this.options.xmlMode,
        lowerCaseTags: this.options.lowerCaseTags,
        lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
        pseudos: this.options.pseudos,
        quirksMode: this.options.quirksMode
      };
      return this._make(select.select(selectorOrHaystack, elems, options));
    }
    exports2.find = find;
    function _getMatcher(matchMap) {
      return function(fn3) {
        var postFns = [];
        for (var _i2 = 1; _i2 < arguments.length; _i2++) {
          postFns[_i2 - 1] = arguments[_i2];
        }
        return function(selector) {
          var _a22;
          var matched = matchMap(fn3, this);
          if (selector) {
            matched = filterArray(matched, selector, this.options.xmlMode, (_a22 = this._root) === null || _a22 === void 0 ? void 0 : _a22[0]);
          }
          return this._make(
            // Post processing is only necessary if there is more than one element.
            this.length > 1 && matched.length > 1 ? postFns.reduce(function(elems, fn22) {
              return fn22(elems);
            }, matched) : matched
          );
        };
      };
    }
    var _matcher = _getMatcher(function(fn3, elems) {
      var _a22;
      var ret = [];
      for (var i22 = 0; i22 < elems.length; i22++) {
        var value = fn3(elems[i22]);
        ret.push(value);
      }
      return (_a22 = new Array()).concat.apply(_a22, ret);
    });
    var _singleMatcher = _getMatcher(function(fn3, elems) {
      var ret = [];
      for (var i22 = 0; i22 < elems.length; i22++) {
        var value = fn3(elems[i22]);
        if (value !== null) {
          ret.push(value);
        }
      }
      return ret;
    });
    function _matchUntil(nextElem) {
      var postFns = [];
      for (var _i2 = 1; _i2 < arguments.length; _i2++) {
        postFns[_i2 - 1] = arguments[_i2];
      }
      var matches = null;
      var innerMatcher = _getMatcher(function(nextElem2, elems) {
        var matched = [];
        (0, utils_js_1.domEach)(elems, function(elem) {
          for (var next_1; next_1 = nextElem2(elem); elem = next_1) {
            if (matches === null || matches === void 0 ? void 0 : matches(next_1, matched.length))
              break;
            matched.push(next_1);
          }
        });
        return matched;
      }).apply(void 0, __spreadArray2([nextElem], postFns, false));
      return function(selector, filterSelector) {
        var _this = this;
        matches = typeof selector === "string" ? function(elem) {
          return select.is(elem, selector, _this.options);
        } : selector ? getFilterFn(selector) : null;
        var ret = innerMatcher.call(this, filterSelector);
        matches = null;
        return ret;
      };
    }
    function _removeDuplicates(elems) {
      return Array.from(new Set(elems));
    }
    exports2.parent = _singleMatcher(function(_a22) {
      var parent = _a22.parent;
      return parent && !(0, domhandler_1.isDocument)(parent) ? parent : null;
    }, _removeDuplicates);
    exports2.parents = _matcher(function(elem) {
      var matched = [];
      while (elem.parent && !(0, domhandler_1.isDocument)(elem.parent)) {
        matched.push(elem.parent);
        elem = elem.parent;
      }
      return matched;
    }, domutils_1.uniqueSort, function(elems) {
      return elems.reverse();
    });
    exports2.parentsUntil = _matchUntil(function(_a22) {
      var parent = _a22.parent;
      return parent && !(0, domhandler_1.isDocument)(parent) ? parent : null;
    }, domutils_1.uniqueSort, function(elems) {
      return elems.reverse();
    });
    function closest(selector) {
      var _a22;
      var set = [];
      if (!selector) {
        return this._make(set);
      }
      var selectOpts = {
        xmlMode: this.options.xmlMode,
        root: (_a22 = this._root) === null || _a22 === void 0 ? void 0 : _a22[0]
      };
      var selectFn = typeof selector === "string" ? function(elem) {
        return select.is(elem, selector, selectOpts);
      } : getFilterFn(selector);
      (0, utils_js_1.domEach)(this, function(elem) {
        while (elem && (0, utils_js_1.isTag)(elem)) {
          if (selectFn(elem, 0)) {
            if (!set.includes(elem)) {
              set.push(elem);
            }
            break;
          }
          elem = elem.parent;
        }
      });
      return this._make(set);
    }
    exports2.closest = closest;
    exports2.next = _singleMatcher(function(elem) {
      return (0, domutils_1.nextElementSibling)(elem);
    });
    exports2.nextAll = _matcher(function(elem) {
      var matched = [];
      while (elem.next) {
        elem = elem.next;
        if ((0, utils_js_1.isTag)(elem))
          matched.push(elem);
      }
      return matched;
    }, _removeDuplicates);
    exports2.nextUntil = _matchUntil(function(el) {
      return (0, domutils_1.nextElementSibling)(el);
    }, _removeDuplicates);
    exports2.prev = _singleMatcher(function(elem) {
      return (0, domutils_1.prevElementSibling)(elem);
    });
    exports2.prevAll = _matcher(function(elem) {
      var matched = [];
      while (elem.prev) {
        elem = elem.prev;
        if ((0, utils_js_1.isTag)(elem))
          matched.push(elem);
      }
      return matched;
    }, _removeDuplicates);
    exports2.prevUntil = _matchUntil(function(el) {
      return (0, domutils_1.prevElementSibling)(el);
    }, _removeDuplicates);
    exports2.siblings = _matcher(function(elem) {
      return (0, domutils_1.getSiblings)(elem).filter(function(el) {
        return (0, utils_js_1.isTag)(el) && el !== elem;
      });
    }, domutils_1.uniqueSort);
    exports2.children = _matcher(function(elem) {
      return (0, domutils_1.getChildren)(elem).filter(utils_js_1.isTag);
    }, _removeDuplicates);
    function contents() {
      var elems = this.toArray().reduce(function(newElems, elem) {
        return (0, domhandler_1.hasChildren)(elem) ? newElems.concat(elem.children) : newElems;
      }, []);
      return this._make(elems);
    }
    exports2.contents = contents;
    function each(fn3) {
      var i22 = 0;
      var len = this.length;
      while (i22 < len && fn3.call(this[i22], i22, this[i22]) !== false)
        ++i22;
      return this;
    }
    exports2.each = each;
    function map2(fn3) {
      var elems = [];
      for (var i22 = 0; i22 < this.length; i22++) {
        var el = this[i22];
        var val = fn3.call(el, i22, el);
        if (val != null) {
          elems = elems.concat(val);
        }
      }
      return this._make(elems);
    }
    exports2.map = map2;
    function getFilterFn(match) {
      if (typeof match === "function") {
        return function(el, i22) {
          return match.call(el, i22, el);
        };
      }
      if ((0, utils_js_1.isCheerio)(match)) {
        return function(el) {
          return Array.prototype.includes.call(match, el);
        };
      }
      return function(el) {
        return match === el;
      };
    }
    function filter22(match) {
      var _a22;
      return this._make(filterArray(this.toArray(), match, this.options.xmlMode, (_a22 = this._root) === null || _a22 === void 0 ? void 0 : _a22[0]));
    }
    exports2.filter = filter22;
    function filterArray(nodes, match, xmlMode, root) {
      return typeof match === "string" ? select.filter(match, nodes, { xmlMode, root }) : nodes.filter(getFilterFn(match));
    }
    exports2.filterArray = filterArray;
    function is32(selector) {
      var nodes = this.toArray();
      return typeof selector === "string" ? select.some(nodes.filter(utils_js_1.isTag), selector, this.options) : selector ? nodes.some(getFilterFn(selector)) : false;
    }
    exports2.is = is32;
    function not2(match) {
      var nodes = this.toArray();
      if (typeof match === "string") {
        var matches_1 = new Set(select.filter(match, nodes, this.options));
        nodes = nodes.filter(function(el) {
          return !matches_1.has(el);
        });
      } else {
        var filterFn_1 = getFilterFn(match);
        nodes = nodes.filter(function(el, i22) {
          return !filterFn_1(el, i22);
        });
      }
      return this._make(nodes);
    }
    exports2.not = not2;
    function has(selectorOrHaystack) {
      var _this = this;
      return this.filter(typeof selectorOrHaystack === "string" ? (
        // Using the `:has` selector here short-circuits searches.
        ":has(".concat(selectorOrHaystack, ")")
      ) : function(_3, el) {
        return _this._make(el).find(selectorOrHaystack).length > 0;
      });
    }
    exports2.has = has;
    function first() {
      return this.length > 1 ? this._make(this[0]) : this;
    }
    exports2.first = first;
    function last() {
      return this.length > 0 ? this._make(this[this.length - 1]) : this;
    }
    exports2.last = last;
    function eq(i22) {
      var _a22;
      i22 = +i22;
      if (i22 === 0 && this.length <= 1)
        return this;
      if (i22 < 0)
        i22 = this.length + i22;
      return this._make((_a22 = this[i22]) !== null && _a22 !== void 0 ? _a22 : []);
    }
    exports2.eq = eq;
    function get2(i22) {
      if (i22 == null) {
        return this.toArray();
      }
      return this[i22 < 0 ? this.length + i22 : i22];
    }
    exports2.get = get2;
    function toArray2() {
      return Array.prototype.slice.call(this);
    }
    exports2.toArray = toArray2;
    function index(selectorOrNeedle) {
      var $haystack;
      var needle;
      if (selectorOrNeedle == null) {
        $haystack = this.parent().children();
        needle = this[0];
      } else if (typeof selectorOrNeedle === "string") {
        $haystack = this._make(selectorOrNeedle);
        needle = this[0];
      } else {
        $haystack = this;
        needle = (0, utils_js_1.isCheerio)(selectorOrNeedle) ? selectorOrNeedle[0] : selectorOrNeedle;
      }
      return Array.prototype.indexOf.call($haystack, needle);
    }
    exports2.index = index;
    function slice(start, end2) {
      return this._make(Array.prototype.slice.call(this, start, end2));
    }
    exports2.slice = slice;
    function end() {
      var _a22;
      return (_a22 = this.prevObject) !== null && _a22 !== void 0 ? _a22 : this._make([]);
    }
    exports2.end = end;
    function add(other, context) {
      var selection = this._make(other, context);
      var contents2 = (0, domutils_1.uniqueSort)(__spreadArray2(__spreadArray2([], this.get(), true), selection.get(), true));
      return this._make(contents2);
    }
    exports2.add = add;
    function addBack(selector) {
      return this.prevObject ? this.add(selector ? this.prevObject.filter(selector) : this.prevObject) : this;
    }
    exports2.addBack = addBack;
  }
});
var require_parse4 = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/parse.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.update = exports2.getParse = void 0;
    var domutils_1 = require_lib7();
    var domhandler_1 = require_lib4();
    function getParse(parser) {
      return function parse(content2, options, isDocument2, context) {
        if (typeof Buffer !== "undefined" && Buffer.isBuffer(content2)) {
          content2 = content2.toString();
        }
        if (typeof content2 === "string") {
          return parser(content2, options, isDocument2, context);
        }
        var doc = content2;
        if (!Array.isArray(doc) && (0, domhandler_1.isDocument)(doc)) {
          return doc;
        }
        var root = new domhandler_1.Document([]);
        update(doc, root);
        return root;
      };
    }
    exports2.getParse = getParse;
    function update(newChilds, parent) {
      var arr = Array.isArray(newChilds) ? newChilds : [newChilds];
      if (parent) {
        parent.children = arr;
      } else {
        parent = null;
      }
      for (var i22 = 0; i22 < arr.length; i22++) {
        var node = arr[i22];
        if (node.parent && node.parent.children !== arr) {
          (0, domutils_1.removeElement)(node);
        }
        if (parent) {
          node.prev = arr[i22 - 1] || null;
          node.next = arr[i22 + 1] || null;
        } else {
          node.prev = node.next = null;
        }
        node.parent = parent;
      }
      return parent;
    }
    exports2.update = update;
  }
});
var require_manipulation2 = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/manipulation.js"(exports2) {
    "use strict";
    var __spreadArray2 = exports2 && exports2.__spreadArray || function(to2, from, pack) {
      if (pack || arguments.length === 2) for (var i22 = 0, l2 = from.length, ar3; i22 < l2; i22++) {
        if (ar3 || !(i22 in from)) {
          if (!ar3) ar3 = Array.prototype.slice.call(from, 0, i22);
          ar3[i22] = from[i22];
        }
      }
      return to2.concat(ar3 || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.clone = exports2.text = exports2.toString = exports2.html = exports2.empty = exports2.replaceWith = exports2.remove = exports2.insertBefore = exports2.before = exports2.insertAfter = exports2.after = exports2.wrapAll = exports2.unwrap = exports2.wrapInner = exports2.wrap = exports2.prepend = exports2.append = exports2.prependTo = exports2.appendTo = exports2._makeDomArray = void 0;
    var domhandler_1 = require_lib4();
    var parse_js_1 = require_parse4();
    var static_js_1 = require_static();
    var utils_js_1 = require_utils4();
    var domutils_1 = require_lib7();
    function _makeDomArray(elem, clone2) {
      var _this = this;
      if (elem == null) {
        return [];
      }
      if ((0, utils_js_1.isCheerio)(elem)) {
        return clone2 ? (0, utils_js_1.cloneDom)(elem.get()) : elem.get();
      }
      if (Array.isArray(elem)) {
        return elem.reduce(function(newElems, el) {
          return newElems.concat(_this._makeDomArray(el, clone2));
        }, []);
      }
      if (typeof elem === "string") {
        return this._parse(elem, this.options, false, null).children;
      }
      return clone2 ? (0, utils_js_1.cloneDom)([elem]) : [elem];
    }
    exports2._makeDomArray = _makeDomArray;
    function _insert(concatenator) {
      return function() {
        var _this = this;
        var elems = [];
        for (var _i2 = 0; _i2 < arguments.length; _i2++) {
          elems[_i2] = arguments[_i2];
        }
        var lastIdx = this.length - 1;
        return (0, utils_js_1.domEach)(this, function(el, i22) {
          if (!(0, domhandler_1.hasChildren)(el))
            return;
          var domSrc = typeof elems[0] === "function" ? elems[0].call(el, i22, _this._render(el.children)) : elems;
          var dom = _this._makeDomArray(domSrc, i22 < lastIdx);
          concatenator(dom, el.children, el);
        });
      };
    }
    function uniqueSplice(array, spliceIdx, spliceCount, newElems, parent) {
      var _a22, _b2;
      var spliceArgs = __spreadArray2([
        spliceIdx,
        spliceCount
      ], newElems, true);
      var prev = spliceIdx === 0 ? null : array[spliceIdx - 1];
      var next = spliceIdx + spliceCount >= array.length ? null : array[spliceIdx + spliceCount];
      for (var idx = 0; idx < newElems.length; ++idx) {
        var node = newElems[idx];
        var oldParent = node.parent;
        if (oldParent) {
          var oldSiblings = oldParent.children;
          var prevIdx = oldSiblings.indexOf(node);
          if (prevIdx > -1) {
            oldParent.children.splice(prevIdx, 1);
            if (parent === oldParent && spliceIdx > prevIdx) {
              spliceArgs[0]--;
            }
          }
        }
        node.parent = parent;
        if (node.prev) {
          node.prev.next = (_a22 = node.next) !== null && _a22 !== void 0 ? _a22 : null;
        }
        if (node.next) {
          node.next.prev = (_b2 = node.prev) !== null && _b2 !== void 0 ? _b2 : null;
        }
        node.prev = idx === 0 ? prev : newElems[idx - 1];
        node.next = idx === newElems.length - 1 ? next : newElems[idx + 1];
      }
      if (prev) {
        prev.next = newElems[0];
      }
      if (next) {
        next.prev = newElems[newElems.length - 1];
      }
      return array.splice.apply(array, spliceArgs);
    }
    function appendTo(target) {
      var appendTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
      appendTarget.append(this);
      return this;
    }
    exports2.appendTo = appendTo;
    function prependTo(target) {
      var prependTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
      prependTarget.prepend(this);
      return this;
    }
    exports2.prependTo = prependTo;
    exports2.append = _insert(function(dom, children, parent) {
      uniqueSplice(children, children.length, 0, dom, parent);
    });
    exports2.prepend = _insert(function(dom, children, parent) {
      uniqueSplice(children, 0, 0, dom, parent);
    });
    function _wrap(insert) {
      return function(wrapper) {
        var lastIdx = this.length - 1;
        var lastParent = this.parents().last();
        for (var i22 = 0; i22 < this.length; i22++) {
          var el = this[i22];
          var wrap_1 = typeof wrapper === "function" ? wrapper.call(el, i22, el) : typeof wrapper === "string" && !(0, utils_js_1.isHtml)(wrapper) ? lastParent.find(wrapper).clone() : wrapper;
          var wrapperDom = this._makeDomArray(wrap_1, i22 < lastIdx)[0];
          if (!wrapperDom || !(0, domhandler_1.hasChildren)(wrapperDom))
            continue;
          var elInsertLocation = wrapperDom;
          var j2 = 0;
          while (j2 < elInsertLocation.children.length) {
            var child = elInsertLocation.children[j2];
            if ((0, utils_js_1.isTag)(child)) {
              elInsertLocation = child;
              j2 = 0;
            } else {
              j2++;
            }
          }
          insert(el, elInsertLocation, [wrapperDom]);
        }
        return this;
      };
    }
    exports2.wrap = _wrap(function(el, elInsertLocation, wrapperDom) {
      var parent = el.parent;
      if (!parent)
        return;
      var siblings = parent.children;
      var index = siblings.indexOf(el);
      (0, parse_js_1.update)([el], elInsertLocation);
      uniqueSplice(siblings, index, 0, wrapperDom, parent);
    });
    exports2.wrapInner = _wrap(function(el, elInsertLocation, wrapperDom) {
      if (!(0, domhandler_1.hasChildren)(el))
        return;
      (0, parse_js_1.update)(el.children, elInsertLocation);
      (0, parse_js_1.update)(wrapperDom, el);
    });
    function unwrap(selector) {
      var _this = this;
      this.parent(selector).not("body").each(function(_3, el) {
        _this._make(el).replaceWith(el.children);
      });
      return this;
    }
    exports2.unwrap = unwrap;
    function wrapAll(wrapper) {
      var el = this[0];
      if (el) {
        var wrap_2 = this._make(typeof wrapper === "function" ? wrapper.call(el, 0, el) : wrapper).insertBefore(el);
        var elInsertLocation = void 0;
        for (var i22 = 0; i22 < wrap_2.length; i22++) {
          if (wrap_2[i22].type === "tag")
            elInsertLocation = wrap_2[i22];
        }
        var j2 = 0;
        while (elInsertLocation && j2 < elInsertLocation.children.length) {
          var child = elInsertLocation.children[j2];
          if (child.type === "tag") {
            elInsertLocation = child;
            j2 = 0;
          } else {
            j2++;
          }
        }
        if (elInsertLocation)
          this._make(elInsertLocation).append(this);
      }
      return this;
    }
    exports2.wrapAll = wrapAll;
    function after() {
      var _this = this;
      var elems = [];
      for (var _i2 = 0; _i2 < arguments.length; _i2++) {
        elems[_i2] = arguments[_i2];
      }
      var lastIdx = this.length - 1;
      return (0, utils_js_1.domEach)(this, function(el, i22) {
        var parent = el.parent;
        if (!(0, domhandler_1.hasChildren)(el) || !parent) {
          return;
        }
        var siblings = parent.children;
        var index = siblings.indexOf(el);
        if (index < 0)
          return;
        var domSrc = typeof elems[0] === "function" ? elems[0].call(el, i22, _this._render(el.children)) : elems;
        var dom = _this._makeDomArray(domSrc, i22 < lastIdx);
        uniqueSplice(siblings, index + 1, 0, dom, parent);
      });
    }
    exports2.after = after;
    function insertAfter(target) {
      var _this = this;
      if (typeof target === "string") {
        target = this._make(target);
      }
      this.remove();
      var clones = [];
      this._makeDomArray(target).forEach(function(el) {
        var clonedSelf = _this.clone().toArray();
        var parent = el.parent;
        if (!parent) {
          return;
        }
        var siblings = parent.children;
        var index = siblings.indexOf(el);
        if (index < 0)
          return;
        uniqueSplice(siblings, index + 1, 0, clonedSelf, parent);
        clones.push.apply(clones, clonedSelf);
      });
      return this._make(clones);
    }
    exports2.insertAfter = insertAfter;
    function before() {
      var _this = this;
      var elems = [];
      for (var _i2 = 0; _i2 < arguments.length; _i2++) {
        elems[_i2] = arguments[_i2];
      }
      var lastIdx = this.length - 1;
      return (0, utils_js_1.domEach)(this, function(el, i22) {
        var parent = el.parent;
        if (!(0, domhandler_1.hasChildren)(el) || !parent) {
          return;
        }
        var siblings = parent.children;
        var index = siblings.indexOf(el);
        if (index < 0)
          return;
        var domSrc = typeof elems[0] === "function" ? elems[0].call(el, i22, _this._render(el.children)) : elems;
        var dom = _this._makeDomArray(domSrc, i22 < lastIdx);
        uniqueSplice(siblings, index, 0, dom, parent);
      });
    }
    exports2.before = before;
    function insertBefore(target) {
      var _this = this;
      var targetArr = this._make(target);
      this.remove();
      var clones = [];
      (0, utils_js_1.domEach)(targetArr, function(el) {
        var clonedSelf = _this.clone().toArray();
        var parent = el.parent;
        if (!parent) {
          return;
        }
        var siblings = parent.children;
        var index = siblings.indexOf(el);
        if (index < 0)
          return;
        uniqueSplice(siblings, index, 0, clonedSelf, parent);
        clones.push.apply(clones, clonedSelf);
      });
      return this._make(clones);
    }
    exports2.insertBefore = insertBefore;
    function remove(selector) {
      var elems = selector ? this.filter(selector) : this;
      (0, utils_js_1.domEach)(elems, function(el) {
        (0, domutils_1.removeElement)(el);
        el.prev = el.next = el.parent = null;
      });
      return this;
    }
    exports2.remove = remove;
    function replaceWith(content2) {
      var _this = this;
      return (0, utils_js_1.domEach)(this, function(el, i22) {
        var parent = el.parent;
        if (!parent) {
          return;
        }
        var siblings = parent.children;
        var cont = typeof content2 === "function" ? content2.call(el, i22, el) : content2;
        var dom = _this._makeDomArray(cont);
        (0, parse_js_1.update)(dom, null);
        var index = siblings.indexOf(el);
        uniqueSplice(siblings, index, 1, dom, parent);
        if (!dom.includes(el)) {
          el.parent = el.prev = el.next = null;
        }
      });
    }
    exports2.replaceWith = replaceWith;
    function empty() {
      return (0, utils_js_1.domEach)(this, function(el) {
        if (!(0, domhandler_1.hasChildren)(el))
          return;
        el.children.forEach(function(child) {
          child.next = child.prev = child.parent = null;
        });
        el.children.length = 0;
      });
    }
    exports2.empty = empty;
    function html(str) {
      var _this = this;
      if (str === void 0) {
        var el = this[0];
        if (!el || !(0, domhandler_1.hasChildren)(el))
          return null;
        return this._render(el.children);
      }
      return (0, utils_js_1.domEach)(this, function(el2) {
        if (!(0, domhandler_1.hasChildren)(el2))
          return;
        el2.children.forEach(function(child) {
          child.next = child.prev = child.parent = null;
        });
        var content2 = (0, utils_js_1.isCheerio)(str) ? str.toArray() : _this._parse("".concat(str), _this.options, false, el2).children;
        (0, parse_js_1.update)(content2, el2);
      });
    }
    exports2.html = html;
    function toString5() {
      return this._render(this);
    }
    exports2.toString = toString5;
    function text(str) {
      var _this = this;
      if (str === void 0) {
        return (0, static_js_1.text)(this);
      }
      if (typeof str === "function") {
        return (0, utils_js_1.domEach)(this, function(el, i22) {
          return _this._make(el).text(str.call(el, i22, (0, static_js_1.text)([el])));
        });
      }
      return (0, utils_js_1.domEach)(this, function(el) {
        if (!(0, domhandler_1.hasChildren)(el))
          return;
        el.children.forEach(function(child) {
          child.next = child.prev = child.parent = null;
        });
        var textNode = new domhandler_1.Text("".concat(str));
        (0, parse_js_1.update)(textNode, el);
      });
    }
    exports2.text = text;
    function clone() {
      return this._make((0, utils_js_1.cloneDom)(this.get()));
    }
    exports2.clone = clone;
  }
});
var require_css = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/css.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.css = void 0;
    var utils_js_1 = require_utils4();
    function css(prop, val) {
      if (prop != null && val != null || // When `prop` is a "plain" object
      typeof prop === "object" && !Array.isArray(prop)) {
        return (0, utils_js_1.domEach)(this, function(el, i22) {
          if ((0, utils_js_1.isTag)(el)) {
            setCss(el, prop, val, i22);
          }
        });
      }
      if (this.length === 0) {
        return void 0;
      }
      return getCss(this[0], prop);
    }
    exports2.css = css;
    function setCss(el, prop, value, idx) {
      if (typeof prop === "string") {
        var styles8 = getCss(el);
        var val = typeof value === "function" ? value.call(el, idx, styles8[prop]) : value;
        if (val === "") {
          delete styles8[prop];
        } else if (val != null) {
          styles8[prop] = val;
        }
        el.attribs["style"] = stringify(styles8);
      } else if (typeof prop === "object") {
        Object.keys(prop).forEach(function(k3, i22) {
          setCss(el, k3, prop[k3], i22);
        });
      }
    }
    function getCss(el, prop) {
      if (!el || !(0, utils_js_1.isTag)(el))
        return;
      var styles8 = parse(el.attribs["style"]);
      if (typeof prop === "string") {
        return styles8[prop];
      }
      if (Array.isArray(prop)) {
        var newStyles_1 = {};
        prop.forEach(function(item) {
          if (styles8[item] != null) {
            newStyles_1[item] = styles8[item];
          }
        });
        return newStyles_1;
      }
      return styles8;
    }
    function stringify(obj) {
      return Object.keys(obj).reduce(function(str, prop) {
        return "".concat(str).concat(str ? " " : "").concat(prop, ": ").concat(obj[prop], ";");
      }, "");
    }
    function parse(styles8) {
      styles8 = (styles8 || "").trim();
      if (!styles8)
        return {};
      var obj = {};
      var key;
      for (var _i2 = 0, _a22 = styles8.split(";"); _i2 < _a22.length; _i2++) {
        var str = _a22[_i2];
        var n22 = str.indexOf(":");
        if (n22 < 1 || n22 === str.length - 1) {
          var trimmed = str.trimEnd();
          if (trimmed.length > 0 && key !== void 0) {
            obj[key] += ";".concat(trimmed);
          }
        } else {
          key = str.slice(0, n22).trim();
          obj[key] = str.slice(n22 + 1).trim();
        }
      }
      return obj;
    }
  }
});
var require_forms = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/api/forms.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.serializeArray = exports2.serialize = void 0;
    var utils_js_1 = require_utils4();
    var submittableSelector = "input,select,textarea,keygen";
    var r20 = /%20/g;
    var rCRLF = /\r?\n/g;
    function serialize2() {
      var arr = this.serializeArray();
      var retArr = arr.map(function(data) {
        return "".concat(encodeURIComponent(data.name), "=").concat(encodeURIComponent(data.value));
      });
      return retArr.join("&").replace(r20, "+");
    }
    exports2.serialize = serialize2;
    function serializeArray2() {
      var _this = this;
      return this.map(function(_3, elem) {
        var $elem = _this._make(elem);
        if ((0, utils_js_1.isTag)(elem) && elem.name === "form") {
          return $elem.find(submittableSelector).toArray();
        }
        return $elem.filter(submittableSelector).toArray();
      }).filter(
        // Verify elements have a name (`attr.name`) and are not disabled (`:enabled`)
        '[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))'
        // Convert each of the elements to its value(s)
      ).map(function(_3, elem) {
        var _a22;
        var $elem = _this._make(elem);
        var name2 = $elem.attr("name");
        var value = (_a22 = $elem.val()) !== null && _a22 !== void 0 ? _a22 : "";
        if (Array.isArray(value)) {
          return value.map(function(val) {
            return { name: name2, value: val.replace(rCRLF, "\r\n") };
          });
        }
        return { name: name2, value: value.replace(rCRLF, "\r\n") };
      }).toArray();
    }
    exports2.serializeArray = serializeArray2;
  }
});
var require_cheerio = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/cheerio.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Cheerio = void 0;
    var Attributes = __importStar2(require_attributes());
    var Traversing = __importStar2(require_traversing());
    var Manipulation = __importStar2(require_manipulation2());
    var Css = __importStar2(require_css());
    var Forms = __importStar2(require_forms());
    var Cheerio = (
      /** @class */
      /* @__PURE__ */ (function() {
        function Cheerio2(elements, root, options) {
          this.length = 0;
          this.options = options;
          this._root = root;
          if (elements) {
            for (var idx = 0; idx < elements.length; idx++) {
              this[idx] = elements[idx];
            }
            this.length = elements.length;
          }
        }
        return Cheerio2;
      })()
    );
    exports2.Cheerio = Cheerio;
    Cheerio.prototype.cheerio = "[cheerio object]";
    Cheerio.prototype.splice = Array.prototype.splice;
    Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
    Object.assign(Cheerio.prototype, Attributes, Traversing, Manipulation, Css, Forms);
  }
});
var require_load = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/load.js"(exports2) {
    "use strict";
    var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() {
      var extendStatics2 = function(d, b2) {
        extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b22) {
          d2.__proto__ = b22;
        } || function(d2, b22) {
          for (var p in b22) if (Object.prototype.hasOwnProperty.call(b22, p)) d2[p] = b22[p];
        };
        return extendStatics2(d, b2);
      };
      return function(d, b2) {
        if (typeof b2 !== "function" && b2 !== null)
          throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
        extendStatics2(d, b2);
        function __() {
          this.constructor = d;
        }
        d.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
      };
    })();
    var __assign2 = exports2 && exports2.__assign || function() {
      __assign2 = Object.assign || function(t9) {
        for (var s2, i22 = 1, n22 = arguments.length; i22 < n22; i22++) {
          s2 = arguments[i22];
          for (var p in s2) if (Object.prototype.hasOwnProperty.call(s2, p))
            t9[p] = s2[p];
        }
        return t9;
      };
      return __assign2.apply(this, arguments);
    };
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getLoad = void 0;
    var options_js_1 = __importStar2(require_options());
    var staticMethods = __importStar2(require_static());
    var cheerio_js_1 = require_cheerio();
    var utils_js_1 = require_utils4();
    function getLoad(parse, render4) {
      return function load(content2, options, isDocument2) {
        if (isDocument2 === void 0) {
          isDocument2 = true;
        }
        if (content2 == null) {
          throw new Error("cheerio.load() expects a string");
        }
        var internalOpts = __assign2(__assign2({}, options_js_1.default), (0, options_js_1.flatten)(options));
        var initialRoot = parse(content2, internalOpts, isDocument2, null);
        var LoadedCheerio = (
          /** @class */
          (function(_super) {
            __extends2(LoadedCheerio2, _super);
            function LoadedCheerio2() {
              return _super !== null && _super.apply(this, arguments) || this;
            }
            LoadedCheerio2.prototype._make = function(selector, context) {
              var cheerio = initialize2(selector, context);
              cheerio.prevObject = this;
              return cheerio;
            };
            LoadedCheerio2.prototype._parse = function(content22, options2, isDocument22, context) {
              return parse(content22, options2, isDocument22, context);
            };
            LoadedCheerio2.prototype._render = function(dom) {
              return render4(dom, this.options);
            };
            return LoadedCheerio2;
          })(cheerio_js_1.Cheerio)
        );
        function initialize2(selector, context, root, opts) {
          if (root === void 0) {
            root = initialRoot;
          }
          if (selector && (0, utils_js_1.isCheerio)(selector))
            return selector;
          var options2 = __assign2(__assign2({}, internalOpts), (0, options_js_1.flatten)(opts));
          var r2 = typeof root === "string" ? [parse(root, options2, false, null)] : "length" in root ? root : [root];
          var rootInstance = (0, utils_js_1.isCheerio)(r2) ? r2 : new LoadedCheerio(r2, null, options2);
          rootInstance._root = rootInstance;
          if (!selector) {
            return new LoadedCheerio(void 0, rootInstance, options2);
          }
          var elements = typeof selector === "string" && (0, utils_js_1.isHtml)(selector) ? (
            // $(<html>)
            parse(selector, options2, false, null).children
          ) : isNode(selector) ? (
            // $(dom)
            [selector]
          ) : Array.isArray(selector) ? (
            // $([dom])
            selector
          ) : void 0;
          var instance = new LoadedCheerio(elements, rootInstance, options2);
          if (elements) {
            return instance;
          }
          if (typeof selector !== "string") {
            throw new Error("Unexpected type of selector");
          }
          var search = selector;
          var searchContext = !context ? (
            // If we don't have a context, maybe we have a root, from loading
            rootInstance
          ) : typeof context === "string" ? (0, utils_js_1.isHtml)(context) ? (
            // $('li', '<ul>...</ul>')
            new LoadedCheerio([parse(context, options2, false, null)], rootInstance, options2)
          ) : (
            // $('li', 'ul')
            (search = "".concat(context, " ").concat(search), rootInstance)
          ) : (0, utils_js_1.isCheerio)(context) ? (
            // $('li', $)
            context
          ) : (
            // $('li', node), $('li', [nodes])
            new LoadedCheerio(Array.isArray(context) ? context : [context], rootInstance, options2)
          );
          if (!searchContext)
            return instance;
          return searchContext.find(search);
        }
        Object.assign(initialize2, staticMethods, {
          load,
          // `_root` and `_options` are used in static methods.
          _root: initialRoot,
          _options: internalOpts,
          // Add `fn` for plugins
          fn: LoadedCheerio.prototype,
          // Add the prototype here to maintain `instanceof` behavior.
          prototype: LoadedCheerio.prototype
        });
        return initialize2;
      };
    }
    exports2.getLoad = getLoad;
    function isNode(obj) {
      return !!obj.name || obj.type === "root" || obj.type === "text" || obj.type === "comment";
    }
  }
});
var require_unicode2 = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/unicode.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SEQUENCES = exports2.CODE_POINTS = exports2.REPLACEMENT_CHARACTER = void 0;
    exports2.isSurrogate = isSurrogate;
    exports2.isSurrogatePair = isSurrogatePair;
    exports2.getSurrogatePairCodePoint = getSurrogatePairCodePoint;
    exports2.isControlCodePoint = isControlCodePoint;
    exports2.isUndefinedCodePoint = isUndefinedCodePoint;
    var UNDEFINED_CODE_POINTS = /* @__PURE__ */ new Set([
      65534,
      65535,
      131070,
      131071,
      196606,
      196607,
      262142,
      262143,
      327678,
      327679,
      393214,
      393215,
      458750,
      458751,
      524286,
      524287,
      589822,
      589823,
      655358,
      655359,
      720894,
      720895,
      786430,
      786431,
      851966,
      851967,
      917502,
      917503,
      983038,
      983039,
      1048574,
      1048575,
      1114110,
      1114111
    ]);
    exports2.REPLACEMENT_CHARACTER = "\uFFFD";
    var CODE_POINTS;
    (function(CODE_POINTS2) {
      CODE_POINTS2[CODE_POINTS2["EOF"] = -1] = "EOF";
      CODE_POINTS2[CODE_POINTS2["NULL"] = 0] = "NULL";
      CODE_POINTS2[CODE_POINTS2["TABULATION"] = 9] = "TABULATION";
      CODE_POINTS2[CODE_POINTS2["CARRIAGE_RETURN"] = 13] = "CARRIAGE_RETURN";
      CODE_POINTS2[CODE_POINTS2["LINE_FEED"] = 10] = "LINE_FEED";
      CODE_POINTS2[CODE_POINTS2["FORM_FEED"] = 12] = "FORM_FEED";
      CODE_POINTS2[CODE_POINTS2["SPACE"] = 32] = "SPACE";
      CODE_POINTS2[CODE_POINTS2["EXCLAMATION_MARK"] = 33] = "EXCLAMATION_MARK";
      CODE_POINTS2[CODE_POINTS2["QUOTATION_MARK"] = 34] = "QUOTATION_MARK";
      CODE_POINTS2[CODE_POINTS2["AMPERSAND"] = 38] = "AMPERSAND";
      CODE_POINTS2[CODE_POINTS2["APOSTROPHE"] = 39] = "APOSTROPHE";
      CODE_POINTS2[CODE_POINTS2["HYPHEN_MINUS"] = 45] = "HYPHEN_MINUS";
      CODE_POINTS2[CODE_POINTS2["SOLIDUS"] = 47] = "SOLIDUS";
      CODE_POINTS2[CODE_POINTS2["DIGIT_0"] = 48] = "DIGIT_0";
      CODE_POINTS2[CODE_POINTS2["DIGIT_9"] = 57] = "DIGIT_9";
      CODE_POINTS2[CODE_POINTS2["SEMICOLON"] = 59] = "SEMICOLON";
      CODE_POINTS2[CODE_POINTS2["LESS_THAN_SIGN"] = 60] = "LESS_THAN_SIGN";
      CODE_POINTS2[CODE_POINTS2["EQUALS_SIGN"] = 61] = "EQUALS_SIGN";
      CODE_POINTS2[CODE_POINTS2["GREATER_THAN_SIGN"] = 62] = "GREATER_THAN_SIGN";
      CODE_POINTS2[CODE_POINTS2["QUESTION_MARK"] = 63] = "QUESTION_MARK";
      CODE_POINTS2[CODE_POINTS2["LATIN_CAPITAL_A"] = 65] = "LATIN_CAPITAL_A";
      CODE_POINTS2[CODE_POINTS2["LATIN_CAPITAL_Z"] = 90] = "LATIN_CAPITAL_Z";
      CODE_POINTS2[CODE_POINTS2["RIGHT_SQUARE_BRACKET"] = 93] = "RIGHT_SQUARE_BRACKET";
      CODE_POINTS2[CODE_POINTS2["GRAVE_ACCENT"] = 96] = "GRAVE_ACCENT";
      CODE_POINTS2[CODE_POINTS2["LATIN_SMALL_A"] = 97] = "LATIN_SMALL_A";
      CODE_POINTS2[CODE_POINTS2["LATIN_SMALL_Z"] = 122] = "LATIN_SMALL_Z";
    })(CODE_POINTS || (exports2.CODE_POINTS = CODE_POINTS = {}));
    exports2.SEQUENCES = {
      DASH_DASH: "--",
      CDATA_START: "[CDATA[",
      DOCTYPE: "doctype",
      SCRIPT: "script",
      PUBLIC: "public",
      SYSTEM: "system"
    };
    function isSurrogate(cp) {
      return cp >= 55296 && cp <= 57343;
    }
    function isSurrogatePair(cp) {
      return cp >= 56320 && cp <= 57343;
    }
    function getSurrogatePairCodePoint(cp1, cp2) {
      return (cp1 - 55296) * 1024 + 9216 + cp2;
    }
    function isControlCodePoint(cp) {
      return cp !== 32 && cp !== 10 && cp !== 13 && cp !== 9 && cp !== 12 && cp >= 1 && cp <= 31 || cp >= 127 && cp <= 159;
    }
    function isUndefinedCodePoint(cp) {
      return cp >= 64976 && cp <= 65007 || UNDEFINED_CODE_POINTS.has(cp);
    }
  }
});
var require_error_codes = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/error-codes.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ERR = void 0;
    var ERR;
    (function(ERR2) {
      ERR2["controlCharacterInInputStream"] = "control-character-in-input-stream";
      ERR2["noncharacterInInputStream"] = "noncharacter-in-input-stream";
      ERR2["surrogateInInputStream"] = "surrogate-in-input-stream";
      ERR2["nonVoidHtmlElementStartTagWithTrailingSolidus"] = "non-void-html-element-start-tag-with-trailing-solidus";
      ERR2["endTagWithAttributes"] = "end-tag-with-attributes";
      ERR2["endTagWithTrailingSolidus"] = "end-tag-with-trailing-solidus";
      ERR2["unexpectedSolidusInTag"] = "unexpected-solidus-in-tag";
      ERR2["unexpectedNullCharacter"] = "unexpected-null-character";
      ERR2["unexpectedQuestionMarkInsteadOfTagName"] = "unexpected-question-mark-instead-of-tag-name";
      ERR2["invalidFirstCharacterOfTagName"] = "invalid-first-character-of-tag-name";
      ERR2["unexpectedEqualsSignBeforeAttributeName"] = "unexpected-equals-sign-before-attribute-name";
      ERR2["missingEndTagName"] = "missing-end-tag-name";
      ERR2["unexpectedCharacterInAttributeName"] = "unexpected-character-in-attribute-name";
      ERR2["unknownNamedCharacterReference"] = "unknown-named-character-reference";
      ERR2["missingSemicolonAfterCharacterReference"] = "missing-semicolon-after-character-reference";
      ERR2["unexpectedCharacterAfterDoctypeSystemIdentifier"] = "unexpected-character-after-doctype-system-identifier";
      ERR2["unexpectedCharacterInUnquotedAttributeValue"] = "unexpected-character-in-unquoted-attribute-value";
      ERR2["eofBeforeTagName"] = "eof-before-tag-name";
      ERR2["eofInTag"] = "eof-in-tag";
      ERR2["missingAttributeValue"] = "missing-attribute-value";
      ERR2["missingWhitespaceBetweenAttributes"] = "missing-whitespace-between-attributes";
      ERR2["missingWhitespaceAfterDoctypePublicKeyword"] = "missing-whitespace-after-doctype-public-keyword";
      ERR2["missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers"] = "missing-whitespace-between-doctype-public-and-system-identifiers";
      ERR2["missingWhitespaceAfterDoctypeSystemKeyword"] = "missing-whitespace-after-doctype-system-keyword";
      ERR2["missingQuoteBeforeDoctypePublicIdentifier"] = "missing-quote-before-doctype-public-identifier";
      ERR2["missingQuoteBeforeDoctypeSystemIdentifier"] = "missing-quote-before-doctype-system-identifier";
      ERR2["missingDoctypePublicIdentifier"] = "missing-doctype-public-identifier";
      ERR2["missingDoctypeSystemIdentifier"] = "missing-doctype-system-identifier";
      ERR2["abruptDoctypePublicIdentifier"] = "abrupt-doctype-public-identifier";
      ERR2["abruptDoctypeSystemIdentifier"] = "abrupt-doctype-system-identifier";
      ERR2["cdataInHtmlContent"] = "cdata-in-html-content";
      ERR2["incorrectlyOpenedComment"] = "incorrectly-opened-comment";
      ERR2["eofInScriptHtmlCommentLikeText"] = "eof-in-script-html-comment-like-text";
      ERR2["eofInDoctype"] = "eof-in-doctype";
      ERR2["nestedComment"] = "nested-comment";
      ERR2["abruptClosingOfEmptyComment"] = "abrupt-closing-of-empty-comment";
      ERR2["eofInComment"] = "eof-in-comment";
      ERR2["incorrectlyClosedComment"] = "incorrectly-closed-comment";
      ERR2["eofInCdata"] = "eof-in-cdata";
      ERR2["absenceOfDigitsInNumericCharacterReference"] = "absence-of-digits-in-numeric-character-reference";
      ERR2["nullCharacterReference"] = "null-character-reference";
      ERR2["surrogateCharacterReference"] = "surrogate-character-reference";
      ERR2["characterReferenceOutsideUnicodeRange"] = "character-reference-outside-unicode-range";
      ERR2["controlCharacterReference"] = "control-character-reference";
      ERR2["noncharacterCharacterReference"] = "noncharacter-character-reference";
      ERR2["missingWhitespaceBeforeDoctypeName"] = "missing-whitespace-before-doctype-name";
      ERR2["missingDoctypeName"] = "missing-doctype-name";
      ERR2["invalidCharacterSequenceAfterDoctypeName"] = "invalid-character-sequence-after-doctype-name";
      ERR2["duplicateAttribute"] = "duplicate-attribute";
      ERR2["nonConformingDoctype"] = "non-conforming-doctype";
      ERR2["missingDoctype"] = "missing-doctype";
      ERR2["misplacedDoctype"] = "misplaced-doctype";
      ERR2["endTagWithoutMatchingOpenElement"] = "end-tag-without-matching-open-element";
      ERR2["closingOfElementWithOpenChildElements"] = "closing-of-element-with-open-child-elements";
      ERR2["disallowedContentInNoscriptInHead"] = "disallowed-content-in-noscript-in-head";
      ERR2["openElementsLeftAfterEof"] = "open-elements-left-after-eof";
      ERR2["abandonedHeadElementChild"] = "abandoned-head-element-child";
      ERR2["misplacedStartTagForHeadElement"] = "misplaced-start-tag-for-head-element";
      ERR2["nestedNoscriptInHead"] = "nested-noscript-in-head";
      ERR2["eofInElementThatCanContainOnlyText"] = "eof-in-element-that-can-contain-only-text";
    })(ERR || (exports2.ERR = ERR = {}));
  }
});
var require_preprocessor = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Preprocessor = void 0;
    var unicode_js_1 = require_unicode2();
    var error_codes_js_1 = require_error_codes();
    var DEFAULT_BUFFER_WATERLINE = 1 << 16;
    var Preprocessor = class {
      constructor(handler) {
        this.handler = handler;
        this.html = "";
        this.pos = -1;
        this.lastGapPos = -2;
        this.gapStack = [];
        this.skipNextNewLine = false;
        this.lastChunkWritten = false;
        this.endOfChunkHit = false;
        this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;
        this.isEol = false;
        this.lineStartPos = 0;
        this.droppedBufferSize = 0;
        this.line = 1;
        this.lastErrOffset = -1;
      }
      /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */
      get col() {
        return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);
      }
      get offset() {
        return this.droppedBufferSize + this.pos;
      }
      getError(code, cpOffset) {
        const { line, col, offset } = this;
        const startCol = col + cpOffset;
        const startOffset = offset + cpOffset;
        return {
          code,
          startLine: line,
          endLine: line,
          startCol,
          endCol: startCol,
          startOffset,
          endOffset: startOffset
        };
      }
      _err(code) {
        if (this.handler.onParseError && this.lastErrOffset !== this.offset) {
          this.lastErrOffset = this.offset;
          this.handler.onParseError(this.getError(code, 0));
        }
      }
      _addGap() {
        this.gapStack.push(this.lastGapPos);
        this.lastGapPos = this.pos;
      }
      _processSurrogate(cp) {
        if (this.pos !== this.html.length - 1) {
          const nextCp = this.html.charCodeAt(this.pos + 1);
          if ((0, unicode_js_1.isSurrogatePair)(nextCp)) {
            this.pos++;
            this._addGap();
            return (0, unicode_js_1.getSurrogatePairCodePoint)(cp, nextCp);
          }
        } else if (!this.lastChunkWritten) {
          this.endOfChunkHit = true;
          return unicode_js_1.CODE_POINTS.EOF;
        }
        this._err(error_codes_js_1.ERR.surrogateInInputStream);
        return cp;
      }
      willDropParsedChunk() {
        return this.pos > this.bufferWaterline;
      }
      dropParsedChunk() {
        if (this.willDropParsedChunk()) {
          this.html = this.html.substring(this.pos);
          this.lineStartPos -= this.pos;
          this.droppedBufferSize += this.pos;
          this.pos = 0;
          this.lastGapPos = -2;
          this.gapStack.length = 0;
        }
      }
      write(chunk2, isLastChunk) {
        if (this.html.length > 0) {
          this.html += chunk2;
        } else {
          this.html = chunk2;
        }
        this.endOfChunkHit = false;
        this.lastChunkWritten = isLastChunk;
      }
      insertHtmlAtCurrentPos(chunk2) {
        this.html = this.html.substring(0, this.pos + 1) + chunk2 + this.html.substring(this.pos + 1);
        this.endOfChunkHit = false;
      }
      startsWith(pattern, caseSensitive) {
        if (this.pos + pattern.length > this.html.length) {
          this.endOfChunkHit = !this.lastChunkWritten;
          return false;
        }
        if (caseSensitive) {
          return this.html.startsWith(pattern, this.pos);
        }
        for (let i22 = 0; i22 < pattern.length; i22++) {
          const cp = this.html.charCodeAt(this.pos + i22) | 32;
          if (cp !== pattern.charCodeAt(i22)) {
            return false;
          }
        }
        return true;
      }
      peek(offset) {
        const pos = this.pos + offset;
        if (pos >= this.html.length) {
          this.endOfChunkHit = !this.lastChunkWritten;
          return unicode_js_1.CODE_POINTS.EOF;
        }
        const code = this.html.charCodeAt(pos);
        return code === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN ? unicode_js_1.CODE_POINTS.LINE_FEED : code;
      }
      advance() {
        this.pos++;
        if (this.isEol) {
          this.isEol = false;
          this.line++;
          this.lineStartPos = this.pos;
        }
        if (this.pos >= this.html.length) {
          this.endOfChunkHit = !this.lastChunkWritten;
          return unicode_js_1.CODE_POINTS.EOF;
        }
        let cp = this.html.charCodeAt(this.pos);
        if (cp === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN) {
          this.isEol = true;
          this.skipNextNewLine = true;
          return unicode_js_1.CODE_POINTS.LINE_FEED;
        }
        if (cp === unicode_js_1.CODE_POINTS.LINE_FEED) {
          this.isEol = true;
          if (this.skipNextNewLine) {
            this.line--;
            this.skipNextNewLine = false;
            this._addGap();
            return this.advance();
          }
        }
        this.skipNextNewLine = false;
        if ((0, unicode_js_1.isSurrogate)(cp)) {
          cp = this._processSurrogate(cp);
        }
        const isCommonValidRange = this.handler.onParseError === null || cp > 31 && cp < 127 || cp === unicode_js_1.CODE_POINTS.LINE_FEED || cp === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN || cp > 159 && cp < 64976;
        if (!isCommonValidRange) {
          this._checkForProblematicCharacters(cp);
        }
        return cp;
      }
      _checkForProblematicCharacters(cp) {
        if ((0, unicode_js_1.isControlCodePoint)(cp)) {
          this._err(error_codes_js_1.ERR.controlCharacterInInputStream);
        } else if ((0, unicode_js_1.isUndefinedCodePoint)(cp)) {
          this._err(error_codes_js_1.ERR.noncharacterInInputStream);
        }
      }
      retreat(count) {
        this.pos -= count;
        while (this.pos < this.lastGapPos) {
          this.lastGapPos = this.gapStack.pop();
          this.pos--;
        }
        this.isEol = false;
      }
    };
    exports2.Preprocessor = Preprocessor;
  }
});
var require_token = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/token.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.TokenType = void 0;
    exports2.getTokenAttr = getTokenAttr;
    var TokenType;
    (function(TokenType2) {
      TokenType2[TokenType2["CHARACTER"] = 0] = "CHARACTER";
      TokenType2[TokenType2["NULL_CHARACTER"] = 1] = "NULL_CHARACTER";
      TokenType2[TokenType2["WHITESPACE_CHARACTER"] = 2] = "WHITESPACE_CHARACTER";
      TokenType2[TokenType2["START_TAG"] = 3] = "START_TAG";
      TokenType2[TokenType2["END_TAG"] = 4] = "END_TAG";
      TokenType2[TokenType2["COMMENT"] = 5] = "COMMENT";
      TokenType2[TokenType2["DOCTYPE"] = 6] = "DOCTYPE";
      TokenType2[TokenType2["EOF"] = 7] = "EOF";
      TokenType2[TokenType2["HIBERNATION"] = 8] = "HIBERNATION";
    })(TokenType || (exports2.TokenType = TokenType = {}));
    function getTokenAttr(token2, attrName) {
      for (let i22 = token2.attrs.length - 1; i22 >= 0; i22--) {
        if (token2.attrs[i22].name === attrName) {
          return token2.attrs[i22].value;
        }
      }
      return null;
    }
  }
});
var require_decode_data_html2 = __commonJS2({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/generated/decode-data-html.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.htmlDecodeTree = void 0;
    exports2.htmlDecodeTree = new Uint16Array(
      // prettier-ignore
      /* @__PURE__ */ '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map((c3) => c3.charCodeAt(0))
    );
  }
});
var require_decode_data_xml2 = __commonJS2({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/generated/decode-data-xml.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.xmlDecodeTree = void 0;
    exports2.xmlDecodeTree = new Uint16Array(
      // prettier-ignore
      /* @__PURE__ */ "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map((c3) => c3.charCodeAt(0))
    );
  }
});
var require_decode_codepoint2 = __commonJS2({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/decode-codepoint.js"(exports2) {
    "use strict";
    var _a22;
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.fromCodePoint = void 0;
    exports2.replaceCodePoint = replaceCodePoint2;
    exports2.decodeCodePoint = decodeCodePoint2;
    var decodeMap2 = /* @__PURE__ */ new Map([
      [0, 65533],
      // C1 Unicode control character reference replacements
      [128, 8364],
      [130, 8218],
      [131, 402],
      [132, 8222],
      [133, 8230],
      [134, 8224],
      [135, 8225],
      [136, 710],
      [137, 8240],
      [138, 352],
      [139, 8249],
      [140, 338],
      [142, 381],
      [145, 8216],
      [146, 8217],
      [147, 8220],
      [148, 8221],
      [149, 8226],
      [150, 8211],
      [151, 8212],
      [152, 732],
      [153, 8482],
      [154, 353],
      [155, 8250],
      [156, 339],
      [158, 382],
      [159, 376]
    ]);
    exports2.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
    (_a22 = String.fromCodePoint) !== null && _a22 !== void 0 ? _a22 : function(codePoint) {
      let output = "";
      if (codePoint > 65535) {
        codePoint -= 65536;
        output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
        codePoint = 56320 | codePoint & 1023;
      }
      output += String.fromCharCode(codePoint);
      return output;
    };
    function replaceCodePoint2(codePoint) {
      var _a32;
      if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
        return 65533;
      }
      return (_a32 = decodeMap2.get(codePoint)) !== null && _a32 !== void 0 ? _a32 : codePoint;
    }
    function decodeCodePoint2(codePoint) {
      return (0, exports2.fromCodePoint)(replaceCodePoint2(codePoint));
    }
  }
});
var require_decode2 = __commonJS2({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/decode.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.fromCodePoint = exports2.replaceCodePoint = exports2.decodeCodePoint = exports2.xmlDecodeTree = exports2.htmlDecodeTree = exports2.EntityDecoder = exports2.DecodingMode = exports2.BinTrieFlags = void 0;
    exports2.determineBranch = determineBranch2;
    exports2.decodeHTML = decodeHTML2;
    exports2.decodeHTMLAttribute = decodeHTMLAttribute2;
    exports2.decodeHTMLStrict = decodeHTMLStrict2;
    exports2.decodeXML = decodeXML2;
    var decode_data_html_js_1 = require_decode_data_html2();
    var decode_data_xml_js_1 = require_decode_data_xml2();
    var decode_codepoint_js_1 = require_decode_codepoint2();
    var CharCodes3;
    (function(CharCodes22) {
      CharCodes22[CharCodes22["NUM"] = 35] = "NUM";
      CharCodes22[CharCodes22["SEMI"] = 59] = "SEMI";
      CharCodes22[CharCodes22["EQUALS"] = 61] = "EQUALS";
      CharCodes22[CharCodes22["ZERO"] = 48] = "ZERO";
      CharCodes22[CharCodes22["NINE"] = 57] = "NINE";
      CharCodes22[CharCodes22["LOWER_A"] = 97] = "LOWER_A";
      CharCodes22[CharCodes22["LOWER_F"] = 102] = "LOWER_F";
      CharCodes22[CharCodes22["LOWER_X"] = 120] = "LOWER_X";
      CharCodes22[CharCodes22["LOWER_Z"] = 122] = "LOWER_Z";
      CharCodes22[CharCodes22["UPPER_A"] = 65] = "UPPER_A";
      CharCodes22[CharCodes22["UPPER_F"] = 70] = "UPPER_F";
      CharCodes22[CharCodes22["UPPER_Z"] = 90] = "UPPER_Z";
    })(CharCodes3 || (CharCodes3 = {}));
    var TO_LOWER_BIT2 = 32;
    var BinTrieFlags2;
    (function(BinTrieFlags22) {
      BinTrieFlags22[BinTrieFlags22["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
      BinTrieFlags22[BinTrieFlags22["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
      BinTrieFlags22[BinTrieFlags22["JUMP_TABLE"] = 127] = "JUMP_TABLE";
    })(BinTrieFlags2 || (exports2.BinTrieFlags = BinTrieFlags2 = {}));
    function isNumber32(code) {
      return code >= CharCodes3.ZERO && code <= CharCodes3.NINE;
    }
    function isHexadecimalCharacter2(code) {
      return code >= CharCodes3.UPPER_A && code <= CharCodes3.UPPER_F || code >= CharCodes3.LOWER_A && code <= CharCodes3.LOWER_F;
    }
    function isAsciiAlphaNumeric2(code) {
      return code >= CharCodes3.UPPER_A && code <= CharCodes3.UPPER_Z || code >= CharCodes3.LOWER_A && code <= CharCodes3.LOWER_Z || isNumber32(code);
    }
    function isEntityInAttributeInvalidEnd2(code) {
      return code === CharCodes3.EQUALS || isAsciiAlphaNumeric2(code);
    }
    var EntityDecoderState2;
    (function(EntityDecoderState22) {
      EntityDecoderState22[EntityDecoderState22["EntityStart"] = 0] = "EntityStart";
      EntityDecoderState22[EntityDecoderState22["NumericStart"] = 1] = "NumericStart";
      EntityDecoderState22[EntityDecoderState22["NumericDecimal"] = 2] = "NumericDecimal";
      EntityDecoderState22[EntityDecoderState22["NumericHex"] = 3] = "NumericHex";
      EntityDecoderState22[EntityDecoderState22["NamedEntity"] = 4] = "NamedEntity";
    })(EntityDecoderState2 || (EntityDecoderState2 = {}));
    var DecodingMode2;
    (function(DecodingMode22) {
      DecodingMode22[DecodingMode22["Legacy"] = 0] = "Legacy";
      DecodingMode22[DecodingMode22["Strict"] = 1] = "Strict";
      DecodingMode22[DecodingMode22["Attribute"] = 2] = "Attribute";
    })(DecodingMode2 || (exports2.DecodingMode = DecodingMode2 = {}));
    var EntityDecoder2 = class {
      constructor(decodeTree, emitCodePoint, errors) {
        this.decodeTree = decodeTree;
        this.emitCodePoint = emitCodePoint;
        this.errors = errors;
        this.state = EntityDecoderState2.EntityStart;
        this.consumed = 1;
        this.result = 0;
        this.treeIndex = 0;
        this.excess = 1;
        this.decodeMode = DecodingMode2.Strict;
      }
      /** Resets the instance to make it reusable. */
      startEntity(decodeMode) {
        this.decodeMode = decodeMode;
        this.state = EntityDecoderState2.EntityStart;
        this.result = 0;
        this.treeIndex = 0;
        this.excess = 1;
        this.consumed = 1;
      }
      /**
       * Write an entity to the decoder. This can be called multiple times with partial entities.
       * If the entity is incomplete, the decoder will return -1.
       *
       * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
       * entity is incomplete, and resume when the next string is written.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      write(input, offset) {
        switch (this.state) {
          case EntityDecoderState2.EntityStart: {
            if (input.charCodeAt(offset) === CharCodes3.NUM) {
              this.state = EntityDecoderState2.NumericStart;
              this.consumed += 1;
              return this.stateNumericStart(input, offset + 1);
            }
            this.state = EntityDecoderState2.NamedEntity;
            return this.stateNamedEntity(input, offset);
          }
          case EntityDecoderState2.NumericStart: {
            return this.stateNumericStart(input, offset);
          }
          case EntityDecoderState2.NumericDecimal: {
            return this.stateNumericDecimal(input, offset);
          }
          case EntityDecoderState2.NumericHex: {
            return this.stateNumericHex(input, offset);
          }
          case EntityDecoderState2.NamedEntity: {
            return this.stateNamedEntity(input, offset);
          }
        }
      }
      /**
       * Switches between the numeric decimal and hexadecimal states.
       *
       * Equivalent to the `Numeric character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericStart(input, offset) {
        if (offset >= input.length) {
          return -1;
        }
        if ((input.charCodeAt(offset) | TO_LOWER_BIT2) === CharCodes3.LOWER_X) {
          this.state = EntityDecoderState2.NumericHex;
          this.consumed += 1;
          return this.stateNumericHex(input, offset + 1);
        }
        this.state = EntityDecoderState2.NumericDecimal;
        return this.stateNumericDecimal(input, offset);
      }
      addToNumericResult(input, start, end, base) {
        if (start !== end) {
          const digitCount = end - start;
          this.result = this.result * Math.pow(base, digitCount) + Number.parseInt(input.substr(start, digitCount), base);
          this.consumed += digitCount;
        }
      }
      /**
       * Parses a hexadecimal numeric entity.
       *
       * Equivalent to the `Hexademical character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericHex(input, offset) {
        const startIndex = offset;
        while (offset < input.length) {
          const char = input.charCodeAt(offset);
          if (isNumber32(char) || isHexadecimalCharacter2(char)) {
            offset += 1;
          } else {
            this.addToNumericResult(input, startIndex, offset, 16);
            return this.emitNumericEntity(char, 3);
          }
        }
        this.addToNumericResult(input, startIndex, offset, 16);
        return -1;
      }
      /**
       * Parses a decimal numeric entity.
       *
       * Equivalent to the `Decimal character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNumericDecimal(input, offset) {
        const startIndex = offset;
        while (offset < input.length) {
          const char = input.charCodeAt(offset);
          if (isNumber32(char)) {
            offset += 1;
          } else {
            this.addToNumericResult(input, startIndex, offset, 10);
            return this.emitNumericEntity(char, 2);
          }
        }
        this.addToNumericResult(input, startIndex, offset, 10);
        return -1;
      }
      /**
       * Validate and emit a numeric entity.
       *
       * Implements the logic from the `Hexademical character reference start
       * state` and `Numeric character reference end state` in the HTML spec.
       *
       * @param lastCp The last code point of the entity. Used to see if the
       *               entity was terminated with a semicolon.
       * @param expectedLength The minimum number of characters that should be
       *                       consumed. Used to validate that at least one digit
       *                       was consumed.
       * @returns The number of characters that were consumed.
       */
      emitNumericEntity(lastCp, expectedLength) {
        var _a22;
        if (this.consumed <= expectedLength) {
          (_a22 = this.errors) === null || _a22 === void 0 ? void 0 : _a22.absenceOfDigitsInNumericCharacterReference(this.consumed);
          return 0;
        }
        if (lastCp === CharCodes3.SEMI) {
          this.consumed += 1;
        } else if (this.decodeMode === DecodingMode2.Strict) {
          return 0;
        }
        this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);
        if (this.errors) {
          if (lastCp !== CharCodes3.SEMI) {
            this.errors.missingSemicolonAfterCharacterReference();
          }
          this.errors.validateNumericCharacterReference(this.result);
        }
        return this.consumed;
      }
      /**
       * Parses a named entity.
       *
       * Equivalent to the `Named character reference state` in the HTML spec.
       *
       * @param input The string containing the entity (or a continuation of the entity).
       * @param offset The current offset.
       * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
       */
      stateNamedEntity(input, offset) {
        const { decodeTree } = this;
        let current = decodeTree[this.treeIndex];
        let valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
        for (; offset < input.length; offset++, this.excess++) {
          const char = input.charCodeAt(offset);
          this.treeIndex = determineBranch2(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
          if (this.treeIndex < 0) {
            return this.result === 0 || // If we are parsing an attribute
            this.decodeMode === DecodingMode2.Attribute && // We shouldn't have consumed any characters after the entity,
            (valueLength === 0 || // And there should be no invalid characters.
            isEntityInAttributeInvalidEnd2(char)) ? 0 : this.emitNotTerminatedNamedEntity();
          }
          current = decodeTree[this.treeIndex];
          valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
          if (valueLength !== 0) {
            if (char === CharCodes3.SEMI) {
              return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
            }
            if (this.decodeMode !== DecodingMode2.Strict) {
              this.result = this.treeIndex;
              this.consumed += this.excess;
              this.excess = 0;
            }
          }
        }
        return -1;
      }
      /**
       * Emit a named entity that was not terminated with a semicolon.
       *
       * @returns The number of characters consumed.
       */
      emitNotTerminatedNamedEntity() {
        var _a22;
        const { result, decodeTree } = this;
        const valueLength = (decodeTree[result] & BinTrieFlags2.VALUE_LENGTH) >> 14;
        this.emitNamedEntityData(result, valueLength, this.consumed);
        (_a22 = this.errors) === null || _a22 === void 0 ? void 0 : _a22.missingSemicolonAfterCharacterReference();
        return this.consumed;
      }
      /**
       * Emit a named entity.
       *
       * @param result The index of the entity in the decode tree.
       * @param valueLength The number of bytes in the entity.
       * @param consumed The number of characters consumed.
       *
       * @returns The number of characters consumed.
       */
      emitNamedEntityData(result, valueLength, consumed) {
        const { decodeTree } = this;
        this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags2.VALUE_LENGTH : decodeTree[result + 1], consumed);
        if (valueLength === 3) {
          this.emitCodePoint(decodeTree[result + 2], consumed);
        }
        return consumed;
      }
      /**
       * Signal to the parser that the end of the input was reached.
       *
       * Remaining data will be emitted and relevant errors will be produced.
       *
       * @returns The number of characters consumed.
       */
      end() {
        var _a22;
        switch (this.state) {
          case EntityDecoderState2.NamedEntity: {
            return this.result !== 0 && (this.decodeMode !== DecodingMode2.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
          }
          // Otherwise, emit a numeric entity if we have one.
          case EntityDecoderState2.NumericDecimal: {
            return this.emitNumericEntity(0, 2);
          }
          case EntityDecoderState2.NumericHex: {
            return this.emitNumericEntity(0, 3);
          }
          case EntityDecoderState2.NumericStart: {
            (_a22 = this.errors) === null || _a22 === void 0 ? void 0 : _a22.absenceOfDigitsInNumericCharacterReference(this.consumed);
            return 0;
          }
          case EntityDecoderState2.EntityStart: {
            return 0;
          }
        }
      }
    };
    exports2.EntityDecoder = EntityDecoder2;
    function getDecoder2(decodeTree) {
      let returnValue = "";
      const decoder2 = new EntityDecoder2(decodeTree, (data) => returnValue += (0, decode_codepoint_js_1.fromCodePoint)(data));
      return function decodeWithTrie(input, decodeMode) {
        let lastIndex = 0;
        let offset = 0;
        while ((offset = input.indexOf("&", offset)) >= 0) {
          returnValue += input.slice(lastIndex, offset);
          decoder2.startEntity(decodeMode);
          const length = decoder2.write(
            input,
            // Skip the "&"
            offset + 1
          );
          if (length < 0) {
            lastIndex = offset + decoder2.end();
            break;
          }
          lastIndex = offset + length;
          offset = length === 0 ? lastIndex + 1 : lastIndex;
        }
        const result = returnValue + input.slice(lastIndex);
        returnValue = "";
        return result;
      };
    }
    function determineBranch2(decodeTree, current, nodeIndex, char) {
      const branchCount = (current & BinTrieFlags2.BRANCH_LENGTH) >> 7;
      const jumpOffset = current & BinTrieFlags2.JUMP_TABLE;
      if (branchCount === 0) {
        return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;
      }
      if (jumpOffset) {
        const value = char - jumpOffset;
        return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIndex + value] - 1;
      }
      let lo2 = nodeIndex;
      let hi3 = lo2 + branchCount - 1;
      while (lo2 <= hi3) {
        const mid = lo2 + hi3 >>> 1;
        const midValue = decodeTree[mid];
        if (midValue < char) {
          lo2 = mid + 1;
        } else if (midValue > char) {
          hi3 = mid - 1;
        } else {
          return decodeTree[mid + branchCount];
        }
      }
      return -1;
    }
    var htmlDecoder2 = /* @__PURE__ */ getDecoder2(decode_data_html_js_1.htmlDecodeTree);
    var xmlDecoder2 = /* @__PURE__ */ getDecoder2(decode_data_xml_js_1.xmlDecodeTree);
    function decodeHTML2(htmlString, mode = DecodingMode2.Legacy) {
      return htmlDecoder2(htmlString, mode);
    }
    function decodeHTMLAttribute2(htmlAttribute) {
      return htmlDecoder2(htmlAttribute, DecodingMode2.Attribute);
    }
    function decodeHTMLStrict2(htmlString) {
      return htmlDecoder2(htmlString, DecodingMode2.Strict);
    }
    function decodeXML2(xmlString) {
      return xmlDecoder2(xmlString, DecodingMode2.Strict);
    }
    var decode_data_html_js_2 = require_decode_data_html2();
    Object.defineProperty(exports2, "htmlDecodeTree", { enumerable: true, get: function() {
      return decode_data_html_js_2.htmlDecodeTree;
    } });
    var decode_data_xml_js_2 = require_decode_data_xml2();
    Object.defineProperty(exports2, "xmlDecodeTree", { enumerable: true, get: function() {
      return decode_data_xml_js_2.xmlDecodeTree;
    } });
    var decode_codepoint_js_2 = require_decode_codepoint2();
    Object.defineProperty(exports2, "decodeCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.decodeCodePoint;
    } });
    Object.defineProperty(exports2, "replaceCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.replaceCodePoint;
    } });
    Object.defineProperty(exports2, "fromCodePoint", { enumerable: true, get: function() {
      return decode_codepoint_js_2.fromCodePoint;
    } });
  }
});
var require_html = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/html.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.NUMBERED_HEADERS = exports2.SPECIAL_ELEMENTS = exports2.TAG_ID = exports2.TAG_NAMES = exports2.DOCUMENT_MODE = exports2.ATTRS = exports2.NS = void 0;
    exports2.getTagID = getTagID;
    exports2.hasUnescapedText = hasUnescapedText;
    var NS;
    (function(NS2) {
      NS2["HTML"] = "http://www.w3.org/1999/xhtml";
      NS2["MATHML"] = "http://www.w3.org/1998/Math/MathML";
      NS2["SVG"] = "http://www.w3.org/2000/svg";
      NS2["XLINK"] = "http://www.w3.org/1999/xlink";
      NS2["XML"] = "http://www.w3.org/XML/1998/namespace";
      NS2["XMLNS"] = "http://www.w3.org/2000/xmlns/";
    })(NS || (exports2.NS = NS = {}));
    var ATTRS;
    (function(ATTRS2) {
      ATTRS2["TYPE"] = "type";
      ATTRS2["ACTION"] = "action";
      ATTRS2["ENCODING"] = "encoding";
      ATTRS2["PROMPT"] = "prompt";
      ATTRS2["NAME"] = "name";
      ATTRS2["COLOR"] = "color";
      ATTRS2["FACE"] = "face";
      ATTRS2["SIZE"] = "size";
    })(ATTRS || (exports2.ATTRS = ATTRS = {}));
    var DOCUMENT_MODE;
    (function(DOCUMENT_MODE2) {
      DOCUMENT_MODE2["NO_QUIRKS"] = "no-quirks";
      DOCUMENT_MODE2["QUIRKS"] = "quirks";
      DOCUMENT_MODE2["LIMITED_QUIRKS"] = "limited-quirks";
    })(DOCUMENT_MODE || (exports2.DOCUMENT_MODE = DOCUMENT_MODE = {}));
    var TAG_NAMES;
    (function(TAG_NAMES2) {
      TAG_NAMES2["A"] = "a";
      TAG_NAMES2["ADDRESS"] = "address";
      TAG_NAMES2["ANNOTATION_XML"] = "annotation-xml";
      TAG_NAMES2["APPLET"] = "applet";
      TAG_NAMES2["AREA"] = "area";
      TAG_NAMES2["ARTICLE"] = "article";
      TAG_NAMES2["ASIDE"] = "aside";
      TAG_NAMES2["B"] = "b";
      TAG_NAMES2["BASE"] = "base";
      TAG_NAMES2["BASEFONT"] = "basefont";
      TAG_NAMES2["BGSOUND"] = "bgsound";
      TAG_NAMES2["BIG"] = "big";
      TAG_NAMES2["BLOCKQUOTE"] = "blockquote";
      TAG_NAMES2["BODY"] = "body";
      TAG_NAMES2["BR"] = "br";
      TAG_NAMES2["BUTTON"] = "button";
      TAG_NAMES2["CAPTION"] = "caption";
      TAG_NAMES2["CENTER"] = "center";
      TAG_NAMES2["CODE"] = "code";
      TAG_NAMES2["COL"] = "col";
      TAG_NAMES2["COLGROUP"] = "colgroup";
      TAG_NAMES2["DD"] = "dd";
      TAG_NAMES2["DESC"] = "desc";
      TAG_NAMES2["DETAILS"] = "details";
      TAG_NAMES2["DIALOG"] = "dialog";
      TAG_NAMES2["DIR"] = "dir";
      TAG_NAMES2["DIV"] = "div";
      TAG_NAMES2["DL"] = "dl";
      TAG_NAMES2["DT"] = "dt";
      TAG_NAMES2["EM"] = "em";
      TAG_NAMES2["EMBED"] = "embed";
      TAG_NAMES2["FIELDSET"] = "fieldset";
      TAG_NAMES2["FIGCAPTION"] = "figcaption";
      TAG_NAMES2["FIGURE"] = "figure";
      TAG_NAMES2["FONT"] = "font";
      TAG_NAMES2["FOOTER"] = "footer";
      TAG_NAMES2["FOREIGN_OBJECT"] = "foreignObject";
      TAG_NAMES2["FORM"] = "form";
      TAG_NAMES2["FRAME"] = "frame";
      TAG_NAMES2["FRAMESET"] = "frameset";
      TAG_NAMES2["H1"] = "h1";
      TAG_NAMES2["H2"] = "h2";
      TAG_NAMES2["H3"] = "h3";
      TAG_NAMES2["H4"] = "h4";
      TAG_NAMES2["H5"] = "h5";
      TAG_NAMES2["H6"] = "h6";
      TAG_NAMES2["HEAD"] = "head";
      TAG_NAMES2["HEADER"] = "header";
      TAG_NAMES2["HGROUP"] = "hgroup";
      TAG_NAMES2["HR"] = "hr";
      TAG_NAMES2["HTML"] = "html";
      TAG_NAMES2["I"] = "i";
      TAG_NAMES2["IMG"] = "img";
      TAG_NAMES2["IMAGE"] = "image";
      TAG_NAMES2["INPUT"] = "input";
      TAG_NAMES2["IFRAME"] = "iframe";
      TAG_NAMES2["KEYGEN"] = "keygen";
      TAG_NAMES2["LABEL"] = "label";
      TAG_NAMES2["LI"] = "li";
      TAG_NAMES2["LINK"] = "link";
      TAG_NAMES2["LISTING"] = "listing";
      TAG_NAMES2["MAIN"] = "main";
      TAG_NAMES2["MALIGNMARK"] = "malignmark";
      TAG_NAMES2["MARQUEE"] = "marquee";
      TAG_NAMES2["MATH"] = "math";
      TAG_NAMES2["MENU"] = "menu";
      TAG_NAMES2["META"] = "meta";
      TAG_NAMES2["MGLYPH"] = "mglyph";
      TAG_NAMES2["MI"] = "mi";
      TAG_NAMES2["MO"] = "mo";
      TAG_NAMES2["MN"] = "mn";
      TAG_NAMES2["MS"] = "ms";
      TAG_NAMES2["MTEXT"] = "mtext";
      TAG_NAMES2["NAV"] = "nav";
      TAG_NAMES2["NOBR"] = "nobr";
      TAG_NAMES2["NOFRAMES"] = "noframes";
      TAG_NAMES2["NOEMBED"] = "noembed";
      TAG_NAMES2["NOSCRIPT"] = "noscript";
      TAG_NAMES2["OBJECT"] = "object";
      TAG_NAMES2["OL"] = "ol";
      TAG_NAMES2["OPTGROUP"] = "optgroup";
      TAG_NAMES2["OPTION"] = "option";
      TAG_NAMES2["P"] = "p";
      TAG_NAMES2["PARAM"] = "param";
      TAG_NAMES2["PLAINTEXT"] = "plaintext";
      TAG_NAMES2["PRE"] = "pre";
      TAG_NAMES2["RB"] = "rb";
      TAG_NAMES2["RP"] = "rp";
      TAG_NAMES2["RT"] = "rt";
      TAG_NAMES2["RTC"] = "rtc";
      TAG_NAMES2["RUBY"] = "ruby";
      TAG_NAMES2["S"] = "s";
      TAG_NAMES2["SCRIPT"] = "script";
      TAG_NAMES2["SEARCH"] = "search";
      TAG_NAMES2["SECTION"] = "section";
      TAG_NAMES2["SELECT"] = "select";
      TAG_NAMES2["SOURCE"] = "source";
      TAG_NAMES2["SMALL"] = "small";
      TAG_NAMES2["SPAN"] = "span";
      TAG_NAMES2["STRIKE"] = "strike";
      TAG_NAMES2["STRONG"] = "strong";
      TAG_NAMES2["STYLE"] = "style";
      TAG_NAMES2["SUB"] = "sub";
      TAG_NAMES2["SUMMARY"] = "summary";
      TAG_NAMES2["SUP"] = "sup";
      TAG_NAMES2["TABLE"] = "table";
      TAG_NAMES2["TBODY"] = "tbody";
      TAG_NAMES2["TEMPLATE"] = "template";
      TAG_NAMES2["TEXTAREA"] = "textarea";
      TAG_NAMES2["TFOOT"] = "tfoot";
      TAG_NAMES2["TD"] = "td";
      TAG_NAMES2["TH"] = "th";
      TAG_NAMES2["THEAD"] = "thead";
      TAG_NAMES2["TITLE"] = "title";
      TAG_NAMES2["TR"] = "tr";
      TAG_NAMES2["TRACK"] = "track";
      TAG_NAMES2["TT"] = "tt";
      TAG_NAMES2["U"] = "u";
      TAG_NAMES2["UL"] = "ul";
      TAG_NAMES2["SVG"] = "svg";
      TAG_NAMES2["VAR"] = "var";
      TAG_NAMES2["WBR"] = "wbr";
      TAG_NAMES2["XMP"] = "xmp";
    })(TAG_NAMES || (exports2.TAG_NAMES = TAG_NAMES = {}));
    var TAG_ID;
    (function(TAG_ID2) {
      TAG_ID2[TAG_ID2["UNKNOWN"] = 0] = "UNKNOWN";
      TAG_ID2[TAG_ID2["A"] = 1] = "A";
      TAG_ID2[TAG_ID2["ADDRESS"] = 2] = "ADDRESS";
      TAG_ID2[TAG_ID2["ANNOTATION_XML"] = 3] = "ANNOTATION_XML";
      TAG_ID2[TAG_ID2["APPLET"] = 4] = "APPLET";
      TAG_ID2[TAG_ID2["AREA"] = 5] = "AREA";
      TAG_ID2[TAG_ID2["ARTICLE"] = 6] = "ARTICLE";
      TAG_ID2[TAG_ID2["ASIDE"] = 7] = "ASIDE";
      TAG_ID2[TAG_ID2["B"] = 8] = "B";
      TAG_ID2[TAG_ID2["BASE"] = 9] = "BASE";
      TAG_ID2[TAG_ID2["BASEFONT"] = 10] = "BASEFONT";
      TAG_ID2[TAG_ID2["BGSOUND"] = 11] = "BGSOUND";
      TAG_ID2[TAG_ID2["BIG"] = 12] = "BIG";
      TAG_ID2[TAG_ID2["BLOCKQUOTE"] = 13] = "BLOCKQUOTE";
      TAG_ID2[TAG_ID2["BODY"] = 14] = "BODY";
      TAG_ID2[TAG_ID2["BR"] = 15] = "BR";
      TAG_ID2[TAG_ID2["BUTTON"] = 16] = "BUTTON";
      TAG_ID2[TAG_ID2["CAPTION"] = 17] = "CAPTION";
      TAG_ID2[TAG_ID2["CENTER"] = 18] = "CENTER";
      TAG_ID2[TAG_ID2["CODE"] = 19] = "CODE";
      TAG_ID2[TAG_ID2["COL"] = 20] = "COL";
      TAG_ID2[TAG_ID2["COLGROUP"] = 21] = "COLGROUP";
      TAG_ID2[TAG_ID2["DD"] = 22] = "DD";
      TAG_ID2[TAG_ID2["DESC"] = 23] = "DESC";
      TAG_ID2[TAG_ID2["DETAILS"] = 24] = "DETAILS";
      TAG_ID2[TAG_ID2["DIALOG"] = 25] = "DIALOG";
      TAG_ID2[TAG_ID2["DIR"] = 26] = "DIR";
      TAG_ID2[TAG_ID2["DIV"] = 27] = "DIV";
      TAG_ID2[TAG_ID2["DL"] = 28] = "DL";
      TAG_ID2[TAG_ID2["DT"] = 29] = "DT";
      TAG_ID2[TAG_ID2["EM"] = 30] = "EM";
      TAG_ID2[TAG_ID2["EMBED"] = 31] = "EMBED";
      TAG_ID2[TAG_ID2["FIELDSET"] = 32] = "FIELDSET";
      TAG_ID2[TAG_ID2["FIGCAPTION"] = 33] = "FIGCAPTION";
      TAG_ID2[TAG_ID2["FIGURE"] = 34] = "FIGURE";
      TAG_ID2[TAG_ID2["FONT"] = 35] = "FONT";
      TAG_ID2[TAG_ID2["FOOTER"] = 36] = "FOOTER";
      TAG_ID2[TAG_ID2["FOREIGN_OBJECT"] = 37] = "FOREIGN_OBJECT";
      TAG_ID2[TAG_ID2["FORM"] = 38] = "FORM";
      TAG_ID2[TAG_ID2["FRAME"] = 39] = "FRAME";
      TAG_ID2[TAG_ID2["FRAMESET"] = 40] = "FRAMESET";
      TAG_ID2[TAG_ID2["H1"] = 41] = "H1";
      TAG_ID2[TAG_ID2["H2"] = 42] = "H2";
      TAG_ID2[TAG_ID2["H3"] = 43] = "H3";
      TAG_ID2[TAG_ID2["H4"] = 44] = "H4";
      TAG_ID2[TAG_ID2["H5"] = 45] = "H5";
      TAG_ID2[TAG_ID2["H6"] = 46] = "H6";
      TAG_ID2[TAG_ID2["HEAD"] = 47] = "HEAD";
      TAG_ID2[TAG_ID2["HEADER"] = 48] = "HEADER";
      TAG_ID2[TAG_ID2["HGROUP"] = 49] = "HGROUP";
      TAG_ID2[TAG_ID2["HR"] = 50] = "HR";
      TAG_ID2[TAG_ID2["HTML"] = 51] = "HTML";
      TAG_ID2[TAG_ID2["I"] = 52] = "I";
      TAG_ID2[TAG_ID2["IMG"] = 53] = "IMG";
      TAG_ID2[TAG_ID2["IMAGE"] = 54] = "IMAGE";
      TAG_ID2[TAG_ID2["INPUT"] = 55] = "INPUT";
      TAG_ID2[TAG_ID2["IFRAME"] = 56] = "IFRAME";
      TAG_ID2[TAG_ID2["KEYGEN"] = 57] = "KEYGEN";
      TAG_ID2[TAG_ID2["LABEL"] = 58] = "LABEL";
      TAG_ID2[TAG_ID2["LI"] = 59] = "LI";
      TAG_ID2[TAG_ID2["LINK"] = 60] = "LINK";
      TAG_ID2[TAG_ID2["LISTING"] = 61] = "LISTING";
      TAG_ID2[TAG_ID2["MAIN"] = 62] = "MAIN";
      TAG_ID2[TAG_ID2["MALIGNMARK"] = 63] = "MALIGNMARK";
      TAG_ID2[TAG_ID2["MARQUEE"] = 64] = "MARQUEE";
      TAG_ID2[TAG_ID2["MATH"] = 65] = "MATH";
      TAG_ID2[TAG_ID2["MENU"] = 66] = "MENU";
      TAG_ID2[TAG_ID2["META"] = 67] = "META";
      TAG_ID2[TAG_ID2["MGLYPH"] = 68] = "MGLYPH";
      TAG_ID2[TAG_ID2["MI"] = 69] = "MI";
      TAG_ID2[TAG_ID2["MO"] = 70] = "MO";
      TAG_ID2[TAG_ID2["MN"] = 71] = "MN";
      TAG_ID2[TAG_ID2["MS"] = 72] = "MS";
      TAG_ID2[TAG_ID2["MTEXT"] = 73] = "MTEXT";
      TAG_ID2[TAG_ID2["NAV"] = 74] = "NAV";
      TAG_ID2[TAG_ID2["NOBR"] = 75] = "NOBR";
      TAG_ID2[TAG_ID2["NOFRAMES"] = 76] = "NOFRAMES";
      TAG_ID2[TAG_ID2["NOEMBED"] = 77] = "NOEMBED";
      TAG_ID2[TAG_ID2["NOSCRIPT"] = 78] = "NOSCRIPT";
      TAG_ID2[TAG_ID2["OBJECT"] = 79] = "OBJECT";
      TAG_ID2[TAG_ID2["OL"] = 80] = "OL";
      TAG_ID2[TAG_ID2["OPTGROUP"] = 81] = "OPTGROUP";
      TAG_ID2[TAG_ID2["OPTION"] = 82] = "OPTION";
      TAG_ID2[TAG_ID2["P"] = 83] = "P";
      TAG_ID2[TAG_ID2["PARAM"] = 84] = "PARAM";
      TAG_ID2[TAG_ID2["PLAINTEXT"] = 85] = "PLAINTEXT";
      TAG_ID2[TAG_ID2["PRE"] = 86] = "PRE";
      TAG_ID2[TAG_ID2["RB"] = 87] = "RB";
      TAG_ID2[TAG_ID2["RP"] = 88] = "RP";
      TAG_ID2[TAG_ID2["RT"] = 89] = "RT";
      TAG_ID2[TAG_ID2["RTC"] = 90] = "RTC";
      TAG_ID2[TAG_ID2["RUBY"] = 91] = "RUBY";
      TAG_ID2[TAG_ID2["S"] = 92] = "S";
      TAG_ID2[TAG_ID2["SCRIPT"] = 93] = "SCRIPT";
      TAG_ID2[TAG_ID2["SEARCH"] = 94] = "SEARCH";
      TAG_ID2[TAG_ID2["SECTION"] = 95] = "SECTION";
      TAG_ID2[TAG_ID2["SELECT"] = 96] = "SELECT";
      TAG_ID2[TAG_ID2["SOURCE"] = 97] = "SOURCE";
      TAG_ID2[TAG_ID2["SMALL"] = 98] = "SMALL";
      TAG_ID2[TAG_ID2["SPAN"] = 99] = "SPAN";
      TAG_ID2[TAG_ID2["STRIKE"] = 100] = "STRIKE";
      TAG_ID2[TAG_ID2["STRONG"] = 101] = "STRONG";
      TAG_ID2[TAG_ID2["STYLE"] = 102] = "STYLE";
      TAG_ID2[TAG_ID2["SUB"] = 103] = "SUB";
      TAG_ID2[TAG_ID2["SUMMARY"] = 104] = "SUMMARY";
      TAG_ID2[TAG_ID2["SUP"] = 105] = "SUP";
      TAG_ID2[TAG_ID2["TABLE"] = 106] = "TABLE";
      TAG_ID2[TAG_ID2["TBODY"] = 107] = "TBODY";
      TAG_ID2[TAG_ID2["TEMPLATE"] = 108] = "TEMPLATE";
      TAG_ID2[TAG_ID2["TEXTAREA"] = 109] = "TEXTAREA";
      TAG_ID2[TAG_ID2["TFOOT"] = 110] = "TFOOT";
      TAG_ID2[TAG_ID2["TD"] = 111] = "TD";
      TAG_ID2[TAG_ID2["TH"] = 112] = "TH";
      TAG_ID2[TAG_ID2["THEAD"] = 113] = "THEAD";
      TAG_ID2[TAG_ID2["TITLE"] = 114] = "TITLE";
      TAG_ID2[TAG_ID2["TR"] = 115] = "TR";
      TAG_ID2[TAG_ID2["TRACK"] = 116] = "TRACK";
      TAG_ID2[TAG_ID2["TT"] = 117] = "TT";
      TAG_ID2[TAG_ID2["U"] = 118] = "U";
      TAG_ID2[TAG_ID2["UL"] = 119] = "UL";
      TAG_ID2[TAG_ID2["SVG"] = 120] = "SVG";
      TAG_ID2[TAG_ID2["VAR"] = 121] = "VAR";
      TAG_ID2[TAG_ID2["WBR"] = 122] = "WBR";
      TAG_ID2[TAG_ID2["XMP"] = 123] = "XMP";
    })(TAG_ID || (exports2.TAG_ID = TAG_ID = {}));
    var TAG_NAME_TO_ID = /* @__PURE__ */ new Map([
      [TAG_NAMES.A, TAG_ID.A],
      [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS],
      [TAG_NAMES.ANNOTATION_XML, TAG_ID.ANNOTATION_XML],
      [TAG_NAMES.APPLET, TAG_ID.APPLET],
      [TAG_NAMES.AREA, TAG_ID.AREA],
      [TAG_NAMES.ARTICLE, TAG_ID.ARTICLE],
      [TAG_NAMES.ASIDE, TAG_ID.ASIDE],
      [TAG_NAMES.B, TAG_ID.B],
      [TAG_NAMES.BASE, TAG_ID.BASE],
      [TAG_NAMES.BASEFONT, TAG_ID.BASEFONT],
      [TAG_NAMES.BGSOUND, TAG_ID.BGSOUND],
      [TAG_NAMES.BIG, TAG_ID.BIG],
      [TAG_NAMES.BLOCKQUOTE, TAG_ID.BLOCKQUOTE],
      [TAG_NAMES.BODY, TAG_ID.BODY],
      [TAG_NAMES.BR, TAG_ID.BR],
      [TAG_NAMES.BUTTON, TAG_ID.BUTTON],
      [TAG_NAMES.CAPTION, TAG_ID.CAPTION],
      [TAG_NAMES.CENTER, TAG_ID.CENTER],
      [TAG_NAMES.CODE, TAG_ID.CODE],
      [TAG_NAMES.COL, TAG_ID.COL],
      [TAG_NAMES.COLGROUP, TAG_ID.COLGROUP],
      [TAG_NAMES.DD, TAG_ID.DD],
      [TAG_NAMES.DESC, TAG_ID.DESC],
      [TAG_NAMES.DETAILS, TAG_ID.DETAILS],
      [TAG_NAMES.DIALOG, TAG_ID.DIALOG],
      [TAG_NAMES.DIR, TAG_ID.DIR],
      [TAG_NAMES.DIV, TAG_ID.DIV],
      [TAG_NAMES.DL, TAG_ID.DL],
      [TAG_NAMES.DT, TAG_ID.DT],
      [TAG_NAMES.EM, TAG_ID.EM],
      [TAG_NAMES.EMBED, TAG_ID.EMBED],
      [TAG_NAMES.FIELDSET, TAG_ID.FIELDSET],
      [TAG_NAMES.FIGCAPTION, TAG_ID.FIGCAPTION],
      [TAG_NAMES.FIGURE, TAG_ID.FIGURE],
      [TAG_NAMES.FONT, TAG_ID.FONT],
      [TAG_NAMES.FOOTER, TAG_ID.FOOTER],
      [TAG_NAMES.FOREIGN_OBJECT, TAG_ID.FOREIGN_OBJECT],
      [TAG_NAMES.FORM, TAG_ID.FORM],
      [TAG_NAMES.FRAME, TAG_ID.FRAME],
      [TAG_NAMES.FRAMESET, TAG_ID.FRAMESET],
      [TAG_NAMES.H1, TAG_ID.H1],
      [TAG_NAMES.H2, TAG_ID.H2],
      [TAG_NAMES.H3, TAG_ID.H3],
      [TAG_NAMES.H4, TAG_ID.H4],
      [TAG_NAMES.H5, TAG_ID.H5],
      [TAG_NAMES.H6, TAG_ID.H6],
      [TAG_NAMES.HEAD, TAG_ID.HEAD],
      [TAG_NAMES.HEADER, TAG_ID.HEADER],
      [TAG_NAMES.HGROUP, TAG_ID.HGROUP],
      [TAG_NAMES.HR, TAG_ID.HR],
      [TAG_NAMES.HTML, TAG_ID.HTML],
      [TAG_NAMES.I, TAG_ID.I],
      [TAG_NAMES.IMG, TAG_ID.IMG],
      [TAG_NAMES.IMAGE, TAG_ID.IMAGE],
      [TAG_NAMES.INPUT, TAG_ID.INPUT],
      [TAG_NAMES.IFRAME, TAG_ID.IFRAME],
      [TAG_NAMES.KEYGEN, TAG_ID.KEYGEN],
      [TAG_NAMES.LABEL, TAG_ID.LABEL],
      [TAG_NAMES.LI, TAG_ID.LI],
      [TAG_NAMES.LINK, TAG_ID.LINK],
      [TAG_NAMES.LISTING, TAG_ID.LISTING],
      [TAG_NAMES.MAIN, TAG_ID.MAIN],
      [TAG_NAMES.MALIGNMARK, TAG_ID.MALIGNMARK],
      [TAG_NAMES.MARQUEE, TAG_ID.MARQUEE],
      [TAG_NAMES.MATH, TAG_ID.MATH],
      [TAG_NAMES.MENU, TAG_ID.MENU],
      [TAG_NAMES.META, TAG_ID.META],
      [TAG_NAMES.MGLYPH, TAG_ID.MGLYPH],
      [TAG_NAMES.MI, TAG_ID.MI],
      [TAG_NAMES.MO, TAG_ID.MO],
      [TAG_NAMES.MN, TAG_ID.MN],
      [TAG_NAMES.MS, TAG_ID.MS],
      [TAG_NAMES.MTEXT, TAG_ID.MTEXT],
      [TAG_NAMES.NAV, TAG_ID.NAV],
      [TAG_NAMES.NOBR, TAG_ID.NOBR],
      [TAG_NAMES.NOFRAMES, TAG_ID.NOFRAMES],
      [TAG_NAMES.NOEMBED, TAG_ID.NOEMBED],
      [TAG_NAMES.NOSCRIPT, TAG_ID.NOSCRIPT],
      [TAG_NAMES.OBJECT, TAG_ID.OBJECT],
      [TAG_NAMES.OL, TAG_ID.OL],
      [TAG_NAMES.OPTGROUP, TAG_ID.OPTGROUP],
      [TAG_NAMES.OPTION, TAG_ID.OPTION],
      [TAG_NAMES.P, TAG_ID.P],
      [TAG_NAMES.PARAM, TAG_ID.PARAM],
      [TAG_NAMES.PLAINTEXT, TAG_ID.PLAINTEXT],
      [TAG_NAMES.PRE, TAG_ID.PRE],
      [TAG_NAMES.RB, TAG_ID.RB],
      [TAG_NAMES.RP, TAG_ID.RP],
      [TAG_NAMES.RT, TAG_ID.RT],
      [TAG_NAMES.RTC, TAG_ID.RTC],
      [TAG_NAMES.RUBY, TAG_ID.RUBY],
      [TAG_NAMES.S, TAG_ID.S],
      [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],
      [TAG_NAMES.SEARCH, TAG_ID.SEARCH],
      [TAG_NAMES.SECTION, TAG_ID.SECTION],
      [TAG_NAMES.SELECT, TAG_ID.SELECT],
      [TAG_NAMES.SOURCE, TAG_ID.SOURCE],
      [TAG_NAMES.SMALL, TAG_ID.SMALL],
      [TAG_NAMES.SPAN, TAG_ID.SPAN],
      [TAG_NAMES.STRIKE, TAG_ID.STRIKE],
      [TAG_NAMES.STRONG, TAG_ID.STRONG],
      [TAG_NAMES.STYLE, TAG_ID.STYLE],
      [TAG_NAMES.SUB, TAG_ID.SUB],
      [TAG_NAMES.SUMMARY, TAG_ID.SUMMARY],
      [TAG_NAMES.SUP, TAG_ID.SUP],
      [TAG_NAMES.TABLE, TAG_ID.TABLE],
      [TAG_NAMES.TBODY, TAG_ID.TBODY],
      [TAG_NAMES.TEMPLATE, TAG_ID.TEMPLATE],
      [TAG_NAMES.TEXTAREA, TAG_ID.TEXTAREA],
      [TAG_NAMES.TFOOT, TAG_ID.TFOOT],
      [TAG_NAMES.TD, TAG_ID.TD],
      [TAG_NAMES.TH, TAG_ID.TH],
      [TAG_NAMES.THEAD, TAG_ID.THEAD],
      [TAG_NAMES.TITLE, TAG_ID.TITLE],
      [TAG_NAMES.TR, TAG_ID.TR],
      [TAG_NAMES.TRACK, TAG_ID.TRACK],
      [TAG_NAMES.TT, TAG_ID.TT],
      [TAG_NAMES.U, TAG_ID.U],
      [TAG_NAMES.UL, TAG_ID.UL],
      [TAG_NAMES.SVG, TAG_ID.SVG],
      [TAG_NAMES.VAR, TAG_ID.VAR],
      [TAG_NAMES.WBR, TAG_ID.WBR],
      [TAG_NAMES.XMP, TAG_ID.XMP]
    ]);
    function getTagID(tagName) {
      var _a22;
      return (_a22 = TAG_NAME_TO_ID.get(tagName)) !== null && _a22 !== void 0 ? _a22 : TAG_ID.UNKNOWN;
    }
    var $2 = TAG_ID;
    exports2.SPECIAL_ELEMENTS = {
      [NS.HTML]: /* @__PURE__ */ new Set([
        $2.ADDRESS,
        $2.APPLET,
        $2.AREA,
        $2.ARTICLE,
        $2.ASIDE,
        $2.BASE,
        $2.BASEFONT,
        $2.BGSOUND,
        $2.BLOCKQUOTE,
        $2.BODY,
        $2.BR,
        $2.BUTTON,
        $2.CAPTION,
        $2.CENTER,
        $2.COL,
        $2.COLGROUP,
        $2.DD,
        $2.DETAILS,
        $2.DIR,
        $2.DIV,
        $2.DL,
        $2.DT,
        $2.EMBED,
        $2.FIELDSET,
        $2.FIGCAPTION,
        $2.FIGURE,
        $2.FOOTER,
        $2.FORM,
        $2.FRAME,
        $2.FRAMESET,
        $2.H1,
        $2.H2,
        $2.H3,
        $2.H4,
        $2.H5,
        $2.H6,
        $2.HEAD,
        $2.HEADER,
        $2.HGROUP,
        $2.HR,
        $2.HTML,
        $2.IFRAME,
        $2.IMG,
        $2.INPUT,
        $2.LI,
        $2.LINK,
        $2.LISTING,
        $2.MAIN,
        $2.MARQUEE,
        $2.MENU,
        $2.META,
        $2.NAV,
        $2.NOEMBED,
        $2.NOFRAMES,
        $2.NOSCRIPT,
        $2.OBJECT,
        $2.OL,
        $2.P,
        $2.PARAM,
        $2.PLAINTEXT,
        $2.PRE,
        $2.SCRIPT,
        $2.SECTION,
        $2.SELECT,
        $2.SOURCE,
        $2.STYLE,
        $2.SUMMARY,
        $2.TABLE,
        $2.TBODY,
        $2.TD,
        $2.TEMPLATE,
        $2.TEXTAREA,
        $2.TFOOT,
        $2.TH,
        $2.THEAD,
        $2.TITLE,
        $2.TR,
        $2.TRACK,
        $2.UL,
        $2.WBR,
        $2.XMP
      ]),
      [NS.MATHML]: /* @__PURE__ */ new Set([$2.MI, $2.MO, $2.MN, $2.MS, $2.MTEXT, $2.ANNOTATION_XML]),
      [NS.SVG]: /* @__PURE__ */ new Set([$2.TITLE, $2.FOREIGN_OBJECT, $2.DESC]),
      [NS.XLINK]: /* @__PURE__ */ new Set(),
      [NS.XML]: /* @__PURE__ */ new Set(),
      [NS.XMLNS]: /* @__PURE__ */ new Set()
    };
    exports2.NUMBERED_HEADERS = /* @__PURE__ */ new Set([$2.H1, $2.H2, $2.H3, $2.H4, $2.H5, $2.H6]);
    var UNESCAPED_TEXT = /* @__PURE__ */ new Set([
      TAG_NAMES.STYLE,
      TAG_NAMES.SCRIPT,
      TAG_NAMES.XMP,
      TAG_NAMES.IFRAME,
      TAG_NAMES.NOEMBED,
      TAG_NAMES.NOFRAMES,
      TAG_NAMES.PLAINTEXT
    ]);
    function hasUnescapedText(tn3, scriptingEnabled) {
      return UNESCAPED_TEXT.has(tn3) || scriptingEnabled && tn3 === TAG_NAMES.NOSCRIPT;
    }
  }
});
var require_tokenizer = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tokenizer/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Tokenizer = exports2.TokenizerMode = void 0;
    var preprocessor_js_1 = require_preprocessor();
    var unicode_js_1 = require_unicode2();
    var token_js_1 = require_token();
    var decode_1 = require_decode2();
    var error_codes_js_1 = require_error_codes();
    var html_js_1 = require_html();
    var State2;
    (function(State22) {
      State22[State22["DATA"] = 0] = "DATA";
      State22[State22["RCDATA"] = 1] = "RCDATA";
      State22[State22["RAWTEXT"] = 2] = "RAWTEXT";
      State22[State22["SCRIPT_DATA"] = 3] = "SCRIPT_DATA";
      State22[State22["PLAINTEXT"] = 4] = "PLAINTEXT";
      State22[State22["TAG_OPEN"] = 5] = "TAG_OPEN";
      State22[State22["END_TAG_OPEN"] = 6] = "END_TAG_OPEN";
      State22[State22["TAG_NAME"] = 7] = "TAG_NAME";
      State22[State22["RCDATA_LESS_THAN_SIGN"] = 8] = "RCDATA_LESS_THAN_SIGN";
      State22[State22["RCDATA_END_TAG_OPEN"] = 9] = "RCDATA_END_TAG_OPEN";
      State22[State22["RCDATA_END_TAG_NAME"] = 10] = "RCDATA_END_TAG_NAME";
      State22[State22["RAWTEXT_LESS_THAN_SIGN"] = 11] = "RAWTEXT_LESS_THAN_SIGN";
      State22[State22["RAWTEXT_END_TAG_OPEN"] = 12] = "RAWTEXT_END_TAG_OPEN";
      State22[State22["RAWTEXT_END_TAG_NAME"] = 13] = "RAWTEXT_END_TAG_NAME";
      State22[State22["SCRIPT_DATA_LESS_THAN_SIGN"] = 14] = "SCRIPT_DATA_LESS_THAN_SIGN";
      State22[State22["SCRIPT_DATA_END_TAG_OPEN"] = 15] = "SCRIPT_DATA_END_TAG_OPEN";
      State22[State22["SCRIPT_DATA_END_TAG_NAME"] = 16] = "SCRIPT_DATA_END_TAG_NAME";
      State22[State22["SCRIPT_DATA_ESCAPE_START"] = 17] = "SCRIPT_DATA_ESCAPE_START";
      State22[State22["SCRIPT_DATA_ESCAPE_START_DASH"] = 18] = "SCRIPT_DATA_ESCAPE_START_DASH";
      State22[State22["SCRIPT_DATA_ESCAPED"] = 19] = "SCRIPT_DATA_ESCAPED";
      State22[State22["SCRIPT_DATA_ESCAPED_DASH"] = 20] = "SCRIPT_DATA_ESCAPED_DASH";
      State22[State22["SCRIPT_DATA_ESCAPED_DASH_DASH"] = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH";
      State22[State22["SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN"] = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN";
      State22[State22["SCRIPT_DATA_ESCAPED_END_TAG_OPEN"] = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN";
      State22[State22["SCRIPT_DATA_ESCAPED_END_TAG_NAME"] = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME";
      State22[State22["SCRIPT_DATA_DOUBLE_ESCAPE_START"] = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START";
      State22[State22["SCRIPT_DATA_DOUBLE_ESCAPED"] = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED";
      State22[State22["SCRIPT_DATA_DOUBLE_ESCAPED_DASH"] = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH";
      State22[State22["SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH"] = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH";
      State22[State22["SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN"] = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN";
      State22[State22["SCRIPT_DATA_DOUBLE_ESCAPE_END"] = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END";
      State22[State22["BEFORE_ATTRIBUTE_NAME"] = 31] = "BEFORE_ATTRIBUTE_NAME";
      State22[State22["ATTRIBUTE_NAME"] = 32] = "ATTRIBUTE_NAME";
      State22[State22["AFTER_ATTRIBUTE_NAME"] = 33] = "AFTER_ATTRIBUTE_NAME";
      State22[State22["BEFORE_ATTRIBUTE_VALUE"] = 34] = "BEFORE_ATTRIBUTE_VALUE";
      State22[State22["ATTRIBUTE_VALUE_DOUBLE_QUOTED"] = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED";
      State22[State22["ATTRIBUTE_VALUE_SINGLE_QUOTED"] = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED";
      State22[State22["ATTRIBUTE_VALUE_UNQUOTED"] = 37] = "ATTRIBUTE_VALUE_UNQUOTED";
      State22[State22["AFTER_ATTRIBUTE_VALUE_QUOTED"] = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED";
      State22[State22["SELF_CLOSING_START_TAG"] = 39] = "SELF_CLOSING_START_TAG";
      State22[State22["BOGUS_COMMENT"] = 40] = "BOGUS_COMMENT";
      State22[State22["MARKUP_DECLARATION_OPEN"] = 41] = "MARKUP_DECLARATION_OPEN";
      State22[State22["COMMENT_START"] = 42] = "COMMENT_START";
      State22[State22["COMMENT_START_DASH"] = 43] = "COMMENT_START_DASH";
      State22[State22["COMMENT"] = 44] = "COMMENT";
      State22[State22["COMMENT_LESS_THAN_SIGN"] = 45] = "COMMENT_LESS_THAN_SIGN";
      State22[State22["COMMENT_LESS_THAN_SIGN_BANG"] = 46] = "COMMENT_LESS_THAN_SIGN_BANG";
      State22[State22["COMMENT_LESS_THAN_SIGN_BANG_DASH"] = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH";
      State22[State22["COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH"] = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH";
      State22[State22["COMMENT_END_DASH"] = 49] = "COMMENT_END_DASH";
      State22[State22["COMMENT_END"] = 50] = "COMMENT_END";
      State22[State22["COMMENT_END_BANG"] = 51] = "COMMENT_END_BANG";
      State22[State22["DOCTYPE"] = 52] = "DOCTYPE";
      State22[State22["BEFORE_DOCTYPE_NAME"] = 53] = "BEFORE_DOCTYPE_NAME";
      State22[State22["DOCTYPE_NAME"] = 54] = "DOCTYPE_NAME";
      State22[State22["AFTER_DOCTYPE_NAME"] = 55] = "AFTER_DOCTYPE_NAME";
      State22[State22["AFTER_DOCTYPE_PUBLIC_KEYWORD"] = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD";
      State22[State22["BEFORE_DOCTYPE_PUBLIC_IDENTIFIER"] = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER";
      State22[State22["DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED"] = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED";
      State22[State22["DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED"] = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED";
      State22[State22["AFTER_DOCTYPE_PUBLIC_IDENTIFIER"] = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER";
      State22[State22["BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS"] = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS";
      State22[State22["AFTER_DOCTYPE_SYSTEM_KEYWORD"] = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD";
      State22[State22["BEFORE_DOCTYPE_SYSTEM_IDENTIFIER"] = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER";
      State22[State22["DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED"] = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED";
      State22[State22["DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED"] = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED";
      State22[State22["AFTER_DOCTYPE_SYSTEM_IDENTIFIER"] = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER";
      State22[State22["BOGUS_DOCTYPE"] = 67] = "BOGUS_DOCTYPE";
      State22[State22["CDATA_SECTION"] = 68] = "CDATA_SECTION";
      State22[State22["CDATA_SECTION_BRACKET"] = 69] = "CDATA_SECTION_BRACKET";
      State22[State22["CDATA_SECTION_END"] = 70] = "CDATA_SECTION_END";
      State22[State22["CHARACTER_REFERENCE"] = 71] = "CHARACTER_REFERENCE";
      State22[State22["AMBIGUOUS_AMPERSAND"] = 72] = "AMBIGUOUS_AMPERSAND";
    })(State2 || (State2 = {}));
    exports2.TokenizerMode = {
      DATA: State2.DATA,
      RCDATA: State2.RCDATA,
      RAWTEXT: State2.RAWTEXT,
      SCRIPT_DATA: State2.SCRIPT_DATA,
      PLAINTEXT: State2.PLAINTEXT,
      CDATA_SECTION: State2.CDATA_SECTION
    };
    function isAsciiDigit(cp) {
      return cp >= unicode_js_1.CODE_POINTS.DIGIT_0 && cp <= unicode_js_1.CODE_POINTS.DIGIT_9;
    }
    function isAsciiUpper(cp) {
      return cp >= unicode_js_1.CODE_POINTS.LATIN_CAPITAL_A && cp <= unicode_js_1.CODE_POINTS.LATIN_CAPITAL_Z;
    }
    function isAsciiLower(cp) {
      return cp >= unicode_js_1.CODE_POINTS.LATIN_SMALL_A && cp <= unicode_js_1.CODE_POINTS.LATIN_SMALL_Z;
    }
    function isAsciiLetter(cp) {
      return isAsciiLower(cp) || isAsciiUpper(cp);
    }
    function isAsciiAlphaNumeric2(cp) {
      return isAsciiLetter(cp) || isAsciiDigit(cp);
    }
    function toAsciiLower(cp) {
      return cp + 32;
    }
    function isWhitespace2(cp) {
      return cp === unicode_js_1.CODE_POINTS.SPACE || cp === unicode_js_1.CODE_POINTS.LINE_FEED || cp === unicode_js_1.CODE_POINTS.TABULATION || cp === unicode_js_1.CODE_POINTS.FORM_FEED;
    }
    function isScriptDataDoubleEscapeSequenceEnd(cp) {
      return isWhitespace2(cp) || cp === unicode_js_1.CODE_POINTS.SOLIDUS || cp === unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN;
    }
    function getErrorForNumericCharacterReference(code) {
      if (code === unicode_js_1.CODE_POINTS.NULL) {
        return error_codes_js_1.ERR.nullCharacterReference;
      } else if (code > 1114111) {
        return error_codes_js_1.ERR.characterReferenceOutsideUnicodeRange;
      } else if ((0, unicode_js_1.isSurrogate)(code)) {
        return error_codes_js_1.ERR.surrogateCharacterReference;
      } else if ((0, unicode_js_1.isUndefinedCodePoint)(code)) {
        return error_codes_js_1.ERR.noncharacterCharacterReference;
      } else if ((0, unicode_js_1.isControlCodePoint)(code) || code === unicode_js_1.CODE_POINTS.CARRIAGE_RETURN) {
        return error_codes_js_1.ERR.controlCharacterReference;
      }
      return null;
    }
    var Tokenizer2 = class {
      constructor(options, handler) {
        this.options = options;
        this.handler = handler;
        this.paused = false;
        this.inLoop = false;
        this.inForeignNode = false;
        this.lastStartTagName = "";
        this.active = false;
        this.state = State2.DATA;
        this.returnState = State2.DATA;
        this.entityStartPos = 0;
        this.consumedAfterSnapshot = -1;
        this.currentCharacterToken = null;
        this.currentToken = null;
        this.currentAttr = { name: "", value: "" };
        this.preprocessor = new preprocessor_js_1.Preprocessor(handler);
        this.currentLocation = this.getCurrentLocation(-1);
        this.entityDecoder = new decode_1.EntityDecoder(decode_1.htmlDecodeTree, (cp, consumed) => {
          this.preprocessor.pos = this.entityStartPos + consumed - 1;
          this._flushCodePointConsumedAsCharacterReference(cp);
        }, handler.onParseError ? {
          missingSemicolonAfterCharacterReference: () => {
            this._err(error_codes_js_1.ERR.missingSemicolonAfterCharacterReference, 1);
          },
          absenceOfDigitsInNumericCharacterReference: (consumed) => {
            this._err(error_codes_js_1.ERR.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + consumed);
          },
          validateNumericCharacterReference: (code) => {
            const error = getErrorForNumericCharacterReference(code);
            if (error)
              this._err(error, 1);
          }
        } : void 0);
      }
      //Errors
      _err(code, cpOffset = 0) {
        var _a22, _b2;
        (_b2 = (_a22 = this.handler).onParseError) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, this.preprocessor.getError(code, cpOffset));
      }
      // NOTE: `offset` may never run across line boundaries.
      getCurrentLocation(offset) {
        if (!this.options.sourceCodeLocationInfo) {
          return null;
        }
        return {
          startLine: this.preprocessor.line,
          startCol: this.preprocessor.col - offset,
          startOffset: this.preprocessor.offset - offset,
          endLine: -1,
          endCol: -1,
          endOffset: -1
        };
      }
      _runParsingLoop() {
        if (this.inLoop)
          return;
        this.inLoop = true;
        while (this.active && !this.paused) {
          this.consumedAfterSnapshot = 0;
          const cp = this._consume();
          if (!this._ensureHibernation()) {
            this._callState(cp);
          }
        }
        this.inLoop = false;
      }
      //API
      pause() {
        this.paused = true;
      }
      resume(writeCallback) {
        if (!this.paused) {
          throw new Error("Parser was already resumed");
        }
        this.paused = false;
        if (this.inLoop)
          return;
        this._runParsingLoop();
        if (!this.paused) {
          writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();
        }
      }
      write(chunk2, isLastChunk, writeCallback) {
        this.active = true;
        this.preprocessor.write(chunk2, isLastChunk);
        this._runParsingLoop();
        if (!this.paused) {
          writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();
        }
      }
      insertHtmlAtCurrentPos(chunk2) {
        this.active = true;
        this.preprocessor.insertHtmlAtCurrentPos(chunk2);
        this._runParsingLoop();
      }
      //Hibernation
      _ensureHibernation() {
        if (this.preprocessor.endOfChunkHit) {
          this.preprocessor.retreat(this.consumedAfterSnapshot);
          this.consumedAfterSnapshot = 0;
          this.active = false;
          return true;
        }
        return false;
      }
      //Consumption
      _consume() {
        this.consumedAfterSnapshot++;
        return this.preprocessor.advance();
      }
      _advanceBy(count) {
        this.consumedAfterSnapshot += count;
        for (let i22 = 0; i22 < count; i22++) {
          this.preprocessor.advance();
        }
      }
      _consumeSequenceIfMatch(pattern, caseSensitive) {
        if (this.preprocessor.startsWith(pattern, caseSensitive)) {
          this._advanceBy(pattern.length - 1);
          return true;
        }
        return false;
      }
      //Token creation
      _createStartTagToken() {
        this.currentToken = {
          type: token_js_1.TokenType.START_TAG,
          tagName: "",
          tagID: html_js_1.TAG_ID.UNKNOWN,
          selfClosing: false,
          ackSelfClosing: false,
          attrs: [],
          location: this.getCurrentLocation(1)
        };
      }
      _createEndTagToken() {
        this.currentToken = {
          type: token_js_1.TokenType.END_TAG,
          tagName: "",
          tagID: html_js_1.TAG_ID.UNKNOWN,
          selfClosing: false,
          ackSelfClosing: false,
          attrs: [],
          location: this.getCurrentLocation(2)
        };
      }
      _createCommentToken(offset) {
        this.currentToken = {
          type: token_js_1.TokenType.COMMENT,
          data: "",
          location: this.getCurrentLocation(offset)
        };
      }
      _createDoctypeToken(initialName) {
        this.currentToken = {
          type: token_js_1.TokenType.DOCTYPE,
          name: initialName,
          forceQuirks: false,
          publicId: null,
          systemId: null,
          location: this.currentLocation
        };
      }
      _createCharacterToken(type, chars) {
        this.currentCharacterToken = {
          type,
          chars,
          location: this.currentLocation
        };
      }
      //Tag attributes
      _createAttr(attrNameFirstCh) {
        this.currentAttr = {
          name: attrNameFirstCh,
          value: ""
        };
        this.currentLocation = this.getCurrentLocation(0);
      }
      _leaveAttrName() {
        var _a22;
        var _b2;
        const token2 = this.currentToken;
        if ((0, token_js_1.getTokenAttr)(token2, this.currentAttr.name) === null) {
          token2.attrs.push(this.currentAttr);
          if (token2.location && this.currentLocation) {
            const attrLocations = (_a22 = (_b2 = token2.location).attrs) !== null && _a22 !== void 0 ? _a22 : _b2.attrs = /* @__PURE__ */ Object.create(null);
            attrLocations[this.currentAttr.name] = this.currentLocation;
            this._leaveAttrValue();
          }
        } else {
          this._err(error_codes_js_1.ERR.duplicateAttribute);
        }
      }
      _leaveAttrValue() {
        if (this.currentLocation) {
          this.currentLocation.endLine = this.preprocessor.line;
          this.currentLocation.endCol = this.preprocessor.col;
          this.currentLocation.endOffset = this.preprocessor.offset;
        }
      }
      //Token emission
      prepareToken(ct3) {
        this._emitCurrentCharacterToken(ct3.location);
        this.currentToken = null;
        if (ct3.location) {
          ct3.location.endLine = this.preprocessor.line;
          ct3.location.endCol = this.preprocessor.col + 1;
          ct3.location.endOffset = this.preprocessor.offset + 1;
        }
        this.currentLocation = this.getCurrentLocation(-1);
      }
      emitCurrentTagToken() {
        const ct3 = this.currentToken;
        this.prepareToken(ct3);
        ct3.tagID = (0, html_js_1.getTagID)(ct3.tagName);
        if (ct3.type === token_js_1.TokenType.START_TAG) {
          this.lastStartTagName = ct3.tagName;
          this.handler.onStartTag(ct3);
        } else {
          if (ct3.attrs.length > 0) {
            this._err(error_codes_js_1.ERR.endTagWithAttributes);
          }
          if (ct3.selfClosing) {
            this._err(error_codes_js_1.ERR.endTagWithTrailingSolidus);
          }
          this.handler.onEndTag(ct3);
        }
        this.preprocessor.dropParsedChunk();
      }
      emitCurrentComment(ct3) {
        this.prepareToken(ct3);
        this.handler.onComment(ct3);
        this.preprocessor.dropParsedChunk();
      }
      emitCurrentDoctype(ct3) {
        this.prepareToken(ct3);
        this.handler.onDoctype(ct3);
        this.preprocessor.dropParsedChunk();
      }
      _emitCurrentCharacterToken(nextLocation) {
        if (this.currentCharacterToken) {
          if (nextLocation && this.currentCharacterToken.location) {
            this.currentCharacterToken.location.endLine = nextLocation.startLine;
            this.currentCharacterToken.location.endCol = nextLocation.startCol;
            this.currentCharacterToken.location.endOffset = nextLocation.startOffset;
          }
          switch (this.currentCharacterToken.type) {
            case token_js_1.TokenType.CHARACTER: {
              this.handler.onCharacter(this.currentCharacterToken);
              break;
            }
            case token_js_1.TokenType.NULL_CHARACTER: {
              this.handler.onNullCharacter(this.currentCharacterToken);
              break;
            }
            case token_js_1.TokenType.WHITESPACE_CHARACTER: {
              this.handler.onWhitespaceCharacter(this.currentCharacterToken);
              break;
            }
          }
          this.currentCharacterToken = null;
        }
      }
      _emitEOFToken() {
        const location = this.getCurrentLocation(0);
        if (location) {
          location.endLine = location.startLine;
          location.endCol = location.startCol;
          location.endOffset = location.startOffset;
        }
        this._emitCurrentCharacterToken(location);
        this.handler.onEof({ type: token_js_1.TokenType.EOF, location });
        this.active = false;
      }
      //Characters emission
      //OPTIMIZATION: The specification uses only one type of character token (one token per character).
      //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.
      //If we have a sequence of characters that belong to the same group, the parser can process it
      //as a single solid character token.
      //So, there are 3 types of character tokens in parse5:
      //1)TokenType.NULL_CHARACTER - \u0000-character sequences (e.g. '\u0000\u0000\u0000')
      //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\n  \r\t   \f')
      //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')
      _appendCharToCurrentCharacterToken(type, ch) {
        if (this.currentCharacterToken) {
          if (this.currentCharacterToken.type === type) {
            this.currentCharacterToken.chars += ch;
            return;
          } else {
            this.currentLocation = this.getCurrentLocation(0);
            this._emitCurrentCharacterToken(this.currentLocation);
            this.preprocessor.dropParsedChunk();
          }
        }
        this._createCharacterToken(type, ch);
      }
      _emitCodePoint(cp) {
        const type = isWhitespace2(cp) ? token_js_1.TokenType.WHITESPACE_CHARACTER : cp === unicode_js_1.CODE_POINTS.NULL ? token_js_1.TokenType.NULL_CHARACTER : token_js_1.TokenType.CHARACTER;
        this._appendCharToCurrentCharacterToken(type, String.fromCodePoint(cp));
      }
      //NOTE: used when we emit characters explicitly.
      //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.
      _emitChars(ch) {
        this._appendCharToCurrentCharacterToken(token_js_1.TokenType.CHARACTER, ch);
      }
      // Character reference helpers
      _startCharacterReference() {
        this.returnState = this.state;
        this.state = State2.CHARACTER_REFERENCE;
        this.entityStartPos = this.preprocessor.pos;
        this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? decode_1.DecodingMode.Attribute : decode_1.DecodingMode.Legacy);
      }
      _isCharacterReferenceInAttribute() {
        return this.returnState === State2.ATTRIBUTE_VALUE_DOUBLE_QUOTED || this.returnState === State2.ATTRIBUTE_VALUE_SINGLE_QUOTED || this.returnState === State2.ATTRIBUTE_VALUE_UNQUOTED;
      }
      _flushCodePointConsumedAsCharacterReference(cp) {
        if (this._isCharacterReferenceInAttribute()) {
          this.currentAttr.value += String.fromCodePoint(cp);
        } else {
          this._emitCodePoint(cp);
        }
      }
      // Calling states this way turns out to be much faster than any other approach.
      _callState(cp) {
        switch (this.state) {
          case State2.DATA: {
            this._stateData(cp);
            break;
          }
          case State2.RCDATA: {
            this._stateRcdata(cp);
            break;
          }
          case State2.RAWTEXT: {
            this._stateRawtext(cp);
            break;
          }
          case State2.SCRIPT_DATA: {
            this._stateScriptData(cp);
            break;
          }
          case State2.PLAINTEXT: {
            this._statePlaintext(cp);
            break;
          }
          case State2.TAG_OPEN: {
            this._stateTagOpen(cp);
            break;
          }
          case State2.END_TAG_OPEN: {
            this._stateEndTagOpen(cp);
            break;
          }
          case State2.TAG_NAME: {
            this._stateTagName(cp);
            break;
          }
          case State2.RCDATA_LESS_THAN_SIGN: {
            this._stateRcdataLessThanSign(cp);
            break;
          }
          case State2.RCDATA_END_TAG_OPEN: {
            this._stateRcdataEndTagOpen(cp);
            break;
          }
          case State2.RCDATA_END_TAG_NAME: {
            this._stateRcdataEndTagName(cp);
            break;
          }
          case State2.RAWTEXT_LESS_THAN_SIGN: {
            this._stateRawtextLessThanSign(cp);
            break;
          }
          case State2.RAWTEXT_END_TAG_OPEN: {
            this._stateRawtextEndTagOpen(cp);
            break;
          }
          case State2.RAWTEXT_END_TAG_NAME: {
            this._stateRawtextEndTagName(cp);
            break;
          }
          case State2.SCRIPT_DATA_LESS_THAN_SIGN: {
            this._stateScriptDataLessThanSign(cp);
            break;
          }
          case State2.SCRIPT_DATA_END_TAG_OPEN: {
            this._stateScriptDataEndTagOpen(cp);
            break;
          }
          case State2.SCRIPT_DATA_END_TAG_NAME: {
            this._stateScriptDataEndTagName(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPE_START: {
            this._stateScriptDataEscapeStart(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPE_START_DASH: {
            this._stateScriptDataEscapeStartDash(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPED: {
            this._stateScriptDataEscaped(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPED_DASH: {
            this._stateScriptDataEscapedDash(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPED_DASH_DASH: {
            this._stateScriptDataEscapedDashDash(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
            this._stateScriptDataEscapedLessThanSign(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {
            this._stateScriptDataEscapedEndTagOpen(cp);
            break;
          }
          case State2.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {
            this._stateScriptDataEscapedEndTagName(cp);
            break;
          }
          case State2.SCRIPT_DATA_DOUBLE_ESCAPE_START: {
            this._stateScriptDataDoubleEscapeStart(cp);
            break;
          }
          case State2.SCRIPT_DATA_DOUBLE_ESCAPED: {
            this._stateScriptDataDoubleEscaped(cp);
            break;
          }
          case State2.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
            this._stateScriptDataDoubleEscapedDash(cp);
            break;
          }
          case State2.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
            this._stateScriptDataDoubleEscapedDashDash(cp);
            break;
          }
          case State2.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
            this._stateScriptDataDoubleEscapedLessThanSign(cp);
            break;
          }
          case State2.SCRIPT_DATA_DOUBLE_ESCAPE_END: {
            this._stateScriptDataDoubleEscapeEnd(cp);
            break;
          }
          case State2.BEFORE_ATTRIBUTE_NAME: {
            this._stateBeforeAttributeName(cp);
            break;
          }
          case State2.ATTRIBUTE_NAME: {
            this._stateAttributeName(cp);
            break;
          }
          case State2.AFTER_ATTRIBUTE_NAME: {
            this._stateAfterAttributeName(cp);
            break;
          }
          case State2.BEFORE_ATTRIBUTE_VALUE: {
            this._stateBeforeAttributeValue(cp);
            break;
          }
          case State2.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
            this._stateAttributeValueDoubleQuoted(cp);
            break;
          }
          case State2.ATTRIBUTE_VALUE_SINGLE_QUOTED: {
            this._stateAttributeValueSingleQuoted(cp);
            break;
          }
          case State2.ATTRIBUTE_VALUE_UNQUOTED: {
            this._stateAttributeValueUnquoted(cp);
            break;
          }
          case State2.AFTER_ATTRIBUTE_VALUE_QUOTED: {
            this._stateAfterAttributeValueQuoted(cp);
            break;
          }
          case State2.SELF_CLOSING_START_TAG: {
            this._stateSelfClosingStartTag(cp);
            break;
          }
          case State2.BOGUS_COMMENT: {
            this._stateBogusComment(cp);
            break;
          }
          case State2.MARKUP_DECLARATION_OPEN: {
            this._stateMarkupDeclarationOpen(cp);
            break;
          }
          case State2.COMMENT_START: {
            this._stateCommentStart(cp);
            break;
          }
          case State2.COMMENT_START_DASH: {
            this._stateCommentStartDash(cp);
            break;
          }
          case State2.COMMENT: {
            this._stateComment(cp);
            break;
          }
          case State2.COMMENT_LESS_THAN_SIGN: {
            this._stateCommentLessThanSign(cp);
            break;
          }
          case State2.COMMENT_LESS_THAN_SIGN_BANG: {
            this._stateCommentLessThanSignBang(cp);
            break;
          }
          case State2.COMMENT_LESS_THAN_SIGN_BANG_DASH: {
            this._stateCommentLessThanSignBangDash(cp);
            break;
          }
          case State2.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {
            this._stateCommentLessThanSignBangDashDash(cp);
            break;
          }
          case State2.COMMENT_END_DASH: {
            this._stateCommentEndDash(cp);
            break;
          }
          case State2.COMMENT_END: {
            this._stateCommentEnd(cp);
            break;
          }
          case State2.COMMENT_END_BANG: {
            this._stateCommentEndBang(cp);
            break;
          }
          case State2.DOCTYPE: {
            this._stateDoctype(cp);
            break;
          }
          case State2.BEFORE_DOCTYPE_NAME: {
            this._stateBeforeDoctypeName(cp);
            break;
          }
          case State2.DOCTYPE_NAME: {
            this._stateDoctypeName(cp);
            break;
          }
          case State2.AFTER_DOCTYPE_NAME: {
            this._stateAfterDoctypeName(cp);
            break;
          }
          case State2.AFTER_DOCTYPE_PUBLIC_KEYWORD: {
            this._stateAfterDoctypePublicKeyword(cp);
            break;
          }
          case State2.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
            this._stateBeforeDoctypePublicIdentifier(cp);
            break;
          }
          case State2.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
            this._stateDoctypePublicIdentifierDoubleQuoted(cp);
            break;
          }
          case State2.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
            this._stateDoctypePublicIdentifierSingleQuoted(cp);
            break;
          }
          case State2.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
            this._stateAfterDoctypePublicIdentifier(cp);
            break;
          }
          case State2.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
            this._stateBetweenDoctypePublicAndSystemIdentifiers(cp);
            break;
          }
          case State2.AFTER_DOCTYPE_SYSTEM_KEYWORD: {
            this._stateAfterDoctypeSystemKeyword(cp);
            break;
          }
          case State2.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
            this._stateBeforeDoctypeSystemIdentifier(cp);
            break;
          }
          case State2.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
            this._stateDoctypeSystemIdentifierDoubleQuoted(cp);
            break;
          }
          case State2.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
            this._stateDoctypeSystemIdentifierSingleQuoted(cp);
            break;
          }
          case State2.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
            this._stateAfterDoctypeSystemIdentifier(cp);
            break;
          }
          case State2.BOGUS_DOCTYPE: {
            this._stateBogusDoctype(cp);
            break;
          }
          case State2.CDATA_SECTION: {
            this._stateCdataSection(cp);
            break;
          }
          case State2.CDATA_SECTION_BRACKET: {
            this._stateCdataSectionBracket(cp);
            break;
          }
          case State2.CDATA_SECTION_END: {
            this._stateCdataSectionEnd(cp);
            break;
          }
          case State2.CHARACTER_REFERENCE: {
            this._stateCharacterReference();
            break;
          }
          case State2.AMBIGUOUS_AMPERSAND: {
            this._stateAmbiguousAmpersand(cp);
            break;
          }
          default: {
            throw new Error("Unknown state");
          }
        }
      }
      // State machine
      // Data state
      //------------------------------------------------------------------
      _stateData(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.TAG_OPEN;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitCodePoint(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      //  RCDATA state
      //------------------------------------------------------------------
      _stateRcdata(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.RCDATA_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // RAWTEXT state
      //------------------------------------------------------------------
      _stateRawtext(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.RAWTEXT_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data state
      //------------------------------------------------------------------
      _stateScriptData(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // PLAINTEXT state
      //------------------------------------------------------------------
      _statePlaintext(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Tag open state
      //------------------------------------------------------------------
      _stateTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this._createStartTagToken();
          this.state = State2.TAG_NAME;
          this._stateTagName(cp);
        } else
          switch (cp) {
            case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
              this.state = State2.MARKUP_DECLARATION_OPEN;
              break;
            }
            case unicode_js_1.CODE_POINTS.SOLIDUS: {
              this.state = State2.END_TAG_OPEN;
              break;
            }
            case unicode_js_1.CODE_POINTS.QUESTION_MARK: {
              this._err(error_codes_js_1.ERR.unexpectedQuestionMarkInsteadOfTagName);
              this._createCommentToken(1);
              this.state = State2.BOGUS_COMMENT;
              this._stateBogusComment(cp);
              break;
            }
            case unicode_js_1.CODE_POINTS.EOF: {
              this._err(error_codes_js_1.ERR.eofBeforeTagName);
              this._emitChars("<");
              this._emitEOFToken();
              break;
            }
            default: {
              this._err(error_codes_js_1.ERR.invalidFirstCharacterOfTagName);
              this._emitChars("<");
              this.state = State2.DATA;
              this._stateData(cp);
            }
          }
      }
      // End tag open state
      //------------------------------------------------------------------
      _stateEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this._createEndTagToken();
          this.state = State2.TAG_NAME;
          this._stateTagName(cp);
        } else
          switch (cp) {
            case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
              this._err(error_codes_js_1.ERR.missingEndTagName);
              this.state = State2.DATA;
              break;
            }
            case unicode_js_1.CODE_POINTS.EOF: {
              this._err(error_codes_js_1.ERR.eofBeforeTagName);
              this._emitChars("</");
              this._emitEOFToken();
              break;
            }
            default: {
              this._err(error_codes_js_1.ERR.invalidFirstCharacterOfTagName);
              this._createCommentToken(2);
              this.state = State2.BOGUS_COMMENT;
              this._stateBogusComment(cp);
            }
          }
      }
      // Tag name state
      //------------------------------------------------------------------
      _stateTagName(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State2.BEFORE_ATTRIBUTE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this.state = State2.SELF_CLOSING_START_TAG;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.tagName += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.tagName += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
          }
        }
      }
      // RCDATA less-than sign state
      //------------------------------------------------------------------
      _stateRcdataLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State2.RCDATA_END_TAG_OPEN;
        } else {
          this._emitChars("<");
          this.state = State2.RCDATA;
          this._stateRcdata(cp);
        }
      }
      // RCDATA end tag open state
      //------------------------------------------------------------------
      _stateRcdataEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State2.RCDATA_END_TAG_NAME;
          this._stateRcdataEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State2.RCDATA;
          this._stateRcdata(cp);
        }
      }
      handleSpecialEndTag(_cp) {
        if (!this.preprocessor.startsWith(this.lastStartTagName, false)) {
          return !this._ensureHibernation();
        }
        this._createEndTagToken();
        const token2 = this.currentToken;
        token2.tagName = this.lastStartTagName;
        const cp = this.preprocessor.peek(this.lastStartTagName.length);
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this._advanceBy(this.lastStartTagName.length);
            this.state = State2.BEFORE_ATTRIBUTE_NAME;
            return false;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this._advanceBy(this.lastStartTagName.length);
            this.state = State2.SELF_CLOSING_START_TAG;
            return false;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._advanceBy(this.lastStartTagName.length);
            this.emitCurrentTagToken();
            this.state = State2.DATA;
            return false;
          }
          default: {
            return !this._ensureHibernation();
          }
        }
      }
      // RCDATA end tag name state
      //------------------------------------------------------------------
      _stateRcdataEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State2.RCDATA;
          this._stateRcdata(cp);
        }
      }
      // RAWTEXT less-than sign state
      //------------------------------------------------------------------
      _stateRawtextLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State2.RAWTEXT_END_TAG_OPEN;
        } else {
          this._emitChars("<");
          this.state = State2.RAWTEXT;
          this._stateRawtext(cp);
        }
      }
      // RAWTEXT end tag open state
      //------------------------------------------------------------------
      _stateRawtextEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State2.RAWTEXT_END_TAG_NAME;
          this._stateRawtextEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State2.RAWTEXT;
          this._stateRawtext(cp);
        }
      }
      // RAWTEXT end tag name state
      //------------------------------------------------------------------
      _stateRawtextEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State2.RAWTEXT;
          this._stateRawtext(cp);
        }
      }
      // Script data less-than sign state
      //------------------------------------------------------------------
      _stateScriptDataLessThanSign(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this.state = State2.SCRIPT_DATA_END_TAG_OPEN;
            break;
          }
          case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
            this.state = State2.SCRIPT_DATA_ESCAPE_START;
            this._emitChars("<!");
            break;
          }
          default: {
            this._emitChars("<");
            this.state = State2.SCRIPT_DATA;
            this._stateScriptData(cp);
          }
        }
      }
      // Script data end tag open state
      //------------------------------------------------------------------
      _stateScriptDataEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State2.SCRIPT_DATA_END_TAG_NAME;
          this._stateScriptDataEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State2.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data end tag name state
      //------------------------------------------------------------------
      _stateScriptDataEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State2.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data escape start state
      //------------------------------------------------------------------
      _stateScriptDataEscapeStart(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State2.SCRIPT_DATA_ESCAPE_START_DASH;
          this._emitChars("-");
        } else {
          this.state = State2.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data escape start dash state
      //------------------------------------------------------------------
      _stateScriptDataEscapeStartDash(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State2.SCRIPT_DATA_ESCAPED_DASH_DASH;
          this._emitChars("-");
        } else {
          this.state = State2.SCRIPT_DATA;
          this._stateScriptData(cp);
        }
      }
      // Script data escaped state
      //------------------------------------------------------------------
      _stateScriptDataEscaped(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.SCRIPT_DATA_ESCAPED_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data escaped dash state
      //------------------------------------------------------------------
      _stateScriptDataEscapedDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.SCRIPT_DATA_ESCAPED_DASH_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State2.SCRIPT_DATA_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State2.SCRIPT_DATA_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data escaped dash dash state
      //------------------------------------------------------------------
      _stateScriptDataEscapedDashDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA;
            this._emitChars(">");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State2.SCRIPT_DATA_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State2.SCRIPT_DATA_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data escaped less-than sign state
      //------------------------------------------------------------------
      _stateScriptDataEscapedLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State2.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;
        } else if (isAsciiLetter(cp)) {
          this._emitChars("<");
          this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPE_START;
          this._stateScriptDataDoubleEscapeStart(cp);
        } else {
          this._emitChars("<");
          this.state = State2.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data escaped end tag open state
      //------------------------------------------------------------------
      _stateScriptDataEscapedEndTagOpen(cp) {
        if (isAsciiLetter(cp)) {
          this.state = State2.SCRIPT_DATA_ESCAPED_END_TAG_NAME;
          this._stateScriptDataEscapedEndTagName(cp);
        } else {
          this._emitChars("</");
          this.state = State2.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data escaped end tag name state
      //------------------------------------------------------------------
      _stateScriptDataEscapedEndTagName(cp) {
        if (this.handleSpecialEndTag(cp)) {
          this._emitChars("</");
          this.state = State2.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data double escape start state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapeStart(cp) {
        if (this.preprocessor.startsWith(unicode_js_1.SEQUENCES.SCRIPT, false) && isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek(unicode_js_1.SEQUENCES.SCRIPT.length))) {
          this._emitCodePoint(cp);
          for (let i22 = 0; i22 < unicode_js_1.SEQUENCES.SCRIPT.length; i22++) {
            this._emitCodePoint(this._consume());
          }
          this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED;
        } else if (!this._ensureHibernation()) {
          this.state = State2.SCRIPT_DATA_ESCAPED;
          this._stateScriptDataEscaped(cp);
        }
      }
      // Script data double escaped state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscaped(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
            this._emitChars("<");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data double escaped dash state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapedDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH;
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
            this._emitChars("<");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data double escaped dash dash state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapedDashDash(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this._emitChars("-");
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;
            this._emitChars("<");
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.SCRIPT_DATA;
            this._emitChars(">");
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitChars(unicode_js_1.REPLACEMENT_CHARACTER);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInScriptHtmlCommentLikeText);
            this._emitEOFToken();
            break;
          }
          default: {
            this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED;
            this._emitCodePoint(cp);
          }
        }
      }
      // Script data double escaped less-than sign state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapedLessThanSign(cp) {
        if (cp === unicode_js_1.CODE_POINTS.SOLIDUS) {
          this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPE_END;
          this._emitChars("/");
        } else {
          this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED;
          this._stateScriptDataDoubleEscaped(cp);
        }
      }
      // Script data double escape end state
      //------------------------------------------------------------------
      _stateScriptDataDoubleEscapeEnd(cp) {
        if (this.preprocessor.startsWith(unicode_js_1.SEQUENCES.SCRIPT, false) && isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek(unicode_js_1.SEQUENCES.SCRIPT.length))) {
          this._emitCodePoint(cp);
          for (let i22 = 0; i22 < unicode_js_1.SEQUENCES.SCRIPT.length; i22++) {
            this._emitCodePoint(this._consume());
          }
          this.state = State2.SCRIPT_DATA_ESCAPED;
        } else if (!this._ensureHibernation()) {
          this.state = State2.SCRIPT_DATA_DOUBLE_ESCAPED;
          this._stateScriptDataDoubleEscaped(cp);
        }
      }
      // Before attribute name state
      //------------------------------------------------------------------
      _stateBeforeAttributeName(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS:
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN:
          case unicode_js_1.CODE_POINTS.EOF: {
            this.state = State2.AFTER_ATTRIBUTE_NAME;
            this._stateAfterAttributeName(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN: {
            this._err(error_codes_js_1.ERR.unexpectedEqualsSignBeforeAttributeName);
            this._createAttr("=");
            this.state = State2.ATTRIBUTE_NAME;
            break;
          }
          default: {
            this._createAttr("");
            this.state = State2.ATTRIBUTE_NAME;
            this._stateAttributeName(cp);
          }
        }
      }
      // Attribute name state
      //------------------------------------------------------------------
      _stateAttributeName(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED:
          case unicode_js_1.CODE_POINTS.SOLIDUS:
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN:
          case unicode_js_1.CODE_POINTS.EOF: {
            this._leaveAttrName();
            this.state = State2.AFTER_ATTRIBUTE_NAME;
            this._stateAfterAttributeName(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN: {
            this._leaveAttrName();
            this.state = State2.BEFORE_ATTRIBUTE_VALUE;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK:
          case unicode_js_1.CODE_POINTS.APOSTROPHE:
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.unexpectedCharacterInAttributeName);
            this.currentAttr.name += String.fromCodePoint(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.name += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          default: {
            this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
          }
        }
      }
      // After attribute name state
      //------------------------------------------------------------------
      _stateAfterAttributeName(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this.state = State2.SELF_CLOSING_START_TAG;
            break;
          }
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN: {
            this.state = State2.BEFORE_ATTRIBUTE_VALUE;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this._createAttr("");
            this.state = State2.ATTRIBUTE_NAME;
            this._stateAttributeName(cp);
          }
        }
      }
      // Before attribute value state
      //------------------------------------------------------------------
      _stateBeforeAttributeValue(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State2.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State2.ATTRIBUTE_VALUE_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingAttributeValue);
            this.state = State2.DATA;
            this.emitCurrentTagToken();
            break;
          }
          default: {
            this.state = State2.ATTRIBUTE_VALUE_UNQUOTED;
            this._stateAttributeValueUnquoted(cp);
          }
        }
      }
      // Attribute value (double-quoted) state
      //------------------------------------------------------------------
      _stateAttributeValueDoubleQuoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State2.AFTER_ATTRIBUTE_VALUE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.value += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this.currentAttr.value += String.fromCodePoint(cp);
          }
        }
      }
      // Attribute value (single-quoted) state
      //------------------------------------------------------------------
      _stateAttributeValueSingleQuoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State2.AFTER_ATTRIBUTE_VALUE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.value += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this.currentAttr.value += String.fromCodePoint(cp);
          }
        }
      }
      // Attribute value (unquoted) state
      //------------------------------------------------------------------
      _stateAttributeValueUnquoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this._leaveAttrValue();
            this.state = State2.BEFORE_ATTRIBUTE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.AMPERSAND: {
            this._startCharacterReference();
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._leaveAttrValue();
            this.state = State2.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            this.currentAttr.value += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK:
          case unicode_js_1.CODE_POINTS.APOSTROPHE:
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN:
          case unicode_js_1.CODE_POINTS.EQUALS_SIGN:
          case unicode_js_1.CODE_POINTS.GRAVE_ACCENT: {
            this._err(error_codes_js_1.ERR.unexpectedCharacterInUnquotedAttributeValue);
            this.currentAttr.value += String.fromCodePoint(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this.currentAttr.value += String.fromCodePoint(cp);
          }
        }
      }
      // After attribute value (quoted) state
      //------------------------------------------------------------------
      _stateAfterAttributeValueQuoted(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this._leaveAttrValue();
            this.state = State2.BEFORE_ATTRIBUTE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.SOLIDUS: {
            this._leaveAttrValue();
            this.state = State2.SELF_CLOSING_START_TAG;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._leaveAttrValue();
            this.state = State2.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBetweenAttributes);
            this.state = State2.BEFORE_ATTRIBUTE_NAME;
            this._stateBeforeAttributeName(cp);
          }
        }
      }
      // Self-closing start tag state
      //------------------------------------------------------------------
      _stateSelfClosingStartTag(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            const token2 = this.currentToken;
            token2.selfClosing = true;
            this.state = State2.DATA;
            this.emitCurrentTagToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInTag);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.unexpectedSolidusInTag);
            this.state = State2.BEFORE_ATTRIBUTE_NAME;
            this._stateBeforeAttributeName(cp);
          }
        }
      }
      // Bogus comment state
      //------------------------------------------------------------------
      _stateBogusComment(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            this.emitCurrentComment(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this.emitCurrentComment(token2);
            this._emitEOFToken();
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.data += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          default: {
            token2.data += String.fromCodePoint(cp);
          }
        }
      }
      // Markup declaration open state
      //------------------------------------------------------------------
      _stateMarkupDeclarationOpen(cp) {
        if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.DASH_DASH, true)) {
          this._createCommentToken(unicode_js_1.SEQUENCES.DASH_DASH.length + 1);
          this.state = State2.COMMENT_START;
        } else if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.DOCTYPE, false)) {
          this.currentLocation = this.getCurrentLocation(unicode_js_1.SEQUENCES.DOCTYPE.length + 1);
          this.state = State2.DOCTYPE;
        } else if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.CDATA_START, true)) {
          if (this.inForeignNode) {
            this.state = State2.CDATA_SECTION;
          } else {
            this._err(error_codes_js_1.ERR.cdataInHtmlContent);
            this._createCommentToken(unicode_js_1.SEQUENCES.CDATA_START.length + 1);
            this.currentToken.data = "[CDATA[";
            this.state = State2.BOGUS_COMMENT;
          }
        } else if (!this._ensureHibernation()) {
          this._err(error_codes_js_1.ERR.incorrectlyOpenedComment);
          this._createCommentToken(2);
          this.state = State2.BOGUS_COMMENT;
          this._stateBogusComment(cp);
        }
      }
      // Comment start state
      //------------------------------------------------------------------
      _stateCommentStart(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.COMMENT_START_DASH;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptClosingOfEmptyComment);
            this.state = State2.DATA;
            const token2 = this.currentToken;
            this.emitCurrentComment(token2);
            break;
          }
          default: {
            this.state = State2.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment start dash state
      //------------------------------------------------------------------
      _stateCommentStartDash(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.COMMENT_END;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptClosingOfEmptyComment);
            this.state = State2.DATA;
            this.emitCurrentComment(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.data += "-";
            this.state = State2.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment state
      //------------------------------------------------------------------
      _stateComment(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.COMMENT_END_DASH;
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            token2.data += "<";
            this.state = State2.COMMENT_LESS_THAN_SIGN;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.data += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.data += String.fromCodePoint(cp);
          }
        }
      }
      // Comment less-than sign state
      //------------------------------------------------------------------
      _stateCommentLessThanSign(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
            token2.data += "!";
            this.state = State2.COMMENT_LESS_THAN_SIGN_BANG;
            break;
          }
          case unicode_js_1.CODE_POINTS.LESS_THAN_SIGN: {
            token2.data += "<";
            break;
          }
          default: {
            this.state = State2.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment less-than sign bang state
      //------------------------------------------------------------------
      _stateCommentLessThanSignBang(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State2.COMMENT_LESS_THAN_SIGN_BANG_DASH;
        } else {
          this.state = State2.COMMENT;
          this._stateComment(cp);
        }
      }
      // Comment less-than sign bang dash state
      //------------------------------------------------------------------
      _stateCommentLessThanSignBangDash(cp) {
        if (cp === unicode_js_1.CODE_POINTS.HYPHEN_MINUS) {
          this.state = State2.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH;
        } else {
          this.state = State2.COMMENT_END_DASH;
          this._stateCommentEndDash(cp);
        }
      }
      // Comment less-than sign bang dash dash state
      //------------------------------------------------------------------
      _stateCommentLessThanSignBangDashDash(cp) {
        if (cp !== unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN && cp !== unicode_js_1.CODE_POINTS.EOF) {
          this._err(error_codes_js_1.ERR.nestedComment);
        }
        this.state = State2.COMMENT_END;
        this._stateCommentEnd(cp);
      }
      // Comment end dash state
      //------------------------------------------------------------------
      _stateCommentEndDash(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            this.state = State2.COMMENT_END;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.data += "-";
            this.state = State2.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment end state
      //------------------------------------------------------------------
      _stateCommentEnd(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            this.emitCurrentComment(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EXCLAMATION_MARK: {
            this.state = State2.COMMENT_END_BANG;
            break;
          }
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            token2.data += "-";
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.data += "--";
            this.state = State2.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // Comment end bang state
      //------------------------------------------------------------------
      _stateCommentEndBang(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.HYPHEN_MINUS: {
            token2.data += "--!";
            this.state = State2.COMMENT_END_DASH;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.incorrectlyClosedComment);
            this.state = State2.DATA;
            this.emitCurrentComment(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInComment);
            this.emitCurrentComment(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.data += "--!";
            this.state = State2.COMMENT;
            this._stateComment(cp);
          }
        }
      }
      // DOCTYPE state
      //------------------------------------------------------------------
      _stateDoctype(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State2.BEFORE_DOCTYPE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.BEFORE_DOCTYPE_NAME;
            this._stateBeforeDoctypeName(cp);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            this._createDoctypeToken(null);
            const token2 = this.currentToken;
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBeforeDoctypeName);
            this.state = State2.BEFORE_DOCTYPE_NAME;
            this._stateBeforeDoctypeName(cp);
          }
        }
      }
      // Before DOCTYPE name state
      //------------------------------------------------------------------
      _stateBeforeDoctypeName(cp) {
        if (isAsciiUpper(cp)) {
          this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp)));
          this.state = State2.DOCTYPE_NAME;
        } else
          switch (cp) {
            case unicode_js_1.CODE_POINTS.SPACE:
            case unicode_js_1.CODE_POINTS.LINE_FEED:
            case unicode_js_1.CODE_POINTS.TABULATION:
            case unicode_js_1.CODE_POINTS.FORM_FEED: {
              break;
            }
            case unicode_js_1.CODE_POINTS.NULL: {
              this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
              this._createDoctypeToken(unicode_js_1.REPLACEMENT_CHARACTER);
              this.state = State2.DOCTYPE_NAME;
              break;
            }
            case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
              this._err(error_codes_js_1.ERR.missingDoctypeName);
              this._createDoctypeToken(null);
              const token2 = this.currentToken;
              token2.forceQuirks = true;
              this.emitCurrentDoctype(token2);
              this.state = State2.DATA;
              break;
            }
            case unicode_js_1.CODE_POINTS.EOF: {
              this._err(error_codes_js_1.ERR.eofInDoctype);
              this._createDoctypeToken(null);
              const token2 = this.currentToken;
              token2.forceQuirks = true;
              this.emitCurrentDoctype(token2);
              this._emitEOFToken();
              break;
            }
            default: {
              this._createDoctypeToken(String.fromCodePoint(cp));
              this.state = State2.DOCTYPE_NAME;
            }
          }
      }
      // DOCTYPE name state
      //------------------------------------------------------------------
      _stateDoctypeName(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State2.AFTER_DOCTYPE_NAME;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            this.emitCurrentDoctype(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.name += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);
          }
        }
      }
      // After DOCTYPE name state
      //------------------------------------------------------------------
      _stateAfterDoctypeName(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            this.emitCurrentDoctype(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.PUBLIC, false)) {
              this.state = State2.AFTER_DOCTYPE_PUBLIC_KEYWORD;
            } else if (this._consumeSequenceIfMatch(unicode_js_1.SEQUENCES.SYSTEM, false)) {
              this.state = State2.AFTER_DOCTYPE_SYSTEM_KEYWORD;
            } else if (!this._ensureHibernation()) {
              this._err(error_codes_js_1.ERR.invalidCharacterSequenceAfterDoctypeName);
              token2.forceQuirks = true;
              this.state = State2.BOGUS_DOCTYPE;
              this._stateBogusDoctype(cp);
            }
          }
        }
      }
      // After DOCTYPE public keyword state
      //------------------------------------------------------------------
      _stateAfterDoctypePublicKeyword(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State2.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypePublicKeyword);
            token2.publicId = "";
            this.state = State2.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypePublicKeyword);
            token2.publicId = "";
            this.state = State2.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypePublicIdentifier);
            token2.forceQuirks = true;
            this.state = State2.DATA;
            this.emitCurrentDoctype(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypePublicIdentifier);
            token2.forceQuirks = true;
            this.state = State2.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Before DOCTYPE public identifier state
      //------------------------------------------------------------------
      _stateBeforeDoctypePublicIdentifier(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            token2.publicId = "";
            this.state = State2.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            token2.publicId = "";
            this.state = State2.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypePublicIdentifier);
            token2.forceQuirks = true;
            this.state = State2.DATA;
            this.emitCurrentDoctype(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypePublicIdentifier);
            token2.forceQuirks = true;
            this.state = State2.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // DOCTYPE public identifier (double-quoted) state
      //------------------------------------------------------------------
      _stateDoctypePublicIdentifierDoubleQuoted(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State2.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.publicId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypePublicIdentifier);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.publicId += String.fromCodePoint(cp);
          }
        }
      }
      // DOCTYPE public identifier (single-quoted) state
      //------------------------------------------------------------------
      _stateDoctypePublicIdentifierSingleQuoted(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State2.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.publicId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypePublicIdentifier);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.publicId += String.fromCodePoint(cp);
          }
        }
      }
      // After DOCTYPE public identifier state
      //------------------------------------------------------------------
      _stateAfterDoctypePublicIdentifier(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State2.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            this.emitCurrentDoctype(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this._err(error_codes_js_1.ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.state = State2.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Between DOCTYPE public and system identifiers state
      //------------------------------------------------------------------
      _stateBetweenDoctypePublicAndSystemIdentifiers(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.emitCurrentDoctype(token2);
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.state = State2.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // After DOCTYPE system keyword state
      //------------------------------------------------------------------
      _stateAfterDoctypeSystemKeyword(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            this.state = State2.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypeSystemKeyword);
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this._err(error_codes_js_1.ERR.missingWhitespaceAfterDoctypeSystemKeyword);
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.state = State2.DATA;
            this.emitCurrentDoctype(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.state = State2.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Before DOCTYPE system identifier state
      //------------------------------------------------------------------
      _stateBeforeDoctypeSystemIdentifier(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            token2.systemId = "";
            this.state = State2.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.missingDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.state = State2.DATA;
            this.emitCurrentDoctype(token2);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.missingQuoteBeforeDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.state = State2.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // DOCTYPE system identifier (double-quoted) state
      //------------------------------------------------------------------
      _stateDoctypeSystemIdentifierDoubleQuoted(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.QUOTATION_MARK: {
            this.state = State2.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.systemId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.systemId += String.fromCodePoint(cp);
          }
        }
      }
      // DOCTYPE system identifier (single-quoted) state
      //------------------------------------------------------------------
      _stateDoctypeSystemIdentifierSingleQuoted(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.APOSTROPHE: {
            this.state = State2.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            token2.systemId += unicode_js_1.REPLACEMENT_CHARACTER;
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this._err(error_codes_js_1.ERR.abruptDoctypeSystemIdentifier);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            token2.systemId += String.fromCodePoint(cp);
          }
        }
      }
      // After DOCTYPE system identifier state
      //------------------------------------------------------------------
      _stateAfterDoctypeSystemIdentifier(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.SPACE:
          case unicode_js_1.CODE_POINTS.LINE_FEED:
          case unicode_js_1.CODE_POINTS.TABULATION:
          case unicode_js_1.CODE_POINTS.FORM_FEED: {
            break;
          }
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.emitCurrentDoctype(token2);
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInDoctype);
            token2.forceQuirks = true;
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default: {
            this._err(error_codes_js_1.ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);
            this.state = State2.BOGUS_DOCTYPE;
            this._stateBogusDoctype(cp);
          }
        }
      }
      // Bogus DOCTYPE state
      //------------------------------------------------------------------
      _stateBogusDoctype(cp) {
        const token2 = this.currentToken;
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.emitCurrentDoctype(token2);
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.NULL: {
            this._err(error_codes_js_1.ERR.unexpectedNullCharacter);
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this.emitCurrentDoctype(token2);
            this._emitEOFToken();
            break;
          }
          default:
        }
      }
      // CDATA section state
      //------------------------------------------------------------------
      _stateCdataSection(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.RIGHT_SQUARE_BRACKET: {
            this.state = State2.CDATA_SECTION_BRACKET;
            break;
          }
          case unicode_js_1.CODE_POINTS.EOF: {
            this._err(error_codes_js_1.ERR.eofInCdata);
            this._emitEOFToken();
            break;
          }
          default: {
            this._emitCodePoint(cp);
          }
        }
      }
      // CDATA section bracket state
      //------------------------------------------------------------------
      _stateCdataSectionBracket(cp) {
        if (cp === unicode_js_1.CODE_POINTS.RIGHT_SQUARE_BRACKET) {
          this.state = State2.CDATA_SECTION_END;
        } else {
          this._emitChars("]");
          this.state = State2.CDATA_SECTION;
          this._stateCdataSection(cp);
        }
      }
      // CDATA section end state
      //------------------------------------------------------------------
      _stateCdataSectionEnd(cp) {
        switch (cp) {
          case unicode_js_1.CODE_POINTS.GREATER_THAN_SIGN: {
            this.state = State2.DATA;
            break;
          }
          case unicode_js_1.CODE_POINTS.RIGHT_SQUARE_BRACKET: {
            this._emitChars("]");
            break;
          }
          default: {
            this._emitChars("]]");
            this.state = State2.CDATA_SECTION;
            this._stateCdataSection(cp);
          }
        }
      }
      // Character reference state
      //------------------------------------------------------------------
      _stateCharacterReference() {
        let length = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos);
        if (length < 0) {
          if (this.preprocessor.lastChunkWritten) {
            length = this.entityDecoder.end();
          } else {
            this.active = false;
            this.preprocessor.pos = this.preprocessor.html.length - 1;
            this.consumedAfterSnapshot = 0;
            this.preprocessor.endOfChunkHit = true;
            return;
          }
        }
        if (length === 0) {
          this.preprocessor.pos = this.entityStartPos;
          this._flushCodePointConsumedAsCharacterReference(unicode_js_1.CODE_POINTS.AMPERSAND);
          this.state = !this._isCharacterReferenceInAttribute() && isAsciiAlphaNumeric2(this.preprocessor.peek(1)) ? State2.AMBIGUOUS_AMPERSAND : this.returnState;
        } else {
          this.state = this.returnState;
        }
      }
      // Ambiguos ampersand state
      //------------------------------------------------------------------
      _stateAmbiguousAmpersand(cp) {
        if (isAsciiAlphaNumeric2(cp)) {
          this._flushCodePointConsumedAsCharacterReference(cp);
        } else {
          if (cp === unicode_js_1.CODE_POINTS.SEMICOLON) {
            this._err(error_codes_js_1.ERR.unknownNamedCharacterReference);
          }
          this.state = this.returnState;
          this._callState(cp);
        }
      }
    };
    exports2.Tokenizer = Tokenizer2;
  }
});
var require_open_element_stack = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/open-element-stack.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.OpenElementStack = void 0;
    var html_js_1 = require_html();
    var IMPLICIT_END_TAG_REQUIRED = /* @__PURE__ */ new Set([html_js_1.TAG_ID.DD, html_js_1.TAG_ID.DT, html_js_1.TAG_ID.LI, html_js_1.TAG_ID.OPTGROUP, html_js_1.TAG_ID.OPTION, html_js_1.TAG_ID.P, html_js_1.TAG_ID.RB, html_js_1.TAG_ID.RP, html_js_1.TAG_ID.RT, html_js_1.TAG_ID.RTC]);
    var IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = /* @__PURE__ */ new Set([
      ...IMPLICIT_END_TAG_REQUIRED,
      html_js_1.TAG_ID.CAPTION,
      html_js_1.TAG_ID.COLGROUP,
      html_js_1.TAG_ID.TBODY,
      html_js_1.TAG_ID.TD,
      html_js_1.TAG_ID.TFOOT,
      html_js_1.TAG_ID.TH,
      html_js_1.TAG_ID.THEAD,
      html_js_1.TAG_ID.TR
    ]);
    var SCOPING_ELEMENTS_HTML = /* @__PURE__ */ new Set([
      html_js_1.TAG_ID.APPLET,
      html_js_1.TAG_ID.CAPTION,
      html_js_1.TAG_ID.HTML,
      html_js_1.TAG_ID.MARQUEE,
      html_js_1.TAG_ID.OBJECT,
      html_js_1.TAG_ID.TABLE,
      html_js_1.TAG_ID.TD,
      html_js_1.TAG_ID.TEMPLATE,
      html_js_1.TAG_ID.TH
    ]);
    var SCOPING_ELEMENTS_HTML_LIST = /* @__PURE__ */ new Set([...SCOPING_ELEMENTS_HTML, html_js_1.TAG_ID.OL, html_js_1.TAG_ID.UL]);
    var SCOPING_ELEMENTS_HTML_BUTTON = /* @__PURE__ */ new Set([...SCOPING_ELEMENTS_HTML, html_js_1.TAG_ID.BUTTON]);
    var SCOPING_ELEMENTS_MATHML = /* @__PURE__ */ new Set([html_js_1.TAG_ID.ANNOTATION_XML, html_js_1.TAG_ID.MI, html_js_1.TAG_ID.MN, html_js_1.TAG_ID.MO, html_js_1.TAG_ID.MS, html_js_1.TAG_ID.MTEXT]);
    var SCOPING_ELEMENTS_SVG = /* @__PURE__ */ new Set([html_js_1.TAG_ID.DESC, html_js_1.TAG_ID.FOREIGN_OBJECT, html_js_1.TAG_ID.TITLE]);
    var TABLE_ROW_CONTEXT = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TR, html_js_1.TAG_ID.TEMPLATE, html_js_1.TAG_ID.HTML]);
    var TABLE_BODY_CONTEXT = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TBODY, html_js_1.TAG_ID.TFOOT, html_js_1.TAG_ID.THEAD, html_js_1.TAG_ID.TEMPLATE, html_js_1.TAG_ID.HTML]);
    var TABLE_CONTEXT = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TABLE, html_js_1.TAG_ID.TEMPLATE, html_js_1.TAG_ID.HTML]);
    var TABLE_CELLS = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TD, html_js_1.TAG_ID.TH]);
    var OpenElementStack = class {
      get currentTmplContentOrNode() {
        return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;
      }
      constructor(document2, treeAdapter, handler) {
        this.treeAdapter = treeAdapter;
        this.handler = handler;
        this.items = [];
        this.tagIDs = [];
        this.stackTop = -1;
        this.tmplCount = 0;
        this.currentTagId = html_js_1.TAG_ID.UNKNOWN;
        this.current = document2;
      }
      //Index of element
      _indexOf(element) {
        return this.items.lastIndexOf(element, this.stackTop);
      }
      //Update current element
      _isInTemplate() {
        return this.currentTagId === html_js_1.TAG_ID.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === html_js_1.NS.HTML;
      }
      _updateCurrentElement() {
        this.current = this.items[this.stackTop];
        this.currentTagId = this.tagIDs[this.stackTop];
      }
      //Mutations
      push(element, tagID) {
        this.stackTop++;
        this.items[this.stackTop] = element;
        this.current = element;
        this.tagIDs[this.stackTop] = tagID;
        this.currentTagId = tagID;
        if (this._isInTemplate()) {
          this.tmplCount++;
        }
        this.handler.onItemPush(element, tagID, true);
      }
      pop() {
        const popped = this.current;
        if (this.tmplCount > 0 && this._isInTemplate()) {
          this.tmplCount--;
        }
        this.stackTop--;
        this._updateCurrentElement();
        this.handler.onItemPop(popped, true);
      }
      replace(oldElement, newElement) {
        const idx = this._indexOf(oldElement);
        this.items[idx] = newElement;
        if (idx === this.stackTop) {
          this.current = newElement;
        }
      }
      insertAfter(referenceElement, newElement, newElementID) {
        const insertionIdx = this._indexOf(referenceElement) + 1;
        this.items.splice(insertionIdx, 0, newElement);
        this.tagIDs.splice(insertionIdx, 0, newElementID);
        this.stackTop++;
        if (insertionIdx === this.stackTop) {
          this._updateCurrentElement();
        }
        if (this.current && this.currentTagId !== void 0) {
          this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);
        }
      }
      popUntilTagNamePopped(tagName) {
        let targetIdx = this.stackTop + 1;
        do {
          targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);
        } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== html_js_1.NS.HTML);
        this.shortenToLength(Math.max(targetIdx, 0));
      }
      shortenToLength(idx) {
        while (this.stackTop >= idx) {
          const popped = this.current;
          if (this.tmplCount > 0 && this._isInTemplate()) {
            this.tmplCount -= 1;
          }
          this.stackTop--;
          this._updateCurrentElement();
          this.handler.onItemPop(popped, this.stackTop < idx);
        }
      }
      popUntilElementPopped(element) {
        const idx = this._indexOf(element);
        this.shortenToLength(Math.max(idx, 0));
      }
      popUntilPopped(tagNames, targetNS) {
        const idx = this._indexOfTagNames(tagNames, targetNS);
        this.shortenToLength(Math.max(idx, 0));
      }
      popUntilNumberedHeaderPopped() {
        this.popUntilPopped(html_js_1.NUMBERED_HEADERS, html_js_1.NS.HTML);
      }
      popUntilTableCellPopped() {
        this.popUntilPopped(TABLE_CELLS, html_js_1.NS.HTML);
      }
      popAllUpToHtmlElement() {
        this.tmplCount = 0;
        this.shortenToLength(1);
      }
      _indexOfTagNames(tagNames, namespace) {
        for (let i22 = this.stackTop; i22 >= 0; i22--) {
          if (tagNames.has(this.tagIDs[i22]) && this.treeAdapter.getNamespaceURI(this.items[i22]) === namespace) {
            return i22;
          }
        }
        return -1;
      }
      clearBackTo(tagNames, targetNS) {
        const idx = this._indexOfTagNames(tagNames, targetNS);
        this.shortenToLength(idx + 1);
      }
      clearBackToTableContext() {
        this.clearBackTo(TABLE_CONTEXT, html_js_1.NS.HTML);
      }
      clearBackToTableBodyContext() {
        this.clearBackTo(TABLE_BODY_CONTEXT, html_js_1.NS.HTML);
      }
      clearBackToTableRowContext() {
        this.clearBackTo(TABLE_ROW_CONTEXT, html_js_1.NS.HTML);
      }
      remove(element) {
        const idx = this._indexOf(element);
        if (idx >= 0) {
          if (idx === this.stackTop) {
            this.pop();
          } else {
            this.items.splice(idx, 1);
            this.tagIDs.splice(idx, 1);
            this.stackTop--;
            this._updateCurrentElement();
            this.handler.onItemPop(element, false);
          }
        }
      }
      //Search
      tryPeekProperlyNestedBodyElement() {
        return this.stackTop >= 1 && this.tagIDs[1] === html_js_1.TAG_ID.BODY ? this.items[1] : null;
      }
      contains(element) {
        return this._indexOf(element) > -1;
      }
      getCommonAncestor(element) {
        const elementIdx = this._indexOf(element) - 1;
        return elementIdx >= 0 ? this.items[elementIdx] : null;
      }
      isRootHtmlElementCurrent() {
        return this.stackTop === 0 && this.tagIDs[0] === html_js_1.TAG_ID.HTML;
      }
      //Element in scope
      hasInDynamicScope(tagName, htmlScope) {
        for (let i22 = this.stackTop; i22 >= 0; i22--) {
          const tn3 = this.tagIDs[i22];
          switch (this.treeAdapter.getNamespaceURI(this.items[i22])) {
            case html_js_1.NS.HTML: {
              if (tn3 === tagName)
                return true;
              if (htmlScope.has(tn3))
                return false;
              break;
            }
            case html_js_1.NS.SVG: {
              if (SCOPING_ELEMENTS_SVG.has(tn3))
                return false;
              break;
            }
            case html_js_1.NS.MATHML: {
              if (SCOPING_ELEMENTS_MATHML.has(tn3))
                return false;
              break;
            }
          }
        }
        return true;
      }
      hasInScope(tagName) {
        return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML);
      }
      hasInListItemScope(tagName) {
        return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_LIST);
      }
      hasInButtonScope(tagName) {
        return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_BUTTON);
      }
      hasNumberedHeaderInScope() {
        for (let i22 = this.stackTop; i22 >= 0; i22--) {
          const tn3 = this.tagIDs[i22];
          switch (this.treeAdapter.getNamespaceURI(this.items[i22])) {
            case html_js_1.NS.HTML: {
              if (html_js_1.NUMBERED_HEADERS.has(tn3))
                return true;
              if (SCOPING_ELEMENTS_HTML.has(tn3))
                return false;
              break;
            }
            case html_js_1.NS.SVG: {
              if (SCOPING_ELEMENTS_SVG.has(tn3))
                return false;
              break;
            }
            case html_js_1.NS.MATHML: {
              if (SCOPING_ELEMENTS_MATHML.has(tn3))
                return false;
              break;
            }
          }
        }
        return true;
      }
      hasInTableScope(tagName) {
        for (let i22 = this.stackTop; i22 >= 0; i22--) {
          if (this.treeAdapter.getNamespaceURI(this.items[i22]) !== html_js_1.NS.HTML) {
            continue;
          }
          switch (this.tagIDs[i22]) {
            case tagName: {
              return true;
            }
            case html_js_1.TAG_ID.TABLE:
            case html_js_1.TAG_ID.HTML: {
              return false;
            }
          }
        }
        return true;
      }
      hasTableBodyContextInTableScope() {
        for (let i22 = this.stackTop; i22 >= 0; i22--) {
          if (this.treeAdapter.getNamespaceURI(this.items[i22]) !== html_js_1.NS.HTML) {
            continue;
          }
          switch (this.tagIDs[i22]) {
            case html_js_1.TAG_ID.TBODY:
            case html_js_1.TAG_ID.THEAD:
            case html_js_1.TAG_ID.TFOOT: {
              return true;
            }
            case html_js_1.TAG_ID.TABLE:
            case html_js_1.TAG_ID.HTML: {
              return false;
            }
          }
        }
        return true;
      }
      hasInSelectScope(tagName) {
        for (let i22 = this.stackTop; i22 >= 0; i22--) {
          if (this.treeAdapter.getNamespaceURI(this.items[i22]) !== html_js_1.NS.HTML) {
            continue;
          }
          switch (this.tagIDs[i22]) {
            case tagName: {
              return true;
            }
            case html_js_1.TAG_ID.OPTION:
            case html_js_1.TAG_ID.OPTGROUP: {
              break;
            }
            default: {
              return false;
            }
          }
        }
        return true;
      }
      //Implied end tags
      generateImpliedEndTags() {
        while (this.currentTagId !== void 0 && IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {
          this.pop();
        }
      }
      generateImpliedEndTagsThoroughly() {
        while (this.currentTagId !== void 0 && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
          this.pop();
        }
      }
      generateImpliedEndTagsWithExclusion(exclusionId) {
        while (this.currentTagId !== void 0 && this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
          this.pop();
        }
      }
    };
    exports2.OpenElementStack = OpenElementStack;
  }
});
var require_formatting_element_list = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/formatting-element-list.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.FormattingElementList = exports2.EntryType = void 0;
    var NOAH_ARK_CAPACITY = 3;
    var EntryType;
    (function(EntryType2) {
      EntryType2[EntryType2["Marker"] = 0] = "Marker";
      EntryType2[EntryType2["Element"] = 1] = "Element";
    })(EntryType || (exports2.EntryType = EntryType = {}));
    var MARKER = { type: EntryType.Marker };
    var FormattingElementList = class {
      constructor(treeAdapter) {
        this.treeAdapter = treeAdapter;
        this.entries = [];
        this.bookmark = null;
      }
      //Noah Ark's condition
      //OPTIMIZATION: at first we try to find possible candidates for exclusion using
      //lightweight heuristics without thorough attributes check.
      _getNoahArkConditionCandidates(newElement, neAttrs) {
        const candidates = [];
        const neAttrsLength = neAttrs.length;
        const neTagName = this.treeAdapter.getTagName(newElement);
        const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);
        for (let i22 = 0; i22 < this.entries.length; i22++) {
          const entry = this.entries[i22];
          if (entry.type === EntryType.Marker) {
            break;
          }
          const { element } = entry;
          if (this.treeAdapter.getTagName(element) === neTagName && this.treeAdapter.getNamespaceURI(element) === neNamespaceURI) {
            const elementAttrs = this.treeAdapter.getAttrList(element);
            if (elementAttrs.length === neAttrsLength) {
              candidates.push({ idx: i22, attrs: elementAttrs });
            }
          }
        }
        return candidates;
      }
      _ensureNoahArkCondition(newElement) {
        if (this.entries.length < NOAH_ARK_CAPACITY)
          return;
        const neAttrs = this.treeAdapter.getAttrList(newElement);
        const candidates = this._getNoahArkConditionCandidates(newElement, neAttrs);
        if (candidates.length < NOAH_ARK_CAPACITY)
          return;
        const neAttrsMap = new Map(neAttrs.map((neAttr) => [neAttr.name, neAttr.value]));
        let validCandidates = 0;
        for (let i22 = 0; i22 < candidates.length; i22++) {
          const candidate = candidates[i22];
          if (candidate.attrs.every((cAttr) => neAttrsMap.get(cAttr.name) === cAttr.value)) {
            validCandidates += 1;
            if (validCandidates >= NOAH_ARK_CAPACITY) {
              this.entries.splice(candidate.idx, 1);
            }
          }
        }
      }
      //Mutations
      insertMarker() {
        this.entries.unshift(MARKER);
      }
      pushElement(element, token2) {
        this._ensureNoahArkCondition(element);
        this.entries.unshift({
          type: EntryType.Element,
          element,
          token: token2
        });
      }
      insertElementAfterBookmark(element, token2) {
        const bookmarkIdx = this.entries.indexOf(this.bookmark);
        this.entries.splice(bookmarkIdx, 0, {
          type: EntryType.Element,
          element,
          token: token2
        });
      }
      removeEntry(entry) {
        const entryIndex = this.entries.indexOf(entry);
        if (entryIndex !== -1) {
          this.entries.splice(entryIndex, 1);
        }
      }
      /**
       * Clears the list of formatting elements up to the last marker.
       *
       * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker
       */
      clearToLastMarker() {
        const markerIdx = this.entries.indexOf(MARKER);
        if (markerIdx === -1) {
          this.entries.length = 0;
        } else {
          this.entries.splice(0, markerIdx + 1);
        }
      }
      //Search
      getElementEntryInScopeWithTagName(tagName) {
        const entry = this.entries.find((entry2) => entry2.type === EntryType.Marker || this.treeAdapter.getTagName(entry2.element) === tagName);
        return entry && entry.type === EntryType.Element ? entry : null;
      }
      getElementEntry(element) {
        return this.entries.find((entry) => entry.type === EntryType.Element && entry.element === element);
      }
    };
    exports2.FormattingElementList = FormattingElementList;
  }
});
var require_default = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/tree-adapters/default.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.defaultTreeAdapter = void 0;
    var html_js_1 = require_html();
    exports2.defaultTreeAdapter = {
      //Node construction
      createDocument() {
        return {
          nodeName: "#document",
          mode: html_js_1.DOCUMENT_MODE.NO_QUIRKS,
          childNodes: []
        };
      },
      createDocumentFragment() {
        return {
          nodeName: "#document-fragment",
          childNodes: []
        };
      },
      createElement(tagName, namespaceURI, attrs) {
        return {
          nodeName: tagName,
          tagName,
          attrs,
          namespaceURI,
          childNodes: [],
          parentNode: null
        };
      },
      createCommentNode(data) {
        return {
          nodeName: "#comment",
          data,
          parentNode: null
        };
      },
      createTextNode(value) {
        return {
          nodeName: "#text",
          value,
          parentNode: null
        };
      },
      //Tree mutation
      appendChild(parentNode, newNode) {
        parentNode.childNodes.push(newNode);
        newNode.parentNode = parentNode;
      },
      insertBefore(parentNode, newNode, referenceNode) {
        const insertionIdx = parentNode.childNodes.indexOf(referenceNode);
        parentNode.childNodes.splice(insertionIdx, 0, newNode);
        newNode.parentNode = parentNode;
      },
      setTemplateContent(templateElement, contentElement) {
        templateElement.content = contentElement;
      },
      getTemplateContent(templateElement) {
        return templateElement.content;
      },
      setDocumentType(document2, name2, publicId, systemId) {
        const doctypeNode = document2.childNodes.find((node) => node.nodeName === "#documentType");
        if (doctypeNode) {
          doctypeNode.name = name2;
          doctypeNode.publicId = publicId;
          doctypeNode.systemId = systemId;
        } else {
          const node = {
            nodeName: "#documentType",
            name: name2,
            publicId,
            systemId,
            parentNode: null
          };
          exports2.defaultTreeAdapter.appendChild(document2, node);
        }
      },
      setDocumentMode(document2, mode) {
        document2.mode = mode;
      },
      getDocumentMode(document2) {
        return document2.mode;
      },
      detachNode(node) {
        if (node.parentNode) {
          const idx = node.parentNode.childNodes.indexOf(node);
          node.parentNode.childNodes.splice(idx, 1);
          node.parentNode = null;
        }
      },
      insertText(parentNode, text) {
        if (parentNode.childNodes.length > 0) {
          const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];
          if (exports2.defaultTreeAdapter.isTextNode(prevNode)) {
            prevNode.value += text;
            return;
          }
        }
        exports2.defaultTreeAdapter.appendChild(parentNode, exports2.defaultTreeAdapter.createTextNode(text));
      },
      insertTextBefore(parentNode, text, referenceNode) {
        const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];
        if (prevNode && exports2.defaultTreeAdapter.isTextNode(prevNode)) {
          prevNode.value += text;
        } else {
          exports2.defaultTreeAdapter.insertBefore(parentNode, exports2.defaultTreeAdapter.createTextNode(text), referenceNode);
        }
      },
      adoptAttributes(recipient, attrs) {
        const recipientAttrsMap = new Set(recipient.attrs.map((attr) => attr.name));
        for (let j2 = 0; j2 < attrs.length; j2++) {
          if (!recipientAttrsMap.has(attrs[j2].name)) {
            recipient.attrs.push(attrs[j2]);
          }
        }
      },
      //Tree traversing
      getFirstChild(node) {
        return node.childNodes[0];
      },
      getChildNodes(node) {
        return node.childNodes;
      },
      getParentNode(node) {
        return node.parentNode;
      },
      getAttrList(element) {
        return element.attrs;
      },
      //Node data
      getTagName(element) {
        return element.tagName;
      },
      getNamespaceURI(element) {
        return element.namespaceURI;
      },
      getTextNodeContent(textNode) {
        return textNode.value;
      },
      getCommentNodeContent(commentNode) {
        return commentNode.data;
      },
      getDocumentTypeNodeName(doctypeNode) {
        return doctypeNode.name;
      },
      getDocumentTypeNodePublicId(doctypeNode) {
        return doctypeNode.publicId;
      },
      getDocumentTypeNodeSystemId(doctypeNode) {
        return doctypeNode.systemId;
      },
      //Node types
      isTextNode(node) {
        return node.nodeName === "#text";
      },
      isCommentNode(node) {
        return node.nodeName === "#comment";
      },
      isDocumentTypeNode(node) {
        return node.nodeName === "#documentType";
      },
      isElementNode(node) {
        return Object.prototype.hasOwnProperty.call(node, "tagName");
      },
      // Source code location
      setNodeSourceCodeLocation(node, location) {
        node.sourceCodeLocation = location;
      },
      getNodeSourceCodeLocation(node) {
        return node.sourceCodeLocation;
      },
      updateNodeSourceCodeLocation(node, endLocation) {
        node.sourceCodeLocation = Object.assign(Object.assign({}, node.sourceCodeLocation), endLocation);
      }
    };
  }
});
var require_doctype = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/doctype.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.isConforming = isConforming;
    exports2.getDocumentMode = getDocumentMode;
    var html_js_1 = require_html();
    var VALID_DOCTYPE_NAME = "html";
    var VALID_SYSTEM_ID = "about:legacy-compat";
    var QUIRKS_MODE_SYSTEM_ID = "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd";
    var QUIRKS_MODE_PUBLIC_ID_PREFIXES = [
      "+//silmaril//dtd html pro v0r11 19970101//",
      "-//as//dtd html 3.0 aswedit + extensions//",
      "-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
      "-//ietf//dtd html 2.0 level 1//",
      "-//ietf//dtd html 2.0 level 2//",
      "-//ietf//dtd html 2.0 strict level 1//",
      "-//ietf//dtd html 2.0 strict level 2//",
      "-//ietf//dtd html 2.0 strict//",
      "-//ietf//dtd html 2.0//",
      "-//ietf//dtd html 2.1e//",
      "-//ietf//dtd html 3.0//",
      "-//ietf//dtd html 3.2 final//",
      "-//ietf//dtd html 3.2//",
      "-//ietf//dtd html 3//",
      "-//ietf//dtd html level 0//",
      "-//ietf//dtd html level 1//",
      "-//ietf//dtd html level 2//",
      "-//ietf//dtd html level 3//",
      "-//ietf//dtd html strict level 0//",
      "-//ietf//dtd html strict level 1//",
      "-//ietf//dtd html strict level 2//",
      "-//ietf//dtd html strict level 3//",
      "-//ietf//dtd html strict//",
      "-//ietf//dtd html//",
      "-//metrius//dtd metrius presentational//",
      "-//microsoft//dtd internet explorer 2.0 html strict//",
      "-//microsoft//dtd internet explorer 2.0 html//",
      "-//microsoft//dtd internet explorer 2.0 tables//",
      "-//microsoft//dtd internet explorer 3.0 html strict//",
      "-//microsoft//dtd internet explorer 3.0 html//",
      "-//microsoft//dtd internet explorer 3.0 tables//",
      "-//netscape comm. corp.//dtd html//",
      "-//netscape comm. corp.//dtd strict html//",
      "-//o'reilly and associates//dtd html 2.0//",
      "-//o'reilly and associates//dtd html extended 1.0//",
      "-//o'reilly and associates//dtd html extended relaxed 1.0//",
      "-//sq//dtd html 2.0 hotmetal + extensions//",
      "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
      "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
      "-//spyglass//dtd html 2.0 extended//",
      "-//sun microsystems corp.//dtd hotjava html//",
      "-//sun microsystems corp.//dtd hotjava strict html//",
      "-//w3c//dtd html 3 1995-03-24//",
      "-//w3c//dtd html 3.2 draft//",
      "-//w3c//dtd html 3.2 final//",
      "-//w3c//dtd html 3.2//",
      "-//w3c//dtd html 3.2s draft//",
      "-//w3c//dtd html 4.0 frameset//",
      "-//w3c//dtd html 4.0 transitional//",
      "-//w3c//dtd html experimental 19960712//",
      "-//w3c//dtd html experimental 970421//",
      "-//w3c//dtd w3 html//",
      "-//w3o//dtd w3 html 3.0//",
      "-//webtechs//dtd mozilla html 2.0//",
      "-//webtechs//dtd mozilla html//"
    ];
    var QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [
      ...QUIRKS_MODE_PUBLIC_ID_PREFIXES,
      "-//w3c//dtd html 4.01 frameset//",
      "-//w3c//dtd html 4.01 transitional//"
    ];
    var QUIRKS_MODE_PUBLIC_IDS = /* @__PURE__ */ new Set([
      "-//w3o//dtd w3 html strict 3.0//en//",
      "-/w3c/dtd html 4.0 transitional/en",
      "html"
    ]);
    var LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ["-//w3c//dtd xhtml 1.0 frameset//", "-//w3c//dtd xhtml 1.0 transitional//"];
    var LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [
      ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES,
      "-//w3c//dtd html 4.01 frameset//",
      "-//w3c//dtd html 4.01 transitional//"
    ];
    function hasPrefix(publicId, prefixes) {
      return prefixes.some((prefix) => publicId.startsWith(prefix));
    }
    function isConforming(token2) {
      return token2.name === VALID_DOCTYPE_NAME && token2.publicId === null && (token2.systemId === null || token2.systemId === VALID_SYSTEM_ID);
    }
    function getDocumentMode(token2) {
      if (token2.name !== VALID_DOCTYPE_NAME) {
        return html_js_1.DOCUMENT_MODE.QUIRKS;
      }
      const { systemId } = token2;
      if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {
        return html_js_1.DOCUMENT_MODE.QUIRKS;
      }
      let { publicId } = token2;
      if (publicId !== null) {
        publicId = publicId.toLowerCase();
        if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) {
          return html_js_1.DOCUMENT_MODE.QUIRKS;
        }
        let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;
        if (hasPrefix(publicId, prefixes)) {
          return html_js_1.DOCUMENT_MODE.QUIRKS;
        }
        prefixes = systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;
        if (hasPrefix(publicId, prefixes)) {
          return html_js_1.DOCUMENT_MODE.LIMITED_QUIRKS;
        }
      }
      return html_js_1.DOCUMENT_MODE.NO_QUIRKS;
    }
  }
});
var require_foreign_content = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/common/foreign-content.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SVG_TAG_NAMES_ADJUSTMENT_MAP = void 0;
    exports2.causesExit = causesExit;
    exports2.adjustTokenMathMLAttrs = adjustTokenMathMLAttrs;
    exports2.adjustTokenSVGAttrs = adjustTokenSVGAttrs;
    exports2.adjustTokenXMLAttrs = adjustTokenXMLAttrs;
    exports2.adjustTokenSVGTagName = adjustTokenSVGTagName;
    exports2.isIntegrationPoint = isIntegrationPoint;
    var html_js_1 = require_html();
    var MIME_TYPES = {
      TEXT_HTML: "text/html",
      APPLICATION_XML: "application/xhtml+xml"
    };
    var DEFINITION_URL_ATTR = "definitionurl";
    var ADJUSTED_DEFINITION_URL_ATTR = "definitionURL";
    var SVG_ATTRS_ADJUSTMENT_MAP = new Map([
      "attributeName",
      "attributeType",
      "baseFrequency",
      "baseProfile",
      "calcMode",
      "clipPathUnits",
      "diffuseConstant",
      "edgeMode",
      "filterUnits",
      "glyphRef",
      "gradientTransform",
      "gradientUnits",
      "kernelMatrix",
      "kernelUnitLength",
      "keyPoints",
      "keySplines",
      "keyTimes",
      "lengthAdjust",
      "limitingConeAngle",
      "markerHeight",
      "markerUnits",
      "markerWidth",
      "maskContentUnits",
      "maskUnits",
      "numOctaves",
      "pathLength",
      "patternContentUnits",
      "patternTransform",
      "patternUnits",
      "pointsAtX",
      "pointsAtY",
      "pointsAtZ",
      "preserveAlpha",
      "preserveAspectRatio",
      "primitiveUnits",
      "refX",
      "refY",
      "repeatCount",
      "repeatDur",
      "requiredExtensions",
      "requiredFeatures",
      "specularConstant",
      "specularExponent",
      "spreadMethod",
      "startOffset",
      "stdDeviation",
      "stitchTiles",
      "surfaceScale",
      "systemLanguage",
      "tableValues",
      "targetX",
      "targetY",
      "textLength",
      "viewBox",
      "viewTarget",
      "xChannelSelector",
      "yChannelSelector",
      "zoomAndPan"
    ].map((attr) => [attr.toLowerCase(), attr]));
    var XML_ATTRS_ADJUSTMENT_MAP = /* @__PURE__ */ new Map([
      ["xlink:actuate", { prefix: "xlink", name: "actuate", namespace: html_js_1.NS.XLINK }],
      ["xlink:arcrole", { prefix: "xlink", name: "arcrole", namespace: html_js_1.NS.XLINK }],
      ["xlink:href", { prefix: "xlink", name: "href", namespace: html_js_1.NS.XLINK }],
      ["xlink:role", { prefix: "xlink", name: "role", namespace: html_js_1.NS.XLINK }],
      ["xlink:show", { prefix: "xlink", name: "show", namespace: html_js_1.NS.XLINK }],
      ["xlink:title", { prefix: "xlink", name: "title", namespace: html_js_1.NS.XLINK }],
      ["xlink:type", { prefix: "xlink", name: "type", namespace: html_js_1.NS.XLINK }],
      ["xml:lang", { prefix: "xml", name: "lang", namespace: html_js_1.NS.XML }],
      ["xml:space", { prefix: "xml", name: "space", namespace: html_js_1.NS.XML }],
      ["xmlns", { prefix: "", name: "xmlns", namespace: html_js_1.NS.XMLNS }],
      ["xmlns:xlink", { prefix: "xmlns", name: "xlink", namespace: html_js_1.NS.XMLNS }]
    ]);
    exports2.SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([
      "altGlyph",
      "altGlyphDef",
      "altGlyphItem",
      "animateColor",
      "animateMotion",
      "animateTransform",
      "clipPath",
      "feBlend",
      "feColorMatrix",
      "feComponentTransfer",
      "feComposite",
      "feConvolveMatrix",
      "feDiffuseLighting",
      "feDisplacementMap",
      "feDistantLight",
      "feFlood",
      "feFuncA",
      "feFuncB",
      "feFuncG",
      "feFuncR",
      "feGaussianBlur",
      "feImage",
      "feMerge",
      "feMergeNode",
      "feMorphology",
      "feOffset",
      "fePointLight",
      "feSpecularLighting",
      "feSpotLight",
      "feTile",
      "feTurbulence",
      "foreignObject",
      "glyphRef",
      "linearGradient",
      "radialGradient",
      "textPath"
    ].map((tn3) => [tn3.toLowerCase(), tn3]));
    var EXITS_FOREIGN_CONTENT = /* @__PURE__ */ new Set([
      html_js_1.TAG_ID.B,
      html_js_1.TAG_ID.BIG,
      html_js_1.TAG_ID.BLOCKQUOTE,
      html_js_1.TAG_ID.BODY,
      html_js_1.TAG_ID.BR,
      html_js_1.TAG_ID.CENTER,
      html_js_1.TAG_ID.CODE,
      html_js_1.TAG_ID.DD,
      html_js_1.TAG_ID.DIV,
      html_js_1.TAG_ID.DL,
      html_js_1.TAG_ID.DT,
      html_js_1.TAG_ID.EM,
      html_js_1.TAG_ID.EMBED,
      html_js_1.TAG_ID.H1,
      html_js_1.TAG_ID.H2,
      html_js_1.TAG_ID.H3,
      html_js_1.TAG_ID.H4,
      html_js_1.TAG_ID.H5,
      html_js_1.TAG_ID.H6,
      html_js_1.TAG_ID.HEAD,
      html_js_1.TAG_ID.HR,
      html_js_1.TAG_ID.I,
      html_js_1.TAG_ID.IMG,
      html_js_1.TAG_ID.LI,
      html_js_1.TAG_ID.LISTING,
      html_js_1.TAG_ID.MENU,
      html_js_1.TAG_ID.META,
      html_js_1.TAG_ID.NOBR,
      html_js_1.TAG_ID.OL,
      html_js_1.TAG_ID.P,
      html_js_1.TAG_ID.PRE,
      html_js_1.TAG_ID.RUBY,
      html_js_1.TAG_ID.S,
      html_js_1.TAG_ID.SMALL,
      html_js_1.TAG_ID.SPAN,
      html_js_1.TAG_ID.STRONG,
      html_js_1.TAG_ID.STRIKE,
      html_js_1.TAG_ID.SUB,
      html_js_1.TAG_ID.SUP,
      html_js_1.TAG_ID.TABLE,
      html_js_1.TAG_ID.TT,
      html_js_1.TAG_ID.U,
      html_js_1.TAG_ID.UL,
      html_js_1.TAG_ID.VAR
    ]);
    function causesExit(startTagToken) {
      const tn3 = startTagToken.tagID;
      const isFontWithAttrs = tn3 === html_js_1.TAG_ID.FONT && startTagToken.attrs.some(({ name: name2 }) => name2 === html_js_1.ATTRS.COLOR || name2 === html_js_1.ATTRS.SIZE || name2 === html_js_1.ATTRS.FACE);
      return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn3);
    }
    function adjustTokenMathMLAttrs(token2) {
      for (let i22 = 0; i22 < token2.attrs.length; i22++) {
        if (token2.attrs[i22].name === DEFINITION_URL_ATTR) {
          token2.attrs[i22].name = ADJUSTED_DEFINITION_URL_ATTR;
          break;
        }
      }
    }
    function adjustTokenSVGAttrs(token2) {
      for (let i22 = 0; i22 < token2.attrs.length; i22++) {
        const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token2.attrs[i22].name);
        if (adjustedAttrName != null) {
          token2.attrs[i22].name = adjustedAttrName;
        }
      }
    }
    function adjustTokenXMLAttrs(token2) {
      for (let i22 = 0; i22 < token2.attrs.length; i22++) {
        const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token2.attrs[i22].name);
        if (adjustedAttrEntry) {
          token2.attrs[i22].prefix = adjustedAttrEntry.prefix;
          token2.attrs[i22].name = adjustedAttrEntry.name;
          token2.attrs[i22].namespace = adjustedAttrEntry.namespace;
        }
      }
    }
    function adjustTokenSVGTagName(token2) {
      const adjustedTagName = exports2.SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token2.tagName);
      if (adjustedTagName != null) {
        token2.tagName = adjustedTagName;
        token2.tagID = (0, html_js_1.getTagID)(token2.tagName);
      }
    }
    function isMathMLTextIntegrationPoint(tn3, ns2) {
      return ns2 === html_js_1.NS.MATHML && (tn3 === html_js_1.TAG_ID.MI || tn3 === html_js_1.TAG_ID.MO || tn3 === html_js_1.TAG_ID.MN || tn3 === html_js_1.TAG_ID.MS || tn3 === html_js_1.TAG_ID.MTEXT);
    }
    function isHtmlIntegrationPoint(tn3, ns2, attrs) {
      if (ns2 === html_js_1.NS.MATHML && tn3 === html_js_1.TAG_ID.ANNOTATION_XML) {
        for (let i22 = 0; i22 < attrs.length; i22++) {
          if (attrs[i22].name === html_js_1.ATTRS.ENCODING) {
            const value = attrs[i22].value.toLowerCase();
            return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;
          }
        }
      }
      return ns2 === html_js_1.NS.SVG && (tn3 === html_js_1.TAG_ID.FOREIGN_OBJECT || tn3 === html_js_1.TAG_ID.DESC || tn3 === html_js_1.TAG_ID.TITLE);
    }
    function isIntegrationPoint(tn3, ns2, attrs, foreignNS) {
      return (!foreignNS || foreignNS === html_js_1.NS.HTML) && isHtmlIntegrationPoint(tn3, ns2, attrs) || (!foreignNS || foreignNS === html_js_1.NS.MATHML) && isMathMLTextIntegrationPoint(tn3, ns2);
    }
  }
});
var require_parser = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/parser/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Parser = void 0;
    var index_js_1 = require_tokenizer();
    var open_element_stack_js_1 = require_open_element_stack();
    var formatting_element_list_js_1 = require_formatting_element_list();
    var default_js_1 = require_default();
    var doctype = require_doctype();
    var foreignContent = require_foreign_content();
    var error_codes_js_1 = require_error_codes();
    var unicode2 = require_unicode2();
    var html_js_1 = require_html();
    var token_js_1 = require_token();
    var HIDDEN_INPUT_TYPE = "hidden";
    var AA_OUTER_LOOP_ITER = 8;
    var AA_INNER_LOOP_ITER = 3;
    var InsertionMode;
    (function(InsertionMode2) {
      InsertionMode2[InsertionMode2["INITIAL"] = 0] = "INITIAL";
      InsertionMode2[InsertionMode2["BEFORE_HTML"] = 1] = "BEFORE_HTML";
      InsertionMode2[InsertionMode2["BEFORE_HEAD"] = 2] = "BEFORE_HEAD";
      InsertionMode2[InsertionMode2["IN_HEAD"] = 3] = "IN_HEAD";
      InsertionMode2[InsertionMode2["IN_HEAD_NO_SCRIPT"] = 4] = "IN_HEAD_NO_SCRIPT";
      InsertionMode2[InsertionMode2["AFTER_HEAD"] = 5] = "AFTER_HEAD";
      InsertionMode2[InsertionMode2["IN_BODY"] = 6] = "IN_BODY";
      InsertionMode2[InsertionMode2["TEXT"] = 7] = "TEXT";
      InsertionMode2[InsertionMode2["IN_TABLE"] = 8] = "IN_TABLE";
      InsertionMode2[InsertionMode2["IN_TABLE_TEXT"] = 9] = "IN_TABLE_TEXT";
      InsertionMode2[InsertionMode2["IN_CAPTION"] = 10] = "IN_CAPTION";
      InsertionMode2[InsertionMode2["IN_COLUMN_GROUP"] = 11] = "IN_COLUMN_GROUP";
      InsertionMode2[InsertionMode2["IN_TABLE_BODY"] = 12] = "IN_TABLE_BODY";
      InsertionMode2[InsertionMode2["IN_ROW"] = 13] = "IN_ROW";
      InsertionMode2[InsertionMode2["IN_CELL"] = 14] = "IN_CELL";
      InsertionMode2[InsertionMode2["IN_SELECT"] = 15] = "IN_SELECT";
      InsertionMode2[InsertionMode2["IN_SELECT_IN_TABLE"] = 16] = "IN_SELECT_IN_TABLE";
      InsertionMode2[InsertionMode2["IN_TEMPLATE"] = 17] = "IN_TEMPLATE";
      InsertionMode2[InsertionMode2["AFTER_BODY"] = 18] = "AFTER_BODY";
      InsertionMode2[InsertionMode2["IN_FRAMESET"] = 19] = "IN_FRAMESET";
      InsertionMode2[InsertionMode2["AFTER_FRAMESET"] = 20] = "AFTER_FRAMESET";
      InsertionMode2[InsertionMode2["AFTER_AFTER_BODY"] = 21] = "AFTER_AFTER_BODY";
      InsertionMode2[InsertionMode2["AFTER_AFTER_FRAMESET"] = 22] = "AFTER_AFTER_FRAMESET";
    })(InsertionMode || (InsertionMode = {}));
    var BASE_LOC = {
      startLine: -1,
      startCol: -1,
      startOffset: -1,
      endLine: -1,
      endCol: -1,
      endOffset: -1
    };
    var TABLE_STRUCTURE_TAGS = /* @__PURE__ */ new Set([html_js_1.TAG_ID.TABLE, html_js_1.TAG_ID.TBODY, html_js_1.TAG_ID.TFOOT, html_js_1.TAG_ID.THEAD, html_js_1.TAG_ID.TR]);
    var defaultParserOptions = {
      scriptingEnabled: true,
      sourceCodeLocationInfo: false,
      treeAdapter: default_js_1.defaultTreeAdapter,
      onParseError: null
    };
    var Parser2 = class {
      constructor(options, document2, fragmentContext = null, scriptHandler = null) {
        this.fragmentContext = fragmentContext;
        this.scriptHandler = scriptHandler;
        this.currentToken = null;
        this.stopped = false;
        this.insertionMode = InsertionMode.INITIAL;
        this.originalInsertionMode = InsertionMode.INITIAL;
        this.headElement = null;
        this.formElement = null;
        this.currentNotInHTML = false;
        this.tmplInsertionModeStack = [];
        this.pendingCharacterTokens = [];
        this.hasNonWhitespacePendingCharacterToken = false;
        this.framesetOk = true;
        this.skipNextNewLine = false;
        this.fosterParentingEnabled = false;
        this.options = Object.assign(Object.assign({}, defaultParserOptions), options);
        this.treeAdapter = this.options.treeAdapter;
        this.onParseError = this.options.onParseError;
        if (this.onParseError) {
          this.options.sourceCodeLocationInfo = true;
        }
        this.document = document2 !== null && document2 !== void 0 ? document2 : this.treeAdapter.createDocument();
        this.tokenizer = new index_js_1.Tokenizer(this.options, this);
        this.activeFormattingElements = new formatting_element_list_js_1.FormattingElementList(this.treeAdapter);
        this.fragmentContextID = fragmentContext ? (0, html_js_1.getTagID)(this.treeAdapter.getTagName(fragmentContext)) : html_js_1.TAG_ID.UNKNOWN;
        this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);
        this.openElements = new open_element_stack_js_1.OpenElementStack(this.document, this.treeAdapter, this);
      }
      // API
      static parse(html, options) {
        const parser = new this(options);
        parser.tokenizer.write(html, true);
        return parser.document;
      }
      static getFragmentParser(fragmentContext, options) {
        const opts = Object.assign(Object.assign({}, defaultParserOptions), options);
        fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : fragmentContext = opts.treeAdapter.createElement(html_js_1.TAG_NAMES.TEMPLATE, html_js_1.NS.HTML, []);
        const documentMock = opts.treeAdapter.createElement("documentmock", html_js_1.NS.HTML, []);
        const parser = new this(opts, documentMock, fragmentContext);
        if (parser.fragmentContextID === html_js_1.TAG_ID.TEMPLATE) {
          parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);
        }
        parser._initTokenizerForFragmentParsing();
        parser._insertFakeRootElement();
        parser._resetInsertionMode();
        parser._findFormInFragmentContext();
        return parser;
      }
      getFragment() {
        const rootElement = this.treeAdapter.getFirstChild(this.document);
        const fragment = this.treeAdapter.createDocumentFragment();
        this._adoptNodes(rootElement, fragment);
        return fragment;
      }
      //Errors
      /** @internal */
      _err(token2, code, beforeToken) {
        var _a22;
        if (!this.onParseError)
          return;
        const loc = (_a22 = token2.location) !== null && _a22 !== void 0 ? _a22 : BASE_LOC;
        const err2 = {
          code,
          startLine: loc.startLine,
          startCol: loc.startCol,
          startOffset: loc.startOffset,
          endLine: beforeToken ? loc.startLine : loc.endLine,
          endCol: beforeToken ? loc.startCol : loc.endCol,
          endOffset: beforeToken ? loc.startOffset : loc.endOffset
        };
        this.onParseError(err2);
      }
      //Stack events
      /** @internal */
      onItemPush(node, tid, isTop) {
        var _a22, _b2;
        (_b2 = (_a22 = this.treeAdapter).onItemPush) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, node);
        if (isTop && this.openElements.stackTop > 0)
          this._setContextModes(node, tid);
      }
      /** @internal */
      onItemPop(node, isTop) {
        var _a22, _b2;
        if (this.options.sourceCodeLocationInfo) {
          this._setEndLocation(node, this.currentToken);
        }
        (_b2 = (_a22 = this.treeAdapter).onItemPop) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, node, this.openElements.current);
        if (isTop) {
          let current;
          let currentTagId;
          if (this.openElements.stackTop === 0 && this.fragmentContext) {
            current = this.fragmentContext;
            currentTagId = this.fragmentContextID;
          } else {
            ({ current, currentTagId } = this.openElements);
          }
          this._setContextModes(current, currentTagId);
        }
      }
      _setContextModes(current, tid) {
        const isHTML = current === this.document || current && this.treeAdapter.getNamespaceURI(current) === html_js_1.NS.HTML;
        this.currentNotInHTML = !isHTML;
        this.tokenizer.inForeignNode = !isHTML && current !== void 0 && tid !== void 0 && !this._isIntegrationPoint(tid, current);
      }
      /** @protected */
      _switchToTextParsing(currentToken, nextTokenizerState) {
        this._insertElement(currentToken, html_js_1.NS.HTML);
        this.tokenizer.state = nextTokenizerState;
        this.originalInsertionMode = this.insertionMode;
        this.insertionMode = InsertionMode.TEXT;
      }
      switchToPlaintextParsing() {
        this.insertionMode = InsertionMode.TEXT;
        this.originalInsertionMode = InsertionMode.IN_BODY;
        this.tokenizer.state = index_js_1.TokenizerMode.PLAINTEXT;
      }
      //Fragment parsing
      /** @protected */
      _getAdjustedCurrentElement() {
        return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current;
      }
      /** @protected */
      _findFormInFragmentContext() {
        let node = this.fragmentContext;
        while (node) {
          if (this.treeAdapter.getTagName(node) === html_js_1.TAG_NAMES.FORM) {
            this.formElement = node;
            break;
          }
          node = this.treeAdapter.getParentNode(node);
        }
      }
      _initTokenizerForFragmentParsing() {
        if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== html_js_1.NS.HTML) {
          return;
        }
        switch (this.fragmentContextID) {
          case html_js_1.TAG_ID.TITLE:
          case html_js_1.TAG_ID.TEXTAREA: {
            this.tokenizer.state = index_js_1.TokenizerMode.RCDATA;
            break;
          }
          case html_js_1.TAG_ID.STYLE:
          case html_js_1.TAG_ID.XMP:
          case html_js_1.TAG_ID.IFRAME:
          case html_js_1.TAG_ID.NOEMBED:
          case html_js_1.TAG_ID.NOFRAMES:
          case html_js_1.TAG_ID.NOSCRIPT: {
            this.tokenizer.state = index_js_1.TokenizerMode.RAWTEXT;
            break;
          }
          case html_js_1.TAG_ID.SCRIPT: {
            this.tokenizer.state = index_js_1.TokenizerMode.SCRIPT_DATA;
            break;
          }
          case html_js_1.TAG_ID.PLAINTEXT: {
            this.tokenizer.state = index_js_1.TokenizerMode.PLAINTEXT;
            break;
          }
          default:
        }
      }
      //Tree mutation
      /** @protected */
      _setDocumentType(token2) {
        const name2 = token2.name || "";
        const publicId = token2.publicId || "";
        const systemId = token2.systemId || "";
        this.treeAdapter.setDocumentType(this.document, name2, publicId, systemId);
        if (token2.location) {
          const documentChildren = this.treeAdapter.getChildNodes(this.document);
          const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node));
          if (docTypeNode) {
            this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token2.location);
          }
        }
      }
      /** @protected */
      _attachElementToTree(element, location) {
        if (this.options.sourceCodeLocationInfo) {
          const loc = location && Object.assign(Object.assign({}, location), { startTag: location });
          this.treeAdapter.setNodeSourceCodeLocation(element, loc);
        }
        if (this._shouldFosterParentOnInsertion()) {
          this._fosterParentElement(element);
        } else {
          const parent = this.openElements.currentTmplContentOrNode;
          this.treeAdapter.appendChild(parent !== null && parent !== void 0 ? parent : this.document, element);
        }
      }
      /**
       * For self-closing tags. Add an element to the tree, but skip adding it
       * to the stack.
       */
      /** @protected */
      _appendElement(token2, namespaceURI) {
        const element = this.treeAdapter.createElement(token2.tagName, namespaceURI, token2.attrs);
        this._attachElementToTree(element, token2.location);
      }
      /** @protected */
      _insertElement(token2, namespaceURI) {
        const element = this.treeAdapter.createElement(token2.tagName, namespaceURI, token2.attrs);
        this._attachElementToTree(element, token2.location);
        this.openElements.push(element, token2.tagID);
      }
      /** @protected */
      _insertFakeElement(tagName, tagID) {
        const element = this.treeAdapter.createElement(tagName, html_js_1.NS.HTML, []);
        this._attachElementToTree(element, null);
        this.openElements.push(element, tagID);
      }
      /** @protected */
      _insertTemplate(token2) {
        const tmpl = this.treeAdapter.createElement(token2.tagName, html_js_1.NS.HTML, token2.attrs);
        const content2 = this.treeAdapter.createDocumentFragment();
        this.treeAdapter.setTemplateContent(tmpl, content2);
        this._attachElementToTree(tmpl, token2.location);
        this.openElements.push(tmpl, token2.tagID);
        if (this.options.sourceCodeLocationInfo)
          this.treeAdapter.setNodeSourceCodeLocation(content2, null);
      }
      /** @protected */
      _insertFakeRootElement() {
        const element = this.treeAdapter.createElement(html_js_1.TAG_NAMES.HTML, html_js_1.NS.HTML, []);
        if (this.options.sourceCodeLocationInfo)
          this.treeAdapter.setNodeSourceCodeLocation(element, null);
        this.treeAdapter.appendChild(this.openElements.current, element);
        this.openElements.push(element, html_js_1.TAG_ID.HTML);
      }
      /** @protected */
      _appendCommentNode(token2, parent) {
        const commentNode = this.treeAdapter.createCommentNode(token2.data);
        this.treeAdapter.appendChild(parent, commentNode);
        if (this.options.sourceCodeLocationInfo) {
          this.treeAdapter.setNodeSourceCodeLocation(commentNode, token2.location);
        }
      }
      /** @protected */
      _insertCharacters(token2) {
        let parent;
        let beforeElement;
        if (this._shouldFosterParentOnInsertion()) {
          ({ parent, beforeElement } = this._findFosterParentingLocation());
          if (beforeElement) {
            this.treeAdapter.insertTextBefore(parent, token2.chars, beforeElement);
          } else {
            this.treeAdapter.insertText(parent, token2.chars);
          }
        } else {
          parent = this.openElements.currentTmplContentOrNode;
          this.treeAdapter.insertText(parent, token2.chars);
        }
        if (!token2.location)
          return;
        const siblings = this.treeAdapter.getChildNodes(parent);
        const textNodeIdx = beforeElement ? siblings.lastIndexOf(beforeElement) : siblings.length;
        const textNode = siblings[textNodeIdx - 1];
        const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);
        if (tnLoc) {
          const { endLine, endCol, endOffset } = token2.location;
          this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });
        } else if (this.options.sourceCodeLocationInfo) {
          this.treeAdapter.setNodeSourceCodeLocation(textNode, token2.location);
        }
      }
      /** @protected */
      _adoptNodes(donor, recipient) {
        for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {
          this.treeAdapter.detachNode(child);
          this.treeAdapter.appendChild(recipient, child);
        }
      }
      /** @protected */
      _setEndLocation(element, closingToken) {
        if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {
          const ctLoc = closingToken.location;
          const tn3 = this.treeAdapter.getTagName(element);
          const endLoc = (
            // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing
            // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.
            closingToken.type === token_js_1.TokenType.END_TAG && tn3 === closingToken.tagName ? {
              endTag: Object.assign({}, ctLoc),
              endLine: ctLoc.endLine,
              endCol: ctLoc.endCol,
              endOffset: ctLoc.endOffset
            } : {
              endLine: ctLoc.startLine,
              endCol: ctLoc.startCol,
              endOffset: ctLoc.startOffset
            }
          );
          this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);
        }
      }
      //Token processing
      shouldProcessStartTagTokenInForeignContent(token2) {
        if (!this.currentNotInHTML)
          return false;
        let current;
        let currentTagId;
        if (this.openElements.stackTop === 0 && this.fragmentContext) {
          current = this.fragmentContext;
          currentTagId = this.fragmentContextID;
        } else {
          ({ current, currentTagId } = this.openElements);
        }
        if (token2.tagID === html_js_1.TAG_ID.SVG && this.treeAdapter.getTagName(current) === html_js_1.TAG_NAMES.ANNOTATION_XML && this.treeAdapter.getNamespaceURI(current) === html_js_1.NS.MATHML) {
          return false;
        }
        return (
          // Check that `current` is not an integration point for HTML or MathML elements.
          this.tokenizer.inForeignNode || // If it _is_ an integration point, then we might have to check that it is not an HTML
          // integration point.
          (token2.tagID === html_js_1.TAG_ID.MGLYPH || token2.tagID === html_js_1.TAG_ID.MALIGNMARK) && currentTagId !== void 0 && !this._isIntegrationPoint(currentTagId, current, html_js_1.NS.HTML)
        );
      }
      /** @protected */
      _processToken(token2) {
        switch (token2.type) {
          case token_js_1.TokenType.CHARACTER: {
            this.onCharacter(token2);
            break;
          }
          case token_js_1.TokenType.NULL_CHARACTER: {
            this.onNullCharacter(token2);
            break;
          }
          case token_js_1.TokenType.COMMENT: {
            this.onComment(token2);
            break;
          }
          case token_js_1.TokenType.DOCTYPE: {
            this.onDoctype(token2);
            break;
          }
          case token_js_1.TokenType.START_TAG: {
            this._processStartTag(token2);
            break;
          }
          case token_js_1.TokenType.END_TAG: {
            this.onEndTag(token2);
            break;
          }
          case token_js_1.TokenType.EOF: {
            this.onEof(token2);
            break;
          }
          case token_js_1.TokenType.WHITESPACE_CHARACTER: {
            this.onWhitespaceCharacter(token2);
            break;
          }
        }
      }
      //Integration points
      /** @protected */
      _isIntegrationPoint(tid, element, foreignNS) {
        const ns2 = this.treeAdapter.getNamespaceURI(element);
        const attrs = this.treeAdapter.getAttrList(element);
        return foreignContent.isIntegrationPoint(tid, ns2, attrs, foreignNS);
      }
      //Active formatting elements reconstruction
      /** @protected */
      _reconstructActiveFormattingElements() {
        const listLength = this.activeFormattingElements.entries.length;
        if (listLength) {
          const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === formatting_element_list_js_1.EntryType.Marker || this.openElements.contains(entry.element));
          const unopenIdx = endIndex === -1 ? listLength - 1 : endIndex - 1;
          for (let i22 = unopenIdx; i22 >= 0; i22--) {
            const entry = this.activeFormattingElements.entries[i22];
            this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));
            entry.element = this.openElements.current;
          }
        }
      }
      //Close elements
      /** @protected */
      _closeTableCell() {
        this.openElements.generateImpliedEndTags();
        this.openElements.popUntilTableCellPopped();
        this.activeFormattingElements.clearToLastMarker();
        this.insertionMode = InsertionMode.IN_ROW;
      }
      /** @protected */
      _closePElement() {
        this.openElements.generateImpliedEndTagsWithExclusion(html_js_1.TAG_ID.P);
        this.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.P);
      }
      //Insertion modes
      /** @protected */
      _resetInsertionMode() {
        for (let i22 = this.openElements.stackTop; i22 >= 0; i22--) {
          switch (i22 === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i22]) {
            case html_js_1.TAG_ID.TR: {
              this.insertionMode = InsertionMode.IN_ROW;
              return;
            }
            case html_js_1.TAG_ID.TBODY:
            case html_js_1.TAG_ID.THEAD:
            case html_js_1.TAG_ID.TFOOT: {
              this.insertionMode = InsertionMode.IN_TABLE_BODY;
              return;
            }
            case html_js_1.TAG_ID.CAPTION: {
              this.insertionMode = InsertionMode.IN_CAPTION;
              return;
            }
            case html_js_1.TAG_ID.COLGROUP: {
              this.insertionMode = InsertionMode.IN_COLUMN_GROUP;
              return;
            }
            case html_js_1.TAG_ID.TABLE: {
              this.insertionMode = InsertionMode.IN_TABLE;
              return;
            }
            case html_js_1.TAG_ID.BODY: {
              this.insertionMode = InsertionMode.IN_BODY;
              return;
            }
            case html_js_1.TAG_ID.FRAMESET: {
              this.insertionMode = InsertionMode.IN_FRAMESET;
              return;
            }
            case html_js_1.TAG_ID.SELECT: {
              this._resetInsertionModeForSelect(i22);
              return;
            }
            case html_js_1.TAG_ID.TEMPLATE: {
              this.insertionMode = this.tmplInsertionModeStack[0];
              return;
            }
            case html_js_1.TAG_ID.HTML: {
              this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;
              return;
            }
            case html_js_1.TAG_ID.TD:
            case html_js_1.TAG_ID.TH: {
              if (i22 > 0) {
                this.insertionMode = InsertionMode.IN_CELL;
                return;
              }
              break;
            }
            case html_js_1.TAG_ID.HEAD: {
              if (i22 > 0) {
                this.insertionMode = InsertionMode.IN_HEAD;
                return;
              }
              break;
            }
          }
        }
        this.insertionMode = InsertionMode.IN_BODY;
      }
      /** @protected */
      _resetInsertionModeForSelect(selectIdx) {
        if (selectIdx > 0) {
          for (let i22 = selectIdx - 1; i22 > 0; i22--) {
            const tn3 = this.openElements.tagIDs[i22];
            if (tn3 === html_js_1.TAG_ID.TEMPLATE) {
              break;
            } else if (tn3 === html_js_1.TAG_ID.TABLE) {
              this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;
              return;
            }
          }
        }
        this.insertionMode = InsertionMode.IN_SELECT;
      }
      //Foster parenting
      /** @protected */
      _isElementCausesFosterParenting(tn3) {
        return TABLE_STRUCTURE_TAGS.has(tn3);
      }
      /** @protected */
      _shouldFosterParentOnInsertion() {
        return this.fosterParentingEnabled && this.openElements.currentTagId !== void 0 && this._isElementCausesFosterParenting(this.openElements.currentTagId);
      }
      /** @protected */
      _findFosterParentingLocation() {
        for (let i22 = this.openElements.stackTop; i22 >= 0; i22--) {
          const openElement = this.openElements.items[i22];
          switch (this.openElements.tagIDs[i22]) {
            case html_js_1.TAG_ID.TEMPLATE: {
              if (this.treeAdapter.getNamespaceURI(openElement) === html_js_1.NS.HTML) {
                return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };
              }
              break;
            }
            case html_js_1.TAG_ID.TABLE: {
              const parent = this.treeAdapter.getParentNode(openElement);
              if (parent) {
                return { parent, beforeElement: openElement };
              }
              return { parent: this.openElements.items[i22 - 1], beforeElement: null };
            }
            default:
          }
        }
        return { parent: this.openElements.items[0], beforeElement: null };
      }
      /** @protected */
      _fosterParentElement(element) {
        const location = this._findFosterParentingLocation();
        if (location.beforeElement) {
          this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);
        } else {
          this.treeAdapter.appendChild(location.parent, element);
        }
      }
      //Special elements
      /** @protected */
      _isSpecialElement(element, id) {
        const ns2 = this.treeAdapter.getNamespaceURI(element);
        return html_js_1.SPECIAL_ELEMENTS[ns2].has(id);
      }
      /** @internal */
      onCharacter(token2) {
        this.skipNextNewLine = false;
        if (this.tokenizer.inForeignNode) {
          characterInForeignContent(this, token2);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            tokenBeforeHtml(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            tokenBeforeHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD: {
            tokenInHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            tokenInHeadNoScript(this, token2);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            tokenAfterHead(this, token2);
            break;
          }
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_TEMPLATE: {
            characterInBody(this, token2);
            break;
          }
          case InsertionMode.TEXT:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE: {
            this._insertCharacters(token2);
            break;
          }
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW: {
            characterInTable(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            characterInTableText(this, token2);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            tokenInColumnGroup(this, token2);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            tokenAfterBody(this, token2);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            tokenAfterAfterBody(this, token2);
            break;
          }
          default:
        }
      }
      /** @internal */
      onNullCharacter(token2) {
        this.skipNextNewLine = false;
        if (this.tokenizer.inForeignNode) {
          nullCharacterInForeignContent(this, token2);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            tokenBeforeHtml(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            tokenBeforeHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD: {
            tokenInHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            tokenInHeadNoScript(this, token2);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            tokenAfterHead(this, token2);
            break;
          }
          case InsertionMode.TEXT: {
            this._insertCharacters(token2);
            break;
          }
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW: {
            characterInTable(this, token2);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            tokenInColumnGroup(this, token2);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            tokenAfterBody(this, token2);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            tokenAfterAfterBody(this, token2);
            break;
          }
          default:
        }
      }
      /** @internal */
      onComment(token2) {
        this.skipNextNewLine = false;
        if (this.currentNotInHTML) {
          appendComment(this, token2);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.INITIAL:
          case InsertionMode.BEFORE_HTML:
          case InsertionMode.BEFORE_HEAD:
          case InsertionMode.IN_HEAD:
          case InsertionMode.IN_HEAD_NO_SCRIPT:
          case InsertionMode.AFTER_HEAD:
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_COLUMN_GROUP:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE:
          case InsertionMode.IN_TEMPLATE:
          case InsertionMode.IN_FRAMESET:
          case InsertionMode.AFTER_FRAMESET: {
            appendComment(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token2);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            appendCommentToRootHtmlElement(this, token2);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY:
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            appendCommentToDocument(this, token2);
            break;
          }
          default:
        }
      }
      /** @internal */
      onDoctype(token2) {
        this.skipNextNewLine = false;
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            doctypeInInitialMode(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HEAD:
          case InsertionMode.IN_HEAD:
          case InsertionMode.IN_HEAD_NO_SCRIPT:
          case InsertionMode.AFTER_HEAD: {
            this._err(token2, error_codes_js_1.ERR.misplacedDoctype);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token2);
            break;
          }
          default:
        }
      }
      /** @internal */
      onStartTag(token2) {
        this.skipNextNewLine = false;
        this.currentToken = token2;
        this._processStartTag(token2);
        if (token2.selfClosing && !token2.ackSelfClosing) {
          this._err(token2, error_codes_js_1.ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);
        }
      }
      /**
       * Processes a given start tag.
       *
       * `onStartTag` checks if a self-closing tag was recognized. When a token
       * is moved inbetween multiple insertion modes, this check for self-closing
       * could lead to false positives. To avoid this, `_processStartTag` is used
       * for nested calls.
       *
       * @param token The token to process.
       * @protected
       */
      _processStartTag(token2) {
        if (this.shouldProcessStartTagTokenInForeignContent(token2)) {
          startTagInForeignContent(this, token2);
        } else {
          this._startTagOutsideForeignContent(token2);
        }
      }
      /** @protected */
      _startTagOutsideForeignContent(token2) {
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            startTagBeforeHtml(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            startTagBeforeHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD: {
            startTagInHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            startTagInHeadNoScript(this, token2);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            startTagAfterHead(this, token2);
            break;
          }
          case InsertionMode.IN_BODY: {
            startTagInBody(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE: {
            startTagInTable(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token2);
            break;
          }
          case InsertionMode.IN_CAPTION: {
            startTagInCaption(this, token2);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            startTagInColumnGroup(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_BODY: {
            startTagInTableBody(this, token2);
            break;
          }
          case InsertionMode.IN_ROW: {
            startTagInRow(this, token2);
            break;
          }
          case InsertionMode.IN_CELL: {
            startTagInCell(this, token2);
            break;
          }
          case InsertionMode.IN_SELECT: {
            startTagInSelect(this, token2);
            break;
          }
          case InsertionMode.IN_SELECT_IN_TABLE: {
            startTagInSelectInTable(this, token2);
            break;
          }
          case InsertionMode.IN_TEMPLATE: {
            startTagInTemplate(this, token2);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            startTagAfterBody(this, token2);
            break;
          }
          case InsertionMode.IN_FRAMESET: {
            startTagInFrameset(this, token2);
            break;
          }
          case InsertionMode.AFTER_FRAMESET: {
            startTagAfterFrameset(this, token2);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            startTagAfterAfterBody(this, token2);
            break;
          }
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            startTagAfterAfterFrameset(this, token2);
            break;
          }
          default:
        }
      }
      /** @internal */
      onEndTag(token2) {
        this.skipNextNewLine = false;
        this.currentToken = token2;
        if (this.currentNotInHTML) {
          endTagInForeignContent(this, token2);
        } else {
          this._endTagOutsideForeignContent(token2);
        }
      }
      /** @protected */
      _endTagOutsideForeignContent(token2) {
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            endTagBeforeHtml(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            endTagBeforeHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD: {
            endTagInHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            endTagInHeadNoScript(this, token2);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            endTagAfterHead(this, token2);
            break;
          }
          case InsertionMode.IN_BODY: {
            endTagInBody(this, token2);
            break;
          }
          case InsertionMode.TEXT: {
            endTagInText(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE: {
            endTagInTable(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token2);
            break;
          }
          case InsertionMode.IN_CAPTION: {
            endTagInCaption(this, token2);
            break;
          }
          case InsertionMode.IN_COLUMN_GROUP: {
            endTagInColumnGroup(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_BODY: {
            endTagInTableBody(this, token2);
            break;
          }
          case InsertionMode.IN_ROW: {
            endTagInRow(this, token2);
            break;
          }
          case InsertionMode.IN_CELL: {
            endTagInCell(this, token2);
            break;
          }
          case InsertionMode.IN_SELECT: {
            endTagInSelect(this, token2);
            break;
          }
          case InsertionMode.IN_SELECT_IN_TABLE: {
            endTagInSelectInTable(this, token2);
            break;
          }
          case InsertionMode.IN_TEMPLATE: {
            endTagInTemplate(this, token2);
            break;
          }
          case InsertionMode.AFTER_BODY: {
            endTagAfterBody(this, token2);
            break;
          }
          case InsertionMode.IN_FRAMESET: {
            endTagInFrameset(this, token2);
            break;
          }
          case InsertionMode.AFTER_FRAMESET: {
            endTagAfterFrameset(this, token2);
            break;
          }
          case InsertionMode.AFTER_AFTER_BODY: {
            tokenAfterAfterBody(this, token2);
            break;
          }
          default:
        }
      }
      /** @internal */
      onEof(token2) {
        switch (this.insertionMode) {
          case InsertionMode.INITIAL: {
            tokenInInitialMode(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HTML: {
            tokenBeforeHtml(this, token2);
            break;
          }
          case InsertionMode.BEFORE_HEAD: {
            tokenBeforeHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD: {
            tokenInHead(this, token2);
            break;
          }
          case InsertionMode.IN_HEAD_NO_SCRIPT: {
            tokenInHeadNoScript(this, token2);
            break;
          }
          case InsertionMode.AFTER_HEAD: {
            tokenAfterHead(this, token2);
            break;
          }
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_COLUMN_GROUP:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE: {
            eofInBody(this, token2);
            break;
          }
          case InsertionMode.TEXT: {
            eofInText(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            tokenInTableText(this, token2);
            break;
          }
          case InsertionMode.IN_TEMPLATE: {
            eofInTemplate(this, token2);
            break;
          }
          case InsertionMode.AFTER_BODY:
          case InsertionMode.IN_FRAMESET:
          case InsertionMode.AFTER_FRAMESET:
          case InsertionMode.AFTER_AFTER_BODY:
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            stopParsing(this, token2);
            break;
          }
          default:
        }
      }
      /** @internal */
      onWhitespaceCharacter(token2) {
        if (this.skipNextNewLine) {
          this.skipNextNewLine = false;
          if (token2.chars.charCodeAt(0) === unicode2.CODE_POINTS.LINE_FEED) {
            if (token2.chars.length === 1) {
              return;
            }
            token2.chars = token2.chars.substr(1);
          }
        }
        if (this.tokenizer.inForeignNode) {
          this._insertCharacters(token2);
          return;
        }
        switch (this.insertionMode) {
          case InsertionMode.IN_HEAD:
          case InsertionMode.IN_HEAD_NO_SCRIPT:
          case InsertionMode.AFTER_HEAD:
          case InsertionMode.TEXT:
          case InsertionMode.IN_COLUMN_GROUP:
          case InsertionMode.IN_SELECT:
          case InsertionMode.IN_SELECT_IN_TABLE:
          case InsertionMode.IN_FRAMESET:
          case InsertionMode.AFTER_FRAMESET: {
            this._insertCharacters(token2);
            break;
          }
          case InsertionMode.IN_BODY:
          case InsertionMode.IN_CAPTION:
          case InsertionMode.IN_CELL:
          case InsertionMode.IN_TEMPLATE:
          case InsertionMode.AFTER_BODY:
          case InsertionMode.AFTER_AFTER_BODY:
          case InsertionMode.AFTER_AFTER_FRAMESET: {
            whitespaceCharacterInBody(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE:
          case InsertionMode.IN_TABLE_BODY:
          case InsertionMode.IN_ROW: {
            characterInTable(this, token2);
            break;
          }
          case InsertionMode.IN_TABLE_TEXT: {
            whitespaceCharacterInTableText(this, token2);
            break;
          }
          default:
        }
      }
    };
    exports2.Parser = Parser2;
    function aaObtainFormattingElementEntry(p, token2) {
      let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token2.tagName);
      if (formattingElementEntry) {
        if (!p.openElements.contains(formattingElementEntry.element)) {
          p.activeFormattingElements.removeEntry(formattingElementEntry);
          formattingElementEntry = null;
        } else if (!p.openElements.hasInScope(token2.tagID)) {
          formattingElementEntry = null;
        }
      } else {
        genericEndTagInBody(p, token2);
      }
      return formattingElementEntry;
    }
    function aaObtainFurthestBlock(p, formattingElementEntry) {
      let furthestBlock = null;
      let idx = p.openElements.stackTop;
      for (; idx >= 0; idx--) {
        const element = p.openElements.items[idx];
        if (element === formattingElementEntry.element) {
          break;
        }
        if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) {
          furthestBlock = element;
        }
      }
      if (!furthestBlock) {
        p.openElements.shortenToLength(Math.max(idx, 0));
        p.activeFormattingElements.removeEntry(formattingElementEntry);
      }
      return furthestBlock;
    }
    function aaInnerLoop(p, furthestBlock, formattingElement) {
      let lastElement = furthestBlock;
      let nextElement = p.openElements.getCommonAncestor(furthestBlock);
      for (let i22 = 0, element = nextElement; element !== formattingElement; i22++, element = nextElement) {
        nextElement = p.openElements.getCommonAncestor(element);
        const elementEntry = p.activeFormattingElements.getElementEntry(element);
        const counterOverflow = elementEntry && i22 >= AA_INNER_LOOP_ITER;
        const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;
        if (shouldRemoveFromOpenElements) {
          if (counterOverflow) {
            p.activeFormattingElements.removeEntry(elementEntry);
          }
          p.openElements.remove(element);
        } else {
          element = aaRecreateElementFromEntry(p, elementEntry);
          if (lastElement === furthestBlock) {
            p.activeFormattingElements.bookmark = elementEntry;
          }
          p.treeAdapter.detachNode(lastElement);
          p.treeAdapter.appendChild(element, lastElement);
          lastElement = element;
        }
      }
      return lastElement;
    }
    function aaRecreateElementFromEntry(p, elementEntry) {
      const ns2 = p.treeAdapter.getNamespaceURI(elementEntry.element);
      const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns2, elementEntry.token.attrs);
      p.openElements.replace(elementEntry.element, newElement);
      elementEntry.element = newElement;
      return newElement;
    }
    function aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {
      const tn3 = p.treeAdapter.getTagName(commonAncestor);
      const tid = (0, html_js_1.getTagID)(tn3);
      if (p._isElementCausesFosterParenting(tid)) {
        p._fosterParentElement(lastElement);
      } else {
        const ns2 = p.treeAdapter.getNamespaceURI(commonAncestor);
        if (tid === html_js_1.TAG_ID.TEMPLATE && ns2 === html_js_1.NS.HTML) {
          commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);
        }
        p.treeAdapter.appendChild(commonAncestor, lastElement);
      }
    }
    function aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {
      const ns2 = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);
      const { token: token2 } = formattingElementEntry;
      const newElement = p.treeAdapter.createElement(token2.tagName, ns2, token2.attrs);
      p._adoptNodes(furthestBlock, newElement);
      p.treeAdapter.appendChild(furthestBlock, newElement);
      p.activeFormattingElements.insertElementAfterBookmark(newElement, token2);
      p.activeFormattingElements.removeEntry(formattingElementEntry);
      p.openElements.remove(formattingElementEntry.element);
      p.openElements.insertAfter(furthestBlock, newElement, token2.tagID);
    }
    function callAdoptionAgency(p, token2) {
      for (let i22 = 0; i22 < AA_OUTER_LOOP_ITER; i22++) {
        const formattingElementEntry = aaObtainFormattingElementEntry(p, token2);
        if (!formattingElementEntry) {
          break;
        }
        const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);
        if (!furthestBlock) {
          break;
        }
        p.activeFormattingElements.bookmark = formattingElementEntry;
        const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);
        const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);
        p.treeAdapter.detachNode(lastElement);
        if (commonAncestor)
          aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);
        aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);
      }
    }
    function appendComment(p, token2) {
      p._appendCommentNode(token2, p.openElements.currentTmplContentOrNode);
    }
    function appendCommentToRootHtmlElement(p, token2) {
      p._appendCommentNode(token2, p.openElements.items[0]);
    }
    function appendCommentToDocument(p, token2) {
      p._appendCommentNode(token2, p.document);
    }
    function stopParsing(p, token2) {
      p.stopped = true;
      if (token2.location) {
        const target = p.fragmentContext ? 0 : 2;
        for (let i22 = p.openElements.stackTop; i22 >= target; i22--) {
          p._setEndLocation(p.openElements.items[i22], token2);
        }
        if (!p.fragmentContext && p.openElements.stackTop >= 0) {
          const htmlElement = p.openElements.items[0];
          const htmlLocation = p.treeAdapter.getNodeSourceCodeLocation(htmlElement);
          if (htmlLocation && !htmlLocation.endTag) {
            p._setEndLocation(htmlElement, token2);
            if (p.openElements.stackTop >= 1) {
              const bodyElement = p.openElements.items[1];
              const bodyLocation = p.treeAdapter.getNodeSourceCodeLocation(bodyElement);
              if (bodyLocation && !bodyLocation.endTag) {
                p._setEndLocation(bodyElement, token2);
              }
            }
          }
        }
      }
    }
    function doctypeInInitialMode(p, token2) {
      p._setDocumentType(token2);
      const mode = token2.forceQuirks ? html_js_1.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token2);
      if (!doctype.isConforming(token2)) {
        p._err(token2, error_codes_js_1.ERR.nonConformingDoctype);
      }
      p.treeAdapter.setDocumentMode(p.document, mode);
      p.insertionMode = InsertionMode.BEFORE_HTML;
    }
    function tokenInInitialMode(p, token2) {
      p._err(token2, error_codes_js_1.ERR.missingDoctype, true);
      p.treeAdapter.setDocumentMode(p.document, html_js_1.DOCUMENT_MODE.QUIRKS);
      p.insertionMode = InsertionMode.BEFORE_HTML;
      p._processToken(token2);
    }
    function startTagBeforeHtml(p, token2) {
      if (token2.tagID === html_js_1.TAG_ID.HTML) {
        p._insertElement(token2, html_js_1.NS.HTML);
        p.insertionMode = InsertionMode.BEFORE_HEAD;
      } else {
        tokenBeforeHtml(p, token2);
      }
    }
    function endTagBeforeHtml(p, token2) {
      const tn3 = token2.tagID;
      if (tn3 === html_js_1.TAG_ID.HTML || tn3 === html_js_1.TAG_ID.HEAD || tn3 === html_js_1.TAG_ID.BODY || tn3 === html_js_1.TAG_ID.BR) {
        tokenBeforeHtml(p, token2);
      }
    }
    function tokenBeforeHtml(p, token2) {
      p._insertFakeRootElement();
      p.insertionMode = InsertionMode.BEFORE_HEAD;
      p._processToken(token2);
    }
    function startTagBeforeHead(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.HEAD: {
          p._insertElement(token2, html_js_1.NS.HTML);
          p.headElement = p.openElements.current;
          p.insertionMode = InsertionMode.IN_HEAD;
          break;
        }
        default: {
          tokenBeforeHead(p, token2);
        }
      }
    }
    function endTagBeforeHead(p, token2) {
      const tn3 = token2.tagID;
      if (tn3 === html_js_1.TAG_ID.HEAD || tn3 === html_js_1.TAG_ID.BODY || tn3 === html_js_1.TAG_ID.HTML || tn3 === html_js_1.TAG_ID.BR) {
        tokenBeforeHead(p, token2);
      } else {
        p._err(token2, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
      }
    }
    function tokenBeforeHead(p, token2) {
      p._insertFakeElement(html_js_1.TAG_NAMES.HEAD, html_js_1.TAG_ID.HEAD);
      p.headElement = p.openElements.current;
      p.insertionMode = InsertionMode.IN_HEAD;
      p._processToken(token2);
    }
    function startTagInHead(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META: {
          p._appendElement(token2, html_js_1.NS.HTML);
          token2.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.TITLE: {
          p._switchToTextParsing(token2, index_js_1.TokenizerMode.RCDATA);
          break;
        }
        case html_js_1.TAG_ID.NOSCRIPT: {
          if (p.options.scriptingEnabled) {
            p._switchToTextParsing(token2, index_js_1.TokenizerMode.RAWTEXT);
          } else {
            p._insertElement(token2, html_js_1.NS.HTML);
            p.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT;
          }
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.STYLE: {
          p._switchToTextParsing(token2, index_js_1.TokenizerMode.RAWTEXT);
          break;
        }
        case html_js_1.TAG_ID.SCRIPT: {
          p._switchToTextParsing(token2, index_js_1.TokenizerMode.SCRIPT_DATA);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          p._insertTemplate(token2);
          p.activeFormattingElements.insertMarker();
          p.framesetOk = false;
          p.insertionMode = InsertionMode.IN_TEMPLATE;
          p.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);
          break;
        }
        case html_js_1.TAG_ID.HEAD: {
          p._err(token2, error_codes_js_1.ERR.misplacedStartTagForHeadElement);
          break;
        }
        default: {
          tokenInHead(p, token2);
        }
      }
    }
    function endTagInHead(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HEAD: {
          p.openElements.pop();
          p.insertionMode = InsertionMode.AFTER_HEAD;
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.BR:
        case html_js_1.TAG_ID.HTML: {
          tokenInHead(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p, token2);
          break;
        }
        default: {
          p._err(token2, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
        }
      }
    }
    function templateEndTagInHead(p, token2) {
      if (p.openElements.tmplCount > 0) {
        p.openElements.generateImpliedEndTagsThoroughly();
        if (p.openElements.currentTagId !== html_js_1.TAG_ID.TEMPLATE) {
          p._err(token2, error_codes_js_1.ERR.closingOfElementWithOpenChildElements);
        }
        p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TEMPLATE);
        p.activeFormattingElements.clearToLastMarker();
        p.tmplInsertionModeStack.shift();
        p._resetInsertionMode();
      } else {
        p._err(token2, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
      }
    }
    function tokenInHead(p, token2) {
      p.openElements.pop();
      p.insertionMode = InsertionMode.AFTER_HEAD;
      p._processToken(token2);
    }
    function startTagInHeadNoScript(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.HEAD:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.STYLE: {
          startTagInHead(p, token2);
          break;
        }
        case html_js_1.TAG_ID.NOSCRIPT: {
          p._err(token2, error_codes_js_1.ERR.nestedNoscriptInHead);
          break;
        }
        default: {
          tokenInHeadNoScript(p, token2);
        }
      }
    }
    function endTagInHeadNoScript(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.NOSCRIPT: {
          p.openElements.pop();
          p.insertionMode = InsertionMode.IN_HEAD;
          break;
        }
        case html_js_1.TAG_ID.BR: {
          tokenInHeadNoScript(p, token2);
          break;
        }
        default: {
          p._err(token2, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
        }
      }
    }
    function tokenInHeadNoScript(p, token2) {
      const errCode = token2.type === token_js_1.TokenType.EOF ? error_codes_js_1.ERR.openElementsLeftAfterEof : error_codes_js_1.ERR.disallowedContentInNoscriptInHead;
      p._err(token2, errCode);
      p.openElements.pop();
      p.insertionMode = InsertionMode.IN_HEAD;
      p._processToken(token2);
    }
    function startTagAfterHead(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BODY: {
          p._insertElement(token2, html_js_1.NS.HTML);
          p.framesetOk = false;
          p.insertionMode = InsertionMode.IN_BODY;
          break;
        }
        case html_js_1.TAG_ID.FRAMESET: {
          p._insertElement(token2, html_js_1.NS.HTML);
          p.insertionMode = InsertionMode.IN_FRAMESET;
          break;
        }
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.TEMPLATE:
        case html_js_1.TAG_ID.TITLE: {
          p._err(token2, error_codes_js_1.ERR.abandonedHeadElementChild);
          p.openElements.push(p.headElement, html_js_1.TAG_ID.HEAD);
          startTagInHead(p, token2);
          p.openElements.remove(p.headElement);
          break;
        }
        case html_js_1.TAG_ID.HEAD: {
          p._err(token2, error_codes_js_1.ERR.misplacedStartTagForHeadElement);
          break;
        }
        default: {
          tokenAfterHead(p, token2);
        }
      }
    }
    function endTagAfterHead(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.BR: {
          tokenAfterHead(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p, token2);
          break;
        }
        default: {
          p._err(token2, error_codes_js_1.ERR.endTagWithoutMatchingOpenElement);
        }
      }
    }
    function tokenAfterHead(p, token2) {
      p._insertFakeElement(html_js_1.TAG_NAMES.BODY, html_js_1.TAG_ID.BODY);
      p.insertionMode = InsertionMode.IN_BODY;
      modeInBody(p, token2);
    }
    function modeInBody(p, token2) {
      switch (token2.type) {
        case token_js_1.TokenType.CHARACTER: {
          characterInBody(p, token2);
          break;
        }
        case token_js_1.TokenType.WHITESPACE_CHARACTER: {
          whitespaceCharacterInBody(p, token2);
          break;
        }
        case token_js_1.TokenType.COMMENT: {
          appendComment(p, token2);
          break;
        }
        case token_js_1.TokenType.START_TAG: {
          startTagInBody(p, token2);
          break;
        }
        case token_js_1.TokenType.END_TAG: {
          endTagInBody(p, token2);
          break;
        }
        case token_js_1.TokenType.EOF: {
          eofInBody(p, token2);
          break;
        }
        default:
      }
    }
    function whitespaceCharacterInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._insertCharacters(token2);
    }
    function characterInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._insertCharacters(token2);
      p.framesetOk = false;
    }
    function htmlStartTagInBody(p, token2) {
      if (p.openElements.tmplCount === 0) {
        p.treeAdapter.adoptAttributes(p.openElements.items[0], token2.attrs);
      }
    }
    function bodyStartTagInBody(p, token2) {
      const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();
      if (bodyElement && p.openElements.tmplCount === 0) {
        p.framesetOk = false;
        p.treeAdapter.adoptAttributes(bodyElement, token2.attrs);
      }
    }
    function framesetStartTagInBody(p, token2) {
      const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();
      if (p.framesetOk && bodyElement) {
        p.treeAdapter.detachNode(bodyElement);
        p.openElements.popAllUpToHtmlElement();
        p._insertElement(token2, html_js_1.NS.HTML);
        p.insertionMode = InsertionMode.IN_FRAMESET;
      }
    }
    function addressStartTagInBody(p, token2) {
      if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
    }
    function numberedHeaderStartTagInBody(p, token2) {
      if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      if (p.openElements.currentTagId !== void 0 && html_js_1.NUMBERED_HEADERS.has(p.openElements.currentTagId)) {
        p.openElements.pop();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
    }
    function preStartTagInBody(p, token2) {
      if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
      p.skipNextNewLine = true;
      p.framesetOk = false;
    }
    function formStartTagInBody(p, token2) {
      const inTemplate = p.openElements.tmplCount > 0;
      if (!p.formElement || inTemplate) {
        if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
          p._closePElement();
        }
        p._insertElement(token2, html_js_1.NS.HTML);
        if (!inTemplate) {
          p.formElement = p.openElements.current;
        }
      }
    }
    function listItemStartTagInBody(p, token2) {
      p.framesetOk = false;
      const tn3 = token2.tagID;
      for (let i22 = p.openElements.stackTop; i22 >= 0; i22--) {
        const elementId = p.openElements.tagIDs[i22];
        if (tn3 === html_js_1.TAG_ID.LI && elementId === html_js_1.TAG_ID.LI || (tn3 === html_js_1.TAG_ID.DD || tn3 === html_js_1.TAG_ID.DT) && (elementId === html_js_1.TAG_ID.DD || elementId === html_js_1.TAG_ID.DT)) {
          p.openElements.generateImpliedEndTagsWithExclusion(elementId);
          p.openElements.popUntilTagNamePopped(elementId);
          break;
        }
        if (elementId !== html_js_1.TAG_ID.ADDRESS && elementId !== html_js_1.TAG_ID.DIV && elementId !== html_js_1.TAG_ID.P && p._isSpecialElement(p.openElements.items[i22], elementId)) {
          break;
        }
      }
      if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
    }
    function plaintextStartTagInBody(p, token2) {
      if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
      p.tokenizer.state = index_js_1.TokenizerMode.PLAINTEXT;
    }
    function buttonStartTagInBody(p, token2) {
      if (p.openElements.hasInScope(html_js_1.TAG_ID.BUTTON)) {
        p.openElements.generateImpliedEndTags();
        p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.BUTTON);
      }
      p._reconstructActiveFormattingElements();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.framesetOk = false;
    }
    function aStartTagInBody(p, token2) {
      const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(html_js_1.TAG_NAMES.A);
      if (activeElementEntry) {
        callAdoptionAgency(p, token2);
        p.openElements.remove(activeElementEntry.element);
        p.activeFormattingElements.removeEntry(activeElementEntry);
      }
      p._reconstructActiveFormattingElements();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.activeFormattingElements.pushElement(p.openElements.current, token2);
    }
    function bStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.activeFormattingElements.pushElement(p.openElements.current, token2);
    }
    function nobrStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      if (p.openElements.hasInScope(html_js_1.TAG_ID.NOBR)) {
        callAdoptionAgency(p, token2);
        p._reconstructActiveFormattingElements();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
      p.activeFormattingElements.pushElement(p.openElements.current, token2);
    }
    function appletStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.activeFormattingElements.insertMarker();
      p.framesetOk = false;
    }
    function tableStartTagInBody(p, token2) {
      if (p.treeAdapter.getDocumentMode(p.document) !== html_js_1.DOCUMENT_MODE.QUIRKS && p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
      p.framesetOk = false;
      p.insertionMode = InsertionMode.IN_TABLE;
    }
    function areaStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._appendElement(token2, html_js_1.NS.HTML);
      p.framesetOk = false;
      token2.ackSelfClosing = true;
    }
    function isHiddenInput(token2) {
      const inputType = (0, token_js_1.getTokenAttr)(token2, html_js_1.ATTRS.TYPE);
      return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE;
    }
    function inputStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._appendElement(token2, html_js_1.NS.HTML);
      if (!isHiddenInput(token2)) {
        p.framesetOk = false;
      }
      token2.ackSelfClosing = true;
    }
    function paramStartTagInBody(p, token2) {
      p._appendElement(token2, html_js_1.NS.HTML);
      token2.ackSelfClosing = true;
    }
    function hrStartTagInBody(p, token2) {
      if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      p._appendElement(token2, html_js_1.NS.HTML);
      p.framesetOk = false;
      token2.ackSelfClosing = true;
    }
    function imageStartTagInBody(p, token2) {
      token2.tagName = html_js_1.TAG_NAMES.IMG;
      token2.tagID = html_js_1.TAG_ID.IMG;
      areaStartTagInBody(p, token2);
    }
    function textareaStartTagInBody(p, token2) {
      p._insertElement(token2, html_js_1.NS.HTML);
      p.skipNextNewLine = true;
      p.tokenizer.state = index_js_1.TokenizerMode.RCDATA;
      p.originalInsertionMode = p.insertionMode;
      p.framesetOk = false;
      p.insertionMode = InsertionMode.TEXT;
    }
    function xmpStartTagInBody(p, token2) {
      if (p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._closePElement();
      }
      p._reconstructActiveFormattingElements();
      p.framesetOk = false;
      p._switchToTextParsing(token2, index_js_1.TokenizerMode.RAWTEXT);
    }
    function iframeStartTagInBody(p, token2) {
      p.framesetOk = false;
      p._switchToTextParsing(token2, index_js_1.TokenizerMode.RAWTEXT);
    }
    function rawTextStartTagInBody(p, token2) {
      p._switchToTextParsing(token2, index_js_1.TokenizerMode.RAWTEXT);
    }
    function selectStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.framesetOk = false;
      p.insertionMode = p.insertionMode === InsertionMode.IN_TABLE || p.insertionMode === InsertionMode.IN_CAPTION || p.insertionMode === InsertionMode.IN_TABLE_BODY || p.insertionMode === InsertionMode.IN_ROW || p.insertionMode === InsertionMode.IN_CELL ? InsertionMode.IN_SELECT_IN_TABLE : InsertionMode.IN_SELECT;
    }
    function optgroupStartTagInBody(p, token2) {
      if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
        p.openElements.pop();
      }
      p._reconstructActiveFormattingElements();
      p._insertElement(token2, html_js_1.NS.HTML);
    }
    function rbStartTagInBody(p, token2) {
      if (p.openElements.hasInScope(html_js_1.TAG_ID.RUBY)) {
        p.openElements.generateImpliedEndTags();
      }
      p._insertElement(token2, html_js_1.NS.HTML);
    }
    function rtStartTagInBody(p, token2) {
      if (p.openElements.hasInScope(html_js_1.TAG_ID.RUBY)) {
        p.openElements.generateImpliedEndTagsWithExclusion(html_js_1.TAG_ID.RTC);
      }
      p._insertElement(token2, html_js_1.NS.HTML);
    }
    function mathStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      foreignContent.adjustTokenMathMLAttrs(token2);
      foreignContent.adjustTokenXMLAttrs(token2);
      if (token2.selfClosing) {
        p._appendElement(token2, html_js_1.NS.MATHML);
      } else {
        p._insertElement(token2, html_js_1.NS.MATHML);
      }
      token2.ackSelfClosing = true;
    }
    function svgStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      foreignContent.adjustTokenSVGAttrs(token2);
      foreignContent.adjustTokenXMLAttrs(token2);
      if (token2.selfClosing) {
        p._appendElement(token2, html_js_1.NS.SVG);
      } else {
        p._insertElement(token2, html_js_1.NS.SVG);
      }
      token2.ackSelfClosing = true;
    }
    function genericStartTagInBody(p, token2) {
      p._reconstructActiveFormattingElements();
      p._insertElement(token2, html_js_1.NS.HTML);
    }
    function startTagInBody(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.I:
        case html_js_1.TAG_ID.S:
        case html_js_1.TAG_ID.B:
        case html_js_1.TAG_ID.U:
        case html_js_1.TAG_ID.EM:
        case html_js_1.TAG_ID.TT:
        case html_js_1.TAG_ID.BIG:
        case html_js_1.TAG_ID.CODE:
        case html_js_1.TAG_ID.FONT:
        case html_js_1.TAG_ID.SMALL:
        case html_js_1.TAG_ID.STRIKE:
        case html_js_1.TAG_ID.STRONG: {
          bStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.A: {
          aStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.H1:
        case html_js_1.TAG_ID.H2:
        case html_js_1.TAG_ID.H3:
        case html_js_1.TAG_ID.H4:
        case html_js_1.TAG_ID.H5:
        case html_js_1.TAG_ID.H6: {
          numberedHeaderStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.P:
        case html_js_1.TAG_ID.DL:
        case html_js_1.TAG_ID.OL:
        case html_js_1.TAG_ID.UL:
        case html_js_1.TAG_ID.DIV:
        case html_js_1.TAG_ID.DIR:
        case html_js_1.TAG_ID.NAV:
        case html_js_1.TAG_ID.MAIN:
        case html_js_1.TAG_ID.MENU:
        case html_js_1.TAG_ID.ASIDE:
        case html_js_1.TAG_ID.CENTER:
        case html_js_1.TAG_ID.FIGURE:
        case html_js_1.TAG_ID.FOOTER:
        case html_js_1.TAG_ID.HEADER:
        case html_js_1.TAG_ID.HGROUP:
        case html_js_1.TAG_ID.DIALOG:
        case html_js_1.TAG_ID.DETAILS:
        case html_js_1.TAG_ID.ADDRESS:
        case html_js_1.TAG_ID.ARTICLE:
        case html_js_1.TAG_ID.SEARCH:
        case html_js_1.TAG_ID.SECTION:
        case html_js_1.TAG_ID.SUMMARY:
        case html_js_1.TAG_ID.FIELDSET:
        case html_js_1.TAG_ID.BLOCKQUOTE:
        case html_js_1.TAG_ID.FIGCAPTION: {
          addressStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.LI:
        case html_js_1.TAG_ID.DD:
        case html_js_1.TAG_ID.DT: {
          listItemStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BR:
        case html_js_1.TAG_ID.IMG:
        case html_js_1.TAG_ID.WBR:
        case html_js_1.TAG_ID.AREA:
        case html_js_1.TAG_ID.EMBED:
        case html_js_1.TAG_ID.KEYGEN: {
          areaStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.HR: {
          hrStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.RB:
        case html_js_1.TAG_ID.RTC: {
          rbStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.RT:
        case html_js_1.TAG_ID.RP: {
          rtStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.PRE:
        case html_js_1.TAG_ID.LISTING: {
          preStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.XMP: {
          xmpStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.SVG: {
          svgStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.HTML: {
          htmlStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.TITLE:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BODY: {
          bodyStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.FORM: {
          formStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.NOBR: {
          nobrStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.MATH: {
          mathStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          tableStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.INPUT: {
          inputStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.PARAM:
        case html_js_1.TAG_ID.TRACK:
        case html_js_1.TAG_ID.SOURCE: {
          paramStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.IMAGE: {
          imageStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BUTTON: {
          buttonStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.APPLET:
        case html_js_1.TAG_ID.OBJECT:
        case html_js_1.TAG_ID.MARQUEE: {
          appletStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.IFRAME: {
          iframeStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.SELECT: {
          selectStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.OPTION:
        case html_js_1.TAG_ID.OPTGROUP: {
          optgroupStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.NOEMBED:
        case html_js_1.TAG_ID.NOFRAMES: {
          rawTextStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.FRAMESET: {
          framesetStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TEXTAREA: {
          textareaStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.NOSCRIPT: {
          if (p.options.scriptingEnabled) {
            rawTextStartTagInBody(p, token2);
          } else {
            genericStartTagInBody(p, token2);
          }
          break;
        }
        case html_js_1.TAG_ID.PLAINTEXT: {
          plaintextStartTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TR:
        case html_js_1.TAG_ID.HEAD:
        case html_js_1.TAG_ID.FRAME:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COLGROUP: {
          break;
        }
        default: {
          genericStartTagInBody(p, token2);
        }
      }
    }
    function bodyEndTagInBody(p, token2) {
      if (p.openElements.hasInScope(html_js_1.TAG_ID.BODY)) {
        p.insertionMode = InsertionMode.AFTER_BODY;
        if (p.options.sourceCodeLocationInfo) {
          const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();
          if (bodyElement) {
            p._setEndLocation(bodyElement, token2);
          }
        }
      }
    }
    function htmlEndTagInBody(p, token2) {
      if (p.openElements.hasInScope(html_js_1.TAG_ID.BODY)) {
        p.insertionMode = InsertionMode.AFTER_BODY;
        endTagAfterBody(p, token2);
      }
    }
    function addressEndTagInBody(p, token2) {
      const tn3 = token2.tagID;
      if (p.openElements.hasInScope(tn3)) {
        p.openElements.generateImpliedEndTags();
        p.openElements.popUntilTagNamePopped(tn3);
      }
    }
    function formEndTagInBody(p) {
      const inTemplate = p.openElements.tmplCount > 0;
      const { formElement } = p;
      if (!inTemplate) {
        p.formElement = null;
      }
      if ((formElement || inTemplate) && p.openElements.hasInScope(html_js_1.TAG_ID.FORM)) {
        p.openElements.generateImpliedEndTags();
        if (inTemplate) {
          p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.FORM);
        } else if (formElement) {
          p.openElements.remove(formElement);
        }
      }
    }
    function pEndTagInBody(p) {
      if (!p.openElements.hasInButtonScope(html_js_1.TAG_ID.P)) {
        p._insertFakeElement(html_js_1.TAG_NAMES.P, html_js_1.TAG_ID.P);
      }
      p._closePElement();
    }
    function liEndTagInBody(p) {
      if (p.openElements.hasInListItemScope(html_js_1.TAG_ID.LI)) {
        p.openElements.generateImpliedEndTagsWithExclusion(html_js_1.TAG_ID.LI);
        p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.LI);
      }
    }
    function ddEndTagInBody(p, token2) {
      const tn3 = token2.tagID;
      if (p.openElements.hasInScope(tn3)) {
        p.openElements.generateImpliedEndTagsWithExclusion(tn3);
        p.openElements.popUntilTagNamePopped(tn3);
      }
    }
    function numberedHeaderEndTagInBody(p) {
      if (p.openElements.hasNumberedHeaderInScope()) {
        p.openElements.generateImpliedEndTags();
        p.openElements.popUntilNumberedHeaderPopped();
      }
    }
    function appletEndTagInBody(p, token2) {
      const tn3 = token2.tagID;
      if (p.openElements.hasInScope(tn3)) {
        p.openElements.generateImpliedEndTags();
        p.openElements.popUntilTagNamePopped(tn3);
        p.activeFormattingElements.clearToLastMarker();
      }
    }
    function brEndTagInBody(p) {
      p._reconstructActiveFormattingElements();
      p._insertFakeElement(html_js_1.TAG_NAMES.BR, html_js_1.TAG_ID.BR);
      p.openElements.pop();
      p.framesetOk = false;
    }
    function genericEndTagInBody(p, token2) {
      const tn3 = token2.tagName;
      const tid = token2.tagID;
      for (let i22 = p.openElements.stackTop; i22 > 0; i22--) {
        const element = p.openElements.items[i22];
        const elementId = p.openElements.tagIDs[i22];
        if (tid === elementId && (tid !== html_js_1.TAG_ID.UNKNOWN || p.treeAdapter.getTagName(element) === tn3)) {
          p.openElements.generateImpliedEndTagsWithExclusion(tid);
          if (p.openElements.stackTop >= i22)
            p.openElements.shortenToLength(i22);
          break;
        }
        if (p._isSpecialElement(element, elementId)) {
          break;
        }
      }
    }
    function endTagInBody(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.A:
        case html_js_1.TAG_ID.B:
        case html_js_1.TAG_ID.I:
        case html_js_1.TAG_ID.S:
        case html_js_1.TAG_ID.U:
        case html_js_1.TAG_ID.EM:
        case html_js_1.TAG_ID.TT:
        case html_js_1.TAG_ID.BIG:
        case html_js_1.TAG_ID.CODE:
        case html_js_1.TAG_ID.FONT:
        case html_js_1.TAG_ID.NOBR:
        case html_js_1.TAG_ID.SMALL:
        case html_js_1.TAG_ID.STRIKE:
        case html_js_1.TAG_ID.STRONG: {
          callAdoptionAgency(p, token2);
          break;
        }
        case html_js_1.TAG_ID.P: {
          pEndTagInBody(p);
          break;
        }
        case html_js_1.TAG_ID.DL:
        case html_js_1.TAG_ID.UL:
        case html_js_1.TAG_ID.OL:
        case html_js_1.TAG_ID.DIR:
        case html_js_1.TAG_ID.DIV:
        case html_js_1.TAG_ID.NAV:
        case html_js_1.TAG_ID.PRE:
        case html_js_1.TAG_ID.MAIN:
        case html_js_1.TAG_ID.MENU:
        case html_js_1.TAG_ID.ASIDE:
        case html_js_1.TAG_ID.BUTTON:
        case html_js_1.TAG_ID.CENTER:
        case html_js_1.TAG_ID.FIGURE:
        case html_js_1.TAG_ID.FOOTER:
        case html_js_1.TAG_ID.HEADER:
        case html_js_1.TAG_ID.HGROUP:
        case html_js_1.TAG_ID.DIALOG:
        case html_js_1.TAG_ID.ADDRESS:
        case html_js_1.TAG_ID.ARTICLE:
        case html_js_1.TAG_ID.DETAILS:
        case html_js_1.TAG_ID.SEARCH:
        case html_js_1.TAG_ID.SECTION:
        case html_js_1.TAG_ID.SUMMARY:
        case html_js_1.TAG_ID.LISTING:
        case html_js_1.TAG_ID.FIELDSET:
        case html_js_1.TAG_ID.BLOCKQUOTE:
        case html_js_1.TAG_ID.FIGCAPTION: {
          addressEndTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.LI: {
          liEndTagInBody(p);
          break;
        }
        case html_js_1.TAG_ID.DD:
        case html_js_1.TAG_ID.DT: {
          ddEndTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.H1:
        case html_js_1.TAG_ID.H2:
        case html_js_1.TAG_ID.H3:
        case html_js_1.TAG_ID.H4:
        case html_js_1.TAG_ID.H5:
        case html_js_1.TAG_ID.H6: {
          numberedHeaderEndTagInBody(p);
          break;
        }
        case html_js_1.TAG_ID.BR: {
          brEndTagInBody(p);
          break;
        }
        case html_js_1.TAG_ID.BODY: {
          bodyEndTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.HTML: {
          htmlEndTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.FORM: {
          formEndTagInBody(p);
          break;
        }
        case html_js_1.TAG_ID.APPLET:
        case html_js_1.TAG_ID.OBJECT:
        case html_js_1.TAG_ID.MARQUEE: {
          appletEndTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p, token2);
          break;
        }
        default: {
          genericEndTagInBody(p, token2);
        }
      }
    }
    function eofInBody(p, token2) {
      if (p.tmplInsertionModeStack.length > 0) {
        eofInTemplate(p, token2);
      } else {
        stopParsing(p, token2);
      }
    }
    function endTagInText(p, token2) {
      var _a22;
      if (token2.tagID === html_js_1.TAG_ID.SCRIPT) {
        (_a22 = p.scriptHandler) === null || _a22 === void 0 ? void 0 : _a22.call(p, p.openElements.current);
      }
      p.openElements.pop();
      p.insertionMode = p.originalInsertionMode;
    }
    function eofInText(p, token2) {
      p._err(token2, error_codes_js_1.ERR.eofInElementThatCanContainOnlyText);
      p.openElements.pop();
      p.insertionMode = p.originalInsertionMode;
      p.onEof(token2);
    }
    function characterInTable(p, token2) {
      if (p.openElements.currentTagId !== void 0 && TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {
        p.pendingCharacterTokens.length = 0;
        p.hasNonWhitespacePendingCharacterToken = false;
        p.originalInsertionMode = p.insertionMode;
        p.insertionMode = InsertionMode.IN_TABLE_TEXT;
        switch (token2.type) {
          case token_js_1.TokenType.CHARACTER: {
            characterInTableText(p, token2);
            break;
          }
          case token_js_1.TokenType.WHITESPACE_CHARACTER: {
            whitespaceCharacterInTableText(p, token2);
            break;
          }
        }
      } else {
        tokenInTable(p, token2);
      }
    }
    function captionStartTagInTable(p, token2) {
      p.openElements.clearBackToTableContext();
      p.activeFormattingElements.insertMarker();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.insertionMode = InsertionMode.IN_CAPTION;
    }
    function colgroupStartTagInTable(p, token2) {
      p.openElements.clearBackToTableContext();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.insertionMode = InsertionMode.IN_COLUMN_GROUP;
    }
    function colStartTagInTable(p, token2) {
      p.openElements.clearBackToTableContext();
      p._insertFakeElement(html_js_1.TAG_NAMES.COLGROUP, html_js_1.TAG_ID.COLGROUP);
      p.insertionMode = InsertionMode.IN_COLUMN_GROUP;
      startTagInColumnGroup(p, token2);
    }
    function tbodyStartTagInTable(p, token2) {
      p.openElements.clearBackToTableContext();
      p._insertElement(token2, html_js_1.NS.HTML);
      p.insertionMode = InsertionMode.IN_TABLE_BODY;
    }
    function tdStartTagInTable(p, token2) {
      p.openElements.clearBackToTableContext();
      p._insertFakeElement(html_js_1.TAG_NAMES.TBODY, html_js_1.TAG_ID.TBODY);
      p.insertionMode = InsertionMode.IN_TABLE_BODY;
      startTagInTableBody(p, token2);
    }
    function tableStartTagInTable(p, token2) {
      if (p.openElements.hasInTableScope(html_js_1.TAG_ID.TABLE)) {
        p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TABLE);
        p._resetInsertionMode();
        p._processStartTag(token2);
      }
    }
    function inputStartTagInTable(p, token2) {
      if (isHiddenInput(token2)) {
        p._appendElement(token2, html_js_1.NS.HTML);
      } else {
        tokenInTable(p, token2);
      }
      token2.ackSelfClosing = true;
    }
    function formStartTagInTable(p, token2) {
      if (!p.formElement && p.openElements.tmplCount === 0) {
        p._insertElement(token2, html_js_1.NS.HTML);
        p.formElement = p.openElements.current;
        p.openElements.pop();
      }
    }
    function startTagInTable(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TR: {
          tdStartTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p, token2);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          colStartTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.FORM: {
          formStartTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          tableStartTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          tbodyStartTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.INPUT: {
          inputStartTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.CAPTION: {
          captionStartTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.COLGROUP: {
          colgroupStartTagInTable(p, token2);
          break;
        }
        default: {
          tokenInTable(p, token2);
        }
      }
    }
    function endTagInTable(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.TABLE: {
          if (p.openElements.hasInTableScope(html_js_1.TAG_ID.TABLE)) {
            p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TABLE);
            p._resetInsertionMode();
          }
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p, token2);
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          break;
        }
        default: {
          tokenInTable(p, token2);
        }
      }
    }
    function tokenInTable(p, token2) {
      const savedFosterParentingState = p.fosterParentingEnabled;
      p.fosterParentingEnabled = true;
      modeInBody(p, token2);
      p.fosterParentingEnabled = savedFosterParentingState;
    }
    function whitespaceCharacterInTableText(p, token2) {
      p.pendingCharacterTokens.push(token2);
    }
    function characterInTableText(p, token2) {
      p.pendingCharacterTokens.push(token2);
      p.hasNonWhitespacePendingCharacterToken = true;
    }
    function tokenInTableText(p, token2) {
      let i22 = 0;
      if (p.hasNonWhitespacePendingCharacterToken) {
        for (; i22 < p.pendingCharacterTokens.length; i22++) {
          tokenInTable(p, p.pendingCharacterTokens[i22]);
        }
      } else {
        for (; i22 < p.pendingCharacterTokens.length; i22++) {
          p._insertCharacters(p.pendingCharacterTokens[i22]);
        }
      }
      p.insertionMode = p.originalInsertionMode;
      p._processToken(token2);
    }
    var TABLE_VOID_ELEMENTS = /* @__PURE__ */ new Set([html_js_1.TAG_ID.CAPTION, html_js_1.TAG_ID.COL, html_js_1.TAG_ID.COLGROUP, html_js_1.TAG_ID.TBODY, html_js_1.TAG_ID.TD, html_js_1.TAG_ID.TFOOT, html_js_1.TAG_ID.TH, html_js_1.TAG_ID.THEAD, html_js_1.TAG_ID.TR]);
    function startTagInCaption(p, token2) {
      const tn3 = token2.tagID;
      if (TABLE_VOID_ELEMENTS.has(tn3)) {
        if (p.openElements.hasInTableScope(html_js_1.TAG_ID.CAPTION)) {
          p.openElements.generateImpliedEndTags();
          p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.CAPTION);
          p.activeFormattingElements.clearToLastMarker();
          p.insertionMode = InsertionMode.IN_TABLE;
          startTagInTable(p, token2);
        }
      } else {
        startTagInBody(p, token2);
      }
    }
    function endTagInCaption(p, token2) {
      const tn3 = token2.tagID;
      switch (tn3) {
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.TABLE: {
          if (p.openElements.hasInTableScope(html_js_1.TAG_ID.CAPTION)) {
            p.openElements.generateImpliedEndTags();
            p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.CAPTION);
            p.activeFormattingElements.clearToLastMarker();
            p.insertionMode = InsertionMode.IN_TABLE;
            if (tn3 === html_js_1.TAG_ID.TABLE) {
              endTagInTable(p, token2);
            }
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          break;
        }
        default: {
          endTagInBody(p, token2);
        }
      }
    }
    function startTagInColumnGroup(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          p._appendElement(token2, html_js_1.NS.HTML);
          token2.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p, token2);
          break;
        }
        default: {
          tokenInColumnGroup(p, token2);
        }
      }
    }
    function endTagInColumnGroup(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.COLGROUP: {
          if (p.openElements.currentTagId === html_js_1.TAG_ID.COLGROUP) {
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE;
          }
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p, token2);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          break;
        }
        default: {
          tokenInColumnGroup(p, token2);
        }
      }
    }
    function tokenInColumnGroup(p, token2) {
      if (p.openElements.currentTagId === html_js_1.TAG_ID.COLGROUP) {
        p.openElements.pop();
        p.insertionMode = InsertionMode.IN_TABLE;
        p._processToken(token2);
      }
    }
    function startTagInTableBody(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.TR: {
          p.openElements.clearBackToTableBodyContext();
          p._insertElement(token2, html_js_1.NS.HTML);
          p.insertionMode = InsertionMode.IN_ROW;
          break;
        }
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TD: {
          p.openElements.clearBackToTableBodyContext();
          p._insertFakeElement(html_js_1.TAG_NAMES.TR, html_js_1.TAG_ID.TR);
          p.insertionMode = InsertionMode.IN_ROW;
          startTagInRow(p, token2);
          break;
        }
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          if (p.openElements.hasTableBodyContextInTableScope()) {
            p.openElements.clearBackToTableBodyContext();
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE;
            startTagInTable(p, token2);
          }
          break;
        }
        default: {
          startTagInTable(p, token2);
        }
      }
    }
    function endTagInTableBody(p, token2) {
      const tn3 = token2.tagID;
      switch (token2.tagID) {
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          if (p.openElements.hasInTableScope(tn3)) {
            p.openElements.clearBackToTableBodyContext();
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE;
          }
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          if (p.openElements.hasTableBodyContextInTableScope()) {
            p.openElements.clearBackToTableBodyContext();
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE;
            endTagInTable(p, token2);
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TR: {
          break;
        }
        default: {
          endTagInTable(p, token2);
        }
      }
    }
    function startTagInRow(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.TH:
        case html_js_1.TAG_ID.TD: {
          p.openElements.clearBackToTableRowContext();
          p._insertElement(token2, html_js_1.NS.HTML);
          p.insertionMode = InsertionMode.IN_CELL;
          p.activeFormattingElements.insertMarker();
          break;
        }
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          if (p.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p.openElements.clearBackToTableRowContext();
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE_BODY;
            startTagInTableBody(p, token2);
          }
          break;
        }
        default: {
          startTagInTable(p, token2);
        }
      }
    }
    function endTagInRow(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.TR: {
          if (p.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p.openElements.clearBackToTableRowContext();
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE_BODY;
          }
          break;
        }
        case html_js_1.TAG_ID.TABLE: {
          if (p.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p.openElements.clearBackToTableRowContext();
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE_BODY;
            endTagInTableBody(p, token2);
          }
          break;
        }
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          if (p.openElements.hasInTableScope(token2.tagID) || p.openElements.hasInTableScope(html_js_1.TAG_ID.TR)) {
            p.openElements.clearBackToTableRowContext();
            p.openElements.pop();
            p.insertionMode = InsertionMode.IN_TABLE_BODY;
            endTagInTableBody(p, token2);
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML:
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH: {
          break;
        }
        default: {
          endTagInTable(p, token2);
        }
      }
    }
    function startTagInCell(p, token2) {
      const tn3 = token2.tagID;
      if (TABLE_VOID_ELEMENTS.has(tn3)) {
        if (p.openElements.hasInTableScope(html_js_1.TAG_ID.TD) || p.openElements.hasInTableScope(html_js_1.TAG_ID.TH)) {
          p._closeTableCell();
          startTagInRow(p, token2);
        }
      } else {
        startTagInBody(p, token2);
      }
    }
    function endTagInCell(p, token2) {
      const tn3 = token2.tagID;
      switch (tn3) {
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH: {
          if (p.openElements.hasInTableScope(tn3)) {
            p.openElements.generateImpliedEndTags();
            p.openElements.popUntilTagNamePopped(tn3);
            p.activeFormattingElements.clearToLastMarker();
            p.insertionMode = InsertionMode.IN_ROW;
          }
          break;
        }
        case html_js_1.TAG_ID.TABLE:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD:
        case html_js_1.TAG_ID.TR: {
          if (p.openElements.hasInTableScope(tn3)) {
            p._closeTableCell();
            endTagInRow(p, token2);
          }
          break;
        }
        case html_js_1.TAG_ID.BODY:
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COL:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.HTML: {
          break;
        }
        default: {
          endTagInBody(p, token2);
        }
      }
    }
    function startTagInSelect(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.OPTION: {
          if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p.openElements.pop();
          }
          p._insertElement(token2, html_js_1.NS.HTML);
          break;
        }
        case html_js_1.TAG_ID.OPTGROUP: {
          if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p.openElements.pop();
          }
          if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTGROUP) {
            p.openElements.pop();
          }
          p._insertElement(token2, html_js_1.NS.HTML);
          break;
        }
        case html_js_1.TAG_ID.HR: {
          if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p.openElements.pop();
          }
          if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTGROUP) {
            p.openElements.pop();
          }
          p._appendElement(token2, html_js_1.NS.HTML);
          token2.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.INPUT:
        case html_js_1.TAG_ID.KEYGEN:
        case html_js_1.TAG_ID.TEXTAREA:
        case html_js_1.TAG_ID.SELECT: {
          if (p.openElements.hasInSelectScope(html_js_1.TAG_ID.SELECT)) {
            p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
            p._resetInsertionMode();
            if (token2.tagID !== html_js_1.TAG_ID.SELECT) {
              p._processStartTag(token2);
            }
          }
          break;
        }
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.TEMPLATE: {
          startTagInHead(p, token2);
          break;
        }
        default:
      }
    }
    function endTagInSelect(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.OPTGROUP: {
          if (p.openElements.stackTop > 0 && p.openElements.currentTagId === html_js_1.TAG_ID.OPTION && p.openElements.tagIDs[p.openElements.stackTop - 1] === html_js_1.TAG_ID.OPTGROUP) {
            p.openElements.pop();
          }
          if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTGROUP) {
            p.openElements.pop();
          }
          break;
        }
        case html_js_1.TAG_ID.OPTION: {
          if (p.openElements.currentTagId === html_js_1.TAG_ID.OPTION) {
            p.openElements.pop();
          }
          break;
        }
        case html_js_1.TAG_ID.SELECT: {
          if (p.openElements.hasInSelectScope(html_js_1.TAG_ID.SELECT)) {
            p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
            p._resetInsertionMode();
          }
          break;
        }
        case html_js_1.TAG_ID.TEMPLATE: {
          templateEndTagInHead(p, token2);
          break;
        }
        default:
      }
    }
    function startTagInSelectInTable(p, token2) {
      const tn3 = token2.tagID;
      if (tn3 === html_js_1.TAG_ID.CAPTION || tn3 === html_js_1.TAG_ID.TABLE || tn3 === html_js_1.TAG_ID.TBODY || tn3 === html_js_1.TAG_ID.TFOOT || tn3 === html_js_1.TAG_ID.THEAD || tn3 === html_js_1.TAG_ID.TR || tn3 === html_js_1.TAG_ID.TD || tn3 === html_js_1.TAG_ID.TH) {
        p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
        p._resetInsertionMode();
        p._processStartTag(token2);
      } else {
        startTagInSelect(p, token2);
      }
    }
    function endTagInSelectInTable(p, token2) {
      const tn3 = token2.tagID;
      if (tn3 === html_js_1.TAG_ID.CAPTION || tn3 === html_js_1.TAG_ID.TABLE || tn3 === html_js_1.TAG_ID.TBODY || tn3 === html_js_1.TAG_ID.TFOOT || tn3 === html_js_1.TAG_ID.THEAD || tn3 === html_js_1.TAG_ID.TR || tn3 === html_js_1.TAG_ID.TD || tn3 === html_js_1.TAG_ID.TH) {
        if (p.openElements.hasInTableScope(tn3)) {
          p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.SELECT);
          p._resetInsertionMode();
          p.onEndTag(token2);
        }
      } else {
        endTagInSelect(p, token2);
      }
    }
    function startTagInTemplate(p, token2) {
      switch (token2.tagID) {
        // First, handle tags that can start without a mode change
        case html_js_1.TAG_ID.BASE:
        case html_js_1.TAG_ID.BASEFONT:
        case html_js_1.TAG_ID.BGSOUND:
        case html_js_1.TAG_ID.LINK:
        case html_js_1.TAG_ID.META:
        case html_js_1.TAG_ID.NOFRAMES:
        case html_js_1.TAG_ID.SCRIPT:
        case html_js_1.TAG_ID.STYLE:
        case html_js_1.TAG_ID.TEMPLATE:
        case html_js_1.TAG_ID.TITLE: {
          startTagInHead(p, token2);
          break;
        }
        // Re-process the token in the appropriate mode
        case html_js_1.TAG_ID.CAPTION:
        case html_js_1.TAG_ID.COLGROUP:
        case html_js_1.TAG_ID.TBODY:
        case html_js_1.TAG_ID.TFOOT:
        case html_js_1.TAG_ID.THEAD: {
          p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;
          p.insertionMode = InsertionMode.IN_TABLE;
          startTagInTable(p, token2);
          break;
        }
        case html_js_1.TAG_ID.COL: {
          p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;
          p.insertionMode = InsertionMode.IN_COLUMN_GROUP;
          startTagInColumnGroup(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TR: {
          p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;
          p.insertionMode = InsertionMode.IN_TABLE_BODY;
          startTagInTableBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.TD:
        case html_js_1.TAG_ID.TH: {
          p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;
          p.insertionMode = InsertionMode.IN_ROW;
          startTagInRow(p, token2);
          break;
        }
        default: {
          p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;
          p.insertionMode = InsertionMode.IN_BODY;
          startTagInBody(p, token2);
        }
      }
    }
    function endTagInTemplate(p, token2) {
      if (token2.tagID === html_js_1.TAG_ID.TEMPLATE) {
        templateEndTagInHead(p, token2);
      }
    }
    function eofInTemplate(p, token2) {
      if (p.openElements.tmplCount > 0) {
        p.openElements.popUntilTagNamePopped(html_js_1.TAG_ID.TEMPLATE);
        p.activeFormattingElements.clearToLastMarker();
        p.tmplInsertionModeStack.shift();
        p._resetInsertionMode();
        p.onEof(token2);
      } else {
        stopParsing(p, token2);
      }
    }
    function startTagAfterBody(p, token2) {
      if (token2.tagID === html_js_1.TAG_ID.HTML) {
        startTagInBody(p, token2);
      } else {
        tokenAfterBody(p, token2);
      }
    }
    function endTagAfterBody(p, token2) {
      var _a22;
      if (token2.tagID === html_js_1.TAG_ID.HTML) {
        if (!p.fragmentContext) {
          p.insertionMode = InsertionMode.AFTER_AFTER_BODY;
        }
        if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === html_js_1.TAG_ID.HTML) {
          p._setEndLocation(p.openElements.items[0], token2);
          const bodyElement = p.openElements.items[1];
          if (bodyElement && !((_a22 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a22 === void 0 ? void 0 : _a22.endTag)) {
            p._setEndLocation(bodyElement, token2);
          }
        }
      } else {
        tokenAfterBody(p, token2);
      }
    }
    function tokenAfterBody(p, token2) {
      p.insertionMode = InsertionMode.IN_BODY;
      modeInBody(p, token2);
    }
    function startTagInFrameset(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.FRAMESET: {
          p._insertElement(token2, html_js_1.NS.HTML);
          break;
        }
        case html_js_1.TAG_ID.FRAME: {
          p._appendElement(token2, html_js_1.NS.HTML);
          token2.ackSelfClosing = true;
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES: {
          startTagInHead(p, token2);
          break;
        }
        default:
      }
    }
    function endTagInFrameset(p, token2) {
      if (token2.tagID === html_js_1.TAG_ID.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {
        p.openElements.pop();
        if (!p.fragmentContext && p.openElements.currentTagId !== html_js_1.TAG_ID.FRAMESET) {
          p.insertionMode = InsertionMode.AFTER_FRAMESET;
        }
      }
    }
    function startTagAfterFrameset(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES: {
          startTagInHead(p, token2);
          break;
        }
        default:
      }
    }
    function endTagAfterFrameset(p, token2) {
      if (token2.tagID === html_js_1.TAG_ID.HTML) {
        p.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET;
      }
    }
    function startTagAfterAfterBody(p, token2) {
      if (token2.tagID === html_js_1.TAG_ID.HTML) {
        startTagInBody(p, token2);
      } else {
        tokenAfterAfterBody(p, token2);
      }
    }
    function tokenAfterAfterBody(p, token2) {
      p.insertionMode = InsertionMode.IN_BODY;
      modeInBody(p, token2);
    }
    function startTagAfterAfterFrameset(p, token2) {
      switch (token2.tagID) {
        case html_js_1.TAG_ID.HTML: {
          startTagInBody(p, token2);
          break;
        }
        case html_js_1.TAG_ID.NOFRAMES: {
          startTagInHead(p, token2);
          break;
        }
        default:
      }
    }
    function nullCharacterInForeignContent(p, token2) {
      token2.chars = unicode2.REPLACEMENT_CHARACTER;
      p._insertCharacters(token2);
    }
    function characterInForeignContent(p, token2) {
      p._insertCharacters(token2);
      p.framesetOk = false;
    }
    function popUntilHtmlOrIntegrationPoint(p) {
      while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== html_js_1.NS.HTML && p.openElements.currentTagId !== void 0 && !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) {
        p.openElements.pop();
      }
    }
    function startTagInForeignContent(p, token2) {
      if (foreignContent.causesExit(token2)) {
        popUntilHtmlOrIntegrationPoint(p);
        p._startTagOutsideForeignContent(token2);
      } else {
        const current = p._getAdjustedCurrentElement();
        const currentNs = p.treeAdapter.getNamespaceURI(current);
        if (currentNs === html_js_1.NS.MATHML) {
          foreignContent.adjustTokenMathMLAttrs(token2);
        } else if (currentNs === html_js_1.NS.SVG) {
          foreignContent.adjustTokenSVGTagName(token2);
          foreignContent.adjustTokenSVGAttrs(token2);
        }
        foreignContent.adjustTokenXMLAttrs(token2);
        if (token2.selfClosing) {
          p._appendElement(token2, currentNs);
        } else {
          p._insertElement(token2, currentNs);
        }
        token2.ackSelfClosing = true;
      }
    }
    function endTagInForeignContent(p, token2) {
      if (token2.tagID === html_js_1.TAG_ID.P || token2.tagID === html_js_1.TAG_ID.BR) {
        popUntilHtmlOrIntegrationPoint(p);
        p._endTagOutsideForeignContent(token2);
        return;
      }
      for (let i22 = p.openElements.stackTop; i22 > 0; i22--) {
        const element = p.openElements.items[i22];
        if (p.treeAdapter.getNamespaceURI(element) === html_js_1.NS.HTML) {
          p._endTagOutsideForeignContent(token2);
          break;
        }
        const tagName = p.treeAdapter.getTagName(element);
        if (tagName.toLowerCase() === token2.tagName) {
          token2.tagName = tagName;
          p.openElements.shortenToLength(i22);
          break;
        }
      }
    }
  }
});
var require_escape2 = __commonJS2({
  "../../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/commonjs/escape.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.getCodePoint = exports2.xmlReplacer = void 0;
    exports2.encodeXML = encodeXML2;
    exports2.xmlReplacer = /["$&'<>\u0080-\uFFFF]/g;
    var xmlCodeMap2 = /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [39, "&apos;"],
      [60, "&lt;"],
      [62, "&gt;"]
    ]);
    exports2.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
    String.prototype.codePointAt == null ? (c3, index) => (c3.charCodeAt(index) & 64512) === 55296 ? (c3.charCodeAt(index) - 55296) * 1024 + c3.charCodeAt(index + 1) - 56320 + 65536 : c3.charCodeAt(index) : (
      // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
      ((input, index) => input.codePointAt(index))
    );
    function encodeXML2(input) {
      let returnValue = "";
      let lastIndex = 0;
      let match;
      while ((match = exports2.xmlReplacer.exec(input)) !== null) {
        const { index } = match;
        const char = input.charCodeAt(index);
        const next = xmlCodeMap2.get(char);
        if (next === void 0) {
          returnValue += `${input.substring(lastIndex, index)}&#x${(0, exports2.getCodePoint)(input, index).toString(16)};`;
          lastIndex = exports2.xmlReplacer.lastIndex += Number((char & 64512) === 55296);
        } else {
          returnValue += input.substring(lastIndex, index) + next;
          lastIndex = index + 1;
        }
      }
      return returnValue + input.substr(lastIndex);
    }
    exports2.escape = encodeXML2;
    function getEscaper2(regex, map2) {
      return function escape22(data) {
        let match;
        let lastIndex = 0;
        let result = "";
        while (match = regex.exec(data)) {
          if (lastIndex !== match.index) {
            result += data.substring(lastIndex, match.index);
          }
          result += map2.get(match[0].charCodeAt(0));
          lastIndex = match.index + 1;
        }
        return result + data.substring(lastIndex);
      };
    }
    exports2.escapeUTF8 = getEscaper2(/["&'<>]/g, xmlCodeMap2);
    exports2.escapeAttribute = /* @__PURE__ */ getEscaper2(/["&\u00A0]/g, /* @__PURE__ */ new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [160, "&nbsp;"]
    ]));
    exports2.escapeText = getEscaper2(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
      [38, "&amp;"],
      [60, "&lt;"],
      [62, "&gt;"],
      [160, "&nbsp;"]
    ]));
  }
});
var require_serializer = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/serializer/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.serialize = serialize2;
    exports2.serializeOuter = serializeOuter;
    var html_js_1 = require_html();
    var escape_1 = require_escape2();
    var default_js_1 = require_default();
    var VOID_ELEMENTS = /* @__PURE__ */ new Set([
      html_js_1.TAG_NAMES.AREA,
      html_js_1.TAG_NAMES.BASE,
      html_js_1.TAG_NAMES.BASEFONT,
      html_js_1.TAG_NAMES.BGSOUND,
      html_js_1.TAG_NAMES.BR,
      html_js_1.TAG_NAMES.COL,
      html_js_1.TAG_NAMES.EMBED,
      html_js_1.TAG_NAMES.FRAME,
      html_js_1.TAG_NAMES.HR,
      html_js_1.TAG_NAMES.IMG,
      html_js_1.TAG_NAMES.INPUT,
      html_js_1.TAG_NAMES.KEYGEN,
      html_js_1.TAG_NAMES.LINK,
      html_js_1.TAG_NAMES.META,
      html_js_1.TAG_NAMES.PARAM,
      html_js_1.TAG_NAMES.SOURCE,
      html_js_1.TAG_NAMES.TRACK,
      html_js_1.TAG_NAMES.WBR
    ]);
    function isVoidElement(node, options) {
      return options.treeAdapter.isElementNode(node) && options.treeAdapter.getNamespaceURI(node) === html_js_1.NS.HTML && VOID_ELEMENTS.has(options.treeAdapter.getTagName(node));
    }
    var defaultOpts2 = { treeAdapter: default_js_1.defaultTreeAdapter, scriptingEnabled: true };
    function serialize2(node, options) {
      const opts = Object.assign(Object.assign({}, defaultOpts2), options);
      if (isVoidElement(node, opts)) {
        return "";
      }
      return serializeChildNodes(node, opts);
    }
    function serializeOuter(node, options) {
      const opts = Object.assign(Object.assign({}, defaultOpts2), options);
      return serializeNode(node, opts);
    }
    function serializeChildNodes(parentNode, options) {
      let html = "";
      const container2 = options.treeAdapter.isElementNode(parentNode) && options.treeAdapter.getTagName(parentNode) === html_js_1.TAG_NAMES.TEMPLATE && options.treeAdapter.getNamespaceURI(parentNode) === html_js_1.NS.HTML ? options.treeAdapter.getTemplateContent(parentNode) : parentNode;
      const childNodes = options.treeAdapter.getChildNodes(container2);
      if (childNodes) {
        for (const currentNode of childNodes) {
          html += serializeNode(currentNode, options);
        }
      }
      return html;
    }
    function serializeNode(node, options) {
      if (options.treeAdapter.isElementNode(node)) {
        return serializeElement(node, options);
      }
      if (options.treeAdapter.isTextNode(node)) {
        return serializeTextNode(node, options);
      }
      if (options.treeAdapter.isCommentNode(node)) {
        return serializeCommentNode(node, options);
      }
      if (options.treeAdapter.isDocumentTypeNode(node)) {
        return serializeDocumentTypeNode(node, options);
      }
      return "";
    }
    function serializeElement(node, options) {
      const tn3 = options.treeAdapter.getTagName(node);
      return `<${tn3}${serializeAttributes(node, options)}>${isVoidElement(node, options) ? "" : `${serializeChildNodes(node, options)}</${tn3}>`}`;
    }
    function serializeAttributes(node, { treeAdapter }) {
      let html = "";
      for (const attr of treeAdapter.getAttrList(node)) {
        html += " ";
        if (attr.namespace) {
          switch (attr.namespace) {
            case html_js_1.NS.XML: {
              html += `xml:${attr.name}`;
              break;
            }
            case html_js_1.NS.XMLNS: {
              if (attr.name !== "xmlns") {
                html += "xmlns:";
              }
              html += attr.name;
              break;
            }
            case html_js_1.NS.XLINK: {
              html += `xlink:${attr.name}`;
              break;
            }
            default: {
              html += `${attr.prefix}:${attr.name}`;
            }
          }
        } else {
          html += attr.name;
        }
        html += `="${(0, escape_1.escapeAttribute)(attr.value)}"`;
      }
      return html;
    }
    function serializeTextNode(node, options) {
      const { treeAdapter } = options;
      const content2 = treeAdapter.getTextNodeContent(node);
      const parent = treeAdapter.getParentNode(node);
      const parentTn = parent && treeAdapter.isElementNode(parent) && treeAdapter.getTagName(parent);
      return parentTn && treeAdapter.getNamespaceURI(parent) === html_js_1.NS.HTML && (0, html_js_1.hasUnescapedText)(parentTn, options.scriptingEnabled) ? content2 : (0, escape_1.escapeText)(content2);
    }
    function serializeCommentNode(node, { treeAdapter }) {
      return `<!--${treeAdapter.getCommentNodeContent(node)}-->`;
    }
    function serializeDocumentTypeNode(node, { treeAdapter }) {
      return `<!DOCTYPE ${treeAdapter.getDocumentTypeNodeName(node)}>`;
    }
  }
});
var require_cjs7 = __commonJS2({
  "../../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/cjs/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.TokenizerMode = exports2.Tokenizer = exports2.Token = exports2.html = exports2.foreignContent = exports2.ErrorCodes = exports2.serializeOuter = exports2.serialize = exports2.Parser = exports2.defaultTreeAdapter = void 0;
    exports2.parse = parse;
    exports2.parseFragment = parseFragment;
    var index_js_1 = require_parser();
    var default_js_1 = require_default();
    Object.defineProperty(exports2, "defaultTreeAdapter", { enumerable: true, get: function() {
      return default_js_1.defaultTreeAdapter;
    } });
    var index_js_2 = require_parser();
    Object.defineProperty(exports2, "Parser", { enumerable: true, get: function() {
      return index_js_2.Parser;
    } });
    var index_js_3 = require_serializer();
    Object.defineProperty(exports2, "serialize", { enumerable: true, get: function() {
      return index_js_3.serialize;
    } });
    Object.defineProperty(exports2, "serializeOuter", { enumerable: true, get: function() {
      return index_js_3.serializeOuter;
    } });
    var error_codes_js_1 = require_error_codes();
    Object.defineProperty(exports2, "ErrorCodes", { enumerable: true, get: function() {
      return error_codes_js_1.ERR;
    } });
    exports2.foreignContent = require_foreign_content();
    exports2.html = require_html();
    exports2.Token = require_token();
    var index_js_4 = require_tokenizer();
    Object.defineProperty(exports2, "Tokenizer", { enumerable: true, get: function() {
      return index_js_4.Tokenizer;
    } });
    Object.defineProperty(exports2, "TokenizerMode", { enumerable: true, get: function() {
      return index_js_4.TokenizerMode;
    } });
    function parse(html, options) {
      return index_js_1.Parser.parse(html, options);
    }
    function parseFragment(fragmentContext, html, options) {
      if (typeof fragmentContext === "string") {
        options = html;
        html = fragmentContext;
        fragmentContext = null;
      }
      const parser = index_js_1.Parser.getFragmentParser(fragmentContext, options);
      parser.tokenizer.write(html, true);
      return parser.getFragment();
    }
  }
});
var require_cjs8 = __commonJS2({
  "../../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/cjs/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.adapter = void 0;
    exports2.serializeDoctypeContent = serializeDoctypeContent;
    var parse5_1 = require_cjs7();
    var domhandler_1 = require_lib4();
    function enquoteDoctypeId(id) {
      const quote = id.includes('"') ? "'" : '"';
      return quote + id + quote;
    }
    function serializeDoctypeContent(name2, publicId, systemId) {
      let str = "!DOCTYPE ";
      if (name2) {
        str += name2;
      }
      if (publicId) {
        str += ` PUBLIC ${enquoteDoctypeId(publicId)}`;
      } else if (systemId) {
        str += " SYSTEM";
      }
      if (systemId) {
        str += ` ${enquoteDoctypeId(systemId)}`;
      }
      return str;
    }
    exports2.adapter = {
      // Re-exports from domhandler
      isCommentNode: domhandler_1.isComment,
      isElementNode: domhandler_1.isTag,
      isTextNode: domhandler_1.isText,
      //Node construction
      createDocument() {
        const node = new domhandler_1.Document([]);
        node["x-mode"] = parse5_1.html.DOCUMENT_MODE.NO_QUIRKS;
        return node;
      },
      createDocumentFragment() {
        return new domhandler_1.Document([]);
      },
      createElement(tagName, namespaceURI, attrs) {
        const attribs = /* @__PURE__ */ Object.create(null);
        const attribsNamespace = /* @__PURE__ */ Object.create(null);
        const attribsPrefix = /* @__PURE__ */ Object.create(null);
        for (let i22 = 0; i22 < attrs.length; i22++) {
          const attrName = attrs[i22].name;
          attribs[attrName] = attrs[i22].value;
          attribsNamespace[attrName] = attrs[i22].namespace;
          attribsPrefix[attrName] = attrs[i22].prefix;
        }
        const node = new domhandler_1.Element(tagName, attribs, []);
        node.namespace = namespaceURI;
        node["x-attribsNamespace"] = attribsNamespace;
        node["x-attribsPrefix"] = attribsPrefix;
        return node;
      },
      createCommentNode(data) {
        return new domhandler_1.Comment(data);
      },
      createTextNode(value) {
        return new domhandler_1.Text(value);
      },
      //Tree mutation
      appendChild(parentNode, newNode) {
        const prev = parentNode.children[parentNode.children.length - 1];
        if (prev) {
          prev.next = newNode;
          newNode.prev = prev;
        }
        parentNode.children.push(newNode);
        newNode.parent = parentNode;
      },
      insertBefore(parentNode, newNode, referenceNode) {
        const insertionIdx = parentNode.children.indexOf(referenceNode);
        const { prev } = referenceNode;
        if (prev) {
          prev.next = newNode;
          newNode.prev = prev;
        }
        referenceNode.prev = newNode;
        newNode.next = referenceNode;
        parentNode.children.splice(insertionIdx, 0, newNode);
        newNode.parent = parentNode;
      },
      setTemplateContent(templateElement, contentElement) {
        exports2.adapter.appendChild(templateElement, contentElement);
      },
      getTemplateContent(templateElement) {
        return templateElement.children[0];
      },
      setDocumentType(document2, name2, publicId, systemId) {
        const data = serializeDoctypeContent(name2, publicId, systemId);
        let doctypeNode = document2.children.find((node) => (0, domhandler_1.isDirective)(node) && node.name === "!doctype");
        if (doctypeNode) {
          doctypeNode.data = data !== null && data !== void 0 ? data : null;
        } else {
          doctypeNode = new domhandler_1.ProcessingInstruction("!doctype", data);
          exports2.adapter.appendChild(document2, doctypeNode);
        }
        doctypeNode["x-name"] = name2;
        doctypeNode["x-publicId"] = publicId;
        doctypeNode["x-systemId"] = systemId;
      },
      setDocumentMode(document2, mode) {
        document2["x-mode"] = mode;
      },
      getDocumentMode(document2) {
        return document2["x-mode"];
      },
      detachNode(node) {
        if (node.parent) {
          const idx = node.parent.children.indexOf(node);
          const { prev, next } = node;
          node.prev = null;
          node.next = null;
          if (prev) {
            prev.next = next;
          }
          if (next) {
            next.prev = prev;
          }
          node.parent.children.splice(idx, 1);
          node.parent = null;
        }
      },
      insertText(parentNode, text) {
        const lastChild = parentNode.children[parentNode.children.length - 1];
        if (lastChild && (0, domhandler_1.isText)(lastChild)) {
          lastChild.data += text;
        } else {
          exports2.adapter.appendChild(parentNode, exports2.adapter.createTextNode(text));
        }
      },
      insertTextBefore(parentNode, text, referenceNode) {
        const prevNode = parentNode.children[parentNode.children.indexOf(referenceNode) - 1];
        if (prevNode && (0, domhandler_1.isText)(prevNode)) {
          prevNode.data += text;
        } else {
          exports2.adapter.insertBefore(parentNode, exports2.adapter.createTextNode(text), referenceNode);
        }
      },
      adoptAttributes(recipient, attrs) {
        for (let i22 = 0; i22 < attrs.length; i22++) {
          const attrName = attrs[i22].name;
          if (recipient.attribs[attrName] === void 0) {
            recipient.attribs[attrName] = attrs[i22].value;
            recipient["x-attribsNamespace"][attrName] = attrs[i22].namespace;
            recipient["x-attribsPrefix"][attrName] = attrs[i22].prefix;
          }
        }
      },
      //Tree traversing
      getFirstChild(node) {
        return node.children[0];
      },
      getChildNodes(node) {
        return node.children;
      },
      getParentNode(node) {
        return node.parent;
      },
      getAttrList(element) {
        return element.attributes;
      },
      //Node data
      getTagName(element) {
        return element.name;
      },
      getNamespaceURI(element) {
        return element.namespace;
      },
      getTextNodeContent(textNode) {
        return textNode.data;
      },
      getCommentNodeContent(commentNode) {
        return commentNode.data;
      },
      getDocumentTypeNodeName(doctypeNode) {
        var _a22;
        return (_a22 = doctypeNode["x-name"]) !== null && _a22 !== void 0 ? _a22 : "";
      },
      getDocumentTypeNodePublicId(doctypeNode) {
        var _a22;
        return (_a22 = doctypeNode["x-publicId"]) !== null && _a22 !== void 0 ? _a22 : "";
      },
      getDocumentTypeNodeSystemId(doctypeNode) {
        var _a22;
        return (_a22 = doctypeNode["x-systemId"]) !== null && _a22 !== void 0 ? _a22 : "";
      },
      //Node types
      isDocumentTypeNode(node) {
        return (0, domhandler_1.isDirective)(node) && node.name === "!doctype";
      },
      // Source code location
      setNodeSourceCodeLocation(node, location) {
        if (location) {
          node.startIndex = location.startOffset;
          node.endIndex = location.endOffset;
        }
        node.sourceCodeLocation = location;
      },
      getNodeSourceCodeLocation(node) {
        return node.sourceCodeLocation;
      },
      updateNodeSourceCodeLocation(node, endLocation) {
        if (endLocation.endOffset != null)
          node.endIndex = endLocation.endOffset;
        node.sourceCodeLocation = Object.assign(Object.assign({}, node.sourceCodeLocation), endLocation);
      }
    };
  }
});
var require_parse5_adapter = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/parsers/parse5-adapter.js"(exports2) {
    "use strict";
    var __spreadArray2 = exports2 && exports2.__spreadArray || function(to2, from, pack) {
      if (pack || arguments.length === 2) for (var i22 = 0, l2 = from.length, ar3; i22 < l2; i22++) {
        if (ar3 || !(i22 in from)) {
          if (!ar3) ar3 = Array.prototype.slice.call(from, 0, i22);
          ar3[i22] = from[i22];
        }
      }
      return to2.concat(ar3 || Array.prototype.slice.call(from));
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.renderWithParse5 = exports2.parseWithParse5 = void 0;
    var domhandler_1 = require_lib4();
    var parse5_1 = require_cjs7();
    var parse5_htmlparser2_tree_adapter_1 = require_cjs8();
    function parseWithParse5(content2, options, isDocument2, context) {
      var opts = {
        scriptingEnabled: typeof options.scriptingEnabled === "boolean" ? options.scriptingEnabled : true,
        treeAdapter: parse5_htmlparser2_tree_adapter_1.adapter,
        sourceCodeLocationInfo: options.sourceCodeLocationInfo
      };
      return isDocument2 ? (0, parse5_1.parse)(content2, opts) : (0, parse5_1.parseFragment)(context, content2, opts);
    }
    exports2.parseWithParse5 = parseWithParse5;
    var renderOpts = { treeAdapter: parse5_htmlparser2_tree_adapter_1.adapter };
    function renderWithParse5(dom) {
      var _a22;
      var nodes = "length" in dom ? dom : [dom];
      for (var index = 0; index < nodes.length; index += 1) {
        var node = nodes[index];
        if ((0, domhandler_1.isDocument)(node)) {
          (_a22 = Array.prototype.splice).call.apply(_a22, __spreadArray2([nodes, index, 1], node.children, false));
        }
      }
      var result = "";
      for (var index = 0; index < nodes.length; index += 1) {
        var node = nodes[index];
        result += (0, parse5_1.serializeOuter)(node, renderOpts);
      }
      return result;
    }
    exports2.renderWithParse5 = renderWithParse5;
  }
});
var require_Tokenizer = __commonJS2({
  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.QuoteType = void 0;
    var decode_js_1 = require_decode();
    var CharCodes3;
    (function(CharCodes22) {
      CharCodes22[CharCodes22["Tab"] = 9] = "Tab";
      CharCodes22[CharCodes22["NewLine"] = 10] = "NewLine";
      CharCodes22[CharCodes22["FormFeed"] = 12] = "FormFeed";
      CharCodes22[CharCodes22["CarriageReturn"] = 13] = "CarriageReturn";
      CharCodes22[CharCodes22["Space"] = 32] = "Space";
      CharCodes22[CharCodes22["ExclamationMark"] = 33] = "ExclamationMark";
      CharCodes22[CharCodes22["Number"] = 35] = "Number";
      CharCodes22[CharCodes22["Amp"] = 38] = "Amp";
      CharCodes22[CharCodes22["SingleQuote"] = 39] = "SingleQuote";
      CharCodes22[CharCodes22["DoubleQuote"] = 34] = "DoubleQuote";
      CharCodes22[CharCodes22["Dash"] = 45] = "Dash";
      CharCodes22[CharCodes22["Slash"] = 47] = "Slash";
      CharCodes22[CharCodes22["Zero"] = 48] = "Zero";
      CharCodes22[CharCodes22["Nine"] = 57] = "Nine";
      CharCodes22[CharCodes22["Semi"] = 59] = "Semi";
      CharCodes22[CharCodes22["Lt"] = 60] = "Lt";
      CharCodes22[CharCodes22["Eq"] = 61] = "Eq";
      CharCodes22[CharCodes22["Gt"] = 62] = "Gt";
      CharCodes22[CharCodes22["Questionmark"] = 63] = "Questionmark";
      CharCodes22[CharCodes22["UpperA"] = 65] = "UpperA";
      CharCodes22[CharCodes22["LowerA"] = 97] = "LowerA";
      CharCodes22[CharCodes22["UpperF"] = 70] = "UpperF";
      CharCodes22[CharCodes22["LowerF"] = 102] = "LowerF";
      CharCodes22[CharCodes22["UpperZ"] = 90] = "UpperZ";
      CharCodes22[CharCodes22["LowerZ"] = 122] = "LowerZ";
      CharCodes22[CharCodes22["LowerX"] = 120] = "LowerX";
      CharCodes22[CharCodes22["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
    })(CharCodes3 || (CharCodes3 = {}));
    var State2;
    (function(State22) {
      State22[State22["Text"] = 1] = "Text";
      State22[State22["BeforeTagName"] = 2] = "BeforeTagName";
      State22[State22["InTagName"] = 3] = "InTagName";
      State22[State22["InSelfClosingTag"] = 4] = "InSelfClosingTag";
      State22[State22["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
      State22[State22["InClosingTagName"] = 6] = "InClosingTagName";
      State22[State22["AfterClosingTagName"] = 7] = "AfterClosingTagName";
      State22[State22["BeforeAttributeName"] = 8] = "BeforeAttributeName";
      State22[State22["InAttributeName"] = 9] = "InAttributeName";
      State22[State22["AfterAttributeName"] = 10] = "AfterAttributeName";
      State22[State22["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
      State22[State22["InAttributeValueDq"] = 12] = "InAttributeValueDq";
      State22[State22["InAttributeValueSq"] = 13] = "InAttributeValueSq";
      State22[State22["InAttributeValueNq"] = 14] = "InAttributeValueNq";
      State22[State22["BeforeDeclaration"] = 15] = "BeforeDeclaration";
      State22[State22["InDeclaration"] = 16] = "InDeclaration";
      State22[State22["InProcessingInstruction"] = 17] = "InProcessingInstruction";
      State22[State22["BeforeComment"] = 18] = "BeforeComment";
      State22[State22["CDATASequence"] = 19] = "CDATASequence";
      State22[State22["InSpecialComment"] = 20] = "InSpecialComment";
      State22[State22["InCommentLike"] = 21] = "InCommentLike";
      State22[State22["BeforeSpecialS"] = 22] = "BeforeSpecialS";
      State22[State22["SpecialStartSequence"] = 23] = "SpecialStartSequence";
      State22[State22["InSpecialTag"] = 24] = "InSpecialTag";
      State22[State22["BeforeEntity"] = 25] = "BeforeEntity";
      State22[State22["BeforeNumericEntity"] = 26] = "BeforeNumericEntity";
      State22[State22["InNamedEntity"] = 27] = "InNamedEntity";
      State22[State22["InNumericEntity"] = 28] = "InNumericEntity";
      State22[State22["InHexEntity"] = 29] = "InHexEntity";
    })(State2 || (State2 = {}));
    function isWhitespace2(c3) {
      return c3 === CharCodes3.Space || c3 === CharCodes3.NewLine || c3 === CharCodes3.Tab || c3 === CharCodes3.FormFeed || c3 === CharCodes3.CarriageReturn;
    }
    function isEndOfTagSection2(c3) {
      return c3 === CharCodes3.Slash || c3 === CharCodes3.Gt || isWhitespace2(c3);
    }
    function isNumber32(c3) {
      return c3 >= CharCodes3.Zero && c3 <= CharCodes3.Nine;
    }
    function isASCIIAlpha2(c3) {
      return c3 >= CharCodes3.LowerA && c3 <= CharCodes3.LowerZ || c3 >= CharCodes3.UpperA && c3 <= CharCodes3.UpperZ;
    }
    function isHexDigit2(c3) {
      return c3 >= CharCodes3.UpperA && c3 <= CharCodes3.UpperF || c3 >= CharCodes3.LowerA && c3 <= CharCodes3.LowerF;
    }
    var QuoteType2;
    (function(QuoteType22) {
      QuoteType22[QuoteType22["NoValue"] = 0] = "NoValue";
      QuoteType22[QuoteType22["Unquoted"] = 1] = "Unquoted";
      QuoteType22[QuoteType22["Single"] = 2] = "Single";
      QuoteType22[QuoteType22["Double"] = 3] = "Double";
    })(QuoteType2 = exports2.QuoteType || (exports2.QuoteType = {}));
    var Sequences2 = {
      Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
      CdataEnd: new Uint8Array([93, 93, 62]),
      CommentEnd: new Uint8Array([45, 45, 62]),
      ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
      StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
      TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101])
      // `</title`
    };
    var Tokenizer2 = (
      /** @class */
      (function() {
        function Tokenizer22(_a22, cbs) {
          var _b2 = _a22.xmlMode, xmlMode = _b2 === void 0 ? false : _b2, _c = _a22.decodeEntities, decodeEntities = _c === void 0 ? true : _c;
          this.cbs = cbs;
          this.state = State2.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.baseState = State2.Text;
          this.isSpecial = false;
          this.running = true;
          this.offset = 0;
          this.currentSequence = void 0;
          this.sequenceIndex = 0;
          this.trieIndex = 0;
          this.trieCurrent = 0;
          this.entityResult = 0;
          this.entityExcess = 0;
          this.xmlMode = xmlMode;
          this.decodeEntities = decodeEntities;
          this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;
        }
        Tokenizer22.prototype.reset = function() {
          this.state = State2.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.baseState = State2.Text;
          this.currentSequence = void 0;
          this.running = true;
          this.offset = 0;
        };
        Tokenizer22.prototype.write = function(chunk2) {
          this.offset += this.buffer.length;
          this.buffer = chunk2;
          this.parse();
        };
        Tokenizer22.prototype.end = function() {
          if (this.running)
            this.finish();
        };
        Tokenizer22.prototype.pause = function() {
          this.running = false;
        };
        Tokenizer22.prototype.resume = function() {
          this.running = true;
          if (this.index < this.buffer.length + this.offset) {
            this.parse();
          }
        };
        Tokenizer22.prototype.getIndex = function() {
          return this.index;
        };
        Tokenizer22.prototype.getSectionStart = function() {
          return this.sectionStart;
        };
        Tokenizer22.prototype.stateText = function(c3) {
          if (c3 === CharCodes3.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes3.Lt)) {
            if (this.index > this.sectionStart) {
              this.cbs.ontext(this.sectionStart, this.index);
            }
            this.state = State2.BeforeTagName;
            this.sectionStart = this.index;
          } else if (this.decodeEntities && c3 === CharCodes3.Amp) {
            this.state = State2.BeforeEntity;
          }
        };
        Tokenizer22.prototype.stateSpecialStartSequence = function(c3) {
          var isEnd = this.sequenceIndex === this.currentSequence.length;
          var isMatch = isEnd ? (
            // If we are at the end of the sequence, make sure the tag name has ended
            isEndOfTagSection2(c3)
          ) : (
            // Otherwise, do a case-insensitive comparison
            (c3 | 32) === this.currentSequence[this.sequenceIndex]
          );
          if (!isMatch) {
            this.isSpecial = false;
          } else if (!isEnd) {
            this.sequenceIndex++;
            return;
          }
          this.sequenceIndex = 0;
          this.state = State2.InTagName;
          this.stateInTagName(c3);
        };
        Tokenizer22.prototype.stateInSpecialTag = function(c3) {
          if (this.sequenceIndex === this.currentSequence.length) {
            if (c3 === CharCodes3.Gt || isWhitespace2(c3)) {
              var endOfText = this.index - this.currentSequence.length;
              if (this.sectionStart < endOfText) {
                var actualIndex = this.index;
                this.index = endOfText;
                this.cbs.ontext(this.sectionStart, endOfText);
                this.index = actualIndex;
              }
              this.isSpecial = false;
              this.sectionStart = endOfText + 2;
              this.stateInClosingTagName(c3);
              return;
            }
            this.sequenceIndex = 0;
          }
          if ((c3 | 32) === this.currentSequence[this.sequenceIndex]) {
            this.sequenceIndex += 1;
          } else if (this.sequenceIndex === 0) {
            if (this.currentSequence === Sequences2.TitleEnd) {
              if (this.decodeEntities && c3 === CharCodes3.Amp) {
                this.state = State2.BeforeEntity;
              }
            } else if (this.fastForwardTo(CharCodes3.Lt)) {
              this.sequenceIndex = 1;
            }
          } else {
            this.sequenceIndex = Number(c3 === CharCodes3.Lt);
          }
        };
        Tokenizer22.prototype.stateCDATASequence = function(c3) {
          if (c3 === Sequences2.Cdata[this.sequenceIndex]) {
            if (++this.sequenceIndex === Sequences2.Cdata.length) {
              this.state = State2.InCommentLike;
              this.currentSequence = Sequences2.CdataEnd;
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
            }
          } else {
            this.sequenceIndex = 0;
            this.state = State2.InDeclaration;
            this.stateInDeclaration(c3);
          }
        };
        Tokenizer22.prototype.fastForwardTo = function(c3) {
          while (++this.index < this.buffer.length + this.offset) {
            if (this.buffer.charCodeAt(this.index - this.offset) === c3) {
              return true;
            }
          }
          this.index = this.buffer.length + this.offset - 1;
          return false;
        };
        Tokenizer22.prototype.stateInCommentLike = function(c3) {
          if (c3 === this.currentSequence[this.sequenceIndex]) {
            if (++this.sequenceIndex === this.currentSequence.length) {
              if (this.currentSequence === Sequences2.CdataEnd) {
                this.cbs.oncdata(this.sectionStart, this.index, 2);
              } else {
                this.cbs.oncomment(this.sectionStart, this.index, 2);
              }
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
              this.state = State2.Text;
            }
          } else if (this.sequenceIndex === 0) {
            if (this.fastForwardTo(this.currentSequence[0])) {
              this.sequenceIndex = 1;
            }
          } else if (c3 !== this.currentSequence[this.sequenceIndex - 1]) {
            this.sequenceIndex = 0;
          }
        };
        Tokenizer22.prototype.isTagStartChar = function(c3) {
          return this.xmlMode ? !isEndOfTagSection2(c3) : isASCIIAlpha2(c3);
        };
        Tokenizer22.prototype.startSpecial = function(sequence, offset) {
          this.isSpecial = true;
          this.currentSequence = sequence;
          this.sequenceIndex = offset;
          this.state = State2.SpecialStartSequence;
        };
        Tokenizer22.prototype.stateBeforeTagName = function(c3) {
          if (c3 === CharCodes3.ExclamationMark) {
            this.state = State2.BeforeDeclaration;
            this.sectionStart = this.index + 1;
          } else if (c3 === CharCodes3.Questionmark) {
            this.state = State2.InProcessingInstruction;
            this.sectionStart = this.index + 1;
          } else if (this.isTagStartChar(c3)) {
            var lower = c3 | 32;
            this.sectionStart = this.index;
            if (!this.xmlMode && lower === Sequences2.TitleEnd[2]) {
              this.startSpecial(Sequences2.TitleEnd, 3);
            } else {
              this.state = !this.xmlMode && lower === Sequences2.ScriptEnd[2] ? State2.BeforeSpecialS : State2.InTagName;
            }
          } else if (c3 === CharCodes3.Slash) {
            this.state = State2.BeforeClosingTagName;
          } else {
            this.state = State2.Text;
            this.stateText(c3);
          }
        };
        Tokenizer22.prototype.stateInTagName = function(c3) {
          if (isEndOfTagSection2(c3)) {
            this.cbs.onopentagname(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          }
        };
        Tokenizer22.prototype.stateBeforeClosingTagName = function(c3) {
          if (isWhitespace2(c3)) {
          } else if (c3 === CharCodes3.Gt) {
            this.state = State2.Text;
          } else {
            this.state = this.isTagStartChar(c3) ? State2.InClosingTagName : State2.InSpecialComment;
            this.sectionStart = this.index;
          }
        };
        Tokenizer22.prototype.stateInClosingTagName = function(c3) {
          if (c3 === CharCodes3.Gt || isWhitespace2(c3)) {
            this.cbs.onclosetag(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State2.AfterClosingTagName;
            this.stateAfterClosingTagName(c3);
          }
        };
        Tokenizer22.prototype.stateAfterClosingTagName = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.state = State2.Text;
            this.baseState = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateBeforeAttributeName = function(c3) {
          if (c3 === CharCodes3.Gt) {
            this.cbs.onopentagend(this.index);
            if (this.isSpecial) {
              this.state = State2.InSpecialTag;
              this.sequenceIndex = 0;
            } else {
              this.state = State2.Text;
            }
            this.baseState = this.state;
            this.sectionStart = this.index + 1;
          } else if (c3 === CharCodes3.Slash) {
            this.state = State2.InSelfClosingTag;
          } else if (!isWhitespace2(c3)) {
            this.state = State2.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer22.prototype.stateInSelfClosingTag = function(c3) {
          if (c3 === CharCodes3.Gt) {
            this.cbs.onselfclosingtag(this.index);
            this.state = State2.Text;
            this.baseState = State2.Text;
            this.sectionStart = this.index + 1;
            this.isSpecial = false;
          } else if (!isWhitespace2(c3)) {
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          }
        };
        Tokenizer22.prototype.stateInAttributeName = function(c3) {
          if (c3 === CharCodes3.Eq || isEndOfTagSection2(c3)) {
            this.cbs.onattribname(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State2.AfterAttributeName;
            this.stateAfterAttributeName(c3);
          }
        };
        Tokenizer22.prototype.stateAfterAttributeName = function(c3) {
          if (c3 === CharCodes3.Eq) {
            this.state = State2.BeforeAttributeValue;
          } else if (c3 === CharCodes3.Slash || c3 === CharCodes3.Gt) {
            this.cbs.onattribend(QuoteType2.NoValue, this.index);
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          } else if (!isWhitespace2(c3)) {
            this.cbs.onattribend(QuoteType2.NoValue, this.index);
            this.state = State2.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer22.prototype.stateBeforeAttributeValue = function(c3) {
          if (c3 === CharCodes3.DoubleQuote) {
            this.state = State2.InAttributeValueDq;
            this.sectionStart = this.index + 1;
          } else if (c3 === CharCodes3.SingleQuote) {
            this.state = State2.InAttributeValueSq;
            this.sectionStart = this.index + 1;
          } else if (!isWhitespace2(c3)) {
            this.sectionStart = this.index;
            this.state = State2.InAttributeValueNq;
            this.stateInAttributeValueNoQuotes(c3);
          }
        };
        Tokenizer22.prototype.handleInAttributeValue = function(c3, quote) {
          if (c3 === quote || !this.decodeEntities && this.fastForwardTo(quote)) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(quote === CharCodes3.DoubleQuote ? QuoteType2.Double : QuoteType2.Single, this.index);
            this.state = State2.BeforeAttributeName;
          } else if (this.decodeEntities && c3 === CharCodes3.Amp) {
            this.baseState = this.state;
            this.state = State2.BeforeEntity;
          }
        };
        Tokenizer22.prototype.stateInAttributeValueDoubleQuotes = function(c3) {
          this.handleInAttributeValue(c3, CharCodes3.DoubleQuote);
        };
        Tokenizer22.prototype.stateInAttributeValueSingleQuotes = function(c3) {
          this.handleInAttributeValue(c3, CharCodes3.SingleQuote);
        };
        Tokenizer22.prototype.stateInAttributeValueNoQuotes = function(c3) {
          if (isWhitespace2(c3) || c3 === CharCodes3.Gt) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(QuoteType2.Unquoted, this.index);
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          } else if (this.decodeEntities && c3 === CharCodes3.Amp) {
            this.baseState = this.state;
            this.state = State2.BeforeEntity;
          }
        };
        Tokenizer22.prototype.stateBeforeDeclaration = function(c3) {
          if (c3 === CharCodes3.OpeningSquareBracket) {
            this.state = State2.CDATASequence;
            this.sequenceIndex = 0;
          } else {
            this.state = c3 === CharCodes3.Dash ? State2.BeforeComment : State2.InDeclaration;
          }
        };
        Tokenizer22.prototype.stateInDeclaration = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.cbs.ondeclaration(this.sectionStart, this.index);
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateInProcessingInstruction = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.cbs.onprocessinginstruction(this.sectionStart, this.index);
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateBeforeComment = function(c3) {
          if (c3 === CharCodes3.Dash) {
            this.state = State2.InCommentLike;
            this.currentSequence = Sequences2.CommentEnd;
            this.sequenceIndex = 2;
            this.sectionStart = this.index + 1;
          } else {
            this.state = State2.InDeclaration;
          }
        };
        Tokenizer22.prototype.stateInSpecialComment = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.cbs.oncomment(this.sectionStart, this.index, 0);
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateBeforeSpecialS = function(c3) {
          var lower = c3 | 32;
          if (lower === Sequences2.ScriptEnd[3]) {
            this.startSpecial(Sequences2.ScriptEnd, 4);
          } else if (lower === Sequences2.StyleEnd[3]) {
            this.startSpecial(Sequences2.StyleEnd, 4);
          } else {
            this.state = State2.InTagName;
            this.stateInTagName(c3);
          }
        };
        Tokenizer22.prototype.stateBeforeEntity = function(c3) {
          this.entityExcess = 1;
          this.entityResult = 0;
          if (c3 === CharCodes3.Number) {
            this.state = State2.BeforeNumericEntity;
          } else if (c3 === CharCodes3.Amp) {
          } else {
            this.trieIndex = 0;
            this.trieCurrent = this.entityTrie[0];
            this.state = State2.InNamedEntity;
            this.stateInNamedEntity(c3);
          }
        };
        Tokenizer22.prototype.stateInNamedEntity = function(c3) {
          this.entityExcess += 1;
          this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c3);
          if (this.trieIndex < 0) {
            this.emitNamedEntity();
            this.index--;
            return;
          }
          this.trieCurrent = this.entityTrie[this.trieIndex];
          var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;
          if (masked) {
            var valueLength = (masked >> 14) - 1;
            if (!this.allowLegacyEntity() && c3 !== CharCodes3.Semi) {
              this.trieIndex += valueLength;
            } else {
              var entityStart = this.index - this.entityExcess + 1;
              if (entityStart > this.sectionStart) {
                this.emitPartial(this.sectionStart, entityStart);
              }
              this.entityResult = this.trieIndex;
              this.trieIndex += valueLength;
              this.entityExcess = 0;
              this.sectionStart = this.index + 1;
              if (valueLength === 0) {
                this.emitNamedEntity();
              }
            }
          }
        };
        Tokenizer22.prototype.emitNamedEntity = function() {
          this.state = this.baseState;
          if (this.entityResult === 0) {
            return;
          }
          var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
          switch (valueLength) {
            case 1: {
              this.emitCodePoint(this.entityTrie[this.entityResult] & ~decode_js_1.BinTrieFlags.VALUE_LENGTH);
              break;
            }
            case 2: {
              this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
              break;
            }
            case 3: {
              this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
              this.emitCodePoint(this.entityTrie[this.entityResult + 2]);
            }
          }
        };
        Tokenizer22.prototype.stateBeforeNumericEntity = function(c3) {
          if ((c3 | 32) === CharCodes3.LowerX) {
            this.entityExcess++;
            this.state = State2.InHexEntity;
          } else {
            this.state = State2.InNumericEntity;
            this.stateInNumericEntity(c3);
          }
        };
        Tokenizer22.prototype.emitNumericEntity = function(strict) {
          var entityStart = this.index - this.entityExcess - 1;
          var numberStart = entityStart + 2 + Number(this.state === State2.InHexEntity);
          if (numberStart !== this.index) {
            if (entityStart > this.sectionStart) {
              this.emitPartial(this.sectionStart, entityStart);
            }
            this.sectionStart = this.index + Number(strict);
            this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));
          }
          this.state = this.baseState;
        };
        Tokenizer22.prototype.stateInNumericEntity = function(c3) {
          if (c3 === CharCodes3.Semi) {
            this.emitNumericEntity(true);
          } else if (isNumber32(c3)) {
            this.entityResult = this.entityResult * 10 + (c3 - CharCodes3.Zero);
            this.entityExcess++;
          } else {
            if (this.allowLegacyEntity()) {
              this.emitNumericEntity(false);
            } else {
              this.state = this.baseState;
            }
            this.index--;
          }
        };
        Tokenizer22.prototype.stateInHexEntity = function(c3) {
          if (c3 === CharCodes3.Semi) {
            this.emitNumericEntity(true);
          } else if (isNumber32(c3)) {
            this.entityResult = this.entityResult * 16 + (c3 - CharCodes3.Zero);
            this.entityExcess++;
          } else if (isHexDigit2(c3)) {
            this.entityResult = this.entityResult * 16 + ((c3 | 32) - CharCodes3.LowerA + 10);
            this.entityExcess++;
          } else {
            if (this.allowLegacyEntity()) {
              this.emitNumericEntity(false);
            } else {
              this.state = this.baseState;
            }
            this.index--;
          }
        };
        Tokenizer22.prototype.allowLegacyEntity = function() {
          return !this.xmlMode && (this.baseState === State2.Text || this.baseState === State2.InSpecialTag);
        };
        Tokenizer22.prototype.cleanup = function() {
          if (this.running && this.sectionStart !== this.index) {
            if (this.state === State2.Text || this.state === State2.InSpecialTag && this.sequenceIndex === 0) {
              this.cbs.ontext(this.sectionStart, this.index);
              this.sectionStart = this.index;
            } else if (this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueNq) {
              this.cbs.onattribdata(this.sectionStart, this.index);
              this.sectionStart = this.index;
            }
          }
        };
        Tokenizer22.prototype.shouldContinue = function() {
          return this.index < this.buffer.length + this.offset && this.running;
        };
        Tokenizer22.prototype.parse = function() {
          while (this.shouldContinue()) {
            var c3 = this.buffer.charCodeAt(this.index - this.offset);
            switch (this.state) {
              case State2.Text: {
                this.stateText(c3);
                break;
              }
              case State2.SpecialStartSequence: {
                this.stateSpecialStartSequence(c3);
                break;
              }
              case State2.InSpecialTag: {
                this.stateInSpecialTag(c3);
                break;
              }
              case State2.CDATASequence: {
                this.stateCDATASequence(c3);
                break;
              }
              case State2.InAttributeValueDq: {
                this.stateInAttributeValueDoubleQuotes(c3);
                break;
              }
              case State2.InAttributeName: {
                this.stateInAttributeName(c3);
                break;
              }
              case State2.InCommentLike: {
                this.stateInCommentLike(c3);
                break;
              }
              case State2.InSpecialComment: {
                this.stateInSpecialComment(c3);
                break;
              }
              case State2.BeforeAttributeName: {
                this.stateBeforeAttributeName(c3);
                break;
              }
              case State2.InTagName: {
                this.stateInTagName(c3);
                break;
              }
              case State2.InClosingTagName: {
                this.stateInClosingTagName(c3);
                break;
              }
              case State2.BeforeTagName: {
                this.stateBeforeTagName(c3);
                break;
              }
              case State2.AfterAttributeName: {
                this.stateAfterAttributeName(c3);
                break;
              }
              case State2.InAttributeValueSq: {
                this.stateInAttributeValueSingleQuotes(c3);
                break;
              }
              case State2.BeforeAttributeValue: {
                this.stateBeforeAttributeValue(c3);
                break;
              }
              case State2.BeforeClosingTagName: {
                this.stateBeforeClosingTagName(c3);
                break;
              }
              case State2.AfterClosingTagName: {
                this.stateAfterClosingTagName(c3);
                break;
              }
              case State2.BeforeSpecialS: {
                this.stateBeforeSpecialS(c3);
                break;
              }
              case State2.InAttributeValueNq: {
                this.stateInAttributeValueNoQuotes(c3);
                break;
              }
              case State2.InSelfClosingTag: {
                this.stateInSelfClosingTag(c3);
                break;
              }
              case State2.InDeclaration: {
                this.stateInDeclaration(c3);
                break;
              }
              case State2.BeforeDeclaration: {
                this.stateBeforeDeclaration(c3);
                break;
              }
              case State2.BeforeComment: {
                this.stateBeforeComment(c3);
                break;
              }
              case State2.InProcessingInstruction: {
                this.stateInProcessingInstruction(c3);
                break;
              }
              case State2.InNamedEntity: {
                this.stateInNamedEntity(c3);
                break;
              }
              case State2.BeforeEntity: {
                this.stateBeforeEntity(c3);
                break;
              }
              case State2.InHexEntity: {
                this.stateInHexEntity(c3);
                break;
              }
              case State2.InNumericEntity: {
                this.stateInNumericEntity(c3);
                break;
              }
              default: {
                this.stateBeforeNumericEntity(c3);
              }
            }
            this.index++;
          }
          this.cleanup();
        };
        Tokenizer22.prototype.finish = function() {
          if (this.state === State2.InNamedEntity) {
            this.emitNamedEntity();
          }
          if (this.sectionStart < this.index) {
            this.handleTrailingData();
          }
          this.cbs.onend();
        };
        Tokenizer22.prototype.handleTrailingData = function() {
          var endIndex = this.buffer.length + this.offset;
          if (this.state === State2.InCommentLike) {
            if (this.currentSequence === Sequences2.CdataEnd) {
              this.cbs.oncdata(this.sectionStart, endIndex, 0);
            } else {
              this.cbs.oncomment(this.sectionStart, endIndex, 0);
            }
          } else if (this.state === State2.InNumericEntity && this.allowLegacyEntity()) {
            this.emitNumericEntity(false);
          } else if (this.state === State2.InHexEntity && this.allowLegacyEntity()) {
            this.emitNumericEntity(false);
          } else if (this.state === State2.InTagName || this.state === State2.BeforeAttributeName || this.state === State2.BeforeAttributeValue || this.state === State2.AfterAttributeName || this.state === State2.InAttributeName || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueNq || this.state === State2.InClosingTagName) {
          } else {
            this.cbs.ontext(this.sectionStart, endIndex);
          }
        };
        Tokenizer22.prototype.emitPartial = function(start, endIndex) {
          if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) {
            this.cbs.onattribdata(start, endIndex);
          } else {
            this.cbs.ontext(start, endIndex);
          }
        };
        Tokenizer22.prototype.emitCodePoint = function(cp) {
          if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) {
            this.cbs.onattribentity(cp);
          } else {
            this.cbs.ontextentity(cp);
          }
        };
        return Tokenizer22;
      })()
    );
    exports2.default = Tokenizer2;
  }
});
var require_Parser = __commonJS2({
  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Parser = void 0;
    var Tokenizer_js_1 = __importStar2(require_Tokenizer());
    var decode_js_1 = require_decode();
    var formTags2 = /* @__PURE__ */ new Set([
      "input",
      "option",
      "optgroup",
      "select",
      "button",
      "datalist",
      "textarea"
    ]);
    var pTag2 = /* @__PURE__ */ new Set(["p"]);
    var tableSectionTags2 = /* @__PURE__ */ new Set(["thead", "tbody"]);
    var ddtTags2 = /* @__PURE__ */ new Set(["dd", "dt"]);
    var rtpTags2 = /* @__PURE__ */ new Set(["rt", "rp"]);
    var openImpliesClose2 = /* @__PURE__ */ new Map([
      ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
      ["th", /* @__PURE__ */ new Set(["th"])],
      ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
      ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
      ["li", /* @__PURE__ */ new Set(["li"])],
      ["p", pTag2],
      ["h1", pTag2],
      ["h2", pTag2],
      ["h3", pTag2],
      ["h4", pTag2],
      ["h5", pTag2],
      ["h6", pTag2],
      ["select", formTags2],
      ["input", formTags2],
      ["output", formTags2],
      ["button", formTags2],
      ["datalist", formTags2],
      ["textarea", formTags2],
      ["option", /* @__PURE__ */ new Set(["option"])],
      ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
      ["dd", ddtTags2],
      ["dt", ddtTags2],
      ["address", pTag2],
      ["article", pTag2],
      ["aside", pTag2],
      ["blockquote", pTag2],
      ["details", pTag2],
      ["div", pTag2],
      ["dl", pTag2],
      ["fieldset", pTag2],
      ["figcaption", pTag2],
      ["figure", pTag2],
      ["footer", pTag2],
      ["form", pTag2],
      ["header", pTag2],
      ["hr", pTag2],
      ["main", pTag2],
      ["nav", pTag2],
      ["ol", pTag2],
      ["pre", pTag2],
      ["section", pTag2],
      ["table", pTag2],
      ["ul", pTag2],
      ["rt", rtpTags2],
      ["rp", rtpTags2],
      ["tbody", tableSectionTags2],
      ["tfoot", tableSectionTags2]
    ]);
    var voidElements2 = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
    var foreignContextElements2 = /* @__PURE__ */ new Set(["math", "svg"]);
    var htmlIntegrationElements2 = /* @__PURE__ */ new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignobject",
      "desc",
      "title"
    ]);
    var reNameEnd2 = /\s|\//;
    var Parser2 = (
      /** @class */
      (function() {
        function Parser22(cbs, options) {
          if (options === void 0) {
            options = {};
          }
          var _a22, _b2, _c, _d, _e3;
          this.options = options;
          this.startIndex = 0;
          this.endIndex = 0;
          this.openTagStart = 0;
          this.tagname = "";
          this.attribname = "";
          this.attribvalue = "";
          this.attribs = null;
          this.stack = [];
          this.foreignContext = [];
          this.buffers = [];
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
          this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
          this.lowerCaseTagNames = (_a22 = options.lowerCaseTags) !== null && _a22 !== void 0 ? _a22 : !options.xmlMode;
          this.lowerCaseAttributeNames = (_b2 = options.lowerCaseAttributeNames) !== null && _b2 !== void 0 ? _b2 : !options.xmlMode;
          this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);
          (_e3 = (_d = this.cbs).onparserinit) === null || _e3 === void 0 ? void 0 : _e3.call(_d, this);
        }
        Parser22.prototype.ontext = function(start, endIndex) {
          var _a22, _b2;
          var data = this.getSlice(start, endIndex);
          this.endIndex = endIndex - 1;
          (_b2 = (_a22 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, data);
          this.startIndex = endIndex;
        };
        Parser22.prototype.ontextentity = function(cp) {
          var _a22, _b2;
          var index = this.tokenizer.getSectionStart();
          this.endIndex = index - 1;
          (_b2 = (_a22 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, (0, decode_js_1.fromCodePoint)(cp));
          this.startIndex = index;
        };
        Parser22.prototype.isVoidElement = function(name2) {
          return !this.options.xmlMode && voidElements2.has(name2);
        };
        Parser22.prototype.onopentagname = function(start, endIndex) {
          this.endIndex = endIndex;
          var name2 = this.getSlice(start, endIndex);
          if (this.lowerCaseTagNames) {
            name2 = name2.toLowerCase();
          }
          this.emitOpenTag(name2);
        };
        Parser22.prototype.emitOpenTag = function(name2) {
          var _a22, _b2, _c, _d;
          this.openTagStart = this.startIndex;
          this.tagname = name2;
          var impliesClose = !this.options.xmlMode && openImpliesClose2.get(name2);
          if (impliesClose) {
            while (this.stack.length > 0 && impliesClose.has(this.stack[this.stack.length - 1])) {
              var element = this.stack.pop();
              (_b2 = (_a22 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, element, true);
            }
          }
          if (!this.isVoidElement(name2)) {
            this.stack.push(name2);
            if (foreignContextElements2.has(name2)) {
              this.foreignContext.push(true);
            } else if (htmlIntegrationElements2.has(name2)) {
              this.foreignContext.push(false);
            }
          }
          (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name2);
          if (this.cbs.onopentag)
            this.attribs = {};
        };
        Parser22.prototype.endOpenTag = function(isImplied) {
          var _a22, _b2;
          this.startIndex = this.openTagStart;
          if (this.attribs) {
            (_b2 = (_a22 = this.cbs).onopentag) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, this.tagname, this.attribs, isImplied);
            this.attribs = null;
          }
          if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
            this.cbs.onclosetag(this.tagname, true);
          }
          this.tagname = "";
        };
        Parser22.prototype.onopentagend = function(endIndex) {
          this.endIndex = endIndex;
          this.endOpenTag(false);
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onclosetag = function(start, endIndex) {
          var _a22, _b2, _c, _d, _e3, _f;
          this.endIndex = endIndex;
          var name2 = this.getSlice(start, endIndex);
          if (this.lowerCaseTagNames) {
            name2 = name2.toLowerCase();
          }
          if (foreignContextElements2.has(name2) || htmlIntegrationElements2.has(name2)) {
            this.foreignContext.pop();
          }
          if (!this.isVoidElement(name2)) {
            var pos = this.stack.lastIndexOf(name2);
            if (pos !== -1) {
              if (this.cbs.onclosetag) {
                var count = this.stack.length - pos;
                while (count--) {
                  this.cbs.onclosetag(this.stack.pop(), count !== 0);
                }
              } else
                this.stack.length = pos;
            } else if (!this.options.xmlMode && name2 === "p") {
              this.emitOpenTag("p");
              this.closeCurrentTag(true);
            }
          } else if (!this.options.xmlMode && name2 === "br") {
            (_b2 = (_a22 = this.cbs).onopentagname) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, "br");
            (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, "br", {}, true);
            (_f = (_e3 = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e3, "br", false);
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onselfclosingtag = function(endIndex) {
          this.endIndex = endIndex;
          if (this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1]) {
            this.closeCurrentTag(false);
            this.startIndex = endIndex + 1;
          } else {
            this.onopentagend(endIndex);
          }
        };
        Parser22.prototype.closeCurrentTag = function(isOpenImplied) {
          var _a22, _b2;
          var name2 = this.tagname;
          this.endOpenTag(isOpenImplied);
          if (this.stack[this.stack.length - 1] === name2) {
            (_b2 = (_a22 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, name2, !isOpenImplied);
            this.stack.pop();
          }
        };
        Parser22.prototype.onattribname = function(start, endIndex) {
          this.startIndex = start;
          var name2 = this.getSlice(start, endIndex);
          this.attribname = this.lowerCaseAttributeNames ? name2.toLowerCase() : name2;
        };
        Parser22.prototype.onattribdata = function(start, endIndex) {
          this.attribvalue += this.getSlice(start, endIndex);
        };
        Parser22.prototype.onattribentity = function(cp) {
          this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);
        };
        Parser22.prototype.onattribend = function(quote, endIndex) {
          var _a22, _b2;
          this.endIndex = endIndex;
          (_b2 = (_a22 = this.cbs).onattribute) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? void 0 : null);
          if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
            this.attribs[this.attribname] = this.attribvalue;
          }
          this.attribvalue = "";
        };
        Parser22.prototype.getInstructionName = function(value) {
          var index = value.search(reNameEnd2);
          var name2 = index < 0 ? value : value.substr(0, index);
          if (this.lowerCaseTagNames) {
            name2 = name2.toLowerCase();
          }
          return name2;
        };
        Parser22.prototype.ondeclaration = function(start, endIndex) {
          this.endIndex = endIndex;
          var value = this.getSlice(start, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name2 = this.getInstructionName(value);
            this.cbs.onprocessinginstruction("!".concat(name2), "!".concat(value));
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onprocessinginstruction = function(start, endIndex) {
          this.endIndex = endIndex;
          var value = this.getSlice(start, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name2 = this.getInstructionName(value);
            this.cbs.onprocessinginstruction("?".concat(name2), "?".concat(value));
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.oncomment = function(start, endIndex, offset) {
          var _a22, _b2, _c, _d;
          this.endIndex = endIndex;
          (_b2 = (_a22 = this.cbs).oncomment) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, this.getSlice(start, endIndex - offset));
          (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.oncdata = function(start, endIndex, offset) {
          var _a22, _b2, _c, _d, _e3, _f, _g, _h, _j, _k;
          this.endIndex = endIndex;
          var value = this.getSlice(start, endIndex - offset);
          if (this.options.xmlMode || this.options.recognizeCDATA) {
            (_b2 = (_a22 = this.cbs).oncdatastart) === null || _b2 === void 0 ? void 0 : _b2.call(_a22);
            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);
            (_f = (_e3 = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e3);
          } else {
            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, "[CDATA[".concat(value, "]]"));
            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onend = function() {
          var _a22, _b2;
          if (this.cbs.onclosetag) {
            this.endIndex = this.startIndex;
            for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))
              ;
          }
          (_b2 = (_a22 = this.cbs).onend) === null || _b2 === void 0 ? void 0 : _b2.call(_a22);
        };
        Parser22.prototype.reset = function() {
          var _a22, _b2, _c, _d;
          (_b2 = (_a22 = this.cbs).onreset) === null || _b2 === void 0 ? void 0 : _b2.call(_a22);
          this.tokenizer.reset();
          this.tagname = "";
          this.attribname = "";
          this.attribs = null;
          this.stack.length = 0;
          this.startIndex = 0;
          this.endIndex = 0;
          (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
          this.buffers.length = 0;
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
        };
        Parser22.prototype.parseComplete = function(data) {
          this.reset();
          this.end(data);
        };
        Parser22.prototype.getSlice = function(start, end) {
          while (start - this.bufferOffset >= this.buffers[0].length) {
            this.shiftBuffer();
          }
          var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);
          while (end - this.bufferOffset > this.buffers[0].length) {
            this.shiftBuffer();
            slice += this.buffers[0].slice(0, end - this.bufferOffset);
          }
          return slice;
        };
        Parser22.prototype.shiftBuffer = function() {
          this.bufferOffset += this.buffers[0].length;
          this.writeIndex--;
          this.buffers.shift();
        };
        Parser22.prototype.write = function(chunk2) {
          var _a22, _b2;
          if (this.ended) {
            (_b2 = (_a22 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, new Error(".write() after done!"));
            return;
          }
          this.buffers.push(chunk2);
          if (this.tokenizer.running) {
            this.tokenizer.write(chunk2);
            this.writeIndex++;
          }
        };
        Parser22.prototype.end = function(chunk2) {
          var _a22, _b2;
          if (this.ended) {
            (_b2 = (_a22 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, new Error(".end() after done!"));
            return;
          }
          if (chunk2)
            this.write(chunk2);
          this.ended = true;
          this.tokenizer.end();
        };
        Parser22.prototype.pause = function() {
          this.tokenizer.pause();
        };
        Parser22.prototype.resume = function() {
          this.tokenizer.resume();
          while (this.tokenizer.running && this.writeIndex < this.buffers.length) {
            this.tokenizer.write(this.buffers[this.writeIndex++]);
          }
          if (this.ended)
            this.tokenizer.end();
        };
        Parser22.prototype.parseChunk = function(chunk2) {
          this.write(chunk2);
        };
        Parser22.prototype.done = function(chunk2) {
          this.end(chunk2);
        };
        return Parser22;
      })()
    );
    exports2.Parser = Parser2;
  }
});
var require_lib11 = __commonJS2({
  "../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DomUtils = exports2.parseFeed = exports2.getFeed = exports2.ElementType = exports2.Tokenizer = exports2.createDomStream = exports2.parseDOM = exports2.parseDocument = exports2.DefaultHandler = exports2.DomHandler = exports2.Parser = void 0;
    var Parser_js_1 = require_Parser();
    var Parser_js_2 = require_Parser();
    Object.defineProperty(exports2, "Parser", { enumerable: true, get: function() {
      return Parser_js_2.Parser;
    } });
    var domhandler_1 = require_lib4();
    var domhandler_2 = require_lib4();
    Object.defineProperty(exports2, "DomHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    Object.defineProperty(exports2, "DefaultHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    function parseDocument2(data, options) {
      var handler = new domhandler_1.DomHandler(void 0, options);
      new Parser_js_1.Parser(handler, options).end(data);
      return handler.root;
    }
    exports2.parseDocument = parseDocument2;
    function parseDOM(data, options) {
      return parseDocument2(data, options).children;
    }
    exports2.parseDOM = parseDOM;
    function createDomStream(callback, options, elementCallback) {
      var handler = new domhandler_1.DomHandler(callback, options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    exports2.createDomStream = createDomStream;
    var Tokenizer_js_1 = require_Tokenizer();
    Object.defineProperty(exports2, "Tokenizer", { enumerable: true, get: function() {
      return __importDefault2(Tokenizer_js_1).default;
    } });
    exports2.ElementType = __importStar2(require_lib3());
    var domutils_1 = require_lib7();
    var domutils_2 = require_lib7();
    Object.defineProperty(exports2, "getFeed", { enumerable: true, get: function() {
      return domutils_2.getFeed;
    } });
    var parseFeedDefaultOptions = { xmlMode: true };
    function parseFeed(feed, options) {
      if (options === void 0) {
        options = parseFeedDefaultOptions;
      }
      return (0, domutils_1.getFeed)(parseDOM(feed, options));
    }
    exports2.parseFeed = parseFeed;
    exports2.DomUtils = __importStar2(require_lib7());
  }
});
var require_lib12 = __commonJS2({
  "../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __exportStar2 = exports2 && exports2.__exportStar || function(m2, exports22) {
      for (var p in m2) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports22, p)) __createBinding2(exports22, m2, p);
    };
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.root = exports2.parseHTML = exports2.merge = exports2.contains = exports2.text = exports2.xml = exports2.html = exports2.load = void 0;
    __exportStar2(require_types(), exports2);
    var load_js_1 = require_load();
    var parse_js_1 = require_parse4();
    var parse5_adapter_js_1 = require_parse5_adapter();
    var dom_serializer_1 = __importDefault2(require_lib6());
    var htmlparser2_1 = require_lib11();
    var parse = (0, parse_js_1.getParse)(function(content2, options, isDocument2, context) {
      return options.xmlMode || options._useHtmlParser2 ? (0, htmlparser2_1.parseDocument)(content2, options) : (0, parse5_adapter_js_1.parseWithParse5)(content2, options, isDocument2, context);
    });
    exports2.load = (0, load_js_1.getLoad)(parse, function(dom, options) {
      return options.xmlMode || options._useHtmlParser2 ? (0, dom_serializer_1.default)(dom, options) : (0, parse5_adapter_js_1.renderWithParse5)(dom);
    });
    exports2.default = (0, exports2.load)([]);
    var static_js_1 = require_static();
    Object.defineProperty(exports2, "html", { enumerable: true, get: function() {
      return static_js_1.html;
    } });
    Object.defineProperty(exports2, "xml", { enumerable: true, get: function() {
      return static_js_1.xml;
    } });
    Object.defineProperty(exports2, "text", { enumerable: true, get: function() {
      return static_js_1.text;
    } });
    var staticMethods = __importStar2(require_static());
    exports2.contains = staticMethods.contains;
    exports2.merge = staticMethods.merge;
    exports2.parseHTML = staticMethods.parseHTML;
    exports2.root = staticMethods.root;
  }
});
var require_general2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/general.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.URL_WITH_COMMAS_REGEX = exports2.URL_NO_COMMAS_REGEX = void 0;
    exports2.isDocker = isDocker;
    exports2.isContainerized = isContainerized;
    exports2.isLambda = isLambda;
    exports2.getCgroupsVersion = getCgroupsVersion;
    exports2.weightedAvg = weightedAvg;
    exports2.sleep = sleep;
    exports2.snakeCaseToCamelCase = snakeCaseToCamelCase;
    exports2.expandShadowRoots = expandShadowRoots;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var promises_1 = tslib_1.__importDefault(__require("node:fs/promises"));
    var promises_2 = __require("node:timers/promises");
    exports2.URL_NO_COMMAS_REGEX = /https?:\/\/(www\.)?([\p{L}0-9]|[\p{L}0-9][-\p{L}0-9@:%._+~#=]{0,254}[\p{L}0-9])\.[a-z]{2,63}(:\d{1,5})?(\/[-\p{L}0-9@:%_+.~#?&/=()]*)?/giu;
    exports2.URL_WITH_COMMAS_REGEX = /https?:\/\/(www\.)?([\p{L}0-9]|[\p{L}0-9][-\p{L}0-9@:%._+~#=]{0,254}[\p{L}0-9])\.[a-z]{2,63}(:\d{1,5})?(\/[-\p{L}0-9@:%_+,.~#?&/=()]*)?/giu;
    var isDockerPromiseCache;
    async function createIsDockerPromise() {
      const promise1 = promises_1.default.stat("/.dockerenv").then(() => true).catch(() => false);
      const promise2 = promises_1.default.readFile("/proc/self/cgroup", "utf8").then((content2) => content2.includes("docker")).catch(() => false);
      const [result1, result2] = await Promise.all([promise1, promise2]);
      return result1 || result2;
    }
    async function isDocker(forceReset) {
      if (!isDockerPromiseCache || forceReset)
        isDockerPromiseCache = createIsDockerPromise();
      return isDockerPromiseCache;
    }
    var isContainerizedResult;
    async function isContainerized() {
      if (isContainerizedResult !== void 0) {
        return isContainerizedResult;
      }
      if (isLambda()) {
        isContainerizedResult = false;
        return isContainerizedResult;
      }
      const dockerenvCheck = promises_1.default.stat("/.dockerenv").then(() => true).catch(() => false);
      const cgroupCheck = promises_1.default.readFile("/proc/self/cgroup", "utf8").then((content2) => content2.includes("docker")).catch(() => false);
      const [dockerenvResult, cgroupResult] = await Promise.all([dockerenvCheck, cgroupCheck]);
      isContainerizedResult = dockerenvResult || cgroupResult || !!process.env.KUBERNETES_SERVICE_HOST;
      return isContainerizedResult;
    }
    function isLambda() {
      return !!process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE;
    }
    var _cgroupsVersion;
    async function getCgroupsVersion(forceReset) {
      if (_cgroupsVersion !== void 0 && !forceReset) {
        return _cgroupsVersion;
      }
      try {
        await promises_1.default.access("/sys/fs/cgroup/");
      } catch (e2) {
        _cgroupsVersion = null;
        return null;
      }
      _cgroupsVersion = "V1";
      try {
        await promises_1.default.access("/sys/fs/cgroup/memory/");
      } catch (e2) {
        _cgroupsVersion = "V2";
      }
      return _cgroupsVersion;
    }
    function weightedAvg(arrValues, arrWeights) {
      const result = arrValues.map((value, i22) => {
        const weight = arrWeights[i22];
        const sum = value * weight;
        return [sum, weight];
      }).reduce((p, c3) => [p[0] + c3[0], p[1] + c3[1]], [0, 0]);
      return result[0] / result[1];
    }
    async function sleep(millis) {
      return (0, promises_2.setTimeout)(millis ?? void 0);
    }
    function snakeCaseToCamelCase(snakeCaseStr) {
      return snakeCaseStr.toLowerCase().split("_").map((part, index) => {
        return index > 0 ? part.charAt(0).toUpperCase() + part.slice(1) : part;
      }).join("");
    }
    function expandShadowRoots(document2) {
      function getShadowDomHtml(shadowRoot) {
        let shadowHTML = "";
        for (const el of shadowRoot.childNodes) {
          shadowHTML += el.nodeValue ?? el.outerHTML ?? "";
        }
        return shadowHTML;
      }
      function replaceShadowDomsWithHtml(rootElement) {
        for (const el of rootElement.querySelectorAll("*")) {
          if (el.shadowRoot) {
            replaceShadowDomsWithHtml(el.shadowRoot);
            let content2 = el.getHTML?.({ serializableShadowRoots: true }).trim();
            if (!(content2?.length > 0)) {
              content2 = getShadowDomHtml(el.shadowRoot) ?? "";
            }
            el.innerHTML += content2;
          }
        }
      }
      replaceShadowDomsWithHtml(document2.body);
      return document2.documentElement.outerHTML;
    }
  }
});
function keysOf(value) {
  return Object.keys(value);
}
var init_utilities = __esm({
  "../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/utilities.js"() {
  }
});
function isTypedArrayName(name2) {
  return typedArrayTypeNames.includes(name2);
}
function isObjectTypeName(name2) {
  return objectTypeNames.includes(name2);
}
function isPrimitiveTypeName(name2) {
  return primitiveTypeNames.includes(name2);
}
function detect(value) {
  if (value === null) {
    return "null";
  }
  switch (typeof value) {
    case "undefined": {
      return "undefined";
    }
    case "string": {
      return "string";
    }
    case "number": {
      return Number.isNaN(value) ? "NaN" : "number";
    }
    case "boolean": {
      return "boolean";
    }
    case "function": {
      return "Function";
    }
    case "bigint": {
      return "bigint";
    }
    case "symbol": {
      return "symbol";
    }
    default:
  }
  if (isObservable(value)) {
    return "Observable";
  }
  if (isArray(value)) {
    return "Array";
  }
  if (isBuffer(value)) {
    return "Buffer";
  }
  const tagType = getObjectType(value);
  if (tagType && tagType !== "Object") {
    return tagType;
  }
  if (hasPromiseApi(value)) {
    return "Promise";
  }
  if (value instanceof String || value instanceof Boolean || value instanceof Number) {
    throw new TypeError("Please don't use object wrappers for primitive types");
  }
  return "Object";
}
function hasPromiseApi(value) {
  return isFunction(value?.then) && isFunction(value?.catch);
}
function isAbsoluteModule2(remainder) {
  return (value) => isInteger(value) && Math.abs(value % 2) === remainder;
}
function validatePredicateArray(predicateArray, allowEmpty) {
  if (predicateArray.length === 0) {
    if (allowEmpty) {
    } else {
      throw new TypeError("Invalid predicate array");
    }
    return;
  }
  for (const predicate of predicateArray) {
    if (!isFunction(predicate)) {
      throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
    }
  }
}
function isAll(predicate, ...values) {
  if (Array.isArray(predicate)) {
    const predicateArray = predicate;
    validatePredicateArray(predicateArray, values.length === 0);
    const combinedPredicate = (value) => predicateArray.every((singlePredicate) => singlePredicate(value));
    if (values.length === 0) {
      return combinedPredicate;
    }
    return predicateOnArray(Array.prototype.every, combinedPredicate, values);
  }
  return predicateOnArray(Array.prototype.every, predicate, values);
}
function isAny(predicate, ...values) {
  if (Array.isArray(predicate)) {
    const predicateArray = predicate;
    validatePredicateArray(predicateArray, values.length === 0);
    const combinedPredicate = (value) => predicateArray.some((singlePredicate) => singlePredicate(value));
    if (values.length === 0) {
      return combinedPredicate;
    }
    return predicateOnArray(Array.prototype.some, combinedPredicate, values);
  }
  return predicateOnArray(Array.prototype.some, predicate, values);
}
function isOptional(value, predicate) {
  return isUndefined(value) || predicate(value);
}
function isArray(value, assertion) {
  if (!Array.isArray(value)) {
    return false;
  }
  if (!isFunction(assertion)) {
    return true;
  }
  return value.every((element) => assertion(element));
}
function isArrayBuffer(value) {
  return getObjectType(value) === "ArrayBuffer";
}
function isArrayLike(value) {
  return !isNullOrUndefined(value) && !isFunction(value) && isValidLength(value.length);
}
function isAsyncFunction(value) {
  return getObjectType(value) === "AsyncFunction";
}
function isAsyncGenerator(value) {
  return isAsyncIterable(value) && isFunction(value.next) && isFunction(value.throw);
}
function isAsyncGeneratorFunction(value) {
  return getObjectType(value) === "AsyncGeneratorFunction";
}
function isAsyncIterable(value) {
  return isFunction(value?.[Symbol.asyncIterator]);
}
function isBigint(value) {
  return typeof value === "bigint";
}
function isBigInt64Array(value) {
  return getObjectType(value) === "BigInt64Array";
}
function isBigUint64Array(value) {
  return getObjectType(value) === "BigUint64Array";
}
function isBlob(value) {
  return getObjectType(value) === "Blob";
}
function isBoolean(value) {
  return value === true || value === false;
}
function isBoundFunction(value) {
  return isFunction(value) && !Object.hasOwn(value, "prototype");
}
function isBuffer(value) {
  return value?.constructor?.isBuffer?.(value) ?? false;
}
function isClass(value) {
  return isFunction(value) && /^class(\s+|{)/.test(value.toString());
}
function isDataView(value) {
  return getObjectType(value) === "DataView";
}
function isDate(value) {
  return getObjectType(value) === "Date";
}
function isDirectInstanceOf(instance, class_) {
  if (instance === void 0 || instance === null) {
    return false;
  }
  return Object.getPrototypeOf(instance) === class_.prototype;
}
function isEmptyArray(value) {
  return isArray(value) && value.length === 0;
}
function isEmptyMap(value) {
  return isMap(value) && value.size === 0;
}
function isEmptyObject(value) {
  return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length === 0;
}
function isEmptySet(value) {
  return isSet(value) && value.size === 0;
}
function isEmptyString(value) {
  return isString(value) && value.length === 0;
}
function isEmptyStringOrWhitespace(value) {
  return isEmptyString(value) || isWhitespaceString(value);
}
function isEnumCase(value, targetEnum) {
  return Object.values(targetEnum).includes(value);
}
function isError(value) {
  return getObjectType(value) === "Error";
}
function isEvenInteger(value) {
  return isAbsoluteModule2(0)(value);
}
function isFalsy(value) {
  return !value;
}
function isFloat32Array(value) {
  return getObjectType(value) === "Float32Array";
}
function isFloat64Array(value) {
  return getObjectType(value) === "Float64Array";
}
function isFormData(value) {
  return getObjectType(value) === "FormData";
}
function isFunction(value) {
  return typeof value === "function";
}
function isGenerator(value) {
  return isIterable(value) && isFunction(value?.next) && isFunction(value?.throw);
}
function isGeneratorFunction(value) {
  return getObjectType(value) === "GeneratorFunction";
}
function isHtmlElement(value) {
  return isObject(value) && value.nodeType === NODE_TYPE_ELEMENT && isString(value.nodeName) && !isPlainObject(value) && DOM_PROPERTIES_TO_CHECK.every((property) => property in value);
}
function isInfinite(value) {
  return value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY;
}
function isInRange(value, range) {
  if (isNumber(range)) {
    return value >= Math.min(0, range) && value <= Math.max(range, 0);
  }
  if (isArray(range) && range.length === 2) {
    return value >= Math.min(...range) && value <= Math.max(...range);
  }
  throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);
}
function isInt16Array(value) {
  return getObjectType(value) === "Int16Array";
}
function isInt32Array(value) {
  return getObjectType(value) === "Int32Array";
}
function isInt8Array(value) {
  return getObjectType(value) === "Int8Array";
}
function isInteger(value) {
  return Number.isInteger(value);
}
function isIterable(value) {
  return isFunction(value?.[Symbol.iterator]);
}
function isMap(value) {
  return getObjectType(value) === "Map";
}
function isNan(value) {
  return Number.isNaN(value);
}
function isNativePromise(value) {
  return getObjectType(value) === "Promise";
}
function isNegativeNumber(value) {
  return isNumber(value) && value < 0;
}
function isNodeStream(value) {
  return isObject(value) && isFunction(value.pipe) && !isObservable(value);
}
function isNonEmptyArray(value) {
  return isArray(value) && value.length > 0;
}
function isNonEmptyMap(value) {
  return isMap(value) && value.size > 0;
}
function isNonEmptyObject(value) {
  return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length > 0;
}
function isNonEmptySet(value) {
  return isSet(value) && value.size > 0;
}
function isNonEmptyString(value) {
  return isString(value) && value.length > 0;
}
function isNonEmptyStringAndNotWhitespace(value) {
  return isString(value) && !isEmptyStringOrWhitespace(value);
}
function isNull(value) {
  return value === null;
}
function isNullOrUndefined(value) {
  return isNull(value) || isUndefined(value);
}
function isNumber(value) {
  return typeof value === "number" && !Number.isNaN(value);
}
function isNumericString(value) {
  return isString(value) && !isEmptyStringOrWhitespace(value) && !Number.isNaN(Number(value));
}
function isObject(value) {
  return !isNull(value) && (typeof value === "object" || isFunction(value));
}
function isObservable(value) {
  if (!value) {
    return false;
  }
  if (Symbol.observable !== void 0 && value === value[Symbol.observable]?.()) {
    return true;
  }
  if (value === value["@@observable"]?.()) {
    return true;
  }
  return false;
}
function isOddInteger(value) {
  return isAbsoluteModule2(1)(value);
}
function isPlainObject(value) {
  if (typeof value !== "object" || value === null) {
    return false;
  }
  const prototype2 = Object.getPrototypeOf(value);
  return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
}
function isPositiveNumber(value) {
  return isNumber(value) && value > 0;
}
function isPrimitive(value) {
  return isNull(value) || isPrimitiveTypeName(typeof value);
}
function isPromise(value) {
  return isNativePromise(value) || hasPromiseApi(value);
}
function isPropertyKey(value) {
  return isAny([isString, isNumber, isSymbol], value);
}
function isRegExp(value) {
  return getObjectType(value) === "RegExp";
}
function isSafeInteger(value) {
  return Number.isSafeInteger(value);
}
function isSet(value) {
  return getObjectType(value) === "Set";
}
function isSharedArrayBuffer(value) {
  return getObjectType(value) === "SharedArrayBuffer";
}
function isString(value) {
  return typeof value === "string";
}
function isSymbol(value) {
  return typeof value === "symbol";
}
function isTruthy(value) {
  return Boolean(value);
}
function isTupleLike(value, guards) {
  if (isArray(guards) && isArray(value) && guards.length === value.length) {
    return guards.every((guard, index) => guard(value[index]));
  }
  return false;
}
function isTypedArray(value) {
  return isTypedArrayName(getObjectType(value));
}
function isUint16Array(value) {
  return getObjectType(value) === "Uint16Array";
}
function isUint32Array(value) {
  return getObjectType(value) === "Uint32Array";
}
function isUint8Array(value) {
  return getObjectType(value) === "Uint8Array";
}
function isUint8ClampedArray(value) {
  return getObjectType(value) === "Uint8ClampedArray";
}
function isUndefined(value) {
  return value === void 0;
}
function isUrlInstance(value) {
  return getObjectType(value) === "URL";
}
function isUrlSearchParams(value) {
  return getObjectType(value) === "URLSearchParams";
}
function isUrlString(value) {
  if (!isString(value)) {
    return false;
  }
  try {
    new URL(value);
    return true;
  } catch {
    return false;
  }
}
function isValidDate(value) {
  return isDate(value) && !isNan(Number(value));
}
function isValidLength(value) {
  return isSafeInteger(value) && value >= 0;
}
function isWeakMap(value) {
  return getObjectType(value) === "WeakMap";
}
function isWeakRef(value) {
  return getObjectType(value) === "WeakRef";
}
function isWeakSet(value) {
  return getObjectType(value) === "WeakSet";
}
function isWhitespaceString(value) {
  return isString(value) && /^\s+$/.test(value);
}
function predicateOnArray(method, predicate, values) {
  if (!isFunction(predicate)) {
    throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
  }
  if (values.length === 0) {
    throw new TypeError("Invalid number of values");
  }
  return method.call(values, predicate);
}
function typeErrorMessage(description, value) {
  return `Expected value which is \`${description}\`, received value of type \`${is(value)}\`.`;
}
function unique(values) {
  return Array.from(new Set(values));
}
function typeErrorMessageMultipleValues(expectedType, values) {
  const uniqueExpectedTypes = unique((isArray(expectedType) ? expectedType : [expectedType]).map((value) => `\`${value}\``));
  const uniqueValueTypes = unique(values.map((value) => `\`${is(value)}\``));
  return `Expected values which are ${orFormatter.format(uniqueExpectedTypes)}. Received values of type${uniqueValueTypes.length > 1 ? "s" : ""} ${andFormatter.format(uniqueValueTypes)}.`;
}
function isIsMethodName(value) {
  return isMethodNames.includes(value);
}
function assertAll(predicate, ...values) {
  if (values.length === 0) {
    throw new TypeError("Invalid number of values");
  }
  if (!isAll(predicate, ...values)) {
    const predicateFunction = predicate;
    const expectedType = !Array.isArray(predicate) && isIsMethodName(predicateFunction.name) ? methodTypeMap[predicateFunction.name] : "predicate returns truthy for all values";
    throw new TypeError(typeErrorMessageMultipleValues(expectedType, values));
  }
}
function assertAny(predicate, ...values) {
  if (values.length === 0) {
    throw new TypeError("Invalid number of values");
  }
  if (!isAny(predicate, ...values)) {
    const predicates3 = Array.isArray(predicate) ? predicate : [predicate];
    const expectedTypes = predicates3.map((singlePredicate) => isIsMethodName(singlePredicate.name) ? methodTypeMap[singlePredicate.name] : "predicate returns truthy for any value");
    throw new TypeError(typeErrorMessageMultipleValues(expectedTypes, values));
  }
}
function assertOptional(value, assertion, message) {
  if (!isUndefined(value)) {
    assertion(value, message);
  }
}
function assertArray(value, assertion, message) {
  if (!isArray(value)) {
    throw new TypeError(message ?? typeErrorMessage("Array", value));
  }
  if (assertion) {
    for (const element of value) {
      assertion(element, message);
    }
  }
}
function assertArrayBuffer(value, message) {
  if (!isArrayBuffer(value)) {
    throw new TypeError(message ?? typeErrorMessage("ArrayBuffer", value));
  }
}
function assertArrayLike(value, message) {
  if (!isArrayLike(value)) {
    throw new TypeError(message ?? typeErrorMessage("array-like", value));
  }
}
function assertAsyncFunction(value, message) {
  if (!isAsyncFunction(value)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncFunction", value));
  }
}
function assertAsyncGenerator(value, message) {
  if (!isAsyncGenerator(value)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncGenerator", value));
  }
}
function assertAsyncGeneratorFunction(value, message) {
  if (!isAsyncGeneratorFunction(value)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncGeneratorFunction", value));
  }
}
function assertAsyncIterable(value, message) {
  if (!isAsyncIterable(value)) {
    throw new TypeError(message ?? typeErrorMessage("AsyncIterable", value));
  }
}
function assertBigint(value, message) {
  if (!isBigint(value)) {
    throw new TypeError(message ?? typeErrorMessage("bigint", value));
  }
}
function assertBigInt64Array(value, message) {
  if (!isBigInt64Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("BigInt64Array", value));
  }
}
function assertBigUint64Array(value, message) {
  if (!isBigUint64Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("BigUint64Array", value));
  }
}
function assertBlob(value, message) {
  if (!isBlob(value)) {
    throw new TypeError(message ?? typeErrorMessage("Blob", value));
  }
}
function assertBoolean(value, message) {
  if (!isBoolean(value)) {
    throw new TypeError(message ?? typeErrorMessage("boolean", value));
  }
}
function assertBoundFunction(value, message) {
  if (!isBoundFunction(value)) {
    throw new TypeError(message ?? typeErrorMessage("Function", value));
  }
}
function assertBuffer(value, message) {
  if (!isBuffer(value)) {
    throw new TypeError(message ?? typeErrorMessage("Buffer", value));
  }
}
function assertClass(value, message) {
  if (!isClass(value)) {
    throw new TypeError(message ?? typeErrorMessage("Class", value));
  }
}
function assertDataView(value, message) {
  if (!isDataView(value)) {
    throw new TypeError(message ?? typeErrorMessage("DataView", value));
  }
}
function assertDate(value, message) {
  if (!isDate(value)) {
    throw new TypeError(message ?? typeErrorMessage("Date", value));
  }
}
function assertDirectInstanceOf(instance, class_, message) {
  if (!isDirectInstanceOf(instance, class_)) {
    throw new TypeError(message ?? typeErrorMessage("T", instance));
  }
}
function assertEmptyArray(value, message) {
  if (!isEmptyArray(value)) {
    throw new TypeError(message ?? typeErrorMessage("empty array", value));
  }
}
function assertEmptyMap(value, message) {
  if (!isEmptyMap(value)) {
    throw new TypeError(message ?? typeErrorMessage("empty map", value));
  }
}
function assertEmptyObject(value, message) {
  if (!isEmptyObject(value)) {
    throw new TypeError(message ?? typeErrorMessage("empty object", value));
  }
}
function assertEmptySet(value, message) {
  if (!isEmptySet(value)) {
    throw new TypeError(message ?? typeErrorMessage("empty set", value));
  }
}
function assertEmptyString(value, message) {
  if (!isEmptyString(value)) {
    throw new TypeError(message ?? typeErrorMessage("empty string", value));
  }
}
function assertEmptyStringOrWhitespace(value, message) {
  if (!isEmptyStringOrWhitespace(value)) {
    throw new TypeError(message ?? typeErrorMessage("empty string or whitespace", value));
  }
}
function assertEnumCase(value, targetEnum, message) {
  if (!isEnumCase(value, targetEnum)) {
    throw new TypeError(message ?? typeErrorMessage("EnumCase", value));
  }
}
function assertError(value, message) {
  if (!isError(value)) {
    throw new TypeError(message ?? typeErrorMessage("Error", value));
  }
}
function assertEvenInteger(value, message) {
  if (!isEvenInteger(value)) {
    throw new TypeError(message ?? typeErrorMessage("even integer", value));
  }
}
function assertFalsy(value, message) {
  if (!isFalsy(value)) {
    throw new TypeError(message ?? typeErrorMessage("falsy", value));
  }
}
function assertFloat32Array(value, message) {
  if (!isFloat32Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Float32Array", value));
  }
}
function assertFloat64Array(value, message) {
  if (!isFloat64Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Float64Array", value));
  }
}
function assertFormData(value, message) {
  if (!isFormData(value)) {
    throw new TypeError(message ?? typeErrorMessage("FormData", value));
  }
}
function assertFunction(value, message) {
  if (!isFunction(value)) {
    throw new TypeError(message ?? typeErrorMessage("Function", value));
  }
}
function assertGenerator(value, message) {
  if (!isGenerator(value)) {
    throw new TypeError(message ?? typeErrorMessage("Generator", value));
  }
}
function assertGeneratorFunction(value, message) {
  if (!isGeneratorFunction(value)) {
    throw new TypeError(message ?? typeErrorMessage("GeneratorFunction", value));
  }
}
function assertHtmlElement(value, message) {
  if (!isHtmlElement(value)) {
    throw new TypeError(message ?? typeErrorMessage("HTMLElement", value));
  }
}
function assertInfinite(value, message) {
  if (!isInfinite(value)) {
    throw new TypeError(message ?? typeErrorMessage("infinite number", value));
  }
}
function assertInRange(value, range, message) {
  if (!isInRange(value, range)) {
    throw new TypeError(message ?? typeErrorMessage("in range", value));
  }
}
function assertInt16Array(value, message) {
  if (!isInt16Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Int16Array", value));
  }
}
function assertInt32Array(value, message) {
  if (!isInt32Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Int32Array", value));
  }
}
function assertInt8Array(value, message) {
  if (!isInt8Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Int8Array", value));
  }
}
function assertInteger(value, message) {
  if (!isInteger(value)) {
    throw new TypeError(message ?? typeErrorMessage("integer", value));
  }
}
function assertIterable(value, message) {
  if (!isIterable(value)) {
    throw new TypeError(message ?? typeErrorMessage("Iterable", value));
  }
}
function assertMap(value, message) {
  if (!isMap(value)) {
    throw new TypeError(message ?? typeErrorMessage("Map", value));
  }
}
function assertNan(value, message) {
  if (!isNan(value)) {
    throw new TypeError(message ?? typeErrorMessage("NaN", value));
  }
}
function assertNativePromise(value, message) {
  if (!isNativePromise(value)) {
    throw new TypeError(message ?? typeErrorMessage("native Promise", value));
  }
}
function assertNegativeNumber(value, message) {
  if (!isNegativeNumber(value)) {
    throw new TypeError(message ?? typeErrorMessage("negative number", value));
  }
}
function assertNodeStream(value, message) {
  if (!isNodeStream(value)) {
    throw new TypeError(message ?? typeErrorMessage("Node.js Stream", value));
  }
}
function assertNonEmptyArray(value, message) {
  if (!isNonEmptyArray(value)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty array", value));
  }
}
function assertNonEmptyMap(value, message) {
  if (!isNonEmptyMap(value)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty map", value));
  }
}
function assertNonEmptyObject(value, message) {
  if (!isNonEmptyObject(value)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty object", value));
  }
}
function assertNonEmptySet(value, message) {
  if (!isNonEmptySet(value)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty set", value));
  }
}
function assertNonEmptyString(value, message) {
  if (!isNonEmptyString(value)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty string", value));
  }
}
function assertNonEmptyStringAndNotWhitespace(value, message) {
  if (!isNonEmptyStringAndNotWhitespace(value)) {
    throw new TypeError(message ?? typeErrorMessage("non-empty string and not whitespace", value));
  }
}
function assertNull(value, message) {
  if (!isNull(value)) {
    throw new TypeError(message ?? typeErrorMessage("null", value));
  }
}
function assertNullOrUndefined(value, message) {
  if (!isNullOrUndefined(value)) {
    throw new TypeError(message ?? typeErrorMessage("null or undefined", value));
  }
}
function assertNumber(value, message) {
  if (!isNumber(value)) {
    throw new TypeError(message ?? typeErrorMessage("number", value));
  }
}
function assertNumericString(value, message) {
  if (!isNumericString(value)) {
    throw new TypeError(message ?? typeErrorMessage("string with a number", value));
  }
}
function assertObject(value, message) {
  if (!isObject(value)) {
    throw new TypeError(message ?? typeErrorMessage("Object", value));
  }
}
function assertObservable(value, message) {
  if (!isObservable(value)) {
    throw new TypeError(message ?? typeErrorMessage("Observable", value));
  }
}
function assertOddInteger(value, message) {
  if (!isOddInteger(value)) {
    throw new TypeError(message ?? typeErrorMessage("odd integer", value));
  }
}
function assertPlainObject(value, message) {
  if (!isPlainObject(value)) {
    throw new TypeError(message ?? typeErrorMessage("plain object", value));
  }
}
function assertPositiveNumber(value, message) {
  if (!isPositiveNumber(value)) {
    throw new TypeError(message ?? typeErrorMessage("positive number", value));
  }
}
function assertPrimitive(value, message) {
  if (!isPrimitive(value)) {
    throw new TypeError(message ?? typeErrorMessage("primitive", value));
  }
}
function assertPromise(value, message) {
  if (!isPromise(value)) {
    throw new TypeError(message ?? typeErrorMessage("Promise", value));
  }
}
function assertPropertyKey(value, message) {
  if (!isPropertyKey(value)) {
    throw new TypeError(message ?? typeErrorMessage("PropertyKey", value));
  }
}
function assertRegExp(value, message) {
  if (!isRegExp(value)) {
    throw new TypeError(message ?? typeErrorMessage("RegExp", value));
  }
}
function assertSafeInteger(value, message) {
  if (!isSafeInteger(value)) {
    throw new TypeError(message ?? typeErrorMessage("integer", value));
  }
}
function assertSet(value, message) {
  if (!isSet(value)) {
    throw new TypeError(message ?? typeErrorMessage("Set", value));
  }
}
function assertSharedArrayBuffer(value, message) {
  if (!isSharedArrayBuffer(value)) {
    throw new TypeError(message ?? typeErrorMessage("SharedArrayBuffer", value));
  }
}
function assertString(value, message) {
  if (!isString(value)) {
    throw new TypeError(message ?? typeErrorMessage("string", value));
  }
}
function assertSymbol(value, message) {
  if (!isSymbol(value)) {
    throw new TypeError(message ?? typeErrorMessage("symbol", value));
  }
}
function assertTruthy(value, message) {
  if (!isTruthy(value)) {
    throw new TypeError(message ?? typeErrorMessage("truthy", value));
  }
}
function assertTupleLike(value, guards, message) {
  if (!isTupleLike(value, guards)) {
    throw new TypeError(message ?? typeErrorMessage("tuple-like", value));
  }
}
function assertTypedArray(value, message) {
  if (!isTypedArray(value)) {
    throw new TypeError(message ?? typeErrorMessage("TypedArray", value));
  }
}
function assertUint16Array(value, message) {
  if (!isUint16Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Uint16Array", value));
  }
}
function assertUint32Array(value, message) {
  if (!isUint32Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Uint32Array", value));
  }
}
function assertUint8Array(value, message) {
  if (!isUint8Array(value)) {
    throw new TypeError(message ?? typeErrorMessage("Uint8Array", value));
  }
}
function assertUint8ClampedArray(value, message) {
  if (!isUint8ClampedArray(value)) {
    throw new TypeError(message ?? typeErrorMessage("Uint8ClampedArray", value));
  }
}
function assertUndefined(value, message) {
  if (!isUndefined(value)) {
    throw new TypeError(message ?? typeErrorMessage("undefined", value));
  }
}
function assertUrlInstance(value, message) {
  if (!isUrlInstance(value)) {
    throw new TypeError(message ?? typeErrorMessage("URL", value));
  }
}
function assertUrlSearchParams(value, message) {
  if (!isUrlSearchParams(value)) {
    throw new TypeError(message ?? typeErrorMessage("URLSearchParams", value));
  }
}
function assertUrlString(value, message) {
  if (!isUrlString(value)) {
    throw new TypeError(message ?? typeErrorMessage("string with a URL", value));
  }
}
function assertValidDate(value, message) {
  if (!isValidDate(value)) {
    throw new TypeError(message ?? typeErrorMessage("valid Date", value));
  }
}
function assertValidLength(value, message) {
  if (!isValidLength(value)) {
    throw new TypeError(message ?? typeErrorMessage("valid length", value));
  }
}
function assertWeakMap(value, message) {
  if (!isWeakMap(value)) {
    throw new TypeError(message ?? typeErrorMessage("WeakMap", value));
  }
}
function assertWeakRef(value, message) {
  if (!isWeakRef(value)) {
    throw new TypeError(message ?? typeErrorMessage("WeakRef", value));
  }
}
function assertWeakSet(value, message) {
  if (!isWeakSet(value)) {
    throw new TypeError(message ?? typeErrorMessage("WeakSet", value));
  }
}
function assertWhitespaceString(value, message) {
  if (!isWhitespaceString(value)) {
    throw new TypeError(message ?? typeErrorMessage("whitespace string", value));
  }
}
var typedArrayTypeNames;
var objectTypeNames;
var primitiveTypeNames;
var assertionTypeDescriptions;
var getObjectType;
var is;
var NODE_TYPE_ELEMENT;
var DOM_PROPERTIES_TO_CHECK;
var andFormatter;
var orFormatter;
var assert;
var methodTypeMap;
var isMethodNames;
var distribution_default;
var init_distribution = __esm({
  "../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/index.js"() {
    init_utilities();
    typedArrayTypeNames = [
      "Int8Array",
      "Uint8Array",
      "Uint8ClampedArray",
      "Int16Array",
      "Uint16Array",
      "Int32Array",
      "Uint32Array",
      "Float32Array",
      "Float64Array",
      "BigInt64Array",
      "BigUint64Array"
    ];
    objectTypeNames = [
      "Function",
      "Generator",
      "AsyncGenerator",
      "GeneratorFunction",
      "AsyncGeneratorFunction",
      "AsyncFunction",
      "Observable",
      "Array",
      "Buffer",
      "Blob",
      "Object",
      "RegExp",
      "Date",
      "Error",
      "Map",
      "Set",
      "WeakMap",
      "WeakSet",
      "WeakRef",
      "ArrayBuffer",
      "SharedArrayBuffer",
      "DataView",
      "Promise",
      "URL",
      "FormData",
      "URLSearchParams",
      "HTMLElement",
      "NaN",
      ...typedArrayTypeNames
    ];
    primitiveTypeNames = [
      "null",
      "undefined",
      "string",
      "number",
      "bigint",
      "boolean",
      "symbol"
    ];
    assertionTypeDescriptions = [
      "positive number",
      "negative number",
      "Class",
      "string with a number",
      "null or undefined",
      "Iterable",
      "AsyncIterable",
      "native Promise",
      "EnumCase",
      "string with a URL",
      "truthy",
      "falsy",
      "primitive",
      "integer",
      "plain object",
      "TypedArray",
      "array-like",
      "tuple-like",
      "Node.js Stream",
      "infinite number",
      "empty array",
      "non-empty array",
      "empty string",
      "empty string or whitespace",
      "non-empty string",
      "non-empty string and not whitespace",
      "empty object",
      "non-empty object",
      "empty set",
      "non-empty set",
      "empty map",
      "non-empty map",
      "PropertyKey",
      "even integer",
      "odd integer",
      "T",
      "in range",
      "predicate returns truthy for any value",
      "predicate returns truthy for all values",
      "valid Date",
      "valid length",
      "whitespace string",
      ...objectTypeNames,
      ...primitiveTypeNames
    ];
    getObjectType = (value) => {
      const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);
      if (/HTML\w+Element/.test(objectTypeName) && isHtmlElement(value)) {
        return "HTMLElement";
      }
      if (isObjectTypeName(objectTypeName)) {
        return objectTypeName;
      }
      return void 0;
    };
    is = Object.assign(detect, {
      all: isAll,
      any: isAny,
      array: isArray,
      arrayBuffer: isArrayBuffer,
      arrayLike: isArrayLike,
      asyncFunction: isAsyncFunction,
      asyncGenerator: isAsyncGenerator,
      asyncGeneratorFunction: isAsyncGeneratorFunction,
      asyncIterable: isAsyncIterable,
      bigint: isBigint,
      bigInt64Array: isBigInt64Array,
      bigUint64Array: isBigUint64Array,
      blob: isBlob,
      boolean: isBoolean,
      boundFunction: isBoundFunction,
      buffer: isBuffer,
      class: isClass,
      dataView: isDataView,
      date: isDate,
      detect,
      directInstanceOf: isDirectInstanceOf,
      emptyArray: isEmptyArray,
      emptyMap: isEmptyMap,
      emptyObject: isEmptyObject,
      emptySet: isEmptySet,
      emptyString: isEmptyString,
      emptyStringOrWhitespace: isEmptyStringOrWhitespace,
      enumCase: isEnumCase,
      error: isError,
      evenInteger: isEvenInteger,
      falsy: isFalsy,
      float32Array: isFloat32Array,
      float64Array: isFloat64Array,
      formData: isFormData,
      function: isFunction,
      generator: isGenerator,
      generatorFunction: isGeneratorFunction,
      htmlElement: isHtmlElement,
      infinite: isInfinite,
      inRange: isInRange,
      int16Array: isInt16Array,
      int32Array: isInt32Array,
      int8Array: isInt8Array,
      integer: isInteger,
      iterable: isIterable,
      map: isMap,
      nan: isNan,
      nativePromise: isNativePromise,
      negativeNumber: isNegativeNumber,
      nodeStream: isNodeStream,
      nonEmptyArray: isNonEmptyArray,
      nonEmptyMap: isNonEmptyMap,
      nonEmptyObject: isNonEmptyObject,
      nonEmptySet: isNonEmptySet,
      nonEmptyString: isNonEmptyString,
      nonEmptyStringAndNotWhitespace: isNonEmptyStringAndNotWhitespace,
      null: isNull,
      nullOrUndefined: isNullOrUndefined,
      number: isNumber,
      numericString: isNumericString,
      object: isObject,
      observable: isObservable,
      oddInteger: isOddInteger,
      plainObject: isPlainObject,
      positiveNumber: isPositiveNumber,
      primitive: isPrimitive,
      promise: isPromise,
      propertyKey: isPropertyKey,
      regExp: isRegExp,
      safeInteger: isSafeInteger,
      set: isSet,
      sharedArrayBuffer: isSharedArrayBuffer,
      string: isString,
      symbol: isSymbol,
      truthy: isTruthy,
      tupleLike: isTupleLike,
      typedArray: isTypedArray,
      uint16Array: isUint16Array,
      uint32Array: isUint32Array,
      uint8Array: isUint8Array,
      uint8ClampedArray: isUint8ClampedArray,
      undefined: isUndefined,
      urlInstance: isUrlInstance,
      urlSearchParams: isUrlSearchParams,
      urlString: isUrlString,
      optional: isOptional,
      validDate: isValidDate,
      validLength: isValidLength,
      weakMap: isWeakMap,
      weakRef: isWeakRef,
      weakSet: isWeakSet,
      whitespaceString: isWhitespaceString
    });
    NODE_TYPE_ELEMENT = 1;
    DOM_PROPERTIES_TO_CHECK = [
      "innerHTML",
      "ownerDocument",
      "style",
      "attributes",
      "nodeValue"
    ];
    andFormatter = new Intl.ListFormat("en", { style: "long", type: "conjunction" });
    orFormatter = new Intl.ListFormat("en", { style: "long", type: "disjunction" });
    assert = {
      all: assertAll,
      any: assertAny,
      optional: assertOptional,
      array: assertArray,
      arrayBuffer: assertArrayBuffer,
      arrayLike: assertArrayLike,
      asyncFunction: assertAsyncFunction,
      asyncGenerator: assertAsyncGenerator,
      asyncGeneratorFunction: assertAsyncGeneratorFunction,
      asyncIterable: assertAsyncIterable,
      bigint: assertBigint,
      bigInt64Array: assertBigInt64Array,
      bigUint64Array: assertBigUint64Array,
      blob: assertBlob,
      boolean: assertBoolean,
      boundFunction: assertBoundFunction,
      buffer: assertBuffer,
      class: assertClass,
      dataView: assertDataView,
      date: assertDate,
      directInstanceOf: assertDirectInstanceOf,
      emptyArray: assertEmptyArray,
      emptyMap: assertEmptyMap,
      emptyObject: assertEmptyObject,
      emptySet: assertEmptySet,
      emptyString: assertEmptyString,
      emptyStringOrWhitespace: assertEmptyStringOrWhitespace,
      enumCase: assertEnumCase,
      error: assertError,
      evenInteger: assertEvenInteger,
      falsy: assertFalsy,
      float32Array: assertFloat32Array,
      float64Array: assertFloat64Array,
      formData: assertFormData,
      function: assertFunction,
      generator: assertGenerator,
      generatorFunction: assertGeneratorFunction,
      htmlElement: assertHtmlElement,
      infinite: assertInfinite,
      inRange: assertInRange,
      int16Array: assertInt16Array,
      int32Array: assertInt32Array,
      int8Array: assertInt8Array,
      integer: assertInteger,
      iterable: assertIterable,
      map: assertMap,
      nan: assertNan,
      nativePromise: assertNativePromise,
      negativeNumber: assertNegativeNumber,
      nodeStream: assertNodeStream,
      nonEmptyArray: assertNonEmptyArray,
      nonEmptyMap: assertNonEmptyMap,
      nonEmptyObject: assertNonEmptyObject,
      nonEmptySet: assertNonEmptySet,
      nonEmptyString: assertNonEmptyString,
      nonEmptyStringAndNotWhitespace: assertNonEmptyStringAndNotWhitespace,
      null: assertNull,
      nullOrUndefined: assertNullOrUndefined,
      number: assertNumber,
      numericString: assertNumericString,
      object: assertObject,
      observable: assertObservable,
      oddInteger: assertOddInteger,
      plainObject: assertPlainObject,
      positiveNumber: assertPositiveNumber,
      primitive: assertPrimitive,
      promise: assertPromise,
      propertyKey: assertPropertyKey,
      regExp: assertRegExp,
      safeInteger: assertSafeInteger,
      set: assertSet,
      sharedArrayBuffer: assertSharedArrayBuffer,
      string: assertString,
      symbol: assertSymbol,
      truthy: assertTruthy,
      tupleLike: assertTupleLike,
      typedArray: assertTypedArray,
      uint16Array: assertUint16Array,
      uint32Array: assertUint32Array,
      uint8Array: assertUint8Array,
      uint8ClampedArray: assertUint8ClampedArray,
      undefined: assertUndefined,
      urlInstance: assertUrlInstance,
      urlSearchParams: assertUrlSearchParams,
      urlString: assertUrlString,
      validDate: assertValidDate,
      validLength: assertValidLength,
      weakMap: assertWeakMap,
      weakRef: assertWeakRef,
      weakSet: assertWeakSet,
      whitespaceString: assertWhitespaceString
    };
    methodTypeMap = {
      isArray: "Array",
      isArrayBuffer: "ArrayBuffer",
      isArrayLike: "array-like",
      isAsyncFunction: "AsyncFunction",
      isAsyncGenerator: "AsyncGenerator",
      isAsyncGeneratorFunction: "AsyncGeneratorFunction",
      isAsyncIterable: "AsyncIterable",
      isBigint: "bigint",
      isBigInt64Array: "BigInt64Array",
      isBigUint64Array: "BigUint64Array",
      isBlob: "Blob",
      isBoolean: "boolean",
      isBoundFunction: "Function",
      isBuffer: "Buffer",
      isClass: "Class",
      isDataView: "DataView",
      isDate: "Date",
      isDirectInstanceOf: "T",
      isEmptyArray: "empty array",
      isEmptyMap: "empty map",
      isEmptyObject: "empty object",
      isEmptySet: "empty set",
      isEmptyString: "empty string",
      isEmptyStringOrWhitespace: "empty string or whitespace",
      isEnumCase: "EnumCase",
      isError: "Error",
      isEvenInteger: "even integer",
      isFalsy: "falsy",
      isFloat32Array: "Float32Array",
      isFloat64Array: "Float64Array",
      isFormData: "FormData",
      isFunction: "Function",
      isGenerator: "Generator",
      isGeneratorFunction: "GeneratorFunction",
      isHtmlElement: "HTMLElement",
      isInfinite: "infinite number",
      isInRange: "in range",
      isInt16Array: "Int16Array",
      isInt32Array: "Int32Array",
      isInt8Array: "Int8Array",
      isInteger: "integer",
      isIterable: "Iterable",
      isMap: "Map",
      isNan: "NaN",
      isNativePromise: "native Promise",
      isNegativeNumber: "negative number",
      isNodeStream: "Node.js Stream",
      isNonEmptyArray: "non-empty array",
      isNonEmptyMap: "non-empty map",
      isNonEmptyObject: "non-empty object",
      isNonEmptySet: "non-empty set",
      isNonEmptyString: "non-empty string",
      isNonEmptyStringAndNotWhitespace: "non-empty string and not whitespace",
      isNull: "null",
      isNullOrUndefined: "null or undefined",
      isNumber: "number",
      isNumericString: "string with a number",
      isObject: "Object",
      isObservable: "Observable",
      isOddInteger: "odd integer",
      isPlainObject: "plain object",
      isPositiveNumber: "positive number",
      isPrimitive: "primitive",
      isPromise: "Promise",
      isPropertyKey: "PropertyKey",
      isRegExp: "RegExp",
      isSafeInteger: "integer",
      isSet: "Set",
      isSharedArrayBuffer: "SharedArrayBuffer",
      isString: "string",
      isSymbol: "symbol",
      isTruthy: "truthy",
      isTupleLike: "tuple-like",
      isTypedArray: "TypedArray",
      isUint16Array: "Uint16Array",
      isUint32Array: "Uint32Array",
      isUint8Array: "Uint8Array",
      isUint8ClampedArray: "Uint8ClampedArray",
      isUndefined: "undefined",
      isUrlInstance: "URL",
      isUrlSearchParams: "URLSearchParams",
      isUrlString: "string with a URL",
      isValidDate: "valid Date",
      isValidLength: "valid length",
      isWeakMap: "WeakMap",
      isWeakRef: "WeakRef",
      isWeakSet: "WeakSet",
      isWhitespaceString: "whitespace string"
    };
    isMethodNames = keysOf(methodTypeMap);
    distribution_default = is;
  }
});
var CancelError;
var promiseState;
var PCancelable;
var init_p_cancelable = __esm({
  "../../node_modules/.pnpm/p-cancelable@4.0.1/node_modules/p-cancelable/index.js"() {
    CancelError = class extends Error {
      constructor(reason) {
        super(reason || "Promise was canceled");
        this.name = "CancelError";
      }
      get isCanceled() {
        return true;
      }
    };
    promiseState = Object.freeze({
      pending: Symbol("pending"),
      canceled: Symbol("canceled"),
      resolved: Symbol("resolved"),
      rejected: Symbol("rejected")
    });
    PCancelable = class _PCancelable {
      static fn(userFunction) {
        return (...arguments_) => new _PCancelable((resolve2, reject, onCancel) => {
          arguments_.push(onCancel);
          userFunction(...arguments_).then(resolve2, reject);
        });
      }
      #cancelHandlers = [];
      #rejectOnCancel = true;
      #state = promiseState.pending;
      #promise;
      #reject;
      constructor(executor) {
        this.#promise = new Promise((resolve2, reject) => {
          this.#reject = reject;
          const onResolve = (value) => {
            if (this.#state !== promiseState.canceled || !onCancel.shouldReject) {
              resolve2(value);
              this.#setState(promiseState.resolved);
            }
          };
          const onReject = (error) => {
            if (this.#state !== promiseState.canceled || !onCancel.shouldReject) {
              reject(error);
              this.#setState(promiseState.rejected);
            }
          };
          const onCancel = (handler) => {
            if (this.#state !== promiseState.pending) {
              throw new Error(`The \`onCancel\` handler was attached after the promise ${this.#state.description}.`);
            }
            this.#cancelHandlers.push(handler);
          };
          Object.defineProperties(onCancel, {
            shouldReject: {
              get: () => this.#rejectOnCancel,
              set: (boolean) => {
                this.#rejectOnCancel = boolean;
              }
            }
          });
          executor(onResolve, onReject, onCancel);
        });
      }
      // eslint-disable-next-line unicorn/no-thenable
      then(onFulfilled, onRejected) {
        return this.#promise.then(onFulfilled, onRejected);
      }
      catch(onRejected) {
        return this.#promise.catch(onRejected);
      }
      finally(onFinally) {
        return this.#promise.finally(onFinally);
      }
      cancel(reason) {
        if (this.#state !== promiseState.pending) {
          return;
        }
        this.#setState(promiseState.canceled);
        if (this.#cancelHandlers.length > 0) {
          try {
            for (const handler of this.#cancelHandlers) {
              handler();
            }
          } catch (error) {
            this.#reject(error);
            return;
          }
        }
        if (this.#rejectOnCancel) {
          this.#reject(new CancelError(reason));
        }
      }
      get isCanceled() {
        return this.#state === promiseState.canceled;
      }
      #setState(state) {
        if (this.#state === promiseState.pending) {
          this.#state = state;
        }
      }
    };
    Object.setPrototypeOf(PCancelable.prototype, Promise.prototype);
  }
});
function isRequest(x3) {
  return distribution_default.object(x3) && "_onResponse" in x3;
}
var RequestError;
var MaxRedirectsError;
var HTTPError;
var CacheError;
var UploadError;
var TimeoutError;
var ReadError;
var RetryError;
var AbortError;
var init_errors = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/errors.js"() {
    init_distribution();
    RequestError = class extends Error {
      name = "RequestError";
      code = "ERR_GOT_REQUEST_ERROR";
      input;
      stack;
      response;
      request;
      timings;
      constructor(message, error, self2) {
        super(message, { cause: error });
        Error.captureStackTrace(this, this.constructor);
        if (error.code) {
          this.code = error.code;
        }
        this.input = error.input;
        if (isRequest(self2)) {
          Object.defineProperty(this, "request", {
            enumerable: false,
            value: self2
          });
          Object.defineProperty(this, "response", {
            enumerable: false,
            value: self2.response
          });
          this.options = self2.options;
        } else {
          this.options = self2;
        }
        this.timings = this.request?.timings;
        if (distribution_default.string(error.stack) && distribution_default.string(this.stack)) {
          const indexOfMessage = this.stack.indexOf(this.message) + this.message.length;
          const thisStackTrace = this.stack.slice(indexOfMessage).split("\n").reverse();
          const errorStackTrace = error.stack.slice(error.stack.indexOf(error.message) + error.message.length).split("\n").reverse();
          while (errorStackTrace.length > 0 && errorStackTrace[0] === thisStackTrace[0]) {
            thisStackTrace.shift();
          }
          this.stack = `${this.stack.slice(0, indexOfMessage)}${thisStackTrace.reverse().join("\n")}${errorStackTrace.reverse().join("\n")}`;
        }
      }
    };
    MaxRedirectsError = class extends RequestError {
      name = "MaxRedirectsError";
      code = "ERR_TOO_MANY_REDIRECTS";
      constructor(request) {
        super(`Redirected ${request.options.maxRedirects} times. Aborting.`, {}, request);
      }
    };
    HTTPError = class extends RequestError {
      name = "HTTPError";
      code = "ERR_NON_2XX_3XX_RESPONSE";
      constructor(response) {
        super(`Request failed with status code ${response.statusCode} (${response.statusMessage}): ${response.request.options.method} ${response.request.options.url.toString()}`, {}, response.request);
      }
    };
    CacheError = class extends RequestError {
      name = "CacheError";
      constructor(error, request) {
        super(error.message, error, request);
        if (this.code === "ERR_GOT_REQUEST_ERROR") {
          this.code = "ERR_CACHE_ACCESS";
        }
      }
    };
    UploadError = class extends RequestError {
      name = "UploadError";
      constructor(error, request) {
        super(error.message, error, request);
        if (this.code === "ERR_GOT_REQUEST_ERROR") {
          this.code = "ERR_UPLOAD";
        }
      }
    };
    TimeoutError = class extends RequestError {
      name = "TimeoutError";
      timings;
      event;
      constructor(error, timings, request) {
        super(error.message, error, request);
        this.event = error.event;
        this.timings = timings;
      }
    };
    ReadError = class extends RequestError {
      name = "ReadError";
      constructor(error, request) {
        super(error.message, error, request);
        if (this.code === "ERR_GOT_REQUEST_ERROR") {
          this.code = "ERR_READING_RESPONSE_STREAM";
        }
      }
    };
    RetryError = class extends RequestError {
      name = "RetryError";
      code = "ERR_RETRYING";
      constructor(request) {
        super("Retrying", {}, request);
      }
    };
    AbortError = class extends RequestError {
      name = "AbortError";
      code = "ERR_ABORTED";
      constructor(request) {
        super("This operation was aborted.", {}, request);
      }
    };
  }
});
function byteLength(data) {
  if (typeof data === "string") {
    return textEncoder.encode(data).byteLength;
  }
  if (ArrayBuffer.isView(data) || data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {
    return data.byteLength;
  }
  return 0;
}
var textEncoder;
var init_utilities2 = __esm({
  "../../node_modules/.pnpm/byte-counter@0.1.0/node_modules/byte-counter/utilities.js"() {
    textEncoder = new TextEncoder();
  }
});
var init_byte_counter = __esm({
  "../../node_modules/.pnpm/byte-counter@0.1.0/node_modules/byte-counter/index.js"() {
    init_utilities2();
  }
});
function isStream(stream5, { checkOpen = true } = {}) {
  return stream5 !== null && typeof stream5 === "object" && (stream5.writable || stream5.readable || !checkOpen || stream5.writable === void 0 && stream5.readable === void 0) && typeof stream5.pipe === "function";
}
function isReadableStream(stream5, { checkOpen = true } = {}) {
  return isStream(stream5, { checkOpen }) && (stream5.readable || !checkOpen) && typeof stream5.read === "function" && typeof stream5.readable === "boolean" && typeof stream5.readableObjectMode === "boolean" && typeof stream5.destroy === "function" && typeof stream5.destroyed === "boolean";
}
var init_is_stream = __esm({
  "../../node_modules/.pnpm/is-stream@4.0.1/node_modules/is-stream/index.js"() {
  }
});
function i() {
  return this[n].next();
}
function o(r2) {
  return this[n].return(r2);
}
function h({ preventCancel: r2 = false } = {}) {
  const e2 = this.getReader(), t9 = new c(
    e2,
    r2
  ), s2 = Object.create(u);
  return s2[n] = t9, s2;
}
var a;
var c;
var n;
var u;
var init_asyncIterator = __esm({
  "../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js"() {
    a = Object.getPrototypeOf(
      Object.getPrototypeOf(
        /* istanbul ignore next */
        async function* () {
        }
      ).prototype
    );
    c = class {
      #t;
      #n;
      #r = false;
      #e = void 0;
      constructor(e2, t9) {
        this.#t = e2, this.#n = t9;
      }
      next() {
        const e2 = () => this.#s();
        return this.#e = this.#e ? this.#e.then(e2, e2) : e2(), this.#e;
      }
      return(e2) {
        const t9 = () => this.#i(e2);
        return this.#e ? this.#e.then(t9, t9) : t9();
      }
      async #s() {
        if (this.#r)
          return {
            done: true,
            value: void 0
          };
        let e2;
        try {
          e2 = await this.#t.read();
        } catch (t9) {
          throw this.#e = void 0, this.#r = true, this.#t.releaseLock(), t9;
        }
        return e2.done && (this.#e = void 0, this.#r = true, this.#t.releaseLock()), e2;
      }
      async #i(e2) {
        if (this.#r)
          return {
            done: true,
            value: e2
          };
        if (this.#r = true, !this.#n) {
          const t9 = this.#t.cancel(e2);
          return this.#t.releaseLock(), await t9, {
            done: true,
            value: e2
          };
        }
        return this.#t.releaseLock(), {
          done: true,
          value: e2
        };
      }
    };
    n = Symbol();
    Object.defineProperty(i, "name", { value: "next" });
    Object.defineProperty(o, "name", { value: "return" });
    u = Object.create(a, {
      next: {
        enumerable: true,
        configurable: true,
        writable: true,
        value: i
      },
      return: {
        enumerable: true,
        configurable: true,
        writable: true,
        value: o
      }
    });
  }
});
var init_fromAnyIterable = __esm({
  "../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js"() {
  }
});
var init_ponyfill = __esm({
  "../../node_modules/.pnpm/@sec-ant+readable-stream@0.4.1/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js"() {
    init_asyncIterator();
    init_fromAnyIterable();
  }
});
var getAsyncIterable;
var toString;
var getStreamIterable;
var handleStreamEnd;
var nodeImports;
var init_stream = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/stream.js"() {
    init_is_stream();
    init_ponyfill();
    getAsyncIterable = (stream5) => {
      if (isReadableStream(stream5, { checkOpen: false }) && nodeImports.on !== void 0) {
        return getStreamIterable(stream5);
      }
      if (typeof stream5?.[Symbol.asyncIterator] === "function") {
        return stream5;
      }
      if (toString.call(stream5) === "[object ReadableStream]") {
        return h.call(stream5);
      }
      throw new TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.");
    };
    ({ toString } = Object.prototype);
    getStreamIterable = async function* (stream5) {
      const controller = new AbortController();
      const state = {};
      handleStreamEnd(stream5, controller, state);
      try {
        for await (const [chunk2] of nodeImports.on(stream5, "data", { signal: controller.signal })) {
          yield chunk2;
        }
      } catch (error) {
        if (state.error !== void 0) {
          throw state.error;
        } else if (!controller.signal.aborted) {
          throw error;
        }
      } finally {
        stream5.destroy();
      }
    };
    handleStreamEnd = async (stream5, controller, state) => {
      try {
        await nodeImports.finished(stream5, {
          cleanup: true,
          readable: true,
          writable: false,
          error: false
        });
      } catch (error) {
        state.error = error;
      } finally {
        controller.abort();
      }
    };
    nodeImports = {};
  }
});
var getStreamContents;
var appendFinalChunk;
var appendChunk;
var addNewChunk;
var getChunkType;
var objectToString;
var MaxBufferError;
var init_contents = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/contents.js"() {
    init_stream();
    getStreamContents = async (stream5, { init: init3, convertChunk, getSize, truncateChunk, addChunk, getFinalChunk, finalize }, { maxBuffer = Number.POSITIVE_INFINITY } = {}) => {
      const asyncIterable = getAsyncIterable(stream5);
      const state = init3();
      state.length = 0;
      try {
        for await (const chunk2 of asyncIterable) {
          const chunkType = getChunkType(chunk2);
          const convertedChunk = convertChunk[chunkType](chunk2, state);
          appendChunk({
            convertedChunk,
            state,
            getSize,
            truncateChunk,
            addChunk,
            maxBuffer
          });
        }
        appendFinalChunk({
          state,
          convertChunk,
          getSize,
          truncateChunk,
          addChunk,
          getFinalChunk,
          maxBuffer
        });
        return finalize(state);
      } catch (error) {
        const normalizedError = typeof error === "object" && error !== null ? error : new Error(error);
        normalizedError.bufferedData = finalize(state);
        throw normalizedError;
      }
    };
    appendFinalChunk = ({ state, getSize, truncateChunk, addChunk, getFinalChunk, maxBuffer }) => {
      const convertedChunk = getFinalChunk(state);
      if (convertedChunk !== void 0) {
        appendChunk({
          convertedChunk,
          state,
          getSize,
          truncateChunk,
          addChunk,
          maxBuffer
        });
      }
    };
    appendChunk = ({ convertedChunk, state, getSize, truncateChunk, addChunk, maxBuffer }) => {
      const chunkSize = getSize(convertedChunk);
      const newLength = state.length + chunkSize;
      if (newLength <= maxBuffer) {
        addNewChunk(convertedChunk, state, addChunk, newLength);
        return;
      }
      const truncatedChunk = truncateChunk(convertedChunk, maxBuffer - state.length);
      if (truncatedChunk !== void 0) {
        addNewChunk(truncatedChunk, state, addChunk, maxBuffer);
      }
      throw new MaxBufferError();
    };
    addNewChunk = (convertedChunk, state, addChunk, newLength) => {
      state.contents = addChunk(convertedChunk, state, newLength);
      state.length = newLength;
    };
    getChunkType = (chunk2) => {
      const typeOfChunk = typeof chunk2;
      if (typeOfChunk === "string") {
        return "string";
      }
      if (typeOfChunk !== "object" || chunk2 === null) {
        return "others";
      }
      if (globalThis.Buffer?.isBuffer(chunk2)) {
        return "buffer";
      }
      const prototypeName = objectToString.call(chunk2);
      if (prototypeName === "[object ArrayBuffer]") {
        return "arrayBuffer";
      }
      if (prototypeName === "[object DataView]") {
        return "dataView";
      }
      if (Number.isInteger(chunk2.byteLength) && Number.isInteger(chunk2.byteOffset) && objectToString.call(chunk2.buffer) === "[object ArrayBuffer]") {
        return "typedArray";
      }
      return "others";
    };
    ({ toString: objectToString } = Object.prototype);
    MaxBufferError = class extends Error {
      name = "MaxBufferError";
      constructor() {
        super("maxBuffer exceeded");
      }
    };
  }
});
var noop;
var throwObjectStream;
var getLengthProperty;
var init_utils = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/utils.js"() {
    noop = () => void 0;
    throwObjectStream = (chunk2) => {
      throw new Error(`Streams in object mode are not supported: ${String(chunk2)}`);
    };
    getLengthProperty = (convertedChunk) => convertedChunk.length;
  }
});
async function getStreamAsArrayBuffer(stream5, options) {
  return getStreamContents(stream5, arrayBufferMethods, options);
}
var initArrayBuffer;
var useTextEncoder;
var textEncoder2;
var useUint8Array;
var useUint8ArrayWithOffset;
var truncateArrayBufferChunk;
var addArrayBufferChunk;
var resizeArrayBufferSlow;
var resizeArrayBuffer;
var getNewContentsLength;
var SCALE_FACTOR;
var finalizeArrayBuffer;
var hasArrayBufferResize;
var arrayBufferMethods;
var init_array_buffer = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/array-buffer.js"() {
    init_contents();
    init_utils();
    initArrayBuffer = () => ({ contents: new ArrayBuffer(0) });
    useTextEncoder = (chunk2) => textEncoder2.encode(chunk2);
    textEncoder2 = new TextEncoder();
    useUint8Array = (chunk2) => new Uint8Array(chunk2);
    useUint8ArrayWithOffset = (chunk2) => new Uint8Array(chunk2.buffer, chunk2.byteOffset, chunk2.byteLength);
    truncateArrayBufferChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);
    addArrayBufferChunk = (convertedChunk, { contents, length: previousLength }, length) => {
      const newContents = hasArrayBufferResize() ? resizeArrayBuffer(contents, length) : resizeArrayBufferSlow(contents, length);
      new Uint8Array(newContents).set(convertedChunk, previousLength);
      return newContents;
    };
    resizeArrayBufferSlow = (contents, length) => {
      if (length <= contents.byteLength) {
        return contents;
      }
      const arrayBuffer = new ArrayBuffer(getNewContentsLength(length));
      new Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);
      return arrayBuffer;
    };
    resizeArrayBuffer = (contents, length) => {
      if (length <= contents.maxByteLength) {
        contents.resize(length);
        return contents;
      }
      const arrayBuffer = new ArrayBuffer(length, { maxByteLength: getNewContentsLength(length) });
      new Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);
      return arrayBuffer;
    };
    getNewContentsLength = (length) => SCALE_FACTOR ** Math.ceil(Math.log(length) / Math.log(SCALE_FACTOR));
    SCALE_FACTOR = 2;
    finalizeArrayBuffer = ({ contents, length }) => hasArrayBufferResize() ? contents : contents.slice(0, length);
    hasArrayBufferResize = () => "resize" in ArrayBuffer.prototype;
    arrayBufferMethods = {
      init: initArrayBuffer,
      convertChunk: {
        string: useTextEncoder,
        buffer: useUint8Array,
        arrayBuffer: useUint8Array,
        dataView: useUint8ArrayWithOffset,
        typedArray: useUint8ArrayWithOffset,
        others: throwObjectStream
      },
      getSize: getLengthProperty,
      truncateChunk: truncateArrayBufferChunk,
      addChunk: addArrayBufferChunk,
      getFinalChunk: noop,
      finalize: finalizeArrayBuffer
    };
  }
});
async function getStreamAsBuffer(stream5, options) {
  if (!("Buffer" in globalThis)) {
    throw new Error("getStreamAsBuffer() is only supported in Node.js");
  }
  try {
    return arrayBufferToNodeBuffer(await getStreamAsArrayBuffer(stream5, options));
  } catch (error) {
    if (error.bufferedData !== void 0) {
      error.bufferedData = arrayBufferToNodeBuffer(error.bufferedData);
    }
    throw error;
  }
}
var arrayBufferToNodeBuffer;
var init_buffer = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/buffer.js"() {
    init_array_buffer();
    arrayBufferToNodeBuffer = (arrayBuffer) => globalThis.Buffer.from(arrayBuffer);
  }
});
var init_exports = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/exports.js"() {
    init_buffer();
  }
});
var init_source = __esm({
  "../../node_modules/.pnpm/get-stream@9.0.1/node_modules/get-stream/source/index.js"() {
    init_stream();
    init_exports();
    Object.assign(nodeImports, { on: import_node_events.on, finished: import_promises.finished });
  }
});
var require_http_cache_semantics = __commonJS2({
  "../../node_modules/.pnpm/http-cache-semantics@4.2.0/node_modules/http-cache-semantics/index.js"(exports2, module2) {
    "use strict";
    var statusCodeCacheableByDefault = /* @__PURE__ */ new Set([
      200,
      203,
      204,
      206,
      300,
      301,
      308,
      404,
      405,
      410,
      414,
      501
    ]);
    var understoodStatuses = /* @__PURE__ */ new Set([
      200,
      203,
      204,
      300,
      301,
      302,
      303,
      307,
      308,
      404,
      405,
      410,
      414,
      501
    ]);
    var errorStatusCodes = /* @__PURE__ */ new Set([
      500,
      502,
      503,
      504
    ]);
    var hopByHopHeaders = {
      date: true,
      // included, because we add Age update Date
      connection: true,
      "keep-alive": true,
      "proxy-authenticate": true,
      "proxy-authorization": true,
      te: true,
      trailer: true,
      "transfer-encoding": true,
      upgrade: true
    };
    var excludedFromRevalidationUpdate = {
      // Since the old body is reused, it doesn't make sense to change properties of the body
      "content-length": true,
      "content-encoding": true,
      "transfer-encoding": true,
      "content-range": true
    };
    function toNumberOrZero(s2) {
      const n22 = parseInt(s2, 10);
      return isFinite(n22) ? n22 : 0;
    }
    function isErrorResponse(response) {
      if (!response) {
        return true;
      }
      return errorStatusCodes.has(response.status);
    }
    function parseCacheControl(header2) {
      const cc = {};
      if (!header2) return cc;
      const parts = header2.trim().split(/,/);
      for (const part of parts) {
        const [k3, v2] = part.split(/=/, 2);
        cc[k3.trim()] = v2 === void 0 ? true : v2.trim().replace(/^"|"$/g, "");
      }
      return cc;
    }
    function formatCacheControl(cc) {
      let parts = [];
      for (const k3 in cc) {
        const v2 = cc[k3];
        parts.push(v2 === true ? k3 : k3 + "=" + v2);
      }
      if (!parts.length) {
        return void 0;
      }
      return parts.join(", ");
    }
    module2.exports = class CachePolicy {
      /**
       * Creates a new CachePolicy instance.
       * @param {HttpRequest} req - Incoming client request.
       * @param {HttpResponse} res - Received server response.
       * @param {Object} [options={}] - Configuration options.
       * @param {boolean} [options.shared=true] - Is the cache shared (a public proxy)? `false` for personal browser caches.
       * @param {number} [options.cacheHeuristic=0.1] - Fallback heuristic (age fraction) for cache duration.
       * @param {number} [options.immutableMinTimeToLive=86400000] - Minimum TTL for immutable responses in milliseconds.
       * @param {boolean} [options.ignoreCargoCult=false] - Detect nonsense cache headers, and override them.
       * @param {any} [options._fromObject] - Internal parameter for deserialization. Do not use.
       */
      constructor(req, res, {
        shared,
        cacheHeuristic,
        immutableMinTimeToLive,
        ignoreCargoCult,
        _fromObject
      } = {}) {
        if (_fromObject) {
          this._fromObject(_fromObject);
          return;
        }
        if (!res || !res.headers) {
          throw Error("Response headers missing");
        }
        this._assertRequestHasHeaders(req);
        this._responseTime = this.now();
        this._isShared = shared !== false;
        this._ignoreCargoCult = !!ignoreCargoCult;
        this._cacheHeuristic = void 0 !== cacheHeuristic ? cacheHeuristic : 0.1;
        this._immutableMinTtl = void 0 !== immutableMinTimeToLive ? immutableMinTimeToLive : 24 * 3600 * 1e3;
        this._status = "status" in res ? res.status : 200;
        this._resHeaders = res.headers;
        this._rescc = parseCacheControl(res.headers["cache-control"]);
        this._method = "method" in req ? req.method : "GET";
        this._url = req.url;
        this._host = req.headers.host;
        this._noAuthorization = !req.headers.authorization;
        this._reqHeaders = res.headers.vary ? req.headers : null;
        this._reqcc = parseCacheControl(req.headers["cache-control"]);
        if (this._ignoreCargoCult && "pre-check" in this._rescc && "post-check" in this._rescc) {
          delete this._rescc["pre-check"];
          delete this._rescc["post-check"];
          delete this._rescc["no-cache"];
          delete this._rescc["no-store"];
          delete this._rescc["must-revalidate"];
          this._resHeaders = Object.assign({}, this._resHeaders, {
            "cache-control": formatCacheControl(this._rescc)
          });
          delete this._resHeaders.expires;
          delete this._resHeaders.pragma;
        }
        if (res.headers["cache-control"] == null && /no-cache/.test(res.headers.pragma)) {
          this._rescc["no-cache"] = true;
        }
      }
      /**
       * You can monkey-patch it for testing.
       * @returns {number} Current time in milliseconds.
       */
      now() {
        return Date.now();
      }
      /**
       * Determines if the response is storable in a cache.
       * @returns {boolean} `false` if can never be cached.
       */
      storable() {
        return !!(!this._reqcc["no-store"] && // A cache MUST NOT store a response to any request, unless:
        // The request method is understood by the cache and defined as being cacheable, and
        ("GET" === this._method || "HEAD" === this._method || "POST" === this._method && this._hasExplicitExpiration()) && // the response status code is understood by the cache, and
        understoodStatuses.has(this._status) && // the "no-store" cache directive does not appear in request or response header fields, and
        !this._rescc["no-store"] && // the "private" response directive does not appear in the response, if the cache is shared, and
        (!this._isShared || !this._rescc.private) && // the Authorization header field does not appear in the request, if the cache is shared,
        (!this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) && // the response either:
        // contains an Expires header field, or
        (this._resHeaders.expires || // contains a max-age response directive, or
        // contains a s-maxage response directive and the cache is shared, or
        // contains a public response directive.
        this._rescc["max-age"] || this._isShared && this._rescc["s-maxage"] || this._rescc.public || // has a status code that is defined as cacheable by default
        statusCodeCacheableByDefault.has(this._status)));
      }
      /**
       * @returns {boolean} true if expiration is explicitly defined.
       */
      _hasExplicitExpiration() {
        return !!(this._isShared && this._rescc["s-maxage"] || this._rescc["max-age"] || this._resHeaders.expires);
      }
      /**
       * @param {HttpRequest} req - a request
       * @throws {Error} if the headers are missing.
       */
      _assertRequestHasHeaders(req) {
        if (!req || !req.headers) {
          throw Error("Request headers missing");
        }
      }
      /**
       * Checks if the request matches the cache and can be satisfied from the cache immediately,
       * without having to make a request to the server.
       *
       * This doesn't support `stale-while-revalidate`. See `evaluateRequest()` for a more complete solution.
       *
       * @param {HttpRequest} req - The new incoming HTTP request.
       * @returns {boolean} `true`` if the cached response used to construct this cache policy satisfies the request without revalidation.
       */
      satisfiesWithoutRevalidation(req) {
        const result = this.evaluateRequest(req);
        return !result.revalidation;
      }
      /**
       * @param {{headers: Record<string, string>, synchronous: boolean}|undefined} revalidation - Revalidation information, if any.
       * @returns {{response: {headers: Record<string, string>}, revalidation: {headers: Record<string, string>, synchronous: boolean}|undefined}} An object with a cached response headers and revalidation info.
       */
      _evaluateRequestHitResult(revalidation) {
        return {
          response: {
            headers: this.responseHeaders()
          },
          revalidation
        };
      }
      /**
       * @param {HttpRequest} request - new incoming
       * @param {boolean} synchronous - whether revalidation must be synchronous (not s-w-r).
       * @returns {{headers: Record<string, string>, synchronous: boolean}} An object with revalidation headers and a synchronous flag.
       */
      _evaluateRequestRevalidation(request, synchronous) {
        return {
          synchronous,
          headers: this.revalidationHeaders(request)
        };
      }
      /**
       * @param {HttpRequest} request - new incoming
       * @returns {{response: undefined, revalidation: {headers: Record<string, string>, synchronous: boolean}}} An object indicating no cached response and revalidation details.
       */
      _evaluateRequestMissResult(request) {
        return {
          response: void 0,
          revalidation: this._evaluateRequestRevalidation(request, true)
        };
      }
      /**
       * Checks if the given request matches this cache entry, and how the cache can be used to satisfy it. Returns an object with:
       *
       * ```
       * {
       *     // If defined, you must send a request to the server.
       *     revalidation: {
       *         headers: {}, // HTTP headers to use when sending the revalidation response
       *         // If true, you MUST wait for a response from the server before using the cache
       *         // If false, this is stale-while-revalidate. The cache is stale, but you can use it while you update it asynchronously.
       *         synchronous: bool,
       *     },
       *     // If defined, you can use this cached response.
       *     response: {
       *         headers: {}, // Updated cached HTTP headers you must use when responding to the client
       *     },
       * }
       * ```
       * @param {HttpRequest} req - new incoming HTTP request
       * @returns {{response: {headers: Record<string, string>}|undefined, revalidation: {headers: Record<string, string>, synchronous: boolean}|undefined}} An object containing keys:
       *   - revalidation: { headers: Record<string, string>, synchronous: boolean } Set if you should send this to the origin server
       *   - response: { headers: Record<string, string> } Set if you can respond to the client with these cached headers
       */
      evaluateRequest(req) {
        this._assertRequestHasHeaders(req);
        if (this._rescc["must-revalidate"]) {
          return this._evaluateRequestMissResult(req);
        }
        if (!this._requestMatches(req, false)) {
          return this._evaluateRequestMissResult(req);
        }
        const requestCC = parseCacheControl(req.headers["cache-control"]);
        if (requestCC["no-cache"] || /no-cache/.test(req.headers.pragma)) {
          return this._evaluateRequestMissResult(req);
        }
        if (requestCC["max-age"] && this.age() > toNumberOrZero(requestCC["max-age"])) {
          return this._evaluateRequestMissResult(req);
        }
        if (requestCC["min-fresh"] && this.maxAge() - this.age() < toNumberOrZero(requestCC["min-fresh"])) {
          return this._evaluateRequestMissResult(req);
        }
        if (this.stale()) {
          const allowsStaleWithoutRevalidation = "max-stale" in requestCC && (true === requestCC["max-stale"] || requestCC["max-stale"] > this.age() - this.maxAge());
          if (allowsStaleWithoutRevalidation) {
            return this._evaluateRequestHitResult(void 0);
          }
          if (this.useStaleWhileRevalidate()) {
            return this._evaluateRequestHitResult(this._evaluateRequestRevalidation(req, false));
          }
          return this._evaluateRequestMissResult(req);
        }
        return this._evaluateRequestHitResult(void 0);
      }
      /**
       * @param {HttpRequest} req - check if this is for the same cache entry
       * @param {boolean} allowHeadMethod - allow a HEAD method to match.
       * @returns {boolean} `true` if the request matches.
       */
      _requestMatches(req, allowHeadMethod) {
        return !!((!this._url || this._url === req.url) && this._host === req.headers.host && // the request method associated with the stored response allows it to be used for the presented request, and
        (!req.method || this._method === req.method || allowHeadMethod && "HEAD" === req.method) && // selecting header fields nominated by the stored response (if any) match those presented, and
        this._varyMatches(req));
      }
      /**
       * Determines whether storing authenticated responses is allowed.
       * @returns {boolean} `true` if allowed.
       */
      _allowsStoringAuthenticated() {
        return !!(this._rescc["must-revalidate"] || this._rescc.public || this._rescc["s-maxage"]);
      }
      /**
       * Checks whether the Vary header in the response matches the new request.
       * @param {HttpRequest} req - incoming HTTP request
       * @returns {boolean} `true` if the vary headers match.
       */
      _varyMatches(req) {
        if (!this._resHeaders.vary) {
          return true;
        }
        if (this._resHeaders.vary === "*") {
          return false;
        }
        const fields = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);
        for (const name2 of fields) {
          if (req.headers[name2] !== this._reqHeaders[name2]) return false;
        }
        return true;
      }
      /**
       * Creates a copy of the given headers without any hop-by-hop headers.
       * @param {Record<string, string>} inHeaders - old headers from the cached response
       * @returns {Record<string, string>} A new headers object without hop-by-hop headers.
       */
      _copyWithoutHopByHopHeaders(inHeaders) {
        const headers = {};
        for (const name2 in inHeaders) {
          if (hopByHopHeaders[name2]) continue;
          headers[name2] = inHeaders[name2];
        }
        if (inHeaders.connection) {
          const tokens = inHeaders.connection.trim().split(/\s*,\s*/);
          for (const name2 of tokens) {
            delete headers[name2];
          }
        }
        if (headers.warning) {
          const warnings = headers.warning.split(/,/).filter((warning) => {
            return !/^\s*1[0-9][0-9]/.test(warning);
          });
          if (!warnings.length) {
            delete headers.warning;
          } else {
            headers.warning = warnings.join(",").trim();
          }
        }
        return headers;
      }
      /**
       * Returns the response headers adjusted for serving the cached response.
       * Removes hop-by-hop headers and updates the Age and Date headers.
       * @returns {Record<string, string>} The adjusted response headers.
       */
      responseHeaders() {
        const headers = this._copyWithoutHopByHopHeaders(this._resHeaders);
        const age = this.age();
        if (age > 3600 * 24 && !this._hasExplicitExpiration() && this.maxAge() > 3600 * 24) {
          headers.warning = (headers.warning ? `${headers.warning}, ` : "") + '113 - "rfc7234 5.5.4"';
        }
        headers.age = `${Math.round(age)}`;
        headers.date = new Date(this.now()).toUTCString();
        return headers;
      }
      /**
       * Returns the Date header value from the response or the current time if invalid.
       * @returns {number} Timestamp (in milliseconds) representing the Date header or response time.
       */
      date() {
        const serverDate = Date.parse(this._resHeaders.date);
        if (isFinite(serverDate)) {
          return serverDate;
        }
        return this._responseTime;
      }
      /**
       * Value of the Age header, in seconds, updated for the current time.
       * May be fractional.
       * @returns {number} The age in seconds.
       */
      age() {
        let age = this._ageValue();
        const residentTime = (this.now() - this._responseTime) / 1e3;
        return age + residentTime;
      }
      /**
       * @returns {number} The Age header value as a number.
       */
      _ageValue() {
        return toNumberOrZero(this._resHeaders.age);
      }
      /**
       * Possibly outdated value of applicable max-age (or heuristic equivalent) in seconds.
       * This counts since response's `Date`.
       *
       * For an up-to-date value, see `timeToLive()`.
       *
       * Returns the maximum age (freshness lifetime) of the response in seconds.
       * @returns {number} The max-age value in seconds.
       */
      maxAge() {
        if (!this.storable() || this._rescc["no-cache"]) {
          return 0;
        }
        if (this._isShared && (this._resHeaders["set-cookie"] && !this._rescc.public && !this._rescc.immutable)) {
          return 0;
        }
        if (this._resHeaders.vary === "*") {
          return 0;
        }
        if (this._isShared) {
          if (this._rescc["proxy-revalidate"]) {
            return 0;
          }
          if (this._rescc["s-maxage"]) {
            return toNumberOrZero(this._rescc["s-maxage"]);
          }
        }
        if (this._rescc["max-age"]) {
          return toNumberOrZero(this._rescc["max-age"]);
        }
        const defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;
        const serverDate = this.date();
        if (this._resHeaders.expires) {
          const expires = Date.parse(this._resHeaders.expires);
          if (Number.isNaN(expires) || expires < serverDate) {
            return 0;
          }
          return Math.max(defaultMinTtl, (expires - serverDate) / 1e3);
        }
        if (this._resHeaders["last-modified"]) {
          const lastModified = Date.parse(this._resHeaders["last-modified"]);
          if (isFinite(lastModified) && serverDate > lastModified) {
            return Math.max(
              defaultMinTtl,
              (serverDate - lastModified) / 1e3 * this._cacheHeuristic
            );
          }
        }
        return defaultMinTtl;
      }
      /**
       * Remaining time this cache entry may be useful for, in *milliseconds*.
       * You can use this as an expiration time for your cache storage.
       *
       * Prefer this method over `maxAge()`, because it includes other factors like `age` and `stale-while-revalidate`.
       * @returns {number} Time-to-live in milliseconds.
       */
      timeToLive() {
        const age = this.maxAge() - this.age();
        const staleIfErrorAge = age + toNumberOrZero(this._rescc["stale-if-error"]);
        const staleWhileRevalidateAge = age + toNumberOrZero(this._rescc["stale-while-revalidate"]);
        return Math.round(Math.max(0, age, staleIfErrorAge, staleWhileRevalidateAge) * 1e3);
      }
      /**
       * If true, this cache entry is past its expiration date.
       * Note that stale cache may be useful sometimes, see `evaluateRequest()`.
       * @returns {boolean} `false` doesn't mean it's fresh nor usable
       */
      stale() {
        return this.maxAge() <= this.age();
      }
      /**
       * @returns {boolean} `true` if `stale-if-error` condition allows use of a stale response.
       */
      _useStaleIfError() {
        return this.maxAge() + toNumberOrZero(this._rescc["stale-if-error"]) > this.age();
      }
      /** See `evaluateRequest()` for a more complete solution
       * @returns {boolean} `true` if `stale-while-revalidate` is currently allowed.
       */
      useStaleWhileRevalidate() {
        const swr = toNumberOrZero(this._rescc["stale-while-revalidate"]);
        return swr > 0 && this.maxAge() + swr > this.age();
      }
      /**
       * Creates a `CachePolicy` instance from a serialized object.
       * @param {Object} obj - The serialized object.
       * @returns {CachePolicy} A new CachePolicy instance.
       */
      static fromObject(obj) {
        return new this(void 0, void 0, { _fromObject: obj });
      }
      /**
       * @param {any} obj - The serialized object.
       * @throws {Error} If already initialized or if the object is invalid.
       */
      _fromObject(obj) {
        if (this._responseTime) throw Error("Reinitialized");
        if (!obj || obj.v !== 1) throw Error("Invalid serialization");
        this._responseTime = obj.t;
        this._isShared = obj.sh;
        this._cacheHeuristic = obj.ch;
        this._immutableMinTtl = obj.imm !== void 0 ? obj.imm : 24 * 3600 * 1e3;
        this._ignoreCargoCult = !!obj.icc;
        this._status = obj.st;
        this._resHeaders = obj.resh;
        this._rescc = obj.rescc;
        this._method = obj.m;
        this._url = obj.u;
        this._host = obj.h;
        this._noAuthorization = obj.a;
        this._reqHeaders = obj.reqh;
        this._reqcc = obj.reqcc;
      }
      /**
       * Serializes the `CachePolicy` instance into a JSON-serializable object.
       * @returns {Object} The serialized object.
       */
      toObject() {
        return {
          v: 1,
          t: this._responseTime,
          sh: this._isShared,
          ch: this._cacheHeuristic,
          imm: this._immutableMinTtl,
          icc: this._ignoreCargoCult,
          st: this._status,
          resh: this._resHeaders,
          rescc: this._rescc,
          m: this._method,
          u: this._url,
          h: this._host,
          a: this._noAuthorization,
          reqh: this._reqHeaders,
          reqcc: this._reqcc
        };
      }
      /**
       * Headers for sending to the origin server to revalidate stale response.
       * Allows server to return 304 to allow reuse of the previous response.
       *
       * Hop by hop headers are always stripped.
       * Revalidation headers may be added or removed, depending on request.
       * @param {HttpRequest} incomingReq - The incoming HTTP request.
       * @returns {Record<string, string>} The headers for the revalidation request.
       */
      revalidationHeaders(incomingReq) {
        this._assertRequestHasHeaders(incomingReq);
        const headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);
        delete headers["if-range"];
        if (!this._requestMatches(incomingReq, true) || !this.storable()) {
          delete headers["if-none-match"];
          delete headers["if-modified-since"];
          return headers;
        }
        if (this._resHeaders.etag) {
          headers["if-none-match"] = headers["if-none-match"] ? `${headers["if-none-match"]}, ${this._resHeaders.etag}` : this._resHeaders.etag;
        }
        const forbidsWeakValidators = headers["accept-ranges"] || headers["if-match"] || headers["if-unmodified-since"] || this._method && this._method != "GET";
        if (forbidsWeakValidators) {
          delete headers["if-modified-since"];
          if (headers["if-none-match"]) {
            const etags = headers["if-none-match"].split(/,/).filter((etag) => {
              return !/^\s*W\//.test(etag);
            });
            if (!etags.length) {
              delete headers["if-none-match"];
            } else {
              headers["if-none-match"] = etags.join(",").trim();
            }
          }
        } else if (this._resHeaders["last-modified"] && !headers["if-modified-since"]) {
          headers["if-modified-since"] = this._resHeaders["last-modified"];
        }
        return headers;
      }
      /**
       * Creates new CachePolicy with information combined from the previews response,
       * and the new revalidation response.
       *
       * Returns {policy, modified} where modified is a boolean indicating
       * whether the response body has been modified, and old cached body can't be used.
       *
       * @param {HttpRequest} request - The latest HTTP request asking for the cached entry.
       * @param {HttpResponse} response - The latest revalidation HTTP response from the origin server.
       * @returns {{policy: CachePolicy, modified: boolean, matches: boolean}} The updated policy and modification status.
       * @throws {Error} If the response headers are missing.
       */
      revalidatedPolicy(request, response) {
        this._assertRequestHasHeaders(request);
        if (this._useStaleIfError() && isErrorResponse(response)) {
          return {
            policy: this,
            modified: false,
            matches: true
          };
        }
        if (!response || !response.headers) {
          throw Error("Response headers missing");
        }
        let matches = false;
        if (response.status !== void 0 && response.status != 304) {
          matches = false;
        } else if (response.headers.etag && !/^\s*W\//.test(response.headers.etag)) {
          matches = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag;
        } else if (this._resHeaders.etag && response.headers.etag) {
          matches = this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag.replace(/^\s*W\//, "");
        } else if (this._resHeaders["last-modified"]) {
          matches = this._resHeaders["last-modified"] === response.headers["last-modified"];
        } else {
          if (!this._resHeaders.etag && !this._resHeaders["last-modified"] && !response.headers.etag && !response.headers["last-modified"]) {
            matches = true;
          }
        }
        const optionsCopy = {
          shared: this._isShared,
          cacheHeuristic: this._cacheHeuristic,
          immutableMinTimeToLive: this._immutableMinTtl,
          ignoreCargoCult: this._ignoreCargoCult
        };
        if (!matches) {
          return {
            policy: new this.constructor(request, response, optionsCopy),
            // Client receiving 304 without body, even if it's invalid/mismatched has no option
            // but to reuse a cached body. We don't have a good way to tell clients to do
            // error recovery in such case.
            modified: response.status != 304,
            matches: false
          };
        }
        const headers = {};
        for (const k3 in this._resHeaders) {
          headers[k3] = k3 in response.headers && !excludedFromRevalidationUpdate[k3] ? response.headers[k3] : this._resHeaders[k3];
        }
        const newResponse = Object.assign({}, response, {
          status: this._status,
          method: this._method,
          headers
        });
        return {
          policy: new this.constructor(request, newResponse, optionsCopy),
          modified: false,
          matches: true
        };
      }
    };
  }
});
var _serialize;
var defaultSerialize;
var defaultDeserialize;
var init_dist = __esm({
  "../../node_modules/.pnpm/@keyv+serialize@1.1.1/node_modules/@keyv/serialize/dist/index.js"() {
    _serialize = (data, escapeColonStrings = true) => {
      if (data === void 0 || data === null) {
        return "null";
      }
      if (typeof data === "string") {
        return JSON.stringify(
          escapeColonStrings && data.startsWith(":") ? `:${data}` : data
        );
      }
      if (import_buffer.Buffer.isBuffer(data)) {
        return JSON.stringify(`:base64:${data.toString("base64")}`);
      }
      if (data?.toJSON) {
        data = data.toJSON();
      }
      if (typeof data === "object") {
        let s2 = "";
        const array = Array.isArray(data);
        s2 = array ? "[" : "{";
        let first = true;
        for (const k3 in data) {
          const ignore = typeof data[k3] === "function" || !array && data[k3] === void 0;
          if (!Object.hasOwn(data, k3) || ignore) {
            continue;
          }
          if (!first) {
            s2 += ",";
          }
          first = false;
          if (array) {
            s2 += _serialize(data[k3], escapeColonStrings);
          } else if (data[k3] !== void 0) {
            s2 += `${_serialize(k3, false)}:${_serialize(data[k3], escapeColonStrings)}`;
          }
        }
        s2 += array ? "]" : "}";
        return s2;
      }
      return JSON.stringify(data);
    };
    defaultSerialize = (data) => {
      return _serialize(data, true);
    };
    defaultDeserialize = (data) => JSON.parse(data, (_3, value) => {
      if (typeof value === "string") {
        if (value.startsWith(":base64:")) {
          return import_buffer.Buffer.from(value.slice(8), "base64");
        }
        return value.startsWith(":") ? value.slice(1) : value;
      }
      return value;
    });
  }
});
var EventManager;
var event_manager_default;
var HooksManager;
var hooks_manager_default;
var StatsManager;
var stats_manager_default;
var iterableAdapters;
var Keyv;
var init_dist2 = __esm({
  "../../node_modules/.pnpm/keyv@5.6.0/node_modules/keyv/dist/index.js"() {
    init_dist();
    EventManager = class {
      _eventListeners;
      _maxListeners;
      constructor() {
        this._eventListeners = /* @__PURE__ */ new Map();
        this._maxListeners = 100;
      }
      maxListeners() {
        return this._maxListeners;
      }
      // Add an event listener
      addListener(event, listener) {
        this.on(event, listener);
      }
      on(event, listener) {
        if (!this._eventListeners.has(event)) {
          this._eventListeners.set(event, []);
        }
        const listeners = this._eventListeners.get(event);
        if (listeners) {
          if (listeners.length >= this._maxListeners) {
            console.warn(
              `MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length + 1} ${event} listeners added. Use setMaxListeners() to increase limit.`
            );
          }
          listeners.push(listener);
        }
        return this;
      }
      // Remove an event listener
      removeListener(event, listener) {
        this.off(event, listener);
      }
      off(event, listener) {
        const listeners = this._eventListeners.get(event) ?? [];
        const index = listeners.indexOf(listener);
        if (index !== -1) {
          listeners.splice(index, 1);
        }
        if (listeners.length === 0) {
          this._eventListeners.delete(event);
        }
      }
      once(event, listener) {
        const onceListener = (...arguments_) => {
          listener(...arguments_);
          this.off(event, onceListener);
        };
        this.on(event, onceListener);
      }
      // Emit an event
      // biome-ignore lint/suspicious/noExplicitAny: type format
      emit(event, ...arguments_) {
        const listeners = this._eventListeners.get(event);
        if (listeners && listeners.length > 0) {
          for (const listener of listeners) {
            listener(...arguments_);
          }
        }
      }
      // Get all listeners for a specific event
      listeners(event) {
        return this._eventListeners.get(event) ?? [];
      }
      // Remove all listeners for a specific event
      removeAllListeners(event) {
        if (event) {
          this._eventListeners.delete(event);
        } else {
          this._eventListeners.clear();
        }
      }
      // Set the maximum number of listeners for a single event
      setMaxListeners(n22) {
        this._maxListeners = n22;
      }
    };
    event_manager_default = EventManager;
    HooksManager = class extends event_manager_default {
      _hookHandlers;
      constructor() {
        super();
        this._hookHandlers = /* @__PURE__ */ new Map();
      }
      // Adds a handler function for a specific event
      addHandler(event, handler) {
        const eventHandlers = this._hookHandlers.get(event);
        if (eventHandlers) {
          eventHandlers.push(handler);
        } else {
          this._hookHandlers.set(event, [handler]);
        }
      }
      // Removes a specific handler function for a specific event
      removeHandler(event, handler) {
        const eventHandlers = this._hookHandlers.get(event);
        if (eventHandlers) {
          const index = eventHandlers.indexOf(handler);
          if (index !== -1) {
            eventHandlers.splice(index, 1);
          }
        }
      }
      // Triggers all handlers for a specific event with provided data
      // biome-ignore lint/suspicious/noExplicitAny: type format
      trigger(event, data) {
        const eventHandlers = this._hookHandlers.get(event);
        if (eventHandlers) {
          for (const handler of eventHandlers) {
            try {
              handler(data);
            } catch (error) {
              this.emit(
                "error",
                new Error(
                  `Error in hook handler for event "${event}": ${error.message}`
                )
              );
            }
          }
        }
      }
      // Provides read-only access to the current handlers
      get handlers() {
        return new Map(this._hookHandlers);
      }
    };
    hooks_manager_default = HooksManager;
    StatsManager = class extends event_manager_default {
      enabled = true;
      hits = 0;
      misses = 0;
      sets = 0;
      deletes = 0;
      errors = 0;
      constructor(enabled) {
        super();
        if (enabled !== void 0) {
          this.enabled = enabled;
        }
        this.reset();
      }
      hit() {
        if (this.enabled) {
          this.hits++;
        }
      }
      miss() {
        if (this.enabled) {
          this.misses++;
        }
      }
      set() {
        if (this.enabled) {
          this.sets++;
        }
      }
      delete() {
        if (this.enabled) {
          this.deletes++;
        }
      }
      hitsOrMisses(array) {
        for (const item of array) {
          if (item === void 0) {
            this.miss();
          } else {
            this.hit();
          }
        }
      }
      reset() {
        this.hits = 0;
        this.misses = 0;
        this.sets = 0;
        this.deletes = 0;
        this.errors = 0;
      }
    };
    stats_manager_default = StatsManager;
    iterableAdapters = [
      "sqlite",
      "postgres",
      "mysql",
      "mongo",
      "redis",
      "valkey",
      "etcd"
    ];
    Keyv = class extends event_manager_default {
      opts;
      iterator;
      hooks = new hooks_manager_default();
      stats = new stats_manager_default(false);
      /**
       * Time to live in milliseconds
       */
      _ttl;
      /**
       * Namespace
       */
      _namespace;
      /**
       * Store
       */
      // biome-ignore lint/suspicious/noExplicitAny: type format
      _store = /* @__PURE__ */ new Map();
      _serialize = defaultSerialize;
      _deserialize = defaultDeserialize;
      _compression;
      _useKeyPrefix = true;
      _throwOnErrors = false;
      /**
       * Keyv Constructor
       * @param {KeyvStoreAdapter | KeyvOptions} store
       * @param {Omit<KeyvOptions, 'store'>} [options] if you provide the store you can then provide the Keyv Options
       */
      constructor(store, options) {
        super();
        options ??= {};
        store ??= {};
        this.opts = {
          namespace: "keyv",
          serialize: defaultSerialize,
          deserialize: defaultDeserialize,
          emitErrors: true,
          // @ts-expect-error - Map is not a KeyvStoreAdapter
          store: /* @__PURE__ */ new Map(),
          ...options
        };
        if (store && store.get) {
          this.opts.store = store;
        } else {
          this.opts = {
            ...this.opts,
            ...store
          };
        }
        this._store = this.opts.store ?? /* @__PURE__ */ new Map();
        this._compression = this.opts.compression;
        this._serialize = this.opts.serialize;
        this._deserialize = this.opts.deserialize;
        if (this.opts.namespace) {
          this._namespace = this.opts.namespace;
        }
        if (this._store) {
          if (!this._isValidStorageAdapter(this._store)) {
            throw new Error("Invalid storage adapter");
          }
          if (typeof this._store.on === "function") {
            this._store.on("error", (error) => this.emit("error", error));
          }
          this._store.namespace = this._namespace;
          if (typeof this._store[Symbol.iterator] === "function" && this._store instanceof Map) {
            this.iterator = this.generateIterator(
              this._store
            );
          } else if ("iterator" in this._store && this._store.opts && this._checkIterableAdapter()) {
            this.iterator = this.generateIterator(
              // biome-ignore lint/style/noNonNullAssertion: need to fix
              this._store.iterator.bind(this._store)
            );
          }
        }
        if (this.opts.stats) {
          this.stats.enabled = this.opts.stats;
        }
        if (this.opts.ttl) {
          this._ttl = this.opts.ttl;
        }
        if (this.opts.useKeyPrefix !== void 0) {
          this._useKeyPrefix = this.opts.useKeyPrefix;
        }
        if (this.opts.throwOnErrors !== void 0) {
          this._throwOnErrors = this.opts.throwOnErrors;
        }
      }
      /**
       * Get the current store
       */
      // biome-ignore lint/suspicious/noExplicitAny: type format
      get store() {
        return this._store;
      }
      /**
       * Set the current store. This will also set the namespace, event error handler, and generate the iterator. If the store is not valid it will throw an error.
       * @param {KeyvStoreAdapter | Map<any, any> | any} store the store to set
       */
      // biome-ignore lint/suspicious/noExplicitAny: type format
      set store(store) {
        if (this._isValidStorageAdapter(store)) {
          this._store = store;
          this.opts.store = store;
          if (typeof store.on === "function") {
            store.on("error", (error) => this.emit("error", error));
          }
          if (this._namespace) {
            this._store.namespace = this._namespace;
          }
          if (typeof store[Symbol.iterator] === "function" && store instanceof Map) {
            this.iterator = this.generateIterator(
              store
            );
          } else if ("iterator" in store && store.opts && this._checkIterableAdapter()) {
            this.iterator = this.generateIterator(store.iterator?.bind(store));
          }
        } else {
          throw new Error("Invalid storage adapter");
        }
      }
      /**
       * Get the current compression function
       * @returns {CompressionAdapter} The current compression function
       */
      get compression() {
        return this._compression;
      }
      /**
       * Set the current compression function
       * @param {CompressionAdapter} compress The compression function to set
       */
      set compression(compress) {
        this._compression = compress;
      }
      /**
       * Get the current namespace.
       * @returns {string | undefined} The current namespace.
       */
      get namespace() {
        return this._namespace;
      }
      /**
       * Set the current namespace.
       * @param {string | undefined} namespace The namespace to set.
       */
      set namespace(namespace) {
        this._namespace = namespace;
        this.opts.namespace = namespace;
        this._store.namespace = namespace;
        if (this.opts.store) {
          this.opts.store.namespace = namespace;
        }
      }
      /**
       * Get the current TTL.
       * @returns {number} The current TTL in milliseconds.
       */
      get ttl() {
        return this._ttl;
      }
      /**
       * Set the current TTL.
       * @param {number} ttl The TTL to set in milliseconds.
       */
      set ttl(ttl2) {
        this.opts.ttl = ttl2;
        this._ttl = ttl2;
      }
      /**
       * Get the current serialize function.
       * @returns {Serialize} The current serialize function.
       */
      get serialize() {
        return this._serialize;
      }
      /**
       * Set the current serialize function.
       * @param {Serialize} serialize The serialize function to set.
       */
      set serialize(serialize2) {
        this.opts.serialize = serialize2;
        this._serialize = serialize2;
      }
      /**
       * Get the current deserialize function.
       * @returns {Deserialize} The current deserialize function.
       */
      get deserialize() {
        return this._deserialize;
      }
      /**
       * Set the current deserialize function.
       * @param {Deserialize} deserialize The deserialize function to set.
       */
      set deserialize(deserialize) {
        this.opts.deserialize = deserialize;
        this._deserialize = deserialize;
      }
      /**
       * Get the current useKeyPrefix value. This will enable or disable key prefixing.
       * @returns {boolean} The current useKeyPrefix value.
       * @default true
       */
      get useKeyPrefix() {
        return this._useKeyPrefix;
      }
      /**
       * Set the current useKeyPrefix value. This will enable or disable key prefixing.
       * @param {boolean} value The useKeyPrefix value to set.
       */
      set useKeyPrefix(value) {
        this._useKeyPrefix = value;
        this.opts.useKeyPrefix = value;
      }
      /**
       * Get the current throwErrors value. This will enable or disable throwing errors on methods in addition to emitting them.
       * @return {boolean} The current throwOnErrors value.
       */
      get throwOnErrors() {
        return this._throwOnErrors;
      }
      /**
       * Set the current throwOnErrors value. This will enable or disable throwing errors on methods in addition to emitting them.
       * @param {boolean} value The throwOnErrors value to set.
       */
      set throwOnErrors(value) {
        this._throwOnErrors = value;
        this.opts.throwOnErrors = value;
      }
      generateIterator(iterator2) {
        const function_ = async function* () {
          for await (const [key, raw] of typeof iterator2 === "function" ? iterator2(this._store.namespace) : iterator2) {
            const data = await this.deserializeData(raw);
            if (this._useKeyPrefix && this._store.namespace && !key.includes(this._store.namespace)) {
              continue;
            }
            if (typeof data.expires === "number" && Date.now() > data.expires) {
              await this.delete(key);
              continue;
            }
            yield [this._getKeyUnprefix(key), data.value];
          }
        };
        return function_.bind(this);
      }
      _checkIterableAdapter() {
        return iterableAdapters.includes(this._store.opts.dialect) || iterableAdapters.some(
          (element) => this._store.opts.url.includes(element)
        );
      }
      _getKeyPrefix(key) {
        if (!this._useKeyPrefix) {
          return key;
        }
        if (!this._namespace) {
          return key;
        }
        if (key.startsWith(`${this._namespace}:`)) {
          return key;
        }
        return `${this._namespace}:${key}`;
      }
      _getKeyPrefixArray(keys) {
        if (!this._useKeyPrefix) {
          return keys;
        }
        if (!this._namespace) {
          return keys;
        }
        return keys.map((key) => `${this._namespace}:${key}`);
      }
      _getKeyUnprefix(key) {
        if (!this._useKeyPrefix) {
          return key;
        }
        return key.split(":").splice(1).join(":");
      }
      // biome-ignore lint/suspicious/noExplicitAny: type format
      _isValidStorageAdapter(store) {
        return store instanceof Map || typeof store.get === "function" && typeof store.set === "function" && typeof store.delete === "function" && typeof store.clear === "function";
      }
      // eslint-disable-next-line @stylistic/max-len
      async get(key, options) {
        const { store } = this.opts;
        const isArray3 = Array.isArray(key);
        const keyPrefixed = isArray3 ? this._getKeyPrefixArray(key) : this._getKeyPrefix(key);
        const isDataExpired = (data) => typeof data.expires === "number" && Date.now() > data.expires;
        if (isArray3) {
          if (options?.raw === true) {
            return this.getMany(key, { raw: true });
          }
          return this.getMany(key, { raw: false });
        }
        this.hooks.trigger("preGet", { key: keyPrefixed });
        let rawData;
        try {
          rawData = await store.get(keyPrefixed);
        } catch (error) {
          if (this.throwOnErrors) {
            throw error;
          }
        }
        const deserializedData = typeof rawData === "string" || this.opts.compression ? await this.deserializeData(rawData) : rawData;
        if (deserializedData === void 0 || deserializedData === null) {
          this.hooks.trigger("postGet", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          return void 0;
        }
        if (isDataExpired(deserializedData)) {
          await this.delete(key);
          this.hooks.trigger("postGet", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          return void 0;
        }
        this.hooks.trigger("postGet", {
          key: keyPrefixed,
          value: deserializedData
        });
        this.stats.hit();
        return options?.raw ? deserializedData : deserializedData.value;
      }
      async getMany(keys, options) {
        const { store } = this.opts;
        const keyPrefixed = this._getKeyPrefixArray(keys);
        const isDataExpired = (data) => typeof data.expires === "number" && Date.now() > data.expires;
        this.hooks.trigger("preGetMany", { keys: keyPrefixed });
        if (store.getMany === void 0) {
          const promises = keyPrefixed.map(async (key) => {
            const rawData2 = await store.get(key);
            const deserializedRow = typeof rawData2 === "string" || this.opts.compression ? await this.deserializeData(rawData2) : rawData2;
            if (deserializedRow === void 0 || deserializedRow === null) {
              return void 0;
            }
            if (isDataExpired(deserializedRow)) {
              await this.delete(key);
              return void 0;
            }
            return options?.raw ? deserializedRow : deserializedRow.value;
          });
          const deserializedRows = await Promise.allSettled(promises);
          const result2 = deserializedRows.map(
            // biome-ignore lint/suspicious/noExplicitAny: type format
            (row) => row.value
          );
          this.hooks.trigger("postGetMany", result2);
          if (result2.length > 0) {
            this.stats.hit();
          }
          return result2;
        }
        const rawData = await store.getMany(keyPrefixed);
        const result = [];
        const expiredKeys = [];
        for (const index in rawData) {
          let row = rawData[index];
          if (typeof row === "string") {
            row = await this.deserializeData(row);
          }
          if (row === void 0 || row === null) {
            result.push(void 0);
            continue;
          }
          if (isDataExpired(row)) {
            expiredKeys.push(keys[index]);
            result.push(void 0);
            continue;
          }
          const value = options?.raw ? row : row.value;
          result.push(value);
        }
        if (expiredKeys.length > 0) {
          await this.deleteMany(expiredKeys);
        }
        this.hooks.trigger("postGetMany", result);
        if (result.length > 0) {
          this.stats.hit();
        }
        return result;
      }
      /**
       * Get the raw value of a key. This is the replacement for setting raw to true in the get() method.
       * @param {string} key the key to get
       * @returns {Promise<StoredDataRaw<Value> | undefined>} will return a StoredDataRaw<Value> or undefined if the key does not exist or is expired.
       */
      async getRaw(key) {
        const { store } = this.opts;
        const keyPrefixed = this._getKeyPrefix(key);
        this.hooks.trigger("preGetRaw", { key: keyPrefixed });
        const rawData = await store.get(keyPrefixed);
        if (rawData === void 0 || rawData === null) {
          this.hooks.trigger("postGetRaw", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          return void 0;
        }
        const deserializedData = typeof rawData === "string" || this.opts.compression ? await this.deserializeData(rawData) : rawData;
        if (deserializedData !== void 0 && deserializedData.expires !== void 0 && deserializedData.expires !== null && // biome-ignore lint/style/noNonNullAssertion: need to fix
        deserializedData.expires < Date.now()) {
          this.hooks.trigger("postGetRaw", {
            key: keyPrefixed,
            value: void 0
          });
          this.stats.miss();
          await this.delete(key);
          return void 0;
        }
        this.stats.hit();
        this.hooks.trigger("postGetRaw", {
          key: keyPrefixed,
          value: deserializedData
        });
        return deserializedData;
      }
      /**
       * Get the raw values of many keys. This is the replacement for setting raw to true in the getMany() method.
       * @param {string[]} keys the keys to get
       * @returns {Promise<Array<StoredDataRaw<Value>>>} will return an array of StoredDataRaw<Value> or undefined if the key does not exist or is expired.
       */
      async getManyRaw(keys) {
        const { store } = this.opts;
        const keyPrefixed = this._getKeyPrefixArray(keys);
        if (keys.length === 0) {
          const result2 = Array.from({ length: keys.length }).fill(
            void 0
          );
          this.stats.misses += keys.length;
          this.hooks.trigger("postGetManyRaw", {
            keys: keyPrefixed,
            values: result2
          });
          return result2;
        }
        let result = [];
        if (store.getMany === void 0) {
          const promises = keyPrefixed.map(async (key) => {
            const rawData = await store.get(key);
            if (rawData !== void 0 && rawData !== null) {
              return this.deserializeData(rawData);
            }
            return void 0;
          });
          const deserializedRows = await Promise.allSettled(promises);
          result = deserializedRows.map(
            // biome-ignore lint/suspicious/noExplicitAny: type format
            (row) => row.value
          );
        } else {
          const rawData = await store.getMany(keyPrefixed);
          for (const row of rawData) {
            if (row !== void 0 && row !== null) {
              result.push(await this.deserializeData(row));
            } else {
              result.push(void 0);
            }
          }
        }
        const expiredKeys = [];
        const isDataExpired = (data) => typeof data.expires === "number" && Date.now() > data.expires;
        for (const [index, row] of result.entries()) {
          if (row !== void 0 && isDataExpired(row)) {
            expiredKeys.push(keyPrefixed[index]);
            result[index] = void 0;
          }
        }
        if (expiredKeys.length > 0) {
          await this.deleteMany(expiredKeys);
        }
        this.stats.hitsOrMisses(result);
        this.hooks.trigger("postGetManyRaw", {
          keys: keyPrefixed,
          values: result
        });
        return result;
      }
      /**
       * Set an item to the store
       * @param {string | Array<KeyvEntry>} key the key to use. If you pass in an array of KeyvEntry it will set many items
       * @param {Value} value the value of the key
       * @param {number} [ttl] time to live in milliseconds
       * @returns {boolean} if it sets then it will return a true. On failure will return false.
       */
      async set(key, value, ttl2) {
        const data = { key, value, ttl: ttl2 };
        this.hooks.trigger("preSet", data);
        const keyPrefixed = this._getKeyPrefix(data.key);
        data.ttl ??= this._ttl;
        if (data.ttl === 0) {
          data.ttl = void 0;
        }
        const { store } = this.opts;
        const expires = typeof data.ttl === "number" ? Date.now() + data.ttl : void 0;
        if (typeof data.value === "symbol") {
          this.emit("error", "symbol cannot be serialized");
          throw new Error("symbol cannot be serialized");
        }
        const formattedValue = { value: data.value, expires };
        const serializedValue = await this.serializeData(formattedValue);
        let result = true;
        try {
          const value2 = await store.set(keyPrefixed, serializedValue, data.ttl);
          if (typeof value2 === "boolean") {
            result = value2;
          }
        } catch (error) {
          result = false;
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
        }
        this.hooks.trigger("postSet", {
          key: keyPrefixed,
          value: serializedValue,
          ttl: ttl2
        });
        this.stats.set();
        return result;
      }
      /**
       * Set many items to the store
       * @param {Array<KeyvEntry>} entries the entries to set
       * @returns {boolean[]} will return an array of booleans if it sets then it will return a true. On failure will return false.
       */
      // biome-ignore lint/correctness/noUnusedVariables: type format
      async setMany(entries2) {
        let results = [];
        try {
          if (this._store.setMany === void 0) {
            const promises = [];
            for (const entry of entries2) {
              promises.push(this.set(entry.key, entry.value, entry.ttl));
            }
            const promiseResults = await Promise.all(promises);
            results = promiseResults;
          } else {
            const serializedEntries = await Promise.all(
              entries2.map(async ({ key, value, ttl: ttl2 }) => {
                ttl2 ??= this._ttl;
                if (ttl2 === 0) {
                  ttl2 = void 0;
                }
                const expires = typeof ttl2 === "number" ? Date.now() + ttl2 : void 0;
                if (typeof value === "symbol") {
                  this.emit("error", "symbol cannot be serialized");
                  throw new Error("symbol cannot be serialized");
                }
                const formattedValue = { value, expires };
                const serializedValue = await this.serializeData(formattedValue);
                const keyPrefixed = this._getKeyPrefix(key);
                return { key: keyPrefixed, value: serializedValue, ttl: ttl2 };
              })
            );
            results = await this._store.setMany(serializedEntries);
          }
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
          results = entries2.map(() => false);
        }
        return results;
      }
      /**
       * Delete an Entry
       * @param {string | string[]} key the key to be deleted. if an array it will delete many items
       * @returns {boolean} will return true if item or items are deleted. false if there is an error
       */
      async delete(key) {
        const { store } = this.opts;
        if (Array.isArray(key)) {
          return this.deleteMany(key);
        }
        const keyPrefixed = this._getKeyPrefix(key);
        this.hooks.trigger("preDelete", { key: keyPrefixed });
        let result = true;
        try {
          const value = await store.delete(keyPrefixed);
          if (typeof value === "boolean") {
            result = value;
          }
        } catch (error) {
          result = false;
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
        }
        this.hooks.trigger("postDelete", {
          key: keyPrefixed,
          value: result
        });
        this.stats.delete();
        return result;
      }
      /**
       * Delete many items from the store
       * @param {string[]} keys the keys to be deleted
       * @returns {boolean} will return true if item or items are deleted. false if there is an error
       */
      async deleteMany(keys) {
        try {
          const { store } = this.opts;
          const keyPrefixed = this._getKeyPrefixArray(keys);
          this.hooks.trigger("preDelete", { key: keyPrefixed });
          if (store.deleteMany !== void 0) {
            return await store.deleteMany(keyPrefixed);
          }
          const promises = keyPrefixed.map(async (key) => store.delete(key));
          const results = await Promise.all(promises);
          const returnResult = results.every(Boolean);
          this.hooks.trigger("postDelete", {
            key: keyPrefixed,
            value: returnResult
          });
          return returnResult;
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
          return false;
        }
      }
      /**
       * Clear the store
       * @returns {void}
       */
      async clear() {
        this.emit("clear");
        const { store } = this.opts;
        try {
          await store.clear();
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
        }
      }
      async has(key) {
        if (Array.isArray(key)) {
          return this.hasMany(key);
        }
        const keyPrefixed = this._getKeyPrefix(key);
        const { store } = this.opts;
        if (store.has !== void 0 && !(store instanceof Map)) {
          return store.has(keyPrefixed);
        }
        let rawData;
        try {
          rawData = await store.get(keyPrefixed);
        } catch (error) {
          this.emit("error", error);
          if (this._throwOnErrors) {
            throw error;
          }
          return false;
        }
        if (rawData) {
          const data = await this.deserializeData(rawData);
          if (data) {
            if (data.expires === void 0 || data.expires === null) {
              return true;
            }
            return data.expires > Date.now();
          }
        }
        return false;
      }
      /**
       * Check if many keys exist
       * @param {string[]} keys the keys to check
       * @returns {boolean[]} will return an array of booleans if the keys exist
       */
      async hasMany(keys) {
        const keyPrefixed = this._getKeyPrefixArray(keys);
        const { store } = this.opts;
        if (store.hasMany !== void 0) {
          return store.hasMany(keyPrefixed);
        }
        const results = [];
        for (const key of keys) {
          results.push(await this.has(key));
        }
        return results;
      }
      /**
       * Will disconnect the store. This is only available if the store has a disconnect method
       * @returns {Promise<void>}
       */
      async disconnect() {
        const { store } = this.opts;
        this.emit("disconnect");
        if (typeof store.disconnect === "function") {
          return store.disconnect();
        }
      }
      // biome-ignore lint/suspicious/noExplicitAny: type format
      emit(event, ...arguments_) {
        if (event === "error" && !this.opts.emitErrors) {
          return;
        }
        super.emit(event, ...arguments_);
      }
      async serializeData(data) {
        if (!this._serialize) {
          return data;
        }
        if (this._compression?.compress) {
          return this._serialize({
            value: await this._compression.compress(data.value),
            expires: data.expires
          });
        }
        return this._serialize(data);
      }
      async deserializeData(data) {
        if (!this._deserialize) {
          return data;
        }
        if (this._compression?.decompress && typeof data === "string") {
          const result = await this._deserialize(data);
          return {
            value: await this._compression.decompress(result?.value),
            expires: result?.expires
          };
        }
        if (typeof data === "string") {
          return this._deserialize(data);
        }
        return void 0;
      }
    };
  }
});
function mimicResponse(fromStream3, toStream) {
  if (toStream._readableState.autoDestroy) {
    throw new Error("The second stream must have the `autoDestroy` option set to `false`");
  }
  const fromProperties = /* @__PURE__ */ new Set([...Object.keys(fromStream3), ...knownProperties]);
  const properties = {};
  for (const property of fromProperties) {
    if (property in toStream) {
      continue;
    }
    properties[property] = {
      get() {
        const value = fromStream3[property];
        const isFunction5 = typeof value === "function";
        return isFunction5 ? value.bind(fromStream3) : value;
      },
      set(value) {
        fromStream3[property] = value;
      },
      enumerable: true,
      configurable: false
    };
  }
  Object.defineProperties(toStream, properties);
  fromStream3.once("aborted", () => {
    toStream.destroy();
    toStream.emit("aborted");
  });
  fromStream3.once("close", () => {
    if (fromStream3.complete) {
      if (toStream.readable) {
        toStream.once("end", () => {
          toStream.emit("close");
        });
      } else {
        toStream.emit("close");
      }
    } else {
      toStream.emit("close");
    }
  });
  return toStream;
}
var knownProperties;
var init_mimic_response = __esm({
  "../../node_modules/.pnpm/mimic-response@4.0.0/node_modules/mimic-response/index.js"() {
    knownProperties = [
      "aborted",
      "complete",
      "headers",
      "httpVersion",
      "httpVersionMinor",
      "httpVersionMajor",
      "method",
      "rawHeaders",
      "rawTrailers",
      "setTimeout",
      "socket",
      "statusCode",
      "statusMessage",
      "trailers",
      "url"
    ];
  }
});
function normalizeUrl(urlString, options) {
  options = {
    defaultProtocol: "http",
    normalizeProtocol: true,
    forceHttp: false,
    forceHttps: false,
    stripAuthentication: true,
    stripHash: false,
    stripTextFragment: true,
    stripWWW: true,
    removeQueryParameters: [/^utm_\w+/i],
    removeTrailingSlash: true,
    removeSingleSlash: true,
    removeDirectoryIndex: false,
    removeExplicitPort: false,
    sortQueryParameters: true,
    removePath: false,
    transformPath: false,
    ...options
  };
  if (typeof options.defaultProtocol === "string" && !options.defaultProtocol.endsWith(":")) {
    options.defaultProtocol = `${options.defaultProtocol}:`;
  }
  urlString = urlString.trim();
  if (/^data:/i.test(urlString)) {
    return normalizeDataURL(urlString, options);
  }
  if (hasCustomProtocol(urlString)) {
    return urlString;
  }
  const hasRelativeProtocol = urlString.startsWith("//");
  const isRelativeUrl = !hasRelativeProtocol && /^\.*\//.test(urlString);
  if (!isRelativeUrl) {
    urlString = urlString.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, options.defaultProtocol);
  }
  const urlObject = new URL(urlString);
  if (options.forceHttp && options.forceHttps) {
    throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");
  }
  if (options.forceHttp && urlObject.protocol === "https:") {
    urlObject.protocol = "http:";
  }
  if (options.forceHttps && urlObject.protocol === "http:") {
    urlObject.protocol = "https:";
  }
  if (options.stripAuthentication) {
    urlObject.username = "";
    urlObject.password = "";
  }
  if (options.stripHash) {
    urlObject.hash = "";
  } else if (options.stripTextFragment) {
    urlObject.hash = urlObject.hash.replace(/#?:~:text.*?$/i, "");
  }
  if (urlObject.pathname) {
    const protocolRegex = /\b[a-z][a-z\d+\-.]{1,50}:\/\//g;
    let lastIndex = 0;
    let result = "";
    for (; ; ) {
      const match = protocolRegex.exec(urlObject.pathname);
      if (!match) {
        break;
      }
      const protocol = match[0];
      const protocolAtIndex = match.index;
      const intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex);
      result += intermediate.replace(/\/{2,}/g, "/");
      result += protocol;
      lastIndex = protocolAtIndex + protocol.length;
    }
    const remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length);
    result += remnant.replace(/\/{2,}/g, "/");
    urlObject.pathname = result;
  }
  if (urlObject.pathname) {
    try {
      urlObject.pathname = decodeURI(urlObject.pathname).replace(/\\/g, "%5C");
    } catch {
    }
  }
  if (options.removeDirectoryIndex === true) {
    options.removeDirectoryIndex = [/^index\.[a-z]+$/];
  }
  if (Array.isArray(options.removeDirectoryIndex) && options.removeDirectoryIndex.length > 0) {
    const pathComponents = urlObject.pathname.split("/").filter(Boolean);
    const lastComponent = pathComponents.at(-1);
    if (lastComponent && testParameter(lastComponent, options.removeDirectoryIndex)) {
      pathComponents.pop();
      urlObject.pathname = pathComponents.length > 0 ? `/${pathComponents.join("/")}/` : "/";
    }
  }
  if (options.removePath) {
    urlObject.pathname = "/";
  }
  if (options.transformPath && typeof options.transformPath === "function") {
    const pathComponents = urlObject.pathname.split("/").filter(Boolean);
    const newComponents = options.transformPath(pathComponents);
    urlObject.pathname = newComponents?.length > 0 ? `/${newComponents.join("/")}` : "/";
  }
  if (urlObject.hostname) {
    urlObject.hostname = urlObject.hostname.replace(/\.$/, "");
    if (options.stripWWW && /^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(urlObject.hostname)) {
      urlObject.hostname = urlObject.hostname.replace(/^www\./, "");
    }
  }
  if (Array.isArray(options.removeQueryParameters)) {
    for (const key of [...urlObject.searchParams.keys()]) {
      if (testParameter(key, options.removeQueryParameters)) {
        urlObject.searchParams.delete(key);
      }
    }
  }
  if (!Array.isArray(options.keepQueryParameters) && options.removeQueryParameters === true) {
    urlObject.search = "";
  }
  if (Array.isArray(options.keepQueryParameters) && options.keepQueryParameters.length > 0) {
    for (const key of [...urlObject.searchParams.keys()]) {
      if (!testParameter(key, options.keepQueryParameters)) {
        urlObject.searchParams.delete(key);
      }
    }
  }
  if (options.sortQueryParameters) {
    const originalSearch = urlObject.search;
    urlObject.searchParams.sort();
    try {
      urlObject.search = decodeURIComponent(urlObject.search);
    } catch {
    }
    const partsWithoutEquals = originalSearch.slice(1).split("&").filter((p) => p && !p.includes("="));
    for (const part of partsWithoutEquals) {
      const decoded = decodeURIComponent(part);
      urlObject.search = urlObject.search.replace(`?${decoded}=`, `?${decoded}`).replace(`&${decoded}=`, `&${decoded}`);
    }
  }
  if (options.removeTrailingSlash) {
    urlObject.pathname = urlObject.pathname.replace(/\/$/, "");
  }
  if (options.removeExplicitPort && urlObject.port) {
    urlObject.port = "";
  }
  const oldUrlString = urlString;
  urlString = urlObject.toString();
  if (!options.removeSingleSlash && urlObject.pathname === "/" && !oldUrlString.endsWith("/") && urlObject.hash === "") {
    urlString = urlString.replace(/\/$/, "");
  }
  if ((options.removeTrailingSlash || urlObject.pathname === "/") && urlObject.hash === "" && options.removeSingleSlash) {
    urlString = urlString.replace(/\/$/, "");
  }
  if (hasRelativeProtocol && !options.normalizeProtocol) {
    urlString = urlString.replace(/^http:\/\//, "//");
  }
  if (options.stripProtocol) {
    urlString = urlString.replace(/^(?:https?:)?\/\//, "");
  }
  return urlString;
}
var DATA_URL_DEFAULT_MIME_TYPE;
var DATA_URL_DEFAULT_CHARSET;
var testParameter;
var supportedProtocols;
var hasCustomProtocol;
var normalizeDataURL;
var init_normalize_url = __esm({
  "../../node_modules/.pnpm/normalize-url@8.1.1/node_modules/normalize-url/index.js"() {
    DATA_URL_DEFAULT_MIME_TYPE = "text/plain";
    DATA_URL_DEFAULT_CHARSET = "us-ascii";
    testParameter = (name2, filters) => filters.some((filter22) => filter22 instanceof RegExp ? filter22.test(name2) : filter22 === name2);
    supportedProtocols = /* @__PURE__ */ new Set([
      "https:",
      "http:",
      "file:"
    ]);
    hasCustomProtocol = (urlString) => {
      try {
        const { protocol } = new URL(urlString);
        return protocol.endsWith(":") && !protocol.includes(".") && !supportedProtocols.has(protocol);
      } catch {
        return false;
      }
    };
    normalizeDataURL = (urlString, { stripHash }) => {
      const match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);
      if (!match) {
        throw new Error(`Invalid URL: ${urlString}`);
      }
      const { type, data, hash } = match.groups;
      const mediaType = type.split(";");
      const isBase64 = mediaType.at(-1) === "base64";
      if (isBase64) {
        mediaType.pop();
      }
      const mimeType = mediaType.shift()?.toLowerCase() ?? "";
      const attributes = mediaType.map((attribute) => {
        let [key, value = ""] = attribute.split("=").map((string) => string.trim());
        if (key === "charset") {
          value = value.toLowerCase();
          if (value === DATA_URL_DEFAULT_CHARSET) {
            return "";
          }
        }
        return `${key}${value ? `=${value}` : ""}`;
      }).filter(Boolean);
      const normalizedMediaType = [...attributes];
      if (isBase64) {
        normalizedMediaType.push("base64");
      }
      if (normalizedMediaType.length > 0 || mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE) {
        normalizedMediaType.unshift(mimeType);
      }
      const hashPart = stripHash || !hash ? "" : `#${hash}`;
      return `data:${normalizedMediaType.join(";")},${isBase64 ? data.trim() : data}${hashPart}`;
    };
  }
});
function lowercaseKeys(object) {
  return Object.fromEntries(Object.entries(object).map(([key, value]) => [key.toLowerCase(), value]));
}
var init_lowercase_keys = __esm({
  "../../node_modules/.pnpm/lowercase-keys@3.0.0/node_modules/lowercase-keys/index.js"() {
  }
});
var Response;
var init_responselike = __esm({
  "../../node_modules/.pnpm/responselike@4.0.2/node_modules/responselike/index.js"() {
    init_lowercase_keys();
    Response = class extends import_node_stream.Readable {
      statusCode;
      headers;
      body;
      url;
      complete;
      constructor({ statusCode, headers, body, url: url2 }) {
        if (typeof statusCode !== "number") {
          throw new TypeError("Argument `statusCode` should be a number");
        }
        if (typeof headers !== "object") {
          throw new TypeError("Argument `headers` should be an object");
        }
        if (!(body instanceof Uint8Array)) {
          throw new TypeError("Argument `body` should be a buffer");
        }
        if (typeof url2 !== "string") {
          throw new TypeError("Argument `url` should be a string");
        }
        let bodyPushed = false;
        super({
          read() {
            if (!bodyPushed) {
              bodyPushed = true;
              this.push(body);
              return;
            }
            this.push(null);
          }
        });
        this.statusCode = statusCode;
        this.headers = lowercaseKeys(headers);
        this.body = body;
        this.url = url2;
        this.complete = true;
      }
    };
  }
});
var RequestError2;
var CacheError2;
var init_types = __esm({
  "../../node_modules/.pnpm/cacheable-request@13.0.18/node_modules/cacheable-request/dist/types.js"() {
    RequestError2 = class extends Error {
      constructor(error) {
        super(error.message);
        Object.defineProperties(this, Object.getOwnPropertyDescriptors(error));
      }
    };
    CacheError2 = class extends Error {
      constructor(error) {
        super(error.message);
        Object.defineProperties(this, Object.getOwnPropertyDescriptors(error));
      }
    };
  }
});
var import_http_cache_semantics;
var CacheableRequest;
var entries;
var cloneResponse;
var urlObjectToRequestOptions;
var normalizeUrlObject;
var convertHeaders;
var parseWithWhatwg;
var dist_default;
var init_dist3 = __esm({
  "../../node_modules/.pnpm/cacheable-request@13.0.18/node_modules/cacheable-request/dist/index.js"() {
    init_source();
    import_http_cache_semantics = __toESM2(require_http_cache_semantics(), 1);
    init_dist2();
    init_mimic_response();
    init_normalize_url();
    init_responselike();
    init_types();
    init_types();
    CacheableRequest = class {
      constructor(cacheRequest, cacheAdapter) {
        this.cache = new Keyv({ namespace: "cacheable-request" });
        this.hooks = /* @__PURE__ */ new Map();
        this.request = () => (options, callback) => {
          let url2;
          if (typeof options === "string") {
            url2 = normalizeUrlObject(parseWithWhatwg(options));
            options = {};
          } else if (options instanceof import_node_url.default.URL) {
            url2 = normalizeUrlObject(parseWithWhatwg(options.toString()));
            options = {};
          } else {
            const [pathname, ...searchParts] = (options.path ?? "").split("?");
            const search = searchParts.length > 0 ? `?${searchParts.join("?")}` : "";
            url2 = normalizeUrlObject({ ...options, pathname, search });
          }
          options = {
            headers: {},
            method: "GET",
            cache: true,
            strictTtl: false,
            automaticFailover: false,
            ...options,
            ...urlObjectToRequestOptions(url2)
          };
          options.headers = Object.fromEntries(entries(options.headers).map(([key2, value]) => [
            key2.toLowerCase(),
            value
          ]));
          const ee3 = new import_node_events2.default();
          const normalizedUrlString = normalizeUrl(import_node_url.default.format(url2), {
            stripWWW: false,
            removeTrailingSlash: false,
            stripAuthentication: false
          });
          let key = `${options.method}:${normalizedUrlString}`;
          if (options.body && options.method !== void 0 && ["POST", "PATCH", "PUT"].includes(options.method)) {
            if (options.body instanceof import_node_stream2.default.Readable) {
              options.cache = false;
            } else {
              key += `:${import_node_crypto.default.createHash("md5").update(options.body).digest("hex")}`;
            }
          }
          let revalidate = false;
          let madeRequest = false;
          const makeRequest = (options_) => {
            madeRequest = true;
            let requestErrored = false;
            let requestErrorCallback = () => {
            };
            const requestErrorPromise = new Promise((resolve2) => {
              requestErrorCallback = () => {
                if (!requestErrored) {
                  requestErrored = true;
                  resolve2();
                }
              };
            });
            const handler = async (response) => {
              if (revalidate) {
                response.status = response.statusCode;
                const originalPolicy = import_http_cache_semantics.default.fromObject(revalidate.cachePolicy);
                const revalidatedPolicy = originalPolicy.revalidatedPolicy(options_, response);
                if (!revalidatedPolicy.modified) {
                  response.resume();
                  await new Promise((resolve2) => {
                    response.once("end", resolve2);
                  });
                  const headers = convertHeaders(revalidatedPolicy.policy.responseHeaders());
                  const originalHeaders = convertHeaders(originalPolicy.responseHeaders());
                  const preserveHeaders = [
                    "content-encoding",
                    "content-type",
                    "content-length",
                    "content-language",
                    "content-location",
                    "etag"
                  ];
                  for (const headerName of preserveHeaders) {
                    if (originalHeaders[headerName] !== void 0 && headers[headerName] === void 0) {
                      headers[headerName] = originalHeaders[headerName];
                    }
                  }
                  response = new Response({
                    statusCode: revalidate.statusCode,
                    headers,
                    body: revalidate.body,
                    url: revalidate.url
                  });
                  response.cachePolicy = revalidatedPolicy.policy;
                  response.fromCache = true;
                }
              }
              if (!response.fromCache) {
                response.cachePolicy = new import_http_cache_semantics.default(options_, response, options_);
                response.fromCache = false;
              }
              let clonedResponse;
              if (options_.cache && response.cachePolicy.storable()) {
                clonedResponse = cloneResponse(response);
                (async () => {
                  try {
                    const bodyPromise = getStreamAsBuffer(response);
                    await Promise.race([
                      requestErrorPromise,
                      new Promise((resolve2) => response.once("end", resolve2)),
                      new Promise((resolve2) => response.once("close", resolve2))
                    ]);
                    const body = await bodyPromise;
                    let value = {
                      url: response.url,
                      statusCode: response.fromCache ? revalidate.statusCode : response.statusCode,
                      body,
                      cachePolicy: response.cachePolicy.toObject()
                    };
                    let ttl2 = options_.strictTtl ? response.cachePolicy.timeToLive() : void 0;
                    if (options_.maxTtl) {
                      ttl2 = ttl2 ? Math.min(ttl2, options_.maxTtl) : options_.maxTtl;
                    }
                    if (this.hooks.size > 0) {
                      for (const key_ of this.hooks.keys()) {
                        value = await this.runHook(key_, value, response);
                      }
                    }
                    await this.cache.set(key, value, ttl2);
                  } catch (error) {
                    ee3.emit("error", new CacheError2(error));
                  }
                })();
              } else if (options_.cache && revalidate) {
                (async () => {
                  try {
                    await this.cache.delete(key);
                  } catch (error) {
                    ee3.emit("error", new CacheError2(error));
                  }
                })();
              }
              ee3.emit("response", clonedResponse ?? response);
              if (typeof callback === "function") {
                callback(clonedResponse ?? response);
              }
            };
            try {
              const request_ = this.cacheRequest(options_, handler);
              request_.once("error", requestErrorCallback);
              request_.once("abort", requestErrorCallback);
              request_.once("destroy", requestErrorCallback);
              ee3.emit("request", request_);
            } catch (error) {
              ee3.emit("error", new RequestError2(error));
            }
          };
          (async () => {
            const get2 = async (options_) => {
              await Promise.resolve();
              const cacheEntry = options_.cache ? await this.cache.get(key) : void 0;
              if (cacheEntry === void 0 && !options_.forceRefresh) {
                makeRequest(options_);
                return;
              }
              const policy = import_http_cache_semantics.default.fromObject(cacheEntry.cachePolicy);
              if (policy.satisfiesWithoutRevalidation(options_) && !options_.forceRefresh) {
                const headers = convertHeaders(policy.responseHeaders());
                const bodyBuffer = cacheEntry.body;
                const body = Buffer.from(bodyBuffer);
                const response = new Response({
                  statusCode: cacheEntry.statusCode,
                  headers,
                  body,
                  url: cacheEntry.url
                });
                response.cachePolicy = policy;
                response.fromCache = true;
                ee3.emit("response", response);
                if (typeof callback === "function") {
                  callback(response);
                }
              } else if (policy.satisfiesWithoutRevalidation(options_) && Date.now() >= policy.timeToLive() && options_.forceRefresh) {
                await this.cache.delete(key);
                options_.headers = policy.revalidationHeaders(options_);
                makeRequest(options_);
              } else {
                revalidate = cacheEntry;
                options_.headers = policy.revalidationHeaders(options_);
                makeRequest(options_);
              }
            };
            const errorHandler = (error) => ee3.emit("error", new CacheError2(error));
            if (this.cache instanceof Keyv) {
              const cachek = this.cache;
              cachek.once("error", errorHandler);
              ee3.on("error", () => {
                cachek.removeListener("error", errorHandler);
              });
              ee3.on("response", () => {
                cachek.removeListener("error", errorHandler);
              });
            }
            try {
              await get2(options);
            } catch (error) {
              if (options.automaticFailover && !madeRequest) {
                makeRequest(options);
              }
              ee3.emit("error", new CacheError2(error));
            }
          })();
          return ee3;
        };
        this.addHook = (name2, function_) => {
          if (!this.hooks.has(name2)) {
            this.hooks.set(name2, function_);
          }
        };
        this.removeHook = (name2) => this.hooks.delete(name2);
        this.getHook = (name2) => this.hooks.get(name2);
        this.runHook = async (name2, ...arguments_) => this.hooks.get(name2)?.(...arguments_);
        if (cacheAdapter) {
          if (cacheAdapter instanceof Keyv) {
            this.cache = cacheAdapter;
          } else {
            this.cache = new Keyv({
              store: cacheAdapter,
              namespace: "cacheable-request"
            });
          }
        }
        this.request = this.request.bind(this);
        this.cacheRequest = cacheRequest;
      }
    };
    entries = Object.entries;
    cloneResponse = (response) => {
      const clone = new import_node_stream2.PassThrough({ autoDestroy: false });
      mimicResponse(response, clone);
      return response.pipe(clone);
    };
    urlObjectToRequestOptions = (url2) => {
      const options = { ...url2 };
      options.path = `${url2.pathname || "/"}${url2.search || ""}`;
      delete options.pathname;
      delete options.search;
      return options;
    };
    normalizeUrlObject = (url2) => (
      // If url was parsed by url.parse or new URL:
      // - hostname will be set
      // - host will be hostname[:port]
      // - port will be set if it was explicit in the parsed string
      // Otherwise, url was from request options:
      // - hostname or host may be set
      // - host shall not have port encoded
      {
        protocol: url2.protocol,
        auth: url2.auth,
        hostname: url2.hostname || url2.host || "localhost",
        port: url2.port,
        pathname: url2.pathname,
        search: url2.search
      }
    );
    convertHeaders = (headers) => {
      const result = [];
      for (const name2 of Object.keys(headers)) {
        result[name2.toLowerCase()] = headers[name2];
      }
      return result;
    };
    parseWithWhatwg = (raw) => {
      const u2 = new import_node_url.URL(raw);
      return {
        protocol: u2.protocol,
        // E.g. 'https:'
        slashes: true,
        // Always true for WHATWG URLs
        /* c8 ignore next 3 */
        auth: u2.username || u2.password ? `${u2.username}:${u2.password}` : void 0,
        host: u2.host,
        // E.g. 'example.com:8080'
        port: u2.port,
        // E.g. '8080'
        hostname: u2.hostname,
        // E.g. 'example.com'
        hash: u2.hash,
        // E.g. '#quux'
        search: u2.search,
        // E.g. '?bar=baz'
        query: Object.fromEntries(u2.searchParams),
        // { bar: 'baz' }
        pathname: u2.pathname,
        // E.g. '/foo'
        path: u2.pathname + u2.search,
        // '/foo?bar=baz'
        href: u2.href
        // Full serialized URL
      };
    };
    dist_default = CacheableRequest;
  }
});
function decompressResponse(response) {
  const contentEncoding = (response.headers["content-encoding"] || "").toLowerCase();
  const supportedEncodings = ["gzip", "deflate", "br"];
  if (supportsZstd) {
    supportedEncodings.push("zstd");
  }
  if (!supportedEncodings.includes(contentEncoding)) {
    return response;
  }
  let isEmpty = true;
  const headers = { ...response.headers };
  const finalStream = new import_node_stream3.PassThrough({
    autoDestroy: false
  });
  finalStream.once("error", () => {
    response.destroy();
  });
  function handleContentEncoding(data) {
    let decompressStream;
    if (contentEncoding === "zstd") {
      decompressStream = import_node_zlib.default.createZstdDecompress();
    } else if (contentEncoding === "br") {
      decompressStream = import_node_zlib.default.createBrotliDecompress();
    } else if (contentEncoding === "deflate" && data.length > 0 && (data[0] & 8) === 0) {
      decompressStream = import_node_zlib.default.createInflateRaw();
    } else {
      decompressStream = import_node_zlib.default.createUnzip();
    }
    decompressStream.once("error", (error) => {
      if (isEmpty && !response.readable) {
        finalStream.end();
        return;
      }
      finalStream.destroy(error);
    });
    checker.pipe(decompressStream).pipe(finalStream);
  }
  const checker = new import_node_stream3.Transform({
    transform(data, _encoding, callback) {
      if (isEmpty === false) {
        callback(null, data);
        return;
      }
      isEmpty = false;
      handleContentEncoding(data);
      callback(null, data);
    },
    flush(callback) {
      if (isEmpty) {
        finalStream.end();
      }
      callback();
    }
  });
  delete headers["content-encoding"];
  delete headers["content-length"];
  finalStream.headers = headers;
  mimicResponse(response, finalStream);
  response.pipe(checker);
  return finalStream;
}
var supportsZstd;
var init_decompress_response = __esm({
  "../../node_modules/.pnpm/decompress-response@10.0.0/node_modules/decompress-response/index.js"() {
    init_mimic_response();
    supportsZstd = typeof import_node_zlib.default.createZstdDecompress === "function";
  }
});
function* chunk(value) {
  if (value.byteLength <= MAX_CHUNK_SIZE) {
    yield value;
    return;
  }
  let offset = 0;
  while (offset < value.byteLength) {
    const size = Math.min(value.byteLength - offset, MAX_CHUNK_SIZE);
    const buffer = value.buffer.slice(offset, offset + size);
    offset += buffer.byteLength;
    yield new Uint8Array(buffer);
  }
}
function createBoundary() {
  let size = 16;
  let res = "";
  while (size--) {
    res += alphabet[Math.random() * alphabet.length << 0];
  }
  return res;
}
async function* readStream(readable) {
  const reader = readable.getReader();
  while (true) {
    const { done, value } = await reader.read();
    if (done) {
      break;
    }
    yield value;
  }
}
async function* chunkStream(stream5) {
  for await (const value of stream5) {
    yield* chunk(value);
  }
}
function isPlainObject2(value) {
  if (getType(value) !== "object") {
    return false;
  }
  const pp = Object.getPrototypeOf(value);
  if (pp === null || pp === void 0) {
    return true;
  }
  return pp.constructor?.toString?.() === Object.toString();
}
function getProperty(target, prop) {
  if (typeof prop === "string") {
    for (const [name2, value] of Object.entries(target)) {
      if (prop.toLowerCase() === name2.toLowerCase()) {
        return value;
      }
    }
  }
  return void 0;
}
var __typeError;
var __accessCheck;
var __privateGet;
var __privateAdd;
var __privateSet;
var __privateMethod;
var MAX_CHUNK_SIZE;
var alphabet;
var escapeName;
var isFunction2;
var isReadableStreamFallback;
var isAsyncIterable2;
var getStreamIterator;
var isFile;
var isFormData2;
var getType;
var normalizeValue;
var proxyHeaders;
var defaultOptions;
var readonlyProp;
var _CRLF;
var _CRLF_BYTES;
var _CRLF_BYTES_LENGTH;
var _DASHES;
var _encoder;
var _footer;
var _form;
var _options;
var _FormDataEncoder_instances;
var getFieldHeader_fn;
var getContentLength_fn;
var FormDataEncoder;
var init_lib = __esm({
  "../../node_modules/.pnpm/form-data-encoder@4.1.0/node_modules/form-data-encoder/lib/index.js"() {
    __typeError = (msg) => {
      throw TypeError(msg);
    };
    __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
    __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
    __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
    __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
    __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
    MAX_CHUNK_SIZE = 65536;
    alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
    escapeName = (name2) => String(name2).replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/"/g, "%22");
    isFunction2 = (value) => typeof value === "function";
    isReadableStreamFallback = (value) => !!value && typeof value === "object" && !Array.isArray(value) && isFunction2(value.getReader);
    isAsyncIterable2 = (value) => isFunction2(value[Symbol.asyncIterator]);
    getStreamIterator = (source) => {
      if (isAsyncIterable2(source)) {
        return chunkStream(source);
      }
      if (isReadableStreamFallback(source)) {
        return chunkStream(readStream(source));
      }
      throw new TypeError(
        "Unsupported data source: Expected either ReadableStream or async iterable."
      );
    };
    isFile = (value) => Boolean(
      value && typeof value === "object" && isFunction2(value.constructor) && value[Symbol.toStringTag] === "File" && isFunction2(value.stream) && value.name != null
    );
    isFormData2 = (value) => Boolean(
      value && isFunction2(value.constructor) && value[Symbol.toStringTag] === "FormData" && isFunction2(value.append) && isFunction2(value.getAll) && isFunction2(value.entries) && isFunction2(value[Symbol.iterator])
    );
    getType = (value) => Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
    normalizeValue = (value) => String(value).replace(/\r|\n/g, (match, i22, str) => {
      if (match === "\r" && str[i22 + 1] !== "\n" || match === "\n" && str[i22 - 1] !== "\r") {
        return "\r\n";
      }
      return match;
    });
    proxyHeaders = (object) => new Proxy(
      object,
      {
        get: (target, prop) => getProperty(target, prop),
        has: (target, prop) => getProperty(target, prop) !== void 0
      }
    );
    defaultOptions = {
      enableAdditionalHeaders: false
    };
    readonlyProp = { writable: false, configurable: false };
    FormDataEncoder = class {
      constructor(form, boundaryOrOptions, options) {
        __privateAdd(this, _FormDataEncoder_instances);
        __privateAdd(this, _CRLF, "\r\n");
        __privateAdd(this, _CRLF_BYTES);
        __privateAdd(this, _CRLF_BYTES_LENGTH);
        __privateAdd(this, _DASHES, "-".repeat(2));
        __privateAdd(this, _encoder, new TextEncoder());
        __privateAdd(this, _footer);
        __privateAdd(this, _form);
        __privateAdd(this, _options);
        if (!isFormData2(form)) {
          throw new TypeError("Expected first argument to be a FormData instance.");
        }
        let boundary;
        if (isPlainObject2(boundaryOrOptions)) {
          options = boundaryOrOptions;
        } else {
          boundary = boundaryOrOptions;
        }
        if (!boundary) {
          boundary = `form-data-encoder-${createBoundary()}`;
        }
        if (typeof boundary !== "string") {
          throw new TypeError("Expected boundary argument to be a string.");
        }
        if (options && !isPlainObject2(options)) {
          throw new TypeError("Expected options argument to be an object.");
        }
        __privateSet(this, _form, Array.from(form.entries()));
        __privateSet(this, _options, { ...defaultOptions, ...options });
        __privateSet(this, _CRLF_BYTES, __privateGet(this, _encoder).encode(__privateGet(this, _CRLF)));
        __privateSet(this, _CRLF_BYTES_LENGTH, __privateGet(this, _CRLF_BYTES).byteLength);
        this.boundary = boundary;
        this.contentType = `multipart/form-data; boundary=${this.boundary}`;
        __privateSet(this, _footer, __privateGet(this, _encoder).encode(
          `${__privateGet(this, _DASHES)}${this.boundary}${__privateGet(this, _DASHES)}${__privateGet(this, _CRLF).repeat(2)}`
        ));
        const headers = {
          "Content-Type": this.contentType
        };
        const contentLength = __privateMethod(this, _FormDataEncoder_instances, getContentLength_fn).call(this);
        if (contentLength) {
          this.contentLength = contentLength;
          headers["Content-Length"] = contentLength;
        }
        this.headers = proxyHeaders(Object.freeze(headers));
        Object.defineProperties(this, {
          boundary: readonlyProp,
          contentType: readonlyProp,
          contentLength: readonlyProp,
          headers: readonlyProp
        });
      }
      /**
       * Creates an iterator allowing to go through form-data parts (with metadata).
       * This method **will not** read the files and **will not** split values big into smaller chunks.
       *
       * Using this method, you can convert form-data content into Blob:
       *
       * @example
       *
       * ```ts
       * import {Readable} from "stream"
       *
       * import {FormDataEncoder} from "form-data-encoder"
       *
       * import {FormData} from "formdata-polyfill/esm-min.js"
       * import {fileFrom} from "fetch-blob/form.js"
       * import {File} from "fetch-blob/file.js"
       * import {Blob} from "fetch-blob"
       *
       * import fetch from "node-fetch"
       *
       * const form = new FormData()
       *
       * form.set("field", "Just a random string")
       * form.set("file", new File(["Using files is class amazing"]))
       * form.set("fileFromPath", await fileFrom("path/to/a/file.txt"))
       *
       * const encoder = new FormDataEncoder(form)
       *
       * const options = {
       *   method: "post",
       *   body: new Blob(encoder, {type: encoder.contentType})
       * }
       *
       * const response = await fetch("https://httpbin.org/post", options)
       *
       * console.log(await response.json())
       * ```
       */
      *values() {
        for (const [name2, raw] of __privateGet(this, _form)) {
          const value = isFile(raw) ? raw : __privateGet(this, _encoder).encode(normalizeValue(raw));
          yield __privateMethod(this, _FormDataEncoder_instances, getFieldHeader_fn).call(this, name2, value);
          yield value;
          yield __privateGet(this, _CRLF_BYTES);
        }
        yield __privateGet(this, _footer);
      }
      /**
       * Creates an async iterator allowing to perform the encoding by portions.
       * This method reads through files and splits big values into smaller pieces (65536 bytes per each).
       *
       * @example
       *
       * ```ts
       * import {Readable} from "stream"
       *
       * import {FormData, File, fileFromPath} from "formdata-node"
       * import {FormDataEncoder} from "form-data-encoder"
       *
       * import fetch from "node-fetch"
       *
       * const form = new FormData()
       *
       * form.set("field", "Just a random string")
       * form.set("file", new File(["Using files is class amazing"], "file.txt"))
       * form.set("fileFromPath", await fileFromPath("path/to/a/file.txt"))
       *
       * const encoder = new FormDataEncoder(form)
       *
       * const options = {
       *   method: "post",
       *   headers: encoder.headers,
       *   body: Readable.from(encoder.encode()) // or Readable.from(encoder)
       * }
       *
       * const response = await fetch("https://httpbin.org/post", options)
       *
       * console.log(await response.json())
       * ```
       */
      async *encode() {
        for (const part of this.values()) {
          if (isFile(part)) {
            yield* getStreamIterator(part.stream());
          } else {
            yield* chunk(part);
          }
        }
      }
      /**
       * Creates an iterator allowing to read through the encoder data using for...of loops
       */
      [Symbol.iterator]() {
        return this.values();
      }
      /**
       * Creates an **async** iterator allowing to read through the encoder data using for-await...of loops
       */
      [Symbol.asyncIterator]() {
        return this.encode();
      }
    };
    _CRLF = /* @__PURE__ */ new WeakMap();
    _CRLF_BYTES = /* @__PURE__ */ new WeakMap();
    _CRLF_BYTES_LENGTH = /* @__PURE__ */ new WeakMap();
    _DASHES = /* @__PURE__ */ new WeakMap();
    _encoder = /* @__PURE__ */ new WeakMap();
    _footer = /* @__PURE__ */ new WeakMap();
    _form = /* @__PURE__ */ new WeakMap();
    _options = /* @__PURE__ */ new WeakMap();
    _FormDataEncoder_instances = /* @__PURE__ */ new WeakSet();
    getFieldHeader_fn = function(name2, value) {
      let header2 = "";
      header2 += `${__privateGet(this, _DASHES)}${this.boundary}${__privateGet(this, _CRLF)}`;
      header2 += `Content-Disposition: form-data; name="${escapeName(name2)}"`;
      if (isFile(value)) {
        header2 += `; filename="${escapeName(value.name)}"${__privateGet(this, _CRLF)}`;
        header2 += `Content-Type: ${value.type || "application/octet-stream"}`;
      }
      if (__privateGet(this, _options).enableAdditionalHeaders === true) {
        const size = isFile(value) ? value.size : value.byteLength;
        if (size != null && !isNaN(size)) {
          header2 += `${__privateGet(this, _CRLF)}Content-Length: ${size}`;
        }
      }
      return __privateGet(this, _encoder).encode(`${header2}${__privateGet(this, _CRLF).repeat(2)}`);
    };
    getContentLength_fn = function() {
      let length = 0;
      for (const [name2, raw] of __privateGet(this, _form)) {
        const value = isFile(raw) ? raw : __privateGet(this, _encoder).encode(normalizeValue(raw));
        const size = isFile(value) ? value.size : value.byteLength;
        if (size == null || isNaN(size)) {
          return void 0;
        }
        length += __privateMethod(this, _FormDataEncoder_instances, getFieldHeader_fn).call(this, name2, value).byteLength;
        length += size;
        length += __privateGet(this, _CRLF_BYTES_LENGTH);
      }
      return String(length + __privateGet(this, _footer).byteLength);
    };
  }
});
function isTlsSocket(socket) {
  return "encrypted" in socket;
}
var deferToConnect;
var defer_to_connect_default;
var init_defer_to_connect = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/defer-to-connect.js"() {
    deferToConnect = (socket, fn3) => {
      let listeners;
      if (typeof fn3 === "function") {
        const connect2 = fn3;
        listeners = { connect: connect2 };
      } else {
        listeners = fn3;
      }
      const hasConnectListener = typeof listeners.connect === "function";
      const hasSecureConnectListener = typeof listeners.secureConnect === "function";
      const hasCloseListener = typeof listeners.close === "function";
      const onConnect = () => {
        if (hasConnectListener) {
          listeners.connect();
        }
        if (isTlsSocket(socket) && hasSecureConnectListener) {
          if (socket.authorized) {
            listeners.secureConnect();
          } else {
            socket.once("secureConnect", listeners.secureConnect);
          }
        }
        if (hasCloseListener) {
          socket.once("close", listeners.close);
        }
      };
      if (socket.writable && !socket.connecting) {
        onConnect();
      } else if (socket.connecting) {
        socket.once("connect", onConnect);
      } else if (socket.destroyed && hasCloseListener) {
        const hadError = "_hadError" in socket ? Boolean(socket._hadError) : false;
        listeners.close(hadError);
      }
    };
    defer_to_connect_default = deferToConnect;
  }
});
var timer;
var timer_default;
var init_timer = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/timer.js"() {
    init_defer_to_connect();
    timer = (request) => {
      if (request.timings) {
        return request.timings;
      }
      const timings = {
        start: Date.now(),
        socket: void 0,
        lookup: void 0,
        connect: void 0,
        secureConnect: void 0,
        upload: void 0,
        response: void 0,
        end: void 0,
        error: void 0,
        abort: void 0,
        phases: {
          wait: void 0,
          dns: void 0,
          tcp: void 0,
          tls: void 0,
          request: void 0,
          firstByte: void 0,
          download: void 0,
          total: void 0
        }
      };
      request.timings = timings;
      const handleError = (origin2) => {
        origin2.once(import_node_events3.errorMonitor, () => {
          timings.error = Date.now();
          timings.phases.total = timings.error - timings.start;
        });
      };
      handleError(request);
      const onAbort = () => {
        timings.abort = Date.now();
        timings.phases.total = timings.abort - timings.start;
      };
      request.prependOnceListener("abort", onAbort);
      const onSocket = (socket) => {
        timings.socket = Date.now();
        timings.phases.wait = timings.socket - timings.start;
        if (import_node_util.types.isProxy(socket)) {
          return;
        }
        const socketAlreadyConnected = socket.writable && !socket.connecting;
        if (socketAlreadyConnected) {
          timings.lookup = timings.socket;
          timings.connect = timings.socket;
          if (socket.__initial_connection_timings__) {
            timings.phases.dns = socket.__initial_connection_timings__.dnsPhase;
            timings.phases.tcp = socket.__initial_connection_timings__.tcpPhase;
            timings.phases.tls = socket.__initial_connection_timings__.tlsPhase;
            if (timings.phases.tls !== void 0) {
              timings.secureConnect = timings.socket;
            }
          } else {
            timings.phases.dns = 0;
            timings.phases.tcp = 0;
          }
          return;
        }
        const lookupListener = () => {
          timings.lookup = Date.now();
          timings.phases.dns = timings.lookup - timings.socket;
        };
        socket.prependOnceListener("lookup", lookupListener);
        defer_to_connect_default(socket, {
          connect() {
            timings.connect = Date.now();
            if (timings.lookup === void 0) {
              socket.removeListener("lookup", lookupListener);
              timings.lookup = timings.socket;
              timings.phases.dns = 0;
            }
            timings.phases.tcp = timings.connect - timings.lookup;
            if (timings.phases.tcp === 0 && timings.phases.dns && timings.phases.dns > 0) {
              timings.phases.dns = 0;
            }
            if (!socket.__initial_connection_timings__) {
              socket.__initial_connection_timings__ = {
                dnsPhase: timings.phases.dns,
                // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TypeScript can't prove this is defined due to callback structure
                tcpPhase: timings.phases.tcp
              };
            }
          },
          secureConnect() {
            timings.secureConnect = Date.now();
            timings.phases.tls = timings.secureConnect - timings.connect;
            if (socket.__initial_connection_timings__) {
              socket.__initial_connection_timings__.tlsPhase = timings.phases.tls;
            }
          }
        });
      };
      if (request.socket) {
        onSocket(request.socket);
      } else {
        request.prependOnceListener("socket", onSocket);
      }
      const onUpload = () => {
        timings.upload = Date.now();
        const secureOrConnect = timings.secureConnect ?? timings.connect;
        if (secureOrConnect !== void 0) {
          timings.phases.request = timings.upload - secureOrConnect;
        }
      };
      if (request.writableFinished) {
        onUpload();
      } else {
        request.prependOnceListener("finish", onUpload);
      }
      request.prependOnceListener("response", (response) => {
        timings.response = Date.now();
        timings.phases.firstByte = timings.response - timings.upload;
        response.timings = timings;
        handleError(response);
        response.prependOnceListener("end", () => {
          request.off("abort", onAbort);
          response.off("aborted", onAbort);
          if (timings.phases.total !== void 0) {
            return;
          }
          timings.end = Date.now();
          timings.phases.download = timings.end - timings.response;
          timings.phases.total = timings.end - timings.start;
        });
        response.prependOnceListener("aborted", onAbort);
      });
      return timings;
    };
    timer_default = timer;
  }
});
function isFormData3(body) {
  return distribution_default.nodeStream(body) && distribution_default.function(body.getBoundary);
}
var init_is_form_data = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-form-data.js"() {
    init_distribution();
  }
});
async function getBodySize(body, headers) {
  if (headers && "content-length" in headers) {
    return Number(headers["content-length"]);
  }
  if (!body) {
    return 0;
  }
  if (distribution_default.string(body)) {
    return new TextEncoder().encode(body).byteLength;
  }
  if (distribution_default.buffer(body)) {
    return body.length;
  }
  if (distribution_default.typedArray(body)) {
    return body.byteLength;
  }
  if (isFormData3(body)) {
    try {
      return await (0, import_node_util2.promisify)(body.getLength.bind(body))();
    } catch (error) {
      const typedError = error;
      throw new Error(`Cannot determine content-length for form-data with stream(s) of unknown length. This is a limitation of the \`form-data\` package. To fix this, either:
1. Use the \`knownLength\` option when appending streams:
   form.append('file', stream, {knownLength: 12345});
2. Switch to spec-compliant FormData (formdata-node package)
See: https://github.com/form-data/form-data#alternative-submission-methods
Original error: ${typedError.message}`);
    }
  }
  return void 0;
}
var init_get_body_size = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/get-body-size.js"() {
    init_distribution();
    init_is_form_data();
  }
});
function proxyEvents(from, to2, events) {
  const eventFunctions = {};
  for (const event of events) {
    const eventFunction = (...arguments_) => {
      to2.emit(event, ...arguments_);
    };
    eventFunctions[event] = eventFunction;
    from.on(event, eventFunction);
  }
  return () => {
    for (const [event, eventFunction] of Object.entries(eventFunctions)) {
      from.off(event, eventFunction);
    }
  };
}
var init_proxy_events = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/proxy-events.js"() {
  }
});
function unhandle() {
  const handlers2 = [];
  return {
    once(origin2, event, function_) {
      origin2.once(event, function_);
      handlers2.push({ origin: origin2, event, fn: function_ });
    },
    unhandleAll() {
      for (const handler of handlers2) {
        const { origin: origin2, event, fn: fn3 } = handler;
        origin2.removeListener(event, fn3);
      }
      handlers2.length = 0;
    }
  };
}
var init_unhandle = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/unhandle.js"() {
  }
});
function timedOut(request, delays, options) {
  if (reentry in request) {
    return noop2;
  }
  request[reentry] = true;
  const cancelers = [];
  const { once, unhandleAll } = unhandle();
  const handled = /* @__PURE__ */ new Map();
  const addTimeout = (delay2, callback, event) => {
    const timeout = setTimeout(callback, delay2, delay2, event);
    timeout.unref?.();
    const cancel = () => {
      handled.set(event, true);
      clearTimeout(timeout);
    };
    cancelers.push(cancel);
    return cancel;
  };
  const { host, hostname } = options;
  const timeoutHandler = (delay2, event) => {
    setTimeout(() => {
      if (!handled.has(event)) {
        request.destroy(new TimeoutError2(delay2, event));
      }
    }, 0);
  };
  const cancelTimeouts = () => {
    for (const cancel of cancelers) {
      cancel();
    }
    unhandleAll();
  };
  request.once("error", (error) => {
    cancelTimeouts();
    if (request.listenerCount("error") === 0) {
      throw error;
    }
  });
  if (delays.request !== void 0) {
    const cancelTimeout = addTimeout(delays.request, timeoutHandler, "request");
    once(request, "response", (response) => {
      once(response, "end", cancelTimeout);
    });
  }
  if (delays.socket !== void 0) {
    const { socket } = delays;
    const socketTimeoutHandler = () => {
      timeoutHandler(socket, "socket");
    };
    request.setTimeout(socket, socketTimeoutHandler);
    cancelers.push(() => {
      request.removeListener("timeout", socketTimeoutHandler);
    });
  }
  const hasLookup = delays.lookup !== void 0;
  const hasConnect = delays.connect !== void 0;
  const hasSecureConnect = delays.secureConnect !== void 0;
  const hasSend = delays.send !== void 0;
  if (hasLookup || hasConnect || hasSecureConnect || hasSend) {
    once(request, "socket", (socket) => {
      const { socketPath } = request;
      if (socket.connecting) {
        const hasPath = Boolean(socketPath ?? import_node_net.default.isIP(hostname ?? host ?? "") !== 0);
        if (hasLookup && !hasPath && socket.address().address === void 0) {
          const cancelTimeout = addTimeout(delays.lookup, timeoutHandler, "lookup");
          once(socket, "lookup", cancelTimeout);
        }
        if (hasConnect) {
          const timeConnect = () => addTimeout(delays.connect, timeoutHandler, "connect");
          if (hasPath) {
            once(socket, "connect", timeConnect());
          } else {
            once(socket, "lookup", (error) => {
              if (error === null) {
                once(socket, "connect", timeConnect());
              }
            });
          }
        }
        if (hasSecureConnect && options.protocol === "https:") {
          once(socket, "connect", () => {
            const cancelTimeout = addTimeout(delays.secureConnect, timeoutHandler, "secureConnect");
            once(socket, "secureConnect", cancelTimeout);
          });
        }
      }
      if (hasSend) {
        const timeRequest = () => addTimeout(delays.send, timeoutHandler, "send");
        if (socket.connecting) {
          once(socket, "connect", () => {
            once(request, "upload-complete", timeRequest());
          });
        } else {
          once(request, "upload-complete", timeRequest());
        }
      }
    });
  }
  if (delays.response !== void 0) {
    once(request, "upload-complete", () => {
      const cancelTimeout = addTimeout(delays.response, timeoutHandler, "response");
      once(request, "response", cancelTimeout);
    });
  }
  if (delays.read !== void 0) {
    once(request, "response", (response) => {
      const cancelTimeout = addTimeout(delays.read, timeoutHandler, "read");
      once(response, "end", cancelTimeout);
    });
  }
  return cancelTimeouts;
}
var reentry;
var noop2;
var TimeoutError2;
var init_timed_out = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/timed-out.js"() {
    init_unhandle();
    reentry = Symbol("reentry");
    noop2 = () => {
    };
    TimeoutError2 = class extends Error {
      event;
      name = "TimeoutError";
      code = "ETIMEDOUT";
      constructor(threshold, event) {
        super(`Timeout awaiting '${event}' for ${threshold}ms`);
        this.event = event;
      }
    };
  }
});
function urlToOptions(url2) {
  url2 = url2;
  const options = {
    protocol: url2.protocol,
    hostname: distribution_default.string(url2.hostname) && url2.hostname.startsWith("[") ? url2.hostname.slice(1, -1) : url2.hostname,
    host: url2.host,
    hash: url2.hash,
    search: url2.search,
    pathname: url2.pathname,
    href: url2.href,
    path: `${url2.pathname || ""}${url2.search || ""}`
  };
  if (distribution_default.string(url2.port) && url2.port.length > 0) {
    options.port = Number(url2.port);
  }
  if (url2.username || url2.password) {
    options.auth = `${url2.username || ""}:${url2.password || ""}`;
  }
  return options;
}
var init_url_to_options = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/url-to-options.js"() {
    init_distribution();
  }
});
var WeakableMap;
var init_weakable_map = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/weakable-map.js"() {
    WeakableMap = class {
      weakMap = /* @__PURE__ */ new WeakMap();
      map = /* @__PURE__ */ new Map();
      set(key, value) {
        if (typeof key === "object") {
          this.weakMap.set(key, value);
        } else {
          this.map.set(key, value);
        }
      }
      get(key) {
        if (typeof key === "object") {
          return this.weakMap.get(key);
        }
        return this.map.get(key);
      }
      has(key) {
        if (typeof key === "object") {
          return this.weakMap.has(key);
        }
        return this.map.has(key);
      }
    };
  }
});
var calculateRetryDelay;
var calculate_retry_delay_default;
var init_calculate_retry_delay = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/calculate-retry-delay.js"() {
    calculateRetryDelay = ({ attemptCount, retryOptions, error, retryAfter, computedValue }) => {
      if (error.name === "RetryError") {
        return 1;
      }
      if (attemptCount > retryOptions.limit) {
        return 0;
      }
      const hasMethod = retryOptions.methods.includes(error.options.method);
      const hasErrorCode = retryOptions.errorCodes.includes(error.code);
      const hasStatusCode = error.response && retryOptions.statusCodes.includes(error.response.statusCode);
      if (!hasMethod || !hasErrorCode && !hasStatusCode) {
        return 0;
      }
      if (error.response) {
        if (retryAfter) {
          if (retryAfter > computedValue) {
            return 0;
          }
          return retryAfter;
        }
        if (error.response.statusCode === 413) {
          return 0;
        }
      }
      const noise = Math.random() * retryOptions.noise;
      return Math.min(2 ** (attemptCount - 1) * 1e3, retryOptions.backoffLimit) + noise;
    };
    calculate_retry_delay_default = calculateRetryDelay;
  }
});
var AsyncResolver;
var kCacheableLookupCreateConnection;
var kCacheableLookupInstance;
var kExpires;
var supportsALL;
var verifyAgent;
var map4to6;
var getIfaceInfo;
var isIterable2;
var ignoreNoResultErrors;
var ttl;
var all;
var all4;
var all6;
var CacheableLookup;
var init_source2 = __esm({
  "../../node_modules/.pnpm/cacheable-lookup@7.0.0/node_modules/cacheable-lookup/source/index.js"() {
    ({ Resolver: AsyncResolver } = import_node_dns.promises);
    kCacheableLookupCreateConnection = Symbol("cacheableLookupCreateConnection");
    kCacheableLookupInstance = Symbol("cacheableLookupInstance");
    kExpires = Symbol("expires");
    supportsALL = typeof import_node_dns.ALL === "number";
    verifyAgent = (agent) => {
      if (!(agent && typeof agent.createConnection === "function")) {
        throw new Error("Expected an Agent instance as the first argument");
      }
    };
    map4to6 = (entries2) => {
      for (const entry of entries2) {
        if (entry.family === 6) {
          continue;
        }
        entry.address = `::ffff:${entry.address}`;
        entry.family = 6;
      }
    };
    getIfaceInfo = () => {
      let has4 = false;
      let has6 = false;
      for (const device of Object.values(import_node_os.default.networkInterfaces())) {
        for (const iface of device) {
          if (iface.internal) {
            continue;
          }
          if (iface.family === "IPv6") {
            has6 = true;
          } else {
            has4 = true;
          }
          if (has4 && has6) {
            return { has4, has6 };
          }
        }
      }
      return { has4, has6 };
    };
    isIterable2 = (map2) => {
      return Symbol.iterator in map2;
    };
    ignoreNoResultErrors = (dnsPromise) => {
      return dnsPromise.catch((error) => {
        if (error.code === "ENODATA" || error.code === "ENOTFOUND" || error.code === "ENOENT") {
          return [];
        }
        throw error;
      });
    };
    ttl = { ttl: true };
    all = { all: true };
    all4 = { all: true, family: 4 };
    all6 = { all: true, family: 6 };
    CacheableLookup = class {
      constructor({
        cache = /* @__PURE__ */ new Map(),
        maxTtl = Infinity,
        fallbackDuration = 3600,
        errorTtl = 0.15,
        resolver = new AsyncResolver(),
        lookup = import_node_dns.lookup
      } = {}) {
        this.maxTtl = maxTtl;
        this.errorTtl = errorTtl;
        this._cache = cache;
        this._resolver = resolver;
        this._dnsLookup = lookup && (0, import_node_util3.promisify)(lookup);
        this.stats = {
          cache: 0,
          query: 0
        };
        if (this._resolver instanceof AsyncResolver) {
          this._resolve4 = this._resolver.resolve4.bind(this._resolver);
          this._resolve6 = this._resolver.resolve6.bind(this._resolver);
        } else {
          this._resolve4 = (0, import_node_util3.promisify)(this._resolver.resolve4.bind(this._resolver));
          this._resolve6 = (0, import_node_util3.promisify)(this._resolver.resolve6.bind(this._resolver));
        }
        this._iface = getIfaceInfo();
        this._pending = {};
        this._nextRemovalTime = false;
        this._hostnamesToFallback = /* @__PURE__ */ new Set();
        this.fallbackDuration = fallbackDuration;
        if (fallbackDuration > 0) {
          const interval = setInterval(() => {
            this._hostnamesToFallback.clear();
          }, fallbackDuration * 1e3);
          if (interval.unref) {
            interval.unref();
          }
          this._fallbackInterval = interval;
        }
        this.lookup = this.lookup.bind(this);
        this.lookupAsync = this.lookupAsync.bind(this);
      }
      set servers(servers) {
        this.clear();
        this._resolver.setServers(servers);
      }
      get servers() {
        return this._resolver.getServers();
      }
      lookup(hostname, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = {};
        } else if (typeof options === "number") {
          options = {
            family: options
          };
        }
        if (!callback) {
          throw new Error("Callback must be a function.");
        }
        this.lookupAsync(hostname, options).then((result) => {
          if (options.all) {
            callback(null, result);
          } else {
            callback(null, result.address, result.family, result.expires, result.ttl, result.source);
          }
        }, callback);
      }
      async lookupAsync(hostname, options = {}) {
        if (typeof options === "number") {
          options = {
            family: options
          };
        }
        let cached = await this.query(hostname);
        if (options.family === 6) {
          const filtered = cached.filter((entry) => entry.family === 6);
          if (options.hints & import_node_dns.V4MAPPED) {
            if (supportsALL && options.hints & import_node_dns.ALL || filtered.length === 0) {
              map4to6(cached);
            } else {
              cached = filtered;
            }
          } else {
            cached = filtered;
          }
        } else if (options.family === 4) {
          cached = cached.filter((entry) => entry.family === 4);
        }
        if (options.hints & import_node_dns.ADDRCONFIG) {
          const { _iface } = this;
          cached = cached.filter((entry) => entry.family === 6 ? _iface.has6 : _iface.has4);
        }
        if (cached.length === 0) {
          const error = new Error(`cacheableLookup ENOTFOUND ${hostname}`);
          error.code = "ENOTFOUND";
          error.hostname = hostname;
          throw error;
        }
        if (options.all) {
          return cached;
        }
        return cached[0];
      }
      async query(hostname) {
        let source = "cache";
        let cached = await this._cache.get(hostname);
        if (cached) {
          this.stats.cache++;
        }
        if (!cached) {
          const pending = this._pending[hostname];
          if (pending) {
            this.stats.cache++;
            cached = await pending;
          } else {
            source = "query";
            const newPromise = this.queryAndCache(hostname);
            this._pending[hostname] = newPromise;
            this.stats.query++;
            try {
              cached = await newPromise;
            } finally {
              delete this._pending[hostname];
            }
          }
        }
        cached = cached.map((entry) => {
          return { ...entry, source };
        });
        return cached;
      }
      async _resolve(hostname) {
        const [A2, AAAA] = await Promise.all([
          ignoreNoResultErrors(this._resolve4(hostname, ttl)),
          ignoreNoResultErrors(this._resolve6(hostname, ttl))
        ]);
        let aTtl = 0;
        let aaaaTtl = 0;
        let cacheTtl = 0;
        const now = Date.now();
        for (const entry of A2) {
          entry.family = 4;
          entry.expires = now + entry.ttl * 1e3;
          aTtl = Math.max(aTtl, entry.ttl);
        }
        for (const entry of AAAA) {
          entry.family = 6;
          entry.expires = now + entry.ttl * 1e3;
          aaaaTtl = Math.max(aaaaTtl, entry.ttl);
        }
        if (A2.length > 0) {
          if (AAAA.length > 0) {
            cacheTtl = Math.min(aTtl, aaaaTtl);
          } else {
            cacheTtl = aTtl;
          }
        } else {
          cacheTtl = aaaaTtl;
        }
        return {
          entries: [
            ...A2,
            ...AAAA
          ],
          cacheTtl
        };
      }
      async _lookup(hostname) {
        try {
          const [A2, AAAA] = await Promise.all([
            // Passing {all: true} doesn't return all IPv4 and IPv6 entries.
            // See https://github.com/szmarczak/cacheable-lookup/issues/42
            ignoreNoResultErrors(this._dnsLookup(hostname, all4)),
            ignoreNoResultErrors(this._dnsLookup(hostname, all6))
          ]);
          return {
            entries: [
              ...A2,
              ...AAAA
            ],
            cacheTtl: 0
          };
        } catch {
          return {
            entries: [],
            cacheTtl: 0
          };
        }
      }
      async _set(hostname, data, cacheTtl) {
        if (this.maxTtl > 0 && cacheTtl > 0) {
          cacheTtl = Math.min(cacheTtl, this.maxTtl) * 1e3;
          data[kExpires] = Date.now() + cacheTtl;
          try {
            await this._cache.set(hostname, data, cacheTtl);
          } catch (error) {
            this.lookupAsync = async () => {
              const cacheError = new Error("Cache Error. Please recreate the CacheableLookup instance.");
              cacheError.cause = error;
              throw cacheError;
            };
          }
          if (isIterable2(this._cache)) {
            this._tick(cacheTtl);
          }
        }
      }
      async queryAndCache(hostname) {
        if (this._hostnamesToFallback.has(hostname)) {
          return this._dnsLookup(hostname, all);
        }
        let query = await this._resolve(hostname);
        if (query.entries.length === 0 && this._dnsLookup) {
          query = await this._lookup(hostname);
          if (query.entries.length !== 0 && this.fallbackDuration > 0) {
            this._hostnamesToFallback.add(hostname);
          }
        }
        const cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl;
        await this._set(hostname, query.entries, cacheTtl);
        return query.entries;
      }
      _tick(ms2) {
        const nextRemovalTime = this._nextRemovalTime;
        if (!nextRemovalTime || ms2 < nextRemovalTime) {
          clearTimeout(this._removalTimeout);
          this._nextRemovalTime = ms2;
          this._removalTimeout = setTimeout(() => {
            this._nextRemovalTime = false;
            let nextExpiry = Infinity;
            const now = Date.now();
            for (const [hostname, entries2] of this._cache) {
              const expires = entries2[kExpires];
              if (now >= expires) {
                this._cache.delete(hostname);
              } else if (expires < nextExpiry) {
                nextExpiry = expires;
              }
            }
            if (nextExpiry !== Infinity) {
              this._tick(nextExpiry - now);
            }
          }, ms2);
          if (this._removalTimeout.unref) {
            this._removalTimeout.unref();
          }
        }
      }
      install(agent) {
        verifyAgent(agent);
        if (kCacheableLookupCreateConnection in agent) {
          throw new Error("CacheableLookup has been already installed");
        }
        agent[kCacheableLookupCreateConnection] = agent.createConnection;
        agent[kCacheableLookupInstance] = this;
        agent.createConnection = (options, callback) => {
          if (!("lookup" in options)) {
            options.lookup = this.lookup;
          }
          return agent[kCacheableLookupCreateConnection](options, callback);
        };
      }
      uninstall(agent) {
        verifyAgent(agent);
        if (agent[kCacheableLookupCreateConnection]) {
          if (agent[kCacheableLookupInstance] !== this) {
            throw new Error("The agent is not owned by this CacheableLookup instance");
          }
          agent.createConnection = agent[kCacheableLookupCreateConnection];
          delete agent[kCacheableLookupCreateConnection];
          delete agent[kCacheableLookupInstance];
        }
      }
      updateInterfaceInfo() {
        const { _iface } = this;
        this._iface = getIfaceInfo();
        if (_iface.has4 && !this._iface.has4 || _iface.has6 && !this._iface.has6) {
          this._cache.clear();
        }
      }
      clear(hostname) {
        if (hostname) {
          this._cache.delete(hostname);
          return;
        }
        this._cache.clear();
      }
    };
  }
});
var require_quick_lru = __commonJS2({
  "../../node_modules/.pnpm/quick-lru@5.1.1/node_modules/quick-lru/index.js"(exports2, module2) {
    "use strict";
    var QuickLRU2 = class {
      constructor(options = {}) {
        if (!(options.maxSize && options.maxSize > 0)) {
          throw new TypeError("`maxSize` must be a number greater than 0");
        }
        this.maxSize = options.maxSize;
        this.onEviction = options.onEviction;
        this.cache = /* @__PURE__ */ new Map();
        this.oldCache = /* @__PURE__ */ new Map();
        this._size = 0;
      }
      _set(key, value) {
        this.cache.set(key, value);
        this._size++;
        if (this._size >= this.maxSize) {
          this._size = 0;
          if (typeof this.onEviction === "function") {
            for (const [key2, value2] of this.oldCache.entries()) {
              this.onEviction(key2, value2);
            }
          }
          this.oldCache = this.cache;
          this.cache = /* @__PURE__ */ new Map();
        }
      }
      get(key) {
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        if (this.oldCache.has(key)) {
          const value = this.oldCache.get(key);
          this.oldCache.delete(key);
          this._set(key, value);
          return value;
        }
      }
      set(key, value) {
        if (this.cache.has(key)) {
          this.cache.set(key, value);
        } else {
          this._set(key, value);
        }
        return this;
      }
      has(key) {
        return this.cache.has(key) || this.oldCache.has(key);
      }
      peek(key) {
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        if (this.oldCache.has(key)) {
          return this.oldCache.get(key);
        }
      }
      delete(key) {
        const deleted = this.cache.delete(key);
        if (deleted) {
          this._size--;
        }
        return this.oldCache.delete(key) || deleted;
      }
      clear() {
        this.cache.clear();
        this.oldCache.clear();
        this._size = 0;
      }
      *keys() {
        for (const [key] of this) {
          yield key;
        }
      }
      *values() {
        for (const [, value] of this) {
          yield value;
        }
      }
      *[Symbol.iterator]() {
        for (const item of this.cache) {
          yield item;
        }
        for (const item of this.oldCache) {
          const [key] = item;
          if (!this.cache.has(key)) {
            yield item;
          }
        }
      }
      get size() {
        let oldCacheSize = 0;
        for (const key of this.oldCache.keys()) {
          if (!this.cache.has(key)) {
            oldCacheSize++;
          }
        }
        return Math.min(this._size + oldCacheSize, this.maxSize);
      }
    };
    module2.exports = QuickLRU2;
  }
});
var require_delay_async_destroy = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/delay-async-destroy.js"(exports2, module2) {
    "use strict";
    module2.exports = (stream5) => {
      if (stream5.listenerCount("error") !== 0) {
        return stream5;
      }
      stream5.__destroy = stream5._destroy;
      stream5._destroy = (...args) => {
        const callback = args.pop();
        stream5.__destroy(...args, async (error) => {
          await Promise.resolve();
          callback(error);
        });
      };
      const onError = (error) => {
        Promise.resolve().then(() => {
          stream5.emit("error", error);
        });
      };
      stream5.once("error", onError);
      Promise.resolve().then(() => {
        stream5.off("error", onError);
      });
      return stream5;
    };
  }
});
var require_agent = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/agent.js"(exports2, module2) {
    "use strict";
    var { URL: URL5 } = __require("url");
    var EventEmitter4 = __require("events");
    var tls3 = __require("tls");
    var http25 = __require("http2");
    var QuickLRU2 = require_quick_lru();
    var delayAsyncDestroy = require_delay_async_destroy();
    var kCurrentStreamCount = Symbol("currentStreamCount");
    var kRequest = Symbol("request");
    var kOriginSet = Symbol("cachedOriginSet");
    var kGracefullyClosing = Symbol("gracefullyClosing");
    var kLength = Symbol("length");
    var nameKeys = [
      // Not an Agent option actually
      "createConnection",
      // `http2.connect()` options
      "maxDeflateDynamicTableSize",
      "maxSettings",
      "maxSessionMemory",
      "maxHeaderListPairs",
      "maxOutstandingPings",
      "maxReservedRemoteStreams",
      "maxSendHeaderBlockLength",
      "paddingStrategy",
      "peerMaxConcurrentStreams",
      "settings",
      // `tls.connect()` source options
      "family",
      "localAddress",
      "rejectUnauthorized",
      // `tls.connect()` secure context options
      "pskCallback",
      "minDHSize",
      // `tls.connect()` destination options
      // - `servername` is automatically validated, skip it
      // - `host` and `port` just describe the destination server,
      "path",
      "socket",
      // `tls.createSecureContext()` options
      "ca",
      "cert",
      "sigalgs",
      "ciphers",
      "clientCertEngine",
      "crl",
      "dhparam",
      "ecdhCurve",
      "honorCipherOrder",
      "key",
      "privateKeyEngine",
      "privateKeyIdentifier",
      "maxVersion",
      "minVersion",
      "pfx",
      "secureOptions",
      "secureProtocol",
      "sessionIdContext",
      "ticketKeys"
    ];
    var getSortedIndex = (array, value, compare) => {
      let low = 0;
      let high = array.length;
      while (low < high) {
        const mid = low + high >>> 1;
        if (compare(array[mid], value)) {
          low = mid + 1;
        } else {
          high = mid;
        }
      }
      return low;
    };
    var compareSessions = (a2, b2) => a2.remoteSettings.maxConcurrentStreams > b2.remoteSettings.maxConcurrentStreams;
    var closeCoveredSessions = (where, session) => {
      for (let index = 0; index < where.length; index++) {
        const coveredSession = where[index];
        if (
          // Unfortunately `.every()` returns true for an empty array
          coveredSession[kOriginSet].length > 0 && coveredSession[kOriginSet].length < session[kOriginSet].length && coveredSession[kOriginSet].every((origin2) => session[kOriginSet].includes(origin2)) && coveredSession[kCurrentStreamCount] + session[kCurrentStreamCount] <= session.remoteSettings.maxConcurrentStreams
        ) {
          gracefullyClose(coveredSession);
        }
      }
    };
    var closeSessionIfCovered = (where, coveredSession) => {
      for (let index = 0; index < where.length; index++) {
        const session = where[index];
        if (coveredSession[kOriginSet].length > 0 && coveredSession[kOriginSet].length < session[kOriginSet].length && coveredSession[kOriginSet].every((origin2) => session[kOriginSet].includes(origin2)) && coveredSession[kCurrentStreamCount] + session[kCurrentStreamCount] <= session.remoteSettings.maxConcurrentStreams) {
          gracefullyClose(coveredSession);
          return true;
        }
      }
      return false;
    };
    var gracefullyClose = (session) => {
      session[kGracefullyClosing] = true;
      if (session[kCurrentStreamCount] === 0) {
        session.close();
      }
    };
    var Agent = class _Agent extends EventEmitter4 {
      constructor({ timeout = 0, maxSessions = Number.POSITIVE_INFINITY, maxEmptySessions = 10, maxCachedTlsSessions = 100 } = {}) {
        super();
        this.sessions = {};
        this.queue = {};
        this.timeout = timeout;
        this.maxSessions = maxSessions;
        this.maxEmptySessions = maxEmptySessions;
        this._emptySessionCount = 0;
        this._sessionCount = 0;
        this.settings = {
          enablePush: false,
          initialWindowSize: 1024 * 1024 * 32
          // 32MB, see https://github.com/nodejs/node/issues/38426
        };
        this.tlsSessionCache = new QuickLRU2({ maxSize: maxCachedTlsSessions });
      }
      get protocol() {
        return "https:";
      }
      normalizeOptions(options) {
        let normalized = "";
        for (let index = 0; index < nameKeys.length; index++) {
          const key = nameKeys[index];
          normalized += ":";
          if (options && options[key] !== void 0) {
            normalized += options[key];
          }
        }
        return normalized;
      }
      _processQueue() {
        if (this._sessionCount >= this.maxSessions) {
          this.closeEmptySessions(this.maxSessions - this._sessionCount + 1);
          return;
        }
        for (const normalizedOptions in this.queue) {
          for (const normalizedOrigin in this.queue[normalizedOptions]) {
            const item = this.queue[normalizedOptions][normalizedOrigin];
            if (!item.completed) {
              item.completed = true;
              item();
            }
          }
        }
      }
      _isBetterSession(thisStreamCount, thatStreamCount) {
        return thisStreamCount > thatStreamCount;
      }
      _accept(session, listeners, normalizedOrigin, options) {
        let index = 0;
        while (index < listeners.length && session[kCurrentStreamCount] < session.remoteSettings.maxConcurrentStreams) {
          listeners[index].resolve(session);
          index++;
        }
        listeners.splice(0, index);
        if (listeners.length > 0) {
          this.getSession(normalizedOrigin, options, listeners);
          listeners.length = 0;
        }
      }
      getSession(origin2, options, listeners) {
        return new Promise((resolve2, reject) => {
          if (Array.isArray(listeners) && listeners.length > 0) {
            listeners = [...listeners];
            resolve2();
          } else {
            listeners = [{ resolve: resolve2, reject }];
          }
          try {
            if (typeof origin2 === "string") {
              origin2 = new URL5(origin2);
            } else if (!(origin2 instanceof URL5)) {
              throw new TypeError("The `origin` argument needs to be a string or an URL object");
            }
            if (options) {
              const { servername } = options;
              const { hostname } = origin2;
              if (servername && hostname !== servername) {
                throw new Error(`Origin ${hostname} differs from servername ${servername}`);
              }
            }
          } catch (error) {
            for (let index = 0; index < listeners.length; index++) {
              listeners[index].reject(error);
            }
            return;
          }
          const normalizedOptions = this.normalizeOptions(options);
          const normalizedOrigin = origin2.origin;
          if (normalizedOptions in this.sessions) {
            const sessions = this.sessions[normalizedOptions];
            let maxConcurrentStreams = -1;
            let currentStreamsCount = -1;
            let optimalSession;
            for (let index = 0; index < sessions.length; index++) {
              const session = sessions[index];
              const sessionMaxConcurrentStreams = session.remoteSettings.maxConcurrentStreams;
              if (sessionMaxConcurrentStreams < maxConcurrentStreams) {
                break;
              }
              if (!session[kOriginSet].includes(normalizedOrigin)) {
                continue;
              }
              const sessionCurrentStreamsCount = session[kCurrentStreamCount];
              if (sessionCurrentStreamsCount >= sessionMaxConcurrentStreams || session[kGracefullyClosing] || session.destroyed) {
                continue;
              }
              if (!optimalSession) {
                maxConcurrentStreams = sessionMaxConcurrentStreams;
              }
              if (this._isBetterSession(sessionCurrentStreamsCount, currentStreamsCount)) {
                optimalSession = session;
                currentStreamsCount = sessionCurrentStreamsCount;
              }
            }
            if (optimalSession) {
              this._accept(optimalSession, listeners, normalizedOrigin, options);
              return;
            }
          }
          if (normalizedOptions in this.queue) {
            if (normalizedOrigin in this.queue[normalizedOptions]) {
              this.queue[normalizedOptions][normalizedOrigin].listeners.push(...listeners);
              return;
            }
          } else {
            this.queue[normalizedOptions] = {
              [kLength]: 0
            };
          }
          const removeFromQueue = () => {
            if (normalizedOptions in this.queue && this.queue[normalizedOptions][normalizedOrigin] === entry) {
              delete this.queue[normalizedOptions][normalizedOrigin];
              if (--this.queue[normalizedOptions][kLength] === 0) {
                delete this.queue[normalizedOptions];
              }
            }
          };
          const entry = async () => {
            this._sessionCount++;
            const name2 = `${normalizedOrigin}:${normalizedOptions}`;
            let receivedSettings = false;
            let socket;
            try {
              const computedOptions = { ...options };
              if (computedOptions.settings === void 0) {
                computedOptions.settings = this.settings;
              }
              if (computedOptions.session === void 0) {
                computedOptions.session = this.tlsSessionCache.get(name2);
              }
              const createConnection = computedOptions.createConnection || this.createConnection;
              socket = await createConnection.call(this, origin2, computedOptions);
              computedOptions.createConnection = () => socket;
              const session = http25.connect(origin2, computedOptions);
              session[kCurrentStreamCount] = 0;
              session[kGracefullyClosing] = false;
              const getOriginSet = () => {
                const { socket: socket2 } = session;
                let originSet;
                if (socket2.servername === false) {
                  socket2.servername = socket2.remoteAddress;
                  originSet = session.originSet;
                  socket2.servername = false;
                } else {
                  originSet = session.originSet;
                }
                return originSet;
              };
              const isFree = () => session[kCurrentStreamCount] < session.remoteSettings.maxConcurrentStreams;
              session.socket.once("session", (tlsSession) => {
                this.tlsSessionCache.set(name2, tlsSession);
              });
              session.once("error", (error) => {
                for (let index = 0; index < listeners.length; index++) {
                  listeners[index].reject(error);
                }
                this.tlsSessionCache.delete(name2);
              });
              session.setTimeout(this.timeout, () => {
                session.destroy();
              });
              session.once("close", () => {
                this._sessionCount--;
                if (receivedSettings) {
                  this._emptySessionCount--;
                  const where = this.sessions[normalizedOptions];
                  if (where.length === 1) {
                    delete this.sessions[normalizedOptions];
                  } else {
                    where.splice(where.indexOf(session), 1);
                  }
                } else {
                  removeFromQueue();
                  const error = new Error("Session closed without receiving a SETTINGS frame");
                  error.code = "HTTP2WRAPPER_NOSETTINGS";
                  for (let index = 0; index < listeners.length; index++) {
                    listeners[index].reject(error);
                  }
                }
                this._processQueue();
              });
              const processListeners = () => {
                const queue = this.queue[normalizedOptions];
                if (!queue) {
                  return;
                }
                const originSet = session[kOriginSet];
                for (let index = 0; index < originSet.length; index++) {
                  const origin3 = originSet[index];
                  if (origin3 in queue) {
                    const { listeners: listeners2, completed } = queue[origin3];
                    let index2 = 0;
                    while (index2 < listeners2.length && isFree()) {
                      listeners2[index2].resolve(session);
                      index2++;
                    }
                    queue[origin3].listeners.splice(0, index2);
                    if (queue[origin3].listeners.length === 0 && !completed) {
                      delete queue[origin3];
                      if (--queue[kLength] === 0) {
                        delete this.queue[normalizedOptions];
                        break;
                      }
                    }
                    if (!isFree()) {
                      break;
                    }
                  }
                }
              };
              session.on("origin", () => {
                session[kOriginSet] = getOriginSet() || [];
                session[kGracefullyClosing] = false;
                closeSessionIfCovered(this.sessions[normalizedOptions], session);
                if (session[kGracefullyClosing] || !isFree()) {
                  return;
                }
                processListeners();
                if (!isFree()) {
                  return;
                }
                closeCoveredSessions(this.sessions[normalizedOptions], session);
              });
              session.once("remoteSettings", () => {
                if (entry.destroyed) {
                  const error = new Error("Agent has been destroyed");
                  for (let index = 0; index < listeners.length; index++) {
                    listeners[index].reject(error);
                  }
                  session.destroy();
                  return;
                }
                if (session.setLocalWindowSize) {
                  session.setLocalWindowSize(1024 * 1024 * 4);
                }
                session[kOriginSet] = getOriginSet() || [];
                if (session.socket.encrypted) {
                  const mainOrigin = session[kOriginSet][0];
                  if (mainOrigin !== normalizedOrigin) {
                    const error = new Error(`Requested origin ${normalizedOrigin} does not match server ${mainOrigin}`);
                    for (let index = 0; index < listeners.length; index++) {
                      listeners[index].reject(error);
                    }
                    session.destroy();
                    return;
                  }
                }
                removeFromQueue();
                {
                  const where = this.sessions;
                  if (normalizedOptions in where) {
                    const sessions = where[normalizedOptions];
                    sessions.splice(getSortedIndex(sessions, session, compareSessions), 0, session);
                  } else {
                    where[normalizedOptions] = [session];
                  }
                }
                receivedSettings = true;
                this._emptySessionCount++;
                this.emit("session", session);
                this._accept(session, listeners, normalizedOrigin, options);
                if (session[kCurrentStreamCount] === 0 && this._emptySessionCount > this.maxEmptySessions) {
                  this.closeEmptySessions(this._emptySessionCount - this.maxEmptySessions);
                }
                session.on("remoteSettings", () => {
                  if (!isFree()) {
                    return;
                  }
                  processListeners();
                  if (!isFree()) {
                    return;
                  }
                  closeCoveredSessions(this.sessions[normalizedOptions], session);
                });
              });
              session[kRequest] = session.request;
              session.request = (headers, streamOptions) => {
                if (session[kGracefullyClosing]) {
                  throw new Error("The session is gracefully closing. No new streams are allowed.");
                }
                const stream5 = session[kRequest](headers, streamOptions);
                session.ref();
                if (session[kCurrentStreamCount]++ === 0) {
                  this._emptySessionCount--;
                }
                stream5.once("close", () => {
                  if (--session[kCurrentStreamCount] === 0) {
                    this._emptySessionCount++;
                    session.unref();
                    if (this._emptySessionCount > this.maxEmptySessions || session[kGracefullyClosing]) {
                      session.close();
                      return;
                    }
                  }
                  if (session.destroyed || session.closed) {
                    return;
                  }
                  if (isFree() && !closeSessionIfCovered(this.sessions[normalizedOptions], session)) {
                    closeCoveredSessions(this.sessions[normalizedOptions], session);
                    processListeners();
                    if (session[kCurrentStreamCount] === 0) {
                      this._processQueue();
                    }
                  }
                });
                return stream5;
              };
            } catch (error) {
              removeFromQueue();
              this._sessionCount--;
              for (let index = 0; index < listeners.length; index++) {
                listeners[index].reject(error);
              }
            }
          };
          entry.listeners = listeners;
          entry.completed = false;
          entry.destroyed = false;
          this.queue[normalizedOptions][normalizedOrigin] = entry;
          this.queue[normalizedOptions][kLength]++;
          this._processQueue();
        });
      }
      request(origin2, options, headers, streamOptions) {
        return new Promise((resolve2, reject) => {
          this.getSession(origin2, options, [{
            reject,
            resolve: (session) => {
              try {
                const stream5 = session.request(headers, streamOptions);
                delayAsyncDestroy(stream5);
                resolve2(stream5);
              } catch (error) {
                reject(error);
              }
            }
          }]);
        });
      }
      async createConnection(origin2, options) {
        return _Agent.connect(origin2, options);
      }
      static connect(origin2, options) {
        options.ALPNProtocols = ["h2"];
        const port = origin2.port || 443;
        const host = origin2.hostname;
        if (typeof options.servername === "undefined") {
          options.servername = host;
        }
        const socket = tls3.connect(port, host, options);
        if (options.socket) {
          socket._peername = {
            family: void 0,
            address: void 0,
            port
          };
        }
        return socket;
      }
      closeEmptySessions(maxCount = Number.POSITIVE_INFINITY) {
        let closedCount = 0;
        const { sessions } = this;
        for (const key in sessions) {
          const thisSessions = sessions[key];
          for (let index = 0; index < thisSessions.length; index++) {
            const session = thisSessions[index];
            if (session[kCurrentStreamCount] === 0) {
              closedCount++;
              session.close();
              if (closedCount >= maxCount) {
                return closedCount;
              }
            }
          }
        }
        return closedCount;
      }
      destroy(reason) {
        const { sessions, queue } = this;
        for (const key in sessions) {
          const thisSessions = sessions[key];
          for (let index = 0; index < thisSessions.length; index++) {
            thisSessions[index].destroy(reason);
          }
        }
        for (const normalizedOptions in queue) {
          const entries2 = queue[normalizedOptions];
          for (const normalizedOrigin in entries2) {
            entries2[normalizedOrigin].destroyed = true;
          }
        }
        this.queue = {};
        this.tlsSessionCache.clear();
      }
      get emptySessionCount() {
        return this._emptySessionCount;
      }
      get pendingSessionCount() {
        return this._sessionCount - this._emptySessionCount;
      }
      get sessionCount() {
        return this._sessionCount;
      }
    };
    Agent.kCurrentStreamCount = kCurrentStreamCount;
    Agent.kGracefullyClosing = kGracefullyClosing;
    module2.exports = {
      Agent,
      globalAgent: new Agent()
    };
  }
});
var require_incoming_message = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/incoming-message.js"(exports2, module2) {
    "use strict";
    var { Readable: Readable3 } = __require("stream");
    var IncomingMessage = class extends Readable3 {
      constructor(socket, highWaterMark) {
        super({
          emitClose: false,
          autoDestroy: true,
          highWaterMark
        });
        this.statusCode = null;
        this.statusMessage = "";
        this.httpVersion = "2.0";
        this.httpVersionMajor = 2;
        this.httpVersionMinor = 0;
        this.headers = {};
        this.trailers = {};
        this.req = null;
        this.aborted = false;
        this.complete = false;
        this.upgrade = null;
        this.rawHeaders = [];
        this.rawTrailers = [];
        this.socket = socket;
        this._dumped = false;
      }
      get connection() {
        return this.socket;
      }
      set connection(value) {
        this.socket = value;
      }
      _destroy(error, callback) {
        if (!this.readableEnded) {
          this.aborted = true;
        }
        callback();
        this.req._request.destroy(error);
      }
      setTimeout(ms2, callback) {
        this.req.setTimeout(ms2, callback);
        return this;
      }
      _dump() {
        if (!this._dumped) {
          this._dumped = true;
          this.removeAllListeners("data");
          this.resume();
        }
      }
      _read() {
        if (this.req) {
          this.req._request.resume();
        }
      }
    };
    module2.exports = IncomingMessage;
  }
});
var require_proxy_events = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-events.js"(exports2, module2) {
    "use strict";
    module2.exports = (from, to2, events) => {
      for (const event of events) {
        from.on(event, (...args) => to2.emit(event, ...args));
      }
    };
  }
});
var require_errors2 = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/errors.js"(exports2, module2) {
    "use strict";
    var makeError = (Base, key, getMessage) => {
      module2.exports[key] = class NodeError extends Base {
        constructor(...args) {
          super(typeof getMessage === "string" ? getMessage : getMessage(args));
          this.name = `${super.name} [${key}]`;
          this.code = key;
        }
      };
    };
    makeError(TypeError, "ERR_INVALID_ARG_TYPE", (args) => {
      const type = args[0].includes(".") ? "property" : "argument";
      let valid = args[1];
      const isManyTypes = Array.isArray(valid);
      if (isManyTypes) {
        valid = `${valid.slice(0, -1).join(", ")} or ${valid.slice(-1)}`;
      }
      return `The "${args[0]}" ${type} must be ${isManyTypes ? "one of" : "of"} type ${valid}. Received ${typeof args[2]}`;
    });
    makeError(
      TypeError,
      "ERR_INVALID_PROTOCOL",
      (args) => `Protocol "${args[0]}" not supported. Expected "${args[1]}"`
    );
    makeError(
      Error,
      "ERR_HTTP_HEADERS_SENT",
      (args) => `Cannot ${args[0]} headers after they are sent to the client`
    );
    makeError(
      TypeError,
      "ERR_INVALID_HTTP_TOKEN",
      (args) => `${args[0]} must be a valid HTTP token [${args[1]}]`
    );
    makeError(
      TypeError,
      "ERR_HTTP_INVALID_HEADER_VALUE",
      (args) => `Invalid value "${args[0]} for header "${args[1]}"`
    );
    makeError(
      TypeError,
      "ERR_INVALID_CHAR",
      (args) => `Invalid character in ${args[0]} [${args[1]}]`
    );
    makeError(
      Error,
      "ERR_HTTP2_NO_SOCKET_MANIPULATION",
      "HTTP/2 sockets should not be directly manipulated (e.g. read and written)"
    );
  }
});
var require_is_request_pseudo_header = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js"(exports2, module2) {
    "use strict";
    module2.exports = (header2) => {
      switch (header2) {
        case ":method":
        case ":scheme":
        case ":authority":
        case ":path":
          return true;
        default:
          return false;
      }
    };
  }
});
var require_validate_header_name = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-name.js"(exports2, module2) {
    "use strict";
    var { ERR_INVALID_HTTP_TOKEN } = require_errors2();
    var isRequestPseudoHeader = require_is_request_pseudo_header();
    var isValidHttpToken = /^[\^`\-\w!#$%&*+.|~]+$/;
    module2.exports = (name2) => {
      if (typeof name2 !== "string" || !isValidHttpToken.test(name2) && !isRequestPseudoHeader(name2)) {
        throw new ERR_INVALID_HTTP_TOKEN("Header name", name2);
      }
    };
  }
});
var require_validate_header_value = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/validate-header-value.js"(exports2, module2) {
    "use strict";
    var {
      ERR_HTTP_INVALID_HEADER_VALUE,
      ERR_INVALID_CHAR
    } = require_errors2();
    var isInvalidHeaderValue = /[^\t\u0020-\u007E\u0080-\u00FF]/;
    module2.exports = (name2, value) => {
      if (typeof value === "undefined") {
        throw new ERR_HTTP_INVALID_HEADER_VALUE(value, name2);
      }
      if (isInvalidHeaderValue.test(value)) {
        throw new ERR_INVALID_CHAR("header content", name2);
      }
    };
  }
});
var require_proxy_socket_handler = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/proxy-socket-handler.js"(exports2, module2) {
    "use strict";
    var { ERR_HTTP2_NO_SOCKET_MANIPULATION } = require_errors2();
    var proxySocketHandler = {
      has(stream5, property) {
        const reference = stream5.session === void 0 ? stream5 : stream5.session.socket;
        return property in stream5 || property in reference;
      },
      get(stream5, property) {
        switch (property) {
          case "on":
          case "once":
          case "end":
          case "emit":
          case "destroy":
            return stream5[property].bind(stream5);
          case "writable":
          case "destroyed":
            return stream5[property];
          case "readable":
            if (stream5.destroyed) {
              return false;
            }
            return stream5.readable;
          case "setTimeout": {
            const { session } = stream5;
            if (session !== void 0) {
              return session.setTimeout.bind(session);
            }
            return stream5.setTimeout.bind(stream5);
          }
          case "write":
          case "read":
          case "pause":
          case "resume":
            throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
          default: {
            const reference = stream5.session === void 0 ? stream5 : stream5.session.socket;
            const value = reference[property];
            return typeof value === "function" ? value.bind(reference) : value;
          }
        }
      },
      getPrototypeOf(stream5) {
        if (stream5.session !== void 0) {
          return Reflect.getPrototypeOf(stream5.session.socket);
        }
        return Reflect.getPrototypeOf(stream5);
      },
      set(stream5, property, value) {
        switch (property) {
          case "writable":
          case "readable":
          case "destroyed":
          case "on":
          case "once":
          case "end":
          case "emit":
          case "destroy":
            stream5[property] = value;
            return true;
          case "setTimeout": {
            const { session } = stream5;
            if (session === void 0) {
              stream5.setTimeout = value;
            } else {
              session.setTimeout = value;
            }
            return true;
          }
          case "write":
          case "read":
          case "pause":
          case "resume":
            throw new ERR_HTTP2_NO_SOCKET_MANIPULATION();
          default: {
            const reference = stream5.session === void 0 ? stream5 : stream5.session.socket;
            reference[property] = value;
            return true;
          }
        }
      }
    };
    module2.exports = proxySocketHandler;
  }
});
var require_client_request = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/client-request.js"(exports2, module2) {
    "use strict";
    var { URL: URL5, urlToHttpOptions } = __require("url");
    var http25 = __require("http2");
    var { Writable: Writable2 } = __require("stream");
    var { Agent, globalAgent } = require_agent();
    var IncomingMessage = require_incoming_message();
    var proxyEvents2 = require_proxy_events();
    var {
      ERR_INVALID_ARG_TYPE,
      ERR_INVALID_PROTOCOL,
      ERR_HTTP_HEADERS_SENT
    } = require_errors2();
    var validateHeaderName = require_validate_header_name();
    var validateHeaderValue = require_validate_header_value();
    var proxySocketHandler = require_proxy_socket_handler();
    var {
      HTTP2_HEADER_STATUS,
      HTTP2_HEADER_METHOD,
      HTTP2_HEADER_PATH,
      HTTP2_HEADER_AUTHORITY,
      HTTP2_METHOD_CONNECT
    } = http25.constants;
    var kHeaders = Symbol("headers");
    var kOrigin = Symbol("origin");
    var kSession = Symbol("session");
    var kOptions = Symbol("options");
    var kFlushedHeaders = Symbol("flushedHeaders");
    var kJobs = Symbol("jobs");
    var kPendingAgentPromise = Symbol("pendingAgentPromise");
    var ClientRequest = class extends Writable2 {
      constructor(input, options, callback) {
        super({
          autoDestroy: false,
          emitClose: false
        });
        if (typeof input === "string") {
          input = urlToHttpOptions(new URL5(input));
        } else if (input instanceof URL5) {
          input = urlToHttpOptions(input);
        } else {
          input = { ...input };
        }
        if (typeof options === "function" || options === void 0) {
          callback = options;
          options = input;
        } else {
          options = Object.assign(input, options);
        }
        if (options.h2session) {
          this[kSession] = options.h2session;
          if (this[kSession].destroyed) {
            throw new Error("The session has been closed already");
          }
          this.protocol = this[kSession].socket.encrypted ? "https:" : "http:";
        } else if (options.agent === false) {
          this.agent = new Agent({ maxEmptySessions: 0 });
        } else if (typeof options.agent === "undefined" || options.agent === null) {
          this.agent = globalAgent;
        } else if (typeof options.agent.request === "function") {
          this.agent = options.agent;
        } else {
          throw new ERR_INVALID_ARG_TYPE("options.agent", ["http2wrapper.Agent-like Object", "undefined", "false"], options.agent);
        }
        if (this.agent) {
          this.protocol = this.agent.protocol;
        }
        if (options.protocol && options.protocol !== this.protocol) {
          throw new ERR_INVALID_PROTOCOL(options.protocol, this.protocol);
        }
        if (!options.port) {
          options.port = options.defaultPort || this.agent && this.agent.defaultPort || 443;
        }
        options.host = options.hostname || options.host || "localhost";
        delete options.hostname;
        const { timeout } = options;
        options.timeout = void 0;
        this[kHeaders] = /* @__PURE__ */ Object.create(null);
        this[kJobs] = [];
        this[kPendingAgentPromise] = void 0;
        this.socket = null;
        this.connection = null;
        this.method = options.method || "GET";
        if (!(this.method === "CONNECT" && (options.path === "/" || options.path === void 0))) {
          this.path = options.path;
        }
        this.res = null;
        this.aborted = false;
        this.reusedSocket = false;
        const { headers } = options;
        if (headers) {
          for (const header2 in headers) {
            this.setHeader(header2, headers[header2]);
          }
        }
        if (options.auth && !("authorization" in this[kHeaders])) {
          this[kHeaders].authorization = "Basic " + Buffer.from(options.auth).toString("base64");
        }
        options.session = options.tlsSession;
        options.path = options.socketPath;
        this[kOptions] = options;
        this[kOrigin] = new URL5(`${this.protocol}//${options.servername || options.host}:${options.port}`);
        const reuseSocket = options._reuseSocket;
        if (reuseSocket) {
          options.createConnection = (...args) => {
            if (reuseSocket.destroyed) {
              return this.agent.createConnection(...args);
            }
            return reuseSocket;
          };
          this.agent.getSession(this[kOrigin], this[kOptions]).catch(() => {
          });
        }
        if (timeout) {
          this.setTimeout(timeout);
        }
        if (callback) {
          this.once("response", callback);
        }
        this[kFlushedHeaders] = false;
      }
      get method() {
        return this[kHeaders][HTTP2_HEADER_METHOD];
      }
      set method(value) {
        if (value) {
          this[kHeaders][HTTP2_HEADER_METHOD] = value.toUpperCase();
        }
      }
      get path() {
        const header2 = this.method === "CONNECT" ? HTTP2_HEADER_AUTHORITY : HTTP2_HEADER_PATH;
        return this[kHeaders][header2];
      }
      set path(value) {
        if (value) {
          const header2 = this.method === "CONNECT" ? HTTP2_HEADER_AUTHORITY : HTTP2_HEADER_PATH;
          this[kHeaders][header2] = value;
        }
      }
      get host() {
        return this[kOrigin].hostname;
      }
      set host(_value) {
      }
      get _mustNotHaveABody() {
        return this.method === "GET" || this.method === "HEAD" || this.method === "DELETE";
      }
      _write(chunk2, encoding, callback) {
        if (this._mustNotHaveABody) {
          callback(new Error("The GET, HEAD and DELETE methods must NOT have a body"));
          return;
        }
        this.flushHeaders();
        const callWrite = () => this._request.write(chunk2, encoding, callback);
        if (this._request) {
          callWrite();
        } else {
          this[kJobs].push(callWrite);
        }
      }
      _final(callback) {
        this.flushHeaders();
        const callEnd = () => {
          if (this._mustNotHaveABody || this.method === "CONNECT") {
            callback();
            return;
          }
          this._request.end(callback);
        };
        if (this._request) {
          callEnd();
        } else {
          this[kJobs].push(callEnd);
        }
      }
      abort() {
        if (this.res && this.res.complete) {
          return;
        }
        if (!this.aborted) {
          process.nextTick(() => this.emit("abort"));
        }
        this.aborted = true;
        this.destroy();
      }
      async _destroy(error, callback) {
        if (this.res) {
          this.res._dump();
        }
        if (this._request) {
          this._request.destroy();
        } else {
          process.nextTick(() => {
            this.emit("close");
          });
        }
        try {
          await this[kPendingAgentPromise];
        } catch (internalError) {
          if (this.aborted) {
            error = internalError;
          }
        }
        callback(error);
      }
      async flushHeaders() {
        if (this[kFlushedHeaders] || this.destroyed) {
          return;
        }
        this[kFlushedHeaders] = true;
        const isConnectMethod = this.method === HTTP2_METHOD_CONNECT;
        const onStream = (stream5) => {
          this._request = stream5;
          if (this.destroyed) {
            stream5.destroy();
            return;
          }
          if (!isConnectMethod) {
            proxyEvents2(stream5, this, ["timeout", "continue"]);
          }
          stream5.once("error", (error) => {
            this.destroy(error);
          });
          stream5.once("aborted", () => {
            const { res } = this;
            if (res) {
              res.aborted = true;
              res.emit("aborted");
              res.destroy();
            } else {
              this.destroy(new Error("The server aborted the HTTP/2 stream"));
            }
          });
          const onResponse2 = (headers, flags, rawHeaders) => {
            const response = new IncomingMessage(this.socket, stream5.readableHighWaterMark);
            this.res = response;
            response.url = `${this[kOrigin].origin}${this.path}`;
            response.req = this;
            response.statusCode = headers[HTTP2_HEADER_STATUS];
            response.headers = headers;
            response.rawHeaders = rawHeaders;
            response.once("end", () => {
              response.complete = true;
              response.socket = null;
              response.connection = null;
            });
            if (isConnectMethod) {
              response.upgrade = true;
              if (this.emit("connect", response, stream5, Buffer.alloc(0))) {
                this.emit("close");
              } else {
                stream5.destroy();
              }
            } else {
              stream5.on("data", (chunk2) => {
                if (!response._dumped && !response.push(chunk2)) {
                  stream5.pause();
                }
              });
              stream5.once("end", () => {
                if (!this.aborted) {
                  response.push(null);
                }
              });
              if (!this.emit("response", response)) {
                response._dump();
              }
            }
          };
          stream5.once("response", onResponse2);
          stream5.once("headers", (headers) => this.emit("information", { statusCode: headers[HTTP2_HEADER_STATUS] }));
          stream5.once("trailers", (trailers, flags, rawTrailers) => {
            const { res } = this;
            if (res === null) {
              onResponse2(trailers, flags, rawTrailers);
              return;
            }
            res.trailers = trailers;
            res.rawTrailers = rawTrailers;
          });
          stream5.once("close", () => {
            const { aborted, res } = this;
            if (res) {
              if (aborted) {
                res.aborted = true;
                res.emit("aborted");
                res.destroy();
              }
              const finish = () => {
                res.emit("close");
                this.destroy();
                this.emit("close");
              };
              if (res.readable) {
                res.once("end", finish);
              } else {
                finish();
              }
              return;
            }
            if (!this.destroyed) {
              this.destroy(new Error("The HTTP/2 stream has been early terminated"));
              this.emit("close");
              return;
            }
            this.destroy();
            this.emit("close");
          });
          this.socket = new Proxy(stream5, proxySocketHandler);
          for (const job of this[kJobs]) {
            job();
          }
          this[kJobs].length = 0;
          this.emit("socket", this.socket);
        };
        if (!(HTTP2_HEADER_AUTHORITY in this[kHeaders]) && !isConnectMethod) {
          this[kHeaders][HTTP2_HEADER_AUTHORITY] = this[kOrigin].host;
        }
        if (this[kSession]) {
          try {
            onStream(this[kSession].request(this[kHeaders]));
          } catch (error) {
            this.destroy(error);
          }
        } else {
          this.reusedSocket = true;
          try {
            const promise = this.agent.request(this[kOrigin], this[kOptions], this[kHeaders]);
            this[kPendingAgentPromise] = promise;
            onStream(await promise);
            this[kPendingAgentPromise] = false;
          } catch (error) {
            this[kPendingAgentPromise] = false;
            this.destroy(error);
          }
        }
      }
      get connection() {
        return this.socket;
      }
      set connection(value) {
        this.socket = value;
      }
      getHeaderNames() {
        return Object.keys(this[kHeaders]);
      }
      hasHeader(name2) {
        if (typeof name2 !== "string") {
          throw new ERR_INVALID_ARG_TYPE("name", "string", name2);
        }
        return Boolean(this[kHeaders][name2.toLowerCase()]);
      }
      getHeader(name2) {
        if (typeof name2 !== "string") {
          throw new ERR_INVALID_ARG_TYPE("name", "string", name2);
        }
        return this[kHeaders][name2.toLowerCase()];
      }
      get headersSent() {
        return this[kFlushedHeaders];
      }
      removeHeader(name2) {
        if (typeof name2 !== "string") {
          throw new ERR_INVALID_ARG_TYPE("name", "string", name2);
        }
        if (this.headersSent) {
          throw new ERR_HTTP_HEADERS_SENT("remove");
        }
        delete this[kHeaders][name2.toLowerCase()];
      }
      setHeader(name2, value) {
        if (this.headersSent) {
          throw new ERR_HTTP_HEADERS_SENT("set");
        }
        validateHeaderName(name2);
        validateHeaderValue(name2, value);
        const lowercased = name2.toLowerCase();
        if (lowercased === "connection") {
          if (value.toLowerCase() === "keep-alive") {
            return;
          }
          throw new Error(`Invalid 'connection' header: ${value}`);
        }
        if (lowercased === "host" && this.method === "CONNECT") {
          this[kHeaders][HTTP2_HEADER_AUTHORITY] = value;
        } else {
          this[kHeaders][lowercased] = value;
        }
      }
      setNoDelay() {
      }
      setSocketKeepAlive() {
      }
      setTimeout(ms2, callback) {
        const applyTimeout = () => this._request.setTimeout(ms2, callback);
        if (this._request) {
          applyTimeout();
        } else {
          this[kJobs].push(applyTimeout);
        }
        return this;
      }
      get maxHeadersCount() {
        if (!this.destroyed && this._request) {
          return this._request.session.localSettings.maxHeaderListSize;
        }
        return void 0;
      }
      set maxHeadersCount(_value) {
      }
    };
    module2.exports = ClientRequest;
  }
});
var require_resolve_alpn = __commonJS2({
  "../../node_modules/.pnpm/resolve-alpn@1.2.1/node_modules/resolve-alpn/index.js"(exports2, module2) {
    "use strict";
    var tls3 = __require("tls");
    module2.exports = (options = {}, connect2 = tls3.connect) => new Promise((resolve2, reject) => {
      let timeout = false;
      let socket;
      const callback = async () => {
        await socketPromise;
        socket.off("timeout", onTimeout);
        socket.off("error", reject);
        if (options.resolveSocket) {
          resolve2({ alpnProtocol: socket.alpnProtocol, socket, timeout });
          if (timeout) {
            await Promise.resolve();
            socket.emit("timeout");
          }
        } else {
          socket.destroy();
          resolve2({ alpnProtocol: socket.alpnProtocol, timeout });
        }
      };
      const onTimeout = async () => {
        timeout = true;
        callback();
      };
      const socketPromise = (async () => {
        try {
          socket = await connect2(options, callback);
          socket.on("error", reject);
          socket.once("timeout", onTimeout);
        } catch (error) {
          reject(error);
        }
      })();
    });
  }
});
var require_calculate_server_name = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/calculate-server-name.js"(exports2, module2) {
    "use strict";
    var { isIP } = __require("net");
    var assert3 = __require("assert");
    var getHost = (host) => {
      if (host[0] === "[") {
        const idx2 = host.indexOf("]");
        assert3(idx2 !== -1);
        return host.slice(1, idx2);
      }
      const idx = host.indexOf(":");
      if (idx === -1) {
        return host;
      }
      return host.slice(0, idx);
    };
    module2.exports = (host) => {
      const servername = getHost(host);
      if (isIP(servername)) {
        return "";
      }
      return servername;
    };
  }
});
var require_auto = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/auto.js"(exports2, module2) {
    "use strict";
    var { URL: URL5, urlToHttpOptions } = __require("url");
    var http6 = __require("http");
    var https5 = __require("https");
    var resolveALPN = require_resolve_alpn();
    var QuickLRU2 = require_quick_lru();
    var { Agent, globalAgent } = require_agent();
    var Http2ClientRequest = require_client_request();
    var calculateServerName = require_calculate_server_name();
    var delayAsyncDestroy = require_delay_async_destroy();
    var cache = new QuickLRU2({ maxSize: 100 });
    var queue = /* @__PURE__ */ new Map();
    var installSocket = (agent, socket, options) => {
      socket._httpMessage = { shouldKeepAlive: true };
      const onFree = () => {
        agent.emit("free", socket, options);
      };
      socket.on("free", onFree);
      const onClose = () => {
        agent.removeSocket(socket, options);
      };
      socket.on("close", onClose);
      const onTimeout = () => {
        const { freeSockets } = agent;
        for (const sockets of Object.values(freeSockets)) {
          if (sockets.includes(socket)) {
            socket.destroy();
            return;
          }
        }
      };
      socket.on("timeout", onTimeout);
      const onRemove = () => {
        agent.removeSocket(socket, options);
        socket.off("close", onClose);
        socket.off("free", onFree);
        socket.off("timeout", onTimeout);
        socket.off("agentRemove", onRemove);
      };
      socket.on("agentRemove", onRemove);
      agent.emit("free", socket, options);
    };
    var createResolveProtocol2 = (cache2, queue2 = /* @__PURE__ */ new Map(), connect2 = void 0) => {
      return async (options) => {
        const name2 = `${options.host}:${options.port}:${options.ALPNProtocols.sort()}`;
        if (!cache2.has(name2)) {
          if (queue2.has(name2)) {
            const result = await queue2.get(name2);
            return { alpnProtocol: result.alpnProtocol };
          }
          const { path: path22 } = options;
          options.path = options.socketPath;
          const resultPromise = resolveALPN(options, connect2);
          queue2.set(name2, resultPromise);
          try {
            const result = await resultPromise;
            cache2.set(name2, result.alpnProtocol);
            queue2.delete(name2);
            options.path = path22;
            return result;
          } catch (error) {
            queue2.delete(name2);
            options.path = path22;
            throw error;
          }
        }
        return { alpnProtocol: cache2.get(name2) };
      };
    };
    var defaultResolveProtocol = createResolveProtocol2(cache, queue);
    module2.exports = async (input, options, callback) => {
      if (typeof input === "string") {
        input = urlToHttpOptions(new URL5(input));
      } else if (input instanceof URL5) {
        input = urlToHttpOptions(input);
      } else {
        input = { ...input };
      }
      if (typeof options === "function" || options === void 0) {
        callback = options;
        options = input;
      } else {
        options = Object.assign(input, options);
      }
      options.ALPNProtocols = options.ALPNProtocols || ["h2", "http/1.1"];
      if (!Array.isArray(options.ALPNProtocols) || options.ALPNProtocols.length === 0) {
        throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");
      }
      options.protocol = options.protocol || "https:";
      const isHttps2 = options.protocol === "https:";
      options.host = options.hostname || options.host || "localhost";
      options.session = options.tlsSession;
      options.servername = options.servername || calculateServerName(options.headers && options.headers.host || options.host);
      options.port = options.port || (isHttps2 ? 443 : 80);
      options._defaultAgent = isHttps2 ? https5.globalAgent : http6.globalAgent;
      const resolveProtocol = options.resolveProtocol || defaultResolveProtocol;
      let { agent } = options;
      if (agent !== void 0 && agent !== false && agent.constructor.name !== "Object") {
        throw new Error("The `options.agent` can be only an object `http`, `https` or `http2` properties");
      }
      if (isHttps2) {
        options.resolveSocket = true;
        let { socket, alpnProtocol, timeout } = await resolveProtocol(options);
        if (timeout) {
          if (socket) {
            socket.destroy();
          }
          const error = new Error(`Timed out resolving ALPN: ${options.timeout} ms`);
          error.code = "ETIMEDOUT";
          error.ms = options.timeout;
          throw error;
        }
        if (socket && options.createConnection) {
          socket.destroy();
          socket = void 0;
        }
        delete options.resolveSocket;
        const isHttp2 = alpnProtocol === "h2";
        if (agent) {
          agent = isHttp2 ? agent.http2 : agent.https;
          options.agent = agent;
        }
        if (agent === void 0) {
          agent = isHttp2 ? globalAgent : https5.globalAgent;
        }
        if (socket) {
          if (agent === false) {
            socket.destroy();
          } else {
            const defaultCreateConnection = (isHttp2 ? Agent : https5.Agent).prototype.createConnection;
            if (agent.createConnection === defaultCreateConnection) {
              if (isHttp2) {
                options._reuseSocket = socket;
              } else {
                installSocket(agent, socket, options);
              }
            } else {
              socket.destroy();
            }
          }
        }
        if (isHttp2) {
          return delayAsyncDestroy(new Http2ClientRequest(options, callback));
        }
      } else if (agent) {
        options.agent = agent.http;
      }
      if (options.headers) {
        options.headers = { ...options.headers };
        if (options.headers[":authority"]) {
          if (!options.headers.host) {
            options.headers.host = options.headers[":authority"];
          }
          delete options.headers[":authority"];
        }
        delete options.headers[":method"];
        delete options.headers[":scheme"];
        delete options.headers[":path"];
      }
      return delayAsyncDestroy(http6.request(options, callback));
    };
    module2.exports.protocolCache = cache;
    module2.exports.resolveProtocol = defaultResolveProtocol;
    module2.exports.createResolveProtocol = createResolveProtocol2;
  }
});
var require_js_stream_socket = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/js-stream-socket.js"(exports2, module2) {
    "use strict";
    var stream5 = __require("stream");
    var tls3 = __require("tls");
    var JSStreamSocket = new tls3.TLSSocket(new stream5.PassThrough())._handle._parentWrap.constructor;
    module2.exports = JSStreamSocket;
  }
});
var require_unexpected_status_code_error = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/unexpected-status-code-error.js"(exports2, module2) {
    "use strict";
    var UnexpectedStatusCodeError = class extends Error {
      constructor(statusCode, statusMessage = "") {
        super(`The proxy server rejected the request with status code ${statusCode} (${statusMessage || "empty status message"})`);
        this.statusCode = statusCode;
        this.statusMessage = statusMessage;
      }
    };
    module2.exports = UnexpectedStatusCodeError;
  }
});
var require_check_type = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/utils/check-type.js"(exports2, module2) {
    "use strict";
    var checkType = (name2, value, types2) => {
      const valid = types2.some((type) => {
        const typeofType = typeof type;
        if (typeofType === "string") {
          return typeof value === type;
        }
        return value instanceof type;
      });
      if (!valid) {
        const names = types2.map((type) => typeof type === "string" ? type : type.name);
        throw new TypeError(`Expected '${name2}' to be a type of ${names.join(" or ")}, got ${typeof value}`);
      }
    };
    module2.exports = checkType;
  }
});
var require_initialize = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/initialize.js"(exports2, module2) {
    "use strict";
    var { URL: URL5 } = __require("url");
    var checkType = require_check_type();
    module2.exports = (self2, proxyOptions) => {
      checkType("proxyOptions", proxyOptions, ["object"]);
      checkType("proxyOptions.headers", proxyOptions.headers, ["object", "undefined"]);
      checkType("proxyOptions.raw", proxyOptions.raw, ["boolean", "undefined"]);
      checkType("proxyOptions.url", proxyOptions.url, [URL5, "string"]);
      const url2 = new URL5(proxyOptions.url);
      self2.proxyOptions = {
        raw: true,
        ...proxyOptions,
        headers: { ...proxyOptions.headers },
        url: url2
      };
    };
  }
});
var require_get_auth_headers = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/get-auth-headers.js"(exports2, module2) {
    "use strict";
    module2.exports = (self2) => {
      const { username, password } = self2.proxyOptions.url;
      if (username || password) {
        const data = `${username}:${password}`;
        const authorization = `Basic ${Buffer.from(data).toString("base64")}`;
        return {
          "proxy-authorization": authorization,
          authorization
        };
      }
      return {};
    };
  }
});
var require_h1_over_h2 = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h1-over-h2.js"(exports2, module2) {
    "use strict";
    var tls3 = __require("tls");
    var http6 = __require("http");
    var https5 = __require("https");
    var JSStreamSocket = require_js_stream_socket();
    var { globalAgent } = require_agent();
    var UnexpectedStatusCodeError = require_unexpected_status_code_error();
    var initialize2 = require_initialize();
    var getAuthorizationHeaders = require_get_auth_headers();
    var createConnection = (self2, options, callback) => {
      (async () => {
        try {
          const { proxyOptions } = self2;
          const { url: url2, headers, raw } = proxyOptions;
          const stream5 = await globalAgent.request(url2, proxyOptions, {
            ...getAuthorizationHeaders(self2),
            ...headers,
            ":method": "CONNECT",
            ":authority": `${options.host}:${options.port}`
          });
          stream5.once("error", callback);
          stream5.once("response", (headers2) => {
            const statusCode = headers2[":status"];
            if (statusCode !== 200) {
              callback(new UnexpectedStatusCodeError(statusCode, ""));
              return;
            }
            const encrypted = self2 instanceof https5.Agent;
            if (raw && encrypted) {
              options.socket = stream5;
              const secureStream = tls3.connect(options);
              secureStream.once("close", () => {
                stream5.destroy();
              });
              callback(null, secureStream);
              return;
            }
            const socket = new JSStreamSocket(stream5);
            socket.encrypted = false;
            socket._handle.getpeername = (out) => {
              out.family = void 0;
              out.address = void 0;
              out.port = void 0;
            };
            callback(null, socket);
          });
        } catch (error) {
          callback(error);
        }
      })();
    };
    var HttpOverHttp22 = class extends http6.Agent {
      constructor(options) {
        super(options);
        initialize2(this, options.proxyOptions);
      }
      createConnection(options, callback) {
        createConnection(this, options, callback);
      }
    };
    var HttpsOverHttp22 = class extends https5.Agent {
      constructor(options) {
        super(options);
        initialize2(this, options.proxyOptions);
      }
      createConnection(options, callback) {
        createConnection(this, options, callback);
      }
    };
    module2.exports = {
      HttpOverHttp2: HttpOverHttp22,
      HttpsOverHttp2: HttpsOverHttp22
    };
  }
});
var require_h2_over_hx = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-hx.js"(exports2, module2) {
    "use strict";
    var { Agent } = require_agent();
    var JSStreamSocket = require_js_stream_socket();
    var UnexpectedStatusCodeError = require_unexpected_status_code_error();
    var initialize2 = require_initialize();
    var Http2OverHttpX = class extends Agent {
      constructor(options) {
        super(options);
        initialize2(this, options.proxyOptions);
      }
      async createConnection(origin2, options) {
        const authority = `${origin2.hostname}:${origin2.port || 443}`;
        const [stream5, statusCode, statusMessage] = await this._getProxyStream(authority);
        if (statusCode !== 200) {
          throw new UnexpectedStatusCodeError(statusCode, statusMessage);
        }
        if (this.proxyOptions.raw) {
          options.socket = stream5;
        } else {
          const socket = new JSStreamSocket(stream5);
          socket.encrypted = false;
          socket._handle.getpeername = (out) => {
            out.family = void 0;
            out.address = void 0;
            out.port = void 0;
          };
          return socket;
        }
        return super.createConnection(origin2, options);
      }
    };
    module2.exports = Http2OverHttpX;
  }
});
var require_h2_over_h2 = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h2.js"(exports2, module2) {
    "use strict";
    var { globalAgent } = require_agent();
    var Http2OverHttpX = require_h2_over_hx();
    var getAuthorizationHeaders = require_get_auth_headers();
    var getStatusCode = (stream5) => new Promise((resolve2, reject) => {
      stream5.once("error", reject);
      stream5.once("response", (headers) => {
        stream5.off("error", reject);
        resolve2(headers[":status"]);
      });
    });
    var Http2OverHttp22 = class extends Http2OverHttpX {
      async _getProxyStream(authority) {
        const { proxyOptions } = this;
        const headers = {
          ...getAuthorizationHeaders(this),
          ...proxyOptions.headers,
          ":method": "CONNECT",
          ":authority": authority
        };
        const stream5 = await globalAgent.request(proxyOptions.url, proxyOptions, headers);
        const statusCode = await getStatusCode(stream5);
        return [stream5, statusCode, ""];
      }
    };
    module2.exports = Http2OverHttp22;
  }
});
var require_h2_over_h1 = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/proxies/h2-over-h1.js"(exports2, module2) {
    "use strict";
    var http6 = __require("http");
    var https5 = __require("https");
    var Http2OverHttpX = require_h2_over_hx();
    var getAuthorizationHeaders = require_get_auth_headers();
    var getStream = (request) => new Promise((resolve2, reject) => {
      const onConnect = (response, socket, head) => {
        socket.unshift(head);
        request.off("error", reject);
        resolve2([socket, response.statusCode, response.statusMessage]);
      };
      request.once("error", reject);
      request.once("connect", onConnect);
    });
    var Http2OverHttp3 = class extends Http2OverHttpX {
      async _getProxyStream(authority) {
        const { proxyOptions } = this;
        const { url: url2, headers } = this.proxyOptions;
        const network = url2.protocol === "https:" ? https5 : http6;
        const request = network.request({
          ...proxyOptions,
          hostname: url2.hostname,
          port: url2.port,
          path: authority,
          headers: {
            ...getAuthorizationHeaders(this),
            ...headers,
            host: authority
          },
          method: "CONNECT"
        }).end();
        return getStream(request);
      }
    };
    module2.exports = {
      Http2OverHttp: Http2OverHttp3,
      Http2OverHttps: Http2OverHttp3
    };
  }
});
var require_source = __commonJS2({
  "../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/source/index.js"(exports2, module2) {
    "use strict";
    var http25 = __require("http2");
    var {
      Agent,
      globalAgent
    } = require_agent();
    var ClientRequest = require_client_request();
    var IncomingMessage = require_incoming_message();
    var auto4 = require_auto();
    var {
      HttpOverHttp2: HttpOverHttp22,
      HttpsOverHttp2: HttpsOverHttp22
    } = require_h1_over_h2();
    var Http2OverHttp22 = require_h2_over_h2();
    var {
      Http2OverHttp: Http2OverHttp3,
      Http2OverHttps: Http2OverHttps2
    } = require_h2_over_h1();
    var validateHeaderName = require_validate_header_name();
    var validateHeaderValue = require_validate_header_value();
    var request = (url2, options, callback) => new ClientRequest(url2, options, callback);
    var get2 = (url2, options, callback) => {
      const req = new ClientRequest(url2, options, callback);
      req.end();
      return req;
    };
    module2.exports = {
      ...http25,
      ClientRequest,
      IncomingMessage,
      Agent,
      globalAgent,
      request,
      get: get2,
      auto: auto4,
      proxies: {
        HttpOverHttp2: HttpOverHttp22,
        HttpsOverHttp2: HttpsOverHttp22,
        Http2OverHttp2: Http2OverHttp22,
        Http2OverHttp: Http2OverHttp3,
        Http2OverHttps: Http2OverHttps2
      },
      validateHeaderName,
      validateHeaderValue
    };
  }
});
function parseLinkHeader(link) {
  const parsed = [];
  const items = link.split(",");
  for (const item of items) {
    const [rawUriReference, ...rawLinkParameters] = item.split(";");
    const trimmedUriReference = rawUriReference.trim();
    if (trimmedUriReference[0] !== "<" || trimmedUriReference.at(-1) !== ">") {
      throw new Error(`Invalid format of the Link header reference: ${trimmedUriReference}`);
    }
    const reference = trimmedUriReference.slice(1, -1);
    const parameters = {};
    if (rawLinkParameters.length === 0) {
      throw new Error(`Unexpected end of Link header parameters: ${rawLinkParameters.join(";")}`);
    }
    for (const rawParameter of rawLinkParameters) {
      const trimmedRawParameter = rawParameter.trim();
      const center = trimmedRawParameter.indexOf("=");
      if (center === -1) {
        throw new Error(`Failed to parse Link header: ${link}`);
      }
      const name2 = trimmedRawParameter.slice(0, center).trim();
      const value = trimmedRawParameter.slice(center + 1).trim();
      parameters[name2] = value;
    }
    parsed.push({
      reference,
      parameters
    });
  }
  return parsed;
}
var init_parse_link_header = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/parse-link-header.js"() {
  }
});
function wrapAssertionWithContext(optionName, assertionFn) {
  try {
    assertionFn();
  } catch (error) {
    if (error instanceof Error) {
      error.message = `Option '${optionName}': ${error.message}`;
    }
    throw error;
  }
}
function assertAny2(optionName, validators4, value) {
  wrapAssertionWithContext(optionName, () => {
    assert.any(validators4, value);
  });
}
function assertPlainObject2(optionName, value) {
  wrapAssertionWithContext(optionName, () => {
    assert.plainObject(value);
  });
}
function validateSearchParameters(searchParameters) {
  for (const key in searchParameters) {
    const value = searchParameters[key];
    assertAny2(`searchParams.${key}`, [distribution_default.string, distribution_default.number, distribution_default.boolean, distribution_default.null, distribution_default.undefined], value);
  }
}
var import_http2_wrapper;
var major;
var minor;
var globalCache;
var globalDnsCache;
var getGlobalDnsCache;
var wrapQuickLruIfNeeded;
var defaultInternals;
var cloneInternals;
var cloneRaw;
var getHttp2TimeoutOption;
var init;
var Options;
var init_options = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/options.js"() {
    init_distribution();
    init_lowercase_keys();
    init_source2();
    import_http2_wrapper = __toESM2(require_source(), 1);
    init_lib();
    init_parse_link_header();
    [major, minor] = import_node_process.default.versions.node.split(".").map(Number);
    globalCache = /* @__PURE__ */ new Map();
    getGlobalDnsCache = () => {
      if (globalDnsCache) {
        return globalDnsCache;
      }
      globalDnsCache = new CacheableLookup();
      return globalDnsCache;
    };
    wrapQuickLruIfNeeded = (value) => {
      if (value?.[Symbol.toStringTag] === "QuickLRU" && typeof value.evict === "function") {
        return {
          get(key) {
            return value.get(key);
          },
          set(key, cacheValue, ttl2) {
            if (ttl2 === void 0) {
              value.set(key, cacheValue);
            } else {
              value.set(key, cacheValue, { maxAge: ttl2 });
            }
            return true;
          },
          delete(key) {
            return value.delete(key);
          },
          clear() {
            return value.clear();
          },
          has(key) {
            return value.has(key);
          }
        };
      }
      return value;
    };
    defaultInternals = {
      request: void 0,
      agent: {
        http: void 0,
        https: void 0,
        http2: void 0
      },
      h2session: void 0,
      decompress: true,
      timeout: {
        connect: void 0,
        lookup: void 0,
        read: void 0,
        request: void 0,
        response: void 0,
        secureConnect: void 0,
        send: void 0,
        socket: void 0
      },
      prefixUrl: "",
      body: void 0,
      form: void 0,
      json: void 0,
      cookieJar: void 0,
      ignoreInvalidCookies: false,
      searchParams: void 0,
      dnsLookup: void 0,
      dnsCache: void 0,
      context: {},
      hooks: {
        init: [],
        beforeRequest: [],
        beforeError: [],
        beforeRedirect: [],
        beforeRetry: [],
        beforeCache: [],
        afterResponse: []
      },
      followRedirect: true,
      maxRedirects: 10,
      cache: void 0,
      throwHttpErrors: true,
      username: "",
      password: "",
      http2: false,
      allowGetBody: false,
      copyPipedHeaders: true,
      headers: {
        "user-agent": "got (https://github.com/sindresorhus/got)"
      },
      methodRewriting: false,
      dnsLookupIpVersion: void 0,
      parseJson: JSON.parse,
      stringifyJson: JSON.stringify,
      retry: {
        limit: 2,
        methods: [
          "GET",
          "PUT",
          "HEAD",
          "DELETE",
          "OPTIONS",
          "TRACE"
        ],
        statusCodes: [
          408,
          413,
          429,
          500,
          502,
          503,
          504,
          521,
          522,
          524
        ],
        errorCodes: [
          "ETIMEDOUT",
          "ECONNRESET",
          "EADDRINUSE",
          "ECONNREFUSED",
          "EPIPE",
          "ENOTFOUND",
          "ENETUNREACH",
          "EAI_AGAIN"
        ],
        maxRetryAfter: void 0,
        calculateDelay: ({ computedValue }) => computedValue,
        backoffLimit: Number.POSITIVE_INFINITY,
        noise: 100,
        // TODO: Change default to `true` in the next major version to fix https://github.com/sindresorhus/got/issues/2243
        enforceRetryRules: false
      },
      localAddress: void 0,
      method: "GET",
      createConnection: void 0,
      cacheOptions: {
        shared: void 0,
        cacheHeuristic: void 0,
        immutableMinTimeToLive: void 0,
        ignoreCargoCult: void 0
      },
      https: {
        alpnProtocols: void 0,
        rejectUnauthorized: void 0,
        checkServerIdentity: void 0,
        serverName: void 0,
        certificateAuthority: void 0,
        key: void 0,
        certificate: void 0,
        passphrase: void 0,
        pfx: void 0,
        ciphers: void 0,
        honorCipherOrder: void 0,
        minVersion: void 0,
        maxVersion: void 0,
        signatureAlgorithms: void 0,
        tlsSessionLifetime: void 0,
        dhparam: void 0,
        ecdhCurve: void 0,
        certificateRevocationLists: void 0,
        secureOptions: void 0
      },
      encoding: void 0,
      resolveBodyOnly: false,
      isStream: false,
      responseType: "text",
      url: void 0,
      pagination: {
        transform(response) {
          if (response.request.options.responseType === "json") {
            return response.body;
          }
          return JSON.parse(response.body);
        },
        paginate({ response }) {
          const rawLinkHeader = response.headers.link;
          if (typeof rawLinkHeader !== "string" || rawLinkHeader.trim() === "") {
            return false;
          }
          const parsed = parseLinkHeader(rawLinkHeader);
          const next = parsed.find((entry) => entry.parameters.rel === "next" || entry.parameters.rel === '"next"');
          if (next) {
            return {
              url: new URL(next.reference, response.url)
            };
          }
          return false;
        },
        filter: () => true,
        shouldContinue: () => true,
        countLimit: Number.POSITIVE_INFINITY,
        backoff: 0,
        requestLimit: 1e4,
        stackAllItems: false
      },
      setHost: true,
      maxHeaderSize: void 0,
      signal: void 0,
      enableUnixSockets: false,
      strictContentLength: false
    };
    cloneInternals = (internals) => {
      const { hooks: hooks2, retry } = internals;
      const result = {
        ...internals,
        context: { ...internals.context },
        cacheOptions: { ...internals.cacheOptions },
        https: { ...internals.https },
        agent: { ...internals.agent },
        headers: { ...internals.headers },
        retry: {
          ...retry,
          errorCodes: [...retry.errorCodes],
          methods: [...retry.methods],
          statusCodes: [...retry.statusCodes]
        },
        timeout: { ...internals.timeout },
        hooks: {
          init: [...hooks2.init],
          beforeRequest: [...hooks2.beforeRequest],
          beforeError: [...hooks2.beforeError],
          beforeRedirect: [...hooks2.beforeRedirect],
          beforeRetry: [...hooks2.beforeRetry],
          beforeCache: [...hooks2.beforeCache],
          afterResponse: [...hooks2.afterResponse]
        },
        searchParams: internals.searchParams ? new URLSearchParams(internals.searchParams) : void 0,
        pagination: { ...internals.pagination }
      };
      return result;
    };
    cloneRaw = (raw) => {
      const { hooks: hooks2, retry } = raw;
      const result = { ...raw };
      if (distribution_default.object(raw.context)) {
        result.context = { ...raw.context };
      }
      if (distribution_default.object(raw.cacheOptions)) {
        result.cacheOptions = { ...raw.cacheOptions };
      }
      if (distribution_default.object(raw.https)) {
        result.https = { ...raw.https };
      }
      if (distribution_default.object(raw.cacheOptions)) {
        result.cacheOptions = { ...result.cacheOptions };
      }
      if (distribution_default.object(raw.agent)) {
        result.agent = { ...raw.agent };
      }
      if (distribution_default.object(raw.headers)) {
        result.headers = { ...raw.headers };
      }
      if (distribution_default.object(retry)) {
        result.retry = { ...retry };
        if (distribution_default.array(retry.errorCodes)) {
          result.retry.errorCodes = [...retry.errorCodes];
        }
        if (distribution_default.array(retry.methods)) {
          result.retry.methods = [...retry.methods];
        }
        if (distribution_default.array(retry.statusCodes)) {
          result.retry.statusCodes = [...retry.statusCodes];
        }
      }
      if (distribution_default.object(raw.timeout)) {
        result.timeout = { ...raw.timeout };
      }
      if (distribution_default.object(hooks2)) {
        result.hooks = {
          ...hooks2
        };
        if (distribution_default.array(hooks2.init)) {
          result.hooks.init = [...hooks2.init];
        }
        if (distribution_default.array(hooks2.beforeRequest)) {
          result.hooks.beforeRequest = [...hooks2.beforeRequest];
        }
        if (distribution_default.array(hooks2.beforeError)) {
          result.hooks.beforeError = [...hooks2.beforeError];
        }
        if (distribution_default.array(hooks2.beforeRedirect)) {
          result.hooks.beforeRedirect = [...hooks2.beforeRedirect];
        }
        if (distribution_default.array(hooks2.beforeRetry)) {
          result.hooks.beforeRetry = [...hooks2.beforeRetry];
        }
        if (distribution_default.array(hooks2.beforeCache)) {
          result.hooks.beforeCache = [...hooks2.beforeCache];
        }
        if (distribution_default.array(hooks2.afterResponse)) {
          result.hooks.afterResponse = [...hooks2.afterResponse];
        }
      }
      if (raw.searchParams) {
        if (distribution_default.string(raw.searchParams)) {
          result.searchParams = raw.searchParams;
        } else if (raw.searchParams instanceof URLSearchParams) {
          result.searchParams = new URLSearchParams(raw.searchParams);
        } else if (distribution_default.object(raw.searchParams)) {
          result.searchParams = { ...raw.searchParams };
        }
      }
      if (distribution_default.object(raw.pagination)) {
        result.pagination = { ...raw.pagination };
      }
      return result;
    };
    getHttp2TimeoutOption = (internals) => {
      const delays = [internals.timeout.socket, internals.timeout.connect, internals.timeout.lookup, internals.timeout.request, internals.timeout.secureConnect].filter((delay2) => typeof delay2 === "number");
      if (delays.length > 0) {
        return Math.min(...delays);
      }
      return void 0;
    };
    init = (options, withOptions, self2) => {
      const initHooks = options.hooks?.init;
      if (initHooks) {
        for (const hook of initHooks) {
          hook(withOptions, self2);
        }
      }
    };
    Options = class _Options {
      _unixOptions;
      _internals;
      _merging = false;
      _init;
      constructor(input, options, defaults42) {
        assertAny2("input", [distribution_default.string, distribution_default.urlInstance, distribution_default.object, distribution_default.undefined], input);
        assertAny2("options", [distribution_default.object, distribution_default.undefined], options);
        assertAny2("defaults", [distribution_default.object, distribution_default.undefined], defaults42);
        if (input instanceof _Options || options instanceof _Options) {
          throw new TypeError("The defaults must be passed as the third argument");
        }
        this._internals = cloneInternals(defaults42?._internals ?? defaults42 ?? defaultInternals);
        this._init = [...defaults42?._init ?? []];
        try {
          if (distribution_default.plainObject(input)) {
            try {
              this.merge(input);
              this.merge(options);
            } finally {
              this.url = input.url;
            }
          } else {
            try {
              this.merge(options);
            } finally {
              if (options?.url !== void 0) {
                if (input === void 0) {
                  this.url = options.url;
                } else {
                  throw new TypeError("The `url` option is mutually exclusive with the `input` argument");
                }
              } else if (input !== void 0) {
                this.url = input;
              }
            }
          }
        } catch (error) {
          error.options = this;
          throw error;
        }
      }
      merge(options) {
        if (!options) {
          return;
        }
        if (options instanceof _Options) {
          const initArray = [...options._init];
          for (const init3 of initArray) {
            this.merge(init3);
          }
          return;
        }
        options = cloneRaw(options);
        init(this, options, this);
        init(options, options, this);
        this._merging = true;
        if ("isStream" in options) {
          this.isStream = options.isStream;
        }
        try {
          let push = false;
          for (const key in options) {
            if (key === "mutableDefaults" || key === "handlers") {
              continue;
            }
            if (key === "url") {
              continue;
            }
            if (key === "preserveHooks") {
              continue;
            }
            if (!(key in this)) {
              throw new Error(`Unexpected option: ${key}`);
            }
            const value = options[key];
            if (value === void 0) {
              continue;
            }
            this[key] = value;
            push = true;
          }
          if (push) {
            this._init.push(options);
          }
        } finally {
          this._merging = false;
        }
      }
      /**
          Custom request function.
          The main purpose of this is to [support HTTP2 using a wrapper](https://github.com/szmarczak/http2-wrapper).
      
          @default http.request | https.request
          */
      get request() {
        return this._internals.request;
      }
      set request(value) {
        assertAny2("request", [distribution_default.function, distribution_default.undefined], value);
        this._internals.request = value;
      }
      /**
          An object representing `http`, `https` and `http2` keys for [`http.Agent`](https://nodejs.org/api/http.html#http_class_http_agent), [`https.Agent`](https://nodejs.org/api/https.html#https_class_https_agent) and [`http2wrapper.Agent`](https://github.com/szmarczak/http2-wrapper#new-http2agentoptions) instance.
          This is necessary because a request to one protocol might redirect to another.
          In such a scenario, Got will switch over to the right protocol agent for you.
      
          If a key is not present, it will default to a global agent.
      
          @example
          ```
          import got from 'got';
          import HttpAgent from 'agentkeepalive';
      
          const {HttpsAgent} = HttpAgent;
      
          await got('https://sindresorhus.com', {
              agent: {
                  http: new HttpAgent(),
                  https: new HttpsAgent()
              }
          });
          ```
          */
      get agent() {
        return this._internals.agent;
      }
      set agent(value) {
        assertPlainObject2("agent", value);
        for (const key in value) {
          if (!(key in this._internals.agent)) {
            throw new TypeError(`Unexpected agent option: ${key}`);
          }
          assertAny2(`agent.${key}`, [distribution_default.object, distribution_default.undefined, (v2) => v2 === false], value[key]);
        }
        if (this._merging) {
          Object.assign(this._internals.agent, value);
        } else {
          this._internals.agent = { ...value };
        }
      }
      get h2session() {
        return this._internals.h2session;
      }
      set h2session(value) {
        this._internals.h2session = value;
      }
      /**
          Decompress the response automatically.
      
          This will set the `accept-encoding` header to `gzip, deflate, br` unless you set it yourself.
      
          If this is disabled, a compressed response is returned as a `Buffer`.
          This may be useful if you want to handle decompression yourself or stream the raw compressed data.
      
          @default true
          */
      get decompress() {
        return this._internals.decompress;
      }
      set decompress(value) {
        assert.boolean(value);
        this._internals.decompress = value;
      }
      /**
          Milliseconds to wait for the server to end the response before aborting the request with `got.TimeoutError` error (a.k.a. `request` property).
          By default, there's no timeout.
      
          This also accepts an `object` with the following fields to constrain the duration of each phase of the request lifecycle:
      
          - `lookup` starts when a socket is assigned and ends when the hostname has been resolved.
              Does not apply when using a Unix domain socket.
          - `connect` starts when `lookup` completes (or when the socket is assigned if lookup does not apply to the request) and ends when the socket is connected.
          - `secureConnect` starts when `connect` completes and ends when the handshaking process completes (HTTPS only).
          - `socket` starts when the socket is connected. See [request.setTimeout](https://nodejs.org/api/http.html#http_request_settimeout_timeout_callback).
          - `response` starts when the request has been written to the socket and ends when the response headers are received.
          - `send` starts when the socket is connected and ends with the request has been written to the socket.
          - `request` starts when the request is initiated and ends when the response's end event fires.
          */
      get timeout() {
        return this._internals.timeout;
      }
      set timeout(value) {
        assertPlainObject2("timeout", value);
        for (const key in value) {
          if (!(key in this._internals.timeout)) {
            throw new Error(`Unexpected timeout option: ${key}`);
          }
          assertAny2(`timeout.${key}`, [distribution_default.number, distribution_default.undefined], value[key]);
        }
        if (this._merging) {
          Object.assign(this._internals.timeout, value);
        } else {
          this._internals.timeout = { ...value };
        }
      }
      /**
          When specified, `prefixUrl` will be prepended to `url`.
          The prefix can be any valid URL, either relative or absolute.
          A trailing slash `/` is optional - one will be added automatically.
      
          __Note__: `prefixUrl` will be ignored if the `url` argument is a URL instance.
      
          __Note__: Leading slashes in `input` are disallowed when using this option to enforce consistency and avoid confusion.
          For example, when the prefix URL is `https://example.com/foo` and the input is `/bar`, there's ambiguity whether the resulting URL would become `https://example.com/foo/bar` or `https://example.com/bar`.
          The latter is used by browsers.
      
          __Tip__: Useful when used with `got.extend()` to create niche-specific Got instances.
      
          __Tip__: You can change `prefixUrl` using hooks as long as the URL still includes the `prefixUrl`.
          If the URL doesn't include it anymore, it will throw.
      
          @example
          ```
          import got from 'got';
      
          await got('unicorn', {prefixUrl: 'https://cats.com'});
          //=> 'https://cats.com/unicorn'
      
          const instance = got.extend({
              prefixUrl: 'https://google.com'
          });
      
          await instance('unicorn', {
              hooks: {
                  beforeRequest: [
                      options => {
                          options.prefixUrl = 'https://cats.com';
                      }
                  ]
              }
          });
          //=> 'https://cats.com/unicorn'
          ```
          */
      get prefixUrl() {
        return this._internals.prefixUrl;
      }
      set prefixUrl(value) {
        assertAny2("prefixUrl", [distribution_default.string, distribution_default.urlInstance], value);
        if (value === "") {
          this._internals.prefixUrl = "";
          return;
        }
        value = value.toString();
        if (!value.endsWith("/")) {
          value += "/";
        }
        if (this._internals.prefixUrl && this._internals.url) {
          const { href } = this._internals.url;
          this._internals.url.href = value + href.slice(this._internals.prefixUrl.length);
        }
        this._internals.prefixUrl = value;
      }
      /**
          __Note #1__: The `body` option cannot be used with the `json` or `form` option.
      
          __Note #2__: If you provide this option, `got.stream()` will be read-only.
      
          __Note #3__: If you provide a payload with the `GET` or `HEAD` method, it will throw a `TypeError` unless the method is `GET` and the `allowGetBody` option is set to `true`.
      
          __Note #4__: This option is not enumerable and will not be merged with the instance defaults.
      
          The `content-length` header will be automatically set if `body` is a `string` / `Buffer` / typed array ([`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), etc.) / [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) / [`form-data` instance](https://github.com/form-data/form-data), and `content-length` and `transfer-encoding` are not manually set in `options.headers`.
      
          Since Got 12, the `content-length` is not automatically set when `body` is a `fs.createReadStream`.
      
          You can use `Iterable` and `AsyncIterable` objects as request body, including Web [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream):
      
          @example
          ```
          import got from 'got';
      
          // Using an async generator
          async function* generateData() {
              yield 'Hello, ';
              yield 'world!';
          }
      
          await got.post('https://httpbin.org/anything', {
              body: generateData()
          });
          ```
          */
      get body() {
        return this._internals.body;
      }
      set body(value) {
        assertAny2("body", [distribution_default.string, distribution_default.buffer, distribution_default.nodeStream, distribution_default.generator, distribution_default.asyncGenerator, distribution_default.iterable, distribution_default.asyncIterable, isFormData2, distribution_default.typedArray, distribution_default.undefined], value);
        if (distribution_default.nodeStream(value)) {
          assert.truthy(value.readable);
        }
        if (value !== void 0) {
          assert.undefined(this._internals.form);
          assert.undefined(this._internals.json);
        }
        this._internals.body = value;
      }
      /**
          The form body is converted to a query string using [`(new URLSearchParams(object)).toString()`](https://nodejs.org/api/url.html#url_constructor_new_urlsearchparams_obj).
      
          If the `Content-Type` header is not present, it will be set to `application/x-www-form-urlencoded`.
      
          __Note #1__: If you provide this option, `got.stream()` will be read-only.
      
          __Note #2__: This option is not enumerable and will not be merged with the instance defaults.
          */
      get form() {
        return this._internals.form;
      }
      set form(value) {
        assertAny2("form", [distribution_default.plainObject, distribution_default.undefined], value);
        if (value !== void 0) {
          assert.undefined(this._internals.body);
          assert.undefined(this._internals.json);
        }
        this._internals.form = value;
      }
      /**
          JSON request body. If the `content-type` header is not set, it will be set to `application/json`.
      
          __Important__: This option only affects the request body you send to the server. To parse the response as JSON, you must either call `.json()` on the promise or set `responseType: 'json'` in the options.
      
          __Note #1__: If you provide this option, `got.stream()` will be read-only.
      
          __Note #2__: This option is not enumerable and will not be merged with the instance defaults.
          */
      get json() {
        return this._internals.json;
      }
      set json(value) {
        if (value !== void 0) {
          assert.undefined(this._internals.body);
          assert.undefined(this._internals.form);
        }
        this._internals.json = value;
      }
      /**
          The URL to request, as a string, a [`https.request` options object](https://nodejs.org/api/https.html#https_https_request_options_callback), or a [WHATWG `URL`](https://nodejs.org/api/url.html#url_class_url).
      
          Properties from `options` will override properties in the parsed `url`.
      
          If no protocol is specified, it will throw a `TypeError`.
      
          __Note__: The query string is **not** parsed as search params.
      
          @example
          ```
          await got('https://example.com/?query=a b'); //=> https://example.com/?query=a%20b
          await got('https://example.com/', {searchParams: {query: 'a b'}}); //=> https://example.com/?query=a+b
      
          // The query string is overridden by `searchParams`
          await got('https://example.com/?query=a b', {searchParams: {query: 'a b'}}); //=> https://example.com/?query=a+b
          ```
          */
      get url() {
        return this._internals.url;
      }
      set url(value) {
        assertAny2("url", [distribution_default.string, distribution_default.urlInstance, distribution_default.undefined], value);
        if (value === void 0) {
          this._internals.url = void 0;
          return;
        }
        if (distribution_default.string(value) && value.startsWith("/")) {
          throw new Error("`url` must not start with a slash");
        }
        const valueString = value.toString();
        const isAbsolute = distribution_default.urlInstance(value) || /^[a-z][a-z\d+.-]*:\/\//i.test(valueString);
        const urlString = isAbsolute ? valueString : `${this.prefixUrl}${valueString}`;
        const url2 = new URL(urlString);
        this._internals.url = url2;
        if (url2.protocol === "unix:") {
          url2.href = `http://unix${url2.pathname}${url2.search}`;
        }
        if (url2.protocol !== "http:" && url2.protocol !== "https:") {
          const error = new Error(`Unsupported protocol: ${url2.protocol}`);
          error.code = "ERR_UNSUPPORTED_PROTOCOL";
          throw error;
        }
        if (this._internals.username) {
          url2.username = this._internals.username;
          this._internals.username = "";
        }
        if (this._internals.password) {
          url2.password = this._internals.password;
          this._internals.password = "";
        }
        if (this._internals.searchParams) {
          url2.search = this._internals.searchParams.toString();
          this._internals.searchParams = void 0;
        }
        if (url2.hostname === "unix") {
          if (!this._internals.enableUnixSockets) {
            throw new Error("Using UNIX domain sockets but option `enableUnixSockets` is not enabled");
          }
          const matches = /(?<socketPath>.+?):(?<path>.+)/.exec(`${url2.pathname}${url2.search}`);
          if (matches?.groups) {
            const { socketPath, path: path22 } = matches.groups;
            this._unixOptions = {
              socketPath,
              path: path22,
              host: ""
            };
          } else {
            this._unixOptions = void 0;
          }
          return;
        }
        this._unixOptions = void 0;
      }
      /**
          Cookie support. You don't have to care about parsing or how to store them.
      
          __Note__: If you provide this option, `options.headers.cookie` will be overridden.
          */
      get cookieJar() {
        return this._internals.cookieJar;
      }
      set cookieJar(value) {
        assertAny2("cookieJar", [distribution_default.object, distribution_default.undefined], value);
        if (value === void 0) {
          this._internals.cookieJar = void 0;
          return;
        }
        let { setCookie, getCookieString } = value;
        assert.function(setCookie);
        assert.function(getCookieString);
        if (setCookie.length === 4 && getCookieString.length === 0) {
          setCookie = (0, import_node_util4.promisify)(setCookie.bind(value));
          getCookieString = (0, import_node_util4.promisify)(getCookieString.bind(value));
          this._internals.cookieJar = {
            setCookie,
            getCookieString
          };
        } else {
          this._internals.cookieJar = value;
        }
      }
      /**
          You can abort the `request` using [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController).
      
          @example
          ```
          import got from 'got';
      
          const abortController = new AbortController();
      
          const request = got('https://httpbin.org/anything', {
              signal: abortController.signal
          });
      
          setTimeout(() => {
              abortController.abort();
          }, 100);
          ```
          */
      get signal() {
        return this._internals.signal;
      }
      set signal(value) {
        assert.object(value);
        this._internals.signal = value;
      }
      /**
          Ignore invalid cookies instead of throwing an error.
          Only useful when the `cookieJar` option has been set. Not recommended.
      
          @default false
          */
      get ignoreInvalidCookies() {
        return this._internals.ignoreInvalidCookies;
      }
      set ignoreInvalidCookies(value) {
        assert.boolean(value);
        this._internals.ignoreInvalidCookies = value;
      }
      /**
          Query string that will be added to the request URL.
          This will override the query string in `url`.
      
          If you need to pass in an array, you can do it using a `URLSearchParams` instance.
      
          @example
          ```
          import got from 'got';
      
          const searchParams = new URLSearchParams([['key', 'a'], ['key', 'b']]);
      
          await got('https://example.com', {searchParams});
      
          console.log(searchParams.toString());
          //=> 'key=a&key=b'
          ```
          */
      get searchParams() {
        if (this._internals.url) {
          return this._internals.url.searchParams;
        }
        if (this._internals.searchParams === void 0) {
          this._internals.searchParams = new URLSearchParams();
        }
        return this._internals.searchParams;
      }
      set searchParams(value) {
        assertAny2("searchParams", [distribution_default.string, distribution_default.object, distribution_default.undefined], value);
        const url2 = this._internals.url;
        if (value === void 0) {
          this._internals.searchParams = void 0;
          if (url2) {
            url2.search = "";
          }
          return;
        }
        const searchParameters = this.searchParams;
        let updated;
        if (distribution_default.string(value)) {
          updated = new URLSearchParams(value);
        } else if (value instanceof URLSearchParams) {
          updated = value;
        } else {
          validateSearchParameters(value);
          updated = new URLSearchParams();
          for (const key in value) {
            const entry = value[key];
            if (entry === null) {
              updated.append(key, "");
            } else if (entry === void 0) {
              searchParameters.delete(key);
            } else {
              updated.append(key, entry);
            }
          }
        }
        if (this._merging) {
          for (const key of updated.keys()) {
            searchParameters.delete(key);
          }
          for (const [key, value2] of updated) {
            searchParameters.append(key, value2);
          }
        } else if (url2) {
          url2.search = searchParameters.toString();
        } else {
          this._internals.searchParams = searchParameters;
        }
      }
      get searchParameters() {
        throw new Error("The `searchParameters` option does not exist. Use `searchParams` instead.");
      }
      set searchParameters(_value) {
        throw new Error("The `searchParameters` option does not exist. Use `searchParams` instead.");
      }
      get dnsLookup() {
        return this._internals.dnsLookup;
      }
      set dnsLookup(value) {
        assertAny2("dnsLookup", [distribution_default.function, distribution_default.undefined], value);
        this._internals.dnsLookup = value;
      }
      /**
          An instance of [`CacheableLookup`](https://github.com/szmarczak/cacheable-lookup) used for making DNS lookups.
          Useful when making lots of requests to different *public* hostnames.
      
          `CacheableLookup` uses `dns.resolver4(..)` and `dns.resolver6(...)` under the hood and fall backs to `dns.lookup(...)` when the first two fail, which may lead to additional delay.
      
          __Note__: This should stay disabled when making requests to internal hostnames such as `localhost`, `database.local` etc.
      
          @default false
          */
      get dnsCache() {
        return this._internals.dnsCache;
      }
      set dnsCache(value) {
        assertAny2("dnsCache", [distribution_default.object, distribution_default.boolean, distribution_default.undefined], value);
        if (value === true) {
          this._internals.dnsCache = getGlobalDnsCache();
        } else if (value === false) {
          this._internals.dnsCache = void 0;
        } else {
          this._internals.dnsCache = value;
        }
      }
      /**
          User data. `context` is shallow merged and enumerable. If it contains non-enumerable properties they will NOT be merged.
      
          @example
          ```
          import got from 'got';
      
          const instance = got.extend({
              hooks: {
                  beforeRequest: [
                      options => {
                          if (!options.context || !options.context.token) {
                              throw new Error('Token required');
                          }
      
                          options.headers.token = options.context.token;
                      }
                  ]
              }
          });
      
          const context = {
              token: 'secret'
          };
      
          const response = await instance('https://httpbin.org/headers', {context});
      
          // Let's see the headers
          console.log(response.body);
          ```
          */
      get context() {
        return this._internals.context;
      }
      set context(value) {
        assert.object(value);
        if (this._merging) {
          Object.assign(this._internals.context, value);
        } else {
          this._internals.context = { ...value };
        }
      }
      /**
      Hooks allow modifications during the request lifecycle.
      Hook functions may be async and are run serially.
      */
      get hooks() {
        return this._internals.hooks;
      }
      set hooks(value) {
        assert.object(value);
        for (const knownHookEvent in value) {
          if (!(knownHookEvent in this._internals.hooks)) {
            throw new Error(`Unexpected hook event: ${knownHookEvent}`);
          }
          const typedKnownHookEvent = knownHookEvent;
          const hooks2 = value[typedKnownHookEvent];
          assertAny2(`hooks.${knownHookEvent}`, [distribution_default.array, distribution_default.undefined], hooks2);
          if (hooks2) {
            for (const hook of hooks2) {
              assert.function(hook);
            }
          }
          if (this._merging) {
            if (hooks2) {
              this._internals.hooks[typedKnownHookEvent].push(...hooks2);
            }
          } else {
            if (!hooks2) {
              throw new Error(`Missing hook event: ${knownHookEvent}`);
            }
            this._internals.hooks[knownHookEvent] = [...hooks2];
          }
        }
      }
      /**
          Whether redirect responses should be followed automatically.
      
          Optionally, pass a function to dynamically decide based on the response object.
      
          Note that if a `303` is sent by the server in response to any request type (`POST`, `DELETE`, etc.), Got will automatically request the resource pointed to in the location header via `GET`.
          This is in accordance with [the spec](https://tools.ietf.org/html/rfc7231#section-6.4.4). You can optionally turn on this behavior also for other redirect codes - see `methodRewriting`.
      
          @default true
          */
      get followRedirect() {
        return this._internals.followRedirect;
      }
      set followRedirect(value) {
        assertAny2("followRedirect", [distribution_default.boolean, distribution_default.function], value);
        this._internals.followRedirect = value;
      }
      get followRedirects() {
        throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");
      }
      set followRedirects(_value) {
        throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");
      }
      /**
          If exceeded, the request will be aborted and a `MaxRedirectsError` will be thrown.
      
          @default 10
          */
      get maxRedirects() {
        return this._internals.maxRedirects;
      }
      set maxRedirects(value) {
        assert.number(value);
        this._internals.maxRedirects = value;
      }
      /**
          A cache adapter instance for storing cached response data.
      
          @default false
          */
      get cache() {
        return this._internals.cache;
      }
      set cache(value) {
        assertAny2("cache", [distribution_default.object, distribution_default.string, distribution_default.boolean, distribution_default.undefined], value);
        if (value === true) {
          this._internals.cache = globalCache;
        } else if (value === false) {
          this._internals.cache = void 0;
        } else {
          this._internals.cache = wrapQuickLruIfNeeded(value);
        }
      }
      /**
          Determines if a `got.HTTPError` is thrown for unsuccessful responses.
      
          If this is disabled, requests that encounter an error status code will be resolved with the `response` instead of throwing.
          This may be useful if you are checking for resource availability and are expecting error responses.
      
          @default true
          */
      get throwHttpErrors() {
        return this._internals.throwHttpErrors;
      }
      set throwHttpErrors(value) {
        assert.boolean(value);
        this._internals.throwHttpErrors = value;
      }
      get username() {
        const url2 = this._internals.url;
        const value = url2 ? url2.username : this._internals.username;
        return decodeURIComponent(value);
      }
      set username(value) {
        assert.string(value);
        const url2 = this._internals.url;
        const fixedValue = encodeURIComponent(value);
        if (url2) {
          url2.username = fixedValue;
        } else {
          this._internals.username = fixedValue;
        }
      }
      get password() {
        const url2 = this._internals.url;
        const value = url2 ? url2.password : this._internals.password;
        return decodeURIComponent(value);
      }
      set password(value) {
        assert.string(value);
        const url2 = this._internals.url;
        const fixedValue = encodeURIComponent(value);
        if (url2) {
          url2.password = fixedValue;
        } else {
          this._internals.password = fixedValue;
        }
      }
      /**
          If set to `true`, Got will additionally accept HTTP2 requests.
      
          It will choose either HTTP/1.1 or HTTP/2 depending on the ALPN protocol.
      
          __Note__: This option requires Node.js 15.10.0 or newer as HTTP/2 support on older Node.js versions is very buggy.
      
          __Note__: Overriding `options.request` will disable HTTP2 support.
      
          @default false
      
          @example
          ```
          import got from 'got';
      
          const {headers} = await got('https://nghttp2.org/httpbin/anything', {http2: true});
      
          console.log(headers.via);
          //=> '2 nghttpx'
          ```
          */
      get http2() {
        return this._internals.http2;
      }
      set http2(value) {
        assert.boolean(value);
        this._internals.http2 = value;
      }
      /**
          Set this to `true` to allow sending body for the `GET` method.
          However, the [HTTP/2 specification](https://tools.ietf.org/html/rfc7540#section-8.1.3) says that `An HTTP GET request includes request header fields and no payload body`, therefore when using the HTTP/2 protocol this option will have no effect.
          This option is only meant to interact with non-compliant servers when you have no other choice.
      
          __Note__: The [RFC 7231](https://tools.ietf.org/html/rfc7231#section-4.3.1) doesn't specify any particular behavior for the GET method having a payload, therefore __it's considered an [anti-pattern](https://en.wikipedia.org/wiki/Anti-pattern)__.
      
          @default false
          */
      get allowGetBody() {
        return this._internals.allowGetBody;
      }
      set allowGetBody(value) {
        assert.boolean(value);
        this._internals.allowGetBody = value;
      }
      /**
          Automatically copy headers from piped streams.
      
          When piping a request into a Got stream (e.g., `request.pipe(got.stream(url))`), this controls whether headers from the source stream are automatically merged into the Got request headers.
      
          Note: Piped headers overwrite any explicitly set headers with the same name. To override this, either set `copyPipedHeaders` to `false` and manually copy safe headers, or use a `beforeRequest` hook to force specific header values after piping.
      
          Useful for proxy scenarios, but you may want to disable this to filter out headers like `Host`, `Connection`, `Authorization`, etc.
      
          @default true
      
          @example
          ```
          import got from 'got';
          import {pipeline} from 'node:stream/promises';
      
          // Disable automatic header copying and manually copy only safe headers
          server.get('/proxy', async (request, response) => {
              const gotStream = got.stream('https://example.com', {
                  copyPipedHeaders: false,
                  headers: {
                      'user-agent': request.headers['user-agent'],
                      'accept': request.headers['accept'],
                      // Explicitly NOT copying host, connection, authorization, etc.
                  }
              });
      
              await pipeline(request, gotStream, response);
          });
          ```
      
          @example
          ```
          import got from 'got';
      
          // Override piped headers using beforeRequest hook
          const gotStream = got.stream('https://example.com', {
              hooks: {
                  beforeRequest: [
                      options => {
                          // Force specific header values after piping
                          options.headers.host = 'example.com';
                          delete options.headers.authorization;
                      }
                  ]
              }
          });
          ```
          */
      get copyPipedHeaders() {
        return this._internals.copyPipedHeaders;
      }
      set copyPipedHeaders(value) {
        assert.boolean(value);
        this._internals.copyPipedHeaders = value;
      }
      /**
          Request headers.
      
          Existing headers will be overwritten. Headers set to `undefined` will be omitted.
      
          @default {}
          */
      get headers() {
        return this._internals.headers;
      }
      set headers(value) {
        assertPlainObject2("headers", value);
        if (this._merging) {
          Object.assign(this._internals.headers, lowercaseKeys(value));
        } else {
          this._internals.headers = lowercaseKeys(value);
        }
      }
      /**
          Specifies if the HTTP request method should be [rewritten as `GET`](https://tools.ietf.org/html/rfc7231#section-6.4) on redirects.
      
          As the [specification](https://tools.ietf.org/html/rfc7231#section-6.4) prefers to rewrite the HTTP method only on `303` responses, this is Got's default behavior.
          Setting `methodRewriting` to `true` will also rewrite `301` and `302` responses, as allowed by the spec. This is the behavior followed by `curl` and browsers.
      
          __Note__: Got never performs method rewriting on `307` and `308` responses, as this is [explicitly prohibited by the specification](https://www.rfc-editor.org/rfc/rfc7231#section-6.4.7).
      
          @default false
          */
      get methodRewriting() {
        return this._internals.methodRewriting;
      }
      set methodRewriting(value) {
        assert.boolean(value);
        this._internals.methodRewriting = value;
      }
      /**
          Indicates which DNS record family to use.
      
          Values:
          - `undefined`: IPv4 (if present) or IPv6
          - `4`: Only IPv4
          - `6`: Only IPv6
      
          @default undefined
          */
      get dnsLookupIpVersion() {
        return this._internals.dnsLookupIpVersion;
      }
      set dnsLookupIpVersion(value) {
        if (value !== void 0 && value !== 4 && value !== 6) {
          throw new TypeError(`Invalid DNS lookup IP version: ${value}`);
        }
        this._internals.dnsLookupIpVersion = value;
      }
      /**
          A function used to parse JSON responses.
      
          @example
          ```
          import got from 'got';
          import Bourne from '@hapi/bourne';
      
          const parsed = await got('https://example.com', {
              parseJson: text => Bourne.parse(text)
          }).json();
      
          console.log(parsed);
          ```
          */
      get parseJson() {
        return this._internals.parseJson;
      }
      set parseJson(value) {
        assert.function(value);
        this._internals.parseJson = value;
      }
      /**
          A function used to stringify the body of JSON requests.
      
          @example
          ```
          import got from 'got';
      
          await got.post('https://example.com', {
              stringifyJson: object => JSON.stringify(object, (key, value) => {
                  if (key.startsWith('_')) {
                      return;
                  }
      
                  return value;
              }),
              json: {
                  some: 'payload',
                  _ignoreMe: 1234
              }
          });
          ```
      
          @example
          ```
          import got from 'got';
      
          await got.post('https://example.com', {
              stringifyJson: object => JSON.stringify(object, (key, value) => {
                  if (typeof value === 'number') {
                      return value.toString();
                  }
      
                  return value;
              }),
              json: {
                  some: 'payload',
                  number: 1
              }
          });
          ```
          */
      get stringifyJson() {
        return this._internals.stringifyJson;
      }
      set stringifyJson(value) {
        assert.function(value);
        this._internals.stringifyJson = value;
      }
      /**
          An object representing `limit`, `calculateDelay`, `methods`, `statusCodes`, `maxRetryAfter` and `errorCodes` fields for maximum retry count, retry handler, allowed methods, allowed status codes, maximum [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) time and allowed error codes.
      
          Delays between retries counts with function `1000 * Math.pow(2, retry) + Math.random() * 100`, where `retry` is attempt number (starts from 1).
      
          The `calculateDelay` property is a `function` that receives an object with `attemptCount`, `retryOptions`, `error` and `computedValue` properties for current retry count, the retry options, error and default computed value.
          The function must return a delay in milliseconds (or a Promise resolving with it) (`0` return value cancels retry).
      
          The `enforceRetryRules` property is a `boolean` that, when set to `true`, enforces the `limit`, `methods`, `statusCodes`, and `errorCodes` options before calling `calculateDelay`. Your `calculateDelay` function is only invoked when a retry is allowed based on these criteria. When `false` (default), `calculateDelay` receives the computed value but can override all retry logic.
      
          __Note:__ When `enforceRetryRules` is `false`, you must check `computedValue` in your `calculateDelay` function to respect the default retry logic. When `true`, the retry rules are enforced automatically.
      
          By default, it retries *only* on the specified methods, status codes, and on these network errors:
      
          - `ETIMEDOUT`: One of the [timeout](#timeout) limits were reached.
          - `ECONNRESET`: Connection was forcibly closed by a peer.
          - `EADDRINUSE`: Could not bind to any free port.
          - `ECONNREFUSED`: Connection was refused by the server.
          - `EPIPE`: The remote side of the stream being written has been closed.
          - `ENOTFOUND`: Couldn't resolve the hostname to an IP address.
          - `ENETUNREACH`: No internet connection.
          - `EAI_AGAIN`: DNS lookup timed out.
      
          __Note__: If `maxRetryAfter` is set to `undefined`, it will use `options.timeout`.
          __Note__: If [`Retry-After`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) header is greater than `maxRetryAfter`, it will cancel the request.
          */
      get retry() {
        return this._internals.retry;
      }
      set retry(value) {
        assertPlainObject2("retry", value);
        assertAny2("retry.calculateDelay", [distribution_default.function, distribution_default.undefined], value.calculateDelay);
        assertAny2("retry.maxRetryAfter", [distribution_default.number, distribution_default.undefined], value.maxRetryAfter);
        assertAny2("retry.limit", [distribution_default.number, distribution_default.undefined], value.limit);
        assertAny2("retry.methods", [distribution_default.array, distribution_default.undefined], value.methods);
        assertAny2("retry.statusCodes", [distribution_default.array, distribution_default.undefined], value.statusCodes);
        assertAny2("retry.errorCodes", [distribution_default.array, distribution_default.undefined], value.errorCodes);
        assertAny2("retry.noise", [distribution_default.number, distribution_default.undefined], value.noise);
        assertAny2("retry.enforceRetryRules", [distribution_default.boolean, distribution_default.undefined], value.enforceRetryRules);
        if (value.noise && Math.abs(value.noise) > 100) {
          throw new Error(`The maximum acceptable retry noise is +/- 100ms, got ${value.noise}`);
        }
        for (const key in value) {
          if (!(key in this._internals.retry)) {
            throw new Error(`Unexpected retry option: ${key}`);
          }
        }
        if (this._merging) {
          Object.assign(this._internals.retry, value);
        } else {
          this._internals.retry = { ...value };
        }
        const { retry } = this._internals;
        retry.methods = [...new Set(retry.methods.map((method) => method.toUpperCase()))];
        retry.statusCodes = [...new Set(retry.statusCodes)];
        retry.errorCodes = [...new Set(retry.errorCodes)];
      }
      /**
          From `http.RequestOptions`.
      
          The IP address used to send the request from.
          */
      get localAddress() {
        return this._internals.localAddress;
      }
      set localAddress(value) {
        assertAny2("localAddress", [distribution_default.string, distribution_default.undefined], value);
        this._internals.localAddress = value;
      }
      /**
          The HTTP method used to make the request.
      
          @default 'GET'
          */
      get method() {
        return this._internals.method;
      }
      set method(value) {
        assert.string(value);
        this._internals.method = value.toUpperCase();
      }
      get createConnection() {
        return this._internals.createConnection;
      }
      set createConnection(value) {
        assertAny2("createConnection", [distribution_default.function, distribution_default.undefined], value);
        this._internals.createConnection = value;
      }
      /**
          From `http-cache-semantics`
      
          @default {}
          */
      get cacheOptions() {
        return this._internals.cacheOptions;
      }
      set cacheOptions(value) {
        assertPlainObject2("cacheOptions", value);
        assertAny2("cacheOptions.shared", [distribution_default.boolean, distribution_default.undefined], value.shared);
        assertAny2("cacheOptions.cacheHeuristic", [distribution_default.number, distribution_default.undefined], value.cacheHeuristic);
        assertAny2("cacheOptions.immutableMinTimeToLive", [distribution_default.number, distribution_default.undefined], value.immutableMinTimeToLive);
        assertAny2("cacheOptions.ignoreCargoCult", [distribution_default.boolean, distribution_default.undefined], value.ignoreCargoCult);
        for (const key in value) {
          if (!(key in this._internals.cacheOptions)) {
            throw new Error(`Cache option \`${key}\` does not exist`);
          }
        }
        if (this._merging) {
          Object.assign(this._internals.cacheOptions, value);
        } else {
          this._internals.cacheOptions = { ...value };
        }
      }
      /**
      Options for the advanced HTTPS API.
      */
      get https() {
        return this._internals.https;
      }
      set https(value) {
        assertPlainObject2("https", value);
        assertAny2("https.rejectUnauthorized", [distribution_default.boolean, distribution_default.undefined], value.rejectUnauthorized);
        assertAny2("https.checkServerIdentity", [distribution_default.function, distribution_default.undefined], value.checkServerIdentity);
        assertAny2("https.serverName", [distribution_default.string, distribution_default.undefined], value.serverName);
        assertAny2("https.certificateAuthority", [distribution_default.string, distribution_default.object, distribution_default.array, distribution_default.undefined], value.certificateAuthority);
        assertAny2("https.key", [distribution_default.string, distribution_default.object, distribution_default.array, distribution_default.undefined], value.key);
        assertAny2("https.certificate", [distribution_default.string, distribution_default.object, distribution_default.array, distribution_default.undefined], value.certificate);
        assertAny2("https.passphrase", [distribution_default.string, distribution_default.undefined], value.passphrase);
        assertAny2("https.pfx", [distribution_default.string, distribution_default.buffer, distribution_default.array, distribution_default.undefined], value.pfx);
        assertAny2("https.alpnProtocols", [distribution_default.array, distribution_default.undefined], value.alpnProtocols);
        assertAny2("https.ciphers", [distribution_default.string, distribution_default.undefined], value.ciphers);
        assertAny2("https.dhparam", [distribution_default.string, distribution_default.buffer, distribution_default.undefined], value.dhparam);
        assertAny2("https.signatureAlgorithms", [distribution_default.string, distribution_default.undefined], value.signatureAlgorithms);
        assertAny2("https.minVersion", [distribution_default.string, distribution_default.undefined], value.minVersion);
        assertAny2("https.maxVersion", [distribution_default.string, distribution_default.undefined], value.maxVersion);
        assertAny2("https.honorCipherOrder", [distribution_default.boolean, distribution_default.undefined], value.honorCipherOrder);
        assertAny2("https.tlsSessionLifetime", [distribution_default.number, distribution_default.undefined], value.tlsSessionLifetime);
        assertAny2("https.ecdhCurve", [distribution_default.string, distribution_default.undefined], value.ecdhCurve);
        assertAny2("https.certificateRevocationLists", [distribution_default.string, distribution_default.buffer, distribution_default.array, distribution_default.undefined], value.certificateRevocationLists);
        assertAny2("https.secureOptions", [distribution_default.number, distribution_default.undefined], value.secureOptions);
        for (const key in value) {
          if (!(key in this._internals.https)) {
            throw new Error(`HTTPS option \`${key}\` does not exist`);
          }
        }
        if (this._merging) {
          Object.assign(this._internals.https, value);
        } else {
          this._internals.https = { ...value };
        }
      }
      /**
          [Encoding](https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings) to be used on `setEncoding` of the response data.
      
          To get a [`Buffer`](https://nodejs.org/api/buffer.html), you need to set `responseType` to `buffer` instead.
          Don't set this option to `null`.
      
          __Note__: This doesn't affect streams! Instead, you need to do `got.stream(...).setEncoding(encoding)`.
      
          @default 'utf-8'
          */
      get encoding() {
        return this._internals.encoding;
      }
      set encoding(value) {
        if (value === null) {
          throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");
        }
        assertAny2("encoding", [distribution_default.string, distribution_default.undefined], value);
        this._internals.encoding = value;
      }
      /**
          When set to `true` the promise will return the Response body instead of the Response object.
      
          @default false
          */
      get resolveBodyOnly() {
        return this._internals.resolveBodyOnly;
      }
      set resolveBodyOnly(value) {
        assert.boolean(value);
        this._internals.resolveBodyOnly = value;
      }
      /**
          Returns a `Stream` instead of a `Promise`.
          This is equivalent to calling `got.stream(url, options?)`.
      
          @default false
          */
      get isStream() {
        return this._internals.isStream;
      }
      set isStream(value) {
        assert.boolean(value);
        this._internals.isStream = value;
      }
      /**
          The parsing method.
      
          The promise also has `.text()`, `.json()` and `.buffer()` methods which return another Got promise for the parsed body.
      
          It's like setting the options to `{responseType: 'json', resolveBodyOnly: true}` but without affecting the main Got promise.
      
          __Note__: When using streams, this option is ignored.
      
          @example
          ```
          const responsePromise = got(url);
          const bufferPromise = responsePromise.buffer();
          const jsonPromise = responsePromise.json();
      
          const [response, buffer, json] = Promise.all([responsePromise, bufferPromise, jsonPromise]);
          // `response` is an instance of Got Response
          // `buffer` is an instance of Buffer
          // `json` is an object
          ```
      
          @example
          ```
          // This
          const body = await got(url).json();
      
          // is semantically the same as this
          const body = await got(url, {responseType: 'json', resolveBodyOnly: true});
          ```
          */
      get responseType() {
        return this._internals.responseType;
      }
      set responseType(value) {
        if (value === void 0) {
          this._internals.responseType = "text";
          return;
        }
        if (value !== "text" && value !== "buffer" && value !== "json") {
          throw new Error(`Invalid \`responseType\` option: ${value}`);
        }
        this._internals.responseType = value;
      }
      get pagination() {
        return this._internals.pagination;
      }
      set pagination(value) {
        assert.object(value);
        if (this._merging) {
          Object.assign(this._internals.pagination, value);
        } else {
          this._internals.pagination = value;
        }
      }
      get auth() {
        throw new Error("Parameter `auth` is deprecated. Use `username` / `password` instead.");
      }
      set auth(_value) {
        throw new Error("Parameter `auth` is deprecated. Use `username` / `password` instead.");
      }
      get setHost() {
        return this._internals.setHost;
      }
      set setHost(value) {
        assert.boolean(value);
        this._internals.setHost = value;
      }
      get maxHeaderSize() {
        return this._internals.maxHeaderSize;
      }
      set maxHeaderSize(value) {
        assertAny2("maxHeaderSize", [distribution_default.number, distribution_default.undefined], value);
        this._internals.maxHeaderSize = value;
      }
      get enableUnixSockets() {
        return this._internals.enableUnixSockets;
      }
      set enableUnixSockets(value) {
        assert.boolean(value);
        this._internals.enableUnixSockets = value;
      }
      /**
          Throw an error if the server response's `content-length` header value doesn't match the number of bytes received.
      
          This is useful for detecting truncated responses and follows RFC 9112 requirements for message completeness.
      
          __Note__: Responses without a `content-length` header are not validated.
          __Note__: When enabled and validation fails, a `ReadError` with code `ERR_HTTP_CONTENT_LENGTH_MISMATCH` will be thrown.
      
          @default false
          */
      get strictContentLength() {
        return this._internals.strictContentLength;
      }
      set strictContentLength(value) {
        assert.boolean(value);
        this._internals.strictContentLength = value;
      }
      // eslint-disable-next-line @typescript-eslint/naming-convention
      toJSON() {
        return { ...this._internals };
      }
      [Symbol.for("nodejs.util.inspect.custom")](_depth, options) {
        return (0, import_node_util4.inspect)(this._internals, options);
      }
      createNativeRequestOptions() {
        const internals = this._internals;
        const url2 = internals.url;
        let agent;
        if (url2.protocol === "https:") {
          if (internals.http2) {
            agent = {
              ...internals.agent,
              http2: internals.agent.http2 ?? import_http2_wrapper.default.globalAgent
            };
          } else {
            agent = internals.agent.https;
          }
        } else {
          agent = internals.agent.http;
        }
        const { https: https5 } = internals;
        let { pfx } = https5;
        if (distribution_default.array(pfx) && distribution_default.plainObject(pfx[0])) {
          pfx = pfx.map((object) => ({
            buf: object.buffer,
            passphrase: object.passphrase
          }));
        }
        return {
          ...internals.cacheOptions,
          ...this._unixOptions,
          // HTTPS options
          // eslint-disable-next-line @typescript-eslint/naming-convention
          ALPNProtocols: https5.alpnProtocols,
          ca: https5.certificateAuthority,
          cert: https5.certificate,
          key: https5.key,
          passphrase: https5.passphrase,
          pfx: https5.pfx,
          rejectUnauthorized: https5.rejectUnauthorized,
          checkServerIdentity: https5.checkServerIdentity ?? import_node_tls.checkServerIdentity,
          servername: https5.serverName,
          ciphers: https5.ciphers,
          honorCipherOrder: https5.honorCipherOrder,
          minVersion: https5.minVersion,
          maxVersion: https5.maxVersion,
          sigalgs: https5.signatureAlgorithms,
          sessionTimeout: https5.tlsSessionLifetime,
          dhparam: https5.dhparam,
          ecdhCurve: https5.ecdhCurve,
          crl: https5.certificateRevocationLists,
          secureOptions: https5.secureOptions,
          // HTTP options
          lookup: internals.dnsLookup ?? internals.dnsCache?.lookup,
          family: internals.dnsLookupIpVersion,
          agent,
          setHost: internals.setHost,
          method: internals.method,
          maxHeaderSize: internals.maxHeaderSize,
          localAddress: internals.localAddress,
          headers: internals.headers,
          createConnection: internals.createConnection,
          timeout: internals.http2 ? getHttp2TimeoutOption(internals) : void 0,
          // HTTP/2 options
          h2session: internals.h2session
        };
      }
      getRequestFunction() {
        const url2 = this._internals.url;
        const { request } = this._internals;
        if (!request && url2) {
          return this.getFallbackRequestFunction();
        }
        return request;
      }
      getFallbackRequestFunction() {
        const url2 = this._internals.url;
        if (!url2) {
          return;
        }
        if (url2.protocol === "https:") {
          if (this._internals.http2) {
            if (major < 15 || major === 15 && minor < 10) {
              const error = new Error("To use the `http2` option, install Node.js 15.10.0 or above");
              error.code = "EUNSUPPORTED";
              throw error;
            }
            return import_http2_wrapper.default.auto;
          }
          return import_node_https.default.request;
        }
        return import_node_http.default.request;
      }
      freeze() {
        const options = this._internals;
        Object.freeze(options);
        Object.freeze(options.hooks);
        Object.freeze(options.hooks.afterResponse);
        Object.freeze(options.hooks.beforeError);
        Object.freeze(options.hooks.beforeRedirect);
        Object.freeze(options.hooks.beforeRequest);
        Object.freeze(options.hooks.beforeRetry);
        Object.freeze(options.hooks.init);
        Object.freeze(options.https);
        Object.freeze(options.cacheOptions);
        Object.freeze(options.agent);
        Object.freeze(options.headers);
        Object.freeze(options.timeout);
        Object.freeze(options.retry);
        Object.freeze(options.retry.errorCodes);
        Object.freeze(options.retry.methods);
        Object.freeze(options.retry.statusCodes);
      }
    };
  }
});
var isResponseOk;
var ParseError;
var parseBody;
var init_response = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/response.js"() {
    init_errors();
    isResponseOk = (response) => {
      const { statusCode } = response;
      const { followRedirect } = response.request.options;
      const shouldFollow = typeof followRedirect === "function" ? followRedirect(response) : followRedirect;
      const limitStatusCode = shouldFollow ? 299 : 399;
      return statusCode >= 200 && statusCode <= limitStatusCode || statusCode === 304;
    };
    ParseError = class extends RequestError {
      name = "ParseError";
      code = "ERR_BODY_PARSE_FAILURE";
      constructor(error, response) {
        const { options } = response.request;
        super(`${error.message} in "${options.url.toString()}"`, error, response.request);
      }
    };
    parseBody = (response, responseType, parseJson, encoding) => {
      const { rawBody } = response;
      try {
        if (responseType === "text") {
          return rawBody.toString(encoding);
        }
        if (responseType === "json") {
          return rawBody.length === 0 ? "" : parseJson(rawBody.toString(encoding));
        }
        if (responseType === "buffer") {
          return rawBody;
        }
      } catch (error) {
        throw new ParseError(error, response);
      }
      throw new ParseError({
        message: `Unknown body type '${responseType}'`,
        name: "Error"
      }, response);
    };
  }
});
function isClientRequest(clientRequest) {
  return clientRequest.writable && !clientRequest.writableEnded;
}
var is_client_request_default;
var init_is_client_request = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-client-request.js"() {
    is_client_request_default = isClientRequest;
  }
});
function isUnixSocketURL(url2) {
  return url2.protocol === "unix:" || url2.hostname === "unix";
}
function getUnixSocketPath(url2) {
  if (!isUnixSocketURL(url2)) {
    return void 0;
  }
  return /(?<socketPath>.+?):(?<path>.+)/.exec(`${url2.pathname}${url2.search}`)?.groups?.socketPath;
}
var init_is_unix_socket_url = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/utils/is-unix-socket-url.js"() {
  }
});
function generateRequestId() {
  return (0, import_node_crypto2.randomUUID)();
}
function publishRequestCreate(message) {
  if (channels.requestCreate.hasSubscribers) {
    channels.requestCreate.publish(message);
  }
}
function publishRequestStart(message) {
  if (channels.requestStart.hasSubscribers) {
    channels.requestStart.publish(message);
  }
}
function publishResponseStart(message) {
  if (channels.responseStart.hasSubscribers) {
    channels.responseStart.publish(message);
  }
}
function publishResponseEnd(message) {
  if (channels.responseEnd.hasSubscribers) {
    channels.responseEnd.publish(message);
  }
}
function publishRetry(message) {
  if (channels.retry.hasSubscribers) {
    channels.retry.publish(message);
  }
}
function publishError(message) {
  if (channels.error.hasSubscribers) {
    channels.error.publish(message);
  }
}
function publishRedirect(message) {
  if (channels.redirect.hasSubscribers) {
    channels.redirect.publish(message);
  }
}
var channels;
var init_diagnostics_channel = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/diagnostics-channel.js"() {
    channels = {
      requestCreate: import_node_diagnostics_channel.default.channel("got:request:create"),
      requestStart: import_node_diagnostics_channel.default.channel("got:request:start"),
      responseStart: import_node_diagnostics_channel.default.channel("got:response:start"),
      responseEnd: import_node_diagnostics_channel.default.channel("got:response:end"),
      retry: import_node_diagnostics_channel.default.channel("got:request:retry"),
      error: import_node_diagnostics_channel.default.channel("got:request:error"),
      redirect: import_node_diagnostics_channel.default.channel("got:response:redirect")
    };
  }
});
var supportsBrotli;
var supportsZstd2;
var methodsWithoutBody;
var cacheableStore;
var redirectCodes;
var errorsProcessedByHooks;
var proxiedRequestEvents;
var noop3;
var Request;
var init_core = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/core/index.js"() {
    init_byte_counter();
    init_dist3();
    init_decompress_response();
    init_distribution();
    init_lib();
    init_timer();
    init_get_body_size();
    init_is_form_data();
    init_proxy_events();
    init_timed_out();
    init_url_to_options();
    init_weakable_map();
    init_calculate_retry_delay();
    init_options();
    init_response();
    init_is_client_request();
    init_is_unix_socket_url();
    init_errors();
    init_diagnostics_channel();
    supportsBrotli = distribution_default.string(import_node_process2.default.versions.brotli);
    supportsZstd2 = distribution_default.string(import_node_process2.default.versions.zstd);
    methodsWithoutBody = /* @__PURE__ */ new Set(["GET", "HEAD"]);
    cacheableStore = new WeakableMap();
    redirectCodes = /* @__PURE__ */ new Set([300, 301, 302, 303, 304, 307, 308]);
    errorsProcessedByHooks = /* @__PURE__ */ new WeakSet();
    proxiedRequestEvents = [
      "socket",
      "connect",
      "continue",
      "information",
      "upgrade"
    ];
    noop3 = () => {
    };
    Request = class _Request extends import_node_stream4.Duplex {
      // @ts-expect-error - Ignoring for now.
      ["constructor"];
      _noPipe;
      // @ts-expect-error https://github.com/microsoft/TypeScript/issues/9568
      options;
      response;
      requestUrl;
      redirectUrls = [];
      retryCount = 0;
      _stopReading = false;
      _stopRetry = noop3;
      _downloadedSize = 0;
      _uploadedSize = 0;
      _pipedServerResponses = /* @__PURE__ */ new Set();
      _request;
      _responseSize;
      _bodySize;
      _unproxyEvents = noop3;
      _isFromCache;
      _triggerRead = false;
      _jobs = [];
      _cancelTimeouts = noop3;
      _removeListeners = noop3;
      _nativeResponse;
      _flushed = false;
      _aborted = false;
      _expectedContentLength;
      _compressedBytesCount;
      _requestId = generateRequestId();
      // We need this because `this._request` if `undefined` when using cache
      _requestInitialized = false;
      constructor(url2, options, defaults42) {
        super({
          // Don't destroy immediately, as the error may be emitted on unsuccessful retry
          autoDestroy: false,
          // It needs to be zero because we're just proxying the data to another stream
          highWaterMark: 0
        });
        this.on("pipe", (source) => {
          if (this.options.copyPipedHeaders && source?.headers) {
            Object.assign(this.options.headers, source.headers);
          }
        });
        this.on("newListener", (event) => {
          if (event === "retry" && this.listenerCount("retry") > 0) {
            throw new Error("A retry listener has been attached already.");
          }
        });
        try {
          this.options = new Options(url2, options, defaults42);
          if (!this.options.url) {
            if (this.options.prefixUrl === "") {
              throw new TypeError("Missing `url` property");
            }
            this.options.url = "";
          }
          this.requestUrl = this.options.url;
          publishRequestCreate({
            requestId: this._requestId,
            url: this.options.url?.toString() ?? "",
            method: this.options.method
          });
        } catch (error) {
          const { options: options2 } = error;
          if (options2) {
            this.options = options2;
          }
          this.flush = async () => {
            this.flush = async () => {
            };
            import_node_process2.default.nextTick(() => {
              if (this.options) {
                this._beforeError(error);
              } else {
                const requestError = error instanceof RequestError ? error : new RequestError(error.message, error, this);
                this.destroy(requestError);
              }
            });
          };
          return;
        }
        const { body } = this.options;
        if (distribution_default.nodeStream(body)) {
          body.once("error", (error) => {
            if (this._flushed) {
              this._beforeError(new UploadError(error, this));
            } else {
              this.flush = async () => {
                this.flush = async () => {
                };
                this._beforeError(new UploadError(error, this));
              };
            }
          });
        }
        if (this.options.signal) {
          const abort = () => {
            if (this.options.signal?.reason?.name === "TimeoutError") {
              this.destroy(new TimeoutError(this.options.signal.reason, this.timings, this));
            } else {
              this.destroy(new AbortError(this));
            }
          };
          if (this.options.signal.aborted) {
            abort();
          } else {
            this.options.signal.addEventListener("abort", abort);
            this._removeListeners = () => {
              this.options.signal?.removeEventListener("abort", abort);
            };
          }
        }
      }
      async flush() {
        if (this._flushed) {
          return;
        }
        this._flushed = true;
        try {
          await this._finalizeBody();
          if (this.destroyed) {
            return;
          }
          await this._makeRequest();
          if (this.destroyed) {
            this._request?.destroy();
            return;
          }
          for (const job of this._jobs) {
            job();
          }
          this._jobs.length = 0;
          this._requestInitialized = true;
        } catch (error) {
          this._beforeError(error);
        }
      }
      _beforeError(error) {
        if (this._stopReading) {
          return;
        }
        const { response, options } = this;
        const attemptCount = this.retryCount + (error.name === "RetryError" ? 0 : 1);
        this._stopReading = true;
        if (!(error instanceof RequestError)) {
          error = new RequestError(error.message, error, this);
        }
        const typedError = error;
        void (async () => {
          if (response?.readable && !response.rawBody && !this._request?.socket?.destroyed) {
            response.setEncoding(this.readableEncoding);
            const success = await this._setRawBody(response);
            if (success) {
              response.body = response.rawBody.toString();
            }
          }
          if (this.listenerCount("retry") !== 0) {
            let backoff;
            try {
              let retryAfter;
              if (response && "retry-after" in response.headers) {
                retryAfter = Number(response.headers["retry-after"]);
                if (Number.isNaN(retryAfter)) {
                  retryAfter = Date.parse(response.headers["retry-after"]) - Date.now();
                  if (retryAfter <= 0) {
                    retryAfter = 1;
                  }
                } else {
                  retryAfter *= 1e3;
                }
              }
              const retryOptions = options.retry;
              const computedValue = calculate_retry_delay_default({
                attemptCount,
                retryOptions,
                error: typedError,
                retryAfter,
                computedValue: retryOptions.maxRetryAfter ?? options.timeout.request ?? Number.POSITIVE_INFINITY
              });
              if (retryOptions.enforceRetryRules && computedValue === 0) {
                backoff = 0;
              } else {
                backoff = await retryOptions.calculateDelay({
                  attemptCount,
                  retryOptions,
                  error: typedError,
                  retryAfter,
                  computedValue
                });
              }
            } catch (error_) {
              void this._error(new RequestError(error_.message, error_, this));
              return;
            }
            if (backoff) {
              await new Promise((resolve2) => {
                const timeout = setTimeout(resolve2, backoff);
                this._stopRetry = () => {
                  clearTimeout(timeout);
                  resolve2();
                };
              });
              if (this.destroyed) {
                return;
              }
              const bodyBeforeHooks = this.options.body;
              try {
                for (const hook of this.options.hooks.beforeRetry) {
                  await hook(typedError, this.retryCount + 1);
                }
              } catch (error_) {
                void this._error(new RequestError(error_.message, error_, this));
                return;
              }
              if (this.destroyed) {
                return;
              }
              const bodyAfterHooks = this.options.body;
              const bodyWasReassigned = bodyBeforeHooks !== bodyAfterHooks;
              if (bodyWasReassigned) {
                const oldBody = bodyBeforeHooks;
                this.options.body = void 0;
                this.destroy();
                if (distribution_default.nodeStream(oldBody) && oldBody !== bodyAfterHooks) {
                  oldBody.destroy();
                }
                if (distribution_default.nodeStream(bodyAfterHooks) && (bodyAfterHooks.readableEnded || bodyAfterHooks.destroyed)) {
                  throw new TypeError("The reassigned stream body must be readable. Ensure you provide a fresh, readable stream in the beforeRetry hook.");
                }
                this.options._internals.body = bodyAfterHooks;
              } else {
                this.destroy();
              }
              publishRetry({
                requestId: this._requestId,
                retryCount: this.retryCount + 1,
                error: typedError,
                delay: backoff
              });
              this.emit("retry", this.retryCount + 1, error, (updatedOptions) => {
                const request = new _Request(options.url, updatedOptions, options);
                request.retryCount = this.retryCount + 1;
                import_node_process2.default.nextTick(() => {
                  void request.flush();
                });
                return request;
              });
              return;
            }
          }
          void this._error(typedError);
        })();
      }
      _read() {
        this._triggerRead = true;
        const { response } = this;
        if (response && !this._stopReading) {
          if (response.readableLength) {
            this._triggerRead = false;
          }
          let data;
          while ((data = response.read()) !== null) {
            this._downloadedSize += data.length;
            const progress = this.downloadProgress;
            if (progress.percent < 1) {
              this.emit("downloadProgress", progress);
            }
            this.push(data);
          }
        }
      }
      _write(chunk2, encoding, callback) {
        const write2 = () => {
          this._writeRequest(chunk2, encoding, callback);
        };
        if (this._requestInitialized) {
          write2();
        } else {
          this._jobs.push(write2);
        }
      }
      _final(callback) {
        const endRequest = () => {
          if (!this._request || this._request.destroyed) {
            callback();
            return;
          }
          this._request.end((error) => {
            if (this._request?._writableState?.errored) {
              return;
            }
            if (!error) {
              this._bodySize = this._uploadedSize;
              this.emit("uploadProgress", this.uploadProgress);
              this._request?.emit("upload-complete");
            }
            callback(error);
          });
        };
        if (this._requestInitialized) {
          endRequest();
        } else {
          this._jobs.push(endRequest);
        }
      }
      _destroy(error, callback) {
        this._stopReading = true;
        this.flush = async () => {
        };
        this._stopRetry();
        this._cancelTimeouts();
        this._removeListeners();
        if (this.options) {
          const { body } = this.options;
          if (distribution_default.nodeStream(body)) {
            body.destroy();
          }
        }
        if (this._request) {
          this._request.destroy();
        }
        const timings = this._request?.timings;
        if (timings && distribution_default.undefined(timings.end) && !distribution_default.undefined(timings.response) && distribution_default.undefined(timings.error) && distribution_default.undefined(timings.abort)) {
          timings.end = Date.now();
          if (distribution_default.undefined(timings.phases.total)) {
            timings.phases.download = timings.end - timings.response;
            timings.phases.total = timings.end - timings.start;
          }
        }
        if (error !== null && !distribution_default.undefined(error)) {
          const processedByHooks = error instanceof Error && errorsProcessedByHooks.has(error);
          if (!processedByHooks && !(error instanceof RequestError)) {
            error = error instanceof Error ? new RequestError(error.message, error, this) : new RequestError(String(error), {}, this);
          }
        }
        callback(error);
      }
      pipe(destination, options) {
        if (destination instanceof import_node_http2.ServerResponse) {
          this._pipedServerResponses.add(destination);
        }
        return super.pipe(destination, options);
      }
      unpipe(destination) {
        if (destination instanceof import_node_http2.ServerResponse) {
          this._pipedServerResponses.delete(destination);
        }
        super.unpipe(destination);
        return this;
      }
      _checkContentLengthMismatch() {
        if (this.options.strictContentLength && this._expectedContentLength !== void 0) {
          const actualSize = this._compressedBytesCount ?? this._downloadedSize;
          if (actualSize !== this._expectedContentLength) {
            this._beforeError(new ReadError({
              message: `Content-Length mismatch: expected ${this._expectedContentLength} bytes, received ${actualSize} bytes`,
              name: "Error",
              code: "ERR_HTTP_CONTENT_LENGTH_MISMATCH"
            }, this));
            return true;
          }
        }
        return false;
      }
      async _finalizeBody() {
        const { options } = this;
        const { headers } = options;
        const isForm = !distribution_default.undefined(options.form);
        const isJSON = !distribution_default.undefined(options.json);
        const isBody = !distribution_default.undefined(options.body);
        const cannotHaveBody = methodsWithoutBody.has(options.method) && !(options.method === "GET" && options.allowGetBody);
        if (isForm || isJSON || isBody) {
          if (cannotHaveBody) {
            throw new TypeError(`The \`${options.method}\` method cannot be used with a body`);
          }
          const noContentType = !distribution_default.string(headers["content-type"]);
          if (isBody) {
            if (isFormData2(options.body)) {
              const encoder = new FormDataEncoder(options.body);
              if (noContentType) {
                headers["content-type"] = encoder.headers["Content-Type"];
              }
              if ("Content-Length" in encoder.headers) {
                headers["content-length"] = encoder.headers["Content-Length"];
              }
              options.body = encoder.encode();
            }
            if (isFormData3(options.body) && noContentType) {
              headers["content-type"] = `multipart/form-data; boundary=${options.body.getBoundary()}`;
            }
          } else if (isForm) {
            if (noContentType) {
              headers["content-type"] = "application/x-www-form-urlencoded";
            }
            const { form } = options;
            options.form = void 0;
            options.body = new URLSearchParams(form).toString();
          } else {
            if (noContentType) {
              headers["content-type"] = "application/json";
            }
            const { json } = options;
            options.json = void 0;
            options.body = options.stringifyJson(json);
          }
          const uploadBodySize = await getBodySize(options.body, options.headers);
          if (distribution_default.undefined(headers["content-length"]) && distribution_default.undefined(headers["transfer-encoding"]) && !cannotHaveBody && !distribution_default.undefined(uploadBodySize)) {
            headers["content-length"] = String(uploadBodySize);
          }
        }
        if (options.responseType === "json" && !("accept" in options.headers)) {
          options.headers.accept = "application/json";
        }
        this._bodySize = Number(headers["content-length"]) || void 0;
      }
      async _onResponseBase(response) {
        if (this.isAborted) {
          return;
        }
        const { options } = this;
        const { url: url2 } = options;
        this._nativeResponse = response;
        const statusCode = response.statusCode;
        const { method } = options;
        const hasNoBody = method === "HEAD" || statusCode >= 100 && statusCode < 200 || statusCode === 204 || statusCode === 205 || statusCode === 304;
        if (options.decompress && !hasNoBody) {
          if (options.strictContentLength) {
            this._compressedBytesCount = 0;
            this._nativeResponse.on("data", (chunk2) => {
              this._compressedBytesCount += byteLength(chunk2);
            });
          }
          response = decompressResponse(response);
        }
        const typedResponse = response;
        typedResponse.statusMessage = typedResponse.statusMessage || import_node_http2.default.STATUS_CODES[statusCode];
        typedResponse.url = options.url.toString();
        typedResponse.requestUrl = this.requestUrl;
        typedResponse.redirectUrls = this.redirectUrls;
        typedResponse.request = this;
        typedResponse.isFromCache = this._nativeResponse.fromCache ?? false;
        typedResponse.ip = this.ip;
        typedResponse.retryCount = this.retryCount;
        typedResponse.ok = isResponseOk(typedResponse);
        this._isFromCache = typedResponse.isFromCache;
        this._responseSize = Number(response.headers["content-length"]) || void 0;
        this.response = typedResponse;
        publishResponseStart({
          requestId: this._requestId,
          url: typedResponse.url,
          statusCode,
          headers: response.headers,
          isFromCache: typedResponse.isFromCache
        });
        response.once("error", (error) => {
          this._aborted = true;
          response.destroy();
          this._beforeError(new ReadError(error, this));
        });
        response.once("aborted", () => {
          this._aborted = true;
          if (!this._checkContentLengthMismatch()) {
            this._beforeError(new ReadError({
              name: "Error",
              message: "The server aborted pending request",
              code: "ECONNRESET"
            }, this));
          }
        });
        const rawCookies = response.headers["set-cookie"];
        if (distribution_default.object(options.cookieJar) && rawCookies) {
          let promises = rawCookies.map(async (rawCookie) => options.cookieJar.setCookie(rawCookie, url2.toString()));
          if (options.ignoreInvalidCookies) {
            promises = promises.map(async (promise) => {
              try {
                await promise;
              } catch {
              }
            });
          }
          try {
            await Promise.all(promises);
          } catch (error) {
            this._beforeError(error);
            return;
          }
        }
        if (this.isAborted) {
          return;
        }
        if (response.headers.location && redirectCodes.has(statusCode)) {
          const shouldFollow = typeof options.followRedirect === "function" ? options.followRedirect(typedResponse) : options.followRedirect;
          if (shouldFollow) {
            response.resume();
            this._cancelTimeouts();
            this._unproxyEvents();
            if (this.redirectUrls.length >= options.maxRedirects) {
              this._beforeError(new MaxRedirectsError(this));
              return;
            }
            this._request = void 0;
            this._downloadedSize = 0;
            const updatedOptions = new Options(void 0, void 0, this.options);
            const serverRequestedGet = statusCode === 303 && updatedOptions.method !== "GET" && updatedOptions.method !== "HEAD";
            const canRewrite = statusCode !== 307 && statusCode !== 308;
            const userRequestedGet = updatedOptions.methodRewriting && canRewrite;
            if (serverRequestedGet || userRequestedGet) {
              updatedOptions.method = "GET";
              updatedOptions.body = void 0;
              updatedOptions.json = void 0;
              updatedOptions.form = void 0;
              delete updatedOptions.headers["content-length"];
            }
            try {
              const redirectBuffer = import_node_buffer.Buffer.from(response.headers.location, "binary").toString();
              const redirectUrl = new URL(redirectBuffer, url2);
              if (!isUnixSocketURL(url2) && isUnixSocketURL(redirectUrl)) {
                this._beforeError(new RequestError("Cannot redirect to UNIX socket", {}, this));
                return;
              }
              const isDifferentOrigin = redirectUrl.hostname !== url2.hostname || redirectUrl.port !== url2.port || getUnixSocketPath(url2) !== getUnixSocketPath(redirectUrl);
              if (isDifferentOrigin) {
                if ("host" in updatedOptions.headers) {
                  delete updatedOptions.headers.host;
                }
                if ("cookie" in updatedOptions.headers) {
                  delete updatedOptions.headers.cookie;
                }
                if ("authorization" in updatedOptions.headers) {
                  delete updatedOptions.headers.authorization;
                }
                if (updatedOptions.username || updatedOptions.password) {
                  updatedOptions.username = "";
                  updatedOptions.password = "";
                }
              } else {
                redirectUrl.username = updatedOptions.username;
                redirectUrl.password = updatedOptions.password;
              }
              this.redirectUrls.push(redirectUrl);
              updatedOptions.url = redirectUrl;
              for (const hook of updatedOptions.hooks.beforeRedirect) {
                await hook(updatedOptions, typedResponse);
              }
              publishRedirect({
                requestId: this._requestId,
                fromUrl: url2.toString(),
                toUrl: redirectUrl.toString(),
                statusCode
              });
              this.emit("redirect", updatedOptions, typedResponse);
              this.options = updatedOptions;
              await this._makeRequest();
            } catch (error) {
              this._beforeError(error);
              return;
            }
            return;
          }
        }
        if (options.isStream && options.throwHttpErrors && !isResponseOk(typedResponse)) {
          this._beforeError(new HTTPError(typedResponse));
          return;
        }
        const wasDecompressed = response !== this._nativeResponse;
        if (!hasNoBody && (!wasDecompressed || options.strictContentLength)) {
          const contentLengthHeader = this._nativeResponse.headers["content-length"];
          if (contentLengthHeader !== void 0) {
            const expectedLength = Number(contentLengthHeader);
            if (!Number.isNaN(expectedLength) && expectedLength >= 0) {
              this._expectedContentLength = expectedLength;
            }
          }
        }
        response.once("end", () => {
          if (this._checkContentLengthMismatch()) {
            return;
          }
          this._responseSize = this._downloadedSize;
          this.emit("downloadProgress", this.downloadProgress);
          publishResponseEnd({
            requestId: this._requestId,
            url: typedResponse.url,
            statusCode,
            bodySize: this._downloadedSize,
            timings: this.timings
          });
          this.push(null);
        });
        this.emit("downloadProgress", this.downloadProgress);
        response.on("readable", () => {
          if (this._triggerRead) {
            this._read();
          }
        });
        this.on("resume", () => {
          response.resume();
        });
        this.on("pause", () => {
          response.pause();
        });
        if (this._noPipe) {
          const success = await this._setRawBody();
          if (success) {
            this.emit("response", response);
          }
          return;
        }
        this.emit("response", response);
        for (const destination of this._pipedServerResponses) {
          if (destination.headersSent) {
            continue;
          }
          const wasDecompressed2 = response !== this._nativeResponse;
          for (const key in response.headers) {
            if (Object.hasOwn(response.headers, key)) {
              const value = response.headers[key];
              if (wasDecompressed2 && (key === "content-encoding" || key === "content-length")) {
                continue;
              }
              if (value !== void 0) {
                destination.setHeader(key, value);
              }
            }
          }
          destination.statusCode = statusCode;
        }
      }
      async _setRawBody(from = this) {
        if (from.readableEnded) {
          return false;
        }
        try {
          const fromArray = await from.toArray();
          const rawBody = isBuffer(fromArray.at(0)) ? import_node_buffer.Buffer.concat(fromArray) : import_node_buffer.Buffer.from(fromArray.join(""));
          if (!this.isAborted) {
            this.response.rawBody = rawBody;
            return true;
          }
        } catch {
        }
        return false;
      }
      async _onResponse(response) {
        try {
          await this._onResponseBase(response);
        } catch (error) {
          this._beforeError(error);
        }
      }
      _onRequest(request) {
        const { options } = this;
        const { timeout, url: url2 } = options;
        publishRequestStart({
          requestId: this._requestId,
          url: url2?.toString() ?? "",
          method: options.method,
          headers: options.headers
        });
        timer_default(request);
        this._cancelTimeouts = timedOut(request, timeout, url2);
        if (this.options.http2) {
          request.removeAllListeners("timeout");
          request.once("socket", (socket) => {
            socket.removeAllListeners("timeout");
          });
        }
        const responseEventName = options.cache ? "cacheableResponse" : "response";
        request.once(responseEventName, (response) => {
          void this._onResponse(response);
        });
        request.once("error", (error) => {
          this._aborted = true;
          request.destroy();
          error = error instanceof TimeoutError2 ? new TimeoutError(error, this.timings, this) : new RequestError(error.message, error, this);
          this._beforeError(error);
        });
        this._unproxyEvents = proxyEvents(request, this, proxiedRequestEvents);
        this._request = request;
        this.emit("uploadProgress", this.uploadProgress);
        this._sendBody();
        this.emit("request", request);
      }
      async _asyncWrite(chunk2) {
        return new Promise((resolve2, reject) => {
          super.write(chunk2, (error) => {
            if (error) {
              reject(error);
              return;
            }
            resolve2();
          });
        });
      }
      _sendBody() {
        const { body } = this.options;
        const currentRequest = this.redirectUrls.length === 0 ? this : this._request ?? this;
        if (distribution_default.nodeStream(body)) {
          body.pipe(currentRequest);
        } else if (distribution_default.buffer(body)) {
          this._writeRequest(body, void 0, () => {
          });
          currentRequest.end();
        } else if (distribution_default.typedArray(body)) {
          const typedArray = body;
          const uint8View = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
          this._writeRequest(uint8View, void 0, () => {
          });
          currentRequest.end();
        } else if (distribution_default.asyncIterable(body) || distribution_default.iterable(body) && !distribution_default.string(body) && !isBuffer(body)) {
          (async () => {
            try {
              for await (const chunk2 of body) {
                await this._asyncWrite(chunk2);
              }
              super.end();
            } catch (error) {
              this._beforeError(error);
            }
          })();
        } else if (distribution_default.undefined(body)) {
          const cannotHaveBody = methodsWithoutBody.has(this.options.method) && !(this.options.method === "GET" && this.options.allowGetBody);
          if ((this._noPipe ?? false) || cannotHaveBody || currentRequest !== this) {
            currentRequest.end();
          }
        } else {
          this._writeRequest(body, void 0, () => {
          });
          currentRequest.end();
        }
      }
      _prepareCache(cache) {
        if (cacheableStore.has(cache)) {
          return;
        }
        const cacheableRequest = new dist_default(((requestOptions, handler) => {
          const wrappedHandler = handler ? (response) => {
            const { beforeCacheHooks, gotRequest } = requestOptions;
            if (!beforeCacheHooks || beforeCacheHooks.length === 0) {
              handler(response);
              return;
            }
            try {
              for (const hook of beforeCacheHooks) {
                const result2 = hook(response);
                if (result2 === false) {
                  response.headers["cache-control"] = "no-cache, no-store, must-revalidate";
                  response.headers.pragma = "no-cache";
                  response.headers.expires = "0";
                  handler(response);
                  return;
                }
                if (distribution_default.promise(result2)) {
                  throw new TypeError("beforeCache hooks must be synchronous. The hook returned a Promise, but this hook must return synchronously. If you need async logic, use beforeRequest hook instead.");
                }
                if (result2 !== void 0) {
                  throw new TypeError("beforeCache hook must return false or undefined. To modify the response, mutate it directly.");
                }
              }
            } catch (error) {
              if (gotRequest) {
                gotRequest._beforeError(error instanceof RequestError ? error : new RequestError(error.message, error, gotRequest));
                return;
              }
              console.error("Got: beforeCache hook error (request context unavailable):", error);
              handler(response);
              return;
            }
            handler(response);
          } : handler;
          const result = requestOptions._request(requestOptions, wrappedHandler);
          if (distribution_default.promise(result)) {
            result.once = (event, handler2) => {
              if (event === "error") {
                (async () => {
                  try {
                    await result;
                  } catch (error) {
                    handler2(error);
                  }
                })();
              } else if (event === "abort" || event === "destroy") {
                (async () => {
                  try {
                    const request = await result;
                    request.once(event, handler2);
                  } catch {
                  }
                })();
              } else {
                throw new Error(`Unknown HTTP2 promise event: ${event}`);
              }
              return result;
            };
          }
          return result;
        }), cache);
        cacheableStore.set(cache, cacheableRequest.request());
      }
      async _createCacheableRequest(url2, options) {
        return new Promise((resolve2, reject) => {
          Object.assign(options, urlToOptions(url2));
          let request;
          const cacheRequest = cacheableStore.get(options.cache)(options, async (response) => {
            response._readableState.autoDestroy = false;
            if (request) {
              const fix = () => {
                if (response.req) {
                  response.complete = response.req.res.complete;
                } else if (response.complete === void 0) {
                  response.complete = true;
                }
              };
              response.prependOnceListener("end", fix);
              fix();
              (await request).emit("cacheableResponse", response);
            }
            resolve2(response);
          });
          cacheRequest.once("error", reject);
          cacheRequest.once("request", async (requestOrPromise) => {
            request = requestOrPromise;
            resolve2(request);
          });
        });
      }
      async _makeRequest() {
        const { options } = this;
        const { headers, username, password } = options;
        const cookieJar = options.cookieJar;
        for (const key in headers) {
          if (distribution_default.undefined(headers[key])) {
            delete headers[key];
          } else if (distribution_default.null(headers[key])) {
            throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${key}\` header`);
          }
        }
        if (options.decompress && distribution_default.undefined(headers["accept-encoding"])) {
          const encodings = ["gzip", "deflate"];
          if (supportsBrotli) {
            encodings.push("br");
          }
          if (supportsZstd2) {
            encodings.push("zstd");
          }
          headers["accept-encoding"] = encodings.join(", ");
        }
        if (username || password) {
          const credentials = import_node_buffer.Buffer.from(`${username}:${password}`).toString("base64");
          headers.authorization = `Basic ${credentials}`;
        }
        if (cookieJar) {
          const cookieString = await cookieJar.getCookieString(options.url.toString());
          if (distribution_default.nonEmptyString(cookieString)) {
            headers.cookie = cookieString;
          }
        }
        let request;
        for (const hook of options.hooks.beforeRequest) {
          const result = await hook(options, { retryCount: this.retryCount });
          if (!distribution_default.undefined(result)) {
            request = () => result;
            break;
          }
        }
        request ||= options.getRequestFunction();
        const url2 = options.url;
        this._requestOptions = options.createNativeRequestOptions();
        if (options.cache) {
          this._requestOptions._request = request;
          this._requestOptions.cache = options.cache;
          this._requestOptions.body = options.body;
          this._requestOptions.beforeCacheHooks = options.hooks.beforeCache;
          this._requestOptions.gotRequest = this;
          try {
            this._prepareCache(options.cache);
          } catch (error) {
            throw new CacheError(error, this);
          }
        }
        const function_ = options.cache ? this._createCacheableRequest : request;
        try {
          let requestOrResponse = function_(url2, this._requestOptions);
          if (distribution_default.promise(requestOrResponse)) {
            requestOrResponse = await requestOrResponse;
          }
          if (distribution_default.undefined(requestOrResponse)) {
            requestOrResponse = options.getFallbackRequestFunction()(url2, this._requestOptions);
            if (distribution_default.promise(requestOrResponse)) {
              requestOrResponse = await requestOrResponse;
            }
          }
          if (is_client_request_default(requestOrResponse)) {
            this._onRequest(requestOrResponse);
          } else if (this.writableEnded) {
            void this._onResponse(requestOrResponse);
          } else {
            this.once("finish", () => {
              void this._onResponse(requestOrResponse);
            });
            this._sendBody();
          }
        } catch (error) {
          if (error instanceof CacheError2) {
            throw new CacheError(error, this);
          }
          throw error;
        }
      }
      async _error(error) {
        try {
          if (this.options && error instanceof HTTPError && !this.options.throwHttpErrors) {
          } else if (this.options) {
            const hooks2 = this.options.hooks.beforeError;
            if (hooks2.length > 0) {
              for (const hook of hooks2) {
                error = await hook(error);
                if (!(error instanceof Error)) {
                  throw new TypeError(`The \`beforeError\` hook must return an Error instance. Received ${distribution_default.string(error) ? "string" : String(typeof error)}.`);
                }
              }
              if (!(error instanceof RequestError)) {
                errorsProcessedByHooks.add(error);
              }
            }
          }
        } catch (error_) {
          error = new RequestError(error_.message, error_, this);
        }
        publishError({
          requestId: this._requestId,
          url: this.options?.url?.toString() ?? "",
          error,
          timings: this.timings
        });
        this.destroy(error);
        if (this._noPipe) {
          import_node_process2.default.nextTick(() => {
            this.emit("error", error);
          });
        }
      }
      _writeRequest(chunk2, encoding, callback) {
        if (!this._request || this._request.destroyed) {
          callback();
          return;
        }
        this._request.write(chunk2, encoding, (error) => {
          if (!error && !this._request.destroyed) {
            const bytes = typeof chunk2 === "string" ? import_node_buffer.Buffer.from(chunk2, encoding) : chunk2;
            this._uploadedSize += byteLength(bytes);
            const progress = this.uploadProgress;
            if (progress.percent < 1) {
              this.emit("uploadProgress", progress);
            }
          }
          callback(error);
        });
      }
      /**
      The remote IP address.
      */
      get ip() {
        return this.socket?.remoteAddress;
      }
      /**
      Indicates whether the request has been aborted or not.
      */
      get isAborted() {
        return this._aborted;
      }
      get socket() {
        return this._request?.socket ?? void 0;
      }
      /**
      Progress event for downloading (receiving a response).
      */
      get downloadProgress() {
        let percent;
        if (this._responseSize) {
          percent = this._downloadedSize / this._responseSize;
        } else if (this._responseSize === this._downloadedSize) {
          percent = 1;
        } else {
          percent = 0;
        }
        return {
          percent,
          transferred: this._downloadedSize,
          total: this._responseSize
        };
      }
      /**
      Progress event for uploading (sending a request).
      */
      get uploadProgress() {
        let percent;
        if (this._bodySize) {
          percent = this._uploadedSize / this._bodySize;
        } else if (this._bodySize === this._uploadedSize) {
          percent = 1;
        } else {
          percent = 0;
        }
        return {
          percent,
          transferred: this._uploadedSize,
          total: this._bodySize
        };
      }
      /**
          The object contains the following properties:
      
          - `start` - Time when the request started.
          - `socket` - Time when a socket was assigned to the request.
          - `lookup` - Time when the DNS lookup finished.
          - `connect` - Time when the socket successfully connected.
          - `secureConnect` - Time when the socket securely connected.
          - `upload` - Time when the request finished uploading.
          - `response` - Time when the request fired `response` event.
          - `end` - Time when the response fired `end` event.
          - `error` - Time when the request fired `error` event.
          - `abort` - Time when the request fired `abort` event.
          - `phases`
              - `wait` - `timings.socket - timings.start`
              - `dns` - `timings.lookup - timings.socket`
              - `tcp` - `timings.connect - timings.lookup`
              - `tls` - `timings.secureConnect - timings.connect`
              - `request` - `timings.upload - (timings.secureConnect || timings.connect)`
              - `firstByte` - `timings.response - timings.upload`
              - `download` - `timings.end - timings.response`
              - `total` - `(timings.end || timings.error || timings.abort) - timings.start`
      
          If something has not been measured yet, it will be `undefined`.
      
          __Note__: The time is a `number` representing the milliseconds elapsed since the UNIX epoch.
          */
      get timings() {
        return this._request?.timings;
      }
      /**
      Whether the response was retrieved from the cache.
      */
      get isFromCache() {
        return this._isFromCache;
      }
      get reusedSocket() {
        return this._request?.reusedSocket;
      }
      /**
      Whether the stream is read-only. Returns `true` when `body`, `json`, or `form` options are provided.
      */
      get isReadonly() {
        return !distribution_default.undefined(this.options?.body) || !distribution_default.undefined(this.options?.json) || !distribution_default.undefined(this.options?.form);
      }
    };
  }
});
var CancelError2;
var init_types2 = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/as-promise/types.js"() {
    init_errors();
    CancelError2 = class extends RequestError {
      constructor(request) {
        super("Promise was canceled", {}, request);
        this.name = "CancelError";
        this.code = "ERR_CANCELED";
      }
      /**
      Whether the promise is canceled.
      */
      get isCanceled() {
        return true;
      }
    };
  }
});
function asPromise(firstRequest) {
  let globalRequest;
  let globalResponse;
  let normalizedOptions;
  const emitter = new import_node_events4.EventEmitter();
  let promiseSettled = false;
  const promise = new PCancelable((resolve2, reject, onCancel) => {
    onCancel(() => {
      globalRequest.destroy();
    });
    onCancel.shouldReject = false;
    onCancel(() => {
      promiseSettled = true;
      reject(new CancelError2(globalRequest));
    });
    const makeRequest = (retryCount) => {
      onCancel(() => {
      });
      const request = firstRequest ?? new Request(void 0, void 0, normalizedOptions);
      request.retryCount = retryCount;
      request._noPipe = true;
      globalRequest = request;
      request.once("response", async (response) => {
        const contentEncoding = (response.headers["content-encoding"] ?? "").toLowerCase();
        const isCompressed = contentEncoding === "gzip" || contentEncoding === "deflate" || contentEncoding === "br" || contentEncoding === "zstd";
        const { options } = request;
        if (isCompressed && !options.decompress) {
          response.body = response.rawBody;
        } else {
          try {
            response.body = parseBody(response, options.responseType, options.parseJson, options.encoding);
          } catch (error) {
            try {
              response.body = response.rawBody.toString();
            } catch (error2) {
              request._beforeError(new ParseError(error2, response));
              return;
            }
            if (isResponseOk(response)) {
              request._beforeError(error);
              return;
            }
          }
        }
        try {
          const hooks2 = options.hooks.afterResponse;
          for (const [index, hook] of hooks2.entries()) {
            response = await hook(response, async (updatedOptions) => {
              const preserveHooks = updatedOptions.preserveHooks ?? false;
              options.merge(updatedOptions);
              options.prefixUrl = "";
              if (updatedOptions.url) {
                options.url = updatedOptions.url;
              }
              if (!preserveHooks) {
                options.hooks.afterResponse = options.hooks.afterResponse.slice(0, index);
              }
              throw new RetryError(request);
            });
            if (!(distribution_default.object(response) && distribution_default.number(response.statusCode) && "body" in response)) {
              throw new TypeError("The `afterResponse` hook returned an invalid value");
            }
          }
        } catch (error) {
          request._beforeError(error);
          return;
        }
        globalResponse = response;
        if (!isResponseOk(response)) {
          request._beforeError(new HTTPError(response));
          return;
        }
        request.destroy();
        promiseSettled = true;
        resolve2(request.options.resolveBodyOnly ? response.body : response);
      });
      let handledFinalError = false;
      const onError = (error) => {
        if (promise.isCanceled) {
          return;
        }
        if (!request._stopReading) {
          request._beforeError(error);
          return;
        }
        if (handledFinalError) {
          return;
        }
        handledFinalError = true;
        promiseSettled = true;
        const { options } = request;
        if (error instanceof HTTPError && !options.throwHttpErrors) {
          const { response } = error;
          request.destroy();
          resolve2(request.options.resolveBodyOnly ? response.body : response);
          return;
        }
        reject(error);
      };
      request.on("error", onError);
      const previousBody = request.options?.body;
      request.once("retry", (newRetryCount, error) => {
        firstRequest = void 0;
        if (promiseSettled) {
          return;
        }
        const newBody = request.options.body;
        if (previousBody === newBody && distribution_default.nodeStream(newBody)) {
          error.message = "Cannot retry with consumed body stream";
          onError(error);
          return;
        }
        normalizedOptions = request.options;
        makeRequest(newRetryCount);
      });
      proxyEvents(request, emitter, proxiedRequestEvents2);
      if (distribution_default.undefined(firstRequest)) {
        void request.flush();
      }
    };
    makeRequest(0);
  });
  promise.on = (event, function_) => {
    emitter.on(event, function_);
    return promise;
  };
  promise.off = (event, function_) => {
    emitter.off(event, function_);
    return promise;
  };
  const shortcut = (promiseToAwait, responseType) => {
    const newPromise = (async () => {
      await promiseToAwait;
      const { options } = globalResponse.request;
      return parseBody(globalResponse, responseType, options.parseJson, options.encoding);
    })();
    Object.defineProperties(newPromise, Object.getOwnPropertyDescriptors(promiseToAwait));
    return newPromise;
  };
  promise.json = function() {
    if (globalRequest.options) {
      const { headers } = globalRequest.options;
      if (!globalRequest.writableFinished && !("accept" in headers)) {
        headers.accept = "application/json";
      }
    }
    return shortcut(this, "json");
  };
  promise.buffer = function() {
    return shortcut(this, "buffer");
  };
  promise.text = function() {
    return shortcut(this, "text");
  };
  return promise;
}
var proxiedRequestEvents2;
var init_as_promise = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/as-promise/index.js"() {
    init_distribution();
    init_p_cancelable();
    init_errors();
    init_core();
    init_response();
    init_proxy_events();
    init_types2();
    proxiedRequestEvents2 = [
      "request",
      "response",
      "redirect",
      "uploadProgress",
      "downloadProgress"
    ];
  }
});
var isGotInstance;
var aliases;
var create;
var create_default;
var init_create = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/create.js"() {
    init_distribution();
    init_as_promise();
    init_core();
    init_options();
    isGotInstance = (value) => distribution_default.function(value);
    aliases = [
      "get",
      "post",
      "put",
      "patch",
      "head",
      "delete"
    ];
    create = (defaults42) => {
      defaults42 = {
        options: new Options(void 0, void 0, defaults42.options),
        handlers: [...defaults42.handlers],
        mutableDefaults: defaults42.mutableDefaults
      };
      Object.defineProperty(defaults42, "mutableDefaults", {
        enumerable: true,
        configurable: false,
        writable: false
      });
      const got2 = ((url2, options, defaultOptions2 = defaults42.options) => {
        const request = new Request(url2, options, defaultOptions2);
        let promise;
        const lastHandler = (normalized) => {
          request.options = normalized;
          request._noPipe = !normalized?.isStream;
          void request.flush();
          if (normalized?.isStream) {
            return request;
          }
          promise ||= asPromise(request);
          return promise;
        };
        let iteration = 0;
        const iterateHandlers = (newOptions) => {
          const handler = defaults42.handlers[iteration++] ?? lastHandler;
          const result = handler(newOptions, iterateHandlers);
          if (distribution_default.promise(result) && !request.options?.isStream) {
            promise ||= asPromise(request);
            if (result !== promise) {
              const descriptors = Object.getOwnPropertyDescriptors(promise);
              for (const key in descriptors) {
                if (key in result) {
                  delete descriptors[key];
                }
              }
              Object.defineProperties(result, descriptors);
              result.cancel = promise.cancel;
            }
          }
          return result;
        };
        return iterateHandlers(request.options);
      });
      got2.extend = (...instancesOrOptions) => {
        const options = new Options(void 0, void 0, defaults42.options);
        const handlers2 = [...defaults42.handlers];
        let mutableDefaults;
        for (const value of instancesOrOptions) {
          if (isGotInstance(value)) {
            options.merge(value.defaults.options);
            handlers2.push(...value.defaults.handlers);
            mutableDefaults = value.defaults.mutableDefaults;
          } else {
            options.merge(value);
            if (value.handlers) {
              handlers2.push(...value.handlers);
            }
            mutableDefaults = value.mutableDefaults;
          }
        }
        return create({
          options,
          handlers: handlers2,
          mutableDefaults: Boolean(mutableDefaults)
        });
      };
      const paginateEach = (async function* (url2, options) {
        let normalizedOptions = new Options(url2, options, defaults42.options);
        normalizedOptions.resolveBodyOnly = false;
        const { pagination } = normalizedOptions;
        assert.function(pagination.transform);
        assert.function(pagination.shouldContinue);
        assert.function(pagination.filter);
        assert.function(pagination.paginate);
        assert.number(pagination.countLimit);
        assert.number(pagination.requestLimit);
        assert.number(pagination.backoff);
        const allItems = [];
        let { countLimit } = pagination;
        let numberOfRequests = 0;
        while (numberOfRequests < pagination.requestLimit) {
          if (numberOfRequests !== 0) {
            await (0, import_promises2.setTimeout)(pagination.backoff);
          }
          const response = await got2(void 0, void 0, normalizedOptions);
          const parsed = await pagination.transform(response);
          const currentItems = [];
          assert.array(parsed);
          for (const item of parsed) {
            if (pagination.filter({ item, currentItems, allItems })) {
              if (!pagination.shouldContinue({ item, currentItems, allItems })) {
                return;
              }
              yield item;
              if (pagination.stackAllItems) {
                allItems.push(item);
              }
              currentItems.push(item);
              if (--countLimit <= 0) {
                return;
              }
            }
          }
          const optionsToMerge = pagination.paginate({
            response,
            currentItems,
            allItems
          });
          if (optionsToMerge === false) {
            return;
          }
          if (optionsToMerge === response.request.options) {
            normalizedOptions = response.request.options;
          } else {
            normalizedOptions.merge(optionsToMerge);
            try {
              assert.any([distribution_default.urlInstance, distribution_default.undefined], optionsToMerge.url);
            } catch (error) {
              if (error instanceof Error) {
                error.message = `Option 'pagination.paginate.url': ${error.message}`;
              }
              throw error;
            }
            if (optionsToMerge.url !== void 0) {
              normalizedOptions.prefixUrl = "";
              normalizedOptions.url = optionsToMerge.url;
            }
          }
          numberOfRequests++;
        }
      });
      got2.paginate = paginateEach;
      got2.paginate.all = (async (url2, options) => {
        const results = [];
        for await (const item of paginateEach(url2, options)) {
          results.push(item);
        }
        return results;
      });
      got2.paginate.each = paginateEach;
      got2.stream = ((url2, options) => got2(url2, { ...options, isStream: true }));
      for (const method of aliases) {
        got2[method] = ((url2, options) => got2(url2, { ...options, method }));
        got2.stream[method] = ((url2, options) => got2(url2, { ...options, method, isStream: true }));
      }
      if (!defaults42.mutableDefaults) {
        Object.freeze(defaults42.handlers);
        defaults42.options.freeze();
      }
      Object.defineProperty(got2, "defaults", {
        value: defaults42,
        writable: false,
        configurable: false,
        enumerable: true
      });
      return got2;
    };
    create_default = create;
  }
});
var init_types3 = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/types.js"() {
  }
});
var defaults;
var got;
var init_source3 = __esm({
  "../../node_modules/.pnpm/got@14.6.6/node_modules/got/dist/source/index.js"() {
    init_create();
    init_options();
    init_options();
    init_options();
    init_response();
    init_core();
    init_errors();
    init_diagnostics_channel();
    init_calculate_retry_delay();
    init_types2();
    init_types3();
    init_create();
    init_parse_link_header();
    defaults = {
      options: new Options(),
      handlers: [],
      mutableDefaults: false
    };
    got = create_default(defaults);
  }
});
var require_constants = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/constants.js"(exports2, module2) {
    module2.exports = {
      /* The local file header */
      LOCHDR: 30,
      // LOC header size
      LOCSIG: 67324752,
      // "PK\003\004"
      LOCVER: 4,
      // version needed to extract
      LOCFLG: 6,
      // general purpose bit flag
      LOCHOW: 8,
      // compression method
      LOCTIM: 10,
      // modification time (2 bytes time, 2 bytes date)
      LOCCRC: 14,
      // uncompressed file crc-32 value
      LOCSIZ: 18,
      // compressed size
      LOCLEN: 22,
      // uncompressed size
      LOCNAM: 26,
      // filename length
      LOCEXT: 28,
      // extra field length
      /* The Data descriptor */
      EXTSIG: 134695760,
      // "PK\007\008"
      EXTHDR: 16,
      // EXT header size
      EXTCRC: 4,
      // uncompressed file crc-32 value
      EXTSIZ: 8,
      // compressed size
      EXTLEN: 12,
      // uncompressed size
      /* The central directory file header */
      CENHDR: 46,
      // CEN header size
      CENSIG: 33639248,
      // "PK\001\002"
      CENVEM: 4,
      // version made by
      CENVER: 6,
      // version needed to extract
      CENFLG: 8,
      // encrypt, decrypt flags
      CENHOW: 10,
      // compression method
      CENTIM: 12,
      // modification time (2 bytes time, 2 bytes date)
      CENCRC: 16,
      // uncompressed file crc-32 value
      CENSIZ: 20,
      // compressed size
      CENLEN: 24,
      // uncompressed size
      CENNAM: 28,
      // filename length
      CENEXT: 30,
      // extra field length
      CENCOM: 32,
      // file comment length
      CENDSK: 34,
      // volume number start
      CENATT: 36,
      // internal file attributes
      CENATX: 38,
      // external file attributes (host system dependent)
      CENOFF: 42,
      // LOC header offset
      /* The entries in the end of central directory */
      ENDHDR: 22,
      // END header size
      ENDSIG: 101010256,
      // "PK\005\006"
      ENDSUB: 8,
      // number of entries on this disk
      ENDTOT: 10,
      // total number of entries
      ENDSIZ: 12,
      // central directory size in bytes
      ENDOFF: 16,
      // offset of first CEN header
      ENDCOM: 20,
      // zip file comment length
      END64HDR: 20,
      // zip64 END header size
      END64SIG: 117853008,
      // zip64 Locator signature, "PK\006\007"
      END64START: 4,
      // number of the disk with the start of the zip64
      END64OFF: 8,
      // relative offset of the zip64 end of central directory
      END64NUMDISKS: 16,
      // total number of disks
      ZIP64SIG: 101075792,
      // zip64 signature, "PK\006\006"
      ZIP64HDR: 56,
      // zip64 record minimum size
      ZIP64LEAD: 12,
      // leading bytes at the start of the record, not counted by the value stored in ZIP64SIZE
      ZIP64SIZE: 4,
      // zip64 size of the central directory record
      ZIP64VEM: 12,
      // zip64 version made by
      ZIP64VER: 14,
      // zip64 version needed to extract
      ZIP64DSK: 16,
      // zip64 number of this disk
      ZIP64DSKDIR: 20,
      // number of the disk with the start of the record directory
      ZIP64SUB: 24,
      // number of entries on this disk
      ZIP64TOT: 32,
      // total number of entries
      ZIP64SIZB: 40,
      // zip64 central directory size in bytes
      ZIP64OFF: 48,
      // offset of start of central directory with respect to the starting disk number
      ZIP64EXTRA: 56,
      // extensible data sector
      /* Compression methods */
      STORED: 0,
      // no compression
      SHRUNK: 1,
      // shrunk
      REDUCED1: 2,
      // reduced with compression factor 1
      REDUCED2: 3,
      // reduced with compression factor 2
      REDUCED3: 4,
      // reduced with compression factor 3
      REDUCED4: 5,
      // reduced with compression factor 4
      IMPLODED: 6,
      // imploded
      // 7 reserved for Tokenizing compression algorithm
      DEFLATED: 8,
      // deflated
      ENHANCED_DEFLATED: 9,
      // enhanced deflated
      PKWARE: 10,
      // PKWare DCL imploded
      // 11 reserved by PKWARE
      BZIP2: 12,
      //  compressed using BZIP2
      // 13 reserved by PKWARE
      LZMA: 14,
      // LZMA
      // 15-17 reserved by PKWARE
      IBM_TERSE: 18,
      // compressed using IBM TERSE
      IBM_LZ77: 19,
      // IBM LZ77 z
      AES_ENCRYPT: 99,
      // WinZIP AES encryption method
      /* General purpose bit flag */
      // values can obtained with expression 2**bitnr
      FLG_ENC: 1,
      // Bit 0: encrypted file
      FLG_COMP1: 2,
      // Bit 1, compression option
      FLG_COMP2: 4,
      // Bit 2, compression option
      FLG_DESC: 8,
      // Bit 3, data descriptor
      FLG_ENH: 16,
      // Bit 4, enhanced deflating
      FLG_PATCH: 32,
      // Bit 5, indicates that the file is compressed patched data.
      FLG_STR: 64,
      // Bit 6, strong encryption (patented)
      // Bits 7-10: Currently unused.
      FLG_EFS: 2048,
      // Bit 11: Language encoding flag (EFS)
      // Bit 12: Reserved by PKWARE for enhanced compression.
      // Bit 13: encrypted the Central Directory (patented).
      // Bits 14-15: Reserved by PKWARE.
      FLG_MSK: 4096,
      // mask header values
      /* Load type */
      FILE: 2,
      BUFFER: 1,
      NONE: 0,
      /* 4.5 Extensible data fields */
      EF_ID: 0,
      EF_SIZE: 2,
      /* Header IDs */
      ID_ZIP64: 1,
      ID_AVINFO: 7,
      ID_PFS: 8,
      ID_OS2: 9,
      ID_NTFS: 10,
      ID_OPENVMS: 12,
      ID_UNIX: 13,
      ID_FORK: 14,
      ID_PATCH: 15,
      ID_X509_PKCS7: 20,
      ID_X509_CERTID_F: 21,
      ID_X509_CERTID_C: 22,
      ID_STRONGENC: 23,
      ID_RECORD_MGT: 24,
      ID_X509_PKCS7_RL: 25,
      ID_IBM1: 101,
      ID_IBM2: 102,
      ID_POSZIP: 18064,
      EF_ZIP64_OR_32: 4294967295,
      EF_ZIP64_OR_16: 65535,
      EF_ZIP64_SUNCOMP: 0,
      EF_ZIP64_SCOMP: 8,
      EF_ZIP64_RHO: 16,
      EF_ZIP64_DSN: 24
    };
  }
});
var require_errors3 = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/errors.js"(exports2) {
    var errors = {
      /* Header error messages */
      INVALID_LOC: "Invalid LOC header (bad signature)",
      INVALID_CEN: "Invalid CEN header (bad signature)",
      INVALID_END: "Invalid END header (bad signature)",
      /* Descriptor */
      DESCRIPTOR_NOT_EXIST: "No descriptor present",
      DESCRIPTOR_UNKNOWN: "Unknown descriptor format",
      DESCRIPTOR_FAULTY: "Descriptor data is malformed",
      /* ZipEntry error messages*/
      NO_DATA: "Nothing to decompress",
      BAD_CRC: "CRC32 checksum failed {0}",
      FILE_IN_THE_WAY: "There is a file in the way: {0}",
      UNKNOWN_METHOD: "Invalid/unsupported compression method",
      /* Inflater error messages */
      AVAIL_DATA: "inflate::Available inflate data did not terminate",
      INVALID_DISTANCE: "inflate::Invalid literal/length or distance code in fixed or dynamic block",
      TO_MANY_CODES: "inflate::Dynamic block code description: too many length or distance codes",
      INVALID_REPEAT_LEN: "inflate::Dynamic block code description: repeat more than specified lengths",
      INVALID_REPEAT_FIRST: "inflate::Dynamic block code description: repeat lengths with no first length",
      INCOMPLETE_CODES: "inflate::Dynamic block code description: code lengths codes incomplete",
      INVALID_DYN_DISTANCE: "inflate::Dynamic block code description: invalid distance code lengths",
      INVALID_CODES_LEN: "inflate::Dynamic block code description: invalid literal/length code lengths",
      INVALID_STORE_BLOCK: "inflate::Stored block length did not match one's complement",
      INVALID_BLOCK_TYPE: "inflate::Invalid block type (type == 3)",
      /* ADM-ZIP error messages */
      CANT_EXTRACT_FILE: "Could not extract the file",
      CANT_OVERRIDE: "Target file already exists",
      DISK_ENTRY_TOO_LARGE: "Number of disk entries is too large",
      NO_ZIP: "No zip file was loaded",
      NO_ENTRY: "Entry doesn't exist",
      DIRECTORY_CONTENT_ERROR: "A directory cannot have content",
      FILE_NOT_FOUND: 'File not found: "{0}"',
      NOT_IMPLEMENTED: "Not implemented",
      INVALID_FILENAME: "Invalid filename",
      INVALID_FORMAT: "Invalid or unsupported zip format. No END header found",
      INVALID_PASS_PARAM: "Incompatible password parameter",
      WRONG_PASSWORD: "Wrong Password",
      /* ADM-ZIP */
      COMMENT_TOO_LONG: "Comment is too long",
      // Comment can be max 65535 bytes long (NOTE: some non-US characters may take more space)
      EXTRA_FIELD_PARSE_ERROR: "Extra field parsing error"
    };
    function E2(message) {
      return function(...args) {
        if (args.length) {
          message = message.replace(/\{(\d)\}/g, (_3, n22) => args[n22] || "");
        }
        return new Error("ADM-ZIP: " + message);
      };
    }
    for (const msg of Object.keys(errors)) {
      exports2[msg] = E2(errors[msg]);
    }
  }
});
var require_utils5 = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/utils.js"(exports2, module2) {
    var fsystem = __require("fs");
    var pth = __require("path");
    var Constants = require_constants();
    var Errors = require_errors3();
    var isWin = typeof process === "object" && "win32" === process.platform;
    var is_Obj = (obj) => typeof obj === "object" && obj !== null;
    var crcTable = new Uint32Array(256).map((t9, c3) => {
      for (let k3 = 0; k3 < 8; k3++) {
        if ((c3 & 1) !== 0) {
          c3 = 3988292384 ^ c3 >>> 1;
        } else {
          c3 >>>= 1;
        }
      }
      return c3 >>> 0;
    });
    function Utils(opts) {
      this.sep = pth.sep;
      this.fs = fsystem;
      if (is_Obj(opts)) {
        if (is_Obj(opts.fs) && typeof opts.fs.statSync === "function") {
          this.fs = opts.fs;
        }
      }
    }
    module2.exports = Utils;
    Utils.prototype.makeDir = function(folder) {
      const self2 = this;
      function mkdirSync(fpath) {
        let resolvedPath = fpath.split(self2.sep)[0];
        fpath.split(self2.sep).forEach(function(name2) {
          if (!name2 || name2.substr(-1, 1) === ":") return;
          resolvedPath += self2.sep + name2;
          var stat;
          try {
            stat = self2.fs.statSync(resolvedPath);
          } catch (e2) {
            self2.fs.mkdirSync(resolvedPath);
          }
          if (stat && stat.isFile()) throw Errors.FILE_IN_THE_WAY(`"${resolvedPath}"`);
        });
      }
      mkdirSync(folder);
    };
    Utils.prototype.writeFileTo = function(path22, content2, overwrite, attr) {
      const self2 = this;
      if (self2.fs.existsSync(path22)) {
        if (!overwrite) return false;
        var stat = self2.fs.statSync(path22);
        if (stat.isDirectory()) {
          return false;
        }
      }
      var folder = pth.dirname(path22);
      if (!self2.fs.existsSync(folder)) {
        self2.makeDir(folder);
      }
      var fd2;
      try {
        fd2 = self2.fs.openSync(path22, "w", 438);
      } catch (e2) {
        self2.fs.chmodSync(path22, 438);
        fd2 = self2.fs.openSync(path22, "w", 438);
      }
      if (fd2) {
        try {
          self2.fs.writeSync(fd2, content2, 0, content2.length, 0);
        } finally {
          self2.fs.closeSync(fd2);
        }
      }
      self2.fs.chmodSync(path22, attr || 438);
      return true;
    };
    Utils.prototype.writeFileToAsync = function(path22, content2, overwrite, attr, callback) {
      if (typeof attr === "function") {
        callback = attr;
        attr = void 0;
      }
      const self2 = this;
      self2.fs.exists(path22, function(exist) {
        if (exist && !overwrite) return callback(false);
        self2.fs.stat(path22, function(err2, stat) {
          if (exist && stat.isDirectory()) {
            return callback(false);
          }
          var folder = pth.dirname(path22);
          self2.fs.exists(folder, function(exists) {
            if (!exists) self2.makeDir(folder);
            self2.fs.open(path22, "w", 438, function(err3, fd2) {
              if (err3) {
                self2.fs.chmod(path22, 438, function() {
                  self2.fs.open(path22, "w", 438, function(err4, fd3) {
                    self2.fs.write(fd3, content2, 0, content2.length, 0, function() {
                      self2.fs.close(fd3, function() {
                        self2.fs.chmod(path22, attr || 438, function() {
                          callback(true);
                        });
                      });
                    });
                  });
                });
              } else if (fd2) {
                self2.fs.write(fd2, content2, 0, content2.length, 0, function() {
                  self2.fs.close(fd2, function() {
                    self2.fs.chmod(path22, attr || 438, function() {
                      callback(true);
                    });
                  });
                });
              } else {
                self2.fs.chmod(path22, attr || 438, function() {
                  callback(true);
                });
              }
            });
          });
        });
      });
    };
    Utils.prototype.findFiles = function(path22) {
      const self2 = this;
      function findSync(dir, pattern, recursive) {
        if (typeof pattern === "boolean") {
          recursive = pattern;
          pattern = void 0;
        }
        let files = [];
        self2.fs.readdirSync(dir).forEach(function(file) {
          const path3 = pth.join(dir, file);
          const stat = self2.fs.statSync(path3);
          if (!pattern || pattern.test(path3)) {
            files.push(pth.normalize(path3) + (stat.isDirectory() ? self2.sep : ""));
          }
          if (stat.isDirectory() && recursive) files = files.concat(findSync(path3, pattern, recursive));
        });
        return files;
      }
      return findSync(path22, void 0, true);
    };
    Utils.prototype.findFilesAsync = function(dir, cb) {
      const self2 = this;
      let results = [];
      self2.fs.readdir(dir, function(err2, list) {
        if (err2) return cb(err2);
        let list_length = list.length;
        if (!list_length) return cb(null, results);
        list.forEach(function(file) {
          file = pth.join(dir, file);
          self2.fs.stat(file, function(err3, stat) {
            if (err3) return cb(err3);
            if (stat) {
              results.push(pth.normalize(file) + (stat.isDirectory() ? self2.sep : ""));
              if (stat.isDirectory()) {
                self2.findFilesAsync(file, function(err4, res) {
                  if (err4) return cb(err4);
                  results = results.concat(res);
                  if (!--list_length) cb(null, results);
                });
              } else {
                if (!--list_length) cb(null, results);
              }
            }
          });
        });
      });
    };
    Utils.prototype.getAttributes = function() {
    };
    Utils.prototype.setAttributes = function() {
    };
    Utils.crc32update = function(crc, byte) {
      return crcTable[(crc ^ byte) & 255] ^ crc >>> 8;
    };
    Utils.crc32 = function(buf) {
      if (typeof buf === "string") {
        buf = Buffer.from(buf, "utf8");
      }
      let len = buf.length;
      let crc = ~0;
      for (let off = 0; off < len; ) crc = Utils.crc32update(crc, buf[off++]);
      return ~crc >>> 0;
    };
    Utils.methodToString = function(method) {
      switch (method) {
        case Constants.STORED:
          return "STORED (" + method + ")";
        case Constants.DEFLATED:
          return "DEFLATED (" + method + ")";
        default:
          return "UNSUPPORTED (" + method + ")";
      }
    };
    Utils.canonical = function(path22) {
      if (!path22) return "";
      const safeSuffix = pth.posix.normalize("/" + path22.split("\\").join("/"));
      return pth.join(".", safeSuffix);
    };
    Utils.zipnamefix = function(path22) {
      if (!path22) return "";
      const safeSuffix = pth.posix.normalize("/" + path22.split("\\").join("/"));
      return pth.posix.join(".", safeSuffix);
    };
    Utils.findLast = function(arr, callback) {
      if (!Array.isArray(arr)) throw new TypeError("arr is not array");
      const len = arr.length >>> 0;
      for (let i22 = len - 1; i22 >= 0; i22--) {
        if (callback(arr[i22], i22, arr)) {
          return arr[i22];
        }
      }
      return void 0;
    };
    Utils.sanitize = function(prefix, name2) {
      prefix = pth.resolve(pth.normalize(prefix));
      var parts = name2.split("/");
      for (var i22 = 0, l2 = parts.length; i22 < l2; i22++) {
        var path22 = pth.normalize(pth.join(prefix, parts.slice(i22, l2).join(pth.sep)));
        if (path22.indexOf(prefix) === 0) {
          return path22;
        }
      }
      return pth.normalize(pth.join(prefix, pth.basename(name2)));
    };
    Utils.toBuffer = function toBuffer(input, encoder) {
      if (Buffer.isBuffer(input)) {
        return input;
      } else if (input instanceof Uint8Array) {
        return Buffer.from(input);
      } else {
        return typeof input === "string" ? encoder(input) : Buffer.alloc(0);
      }
    };
    Utils.readBigUInt64LE = function(buffer, index) {
      var slice = Buffer.from(buffer.slice(index, index + 8));
      slice.swap64();
      return parseInt(`0x${slice.toString("hex")}`);
    };
    Utils.fromDOS2Date = function(val) {
      return new Date((val >> 25 & 127) + 1980, Math.max((val >> 21 & 15) - 1, 0), Math.max(val >> 16 & 31, 1), val >> 11 & 31, val >> 5 & 63, (val & 31) << 1);
    };
    Utils.fromDate2DOS = function(val) {
      let date = 0;
      let time = 0;
      if (val.getFullYear() > 1979) {
        date = (val.getFullYear() - 1980 & 127) << 9 | val.getMonth() + 1 << 5 | val.getDate();
        time = val.getHours() << 11 | val.getMinutes() << 5 | val.getSeconds() >> 1;
      }
      return date << 16 | time;
    };
    Utils.isWin = isWin;
    Utils.crcTable = crcTable;
  }
});
var require_fattr = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/fattr.js"(exports2, module2) {
    var pth = __require("path");
    module2.exports = function(path22, { fs: fs32 }) {
      var _path = path22 || "", _obj = newAttr(), _stat = null;
      function newAttr() {
        return {
          directory: false,
          readonly: false,
          hidden: false,
          executable: false,
          mtime: 0,
          atime: 0
        };
      }
      if (_path && fs32.existsSync(_path)) {
        _stat = fs32.statSync(_path);
        _obj.directory = _stat.isDirectory();
        _obj.mtime = _stat.mtime;
        _obj.atime = _stat.atime;
        _obj.executable = (73 & _stat.mode) !== 0;
        _obj.readonly = (128 & _stat.mode) === 0;
        _obj.hidden = pth.basename(_path)[0] === ".";
      } else {
        console.warn("Invalid path: " + _path);
      }
      return {
        get directory() {
          return _obj.directory;
        },
        get readOnly() {
          return _obj.readonly;
        },
        get hidden() {
          return _obj.hidden;
        },
        get mtime() {
          return _obj.mtime;
        },
        get atime() {
          return _obj.atime;
        },
        get executable() {
          return _obj.executable;
        },
        decodeAttributes: function() {
        },
        encodeAttributes: function() {
        },
        toJSON: function() {
          return {
            path: _path,
            isDirectory: _obj.directory,
            isReadOnly: _obj.readonly,
            isHidden: _obj.hidden,
            isExecutable: _obj.executable,
            mTime: _obj.mtime,
            aTime: _obj.atime
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});
var require_decoder = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/decoder.js"(exports2, module2) {
    module2.exports = {
      efs: true,
      encode: (data) => Buffer.from(data, "utf8"),
      decode: (data) => data.toString("utf8")
    };
  }
});
var require_util2 = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/util/index.js"(exports2, module2) {
    module2.exports = require_utils5();
    module2.exports.Constants = require_constants();
    module2.exports.Errors = require_errors3();
    module2.exports.FileAttr = require_fattr();
    module2.exports.decoder = require_decoder();
  }
});
var require_entryHeader = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/entryHeader.js"(exports2, module2) {
    var Utils = require_util2();
    var Constants = Utils.Constants;
    module2.exports = function() {
      var _verMade = 20, _version = 10, _flags = 0, _method = 0, _time = 0, _crc = 0, _compressedSize = 0, _size = 0, _fnameLen = 0, _extraLen = 0, _comLen = 0, _diskStart = 0, _inattr = 0, _attr = 0, _offset = 0;
      _verMade |= Utils.isWin ? 2560 : 768;
      _flags |= Constants.FLG_EFS;
      const _localHeader = {
        extraLen: 0
      };
      const uint32 = (val) => Math.max(0, val) >>> 0;
      const uint16 = (val) => Math.max(0, val) & 65535;
      const uint8 = (val) => Math.max(0, val) & 255;
      _time = Utils.fromDate2DOS(/* @__PURE__ */ new Date());
      return {
        get made() {
          return _verMade;
        },
        set made(val) {
          _verMade = val;
        },
        get version() {
          return _version;
        },
        set version(val) {
          _version = val;
        },
        get flags() {
          return _flags;
        },
        set flags(val) {
          _flags = val;
        },
        get flags_efs() {
          return (_flags & Constants.FLG_EFS) > 0;
        },
        set flags_efs(val) {
          if (val) {
            _flags |= Constants.FLG_EFS;
          } else {
            _flags &= ~Constants.FLG_EFS;
          }
        },
        get flags_desc() {
          return (_flags & Constants.FLG_DESC) > 0;
        },
        set flags_desc(val) {
          if (val) {
            _flags |= Constants.FLG_DESC;
          } else {
            _flags &= ~Constants.FLG_DESC;
          }
        },
        get method() {
          return _method;
        },
        set method(val) {
          switch (val) {
            case Constants.STORED:
              this.version = 10;
            case Constants.DEFLATED:
            default:
              this.version = 20;
          }
          _method = val;
        },
        get time() {
          return Utils.fromDOS2Date(this.timeval);
        },
        set time(val) {
          this.timeval = Utils.fromDate2DOS(val);
        },
        get timeval() {
          return _time;
        },
        set timeval(val) {
          _time = uint32(val);
        },
        get timeHighByte() {
          return uint8(_time >>> 8);
        },
        get crc() {
          return _crc;
        },
        set crc(val) {
          _crc = uint32(val);
        },
        get compressedSize() {
          return _compressedSize;
        },
        set compressedSize(val) {
          _compressedSize = uint32(val);
        },
        get size() {
          return _size;
        },
        set size(val) {
          _size = uint32(val);
        },
        get fileNameLength() {
          return _fnameLen;
        },
        set fileNameLength(val) {
          _fnameLen = val;
        },
        get extraLength() {
          return _extraLen;
        },
        set extraLength(val) {
          _extraLen = val;
        },
        get extraLocalLength() {
          return _localHeader.extraLen;
        },
        set extraLocalLength(val) {
          _localHeader.extraLen = val;
        },
        get commentLength() {
          return _comLen;
        },
        set commentLength(val) {
          _comLen = val;
        },
        get diskNumStart() {
          return _diskStart;
        },
        set diskNumStart(val) {
          _diskStart = uint32(val);
        },
        get inAttr() {
          return _inattr;
        },
        set inAttr(val) {
          _inattr = uint32(val);
        },
        get attr() {
          return _attr;
        },
        set attr(val) {
          _attr = uint32(val);
        },
        // get Unix file permissions
        get fileAttr() {
          return (_attr || 0) >> 16 & 4095;
        },
        get offset() {
          return _offset;
        },
        set offset(val) {
          _offset = uint32(val);
        },
        get encrypted() {
          return (_flags & Constants.FLG_ENC) === Constants.FLG_ENC;
        },
        get centralHeaderSize() {
          return Constants.CENHDR + _fnameLen + _extraLen + _comLen;
        },
        get realDataOffset() {
          return _offset + Constants.LOCHDR + _localHeader.fnameLen + _localHeader.extraLen;
        },
        get localHeader() {
          return _localHeader;
        },
        loadLocalHeaderFromBinary: function(input) {
          var data = input.slice(_offset, _offset + Constants.LOCHDR);
          if (data.readUInt32LE(0) !== Constants.LOCSIG) {
            throw Utils.Errors.INVALID_LOC();
          }
          _localHeader.version = data.readUInt16LE(Constants.LOCVER);
          _localHeader.flags = data.readUInt16LE(Constants.LOCFLG);
          _localHeader.method = data.readUInt16LE(Constants.LOCHOW);
          _localHeader.time = data.readUInt32LE(Constants.LOCTIM);
          _localHeader.crc = data.readUInt32LE(Constants.LOCCRC);
          _localHeader.compressedSize = data.readUInt32LE(Constants.LOCSIZ);
          _localHeader.size = data.readUInt32LE(Constants.LOCLEN);
          _localHeader.fnameLen = data.readUInt16LE(Constants.LOCNAM);
          _localHeader.extraLen = data.readUInt16LE(Constants.LOCEXT);
          const extraStart = _offset + Constants.LOCHDR + _localHeader.fnameLen;
          const extraEnd = extraStart + _localHeader.extraLen;
          return input.slice(extraStart, extraEnd);
        },
        loadFromBinary: function(data) {
          if (data.length !== Constants.CENHDR || data.readUInt32LE(0) !== Constants.CENSIG) {
            throw Utils.Errors.INVALID_CEN();
          }
          _verMade = data.readUInt16LE(Constants.CENVEM);
          _version = data.readUInt16LE(Constants.CENVER);
          _flags = data.readUInt16LE(Constants.CENFLG);
          _method = data.readUInt16LE(Constants.CENHOW);
          _time = data.readUInt32LE(Constants.CENTIM);
          _crc = data.readUInt32LE(Constants.CENCRC);
          _compressedSize = data.readUInt32LE(Constants.CENSIZ);
          _size = data.readUInt32LE(Constants.CENLEN);
          _fnameLen = data.readUInt16LE(Constants.CENNAM);
          _extraLen = data.readUInt16LE(Constants.CENEXT);
          _comLen = data.readUInt16LE(Constants.CENCOM);
          _diskStart = data.readUInt16LE(Constants.CENDSK);
          _inattr = data.readUInt16LE(Constants.CENATT);
          _attr = data.readUInt32LE(Constants.CENATX);
          _offset = data.readUInt32LE(Constants.CENOFF);
        },
        localHeaderToBinary: function() {
          var data = Buffer.alloc(Constants.LOCHDR);
          data.writeUInt32LE(Constants.LOCSIG, 0);
          data.writeUInt16LE(_version, Constants.LOCVER);
          data.writeUInt16LE(_flags, Constants.LOCFLG);
          data.writeUInt16LE(_method, Constants.LOCHOW);
          data.writeUInt32LE(_time, Constants.LOCTIM);
          data.writeUInt32LE(_crc, Constants.LOCCRC);
          data.writeUInt32LE(_compressedSize, Constants.LOCSIZ);
          data.writeUInt32LE(_size, Constants.LOCLEN);
          data.writeUInt16LE(_fnameLen, Constants.LOCNAM);
          data.writeUInt16LE(_localHeader.extraLen, Constants.LOCEXT);
          return data;
        },
        centralHeaderToBinary: function() {
          var data = Buffer.alloc(Constants.CENHDR + _fnameLen + _extraLen + _comLen);
          data.writeUInt32LE(Constants.CENSIG, 0);
          data.writeUInt16LE(_verMade, Constants.CENVEM);
          data.writeUInt16LE(_version, Constants.CENVER);
          data.writeUInt16LE(_flags, Constants.CENFLG);
          data.writeUInt16LE(_method, Constants.CENHOW);
          data.writeUInt32LE(_time, Constants.CENTIM);
          data.writeUInt32LE(_crc, Constants.CENCRC);
          data.writeUInt32LE(_compressedSize, Constants.CENSIZ);
          data.writeUInt32LE(_size, Constants.CENLEN);
          data.writeUInt16LE(_fnameLen, Constants.CENNAM);
          data.writeUInt16LE(_extraLen, Constants.CENEXT);
          data.writeUInt16LE(_comLen, Constants.CENCOM);
          data.writeUInt16LE(_diskStart, Constants.CENDSK);
          data.writeUInt16LE(_inattr, Constants.CENATT);
          data.writeUInt32LE(_attr, Constants.CENATX);
          data.writeUInt32LE(_offset, Constants.CENOFF);
          return data;
        },
        toJSON: function() {
          const bytes = function(nr2) {
            return nr2 + " bytes";
          };
          return {
            made: _verMade,
            version: _version,
            flags: _flags,
            method: Utils.methodToString(_method),
            time: this.time,
            crc: "0x" + _crc.toString(16).toUpperCase(),
            compressedSize: bytes(_compressedSize),
            size: bytes(_size),
            fileNameLength: bytes(_fnameLen),
            extraLength: bytes(_extraLen),
            commentLength: bytes(_comLen),
            diskNumStart: _diskStart,
            inAttr: _inattr,
            attr: _attr,
            offset: _offset,
            centralHeaderSize: bytes(Constants.CENHDR + _fnameLen + _extraLen + _comLen)
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});
var require_mainHeader = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/mainHeader.js"(exports2, module2) {
    var Utils = require_util2();
    var Constants = Utils.Constants;
    module2.exports = function() {
      var _volumeEntries = 0, _totalEntries = 0, _size = 0, _offset = 0, _commentLength = 0;
      return {
        get diskEntries() {
          return _volumeEntries;
        },
        set diskEntries(val) {
          _volumeEntries = _totalEntries = val;
        },
        get totalEntries() {
          return _totalEntries;
        },
        set totalEntries(val) {
          _totalEntries = _volumeEntries = val;
        },
        get size() {
          return _size;
        },
        set size(val) {
          _size = val;
        },
        get offset() {
          return _offset;
        },
        set offset(val) {
          _offset = val;
        },
        get commentLength() {
          return _commentLength;
        },
        set commentLength(val) {
          _commentLength = val;
        },
        get mainHeaderSize() {
          return Constants.ENDHDR + _commentLength;
        },
        loadFromBinary: function(data) {
          if ((data.length !== Constants.ENDHDR || data.readUInt32LE(0) !== Constants.ENDSIG) && (data.length < Constants.ZIP64HDR || data.readUInt32LE(0) !== Constants.ZIP64SIG)) {
            throw Utils.Errors.INVALID_END();
          }
          if (data.readUInt32LE(0) === Constants.ENDSIG) {
            _volumeEntries = data.readUInt16LE(Constants.ENDSUB);
            _totalEntries = data.readUInt16LE(Constants.ENDTOT);
            _size = data.readUInt32LE(Constants.ENDSIZ);
            _offset = data.readUInt32LE(Constants.ENDOFF);
            _commentLength = data.readUInt16LE(Constants.ENDCOM);
          } else {
            _volumeEntries = Utils.readBigUInt64LE(data, Constants.ZIP64SUB);
            _totalEntries = Utils.readBigUInt64LE(data, Constants.ZIP64TOT);
            _size = Utils.readBigUInt64LE(data, Constants.ZIP64SIZE);
            _offset = Utils.readBigUInt64LE(data, Constants.ZIP64OFF);
            _commentLength = 0;
          }
        },
        toBinary: function() {
          var b2 = Buffer.alloc(Constants.ENDHDR + _commentLength);
          b2.writeUInt32LE(Constants.ENDSIG, 0);
          b2.writeUInt32LE(0, 4);
          b2.writeUInt16LE(_volumeEntries, Constants.ENDSUB);
          b2.writeUInt16LE(_totalEntries, Constants.ENDTOT);
          b2.writeUInt32LE(_size, Constants.ENDSIZ);
          b2.writeUInt32LE(_offset, Constants.ENDOFF);
          b2.writeUInt16LE(_commentLength, Constants.ENDCOM);
          b2.fill(" ", Constants.ENDHDR);
          return b2;
        },
        toJSON: function() {
          const offset = function(nr2, len) {
            let offs = nr2.toString(16).toUpperCase();
            while (offs.length < len) offs = "0" + offs;
            return "0x" + offs;
          };
          return {
            diskEntries: _volumeEntries,
            totalEntries: _totalEntries,
            size: _size + " bytes",
            offset: offset(_offset, 4),
            commentLength: _commentLength
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});
var require_headers = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/headers/index.js"(exports2) {
    exports2.EntryHeader = require_entryHeader();
    exports2.MainHeader = require_mainHeader();
  }
});
var require_deflater = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/deflater.js"(exports2, module2) {
    module2.exports = function(inbuf) {
      var zlib4 = __require("zlib");
      var opts = { chunkSize: (parseInt(inbuf.length / 1024) + 1) * 1024 };
      return {
        deflate: function() {
          return zlib4.deflateRawSync(inbuf, opts);
        },
        deflateAsync: function(callback) {
          var tmp = zlib4.createDeflateRaw(opts), parts = [], total = 0;
          tmp.on("data", function(data) {
            parts.push(data);
            total += data.length;
          });
          tmp.on("end", function() {
            var buf = Buffer.alloc(total), written = 0;
            buf.fill(0);
            for (var i22 = 0; i22 < parts.length; i22++) {
              var part = parts[i22];
              part.copy(buf, written);
              written += part.length;
            }
            callback && callback(buf);
          });
          tmp.end(inbuf);
        }
      };
    };
  }
});
var require_inflater = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/inflater.js"(exports2, module2) {
    var version = +(process.versions ? process.versions.node : "").split(".")[0] || 0;
    module2.exports = function(inbuf, expectedLength) {
      var zlib4 = __require("zlib");
      const option2 = version >= 15 && expectedLength > 0 ? { maxOutputLength: expectedLength } : {};
      return {
        inflate: function() {
          return zlib4.inflateRawSync(inbuf, option2);
        },
        inflateAsync: function(callback) {
          var tmp = zlib4.createInflateRaw(option2), parts = [], total = 0;
          tmp.on("data", function(data) {
            parts.push(data);
            total += data.length;
          });
          tmp.on("end", function() {
            var buf = Buffer.alloc(total), written = 0;
            buf.fill(0);
            for (var i22 = 0; i22 < parts.length; i22++) {
              var part = parts[i22];
              part.copy(buf, written);
              written += part.length;
            }
            callback && callback(buf);
          });
          tmp.end(inbuf);
        }
      };
    };
  }
});
var require_zipcrypto = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/zipcrypto.js"(exports2, module2) {
    "use strict";
    var { randomFillSync } = __require("crypto");
    var Errors = require_errors3();
    var crctable = new Uint32Array(256).map((t9, crc) => {
      for (let j2 = 0; j2 < 8; j2++) {
        if (0 !== (crc & 1)) {
          crc = crc >>> 1 ^ 3988292384;
        } else {
          crc >>>= 1;
        }
      }
      return crc >>> 0;
    });
    var uMul = (a2, b2) => Math.imul(a2, b2) >>> 0;
    var crc32update = (pCrc32, bval) => {
      return crctable[(pCrc32 ^ bval) & 255] ^ pCrc32 >>> 8;
    };
    var genSalt = () => {
      if ("function" === typeof randomFillSync) {
        return randomFillSync(Buffer.alloc(12));
      } else {
        return genSalt.node();
      }
    };
    genSalt.node = () => {
      const salt = Buffer.alloc(12);
      const len = salt.length;
      for (let i22 = 0; i22 < len; i22++) salt[i22] = Math.random() * 256 & 255;
      return salt;
    };
    var config = {
      genSalt
    };
    function Initkeys(pw) {
      const pass = Buffer.isBuffer(pw) ? pw : Buffer.from(pw);
      this.keys = new Uint32Array([305419896, 591751049, 878082192]);
      for (let i22 = 0; i22 < pass.length; i22++) {
        this.updateKeys(pass[i22]);
      }
    }
    Initkeys.prototype.updateKeys = function(byteValue) {
      const keys = this.keys;
      keys[0] = crc32update(keys[0], byteValue);
      keys[1] += keys[0] & 255;
      keys[1] = uMul(keys[1], 134775813) + 1;
      keys[2] = crc32update(keys[2], keys[1] >>> 24);
      return byteValue;
    };
    Initkeys.prototype.next = function() {
      const k3 = (this.keys[2] | 2) >>> 0;
      return uMul(k3, k3 ^ 1) >> 8 & 255;
    };
    function make_decrypter(pwd) {
      const keys = new Initkeys(pwd);
      return function(data) {
        const result = Buffer.alloc(data.length);
        let pos = 0;
        for (let c3 of data) {
          result[pos++] = keys.updateKeys(c3 ^ keys.next());
        }
        return result;
      };
    }
    function make_encrypter(pwd) {
      const keys = new Initkeys(pwd);
      return function(data, result, pos = 0) {
        if (!result) result = Buffer.alloc(data.length);
        for (let c3 of data) {
          const k3 = keys.next();
          result[pos++] = c3 ^ k3;
          keys.updateKeys(c3);
        }
        return result;
      };
    }
    function decrypt(data, header2, pwd) {
      if (!data || !Buffer.isBuffer(data) || data.length < 12) {
        return Buffer.alloc(0);
      }
      const decrypter = make_decrypter(pwd);
      const salt = decrypter(data.slice(0, 12));
      const verifyByte = (header2.flags & 8) === 8 ? header2.timeHighByte : header2.crc >>> 24;
      if (salt[11] !== verifyByte) {
        throw Errors.WRONG_PASSWORD();
      }
      return decrypter(data.slice(12));
    }
    function _salter(data) {
      if (Buffer.isBuffer(data) && data.length >= 12) {
        config.genSalt = function() {
          return data.slice(0, 12);
        };
      } else if (data === "node") {
        config.genSalt = genSalt.node;
      } else {
        config.genSalt = genSalt;
      }
    }
    function encrypt(data, header2, pwd, oldlike = false) {
      if (data == null) data = Buffer.alloc(0);
      if (!Buffer.isBuffer(data)) data = Buffer.from(data.toString());
      const encrypter = make_encrypter(pwd);
      const salt = config.genSalt();
      salt[11] = header2.crc >>> 24 & 255;
      if (oldlike) salt[10] = header2.crc >>> 16 & 255;
      const result = Buffer.alloc(data.length + 12);
      encrypter(salt, result);
      return encrypter(data, result, 12);
    }
    module2.exports = { decrypt, encrypt, _salter };
  }
});
var require_methods = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/methods/index.js"(exports2) {
    exports2.Deflater = require_deflater();
    exports2.Inflater = require_inflater();
    exports2.ZipCrypto = require_zipcrypto();
  }
});
var require_zipEntry = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/zipEntry.js"(exports2, module2) {
    var Utils = require_util2();
    var Headers = require_headers();
    var Constants = Utils.Constants;
    var Methods = require_methods();
    module2.exports = function(options, input) {
      var _centralHeader = new Headers.EntryHeader(), _entryName = Buffer.alloc(0), _comment = Buffer.alloc(0), _isDirectory = false, uncompressedData = null, _extra = Buffer.alloc(0), _extralocal = Buffer.alloc(0), _efs = true;
      const opts = options;
      const decoder2 = typeof opts.decoder === "object" ? opts.decoder : Utils.decoder;
      _efs = decoder2.hasOwnProperty("efs") ? decoder2.efs : false;
      function getCompressedDataFromZip() {
        if (!input || !(input instanceof Uint8Array)) {
          return Buffer.alloc(0);
        }
        _extralocal = _centralHeader.loadLocalHeaderFromBinary(input);
        return input.slice(_centralHeader.realDataOffset, _centralHeader.realDataOffset + _centralHeader.compressedSize);
      }
      function crc32OK(data) {
        if (!_centralHeader.flags_desc) {
          if (Utils.crc32(data) !== _centralHeader.localHeader.crc) {
            return false;
          }
        } else {
          const descriptor = {};
          const dataEndOffset = _centralHeader.realDataOffset + _centralHeader.compressedSize;
          if (input.readUInt32LE(dataEndOffset) == Constants.LOCSIG || input.readUInt32LE(dataEndOffset) == Constants.CENSIG) {
            throw Utils.Errors.DESCRIPTOR_NOT_EXIST();
          }
          if (input.readUInt32LE(dataEndOffset) == Constants.EXTSIG) {
            descriptor.crc = input.readUInt32LE(dataEndOffset + Constants.EXTCRC);
            descriptor.compressedSize = input.readUInt32LE(dataEndOffset + Constants.EXTSIZ);
            descriptor.size = input.readUInt32LE(dataEndOffset + Constants.EXTLEN);
          } else if (input.readUInt16LE(dataEndOffset + 12) === 19280) {
            descriptor.crc = input.readUInt32LE(dataEndOffset + Constants.EXTCRC - 4);
            descriptor.compressedSize = input.readUInt32LE(dataEndOffset + Constants.EXTSIZ - 4);
            descriptor.size = input.readUInt32LE(dataEndOffset + Constants.EXTLEN - 4);
          } else {
            throw Utils.Errors.DESCRIPTOR_UNKNOWN();
          }
          if (descriptor.compressedSize !== _centralHeader.compressedSize || descriptor.size !== _centralHeader.size || descriptor.crc !== _centralHeader.crc) {
            throw Utils.Errors.DESCRIPTOR_FAULTY();
          }
          if (Utils.crc32(data) !== descriptor.crc) {
            return false;
          }
        }
        return true;
      }
      function decompress(async, callback, pass) {
        if (typeof callback === "undefined" && typeof async === "string") {
          pass = async;
          async = void 0;
        }
        if (_isDirectory) {
          if (async && callback) {
            callback(Buffer.alloc(0), Utils.Errors.DIRECTORY_CONTENT_ERROR());
          }
          return Buffer.alloc(0);
        }
        var compressedData = getCompressedDataFromZip();
        if (compressedData.length === 0) {
          if (async && callback) callback(compressedData);
          return compressedData;
        }
        if (_centralHeader.encrypted) {
          if ("string" !== typeof pass && !Buffer.isBuffer(pass)) {
            throw Utils.Errors.INVALID_PASS_PARAM();
          }
          compressedData = Methods.ZipCrypto.decrypt(compressedData, _centralHeader, pass);
        }
        var data = Buffer.alloc(_centralHeader.size);
        switch (_centralHeader.method) {
          case Utils.Constants.STORED:
            compressedData.copy(data);
            if (!crc32OK(data)) {
              if (async && callback) callback(data, Utils.Errors.BAD_CRC());
              throw Utils.Errors.BAD_CRC();
            } else {
              if (async && callback) callback(data);
              return data;
            }
          case Utils.Constants.DEFLATED:
            var inflater = new Methods.Inflater(compressedData, _centralHeader.size);
            if (!async) {
              const result = inflater.inflate(data);
              result.copy(data, 0);
              if (!crc32OK(data)) {
                throw Utils.Errors.BAD_CRC(`"${decoder2.decode(_entryName)}"`);
              }
              return data;
            } else {
              inflater.inflateAsync(function(result) {
                result.copy(result, 0);
                if (callback) {
                  if (!crc32OK(result)) {
                    callback(result, Utils.Errors.BAD_CRC());
                  } else {
                    callback(result);
                  }
                }
              });
            }
            break;
          default:
            if (async && callback) callback(Buffer.alloc(0), Utils.Errors.UNKNOWN_METHOD());
            throw Utils.Errors.UNKNOWN_METHOD();
        }
      }
      function compress(async, callback) {
        if ((!uncompressedData || !uncompressedData.length) && Buffer.isBuffer(input)) {
          if (async && callback) callback(getCompressedDataFromZip());
          return getCompressedDataFromZip();
        }
        if (uncompressedData.length && !_isDirectory) {
          var compressedData;
          switch (_centralHeader.method) {
            case Utils.Constants.STORED:
              _centralHeader.compressedSize = _centralHeader.size;
              compressedData = Buffer.alloc(uncompressedData.length);
              uncompressedData.copy(compressedData);
              if (async && callback) callback(compressedData);
              return compressedData;
            default:
            case Utils.Constants.DEFLATED:
              var deflater = new Methods.Deflater(uncompressedData);
              if (!async) {
                var deflated = deflater.deflate();
                _centralHeader.compressedSize = deflated.length;
                return deflated;
              } else {
                deflater.deflateAsync(function(data) {
                  compressedData = Buffer.alloc(data.length);
                  _centralHeader.compressedSize = data.length;
                  data.copy(compressedData);
                  callback && callback(compressedData);
                });
              }
              deflater = null;
              break;
          }
        } else if (async && callback) {
          callback(Buffer.alloc(0));
        } else {
          return Buffer.alloc(0);
        }
      }
      function readUInt64LE(buffer, offset) {
        return (buffer.readUInt32LE(offset + 4) << 4) + buffer.readUInt32LE(offset);
      }
      function parseExtra(data) {
        try {
          var offset = 0;
          var signature, size, part;
          while (offset + 4 < data.length) {
            signature = data.readUInt16LE(offset);
            offset += 2;
            size = data.readUInt16LE(offset);
            offset += 2;
            part = data.slice(offset, offset + size);
            offset += size;
            if (Constants.ID_ZIP64 === signature) {
              parseZip64ExtendedInformation(part);
            }
          }
        } catch (error) {
          throw Utils.Errors.EXTRA_FIELD_PARSE_ERROR();
        }
      }
      function parseZip64ExtendedInformation(data) {
        var size, compressedSize, offset, diskNumStart;
        if (data.length >= Constants.EF_ZIP64_SCOMP) {
          size = readUInt64LE(data, Constants.EF_ZIP64_SUNCOMP);
          if (_centralHeader.size === Constants.EF_ZIP64_OR_32) {
            _centralHeader.size = size;
          }
        }
        if (data.length >= Constants.EF_ZIP64_RHO) {
          compressedSize = readUInt64LE(data, Constants.EF_ZIP64_SCOMP);
          if (_centralHeader.compressedSize === Constants.EF_ZIP64_OR_32) {
            _centralHeader.compressedSize = compressedSize;
          }
        }
        if (data.length >= Constants.EF_ZIP64_DSN) {
          offset = readUInt64LE(data, Constants.EF_ZIP64_RHO);
          if (_centralHeader.offset === Constants.EF_ZIP64_OR_32) {
            _centralHeader.offset = offset;
          }
        }
        if (data.length >= Constants.EF_ZIP64_DSN + 4) {
          diskNumStart = data.readUInt32LE(Constants.EF_ZIP64_DSN);
          if (_centralHeader.diskNumStart === Constants.EF_ZIP64_OR_16) {
            _centralHeader.diskNumStart = diskNumStart;
          }
        }
      }
      return {
        get entryName() {
          return decoder2.decode(_entryName);
        },
        get rawEntryName() {
          return _entryName;
        },
        set entryName(val) {
          _entryName = Utils.toBuffer(val, decoder2.encode);
          var lastChar = _entryName[_entryName.length - 1];
          _isDirectory = lastChar === 47 || lastChar === 92;
          _centralHeader.fileNameLength = _entryName.length;
        },
        get efs() {
          if (typeof _efs === "function") {
            return _efs(this.entryName);
          } else {
            return _efs;
          }
        },
        get extra() {
          return _extra;
        },
        set extra(val) {
          _extra = val;
          _centralHeader.extraLength = val.length;
          parseExtra(val);
        },
        get comment() {
          return decoder2.decode(_comment);
        },
        set comment(val) {
          _comment = Utils.toBuffer(val, decoder2.encode);
          _centralHeader.commentLength = _comment.length;
          if (_comment.length > 65535) throw Utils.Errors.COMMENT_TOO_LONG();
        },
        get name() {
          var n22 = decoder2.decode(_entryName);
          return _isDirectory ? n22.substr(n22.length - 1).split("/").pop() : n22.split("/").pop();
        },
        get isDirectory() {
          return _isDirectory;
        },
        getCompressedData: function() {
          return compress(false, null);
        },
        getCompressedDataAsync: function(callback) {
          compress(true, callback);
        },
        setData: function(value) {
          uncompressedData = Utils.toBuffer(value, Utils.decoder.encode);
          if (!_isDirectory && uncompressedData.length) {
            _centralHeader.size = uncompressedData.length;
            _centralHeader.method = Utils.Constants.DEFLATED;
            _centralHeader.crc = Utils.crc32(value);
            _centralHeader.changed = true;
          } else {
            _centralHeader.method = Utils.Constants.STORED;
          }
        },
        getData: function(pass) {
          if (_centralHeader.changed) {
            return uncompressedData;
          } else {
            return decompress(false, null, pass);
          }
        },
        getDataAsync: function(callback, pass) {
          if (_centralHeader.changed) {
            callback(uncompressedData);
          } else {
            decompress(true, callback, pass);
          }
        },
        set attr(attr) {
          _centralHeader.attr = attr;
        },
        get attr() {
          return _centralHeader.attr;
        },
        set header(data) {
          _centralHeader.loadFromBinary(data);
        },
        get header() {
          return _centralHeader;
        },
        packCentralHeader: function() {
          _centralHeader.flags_efs = this.efs;
          _centralHeader.extraLength = _extra.length;
          var header2 = _centralHeader.centralHeaderToBinary();
          var addpos = Utils.Constants.CENHDR;
          _entryName.copy(header2, addpos);
          addpos += _entryName.length;
          _extra.copy(header2, addpos);
          addpos += _centralHeader.extraLength;
          _comment.copy(header2, addpos);
          return header2;
        },
        packLocalHeader: function() {
          let addpos = 0;
          _centralHeader.flags_efs = this.efs;
          _centralHeader.extraLocalLength = _extralocal.length;
          const localHeaderBuf = _centralHeader.localHeaderToBinary();
          const localHeader = Buffer.alloc(localHeaderBuf.length + _entryName.length + _centralHeader.extraLocalLength);
          localHeaderBuf.copy(localHeader, addpos);
          addpos += localHeaderBuf.length;
          _entryName.copy(localHeader, addpos);
          addpos += _entryName.length;
          _extralocal.copy(localHeader, addpos);
          addpos += _extralocal.length;
          return localHeader;
        },
        toJSON: function() {
          const bytes = function(nr2) {
            return "<" + (nr2 && nr2.length + " bytes buffer" || "null") + ">";
          };
          return {
            entryName: this.entryName,
            name: this.name,
            comment: this.comment,
            isDirectory: this.isDirectory,
            header: _centralHeader.toJSON(),
            compressedData: bytes(input),
            data: bytes(uncompressedData)
          };
        },
        toString: function() {
          return JSON.stringify(this.toJSON(), null, "	");
        }
      };
    };
  }
});
var require_zipFile = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/zipFile.js"(exports2, module2) {
    var ZipEntry = require_zipEntry();
    var Headers = require_headers();
    var Utils = require_util2();
    module2.exports = function(inBuffer, options) {
      var entryList = [], entryTable = {}, _comment = Buffer.alloc(0), mainHeader = new Headers.MainHeader(), loadedEntries = false;
      var password = null;
      const temporary = /* @__PURE__ */ new Set();
      const opts = options;
      const { noSort, decoder: decoder2 } = opts;
      if (inBuffer) {
        readMainHeader(opts.readEntries);
      } else {
        loadedEntries = true;
      }
      function makeTemporaryFolders() {
        const foldersList = /* @__PURE__ */ new Set();
        for (const elem of Object.keys(entryTable)) {
          const elements = elem.split("/");
          elements.pop();
          if (!elements.length) continue;
          for (let i22 = 0; i22 < elements.length; i22++) {
            const sub = elements.slice(0, i22 + 1).join("/") + "/";
            foldersList.add(sub);
          }
        }
        for (const elem of foldersList) {
          if (!(elem in entryTable)) {
            const tempfolder = new ZipEntry(opts);
            tempfolder.entryName = elem;
            tempfolder.attr = 16;
            tempfolder.temporary = true;
            entryList.push(tempfolder);
            entryTable[tempfolder.entryName] = tempfolder;
            temporary.add(tempfolder);
          }
        }
      }
      function readEntries() {
        loadedEntries = true;
        entryTable = {};
        if (mainHeader.diskEntries > (inBuffer.length - mainHeader.offset) / Utils.Constants.CENHDR) {
          throw Utils.Errors.DISK_ENTRY_TOO_LARGE();
        }
        entryList = new Array(mainHeader.diskEntries);
        var index = mainHeader.offset;
        for (var i22 = 0; i22 < entryList.length; i22++) {
          var tmp = index, entry = new ZipEntry(opts, inBuffer);
          entry.header = inBuffer.slice(tmp, tmp += Utils.Constants.CENHDR);
          entry.entryName = inBuffer.slice(tmp, tmp += entry.header.fileNameLength);
          if (entry.header.extraLength) {
            entry.extra = inBuffer.slice(tmp, tmp += entry.header.extraLength);
          }
          if (entry.header.commentLength) entry.comment = inBuffer.slice(tmp, tmp + entry.header.commentLength);
          index += entry.header.centralHeaderSize;
          entryList[i22] = entry;
          entryTable[entry.entryName] = entry;
        }
        temporary.clear();
        makeTemporaryFolders();
      }
      function readMainHeader(readNow) {
        var i22 = inBuffer.length - Utils.Constants.ENDHDR, max2 = Math.max(0, i22 - 65535), n22 = max2, endStart = inBuffer.length, endOffset = -1, commentEnd = 0;
        const trailingSpace = typeof opts.trailingSpace === "boolean" ? opts.trailingSpace : false;
        if (trailingSpace) max2 = 0;
        for (i22; i22 >= n22; i22--) {
          if (inBuffer[i22] !== 80) continue;
          if (inBuffer.readUInt32LE(i22) === Utils.Constants.ENDSIG) {
            endOffset = i22;
            commentEnd = i22;
            endStart = i22 + Utils.Constants.ENDHDR;
            n22 = i22 - Utils.Constants.END64HDR;
            continue;
          }
          if (inBuffer.readUInt32LE(i22) === Utils.Constants.END64SIG) {
            n22 = max2;
            continue;
          }
          if (inBuffer.readUInt32LE(i22) === Utils.Constants.ZIP64SIG) {
            endOffset = i22;
            endStart = i22 + Utils.readBigUInt64LE(inBuffer, i22 + Utils.Constants.ZIP64SIZE) + Utils.Constants.ZIP64LEAD;
            break;
          }
        }
        if (endOffset == -1) throw Utils.Errors.INVALID_FORMAT();
        mainHeader.loadFromBinary(inBuffer.slice(endOffset, endStart));
        if (mainHeader.commentLength) {
          _comment = inBuffer.slice(commentEnd + Utils.Constants.ENDHDR);
        }
        if (readNow) readEntries();
      }
      function sortEntries() {
        if (entryList.length > 1 && !noSort) {
          entryList.sort((a2, b2) => a2.entryName.toLowerCase().localeCompare(b2.entryName.toLowerCase()));
        }
      }
      return {
        /**
         * Returns an array of ZipEntry objects existent in the current opened archive
         * @return Array
         */
        get entries() {
          if (!loadedEntries) {
            readEntries();
          }
          return entryList.filter((e2) => !temporary.has(e2));
        },
        /**
         * Archive comment
         * @return {String}
         */
        get comment() {
          return decoder2.decode(_comment);
        },
        set comment(val) {
          _comment = Utils.toBuffer(val, decoder2.encode);
          mainHeader.commentLength = _comment.length;
        },
        getEntryCount: function() {
          if (!loadedEntries) {
            return mainHeader.diskEntries;
          }
          return entryList.length;
        },
        forEach: function(callback) {
          this.entries.forEach(callback);
        },
        /**
         * Returns a reference to the entry with the given name or null if entry is inexistent
         *
         * @param entryName
         * @return ZipEntry
         */
        getEntry: function(entryName) {
          if (!loadedEntries) {
            readEntries();
          }
          return entryTable[entryName] || null;
        },
        /**
         * Adds the given entry to the entry list
         *
         * @param entry
         */
        setEntry: function(entry) {
          if (!loadedEntries) {
            readEntries();
          }
          entryList.push(entry);
          entryTable[entry.entryName] = entry;
          mainHeader.totalEntries = entryList.length;
        },
        /**
         * Removes the file with the given name from the entry list.
         *
         * If the entry is a directory, then all nested files and directories will be removed
         * @param entryName
         * @returns {void}
         */
        deleteFile: function(entryName, withsubfolders = true) {
          if (!loadedEntries) {
            readEntries();
          }
          const entry = entryTable[entryName];
          const list = this.getEntryChildren(entry, withsubfolders).map((child) => child.entryName);
          list.forEach(this.deleteEntry);
        },
        /**
         * Removes the entry with the given name from the entry list.
         *
         * @param {string} entryName
         * @returns {void}
         */
        deleteEntry: function(entryName) {
          if (!loadedEntries) {
            readEntries();
          }
          const entry = entryTable[entryName];
          const index = entryList.indexOf(entry);
          if (index >= 0) {
            entryList.splice(index, 1);
            delete entryTable[entryName];
            mainHeader.totalEntries = entryList.length;
          }
        },
        /**
         *  Iterates and returns all nested files and directories of the given entry
         *
         * @param entry
         * @return Array
         */
        getEntryChildren: function(entry, subfolders = true) {
          if (!loadedEntries) {
            readEntries();
          }
          if (typeof entry === "object") {
            if (entry.isDirectory && subfolders) {
              const list = [];
              const name2 = entry.entryName;
              for (const zipEntry of entryList) {
                if (zipEntry.entryName.startsWith(name2)) {
                  list.push(zipEntry);
                }
              }
              return list;
            } else {
              return [entry];
            }
          }
          return [];
        },
        /**
         *  How many child elements entry has
         *
         * @param {ZipEntry} entry
         * @return {integer}
         */
        getChildCount: function(entry) {
          if (entry && entry.isDirectory) {
            const list = this.getEntryChildren(entry);
            return list.includes(entry) ? list.length - 1 : list.length;
          }
          return 0;
        },
        /**
         * Returns the zip file
         *
         * @return Buffer
         */
        compressToBuffer: function() {
          if (!loadedEntries) {
            readEntries();
          }
          sortEntries();
          const dataBlock = [];
          const headerBlocks = [];
          let totalSize = 0;
          let dindex = 0;
          mainHeader.size = 0;
          mainHeader.offset = 0;
          let totalEntries = 0;
          for (const entry of this.entries) {
            const compressedData = entry.getCompressedData();
            entry.header.offset = dindex;
            const localHeader = entry.packLocalHeader();
            const dataLength = localHeader.length + compressedData.length;
            dindex += dataLength;
            dataBlock.push(localHeader);
            dataBlock.push(compressedData);
            const centralHeader = entry.packCentralHeader();
            headerBlocks.push(centralHeader);
            mainHeader.size += centralHeader.length;
            totalSize += dataLength + centralHeader.length;
            totalEntries++;
          }
          totalSize += mainHeader.mainHeaderSize;
          mainHeader.offset = dindex;
          mainHeader.totalEntries = totalEntries;
          dindex = 0;
          const outBuffer = Buffer.alloc(totalSize);
          for (const content2 of dataBlock) {
            content2.copy(outBuffer, dindex);
            dindex += content2.length;
          }
          for (const content2 of headerBlocks) {
            content2.copy(outBuffer, dindex);
            dindex += content2.length;
          }
          const mh = mainHeader.toBinary();
          if (_comment) {
            _comment.copy(mh, Utils.Constants.ENDHDR);
          }
          mh.copy(outBuffer, dindex);
          inBuffer = outBuffer;
          loadedEntries = false;
          return outBuffer;
        },
        toAsyncBuffer: function(onSuccess, onFail, onItemStart, onItemEnd) {
          try {
            if (!loadedEntries) {
              readEntries();
            }
            sortEntries();
            const dataBlock = [];
            const centralHeaders = [];
            let totalSize = 0;
            let dindex = 0;
            let totalEntries = 0;
            mainHeader.size = 0;
            mainHeader.offset = 0;
            const compress2Buffer = function(entryLists) {
              if (entryLists.length > 0) {
                const entry = entryLists.shift();
                const name2 = entry.entryName + entry.extra.toString();
                if (onItemStart) onItemStart(name2);
                entry.getCompressedDataAsync(function(compressedData) {
                  if (onItemEnd) onItemEnd(name2);
                  entry.header.offset = dindex;
                  const localHeader = entry.packLocalHeader();
                  const dataLength = localHeader.length + compressedData.length;
                  dindex += dataLength;
                  dataBlock.push(localHeader);
                  dataBlock.push(compressedData);
                  const centalHeader = entry.packCentralHeader();
                  centralHeaders.push(centalHeader);
                  mainHeader.size += centalHeader.length;
                  totalSize += dataLength + centalHeader.length;
                  totalEntries++;
                  compress2Buffer(entryLists);
                });
              } else {
                totalSize += mainHeader.mainHeaderSize;
                mainHeader.offset = dindex;
                mainHeader.totalEntries = totalEntries;
                dindex = 0;
                const outBuffer = Buffer.alloc(totalSize);
                dataBlock.forEach(function(content2) {
                  content2.copy(outBuffer, dindex);
                  dindex += content2.length;
                });
                centralHeaders.forEach(function(content2) {
                  content2.copy(outBuffer, dindex);
                  dindex += content2.length;
                });
                const mh = mainHeader.toBinary();
                if (_comment) {
                  _comment.copy(mh, Utils.Constants.ENDHDR);
                }
                mh.copy(outBuffer, dindex);
                inBuffer = outBuffer;
                loadedEntries = false;
                onSuccess(outBuffer);
              }
            };
            compress2Buffer(Array.from(this.entries));
          } catch (e2) {
            onFail(e2);
          }
        }
      };
    };
  }
});
var require_adm_zip = __commonJS2({
  "../../node_modules/.pnpm/adm-zip@0.5.16/node_modules/adm-zip/adm-zip.js"(exports2, module2) {
    var Utils = require_util2();
    var pth = __require("path");
    var ZipEntry = require_zipEntry();
    var ZipFile = require_zipFile();
    var get_Bool = (...val) => Utils.findLast(val, (c3) => typeof c3 === "boolean");
    var get_Str = (...val) => Utils.findLast(val, (c3) => typeof c3 === "string");
    var get_Fun = (...val) => Utils.findLast(val, (c3) => typeof c3 === "function");
    var defaultOptions2 = {
      // option "noSort" : if true it disables files sorting
      noSort: false,
      // read entries during load (initial loading may be slower)
      readEntries: false,
      // default method is none
      method: Utils.Constants.NONE,
      // file system
      fs: null
    };
    module2.exports = function(input, options) {
      let inBuffer = null;
      const opts = Object.assign(/* @__PURE__ */ Object.create(null), defaultOptions2);
      if (input && "object" === typeof input) {
        if (!(input instanceof Uint8Array)) {
          Object.assign(opts, input);
          input = opts.input ? opts.input : void 0;
          if (opts.input) delete opts.input;
        }
        if (Buffer.isBuffer(input)) {
          inBuffer = input;
          opts.method = Utils.Constants.BUFFER;
          input = void 0;
        }
      }
      Object.assign(opts, options);
      const filetools = new Utils(opts);
      if (typeof opts.decoder !== "object" || typeof opts.decoder.encode !== "function" || typeof opts.decoder.decode !== "function") {
        opts.decoder = Utils.decoder;
      }
      if (input && "string" === typeof input) {
        if (filetools.fs.existsSync(input)) {
          opts.method = Utils.Constants.FILE;
          opts.filename = input;
          inBuffer = filetools.fs.readFileSync(input);
        } else {
          throw Utils.Errors.INVALID_FILENAME();
        }
      }
      const _zip = new ZipFile(inBuffer, opts);
      const { canonical, sanitize, zipnamefix } = Utils;
      function getEntry(entry) {
        if (entry && _zip) {
          var item;
          if (typeof entry === "string") item = _zip.getEntry(pth.posix.normalize(entry));
          if (typeof entry === "object" && typeof entry.entryName !== "undefined" && typeof entry.header !== "undefined") item = _zip.getEntry(entry.entryName);
          if (item) {
            return item;
          }
        }
        return null;
      }
      function fixPath(zipPath) {
        const { join: join22, normalize: normalize2, sep } = pth.posix;
        return join22(".", normalize2(sep + zipPath.split("\\").join(sep) + sep));
      }
      function filenameFilter(filterfn) {
        if (filterfn instanceof RegExp) {
          return /* @__PURE__ */ (function(rx) {
            return function(filename) {
              return rx.test(filename);
            };
          })(filterfn);
        } else if ("function" !== typeof filterfn) {
          return () => true;
        }
        return filterfn;
      }
      const relativePath = (local, entry) => {
        let lastChar = entry.slice(-1);
        lastChar = lastChar === filetools.sep ? filetools.sep : "";
        return pth.relative(local, entry) + lastChar;
      };
      return {
        /**
         * Extracts the given entry from the archive and returns the content as a Buffer object
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @param {Buffer|string} [pass] - password
         * @return Buffer or Null in case of error
         */
        readFile: function(entry, pass) {
          var item = getEntry(entry);
          return item && item.getData(pass) || null;
        },
        /**
         * Returns how many child elements has on entry (directories) on files it is always 0
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @returns {integer}
         */
        childCount: function(entry) {
          const item = getEntry(entry);
          if (item) {
            return _zip.getChildCount(item);
          }
        },
        /**
         * Asynchronous readFile
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @param {callback} callback
         *
         * @return Buffer or Null in case of error
         */
        readFileAsync: function(entry, callback) {
          var item = getEntry(entry);
          if (item) {
            item.getDataAsync(callback);
          } else {
            callback(null, "getEntry failed for:" + entry);
          }
        },
        /**
         * Extracts the given entry from the archive and returns the content as plain text in the given encoding
         * @param {ZipEntry|string} entry - ZipEntry object or String with the full path of the entry
         * @param {string} encoding - Optional. If no encoding is specified utf8 is used
         *
         * @return String
         */
        readAsText: function(entry, encoding) {
          var item = getEntry(entry);
          if (item) {
            var data = item.getData();
            if (data && data.length) {
              return data.toString(encoding || "utf8");
            }
          }
          return "";
        },
        /**
         * Asynchronous readAsText
         * @param {ZipEntry|string} entry ZipEntry object or String with the full path of the entry
         * @param {callback} callback
         * @param {string} [encoding] - Optional. If no encoding is specified utf8 is used
         *
         * @return String
         */
        readAsTextAsync: function(entry, callback, encoding) {
          var item = getEntry(entry);
          if (item) {
            item.getDataAsync(function(data, err2) {
              if (err2) {
                callback(data, err2);
                return;
              }
              if (data && data.length) {
                callback(data.toString(encoding || "utf8"));
              } else {
                callback("");
              }
            });
          } else {
            callback("");
          }
        },
        /**
         * Remove the entry from the file or the entry and all it's nested directories and files if the given entry is a directory
         *
         * @param {ZipEntry|string} entry
         * @returns {void}
         */
        deleteFile: function(entry, withsubfolders = true) {
          var item = getEntry(entry);
          if (item) {
            _zip.deleteFile(item.entryName, withsubfolders);
          }
        },
        /**
         * Remove the entry from the file or directory without affecting any nested entries
         *
         * @param {ZipEntry|string} entry
         * @returns {void}
         */
        deleteEntry: function(entry) {
          var item = getEntry(entry);
          if (item) {
            _zip.deleteEntry(item.entryName);
          }
        },
        /**
         * Adds a comment to the zip. The zip must be rewritten after adding the comment.
         *
         * @param {string} comment
         */
        addZipComment: function(comment) {
          _zip.comment = comment;
        },
        /**
         * Returns the zip comment
         *
         * @return String
         */
        getZipComment: function() {
          return _zip.comment || "";
        },
        /**
         * Adds a comment to a specified zipEntry. The zip must be rewritten after adding the comment
         * The comment cannot exceed 65535 characters in length
         *
         * @param {ZipEntry} entry
         * @param {string} comment
         */
        addZipEntryComment: function(entry, comment) {
          var item = getEntry(entry);
          if (item) {
            item.comment = comment;
          }
        },
        /**
         * Returns the comment of the specified entry
         *
         * @param {ZipEntry} entry
         * @return String
         */
        getZipEntryComment: function(entry) {
          var item = getEntry(entry);
          if (item) {
            return item.comment || "";
          }
          return "";
        },
        /**
         * Updates the content of an existing entry inside the archive. The zip must be rewritten after updating the content
         *
         * @param {ZipEntry} entry
         * @param {Buffer} content
         */
        updateFile: function(entry, content2) {
          var item = getEntry(entry);
          if (item) {
            item.setData(content2);
          }
        },
        /**
         * Adds a file from the disk to the archive
         *
         * @param {string} localPath File to add to zip
         * @param {string} [zipPath] Optional path inside the zip
         * @param {string} [zipName] Optional name for the file
         * @param {string} [comment] Optional file comment
         */
        addLocalFile: function(localPath2, zipPath, zipName, comment) {
          if (filetools.fs.existsSync(localPath2)) {
            zipPath = zipPath ? fixPath(zipPath) : "";
            const p = pth.win32.basename(pth.win32.normalize(localPath2));
            zipPath += zipName ? zipName : p;
            const _attr = filetools.fs.statSync(localPath2);
            const data = _attr.isFile() ? filetools.fs.readFileSync(localPath2) : Buffer.alloc(0);
            if (_attr.isDirectory()) zipPath += filetools.sep;
            this.addFile(zipPath, data, comment, _attr);
          } else {
            throw Utils.Errors.FILE_NOT_FOUND(localPath2);
          }
        },
        /**
         * Callback for showing if everything was done.
         *
         * @callback doneCallback
         * @param {Error} err - Error object
         * @param {boolean} done - was request fully completed
         */
        /**
         * Adds a file from the disk to the archive
         *
         * @param {(object|string)} options - options object, if it is string it us used as localPath.
         * @param {string} options.localPath - Local path to the file.
         * @param {string} [options.comment] - Optional file comment.
         * @param {string} [options.zipPath] - Optional path inside the zip
         * @param {string} [options.zipName] - Optional name for the file
         * @param {doneCallback} callback - The callback that handles the response.
         */
        addLocalFileAsync: function(options2, callback) {
          options2 = typeof options2 === "object" ? options2 : { localPath: options2 };
          const localPath2 = pth.resolve(options2.localPath);
          const { comment } = options2;
          let { zipPath, zipName } = options2;
          const self2 = this;
          filetools.fs.stat(localPath2, function(err2, stats) {
            if (err2) return callback(err2, false);
            zipPath = zipPath ? fixPath(zipPath) : "";
            const p = pth.win32.basename(pth.win32.normalize(localPath2));
            zipPath += zipName ? zipName : p;
            if (stats.isFile()) {
              filetools.fs.readFile(localPath2, function(err3, data) {
                if (err3) return callback(err3, false);
                self2.addFile(zipPath, data, comment, stats);
                return setImmediate(callback, void 0, true);
              });
            } else if (stats.isDirectory()) {
              zipPath += filetools.sep;
              self2.addFile(zipPath, Buffer.alloc(0), comment, stats);
              return setImmediate(callback, void 0, true);
            }
          });
        },
        /**
         * Adds a local directory and all its nested files and directories to the archive
         *
         * @param {string} localPath - local path to the folder
         * @param {string} [zipPath] - optional path inside zip
         * @param {(RegExp|function)} [filter] - optional RegExp or Function if files match will be included.
         */
        addLocalFolder: function(localPath2, zipPath, filter22) {
          filter22 = filenameFilter(filter22);
          zipPath = zipPath ? fixPath(zipPath) : "";
          localPath2 = pth.normalize(localPath2);
          if (filetools.fs.existsSync(localPath2)) {
            const items = filetools.findFiles(localPath2);
            const self2 = this;
            if (items.length) {
              for (const filepath of items) {
                const p = pth.join(zipPath, relativePath(localPath2, filepath));
                if (filter22(p)) {
                  self2.addLocalFile(filepath, pth.dirname(p));
                }
              }
            }
          } else {
            throw Utils.Errors.FILE_NOT_FOUND(localPath2);
          }
        },
        /**
         * Asynchronous addLocalFolder
         * @param {string} localPath
         * @param {callback} callback
         * @param {string} [zipPath] optional path inside zip
         * @param {RegExp|function} [filter] optional RegExp or Function if files match will
         *               be included.
         */
        addLocalFolderAsync: function(localPath2, callback, zipPath, filter22) {
          filter22 = filenameFilter(filter22);
          zipPath = zipPath ? fixPath(zipPath) : "";
          localPath2 = pth.normalize(localPath2);
          var self2 = this;
          filetools.fs.open(localPath2, "r", function(err2) {
            if (err2 && err2.code === "ENOENT") {
              callback(void 0, Utils.Errors.FILE_NOT_FOUND(localPath2));
            } else if (err2) {
              callback(void 0, err2);
            } else {
              var items = filetools.findFiles(localPath2);
              var i22 = -1;
              var next = function() {
                i22 += 1;
                if (i22 < items.length) {
                  var filepath = items[i22];
                  var p = relativePath(localPath2, filepath).split("\\").join("/");
                  p = p.normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^\x20-\x7E]/g, "");
                  if (filter22(p)) {
                    filetools.fs.stat(filepath, function(er0, stats) {
                      if (er0) callback(void 0, er0);
                      if (stats.isFile()) {
                        filetools.fs.readFile(filepath, function(er1, data) {
                          if (er1) {
                            callback(void 0, er1);
                          } else {
                            self2.addFile(zipPath + p, data, "", stats);
                            next();
                          }
                        });
                      } else {
                        self2.addFile(zipPath + p + "/", Buffer.alloc(0), "", stats);
                        next();
                      }
                    });
                  } else {
                    process.nextTick(() => {
                      next();
                    });
                  }
                } else {
                  callback(true, void 0);
                }
              };
              next();
            }
          });
        },
        /**
         * Adds a local directory and all its nested files and directories to the archive
         *
         * @param {object | string} options - options object, if it is string it us used as localPath.
         * @param {string} options.localPath - Local path to the folder.
         * @param {string} [options.zipPath] - optional path inside zip.
         * @param {RegExp|function} [options.filter] - optional RegExp or Function if files match will be included.
         * @param {function|string} [options.namefix] - optional function to help fix filename
         * @param {doneCallback} callback - The callback that handles the response.
         *
         */
        addLocalFolderAsync2: function(options2, callback) {
          const self2 = this;
          options2 = typeof options2 === "object" ? options2 : { localPath: options2 };
          localPath = pth.resolve(fixPath(options2.localPath));
          let { zipPath, filter: filter22, namefix } = options2;
          if (filter22 instanceof RegExp) {
            filter22 = /* @__PURE__ */ (function(rx) {
              return function(filename) {
                return rx.test(filename);
              };
            })(filter22);
          } else if ("function" !== typeof filter22) {
            filter22 = function() {
              return true;
            };
          }
          zipPath = zipPath ? fixPath(zipPath) : "";
          if (namefix == "latin1") {
            namefix = (str) => str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^\x20-\x7E]/g, "");
          }
          if (typeof namefix !== "function") namefix = (str) => str;
          const relPathFix = (entry) => pth.join(zipPath, namefix(relativePath(localPath, entry)));
          const fileNameFix = (entry) => pth.win32.basename(pth.win32.normalize(namefix(entry)));
          filetools.fs.open(localPath, "r", function(err2) {
            if (err2 && err2.code === "ENOENT") {
              callback(void 0, Utils.Errors.FILE_NOT_FOUND(localPath));
            } else if (err2) {
              callback(void 0, err2);
            } else {
              filetools.findFilesAsync(localPath, function(err3, fileEntries) {
                if (err3) return callback(err3);
                fileEntries = fileEntries.filter((dir) => filter22(relPathFix(dir)));
                if (!fileEntries.length) callback(void 0, false);
                setImmediate(
                  fileEntries.reverse().reduce(function(next, entry) {
                    return function(err4, done) {
                      if (err4 || done === false) return setImmediate(next, err4, false);
                      self2.addLocalFileAsync(
                        {
                          localPath: entry,
                          zipPath: pth.dirname(relPathFix(entry)),
                          zipName: fileNameFix(entry)
                        },
                        next
                      );
                    };
                  }, callback)
                );
              });
            }
          });
        },
        /**
         * Adds a local directory and all its nested files and directories to the archive
         *
         * @param {string} localPath - path where files will be extracted
         * @param {object} props - optional properties
         * @param {string} [props.zipPath] - optional path inside zip
         * @param {RegExp|function} [props.filter] - optional RegExp or Function if files match will be included.
         * @param {function|string} [props.namefix] - optional function to help fix filename
         */
        addLocalFolderPromise: function(localPath2, props) {
          return new Promise((resolve2, reject) => {
            this.addLocalFolderAsync2(Object.assign({ localPath: localPath2 }, props), (err2, done) => {
              if (err2) reject(err2);
              if (done) resolve2(this);
            });
          });
        },
        /**
         * Allows you to create a entry (file or directory) in the zip file.
         * If you want to create a directory the entryName must end in / and a null buffer should be provided.
         * Comment and attributes are optional
         *
         * @param {string} entryName
         * @param {Buffer | string} content - file content as buffer or utf8 coded string
         * @param {string} [comment] - file comment
         * @param {number | object} [attr] - number as unix file permissions, object as filesystem Stats object
         */
        addFile: function(entryName, content2, comment, attr) {
          entryName = zipnamefix(entryName);
          let entry = getEntry(entryName);
          const update = entry != null;
          if (!update) {
            entry = new ZipEntry(opts);
            entry.entryName = entryName;
          }
          entry.comment = comment || "";
          const isStat = "object" === typeof attr && attr instanceof filetools.fs.Stats;
          if (isStat) {
            entry.header.time = attr.mtime;
          }
          var fileattr = entry.isDirectory ? 16 : 0;
          let unix = entry.isDirectory ? 16384 : 32768;
          if (isStat) {
            unix |= 4095 & attr.mode;
          } else if ("number" === typeof attr) {
            unix |= 4095 & attr;
          } else {
            unix |= entry.isDirectory ? 493 : 420;
          }
          fileattr = (fileattr | unix << 16) >>> 0;
          entry.attr = fileattr;
          entry.setData(content2);
          if (!update) _zip.setEntry(entry);
          return entry;
        },
        /**
         * Returns an array of ZipEntry objects representing the files and folders inside the archive
         *
         * @param {string} [password]
         * @returns Array
         */
        getEntries: function(password) {
          _zip.password = password;
          return _zip ? _zip.entries : [];
        },
        /**
         * Returns a ZipEntry object representing the file or folder specified by ``name``.
         *
         * @param {string} name
         * @return ZipEntry
         */
        getEntry: function(name2) {
          return getEntry(name2);
        },
        getEntryCount: function() {
          return _zip.getEntryCount();
        },
        forEach: function(callback) {
          return _zip.forEach(callback);
        },
        /**
         * Extracts the given entry to the given targetPath
         * If the entry is a directory inside the archive, the entire directory and it's subdirectories will be extracted
         *
         * @param {string|ZipEntry} entry - ZipEntry object or String with the full path of the entry
         * @param {string} targetPath - Target folder where to write the file
         * @param {boolean} [maintainEntryPath=true] - If maintainEntryPath is true and the entry is inside a folder, the entry folder will be created in targetPath as well. Default is TRUE
         * @param {boolean} [overwrite=false] - If the file already exists at the target path, the file will be overwriten if this is true.
         * @param {boolean} [keepOriginalPermission=false] - The file will be set as the permission from the entry if this is true.
         * @param {string} [outFileName] - String If set will override the filename of the extracted file (Only works if the entry is a file)
         *
         * @return Boolean
         */
        extractEntryTo: function(entry, targetPath, maintainEntryPath, overwrite, keepOriginalPermission, outFileName) {
          overwrite = get_Bool(false, overwrite);
          keepOriginalPermission = get_Bool(false, keepOriginalPermission);
          maintainEntryPath = get_Bool(true, maintainEntryPath);
          outFileName = get_Str(keepOriginalPermission, outFileName);
          var item = getEntry(entry);
          if (!item) {
            throw Utils.Errors.NO_ENTRY();
          }
          var entryName = canonical(item.entryName);
          var target = sanitize(targetPath, outFileName && !item.isDirectory ? outFileName : maintainEntryPath ? entryName : pth.basename(entryName));
          if (item.isDirectory) {
            var children = _zip.getEntryChildren(item);
            children.forEach(function(child) {
              if (child.isDirectory) return;
              var content22 = child.getData();
              if (!content22) {
                throw Utils.Errors.CANT_EXTRACT_FILE();
              }
              var name2 = canonical(child.entryName);
              var childName = sanitize(targetPath, maintainEntryPath ? name2 : pth.basename(name2));
              const fileAttr2 = keepOriginalPermission ? child.header.fileAttr : void 0;
              filetools.writeFileTo(childName, content22, overwrite, fileAttr2);
            });
            return true;
          }
          var content2 = item.getData(_zip.password);
          if (!content2) throw Utils.Errors.CANT_EXTRACT_FILE();
          if (filetools.fs.existsSync(target) && !overwrite) {
            throw Utils.Errors.CANT_OVERRIDE();
          }
          const fileAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
          filetools.writeFileTo(target, content2, overwrite, fileAttr);
          return true;
        },
        /**
         * Test the archive
         * @param {string} [pass]
         */
        test: function(pass) {
          if (!_zip) {
            return false;
          }
          for (var entry in _zip.entries) {
            try {
              if (entry.isDirectory) {
                continue;
              }
              var content2 = _zip.entries[entry].getData(pass);
              if (!content2) {
                return false;
              }
            } catch (err2) {
              return false;
            }
          }
          return true;
        },
        /**
         * Extracts the entire archive to the given location
         *
         * @param {string} targetPath Target location
         * @param {boolean} [overwrite=false] If the file already exists at the target path, the file will be overwriten if this is true.
         *                  Default is FALSE
         * @param {boolean} [keepOriginalPermission=false] The file will be set as the permission from the entry if this is true.
         *                  Default is FALSE
         * @param {string|Buffer} [pass] password
         */
        extractAllTo: function(targetPath, overwrite, keepOriginalPermission, pass) {
          keepOriginalPermission = get_Bool(false, keepOriginalPermission);
          pass = get_Str(keepOriginalPermission, pass);
          overwrite = get_Bool(false, overwrite);
          if (!_zip) throw Utils.Errors.NO_ZIP();
          _zip.entries.forEach(function(entry) {
            var entryName = sanitize(targetPath, canonical(entry.entryName));
            if (entry.isDirectory) {
              filetools.makeDir(entryName);
              return;
            }
            var content2 = entry.getData(pass);
            if (!content2) {
              throw Utils.Errors.CANT_EXTRACT_FILE();
            }
            const fileAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
            filetools.writeFileTo(entryName, content2, overwrite, fileAttr);
            try {
              filetools.fs.utimesSync(entryName, entry.header.time, entry.header.time);
            } catch (err2) {
              throw Utils.Errors.CANT_EXTRACT_FILE();
            }
          });
        },
        /**
         * Asynchronous extractAllTo
         *
         * @param {string} targetPath Target location
         * @param {boolean} [overwrite=false] If the file already exists at the target path, the file will be overwriten if this is true.
         *                  Default is FALSE
         * @param {boolean} [keepOriginalPermission=false] The file will be set as the permission from the entry if this is true.
         *                  Default is FALSE
         * @param {function} callback The callback will be executed when all entries are extracted successfully or any error is thrown.
         */
        extractAllToAsync: function(targetPath, overwrite, keepOriginalPermission, callback) {
          callback = get_Fun(overwrite, keepOriginalPermission, callback);
          keepOriginalPermission = get_Bool(false, keepOriginalPermission);
          overwrite = get_Bool(false, overwrite);
          if (!callback) {
            return new Promise((resolve2, reject) => {
              this.extractAllToAsync(targetPath, overwrite, keepOriginalPermission, function(err2) {
                if (err2) {
                  reject(err2);
                } else {
                  resolve2(this);
                }
              });
            });
          }
          if (!_zip) {
            callback(Utils.Errors.NO_ZIP());
            return;
          }
          targetPath = pth.resolve(targetPath);
          const getPath = (entry) => sanitize(targetPath, pth.normalize(canonical(entry.entryName)));
          const getError = (msg, file) => new Error(msg + ': "' + file + '"');
          const dirEntries = [];
          const fileEntries = [];
          _zip.entries.forEach((e2) => {
            if (e2.isDirectory) {
              dirEntries.push(e2);
            } else {
              fileEntries.push(e2);
            }
          });
          for (const entry of dirEntries) {
            const dirPath = getPath(entry);
            const dirAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
            try {
              filetools.makeDir(dirPath);
              if (dirAttr) filetools.fs.chmodSync(dirPath, dirAttr);
              filetools.fs.utimesSync(dirPath, entry.header.time, entry.header.time);
            } catch (er3) {
              callback(getError("Unable to create folder", dirPath));
            }
          }
          fileEntries.reverse().reduce(function(next, entry) {
            return function(err2) {
              if (err2) {
                next(err2);
              } else {
                const entryName = pth.normalize(canonical(entry.entryName));
                const filePath = sanitize(targetPath, entryName);
                entry.getDataAsync(function(content2, err_1) {
                  if (err_1) {
                    next(err_1);
                  } else if (!content2) {
                    next(Utils.Errors.CANT_EXTRACT_FILE());
                  } else {
                    const fileAttr = keepOriginalPermission ? entry.header.fileAttr : void 0;
                    filetools.writeFileToAsync(filePath, content2, overwrite, fileAttr, function(succ) {
                      if (!succ) {
                        next(getError("Unable to write file", filePath));
                      }
                      filetools.fs.utimes(filePath, entry.header.time, entry.header.time, function(err_2) {
                        if (err_2) {
                          next(getError("Unable to set times", filePath));
                        } else {
                          next();
                        }
                      });
                    });
                  }
                });
              }
            };
          }, callback)();
        },
        /**
         * Writes the newly created zip file to disk at the specified location or if a zip was opened and no ``targetFileName`` is provided, it will overwrite the opened zip
         *
         * @param {string} targetFileName
         * @param {function} callback
         */
        writeZip: function(targetFileName, callback) {
          if (arguments.length === 1) {
            if (typeof targetFileName === "function") {
              callback = targetFileName;
              targetFileName = "";
            }
          }
          if (!targetFileName && opts.filename) {
            targetFileName = opts.filename;
          }
          if (!targetFileName) return;
          var zipData = _zip.compressToBuffer();
          if (zipData) {
            var ok = filetools.writeFileTo(targetFileName, zipData, true);
            if (typeof callback === "function") callback(!ok ? new Error("failed") : null, "");
          }
        },
        /**
                 *
                 * @param {string} targetFileName
                 * @param {object} [props]
                 * @param {boolean} [props.overwrite=true] If the file already exists at the target path, the file will be overwriten if this is true.
                 * @param {boolean} [props.perm] The file will be set as the permission from the entry if this is true.
        
                 * @returns {Promise<void>}
                 */
        writeZipPromise: function(targetFileName, props) {
          const { overwrite, perm } = Object.assign({ overwrite: true }, props);
          return new Promise((resolve2, reject) => {
            if (!targetFileName && opts.filename) targetFileName = opts.filename;
            if (!targetFileName) reject("ADM-ZIP: ZIP File Name Missing");
            this.toBufferPromise().then((zipData) => {
              const ret = (done) => done ? resolve2(done) : reject("ADM-ZIP: Wasn't able to write zip file");
              filetools.writeFileToAsync(targetFileName, zipData, overwrite, perm, ret);
            }, reject);
          });
        },
        /**
         * @returns {Promise<Buffer>} A promise to the Buffer.
         */
        toBufferPromise: function() {
          return new Promise((resolve2, reject) => {
            _zip.toAsyncBuffer(resolve2, reject);
          });
        },
        /**
         * Returns the content of the entire zip file as a Buffer object
         *
         * @prop {function} [onSuccess]
         * @prop {function} [onFail]
         * @prop {function} [onItemStart]
         * @prop {function} [onItemEnd]
         * @returns {Buffer}
         */
        toBuffer: function(onSuccess, onFail, onItemStart, onItemEnd) {
          if (typeof onSuccess === "function") {
            _zip.toAsyncBuffer(onSuccess, onFail, onItemStart, onItemEnd);
            return null;
          }
          return _zip.compressToBuffer();
        }
      };
    };
  }
});
var require_bayesian_node = __commonJS2({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/bayesian-node.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.BayesianNode = void 0;
    function getRelativeFrequencies(data, attributeName) {
      const frequencies = {};
      const totalCount = data.length;
      data.forEach((record) => {
        const value = record[attributeName];
        frequencies[value] = (frequencies[value] ?? 0) + 1;
      });
      return Object.fromEntries(Object.entries(frequencies).map(([key, value]) => [
        key,
        value / totalCount
      ]));
    }
    var BayesianNode = class {
      /**
       * @param nodeDefinition Node structure and distributions definition taken from the network definition file.
       */
      constructor(nodeDefinition) {
        Object.defineProperty(this, "nodeDefinition", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.nodeDefinition = nodeDefinition;
      }
      toJSON() {
        return this.nodeDefinition;
      }
      /**
       * Extracts unconditional probabilities of node values given the values of the parent nodes
       * @param parentValues Parent nodes values.
       */
      getProbabilitiesGivenKnownValues(parentValues = {}) {
        let probabilities = this.nodeDefinition.conditionalProbabilities;
        for (const parentName of this.parentNames) {
          const parentValue = parentValues[parentName];
          if (parentValue in probabilities.deeper) {
            probabilities = probabilities.deeper[parentValue];
          } else {
            probabilities = probabilities.skip;
          }
        }
        return probabilities;
      }
      /**
       * Randomly samples from the given values using the given probabilities
       * @param possibleValues A list of values to sample from.
       * @param totalProbabilityOfPossibleValues Sum of probabilities of possibleValues in the conditional distribution.
       * @param probabilities A dictionary of probabilities from the conditional distribution, indexed by the values.
       */
      sampleRandomValueFromPossibilities(possibleValues, totalProbabilityOfPossibleValues, probabilities) {
        let chosenValue = possibleValues[0];
        const anchor = Math.random() * totalProbabilityOfPossibleValues;
        let cumulativeProbability = 0;
        for (const possibleValue of possibleValues) {
          cumulativeProbability += probabilities[possibleValue];
          if (cumulativeProbability > anchor) {
            chosenValue = possibleValue;
            break;
          }
        }
        return chosenValue;
      }
      /**
       * Randomly samples from the conditional distribution of this node given values of parents
       * @param parentValues Values of the parent nodes.
       */
      sample(parentValues = {}) {
        const probabilities = this.getProbabilitiesGivenKnownValues(parentValues);
        const possibleValues = Object.keys(probabilities);
        return this.sampleRandomValueFromPossibilities(possibleValues, 1, probabilities);
      }
      /**
       * Randomly samples from the conditional distribution of this node given restrictions on the possible
       * values and the values of the parents.
       * @param parentValues Values of the parent nodes.
       * @param valuePossibilities List of possible values for this node.
       * @param bannedValues What values of this node are banned.
       */
      sampleAccordingToRestrictions(parentValues, valuePossibilities, bannedValues) {
        const probabilities = this.getProbabilitiesGivenKnownValues(parentValues);
        let totalProbability = 0;
        const validValues = [];
        const valuesInDistribution = Object.keys(probabilities);
        const possibleValues = valuePossibilities || valuesInDistribution;
        for (const value of possibleValues) {
          if (!bannedValues.includes(value) && valuesInDistribution.includes(value)) {
            validValues.push(value);
            totalProbability += probabilities[value];
          }
        }
        if (validValues.length === 0)
          return false;
        return this.sampleRandomValueFromPossibilities(validValues, totalProbability, probabilities);
      }
      /**
       * Sets the conditional probability distribution for this node to match the given data.
       * @param data A RecordList containing the data.
       * @param possibleParentValues A dictionary of lists of possible values for parent nodes.
       */
      setProbabilitiesAccordingToData(data, possibleParentValues = {}) {
        this.nodeDefinition.possibleValues = Array.from(new Set(data.map((record) => record[this.name])));
        this.nodeDefinition.conditionalProbabilities = this.recursivelyCalculateConditionalProbabilitiesAccordingToData(data, possibleParentValues, 0);
      }
      /**
       * Recursively calculates the conditional probability distribution for this node from the data.
       * @param dataframe A Danfo.js dataframe containing the data.
       * @param possibleParentValues A dictionary of lists of possible values for parent nodes.
       * @param depth Depth of the current recursive call.
       */
      recursivelyCalculateConditionalProbabilitiesAccordingToData(data, possibleParentValues, depth) {
        let probabilities = {
          deeper: {}
        };
        if (depth < this.parentNames.length) {
          const currentParentName = this.parentNames[depth];
          for (const possibleValue of possibleParentValues[currentParentName]) {
            const skip = !data.map((record) => record[currentParentName]).includes(possibleValue);
            let filteredData = data;
            if (!skip) {
              filteredData = data.filter((record) => record[currentParentName] === possibleValue);
            }
            const nextLevel = this.recursivelyCalculateConditionalProbabilitiesAccordingToData(filteredData, possibleParentValues, depth + 1);
            if (!skip) {
              probabilities.deeper[possibleValue] = nextLevel;
            } else {
              probabilities.skip = nextLevel;
            }
          }
        } else {
          probabilities = getRelativeFrequencies(data, this.name);
        }
        return probabilities;
      }
      get name() {
        return this.nodeDefinition.name;
      }
      get parentNames() {
        return this.nodeDefinition.parentNames;
      }
      get possibleValues() {
        return this.nodeDefinition.possibleValues;
      }
    };
    exports2.BayesianNode = BayesianNode;
  }
});
var require_bayesian_network = __commonJS2({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/bayesian-network.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.BayesianNetwork = void 0;
    var AdmZip = require_adm_zip();
    var bayesian_node_1 = require_bayesian_node();
    var BayesianNetwork = class {
      constructor({ path: path22 }) {
        Object.defineProperty(this, "nodesInSamplingOrder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "nodesByName", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        const zip = new AdmZip(path22);
        const zipEntries = zip.getEntries();
        const networkDefinition = JSON.parse(zipEntries[0].getData().toString("utf8"));
        this.nodesInSamplingOrder = networkDefinition.nodes.map((nodeDefinition) => new bayesian_node_1.BayesianNode(nodeDefinition));
        this.nodesByName = this.nodesInSamplingOrder.reduce((p, node) => ({
          ...p,
          [node.name]: node
        }), {});
      }
      /**
       * Randomly samples from the distribution represented by the bayesian network.
       * @param inputValues Already known node values.
       */
      generateSample(inputValues = {}) {
        const sample = inputValues;
        for (const node of this.nodesInSamplingOrder) {
          if (!(node.name in sample)) {
            sample[node.name] = node.sample(sample);
          }
        }
        return sample;
      }
      /**
       * Randomly samples values from the distribution represented by the bayesian network,
       * making sure the sample is consistent with the provided restrictions on value possibilities.
       * Returns false if no such sample can be generated.
       * @param valuePossibilities A dictionary of lists of possible values for nodes (if a node isn't present in the dictionary, all values are possible).
       */
      generateConsistentSampleWhenPossible(valuePossibilities) {
        return this.recursivelyGenerateConsistentSampleWhenPossible({}, valuePossibilities, 0);
      }
      /**
       * Recursively generates a random sample consistent with the given restrictions on possible values.
       * @param sampleSoFar Already known node values.
       * @param valuePossibilities A dictionary of lists of possible values for nodes (if a node isn't present in the dictionary, all values are possible).
       * @param depth Current recursion depth.
       */
      recursivelyGenerateConsistentSampleWhenPossible(sampleSoFar, valuePossibilities, depth) {
        const bannedValues = [];
        const node = this.nodesInSamplingOrder[depth];
        let sampleValue;
        do {
          sampleValue = node.sampleAccordingToRestrictions(sampleSoFar, valuePossibilities[node.name], bannedValues);
          if (!sampleValue)
            break;
          sampleSoFar[node.name] = sampleValue;
          if (depth + 1 < this.nodesInSamplingOrder.length) {
            const sample = this.recursivelyGenerateConsistentSampleWhenPossible(sampleSoFar, valuePossibilities, depth + 1);
            if (Object.keys(sample).length !== 0) {
              return sample;
            }
          } else {
            return sampleSoFar;
          }
          bannedValues.push(sampleValue);
        } while (sampleValue);
        return {};
      }
      /**
       * Sets the conditional probability distributions of this network's nodes to match the given data.
       * @param dataframe A Danfo.js dataframe containing the data.
       */
      setProbabilitiesAccordingToData(data) {
        this.nodesInSamplingOrder.forEach((node, i22) => {
          console.log(`${i22}/${this.nodesInSamplingOrder.length} Setting probabilities for node ${node.name}`);
          const possibleParentValues = {};
          for (const parentName of node.parentNames) {
            possibleParentValues[parentName] = this.nodesByName[parentName].possibleValues;
          }
          node.setProbabilitiesAccordingToData(data, possibleParentValues);
        });
      }
      /**
       * Saves the network definition to the specified file path to be used later.
       * @param networkDefinitionFilePath File path where the network definition should be saved.
       */
      saveNetworkDefinition({ path: path22 }) {
        const network = {
          nodes: this.nodesInSamplingOrder
        };
        const zip = new AdmZip();
        zip.addFile("network.json", Buffer.from(JSON.stringify(network), "utf8"));
        zip.writeZip(path22);
      }
    };
    exports2.BayesianNetwork = BayesianNetwork;
  }
});
var require_utils6 = __commonJS2({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.arrayIntersection = arrayIntersection;
    exports2.arrayUnion = arrayUnion;
    exports2.arrayZip = arrayZip;
    exports2.getConstraintClosure = getConstraintClosure;
    function arrayIntersection(a2, b2) {
      return a2.filter((x3) => b2.includes(x3));
    }
    function arrayUnion(a2, b2) {
      return [...a2, ...b2.filter((x3) => !a2.includes(x3))];
    }
    function arrayZip(a2, b2, f) {
      return a2.map((x3, i22) => f(x3, b2[i22]));
    }
    function getConstraintClosure(network, possibleValues) {
      function undeeper(obj) {
        if (typeof obj !== "object" || obj === null)
          return obj;
        const result = {};
        for (const key of Object.keys(obj)) {
          if (key === "skip")
            continue;
          if (key === "deeper") {
            Object.assign(result, undeeper(obj[key]));
            continue;
          }
          result[key] = undeeper(obj[key]);
        }
        return result;
      }
      function filterByLastLevelKeys(tree, validKeys) {
        let foundPaths = [];
        const dfs = (t9, acc) => {
          for (const key of Object.keys(t9)) {
            if (typeof t9[key] !== "object" || !t9[key]) {
              if (validKeys.includes(key)) {
                foundPaths = foundPaths.length === 0 ? acc.map((x3) => [x3]) : arrayZip(foundPaths, acc.map((x3) => [x3]), (a2, b2) => [.../* @__PURE__ */ new Set([...a2, ...b2])]);
              }
              continue;
            } else {
              dfs(t9[key], [...acc, key]);
            }
          }
        };
        dfs(tree, []);
        return foundPaths;
      }
      const sets = [];
      let foundMatchingValues = false;
      for (const key of Object.keys(possibleValues)) {
        if (!Array.isArray(possibleValues[key]))
          continue;
        if (possibleValues[key].length === 0) {
          throw new Error(`The current constraints are too restrictive. 
No possible values can be found for the given constraints.`);
        }
        const node = network["nodesByName"][key]["nodeDefinition"];
        const tree = undeeper(node.conditionalProbabilities);
        const zippedValues = filterByLastLevelKeys(tree, possibleValues[key]);
        if (zippedValues.length > 0) {
          foundMatchingValues = true;
        }
        sets.push({
          ...Object.fromEntries(zippedValues.map((x3, i22) => [node.parentNames[i22], x3])),
          [key]: possibleValues[key]
        });
      }
      if (!foundMatchingValues) {
        return {};
      }
      return sets.reduce((acc, x3) => {
        for (const key of Object.keys(x3)) {
          acc[key] = acc[key] ? arrayIntersection(acc[key], x3[key]) : x3[key];
          if (acc[key].length === 0) {
            throw new Error(`The current constraints are too restrictive. 
No possible values can be found for the given constraints.`);
          }
        }
        return acc;
      }, {});
    }
  }
});
var require_generative_bayesian_network = __commonJS2({
  "../../node_modules/.pnpm/generative-bayesian-network@2.1.80/node_modules/generative-bayesian-network/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.utils = exports2.BayesianNetwork = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var bayesian_network_1 = require_bayesian_network();
    Object.defineProperty(exports2, "BayesianNetwork", { enumerable: true, get: function() {
      return bayesian_network_1.BayesianNetwork;
    } });
    exports2.utils = tslib_1.__importStar(require_utils6());
  }
});
var require_constants2 = __commonJS2({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/constants.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.HTTP2_SEC_FETCH_ATTRIBUTES = exports2.HTTP1_SEC_FETCH_ATTRIBUTES = exports2.MISSING_VALUE_DATASET_TOKEN = exports2.DEVICE_NODE_NAME = exports2.OPERATING_SYSTEM_NODE_NAME = exports2.BROWSER_HTTP_NODE_NAME = exports2.SUPPORTED_HTTP_VERSIONS = exports2.SUPPORTED_DEVICES = exports2.SUPPORTED_OPERATING_SYSTEMS = exports2.SUPPORTED_BROWSERS = void 0;
    exports2.SUPPORTED_BROWSERS = [
      "chrome",
      "firefox",
      "safari",
      "edge"
    ];
    exports2.SUPPORTED_OPERATING_SYSTEMS = [
      "windows",
      "macos",
      "linux",
      "android",
      "ios"
    ];
    exports2.SUPPORTED_DEVICES = ["desktop", "mobile"];
    exports2.SUPPORTED_HTTP_VERSIONS = ["1", "2"];
    exports2.BROWSER_HTTP_NODE_NAME = "*BROWSER_HTTP";
    exports2.OPERATING_SYSTEM_NODE_NAME = "*OPERATING_SYSTEM";
    exports2.DEVICE_NODE_NAME = "*DEVICE";
    exports2.MISSING_VALUE_DATASET_TOKEN = "*MISSING_VALUE*";
    exports2.HTTP1_SEC_FETCH_ATTRIBUTES = {
      mode: "Sec-Fetch-Mode",
      dest: "Sec-Fetch-Dest",
      site: "Sec-Fetch-Site",
      user: "Sec-Fetch-User"
    };
    exports2.HTTP2_SEC_FETCH_ATTRIBUTES = {
      mode: "sec-fetch-mode",
      dest: "sec-fetch-dest",
      site: "sec-fetch-site",
      user: "sec-fetch-user"
    };
  }
});
var require_dist4 = __commonJS2({
  "../../node_modules/.pnpm/baseline-browser-mapping@2.9.19/node_modules/baseline-browser-mapping/dist/index.cjs"(exports2) {
    "use strict";
    var s2 = { chrome: { releases: [["1", "2008-12-11", "r", "w", "528"], ["2", "2009-05-21", "r", "w", "530"], ["3", "2009-09-15", "r", "w", "532"], ["4", "2010-01-25", "r", "w", "532.5"], ["5", "2010-05-25", "r", "w", "533"], ["6", "2010-09-02", "r", "w", "534.3"], ["7", "2010-10-19", "r", "w", "534.7"], ["8", "2010-12-02", "r", "w", "534.10"], ["9", "2011-02-03", "r", "w", "534.13"], ["10", "2011-03-08", "r", "w", "534.16"], ["11", "2011-04-27", "r", "w", "534.24"], ["12", "2011-06-07", "r", "w", "534.30"], ["13", "2011-08-02", "r", "w", "535.1"], ["14", "2011-09-16", "r", "w", "535.1"], ["15", "2011-10-25", "r", "w", "535.2"], ["16", "2011-12-13", "r", "w", "535.7"], ["17", "2012-02-08", "r", "w", "535.11"], ["18", "2012-03-28", "r", "w", "535.19"], ["19", "2012-05-15", "r", "w", "536.5"], ["20", "2012-06-26", "r", "w", "536.10"], ["21", "2012-07-31", "r", "w", "537.1"], ["22", "2012-09-25", "r", "w", "537.4"], ["23", "2012-11-06", "r", "w", "537.11"], ["24", "2013-01-10", "r", "w", "537.17"], ["25", "2013-02-21", "r", "w", "537.22"], ["26", "2013-03-26", "r", "w", "537.31"], ["27", "2013-05-21", "r", "w", "537.36"], ["28", "2013-07-09", "r", "b", "28"], ["29", "2013-08-20", "r", "b", "29"], ["30", "2013-10-01", "r", "b", "30"], ["31", "2013-11-12", "r", "b", "31"], ["32", "2014-01-14", "r", "b", "32"], ["33", "2014-02-20", "r", "b", "33"], ["34", "2014-04-08", "r", "b", "34"], ["35", "2014-05-20", "r", "b", "35"], ["36", "2014-07-16", "r", "b", "36"], ["37", "2014-08-26", "r", "b", "37"], ["38", "2014-10-07", "r", "b", "38"], ["39", "2014-11-18", "r", "b", "39"], ["40", "2015-01-21", "r", "b", "40"], ["41", "2015-03-03", "r", "b", "41"], ["42", "2015-04-14", "r", "b", "42"], ["43", "2015-05-19", "r", "b", "43"], ["44", "2015-07-21", "r", "b", "44"], ["45", "2015-09-01", "r", "b", "45"], ["46", "2015-10-13", "r", "b", "46"], ["47", "2015-12-01", "r", "b", "47"], ["48", "2016-01-20", "r", "b", "48"], ["49", "2016-03-02", "r", "b", "49"], ["50", "2016-04-13", "r", "b", "50"], ["51", "2016-05-25", "r", "b", "51"], ["52", "2016-07-20", "r", "b", "52"], ["53", "2016-08-31", "r", "b", "53"], ["54", "2016-10-12", "r", "b", "54"], ["55", "2016-12-01", "r", "b", "55"], ["56", "2017-01-25", "r", "b", "56"], ["57", "2017-03-09", "r", "b", "57"], ["58", "2017-04-19", "r", "b", "58"], ["59", "2017-06-05", "r", "b", "59"], ["60", "2017-07-25", "r", "b", "60"], ["61", "2017-09-05", "r", "b", "61"], ["62", "2017-10-17", "r", "b", "62"], ["63", "2017-12-06", "r", "b", "63"], ["64", "2018-01-23", "r", "b", "64"], ["65", "2018-03-06", "r", "b", "65"], ["66", "2018-04-17", "r", "b", "66"], ["67", "2018-05-29", "r", "b", "67"], ["68", "2018-07-24", "r", "b", "68"], ["69", "2018-09-04", "r", "b", "69"], ["70", "2018-10-16", "r", "b", "70"], ["71", "2018-12-04", "r", "b", "71"], ["72", "2019-01-29", "r", "b", "72"], ["73", "2019-03-12", "r", "b", "73"], ["74", "2019-04-23", "r", "b", "74"], ["75", "2019-06-04", "r", "b", "75"], ["76", "2019-07-30", "r", "b", "76"], ["77", "2019-09-10", "r", "b", "77"], ["78", "2019-10-22", "r", "b", "78"], ["79", "2019-12-10", "r", "b", "79"], ["80", "2020-02-04", "r", "b", "80"], ["81", "2020-04-07", "r", "b", "81"], ["83", "2020-05-19", "r", "b", "83"], ["84", "2020-07-27", "r", "b", "84"], ["85", "2020-08-25", "r", "b", "85"], ["86", "2020-10-20", "r", "b", "86"], ["87", "2020-11-17", "r", "b", "87"], ["88", "2021-01-19", "r", "b", "88"], ["89", "2021-03-02", "r", "b", "89"], ["90", "2021-04-13", "r", "b", "90"], ["91", "2021-05-25", "r", "b", "91"], ["92", "2021-07-20", "r", "b", "92"], ["93", "2021-08-31", "r", "b", "93"], ["94", "2021-09-21", "r", "b", "94"], ["95", "2021-10-19", "r", "b", "95"], ["96", "2021-11-15", "r", "b", "96"], ["97", "2022-01-04", "r", "b", "97"], ["98", "2022-02-01", "r", "b", "98"], ["99", "2022-03-01", "r", "b", "99"], ["100", "2022-03-29", "r", "b", "100"], ["101", "2022-04-26", "r", "b", "101"], ["102", "2022-05-24", "r", "b", "102"], ["103", "2022-06-21", "r", "b", "103"], ["104", "2022-08-02", "r", "b", "104"], ["105", "2022-09-02", "r", "b", "105"], ["106", "2022-09-27", "r", "b", "106"], ["107", "2022-10-25", "r", "b", "107"], ["108", "2022-11-29", "r", "b", "108"], ["109", "2023-01-10", "r", "b", "109"], ["110", "2023-02-07", "r", "b", "110"], ["111", "2023-03-07", "r", "b", "111"], ["112", "2023-04-04", "r", "b", "112"], ["113", "2023-05-02", "r", "b", "113"], ["114", "2023-05-30", "r", "b", "114"], ["115", "2023-07-18", "r", "b", "115"], ["116", "2023-08-15", "r", "b", "116"], ["117", "2023-09-12", "r", "b", "117"], ["118", "2023-10-10", "r", "b", "118"], ["119", "2023-10-31", "r", "b", "119"], ["120", "2023-12-05", "r", "b", "120"], ["121", "2024-01-23", "r", "b", "121"], ["122", "2024-02-20", "r", "b", "122"], ["123", "2024-03-19", "r", "b", "123"], ["124", "2024-04-16", "r", "b", "124"], ["125", "2024-05-14", "r", "b", "125"], ["126", "2024-06-11", "r", "b", "126"], ["127", "2024-07-23", "r", "b", "127"], ["128", "2024-08-20", "r", "b", "128"], ["129", "2024-09-17", "r", "b", "129"], ["130", "2024-10-15", "r", "b", "130"], ["131", "2024-11-12", "r", "b", "131"], ["132", "2025-01-14", "r", "b", "132"], ["133", "2025-02-04", "r", "b", "133"], ["134", "2025-03-04", "r", "b", "134"], ["135", "2025-04-01", "r", "b", "135"], ["136", "2025-04-29", "r", "b", "136"], ["137", "2025-05-27", "r", "b", "137"], ["138", "2025-06-24", "r", "b", "138"], ["139", "2025-08-05", "r", "b", "139"], ["140", "2025-09-02", "r", "b", "140"], ["141", "2025-09-30", "r", "b", "141"], ["142", "2025-10-28", "r", "b", "142"], ["143", "2025-12-02", "r", "b", "143"], ["144", "2026-01-13", "c", "b", "144"], ["145", "2026-02-10", "b", "b", "145"], ["146", "2026-03-10", "n", "b", "146"], ["147", null, "p", "b", "147"]] }, chrome_android: { releases: [["18", "2012-06-27", "r", "w", "535.19"], ["25", "2013-02-27", "r", "w", "537.22"], ["26", "2013-04-03", "r", "w", "537.31"], ["27", "2013-05-22", "r", "w", "537.36"], ["28", "2013-07-10", "r", "b", "28"], ["29", "2013-08-21", "r", "b", "29"], ["30", "2013-10-02", "r", "b", "30"], ["31", "2013-11-14", "r", "b", "31"], ["32", "2014-01-15", "r", "b", "32"], ["33", "2014-02-26", "r", "b", "33"], ["34", "2014-04-02", "r", "b", "34"], ["35", "2014-05-20", "r", "b", "35"], ["36", "2014-07-16", "r", "b", "36"], ["37", "2014-09-03", "r", "b", "37"], ["38", "2014-10-08", "r", "b", "38"], ["39", "2014-11-12", "r", "b", "39"], ["40", "2015-01-21", "r", "b", "40"], ["41", "2015-03-11", "r", "b", "41"], ["42", "2015-04-15", "r", "b", "42"], ["43", "2015-05-27", "r", "b", "43"], ["44", "2015-07-29", "r", "b", "44"], ["45", "2015-09-01", "r", "b", "45"], ["46", "2015-10-14", "r", "b", "46"], ["47", "2015-12-02", "r", "b", "47"], ["48", "2016-01-26", "r", "b", "48"], ["49", "2016-03-09", "r", "b", "49"], ["50", "2016-04-13", "r", "b", "50"], ["51", "2016-06-08", "r", "b", "51"], ["52", "2016-07-27", "r", "b", "52"], ["53", "2016-09-07", "r", "b", "53"], ["54", "2016-10-19", "r", "b", "54"], ["55", "2016-12-06", "r", "b", "55"], ["56", "2017-02-01", "r", "b", "56"], ["57", "2017-03-16", "r", "b", "57"], ["58", "2017-04-25", "r", "b", "58"], ["59", "2017-06-06", "r", "b", "59"], ["60", "2017-08-01", "r", "b", "60"], ["61", "2017-09-05", "r", "b", "61"], ["62", "2017-10-24", "r", "b", "62"], ["63", "2017-12-05", "r", "b", "63"], ["64", "2018-01-23", "r", "b", "64"], ["65", "2018-03-06", "r", "b", "65"], ["66", "2018-04-17", "r", "b", "66"], ["67", "2018-05-31", "r", "b", "67"], ["68", "2018-07-24", "r", "b", "68"], ["69", "2018-09-04", "r", "b", "69"], ["70", "2018-10-17", "r", "b", "70"], ["71", "2018-12-04", "r", "b", "71"], ["72", "2019-01-29", "r", "b", "72"], ["73", "2019-03-12", "r", "b", "73"], ["74", "2019-04-24", "r", "b", "74"], ["75", "2019-06-04", "r", "b", "75"], ["76", "2019-07-30", "r", "b", "76"], ["77", "2019-09-10", "r", "b", "77"], ["78", "2019-10-22", "r", "b", "78"], ["79", "2019-12-17", "r", "b", "79"], ["80", "2020-02-04", "r", "b", "80"], ["81", "2020-04-07", "r", "b", "81"], ["83", "2020-05-19", "r", "b", "83"], ["84", "2020-07-27", "r", "b", "84"], ["85", "2020-08-25", "r", "b", "85"], ["86", "2020-10-20", "r", "b", "86"], ["87", "2020-11-17", "r", "b", "87"], ["88", "2021-01-19", "r", "b", "88"], ["89", "2021-03-02", "r", "b", "89"], ["90", "2021-04-13", "r", "b", "90"], ["91", "2021-05-25", "r", "b", "91"], ["92", "2021-07-20", "r", "b", "92"], ["93", "2021-08-31", "r", "b", "93"], ["94", "2021-09-21", "r", "b", "94"], ["95", "2021-10-19", "r", "b", "95"], ["96", "2021-11-15", "r", "b", "96"], ["97", "2022-01-04", "r", "b", "97"], ["98", "2022-02-01", "r", "b", "98"], ["99", "2022-03-01", "r", "b", "99"], ["100", "2022-03-29", "r", "b", "100"], ["101", "2022-04-26", "r", "b", "101"], ["102", "2022-05-24", "r", "b", "102"], ["103", "2022-06-21", "r", "b", "103"], ["104", "2022-08-02", "r", "b", "104"], ["105", "2022-09-02", "r", "b", "105"], ["106", "2022-09-27", "r", "b", "106"], ["107", "2022-10-25", "r", "b", "107"], ["108", "2022-11-29", "r", "b", "108"], ["109", "2023-01-10", "r", "b", "109"], ["110", "2023-02-07", "r", "b", "110"], ["111", "2023-03-07", "r", "b", "111"], ["112", "2023-04-04", "r", "b", "112"], ["113", "2023-05-02", "r", "b", "113"], ["114", "2023-05-30", "r", "b", "114"], ["115", "2023-07-21", "r", "b", "115"], ["116", "2023-08-15", "r", "b", "116"], ["117", "2023-09-12", "r", "b", "117"], ["118", "2023-10-10", "r", "b", "118"], ["119", "2023-10-31", "r", "b", "119"], ["120", "2023-12-05", "r", "b", "120"], ["121", "2024-01-23", "r", "b", "121"], ["122", "2024-02-20", "r", "b", "122"], ["123", "2024-03-19", "r", "b", "123"], ["124", "2024-04-16", "r", "b", "124"], ["125", "2024-05-14", "r", "b", "125"], ["126", "2024-06-11", "r", "b", "126"], ["127", "2024-07-23", "r", "b", "127"], ["128", "2024-08-20", "r", "b", "128"], ["129", "2024-09-17", "r", "b", "129"], ["130", "2024-10-15", "r", "b", "130"], ["131", "2024-11-12", "r", "b", "131"], ["132", "2025-01-14", "r", "b", "132"], ["133", "2025-02-04", "r", "b", "133"], ["134", "2025-03-04", "r", "b", "134"], ["135", "2025-04-01", "r", "b", "135"], ["136", "2025-04-29", "r", "b", "136"], ["137", "2025-05-27", "r", "b", "137"], ["138", "2025-06-24", "r", "b", "138"], ["139", "2025-08-05", "r", "b", "139"], ["140", "2025-09-02", "r", "b", "140"], ["141", "2025-09-30", "r", "b", "141"], ["142", "2025-10-28", "r", "b", "142"], ["143", "2025-12-02", "r", "b", "143"], ["144", "2026-01-13", "c", "b", "144"], ["145", "2026-02-10", "b", "b", "145"], ["146", "2026-03-10", "n", "b", "146"], ["147", null, "p", "b", "147"]] }, edge: { releases: [["12", "2015-07-29", "r", null, "12"], ["13", "2015-11-12", "r", null, "13"], ["14", "2016-08-02", "r", null, "14"], ["15", "2017-04-05", "r", null, "15"], ["16", "2017-10-17", "r", null, "16"], ["17", "2018-04-30", "r", null, "17"], ["18", "2018-10-02", "r", null, "18"], ["79", "2020-01-15", "r", "b", "79"], ["80", "2020-02-07", "r", "b", "80"], ["81", "2020-04-13", "r", "b", "81"], ["83", "2020-05-21", "r", "b", "83"], ["84", "2020-07-16", "r", "b", "84"], ["85", "2020-08-27", "r", "b", "85"], ["86", "2020-10-09", "r", "b", "86"], ["87", "2020-11-19", "r", "b", "87"], ["88", "2021-01-21", "r", "b", "88"], ["89", "2021-03-04", "r", "b", "89"], ["90", "2021-04-15", "r", "b", "90"], ["91", "2021-05-27", "r", "b", "91"], ["92", "2021-07-22", "r", "b", "92"], ["93", "2021-09-02", "r", "b", "93"], ["94", "2021-09-24", "r", "b", "94"], ["95", "2021-10-21", "r", "b", "95"], ["96", "2021-11-19", "r", "b", "96"], ["97", "2022-01-06", "r", "b", "97"], ["98", "2022-02-03", "r", "b", "98"], ["99", "2022-03-03", "r", "b", "99"], ["100", "2022-04-01", "r", "b", "100"], ["101", "2022-04-28", "r", "b", "101"], ["102", "2022-05-31", "r", "b", "102"], ["103", "2022-06-23", "r", "b", "103"], ["104", "2022-08-05", "r", "b", "104"], ["105", "2022-09-01", "r", "b", "105"], ["106", "2022-10-03", "r", "b", "106"], ["107", "2022-10-27", "r", "b", "107"], ["108", "2022-12-05", "r", "b", "108"], ["109", "2023-01-12", "r", "b", "109"], ["110", "2023-02-09", "r", "b", "110"], ["111", "2023-03-13", "r", "b", "111"], ["112", "2023-04-06", "r", "b", "112"], ["113", "2023-05-05", "r", "b", "113"], ["114", "2023-06-02", "r", "b", "114"], ["115", "2023-07-21", "r", "b", "115"], ["116", "2023-08-21", "r", "b", "116"], ["117", "2023-09-15", "r", "b", "117"], ["118", "2023-10-13", "r", "b", "118"], ["119", "2023-11-02", "r", "b", "119"], ["120", "2023-12-07", "r", "b", "120"], ["121", "2024-01-25", "r", "b", "121"], ["122", "2024-02-23", "r", "b", "122"], ["123", "2024-03-22", "r", "b", "123"], ["124", "2024-04-18", "r", "b", "124"], ["125", "2024-05-17", "r", "b", "125"], ["126", "2024-06-13", "r", "b", "126"], ["127", "2024-07-25", "r", "b", "127"], ["128", "2024-08-22", "r", "b", "128"], ["129", "2024-09-19", "r", "b", "129"], ["130", "2024-10-17", "r", "b", "130"], ["131", "2024-11-14", "r", "b", "131"], ["132", "2025-01-17", "r", "b", "132"], ["133", "2025-02-06", "r", "b", "133"], ["134", "2025-03-06", "r", "b", "134"], ["135", "2025-04-04", "r", "b", "135"], ["136", "2025-05-01", "r", "b", "136"], ["137", "2025-05-29", "r", "b", "137"], ["138", "2025-06-26", "r", "b", "138"], ["139", "2025-08-07", "r", "b", "139"], ["140", "2025-09-05", "r", "b", "140"], ["141", "2025-10-03", "r", "b", "141"], ["142", "2025-10-31", "r", "b", "142"], ["143", "2025-12-05", "r", "b", "143"], ["144", "2026-01-21", "c", "b", "144"], ["145", "2026-02-12", "b", "b", "145"], ["146", "2026-03-12", "n", "b", "146"], ["147", "2026-04-09", "p", "b", "147"]] }, firefox: { releases: [["1", "2004-11-09", "r", "g", "1.7"], ["2", "2006-10-24", "r", "g", "1.8.1"], ["3", "2008-06-17", "r", "g", "1.9"], ["4", "2011-03-22", "r", "g", "2"], ["5", "2011-06-21", "r", "g", "5"], ["6", "2011-08-16", "r", "g", "6"], ["7", "2011-09-27", "r", "g", "7"], ["8", "2011-11-08", "r", "g", "8"], ["9", "2011-12-20", "r", "g", "9"], ["10", "2012-01-31", "r", "g", "10"], ["11", "2012-03-13", "r", "g", "11"], ["12", "2012-04-24", "r", "g", "12"], ["13", "2012-06-05", "r", "g", "13"], ["14", "2012-07-17", "r", "g", "14"], ["15", "2012-08-28", "r", "g", "15"], ["16", "2012-10-09", "r", "g", "16"], ["17", "2012-11-20", "r", "g", "17"], ["18", "2013-01-08", "r", "g", "18"], ["19", "2013-02-19", "r", "g", "19"], ["20", "2013-04-02", "r", "g", "20"], ["21", "2013-05-14", "r", "g", "21"], ["22", "2013-06-25", "r", "g", "22"], ["23", "2013-08-06", "r", "g", "23"], ["24", "2013-09-17", "r", "g", "24"], ["25", "2013-10-29", "r", "g", "25"], ["26", "2013-12-10", "r", "g", "26"], ["27", "2014-02-04", "r", "g", "27"], ["28", "2014-03-18", "r", "g", "28"], ["29", "2014-04-29", "r", "g", "29"], ["30", "2014-06-10", "r", "g", "30"], ["31", "2014-07-22", "r", "g", "31"], ["32", "2014-09-02", "r", "g", "32"], ["33", "2014-10-14", "r", "g", "33"], ["34", "2014-12-01", "r", "g", "34"], ["35", "2015-01-13", "r", "g", "35"], ["36", "2015-02-24", "r", "g", "36"], ["37", "2015-03-31", "r", "g", "37"], ["38", "2015-05-12", "r", "g", "38"], ["39", "2015-07-02", "r", "g", "39"], ["40", "2015-08-11", "r", "g", "40"], ["41", "2015-09-22", "r", "g", "41"], ["42", "2015-11-03", "r", "g", "42"], ["43", "2015-12-15", "r", "g", "43"], ["44", "2016-01-26", "r", "g", "44"], ["45", "2016-03-08", "r", "g", "45"], ["46", "2016-04-26", "r", "g", "46"], ["47", "2016-06-07", "r", "g", "47"], ["48", "2016-08-02", "r", "g", "48"], ["49", "2016-09-20", "r", "g", "49"], ["50", "2016-11-15", "r", "g", "50"], ["51", "2017-01-24", "r", "g", "51"], ["52", "2017-03-07", "r", "g", "52"], ["53", "2017-04-19", "r", "g", "53"], ["54", "2017-06-13", "r", "g", "54"], ["55", "2017-08-08", "r", "g", "55"], ["56", "2017-09-28", "r", "g", "56"], ["57", "2017-11-14", "r", "g", "57"], ["58", "2018-01-23", "r", "g", "58"], ["59", "2018-03-13", "r", "g", "59"], ["60", "2018-05-09", "r", "g", "60"], ["61", "2018-06-26", "r", "g", "61"], ["62", "2018-09-05", "r", "g", "62"], ["63", "2018-10-23", "r", "g", "63"], ["64", "2018-12-11", "r", "g", "64"], ["65", "2019-01-29", "r", "g", "65"], ["66", "2019-03-19", "r", "g", "66"], ["67", "2019-05-21", "r", "g", "67"], ["68", "2019-07-09", "r", "g", "68"], ["69", "2019-09-03", "r", "g", "69"], ["70", "2019-10-22", "r", "g", "70"], ["71", "2019-12-10", "r", "g", "71"], ["72", "2020-01-07", "r", "g", "72"], ["73", "2020-02-11", "r", "g", "73"], ["74", "2020-03-10", "r", "g", "74"], ["75", "2020-04-07", "r", "g", "75"], ["76", "2020-05-05", "r", "g", "76"], ["77", "2020-06-02", "r", "g", "77"], ["78", "2020-06-30", "r", "g", "78"], ["79", "2020-07-28", "r", "g", "79"], ["80", "2020-08-25", "r", "g", "80"], ["81", "2020-09-22", "r", "g", "81"], ["82", "2020-10-20", "r", "g", "82"], ["83", "2020-11-17", "r", "g", "83"], ["84", "2020-12-15", "r", "g", "84"], ["85", "2021-01-26", "r", "g", "85"], ["86", "2021-02-23", "r", "g", "86"], ["87", "2021-03-23", "r", "g", "87"], ["88", "2021-04-19", "r", "g", "88"], ["89", "2021-06-01", "r", "g", "89"], ["90", "2021-07-13", "r", "g", "90"], ["91", "2021-08-10", "r", "g", "91"], ["92", "2021-09-07", "r", "g", "92"], ["93", "2021-10-05", "r", "g", "93"], ["94", "2021-11-02", "r", "g", "94"], ["95", "2021-12-07", "r", "g", "95"], ["96", "2022-01-11", "r", "g", "96"], ["97", "2022-02-08", "r", "g", "97"], ["98", "2022-03-08", "r", "g", "98"], ["99", "2022-04-05", "r", "g", "99"], ["100", "2022-05-03", "r", "g", "100"], ["101", "2022-05-31", "r", "g", "101"], ["102", "2022-06-28", "r", "g", "102"], ["103", "2022-07-26", "r", "g", "103"], ["104", "2022-08-23", "r", "g", "104"], ["105", "2022-09-20", "r", "g", "105"], ["106", "2022-10-18", "r", "g", "106"], ["107", "2022-11-15", "r", "g", "107"], ["108", "2022-12-13", "r", "g", "108"], ["109", "2023-01-17", "r", "g", "109"], ["110", "2023-02-14", "r", "g", "110"], ["111", "2023-03-14", "r", "g", "111"], ["112", "2023-04-11", "r", "g", "112"], ["113", "2023-05-09", "r", "g", "113"], ["114", "2023-06-06", "r", "g", "114"], ["115", "2023-07-04", "r", "g", "115"], ["116", "2023-08-01", "r", "g", "116"], ["117", "2023-08-29", "r", "g", "117"], ["118", "2023-09-26", "r", "g", "118"], ["119", "2023-10-24", "r", "g", "119"], ["120", "2023-11-21", "r", "g", "120"], ["121", "2023-12-19", "r", "g", "121"], ["122", "2024-01-23", "r", "g", "122"], ["123", "2024-02-20", "r", "g", "123"], ["124", "2024-03-19", "r", "g", "124"], ["125", "2024-04-16", "r", "g", "125"], ["126", "2024-05-14", "r", "g", "126"], ["127", "2024-06-11", "r", "g", "127"], ["128", "2024-07-09", "r", "g", "128"], ["129", "2024-08-06", "r", "g", "129"], ["130", "2024-09-03", "r", "g", "130"], ["131", "2024-10-01", "r", "g", "131"], ["132", "2024-10-29", "r", "g", "132"], ["133", "2024-11-26", "r", "g", "133"], ["134", "2025-01-07", "r", "g", "134"], ["135", "2025-02-04", "r", "g", "135"], ["136", "2025-03-04", "r", "g", "136"], ["137", "2025-04-01", "r", "g", "137"], ["138", "2025-04-29", "r", "g", "138"], ["139", "2025-05-27", "r", "g", "139"], ["140", "2025-06-24", "e", "g", "140"], ["141", "2025-07-22", "r", "g", "141"], ["142", "2025-08-19", "r", "g", "142"], ["143", "2025-09-16", "r", "g", "143"], ["144", "2025-10-14", "r", "g", "144"], ["145", "2025-11-11", "r", "g", "145"], ["146", "2025-12-09", "r", "g", "146"], ["147", "2026-01-13", "c", "g", "147"], ["148", "2026-02-24", "b", "g", "148"], ["149", "2026-03-24", "n", "g", "149"], ["150", "2026-04-21", "p", "g", "150"], ["1.5", "2005-11-29", "r", "g", "1.8"], ["3.5", "2009-06-30", "r", "g", "1.9.1"], ["3.6", "2010-01-21", "r", "g", "1.9.2"]] }, firefox_android: { releases: [["4", "2011-03-29", "r", "g", "2"], ["5", "2011-06-21", "r", "g", "5"], ["6", "2011-08-16", "r", "g", "6"], ["7", "2011-09-27", "r", "g", "7"], ["8", "2011-11-08", "r", "g", "8"], ["9", "2011-12-21", "r", "g", "9"], ["10", "2012-01-31", "r", "g", "10"], ["14", "2012-06-26", "r", "g", "14"], ["15", "2012-08-28", "r", "g", "15"], ["16", "2012-10-09", "r", "g", "16"], ["17", "2012-11-20", "r", "g", "17"], ["18", "2013-01-08", "r", "g", "18"], ["19", "2013-02-19", "r", "g", "19"], ["20", "2013-04-02", "r", "g", "20"], ["21", "2013-05-14", "r", "g", "21"], ["22", "2013-06-25", "r", "g", "22"], ["23", "2013-08-06", "r", "g", "23"], ["24", "2013-09-17", "r", "g", "24"], ["25", "2013-10-29", "r", "g", "25"], ["26", "2013-12-10", "r", "g", "26"], ["27", "2014-02-04", "r", "g", "27"], ["28", "2014-03-18", "r", "g", "28"], ["29", "2014-04-29", "r", "g", "29"], ["30", "2014-06-10", "r", "g", "30"], ["31", "2014-07-22", "r", "g", "31"], ["32", "2014-09-02", "r", "g", "32"], ["33", "2014-10-14", "r", "g", "33"], ["34", "2014-12-01", "r", "g", "34"], ["35", "2015-01-13", "r", "g", "35"], ["36", "2015-02-27", "r", "g", "36"], ["37", "2015-03-31", "r", "g", "37"], ["38", "2015-05-12", "r", "g", "38"], ["39", "2015-07-02", "r", "g", "39"], ["40", "2015-08-11", "r", "g", "40"], ["41", "2015-09-22", "r", "g", "41"], ["42", "2015-11-03", "r", "g", "42"], ["43", "2015-12-15", "r", "g", "43"], ["44", "2016-01-26", "r", "g", "44"], ["45", "2016-03-08", "r", "g", "45"], ["46", "2016-04-26", "r", "g", "46"], ["47", "2016-06-07", "r", "g", "47"], ["48", "2016-08-02", "r", "g", "48"], ["49", "2016-09-20", "r", "g", "49"], ["50", "2016-11-15", "r", "g", "50"], ["51", "2017-01-24", "r", "g", "51"], ["52", "2017-03-07", "r", "g", "52"], ["53", "2017-04-19", "r", "g", "53"], ["54", "2017-06-13", "r", "g", "54"], ["55", "2017-08-08", "r", "g", "55"], ["56", "2017-09-28", "r", "g", "56"], ["57", "2017-11-28", "r", "g", "57"], ["58", "2018-01-22", "r", "g", "58"], ["59", "2018-03-13", "r", "g", "59"], ["60", "2018-05-09", "r", "g", "60"], ["61", "2018-06-26", "r", "g", "61"], ["62", "2018-09-05", "r", "g", "62"], ["63", "2018-10-23", "r", "g", "63"], ["64", "2018-12-11", "r", "g", "64"], ["65", "2019-01-29", "r", "g", "65"], ["66", "2019-03-19", "r", "g", "66"], ["67", "2019-05-21", "r", "g", "67"], ["68", "2019-07-09", "r", "g", "68"], ["79", "2020-07-28", "r", "g", "79"], ["80", "2020-08-31", "r", "g", "80"], ["81", "2020-09-22", "r", "g", "81"], ["82", "2020-10-20", "r", "g", "82"], ["83", "2020-11-17", "r", "g", "83"], ["84", "2020-12-15", "r", "g", "84"], ["85", "2021-01-26", "r", "g", "85"], ["86", "2021-02-23", "r", "g", "86"], ["87", "2021-03-23", "r", "g", "87"], ["88", "2021-04-19", "r", "g", "88"], ["89", "2021-06-01", "r", "g", "89"], ["90", "2021-07-13", "r", "g", "90"], ["91", "2021-08-10", "r", "g", "91"], ["92", "2021-09-07", "r", "g", "92"], ["93", "2021-10-05", "r", "g", "93"], ["94", "2021-11-02", "r", "g", "94"], ["95", "2021-12-07", "r", "g", "95"], ["96", "2022-01-11", "r", "g", "96"], ["97", "2022-02-08", "r", "g", "97"], ["98", "2022-03-08", "r", "g", "98"], ["99", "2022-04-05", "r", "g", "99"], ["100", "2022-05-03", "r", "g", "100"], ["101", "2022-05-31", "r", "g", "101"], ["102", "2022-06-28", "r", "g", "102"], ["103", "2022-07-26", "r", "g", "103"], ["104", "2022-08-23", "r", "g", "104"], ["105", "2022-09-20", "r", "g", "105"], ["106", "2022-10-18", "r", "g", "106"], ["107", "2022-11-15", "r", "g", "107"], ["108", "2022-12-13", "r", "g", "108"], ["109", "2023-01-17", "r", "g", "109"], ["110", "2023-02-14", "r", "g", "110"], ["111", "2023-03-14", "r", "g", "111"], ["112", "2023-04-11", "r", "g", "112"], ["113", "2023-05-09", "r", "g", "113"], ["114", "2023-06-06", "r", "g", "114"], ["115", "2023-07-04", "r", "g", "115"], ["116", "2023-08-01", "r", "g", "116"], ["117", "2023-08-29", "r", "g", "117"], ["118", "2023-09-26", "r", "g", "118"], ["119", "2023-10-24", "r", "g", "119"], ["120", "2023-11-21", "r", "g", "120"], ["121", "2023-12-19", "r", "g", "121"], ["122", "2024-01-23", "r", "g", "122"], ["123", "2024-02-20", "r", "g", "123"], ["124", "2024-03-19", "r", "g", "124"], ["125", "2024-04-16", "r", "g", "125"], ["126", "2024-05-14", "r", "g", "126"], ["127", "2024-06-11", "r", "g", "127"], ["128", "2024-07-09", "r", "g", "128"], ["129", "2024-08-06", "r", "g", "129"], ["130", "2024-09-03", "r", "g", "130"], ["131", "2024-10-01", "r", "g", "131"], ["132", "2024-10-29", "r", "g", "132"], ["133", "2024-11-26", "r", "g", "133"], ["134", "2025-01-07", "r", "g", "134"], ["135", "2025-02-04", "r", "g", "135"], ["136", "2025-03-04", "r", "g", "136"], ["137", "2025-04-01", "r", "g", "137"], ["138", "2025-04-29", "r", "g", "138"], ["139", "2025-05-27", "r", "g", "139"], ["140", "2025-06-24", "e", "g", "140"], ["141", "2025-07-22", "r", "g", "141"], ["142", "2025-08-19", "r", "g", "142"], ["143", "2025-09-16", "r", "g", "143"], ["144", "2025-10-14", "r", "g", "144"], ["145", "2025-11-11", "r", "g", "145"], ["146", "2025-12-09", "r", "g", "146"], ["147", "2026-01-13", "c", "g", "147"], ["148", "2026-02-24", "b", "g", "148"], ["149", "2026-03-24", "n", "g", "149"], ["150", "2026-04-21", "p", "g", "150"]] }, opera: { releases: [["2", "1996-07-14", "r", null, null], ["3", "1997-12-01", "r", null, null], ["4", "2000-06-28", "r", null, null], ["5", "2000-12-06", "r", null, null], ["6", "2001-12-18", "r", null, null], ["7", "2003-01-28", "r", "p", "1"], ["8", "2005-04-19", "r", "p", "1"], ["9", "2006-06-20", "r", "p", "2"], ["10", "2009-09-01", "r", "p", "2.2"], ["11", "2010-12-16", "r", "p", "2.7"], ["12", "2012-06-14", "r", "p", "2.10"], ["15", "2013-07-02", "r", "b", "28"], ["16", "2013-08-27", "r", "b", "29"], ["17", "2013-10-08", "r", "b", "30"], ["18", "2013-11-19", "r", "b", "31"], ["19", "2014-01-28", "r", "b", "32"], ["20", "2014-03-04", "r", "b", "33"], ["21", "2014-05-06", "r", "b", "34"], ["22", "2014-06-03", "r", "b", "35"], ["23", "2014-07-22", "r", "b", "36"], ["24", "2014-09-02", "r", "b", "37"], ["25", "2014-10-15", "r", "b", "38"], ["26", "2014-12-03", "r", "b", "39"], ["27", "2015-01-27", "r", "b", "40"], ["28", "2015-03-10", "r", "b", "41"], ["29", "2015-04-28", "r", "b", "42"], ["30", "2015-06-09", "r", "b", "43"], ["31", "2015-08-04", "r", "b", "44"], ["32", "2015-09-15", "r", "b", "45"], ["33", "2015-10-27", "r", "b", "46"], ["34", "2015-12-08", "r", "b", "47"], ["35", "2016-02-02", "r", "b", "48"], ["36", "2016-03-15", "r", "b", "49"], ["37", "2016-05-04", "r", "b", "50"], ["38", "2016-06-08", "r", "b", "51"], ["39", "2016-08-02", "r", "b", "52"], ["40", "2016-09-20", "r", "b", "53"], ["41", "2016-10-25", "r", "b", "54"], ["42", "2016-12-13", "r", "b", "55"], ["43", "2017-02-07", "r", "b", "56"], ["44", "2017-03-21", "r", "b", "57"], ["45", "2017-05-10", "r", "b", "58"], ["46", "2017-06-22", "r", "b", "59"], ["47", "2017-08-09", "r", "b", "60"], ["48", "2017-09-27", "r", "b", "61"], ["49", "2017-11-08", "r", "b", "62"], ["50", "2018-01-04", "r", "b", "63"], ["51", "2018-02-07", "r", "b", "64"], ["52", "2018-03-22", "r", "b", "65"], ["53", "2018-05-10", "r", "b", "66"], ["54", "2018-06-28", "r", "b", "67"], ["55", "2018-08-16", "r", "b", "68"], ["56", "2018-09-25", "r", "b", "69"], ["57", "2018-11-28", "r", "b", "70"], ["58", "2019-01-23", "r", "b", "71"], ["60", "2019-04-09", "r", "b", "73"], ["62", "2019-06-27", "r", "b", "75"], ["63", "2019-08-20", "r", "b", "76"], ["64", "2019-10-07", "r", "b", "77"], ["65", "2019-11-13", "r", "b", "78"], ["66", "2020-01-07", "r", "b", "79"], ["67", "2020-03-03", "r", "b", "80"], ["68", "2020-04-22", "r", "b", "81"], ["69", "2020-06-24", "r", "b", "83"], ["70", "2020-07-27", "r", "b", "84"], ["71", "2020-09-15", "r", "b", "85"], ["72", "2020-10-21", "r", "b", "86"], ["73", "2020-12-09", "r", "b", "87"], ["74", "2021-02-02", "r", "b", "88"], ["75", "2021-03-24", "r", "b", "89"], ["76", "2021-04-28", "r", "b", "90"], ["77", "2021-06-09", "r", "b", "91"], ["78", "2021-08-03", "r", "b", "92"], ["79", "2021-09-14", "r", "b", "93"], ["80", "2021-10-05", "r", "b", "94"], ["81", "2021-11-04", "r", "b", "95"], ["82", "2021-12-02", "r", "b", "96"], ["83", "2022-01-19", "r", "b", "97"], ["84", "2022-02-16", "r", "b", "98"], ["85", "2022-03-23", "r", "b", "99"], ["86", "2022-04-20", "r", "b", "100"], ["87", "2022-05-17", "r", "b", "101"], ["88", "2022-06-08", "r", "b", "102"], ["89", "2022-07-07", "r", "b", "103"], ["90", "2022-08-18", "r", "b", "104"], ["91", "2022-09-14", "r", "b", "105"], ["92", "2022-10-19", "r", "b", "106"], ["93", "2022-11-17", "r", "b", "107"], ["94", "2022-12-15", "r", "b", "108"], ["95", "2023-02-01", "r", "b", "109"], ["96", "2023-02-22", "r", "b", "110"], ["97", "2023-03-22", "r", "b", "111"], ["98", "2023-04-20", "r", "b", "112"], ["99", "2023-05-16", "r", "b", "113"], ["100", "2023-06-29", "r", "b", "114"], ["101", "2023-07-26", "r", "b", "115"], ["102", "2023-08-23", "r", "b", "116"], ["103", "2023-10-03", "r", "b", "117"], ["104", "2023-10-23", "r", "b", "118"], ["105", "2023-11-14", "r", "b", "119"], ["106", "2023-12-19", "r", "b", "120"], ["107", "2024-02-07", "r", "b", "121"], ["108", "2024-03-05", "r", "b", "122"], ["109", "2024-03-27", "r", "b", "123"], ["110", "2024-05-14", "r", "b", "124"], ["111", "2024-06-12", "r", "b", "125"], ["112", "2024-07-11", "r", "b", "126"], ["113", "2024-08-22", "r", "b", "127"], ["114", "2024-09-25", "r", "b", "128"], ["115", "2024-11-27", "r", "b", "130"], ["116", "2025-01-08", "r", "b", "131"], ["117", "2025-02-13", "r", "b", "132"], ["118", "2025-04-15", "r", "b", "133"], ["119", "2025-05-13", "r", "b", "134"], ["120", "2025-07-02", "r", "b", "135"], ["121", "2025-08-27", "r", "b", "137"], ["122", "2025-09-11", "r", "b", "138"], ["123", "2025-10-28", "c", "b", "139"], ["124", null, "b", "b", "140"], ["125", null, "n", "b", "141"], ["10.1", "2009-11-23", "r", "p", "2.2"], ["10.5", "2010-03-02", "r", "p", "2.5"], ["10.6", "2010-07-01", "r", "p", "2.6"], ["11.1", "2011-04-12", "r", "p", "2.8"], ["11.5", "2011-06-28", "r", "p", "2.9"], ["11.6", "2011-12-06", "r", "p", "2.10"], ["12.1", "2012-11-20", "r", "p", "2.12"], ["3.5", "1998-11-18", "r", null, null], ["3.6", "1999-05-06", "r", null, null], ["5.1", "2001-04-10", "r", null, null], ["7.1", "2003-04-11", "r", "p", "1"], ["7.2", "2003-09-23", "r", "p", "1"], ["7.5", "2004-05-12", "r", "p", "1"], ["8.5", "2005-09-20", "r", "p", "1"], ["9.1", "2006-12-18", "r", "p", "2"], ["9.2", "2007-04-11", "r", "p", "2"], ["9.5", "2008-06-12", "r", "p", "2.1"], ["9.6", "2008-10-08", "r", "p", "2.1"]] }, opera_android: { releases: [["11", "2011-03-22", "r", "p", "2.7"], ["12", "2012-02-25", "r", "p", "2.10"], ["14", "2013-05-21", "r", "w", "537.31"], ["15", "2013-07-08", "r", "b", "28"], ["16", "2013-09-18", "r", "b", "29"], ["18", "2013-11-20", "r", "b", "31"], ["19", "2014-01-28", "r", "b", "32"], ["20", "2014-03-06", "r", "b", "33"], ["21", "2014-04-22", "r", "b", "34"], ["22", "2014-06-17", "r", "b", "35"], ["24", "2014-09-10", "r", "b", "37"], ["25", "2014-10-16", "r", "b", "38"], ["26", "2014-12-02", "r", "b", "39"], ["27", "2015-01-29", "r", "b", "40"], ["28", "2015-03-10", "r", "b", "41"], ["29", "2015-04-28", "r", "b", "42"], ["30", "2015-06-10", "r", "b", "43"], ["32", "2015-09-23", "r", "b", "45"], ["33", "2015-11-03", "r", "b", "46"], ["34", "2015-12-16", "r", "b", "47"], ["35", "2016-02-04", "r", "b", "48"], ["36", "2016-03-31", "r", "b", "49"], ["37", "2016-06-16", "r", "b", "50"], ["41", "2016-10-25", "r", "b", "54"], ["42", "2017-01-21", "r", "b", "55"], ["43", "2017-09-27", "r", "b", "59"], ["44", "2017-12-11", "r", "b", "60"], ["45", "2018-02-15", "r", "b", "61"], ["46", "2018-05-14", "r", "b", "63"], ["47", "2018-07-23", "r", "b", "66"], ["48", "2018-11-08", "r", "b", "69"], ["49", "2018-12-07", "r", "b", "70"], ["50", "2019-02-18", "r", "b", "71"], ["51", "2019-03-21", "r", "b", "72"], ["52", "2019-05-17", "r", "b", "73"], ["53", "2019-07-11", "r", "b", "74"], ["54", "2019-10-18", "r", "b", "76"], ["55", "2019-12-03", "r", "b", "77"], ["56", "2020-02-06", "r", "b", "78"], ["57", "2020-03-30", "r", "b", "80"], ["58", "2020-05-13", "r", "b", "81"], ["59", "2020-06-30", "r", "b", "83"], ["60", "2020-09-23", "r", "b", "85"], ["61", "2020-12-07", "r", "b", "86"], ["62", "2021-02-16", "r", "b", "87"], ["63", "2021-04-16", "r", "b", "89"], ["64", "2021-05-25", "r", "b", "91"], ["65", "2021-10-20", "r", "b", "92"], ["66", "2021-12-15", "r", "b", "94"], ["67", "2022-01-31", "r", "b", "96"], ["68", "2022-03-30", "r", "b", "99"], ["69", "2022-05-09", "r", "b", "100"], ["70", "2022-06-29", "r", "b", "102"], ["71", "2022-09-16", "r", "b", "104"], ["72", "2022-10-21", "r", "b", "106"], ["73", "2023-01-17", "r", "b", "108"], ["74", "2023-03-13", "r", "b", "110"], ["75", "2023-05-17", "r", "b", "112"], ["76", "2023-06-26", "r", "b", "114"], ["77", "2023-08-31", "r", "b", "115"], ["78", "2023-10-23", "r", "b", "117"], ["79", "2023-12-06", "r", "b", "119"], ["80", "2024-01-25", "r", "b", "120"], ["81", "2024-03-14", "r", "b", "122"], ["82", "2024-05-02", "r", "b", "124"], ["83", "2024-06-25", "r", "b", "126"], ["84", "2024-08-26", "r", "b", "127"], ["85", "2024-10-29", "r", "b", "128"], ["86", "2024-12-02", "r", "b", "130"], ["87", "2025-01-22", "r", "b", "132"], ["88", "2025-03-19", "r", "b", "134"], ["89", "2025-04-29", "r", "b", "135"], ["90", "2025-06-18", "r", "b", "137"], ["91", "2025-08-19", "r", "b", "139"], ["92", "2025-10-08", "r", "b", "140"], ["93", "2025-11-25", "r", "b", "142"], ["94", "2026-01-13", "c", "b", "143"], ["10.1", "2010-11-09", "r", "p", "2.5"], ["11.1", "2011-06-30", "r", "p", "2.8"], ["11.5", "2011-10-12", "r", "p", "2.9"], ["12.1", "2012-10-09", "r", "p", "2.11"]] }, safari: { releases: [["1", "2003-06-23", "r", "w", "85"], ["2", "2005-04-29", "r", "w", "412"], ["3", "2007-10-26", "r", "w", "523.10"], ["4", "2009-06-08", "r", "w", "530.17"], ["5", "2010-06-07", "r", "w", "533.16"], ["6", "2012-07-25", "r", "w", "536.25"], ["7", "2013-10-22", "r", "w", "537.71"], ["8", "2014-10-16", "r", "w", "538.35"], ["9", "2015-09-30", "r", "w", "601.1.56"], ["10", "2016-09-20", "r", "w", "602.1.50"], ["11", "2017-09-19", "r", "w", "604.2.4"], ["12", "2018-09-17", "r", "w", "606.1.36"], ["13", "2019-09-19", "r", "w", "608.2.11"], ["14", "2020-09-16", "r", "w", "610.1.28"], ["15", "2021-09-20", "r", "w", "612.1.27"], ["16", "2022-09-12", "r", "w", "614.1.25"], ["17", "2023-09-18", "r", "w", "616.1.27"], ["18", "2024-09-16", "r", "w", "619.1.26"], ["26", "2025-09-15", "r", "w", "622.1.22"], ["1.1", "2003-10-24", "r", "w", "100"], ["1.2", "2004-02-02", "r", "w", "125"], ["1.3", "2005-04-15", "r", "w", "312"], ["10.1", "2017-03-27", "r", "w", "603.2.1"], ["11.1", "2018-04-12", "r", "w", "605.1.33"], ["12.1", "2019-03-25", "r", "w", "607.1.40"], ["13.1", "2020-03-24", "r", "w", "609.1.20"], ["14.1", "2021-04-26", "r", "w", "611.1.21"], ["15.1", "2021-10-25", "r", "w", "612.2.9"], ["15.2", "2021-12-13", "r", "w", "612.3.6"], ["15.3", "2022-01-26", "r", "w", "612.4.9"], ["15.4", "2022-03-14", "r", "w", "613.1.17"], ["15.5", "2022-05-16", "r", "w", "613.2.7"], ["15.6", "2022-07-20", "r", "w", "613.3.9"], ["16.1", "2022-10-24", "r", "w", "614.2.9"], ["16.2", "2022-12-13", "r", "w", "614.3.7"], ["16.3", "2023-01-23", "r", "w", "614.4.6"], ["16.4", "2023-03-27", "r", "w", "615.1.26"], ["16.5", "2023-05-18", "r", "w", "615.2.9"], ["16.6", "2023-07-24", "r", "w", "615.3.12"], ["17.1", "2023-10-25", "r", "w", "616.2.9"], ["17.2", "2023-12-11", "r", "w", "617.1.17"], ["17.3", "2024-01-22", "r", "w", "617.2.4"], ["17.4", "2024-03-05", "r", "w", "618.1.15"], ["17.5", "2024-05-13", "r", "w", "618.2.12"], ["17.6", "2024-07-29", "r", "w", "618.3.11"], ["18.1", "2024-10-28", "r", "w", "619.2.8"], ["18.2", "2024-12-11", "r", "w", "620.1.16"], ["18.3", "2025-01-27", "r", "w", "620.2.4"], ["18.4", "2025-03-31", "r", "w", "621.1.15"], ["18.5", "2025-05-12", "r", "w", "621.2.5"], ["18.6", "2025-07-29", "r", "w", "621.3.11"], ["26.1", "2025-11-03", "r", "w", "622.2.11"], ["26.2", "2025-12-12", "c", "w", "623.1.14"], ["26.3", "2025-12-15", "b", "w", "623.2.2"], ["3.1", "2008-03-18", "r", "w", "525.13"], ["5.1", "2011-07-20", "r", "w", "534.48"], ["9.1", "2016-03-21", "r", "w", "601.5.17"]] }, safari_ios: { releases: [["1", "2007-06-29", "r", "w", "522.11"], ["2", "2008-07-11", "r", "w", "525.18"], ["3", "2009-06-17", "r", "w", "528.18"], ["4", "2010-06-21", "r", "w", "532.9"], ["5", "2011-10-12", "r", "w", "534.46"], ["6", "2012-09-10", "r", "w", "536.26"], ["7", "2013-09-18", "r", "w", "537.51"], ["8", "2014-09-17", "r", "w", "600.1.4"], ["9", "2015-09-16", "r", "w", "601.1.56"], ["10", "2016-09-13", "r", "w", "602.1.50"], ["11", "2017-09-19", "r", "w", "604.2.4"], ["12", "2018-09-17", "r", "w", "606.1.36"], ["13", "2019-09-19", "r", "w", "608.2.11"], ["14", "2020-09-16", "r", "w", "610.1.28"], ["15", "2021-09-20", "r", "w", "612.1.27"], ["16", "2022-09-12", "r", "w", "614.1.25"], ["17", "2023-09-18", "r", "w", "616.1.27"], ["18", "2024-09-16", "r", "w", "619.1.26"], ["26", "2025-09-15", "r", "w", "622.1.22"], ["10.3", "2017-03-27", "r", "w", "603.2.1"], ["11.3", "2018-03-29", "r", "w", "605.1.33"], ["12.2", "2019-03-25", "r", "w", "607.1.40"], ["13.4", "2020-03-24", "r", "w", "609.1.20"], ["14.5", "2021-04-26", "r", "w", "611.1.21"], ["15.1", "2021-10-25", "r", "w", "612.2.9"], ["15.2", "2021-12-13", "r", "w", "612.3.6"], ["15.3", "2022-01-26", "r", "w", "612.4.9"], ["15.4", "2022-03-14", "r", "w", "613.1.17"], ["15.5", "2022-05-16", "r", "w", "613.2.7"], ["15.6", "2022-07-20", "r", "w", "613.3.9"], ["16.1", "2022-10-24", "r", "w", "614.2.9"], ["16.2", "2022-12-13", "r", "w", "614.3.7"], ["16.3", "2023-01-23", "r", "w", "614.4.6"], ["16.4", "2023-03-27", "r", "w", "615.1.26"], ["16.5", "2023-05-18", "r", "w", "615.2.9"], ["16.6", "2023-07-24", "r", "w", "615.3.12"], ["17.1", "2023-10-25", "r", "w", "616.2.9"], ["17.2", "2023-12-11", "r", "w", "617.1.17"], ["17.3", "2024-01-22", "r", "w", "617.2.4"], ["17.4", "2024-03-05", "r", "w", "618.1.15"], ["17.5", "2024-05-13", "r", "w", "618.2.12"], ["17.6", "2024-07-29", "r", "w", "618.3.11"], ["18.1", "2024-10-28", "r", "w", "619.2.8"], ["18.2", "2024-12-11", "r", "w", "620.1.16"], ["18.3", "2025-01-27", "r", "w", "620.2.4"], ["18.4", "2025-03-31", "r", "w", "621.1.15"], ["18.5", "2025-05-12", "r", "w", "621.2.5"], ["18.6", "2025-07-29", "r", "w", "621.3.11"], ["26.1", "2025-11-03", "r", "w", "622.2.11"], ["26.2", "2025-12-12", "c", "w", "623.1.14"], ["26.3", "2025-12-15", "b", "w", "623.2.2"], ["3.2", "2010-04-03", "r", "w", "531.21"], ["4.2", "2010-11-22", "r", "w", "533.17"], ["9.3", "2016-03-21", "r", "w", "601.5.17"]] }, samsunginternet_android: { releases: [["1.0", "2013-04-27", "r", "w", "535.19"], ["1.5", "2013-09-25", "r", "b", "28"], ["1.6", "2014-04-11", "r", "b", "28"], ["10.0", "2019-08-22", "r", "b", "71"], ["10.2", "2019-10-09", "r", "b", "71"], ["11.0", "2019-12-05", "r", "b", "75"], ["11.2", "2020-03-22", "r", "b", "75"], ["12.0", "2020-06-19", "r", "b", "79"], ["12.1", "2020-07-07", "r", "b", "79"], ["13.0", "2020-12-02", "r", "b", "83"], ["13.2", "2021-01-20", "r", "b", "83"], ["14.0", "2021-04-17", "r", "b", "87"], ["14.2", "2021-06-25", "r", "b", "87"], ["15.0", "2021-08-13", "r", "b", "90"], ["16.0", "2021-11-25", "r", "b", "92"], ["16.2", "2022-03-06", "r", "b", "92"], ["17.0", "2022-05-04", "r", "b", "96"], ["18.0", "2022-08-08", "r", "b", "99"], ["18.1", "2022-09-09", "r", "b", "99"], ["19.0", "2022-11-01", "r", "b", "102"], ["19.1", "2022-11-08", "r", "b", "102"], ["2.0", "2014-10-17", "r", "b", "34"], ["2.1", "2015-01-07", "r", "b", "34"], ["20.0", "2023-02-10", "r", "b", "106"], ["21.0", "2023-05-19", "r", "b", "110"], ["22.0", "2023-07-14", "r", "b", "111"], ["23.0", "2023-10-18", "r", "b", "115"], ["24.0", "2024-01-25", "r", "b", "117"], ["25.0", "2024-04-24", "r", "b", "121"], ["26.0", "2024-06-07", "r", "b", "122"], ["27.0", "2024-11-06", "r", "b", "125"], ["28.0", "2025-04-02", "r", "b", "130"], ["29.0", "2025-10-25", "c", "b", "136"], ["3.0", "2015-04-10", "r", "b", "38"], ["3.2", "2015-08-24", "r", "b", "38"], ["4.0", "2016-03-11", "r", "b", "44"], ["4.2", "2016-08-02", "r", "b", "44"], ["5.0", "2016-12-15", "r", "b", "51"], ["5.2", "2017-04-21", "r", "b", "51"], ["5.4", "2017-05-17", "r", "b", "51"], ["6.0", "2017-08-23", "r", "b", "56"], ["6.2", "2017-10-26", "r", "b", "56"], ["6.4", "2018-02-19", "r", "b", "56"], ["7.0", "2018-03-16", "r", "b", "59"], ["7.2", "2018-06-20", "r", "b", "59"], ["7.4", "2018-09-12", "r", "b", "59"], ["8.0", "2018-07-18", "r", "b", "63"], ["8.2", "2018-12-21", "r", "b", "63"], ["9.0", "2018-09-15", "r", "b", "67"], ["9.2", "2019-04-02", "r", "b", "67"], ["9.4", "2019-07-25", "r", "b", "67"]] }, webview_android: { releases: [["1", "2008-09-23", "r", "w", "523.12"], ["2", "2009-10-26", "r", "w", "530.17"], ["3", "2011-02-22", "r", "w", "534.13"], ["4", "2011-10-18", "r", "w", "534.30"], ["37", "2014-09-03", "r", "b", "37"], ["38", "2014-10-08", "r", "b", "38"], ["39", "2014-11-12", "r", "b", "39"], ["40", "2015-01-21", "r", "b", "40"], ["41", "2015-03-11", "r", "b", "41"], ["42", "2015-04-15", "r", "b", "42"], ["43", "2015-05-27", "r", "b", "43"], ["44", "2015-07-29", "r", "b", "44"], ["45", "2015-09-01", "r", "b", "45"], ["46", "2015-10-14", "r", "b", "46"], ["47", "2015-12-02", "r", "b", "47"], ["48", "2016-01-26", "r", "b", "48"], ["49", "2016-03-09", "r", "b", "49"], ["50", "2016-04-13", "r", "b", "50"], ["51", "2016-06-08", "r", "b", "51"], ["52", "2016-07-27", "r", "b", "52"], ["53", "2016-09-07", "r", "b", "53"], ["54", "2016-10-19", "r", "b", "54"], ["55", "2016-12-06", "r", "b", "55"], ["56", "2017-02-01", "r", "b", "56"], ["57", "2017-03-16", "r", "b", "57"], ["58", "2017-04-25", "r", "b", "58"], ["59", "2017-06-06", "r", "b", "59"], ["60", "2017-08-01", "r", "b", "60"], ["61", "2017-09-05", "r", "b", "61"], ["62", "2017-10-24", "r", "b", "62"], ["63", "2017-12-05", "r", "b", "63"], ["64", "2018-01-23", "r", "b", "64"], ["65", "2018-03-06", "r", "b", "65"], ["66", "2018-04-17", "r", "b", "66"], ["67", "2018-05-31", "r", "b", "67"], ["68", "2018-07-24", "r", "b", "68"], ["69", "2018-09-04", "r", "b", "69"], ["70", "2018-10-17", "r", "b", "70"], ["71", "2018-12-04", "r", "b", "71"], ["72", "2019-01-29", "r", "b", "72"], ["73", "2019-03-12", "r", "b", "73"], ["74", "2019-04-24", "r", "b", "74"], ["75", "2019-06-04", "r", "b", "75"], ["76", "2019-07-30", "r", "b", "76"], ["77", "2019-09-10", "r", "b", "77"], ["78", "2019-10-22", "r", "b", "78"], ["79", "2019-12-17", "r", "b", "79"], ["80", "2020-02-04", "r", "b", "80"], ["81", "2020-04-07", "r", "b", "81"], ["83", "2020-05-19", "r", "b", "83"], ["84", "2020-07-27", "r", "b", "84"], ["85", "2020-08-25", "r", "b", "85"], ["86", "2020-10-20", "r", "b", "86"], ["87", "2020-11-17", "r", "b", "87"], ["88", "2021-01-19", "r", "b", "88"], ["89", "2021-03-02", "r", "b", "89"], ["90", "2021-04-13", "r", "b", "90"], ["91", "2021-05-25", "r", "b", "91"], ["92", "2021-07-20", "r", "b", "92"], ["93", "2021-08-31", "r", "b", "93"], ["94", "2021-09-21", "r", "b", "94"], ["95", "2021-10-19", "r", "b", "95"], ["96", "2021-11-15", "r", "b", "96"], ["97", "2022-01-04", "r", "b", "97"], ["98", "2022-02-01", "r", "b", "98"], ["99", "2022-03-01", "r", "b", "99"], ["100", "2022-03-29", "r", "b", "100"], ["101", "2022-04-26", "r", "b", "101"], ["102", "2022-05-24", "r", "b", "102"], ["103", "2022-06-21", "r", "b", "103"], ["104", "2022-08-02", "r", "b", "104"], ["105", "2022-09-02", "r", "b", "105"], ["106", "2022-09-27", "r", "b", "106"], ["107", "2022-10-25", "r", "b", "107"], ["108", "2022-11-29", "r", "b", "108"], ["109", "2023-01-10", "r", "b", "109"], ["110", "2023-02-07", "r", "b", "110"], ["111", "2023-03-01", "r", "b", "111"], ["112", "2023-04-04", "r", "b", "112"], ["113", "2023-05-02", "r", "b", "113"], ["114", "2023-05-30", "r", "b", "114"], ["115", "2023-07-21", "r", "b", "115"], ["116", "2023-08-15", "r", "b", "116"], ["117", "2023-09-12", "r", "b", "117"], ["118", "2023-10-10", "r", "b", "118"], ["119", "2023-10-31", "r", "b", "119"], ["120", "2023-12-05", "r", "b", "120"], ["121", "2024-01-23", "r", "b", "121"], ["122", "2024-02-20", "r", "b", "122"], ["123", "2024-03-19", "r", "b", "123"], ["124", "2024-04-16", "r", "b", "124"], ["125", "2024-05-14", "r", "b", "125"], ["126", "2024-06-11", "r", "b", "126"], ["127", "2024-07-23", "r", "b", "127"], ["128", "2024-08-20", "r", "b", "128"], ["129", "2024-09-17", "r", "b", "129"], ["130", "2024-10-15", "r", "b", "130"], ["131", "2024-11-12", "r", "b", "131"], ["132", "2025-01-14", "r", "b", "132"], ["133", "2025-02-04", "r", "b", "133"], ["134", "2025-03-04", "r", "b", "134"], ["135", "2025-04-01", "r", "b", "135"], ["136", "2025-04-29", "r", "b", "136"], ["137", "2025-05-27", "r", "b", "137"], ["138", "2025-06-24", "r", "b", "138"], ["139", "2025-08-05", "r", "b", "139"], ["140", "2025-09-02", "r", "b", "140"], ["141", "2025-09-30", "r", "b", "141"], ["142", "2025-10-28", "r", "b", "142"], ["143", "2025-12-02", "r", "b", "143"], ["144", "2026-01-13", "c", "b", "144"], ["145", "2026-02-10", "b", "b", "145"], ["146", "2026-03-10", "n", "b", "146"], ["147", null, "p", "b", "147"], ["1.5", "2009-04-27", "r", "w", "525.20"], ["2.2", "2010-05-20", "r", "w", "533.1"], ["4.4", "2013-12-09", "r", "b", "30"], ["4.4.3", "2014-06-02", "r", "b", "33"]] } };
    var a2 = { ya_android: { releases: [["1.0", "u", "u", "b", "25"], ["1.5", "u", "u", "b", "22"], ["1.6", "u", "u", "b", "25"], ["1.7", "u", "u", "b", "25"], ["1.20", "u", "u", "b", "25"], ["2.5", "u", "u", "b", "25"], ["3.2", "u", "u", "b", "25"], ["4.6", "u", "u", "b", "25"], ["5.3", "u", "u", "b", "25"], ["5.4", "u", "u", "b", "25"], ["7.4", "u", "u", "b", "25"], ["9.6", "u", "u", "b", "25"], ["10.5", "u", "u", "b", "25"], ["11.4", "u", "u", "b", "25"], ["11.5", "u", "u", "b", "25"], ["12.7", "u", "u", "b", "25"], ["13.9", "u", "u", "b", "28"], ["13.10", "u", "u", "b", "28"], ["13.11", "u", "u", "b", "28"], ["13.12", "u", "u", "b", "30"], ["14.2", "u", "u", "b", "32"], ["14.4", "u", "u", "b", "33"], ["14.5", "u", "u", "b", "34"], ["14.7", "u", "u", "b", "35"], ["14.8", "u", "u", "b", "36"], ["14.10", "u", "u", "b", "37"], ["14.12", "u", "u", "b", "38"], ["15.2", "u", "u", "b", "40"], ["15.4", "u", "u", "b", "41"], ["15.6", "u", "u", "b", "42"], ["15.7", "u", "u", "b", "43"], ["15.9", "u", "u", "b", "44"], ["15.10", "u", "u", "b", "45"], ["15.12", "u", "u", "b", "46"], ["16.2", "u", "u", "b", "47"], ["16.3", "u", "u", "b", "47"], ["16.4", "u", "u", "b", "49"], ["16.6", "u", "u", "b", "50"], ["16.7", "u", "u", "b", "51"], ["16.9", "u", "u", "b", "52"], ["16.10", "u", "u", "b", "53"], ["16.11", "u", "u", "b", "54"], ["17.1", "u", "u", "b", "55"], ["17.3", "u", "u", "b", "56"], ["17.4", "u", "u", "b", "57"], ["17.6", "u", "u", "b", "58"], ["17.7", "u", "u", "b", "59"], ["17.9", "u", "u", "b", "60"], ["17.10", "u", "u", "b", "61"], ["17.11", "u", "u", "b", "62"], ["18.1", "u", "u", "b", "63"], ["18.2", "u", "u", "b", "63"], ["18.3", "u", "u", "b", "64"], ["18.4", "u", "u", "b", "65"], ["18.6", "u", "u", "b", "66"], ["18.7", "u", "u", "b", "67"], ["18.9", "u", "u", "b", "68"], ["18.10", "u", "u", "b", "69"], ["18.11", "u", "u", "b", "70"], ["19.1", "u", "u", "b", "71"], ["19.3", "u", "u", "b", "72"], ["19.4", "u", "u", "b", "73"], ["19.5", "u", "u", "b", "75"], ["19.6", "u", "u", "b", "75"], ["19.7", "u", "u", "b", "75"], ["19.9", "u", "u", "b", "76"], ["19.10", "u", "u", "b", "77"], ["19.11", "u", "u", "b", "78"], ["19.12", "u", "u", "b", "78"], ["20.2", "u", "u", "b", "79"], ["20.3", "u", "u", "b", "80"], ["20.4", "u", "u", "b", "81"], ["20.6", "u", "u", "b", "81"], ["20.7", "u", "u", "b", "83"], ["20.8", "2020-09-02", "u", "b", "84"], ["20.9", "2020-09-27", "u", "b", "85"], ["20.11", "2020-11-11", "u", "b", "86"], ["20.12", "2020-12-20", "u", "b", "87"], ["21.1", "2021-12-31", "u", "b", "88"], ["21.2", "u", "u", "b", "88"], ["21.3", "2021-04-04", "u", "b", "89"], ["21.5", "u", "u", "b", "90"], ["21.6", "2021-09-28", "u", "b", "91"], ["21.8", "2021-09-28", "u", "b", "92"], ["21.9", "2021-09-29", "u", "b", "93"], ["21.11", "2021-10-29", "u", "b", "94"], ["22.1", "2021-12-31", "u", "b", "96"], ["22.3", "2022-03-25", "u", "b", "98"], ["22.4", "u", "u", "b", "92"], ["22.5", "2022-05-20", "u", "b", "100"], ["22.7", "2022-07-07", "u", "b", "102"], ["22.8", "u", "u", "b", "104"], ["22.9", "2022-08-27", "u", "b", "104"], ["22.11", "2022-11-11", "u", "b", "106"], ["23.1", "2023-01-10", "u", "b", "108"], ["23.3", "2023-03-26", "u", "b", "110"], ["23.5", "2023-05-19", "u", "b", "112"], ["23.7", "2023-07-06", "u", "b", "114"], ["23.9", "2023-09-13", "u", "b", "116"], ["23.11", "2023-11-15", "u", "b", "118"], ["24.1", "2024-01-18", "u", "b", "120"], ["24.2", "2024-03-25", "u", "b", "120"], ["24.4", "2024-03-27", "u", "b", "122"], ["24.6", "2024-06-04", "u", "b", "124"], ["24.7", "2024-07-18", "u", "b", "126"], ["24.9", "2024-10-01", "u", "b", "126"], ["24.10", "2024-10-11", "u", "b", "128"], ["24.12", "2024-11-30", "u", "b", "130"], ["25.2", "2025-04-24", "u", "b", "132"], ["25.3", "2025-04-23", "u", "b", "132"], ["25.4", "2025-04-23", "u", "b", "134"], ["25.6", "2025-09-04", "u", "b", "136"], ["25.8", "2025-08-30", "u", "b", "138"], ["25.10", "2025-10-09", "u", "b", "140"], ["25.12", "2025-12-07", "u", "b", "142"]] }, uc_android: { releases: [["10.5", "u", "u", "b", "31"], ["10.7", "u", "u", "b", "31"], ["10.8", "u", "u", "b", "31"], ["10.10", "u", "u", "b", "31"], ["11.0", "u", "u", "b", "31"], ["11.1", "u", "u", "b", "40"], ["11.2", "u", "u", "b", "40"], ["11.3", "u", "u", "b", "40"], ["11.4", "u", "u", "b", "40"], ["11.5", "u", "u", "b", "40"], ["11.6", "u", "u", "b", "57"], ["11.8", "u", "u", "b", "57"], ["11.9", "u", "u", "b", "57"], ["12.0", "u", "u", "b", "57"], ["12.1", "u", "u", "b", "57"], ["12.2", "u", "u", "b", "57"], ["12.3", "u", "u", "b", "57"], ["12.4", "u", "u", "b", "57"], ["12.5", "u", "u", "b", "57"], ["12.6", "u", "u", "b", "57"], ["12.7", "u", "u", "b", "57"], ["12.8", "u", "u", "b", "57"], ["12.9", "u", "u", "b", "57"], ["12.10", "u", "u", "b", "57"], ["12.11", "u", "u", "b", "57"], ["12.12", "u", "u", "b", "57"], ["12.13", "u", "u", "b", "57"], ["12.14", "u", "u", "b", "57"], ["13.0", "u", "u", "b", "57"], ["13.1", "u", "u", "b", "57"], ["13.2", "u", "u", "b", "57"], ["13.3", "2020-09-09", "u", "b", "78"], ["13.4", "2021-09-28", "u", "b", "78"], ["13.5", "2023-08-25", "u", "b", "78"], ["13.6", "2023-12-17", "u", "b", "78"], ["13.7", "2023-06-24", "u", "b", "78"], ["13.8", "2022-04-30", "u", "b", "78"], ["13.9", "2022-05-18", "u", "b", "78"], ["15.0", "2022-08-24", "u", "b", "78"], ["15.1", "2022-11-11", "u", "b", "78"], ["15.2", "2023-04-23", "u", "b", "78"], ["15.3", "2023-03-17", "u", "b", "100"], ["15.4", "2023-10-25", "u", "b", "100"], ["15.5", "2023-08-22", "u", "b", "100"], ["16.0", "2023-08-24", "u", "b", "100"], ["16.1", "2023-10-15", "u", "b", "100"], ["16.2", "2023-12-09", "u", "b", "100"], ["16.3", "2024-03-08", "u", "b", "100"], ["16.4", "2024-10-03", "u", "b", "100"], ["16.5", "2024-05-30", "u", "b", "100"], ["16.6", "2024-07-23", "u", "b", "100"], ["17.0", "2024-08-24", "u", "b", "100"], ["17.1", "2024-09-26", "u", "b", "100"], ["17.2", "2024-11-29", "u", "b", "100"], ["17.3", "2025-01-07", "u", "b", "100"], ["17.4", "2025-02-26", "u", "b", "100"], ["17.5", "2025-04-08", "u", "b", "100"], ["17.6", "2025-05-15", "u", "b", "123"], ["17.7", "2025-06-11", "u", "b", "123"], ["17.8", "2025-07-30", "u", "b", "123"], ["18.0", "2025-08-17", "u", "b", "123"], ["18.1", "2025-10-04", "u", "b", "123"], ["18.2", "2025-11-04", "u", "b", "123"], ["18.3", "2025-12-12", "u", "b", "123"], ["18.4", "2026-01-09", "u", "b", "123"], ["18.5", "2026-01-28", "u", "b", "123"]] }, qq_android: { releases: [["6.0", "u", "u", "b", "37"], ["6.1", "u", "u", "b", "37"], ["6.2", "u", "u", "b", "37"], ["6.3", "u", "u", "b", "37"], ["6.4", "u", "u", "b", "37"], ["6.6", "u", "u", "b", "37"], ["6.7", "u", "u", "b", "37"], ["6.8", "u", "u", "b", "37"], ["6.9", "u", "u", "b", "37"], ["7.0", "u", "u", "b", "37"], ["7.1", "u", "u", "b", "37"], ["7.2", "u", "u", "b", "37"], ["7.3", "u", "u", "b", "37"], ["7.4", "u", "u", "b", "37"], ["7.5", "u", "u", "b", "37"], ["7.6", "u", "u", "b", "37"], ["7.7", "u", "u", "b", "37"], ["7.8", "u", "u", "b", "37"], ["7.9", "u", "u", "b", "37"], ["8.0", "u", "u", "b", "37"], ["8.1", "u", "u", "b", "57"], ["8.2", "u", "u", "b", "57"], ["8.3", "u", "u", "b", "57"], ["8.4", "u", "u", "b", "57"], ["8.5", "u", "u", "b", "57"], ["8.6", "u", "u", "b", "57"], ["8.7", "u", "u", "b", "57"], ["8.8", "u", "u", "b", "57"], ["8.9", "u", "u", "b", "57"], ["9.1", "u", "u", "b", "57"], ["9.6", "u", "u", "b", "66"], ["9.7", "u", "u", "b", "66"], ["9.8", "u", "u", "b", "66"], ["10.0", "u", "u", "b", "66"], ["10.1", "u", "u", "b", "66"], ["10.2", "u", "u", "b", "66"], ["10.3", "u", "u", "b", "66"], ["10.4", "u", "u", "b", "66"], ["10.5", "u", "u", "b", "66"], ["10.7", "2020-09-09", "u", "b", "66"], ["10.9", "2020-11-22", "u", "b", "77"], ["11.0", "u", "u", "b", "77"], ["11.2", "2021-01-30", "u", "b", "77"], ["11.3", "2021-03-31", "u", "b", "77"], ["11.7", "2021-11-02", "u", "b", "89"], ["11.9", "u", "u", "b", "89"], ["12.0", "2021-11-04", "u", "b", "89"], ["12.1", "2021-11-05", "u", "b", "89"], ["12.2", "2021-12-07", "u", "b", "89"], ["12.5", "2022-04-07", "u", "b", "89"], ["12.7", "2022-05-21", "u", "b", "89"], ["12.8", "2022-06-30", "u", "b", "89"], ["12.9", "2022-07-26", "u", "b", "89"], ["13.0", "2022-08-15", "u", "b", "89"], ["13.1", "2022-09-10", "u", "b", "89"], ["13.2", "2022-10-26", "u", "b", "89"], ["13.3", "2022-11-09", "u", "b", "89"], ["13.4", "2023-04-26", "u", "b", "98"], ["13.5", "2023-02-06", "u", "b", "98"], ["13.6", "2023-02-09", "u", "b", "98"], ["13.7", "2023-04-21", "u", "b", "98"], ["13.8", "2023-04-21", "u", "b", "98"], ["14.0", "2023-12-12", "u", "b", "98"], ["14.1", "2023-07-16", "u", "b", "98"], ["14.2", "2023-10-14", "u", "b", "109"], ["14.3", "2023-09-13", "u", "b", "109"], ["14.4", "2023-10-31", "u", "b", "109"], ["14.5", "2023-11-12", "u", "b", "109"], ["14.6", "2023-12-24", "u", "b", "109"], ["14.7", "2024-01-18", "u", "b", "109"], ["14.8", "2024-03-04", "u", "b", "109"], ["14.9", "2024-04-09", "u", "b", "109"], ["15.0", "2024-04-17", "u", "b", "109"], ["15.1", "2024-05-18", "u", "b", "109"], ["15.2", "2024-10-24", "u", "b", "109"], ["15.3", "2024-07-28", "u", "b", "109"], ["15.4", "2024-09-07", "u", "b", "109"], ["15.5", "2024-09-24", "u", "b", "109"], ["15.6", "2024-10-24", "u", "b", "109"], ["15.7", "2024-12-03", "u", "b", "109"], ["15.8", "2024-12-11", "u", "b", "109"], ["15.9", "2025-02-01", "u", "b", "109"], ["19.1", "2025-07-08", "u", "b", "121"], ["19.2", "2025-07-15", "u", "b", "121"], ["19.3", "2025-08-31", "u", "b", "121"], ["19.4", "2025-09-20", "u", "b", "121"], ["19.5", "2025-10-23", "u", "b", "121"], ["19.6", "2025-11-17", "u", "b", "121"], ["19.7", "2025-12-18", "u", "b", "121"], ["19.8", "2026-01-20", "u", "b", "121"]] }, kai_os: { releases: [["1.0", "2017-03-01", "u", "g", "37"], ["2.0", "2017-07-01", "u", "g", "48"], ["2.5", "2017-07-01", "u", "g", "48"], ["3.0", "2021-09-01", "u", "g", "84"], ["3.1", "2022-03-01", "u", "g", "84"], ["4.0", "2025-05-01", "u", "g", "123"]] }, facebook_android: { releases: [["66", "u", "u", "b", "48"], ["68", "u", "u", "b", "48"], ["74", "u", "u", "b", "50"], ["75", "u", "u", "b", "50"], ["76", "u", "u", "b", "50"], ["77", "u", "u", "b", "50"], ["78", "u", "u", "b", "50"], ["79", "u", "u", "b", "50"], ["80", "u", "u", "b", "51"], ["81", "u", "u", "b", "51"], ["82", "u", "u", "b", "51"], ["83", "u", "u", "b", "51"], ["84", "u", "u", "b", "51"], ["86", "u", "u", "b", "51"], ["87", "u", "u", "b", "52"], ["88", "u", "u", "b", "52"], ["89", "u", "u", "b", "52"], ["90", "u", "u", "b", "52"], ["91", "u", "u", "b", "52"], ["92", "u", "u", "b", "52"], ["93", "u", "u", "b", "52"], ["94", "u", "u", "b", "52"], ["95", "u", "u", "b", "53"], ["96", "u", "u", "b", "53"], ["97", "u", "u", "b", "53"], ["98", "u", "u", "b", "53"], ["99", "u", "u", "b", "53"], ["100", "u", "u", "b", "54"], ["101", "u", "u", "b", "54"], ["103", "u", "u", "b", "54"], ["104", "u", "u", "b", "54"], ["105", "u", "u", "b", "54"], ["106", "u", "u", "b", "55"], ["107", "u", "u", "b", "55"], ["108", "u", "u", "b", "55"], ["109", "u", "u", "b", "55"], ["110", "u", "u", "b", "55"], ["111", "u", "u", "b", "55"], ["112", "u", "u", "b", "56"], ["113", "u", "u", "b", "56"], ["114", "u", "u", "b", "56"], ["115", "u", "u", "b", "56"], ["116", "u", "u", "b", "56"], ["117", "u", "u", "b", "57"], ["118", "u", "u", "b", "57"], ["119", "u", "u", "b", "57"], ["120", "u", "u", "b", "57"], ["121", "u", "u", "b", "57"], ["122", "u", "u", "b", "58"], ["123", "u", "u", "b", "58"], ["124", "u", "u", "b", "58"], ["125", "u", "u", "b", "58"], ["126", "u", "u", "b", "58"], ["127", "u", "u", "b", "58"], ["128", "u", "u", "b", "58"], ["129", "u", "u", "b", "58"], ["130", "u", "u", "b", "59"], ["131", "u", "u", "b", "59"], ["132", "u", "u", "b", "59"], ["133", "u", "u", "b", "59"], ["134", "u", "u", "b", "59"], ["135", "u", "u", "b", "59"], ["136", "u", "u", "b", "59"], ["137", "u", "u", "b", "59"], ["138", "u", "u", "b", "60"], ["140", "u", "u", "b", "60"], ["142", "u", "u", "b", "61"], ["143", "u", "u", "b", "61"], ["144", "u", "u", "b", "61"], ["145", "u", "u", "b", "61"], ["146", "u", "u", "b", "61"], ["147", "u", "u", "b", "61"], ["148", "u", "u", "b", "61"], ["149", "u", "u", "b", "62"], ["150", "u", "u", "b", "62"], ["151", "u", "u", "b", "62"], ["152", "u", "u", "b", "62"], ["153", "u", "u", "b", "63"], ["154", "u", "u", "b", "63"], ["155", "u", "u", "b", "63"], ["156", "u", "u", "b", "63"], ["157", "u", "u", "b", "64"], ["158", "u", "u", "b", "64"], ["159", "u", "u", "b", "64"], ["160", "u", "u", "b", "64"], ["161", "u", "u", "b", "64"], ["162", "u", "u", "b", "64"], ["163", "u", "u", "b", "65"], ["164", "u", "u", "b", "65"], ["165", "u", "u", "b", "65"], ["166", "u", "u", "b", "65"], ["167", "u", "u", "b", "65"], ["168", "u", "u", "b", "65"], ["169", "u", "u", "b", "66"], ["170", "u", "u", "b", "66"], ["171", "u", "u", "b", "66"], ["172", "u", "u", "b", "66"], ["173", "u", "u", "b", "66"], ["174", "u", "u", "b", "66"], ["175", "u", "u", "b", "67"], ["176", "u", "u", "b", "67"], ["177", "u", "u", "b", "67"], ["178", "u", "u", "b", "67"], ["180", "u", "u", "b", "67"], ["181", "u", "u", "b", "67"], ["182", "u", "u", "b", "67"], ["183", "u", "u", "b", "68"], ["184", "u", "u", "b", "68"], ["185", "u", "u", "b", "68"], ["186", "u", "u", "b", "68"], ["187", "u", "u", "b", "68"], ["188", "u", "u", "b", "68"], ["202", "u", "u", "b", "71"], ["227", "u", "u", "b", "75"], ["228", "u", "u", "b", "75"], ["229", "u", "u", "b", "75"], ["230", "u", "u", "b", "75"], ["231", "u", "u", "b", "75"], ["233", "u", "u", "b", "76"], ["235", "u", "u", "b", "76"], ["236", "u", "u", "b", "76"], ["237", "u", "u", "b", "76"], ["238", "u", "u", "b", "76"], ["240", "u", "u", "b", "77"], ["241", "u", "u", "b", "77"], ["242", "u", "u", "b", "77"], ["243", "u", "u", "b", "77"], ["244", "u", "u", "b", "78"], ["245", "u", "u", "b", "78"], ["246", "u", "u", "b", "78"], ["247", "u", "u", "b", "78"], ["248", "u", "u", "b", "78"], ["249", "u", "u", "b", "78"], ["250", "u", "u", "b", "78"], ["251", "u", "u", "b", "79"], ["252", "u", "u", "b", "79"], ["253", "u", "u", "b", "79"], ["254", "u", "u", "b", "79"], ["255", "u", "u", "b", "79"], ["256", "u", "u", "b", "80"], ["257", "u", "u", "b", "80"], ["258", "u", "u", "b", "80"], ["259", "u", "u", "b", "80"], ["260", "u", "u", "b", "80"], ["261", "u", "u", "b", "80"], ["262", "u", "u", "b", "80"], ["263", "u", "u", "b", "80"], ["264", "u", "u", "b", "80"], ["265", "u", "u", "b", "80"], ["266", "u", "u", "b", "81"], ["267", "u", "u", "b", "81"], ["268", "u", "u", "b", "81"], ["269", "u", "u", "b", "81"], ["270", "u", "u", "b", "81"], ["271", "u", "u", "b", "81"], ["272", "u", "u", "b", "83"], ["273", "u", "u", "b", "83"], ["274", "u", "u", "b", "83"], ["275", "u", "u", "b", "83"], ["297", "2020-12-02", "u", "b", "86"], ["348", "2021-12-19", "u", "b", "96"], ["399", "2023-02-04", "u", "b", "109"], ["400", "2023-02-10", "u", "b", "109"], ["420", "2023-06-28", "u", "b", "114"], ["430", "2023-09-03", "u", "b", "116"], ["434", "2023-10-05", "u", "b", "117"], ["436", "2023-10-13", "u", "b", "117"], ["437", "u", "u", "b", "118"], ["438", "2023-10-28", "u", "b", "118"], ["439", "2023-11-11", "u", "b", "119"], ["440", "2023-11-12", "u", "b", "119"], ["441", "2023-11-20", "u", "b", "119"], ["442", "2023-11-29", "u", "b", "119"], ["443", "2023-12-07", "u", "b", "120"], ["444", "2023-12-13", "u", "b", "120"], ["445", "2023-12-21", "u", "b", "120"], ["446", "2024-01-06", "u", "b", "120"], ["447", "2024-01-12", "u", "b", "120"], ["448", "2024-01-29", "u", "b", "121"], ["449", "2024-02-02", "u", "b", "121"], ["450", "2024-02-05", "u", "b", "121"], ["451", "2024-02-17", "u", "b", "121"], ["452", "2024-02-25", "u", "b", "122"], ["453", "2024-02-28", "u", "b", "122"], ["454", "2024-03-04", "u", "b", "122"], ["465", "2024-07-07", "u", "b", "126"], ["466", "u", "u", "b", "126"], ["469", "u", "u", "b", "126"], ["471", "2024-07-10", "u", "b", "126"], ["472", "2024-07-11", "u", "b", "126"], ["474", "2024-07-30", "u", "b", "127"], ["475", "2024-08-01", "u", "b", "127"], ["476", "2024-08-09", "u", "b", "127"], ["477", "2024-08-16", "u", "b", "127"], ["478", "2024-08-21", "u", "b", "128"], ["479", "2024-08-31", "u", "b", "128"], ["480", "2024-09-07", "u", "b", "128"], ["481", "2024-09-14", "u", "b", "128"], ["482", "2024-09-20", "u", "b", "129"], ["483", "2024-09-27", "u", "b", "129"], ["484", "2024-10-04", "u", "b", "129"], ["485", "2024-10-11", "u", "b", "129"], ["486", "2024-10-18", "u", "b", "130"], ["487", "2024-10-26", "u", "b", "130"], ["488", "2024-11-02", "u", "b", "130"], ["489", "2024-11-09", "u", "b", "130"], ["494", "2024-12-26", "u", "b", "131"], ["497", "2025-01-26", "u", "b", "132"], ["503", "2025-03-12", "u", "b", "134"], ["514", "2025-05-28", "u", "b", "136"], ["515", "2025-05-31", "u", "b", "137"]] }, instagram_android: { releases: [["23", "u", "u", "b", "62"], ["24", "u", "u", "b", "62"], ["25", "u", "u", "b", "62"], ["26", "u", "u", "b", "63"], ["27", "u", "u", "b", "63"], ["28", "u", "u", "b", "63"], ["29", "u", "u", "b", "63"], ["30", "u", "u", "b", "63"], ["31", "u", "u", "b", "64"], ["32", "u", "u", "b", "64"], ["33", "u", "u", "b", "64"], ["34", "u", "u", "b", "64"], ["35", "u", "u", "b", "65"], ["36", "u", "u", "b", "65"], ["37", "u", "u", "b", "65"], ["38", "u", "u", "b", "65"], ["39", "u", "u", "b", "65"], ["40", "u", "u", "b", "65"], ["41", "u", "u", "b", "65"], ["42", "u", "u", "b", "66"], ["43", "u", "u", "b", "66"], ["44", "u", "u", "b", "66"], ["45", "u", "u", "b", "66"], ["46", "u", "u", "b", "66"], ["47", "u", "u", "b", "66"], ["48", "u", "u", "b", "67"], ["49", "u", "u", "b", "67"], ["50", "u", "u", "b", "67"], ["51", "u", "u", "b", "67"], ["52", "u", "u", "b", "67"], ["53", "u", "u", "b", "67"], ["54", "u", "u", "b", "67"], ["55", "u", "u", "b", "67"], ["56", "u", "u", "b", "68"], ["57", "u", "u", "b", "68"], ["58", "u", "u", "b", "68"], ["59", "u", "u", "b", "68"], ["60", "u", "u", "b", "68"], ["61", "u", "u", "b", "68"], ["65", "u", "u", "b", "69"], ["66", "u", "u", "b", "69"], ["68", "u", "u", "b", "69"], ["72", "u", "u", "b", "70"], ["74", "u", "u", "b", "71"], ["75", "u", "u", "b", "71"], ["79", "u", "u", "b", "71"], ["81", "u", "u", "b", "72"], ["82", "u", "u", "b", "72"], ["83", "u", "u", "b", "72"], ["84", "u", "u", "b", "73"], ["86", "u", "u", "b", "73"], ["95", "u", "u", "b", "74"], ["96", "u", "u", "b", "80"], ["97", "u", "u", "b", "80"], ["98", "u", "u", "b", "80"], ["103", "u", "u", "b", "80"], ["104", "u", "u", "b", "80"], ["117", "u", "u", "b", "80"], ["118", "u", "u", "b", "80"], ["119", "u", "u", "b", "80"], ["120", "u", "u", "b", "80"], ["121", "u", "u", "b", "80"], ["127", "u", "u", "b", "80"], ["128", "u", "u", "b", "80"], ["129", "u", "u", "b", "80"], ["130", "u", "u", "b", "80"], ["131", "u", "u", "b", "80"], ["132", "u", "u", "b", "80"], ["133", "u", "u", "b", "80"], ["134", "u", "u", "b", "80"], ["135", "u", "u", "b", "80"], ["136", "u", "u", "b", "80"], ["137", "u", "u", "b", "81"], ["138", "u", "u", "b", "81"], ["139", "u", "u", "b", "81"], ["140", "u", "u", "b", "81"], ["141", "u", "u", "b", "81"], ["142", "u", "u", "b", "81"], ["143", "u", "u", "b", "83"], ["144", "u", "u", "b", "83"], ["145", "u", "u", "b", "83"], ["146", "u", "u", "b", "83"], ["153", "u", "u", "b", "84"], ["163", "u", "u", "b", "92"], ["164", "u", "u", "b", "92"], ["230", "u", "u", "b", "92"], ["258", "2022-11-04", "u", "b", "106"], ["259", "2022-11-04", "u", "b", "106"], ["279", "2023-12-31", "u", "b", "109"], ["281", "u", "u", "b", "109"], ["288", "u", "u", "b", "114"], ["289", "2023-12-21", "u", "b", "114"], ["290", "2023-12-30", "u", "b", "114"], ["292", "u", "u", "b", "115"], ["295", "u", "u", "b", "115"], ["296", "u", "u", "b", "115"], ["297", "u", "u", "b", "115"], ["298", "2024-01-11", "u", "b", "115"], ["299", "u", "u", "b", "115"], ["300", "u", "u", "b", "116"], ["301", "2024-01-12", "u", "b", "116"], ["302", "u", "u", "b", "117"], ["303", "u", "u", "b", "117"], ["304", "u", "u", "b", "117"], ["305", "u", "u", "b", "117"], ["306", "2024-01-17", "u", "b", "118"], ["307", "u", "u", "b", "118"], ["308", "2024-01-19", "u", "b", "118"], ["309", "u", "u", "b", "119"], ["310", "u", "u", "b", "119"], ["311", "u", "u", "b", "120"], ["312", "u", "u", "b", "120"], ["313", "u", "u", "b", "120"], ["314", "u", "u", "b", "120"], ["315", "2024-01-19", "u", "b", "120"], ["316", "2024-01-25", "u", "b", "120"], ["317", "2024-02-03", "u", "b", "121"], ["318", "2024-02-16", "u", "b", "121"], ["320", "2024-03-04", "u", "b", "121"], ["321", "2024-03-07", "u", "b", "122"], ["338", "2024-07-06", "u", "b", "126"], ["346", "2024-09-01", "u", "b", "127"], ["347", "2024-09-11", "u", "b", "127"], ["349", "2024-09-20", "u", "b", "128"], ["355", "2024-11-06", "u", "b", "130"], ["366", "u", "u", "b", "132"], ["367", "2025-02-15", "u", "b", "132"], ["378", "2025-05-03", "u", "b", "135"], ["381", "2025-06-19", "u", "b", "137"], ["382", "2025-06-19", "u", "b", "137"], ["383", "2025-06-18", "u", "b", "137"], ["384", "2025-06-16", "u", "b", "137"], ["385", "2025-06-27", "u", "b", "137"], ["387", "2025-07-09", "u", "b", "137"], ["390", "2025-07-26", "u", "b", "138"], ["392", "2025-08-12", "u", "b", "138"], ["394", "2025-08-26", "u", "b", "139"], ["395", "2025-09-13", "u", "b", "139"], ["396", "2025-09-20", "u", "b", "139"], ["397", "2025-09-19", "u", "b", "139"], ["399", "2025-09-28", "u", "b", "140"], ["400", "2025-10-06", "u", "b", "141"], ["401", "2025-10-08", "u", "b", "141"], ["404", "2025-10-31", "u", "b", "141"], ["406", "2025-11-16", "u", "b", "141"], ["407", "2025-11-23", "u", "b", "142"], ["408", "2025-11-28", "u", "b", "142"], ["409", "2025-12-16", "u", "b", "143"], ["410", "2025-12-17", "u", "b", "143"], ["411", "2026-01-07", "u", "b", "143"]] } };
    var r2 = [["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "4", s: "4", si: "3.2" }], ["2019-03-25", { c: "66", ca: "66", e: "16", f: "57", fa: "57", s: "12.1", si: "12.2" }], ["2019-03-25", { c: "66", ca: "66", e: "16", f: "57", fa: "57", s: "12.1", si: "12.2" }], ["2024-03-19", { c: "116", ca: "116", e: "116", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2025-06-26", { c: "138", ca: "138", e: "138", f: "118", fa: "118", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "17", ca: "18", e: "12", f: "5", fa: "5", s: "6", si: "6" }], ["2026-01-13", { c: "125", ca: "125", e: "125", f: "147", fa: "147", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-04-16", { c: "123", ca: "123", e: "123", f: "125", fa: "125", s: "17.4", si: "17.4" }], ["2020-01-15", { c: "37", ca: "37", e: "79", f: "27", fa: "27", s: "9.1", si: "9.3" }], ["2024-07-09", { c: "77", ca: "77", e: "79", f: "128", fa: "128", s: "17.4", si: "17.4" }], ["2016-06-07", { c: "32", ca: "30", e: "12", f: "47", fa: "47", s: "8", si: "8" }], ["2023-07-04", { c: "112", ca: "112", e: "112", f: "115", fa: "115", s: "16", si: "16" }], ["2015-09-30", { c: "43", ca: "43", e: "12", f: "16", fa: "16", s: "9", si: "9" }], ["2022-03-14", { c: "84", ca: "84", e: "84", f: "80", fa: "80", s: "15.4", si: "15.4" }], ["2023-10-24", { c: "103", ca: "103", e: "103", f: "119", fa: "119", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-03-14", { c: "92", ca: "92", e: "92", f: "90", fa: "90", s: "15.4", si: "15.4" }], ["2023-07-04", { c: "110", ca: "110", e: "110", f: "115", fa: "115", s: "16", si: "16" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "34", fa: "34", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "37", fa: "37", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "37", fa: "37", s: "10", si: "10" }], ["2022-08-23", { c: "97", ca: "97", e: "97", f: "104", fa: "104", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "69", ca: "69", e: "79", f: "62", fa: "62", s: "12", si: "12" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "38", fa: "38", s: "10", si: "10" }], ["2024-01-25", { c: "121", ca: "121", e: "121", f: "115", fa: "115", s: "16.4", si: "16.4" }], ["2024-03-05", { c: "117", ca: "117", e: "117", f: "119", fa: "119", s: "17.4", si: "17.4" }], ["2016-09-20", { c: "47", ca: "47", e: "14", f: "43", fa: "43", s: "10", si: "10" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "5" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3", fa: "4", s: "4", si: "3.2" }], ["2018-05-09", { c: "66", ca: "66", e: "14", f: "60", fa: "60", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "38", fa: "38", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2021-09-20", { c: "88", ca: "88", e: "88", f: "89", fa: "89", s: "15", si: "15" }], ["2017-04-05", { c: "55", ca: "55", e: "15", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2024-06-11", { c: "76", ca: "76", e: "79", f: "127", fa: "127", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "63", ca: "63", e: "79", f: "57", fa: "57", s: "12", si: "12" }], ["2020-01-15", { c: "63", ca: "63", e: "79", f: "57", fa: "57", s: "12", si: "12" }], ["2025-04-01", { c: "133", ca: "133", e: "133", f: "137", fa: "137", s: "18.4", si: "18.4" }], ["2025-11-11", { c: "90", ca: "90", e: "90", f: "145", fa: "145", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "3" }], ["2021-04-26", { c: "66", ca: "66", e: "79", f: "76", fa: "79", s: "14.1", si: "14.5" }], ["2023-02-09", { c: "110", ca: "110", e: "110", f: "86", fa: "86", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "4", si: "3.2" }], ["2020-01-15", { c: "54", ca: "54", e: "79", f: "63", fa: "63", s: "10.1", si: "10.3" }], ["2024-01-26", { c: "85", ca: "85", e: "121", f: "93", fa: "93", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-03-14", { c: "37", ca: "37", e: "79", f: "47", fa: "47", s: "15.4", si: "15.4" }], ["2024-09-16", { c: "76", ca: "76", e: "79", f: "103", fa: "103", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.6", fa: "4", s: "1.3", si: "1" }], ["2022-03-14", { c: "1", ca: "18", e: "12", f: "25", fa: "25", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "35", ca: "59", e: "79", f: "30", fa: "54", s: "8", si: "8" }], ["2015-07-29", { c: "21", ca: "25", e: "12", f: "22", fa: "22", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.6", fa: "4", s: "1.3", si: "1" }], ["2015-07-29", { c: "21", ca: "25", e: "12", f: "22", fa: "22", s: "5.1", si: "4" }], ["2015-07-29", { c: "25", ca: "25", e: "12", f: "13", fa: "14", s: "7", si: "7" }], ["2016-09-20", { c: "30", ca: "30", e: "12", f: "49", fa: "49", s: "8", si: "8" }], ["2015-07-29", { c: "21", ca: "25", e: "12", f: "9", fa: "18", s: "5.1", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2016-09-20", { c: "30", ca: "30", e: "12", f: "4", fa: "4", s: "10", si: "10" }], ["2020-01-15", { c: "16", ca: "18", e: "79", f: "10", fa: "10", s: "6", si: "6" }], ["2015-07-29", { c: "\u226415", ca: "18", e: "12", f: "10", fa: "10", s: "\u22644", si: "\u22643.2" }], ["2018-04-12", { c: "39", ca: "42", e: "14", f: "31", fa: "31", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "3.2" }], ["2020-09-16", { c: "67", ca: "67", e: "79", f: "68", fa: "68", s: "14", si: "14" }], ["2021-09-20", { c: "67", ca: "67", e: "79", f: "68", fa: "68", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2017-02-01", { c: "56", ca: "56", e: "12", f: "50", fa: "50", s: "9.1", si: "9.3" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "14", s: "1", si: "3" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "5" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "29", fa: "29", s: "5.1", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2022-03-14", { c: "54", ca: "54", e: "79", f: "38", fa: "38", s: "15.4", si: "15.4" }], ["2017-09-19", { c: "50", ca: "51", e: "15", f: "44", fa: "44", s: "11", si: "11" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "26", ca: "28", e: "12", f: "16", fa: "16", s: "7", si: "7" }], ["2023-06-06", { c: "110", ca: "110", e: "110", f: "114", fa: "114", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "2", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "2", si: "1" }], ["2024-09-16", { c: "99", ca: "99", e: "99", f: "28", fa: "28", s: "18", si: "18" }], ["2023-04-11", { c: "99", ca: "99", e: "99", f: "112", fa: "112", s: "16.4", si: "16.4" }], ["2023-12-11", { c: "99", ca: "99", e: "99", f: "113", fa: "113", s: "17.2", si: "17.2" }], ["2023-04-11", { c: "99", ca: "99", e: "99", f: "112", fa: "112", s: "16.4", si: "16.4" }], ["2023-12-11", { c: "118", ca: "118", e: "118", f: "97", fa: "97", s: "17.2", si: "17.2" }], ["2020-01-15", { c: "51", ca: "51", e: "79", f: "43", fa: "43", s: "11", si: "11" }], ["2020-01-15", { c: "57", ca: "57", e: "79", f: "53", fa: "53", s: "11.1", si: "11.3" }], ["2022-03-14", { c: "99", ca: "99", e: "99", f: "97", fa: "97", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "49", ca: "49", e: "79", f: "47", fa: "47", s: "9", si: "9" }], ["2015-07-29", { c: "27", ca: "27", e: "12", f: "1", fa: "4", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2015-09-22", { c: "4", ca: "18", e: "12", f: "41", fa: "41", s: "5", si: "4.2" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "4" }], ["2024-03-05", { c: "105", ca: "105", e: "105", f: "106", fa: "106", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2016-03-08", { c: "42", ca: "42", e: "13", f: "45", fa: "45", s: "9", si: "9" }], ["2023-09-18", { c: "117", ca: "117", e: "117", f: "63", fa: "63", s: "17", si: "17" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "71", fa: "79", s: "13.1", si: "13" }], ["2020-01-15", { c: "55", ca: "55", e: "79", f: "49", fa: "49", s: "12.1", si: "12.2" }], ["2023-11-02", { c: "119", ca: "119", e: "119", f: "54", fa: "54", s: "13.1", si: "13.4" }], ["2017-03-27", { c: "41", ca: "41", e: "12", f: "22", fa: "22", s: "10.1", si: "10.3" }], ["2025-03-31", { c: "121", ca: "121", e: "121", f: "127", fa: "127", s: "18.4", si: "18.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "15", si: "15" }], ["2023-02-14", { c: "58", ca: "58", e: "79", f: "110", fa: "110", s: "10", si: "10" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "16.2", si: "16.2" }], ["2022-02-03", { c: "98", ca: "98", e: "98", f: "96", fa: "96", s: "13", si: "13" }], ["2020-01-15", { c: "53", ca: "53", e: "79", f: "31", fa: "31", s: "11.1", si: "11.3" }], ["2017-03-07", { c: "50", ca: "50", e: "12", f: "52", fa: "52", s: "9", si: "9" }], ["2020-07-28", { c: "50", ca: "50", e: "12", f: "71", fa: "79", s: "9", si: "9" }], ["2025-08-19", { c: "137", ca: "137", e: "137", f: "142", fa: "142", s: "17", si: "17" }], ["2017-04-19", { c: "26", ca: "26", e: "12", f: "53", fa: "53", s: "7", si: "7" }], ["2023-05-09", { c: "80", ca: "80", e: "80", f: "113", fa: "113", s: "16.4", si: "16.4" }], ["2020-11-17", { c: "69", ca: "69", e: "79", f: "83", fa: "83", s: "12.1", si: "12.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "4", fa: "4", s: "3", si: "1" }], ["2018-12-11", { c: "40", ca: "40", e: "18", f: "51", fa: "64", s: "10.1", si: "10.3" }], ["2023-03-27", { c: "73", ca: "73", e: "79", f: "101", fa: "101", s: "16.4", si: "16.4" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-09-12", { c: "105", ca: "105", e: "105", f: "101", fa: "101", s: "16", si: "16" }], ["2023-09-18", { c: "83", ca: "83", e: "83", f: "107", fa: "107", s: "17", si: "17" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-03-14", { c: "52", ca: "52", e: "79", f: "69", fa: "79", s: "15.4", si: "15.4" }], ["2022-07-26", { c: "52", ca: "52", e: "79", f: "103", fa: "103", s: "15.4", si: "15.4" }], ["2023-02-14", { c: "105", ca: "105", e: "105", f: "110", fa: "110", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-09-15", { c: "108", ca: "108", e: "108", f: "130", fa: "130", s: "26", si: "26" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "4", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2025-03-04", { c: "51", ca: "51", e: "12", f: "136", fa: "136", s: "5.1", si: "5" }], ["2024-09-16", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "3.2" }], ["2023-12-11", { c: "85", ca: "85", e: "85", f: "68", fa: "68", s: "17.2", si: "17.2" }], ["2023-09-18", { c: "91", ca: "91", e: "91", f: "33", fa: "33", s: "17", si: "17" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "25", s: "3", si: "1" }], ["2023-12-11", { c: "59", ca: "59", e: "79", f: "98", fa: "98", s: "17.2", si: "17.2" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "60", fa: "60", s: "13", si: "13" }], ["2016-08-02", { c: "25", ca: "25", e: "14", f: "23", fa: "23", s: "7", si: "7" }], ["2020-01-15", { c: "46", ca: "46", e: "79", f: "31", fa: "31", s: "10.1", si: "10.3" }], ["2015-09-30", { c: "28", ca: "28", e: "12", f: "22", fa: "22", s: "9", si: "9" }], ["2020-01-15", { c: "61", ca: "61", e: "79", f: "55", fa: "55", s: "11", si: "11" }], ["2015-07-29", { c: "16", ca: "18", e: "12", f: "4", fa: "4", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "3.2" }], ["2017-04-05", { c: "49", ca: "49", e: "15", f: "31", fa: "31", s: "9.1", si: "9.3" }], ["2017-10-24", { c: "62", ca: "62", e: "14", f: "22", fa: "22", s: "10", si: "10" }], ["2015-07-29", { c: "\u22644", ca: "18", e: "12", f: "\u22642", fa: "4", s: "\u22643.1", si: "\u22642" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "6", fa: "6", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-02-20", { c: "111", ca: "111", e: "111", f: "123", fa: "123", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "4", si: "5" }], ["2020-01-15", { c: "10", ca: "18", e: "79", f: "4", fa: "4", s: "5", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "55", fa: "55", s: "11.1", si: "11.3" }], ["2020-01-15", { c: "12", ca: "18", e: "79", f: "49", fa: "49", s: "6", si: "6" }], ["2025-09-16", { c: "131", ca: "131", e: "131", f: "143", fa: "143", s: "18.4", si: "18.4" }], ["2024-09-03", { c: "120", ca: "120", e: "120", f: "130", fa: "130", s: "17.2", si: "17.2" }], ["2023-09-18", { c: "31", ca: "31", e: "12", f: "6", fa: "6", s: "17", si: "4.2" }], ["2015-07-29", { c: "15", ca: "18", e: "12", f: "1", fa: "4", s: "6", si: "6" }], ["2022-03-14", { c: "37", ca: "37", e: "79", f: "98", fa: "98", s: "15.4", si: "15.4" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "49", fa: "49", s: "16.4", si: "16.4" }], ["2023-08-01", { c: "17", ca: "18", e: "79", f: "116", fa: "116", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "58", ca: "58", e: "79", f: "53", fa: "53", s: "13", si: "13" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-08-01", { c: "42", ca: "42", e: "79", f: "47", fa: "116", s: "13", si: "12.2" }], ["\u22642017-04-05", { c: "1", ca: "18", e: "\u226415", f: "3", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-12-12", { c: "128", ca: "128", e: "128", f: "20", fa: "20", s: "26.2", si: "26.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "61", ca: "61", e: "79", f: "33", fa: "33", s: "11", si: "11" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "1", fa: "4", s: "4", si: "3.2" }], ["2016-03-21", { c: "31", ca: "31", e: "12", f: "12", fa: "14", s: "9.1", si: "9.3" }], ["2019-09-19", { c: "14", ca: "18", e: "18", f: "20", fa: "20", s: "10.1", si: "13" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "3.2" }], ["2022-05-03", { c: "98", ca: "98", e: "98", f: "100", fa: "100", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "43", ca: "43", e: "79", f: "46", fa: "46", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "1.5", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2019-03-25", { c: "42", ca: "42", e: "13", f: "38", fa: "38", s: "12.1", si: "12.2" }], ["2021-11-02", { c: "77", ca: "77", e: "79", f: "94", fa: "94", s: "13.1", si: "13.4" }], ["2021-09-20", { c: "93", ca: "93", e: "93", f: "91", fa: "91", s: "15", si: "15" }], ["2025-12-12", { c: "76", ca: "76", e: "79", f: "89", fa: "89", s: "26.2", si: "26.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "118", fa: "118", s: "15.4", si: "15.4" }], ["2017-03-27", { c: "52", ca: "52", e: "14", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2018-04-30", { c: "38", ca: "38", e: "17", f: "47", fa: "35", s: "9", si: "9" }], ["2021-09-20", { c: "56", ca: "56", e: "79", f: "51", fa: "51", s: "15", si: "15" }], ["2020-09-16", { c: "63", ca: "63", e: "17", f: "47", fa: "36", s: "14", si: "14" }], ["2020-02-07", { c: "40", ca: "40", e: "80", f: "58", fa: "28", s: "9", si: "9" }], ["2016-06-07", { c: "34", ca: "34", e: "12", f: "47", fa: "47", s: "9.1", si: "9.3" }], ["2017-03-27", { c: "42", ca: "42", e: "14", f: "39", fa: "39", s: "10.1", si: "10.3" }], ["2024-10-29", { c: "103", ca: "103", e: "103", f: "132", fa: "132", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "8", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "5" }], ["2020-01-15", { c: "38", ca: "38", e: "79", f: "28", fa: "28", s: "10.1", si: "10.3" }], ["2021-04-26", { c: "89", ca: "89", e: "89", f: "82", fa: "82", s: "14.1", si: "14.5" }], ["2016-09-07", { c: "53", ca: "53", e: "12", f: "35", fa: "35", s: "9.1", si: "9.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2021-11-02", { c: "46", ca: "46", e: "79", f: "94", fa: "94", s: "11", si: "11" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-09-30", { c: "29", ca: "29", e: "12", f: "20", fa: "20", s: "9", si: "9" }], ["2021-04-26", { c: "84", ca: "84", e: "84", f: "63", fa: "63", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-04-04", { c: "135", ca: "135", e: "135", f: "129", fa: "129", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "24", fa: "24", s: "3.1", si: "2" }], ["2022-03-14", { c: "86", ca: "86", e: "86", f: "85", fa: "85", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "58", fa: "58", s: "11.1", si: "11.3" }], ["2016-09-20", { c: "36", ca: "36", e: "14", f: "39", fa: "39", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-12-12", { c: "109", ca: "109", e: "109", f: "145", fa: "145", s: "26.2", si: "26.2" }], ["2021-09-07", { c: "56", ca: "56", e: "79", f: "92", fa: "92", s: "11", si: "11" }], ["2017-04-05", { c: "48", ca: "48", e: "15", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "33", ca: "33", e: "79", f: "32", fa: "32", s: "9", si: "9" }], ["2020-01-15", { c: "35", ca: "35", e: "79", f: "41", fa: "41", s: "10", si: "10" }], ["2020-03-24", { c: "79", ca: "79", e: "17", f: "62", fa: "62", s: "13.1", si: "13.4" }], ["2022-11-15", { c: "101", ca: "101", e: "101", f: "107", fa: "107", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-07-25", { c: "127", ca: "127", e: "127", f: "118", fa: "118", s: "17", si: "17" }], ["2020-01-15", { c: "62", ca: "62", e: "79", f: "62", fa: "62", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-01-06", { c: "97", ca: "97", e: "97", f: "34", fa: "34", s: "9", si: "9" }], ["2023-03-27", { c: "97", ca: "97", e: "97", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2023-03-27", { c: "97", ca: "97", e: "97", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2023-03-27", { c: "97", ca: "97", e: "97", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-03-13", { c: "111", ca: "111", e: "111", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "52", ca: "52", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "63", ca: "63", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "34", ca: "34", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "52", ca: "52", e: "79", f: "34", fa: "34", s: "9.1", si: "9.3" }], ["2018-09-05", { c: "62", ca: "62", e: "17", f: "62", fa: "62", s: "11", si: "11" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-09-12", { c: "89", ca: "89", e: "79", f: "89", fa: "89", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2023-03-27", { c: "77", ca: "77", e: "79", f: "98", fa: "98", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-27", { c: "35", ca: "35", e: "12", f: "29", fa: "32", s: "10.1", si: "10.3" }], ["2016-09-20", { c: "39", ca: "39", e: "13", f: "26", fa: "26", s: "10", si: "10" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "3.5", fa: "4", s: "5", si: "\u22643" }], ["2015-07-29", { c: "11", ca: "18", e: "12", f: "3.5", fa: "4", s: "5.1", si: "5" }], ["2024-09-16", { c: "125", ca: "125", e: "125", f: "128", fa: "128", s: "18", si: "18" }], ["2020-01-15", { c: "71", ca: "71", e: "79", f: "65", fa: "65", s: "12.1", si: "12.2" }], ["2024-06-11", { c: "111", ca: "111", e: "111", f: "127", fa: "127", s: "16.2", si: "16.2" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "3.6", fa: "4", s: "7", si: "7" }], ["2017-10-17", { c: "57", ca: "57", e: "16", f: "52", fa: "52", s: "10.1", si: "10.3" }], ["2022-10-27", { c: "107", ca: "107", e: "107", f: "66", fa: "66", s: "16", si: "16" }], ["2022-03-14", { c: "37", ca: "37", e: "15", f: "48", fa: "48", s: "15.4", si: "15.4" }], ["2023-12-19", { c: "105", ca: "105", e: "105", f: "121", fa: "121", s: "15.4", si: "15.4" }], ["2020-03-24", { c: "74", ca: "74", e: "79", f: "67", fa: "67", s: "13.1", si: "13.4" }], ["2015-07-29", { c: "16", ca: "18", e: "12", f: "11", fa: "14", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4" }], ["2020-01-15", { c: "54", ca: "54", e: "79", f: "63", fa: "63", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2020-01-15", { c: "65", ca: "65", e: "79", f: "52", fa: "52", s: "12.1", si: "12.2" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "4", fa: "4", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "36", fa: "36", s: "9", si: "9" }], ["2024-09-16", { c: "87", ca: "87", e: "87", f: "88", fa: "88", s: "18", si: "18" }], ["2022-04-28", { c: "101", ca: "101", e: "101", f: "96", fa: "96", s: "15", si: "15" }], ["2023-09-18", { c: "106", ca: "106", e: "106", f: "98", fa: "98", s: "17", si: "17" }], ["2023-09-18", { c: "88", ca: "55", e: "88", f: "43", fa: "43", s: "17", si: "17" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-10-03", { c: "106", ca: "106", e: "106", f: "97", fa: "97", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "17", fa: "17", s: "5", si: "4" }], ["2020-01-15", { c: "20", ca: "25", e: "79", f: "25", fa: "25", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-04-13", { c: "81", ca: "81", e: "81", f: "26", fa: "26", s: "13.1", si: "13.4" }], ["2021-10-05", { c: "41", ca: "41", e: "79", f: "93", fa: "93", s: "10", si: "10" }], ["2023-09-18", { c: "113", ca: "113", e: "113", f: "89", fa: "89", s: "17", si: "17" }], ["2020-01-15", { c: "66", ca: "66", e: "79", f: "50", fa: "50", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-03-27", { c: "89", ca: "89", e: "89", f: "108", fa: "108", s: "16.4", si: "16.4" }], ["2020-01-15", { c: "39", ca: "39", e: "79", f: "51", fa: "51", s: "10", si: "10" }], ["2021-09-20", { c: "58", ca: "58", e: "79", f: "51", fa: "51", s: "15", si: "15" }], ["2022-08-05", { c: "104", ca: "104", e: "104", f: "72", fa: "79", s: "14.1", si: "14.5" }], ["2023-04-11", { c: "102", ca: "102", e: "102", f: "112", fa: "112", s: "15.5", si: "15.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-11-12", { c: "1", ca: "18", e: "13", f: "19", fa: "19", s: "1.2", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.6", fa: "4", s: "3", si: "1" }], ["2021-04-26", { c: "20", ca: "25", e: "12", f: "57", fa: "57", s: "14.1", si: "5" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "3" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "6", fa: "6", s: "3.1", si: "2" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3", fa: "4", s: "4", si: "3" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3.6", fa: "4", s: "4", si: "3.2" }], ["2025-08-19", { c: "13", ca: "132", e: "13", f: "50", fa: "142", s: "11.1", si: "18.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "29", fa: "29", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-16", { c: "4", ca: "57", e: "12", f: "23", fa: "52", s: "3.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2021-12-07", { c: "66", ca: "66", e: "79", f: "95", fa: "79", s: "12.1", si: "12.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2018-12-11", { c: "41", ca: "41", e: "12", f: "64", fa: "64", s: "9", si: "9" }], ["2019-03-25", { c: "58", ca: "58", e: "16", f: "55", fa: "55", s: "12.1", si: "12.2" }], ["2017-09-28", { c: "24", ca: "25", e: "12", f: "29", fa: "56", s: "10", si: "10" }], ["2021-04-26", { c: "81", ca: "81", e: "81", f: "86", fa: "86", s: "14.1", si: "14.5" }], ["2025-03-04", { c: "129", ca: "129", e: "129", f: "136", fa: "136", s: "16.4", si: "16.4" }], ["2021-04-26", { c: "72", ca: "72", e: "79", f: "78", fa: "79", s: "14.1", si: "14.5" }], ["2020-09-16", { c: "74", ca: "74", e: "79", f: "75", fa: "79", s: "14", si: "14" }], ["2019-09-19", { c: "63", ca: "63", e: "18", f: "58", fa: "58", s: "13", si: "13" }], ["2020-09-16", { c: "71", ca: "71", e: "79", f: "76", fa: "79", s: "14", si: "14" }], ["2024-04-16", { c: "87", ca: "87", e: "87", f: "125", fa: "125", s: "14.1", si: "14.5" }], ["2025-12-12", { c: "135", ca: "135", e: "135", f: "144", fa: "144", s: "26.2", si: "26.2" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "82", fa: "82", s: "14", si: "14" }], ["2018-04-12", { c: "55", ca: "55", e: "15", f: "52", fa: "52", s: "11.1", si: "11.3" }], ["2020-01-15", { c: "41", ca: "41", e: "79", f: "36", fa: "36", s: "8", si: "8" }], ["2025-03-31", { c: "122", ca: "122", e: "122", f: "131", fa: "131", s: "18.4", si: "18.4" }], ["2015-07-29", { c: "38", ca: "38", e: "12", f: "13", fa: "14", s: "7", si: "7" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "1", fa: "4", s: "5", si: "4.2" }], ["2018-05-09", { c: "61", ca: "61", e: "16", f: "60", fa: "60", s: "11", si: "11" }], ["2026-01-13", { c: "91", ca: "91", e: "91", f: "147", fa: "147", s: "15", si: "15" }], ["2023-06-06", { c: "80", ca: "80", e: "80", f: "114", fa: "114", s: "15", si: "15" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "4" }], ["2025-04-29", { c: "123", ca: "123", e: "123", f: "138", fa: "138", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "6", fa: "6", s: "1.2", si: "1" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-12-12", { c: "77", ca: "77", e: "79", f: "122", fa: "122", s: "26.2", si: "26.2" }], ["2020-01-15", { c: "48", ca: "48", e: "79", f: "50", fa: "50", s: "11", si: "11" }], ["2016-09-20", { c: "49", ca: "49", e: "14", f: "44", fa: "44", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-11-21", { c: "109", ca: "109", e: "109", f: "120", fa: "120", s: "16.4", si: "16.4" }], ["2024-05-13", { c: "123", ca: "123", e: "123", f: "120", fa: "120", s: "17.5", si: "17.5" }], ["2020-07-28", { c: "83", ca: "83", e: "83", f: "69", fa: "79", s: "13", si: "13" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-11", { c: "113", ca: "113", e: "113", f: "112", fa: "112", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2025-09-15", { c: "46", ca: "46", e: "79", f: "127", fa: "127", s: "5", si: "26" }], ["2020-01-15", { c: "46", ca: "46", e: "79", f: "39", fa: "39", s: "11.1", si: "11.3" }], ["2021-01-26", { c: "50", ca: "50", e: "79", f: "85", fa: "85", s: "11.1", si: "11.3" }], ["2020-01-15", { c: "65", ca: "65", e: "79", f: "50", fa: "50", s: "9", si: "9" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-19", { c: "77", ca: "77", e: "79", f: "121", fa: "121", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "6", s: "4", si: "3.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-09-16", { c: "85", ca: "85", e: "85", f: "79", fa: "79", s: "14", si: "14" }], ["2021-09-20", { c: "89", ca: "89", e: "89", f: "66", fa: "66", s: "15", si: "15" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "21", fa: "21", s: "7", si: "7" }], ["2015-07-29", { c: "38", ca: "38", e: "12", f: "13", fa: "14", s: "8", si: "8" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "5" }], ["2020-01-15", { c: "24", ca: "25", e: "79", f: "35", fa: "35", s: "7", si: "7" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "53", fa: "53", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "9", ca: "18", e: "12", f: "6", fa: "6", s: "5.1", si: "5" }], ["2023-01-12", { c: "109", ca: "109", e: "109", f: "4", fa: "4", s: "5.1", si: "5" }], ["2022-04-28", { c: "101", ca: "101", e: "101", f: "63", fa: "63", s: "15.4", si: "15.4" }], ["2017-09-19", { c: "53", ca: "53", e: "12", f: "36", fa: "36", s: "11", si: "11" }], ["2020-02-04", { c: "80", ca: "80", e: "12", f: "42", fa: "42", s: "8", si: "12.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2023-03-27", { c: "104", ca: "104", e: "104", f: "102", fa: "102", s: "16.4", si: "16.4" }], ["2021-04-26", { c: "49", ca: "49", e: "79", f: "25", fa: "25", s: "14.1", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2023-03-27", { c: "60", ca: "60", e: "18", f: "57", fa: "57", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2018-10-02", { c: "6", ca: "18", e: "18", f: "56", fa: "56", s: "6", si: "10.3" }], ["2020-07-28", { c: "79", ca: "79", e: "79", f: "75", fa: "79", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "46", ca: "46", e: "79", f: "66", fa: "66", s: "11", si: "11" }], ["2015-07-29", { c: "18", ca: "18", e: "12", f: "1", fa: "4", s: "1.3", si: "1" }], ["2020-01-15", { c: "41", ca: "41", e: "79", f: "32", fa: "32", s: "8", si: "8" }], ["2020-01-15", { c: "\u226479", ca: "\u226479", e: "79", f: "\u226423", fa: "\u226423", s: "\u22649.1", si: "\u22649.3" }], ["2022-09-02", { c: "105", ca: "105", e: "105", f: "103", fa: "103", s: "15.6", si: "15.6" }], ["2023-09-18", { c: "66", ca: "66", e: "79", f: "115", fa: "115", s: "17", si: "17" }], ["2022-09-12", { c: "55", ca: "55", e: "79", f: "72", fa: "79", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-07", { c: "50", ca: "50", e: "12", f: "52", fa: "52", s: "9", si: "9" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "14", fa: "14", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2026-01-13", { c: "102", ca: "102", e: "102", f: "147", fa: "147", s: "26.2", si: "26.2" }], ["2021-10-25", { c: "57", ca: "57", e: "12", f: "58", fa: "58", s: "15", si: "15.1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-12-11", { c: "120", ca: "120", e: "120", f: "117", fa: "117", s: "17.2", si: "17.2" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "84", fa: "84", s: "9", si: "9" }], ["2023-03-27", { c: "20", ca: "42", e: "14", f: "22", fa: "22", s: "7", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "2" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "9", si: "9" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "2" }], ["2020-09-16", { c: "85", ca: "85", e: "85", f: "79", fa: "79", s: "14", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-07-28", { c: "75", ca: "75", e: "79", f: "70", fa: "79", s: "13", si: "13" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2020-01-15", { c: "32", ca: "32", e: "79", f: "36", fa: "36", s: "10", si: "10" }], ["2022-03-14", { c: "93", ca: "93", e: "93", f: "92", fa: "92", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "32", ca: "32", e: "79", f: "36", fa: "36", s: "10", si: "10" }], ["2015-07-29", { c: "24", ca: "25", e: "12", f: "24", fa: "24", s: "8", si: "8" }], ["2021-04-26", { c: "80", ca: "80", e: "80", f: "71", fa: "79", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "10", fa: "10", s: "8", si: "8" }], ["2015-07-29", { c: "10", ca: "18", e: "12", f: "6", fa: "6", s: "8", si: "8" }], ["2015-07-29", { c: "29", ca: "29", e: "12", f: "24", fa: "24", s: "8", si: "8" }], ["2016-08-02", { c: "27", ca: "27", e: "14", f: "29", fa: "29", s: "8", si: "8" }], ["2018-04-30", { c: "24", ca: "25", e: "17", f: "25", fa: "25", s: "8", si: "9" }], ["2021-04-26", { c: "35", ca: "35", e: "12", f: "25", fa: "25", s: "14.1", si: "14.5" }], ["2023-03-27", { c: "69", ca: "69", e: "79", f: "105", fa: "105", s: "16.4", si: "16.4" }], ["2023-05-09", { c: "111", ca: "111", e: "111", f: "113", fa: "113", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "1.5", fa: "4", s: "4", si: "3.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "2", si: "1" }], ["\u22642020-03-24", { c: "\u226480", ca: "\u226480", e: "\u226480", f: "1.5", fa: "4", s: "\u226413.1", si: "\u226413.4" }], ["2020-01-15", { c: "66", ca: "66", e: "79", f: "58", fa: "58", s: "11.1", si: "11.3" }], ["2023-03-27", { c: "108", ca: "109", e: "108", f: "111", fa: "111", s: "16.4", si: "16.4" }], ["2023-03-27", { c: "94", ca: "94", e: "94", f: "88", fa: "88", s: "16.4", si: "16.4" }], ["2017-04-05", { c: "1", ca: "18", e: "15", f: "1.5", fa: "4", s: "1.2", si: "1" }], ["\u22642018-10-02", { c: "10", ca: "18", e: "\u226418", f: "4", fa: "4", s: "7", si: "7" }], ["2023-09-18", { c: "113", ca: "113", e: "113", f: "66", fa: "66", s: "17", si: "17" }], ["2022-09-12", { c: "90", ca: "90", e: "90", f: "81", fa: "81", s: "16", si: "16" }], ["2020-03-24", { c: "68", ca: "68", e: "79", f: "61", fa: "61", s: "13.1", si: "13.4" }], ["2018-10-02", { c: "23", ca: "25", e: "18", f: "49", fa: "49", s: "7", si: "7" }], ["2022-09-12", { c: "63", ca: "63", e: "18", f: "59", fa: "59", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2019-01-29", { c: "50", ca: "50", e: "12", f: "65", fa: "65", s: "10", si: "10" }], ["2024-12-11", { c: "15", ca: "18", e: "79", f: "95", fa: "95", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "1.5", fa: "4", s: "5", si: "4" }], ["2015-07-29", { c: "33", ca: "33", e: "12", f: "18", fa: "18", s: "7", si: "7" }], ["2024-03-22", { c: "123", ca: "123", e: "123", f: "\u226466", fa: "\u226466", s: "\u226412", si: "\u226412" }], ["2021-04-26", { c: "60", ca: "60", e: "79", f: "84", fa: "84", s: "14.1", si: "14.5" }], ["2025-09-15", { c: "124", ca: "124", e: "124", f: "128", fa: "128", s: "26", si: "26" }], ["2023-03-27", { c: "94", ca: "94", e: "94", f: "99", fa: "99", s: "16.4", si: "16.4" }], ["2015-09-16", { c: "6", ca: "18", e: "12", f: "7", fa: "7", s: "8", si: "9" }], ["2022-09-12", { c: "44", ca: "44", e: "79", f: "46", fa: "46", s: "16", si: "16" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2016-03-21", { c: "38", ca: "38", e: "13", f: "38", fa: "38", s: "9.1", si: "9.3" }], ["2020-01-15", { c: "57", ca: "57", e: "79", f: "51", fa: "51", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "47", ca: "47", e: "79", f: "51", fa: "51", s: "9", si: "9" }], ["2020-01-15", { c: "59", ca: "59", e: "79", f: "3", fa: "4", s: "8", si: "8" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3.6", fa: "4", s: "4", si: "3.2" }], ["2020-07-28", { c: "55", ca: "55", e: "12", f: "59", fa: "79", s: "13", si: "13" }], ["2025-01-27", { c: "116", ca: "116", e: "116", f: "125", fa: "125", s: "17", si: "18.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3", fa: "4", s: "4", si: "3.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "76", ca: "76", e: "79", f: "67", fa: "67", s: "12.1", si: "13" }], ["2022-05-31", { c: "96", ca: "96", e: "96", f: "101", fa: "101", s: "14.1", si: "14.5" }], ["2020-01-15", { c: "74", ca: "74", e: "79", f: "63", fa: "64", s: "10.1", si: "10.3" }], ["2023-12-11", { c: "73", ca: "73", e: "79", f: "78", fa: "79", s: "17.2", si: "17.2" }], ["2023-12-11", { c: "86", ca: "86", e: "86", f: "101", fa: "101", s: "17.2", si: "17.2" }], ["2023-06-06", { c: "1", ca: "18", e: "12", f: "1", fa: "114", s: "1.1", si: "1" }], ["2025-05-01", { c: "136", ca: "136", e: "136", f: "97", fa: "97", s: "15.4", si: "15.4" }], ["2019-09-19", { c: "63", ca: "63", e: "12", f: "6", fa: "6", s: "13", si: "13" }], ["2015-07-29", { c: "6", ca: "18", e: "12", f: "6", fa: "6", s: "6", si: "7" }], ["2015-07-29", { c: "32", ca: "32", e: "12", f: "29", fa: "29", s: "8", si: "8" }], ["2020-07-28", { c: "76", ca: "76", e: "79", f: "71", fa: "79", s: "13", si: "13" }], ["2020-09-16", { c: "85", ca: "85", e: "85", f: "79", fa: "79", s: "14", si: "14" }], ["2018-10-02", { c: "63", ca: "63", e: "18", f: "58", fa: "58", s: "11.1", si: "11.3" }], ["2025-01-07", { c: "128", ca: "128", e: "128", f: "134", fa: "134", s: "18.2", si: "18.2" }], ["2024-03-05", { c: "119", ca: "119", e: "119", f: "121", fa: "121", s: "17.4", si: "17.4" }], ["2016-09-20", { c: "49", ca: "49", e: "12", f: "18", fa: "18", s: "10", si: "10" }], ["2023-03-27", { c: "50", ca: "50", e: "17", f: "44", fa: "48", s: "16", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2020-03-24", { c: "63", ca: "63", e: "79", f: "49", fa: "49", s: "13.1", si: "13.4" }], ["2020-07-28", { c: "71", ca: "71", e: "79", f: "69", fa: "79", s: "12.1", si: "12.2" }], ["2021-04-26", { c: "87", ca: "87", e: "87", f: "70", fa: "79", s: "14.1", si: "14.5" }], ["2026-01-13", { c: "118", ca: "118", e: "118", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2026-01-13", { c: "111", ca: "111", e: "111", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2020-07-28", { c: "1", ca: "18", e: "13", f: "78", fa: "79", s: "4", si: "3.2" }], ["2024-01-23", { c: "119", ca: "119", e: "119", f: "122", fa: "122", s: "17.2", si: "17.2" }], ["2021-09-20", { c: "85", ca: "85", e: "85", f: "87", fa: "87", s: "15", si: "15" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-05-01", { c: "136", ca: "136", e: "136", f: "134", fa: "134", s: "18.2", si: "18.2" }], ["2024-07-09", { c: "85", ca: "85", e: "85", f: "128", fa: "128", s: "16.4", si: "16.4" }], ["2024-09-16", { c: "125", ca: "125", e: "125", f: "128", fa: "128", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.6", fa: "4", s: "5", si: "4" }], ["2015-07-29", { c: "24", ca: "25", e: "12", f: "23", fa: "23", s: "7", si: "7" }], ["2023-03-27", { c: "69", ca: "69", e: "79", f: "99", fa: "99", s: "16.4", si: "16.4" }], ["2024-10-29", { c: "83", ca: "83", e: "83", f: "132", fa: "132", s: "15.4", si: "15.4" }], ["2025-05-27", { c: "134", ca: "134", e: "134", f: "139", fa: "139", s: "18.4", si: "18.4" }], ["2024-07-09", { c: "111", ca: "111", e: "111", f: "128", fa: "128", s: "16.4", si: "16.4" }], ["2020-07-28", { c: "64", ca: "64", e: "79", f: "69", fa: "79", s: "13.1", si: "13.4" }], ["2022-09-12", { c: "68", ca: "68", e: "79", f: "62", fa: "62", s: "16", si: "16" }], ["2018-10-23", { c: "1", ca: "18", e: "12", f: "63", fa: "63", s: "3", si: "1" }], ["2023-03-27", { c: "54", ca: "54", e: "17", f: "45", fa: "45", s: "16.4", si: "16.4" }], ["2017-09-19", { c: "29", ca: "29", e: "12", f: "35", fa: "35", s: "11", si: "11" }], ["2020-07-27", { c: "84", ca: "84", e: "84", f: "67", fa: "67", s: "9.1", si: "9.3" }], ["2026-01-13", { c: "111", ca: "111", e: "111", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2020-01-15", { c: "65", ca: "65", e: "79", f: "52", fa: "52", s: "12.1", si: "12.2" }], ["2026-01-13", { c: "111", ca: "111", e: "111", f: "147", fa: "147", s: "17.2", si: "17.2" }], ["2023-11-21", { c: "111", ca: "111", e: "111", f: "120", fa: "120", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-05-17", { c: "125", ca: "125", e: "125", f: "118", fa: "118", s: "17.2", si: "17.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "38", fa: "38", s: "5", si: "4.2" }], ["2024-12-11", { c: "128", ca: "128", e: "128", f: "38", fa: "38", s: "18.2", si: "18.2" }], ["2024-12-11", { c: "84", ca: "84", e: "84", f: "38", fa: "38", s: "18.2", si: "18.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "69", ca: "69", e: "79", f: "65", fa: "65", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2025-12-09", { c: "118", ca: "118", e: "118", f: "146", fa: "146", s: "17.4", si: "17.4" }], ["2020-01-15", { c: "27", ca: "27", e: "79", f: "32", fa: "32", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2023-03-27", { c: "38", ca: "39", e: "79", f: "43", fa: "43", s: "16.4", si: "16.4" }], ["2025-03-31", { c: "84", ca: "84", e: "84", f: "126", fa: "126", s: "16.4", si: "18.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "2" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "113", fa: "113", s: "17", si: "17" }], ["2022-03-14", { c: "61", ca: "61", e: "79", f: "36", fa: "36", s: "15.4", si: "15.4" }], ["2020-09-16", { c: "61", ca: "61", e: "79", f: "36", fa: "36", s: "14", si: "14" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "1", fa: "4", s: "3", si: "1" }], ["2020-01-15", { c: "69", ca: "69", e: "79", f: "68", fa: "68", s: "11", si: "11" }], ["2024-10-01", { c: "80", ca: "80", e: "80", f: "131", fa: "131", s: "16.1", si: "16.1" }], ["2025-12-12", { c: "121", ca: "121", e: "121", f: "64", fa: "64", s: "26.2", si: "26.2" }], ["2024-12-11", { c: "94", ca: "94", e: "94", f: "97", fa: "97", s: "18.2", si: "18.2" }], ["2024-12-11", { c: "121", ca: "121", e: "121", f: "64", fa: "64", s: "18.2", si: "18.2" }], ["2025-12-12", { c: "114", ca: "114", e: "114", f: "109", fa: "109", s: "26.2", si: "26.2" }], ["2023-10-13", { c: "118", ca: "118", e: "118", f: "118", fa: "118", s: "17", si: "17" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "4", fa: "4", s: "5", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-07", { c: "11", ca: "18", e: "12", f: "52", fa: "52", s: "5.1", si: "5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2020-01-15", { c: "6", ca: "18", e: "79", f: "6", fa: "45", s: "5", si: "5" }], ["2023-03-27", { c: "65", ca: "65", e: "79", f: "61", fa: "61", s: "16.4", si: "16.4" }], ["2018-04-30", { c: "45", ca: "45", e: "17", f: "44", fa: "44", s: "11.1", si: "11.3" }], ["2015-07-29", { c: "38", ca: "38", e: "12", f: "13", fa: "14", s: "8", si: "8" }], ["2024-06-11", { c: "122", ca: "122", e: "122", f: "127", fa: "127", s: "17", si: "17" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "5" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "5" }], ["2020-01-15", { c: "53", ca: "53", e: "79", f: "63", fa: "63", s: "10", si: "10" }], ["2020-07-28", { c: "73", ca: "73", e: "79", f: "72", fa: "79", s: "13.1", si: "13.4" }], ["2020-01-15", { c: "37", ca: "37", e: "79", f: "62", fa: "62", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "37", ca: "37", e: "79", f: "54", fa: "54", s: "10.1", si: "10.3" }], ["2021-12-13", { c: "68", ca: "89", e: "79", f: "79", fa: "79", s: "15.2", si: "15.2" }], ["2020-01-15", { c: "53", ca: "53", e: "79", f: "63", fa: "63", s: "10", si: "10" }], ["2023-03-27", { c: "92", ca: "92", e: "92", f: "92", fa: "92", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2020-01-15", { c: "19", ca: "25", e: "79", f: "4", fa: "4", s: "6", si: "6" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "2" }], ["2020-01-15", { c: "18", ca: "18", e: "79", f: "55", fa: "55", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2018-09-05", { c: "33", ca: "33", e: "14", f: "49", fa: "62", s: "7", si: "7" }], ["2017-11-28", { c: "9", ca: "47", e: "12", f: "2", fa: "57", s: "5.1", si: "5" }], ["2020-01-15", { c: "60", ca: "60", e: "79", f: "55", fa: "55", s: "11.1", si: "11.3" }], ["2017-03-27", { c: "38", ca: "38", e: "13", f: "38", fa: "38", s: "10.1", si: "10.3" }], ["2020-01-15", { c: "70", ca: "70", e: "79", f: "3", fa: "4", s: "10.1", si: "10.3" }], ["2024-08-06", { c: "117", ca: "117", e: "117", f: "129", fa: "129", s: "17.5", si: "17.5" }], ["2024-05-17", { c: "125", ca: "125", e: "125", f: "126", fa: "126", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-09-16", { c: "77", ca: "77", e: "79", f: "65", fa: "65", s: "14", si: "14" }], ["2019-09-19", { c: "56", ca: "56", e: "16", f: "59", fa: "59", s: "13", si: "13" }], ["2023-12-05", { c: "119", ca: "120", e: "85", f: "65", fa: "65", s: "11.1", si: "11.3" }], ["2023-09-18", { c: "61", ca: "61", e: "79", f: "57", fa: "57", s: "17", si: "17" }], ["2022-06-28", { c: "67", ca: "67", e: "79", f: "102", fa: "102", s: "14.1", si: "14.5" }], ["2022-03-14", { c: "92", ca: "92", e: "92", f: "90", fa: "90", s: "15.4", si: "15.4" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "29", fa: "29", s: "9", si: "9" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "40", fa: "40", s: "9", si: "9" }], ["2020-01-15", { c: "73", ca: "73", e: "79", f: "67", fa: "67", s: "13", si: "13" }], ["2016-09-20", { c: "34", ca: "34", e: "12", f: "31", fa: "31", s: "10", si: "10" }], ["2017-04-05", { c: "57", ca: "57", e: "15", f: "48", fa: "48", s: "10", si: "10" }], ["2015-09-30", { c: "41", ca: "41", e: "12", f: "34", fa: "34", s: "9", si: "9" }], ["2015-09-30", { c: "41", ca: "36", e: "12", f: "24", fa: "24", s: "9", si: "9" }], ["2020-08-27", { c: "85", ca: "85", e: "85", f: "77", fa: "79", s: "13.1", si: "13.4" }], ["2015-09-30", { c: "41", ca: "36", e: "12", f: "17", fa: "17", s: "9", si: "9" }], ["2020-01-15", { c: "66", ca: "66", e: "79", f: "61", fa: "61", s: "12", si: "12" }], ["2023-10-24", { c: "111", ca: "111", e: "111", f: "119", fa: "119", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2022-03-14", { c: "98", ca: "98", e: "98", f: "94", fa: "94", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2023-09-15", { c: "117", ca: "117", e: "117", f: "71", fa: "79", s: "16", si: "16" }], ["2015-09-30", { c: "28", ca: "28", e: "12", f: "22", fa: "22", s: "9", si: "9" }], ["2016-09-20", { c: "2", ca: "18", e: "12", f: "49", fa: "49", s: "4", si: "3.2" }], ["2020-01-15", { c: "1", ca: "18", e: "79", f: "3", fa: "4", s: "3", si: "2" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "3", fa: "4", s: "6", si: "6" }], ["2015-09-30", { c: "38", ca: "38", e: "12", f: "36", fa: "36", s: "9", si: "9" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2021-08-10", { c: "42", ca: "42", e: "79", f: "91", fa: "91", s: "13.1", si: "13.4" }], ["2018-10-02", { c: "1", ca: "18", e: "18", f: "1.5", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1.3", si: "2" }], ["2024-12-11", { c: "89", ca: "89", e: "89", f: "131", fa: "131", s: "18.2", si: "18.2" }], ["2015-11-12", { c: "26", ca: "26", e: "13", f: "22", fa: "22", s: "8", si: "8" }], ["2020-01-15", { c: "62", ca: "62", e: "79", f: "53", fa: "53", s: "11", si: "11" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-09-12", { c: "47", ca: "47", e: "12", f: "49", fa: "49", s: "16", si: "16" }], ["2022-03-14", { c: "48", ca: "48", e: "79", f: "48", fa: "48", s: "15.4", si: "15.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2022-03-03", { c: "99", ca: "99", e: "99", f: "46", fa: "46", s: "7", si: "7" }], ["2020-01-15", { c: "38", ca: "38", e: "79", f: "19", fa: "19", s: "10.1", si: "10.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-09-16", { c: "48", ca: "48", e: "79", f: "41", fa: "41", s: "14", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "7", fa: "7", s: "1.3", si: "1" }], ["2015-07-29", { c: "2", ca: "18", e: "12", f: "3.5", fa: "4", s: "1.1", si: "1" }], ["2017-04-05", { c: "4", ca: "18", e: "15", f: "49", fa: "49", s: "3", si: "2" }], ["2015-07-29", { c: "23", ca: "25", e: "12", f: "31", fa: "31", s: "6", si: "6" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-11-19", { c: "87", ca: "87", e: "87", f: "70", fa: "79", s: "12.1", si: "12.2" }], ["2020-07-28", { c: "33", ca: "33", e: "12", f: "74", fa: "79", s: "12.1", si: "12.2" }], ["2024-03-19", { c: "114", ca: "114", e: "114", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2024-05-13", { c: "114", ca: "114", e: "114", f: "121", fa: "121", s: "17.5", si: "17.5" }], ["2024-10-17", { c: "130", ca: "130", e: "130", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2024-03-19", { c: "114", ca: "114", e: "114", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2024-10-17", { c: "130", ca: "130", e: "130", f: "121", fa: "121", s: "17.5", si: "17.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643" }], ["2017-10-24", { c: "62", ca: "62", e: "14", f: "22", fa: "22", s: "10", si: "10" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2019-09-19", { c: "36", ca: "36", e: "12", f: "52", fa: "52", s: "13", si: "9.3" }], ["2024-03-05", { c: "114", ca: "114", e: "114", f: "122", fa: "122", s: "17.4", si: "17.4" }], ["2024-04-16", { c: "118", ca: "118", e: "118", f: "125", fa: "125", s: "13.1", si: "13.4" }], ["2015-09-30", { c: "36", ca: "36", e: "12", f: "16", fa: "16", s: "9", si: "9" }], ["2022-03-14", { c: "36", ca: "36", e: "12", f: "16", fa: "16", s: "15.4", si: "15.4" }], ["2024-08-06", { c: "117", ca: "117", e: "117", f: "129", fa: "129", s: "17.4", si: "17.4" }], ["2015-09-30", { c: "26", ca: "26", e: "12", f: "16", fa: "16", s: "9", si: "9" }], ["2023-03-14", { c: "19", ca: "25", e: "79", f: "111", fa: "111", s: "6", si: "6" }], ["2023-03-13", { c: "111", ca: "111", e: "111", f: "108", fa: "108", s: "15.4", si: "15.4" }], ["2023-07-21", { c: "115", ca: "115", e: "115", f: "70", fa: "79", s: "15", si: "15" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "38", fa: "38", s: "10", si: "10" }], ["2016-09-20", { c: "45", ca: "45", e: "12", f: "37", fa: "37", s: "10", si: "10" }], ["2015-07-29", { c: "7", ca: "18", e: "12", f: "4", fa: "4", s: "5.1", si: "4.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2025-09-05", { c: "140", ca: "140", e: "140", f: "133", fa: "133", s: "18.2", si: "18.2" }], ["2015-09-30", { c: "44", ca: "44", e: "12", f: "40", fa: "40", s: "9", si: "9" }], ["2016-03-21", { c: "41", ca: "41", e: "13", f: "27", fa: "27", s: "9.1", si: "9.3" }], ["2023-09-18", { c: "113", ca: "113", e: "113", f: "102", fa: "102", s: "17", si: "17" }], ["2018-04-30", { c: "44", ca: "44", e: "17", f: "48", fa: "48", s: "10.1", si: "10.3" }], ["2015-07-29", { c: "32", ca: "32", e: "12", f: "19", fa: "19", s: "7", si: "7" }], ["2023-12-07", { c: "120", ca: "120", e: "120", f: "115", fa: "115", s: "17", si: "17" }], ["2025-09-15", { c: "95", ca: "95", e: "95", f: "142", fa: "142", s: "26", si: "26" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "2", si: "1" }], ["2023-11-21", { c: "72", ca: "72", e: "79", f: "120", fa: "120", s: "16.4", si: "16.4" }], ["2015-07-29", { c: "4", ca: "18", e: "12", f: "3.5", fa: "4", s: "4", si: "5" }], ["2023-11-02", { c: "119", ca: "119", e: "119", f: "88", fa: "88", s: "16.5", si: "16.5" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "\u22644", si: "\u22643.2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-04-18", { c: "124", ca: "124", e: "124", f: "120", fa: "120", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "3", ca: "18", e: "12", f: "3.5", fa: "4", s: "3.1", si: "3" }], ["2025-10-14", { c: "125", ca: "125", e: "125", f: "144", fa: "144", s: "18.2", si: "18.2" }], ["2025-10-14", { c: "111", ca: "111", e: "111", f: "144", fa: "144", s: "18", si: "18" }], ["2022-12-05", { c: "108", ca: "108", e: "108", f: "101", fa: "101", s: "15.4", si: "15.4" }], ["2017-10-17", { c: "26", ca: "26", e: "16", f: "19", fa: "19", s: "7", si: "7" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1.3", si: "1" }], ["2021-08-10", { c: "61", ca: "61", e: "79", f: "91", fa: "68", s: "13", si: "13" }], ["2017-10-17", { c: "57", ca: "57", e: "16", f: "52", fa: "52", s: "11", si: "11" }], ["2021-04-26", { c: "85", ca: "85", e: "85", f: "78", fa: "79", s: "14.1", si: "14.5" }], ["2021-10-25", { c: "75", ca: "75", e: "79", f: "78", fa: "79", s: "15.1", si: "15.1" }], ["2022-05-03", { c: "95", ca: "95", e: "95", f: "100", fa: "100", s: "15.2", si: "15.2" }], ["2024-03-05", { c: "114", ca: "114", e: "114", f: "112", fa: "112", s: "17.4", si: "17.4" }], ["2024-12-11", { c: "119", ca: "119", e: "119", f: "120", fa: "120", s: "18.2", si: "18.2" }], ["2020-10-20", { c: "86", ca: "86", e: "86", f: "78", fa: "79", s: "13.1", si: "13.4" }], ["2020-03-24", { c: "69", ca: "69", e: "79", f: "62", fa: "62", s: "13.1", si: "13.4" }], ["2021-10-25", { c: "75", ca: "75", e: "18", f: "64", fa: "64", s: "15.1", si: "15.1" }], ["2021-11-19", { c: "96", ca: "96", e: "96", f: "79", fa: "79", s: "15.1", si: "15.1" }], ["2021-04-26", { c: "69", ca: "69", e: "18", f: "62", fa: "62", s: "14.1", si: "14.5" }], ["2023-03-27", { c: "91", ca: "91", e: "91", f: "89", fa: "89", s: "16.4", si: "16.4" }], ["2024-12-11", { c: "112", ca: "112", e: "112", f: "121", fa: "121", s: "18.2", si: "18.2" }], ["2021-12-13", { c: "74", ca: "88", e: "79", f: "79", fa: "79", s: "15.2", si: "15.2" }], ["2024-09-16", { c: "119", ca: "119", e: "119", f: "120", fa: "120", s: "18", si: "18" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "4", si: "3.2" }], ["2021-04-26", { c: "84", ca: "84", e: "84", f: "79", fa: "79", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "36", ca: "36", e: "12", f: "6", fa: "6", s: "8", si: "8" }], ["2015-09-30", { c: "36", ca: "36", e: "12", f: "34", fa: "34", s: "9", si: "9" }], ["2020-09-16", { c: "84", ca: "84", e: "84", f: "75", fa: "79", s: "14", si: "14" }], ["2021-04-26", { c: "35", ca: "35", e: "12", f: "25", fa: "25", s: "14.1", si: "14.5" }], ["2015-07-29", { c: "37", ca: "37", e: "12", f: "34", fa: "34", s: "11", si: "11" }], ["2022-03-14", { c: "69", ca: "69", e: "79", f: "96", fa: "96", s: "15.4", si: "15.4" }], ["2021-09-07", { c: "67", ca: "70", e: "18", f: "60", fa: "92", s: "13", si: "13" }], ["2023-10-24", { c: "85", ca: "85", e: "85", f: "119", fa: "119", s: "16", si: "16" }], ["2015-07-29", { c: "9", ca: "25", e: "12", f: "4", fa: "4", s: "5.1", si: "8" }], ["2021-09-20", { c: "63", ca: "63", e: "17", f: "30", fa: "30", s: "14", si: "15" }], ["2024-10-29", { c: "104", ca: "104", e: "104", f: "132", fa: "132", s: "16.4", si: "16.4" }], ["2020-01-15", { c: "47", ca: "47", e: "79", f: "53", fa: "53", s: "12", si: "12" }], ["2017-04-19", { c: "33", ca: "33", e: "12", f: "53", fa: "53", s: "9.1", si: "9.3" }], ["2020-09-16", { c: "47", ca: "47", e: "79", f: "56", fa: "56", s: "14", si: "14" }], ["2015-07-29", { c: "26", ca: "26", e: "12", f: "22", fa: "22", s: "8", si: "8" }], ["2018-04-30", { c: "26", ca: "26", e: "17", f: "22", fa: "22", s: "8", si: "8" }], ["2022-12-13", { c: "100", ca: "100", e: "100", f: "108", fa: "108", s: "16", si: "16" }], ["2021-09-20", { c: "56", ca: "58", e: "79", f: "51", fa: "51", s: "15", si: "15" }], ["2024-10-29", { c: "104", ca: "104", e: "104", f: "132", fa: "132", s: "16.4", si: "16.4" }], ["2020-09-16", { c: "9", ca: "18", e: "18", f: "65", fa: "65", s: "14", si: "14" }], ["2020-01-15", { c: "56", ca: "56", e: "79", f: "22", fa: "24", s: "11", si: "11" }], ["2025-10-03", { c: "141", ca: "141", e: "141", f: "117", fa: "117", s: "15.4", si: "15.4" }], ["2023-05-09", { c: "76", ca: "76", e: "79", f: "113", fa: "113", s: "15.4", si: "15.4" }], ["2020-01-15", { c: "58", ca: "58", e: "79", f: "44", fa: "44", s: "11", si: "11" }], ["2015-07-29", { c: "5", ca: "18", e: "12", f: "11", fa: "14", s: "5", si: "4.2" }], ["2015-07-29", { c: "23", ca: "25", e: "12", f: "31", fa: "31", s: "6", si: "8" }], ["2020-01-15", { c: "23", ca: "25", e: "79", f: "31", fa: "31", s: "6", si: "8" }], ["2021-01-21", { c: "88", ca: "88", e: "88", f: "82", fa: "82", s: "14", si: "14" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2024-03-19", { c: "114", ca: "114", e: "114", f: "124", fa: "124", s: "17.4", si: "17.4" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2020-01-15", { c: "36", ca: "36", e: "79", f: "36", fa: "36", s: "9.1", si: "9.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2015-09-30", { c: "44", ca: "44", e: "12", f: "15", fa: "15", s: "9", si: "9" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "1", si: "1" }], ["2017-03-27", { c: "48", ca: "48", e: "12", f: "41", fa: "41", s: "10.1", si: "10.3" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3", si: "1" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "1", fa: "4", s: "3.1", si: "2" }], ["2015-07-29", { c: "1", ca: "18", e: "12", f: "3", fa: "4", s: "1", si: "1" }], ["2024-05-14", { c: "1", ca: "18", e: "12", f: "126", fa: "126", s: "3.1", si: "3" }]];
    var c3 = { w: "WebKit", g: "Gecko", p: "Presto", b: "Blink" };
    var e2 = { r: "retired", c: "current", b: "beta", n: "nightly", p: "planned", u: "unknown", e: "esr" };
    var f = (s22) => {
      const a3 = {};
      return Object.entries(s22).forEach(([s3, r22]) => {
        if (r22.releases) {
          a3[s3] || (a3[s3] = { releases: {} });
          const f2 = a3[s3].releases;
          r22.releases.forEach((s4) => {
            f2[s4[0]] = { version: s4[0], release_date: "u" == s4[1] ? "unknown" : s4[1], status: e2[s4[2]], engine: s4[3] ? c3[s4[3]] : void 0, engine_version: s4[4] };
          });
        }
      }), a3;
    };
    var b2 = (() => {
      const s22 = [];
      return r2.forEach((a3) => {
        var r22;
        s22.push({ status: { baseline_low_date: a3[0], support: (r22 = a3[1], { chrome: r22.c, chrome_android: r22.ca, edge: r22.e, firefox: r22.f, firefox_android: r22.fa, safari: r22.s, safari_ios: r22.si }) } });
      }), s22;
    })();
    var u2 = f(s2);
    var i22 = f(a2);
    var n22 = false;
    var o22 = ["chrome", "chrome_android", "edge", "firefox", "firefox_android", "safari", "safari_ios"];
    var g = Object.entries(u2).filter(([s22]) => o22.includes(s22));
    var t9 = ["webview_android", "samsunginternet_android", "opera_android", "opera"];
    var l2 = [...Object.entries(u2).filter(([s22]) => t9.includes(s22)), ...Object.entries(i22)];
    var w3 = ["current", "esr", "retired", "unknown", "beta", "nightly"];
    var p = false;
    var d = (s22) => {
      if (false === s22.includeDownstreamBrowsers && true === s22.includeKaiOS) {
        if (console.log(new Error("KaiOS is a downstream browser and can only be included if you include other downstream browsers. Please ensure you use `includeDownstreamBrowsers: true`.")), "undefined" == typeof process || !process.exit) throw new Error("KaiOS configuration error: process.exit is not available");
        process.exit(1);
      }
    };
    var v2 = (s22) => s22 && s22.startsWith("\u2264") ? s22.slice(1) : s22;
    var _3 = (s22, a3) => {
      if (s22 === a3) return 0;
      const [r22 = 0, c4 = 0] = s22.split(".", 2).map(Number), [e22 = 0, f2 = 0] = a3.split(".", 2).map(Number);
      if (isNaN(r22) || isNaN(c4)) throw new Error(`Invalid version: ${s22}`);
      if (isNaN(e22) || isNaN(f2)) throw new Error(`Invalid version: ${a3}`);
      return r22 !== e22 ? r22 > e22 ? 1 : -1 : c4 !== f2 ? c4 > f2 ? 1 : -1 : 0;
    };
    var h23 = (s22) => {
      let a3 = [];
      return s22.forEach((s3) => {
        let r22 = g.find((a4) => a4[0] === s3.browser);
        if (r22) {
          Object.entries(r22[1].releases).filter(([, s4]) => w3.includes(s4.status)).sort((s4, a4) => _3(s4[0], a4[0])).forEach(([r3, c4]) => !!w3.includes(c4.status) && (1 === _3(r3, s3.version) && (a3.push({ browser: s3.browser, version: r3, release_date: c4.release_date ? c4.release_date : "unknown" }), true)));
        }
      }), a3;
    };
    var m2 = (s22, a3 = false) => {
      if (s22.getFullYear() < 2015 && !p && console.warn(new Error("There are no browser versions compatible with Baseline before 2015.  You may receive unexpected results.")), s22.getFullYear() < 2002) throw new Error("None of the browsers in the core set were released before 2002.  Please use a date after 2002.");
      if (s22.getFullYear() > (/* @__PURE__ */ new Date()).getFullYear()) throw new Error("There are no browser versions compatible with Baseline in the future");
      const r22 = ((s3) => b2.filter((a4) => a4.status.baseline_low_date && new Date(a4.status.baseline_low_date) <= s3).map((s4) => ({ baseline_low_date: s4.status.baseline_low_date, support: s4.status.support })))(s22), c4 = ((s3) => {
        let a4 = {};
        return Object.entries(g).forEach(([, s4]) => {
          a4[s4[0]] = { browser: s4[0], version: "0", release_date: "" };
        }), s3.forEach((s4) => {
          Object.entries(s4.support).forEach((r3) => {
            const c5 = r3[0], e22 = v2(r3[1]);
            a4[c5] && 1 === _3(e22, v2(a4[c5].version)) && (a4[c5] = { browser: c5, version: e22, release_date: s4.baseline_low_date });
          });
        }), Object.values(a4);
      })(r22);
      return a3 ? [...c4, ...h23(c4)].sort((s3, a4) => s3.browser < a4.browser ? -1 : s3.browser > a4.browser ? 1 : _3(s3.version, a4.version)) : c4;
    };
    var O3 = (s22 = [], a3 = true, r22 = false) => {
      const c4 = (a4) => {
        var r3;
        return s22 && s22.length > 0 ? null === (r3 = s22.filter((s3) => s3.browser === a4).sort((s3, a5) => _3(s3.version, a5.version))[0]) || void 0 === r3 ? void 0 : r3.version : void 0;
      }, e22 = c4("chrome"), f2 = c4("firefox");
      if (!e22 && !f2) throw new Error("There are no browser versions compatible with Baseline before Chrome and Firefox");
      let b22 = [];
      return l2.filter(([s3]) => !("kai_os" === s3 && !r22)).forEach(([s3, r3]) => {
        var c5;
        if (!r3.releases) return;
        let u3 = Object.entries(r3.releases).filter(([, s4]) => {
          const { engine: a4, engine_version: r4 } = s4;
          return !(!a4 || !r4) && ("Blink" === a4 && e22 ? _3(r4, e22) >= 0 : !("Gecko" !== a4 || !f2) && _3(r4, f2) >= 0);
        }).sort((s4, a4) => _3(s4[0], a4[0]));
        for (let r4 = 0; r4 < u3.length; r4++) {
          const e3 = u3[r4];
          if (e3) {
            const [r5, f3] = e3;
            let u4 = { browser: s3, version: r5, release_date: null !== (c5 = f3.release_date) && void 0 !== c5 ? c5 : "unknown" };
            if (f3.engine && f3.engine_version && (u4.engine = f3.engine, u4.engine_version = f3.engine_version), b22.push(u4), !a3) break;
          }
        }
      }), b22;
    };
    function y2(s22) {
      var a3, r22, c4, e22, f2, b22, u3;
      let i3 = null != s22 ? s22 : {}, o3 = { listAllCompatibleVersions: null !== (a3 = i3.listAllCompatibleVersions) && void 0 !== a3 && a3, includeDownstreamBrowsers: null !== (r22 = i3.includeDownstreamBrowsers) && void 0 !== r22 && r22, widelyAvailableOnDate: null !== (c4 = i3.widelyAvailableOnDate) && void 0 !== c4 ? c4 : void 0, targetYear: null !== (e22 = i3.targetYear) && void 0 !== e22 ? e22 : void 0, includeKaiOS: null !== (f2 = i3.includeKaiOS) && void 0 !== f2 && f2, overrideLastUpdated: null !== (b22 = i3.overrideLastUpdated) && void 0 !== b22 ? b22 : void 0, suppressWarnings: null !== (u3 = i3.suppressWarnings) && void 0 !== u3 && u3 }, g2 = /* @__PURE__ */ new Date();
      if (d(o3), o3.widelyAvailableOnDate || o3.targetYear) if (o3.targetYear && o3.widelyAvailableOnDate) {
        if (console.log(new Error("You cannot use targetYear and widelyAvailableOnDate at the same time.  Please remove one of these options and try again.")), "undefined" == typeof process || !process.exit) throw new Error("Configuration error: targetYear and widelyAvailableOnDate cannot be used together");
        process.exit(1);
      } else o3.widelyAvailableOnDate ? g2 = new Date(o3.widelyAvailableOnDate) : o3.targetYear && (g2 = /* @__PURE__ */ new Date(`${o3.targetYear}-12-31`));
      else g2 = /* @__PURE__ */ new Date();
      (o3.widelyAvailableOnDate || void 0 === o3.targetYear) && g2.setMonth(g2.getMonth() - 30);
      let t22 = m2(g2, o3.listAllCompatibleVersions);
      return o3.suppressWarnings || ((s3, a4) => {
        if (n22 || "undefined" != typeof process && process.env && (process.env.BROWSERSLIST_IGNORE_OLD_DATA || process.env.BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA)) return;
        const r3 = /* @__PURE__ */ new Date();
        r3.setMonth(r3.getMonth() - 2), s3 > r3 && (null != a4 ? a4 : 1769610017707) < r3.getTime() && (console.warn("[baseline-browser-mapping] The data in this module is over two months old and you are targetting a recent feature cut off date of " + s3.toISOString().slice(0, 10) + ". To ensure accurate Baseline data, please update to the latest version of this module using your package manager of choice.\nYou can suppress these warnings using the environment variables `BROWSERSLIST_IGNORE_OLD_DATA=true` or `BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA=true`.\nSome modules including `next.js` pre-compile data from this module via `browserslist` or other packages.\nPlease contact the maintainers of those modules if you are receiving these warnings and can't suppress them.\n"), n22 = true);
      })(g2, o3.overrideLastUpdated), false === o3.includeDownstreamBrowsers ? t22 : [...t22, ...O3(t22, o3.listAllCompatibleVersions, o3.includeKaiOS)];
    }
    exports2._resetHasWarned = function() {
      n22 = false;
    }, exports2.getAllVersions = function(s22) {
      var a3, r22, c4, e22, f2;
      p = true;
      let b22 = null != s22 ? s22 : {}, u3 = { outputFormat: null !== (a3 = b22.outputFormat) && void 0 !== a3 ? a3 : "array", includeDownstreamBrowsers: null !== (r22 = b22.includeDownstreamBrowsers) && void 0 !== r22 && r22, useSupports: null !== (c4 = b22.useSupports) && void 0 !== c4 && c4, includeKaiOS: null !== (e22 = b22.includeKaiOS) && void 0 !== e22 && e22, suppressWarnings: null !== (f2 = b22.suppressWarnings) && void 0 !== f2 && f2 };
      d(u3);
      let i3 = (/* @__PURE__ */ new Date()).getFullYear() + 1;
      const n3 = [...Array(i3).keys()].slice(2002), g2 = {};
      n3.forEach((s3) => {
        g2[s3] = {}, y2({ targetYear: s3, suppressWarnings: u3.suppressWarnings }).forEach((a4) => {
          g2[s3] && (g2[s3][a4.browser] = a4);
        });
      });
      const t22 = y2({ suppressWarnings: u3.suppressWarnings }), l22 = {};
      t22.forEach((s3) => {
        l22[s3.browser] = s3;
      });
      const w22 = /* @__PURE__ */ new Date();
      w22.setMonth(w22.getMonth() + 30);
      const v22 = y2({ widelyAvailableOnDate: w22.toISOString().slice(0, 10), suppressWarnings: u3.suppressWarnings }), h3 = {};
      v22.forEach((s3) => {
        h3[s3.browser] = s3;
      });
      const m22 = y2({ targetYear: 2002, listAllCompatibleVersions: true, suppressWarnings: u3.suppressWarnings }), E2 = [];
      if (o22.forEach((s3) => {
        var a4, r3, c5, e3;
        let f3 = m22.filter((a5) => a5.browser == s3).sort((s4, a5) => _3(s4.version, a5.version)), b3 = null !== (r3 = null === (a4 = l22[s3]) || void 0 === a4 ? void 0 : a4.version) && void 0 !== r3 ? r3 : "0", o3 = null !== (e3 = null === (c5 = h3[s3]) || void 0 === c5 ? void 0 : c5.version) && void 0 !== e3 ? e3 : "0";
        n3.forEach((a5) => {
          var r4;
          if (g2[a5]) {
            let c6 = (null !== (r4 = g2[a5][s3]) && void 0 !== r4 ? r4 : { version: "0" }).version, e4 = f3.findIndex((s4) => 0 === _3(s4.version, c6));
            (a5 === i3 - 1 ? f3 : f3.slice(0, e4)).forEach((s4) => {
              let r5 = _3(s4.version, b3) >= 0, c7 = _3(s4.version, o3) >= 0, e5 = Object.assign(Object.assign({}, s4), { year: a5 <= 2015 ? "pre_baseline" : a5 - 1 });
              u3.useSupports ? (r5 && (e5.supports = "widely"), c7 && (e5.supports = "newly")) : e5 = Object.assign(Object.assign({}, e5), { wa_compatible: r5 }), E2.push(e5);
            }), f3 = f3.slice(e4, f3.length);
          }
        });
      }), u3.includeDownstreamBrowsers) {
        O3(E2, true, u3.includeKaiOS).forEach((s3) => {
          let a4 = E2.find((a5) => "chrome" === a5.browser && a5.version === s3.engine_version);
          a4 && (u3.useSupports ? E2.push(Object.assign(Object.assign({}, s3), { year: a4.year, supports: a4.supports })) : E2.push(Object.assign(Object.assign({}, s3), { year: a4.year, wa_compatible: a4.wa_compatible })));
        });
      }
      if (E2.sort((s3, a4) => {
        if ("pre_baseline" === s3.year && "pre_baseline" !== a4.year) return -1;
        if ("pre_baseline" === a4.year && "pre_baseline" !== s3.year) return 1;
        if ("pre_baseline" !== s3.year && "pre_baseline" !== a4.year) {
          if (s3.year < a4.year) return -1;
          if (s3.year > a4.year) return 1;
        }
        return s3.browser < a4.browser ? -1 : s3.browser > a4.browser ? 1 : _3(s3.version, a4.version);
      }), "object" === u3.outputFormat) {
        const s3 = {};
        return E2.forEach((a4) => {
          s3[a4.browser] || (s3[a4.browser] = {});
          let r3 = { year: a4.year, release_date: a4.release_date, engine: a4.engine, engine_version: a4.engine_version };
          s3[a4.browser][a4.version] = u3.useSupports ? a4.supports ? Object.assign(Object.assign({}, r3), { supports: a4.supports }) : r3 : Object.assign(Object.assign({}, r3), { wa_compatible: a4.wa_compatible });
        }), null != s3 ? s3 : {};
      }
      if ("csv" === u3.outputFormat) {
        let s3 = `"browser","version","year","${u3.useSupports ? "supports" : "wa_compatible"}","release_date","engine","engine_version"`;
        return E2.forEach((a4) => {
          var r3, c5, e3, f3;
          let b3 = { browser: a4.browser, version: a4.version, year: a4.year, release_date: null !== (r3 = a4.release_date) && void 0 !== r3 ? r3 : "NULL", engine: null !== (c5 = a4.engine) && void 0 !== c5 ? c5 : "NULL", engine_version: null !== (e3 = a4.engine_version) && void 0 !== e3 ? e3 : "NULL" };
          b3 = u3.useSupports ? Object.assign(Object.assign({}, b3), { supports: null !== (f3 = a4.supports) && void 0 !== f3 ? f3 : "" }) : Object.assign(Object.assign({}, b3), { wa_compatible: a4.wa_compatible }), s3 += `
"${b3.browser}","${b3.version}","${b3.year}","${u3.useSupports ? b3.supports : b3.wa_compatible}","${b3.release_date}","${b3.engine}","${b3.engine_version}"`;
        }), s3;
      }
      return E2;
    }, exports2.getCompatibleVersions = y2;
  }
});
var require_envs = __commonJS2({
  "../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/processed/envs.json"(exports2, module2) {
    module2.exports = [{ name: "nodejs", version: "0.2.0", date: "2011-08-26", lts: false, security: false, v8: "2.3.8.0" }, { name: "nodejs", version: "0.3.0", date: "2011-08-26", lts: false, security: false, v8: "2.5.1.0" }, { name: "nodejs", version: "0.4.0", date: "2011-08-26", lts: false, security: false, v8: "3.1.2.0" }, { name: "nodejs", version: "0.5.0", date: "2011-08-26", lts: false, security: false, v8: "3.1.8.25" }, { name: "nodejs", version: "0.6.0", date: "2011-11-04", lts: false, security: false, v8: "3.6.6.6" }, { name: "nodejs", version: "0.7.0", date: "2012-01-17", lts: false, security: false, v8: "3.8.6.0" }, { name: "nodejs", version: "0.8.0", date: "2012-06-22", lts: false, security: false, v8: "3.11.10.10" }, { name: "nodejs", version: "0.9.0", date: "2012-07-20", lts: false, security: false, v8: "3.11.10.15" }, { name: "nodejs", version: "0.10.0", date: "2013-03-11", lts: false, security: false, v8: "3.14.5.8" }, { name: "nodejs", version: "0.11.0", date: "2013-03-28", lts: false, security: false, v8: "3.17.13.0" }, { name: "nodejs", version: "0.12.0", date: "2015-02-06", lts: false, security: false, v8: "3.28.73.0" }, { name: "nodejs", version: "4.0.0", date: "2015-09-08", lts: false, security: false, v8: "4.5.103.30" }, { name: "nodejs", version: "4.1.0", date: "2015-09-17", lts: false, security: false, v8: "4.5.103.33" }, { name: "nodejs", version: "4.2.0", date: "2015-10-12", lts: "Argon", security: false, v8: "4.5.103.35" }, { name: "nodejs", version: "4.3.0", date: "2016-02-09", lts: "Argon", security: false, v8: "4.5.103.35" }, { name: "nodejs", version: "4.4.0", date: "2016-03-08", lts: "Argon", security: false, v8: "4.5.103.35" }, { name: "nodejs", version: "4.5.0", date: "2016-08-16", lts: "Argon", security: false, v8: "4.5.103.37" }, { name: "nodejs", version: "4.6.0", date: "2016-09-27", lts: "Argon", security: true, v8: "4.5.103.37" }, { name: "nodejs", version: "4.7.0", date: "2016-12-06", lts: "Argon", security: false, v8: "4.5.103.43" }, { name: "nodejs", version: "4.8.0", date: "2017-02-21", lts: "Argon", security: false, v8: "4.5.103.45" }, { name: "nodejs", version: "4.9.0", date: "2018-03-28", lts: "Argon", security: true, v8: "4.5.103.53" }, { name: "nodejs", version: "5.0.0", date: "2015-10-29", lts: false, security: false, v8: "4.6.85.28" }, { name: "nodejs", version: "5.1.0", date: "2015-11-17", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.2.0", date: "2015-12-09", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.3.0", date: "2015-12-15", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.4.0", date: "2016-01-06", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.5.0", date: "2016-01-21", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.6.0", date: "2016-02-09", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.7.0", date: "2016-02-23", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.8.0", date: "2016-03-09", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.9.0", date: "2016-03-16", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.10.0", date: "2016-04-01", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.11.0", date: "2016-04-21", lts: false, security: false, v8: "4.6.85.31" }, { name: "nodejs", version: "5.12.0", date: "2016-06-23", lts: false, security: false, v8: "4.6.85.32" }, { name: "nodejs", version: "6.0.0", date: "2016-04-26", lts: false, security: false, v8: "5.0.71.35" }, { name: "nodejs", version: "6.1.0", date: "2016-05-05", lts: false, security: false, v8: "5.0.71.35" }, { name: "nodejs", version: "6.2.0", date: "2016-05-17", lts: false, security: false, v8: "5.0.71.47" }, { name: "nodejs", version: "6.3.0", date: "2016-07-06", lts: false, security: false, v8: "5.0.71.52" }, { name: "nodejs", version: "6.4.0", date: "2016-08-12", lts: false, security: false, v8: "5.0.71.60" }, { name: "nodejs", version: "6.5.0", date: "2016-08-26", lts: false, security: false, v8: "5.1.281.81" }, { name: "nodejs", version: "6.6.0", date: "2016-09-14", lts: false, security: false, v8: "5.1.281.83" }, { name: "nodejs", version: "6.7.0", date: "2016-09-27", lts: false, security: true, v8: "5.1.281.83" }, { name: "nodejs", version: "6.8.0", date: "2016-10-12", lts: false, security: false, v8: "5.1.281.84" }, { name: "nodejs", version: "6.9.0", date: "2016-10-18", lts: "Boron", security: false, v8: "5.1.281.84" }, { name: "nodejs", version: "6.10.0", date: "2017-02-21", lts: "Boron", security: false, v8: "5.1.281.93" }, { name: "nodejs", version: "6.11.0", date: "2017-06-06", lts: "Boron", security: false, v8: "5.1.281.102" }, { name: "nodejs", version: "6.12.0", date: "2017-11-06", lts: "Boron", security: false, v8: "5.1.281.108" }, { name: "nodejs", version: "6.13.0", date: "2018-02-10", lts: "Boron", security: false, v8: "5.1.281.111" }, { name: "nodejs", version: "6.14.0", date: "2018-03-28", lts: "Boron", security: true, v8: "5.1.281.111" }, { name: "nodejs", version: "6.15.0", date: "2018-11-27", lts: "Boron", security: true, v8: "5.1.281.111" }, { name: "nodejs", version: "6.16.0", date: "2018-12-26", lts: "Boron", security: false, v8: "5.1.281.111" }, { name: "nodejs", version: "6.17.0", date: "2019-02-28", lts: "Boron", security: true, v8: "5.1.281.111" }, { name: "nodejs", version: "7.0.0", date: "2016-10-25", lts: false, security: false, v8: "5.4.500.36" }, { name: "nodejs", version: "7.1.0", date: "2016-11-08", lts: false, security: false, v8: "5.4.500.36" }, { name: "nodejs", version: "7.2.0", date: "2016-11-22", lts: false, security: false, v8: "5.4.500.43" }, { name: "nodejs", version: "7.3.0", date: "2016-12-20", lts: false, security: false, v8: "5.4.500.45" }, { name: "nodejs", version: "7.4.0", date: "2017-01-04", lts: false, security: false, v8: "5.4.500.45" }, { name: "nodejs", version: "7.5.0", date: "2017-01-31", lts: false, security: false, v8: "5.4.500.48" }, { name: "nodejs", version: "7.6.0", date: "2017-02-21", lts: false, security: false, v8: "5.5.372.40" }, { name: "nodejs", version: "7.7.0", date: "2017-02-28", lts: false, security: false, v8: "5.5.372.41" }, { name: "nodejs", version: "7.8.0", date: "2017-03-29", lts: false, security: false, v8: "5.5.372.43" }, { name: "nodejs", version: "7.9.0", date: "2017-04-11", lts: false, security: false, v8: "5.5.372.43" }, { name: "nodejs", version: "7.10.0", date: "2017-05-02", lts: false, security: false, v8: "5.5.372.43" }, { name: "nodejs", version: "8.0.0", date: "2017-05-30", lts: false, security: false, v8: "5.8.283.41" }, { name: "nodejs", version: "8.1.0", date: "2017-06-08", lts: false, security: false, v8: "5.8.283.41" }, { name: "nodejs", version: "8.2.0", date: "2017-07-19", lts: false, security: false, v8: "5.8.283.41" }, { name: "nodejs", version: "8.3.0", date: "2017-08-08", lts: false, security: false, v8: "6.0.286.52" }, { name: "nodejs", version: "8.4.0", date: "2017-08-15", lts: false, security: false, v8: "6.0.286.52" }, { name: "nodejs", version: "8.5.0", date: "2017-09-12", lts: false, security: false, v8: "6.0.287.53" }, { name: "nodejs", version: "8.6.0", date: "2017-09-26", lts: false, security: false, v8: "6.0.287.53" }, { name: "nodejs", version: "8.7.0", date: "2017-10-11", lts: false, security: false, v8: "6.1.534.42" }, { name: "nodejs", version: "8.8.0", date: "2017-10-24", lts: false, security: false, v8: "6.1.534.42" }, { name: "nodejs", version: "8.9.0", date: "2017-10-31", lts: "Carbon", security: false, v8: "6.1.534.46" }, { name: "nodejs", version: "8.10.0", date: "2018-03-06", lts: "Carbon", security: false, v8: "6.2.414.50" }, { name: "nodejs", version: "8.11.0", date: "2018-03-28", lts: "Carbon", security: true, v8: "6.2.414.50" }, { name: "nodejs", version: "8.12.0", date: "2018-09-10", lts: "Carbon", security: false, v8: "6.2.414.66" }, { name: "nodejs", version: "8.13.0", date: "2018-11-20", lts: "Carbon", security: false, v8: "6.2.414.72" }, { name: "nodejs", version: "8.14.0", date: "2018-11-27", lts: "Carbon", security: true, v8: "6.2.414.72" }, { name: "nodejs", version: "8.15.0", date: "2018-12-26", lts: "Carbon", security: false, v8: "6.2.414.75" }, { name: "nodejs", version: "8.16.0", date: "2019-04-16", lts: "Carbon", security: false, v8: "6.2.414.77" }, { name: "nodejs", version: "8.17.0", date: "2019-12-17", lts: "Carbon", security: true, v8: "6.2.414.78" }, { name: "nodejs", version: "9.0.0", date: "2017-10-31", lts: false, security: false, v8: "6.2.414.32" }, { name: "nodejs", version: "9.1.0", date: "2017-11-07", lts: false, security: false, v8: "6.2.414.32" }, { name: "nodejs", version: "9.2.0", date: "2017-11-14", lts: false, security: false, v8: "6.2.414.44" }, { name: "nodejs", version: "9.3.0", date: "2017-12-12", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.4.0", date: "2018-01-10", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.5.0", date: "2018-01-31", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.6.0", date: "2018-02-21", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.7.0", date: "2018-03-01", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.8.0", date: "2018-03-07", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.9.0", date: "2018-03-21", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "9.10.0", date: "2018-03-28", lts: false, security: true, v8: "6.2.414.46" }, { name: "nodejs", version: "9.11.0", date: "2018-04-04", lts: false, security: false, v8: "6.2.414.46" }, { name: "nodejs", version: "10.0.0", date: "2018-04-24", lts: false, security: false, v8: "6.6.346.24" }, { name: "nodejs", version: "10.1.0", date: "2018-05-08", lts: false, security: false, v8: "6.6.346.27" }, { name: "nodejs", version: "10.2.0", date: "2018-05-23", lts: false, security: false, v8: "6.6.346.32" }, { name: "nodejs", version: "10.3.0", date: "2018-05-29", lts: false, security: false, v8: "6.6.346.32" }, { name: "nodejs", version: "10.4.0", date: "2018-06-06", lts: false, security: false, v8: "6.7.288.43" }, { name: "nodejs", version: "10.5.0", date: "2018-06-20", lts: false, security: false, v8: "6.7.288.46" }, { name: "nodejs", version: "10.6.0", date: "2018-07-04", lts: false, security: false, v8: "6.7.288.46" }, { name: "nodejs", version: "10.7.0", date: "2018-07-18", lts: false, security: false, v8: "6.7.288.49" }, { name: "nodejs", version: "10.8.0", date: "2018-08-01", lts: false, security: false, v8: "6.7.288.49" }, { name: "nodejs", version: "10.9.0", date: "2018-08-15", lts: false, security: false, v8: "6.8.275.24" }, { name: "nodejs", version: "10.10.0", date: "2018-09-06", lts: false, security: false, v8: "6.8.275.30" }, { name: "nodejs", version: "10.11.0", date: "2018-09-19", lts: false, security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.12.0", date: "2018-10-10", lts: false, security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.13.0", date: "2018-10-30", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.14.0", date: "2018-11-27", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.15.0", date: "2018-12-26", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.16.0", date: "2019-05-28", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.17.0", date: "2019-10-22", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.18.0", date: "2019-12-17", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.19.0", date: "2020-02-05", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.20.0", date: "2020-03-26", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.21.0", date: "2020-06-02", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "10.22.0", date: "2020-07-21", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.23.0", date: "2020-10-27", lts: "Dubnium", security: false, v8: "6.8.275.32" }, { name: "nodejs", version: "10.24.0", date: "2021-02-23", lts: "Dubnium", security: true, v8: "6.8.275.32" }, { name: "nodejs", version: "11.0.0", date: "2018-10-23", lts: false, security: false, v8: "7.0.276.28" }, { name: "nodejs", version: "11.1.0", date: "2018-10-30", lts: false, security: false, v8: "7.0.276.32" }, { name: "nodejs", version: "11.2.0", date: "2018-11-15", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.3.0", date: "2018-11-27", lts: false, security: true, v8: "7.0.276.38" }, { name: "nodejs", version: "11.4.0", date: "2018-12-07", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.5.0", date: "2018-12-18", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.6.0", date: "2018-12-26", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.7.0", date: "2019-01-17", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.8.0", date: "2019-01-24", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.9.0", date: "2019-01-30", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.10.0", date: "2019-02-14", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.11.0", date: "2019-03-05", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.12.0", date: "2019-03-14", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.13.0", date: "2019-03-28", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.14.0", date: "2019-04-10", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "11.15.0", date: "2019-04-30", lts: false, security: false, v8: "7.0.276.38" }, { name: "nodejs", version: "12.0.0", date: "2019-04-23", lts: false, security: false, v8: "7.4.288.21" }, { name: "nodejs", version: "12.1.0", date: "2019-04-29", lts: false, security: false, v8: "7.4.288.21" }, { name: "nodejs", version: "12.2.0", date: "2019-05-07", lts: false, security: false, v8: "7.4.288.21" }, { name: "nodejs", version: "12.3.0", date: "2019-05-21", lts: false, security: false, v8: "7.4.288.27" }, { name: "nodejs", version: "12.4.0", date: "2019-06-04", lts: false, security: false, v8: "7.4.288.27" }, { name: "nodejs", version: "12.5.0", date: "2019-06-26", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.6.0", date: "2019-07-03", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.7.0", date: "2019-07-23", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.8.0", date: "2019-08-06", lts: false, security: false, v8: "7.5.288.22" }, { name: "nodejs", version: "12.9.0", date: "2019-08-20", lts: false, security: false, v8: "7.6.303.29" }, { name: "nodejs", version: "12.10.0", date: "2019-09-04", lts: false, security: false, v8: "7.6.303.29" }, { name: "nodejs", version: "12.11.0", date: "2019-09-25", lts: false, security: false, v8: "7.7.299.11" }, { name: "nodejs", version: "12.12.0", date: "2019-10-11", lts: false, security: false, v8: "7.7.299.13" }, { name: "nodejs", version: "12.13.0", date: "2019-10-21", lts: "Erbium", security: false, v8: "7.7.299.13" }, { name: "nodejs", version: "12.14.0", date: "2019-12-17", lts: "Erbium", security: true, v8: "7.7.299.13" }, { name: "nodejs", version: "12.15.0", date: "2020-02-05", lts: "Erbium", security: true, v8: "7.7.299.13" }, { name: "nodejs", version: "12.16.0", date: "2020-02-11", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.17.0", date: "2020-05-26", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.18.0", date: "2020-06-02", lts: "Erbium", security: true, v8: "7.8.279.23" }, { name: "nodejs", version: "12.19.0", date: "2020-10-06", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.20.0", date: "2020-11-24", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "12.21.0", date: "2021-02-23", lts: "Erbium", security: true, v8: "7.8.279.23" }, { name: "nodejs", version: "12.22.0", date: "2021-03-30", lts: "Erbium", security: false, v8: "7.8.279.23" }, { name: "nodejs", version: "13.0.0", date: "2019-10-22", lts: false, security: false, v8: "7.8.279.17" }, { name: "nodejs", version: "13.1.0", date: "2019-11-05", lts: false, security: false, v8: "7.8.279.17" }, { name: "nodejs", version: "13.2.0", date: "2019-11-21", lts: false, security: false, v8: "7.9.317.23" }, { name: "nodejs", version: "13.3.0", date: "2019-12-03", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.4.0", date: "2019-12-17", lts: false, security: true, v8: "7.9.317.25" }, { name: "nodejs", version: "13.5.0", date: "2019-12-18", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.6.0", date: "2020-01-07", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.7.0", date: "2020-01-21", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.8.0", date: "2020-02-05", lts: false, security: true, v8: "7.9.317.25" }, { name: "nodejs", version: "13.9.0", date: "2020-02-18", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.10.0", date: "2020-03-04", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.11.0", date: "2020-03-12", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.12.0", date: "2020-03-26", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.13.0", date: "2020-04-14", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "13.14.0", date: "2020-04-29", lts: false, security: false, v8: "7.9.317.25" }, { name: "nodejs", version: "14.0.0", date: "2020-04-21", lts: false, security: false, v8: "8.1.307.30" }, { name: "nodejs", version: "14.1.0", date: "2020-04-29", lts: false, security: false, v8: "8.1.307.31" }, { name: "nodejs", version: "14.2.0", date: "2020-05-05", lts: false, security: false, v8: "8.1.307.31" }, { name: "nodejs", version: "14.3.0", date: "2020-05-19", lts: false, security: false, v8: "8.1.307.31" }, { name: "nodejs", version: "14.4.0", date: "2020-06-02", lts: false, security: true, v8: "8.1.307.31" }, { name: "nodejs", version: "14.5.0", date: "2020-06-30", lts: false, security: false, v8: "8.3.110.9" }, { name: "nodejs", version: "14.6.0", date: "2020-07-20", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.7.0", date: "2020-07-29", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.8.0", date: "2020-08-11", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.9.0", date: "2020-08-27", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.10.0", date: "2020-09-08", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.11.0", date: "2020-09-15", lts: false, security: true, v8: "8.4.371.19" }, { name: "nodejs", version: "14.12.0", date: "2020-09-22", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.13.0", date: "2020-09-29", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.14.0", date: "2020-10-15", lts: false, security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.15.0", date: "2020-10-27", lts: "Fermium", security: false, v8: "8.4.371.19" }, { name: "nodejs", version: "14.16.0", date: "2021-02-23", lts: "Fermium", security: true, v8: "8.4.371.19" }, { name: "nodejs", version: "14.17.0", date: "2021-05-11", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "14.18.0", date: "2021-09-28", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "14.19.0", date: "2022-02-01", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "14.20.0", date: "2022-07-07", lts: "Fermium", security: true, v8: "8.4.371.23" }, { name: "nodejs", version: "14.21.0", date: "2022-11-01", lts: "Fermium", security: false, v8: "8.4.371.23" }, { name: "nodejs", version: "15.0.0", date: "2020-10-20", lts: false, security: false, v8: "8.6.395.16" }, { name: "nodejs", version: "15.1.0", date: "2020-11-04", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.2.0", date: "2020-11-10", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.3.0", date: "2020-11-24", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.4.0", date: "2020-12-09", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.5.0", date: "2020-12-22", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.6.0", date: "2021-01-14", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.7.0", date: "2021-01-25", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.8.0", date: "2021-02-02", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.9.0", date: "2021-02-18", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.10.0", date: "2021-02-23", lts: false, security: true, v8: "8.6.395.17" }, { name: "nodejs", version: "15.11.0", date: "2021-03-03", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.12.0", date: "2021-03-17", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.13.0", date: "2021-03-31", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "15.14.0", date: "2021-04-06", lts: false, security: false, v8: "8.6.395.17" }, { name: "nodejs", version: "16.0.0", date: "2021-04-20", lts: false, security: false, v8: "9.0.257.17" }, { name: "nodejs", version: "16.1.0", date: "2021-05-04", lts: false, security: false, v8: "9.0.257.24" }, { name: "nodejs", version: "16.2.0", date: "2021-05-19", lts: false, security: false, v8: "9.0.257.25" }, { name: "nodejs", version: "16.3.0", date: "2021-06-03", lts: false, security: false, v8: "9.0.257.25" }, { name: "nodejs", version: "16.4.0", date: "2021-06-23", lts: false, security: false, v8: "9.1.269.36" }, { name: "nodejs", version: "16.5.0", date: "2021-07-14", lts: false, security: false, v8: "9.1.269.38" }, { name: "nodejs", version: "16.6.0", date: "2021-07-29", lts: false, security: true, v8: "9.2.230.21" }, { name: "nodejs", version: "16.7.0", date: "2021-08-18", lts: false, security: false, v8: "9.2.230.21" }, { name: "nodejs", version: "16.8.0", date: "2021-08-25", lts: false, security: false, v8: "9.2.230.21" }, { name: "nodejs", version: "16.9.0", date: "2021-09-07", lts: false, security: false, v8: "9.3.345.16" }, { name: "nodejs", version: "16.10.0", date: "2021-09-22", lts: false, security: false, v8: "9.3.345.19" }, { name: "nodejs", version: "16.11.0", date: "2021-10-08", lts: false, security: false, v8: "9.4.146.19" }, { name: "nodejs", version: "16.12.0", date: "2021-10-20", lts: false, security: false, v8: "9.4.146.19" }, { name: "nodejs", version: "16.13.0", date: "2021-10-26", lts: "Gallium", security: false, v8: "9.4.146.19" }, { name: "nodejs", version: "16.14.0", date: "2022-02-08", lts: "Gallium", security: false, v8: "9.4.146.24" }, { name: "nodejs", version: "16.15.0", date: "2022-04-26", lts: "Gallium", security: false, v8: "9.4.146.24" }, { name: "nodejs", version: "16.16.0", date: "2022-07-07", lts: "Gallium", security: true, v8: "9.4.146.24" }, { name: "nodejs", version: "16.17.0", date: "2022-08-16", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "16.18.0", date: "2022-10-12", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "16.19.0", date: "2022-12-13", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "16.20.0", date: "2023-03-28", lts: "Gallium", security: false, v8: "9.4.146.26" }, { name: "nodejs", version: "17.0.0", date: "2021-10-19", lts: false, security: false, v8: "9.5.172.21" }, { name: "nodejs", version: "17.1.0", date: "2021-11-09", lts: false, security: false, v8: "9.5.172.25" }, { name: "nodejs", version: "17.2.0", date: "2021-11-30", lts: false, security: false, v8: "9.6.180.14" }, { name: "nodejs", version: "17.3.0", date: "2021-12-17", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.4.0", date: "2022-01-18", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.5.0", date: "2022-02-10", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.6.0", date: "2022-02-22", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.7.0", date: "2022-03-09", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.8.0", date: "2022-03-22", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "17.9.0", date: "2022-04-07", lts: false, security: false, v8: "9.6.180.15" }, { name: "nodejs", version: "18.0.0", date: "2022-04-18", lts: false, security: false, v8: "10.1.124.8" }, { name: "nodejs", version: "18.1.0", date: "2022-05-03", lts: false, security: false, v8: "10.1.124.8" }, { name: "nodejs", version: "18.2.0", date: "2022-05-17", lts: false, security: false, v8: "10.1.124.8" }, { name: "nodejs", version: "18.3.0", date: "2022-06-02", lts: false, security: false, v8: "10.2.154.4" }, { name: "nodejs", version: "18.4.0", date: "2022-06-16", lts: false, security: false, v8: "10.2.154.4" }, { name: "nodejs", version: "18.5.0", date: "2022-07-06", lts: false, security: true, v8: "10.2.154.4" }, { name: "nodejs", version: "18.6.0", date: "2022-07-13", lts: false, security: false, v8: "10.2.154.13" }, { name: "nodejs", version: "18.7.0", date: "2022-07-26", lts: false, security: false, v8: "10.2.154.13" }, { name: "nodejs", version: "18.8.0", date: "2022-08-24", lts: false, security: false, v8: "10.2.154.13" }, { name: "nodejs", version: "18.9.0", date: "2022-09-07", lts: false, security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.10.0", date: "2022-09-28", lts: false, security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.11.0", date: "2022-10-13", lts: false, security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.12.0", date: "2022-10-25", lts: "Hydrogen", security: false, v8: "10.2.154.15" }, { name: "nodejs", version: "18.13.0", date: "2023-01-05", lts: "Hydrogen", security: false, v8: "10.2.154.23" }, { name: "nodejs", version: "18.14.0", date: "2023-02-01", lts: "Hydrogen", security: false, v8: "10.2.154.23" }, { name: "nodejs", version: "18.15.0", date: "2023-03-05", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.16.0", date: "2023-04-12", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.17.0", date: "2023-07-18", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.18.0", date: "2023-09-18", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.19.0", date: "2023-11-29", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "18.20.0", date: "2024-03-26", lts: "Hydrogen", security: false, v8: "10.2.154.26" }, { name: "nodejs", version: "19.0.0", date: "2022-10-17", lts: false, security: false, v8: "10.7.193.13" }, { name: "nodejs", version: "19.1.0", date: "2022-11-14", lts: false, security: false, v8: "10.7.193.20" }, { name: "nodejs", version: "19.2.0", date: "2022-11-29", lts: false, security: false, v8: "10.8.168.20" }, { name: "nodejs", version: "19.3.0", date: "2022-12-14", lts: false, security: false, v8: "10.8.168.21" }, { name: "nodejs", version: "19.4.0", date: "2023-01-05", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.5.0", date: "2023-01-24", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.6.0", date: "2023-02-01", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.7.0", date: "2023-02-21", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.8.0", date: "2023-03-14", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "19.9.0", date: "2023-04-10", lts: false, security: false, v8: "10.8.168.25" }, { name: "nodejs", version: "20.0.0", date: "2023-04-17", lts: false, security: false, v8: "11.3.244.4" }, { name: "nodejs", version: "20.1.0", date: "2023-05-03", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.2.0", date: "2023-05-16", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.3.0", date: "2023-06-08", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.4.0", date: "2023-07-04", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.5.0", date: "2023-07-19", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.6.0", date: "2023-08-23", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.7.0", date: "2023-09-18", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.8.0", date: "2023-09-28", lts: false, security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.9.0", date: "2023-10-24", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.10.0", date: "2023-11-22", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.11.0", date: "2024-01-09", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.12.0", date: "2024-03-26", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.13.0", date: "2024-05-07", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.14.0", date: "2024-05-28", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.15.0", date: "2024-06-20", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.16.0", date: "2024-07-24", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.17.0", date: "2024-08-21", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.18.0", date: "2024-10-03", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "20.19.0", date: "2025-03-13", lts: "Iron", security: false, v8: "11.3.244.8" }, { name: "nodejs", version: "21.0.0", date: "2023-10-17", lts: false, security: false, v8: "11.8.172.13" }, { name: "nodejs", version: "21.1.0", date: "2023-10-24", lts: false, security: false, v8: "11.8.172.15" }, { name: "nodejs", version: "21.2.0", date: "2023-11-14", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.3.0", date: "2023-11-30", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.4.0", date: "2023-12-05", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.5.0", date: "2023-12-19", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.6.0", date: "2024-01-14", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "21.7.0", date: "2024-03-06", lts: false, security: false, v8: "11.8.172.17" }, { name: "nodejs", version: "22.0.0", date: "2024-04-24", lts: false, security: false, v8: "12.4.254.14" }, { name: "nodejs", version: "22.1.0", date: "2024-05-02", lts: false, security: false, v8: "12.4.254.14" }, { name: "nodejs", version: "22.2.0", date: "2024-05-15", lts: false, security: false, v8: "12.4.254.14" }, { name: "nodejs", version: "22.3.0", date: "2024-06-11", lts: false, security: false, v8: "12.4.254.20" }, { name: "nodejs", version: "22.4.0", date: "2024-07-02", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.5.0", date: "2024-07-17", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.6.0", date: "2024-08-06", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.7.0", date: "2024-08-21", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.8.0", date: "2024-09-03", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.9.0", date: "2024-09-17", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.10.0", date: "2024-10-16", lts: false, security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.11.0", date: "2024-10-29", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.12.0", date: "2024-12-02", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.13.0", date: "2025-01-06", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.14.0", date: "2025-02-11", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.15.0", date: "2025-04-22", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.16.0", date: "2025-05-20", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.17.0", date: "2025-06-24", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.18.0", date: "2025-07-31", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.19.0", date: "2025-08-28", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.20.0", date: "2025-09-24", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "22.21.0", date: "2025-10-20", lts: "Jod", security: false, v8: "12.4.254.21" }, { name: "nodejs", version: "23.0.0", date: "2024-10-16", lts: false, security: false, v8: "12.9.202.26" }, { name: "nodejs", version: "23.1.0", date: "2024-10-24", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.2.0", date: "2024-11-11", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.3.0", date: "2024-11-20", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.4.0", date: "2024-12-10", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.5.0", date: "2024-12-19", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.6.0", date: "2025-01-07", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.7.0", date: "2025-01-30", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.8.0", date: "2025-02-13", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.9.0", date: "2025-02-26", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.10.0", date: "2025-03-13", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "23.11.0", date: "2025-04-01", lts: false, security: false, v8: "12.9.202.28" }, { name: "nodejs", version: "24.0.0", date: "2025-05-06", lts: false, security: false, v8: "13.6.233.8" }, { name: "nodejs", version: "24.1.0", date: "2025-05-20", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.2.0", date: "2025-06-09", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.3.0", date: "2025-06-24", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.4.0", date: "2025-07-09", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.5.0", date: "2025-07-31", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.6.0", date: "2025-08-14", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.7.0", date: "2025-08-27", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.8.0", date: "2025-09-10", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.9.0", date: "2025-09-25", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.10.0", date: "2025-10-08", lts: false, security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "24.11.0", date: "2025-10-28", lts: "Krypton", security: false, v8: "13.6.233.10" }, { name: "nodejs", version: "25.0.0", date: "2025-10-15", lts: false, security: false, v8: "14.1.146.11" }, { name: "nodejs", version: "25.1.0", date: "2025-10-28", lts: false, security: false, v8: "14.1.146.11" }];
  }
});
var require_browsers = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browsers.js"(exports2, module2) {
    module2.exports = { A: "ie", B: "edge", C: "firefox", D: "chrome", E: "safari", F: "opera", G: "ios_saf", H: "op_mini", I: "android", J: "bb", K: "op_mob", L: "and_chr", M: "and_ff", N: "ie_mob", O: "and_uc", P: "samsung", Q: "and_qq", R: "baidu", S: "kaios" };
  }
});
var require_browsers2 = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browsers.js"(exports2, module2) {
    module2.exports.browsers = require_browsers();
  }
});
var require_browserVersions = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/browserVersions.js"(exports2, module2) {
    module2.exports = { "0": "117", "1": "118", "2": "119", "3": "120", "4": "121", "5": "122", "6": "123", "7": "124", "8": "125", "9": "20", A: "10", B: "11", C: "12", D: "7", E: "8", F: "9", G: "15", H: "80", I: "144", J: "4", K: "6", L: "13", M: "14", N: "16", O: "17", P: "18", Q: "79", R: "81", S: "83", T: "84", U: "85", V: "86", W: "87", X: "88", Y: "89", Z: "90", a: "91", b: "92", c: "93", d: "94", e: "95", f: "96", g: "97", h: "98", i: "99", j: "100", k: "101", l: "102", m: "103", n: "104", o: "105", p: "106", q: "107", r: "108", s: "109", t: "110", u: "111", v: "112", w: "113", x: "114", y: "115", z: "116", AB: "21", BB: "22", CB: "23", DB: "24", EB: "25", FB: "26", GB: "27", HB: "28", IB: "29", JB: "126", KB: "127", LB: "128", MB: "129", NB: "130", OB: "131", PB: "132", QB: "133", RB: "134", SB: "135", TB: "136", UB: "137", VB: "138", WB: "139", XB: "140", YB: "141", ZB: "142", aB: "143", bB: "5", cB: "19", dB: "30", eB: "31", fB: "32", gB: "33", hB: "34", iB: "35", jB: "36", kB: "37", lB: "38", mB: "39", nB: "40", oB: "41", pB: "42", qB: "43", rB: "44", sB: "45", tB: "46", uB: "47", vB: "48", wB: "49", xB: "50", yB: "51", zB: "52", "0B": "53", "1B": "54", "2B": "55", "3B": "56", "4B": "57", "5B": "58", "6B": "60", "7B": "62", "8B": "63", "9B": "64", AC: "65", BC: "66", CC: "67", DC: "68", EC: "69", FC: "70", GC: "71", HC: "72", IC: "73", JC: "74", KC: "75", LC: "76", MC: "77", NC: "78", OC: "147", PC: "11.1", QC: "12.1", RC: "15.5", SC: "16.0", TC: "17.0", UC: "18.0", VC: "3", WC: "59", XC: "61", YC: "82", ZC: "145", aC: "146", bC: "3.2", cC: "10.1", dC: "15.2-15.3", eC: "15.4", fC: "16.1", gC: "16.2", hC: "16.3", iC: "16.4", jC: "16.5", kC: "17.1", lC: "17.2", mC: "17.3", nC: "17.4", oC: "17.5", pC: "18.1", qC: "18.2", rC: "18.3", sC: "18.4", tC: "26.0", uC: "26.1", vC: "26.2", wC: "26.3", xC: "11.5", yC: "4.2-4.3", zC: "5.5", "0C": "2", "1C": "148", "2C": "149", "3C": "150", "4C": "3.5", "5C": "3.6", "6C": "3.1", "7C": "5.1", "8C": "6.1", "9C": "7.1", AD: "9.1", BD: "13.1", CD: "14.1", DD: "15.1", ED: "15.6", FD: "16.6", GD: "17.6", HD: "18.5-18.6", ID: "TP", JD: "9.5-9.6", KD: "10.0-10.1", LD: "10.5", MD: "10.6", ND: "11.6", OD: "4.0-4.1", PD: "5.0-5.1", QD: "6.0-6.1", RD: "7.0-7.1", SD: "8.1-8.4", TD: "9.0-9.2", UD: "9.3", VD: "10.0-10.2", WD: "10.3", XD: "11.0-11.2", YD: "11.3-11.4", ZD: "12.0-12.1", aD: "12.2-12.5", bD: "13.0-13.1", cD: "13.2", dD: "13.3", eD: "13.4-13.7", fD: "14.0-14.4", gD: "14.5-14.8", hD: "15.0-15.1", iD: "15.6-15.8", jD: "16.6-16.7", kD: "17.6-17.7", lD: "18.5-18.7", mD: "all", nD: "2.1", oD: "2.2", pD: "2.3", qD: "4.1", rD: "4.4", sD: "4.4.3-4.4.4", tD: "5.0-5.4", uD: "6.2-6.4", vD: "7.2-7.4", wD: "8.2", xD: "9.2", yD: "11.1-11.2", zD: "12.0", "0D": "13.0", "1D": "14.0", "2D": "15.0", "3D": "19.0", "4D": "14.9", "5D": "13.52", "6D": "2.5", "7D": "3.0-3.1" };
  }
});
var require_browserVersions2 = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/browserVersions.js"(exports2, module2) {
    module2.exports.browserVersions = require_browserVersions();
  }
});
var require_agents = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/data/agents.js"(exports2, module2) {
    module2.exports = { A: { A: { K: 0, D: 0, E: 0.0248793, F: 0.0746377, A: 0, B: 0.298551, zC: 0 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "zC", "K", "D", "E", "F", "A", "B", "", "", ""], E: "IE", F: { zC: 962323200, K: 998870400, D: 1161129600, E: 1237420800, F: 1300060800, A: 1346716800, B: 1381968e3 } }, B: { A: { "0": 0, "1": 0, "2": 0, "3": 0.014388, "4": 0, "5": 4796e-6, "6": 0, "7": 0, "8": 0, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, Q: 0, H: 0, R: 0, S: 0, T: 0, U: 0, V: 0, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 9592e-6, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 0, n: 0, o: 0, p: 0, q: 0, r: 0, s: 0.028776, t: 0, u: 0, v: 0, w: 0, x: 4796e-6, y: 0, z: 0, JB: 4796e-6, KB: 4796e-6, LB: 0, MB: 0, NB: 0, OB: 0.014388, PB: 4796e-6, QB: 9592e-6, RB: 9592e-6, SB: 9592e-6, TB: 9592e-6, UB: 9592e-6, VB: 0.019184, WB: 0.014388, XB: 0.028776, YB: 0.04796, ZB: 0.076736, aB: 2.42198, I: 1.58268 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "C", "L", "M", "G", "N", "O", "P", "Q", "H", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "I", "", "", ""], E: "Edge", F: { "0": 1694649600, "1": 1697155200, "2": 1698969600, "3": 1701993600, "4": 1706227200, "5": 1708732800, "6": 1711152e3, "7": 1713398400, "8": 1715990400, C: 1438128e3, L: 1447286400, M: 1470096e3, G: 1491868800, N: 1508198400, O: 1525046400, P: 1542067200, Q: 1579046400, H: 1581033600, R: 1586736e3, S: 1590019200, T: 1594857600, U: 1598486400, V: 1602201600, W: 1605830400, X: 161136e4, Y: 1614816e3, Z: 1618358400, a: 1622073600, b: 1626912e3, c: 1630627200, d: 1632441600, e: 1634774400, f: 1637539200, g: 1641427200, h: 1643932800, i: 1646265600, j: 1649635200, k: 1651190400, l: 1653955200, m: 1655942400, n: 1659657600, o: 1661990400, p: 1664755200, q: 1666915200, r: 1670198400, s: 1673481600, t: 1675900800, u: 1678665600, v: 1680825600, w: 1683158400, x: 1685664e3, y: 1689897600, z: 1692576e3, JB: 1718841600, KB: 1721865600, LB: 1724371200, MB: 1726704e3, NB: 1729123200, OB: 1731542400, PB: 1737417600, QB: 1740614400, RB: 1741219200, SB: 1743984e3, TB: 1746316800, UB: 1748476800, VB: 1750896e3, WB: 1754611200, XB: 1756944e3, YB: 1759363200, ZB: 1761868800, aB: 1764806400, I: 1768780800 }, D: { C: "ms", L: "ms", M: "ms", G: "ms", N: "ms", O: "ms", P: "ms" } }, C: { A: { "0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "0C": 0, VC: 0, J: 0, bB: 0.02398, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0.07194, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, cB: 0, AB: 0, BB: 0, CB: 0, DB: 0, EB: 0, FB: 0, GB: 0, HB: 0, IB: 0, dB: 0, eB: 0, fB: 0, gB: 0, hB: 0, iB: 0, jB: 0, kB: 0, lB: 0, mB: 0, nB: 0, oB: 0, pB: 0, qB: 0.014388, rB: 0, sB: 0, tB: 0, uB: 0, vB: 0, wB: 0, xB: 0, yB: 0, zB: 0.014388, "0B": 0, "1B": 0, "2B": 0, "3B": 0, "4B": 4796e-6, "5B": 0, WC: 9592e-6, "6B": 0, XC: 0, "7B": 0, "8B": 0, "9B": 0, AC: 0, BC: 4796e-6, CC: 0, DC: 0, EC: 0, FC: 0, GC: 0, HC: 0, IC: 0, JC: 0, KC: 0, LC: 0, MC: 0, NC: 4796e-6, Q: 0, H: 0, R: 0, YC: 0, S: 0, T: 0, U: 0, V: 0, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 0, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 9592e-6, n: 0, o: 0, p: 0, q: 0, r: 0, s: 0, t: 0, u: 0, v: 0, w: 0, x: 0, y: 0.129492, z: 0, JB: 0, KB: 0, LB: 9592e-6, MB: 0, NB: 0, OB: 0, PB: 0, QB: 0, RB: 0, SB: 9592e-6, TB: 9592e-6, UB: 0, VB: 0, WB: 0, XB: 0.110308, YB: 4796e-6, ZB: 4796e-6, aB: 9592e-6, I: 9592e-6, ZC: 0.028776, aC: 0.652256, OC: 0.652256, "1C": 0, "2C": 0, "3C": 0, "4C": 0, "5C": 0 }, B: "moz", C: ["0C", "VC", "4C", "5C", "J", "bB", "K", "D", "E", "F", "A", "B", "C", "L", "M", "G", "N", "O", "P", "cB", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "lB", "mB", "nB", "oB", "pB", "qB", "rB", "sB", "tB", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B", "2B", "3B", "4B", "5B", "WC", "6B", "XC", "7B", "8B", "9B", "AC", "BC", "CC", "DC", "EC", "FC", "GC", "HC", "IC", "JC", "KC", "LC", "MC", "NC", "Q", "H", "R", "YC", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "I", "ZC", "aC", "OC", "1C", "2C", "3C"], E: "Firefox", F: { "0": 1693267200, "1": 1695686400, "2": 1698105600, "3": 1700524800, "4": 1702944e3, "5": 1705968e3, "6": 1708387200, "7": 1710806400, "8": 1713225600, "9": 1361232e3, "0C": 1161648e3, VC: 1213660800, "4C": 124632e4, "5C": 1264032e3, J: 1300752e3, bB: 1308614400, K: 1313452800, D: 1317081600, E: 1317081600, F: 1320710400, A: 1324339200, B: 1327968e3, C: 1331596800, L: 1335225600, M: 1338854400, G: 1342483200, N: 1346112e3, O: 1349740800, P: 1353628800, cB: 1357603200, AB: 1364860800, BB: 1368489600, CB: 1372118400, DB: 1375747200, EB: 1379376e3, FB: 1386633600, GB: 1391472e3, HB: 1395100800, IB: 1398729600, dB: 1402358400, eB: 1405987200, fB: 1409616e3, gB: 1413244800, hB: 1417392e3, iB: 1421107200, jB: 1424736e3, kB: 1428278400, lB: 1431475200, mB: 1435881600, nB: 1439251200, oB: 144288e4, pB: 1446508800, qB: 1450137600, rB: 1453852800, sB: 1457395200, tB: 1461628800, uB: 1465257600, vB: 1470096e3, wB: 1474329600, xB: 1479168e3, yB: 1485216e3, zB: 1488844800, "0B": 149256e4, "1B": 1497312e3, "2B": 1502150400, "3B": 1506556800, "4B": 1510617600, "5B": 1516665600, WC: 1520985600, "6B": 1525824e3, XC: 1529971200, "7B": 1536105600, "8B": 1540252800, "9B": 1544486400, AC: 154872e4, BC: 1552953600, CC: 1558396800, DC: 1562630400, EC: 1567468800, FC: 1571788800, GC: 1575331200, HC: 1578355200, IC: 1581379200, JC: 1583798400, KC: 1586304e3, LC: 1588636800, MC: 1591056e3, NC: 1593475200, Q: 1595894400, H: 1598313600, R: 1600732800, YC: 1603152e3, S: 1605571200, T: 1607990400, U: 1611619200, V: 1614038400, W: 1616457600, X: 1618790400, Y: 1622505600, Z: 1626134400, a: 1628553600, b: 1630972800, c: 1633392e3, d: 1635811200, e: 1638835200, f: 1641859200, g: 1644364800, h: 1646697600, i: 1649116800, j: 1651536e3, k: 1653955200, l: 1656374400, m: 1658793600, n: 1661212800, o: 1663632e3, p: 1666051200, q: 1668470400, r: 1670889600, s: 1673913600, t: 1676332800, u: 1678752e3, v: 1681171200, w: 1683590400, x: 1686009600, y: 1688428800, z: 1690848e3, JB: 1715644800, KB: 1718064e3, LB: 1720483200, MB: 1722902400, NB: 1725321600, OB: 1727740800, PB: 173016e4, QB: 1732579200, RB: 1736208e3, SB: 1738627200, TB: 1741046400, UB: 1743465600, VB: 1745884800, WB: 1748304e3, XB: 1750723200, YB: 1753142400, ZB: 1755561600, aB: 1757980800, I: 17604e5, ZC: 1762819200, aC: 1765238400, OC: 1768262400, "1C": null, "2C": null, "3C": null } }, D: { A: { "0": 0.282964, "1": 0.052756, "2": 0.038368, "3": 0.31174, "4": 0.04796, "5": 0.091124, "6": 0.062348, "7": 0.230208, "8": 0.244596, "9": 0, J: 0, bB: 0, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0, C: 0, L: 0, M: 0, G: 0, N: 0, O: 0, P: 0, cB: 0, AB: 0, BB: 0, CB: 0, DB: 0, EB: 0, FB: 0, GB: 0, HB: 0, IB: 0, dB: 0, eB: 0, fB: 0, gB: 0, hB: 0, iB: 0, jB: 0, kB: 0, lB: 0, mB: 4796e-6, nB: 4796e-6, oB: 9592e-6, pB: 4796e-6, qB: 4796e-6, rB: 4796e-6, sB: 9592e-6, tB: 4796e-6, uB: 9592e-6, vB: 0.014388, wB: 0.014388, xB: 9592e-6, yB: 9592e-6, zB: 0.014388, "0B": 9592e-6, "1B": 4796e-6, "2B": 9592e-6, "3B": 9592e-6, "4B": 9592e-6, "5B": 9592e-6, WC: 9592e-6, "6B": 0.014388, XC: 4796e-6, "7B": 9592e-6, "8B": 9592e-6, "9B": 9592e-6, AC: 4796e-6, BC: 0.02398, CC: 9592e-6, DC: 9592e-6, EC: 0.033572, FC: 9592e-6, GC: 0, HC: 0, IC: 0, JC: 0, KC: 4796e-6, LC: 0, MC: 4796e-6, NC: 0, Q: 0.067144, H: 9592e-6, R: 9592e-6, S: 0.043164, T: 0, U: 4796e-6, V: 9592e-6, W: 0.028776, X: 4796e-6, Y: 0, Z: 0, a: 0.019184, b: 0.014388, c: 9592e-6, d: 0, e: 0, f: 0, g: 9592e-6, h: 0.04796, i: 0.043164, j: 0, k: 0.014388, l: 9592e-6, m: 0.26378, n: 0.230208, o: 0.273372, p: 0.206228, q: 0.230208, r: 0.230208, s: 0.786544, t: 0.235004, u: 0.292556, v: 2.71454, w: 4796e-6, x: 0.062348, y: 0.02398, z: 0.446028, JB: 0.052756, KB: 0.052756, LB: 0.076736, MB: 0.067144, NB: 0.09592, OB: 0.709808, PB: 0.139084, QB: 0.52756, RB: 0.067144, SB: 0.067144, TB: 0.09592, UB: 0.062348, VB: 0.235004, WB: 3.34761, XB: 0.177452, YB: 0.398068, ZB: 1.29972, aB: 10.4121, I: 3.76486, ZC: 0.019184, aC: 0, OC: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "J", "bB", "K", "D", "E", "F", "A", "B", "C", "L", "M", "G", "N", "O", "P", "cB", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "lB", "mB", "nB", "oB", "pB", "qB", "rB", "sB", "tB", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B", "2B", "3B", "4B", "5B", "WC", "6B", "XC", "7B", "8B", "9B", "AC", "BC", "CC", "DC", "EC", "FC", "GC", "HC", "IC", "JC", "KC", "LC", "MC", "NC", "Q", "H", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "I", "ZC", "aC", "OC"], E: "Chrome", F: { "0": 1694476800, "1": 1696896e3, "2": 1698710400, "3": 1701993600, "4": 1705968e3, "5": 1708387200, "6": 1710806400, "7": 1713225600, "8": 1715644800, "9": 133704e4, J: 1264377600, bB: 1274745600, K: 1283385600, D: 1287619200, E: 1291248e3, F: 1296777600, A: 1299542400, B: 1303862400, C: 1307404800, L: 1312243200, M: 1316131200, G: 1316131200, N: 1319500800, O: 1323734400, P: 1328659200, cB: 1332892800, AB: 1340668800, BB: 1343692800, CB: 1348531200, DB: 1352246400, EB: 1357862400, FB: 1361404800, GB: 1364428800, HB: 1369094400, IB: 1374105600, dB: 1376956800, eB: 1384214400, fB: 1389657600, gB: 1392940800, hB: 1397001600, iB: 1400544e3, jB: 1405468800, kB: 1409011200, lB: 141264e4, mB: 1416268800, nB: 1421798400, oB: 1425513600, pB: 1429401600, qB: 143208e4, rB: 1437523200, sB: 1441152e3, tB: 1444780800, uB: 1449014400, vB: 1453248e3, wB: 1456963200, xB: 1460592e3, yB: 1464134400, zB: 1469059200, "0B": 1472601600, "1B": 1476230400, "2B": 1480550400, "3B": 1485302400, "4B": 1489017600, "5B": 149256e4, WC: 1496707200, "6B": 1500940800, XC: 1504569600, "7B": 1508198400, "8B": 1512518400, "9B": 1516752e3, AC: 1520294400, BC: 1523923200, CC: 1527552e3, DC: 1532390400, EC: 1536019200, FC: 1539648e3, GC: 1543968e3, HC: 154872e4, IC: 1552348800, JC: 1555977600, KC: 1559606400, LC: 1564444800, MC: 1568073600, NC: 1571702400, Q: 1575936e3, H: 1580860800, R: 1586304e3, S: 1589846400, T: 1594684800, U: 1598313600, V: 1601942400, W: 1605571200, X: 1611014400, Y: 1614556800, Z: 1618272e3, a: 1621987200, b: 1626739200, c: 1630368e3, d: 1632268800, e: 1634601600, f: 1637020800, g: 1641340800, h: 1643673600, i: 1646092800, j: 1648512e3, k: 1650931200, l: 1653350400, m: 1655769600, n: 1659398400, o: 1661817600, p: 1664236800, q: 1666656e3, r: 166968e4, s: 1673308800, t: 1675728e3, u: 1678147200, v: 1680566400, w: 1682985600, x: 1685404800, y: 1689724800, z: 1692057600, JB: 1718064e3, KB: 1721174400, LB: 1724112e3, MB: 1726531200, NB: 1728950400, OB: 1731369600, PB: 1736812800, QB: 1738627200, RB: 1741046400, SB: 1743465600, TB: 1745884800, UB: 1748304e3, VB: 1750723200, WB: 1754352e3, XB: 1756771200, YB: 1759190400, ZB: 1761609600, aB: 1764633600, I: 1768262400, ZC: null, aC: null, OC: null } }, E: { A: { J: 0, bB: 0, K: 0, D: 0, E: 0, F: 0, A: 0, B: 0, C: 0, L: 0, M: 9592e-6, G: 0, "6C": 0, bC: 0, "7C": 0, "8C": 0, "9C": 0, AD: 0, cC: 0, PC: 4796e-6, QC: 0, BD: 0.019184, CD: 0.019184, DD: 0, dC: 0, eC: 4796e-6, RC: 4796e-6, ED: 0.081532, SC: 0, fC: 9592e-6, gC: 9592e-6, hC: 0.019184, iC: 9592e-6, jC: 0.014388, FD: 0.139084, TC: 9592e-6, kC: 0.09592, lC: 9592e-6, mC: 0.014388, nC: 0.028776, oC: 0.043164, GD: 0.153472, UC: 9592e-6, pC: 0.02398, qC: 9592e-6, rC: 0.043164, sC: 0.02398, HD: 0.086328, tC: 0.043164, uC: 0.172656, vC: 0.628276, wC: 0.014388, ID: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "6C", "bC", "J", "bB", "7C", "K", "8C", "D", "9C", "E", "F", "AD", "A", "cC", "B", "PC", "C", "QC", "L", "BD", "M", "CD", "G", "DD", "dC", "eC", "RC", "ED", "SC", "fC", "gC", "hC", "iC", "jC", "FD", "TC", "kC", "lC", "mC", "nC", "oC", "GD", "UC", "pC", "qC", "rC", "sC", "HD", "tC", "uC", "vC", "wC", "ID", ""], E: "Safari", F: { "6C": 1205798400, bC: 1226534400, J: 1244419200, bB: 1275868800, "7C": 131112e4, K: 1343174400, "8C": 13824e5, D: 13824e5, "9C": 1410998400, E: 1413417600, F: 1443657600, AD: 1458518400, A: 1474329600, cC: 1490572800, B: 1505779200, PC: 1522281600, C: 1537142400, QC: 1553472e3, L: 1568851200, BD: 1585008e3, M: 1600214400, CD: 1619395200, G: 1632096e3, DD: 1635292800, dC: 1639353600, eC: 1647216e3, RC: 1652745600, ED: 1658275200, SC: 1662940800, fC: 1666569600, gC: 1670889600, hC: 1674432e3, iC: 1679875200, jC: 1684368e3, FD: 1690156800, TC: 1695686400, kC: 1698192e3, lC: 1702252800, mC: 1705881600, nC: 1709596800, oC: 1715558400, GD: 1722211200, UC: 1726444800, pC: 1730073600, qC: 1733875200, rC: 1737936e3, sC: 1743379200, HD: 1747008e3, tC: 1757894400, uC: 1762128e3, vC: 1762041600, wC: null, ID: null } }, F: { A: { "0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 9592e-6, "8": 0.594704, "9": 0, F: 0, B: 0, C: 0, G: 0, N: 0, O: 0, P: 0, cB: 0, AB: 0, BB: 0, CB: 0, DB: 0, EB: 0, FB: 0, GB: 0, HB: 0, IB: 0, dB: 0, eB: 0, fB: 0, gB: 0, hB: 0, iB: 0, jB: 0, kB: 0, lB: 0, mB: 0, nB: 0, oB: 0, pB: 0, qB: 0, rB: 0, sB: 0, tB: 0, uB: 0, vB: 0, wB: 0, xB: 0, yB: 4796e-6, zB: 4796e-6, "0B": 9592e-6, "1B": 0.014388, "2B": 9592e-6, "3B": 0.019184, "4B": 4796e-6, "5B": 0, "6B": 0, "7B": 0, "8B": 0, "9B": 0, AC: 0, BC: 0, CC: 0, DC: 0, EC: 0, FC: 0, GC: 0, HC: 0, IC: 0, JC: 0, KC: 0, LC: 0, MC: 0, NC: 0, Q: 0, H: 0, R: 0, YC: 0, S: 0, T: 0, U: 0, V: 0, W: 0, X: 0, Y: 0, Z: 0, a: 0, b: 0, c: 0.052756, d: 0.043164, e: 0.02398, f: 0, g: 0, h: 0, i: 0, j: 0, k: 0, l: 0, m: 0, n: 0, o: 0, p: 0, q: 0, r: 0, s: 0, t: 0, u: 0, v: 0, w: 0, x: 0, y: 0, z: 0, JD: 0, KD: 0, LD: 0, MD: 0, PC: 0, xC: 0, ND: 0, QC: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "F", "JD", "KD", "LD", "MD", "B", "PC", "xC", "ND", "C", "QC", "G", "N", "O", "P", "cB", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "lB", "mB", "nB", "oB", "pB", "qB", "rB", "sB", "tB", "uB", "vB", "wB", "xB", "yB", "zB", "0B", "1B", "2B", "3B", "4B", "5B", "6B", "7B", "8B", "9B", "AC", "BC", "CC", "DC", "EC", "FC", "GC", "HC", "IC", "JC", "KC", "LC", "MC", "NC", "Q", "H", "R", "YC", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "", "", ""], E: "Opera", F: { "0": 1739404800, "1": 1744675200, "2": 1747094400, "3": 1751414400, "4": 1756339200, "5": 1757548800, "6": 1761609600, "7": 1762992e3, "8": 1764806400, "9": 1393891200, F: 1150761600, JD: 1223424e3, KD: 1251763200, LD: 1267488e3, MD: 1277942400, B: 1292457600, PC: 1302566400, xC: 1309219200, ND: 1323129600, C: 1323129600, QC: 1352073600, G: 1372723200, N: 1377561600, O: 1381104e3, P: 1386288e3, cB: 1390867200, AB: 1399334400, BB: 1401753600, CB: 1405987200, DB: 1409616e3, EB: 1413331200, FB: 1417132800, GB: 1422316800, HB: 1425945600, IB: 1430179200, dB: 1433808e3, eB: 1438646400, fB: 1442448e3, gB: 1445904e3, hB: 1449100800, iB: 1454371200, jB: 1457308800, kB: 146232e4, lB: 1465344e3, mB: 1470096e3, nB: 1474329600, oB: 1477267200, pB: 1481587200, qB: 1486425600, rB: 1490054400, sB: 1494374400, tB: 1498003200, uB: 1502236800, vB: 1506470400, wB: 1510099200, xB: 1515024e3, yB: 1517961600, zB: 1521676800, "0B": 1525910400, "1B": 1530144e3, "2B": 1534982400, "3B": 1537833600, "4B": 1543363200, "5B": 1548201600, "6B": 1554768e3, "7B": 1561593600, "8B": 1566259200, "9B": 1570406400, AC: 1573689600, BC: 1578441600, CC: 1583971200, DC: 1587513600, EC: 1592956800, FC: 1595894400, GC: 1600128e3, HC: 1603238400, IC: 161352e4, JC: 1612224e3, KC: 1616544e3, LC: 1619568e3, MC: 1623715200, NC: 1627948800, Q: 1631577600, H: 1633392e3, R: 1635984e3, YC: 1638403200, S: 1642550400, T: 1644969600, U: 1647993600, V: 1650412800, W: 1652745600, X: 1654646400, Y: 1657152e3, Z: 1660780800, a: 1663113600, b: 1668816e3, c: 1668643200, d: 1671062400, e: 1675209600, f: 1677024e3, g: 1679529600, h: 1681948800, i: 1684195200, j: 1687219200, k: 1690329600, l: 1692748800, m: 1696204800, n: 169992e4, o: 169992e4, p: 1702944e3, q: 1707264e3, r: 1710115200, s: 1711497600, t: 1716336e3, u: 1719273600, v: 1721088e3, w: 1724284800, x: 1727222400, y: 1732665600, z: 1736294400 }, D: { F: "o", B: "o", C: "o", JD: "o", KD: "o", LD: "o", MD: "o", PC: "o", xC: "o", ND: "o", QC: "o" } }, G: { A: { E: 0, bC: 0, OD: 0, yC: 120756e-8, PD: 0, QD: 483024e-8, RD: 362268e-8, SD: 0, TD: 0, UD: 0.010868, VD: 0, WD: 0.0205285, XD: 0.254795, YD: 845292e-8, ZD: 120756e-8, aD: 0.0543402, bD: 0, cD: 0.0144907, dD: 120756e-8, eD: 60378e-7, fD: 0.0120756, gD: 0.0181134, hD: 0.0156983, dC: 0.010868, eC: 0.0144907, RC: 0.0169058, iD: 0.25238, SC: 0.0265663, fC: 0.0519251, gC: 0.0265663, hC: 0.04951, iC: 0.010868, jC: 0.0205285, jD: 0.323626, TC: 0.0205285, kC: 0.0289814, lC: 0.0205285, mC: 0.030189, nC: 0.0519251, oC: 0.0978124, kD: 0.245135, UC: 0.0531326, pC: 0.112303, qC: 0.0591704, rC: 0.194417, sC: 0.0953972, lD: 5.89169, tC: 0.166643, uC: 0.924991, vC: 2.76531, wC: 0.0640007 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "bC", "OD", "yC", "PD", "QD", "RD", "E", "SD", "TD", "UD", "VD", "WD", "XD", "YD", "ZD", "aD", "bD", "cD", "dD", "eD", "fD", "gD", "hD", "dC", "eC", "RC", "iD", "SC", "fC", "gC", "hC", "iC", "jC", "jD", "TC", "kC", "lC", "mC", "nC", "oC", "kD", "UC", "pC", "qC", "rC", "sC", "lD", "tC", "uC", "vC", "wC", "", ""], E: "Safari on iOS", F: { bC: 1270252800, OD: 1283904e3, yC: 1299628800, PD: 1331078400, QD: 1359331200, RD: 1394409600, E: 1410912e3, SD: 1413763200, TD: 1442361600, UD: 1458518400, VD: 1473724800, WD: 1490572800, XD: 1505779200, YD: 1522281600, ZD: 1537142400, aD: 1553472e3, bD: 1568851200, cD: 1572220800, dD: 1580169600, eD: 1585008e3, fD: 1600214400, gD: 1619395200, hD: 1632096e3, dC: 1639353600, eC: 1647216e3, RC: 1652659200, iD: 1658275200, SC: 1662940800, fC: 1666569600, gC: 1670889600, hC: 1674432e3, iC: 1679875200, jC: 1684368e3, jD: 1690156800, TC: 1694995200, kC: 1698192e3, lC: 1702252800, mC: 1705881600, nC: 1709596800, oC: 1715558400, kD: 1722211200, UC: 1726444800, pC: 1730073600, qC: 1733875200, rC: 1737936e3, sC: 1743379200, lD: 1747008e3, tC: 1757894400, uC: 1762128e3, vC: 1765497600, wC: null } }, H: { A: { mD: 0.03 }, B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "mD", "", "", ""], E: "Opera Mini", F: { mD: 1426464e3 } }, I: { A: { VC: 0, J: 0, I: 0.457307, nD: 0, oD: 0, pD: 0, qD: 0, yC: 91608e-9, rD: 0, sD: 412236e-9 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "nD", "oD", "pD", "VC", "J", "qD", "yC", "rD", "sD", "I", "", "", ""], E: "Android Browser", F: { nD: 1256515200, oD: 1274313600, pD: 1291593600, VC: 1298332800, J: 1318896e3, qD: 1341792e3, yC: 1374624e3, rD: 1386547200, sD: 1401667200, I: 1768348800 } }, J: { A: { D: 0, A: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "D", "A", "", "", ""], E: "Blackberry Browser", F: { D: 1325376e3, A: 1359504e3 } }, K: { A: { A: 0, B: 0, C: 0, H: 0.79239, PC: 0, xC: 0, QC: 0 }, B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "B", "PC", "xC", "C", "QC", "H", "", "", ""], E: "Opera Mobile", F: { A: 1287100800, B: 1300752e3, PC: 1314835200, xC: 1318291200, C: 1330300800, QC: 1349740800, H: 1709769600 }, D: { H: "webkit" } }, L: { A: { I: 41.8835 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "I", "", "", ""], E: "Chrome for Android", F: { I: 1768348800 } }, M: { A: { OC: 0.29148 }, B: "moz", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "OC", "", "", ""], E: "Firefox for Android", F: { OC: 1768262400 } }, N: { A: { A: 0, B: 0 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "B", "", "", ""], E: "IE Mobile", F: { A: 1340150400, B: 1353456e3 } }, O: { A: { RC: 0.57255 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "RC", "", "", ""], E: "UC Browser for Android", F: { RC: 1710115200 }, D: { RC: "webkit" } }, P: { A: { "9": 0, J: 0, AB: 0.0109547, BB: 0, CB: 0.0109547, DB: 0.0109547, EB: 0.0219094, FB: 0.0328641, GB: 0.0438188, HB: 0.0985924, IB: 1.65416, tD: 0, uD: 0, vD: 0, wD: 0, xD: 0, cC: 0, yD: 0, zD: 0, "0D": 0, "1D": 0, "2D": 0, SC: 0, TC: 0, UC: 0, "3D": 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "J", "tD", "uD", "vD", "wD", "xD", "cC", "yD", "zD", "0D", "1D", "2D", "SC", "TC", "UC", "3D", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "", "", ""], E: "Samsung Internet", F: { "9": 1677369600, J: 1461024e3, tD: 1481846400, uD: 1509408e3, vD: 1528329600, wD: 1546128e3, xD: 1554163200, cC: 1567900800, yD: 1582588800, zD: 1593475200, "0D": 1605657600, "1D": 1618531200, "2D": 1629072e3, SC: 1640736e3, TC: 1651708800, UC: 1659657600, "3D": 1667260800, AB: 1684454400, BB: 1689292800, CB: 1697587200, DB: 1711497600, EB: 1715126400, FB: 1717718400, GB: 1725667200, HB: 1746057600, IB: 1761264e3 } }, Q: { A: { "4D": 0.140535 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "4D", "", "", ""], E: "QQ Browser", F: { "4D": 1710288e3 } }, R: { A: { "5D": 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "5D", "", "", ""], E: "Baidu Browser", F: { "5D": 1710201600 } }, S: { A: { "6D": 0.01041, "7D": 0 }, B: "moz", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "6D", "7D", "", "", ""], E: "KaiOS Browser", F: { "6D": 1527811200, "7D": 1631664e3 } } };
  }
});
var require_agents2 = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/agents.js"(exports2, module2) {
    "use strict";
    var browsers = require_browsers2().browsers;
    var versions = require_browserVersions2().browserVersions;
    var agentsData = require_agents();
    function unpackBrowserVersions(versionsData) {
      return Object.keys(versionsData).reduce((usage, version) => {
        usage[versions[version]] = versionsData[version];
        return usage;
      }, {});
    }
    module2.exports.agents = Object.keys(agentsData).reduce((map2, key) => {
      let versionsData = agentsData[key];
      map2[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {
        if (entry === "A") {
          data.usage_global = unpackBrowserVersions(versionsData[entry]);
        } else if (entry === "C") {
          data.versions = versionsData[entry].reduce((list, version) => {
            if (version === "") {
              list.push(null);
            } else {
              list.push(versions[version]);
            }
            return list;
          }, []);
        } else if (entry === "D") {
          data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]);
        } else if (entry === "E") {
          data.browser = versionsData[entry];
        } else if (entry === "F") {
          data.release_date = Object.keys(versionsData[entry]).reduce(
            (map22, key2) => {
              map22[versions[key2]] = versionsData[entry][key2];
              return map22;
            },
            {}
          );
        } else {
          data.prefix = versionsData[entry];
        }
        return data;
      }, {});
      return map2;
    }, {});
  }
});
var require_versions = __commonJS2({
  "../../node_modules/.pnpm/electron-to-chromium@1.5.286/node_modules/electron-to-chromium/versions.js"(exports2, module2) {
    module2.exports = {
      "0.20": "39",
      "0.21": "41",
      "0.22": "41",
      "0.23": "41",
      "0.24": "41",
      "0.25": "42",
      "0.26": "42",
      "0.27": "43",
      "0.28": "43",
      "0.29": "43",
      "0.30": "44",
      "0.31": "45",
      "0.32": "45",
      "0.33": "45",
      "0.34": "45",
      "0.35": "45",
      "0.36": "47",
      "0.37": "49",
      "1.0": "49",
      "1.1": "50",
      "1.2": "51",
      "1.3": "52",
      "1.4": "53",
      "1.5": "54",
      "1.6": "56",
      "1.7": "58",
      "1.8": "59",
      "2.0": "61",
      "2.1": "61",
      "3.0": "66",
      "3.1": "66",
      "4.0": "69",
      "4.1": "69",
      "4.2": "69",
      "5.0": "73",
      "6.0": "76",
      "6.1": "76",
      "7.0": "78",
      "7.1": "78",
      "7.2": "78",
      "7.3": "78",
      "8.0": "80",
      "8.1": "80",
      "8.2": "80",
      "8.3": "80",
      "8.4": "80",
      "8.5": "80",
      "9.0": "83",
      "9.1": "83",
      "9.2": "83",
      "9.3": "83",
      "9.4": "83",
      "10.0": "85",
      "10.1": "85",
      "10.2": "85",
      "10.3": "85",
      "10.4": "85",
      "11.0": "87",
      "11.1": "87",
      "11.2": "87",
      "11.3": "87",
      "11.4": "87",
      "11.5": "87",
      "12.0": "89",
      "12.1": "89",
      "12.2": "89",
      "13.0": "91",
      "13.1": "91",
      "13.2": "91",
      "13.3": "91",
      "13.4": "91",
      "13.5": "91",
      "13.6": "91",
      "14.0": "93",
      "14.1": "93",
      "14.2": "93",
      "15.0": "94",
      "15.1": "94",
      "15.2": "94",
      "15.3": "94",
      "15.4": "94",
      "15.5": "94",
      "16.0": "96",
      "16.1": "96",
      "16.2": "96",
      "17.0": "98",
      "17.1": "98",
      "17.2": "98",
      "17.3": "98",
      "17.4": "98",
      "18.0": "100",
      "18.1": "100",
      "18.2": "100",
      "18.3": "100",
      "19.0": "102",
      "19.1": "102",
      "20.0": "104",
      "20.1": "104",
      "20.2": "104",
      "20.3": "104",
      "21.0": "106",
      "21.1": "106",
      "21.2": "106",
      "21.3": "106",
      "21.4": "106",
      "22.0": "108",
      "22.1": "108",
      "22.2": "108",
      "22.3": "108",
      "23.0": "110",
      "23.1": "110",
      "23.2": "110",
      "23.3": "110",
      "24.0": "112",
      "24.1": "112",
      "24.2": "112",
      "24.3": "112",
      "24.4": "112",
      "24.5": "112",
      "24.6": "112",
      "24.7": "112",
      "24.8": "112",
      "25.0": "114",
      "25.1": "114",
      "25.2": "114",
      "25.3": "114",
      "25.4": "114",
      "25.5": "114",
      "25.6": "114",
      "25.7": "114",
      "25.8": "114",
      "25.9": "114",
      "26.0": "116",
      "26.1": "116",
      "26.2": "116",
      "26.3": "116",
      "26.4": "116",
      "26.5": "116",
      "26.6": "116",
      "27.0": "118",
      "27.1": "118",
      "27.2": "118",
      "27.3": "118",
      "28.0": "120",
      "28.1": "120",
      "28.2": "120",
      "28.3": "120",
      "29.0": "122",
      "29.1": "122",
      "29.2": "122",
      "29.3": "122",
      "29.4": "122",
      "30.0": "124",
      "30.1": "124",
      "30.2": "124",
      "30.3": "124",
      "30.4": "124",
      "30.5": "124",
      "31.0": "126",
      "31.1": "126",
      "31.2": "126",
      "31.3": "126",
      "31.4": "126",
      "31.5": "126",
      "31.6": "126",
      "31.7": "126",
      "32.0": "128",
      "32.1": "128",
      "32.2": "128",
      "32.3": "128",
      "33.0": "130",
      "33.1": "130",
      "33.2": "130",
      "33.3": "130",
      "33.4": "130",
      "34.0": "132",
      "34.1": "132",
      "34.2": "132",
      "34.3": "132",
      "34.4": "132",
      "34.5": "132",
      "35.0": "134",
      "35.1": "134",
      "35.2": "134",
      "35.3": "134",
      "35.4": "134",
      "35.5": "134",
      "35.6": "134",
      "35.7": "134",
      "36.0": "136",
      "36.1": "136",
      "36.2": "136",
      "36.3": "136",
      "36.4": "136",
      "36.5": "136",
      "36.6": "136",
      "36.7": "136",
      "36.8": "136",
      "36.9": "136",
      "37.0": "138",
      "37.1": "138",
      "37.2": "138",
      "37.3": "138",
      "37.4": "138",
      "37.5": "138",
      "37.6": "138",
      "37.7": "138",
      "37.8": "138",
      "37.9": "138",
      "37.10": "138",
      "38.0": "140",
      "38.1": "140",
      "38.2": "140",
      "38.3": "140",
      "38.4": "140",
      "38.5": "140",
      "38.6": "140",
      "38.7": "140",
      "38.8": "140",
      "39.0": "142",
      "39.1": "142",
      "39.2": "142",
      "39.3": "142",
      "39.4": "142",
      "39.5": "142",
      "40.0": "144",
      "40.1": "144",
      "41.0": "146"
    };
  }
});
var require_release_schedule = __commonJS2({
  "../../node_modules/.pnpm/node-releases@2.0.27/node_modules/node-releases/data/release-schedule/release-schedule.json"(exports2, module2) {
    module2.exports = { "v0.8": { start: "2012-06-25", end: "2014-07-31" }, "v0.10": { start: "2013-03-11", end: "2016-10-31" }, "v0.12": { start: "2015-02-06", end: "2016-12-31" }, v4: { start: "2015-09-08", lts: "2015-10-12", maintenance: "2017-04-01", end: "2018-04-30", codename: "Argon" }, v5: { start: "2015-10-29", maintenance: "2016-04-30", end: "2016-06-30" }, v6: { start: "2016-04-26", lts: "2016-10-18", maintenance: "2018-04-30", end: "2019-04-30", codename: "Boron" }, v7: { start: "2016-10-25", maintenance: "2017-04-30", end: "2017-06-30" }, v8: { start: "2017-05-30", lts: "2017-10-31", maintenance: "2019-01-01", end: "2019-12-31", codename: "Carbon" }, v9: { start: "2017-10-01", maintenance: "2018-04-01", end: "2018-06-30" }, v10: { start: "2018-04-24", lts: "2018-10-30", maintenance: "2020-05-19", end: "2021-04-30", codename: "Dubnium" }, v11: { start: "2018-10-23", maintenance: "2019-04-22", end: "2019-06-01" }, v12: { start: "2019-04-23", lts: "2019-10-21", maintenance: "2020-11-30", end: "2022-04-30", codename: "Erbium" }, v13: { start: "2019-10-22", maintenance: "2020-04-01", end: "2020-06-01" }, v14: { start: "2020-04-21", lts: "2020-10-27", maintenance: "2021-10-19", end: "2023-04-30", codename: "Fermium" }, v15: { start: "2020-10-20", maintenance: "2021-04-01", end: "2021-06-01" }, v16: { start: "2021-04-20", lts: "2021-10-26", maintenance: "2022-10-18", end: "2023-09-11", codename: "Gallium" }, v17: { start: "2021-10-19", maintenance: "2022-04-01", end: "2022-06-01" }, v18: { start: "2022-04-19", lts: "2022-10-25", maintenance: "2023-10-18", end: "2025-04-30", codename: "Hydrogen" }, v19: { start: "2022-10-18", maintenance: "2023-04-01", end: "2023-06-01" }, v20: { start: "2023-04-18", lts: "2023-10-24", maintenance: "2024-10-22", end: "2026-04-30", codename: "Iron" }, v21: { start: "2023-10-17", maintenance: "2024-04-01", end: "2024-06-01" }, v22: { start: "2024-04-24", lts: "2024-10-29", maintenance: "2025-10-21", end: "2027-04-30", codename: "Jod" }, v23: { start: "2024-10-16", maintenance: "2025-04-01", end: "2025-06-01" }, v24: { start: "2025-05-06", lts: "2025-10-28", maintenance: "2026-10-20", end: "2028-04-30", codename: "Krypton" }, v25: { start: "2025-10-15", maintenance: "2026-04-01", end: "2026-06-01" }, v26: { start: "2026-04-22", lts: "2026-10-28", maintenance: "2027-10-20", end: "2029-04-30", codename: "" } };
  }
});
var require_error2 = __commonJS2({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/error.js"(exports2, module2) {
    function BrowserslistError(message) {
      this.name = "BrowserslistError";
      this.message = message;
      this.browserslist = true;
      if (Error.captureStackTrace) {
        Error.captureStackTrace(this, BrowserslistError);
      }
    }
    BrowserslistError.prototype = Error.prototype;
    module2.exports = BrowserslistError;
  }
});
var require_statuses = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/statuses.js"(exports2, module2) {
    module2.exports = {
      1: "ls",
      // WHATWG Living Standard
      2: "rec",
      // W3C Recommendation
      3: "pr",
      // W3C Proposed Recommendation
      4: "cr",
      // W3C Candidate Recommendation
      5: "wd",
      // W3C Working Draft
      6: "other",
      // Non-W3C, but reputable
      7: "unoff"
      // Unofficial, Editor's Draft or W3C "Note"
    };
  }
});
var require_supported = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/lib/supported.js"(exports2, module2) {
    module2.exports = {
      y: 1 << 0,
      n: 1 << 1,
      a: 1 << 2,
      p: 1 << 3,
      u: 1 << 4,
      x: 1 << 5,
      d: 1 << 6
    };
  }
});
var require_feature = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/feature.js"(exports2, module2) {
    "use strict";
    var statuses = require_statuses();
    var supported = require_supported();
    var browsers = require_browsers2().browsers;
    var versions = require_browserVersions2().browserVersions;
    var MATH2LOG = Math.log(2);
    function unpackSupport(cipher) {
      let stats = Object.keys(supported).reduce((list, support) => {
        if (cipher & supported[support]) list.push(support);
        return list;
      }, []);
      let notes = cipher >> 7;
      let notesArray = [];
      while (notes) {
        let note = Math.floor(Math.log(notes) / MATH2LOG) + 1;
        notesArray.unshift(`#${note}`);
        notes -= Math.pow(2, note - 1);
      }
      return stats.concat(notesArray).join(" ");
    }
    function unpackFeature(packed) {
      let unpacked = {
        status: statuses[packed.B],
        title: packed.C,
        shown: packed.D
      };
      unpacked.stats = Object.keys(packed.A).reduce((browserStats, key) => {
        let browser = packed.A[key];
        browserStats[browsers[key]] = Object.keys(browser).reduce(
          (stats, support) => {
            let packedVersions = browser[support].split(" ");
            let unpacked2 = unpackSupport(support);
            packedVersions.forEach((v2) => stats[versions[v2]] = unpacked2);
            return stats;
          },
          {}
        );
        return browserStats;
      }, {});
      return unpacked;
    }
    module2.exports = unpackFeature;
    module2.exports.default = unpackFeature;
  }
});
var require_region = __commonJS2({
  "../../node_modules/.pnpm/caniuse-lite@1.0.30001769/node_modules/caniuse-lite/dist/unpacker/region.js"(exports2, module2) {
    "use strict";
    var browsers = require_browsers2().browsers;
    function unpackRegion(packed) {
      return Object.keys(packed).reduce((list, browser) => {
        let data = packed[browser];
        list[browsers[browser]] = Object.keys(data).reduce((memo, key) => {
          let stats = data[key];
          if (key === "_") {
            stats.split(" ").forEach((version) => memo[version] = null);
          } else {
            memo[key] = stats;
          }
          return memo;
        }, {});
        return list;
      }, {});
    }
    module2.exports = unpackRegion;
    module2.exports.default = unpackRegion;
  }
});
var require_node2 = __commonJS2({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node.js"(exports2, module2) {
    var feature = require_feature().default;
    var region = require_region().default;
    var fs32 = __require("fs");
    var path22 = __require("path");
    var BrowserslistError = require_error2();
    var IS_SECTION = /^\s*\[(.+)]\s*$/;
    var CONFIG_PATTERN = /^browserslist-config-/;
    var SCOPED_CONFIG__PATTERN = /@[^/]+(?:\/[^/]+)?\/browserslist-config(?:-|$|\/)/;
    var FORMAT = "Browserslist config should be a string or an array of strings with browser queries";
    var PATHTYPE_UNKNOWN = "unknown";
    var PATHTYPE_DIR = "directory";
    var PATHTYPE_FILE = "file";
    var dataTimeChecked = false;
    var statCache = {};
    var configPathCache = {};
    var parseConfigCache = {};
    function checkExtend(name2) {
      var use = " Use `dangerousExtend` option to disable.";
      if (!CONFIG_PATTERN.test(name2) && !SCOPED_CONFIG__PATTERN.test(name2)) {
        throw new BrowserslistError(
          "Browserslist config needs `browserslist-config-` prefix. " + use
        );
      }
      if (name2.replace(/^@[^/]+\//, "").indexOf(".") !== -1) {
        throw new BrowserslistError(
          "`.` not allowed in Browserslist config name. " + use
        );
      }
      if (name2.indexOf("node_modules") !== -1) {
        throw new BrowserslistError(
          "`node_modules` not allowed in Browserslist config." + use
        );
      }
    }
    function getPathType(filepath) {
      var stats;
      try {
        stats = fs32.existsSync(filepath) && fs32.statSync(filepath);
      } catch (err2) {
        if (err2.code !== "ENOENT" && err2.code !== "EACCES" && err2.code !== "ERR_ACCESS_DENIED") {
          throw err2;
        }
      }
      if (stats && stats.isDirectory()) return PATHTYPE_DIR;
      if (stats && stats.isFile()) return PATHTYPE_FILE;
      return PATHTYPE_UNKNOWN;
    }
    function isFile3(file) {
      return getPathType(file) === PATHTYPE_FILE;
    }
    function isDirectory(dir) {
      return getPathType(dir) === PATHTYPE_DIR;
    }
    function eachParent(file, callback, cache) {
      var loc = path22.resolve(file);
      var pathsForCacheResult = [];
      var result;
      do {
        if (!pathInRoot(loc)) {
          break;
        }
        if (cache && loc in cache) {
          result = cache[loc];
          break;
        }
        pathsForCacheResult.push(loc);
        if (!isDirectory(loc)) {
          continue;
        }
        var locResult = callback(loc);
        if (typeof locResult !== "undefined") {
          result = locResult;
          break;
        }
      } while (loc !== (loc = path22.dirname(loc)));
      if (cache && !process.env.BROWSERSLIST_DISABLE_CACHE) {
        pathsForCacheResult.forEach(function(cachePath) {
          cache[cachePath] = result;
        });
      }
      return result;
    }
    function pathInRoot(p) {
      if (!process.env.BROWSERSLIST_ROOT_PATH) return true;
      var rootPath = path22.resolve(process.env.BROWSERSLIST_ROOT_PATH);
      if (path22.relative(rootPath, p).substring(0, 2) === "..") {
        return false;
      }
      return true;
    }
    function check(section) {
      if (Array.isArray(section)) {
        for (var i22 = 0; i22 < section.length; i22++) {
          if (typeof section[i22] !== "string") {
            throw new BrowserslistError(FORMAT);
          }
        }
      } else if (typeof section !== "string") {
        throw new BrowserslistError(FORMAT);
      }
    }
    function pickEnv(config, opts) {
      if (typeof config !== "object") return config;
      var name2;
      if (typeof opts.env === "string") {
        name2 = opts.env;
      } else if (process.env.BROWSERSLIST_ENV) {
        name2 = process.env.BROWSERSLIST_ENV;
      } else if (process.env.NODE_ENV) {
        name2 = process.env.NODE_ENV;
      } else {
        name2 = "production";
      }
      if (opts.throwOnMissing) {
        if (name2 && name2 !== "defaults" && !config[name2]) {
          throw new BrowserslistError(
            "Missing config for Browserslist environment `" + name2 + "`"
          );
        }
      }
      return config[name2] || config.defaults;
    }
    function parsePackage(file) {
      var text = fs32.readFileSync(file).toString().replace(/^\uFEFF/m, "");
      var list;
      if (text.indexOf('"browserslist"') >= 0) {
        list = JSON.parse(text).browserslist;
      } else if (text.indexOf('"browserlist"') >= 0) {
        var config = JSON.parse(text);
        if (config.browserlist && !config.browserslist) {
          throw new BrowserslistError(
            "`browserlist` key instead of `browserslist` in " + file
          );
        }
      }
      if (Array.isArray(list) || typeof list === "string") {
        list = { defaults: list };
      }
      for (var i22 in list) {
        check(list[i22]);
      }
      return list;
    }
    function parsePackageOrReadConfig(file) {
      if (file in parseConfigCache) {
        return parseConfigCache[file];
      }
      var isPackage = path22.basename(file) === "package.json";
      var result = isPackage ? parsePackage(file) : module2.exports.readConfig(file);
      if (!process.env.BROWSERSLIST_DISABLE_CACHE) {
        parseConfigCache[file] = result;
      }
      return result;
    }
    function latestReleaseTime(agents) {
      var latest = 0;
      for (var name2 in agents) {
        var dates = agents[name2].releaseDate || {};
        for (var key in dates) {
          if (latest < dates[key]) {
            latest = dates[key];
          }
        }
      }
      return latest * 1e3;
    }
    function getMonthsPassed(date) {
      var now = /* @__PURE__ */ new Date();
      var past = new Date(date);
      var years = now.getFullYear() - past.getFullYear();
      var months = now.getMonth() - past.getMonth();
      return years * 12 + months;
    }
    function normalizeStats(data, stats) {
      if (!data) {
        data = {};
      }
      if (stats && "dataByBrowser" in stats) {
        stats = stats.dataByBrowser;
      }
      if (typeof stats !== "object") return void 0;
      var normalized = {};
      for (var i22 in stats) {
        var versions = Object.keys(stats[i22]);
        if (versions.length === 1 && data[i22] && data[i22].versions.length === 1) {
          var normal = data[i22].versions[0];
          normalized[i22] = {};
          normalized[i22][normal] = stats[i22][versions[0]];
        } else {
          normalized[i22] = stats[i22];
        }
      }
      return normalized;
    }
    function normalizeUsageData(usageData, data) {
      for (var browser in usageData) {
        var browserUsage = usageData[browser];
        if ("0" in browserUsage) {
          var versions = data[browser].versions;
          browserUsage[versions[versions.length - 1]] = browserUsage[0];
          delete browserUsage[0];
        }
      }
    }
    module2.exports = {
      loadQueries: function loadQueries(ctx, name2) {
        if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) {
          checkExtend(name2);
        }
        var queries = __require(__require.resolve(name2, { paths: [".", ctx.path] }));
        if (typeof queries === "object" && queries !== null && queries.__esModule) {
          queries = queries.default;
        }
        if (queries) {
          if (Array.isArray(queries)) {
            return queries;
          } else if (typeof queries === "object") {
            if (!queries.defaults) queries.defaults = [];
            return pickEnv(queries, ctx, name2);
          }
        }
        throw new BrowserslistError(
          "`" + name2 + "` config exports not an array of queries or an object of envs"
        );
      },
      loadStat: function loadStat(ctx, name2, data) {
        if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) {
          checkExtend(name2);
        }
        var stats = __require(
          // Use forward slashes for module paths, also on Windows.
          __require.resolve(path22.posix.join(name2, "browserslist-stats.json"), {
            paths: ["."]
          })
        );
        return normalizeStats(data, stats);
      },
      getStat: function getStat(opts, data) {
        var stats;
        if (opts.stats) {
          stats = opts.stats;
        } else if (process.env.BROWSERSLIST_STATS) {
          stats = process.env.BROWSERSLIST_STATS;
        } else if (opts.path && path22.resolve && fs32.existsSync) {
          stats = eachParent(
            opts.path,
            function(dir) {
              var file = path22.join(dir, "browserslist-stats.json");
              return isFile3(file) ? file : void 0;
            },
            statCache
          );
        }
        if (typeof stats === "string") {
          try {
            stats = JSON.parse(fs32.readFileSync(stats));
          } catch (e2) {
            throw new BrowserslistError("Can't read " + stats);
          }
        }
        return normalizeStats(data, stats);
      },
      loadConfig: function loadConfig(opts) {
        if (process.env.BROWSERSLIST) {
          return process.env.BROWSERSLIST;
        } else if (opts.config || process.env.BROWSERSLIST_CONFIG) {
          var file = opts.config || process.env.BROWSERSLIST_CONFIG;
          return pickEnv(parsePackageOrReadConfig(file), opts);
        } else if (opts.path) {
          return pickEnv(module2.exports.findConfig(opts.path), opts);
        } else {
          return void 0;
        }
      },
      loadCountry: function loadCountry(usage, country, data) {
        var code = country.replace(/[^\w-]/g, "");
        if (!usage[code]) {
          var compressed;
          try {
            compressed = __require("caniuse-lite/data/regions/" + code + ".js");
          } catch (e2) {
            throw new BrowserslistError("Unknown region name `" + code + "`.");
          }
          var usageData = region(compressed);
          normalizeUsageData(usageData, data);
          usage[country] = {};
          for (var i22 in usageData) {
            for (var j2 in usageData[i22]) {
              usage[country][i22 + " " + j2] = usageData[i22][j2];
            }
          }
        }
      },
      loadFeature: function loadFeature(features, name2) {
        name2 = name2.replace(/[^\w-]/g, "");
        if (features[name2]) return;
        var compressed;
        try {
          compressed = __require("caniuse-lite/data/features/" + name2 + ".js");
        } catch (e2) {
          throw new BrowserslistError("Unknown feature name `" + name2 + "`.");
        }
        var stats = feature(compressed).stats;
        features[name2] = {};
        for (var i22 in stats) {
          features[name2][i22] = {};
          for (var j2 in stats[i22]) {
            features[name2][i22][j2] = stats[i22][j2];
          }
        }
      },
      parseConfig: function parseConfig(string) {
        var result = { defaults: [] };
        var sections = ["defaults"];
        string.toString().replace(/#[^\n]*/g, "").split(/\n|,/).map(function(line) {
          return line.trim();
        }).filter(function(line) {
          return line !== "";
        }).forEach(function(line) {
          if (IS_SECTION.test(line)) {
            sections = line.match(IS_SECTION)[1].trim().split(" ");
            sections.forEach(function(section) {
              if (result[section]) {
                throw new BrowserslistError(
                  "Duplicate section " + section + " in Browserslist config"
                );
              }
              result[section] = [];
            });
          } else {
            sections.forEach(function(section) {
              result[section].push(line);
            });
          }
        });
        return result;
      },
      readConfig: function readConfig(file) {
        if (!isFile3(file)) {
          throw new BrowserslistError("Can't read " + file + " config");
        }
        return module2.exports.parseConfig(fs32.readFileSync(file));
      },
      findConfigFile: function findConfigFile(from) {
        return eachParent(
          from,
          function(dir) {
            var config = path22.join(dir, "browserslist");
            var pkg = path22.join(dir, "package.json");
            var rc = path22.join(dir, ".browserslistrc");
            var pkgBrowserslist;
            if (isFile3(pkg)) {
              try {
                pkgBrowserslist = parsePackage(pkg);
              } catch (e2) {
                if (e2.name === "BrowserslistError") throw e2;
                console.warn(
                  "[Browserslist] Could not parse " + pkg + ". Ignoring it."
                );
              }
            }
            if (isFile3(config) && pkgBrowserslist) {
              throw new BrowserslistError(
                dir + " contains both browserslist and package.json with browsers"
              );
            } else if (isFile3(rc) && pkgBrowserslist) {
              throw new BrowserslistError(
                dir + " contains both .browserslistrc and package.json with browsers"
              );
            } else if (isFile3(config) && isFile3(rc)) {
              throw new BrowserslistError(
                dir + " contains both .browserslistrc and browserslist"
              );
            } else if (isFile3(config)) {
              return config;
            } else if (isFile3(rc)) {
              return rc;
            } else if (pkgBrowserslist) {
              return pkg;
            }
          },
          configPathCache
        );
      },
      findConfig: function findConfig(from) {
        var configFile = this.findConfigFile(from);
        return configFile ? parsePackageOrReadConfig(configFile) : void 0;
      },
      clearCaches: function clearCaches() {
        dataTimeChecked = false;
        statCache = {};
        configPathCache = {};
        parseConfigCache = {};
        this.cache = {};
      },
      oldDataWarning: function oldDataWarning(agentsObj) {
        if (dataTimeChecked) return;
        dataTimeChecked = true;
        if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return;
        var latest = latestReleaseTime(agentsObj);
        var monthsPassed = getMonthsPassed(latest);
        if (latest !== 0 && monthsPassed >= 6) {
          if (process.env.BROWSERSLIST_TRACE_WARNING) {
            console.info("Last browser release in DB: " + String(new Date(latest)));
            console.trace();
          }
          var months = monthsPassed + " " + (monthsPassed > 1 ? "months" : "month");
          console.warn(
            "Browserslist: browsers data (caniuse-lite) is " + months + " old. Please run:\n  npx update-browserslist-db@latest\n  Why you should do it regularly: https://github.com/browserslist/update-db#readme"
          );
        }
      },
      currentNode: function currentNode() {
        return "node " + process.versions.node;
      },
      env: process.env
    };
  }
});
var require_parse5 = __commonJS2({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/parse.js"(exports2, module2) {
    var AND_REGEXP = /^\s+and\s+(.*)/i;
    var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i;
    function flatten2(array) {
      if (!Array.isArray(array)) return [array];
      return array.reduce(function(a2, b2) {
        return a2.concat(flatten2(b2));
      }, []);
    }
    function find(string, predicate) {
      for (var max2 = string.length, n22 = 1; n22 <= max2; n22++) {
        var parsed = string.substr(-n22, n22);
        if (predicate(parsed, n22, max2)) {
          return string.slice(0, -n22);
        }
      }
      return "";
    }
    function matchQuery(all52, query) {
      var node = { query };
      if (query.indexOf("not ") === 0) {
        node.not = true;
        query = query.slice(4);
      }
      for (var name2 in all52) {
        var type = all52[name2];
        var match = query.match(type.regexp);
        if (match) {
          node.type = name2;
          for (var i22 = 0; i22 < type.matches.length; i22++) {
            node[type.matches[i22]] = match[i22 + 1];
          }
          return node;
        }
      }
      node.type = "unknown";
      return node;
    }
    function matchBlock(all52, string, qs) {
      var node;
      return find(string, function(parsed, n22, max2) {
        if (AND_REGEXP.test(parsed)) {
          node = matchQuery(all52, parsed.match(AND_REGEXP)[1]);
          node.compose = "and";
          qs.unshift(node);
          return true;
        } else if (OR_REGEXP.test(parsed)) {
          node = matchQuery(all52, parsed.match(OR_REGEXP)[1]);
          node.compose = "or";
          qs.unshift(node);
          return true;
        } else if (n22 === max2) {
          node = matchQuery(all52, parsed.trim());
          node.compose = "or";
          qs.unshift(node);
          return true;
        }
        return false;
      });
    }
    module2.exports = function parse(all52, queries) {
      if (!Array.isArray(queries)) queries = [queries];
      return flatten2(
        queries.map(function(block) {
          var qs = [];
          do {
            block = matchBlock(all52, block, qs);
          } while (block);
          return qs;
        })
      );
    };
  }
});
var require_browserslist = __commonJS2({
  "../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/index.js"(exports2, module2) {
    var bbm = require_dist4();
    var jsReleases = require_envs();
    var agents = require_agents2().agents;
    var e2c = require_versions();
    var jsEOL = require_release_schedule();
    var path22 = __require("path");
    var BrowserslistError = require_error2();
    var env = require_node2();
    var parseWithoutCache = require_parse5();
    var YEAR = 365.259641 * 24 * 60 * 60 * 1e3;
    var ANDROID_EVERGREEN_FIRST = "37";
    var OP_MOB_BLINK_FIRST = 14;
    var FIREFOX_ESR_VERSION = "140";
    function isVersionsMatch(versionA, versionB) {
      return (versionA + ".").indexOf(versionB + ".") === 0;
    }
    function isEolReleased(name2) {
      var version = name2.slice(1);
      return browserslist.nodeVersions.some(function(i22) {
        return isVersionsMatch(i22, version);
      });
    }
    function normalize2(versions) {
      return versions.filter(function(version) {
        return typeof version === "string";
      });
    }
    function normalizeElectron(version) {
      var versionToUse = version;
      if (version.split(".").length === 3) {
        versionToUse = version.split(".").slice(0, -1).join(".");
      }
      return versionToUse;
    }
    function nameMapper(name2) {
      return function mapName(version) {
        return name2 + " " + version;
      };
    }
    function getMajor(version) {
      return parseInt(version.split(".")[0]);
    }
    function getMajorVersions(released, number) {
      if (released.length === 0) return [];
      var majorVersions = uniq(released.map(getMajor));
      var minimum = majorVersions[majorVersions.length - number];
      if (!minimum) {
        return released;
      }
      var selected = [];
      for (var i22 = released.length - 1; i22 >= 0; i22--) {
        if (minimum > getMajor(released[i22])) break;
        selected.unshift(released[i22]);
      }
      return selected;
    }
    function uniq(array) {
      var filtered = [];
      for (var i22 = 0; i22 < array.length; i22++) {
        if (filtered.indexOf(array[i22]) === -1) filtered.push(array[i22]);
      }
      return filtered;
    }
    function fillUsage(result, name2, data) {
      for (var i22 in data) {
        result[name2 + " " + i22] = data[i22];
      }
    }
    function generateFilter(sign, version) {
      version = parseFloat(version);
      if (sign === ">") {
        return function(v2) {
          return parseLatestFloat(v2) > version;
        };
      } else if (sign === ">=") {
        return function(v2) {
          return parseLatestFloat(v2) >= version;
        };
      } else if (sign === "<") {
        return function(v2) {
          return parseFloat(v2) < version;
        };
      } else {
        return function(v2) {
          return parseFloat(v2) <= version;
        };
      }
      function parseLatestFloat(v2) {
        return parseFloat(v2.split("-")[1] || v2);
      }
    }
    function generateSemverFilter(sign, version) {
      version = version.split(".").map(parseSimpleInt);
      version[1] = version[1] || 0;
      version[2] = version[2] || 0;
      if (sign === ">") {
        return function(v2) {
          v2 = v2.split(".").map(parseSimpleInt);
          return compareSemver(v2, version) > 0;
        };
      } else if (sign === ">=") {
        return function(v2) {
          v2 = v2.split(".").map(parseSimpleInt);
          return compareSemver(v2, version) >= 0;
        };
      } else if (sign === "<") {
        return function(v2) {
          v2 = v2.split(".").map(parseSimpleInt);
          return compareSemver(version, v2) > 0;
        };
      } else {
        return function(v2) {
          v2 = v2.split(".").map(parseSimpleInt);
          return compareSemver(version, v2) >= 0;
        };
      }
    }
    function parseSimpleInt(x3) {
      return parseInt(x3);
    }
    function compare(a2, b2) {
      if (a2 < b2) return -1;
      if (a2 > b2) return 1;
      return 0;
    }
    function compareSemver(a2, b2) {
      return compare(parseInt(a2[0]), parseInt(b2[0])) || compare(parseInt(a2[1] || "0"), parseInt(b2[1] || "0")) || compare(parseInt(a2[2] || "0"), parseInt(b2[2] || "0"));
    }
    function semverFilterLoose(operator, range) {
      range = range.split(".").map(parseSimpleInt);
      if (typeof range[1] === "undefined") {
        range[1] = "x";
      }
      switch (operator) {
        case "<=":
          return function(version) {
            version = version.split(".").map(parseSimpleInt);
            return compareSemverLoose(version, range) <= 0;
          };
        case ">=":
        default:
          return function(version) {
            version = version.split(".").map(parseSimpleInt);
            return compareSemverLoose(version, range) >= 0;
          };
      }
    }
    function compareSemverLoose(version, range) {
      if (version[0] !== range[0]) {
        return version[0] < range[0] ? -1 : 1;
      }
      if (range[1] === "x") {
        return 0;
      }
      if (version[1] !== range[1]) {
        return version[1] < range[1] ? -1 : 1;
      }
      return 0;
    }
    function resolveVersion(data, version) {
      if (data.versions.indexOf(version) !== -1) {
        return version;
      } else if (browserslist.versionAliases[data.name][version]) {
        return browserslist.versionAliases[data.name][version];
      } else {
        return false;
      }
    }
    function normalizeVersion(data, version) {
      var resolved = resolveVersion(data, version);
      if (resolved) {
        return resolved;
      } else if (data.versions.length === 1) {
        return data.versions[0];
      } else {
        return false;
      }
    }
    function filterByYear(since, context) {
      since = since / 1e3;
      return Object.keys(agents).reduce(function(selected, name2) {
        var data = byName(name2, context);
        if (!data) return selected;
        var versions = Object.keys(data.releaseDate).filter(function(v2) {
          var date = data.releaseDate[v2];
          return date !== null && date >= since;
        });
        return selected.concat(versions.map(nameMapper(data.name)));
      }, []);
    }
    function cloneData(data) {
      return {
        name: data.name,
        versions: data.versions,
        released: data.released,
        releaseDate: data.releaseDate
      };
    }
    function byName(name2, context) {
      name2 = name2.toLowerCase();
      name2 = browserslist.aliases[name2] || name2;
      if (context.mobileToDesktop && browserslist.desktopNames[name2]) {
        var desktop = browserslist.data[browserslist.desktopNames[name2]];
        if (name2 === "android") {
          return normalizeAndroidData(cloneData(browserslist.data[name2]), desktop);
        } else {
          var cloned = cloneData(desktop);
          cloned.name = name2;
          return cloned;
        }
      }
      return browserslist.data[name2];
    }
    function normalizeAndroidVersions(androidVersions, chromeVersions) {
      var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST);
      return androidVersions.filter(function(version) {
        return /^(?:[2-4]\.|[34]$)/.test(version);
      }).concat(chromeVersions.slice(iFirstEvergreen));
    }
    function copyObject(obj) {
      var copy = {};
      for (var key in obj) {
        copy[key] = obj[key];
      }
      return copy;
    }
    function normalizeAndroidData(android, chrome) {
      android.released = normalizeAndroidVersions(android.released, chrome.released);
      android.versions = normalizeAndroidVersions(android.versions, chrome.versions);
      android.releaseDate = copyObject(android.releaseDate);
      android.released.forEach(function(v2) {
        if (android.releaseDate[v2] === void 0) {
          android.releaseDate[v2] = chrome.releaseDate[v2];
        }
      });
      return android;
    }
    function checkName(name2, context) {
      var data = byName(name2, context);
      if (!data) throw new BrowserslistError("Unknown browser " + name2);
      return data;
    }
    function unknownQuery(query) {
      return new BrowserslistError(
        "Unknown browser query `" + query + "`. Maybe you are using old Browserslist or made typo in query."
      );
    }
    function filterJumps(list, name2, nVersions, context) {
      var jump = 1;
      switch (name2) {
        case "android":
          if (context.mobileToDesktop) return list;
          var released = browserslist.data.chrome.released;
          jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST);
          break;
        case "op_mob":
          var latest = browserslist.data.op_mob.released.slice(-1)[0];
          jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1;
          break;
        default:
          return list;
      }
      if (nVersions <= jump) {
        return list.slice(-1);
      }
      return list.slice(jump - 1 - nVersions);
    }
    function isSupported(flags, withPartial) {
      return typeof flags === "string" && (flags.indexOf("y") >= 0 || withPartial && flags.indexOf("a") >= 0);
    }
    function resolve2(queries, context) {
      return parseQueries(queries).reduce(function(result, node, index) {
        if (node.not && index === 0) {
          throw new BrowserslistError(
            "Write any browsers query (for instance, `defaults`) before `" + node.query + "`"
          );
        }
        var type = QUERIES[node.type];
        var array = type.select.call(browserslist, context, node).map(function(j2) {
          var parts = j2.split(" ");
          if (parts[1] === "0") {
            return parts[0] + " " + byName(parts[0], context).versions[0];
          } else {
            return j2;
          }
        });
        if (node.compose === "and") {
          if (node.not) {
            return result.filter(function(j2) {
              return array.indexOf(j2) === -1;
            });
          } else {
            return result.filter(function(j2) {
              return array.indexOf(j2) !== -1;
            });
          }
        } else {
          if (node.not) {
            var filter22 = {};
            array.forEach(function(j2) {
              filter22[j2] = true;
            });
            return result.filter(function(j2) {
              return !filter22[j2];
            });
          }
          return result.concat(array);
        }
      }, []);
    }
    function prepareOpts(opts) {
      if (typeof opts === "undefined") opts = {};
      if (typeof opts.path === "undefined") {
        opts.path = path22.resolve ? path22.resolve(".") : ".";
      }
      return opts;
    }
    function prepareQueries(queries, opts) {
      if (typeof queries === "undefined" || queries === null) {
        var config = browserslist.loadConfig(opts);
        if (config) {
          queries = config;
        } else {
          queries = browserslist.defaults;
        }
      }
      return queries;
    }
    function checkQueries(queries) {
      if (!(typeof queries === "string" || Array.isArray(queries))) {
        throw new BrowserslistError(
          "Browser queries must be an array or string. Got " + typeof queries + "."
        );
      }
    }
    var cache = {};
    var parseCache = {};
    function browserslist(queries, opts) {
      opts = prepareOpts(opts);
      queries = prepareQueries(queries, opts);
      checkQueries(queries);
      var needsPath = parseQueries(queries).some(function(node) {
        return QUERIES[node.type].needsPath;
      });
      var context = {
        ignoreUnknownVersions: opts.ignoreUnknownVersions,
        dangerousExtend: opts.dangerousExtend,
        throwOnMissing: opts.throwOnMissing,
        mobileToDesktop: opts.mobileToDesktop,
        env: opts.env
      };
      if (needsPath) {
        context.path = opts.path;
      }
      env.oldDataWarning(browserslist.data);
      var stats = env.getStat(opts, browserslist.data);
      if (stats) {
        context.customUsage = {};
        for (var browser in stats) {
          fillUsage(context.customUsage, browser, stats[browser]);
        }
      }
      var cacheKey = JSON.stringify([queries, context]);
      if (cache[cacheKey]) return cache[cacheKey];
      var result = uniq(resolve2(queries, context)).sort(function(name1, name2) {
        name1 = name1.split(" ");
        name2 = name2.split(" ");
        if (name1[0] === name2[0]) {
          var version1 = name1[1].split("-")[0];
          var version2 = name2[1].split("-")[0];
          return compareSemver(version2.split("."), version1.split("."));
        } else {
          return compare(name1[0], name2[0]);
        }
      });
      if (!env.env.BROWSERSLIST_DISABLE_CACHE) {
        cache[cacheKey] = result;
      }
      return result;
    }
    function parseQueries(queries) {
      var cacheKey = JSON.stringify(queries);
      if (cacheKey in parseCache) return parseCache[cacheKey];
      var result = parseWithoutCache(QUERIES, queries);
      if (!env.env.BROWSERSLIST_DISABLE_CACHE) {
        parseCache[cacheKey] = result;
      }
      return result;
    }
    function loadCustomUsage(context, config) {
      var stats = env.loadStat(context, config, browserslist.data);
      if (stats) {
        context.customUsage = {};
        for (var browser in stats) {
          fillUsage(context.customUsage, browser, stats[browser]);
        }
      }
      if (!context.customUsage) {
        throw new BrowserslistError("Custom usage statistics was not provided");
      }
      return context.customUsage;
    }
    browserslist.parse = function(queries, opts) {
      opts = prepareOpts(opts);
      queries = prepareQueries(queries, opts);
      checkQueries(queries);
      return parseQueries(queries);
    };
    browserslist.cache = {};
    browserslist.data = {};
    browserslist.usage = {
      global: {},
      custom: null
    };
    browserslist.defaults = ["> 0.5%", "last 2 versions", "Firefox ESR", "not dead"];
    browserslist.aliases = {
      fx: "firefox",
      ff: "firefox",
      ios: "ios_saf",
      explorer: "ie",
      blackberry: "bb",
      explorermobile: "ie_mob",
      operamini: "op_mini",
      operamobile: "op_mob",
      chromeandroid: "and_chr",
      firefoxandroid: "and_ff",
      ucandroid: "and_uc",
      qqandroid: "and_qq"
    };
    browserslist.desktopNames = {
      and_chr: "chrome",
      and_ff: "firefox",
      ie_mob: "ie",
      android: "chrome"
      // has extra processing logic
    };
    browserslist.versionAliases = {};
    browserslist.clearCaches = env.clearCaches;
    browserslist.parseConfig = env.parseConfig;
    browserslist.readConfig = env.readConfig;
    browserslist.findConfigFile = env.findConfigFile;
    browserslist.findConfig = env.findConfig;
    browserslist.loadConfig = env.loadConfig;
    browserslist.coverage = function(browsers, stats) {
      var data;
      if (typeof stats === "undefined") {
        data = browserslist.usage.global;
      } else if (stats === "my stats") {
        var opts = {};
        opts.path = path22.resolve ? path22.resolve(".") : ".";
        var customStats = env.getStat(opts);
        if (!customStats) {
          throw new BrowserslistError("Custom usage statistics was not provided");
        }
        data = {};
        for (var browser in customStats) {
          fillUsage(data, browser, customStats[browser]);
        }
      } else if (typeof stats === "string") {
        if (stats.length > 2) {
          stats = stats.toLowerCase();
        } else {
          stats = stats.toUpperCase();
        }
        env.loadCountry(browserslist.usage, stats, browserslist.data);
        data = browserslist.usage[stats];
      } else {
        if ("dataByBrowser" in stats) {
          stats = stats.dataByBrowser;
        }
        data = {};
        for (var name2 in stats) {
          for (var version in stats[name2]) {
            data[name2 + " " + version] = stats[name2][version];
          }
        }
      }
      return browsers.reduce(function(all52, i22) {
        var usage = data[i22];
        if (usage === void 0) {
          usage = data[i22.replace(/ \S+$/, " 0")];
        }
        return all52 + (usage || 0);
      }, 0);
    };
    function nodeQuery(context, node) {
      var matched = browserslist.nodeVersions.filter(function(i22) {
        return isVersionsMatch(i22, node.version);
      });
      if (matched.length === 0) {
        if (context.ignoreUnknownVersions) {
          return [];
        } else {
          throw new BrowserslistError(
            "Unknown version " + node.version + " of Node.js"
          );
        }
      }
      return ["node " + matched[matched.length - 1]];
    }
    function sinceQuery(context, node) {
      var year = parseInt(node.year);
      var month = parseInt(node.month || "01") - 1;
      var day = parseInt(node.day || "01");
      return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context);
    }
    function bbmTransform(bbmVersions) {
      var browsers = {
        chrome: "chrome",
        chrome_android: "and_chr",
        edge: "edge",
        firefox: "firefox",
        firefox_android: "and_ff",
        safari: "safari",
        safari_ios: "ios_saf",
        webview_android: "android",
        samsunginternet_android: "samsung",
        opera_android: "op_mob",
        opera: "opera",
        qq_android: "and_qq",
        uc_android: "and_uc",
        kai_os: "kaios"
      };
      return bbmVersions.filter(function(version) {
        return Object.keys(browsers).indexOf(version.browser) !== -1;
      }).map(function(version) {
        return browsers[version.browser] + " >= " + version.version;
      });
    }
    function coverQuery(context, node) {
      var coverage = parseFloat(node.coverage);
      var usage = browserslist.usage.global;
      if (node.place) {
        if (node.place.match(/^my\s+stats$/i)) {
          if (!context.customUsage) {
            throw new BrowserslistError("Custom usage statistics was not provided");
          }
          usage = context.customUsage;
        } else {
          var place;
          if (node.place.length === 2) {
            place = node.place.toUpperCase();
          } else {
            place = node.place.toLowerCase();
          }
          env.loadCountry(browserslist.usage, place, browserslist.data);
          usage = browserslist.usage[place];
        }
      } else if (node.config) {
        usage = loadCustomUsage(context, node.config);
      }
      var versions = Object.keys(usage).sort(function(a2, b2) {
        return usage[b2] - usage[a2];
      });
      var covered = 0;
      var result = [];
      var version;
      for (var i22 = 0; i22 < versions.length; i22++) {
        version = versions[i22];
        if (usage[version] === 0) break;
        covered += usage[version];
        result.push(version);
        if (covered >= coverage) break;
      }
      return result;
    }
    var QUERIES = {
      last_major_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+major\s+versions?$/i,
        select: function(context, node) {
          return Object.keys(agents).reduce(function(selected, name2) {
            var data = byName(name2, context);
            if (!data) return selected;
            var list = getMajorVersions(data.released, node.versions);
            list = list.map(nameMapper(data.name));
            list = filterJumps(list, data.name, node.versions, context);
            return selected.concat(list);
          }, []);
        }
      },
      last_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+versions?$/i,
        select: function(context, node) {
          return Object.keys(agents).reduce(function(selected, name2) {
            var data = byName(name2, context);
            if (!data) return selected;
            var list = data.released.slice(-node.versions);
            list = list.map(nameMapper(data.name));
            list = filterJumps(list, data.name, node.versions, context);
            return selected.concat(list);
          }, []);
        }
      },
      last_electron_major_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i,
        select: function(context, node) {
          var validVersions = getMajorVersions(Object.keys(e2c), node.versions);
          return validVersions.map(function(i22) {
            return "chrome " + e2c[i22];
          });
        }
      },
      last_node_major_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i,
        select: function(context, node) {
          return getMajorVersions(browserslist.nodeVersions, node.versions).map(
            function(version) {
              return "node " + version;
            }
          );
        }
      },
      last_browser_major_versions: {
        matches: ["versions", "browser"],
        regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,
        select: function(context, node) {
          var data = checkName(node.browser, context);
          var validVersions = getMajorVersions(data.released, node.versions);
          var list = validVersions.map(nameMapper(data.name));
          list = filterJumps(list, data.name, node.versions, context);
          return list;
        }
      },
      last_electron_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+electron\s+versions?$/i,
        select: function(context, node) {
          return Object.keys(e2c).slice(-node.versions).map(function(i22) {
            return "chrome " + e2c[i22];
          });
        }
      },
      last_node_versions: {
        matches: ["versions"],
        regexp: /^last\s+(\d+)\s+node\s+versions?$/i,
        select: function(context, node) {
          return browserslist.nodeVersions.slice(-node.versions).map(function(version) {
            return "node " + version;
          });
        }
      },
      last_browser_versions: {
        matches: ["versions", "browser"],
        regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
        select: function(context, node) {
          var data = checkName(node.browser, context);
          var list = data.released.slice(-node.versions).map(nameMapper(data.name));
          list = filterJumps(list, data.name, node.versions, context);
          return list;
        }
      },
      unreleased_versions: {
        matches: [],
        regexp: /^unreleased\s+versions$/i,
        select: function(context) {
          return Object.keys(agents).reduce(function(selected, name2) {
            var data = byName(name2, context);
            if (!data) return selected;
            var list = data.versions.filter(function(v2) {
              return data.released.indexOf(v2) === -1;
            });
            list = list.map(nameMapper(data.name));
            return selected.concat(list);
          }, []);
        }
      },
      unreleased_electron_versions: {
        matches: [],
        regexp: /^unreleased\s+electron\s+versions?$/i,
        select: function() {
          return [];
        }
      },
      unreleased_browser_versions: {
        matches: ["browser"],
        regexp: /^unreleased\s+(\w+)\s+versions?$/i,
        select: function(context, node) {
          var data = checkName(node.browser, context);
          return data.versions.filter(function(v2) {
            return data.released.indexOf(v2) === -1;
          }).map(nameMapper(data.name));
        }
      },
      last_years: {
        matches: ["years"],
        regexp: /^last\s+((\d+\.)?\d+)\s+years?$/i,
        select: function(context, node) {
          return filterByYear(Date.now() - YEAR * node.years, context);
        }
      },
      since_y: {
        matches: ["year"],
        regexp: /^since (\d+)$/i,
        select: sinceQuery
      },
      since_y_m: {
        matches: ["year", "month"],
        regexp: /^since (\d+)-(\d+)$/i,
        select: sinceQuery
      },
      since_y_m_d: {
        matches: ["year", "month", "day"],
        regexp: /^since (\d+)-(\d+)-(\d+)$/i,
        select: sinceQuery
      },
      baseline: {
        matches: ["year", "availability", "date", "downstream", "kaios"],
        // Matches:
        //   baseline 2024
        //   baseline newly available
        //   baseline widely available
        //   baseline widely available on 2024-06-01
        //   ...with downstream
        //   ...including kaios
        regexp: /^baseline\s+(?:(\d+)|(newly|widely)\s+available(?:\s+on\s+(\d{4}-\d{2}-\d{2}))?)?(\s+with\s+downstream)?(\s+including\s+kaios)?$/i,
        select: function(context, node) {
          var baselineVersions;
          var includeDownstream = !!node.downstream;
          var includeKaiOS = !!node.kaios;
          if (node.availability === "newly" && node.date) {
            throw new BrowserslistError(
              'Using newly available with a date is not supported, please use "widely available on YYYY-MM-DD" and add 30 months to the date you specified.'
            );
          }
          if (node.year) {
            baselineVersions = bbm.getCompatibleVersions({
              targetYear: node.year,
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          } else if (node.date) {
            baselineVersions = bbm.getCompatibleVersions({
              widelyAvailableOnDate: node.date,
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          } else if (node.availability === "newly") {
            var future30months = (/* @__PURE__ */ new Date()).setMonth((/* @__PURE__ */ new Date()).getMonth() + 30);
            baselineVersions = bbm.getCompatibleVersions({
              widelyAvailableOnDate: future30months,
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          } else {
            baselineVersions = bbm.getCompatibleVersions({
              includeDownstreamBrowsers: includeDownstream,
              includeKaiOS,
              suppressWarnings: true
            });
          }
          return resolve2(bbmTransform(baselineVersions), context);
        }
      },
      popularity: {
        matches: ["sign", "popularity"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          var usage = browserslist.usage.global;
          return Object.keys(usage).reduce(function(result, version) {
            if (node.sign === ">") {
              if (usage[version] > popularity) {
                result.push(version);
              }
            } else if (node.sign === "<") {
              if (usage[version] < popularity) {
                result.push(version);
              }
            } else if (node.sign === "<=") {
              if (usage[version] <= popularity) {
                result.push(version);
              }
            } else if (usage[version] >= popularity) {
              result.push(version);
            }
            return result;
          }, []);
        }
      },
      popularity_in_my_stats: {
        matches: ["sign", "popularity"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          if (!context.customUsage) {
            throw new BrowserslistError("Custom usage statistics was not provided");
          }
          var usage = context.customUsage;
          return Object.keys(usage).reduce(function(result, version) {
            var percentage = usage[version];
            if (percentage == null) {
              return result;
            }
            if (node.sign === ">") {
              if (percentage > popularity) {
                result.push(version);
              }
            } else if (node.sign === "<") {
              if (percentage < popularity) {
                result.push(version);
              }
            } else if (node.sign === "<=") {
              if (percentage <= popularity) {
                result.push(version);
              }
            } else if (percentage >= popularity) {
              result.push(version);
            }
            return result;
          }, []);
        }
      },
      popularity_in_config_stats: {
        matches: ["sign", "popularity", "config"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          var usage = loadCustomUsage(context, node.config);
          return Object.keys(usage).reduce(function(result, version) {
            var percentage = usage[version];
            if (percentage == null) {
              return result;
            }
            if (node.sign === ">") {
              if (percentage > popularity) {
                result.push(version);
              }
            } else if (node.sign === "<") {
              if (percentage < popularity) {
                result.push(version);
              }
            } else if (node.sign === "<=") {
              if (percentage <= popularity) {
                result.push(version);
              }
            } else if (percentage >= popularity) {
              result.push(version);
            }
            return result;
          }, []);
        }
      },
      popularity_in_place: {
        matches: ["sign", "popularity", "place"],
        regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,
        select: function(context, node) {
          var popularity = parseFloat(node.popularity);
          var place = node.place;
          if (place.length === 2) {
            place = place.toUpperCase();
          } else {
            place = place.toLowerCase();
          }
          env.loadCountry(browserslist.usage, place, browserslist.data);
          var usage = browserslist.usage[place];
          return Object.keys(usage).reduce(function(result, version) {
            var percentage = usage[version];
            if (percentage == null) {
              return result;
            }
            if (node.sign === ">") {
              if (percentage > popularity) {
                result.push(version);
              }
            } else if (node.sign === "<") {
              if (percentage < popularity) {
                result.push(version);
              }
            } else if (node.sign === "<=") {
              if (percentage <= popularity) {
                result.push(version);
              }
            } else if (percentage >= popularity) {
              result.push(version);
            }
            return result;
          }, []);
        }
      },
      cover: {
        matches: ["coverage"],
        regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,
        select: coverQuery
      },
      cover_in: {
        matches: ["coverage", "place"],
        regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,
        select: coverQuery
      },
      cover_config: {
        matches: ["coverage", "config"],
        regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/i,
        select: coverQuery
      },
      supports: {
        matches: ["supportType", "feature"],
        regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,
        select: function(context, node) {
          env.loadFeature(browserslist.cache, node.feature);
          var withPartial = node.supportType !== "fully";
          var features = browserslist.cache[node.feature];
          var result = [];
          for (var name2 in features) {
            var data = byName(name2, context);
            var iMax = data.released.length - 1;
            while (iMax >= 0) {
              if (data.released[iMax] in features[name2]) break;
              iMax--;
            }
            var checkDesktop = context.mobileToDesktop && name2 in browserslist.desktopNames && isSupported(features[name2][data.released[iMax]], withPartial);
            data.versions.forEach(function(version) {
              var flags = features[name2][version];
              if (flags === void 0 && checkDesktop) {
                flags = features[browserslist.desktopNames[name2]][version];
              }
              if (isSupported(flags, withPartial)) {
                result.push(name2 + " " + version);
              }
            });
          }
          return result;
        }
      },
      electron_range: {
        matches: ["from", "to"],
        regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,
        select: function(context, node) {
          var fromToUse = normalizeElectron(node.from);
          var toToUse = normalizeElectron(node.to);
          var from = parseFloat(node.from);
          var to2 = parseFloat(node.to);
          if (!e2c[fromToUse]) {
            throw new BrowserslistError("Unknown version " + from + " of electron");
          }
          if (!e2c[toToUse]) {
            throw new BrowserslistError("Unknown version " + to2 + " of electron");
          }
          return Object.keys(e2c).filter(function(i22) {
            var parsed = parseFloat(i22);
            return parsed >= from && parsed <= to2;
          }).map(function(i22) {
            return "chrome " + e2c[i22];
          });
        }
      },
      node_range: {
        matches: ["from", "to"],
        regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
        select: function(context, node) {
          return browserslist.nodeVersions.filter(semverFilterLoose(">=", node.from)).filter(semverFilterLoose("<=", node.to)).map(function(v2) {
            return "node " + v2;
          });
        }
      },
      browser_range: {
        matches: ["browser", "from", "to"],
        regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,
        select: function(context, node) {
          var data = checkName(node.browser, context);
          var from = parseFloat(normalizeVersion(data, node.from) || node.from);
          var to2 = parseFloat(normalizeVersion(data, node.to) || node.to);
          function filter22(v2) {
            var parsed = parseFloat(v2);
            return parsed >= from && parsed <= to2;
          }
          return data.released.filter(filter22).map(nameMapper(data.name));
        }
      },
      electron_ray: {
        matches: ["sign", "version"],
        regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i,
        select: function(context, node) {
          var versionToUse = normalizeElectron(node.version);
          return Object.keys(e2c).filter(generateFilter(node.sign, versionToUse)).map(function(i22) {
            return "chrome " + e2c[i22];
          });
        }
      },
      node_ray: {
        matches: ["sign", "version"],
        regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i,
        select: function(context, node) {
          return browserslist.nodeVersions.filter(generateSemverFilter(node.sign, node.version)).map(function(v2) {
            return "node " + v2;
          });
        }
      },
      browser_ray: {
        matches: ["browser", "sign", "version"],
        regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+|esr)$/i,
        select: function(context, node) {
          var version = node.version;
          var data = checkName(node.browser, context);
          var alias = browserslist.versionAliases[data.name][version.toLowerCase()];
          if (alias) version = alias;
          if (!/[\d.]+/.test(version)) {
            throw new BrowserslistError(
              "Unknown version " + version + " of " + node.browser
            );
          }
          return data.released.filter(generateFilter(node.sign, version)).map(function(v2) {
            return data.name + " " + v2;
          });
        }
      },
      firefox_esr: {
        matches: [],
        regexp: /^(firefox|ff|fx)\s+esr$/i,
        select: function() {
          return ["firefox " + FIREFOX_ESR_VERSION];
        }
      },
      opera_mini_all: {
        matches: [],
        regexp: /(operamini|op_mini)\s+all/i,
        select: function() {
          return ["op_mini all"];
        }
      },
      electron_version: {
        matches: ["version"],
        regexp: /^electron\s+([\d.]+)$/i,
        select: function(context, node) {
          var versionToUse = normalizeElectron(node.version);
          var chrome = e2c[versionToUse];
          if (!chrome) {
            throw new BrowserslistError(
              "Unknown version " + node.version + " of electron"
            );
          }
          return ["chrome " + chrome];
        }
      },
      node_major_version: {
        matches: ["version"],
        regexp: /^node\s+(\d+)$/i,
        select: nodeQuery
      },
      node_minor_version: {
        matches: ["version"],
        regexp: /^node\s+(\d+\.\d+)$/i,
        select: nodeQuery
      },
      node_patch_version: {
        matches: ["version"],
        regexp: /^node\s+(\d+\.\d+\.\d+)$/i,
        select: nodeQuery
      },
      current_node: {
        matches: [],
        regexp: /^current\s+node$/i,
        select: function(context) {
          return [env.currentNode(resolve2, context)];
        }
      },
      maintained_node: {
        matches: [],
        regexp: /^maintained\s+node\s+versions$/i,
        select: function(context) {
          var now = Date.now();
          var queries = Object.keys(jsEOL).filter(function(key) {
            return now < Date.parse(jsEOL[key].end) && now > Date.parse(jsEOL[key].start) && isEolReleased(key);
          }).map(function(key) {
            return "node " + key.slice(1);
          });
          return resolve2(queries, context);
        }
      },
      phantomjs_1_9: {
        matches: [],
        regexp: /^phantomjs\s+1.9$/i,
        select: function() {
          return ["safari 5"];
        }
      },
      phantomjs_2_1: {
        matches: [],
        regexp: /^phantomjs\s+2.1$/i,
        select: function() {
          return ["safari 6"];
        }
      },
      browser_version: {
        matches: ["browser", "version"],
        regexp: /^(\w+)\s+(tp|[\d.]+)$/i,
        select: function(context, node) {
          var version = node.version;
          if (/^tp$/i.test(version)) version = "TP";
          var data = checkName(node.browser, context);
          var alias = normalizeVersion(data, version);
          if (alias) {
            version = alias;
          } else {
            if (version.indexOf(".") === -1) {
              alias = version + ".0";
            } else {
              alias = version.replace(/\.0$/, "");
            }
            alias = normalizeVersion(data, alias);
            if (alias) {
              version = alias;
            } else if (context.ignoreUnknownVersions) {
              return [];
            } else {
              throw new BrowserslistError(
                "Unknown version " + version + " of " + node.browser
              );
            }
          }
          return [data.name + " " + version];
        }
      },
      browserslist_config: {
        matches: [],
        regexp: /^browserslist config$/i,
        needsPath: true,
        select: function(context) {
          return browserslist(void 0, context);
        }
      },
      extends: {
        matches: ["config"],
        regexp: /^extends (.+)$/i,
        needsPath: true,
        select: function(context, node) {
          return resolve2(env.loadQueries(context, node.config), context);
        }
      },
      defaults: {
        matches: [],
        regexp: /^defaults$/i,
        select: function(context) {
          return resolve2(browserslist.defaults, context);
        }
      },
      dead: {
        matches: [],
        regexp: /^dead$/i,
        select: function(context) {
          var dead = [
            "Baidu >= 0",
            "ie <= 11",
            "ie_mob <= 11",
            "bb <= 10",
            "op_mob <= 12.1",
            "samsung 4"
          ];
          return resolve2(dead, context);
        }
      },
      unknown: {
        matches: [],
        regexp: /^(\w+)$/i,
        select: function(context, node) {
          if (byName(node.query, context)) {
            throw new BrowserslistError(
              "Specify versions in Browserslist query for browser " + node.query
            );
          } else {
            throw unknownQuery(node.query);
          }
        }
      }
    };
    (function() {
      for (var name2 in agents) {
        var browser = agents[name2];
        browserslist.data[name2] = {
          name: name2,
          versions: normalize2(agents[name2].versions),
          released: normalize2(agents[name2].versions.slice(0, -3)),
          releaseDate: agents[name2].release_date
        };
        fillUsage(browserslist.usage.global, name2, browser.usage_global);
        browserslist.versionAliases[name2] = {};
        for (var i22 = 0; i22 < browser.versions.length; i22++) {
          var full = browser.versions[i22];
          if (!full) continue;
          if (full.indexOf("-") !== -1) {
            var interval = full.split("-");
            for (var j2 = 0; j2 < interval.length; j2++) {
              browserslist.versionAliases[name2][interval[j2]] = full;
            }
          }
        }
      }
      browserslist.nodeVersions = jsReleases.map(function(release) {
        return release.version;
      });
    })();
    browserslist.versionAliases.firefox.esr = FIREFOX_ESR_VERSION;
    module2.exports = browserslist;
  }
});
var require_utils7 = __commonJS2({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.shuffleArray = exports2.getBrowsersFromQuery = exports2.getBrowser = exports2.getUserAgent = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var browserslist_1 = tslib_1.__importDefault(require_browserslist());
    var constants_1 = require_constants2();
    var getUserAgent2 = (headers) => {
      for (const [header2, value] of Object.entries(headers)) {
        if (header2.toLowerCase() === "user-agent") {
          return value;
        }
      }
      return void 0;
    };
    exports2.getUserAgent = getUserAgent2;
    var getBrowser2 = (userAgent) => {
      if (!userAgent) {
        return void 0;
      }
      let browser;
      if (userAgent.includes("Firefox")) {
        browser = "firefox";
      } else if (userAgent.includes("Chrome")) {
        browser = "chrome";
      } else {
        browser = "safari";
      }
      return browser;
    };
    exports2.getBrowser = getBrowser2;
    var getBrowsersWithVersions = (browserList) => {
      const browsersWithVersions = {};
      for (const browserDefinition of browserList) {
        const [browserSplit, versionString] = browserDefinition.split(" ");
        const browser = browserSplit;
        const version = parseInt(versionString, 10);
        if (!constants_1.SUPPORTED_BROWSERS.includes(browser)) {
          continue;
        }
        if (browsersWithVersions[browser]) {
          browsersWithVersions[browser].push(version);
        } else {
          browsersWithVersions[browser] = [version];
        }
      }
      return browsersWithVersions;
    };
    var getOptimizedVersionDistribution = (browsersWithVersions) => {
      const finalOptimizedBrowsers = [];
      Object.entries(browsersWithVersions).forEach(([browser, versions]) => {
        const sortedVersions = versions.sort((a2, b2) => a2 - b2);
        let lowestVersionSoFar = sortedVersions[0];
        sortedVersions.forEach((version, index) => {
          const nextVersion = sortedVersions[index + 1];
          const isLast = index === sortedVersions.length - 1;
          const isNextVersionGap = nextVersion - version > 1;
          if (isNextVersionGap || isLast) {
            finalOptimizedBrowsers.push({
              name: browser,
              minVersion: lowestVersionSoFar,
              maxVersion: version
            });
            lowestVersionSoFar = nextVersion;
          }
        });
      });
      return finalOptimizedBrowsers;
    };
    var getBrowsersFromQuery = (browserListQuery) => {
      const browserList = (0, browserslist_1.default)(browserListQuery);
      const browsersWithVersions = getBrowsersWithVersions(browserList);
      return getOptimizedVersionDistribution(browsersWithVersions);
    };
    exports2.getBrowsersFromQuery = getBrowsersFromQuery;
    var shuffleArray = (array) => {
      for (let i22 = array.length - 1; i22 > 0; i22--) {
        const j2 = Math.floor(Math.random() * (i22 + 1));
        [array[i22], array[j2]] = [array[j2], array[i22]];
      }
      return array;
    };
    exports2.shuffleArray = shuffleArray;
  }
});
var require_header_generator = __commonJS2({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/header-generator.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.HeaderGenerator = exports2.headerGeneratorOptionsShape = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var fs_1 = __require("fs");
    var generative_bayesian_network_1 = require_generative_bayesian_network();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var constants_1 = require_constants2();
    var utils_1 = require_utils7();
    var browserSpecificationShape = {
      name: ow_1.default.string,
      minVersion: ow_1.default.optional.number,
      maxVersion: ow_1.default.optional.number,
      httpVersion: ow_1.default.optional.string
    };
    exports2.headerGeneratorOptionsShape = {
      browsers: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.object.exactShape(browserSpecificationShape), ow_1.default.string.oneOf(constants_1.SUPPORTED_BROWSERS))),
      operatingSystems: ow_1.default.optional.array.ofType(ow_1.default.string.oneOf(constants_1.SUPPORTED_OPERATING_SYSTEMS)),
      devices: ow_1.default.optional.array.ofType(ow_1.default.string.oneOf(constants_1.SUPPORTED_DEVICES)),
      locales: ow_1.default.optional.array.ofType(ow_1.default.string),
      httpVersion: ow_1.default.optional.string.oneOf(constants_1.SUPPORTED_HTTP_VERSIONS),
      browserListQuery: ow_1.default.optional.string,
      strict: ow_1.default.optional.boolean
    };
    var HeaderGenerator2 = class {
      /**
       * @param options Default header generation options used - unless overridden.
       */
      constructor(options = {}) {
        Object.defineProperty(this, "globalOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "browserListQuery", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "inputGeneratorNetwork", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "headerGeneratorNetwork", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "uniqueBrowsers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "headersOrder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "relaxationOrder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: [
            "locales",
            "devices",
            "operatingSystems",
            "browsers",
            "browserListQuery"
          ]
        });
        (0, ow_1.default)(options, "HeaderGeneratorOptions", ow_1.default.object.partialShape(exports2.headerGeneratorOptionsShape));
        const { browsers = constants_1.SUPPORTED_BROWSERS, operatingSystems = constants_1.SUPPORTED_OPERATING_SYSTEMS, devices = ["desktop"], locales = ["en-US"], httpVersion = "2", browserListQuery = "", strict = false } = options;
        this.globalOptions = {
          browsers: this._prepareBrowsersConfig(browsers, browserListQuery, httpVersion),
          operatingSystems,
          devices,
          locales,
          httpVersion,
          browserListQuery,
          strict
        };
        this.uniqueBrowsers = [];
        this.headersOrder = JSON.parse((0, fs_1.readFileSync)(`${__dirname}/data_files/headers-order.json`).toString());
        const uniqueBrowserStrings = JSON.parse((0, fs_1.readFileSync)(`${__dirname}/data_files/browser-helper-file.json`, "utf8").toString());
        for (const browserString of uniqueBrowserStrings) {
          if (browserString !== constants_1.MISSING_VALUE_DATASET_TOKEN) {
            this.uniqueBrowsers.push(this.prepareHttpBrowserObject(browserString));
          }
        }
        this.inputGeneratorNetwork = new generative_bayesian_network_1.BayesianNetwork({
          path: `${__dirname}/data_files/input-network-definition.zip`
        });
        this.headerGeneratorNetwork = new generative_bayesian_network_1.BayesianNetwork({
          path: `${__dirname}/data_files/header-network-definition.zip`
        });
      }
      /**
       * Generates a single set of ordered headers using a combination of the default options specified in the constructor
       * and their possible overrides provided here.
       * @param options Specifies options that should be overridden for this one call.
       * @param requestDependentHeaders Specifies known values of headers dependent on the particular request.
       */
      getHeaders(options = {}, requestDependentHeaders = {}, userAgentValues) {
        (0, ow_1.default)(options, "HeaderGeneratorOptions", ow_1.default.object.partialShape(exports2.headerGeneratorOptionsShape));
        for (const [key, value] of Object.entries(options)) {
          if (!value) {
            delete options[key];
          }
        }
        const headerOptions = { ...this.globalOptions, ...options };
        const possibleAttributeValues = this._getPossibleAttributeValues(headerOptions);
        const [http1Constraints, http2Constraints] = userAgentValues ? [
          generative_bayesian_network_1.utils.getConstraintClosure(this.headerGeneratorNetwork, {
            "User-Agent": userAgentValues
          }),
          generative_bayesian_network_1.utils.getConstraintClosure(this.headerGeneratorNetwork, {
            "user-agent": userAgentValues
          })
        ] : [null, null];
        const inputConstraints = Object.entries(possibleAttributeValues).reduce((acc, [key, value]) => {
          if (key === "*BROWSER_HTTP") {
            acc[key] = value.filter((x3) => {
              const [browserName, httpVersion] = x3.split("|");
              let httpValues = http2Constraints;
              if (httpVersion === "1" || !http2Constraints || Object.keys(http2Constraints).length === 0) {
                httpValues = http1Constraints;
              }
              return httpValues?.["*BROWSER"].includes(browserName) ?? true;
            });
            return acc;
          }
          acc[key] = value.filter((x3) => (http1Constraints?.[key]?.includes(x3) || http2Constraints?.[key]?.includes(x3)) ?? true);
          return acc;
        }, {});
        const inputSample = this.inputGeneratorNetwork.generateConsistentSampleWhenPossible(inputConstraints);
        if (Object.keys(inputSample).length === 0) {
          if (headerOptions.httpVersion === "1") {
            const headers2 = this.getHeaders({
              ...options,
              httpVersion: "2"
            }, requestDependentHeaders, userAgentValues);
            const pascalize = (name2) => {
              return name2.split("-").map((part) => {
                return part[0].toUpperCase() + part.slice(1).toLowerCase();
              }).join("-");
            };
            const converted2to1 = Object.fromEntries(Object.entries(headers2).map(([name2, value]) => {
              if (name2.startsWith("sec-ch-ua")) {
                return [name2, value];
              }
              if (["dnt", "rtt", "ect"].includes(name2)) {
                return [name2.toUpperCase(), value];
              }
              return [pascalize(name2), value];
            }));
            return this.orderHeaders(converted2to1);
          }
          const relaxationIndex = this.relaxationOrder.findIndex((key) => options[key] !== void 0);
          if (options.strict || relaxationIndex === -1) {
            throw new Error("No headers based on this input can be generated. Please relax or change some of the requirements you specified.");
          }
          const relaxedOptions = { ...options };
          const relaxationKey = this.relaxationOrder[relaxationIndex];
          delete relaxedOptions[relaxationKey];
          return this.getHeaders(relaxedOptions, requestDependentHeaders, userAgentValues);
        }
        const generatedSample = this.headerGeneratorNetwork.generateSample(inputSample);
        const generatedHttpAndBrowser = this.prepareHttpBrowserObject(generatedSample[constants_1.BROWSER_HTTP_NODE_NAME]);
        let secFetchAttributeNames = constants_1.HTTP2_SEC_FETCH_ATTRIBUTES;
        let acceptLanguageFieldName = "accept-language";
        if (generatedHttpAndBrowser.httpVersion !== "2") {
          acceptLanguageFieldName = "Accept-Language";
          secFetchAttributeNames = constants_1.HTTP1_SEC_FETCH_ATTRIBUTES;
        }
        generatedSample[acceptLanguageFieldName] = this._getAcceptLanguageField(headerOptions.locales);
        const isChrome = generatedHttpAndBrowser.name === "chrome";
        const isFirefox = generatedHttpAndBrowser.name === "firefox";
        const isEdge = generatedHttpAndBrowser.name === "edge";
        const hasSecFetch = isChrome && generatedHttpAndBrowser.version[0] >= 76 || isFirefox && generatedHttpAndBrowser.version[0] >= 90 || isEdge && generatedHttpAndBrowser.version[0] >= 79;
        if (hasSecFetch) {
          generatedSample[secFetchAttributeNames.site] = "same-site";
          generatedSample[secFetchAttributeNames.mode] = "navigate";
          generatedSample[secFetchAttributeNames.user] = "?1";
          generatedSample[secFetchAttributeNames.dest] = "document";
        }
        for (const attribute of Object.keys(generatedSample)) {
          if (attribute.toLowerCase() === "connection" && generatedSample[attribute] === "close")
            delete generatedSample[attribute];
          if (attribute.startsWith("*") || generatedSample[attribute] === constants_1.MISSING_VALUE_DATASET_TOKEN)
            delete generatedSample[attribute];
        }
        return this.orderHeaders({
          ...generatedSample,
          ...requestDependentHeaders
        }, this.headersOrder[generatedHttpAndBrowser.name]);
      }
      /**
       * Returns a new object that contains ordered headers.
       * @param headers Specifies known values of headers dependent on the particular request.
       * @param order An array of ordered header names, optional (will be deducted from `user-agent`).
       */
      orderHeaders(headers, order = this.getOrderFromUserAgent(headers)) {
        const orderedSample = {};
        for (const attribute of order) {
          if (attribute in headers) {
            orderedSample[attribute] = headers[attribute];
          }
        }
        for (const attribute of Object.keys(headers)) {
          if (!order.includes(attribute)) {
            orderedSample[attribute] = headers[attribute];
          }
        }
        return orderedSample;
      }
      _prepareBrowsersConfig(browsers, browserListQuery, httpVersion) {
        let finalBrowsers = browsers;
        if (browserListQuery) {
          finalBrowsers = (0, utils_1.getBrowsersFromQuery)(browserListQuery);
        }
        return finalBrowsers.map((browser) => {
          if (typeof browser === "string") {
            return { name: browser, httpVersion };
          }
          browser.httpVersion = httpVersion;
          return browser;
        });
      }
      _getBrowserHttpOptions(browsers) {
        const browserHttpOptions = [];
        for (const browser of browsers) {
          for (const browserOption of this.uniqueBrowsers) {
            if (browser.name === browserOption.name) {
              const browserMajorVersion = browserOption.version[0];
              if ((!browser.minVersion || browser.minVersion <= browserMajorVersion) && (!browser.maxVersion || browser.maxVersion >= browserMajorVersion) && browser.httpVersion === browserOption.httpVersion) {
                browserHttpOptions.push(browserOption.completeString);
              }
            }
          }
        }
        return browserHttpOptions;
      }
      _getPossibleAttributeValues(headerOptions) {
        const { browsers: optionsBrowser, browserListQuery, httpVersion, operatingSystems } = headerOptions;
        const browsers = this._prepareBrowsersConfig(optionsBrowser, browserListQuery, httpVersion);
        const browserHttpOptions = this._getBrowserHttpOptions(browsers);
        const possibleAttributeValues = {};
        possibleAttributeValues[constants_1.BROWSER_HTTP_NODE_NAME] = browserHttpOptions;
        possibleAttributeValues[constants_1.OPERATING_SYSTEM_NODE_NAME] = operatingSystems;
        if (headerOptions.devices) {
          possibleAttributeValues[constants_1.DEVICE_NODE_NAME] = headerOptions.devices;
        }
        return possibleAttributeValues;
      }
      _getAcceptLanguageField(localesFromOptions) {
        let locales = localesFromOptions;
        let highLevelLocales = [];
        for (const locale of locales) {
          if (!locale.includes("-")) {
            highLevelLocales.push(locale);
          }
        }
        for (const locale of locales) {
          if (!highLevelLocales.includes(locale)) {
            let highLevelEquivalentPresent = false;
            for (const highLevelLocale of highLevelLocales) {
              if (locale.includes(highLevelLocale)) {
                highLevelEquivalentPresent = true;
                break;
              }
            }
            if (!highLevelEquivalentPresent)
              highLevelLocales.push(locale);
          }
        }
        highLevelLocales = (0, utils_1.shuffleArray)(highLevelLocales);
        locales = (0, utils_1.shuffleArray)(locales);
        const localesInAddingOrder = [];
        for (const highLevelLocale of highLevelLocales) {
          for (const locale of locales) {
            if (locale.includes(highLevelLocale) && !highLevelLocales.includes(locale)) {
              localesInAddingOrder.push(locale);
            }
          }
          localesInAddingOrder.push(highLevelLocale);
        }
        let acceptLanguageFieldValue = localesInAddingOrder[0];
        for (let x3 = 1; x3 < localesInAddingOrder.length; x3++) {
          acceptLanguageFieldValue += `,${localesInAddingOrder[x3]};q=${1 - x3 * 0.1}`;
        }
        return acceptLanguageFieldValue;
      }
      /**
       * Extract structured information about a browser and http version in the form of an object from httpBrowserString.
       * @param httpBrowserString A string containing the browser name, version and http version, such as `chrome/88.0.4324.182|2`.
       */
      prepareHttpBrowserObject(httpBrowserString) {
        const [browserString, httpVersion] = httpBrowserString.split("|");
        let browserObject;
        if (browserString === constants_1.MISSING_VALUE_DATASET_TOKEN) {
          browserObject = { name: constants_1.MISSING_VALUE_DATASET_TOKEN };
        } else {
          browserObject = this.prepareBrowserObject(browserString);
        }
        return {
          ...browserObject,
          httpVersion,
          completeString: httpBrowserString
        };
      }
      /**
       * Extract structured information about a browser in the form of an object from browserString.
       * @param browserString A string containing the browser name and version, e.g. `chrome/88.0.4324.182`.
       */
      prepareBrowserObject(browserString) {
        const nameVersionSplit = browserString.split("/");
        const versionSplit = nameVersionSplit[1].split(".");
        const preparedVersion = [];
        for (const versionPart of versionSplit) {
          preparedVersion.push(parseInt(versionPart, 10));
        }
        return {
          name: nameVersionSplit[0],
          version: preparedVersion,
          completeString: browserString
        };
      }
      /**
       * Returns a new object containing header names ordered by their appearance in the given browser.
       * @param headers Non-normalized request headers
       * @returns Correct header order for the given browser.
       */
      getOrderFromUserAgent(headers) {
        const userAgent = (0, utils_1.getUserAgent)(headers);
        const browser = (0, utils_1.getBrowser)(userAgent);
        if (!browser) {
          return [];
        }
        return this.headersOrder[browser] ?? [];
      }
    };
    exports2.HeaderGenerator = HeaderGenerator2;
  }
});
var require_presets = __commonJS2({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/presets.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.MODERN_IOS = exports2.MODERN_ANDROID = exports2.MODERN_MACOS_CHROME = exports2.MODERN_MACOS_FIREFOX = exports2.MODERN_MACOS = exports2.MODERN_WINDOWS_CHROME = exports2.MODERN_WINDOWS_FIREFOX = exports2.MODERN_WINDOWS = exports2.MODERN_LINUX_CHROME = exports2.MODERN_LINUX_FIREFOX = exports2.MODERN_LINUX = exports2.MODERN_MOBILE = exports2.MODERN_DESKTOP = void 0;
    exports2.MODERN_DESKTOP = {
      browserListQuery: "last 5 versions"
    };
    exports2.MODERN_MOBILE = {
      ...exports2.MODERN_DESKTOP,
      devices: ["mobile"]
    };
    exports2.MODERN_LINUX = {
      ...exports2.MODERN_DESKTOP,
      operatingSystems: ["linux"]
    };
    exports2.MODERN_LINUX_FIREFOX = {
      browserListQuery: "last 5 firefox versions",
      operatingSystems: ["linux"]
    };
    exports2.MODERN_LINUX_CHROME = {
      browserListQuery: "last 5 chrome versions",
      operatingSystems: ["linux"]
    };
    exports2.MODERN_WINDOWS = {
      ...exports2.MODERN_DESKTOP,
      operatingSystems: ["windows"]
    };
    exports2.MODERN_WINDOWS_FIREFOX = {
      browserListQuery: "last 5 firefox versions",
      operatingSystems: ["windows"]
    };
    exports2.MODERN_WINDOWS_CHROME = {
      browserListQuery: "last 5 chrome versions",
      operatingSystems: ["windows"]
    };
    exports2.MODERN_MACOS = {
      ...exports2.MODERN_DESKTOP,
      operatingSystems: ["macos"]
    };
    exports2.MODERN_MACOS_FIREFOX = {
      browserListQuery: "last 5 firefox versions",
      operatingSystems: ["macos"]
    };
    exports2.MODERN_MACOS_CHROME = {
      browserListQuery: "last 5 chrome versions",
      operatingSystems: ["macos"]
    };
    exports2.MODERN_ANDROID = {
      ...exports2.MODERN_MOBILE,
      operatingSystems: ["android"]
    };
    exports2.MODERN_IOS = {
      ...exports2.MODERN_MOBILE,
      operatingSystems: ["ios"]
    };
  }
});
var require_header_generator2 = __commonJS2({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.PRESETS = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_header_generator(), exports2);
    exports2.PRESETS = tslib_1.__importStar(require_presets());
  }
});
var import_index;
var HeaderGenerator;
var PRESETS;
var headerGeneratorOptionsShape;
var init_header_generator = __esm({
  "../../node_modules/.pnpm/header-generator@2.1.80/node_modules/header-generator/index.mjs"() {
    import_index = __toESM2(require_header_generator2(), 1);
    HeaderGenerator = import_index.default.HeaderGenerator;
    PRESETS = import_index.default.PRESETS;
    headerGeneratorOptionsShape = import_index.default.headerGeneratorOptionsShape;
  }
});
var QuickLRU;
var init_quick_lru = __esm({
  "../../node_modules/.pnpm/quick-lru@7.3.0/node_modules/quick-lru/index.js"() {
    QuickLRU = class extends Map {
      #size = 0;
      #cache = /* @__PURE__ */ new Map();
      #oldCache = /* @__PURE__ */ new Map();
      #maxSize;
      #maxAge;
      #onEviction;
      constructor(options = {}) {
        super();
        if (!(options.maxSize && options.maxSize > 0)) {
          throw new TypeError("`maxSize` must be a number greater than 0");
        }
        if (typeof options.maxAge === "number" && options.maxAge === 0) {
          throw new TypeError("`maxAge` must be a number greater than 0");
        }
        this.#maxSize = options.maxSize;
        this.#maxAge = options.maxAge || Number.POSITIVE_INFINITY;
        this.#onEviction = options.onEviction;
      }
      // For tests.
      get __oldCache() {
        return this.#oldCache;
      }
      #emitEvictions(cache) {
        if (typeof this.#onEviction !== "function") {
          return;
        }
        for (const [key, item] of cache) {
          this.#onEviction(key, item.value);
        }
      }
      #deleteIfExpired(key, item) {
        if (typeof item.expiry === "number" && item.expiry <= Date.now()) {
          if (typeof this.#onEviction === "function") {
            this.#onEviction(key, item.value);
          }
          return this.delete(key);
        }
        return false;
      }
      #getOrDeleteIfExpired(key, item) {
        const deleted = this.#deleteIfExpired(key, item);
        if (deleted === false) {
          return item.value;
        }
      }
      #getItemValue(key, item) {
        return item.expiry ? this.#getOrDeleteIfExpired(key, item) : item.value;
      }
      #peek(key, cache) {
        const item = cache.get(key);
        return this.#getItemValue(key, item);
      }
      #set(key, value) {
        this.#cache.set(key, value);
        this.#size++;
        if (this.#size >= this.#maxSize) {
          this.#size = 0;
          this.#emitEvictions(this.#oldCache);
          this.#oldCache = this.#cache;
          this.#cache = /* @__PURE__ */ new Map();
        }
      }
      #moveToRecent(key, item) {
        this.#oldCache.delete(key);
        this.#set(key, item);
      }
      *#entriesAscending() {
        for (const item of this.#oldCache) {
          const [key, value] = item;
          if (!this.#cache.has(key)) {
            const deleted = this.#deleteIfExpired(key, value);
            if (deleted === false) {
              yield item;
            }
          }
        }
        for (const item of this.#cache) {
          const [key, value] = item;
          const deleted = this.#deleteIfExpired(key, value);
          if (deleted === false) {
            yield item;
          }
        }
      }
      get(key) {
        if (this.#cache.has(key)) {
          const item = this.#cache.get(key);
          return this.#getItemValue(key, item);
        }
        if (this.#oldCache.has(key)) {
          const item = this.#oldCache.get(key);
          if (this.#deleteIfExpired(key, item) === false) {
            this.#moveToRecent(key, item);
            return item.value;
          }
        }
      }
      set(key, value, { maxAge = this.#maxAge } = {}) {
        const expiry = typeof maxAge === "number" && maxAge !== Number.POSITIVE_INFINITY ? Date.now() + maxAge : void 0;
        if (this.#cache.has(key)) {
          this.#cache.set(key, {
            value,
            expiry
          });
        } else {
          this.#set(key, { value, expiry });
        }
        return this;
      }
      has(key) {
        if (this.#cache.has(key)) {
          return !this.#deleteIfExpired(key, this.#cache.get(key));
        }
        if (this.#oldCache.has(key)) {
          return !this.#deleteIfExpired(key, this.#oldCache.get(key));
        }
        return false;
      }
      peek(key) {
        if (this.#cache.has(key)) {
          return this.#peek(key, this.#cache);
        }
        if (this.#oldCache.has(key)) {
          return this.#peek(key, this.#oldCache);
        }
      }
      expiresIn(key) {
        const item = this.#cache.get(key) ?? this.#oldCache.get(key);
        if (item) {
          return item.expiry ? item.expiry - Date.now() : Number.POSITIVE_INFINITY;
        }
      }
      delete(key) {
        const deleted = this.#cache.delete(key);
        if (deleted) {
          this.#size--;
        }
        return this.#oldCache.delete(key) || deleted;
      }
      clear() {
        this.#cache.clear();
        this.#oldCache.clear();
        this.#size = 0;
      }
      resize(newSize) {
        if (!(newSize && newSize > 0)) {
          throw new TypeError("`maxSize` must be a number greater than 0");
        }
        const items = [...this.#entriesAscending()];
        const removeCount = items.length - newSize;
        if (removeCount < 0) {
          this.#cache = new Map(items);
          this.#oldCache = /* @__PURE__ */ new Map();
          this.#size = items.length;
        } else {
          if (removeCount > 0) {
            this.#emitEvictions(items.slice(0, removeCount));
          }
          this.#oldCache = new Map(items.slice(removeCount));
          this.#cache = /* @__PURE__ */ new Map();
          this.#size = 0;
        }
        this.#maxSize = newSize;
      }
      evict(count = 1) {
        const requested = Number(count);
        if (!requested || requested <= 0) {
          return;
        }
        const items = [...this.#entriesAscending()];
        const evictCount = Math.trunc(Math.min(requested, Math.max(items.length - 1, 0)));
        if (evictCount <= 0) {
          return;
        }
        this.#emitEvictions(items.slice(0, evictCount));
        this.#oldCache = new Map(items.slice(evictCount));
        this.#cache = /* @__PURE__ */ new Map();
        this.#size = 0;
      }
      *keys() {
        for (const [key] of this) {
          yield key;
        }
      }
      *values() {
        for (const [, value] of this) {
          yield value;
        }
      }
      *[Symbol.iterator]() {
        for (const item of this.#cache) {
          const [key, value] = item;
          const deleted = this.#deleteIfExpired(key, value);
          if (deleted === false) {
            yield [key, value.value];
          }
        }
        for (const item of this.#oldCache) {
          const [key, value] = item;
          if (!this.#cache.has(key)) {
            const deleted = this.#deleteIfExpired(key, value);
            if (deleted === false) {
              yield [key, value.value];
            }
          }
        }
      }
      *entriesDescending() {
        let items = [...this.#cache];
        for (let i22 = items.length - 1; i22 >= 0; --i22) {
          const item = items[i22];
          const [key, value] = item;
          const deleted = this.#deleteIfExpired(key, value);
          if (deleted === false) {
            yield [key, value.value];
          }
        }
        items = [...this.#oldCache];
        for (let i22 = items.length - 1; i22 >= 0; --i22) {
          const item = items[i22];
          const [key, value] = item;
          if (!this.#cache.has(key)) {
            const deleted = this.#deleteIfExpired(key, value);
            if (deleted === false) {
              yield [key, value.value];
            }
          }
        }
      }
      *entriesAscending() {
        for (const [key, value] of this.#entriesAscending()) {
          yield [key, value.value];
        }
      }
      get size() {
        if (!this.#size) {
          return this.#oldCache.size;
        }
        let oldCacheSize = 0;
        for (const key of this.#oldCache.keys()) {
          if (!this.#cache.has(key)) {
            oldCacheSize++;
          }
        }
        return Math.min(this.#size + oldCacheSize, this.#maxSize);
      }
      get maxSize() {
        return this.#maxSize;
      }
      get maxAge() {
        return this.#maxAge;
      }
      entries() {
        return this.entriesAscending();
      }
      forEach(callbackFunction, thisArgument = this) {
        for (const [key, value] of this.entriesAscending()) {
          callbackFunction.call(thisArgument, value, key, this);
        }
      }
      get [Symbol.toStringTag]() {
        return "QuickLRU";
      }
      toString() {
        return `QuickLRU(${this.size}/${this.maxSize})`;
      }
      [Symbol.for("nodejs.util.inspect.custom")]() {
        return this.toString();
      }
    };
  }
});
function callsites() {
  const _prepareStackTrace = Error.prepareStackTrace;
  try {
    let result = [];
    Error.prepareStackTrace = (_3, callSites) => {
      const callSitesWithoutCurrent = callSites.slice(1);
      result = callSitesWithoutCurrent;
      return callSitesWithoutCurrent;
    };
    new Error().stack;
    return result;
  } finally {
    Error.prepareStackTrace = _prepareStackTrace;
  }
}
var init_callsites = __esm({
  "../../node_modules/.pnpm/callsites@4.2.0/node_modules/callsites/index.js"() {
  }
});
var identifierRegex;
var reservedSet;
var isValidIdentifier;
var is_valid_identifier_default;
var init_is_valid_identifier = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/is-valid-identifier.js"() {
    identifierRegex = /^[a-z$_][$\w]*$/i;
    reservedSet = /* @__PURE__ */ new Set([
      "undefined",
      "null",
      "true",
      "false",
      "super",
      "this",
      "Infinity",
      "NaN"
    ]);
    isValidIdentifier = (string) => Boolean(string?.length > 0 && !reservedSet.has(string) && identifierRegex.test(string));
    is_valid_identifier_default = isValidIdentifier;
  }
});
var is_node_default;
var init_is_node = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/node/is-node.js"() {
    is_node_default = Boolean(process?.versions?.node);
  }
});
var labelRegex;
var inferLabel;
var init_infer_label = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/infer-label.js"() {
    init_is_valid_identifier();
    init_is_node();
    labelRegex = /^.*?\((?<label>.*?)[,)]/;
    inferLabel = (callsites2) => {
      if (!is_node_default) {
        return;
      }
      const functionCallStackFrame = callsites2[1];
      if (!functionCallStackFrame) {
        return;
      }
      const fileName = functionCallStackFrame.getFileName();
      const lineNumber = functionCallStackFrame.getLineNumber();
      const columnNumber = functionCallStackFrame.getColumnNumber();
      if (fileName === null || lineNumber === null || columnNumber === null) {
        return;
      }
      let content2 = [];
      try {
        content2 = import_node_fs.default.readFileSync(fileName, "utf8").split("\n");
      } catch {
        return;
      }
      let line = content2[lineNumber - 1];
      if (!line) {
        return;
      }
      line = line.slice(columnNumber - 1);
      const match = labelRegex.exec(line);
      const token2 = match?.groups?.["label"];
      if (!token2) {
        return;
      }
      if (is_valid_identifier_default(token2) || is_valid_identifier_default(token2.split(".").pop() ?? "")) {
        return token2;
      }
      return;
    };
  }
});
var testSymbol;
var isPredicate;
var init_base_predicate = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/base-predicate.js"() {
    testSymbol = Symbol("test");
    isPredicate = (value) => Boolean(value?.[testSymbol]);
  }
});
function isTypedArrayName2(name2) {
  return typedArrayTypeNames2.includes(name2);
}
function isObjectTypeName2(name2) {
  return objectTypeNames2.includes(name2);
}
function isPrimitiveTypeName2(name2) {
  return primitiveTypeNames2.includes(name2);
}
function isOfType(type) {
  return (value) => typeof value === type;
}
function is2(value) {
  if (value === null) {
    return "null";
  }
  switch (typeof value) {
    case "undefined": {
      return "undefined";
    }
    case "string": {
      return "string";
    }
    case "number": {
      return Number.isNaN(value) ? "NaN" : "number";
    }
    case "boolean": {
      return "boolean";
    }
    case "function": {
      return "Function";
    }
    case "bigint": {
      return "bigint";
    }
    case "symbol": {
      return "symbol";
    }
    default:
  }
  if (is2.observable(value)) {
    return "Observable";
  }
  if (is2.array(value)) {
    return "Array";
  }
  if (is2.buffer(value)) {
    return "Buffer";
  }
  const tagType = getObjectType2(value);
  if (tagType) {
    return tagType;
  }
  if (value instanceof String || value instanceof Boolean || value instanceof Number) {
    throw new TypeError("Please don't use object wrappers for primitive types");
  }
  return "Object";
}
var typedArrayTypeNames2;
var objectTypeNames2;
var primitiveTypeNames2;
var toString2;
var getObjectType2;
var isObjectOfType;
var isNumberType;
var hasPromiseApi2;
var isValidLength2;
var NODE_TYPE_ELEMENT2;
var DOM_PROPERTIES_TO_CHECK2;
var isAbsoluteMod2;
var isWhiteSpaceString;
var predicateOnArray2;
var assertType;
var assert2;
var dist_default2;
var init_dist4 = __esm({
  "../../node_modules/.pnpm/@sindresorhus+is@5.6.0/node_modules/@sindresorhus/is/dist/index.js"() {
    typedArrayTypeNames2 = [
      "Int8Array",
      "Uint8Array",
      "Uint8ClampedArray",
      "Int16Array",
      "Uint16Array",
      "Int32Array",
      "Uint32Array",
      "Float32Array",
      "Float64Array",
      "BigInt64Array",
      "BigUint64Array"
    ];
    objectTypeNames2 = [
      "Function",
      "Generator",
      "AsyncGenerator",
      "GeneratorFunction",
      "AsyncGeneratorFunction",
      "AsyncFunction",
      "Observable",
      "Array",
      "Buffer",
      "Blob",
      "Object",
      "RegExp",
      "Date",
      "Error",
      "Map",
      "Set",
      "WeakMap",
      "WeakSet",
      "WeakRef",
      "ArrayBuffer",
      "SharedArrayBuffer",
      "DataView",
      "Promise",
      "URL",
      "FormData",
      "URLSearchParams",
      "HTMLElement",
      "NaN",
      ...typedArrayTypeNames2
    ];
    primitiveTypeNames2 = [
      "null",
      "undefined",
      "string",
      "number",
      "bigint",
      "boolean",
      "symbol"
    ];
    ({ toString: toString2 } = Object.prototype);
    getObjectType2 = (value) => {
      const objectTypeName = toString2.call(value).slice(8, -1);
      if (/HTML\w+Element/.test(objectTypeName) && is2.domElement(value)) {
        return "HTMLElement";
      }
      if (isObjectTypeName2(objectTypeName)) {
        return objectTypeName;
      }
      return void 0;
    };
    isObjectOfType = (type) => (value) => getObjectType2(value) === type;
    is2.undefined = isOfType("undefined");
    is2.string = isOfType("string");
    isNumberType = isOfType("number");
    is2.number = (value) => isNumberType(value) && !is2.nan(value);
    is2.positiveNumber = (value) => is2.number(value) && value > 0;
    is2.negativeNumber = (value) => is2.number(value) && value < 0;
    is2.bigint = isOfType("bigint");
    is2.function_ = isOfType("function");
    is2.null_ = (value) => value === null;
    is2.class_ = (value) => is2.function_(value) && value.toString().startsWith("class ");
    is2.boolean = (value) => value === true || value === false;
    is2.symbol = isOfType("symbol");
    is2.numericString = (value) => is2.string(value) && !is2.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value));
    is2.array = (value, assertion) => {
      if (!Array.isArray(value)) {
        return false;
      }
      if (!is2.function_(assertion)) {
        return true;
      }
      return value.every((element) => assertion(element));
    };
    is2.buffer = (value) => value?.constructor?.isBuffer?.(value) ?? false;
    is2.blob = (value) => isObjectOfType("Blob")(value);
    is2.nullOrUndefined = (value) => is2.null_(value) || is2.undefined(value);
    is2.object = (value) => !is2.null_(value) && (typeof value === "object" || is2.function_(value));
    is2.iterable = (value) => is2.function_(value?.[Symbol.iterator]);
    is2.asyncIterable = (value) => is2.function_(value?.[Symbol.asyncIterator]);
    is2.generator = (value) => is2.iterable(value) && is2.function_(value?.next) && is2.function_(value?.throw);
    is2.asyncGenerator = (value) => is2.asyncIterable(value) && is2.function_(value.next) && is2.function_(value.throw);
    is2.nativePromise = (value) => isObjectOfType("Promise")(value);
    hasPromiseApi2 = (value) => is2.function_(value?.then) && is2.function_(value?.catch);
    is2.promise = (value) => is2.nativePromise(value) || hasPromiseApi2(value);
    is2.generatorFunction = isObjectOfType("GeneratorFunction");
    is2.asyncGeneratorFunction = (value) => getObjectType2(value) === "AsyncGeneratorFunction";
    is2.asyncFunction = (value) => getObjectType2(value) === "AsyncFunction";
    is2.boundFunction = (value) => is2.function_(value) && !value.hasOwnProperty("prototype");
    is2.regExp = isObjectOfType("RegExp");
    is2.date = isObjectOfType("Date");
    is2.error = isObjectOfType("Error");
    is2.map = (value) => isObjectOfType("Map")(value);
    is2.set = (value) => isObjectOfType("Set")(value);
    is2.weakMap = (value) => isObjectOfType("WeakMap")(value);
    is2.weakSet = (value) => isObjectOfType("WeakSet")(value);
    is2.weakRef = (value) => isObjectOfType("WeakRef")(value);
    is2.int8Array = isObjectOfType("Int8Array");
    is2.uint8Array = isObjectOfType("Uint8Array");
    is2.uint8ClampedArray = isObjectOfType("Uint8ClampedArray");
    is2.int16Array = isObjectOfType("Int16Array");
    is2.uint16Array = isObjectOfType("Uint16Array");
    is2.int32Array = isObjectOfType("Int32Array");
    is2.uint32Array = isObjectOfType("Uint32Array");
    is2.float32Array = isObjectOfType("Float32Array");
    is2.float64Array = isObjectOfType("Float64Array");
    is2.bigInt64Array = isObjectOfType("BigInt64Array");
    is2.bigUint64Array = isObjectOfType("BigUint64Array");
    is2.arrayBuffer = isObjectOfType("ArrayBuffer");
    is2.sharedArrayBuffer = isObjectOfType("SharedArrayBuffer");
    is2.dataView = isObjectOfType("DataView");
    is2.enumCase = (value, targetEnum) => Object.values(targetEnum).includes(value);
    is2.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;
    is2.urlInstance = (value) => isObjectOfType("URL")(value);
    is2.urlString = (value) => {
      if (!is2.string(value)) {
        return false;
      }
      try {
        new URL(value);
        return true;
      } catch {
        return false;
      }
    };
    is2.truthy = (value) => Boolean(value);
    is2.falsy = (value) => !value;
    is2.nan = (value) => Number.isNaN(value);
    is2.primitive = (value) => is2.null_(value) || isPrimitiveTypeName2(typeof value);
    is2.integer = (value) => Number.isInteger(value);
    is2.safeInteger = (value) => Number.isSafeInteger(value);
    is2.plainObject = (value) => {
      if (typeof value !== "object" || value === null) {
        return false;
      }
      const prototype2 = Object.getPrototypeOf(value);
      return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
    };
    is2.typedArray = (value) => isTypedArrayName2(getObjectType2(value));
    isValidLength2 = (value) => is2.safeInteger(value) && value >= 0;
    is2.arrayLike = (value) => !is2.nullOrUndefined(value) && !is2.function_(value) && isValidLength2(value.length);
    is2.tupleLike = (value, guards) => {
      if (is2.array(guards) && is2.array(value) && guards.length === value.length) {
        return guards.every((guard, index) => guard(value[index]));
      }
      return false;
    };
    is2.inRange = (value, range) => {
      if (is2.number(range)) {
        return value >= Math.min(0, range) && value <= Math.max(range, 0);
      }
      if (is2.array(range) && range.length === 2) {
        return value >= Math.min(...range) && value <= Math.max(...range);
      }
      throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);
    };
    NODE_TYPE_ELEMENT2 = 1;
    DOM_PROPERTIES_TO_CHECK2 = [
      "innerHTML",
      "ownerDocument",
      "style",
      "attributes",
      "nodeValue"
    ];
    is2.domElement = (value) => is2.object(value) && value.nodeType === NODE_TYPE_ELEMENT2 && is2.string(value.nodeName) && !is2.plainObject(value) && DOM_PROPERTIES_TO_CHECK2.every((property) => property in value);
    is2.observable = (value) => {
      if (!value) {
        return false;
      }
      if (value === value[Symbol.observable]?.()) {
        return true;
      }
      if (value === value["@@observable"]?.()) {
        return true;
      }
      return false;
    };
    is2.nodeStream = (value) => is2.object(value) && is2.function_(value.pipe) && !is2.observable(value);
    is2.infinite = (value) => value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY;
    isAbsoluteMod2 = (remainder) => (value) => is2.integer(value) && Math.abs(value % 2) === remainder;
    is2.evenInteger = isAbsoluteMod2(0);
    is2.oddInteger = isAbsoluteMod2(1);
    is2.emptyArray = (value) => is2.array(value) && value.length === 0;
    is2.nonEmptyArray = (value) => is2.array(value) && value.length > 0;
    is2.emptyString = (value) => is2.string(value) && value.length === 0;
    isWhiteSpaceString = (value) => is2.string(value) && !/\S/.test(value);
    is2.emptyStringOrWhitespace = (value) => is2.emptyString(value) || isWhiteSpaceString(value);
    is2.nonEmptyString = (value) => is2.string(value) && value.length > 0;
    is2.nonEmptyStringAndNotWhitespace = (value) => is2.string(value) && !is2.emptyStringOrWhitespace(value);
    is2.emptyObject = (value) => is2.object(value) && !is2.map(value) && !is2.set(value) && Object.keys(value).length === 0;
    is2.nonEmptyObject = (value) => is2.object(value) && !is2.map(value) && !is2.set(value) && Object.keys(value).length > 0;
    is2.emptySet = (value) => is2.set(value) && value.size === 0;
    is2.nonEmptySet = (value) => is2.set(value) && value.size > 0;
    is2.emptyMap = (value) => is2.map(value) && value.size === 0;
    is2.nonEmptyMap = (value) => is2.map(value) && value.size > 0;
    is2.propertyKey = (value) => is2.any([is2.string, is2.number, is2.symbol], value);
    is2.formData = (value) => isObjectOfType("FormData")(value);
    is2.urlSearchParams = (value) => isObjectOfType("URLSearchParams")(value);
    predicateOnArray2 = (method, predicate, values) => {
      if (!is2.function_(predicate)) {
        throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
      }
      if (values.length === 0) {
        throw new TypeError("Invalid number of values");
      }
      return method.call(values, predicate);
    };
    is2.any = (predicate, ...values) => {
      const predicates3 = is2.array(predicate) ? predicate : [predicate];
      return predicates3.some((singlePredicate) => predicateOnArray2(Array.prototype.some, singlePredicate, values));
    };
    is2.all = (predicate, ...values) => predicateOnArray2(Array.prototype.every, predicate, values);
    assertType = (condition, description, value, options = {}) => {
      if (!condition) {
        const { multipleValues } = options;
        const valuesMessage = multipleValues ? `received values of types ${[
          ...new Set(value.map((singleValue) => `\`${is2(singleValue)}\``))
        ].join(", ")}` : `received value of type \`${is2(value)}\``;
        throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`);
      }
    };
    assert2 = {
      // Unknowns.
      undefined: (value) => assertType(is2.undefined(value), "undefined", value),
      string: (value) => assertType(is2.string(value), "string", value),
      number: (value) => assertType(is2.number(value), "number", value),
      positiveNumber: (value) => assertType(is2.positiveNumber(value), "positive number", value),
      negativeNumber: (value) => assertType(is2.negativeNumber(value), "negative number", value),
      bigint: (value) => assertType(is2.bigint(value), "bigint", value),
      // eslint-disable-next-line @typescript-eslint/ban-types
      function_: (value) => assertType(is2.function_(value), "Function", value),
      null_: (value) => assertType(is2.null_(value), "null", value),
      class_: (value) => assertType(is2.class_(value), "Class", value),
      boolean: (value) => assertType(is2.boolean(value), "boolean", value),
      symbol: (value) => assertType(is2.symbol(value), "symbol", value),
      numericString: (value) => assertType(is2.numericString(value), "string with a number", value),
      array: (value, assertion) => {
        const assert3 = assertType;
        assert3(is2.array(value), "Array", value);
        if (assertion) {
          value.forEach(assertion);
        }
      },
      buffer: (value) => assertType(is2.buffer(value), "Buffer", value),
      blob: (value) => assertType(is2.blob(value), "Blob", value),
      nullOrUndefined: (value) => assertType(is2.nullOrUndefined(value), "null or undefined", value),
      object: (value) => assertType(is2.object(value), "Object", value),
      iterable: (value) => assertType(is2.iterable(value), "Iterable", value),
      asyncIterable: (value) => assertType(is2.asyncIterable(value), "AsyncIterable", value),
      generator: (value) => assertType(is2.generator(value), "Generator", value),
      asyncGenerator: (value) => assertType(is2.asyncGenerator(value), "AsyncGenerator", value),
      nativePromise: (value) => assertType(is2.nativePromise(value), "native Promise", value),
      promise: (value) => assertType(is2.promise(value), "Promise", value),
      generatorFunction: (value) => assertType(is2.generatorFunction(value), "GeneratorFunction", value),
      asyncGeneratorFunction: (value) => assertType(is2.asyncGeneratorFunction(value), "AsyncGeneratorFunction", value),
      // eslint-disable-next-line @typescript-eslint/ban-types
      asyncFunction: (value) => assertType(is2.asyncFunction(value), "AsyncFunction", value),
      // eslint-disable-next-line @typescript-eslint/ban-types
      boundFunction: (value) => assertType(is2.boundFunction(value), "Function", value),
      regExp: (value) => assertType(is2.regExp(value), "RegExp", value),
      date: (value) => assertType(is2.date(value), "Date", value),
      error: (value) => assertType(is2.error(value), "Error", value),
      map: (value) => assertType(is2.map(value), "Map", value),
      set: (value) => assertType(is2.set(value), "Set", value),
      weakMap: (value) => assertType(is2.weakMap(value), "WeakMap", value),
      weakSet: (value) => assertType(is2.weakSet(value), "WeakSet", value),
      weakRef: (value) => assertType(is2.weakRef(value), "WeakRef", value),
      int8Array: (value) => assertType(is2.int8Array(value), "Int8Array", value),
      uint8Array: (value) => assertType(is2.uint8Array(value), "Uint8Array", value),
      uint8ClampedArray: (value) => assertType(is2.uint8ClampedArray(value), "Uint8ClampedArray", value),
      int16Array: (value) => assertType(is2.int16Array(value), "Int16Array", value),
      uint16Array: (value) => assertType(is2.uint16Array(value), "Uint16Array", value),
      int32Array: (value) => assertType(is2.int32Array(value), "Int32Array", value),
      uint32Array: (value) => assertType(is2.uint32Array(value), "Uint32Array", value),
      float32Array: (value) => assertType(is2.float32Array(value), "Float32Array", value),
      float64Array: (value) => assertType(is2.float64Array(value), "Float64Array", value),
      bigInt64Array: (value) => assertType(is2.bigInt64Array(value), "BigInt64Array", value),
      bigUint64Array: (value) => assertType(is2.bigUint64Array(value), "BigUint64Array", value),
      arrayBuffer: (value) => assertType(is2.arrayBuffer(value), "ArrayBuffer", value),
      sharedArrayBuffer: (value) => assertType(is2.sharedArrayBuffer(value), "SharedArrayBuffer", value),
      dataView: (value) => assertType(is2.dataView(value), "DataView", value),
      enumCase: (value, targetEnum) => assertType(is2.enumCase(value, targetEnum), "EnumCase", value),
      urlInstance: (value) => assertType(is2.urlInstance(value), "URL", value),
      urlString: (value) => assertType(is2.urlString(value), "string with a URL", value),
      truthy: (value) => assertType(is2.truthy(value), "truthy", value),
      falsy: (value) => assertType(is2.falsy(value), "falsy", value),
      nan: (value) => assertType(is2.nan(value), "NaN", value),
      primitive: (value) => assertType(is2.primitive(value), "primitive", value),
      integer: (value) => assertType(is2.integer(value), "integer", value),
      safeInteger: (value) => assertType(is2.safeInteger(value), "integer", value),
      plainObject: (value) => assertType(is2.plainObject(value), "plain object", value),
      typedArray: (value) => assertType(is2.typedArray(value), "TypedArray", value),
      arrayLike: (value) => assertType(is2.arrayLike(value), "array-like", value),
      tupleLike: (value, guards) => assertType(is2.tupleLike(value, guards), "tuple-like", value),
      domElement: (value) => assertType(is2.domElement(value), "HTMLElement", value),
      observable: (value) => assertType(is2.observable(value), "Observable", value),
      nodeStream: (value) => assertType(is2.nodeStream(value), "Node.js Stream", value),
      infinite: (value) => assertType(is2.infinite(value), "infinite number", value),
      emptyArray: (value) => assertType(is2.emptyArray(value), "empty array", value),
      nonEmptyArray: (value) => assertType(is2.nonEmptyArray(value), "non-empty array", value),
      emptyString: (value) => assertType(is2.emptyString(value), "empty string", value),
      emptyStringOrWhitespace: (value) => assertType(is2.emptyStringOrWhitespace(value), "empty string or whitespace", value),
      nonEmptyString: (value) => assertType(is2.nonEmptyString(value), "non-empty string", value),
      nonEmptyStringAndNotWhitespace: (value) => assertType(is2.nonEmptyStringAndNotWhitespace(value), "non-empty string and not whitespace", value),
      emptyObject: (value) => assertType(is2.emptyObject(value), "empty object", value),
      nonEmptyObject: (value) => assertType(is2.nonEmptyObject(value), "non-empty object", value),
      emptySet: (value) => assertType(is2.emptySet(value), "empty set", value),
      nonEmptySet: (value) => assertType(is2.nonEmptySet(value), "non-empty set", value),
      emptyMap: (value) => assertType(is2.emptyMap(value), "empty map", value),
      nonEmptyMap: (value) => assertType(is2.nonEmptyMap(value), "non-empty map", value),
      propertyKey: (value) => assertType(is2.propertyKey(value), "PropertyKey", value),
      formData: (value) => assertType(is2.formData(value), "FormData", value),
      urlSearchParams: (value) => assertType(is2.urlSearchParams(value), "URLSearchParams", value),
      // Numbers.
      evenInteger: (value) => assertType(is2.evenInteger(value), "even integer", value),
      oddInteger: (value) => assertType(is2.oddInteger(value), "odd integer", value),
      // Two arguments.
      directInstanceOf: (instance, class_) => assertType(is2.directInstanceOf(instance, class_), "T", instance),
      inRange: (value, range) => assertType(is2.inRange(value, range), "in range", value),
      // Variadic functions.
      any: (predicate, ...values) => assertType(is2.any(predicate, ...values), "predicate returns truthy for any value", values, { multipleValues: true }),
      all: (predicate, ...values) => assertType(is2.all(predicate, ...values), "predicate returns truthy for all values", values, { multipleValues: true })
    };
    Object.defineProperties(is2, {
      class: {
        value: is2.class_
      },
      function: {
        value: is2.function_
      },
      null: {
        value: is2.null_
      }
    });
    Object.defineProperties(assert2, {
      class: {
        value: assert2.class_
      },
      function: {
        value: assert2.function_
      },
      null: {
        value: assert2.null_
      }
    });
    dist_default2 = is2;
  }
});
var generateStackTrace;
var init_generate_stack = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/generate-stack.js"() {
    generateStackTrace = () => {
      const stack = new RangeError("INTERNAL_OW_ERROR").stack;
      return stack;
    };
  }
});
var wrapStackTrace;
var ArgumentError;
var init_argument_error = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/argument-error.js"() {
    init_generate_stack();
    wrapStackTrace = (error, stack) => `${error.name}: ${error.message}
${stack}`;
    ArgumentError = class extends Error {
      constructor(message, context, errors = /* @__PURE__ */ new Map()) {
        super(message);
        Object.defineProperty(this, "validationErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.name = "ArgumentError";
        if (Error.captureStackTrace) {
          Error.captureStackTrace(this, context);
        } else {
          this.stack = wrapStackTrace(this, generateStackTrace());
        }
        this.validationErrors = errors;
      }
    };
  }
});
var randomId;
var random_id_default;
var init_random_id = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/random-id.js"() {
    randomId = () => Math.random().toString(16).slice(2);
    random_id_default = randomId;
  }
});
var not;
var init_not = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/operators/not.js"() {
    init_random_id();
    init_predicate();
    not = (predicate) => {
      const originalAddValidator = predicate.addValidator;
      predicate.addValidator = (validator) => {
        const { validator: fn3, message, negatedMessage } = validator;
        const placeholder = random_id_default();
        validator.message = (value, label) => negatedMessage ? negatedMessage(value, label) : message(value, placeholder).replace(/ to /, "$&not ").replace(placeholder, label);
        validator.validator = (value) => !fn3(value);
        predicate[validatorSymbol].push(validator);
        predicate.addValidator = originalAddValidator;
        return predicate;
      };
      return predicate;
    };
  }
});
var generateArgumentErrorMessage;
var init_generate_argument_error_message = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/generate-argument-error-message.js"() {
    generateArgumentErrorMessage = (errors, isAny2 = false) => {
      const message = [];
      const errorArray = [...errors.entries()];
      const anyErrorWithoutOneItemOnly = errorArray.some(([, array]) => array.size !== 1);
      if (errorArray.length === 1) {
        const [, returnedErrors] = errorArray[0];
        if (!isAny2 && returnedErrors.size === 1) {
          const [errorMessage] = returnedErrors;
          return errorMessage;
        }
        for (const entry of returnedErrors) {
          message.push(`${isAny2 ? "  - " : ""}${entry}`);
        }
        return message.join("\n");
      }
      if (!anyErrorWithoutOneItemOnly) {
        return errorArray.map(([, [item]]) => `  - ${item}`).join("\n");
      }
      for (const [key, value] of errorArray) {
        message.push(`Errors from the "${key}" predicate:`);
        for (const entry of value) {
          message.push(`  - ${entry}`);
        }
      }
      return message.join("\n");
    };
  }
});
var validatorSymbol;
var Predicate;
var init_predicate = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/predicate.js"() {
    init_dist4();
    init_argument_error();
    init_not();
    init_generate_argument_error_message();
    init_base_predicate();
    validatorSymbol = Symbol("validators");
    Predicate = class {
      constructor(type, options = {}) {
        Object.defineProperty(this, "type", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: type
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
        Object.defineProperty(this, "context", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {
            validators: []
          }
        });
        this.context = {
          ...this.context,
          ...this.options
        };
        const typeString = this.type.charAt(0).toLowerCase() + this.type.slice(1);
        this.addValidator({
          message: (value, label) => {
            const label_ = label?.slice(this.type.length + 1);
            return `Expected ${label_ || "argument"} to be of type \`${this.type}\` but received type \`${Number.isNaN(value) ? "NaN" : dist_default2(value)}\``;
          },
          // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
          validator: (value) => dist_default2[typeString](value)
        });
      }
      /**
      @hidden
      */
      [testSymbol](value, main2, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const { validator, message } of this.context.validators) {
          if (this.options.optional === true && value === void 0) {
            continue;
          }
          let result;
          try {
            result = validator(value);
          } catch (error) {
            result = error;
          }
          if (result === true) {
            continue;
          }
          const label2 = dist_default2.function_(label) ? label() : label;
          const labelWithTick = label2 && idLabel ? `\`${label2}\`` : label2;
          const label_ = labelWithTick ? `${this.type} ${labelWithTick}` : this.type;
          const mapKey = label2 || this.type;
          const currentErrors = errors.get(mapKey);
          const errorMessage = message(value, label_, result);
          if (currentErrors) {
            currentErrors.add(errorMessage);
          } else {
            errors.set(mapKey, /* @__PURE__ */ new Set([errorMessage]));
          }
        }
        if (errors.size > 0) {
          const message = generateArgumentErrorMessage(errors);
          throw new ArgumentError(message, main2, errors);
        }
      }
      /**
      @hidden
      */
      get [validatorSymbol]() {
        return this.context.validators;
      }
      /**
      Invert the following validators.
      */
      get not() {
        return not(this);
      }
      /**
          Test if the value matches a custom validation function. The validation function should return an object containing a `validator` and `message`. If the `validator` is `false`, the validation fails and the `message` will be used as error message. If the `message` is a function, the function is invoked with the `label` as argument to let you further customize the error message.
      
          @param customValidator - Custom validation function.
          */
      validate(customValidator) {
        return this.addValidator({
          // eslint-disable-next-line @typescript-eslint/no-unsafe-return
          message: (_3, label, error) => typeof error === "string" ? `(${label}) ${error}` : error(label),
          validator(value) {
            const { message, validator } = customValidator(value);
            if (validator) {
              return true;
            }
            return message;
          }
        });
      }
      /**
          Test if the value matches a custom validation function. The validation function should return `true` if the value passes the function. If the function either returns `false` or a string, the function fails and the string will be used as error message.
      
          @param validator - Validation function.
          */
      is(validator) {
        return this.addValidator({
          message: (value, label, error) => error ? `(${label}) ${error}` : `Expected ${label} \`${value}\` to pass custom validation function`,
          validator
        });
      }
      /**
          Provide a new error message to be thrown when the validation fails.
      
          @param newMessage - Either a string containing the new message or a function returning the new message.
      
          @example
          ```
          ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow'));
          //=> ArgumentError: Expected unicorn, got rainbow
          ```
      
          @example
          ```
          ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \`${value}\``));
          //=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈`
          ```
          */
      message(newMessage) {
        const { validators: validators4 } = this.context;
        validators4[validators4.length - 1].message = (value, label) => {
          if (typeof newMessage === "function") {
            return newMessage(value, label);
          }
          return newMessage;
        };
        return this;
      }
      /**
          Register a new validator.
      
          @param validator - Validator to register.
          */
      addValidator(validator) {
        this.context.validators.push(validator);
        return this;
      }
    };
  }
});
var import_vali_date;
var StringPredicate;
var init_string = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/string.js"() {
    init_dist4();
    import_vali_date = __toESM2(require_vali_date(), 1);
    init_predicate();
    StringPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("string", options);
      }
      /**
          Test a string to have a specific length.
      
          @param length - The length of the string.
          */
      length(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value}\``,
          validator: (value) => value.length === length
        });
      }
      /**
          Test a string to have a minimum length.
      
          @param length - The minimum length of the string.
          */
      minLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value}\``,
          validator: (value) => value.length >= length,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value}\``
        });
      }
      /**
          Test a string to have a maximum length.
      
          @param length - The maximum length of the string.
          */
      maxLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value}\``,
          validator: (value) => value.length <= length,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value}\``
        });
      }
      /**
          Test a string against a regular expression.
      
          @param regex - The regular expression to match the value with.
          */
      matches(regex) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to match \`${regex}\`, got \`${value}\``,
          validator: (value) => regex.test(value)
        });
      }
      /**
          Test a string to start with a specific value.
      
          @param searchString - The value that should be the start of the string.
          */
      startsWith(searchString) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to start with \`${searchString}\`, got \`${value}\``,
          validator: (value) => value.startsWith(searchString)
        });
      }
      /**
          Test a string to end with a specific value.
      
          @param searchString - The value that should be the end of the string.
          */
      endsWith(searchString) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to end with \`${searchString}\`, got \`${value}\``,
          validator: (value) => value.endsWith(searchString)
        });
      }
      /**
          Test a string to include a specific value.
      
          @param searchString - The value that should be included in the string.
          */
      includes(searchString) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to include \`${searchString}\`, got \`${value}\``,
          validator: (value) => value.includes(searchString)
        });
      }
      /**
          Test if the string is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message(value, label) {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got \`${value}\``;
          },
          validator: (value) => list.includes(value)
        });
      }
      /**
      Test a string to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be empty, got \`${value}\``,
          validator: (value) => value === ""
        });
      }
      /**
      Test a string to contain at least 1 non-whitespace character.
      */
      get nonBlank() {
        return this.addValidator({
          message(value, label) {
            const madeVisible = value.replace(/ /g, "\xB7").replace(/\f/g, "\\f").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/\v/g, "\\v");
            return `Expected ${label} to not be only whitespace, got \`${madeVisible}\``;
          },
          validator: (value) => value.trim() !== ""
        });
      }
      /**
      Test a string to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (value) => value !== ""
        });
      }
      /**
          Test a string to be equal to a specified string.
      
          @param expected - Expected value to match.
          */
      equals(expected) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be equal to \`${expected}\`, got \`${value}\``,
          validator: (value) => value === expected
        });
      }
      /**
      Test a string to be alphanumeric.
      */
      get alphanumeric() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be alphanumeric, got \`${value}\``,
          validator: (value) => /^[a-z\d]+$/i.test(value)
        });
      }
      /**
      Test a string to be alphabetical.
      */
      get alphabetical() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be alphabetical, got \`${value}\``,
          validator: (value) => /^[a-z]+$/gi.test(value)
        });
      }
      /**
      Test a string to be numeric.
      */
      get numeric() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be numeric, got \`${value}\``,
          validator: (value) => /^[+-]?\d+$/i.test(value)
        });
      }
      /**
      Test a string to be a valid date.
      */
      get date() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be a date, got \`${value}\``,
          validator: import_vali_date.default
        });
      }
      /**
      Test a non-empty string to be lowercase. Matching both alphabetical & numbers.
      */
      get lowercase() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be lowercase, got \`${value}\``,
          validator: (value) => value.trim() !== "" && value === value.toLowerCase()
        });
      }
      /**
      Test a non-empty string to be uppercase. Matching both alphabetical & numbers.
      */
      get uppercase() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be uppercase, got \`${value}\``,
          validator: (value) => value.trim() !== "" && value === value.toUpperCase()
        });
      }
      /**
      Test a string to be a valid URL.
      */
      get url() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be a URL, got \`${value}\``,
          validator: dist_default2.urlString
        });
      }
    };
  }
});
var NumberPredicate;
var init_number = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/number.js"() {
    init_dist4();
    init_predicate();
    NumberPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("number", options);
      }
      /**
          Test a number to be in a specified range.
      
          @param start - Start of the range.
          @param end - End of the range.
          */
      inRange(start, end) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be in range [${start}..${end}], got ${value}`,
          validator: (value) => dist_default2.inRange(value, [start, end])
        });
      }
      /**
          Test a number to be greater than the provided value.
      
          @param number - Minimum value.
          */
      greaterThan(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be greater than ${number}, got ${value}`,
          validator: (value) => value > number
        });
      }
      /**
          Test a number to be greater than or equal to the provided value.
      
          @param number - Minimum value.
          */
      greaterThanOrEqual(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be greater than or equal to ${number}, got ${value}`,
          validator: (value) => value >= number
        });
      }
      /**
          Test a number to be less than the provided value.
      
          @param number - Maximum value.
          */
      lessThan(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be less than ${number}, got ${value}`,
          validator: (value) => value < number
        });
      }
      /**
          Test a number to be less than or equal to the provided value.
      
          @param number - Minimum value.
          */
      lessThanOrEqual(number) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be less than or equal to ${number}, got ${value}`,
          validator: (value) => value <= number
        });
      }
      /**
          Test a number to be equal to a specified number.
      
          @param expected - Expected value to match.
          */
      equal(expected) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be equal to ${expected}, got ${value}`,
          validator: (value) => value === expected
        });
      }
      /**
          Test if a number is an element of the provided list.
      
          @param list - List of possible values.
          */
      oneOf(list) {
        return this.addValidator({
          message(value, label) {
            let printedList = JSON.stringify(list);
            if (list.length > 10) {
              const overflow = list.length - 10;
              printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,\u2026+${overflow} more]`);
            }
            return `Expected ${label} to be one of \`${printedList}\`, got ${value}`;
          },
          validator: (value) => list.includes(value)
        });
      }
      /**
      Test a number to be an integer.
      */
      get integer() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be an integer, got ${value}`,
          validator: (value) => dist_default2.integer(value)
        });
      }
      /**
      Test a number to be finite.
      */
      get finite() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be finite, got ${value}`,
          validator: (value) => !dist_default2.infinite(value)
        });
      }
      /**
      Test a number to be infinite.
      */
      get infinite() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be infinite, got ${value}`,
          validator: (value) => dist_default2.infinite(value)
        });
      }
      /**
      Test a number to be positive.
      */
      get positive() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be positive, got ${value}`,
          validator: (value) => value > 0
        });
      }
      /**
      Test a number to be negative.
      */
      get negative() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be negative, got ${value}`,
          validator: (value) => value < 0
        });
      }
      /**
      Test a number to be an integer or infinite.
      */
      get integerOrInfinite() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be an integer or infinite, got ${value}`,
          validator: (value) => dist_default2.integer(value) || dist_default2.infinite(value)
        });
      }
      /**
      Test a number to be in a valid range for a 8-bit unsigned integer.
      */
      get uint8() {
        return this.integer.inRange(0, 255);
      }
      /**
      Test a number to be in a valid range for a 16-bit unsigned integer.
      */
      get uint16() {
        return this.integer.inRange(0, 65535);
      }
      /**
      Test a number to be in a valid range for a 32-bit unsigned integer.
      */
      get uint32() {
        return this.integer.inRange(0, 4294967295);
      }
      /**
      Test a number to be in a valid range for a 8-bit signed integer.
      */
      get int8() {
        return this.integer.inRange(-128, 127);
      }
      /**
      Test a number to be in a valid range for a 16-bit signed integer.
      */
      get int16() {
        return this.integer.inRange(-32768, 32767);
      }
      /**
      Test a number to be in a valid range for a 32-bit signed integer.
      */
      get int32() {
        return this.integer.inRange(-2147483648, 2147483647);
      }
    };
  }
});
var BigIntPredicate;
var init_bigint = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/bigint.js"() {
    init_predicate();
    BigIntPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("bigint", options);
      }
    };
  }
});
var BooleanPredicate;
var init_boolean = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/boolean.js"() {
    init_predicate();
    BooleanPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("boolean", options);
      }
      /**
      Test a boolean to be true.
      */
      get true() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be true, got ${value}`,
          validator: (value) => value
        });
      }
      /**
      Test a boolean to be false.
      */
      get false() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be false, got ${value}`,
          validator: (value) => !value
        });
      }
    };
  }
});
function test(value, label, predicate, idLabel = true) {
  predicate[testSymbol](value, test, label, idLabel);
}
var init_test = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/test.js"() {
    init_base_predicate();
  }
});
function partial(object, shape, parent) {
  try {
    for (const key of Object.keys(shape)) {
      const label = parent ? `${parent}.${key}` : key;
      if (isPredicate(shape[key])) {
        test(object[key], label, shape[key]);
      } else if (dist_default2.plainObject(shape[key])) {
        const result = partial(object[key], shape[key], label);
        if (result !== true) {
          return result;
        }
      }
    }
    return true;
  } catch (error) {
    return error.message;
  }
}
function exact(object, shape, parent, isArray3) {
  try {
    const objectKeys = new Set(Object.keys(object));
    for (const key of Object.keys(shape)) {
      objectKeys.delete(key);
      const label = parent ? `${parent}.${key}` : key;
      if (isPredicate(shape[key])) {
        test(object[key], label, shape[key]);
      } else if (dist_default2.plainObject(shape[key])) {
        if (!Object.prototype.hasOwnProperty.call(object, key)) {
          return `Expected \`${label}\` to exist`;
        }
        const result = exact(object[key], shape[key], label);
        if (result !== true) {
          return result;
        }
      }
    }
    if (objectKeys.size > 0) {
      const firstKey = [...objectKeys.keys()][0];
      const label = parent ? `${parent}.${firstKey}` : firstKey;
      return `Did not expect ${isArray3 ? "element" : "property"} \`${label}\` to exist, got \`${object[firstKey]}\``;
    }
    return true;
  } catch (error) {
    return error.message;
  }
}
var init_match_shape = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/match-shape.js"() {
    init_dist4();
    init_test();
    init_base_predicate();
  }
});
var ofType;
var of_type_default;
var init_of_type = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/of-type.js"() {
    init_test();
    ofType = (source, name2, predicate) => {
      try {
        for (const item of source) {
          test(item, name2, predicate, false);
        }
        return true;
      } catch (error) {
        return error.message;
      }
    };
    of_type_default = ofType;
  }
});
var import_lodash;
var ArrayPredicate;
var init_array = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/array.js"() {
    import_lodash = __toESM2(require_lodash(), 1);
    init_match_shape();
    init_of_type();
    init_predicate();
    ArrayPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("array", options);
      }
      /**
          Test an array to have a specific length.
      
          @param length - The length of the array.
          */
      length(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length === length
        });
      }
      /**
          Test an array to have a minimum length.
      
          @param length - The minimum length of the array.
          */
      minLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length >= length,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value.length}\``
        });
      }
      /**
          Test an array to have a maximum length.
      
          @param length - The maximum length of the array.
          */
      maxLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length <= length,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value.length}\``
        });
      }
      /**
          Test an array to start with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the start of the array.
          */
      startsWith(searchElement) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to start with \`${searchElement}\`, got \`${value[0]}\``,
          validator: (value) => value[0] === searchElement
        });
      }
      /**
          Test an array to end with a specific value. The value is tested by identity, not structure.
      
          @param searchElement - The value that should be the end of the array.
          */
      endsWith(searchElement) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to end with \`${searchElement}\`, got \`${value[value.length - 1]}\``,
          validator: (value) => value[value.length - 1] === searchElement
        });
      }
      /**
          Test an array to include all the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includes(...searchElements) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to include all elements of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value)}\``,
          validator: (value) => searchElements.every((element) => value.includes(element))
        });
      }
      /**
          Test an array to include any of the provided elements. The values are tested by identity, not structure.
      
          @param searchElements - The values that should be included in the array.
          */
      includesAny(...searchElements) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to include any element of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value)}\``,
          validator: (value) => searchElements.some((element) => value.includes(element))
        });
      }
      /**
      Test an array to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be empty, got \`${JSON.stringify(value)}\``,
          validator: (value) => value.length === 0
        });
      }
      /**
      Test an array to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (value) => value.length > 0
        });
      }
      /**
          Test an array to be deeply equal to the provided array.
      
          @param expected - Expected value to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(value)}\``,
          validator: (value) => (0, import_lodash.default)(value, expected)
        });
      }
      /**
          Test all elements in the array to match to provided predicate.
      
          @param predicate - The predicate that should be applied against every individual item.
      
          @example
          ```
          ow(['a', 1], ow.array.ofType(ow.any(ow.string, ow.number)));
          ```
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (value) => of_type_default(value, "values", predicate)
        });
      }
      /**
          Test if the elements in the array exactly matches the elements placed at the same indices in the predicates array.
      
          @param predicates - Predicates to test the array against. Describes what the tested array should look like.
      
          @example
          ```
          ow(['1', 2], ow.array.exactShape([ow.string, ow.number]));
          ```
          */
      exactShape(predicates3) {
        const shape = predicates3;
        return this.addValidator({
          // eslint-disable-next-line @typescript-eslint/no-unsafe-call
          message: (_3, label, message) => `${message.replace("Expected", "Expected element")} in ${label}`,
          validator: (object) => exact(object, shape, void 0, true)
        });
      }
    };
  }
});
function getPathSegments(path22) {
  const parts = [];
  let currentSegment = "";
  let currentPart = "start";
  let isIgnoring = false;
  for (const character of path22) {
    switch (character) {
      case "\\":
        if (currentPart === "index") {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          throw new Error("Invalid character after an index");
        }
        if (isIgnoring) {
          currentSegment += character;
        }
        currentPart = "property";
        isIgnoring = !isIgnoring;
        break;
      case ".":
        if (currentPart === "index") {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          currentPart = "property";
          break;
        }
        if (isIgnoring) {
          isIgnoring = false;
          currentSegment += character;
          break;
        }
        if (disallowedKeys.has(currentSegment)) {
          return [];
        }
        parts.push(currentSegment);
        currentSegment = "";
        currentPart = "property";
        break;
      case "[":
        if (currentPart === "index") {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          currentPart = "index";
          break;
        }
        if (isIgnoring) {
          isIgnoring = false;
          currentSegment += character;
          break;
        }
        if (currentPart === "property") {
          if (disallowedKeys.has(currentSegment)) {
            return [];
          }
          parts.push(currentSegment);
          currentSegment = "";
        }
        currentPart = "index";
        break;
      case "]":
        if (currentPart === "index") {
          parts.push(Number.parseInt(currentSegment, 10));
          currentSegment = "";
          currentPart = "indexEnd";
          break;
        }
        if (currentPart === "indexEnd") {
          throw new Error("Invalid character after an index");
        }
      // Falls through
      default:
        if (currentPart === "index" && !digits.has(character)) {
          throw new Error("Invalid character in an index");
        }
        if (currentPart === "indexEnd") {
          throw new Error("Invalid character after an index");
        }
        if (currentPart === "start") {
          currentPart = "property";
        }
        if (isIgnoring) {
          isIgnoring = false;
          currentSegment += "\\";
        }
        currentSegment += character;
    }
  }
  if (isIgnoring) {
    currentSegment += "\\";
  }
  switch (currentPart) {
    case "property": {
      if (disallowedKeys.has(currentSegment)) {
        return [];
      }
      parts.push(currentSegment);
      break;
    }
    case "index": {
      throw new Error("Index was not closed");
    }
    case "start": {
      parts.push("");
      break;
    }
  }
  return parts;
}
function isStringIndex(object, key) {
  if (typeof key !== "number" && Array.isArray(object)) {
    const index = Number.parseInt(key, 10);
    return Number.isInteger(index) && object[index] === object[key];
  }
  return false;
}
function hasProperty(object, path22) {
  if (!isObject2(object) || typeof path22 !== "string") {
    return false;
  }
  const pathArray = getPathSegments(path22);
  if (pathArray.length === 0) {
    return false;
  }
  for (const key of pathArray) {
    if (!isObject2(object) || !(key in object) || isStringIndex(object, key)) {
      return false;
    }
    object = object[key];
  }
  return true;
}
var isObject2;
var disallowedKeys;
var digits;
var init_dot_prop = __esm({
  "../../node_modules/.pnpm/dot-prop@7.2.0/node_modules/dot-prop/index.js"() {
    isObject2 = (value) => {
      const type = typeof value;
      return value !== null && (type === "object" || type === "function");
    };
    disallowedKeys = /* @__PURE__ */ new Set([
      "__proto__",
      "prototype",
      "constructor"
    ]);
    digits = new Set("0123456789");
  }
});
var hasItems;
var has_items_default;
var init_has_items = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/has-items.js"() {
    hasItems = (source, items, maxValues = 5) => {
      const missingValues = [];
      for (const value of items) {
        if (source.has(value)) {
          continue;
        }
        missingValues.push(value);
        if (missingValues.length === maxValues) {
          return missingValues;
        }
      }
      return missingValues.length === 0 ? true : missingValues;
    };
    has_items_default = hasItems;
  }
});
var ofTypeDeep;
var ofTypeDeepSafe;
var of_type_deep_default;
var init_of_type_deep = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/utils/of-type-deep.js"() {
    init_dist4();
    init_test();
    ofTypeDeep = (object, predicate) => {
      if (!dist_default2.plainObject(object)) {
        test(object, "deep values", predicate, false);
        return true;
      }
      return Object.values(object).every((value) => ofTypeDeep(value, predicate));
    };
    ofTypeDeepSafe = (object, predicate) => {
      try {
        return ofTypeDeep(object, predicate);
      } catch (error) {
        return error.message;
      }
    };
    of_type_deep_default = ofTypeDeepSafe;
  }
});
var import_lodash2;
var ObjectPredicate;
var init_object = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/object.js"() {
    init_dist4();
    init_dot_prop();
    import_lodash2 = __toESM2(require_lodash(), 1);
    init_has_items();
    init_of_type();
    init_of_type_deep();
    init_match_shape();
    init_predicate();
    ObjectPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("object", options);
      }
      /**
      Test if an Object is a plain object.
      */
      get plain() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to be a plain object`,
          validator: (object) => dist_default2.plainObject(object)
        });
      }
      /**
      Test an object to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be empty, got \`${JSON.stringify(object)}\``,
          validator: (object) => Object.keys(object).length === 0
        });
      }
      /**
      Test an object to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (object) => Object.keys(object).length > 0
        });
      }
      /**
          Test all the values in the object to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (object) => of_type_default(Object.values(object), "values", predicate)
        });
      }
      /**
          Test all the values in the object deeply to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the object.
          */
      deepValuesOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (object) => of_type_deep_default(object, predicate)
        });
      }
      /**
          Test an object to be deeply equal to the provided object.
      
          @param expected - Expected object to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (object, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(object)}\``,
          validator: (object) => (0, import_lodash2.default)(object, expected)
        });
      }
      /**
          Test an object to be of a specific instance type.
      
          @param instance - The expected instance type of the object.
          */
      instanceOf(instance) {
        return this.addValidator({
          message(object, label) {
            let { name: name2 } = object?.constructor ?? {};
            if (!name2 || name2 === "Object") {
              name2 = JSON.stringify(object);
            }
            return `Expected ${label} \`${name2}\` to be of type \`${instance.name}\``;
          },
          validator: (object) => object instanceof instance
        });
      }
      /**
          Test an object to include all the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that should be present in the object.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (object) => has_items_default({
            has: (item) => hasProperty(object, item)
          }, keys)
        });
      }
      /**
          Test an object to include any of the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.
      
          @param keys - The keys that could be a key in the object.
          */
      hasAnyKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``,
          validator: (object) => keys.some((key) => hasProperty(object, key))
        });
      }
      /**
          Test an object to match the `shape` partially. This means that it ignores unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          const object = {
              unicorn: '🦄',
              rainbow: '🌈'
          };
      
          ow(object, ow.object.partialShape({
              unicorn: ow.string
          }));
          ```
          */
      partialShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          // eslint-disable-next-line @typescript-eslint/no-unsafe-call
          message: (_3, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => partial(object, shape)
        });
      }
      /**
          Test an object to match the `shape` exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep.
      
          The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
      
          @param shape - Shape to test the object against.
      
          @example
          ```
          import ow from 'ow';
      
          ow({unicorn: '🦄'}, ow.object.exactShape({
              unicorn: ow.string
          }));
          ```
          */
      exactShape(shape) {
        return this.addValidator({
          // TODO: Improve this when message handling becomes smarter
          // eslint-disable-next-line @typescript-eslint/no-unsafe-call
          message: (_3, label, message) => `${message.replace("Expected", "Expected property")} in ${label}`,
          validator: (object) => exact(object, shape)
        });
      }
    };
  }
});
var DatePredicate;
var init_date = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/date.js"() {
    init_predicate();
    DatePredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("date", options);
      }
      /**
          Test a date to be before another date.
      
          @param date - Maximum value.
          */
      before(date) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} ${value.toISOString()} to be before ${date.toISOString()}`,
          validator: (value) => value.getTime() < date.getTime()
        });
      }
      /**
          Test a date to be before another date.
      
          @param date - Minimum value.
          */
      after(date) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} ${value.toISOString()} to be after ${date.toISOString()}`,
          validator: (value) => value.getTime() > date.getTime()
        });
      }
    };
  }
});
var ErrorPredicate;
var init_error = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/error.js"() {
    init_predicate();
    ErrorPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("error", options);
      }
      /**
          Test an error to have a specific name.
      
          @param expected - Expected name of the Error.
          */
      name(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} to have name \`${expected}\`, got \`${error.name}\``,
          validator: (error) => error.name === expected
        });
      }
      /**
          Test an error to have a specific message.
      
          @param expected - Expected message of the Error.
          */
      message(expected) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to be \`${expected}\`, got \`${error.message}\``,
          validator: (error) => error.message === expected
        });
      }
      /**
          Test the error message to include a specific message.
      
          @param message - Message that should be included in the error.
          */
      messageIncludes(message) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} message to include \`${message}\`, got \`${error.message}\``,
          validator: (error) => error.message.includes(message)
        });
      }
      /**
          Test the error object to have specific keys.
      
          @param keys - One or more keys which should be part of the error object.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} message to have keys \`${keys.join("`, `")}\``,
          validator: (error) => keys.every((key) => Object.prototype.hasOwnProperty.call(error, key))
        });
      }
      /**
          Test an error to be of a specific instance type.
      
          @param instance - The expected instance type of the error.
          */
      instanceOf(instance) {
        return this.addValidator({
          message: (error, label) => `Expected ${label} \`${error.name}\` to be of type \`${instance.name}\``,
          validator: (error) => error instanceof instance
        });
      }
      /**
      Test an Error to be a TypeError.
      */
      get typeError() {
        return this.instanceOf(TypeError);
      }
      /**
      Test an Error to be an EvalError.
      */
      get evalError() {
        return this.instanceOf(EvalError);
      }
      /**
      Test an Error to be a RangeError.
      */
      get rangeError() {
        return this.instanceOf(RangeError);
      }
      /**
      Test an Error to be a ReferenceError.
      */
      get referenceError() {
        return this.instanceOf(ReferenceError);
      }
      /**
      Test an Error to be a SyntaxError.
      */
      get syntaxError() {
        return this.instanceOf(SyntaxError);
      }
      /**
      Test an Error to be a URIError.
      */
      get uriError() {
        return this.instanceOf(URIError);
      }
    };
  }
});
var import_lodash3;
var MapPredicate;
var init_map = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/map.js"() {
    import_lodash3 = __toESM2(require_lodash(), 1);
    init_has_items();
    init_of_type();
    init_predicate();
    MapPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Map", options);
      }
      /**
          Test a Map to have a specific size.
      
          @param size - The size of the Map.
          */
      size(size) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to have size \`${size}\`, got \`${map2.size}\``,
          validator: (map2) => map2.size === size
        });
      }
      /**
          Test an Map to have a minimum size.
      
          @param size - The minimum size of the Map.
          */
      minSize(size) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${map2.size}\``,
          validator: (map2) => map2.size >= size,
          negatedMessage: (map2, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${map2.size}\``
        });
      }
      /**
          Test an Map to have a maximum size.
      
          @param size - The maximum size of the Map.
          */
      maxSize(size) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${map2.size}\``,
          validator: (map2) => map2.size <= size,
          negatedMessage: (map2, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${map2.size}\``
        });
      }
      /**
          Test a Map to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the Map.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map2) => has_items_default(map2, keys)
        });
      }
      /**
          Test a Map to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the Map.
          */
      hasAnyKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``,
          validator: (map2) => keys.some((key) => map2.has(key))
        });
      }
      /**
          Test a Map to include all the provided values. The values are tested by identity, not structure.
      
          @param values - The values that should be a value in the Map.
          */
      hasValues(...values) {
        return this.addValidator({
          message: (_3, label, missingValues) => `Expected ${label} to have values \`${JSON.stringify(missingValues)}\``,
          validator: (map2) => has_items_default(new Set(map2.values()), values)
        });
      }
      /**
          Test a Map to include any of the provided values. The values are tested by identity, not structure.
      
          @param values - The values that could be a value in the Map.
          */
      hasAnyValues(...values) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any value of \`${JSON.stringify(values)}\``,
          validator(map2) {
            const valueSet = new Set(map2.values());
            return values.some((key) => valueSet.has(key));
          }
        });
      }
      /**
          Test all the keys in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every key in the Map.
          */
      keysOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (map2) => of_type_default(map2.keys(), "keys", predicate)
        });
      }
      /**
          Test all the values in the Map to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every value in the Map.
          */
      valuesOfType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (map2) => of_type_default(map2.values(), "values", predicate)
        });
      }
      /**
      Test a Map to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...map2])}\``,
          validator: (map2) => map2.size === 0
        });
      }
      /**
      Test a Map to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (map2) => map2.size > 0
        });
      }
      /**
          Test a Map to be deeply equal to the provided Map.
      
          @param expected - Expected Map to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (map2, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...map2])}\``,
          validator: (map2) => (0, import_lodash3.default)(map2, expected)
        });
      }
    };
  }
});
var WeakMapPredicate;
var init_weak_map = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/weak-map.js"() {
    init_has_items();
    init_predicate();
    WeakMapPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakMap", options);
      }
      /**
          Test a WeakMap to include all the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that should be a key in the WeakMap.
          */
      hasKeys(...keys) {
        return this.addValidator({
          message: (_3, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``,
          validator: (map2) => has_items_default(map2, keys)
        });
      }
      /**
          Test a WeakMap to include any of the provided keys. The keys are tested by identity, not structure.
      
          @param keys - The keys that could be a key in the WeakMap.
          */
      hasAnyKeys(...keys) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``,
          validator: (map2) => keys.some((key) => map2.has(key))
        });
      }
    };
  }
});
var import_lodash4;
var SetPredicate;
var init_set = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/set.js"() {
    import_lodash4 = __toESM2(require_lodash(), 1);
    init_has_items();
    init_of_type();
    init_predicate();
    SetPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("Set", options);
      }
      /**
          Test a Set to have a specific size.
      
          @param size - The size of the Set.
          */
      size(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have size \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size === size
        });
      }
      /**
          Test a Set to have a minimum size.
      
          @param size - The minimum size of the Set.
          */
      minSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size >= size,
          negatedMessage: (set, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to have a maximum size.
      
          @param size - The maximum size of the Set.
          */
      maxSize(size) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${set.size}\``,
          validator: (set) => set.size <= size,
          negatedMessage: (set, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${set.size}\``
        });
      }
      /**
          Test a Set to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the Set.
          */
      has(...items) {
        return this.addValidator({
          message: (_3, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => has_items_default(set, items)
        });
      }
      /**
          Test a Set to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the Set.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
      /**
          Test all the items in the Set to match the provided predicate.
      
          @param predicate - The predicate that should be applied against every item in the Set.
          */
      ofType(predicate) {
        return this.addValidator({
          message: (_3, label, error) => `(${label}) ${error}`,
          validator: (set) => of_type_default(set, "values", predicate)
        });
      }
      /**
      Test a Set to be empty.
      */
      get empty() {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...set])}\``,
          validator: (set) => set.size === 0
        });
      }
      /**
      Test a Set to be not empty.
      */
      get nonEmpty() {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to not be empty`,
          validator: (set) => set.size > 0
        });
      }
      /**
          Test a Set to be deeply equal to the provided Set.
      
          @param expected - Expected Set to match.
          */
      deepEqual(expected) {
        return this.addValidator({
          message: (set, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...set])}\``,
          validator: (set) => (0, import_lodash4.default)(set, expected)
        });
      }
    };
  }
});
var WeakSetPredicate;
var init_weak_set = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/weak-set.js"() {
    init_has_items();
    init_predicate();
    WeakSetPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("WeakSet", options);
      }
      /**
          Test a WeakSet to include all the provided items. The items are tested by identity, not structure.
      
          @param items - The items that should be a item in the WeakSet.
          */
      has(...items) {
        return this.addValidator({
          message: (_3, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``,
          validator: (set) => has_items_default(set, items)
        });
      }
      /**
          Test a WeakSet to include any of the provided items. The items are tested by identity, not structure.
      
          @param items - The items that could be a item in the WeakSet.
          */
      hasAny(...items) {
        return this.addValidator({
          message: (_3, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``,
          validator: (set) => items.some((item) => set.has(item))
        });
      }
    };
  }
});
var TypedArrayPredicate;
var init_typed_array = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/typed-array.js"() {
    init_predicate();
    TypedArrayPredicate = class extends Predicate {
      /**
          Test a typed array to have a specific byte length.
      
          @param byteLength - The byte length of the typed array.
          */
      byteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength === byteLength2
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the typed array.
          */
      minByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength >= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2 - 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test a typed array to have a minimum byte length.
      
          @param length - The minimum byte length of the typed array.
          */
      maxByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength <= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2 + 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test a typed array to have a specific length.
      
          @param length - The length of the typed array.
          */
      length(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length === length
        });
      }
      /**
          Test a typed array to have a minimum length.
      
          @param length - The minimum length of the typed array.
          */
      minLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length >= length,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value.length}\``
        });
      }
      /**
          Test a typed array to have a maximum length.
      
          @param length - The maximum length of the typed array.
          */
      maxLength(length) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value.length}\``,
          validator: (value) => value.length <= length,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value.length}\``
        });
      }
    };
  }
});
var ArrayBufferPredicate;
var init_array_buffer2 = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/array-buffer.js"() {
    init_predicate();
    ArrayBufferPredicate = class extends Predicate {
      /**
          Test an array buffer to have a specific byte length.
      
          @param byteLength - The byte length of the array buffer.
          */
      byteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength === byteLength2
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the array buffer.
          */
      minByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength >= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2 - 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test an array buffer to have a minimum byte length.
      
          @param length - The minimum byte length of the array buffer.
          */
      maxByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength <= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2 + 1}\`, got \`${value.byteLength}\``
        });
      }
    };
  }
});
var DataViewPredicate;
var init_data_view = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/data-view.js"() {
    init_predicate();
    DataViewPredicate = class extends Predicate {
      /**
      @hidden
      */
      constructor(options) {
        super("DataView", options);
      }
      /**
          Test a DataView to have a specific byte length.
      
          @param byteLength - The byte length of the DataView.
          */
      byteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength === byteLength2
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param byteLength - The minimum byte length of the DataView.
          */
      minByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength >= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2 - 1}\`, got \`${value.byteLength}\``
        });
      }
      /**
          Test a DataView to have a minimum byte length.
      
          @param length - The minimum byte length of the DataView.
          */
      maxByteLength(byteLength2) {
        return this.addValidator({
          message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength2}\`, got \`${value.byteLength}\``,
          validator: (value) => value.byteLength <= byteLength2,
          negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength2 + 1}\`, got \`${value.byteLength}\``
        });
      }
    };
  }
});
var AnyPredicate;
var init_any = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates/any.js"() {
    init_argument_error();
    init_generate_argument_error_message();
    init_base_predicate();
    AnyPredicate = class {
      constructor(predicates3, options = {}) {
        Object.defineProperty(this, "predicates", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: predicates3
        });
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: options
        });
      }
      [testSymbol](value, main2, label, idLabel) {
        const errors = /* @__PURE__ */ new Map();
        for (const predicate of this.predicates) {
          try {
            main2(value, label, predicate, idLabel);
            return;
          } catch (error) {
            if (value === void 0 && this.options.optional === true) {
              return;
            }
            if (error instanceof ArgumentError) {
              for (const [key, value2] of error.validationErrors.entries()) {
                const alreadyPresent = errors.get(key);
                errors.set(key, /* @__PURE__ */ new Set([...alreadyPresent ?? [], ...value2]));
              }
            }
          }
        }
        if (errors.size > 0) {
          const message = generateArgumentErrorMessage(errors, true);
          throw new ArgumentError(`Any predicate failed with the following errors:
${message}`, main2, errors);
        }
      }
    };
  }
});
var predicates;
var predicates_default;
var init_predicates = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/predicates.js"() {
    init_string();
    init_number();
    init_bigint();
    init_boolean();
    init_predicate();
    init_array();
    init_object();
    init_date();
    init_error();
    init_map();
    init_weak_map();
    init_set();
    init_weak_set();
    init_typed_array();
    init_array_buffer2();
    init_data_view();
    init_any();
    predicates = (object, options) => {
      Object.defineProperties(object, {
        string: {
          get: () => new StringPredicate(options)
        },
        number: {
          get: () => new NumberPredicate(options)
        },
        bigint: {
          get: () => new BigIntPredicate(options)
        },
        boolean: {
          get: () => new BooleanPredicate(options)
        },
        undefined: {
          get: () => new Predicate("undefined", options)
        },
        null: {
          get: () => new Predicate("null", options)
        },
        nullOrUndefined: {
          get: () => new Predicate("nullOrUndefined", options)
        },
        nan: {
          get: () => new Predicate("nan", options)
        },
        symbol: {
          get: () => new Predicate("symbol", options)
        },
        array: {
          get: () => new ArrayPredicate(options)
        },
        object: {
          get: () => new ObjectPredicate(options)
        },
        date: {
          get: () => new DatePredicate(options)
        },
        error: {
          get: () => new ErrorPredicate(options)
        },
        map: {
          get: () => new MapPredicate(options)
        },
        weakMap: {
          get: () => new WeakMapPredicate(options)
        },
        set: {
          get: () => new SetPredicate(options)
        },
        weakSet: {
          get: () => new WeakSetPredicate(options)
        },
        function: {
          get: () => new Predicate("Function", options)
        },
        buffer: {
          get: () => new Predicate("Buffer", options)
        },
        regExp: {
          get: () => new Predicate("RegExp", options)
        },
        promise: {
          get: () => new Predicate("Promise", options)
        },
        typedArray: {
          get: () => new TypedArrayPredicate("TypedArray", options)
        },
        int8Array: {
          get: () => new TypedArrayPredicate("Int8Array", options)
        },
        uint8Array: {
          get: () => new TypedArrayPredicate("Uint8Array", options)
        },
        uint8ClampedArray: {
          get: () => new TypedArrayPredicate("Uint8ClampedArray", options)
        },
        int16Array: {
          get: () => new TypedArrayPredicate("Int16Array", options)
        },
        uint16Array: {
          get: () => new TypedArrayPredicate("Uint16Array", options)
        },
        int32Array: {
          get: () => new TypedArrayPredicate("Int32Array", options)
        },
        uint32Array: {
          get: () => new TypedArrayPredicate("Uint32Array", options)
        },
        float32Array: {
          get: () => new TypedArrayPredicate("Float32Array", options)
        },
        float64Array: {
          get: () => new TypedArrayPredicate("Float64Array", options)
        },
        arrayBuffer: {
          get: () => new ArrayBufferPredicate("ArrayBuffer", options)
        },
        sharedArrayBuffer: {
          get: () => new ArrayBufferPredicate("SharedArrayBuffer", options)
        },
        dataView: {
          get: () => new DataViewPredicate(options)
        },
        iterable: {
          get: () => new Predicate("Iterable", options)
        },
        any: {
          value: (...predicates3) => new AnyPredicate(predicates3, options)
        }
      });
      return object;
    };
    predicates_default = predicates;
  }
});
var modifiers;
var modifiers_default;
var init_modifiers = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/modifiers.js"() {
    init_predicates();
    modifiers = (object) => {
      Object.defineProperties(object, {
        optional: {
          get: () => predicates_default({}, { optional: true })
        }
      });
      return object;
    };
    modifiers_default = modifiers;
  }
});
var ow;
var _ow;
var dist_default3;
var init_dist5 = __esm({
  "../../node_modules/.pnpm/ow@1.1.1/node_modules/ow/dist/index.js"() {
    init_callsites();
    init_infer_label();
    init_base_predicate();
    init_modifiers();
    init_predicates();
    init_test();
    init_predicates();
    ow = (value, labelOrPredicate, predicate) => {
      if (!isPredicate(labelOrPredicate) && typeof labelOrPredicate !== "string") {
        throw new TypeError(`Expected second argument to be a predicate or a string, got \`${typeof labelOrPredicate}\``);
      }
      if (isPredicate(labelOrPredicate)) {
        const stackFrames = callsites();
        test(value, () => inferLabel(stackFrames), labelOrPredicate);
        return;
      }
      test(value, labelOrPredicate, predicate);
    };
    Object.defineProperties(ow, {
      isValid: {
        value(value, predicate) {
          try {
            test(value, "", predicate);
            return true;
          } catch {
            return false;
          }
        }
      },
      create: {
        value: (labelOrPredicate, predicate) => (value, label) => {
          if (isPredicate(labelOrPredicate)) {
            const stackFrames = callsites();
            test(value, label ?? (() => inferLabel(stackFrames)), labelOrPredicate);
            return;
          }
          test(value, label ?? labelOrPredicate, predicate);
        }
      }
    });
    _ow = predicates_default(modifiers_default(ow));
    dist_default3 = _ow;
  }
});
var dist_exports = {};
__export2(dist_exports, {
  AbortError: () => AbortError,
  CacheError: () => CacheError,
  CancelError: () => CancelError2,
  HTTPError: () => HTTPError,
  MaxRedirectsError: () => MaxRedirectsError,
  Options: () => Options,
  ParseError: () => ParseError,
  ReadError: () => ReadError,
  RequestError: () => RequestError,
  RetryError: () => RetryError,
  TimeoutError: () => TimeoutError,
  TransformHeadersAgent: () => TransformHeadersAgent,
  UploadError: () => UploadError,
  calculateRetryDelay: () => calculate_retry_delay_default,
  create: () => create_default,
  generateRequestId: () => generateRequestId,
  getAgents: () => getAgents,
  got: () => got,
  gotScraping: () => gotScraping,
  hooks: () => hooks,
  isResponseOk: () => isResponseOk,
  parseBody: () => parseBody,
  parseLinkHeader: () => parseLinkHeader,
  publishError: () => publishError,
  publishRedirect: () => publishRedirect,
  publishRequestCreate: () => publishRequestCreate,
  publishRequestStart: () => publishRequestStart,
  publishResponseEnd: () => publishResponseEnd,
  publishResponseStart: () => publishResponseStart,
  publishRetry: () => publishRetry
});
function buildBasicAuthHeader(url2) {
  if (!url2.username && !url2.password) {
    return null;
  }
  const username = decodeURIComponent(url2.username ?? "");
  const password = decodeURIComponent(url2.password ?? "");
  const basic = Buffer.from(`${username}:${password}`).toString("base64");
  return `Basic ${basic}`;
}
async function proxyHook(options) {
  const { context: { proxyUrl } } = options;
  if (proxyUrl) {
    const parsedProxy = new import_node_url3.URL(proxyUrl);
    validateProxyProtocol(parsedProxy.protocol);
    options.agent = await getAgents(parsedProxy, options.https.rejectUnauthorized);
  }
}
function validateProxyProtocol(protocol) {
  const isSupported = protocol === "http:" || protocol === "https:";
  if (!isSupported) {
    throw new ProxyError(`Proxy URL protocol "${protocol}" is not supported. Please use HTTP or HTTPS.`);
  }
}
async function getAgents(parsedProxyUrl, rejectUnauthorized) {
  const headers = {};
  const basic = buildBasicAuthHeader(parsedProxyUrl);
  if (basic) {
    headers.authorization = basic;
    headers["proxy-authorization"] = basic;
  }
  const wrapperOptions = {
    proxyOptions: {
      url: parsedProxyUrl,
      headers,
      // Based on the got https.rejectUnauthorized option
      rejectUnauthorized
    },
    // The sockets won't be reused, no need to keep them
    maxFreeSockets: 0,
    maxEmptySessions: 0
  };
  const nativeOptions = {
    proxy: parsedProxyUrl,
    // The sockets won't be reused, no need to keep them
    maxFreeSockets: 0
  };
  let agent;
  if (parsedProxyUrl.protocol === "https:") {
    let alpnProtocol = "http/1.1";
    try {
      const result = await import_http2_wrapper4.auto.resolveProtocol({
        host: parsedProxyUrl.hostname,
        port: parsedProxyUrl.port,
        rejectUnauthorized,
        ALPNProtocols: ["h2", "http/1.1"],
        servername: parsedProxyUrl.hostname
      });
      alpnProtocol = result.alpnProtocol;
    } catch {
    }
    const proxyIsHttp2 = alpnProtocol === "h2";
    if (proxyIsHttp2) {
      agent = {
        http: new TransformHeadersAgent(new HttpOverHttp2(wrapperOptions)),
        https: new TransformHeadersAgent(new HttpsOverHttp2(wrapperOptions)),
        http2: new Http2OverHttp2(wrapperOptions)
      };
    } else {
      agent = {
        // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
        http: new TransformHeadersAgent(new HttpProxyAgent(nativeOptions)),
        // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
        https: new TransformHeadersAgent(new HttpsProxyAgent(nativeOptions)),
        http2: new Http2OverHttps(wrapperOptions)
      };
    }
  } else {
    agent = {
      http: new TransformHeadersAgent(new HttpRegularProxyAgent(nativeOptions)),
      // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
      https: new TransformHeadersAgent(new HttpsProxyAgent(nativeOptions)),
      http2: new Http2OverHttp(wrapperOptions)
    };
  }
  return agent;
}
function mergeHeaders(original, overrides) {
  const fixedHeaders = /* @__PURE__ */ new Map();
  for (const entry of Object.entries(original)) {
    fixedHeaders.set(entry[0].toLowerCase(), entry);
  }
  for (const entry of Object.entries(overrides)) {
    fixedHeaders.set(entry[0].toLowerCase(), entry);
  }
  return Object.fromEntries(fixedHeaders.values());
}
async function browserHeadersHook(options) {
  const { context } = options;
  const {
    headerGeneratorOptions,
    useHeaderGenerator,
    headerGenerator,
    proxyUrl
  } = context;
  const sessionData = context.sessionData;
  if (!useHeaderGenerator || !headerGenerator)
    return;
  const createHeadersPair = /* @__PURE__ */ __name(() => ({
    1: headerGenerator.getHeaders({
      httpVersion: "1",
      ...headerGeneratorOptions
    }),
    2: headerGenerator.getHeaders({
      httpVersion: "2",
      ...headerGeneratorOptions
    })
  }), "createHeadersPair");
  const url2 = options.url;
  const resolveProtocol = getResolveProtocolFunction(options, proxyUrl, sessionData);
  let alpnProtocol;
  if (url2.protocol === "https:") {
    alpnProtocol = (await resolveProtocol({
      host: url2.hostname,
      port: url2.port || 443,
      rejectUnauthorized: false,
      ALPNProtocols: ["h2", "http/1.1"],
      servername: url2.hostname
    })).alpnProtocol;
  }
  const httpVersion = alpnProtocol === "h2" ? "2" : "1";
  let generatedHeaders;
  if (sessionData) {
    if (!sessionData.headers) {
      sessionData.headers = createHeadersPair();
    }
    generatedHeaders = sessionData.headers[httpVersion];
  } else {
    generatedHeaders = headerGenerator.getHeaders({
      httpVersion,
      ...headerGeneratorOptions
    });
  }
  if (!options.decompress) {
    for (const key of Object.keys(generatedHeaders)) {
      if (key.toLowerCase() === "accept-encoding") {
        delete generatedHeaders[key];
      }
    }
  }
  options.headers = mergeHeaders(generatedHeaders, options.headers);
}
function customOptionsHook(raw, options) {
  const typedRaw = raw;
  const names = [
    "proxyUrl",
    "headerGeneratorOptions",
    "useHeaderGenerator",
    "insecureHTTPParser",
    "sessionToken"
  ];
  for (const name2 of names) {
    if (name2 in raw) {
      options.context[name2] = typedRaw[name2];
      delete typedRaw[name2];
    }
  }
}
function http2Hook(options) {
  const { proxyUrl, sessionData } = options.context;
  if (options.http2 && options.url.protocol !== "http:") {
    options.request = (url2, requestOptions, callback) => {
      const typedRequestOptions = requestOptions;
      if (proxyUrl) {
        typedRequestOptions.resolveProtocol = createResolveProtocol(
          proxyUrl,
          sessionData,
          Math.min(options?.timeout?.connect ?? 6e4, options?.timeout?.request ?? 6e4)
        );
      }
      return (0, import_http2_wrapper5.auto)(url2, typedRequestOptions, callback);
    };
  } else {
    options.request = void 0;
  }
}
function insecureParserHook(options) {
  if (options.context.insecureHTTPParser !== void 0) {
    options._unixOptions = {
      // @ts-expect-error Private use
      ...options._unixOptions,
      insecureHTTPParser: options.context.insecureHTTPParser
    };
  }
}
function optionsValidationHandler(options) {
  dist_default3(options, dist_default3.object.partialShape(validationSchema));
}
function tlsHook(options) {
  const { https: https32 } = options;
  if (https32.ciphers || https32.signatureAlgorithms || https32.minVersion || https32.maxVersion) {
    return;
  }
  const browser = getBrowser(getUserAgent(options.headers)) ?? "firefox";
  https32.ciphers = knownCiphers[browser];
  https32.signatureAlgorithms = sigalgs[browser];
  https32.ecdhCurve = ecdhCurve[browser];
  https32.minVersion = minVersion[browser];
  https32.maxVersion = maxVersion[browser];
  options._unixOptions = {
    // @ts-expect-error Private use
    ...options._unixOptions,
    secureOptions: secureOptions[browser],
    requestOCSP: requestOCSP[browser]
  };
}
var import_http2_wrapper2;
var import_http2_wrapper3;
var import_http2_wrapper4;
var import_http2_wrapper5;
var __defProp22;
var __defNormalProp;
var __name;
var __publicField;
var _WrappedAgent;
var WrappedAgent;
var _storeHeader;
var generator;
var _TransformHeadersAgent;
var TransformHeadersAgent;
var initialize;
var getPort;
var _HttpRegularProxyAgent;
var HttpRegularProxyAgent;
var _HttpProxyAgent;
var HttpProxyAgent;
var _HttpsProxyAgent;
var HttpsProxyAgent;
var HttpOverHttp2;
var HttpsOverHttp2;
var Http2OverHttp2;
var Http2OverHttps;
var Http2OverHttp;
var _ProxyError;
var ProxyError;
var connect;
var createCaches;
var defaults2;
var createResolveProtocol;
var getResolveProtocolFunction;
var onResponse;
var fixDecompress;
var validationSchema;
var refererHook;
var _Storage;
var Storage;
var storage;
var sessionDataHook;
var supportsFirefoxFully;
var SSL_OP_TLSEXT_PADDING;
var SSL_OP_NO_ENCRYPT_THEN_MAC;
var ecdhCurve;
var sigalgs;
var knownCiphers;
var minVersion;
var maxVersion;
var secureOptions;
var requestOCSP;
var getUserAgent;
var getBrowser;
var handlers;
var beforeRequest;
var init2;
var beforeRedirect;
var gotScraping;
var setupDecodeURI;
var hooks;
var init_dist6 = __esm({
  "../../node_modules/.pnpm/got-scraping@4.1.3/node_modules/got-scraping/dist/index.js"() {
    init_source3();
    init_header_generator();
    init_header_generator();
    import_http2_wrapper2 = __toESM2(require_source(), 1);
    import_http2_wrapper3 = __toESM2(require_source(), 1);
    init_quick_lru();
    import_http2_wrapper4 = __toESM2(require_source(), 1);
    init_mimic_response();
    import_http2_wrapper5 = __toESM2(require_source(), 1);
    init_dist5();
    init_source3();
    __defProp22 = Object.defineProperty;
    __defNormalProp = (obj, key, value) => key in obj ? __defProp22(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
    __name = (target, value) => __defProp22(target, "name", { value, configurable: true });
    __publicField = (obj, key, value) => {
      __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
      return value;
    };
    _WrappedAgent = class _WrappedAgent2 {
      constructor(agent) {
        __publicField(this, "agent");
        this.agent = agent;
      }
      addRequest(request, options) {
        this.agent.addRequest(request, options);
      }
      get keepAlive() {
        return this.agent.keepAlive;
      }
      get maxSockets() {
        return this.agent.maxSockets;
      }
      get options() {
        return this.agent.options;
      }
      get defaultPort() {
        return this.agent.defaultPort;
      }
      get protocol() {
        return this.agent.protocol;
      }
      destroy() {
        this.agent.destroy();
      }
      // Let's implement `HttpAgent` so we don't have to
      // type `WrappedAgent as unknown as HttpAgent`
      get maxFreeSockets() {
        return this.agent.maxFreeSockets;
      }
      get maxTotalSockets() {
        return this.agent.maxTotalSockets;
      }
      get freeSockets() {
        return this.agent.freeSockets;
      }
      get sockets() {
        return this.agent.sockets;
      }
      get requests() {
        return this.agent.requests;
      }
      on(eventName, listener) {
        this.agent.on(eventName, listener);
        return this;
      }
      once(eventName, listener) {
        this.agent.once(eventName, listener);
        return this;
      }
      off(eventName, listener) {
        this.agent.off(eventName, listener);
        return this;
      }
      addListener(eventName, listener) {
        this.agent.addListener(eventName, listener);
        return this;
      }
      removeListener(eventName, listener) {
        this.agent.removeListener(eventName, listener);
        return this;
      }
      removeAllListeners(eventName) {
        this.agent.removeAllListeners(eventName);
        return this;
      }
      setMaxListeners(n22) {
        this.agent.setMaxListeners(n22);
        return this;
      }
      getMaxListeners() {
        return this.agent.getMaxListeners();
      }
      listeners(eventName) {
        return this.agent.listeners(eventName);
      }
      rawListeners(eventName) {
        return this.agent.rawListeners(eventName);
      }
      emit(eventName, ...args) {
        return this.agent.emit(eventName, ...args);
      }
      eventNames() {
        return this.agent.eventNames();
      }
      listenerCount(eventName) {
        return this.agent.listenerCount(eventName);
      }
      prependListener(eventName, listener) {
        this.agent.prependListener(eventName, listener);
        return this;
      }
      prependOnceListener(eventName, listener) {
        this.agent.prependOnceListener(eventName, listener);
        return this;
      }
      createConnection(options, callback) {
        return this.agent.createConnection(options, callback);
      }
      keepSocketAlive(socket) {
        this.agent.keepSocketAlive(socket);
      }
      reuseSocket(socket, request) {
        this.agent.reuseSocket(socket, request);
      }
      getName(options) {
        return this.agent.getName(options);
      }
    };
    __name(_WrappedAgent, "WrappedAgent");
    WrappedAgent = _WrappedAgent;
    ({ _storeHeader } = import_node_http4.OutgoingMessage.prototype);
    generator = new HeaderGenerator();
    _TransformHeadersAgent = class _TransformHeadersAgent2 extends WrappedAgent {
      // Rewritten from https://github.com/nodejs/node/blob/533cafcf7e3ab72e98a2478bc69aedfdf06d3a5e/lib/_http_outgoing.js#L442-L479
      /**
       * Transforms the request via header normalization.
       */
      transformRequest(request, { sortHeaders }) {
        const headers = {};
        const hasConnection = request.hasHeader("connection");
        const hasContentLength = request.hasHeader("content-length");
        const hasTransferEncoding = request.hasHeader("transfer-encoding");
        const hasTrailer = request.hasHeader("trailer");
        const keys = request.getHeaderNames();
        for (const key of keys) {
          if (key.toLowerCase().startsWith("x-")) {
            headers[key] = request.getHeader(key);
          } else {
            headers[this.toPascalCase(key)] = request.getHeader(key);
          }
          if (sortHeaders) {
            request.removeHeader(key);
          }
        }
        const typedRequest = request;
        if (!hasConnection) {
          const shouldSendKeepAlive = request.shouldKeepAlive && (hasContentLength || request.useChunkedEncodingByDefault || typedRequest.agent);
          if (shouldSendKeepAlive) {
            headers.Connection = "keep-alive";
          } else {
            headers.Connection = "close";
          }
        }
        if (!hasContentLength && !hasTransferEncoding) {
          if (!hasTrailer && !typedRequest._removedContLen && typeof typedRequest._contentLength === "number") {
            headers["Content-Length"] = typedRequest._contentLength;
          } else if (!typedRequest._removedTE) {
            headers["Transfer-Encoding"] = "chunked";
          }
        }
        const transformedHeaders = sortHeaders ? generator.orderHeaders(headers) : headers;
        for (const [key, value] of Object.entries(transformedHeaders)) {
          request.setHeader(key, value);
        }
      }
      addRequest(request, options) {
        const typedRequest = request;
        typedRequest._storeHeader = (...args) => {
          this.transformRequest(request, { sortHeaders: true });
          return _storeHeader.call(request, ...args);
        };
        options.secureEndpoint = options.protocol === "https:";
        return super.addRequest(request, options);
      }
      toPascalCase(header2) {
        return header2.split("-").map((part) => {
          return part[0].toUpperCase() + part.slice(1).toLowerCase();
        }).join("-");
      }
    };
    __name(_TransformHeadersAgent, "TransformHeadersAgent");
    TransformHeadersAgent = _TransformHeadersAgent;
    __name(buildBasicAuthHeader, "buildBasicAuthHeader");
    initialize = /* @__PURE__ */ __name((self2, options) => {
      self2.proxy = typeof options.proxy === "string" ? new import_node_url4.URL(options.proxy) : options.proxy;
    }, "initialize");
    getPort = /* @__PURE__ */ __name((url2) => {
      if (url2.port !== "") {
        return Number(url2.port);
      }
      if (url2.protocol === "http:") {
        return 80;
      }
      if (url2.protocol === "https:") {
        return 443;
      }
      throw new Error(`Unexpected protocol: ${url2.protocol}`);
    }, "getPort");
    _HttpRegularProxyAgent = class _HttpRegularProxyAgent2 extends import_node_http5.default.Agent {
      constructor(options) {
        super(options);
        __publicField(this, "proxy");
        initialize(this, options);
      }
      addRequest(request, options) {
        if (options.socketPath) {
          super.addRequest(request, options);
          return;
        }
        let hostport = `${options.host}:${options.port}`;
        if ((0, import_node_net3.isIPv6)(options.host)) {
          hostport = `[${options.host}]:${options.port}`;
        }
        const url2 = new import_node_url4.URL(`${request.protocol}//${hostport}${request.path}`);
        options = {
          ...options,
          host: this.proxy.hostname,
          port: getPort(this.proxy)
        };
        request.path = url2.href;
        const basic = buildBasicAuthHeader(this.proxy);
        if (basic) {
          request.setHeader("proxy-authorization", basic);
        }
        super.addRequest(request, options);
      }
    };
    __name(_HttpRegularProxyAgent, "HttpRegularProxyAgent");
    HttpRegularProxyAgent = _HttpRegularProxyAgent;
    _HttpProxyAgent = class _HttpProxyAgent2 extends import_node_http5.default.Agent {
      constructor(options) {
        super(options);
        __publicField(this, "proxy");
        initialize(this, options);
      }
      // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
      createConnection(options, callback) {
        if (options.path) {
          super.createConnection(options, callback);
          return;
        }
        const fn3 = this.proxy.protocol === "https:" ? import_node_https3.default.request : import_node_http5.default.request;
        let hostport = `${options.host}:${options.port}`;
        if ((0, import_node_net3.isIPv6)(options.host)) {
          hostport = `[${options.host}]:${options.port}`;
        }
        const headers = {
          host: hostport
        };
        const basic = buildBasicAuthHeader(this.proxy);
        if (basic) {
          headers["proxy-authorization"] = basic;
          headers.authorization = basic;
        }
        const connectRequest = fn3(this.proxy, {
          method: "CONNECT",
          headers,
          path: hostport,
          agent: false,
          rejectUnauthorized: false
        });
        connectRequest.once("connect", (response, socket, head) => {
          if (head.length > 0 || response.statusCode !== 200) {
            socket.destroy();
            const error = new Error(`The proxy responded with ${response.statusCode} ${response.statusMessage}: ${head.toString()}`);
            callback(error);
            return;
          }
          if (options.protocol === "https:") {
            callback(void 0, import_node_tls3.default.connect({
              ...options,
              socket
            }));
            return;
          }
          callback(void 0, socket);
        });
        connectRequest.once("error", (error) => {
          callback(error);
        });
        connectRequest.end();
      }
    };
    __name(_HttpProxyAgent, "HttpProxyAgent");
    HttpProxyAgent = _HttpProxyAgent;
    _HttpsProxyAgent = class _HttpsProxyAgent2 extends import_node_https3.default.Agent {
      constructor(options) {
        super(options);
        __publicField(this, "proxy");
        initialize(this, options);
      }
      // @ts-expect-error New @types/node patch has narrower types than the originally exported got-scraping interface
      createConnection(options, callback) {
        HttpProxyAgent.prototype.createConnection.call(this, options, callback);
      }
    };
    __name(_HttpsProxyAgent, "HttpsProxyAgent");
    HttpsProxyAgent = _HttpsProxyAgent;
    ({
      HttpOverHttp2,
      HttpsOverHttp2,
      Http2OverHttp2,
      Http2OverHttps,
      Http2OverHttp
    } = import_http2_wrapper4.default.proxies);
    __name(proxyHook, "proxyHook");
    _ProxyError = class _ProxyError2 extends Error {
    };
    __name(_ProxyError, "ProxyError");
    ProxyError = _ProxyError;
    __name(validateProxyProtocol, "validateProxyProtocol");
    __name(getAgents, "getAgents");
    connect = /* @__PURE__ */ __name(async (proxyUrl, options, callback) => new Promise((resolve2, reject) => {
      let host = `${options.host}:${options.port}`;
      if ((0, import_node_net2.isIPv6)(options.host)) {
        host = `[${options.host}]:${options.port}`;
      }
      void (async () => {
        try {
          const headers = {
            host
          };
          const url2 = new import_node_url2.URL(proxyUrl);
          const basic = buildBasicAuthHeader(url2);
          if (basic) {
            headers.authorization = basic;
            headers["proxy-authorization"] = basic;
          }
          const request = await (0, import_http2_wrapper3.auto)(url2, {
            method: "CONNECT",
            headers,
            path: host,
            // TODO: this property doesn't exist according to the types
            pathname: host,
            rejectUnauthorized: false
          });
          request.end();
          request.once("error", reject);
          request.once("connect", (response, socket, head) => {
            if (response.statusCode !== 200 || head.length > 0) {
              reject(new ProxyError(`Proxy responded with ${response.statusCode} ${response.statusMessage}: ${head.length} bytes.

Below is the first 100 bytes of the proxy response body:
${head.toString("utf8", 0, 100)}`, { cause: head.toString("utf8") }));
              socket.destroy();
              return;
            }
            const tlsSocket = import_node_tls2.default.connect({
              ...options,
              socket
            }, callback);
            resolve2(tlsSocket);
          });
        } catch (error) {
          reject(error);
        }
      })();
    }), "connect");
    createCaches = /* @__PURE__ */ __name(() => ({
      protocolCache: new QuickLRU({ maxSize: 1e3 }),
      resolveAlpnQueue: /* @__PURE__ */ new Map()
    }), "createCaches");
    defaults2 = createCaches();
    createResolveProtocol = /* @__PURE__ */ __name((proxyUrl, sessionData, timeout) => {
      let { protocolCache, resolveAlpnQueue } = defaults2;
      if (sessionData) {
        if (!sessionData.protocolCache || !sessionData.resolveAlpnQueue) {
          Object.assign(sessionData, createCaches());
        }
        protocolCache = sessionData.protocolCache;
        resolveAlpnQueue = sessionData.resolveAlpnQueue;
      }
      const connectWithProxy = /* @__PURE__ */ __name(async (pOptions, pCallback) => {
        return connect(proxyUrl, pOptions, pCallback);
      }, "connectWithProxy");
      const resolveProtocol = import_http2_wrapper3.auto.createResolveProtocol(
        protocolCache,
        resolveAlpnQueue,
        connectWithProxy
      );
      return async (...args) => resolveProtocol({
        ...args[0],
        timeout
      });
    }, "createResolveProtocol");
    __name(mergeHeaders, "mergeHeaders");
    getResolveProtocolFunction = /* @__PURE__ */ __name((options, proxyUrl, sessionData) => {
      const { resolveProtocol } = options;
      if (resolveProtocol) {
        return resolveProtocol;
      }
      if (proxyUrl) {
        return createResolveProtocol(proxyUrl, sessionData, Math.min(options?.timeout?.connect ?? 6e4, options?.timeout?.request ?? 6e4));
      }
      return (...args) => import_http2_wrapper2.default.auto.resolveProtocol({
        ...args[0],
        timeout: Math.min(options?.timeout?.connect ?? 6e4, options?.timeout?.request ?? 6e4)
      });
    }, "getResolveProtocolFunction");
    __name(browserHeadersHook, "browserHeadersHook");
    __name(customOptionsHook, "customOptionsHook");
    onResponse = /* @__PURE__ */ __name((response, propagate) => {
      const encoding = response.headers["content-encoding"]?.toLowerCase();
      const zlibOptions2 = {
        flush: import_node_zlib2.default.constants.Z_SYNC_FLUSH,
        finishFlush: import_node_zlib2.default.constants.Z_SYNC_FLUSH
      };
      const useDecompressor = /* @__PURE__ */ __name((decompressor) => {
        delete response.headers["content-encoding"];
        const result = new import_node_stream5.PassThrough({
          autoDestroy: false,
          destroy(error, callback) {
            response.destroy();
            callback(error);
          }
        });
        decompressor.once("error", (error) => {
          result.destroy(error);
        });
        response.pipe(decompressor).pipe(result);
        propagate(mimicResponse(response, result));
      }, "useDecompressor");
      if (encoding === "gzip" || encoding === "x-gzip") {
        useDecompressor(import_node_zlib2.default.createGunzip(zlibOptions2));
      } else if (encoding === "deflate" || encoding === "x-deflate") {
        let read2 = false;
        response.once("data", (chunk2) => {
          read2 = true;
          response.unshift(chunk2);
          const decompressor = (chunk2[0] & 15) === 8 ? import_node_zlib2.default.createInflate() : import_node_zlib2.default.createInflateRaw();
          useDecompressor(decompressor);
        });
        response.once("end", () => {
          if (!read2) {
            propagate(response);
          }
        });
      } else if (encoding === "br") {
        let read2 = false;
        response.once("data", (chunk2) => {
          read2 = true;
          response.unshift(chunk2);
          const decompressor = import_node_zlib2.default.createBrotliDecompress();
          useDecompressor(decompressor);
        });
        response.once("end", () => {
          if (!read2) {
            propagate(response);
          }
        });
      } else {
        propagate(response);
      }
    }, "onResponse");
    fixDecompress = /* @__PURE__ */ __name((options, next) => {
      const result = next(options);
      result.on("request", (request) => {
        const emit = request.emit.bind(request);
        request.emit = (event, ...args) => {
          if (event === "response" && options.decompress) {
            const response = args[0];
            const emitted = request.listenerCount("response") !== 0;
            onResponse(response, (fixedResponse) => {
              emit("response", fixedResponse);
            });
            return emitted;
          }
          return emit(event, ...args);
        };
      });
      return result;
    }, "fixDecompress");
    __name(http2Hook, "http2Hook");
    __name(insecureParserHook, "insecureParserHook");
    validationSchema = {
      proxyUrl: dist_default3.optional.string.url,
      useHeaderGenerator: dist_default3.optional.boolean,
      headerGeneratorOptions: dist_default3.optional.object,
      insecureHTTPParser: dist_default3.optional.boolean,
      sessionToken: dist_default3.optional.object
    };
    __name(optionsValidationHandler, "optionsValidationHandler");
    refererHook = /* @__PURE__ */ __name((options, response) => {
      const url2 = options.url;
      const resUrl = new import_node_url5.URL(response.url);
      const policy = response.headers["referer-policy"] || "strict-origin-when-cross-origin";
      if (policy === "no-referrer") {
        delete options.headers.referer;
      } else if (policy === "no-referrer-when-downgrade") {
        if (resUrl.protocol === "https:" && url2.protocol === "http:") {
          delete options.headers.referer;
        } else {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        }
      } else if (policy === "origin") {
        options.headers.referer = resUrl.origin;
      } else if (policy === "origin-when-cross-origin") {
        if (url2.origin === resUrl.origin) {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        } else {
          options.headers.referer = resUrl.origin;
        }
      } else if (policy === "same-origin") {
        if (url2.origin === resUrl.origin) {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        } else {
          delete options.headers.referer;
        }
      } else if (policy === "strict-origin") {
        if (resUrl.protocol === "https:" && url2.protocol === "http:") {
          delete options.headers.referer;
        } else {
          options.headers.referer = resUrl.origin;
        }
      } else if (policy === "strict-origin-when-cross-origin") {
        if (url2.origin === resUrl.origin) {
          options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
        } else if (resUrl.protocol === "https:" && url2.protocol === "http:") {
          delete options.headers.referer;
        } else {
          options.headers.referer = resUrl.origin;
        }
      } else if (policy === "unsafe-url") {
        options.headers.referer = `${resUrl.origin}${resUrl.pathname}${resUrl.search}`;
      }
    }, "refererHook");
    _Storage = class _Storage2 {
      constructor() {
        __publicField(this, "storage");
        this.storage = /* @__PURE__ */ new WeakMap();
      }
      get(token2) {
        if (!token2) {
          return;
        }
        if (!this.storage.has(token2)) {
          this.storage.set(token2, {});
        }
        return this.storage.get(token2);
      }
    };
    __name(_Storage, "Storage");
    Storage = _Storage;
    storage = new Storage();
    sessionDataHook = /* @__PURE__ */ __name((options) => {
      options.context.sessionData = storage.get(options.context.sessionToken);
    }, "sessionDataHook");
    supportsFirefoxFully = Number(process.versions.node.split(".")[0]) >= 17;
    SSL_OP_TLSEXT_PADDING = 1 << 4;
    SSL_OP_NO_ENCRYPT_THEN_MAC = 1 << 19;
    ecdhCurve = {
      firefox: (supportsFirefoxFully ? [
        "X25519",
        "prime256v1",
        "secp384r1",
        "secp521r1",
        "ffdhe2048",
        "ffdhe3072"
      ] : [
        "X25519",
        "prime256v1",
        "secp384r1",
        "secp521r1"
      ]).join(":"),
      chrome: [
        "X25519",
        "prime256v1",
        "secp384r1"
      ].join(":"),
      safari: [
        "X25519",
        "prime256v1",
        "secp384r1",
        "secp521r1"
      ].join(":")
    };
    sigalgs = {
      firefox: [
        "ecdsa_secp256r1_sha256",
        "ecdsa_secp384r1_sha384",
        "ecdsa_secp521r1_sha512",
        "rsa_pss_rsae_sha256",
        "rsa_pss_rsae_sha384",
        "rsa_pss_rsae_sha512",
        "rsa_pkcs1_sha256",
        "rsa_pkcs1_sha384",
        "rsa_pkcs1_sha512",
        "ECDSA+SHA1",
        "rsa_pkcs1_sha1"
      ].join(":"),
      chrome: [
        "ecdsa_secp256r1_sha256",
        "rsa_pss_rsae_sha256",
        "rsa_pkcs1_sha256",
        "ecdsa_secp384r1_sha384",
        "rsa_pss_rsae_sha384",
        "rsa_pkcs1_sha384",
        "rsa_pss_rsae_sha512",
        "rsa_pkcs1_sha512"
      ].join(":"),
      safari: [
        "ecdsa_secp256r1_sha256",
        "rsa_pss_rsae_sha256",
        "rsa_pkcs1_sha256",
        "ecdsa_secp384r1_sha384",
        "ECDSA+SHA1",
        "rsa_pss_rsae_sha384",
        "rsa_pkcs1_sha384",
        "rsa_pss_rsae_sha512",
        "rsa_pkcs1_sha512",
        "RSA+SHA1"
      ].join(":")
    };
    knownCiphers = {
      chrome: [
        // Chrome v92
        "TLS_AES_128_GCM_SHA256",
        "TLS_AES_256_GCM_SHA384",
        "TLS_CHACHA20_POLY1305_SHA256",
        "ECDHE-ECDSA-AES128-GCM-SHA256",
        "ECDHE-RSA-AES128-GCM-SHA256",
        "ECDHE-ECDSA-AES256-GCM-SHA384",
        "ECDHE-RSA-AES256-GCM-SHA384",
        "ECDHE-ECDSA-CHACHA20-POLY1305",
        "ECDHE-RSA-CHACHA20-POLY1305",
        // Legacy:
        "ECDHE-RSA-AES128-SHA",
        "ECDHE-RSA-AES256-SHA",
        "AES128-GCM-SHA256",
        "AES256-GCM-SHA384",
        "AES128-SHA",
        "AES256-SHA"
      ].join(":"),
      firefox: [
        // Firefox v91
        "TLS_AES_128_GCM_SHA256",
        "TLS_CHACHA20_POLY1305_SHA256",
        "TLS_AES_256_GCM_SHA384",
        "ECDHE-ECDSA-AES128-GCM-SHA256",
        "ECDHE-RSA-AES128-GCM-SHA256",
        "ECDHE-ECDSA-CHACHA20-POLY1305",
        "ECDHE-RSA-CHACHA20-POLY1305",
        "ECDHE-ECDSA-AES256-GCM-SHA384",
        "ECDHE-RSA-AES256-GCM-SHA384",
        // Legacy:
        "ECDHE-ECDSA-AES256-SHA",
        "ECDHE-ECDSA-AES128-SHA",
        "ECDHE-RSA-AES128-SHA",
        "ECDHE-RSA-AES256-SHA",
        "AES128-GCM-SHA256",
        "AES256-GCM-SHA384",
        "AES128-SHA",
        "AES256-SHA",
        "DES-CBC3-SHA"
      ].join(":"),
      safari: [
        // Safari v14
        "TLS_AES_128_GCM_SHA256",
        "TLS_AES_256_GCM_SHA384",
        "TLS_CHACHA20_POLY1305_SHA256",
        "ECDHE-ECDSA-AES256-GCM-SHA384",
        "ECDHE-ECDSA-AES128-GCM-SHA256",
        "ECDHE-ECDSA-CHACHA20-POLY1305",
        "ECDHE-RSA-AES256-GCM-SHA384",
        "ECDHE-RSA-AES128-GCM-SHA256",
        "ECDHE-RSA-CHACHA20-POLY1305",
        // Legacy:
        "ECDHE-ECDSA-AES256-SHA384",
        "ECDHE-ECDSA-AES128-SHA256",
        "ECDHE-ECDSA-AES256-SHA",
        "ECDHE-ECDSA-AES128-SHA",
        "ECDHE-RSA-AES256-SHA384",
        "ECDHE-RSA-AES128-SHA256",
        "ECDHE-RSA-AES256-SHA",
        "ECDHE-RSA-AES128-SHA",
        "AES256-GCM-SHA384",
        "AES128-GCM-SHA256",
        "AES256-SHA256",
        "AES128-SHA256",
        "AES256-SHA",
        "AES128-SHA",
        "ECDHE-ECDSA-DES-CBC3-SHA",
        "ECDHE-RSA-DES-CBC3-SHA",
        "DES-CBC3-SHA"
      ].join(":")
    };
    minVersion = {
      firefox: "TLSv1.2",
      chrome: "TLSv1",
      safari: "TLSv1.2"
    };
    maxVersion = {
      firefox: "TLSv1.3",
      chrome: "TLSv1.3",
      safari: "TLSv1.3"
    };
    secureOptions = {
      firefox: SSL_OP_TLSEXT_PADDING | SSL_OP_NO_ENCRYPT_THEN_MAC,
      chrome: SSL_OP_TLSEXT_PADDING | SSL_OP_NO_ENCRYPT_THEN_MAC,
      safari: SSL_OP_TLSEXT_PADDING | SSL_OP_NO_ENCRYPT_THEN_MAC
    };
    requestOCSP = {
      firefox: true,
      chrome: true,
      safari: true
    };
    getUserAgent = /* @__PURE__ */ __name((headers) => {
      for (const [header2, value] of Object.entries(headers)) {
        if (header2.toLowerCase() === "user-agent") {
          return value;
        }
      }
      return void 0;
    }, "getUserAgent");
    getBrowser = /* @__PURE__ */ __name((userAgent) => {
      if (!userAgent) {
        return;
      }
      let browser;
      if (userAgent.includes("Firefox")) {
        browser = "firefox";
      } else if (userAgent.includes("Chrome")) {
        browser = "chrome";
      } else {
        browser = "safari";
      }
      return browser;
    }, "getBrowser");
    __name(tlsHook, "tlsHook");
    handlers = [
      fixDecompress
    ];
    beforeRequest = [
      insecureParserHook,
      sessionDataHook,
      http2Hook,
      proxyHook,
      browserHeadersHook,
      tlsHook
    ];
    init2 = [
      optionsValidationHandler,
      customOptionsHook
    ];
    beforeRedirect = [
      refererHook
    ];
    gotScraping = got.extend({
      handlers,
      mutableDefaults: true,
      // Most of the new browsers use HTTP/2
      http2: true,
      https: {
        // In contrast to browsers, we don't usually do login operations.
        // We want the content.
        rejectUnauthorized: false
      },
      // Don't fail on 404
      throwHttpErrors: false,
      timeout: { request: 6e4 },
      retry: { limit: 0 },
      headers: {
        "user-agent": void 0
      },
      context: {
        headerGenerator: new HeaderGenerator(),
        useHeaderGenerator: true,
        insecureHTTPParser: true
      },
      agent: {
        http: new TransformHeadersAgent(import_node_http3.default.globalAgent),
        https: new TransformHeadersAgent(import_node_https2.default.globalAgent)
      },
      hooks: {
        init: init2,
        beforeRequest,
        beforeRedirect
      }
    });
    setupDecodeURI = /* @__PURE__ */ __name(() => {
      const { set } = Object.getOwnPropertyDescriptor(Options.prototype, "url");
      Object.defineProperty(Options.prototype, "url", {
        set(value) {
          const originalDecodeURI = global.decodeURI;
          global.decodeURI = (str) => str;
          try {
            return set.call(this, value);
          } finally {
            global.decodeURI = originalDecodeURI;
          }
        }
      });
    }, "setupDecodeURI");
    setupDecodeURI();
    hooks = {
      init: init2,
      beforeRequest,
      beforeRedirect,
      fixDecompress,
      insecureParserHook,
      sessionDataHook,
      http2Hook,
      proxyHook,
      browserHeadersHook,
      tlsHook,
      optionsValidationHandler,
      customOptionsHook,
      refererHook
    };
  }
});
var require_gotScraping = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/gotScraping.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.gotScraping = void 0;
    var gotScraping2 = (async (...args) => {
      exports2.gotScraping = gotScraping2 = (await Promise.resolve().then(() => (init_dist6(), dist_exports))).gotScraping;
      return gotScraping2(...args);
    });
    exports2.gotScraping = gotScraping2;
  }
});
var require_extract_urls = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/extract-urls.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.downloadListOfUrls = downloadListOfUrls;
    exports2.extractUrls = extractUrls;
    exports2.tryAbsoluteURL = tryAbsoluteURL2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var general_1 = require_general2();
    var gotScraping_1 = require_gotScraping();
    async function downloadListOfUrls(options) {
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        url: ow_1.default.string.url,
        encoding: ow_1.default.optional.string,
        urlRegExp: ow_1.default.optional.regExp,
        proxyUrl: ow_1.default.optional.string
      }));
      const { url: url2, encoding = "utf8", urlRegExp = general_1.URL_NO_COMMAS_REGEX, proxyUrl } = options;
      const match = url2.match(/^(https:\/\/docs\.google\.com\/spreadsheets\/d\/(?:\w|-)+)\/?/);
      let fixedUrl = url2;
      if (match) {
        fixedUrl = `${match[1]}/gviz/tq?tqx=out:csv`;
      }
      const { body: string } = await (0, gotScraping_1.gotScraping)({ url: fixedUrl, encoding, proxyUrl });
      return extractUrls({ string, urlRegExp });
    }
    function extractUrls(options) {
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        string: ow_1.default.string,
        urlRegExp: ow_1.default.optional.regExp
      }));
      const lines = options.string.split("\n");
      const result = [];
      const urlRegExp = options.urlRegExp ?? general_1.URL_NO_COMMAS_REGEX;
      for (const line of lines) {
        result.push(...line.match(urlRegExp) ?? []);
      }
      return result;
    }
    function tryAbsoluteURL2(href, baseUrl) {
      try {
        return new URL(href, baseUrl).href;
      } catch {
        return void 0;
      }
    }
  }
});
var require_cheerio2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/cheerio.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.htmlToText = htmlToText;
    exports2.extractUrlsFromCheerio = extractUrlsFromCheerio;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var cheerio = tslib_1.__importStar(require_lib12());
    var extract_urls_1 = require_extract_urls();
    var SKIP_TAGS_REGEX = /^(script|style|canvas|svg|noscript)$/i;
    var BLOCK_TAGS_REGEX = /^(p|h1|h2|h3|h4|h5|h6|ol|ul|li|pre|address|blockquote|dl|div|fieldset|form|table|tr|select|option)$/i;
    function htmlToText(htmlOrCheerioElement) {
      if (!htmlOrCheerioElement)
        return "";
      const $2 = typeof htmlOrCheerioElement === "function" ? htmlOrCheerioElement : cheerio.load(htmlOrCheerioElement, { decodeEntities: true });
      let text = "";
      const process42 = (elems) => {
        const len = elems ? elems.length : 0;
        for (let i22 = 0; i22 < len; i22++) {
          const elem = elems[i22];
          if (elem.type === "text") {
            let compr;
            if (elem.parent && elem.parent.tagName === "pre")
              compr = elem.data;
            else
              compr = elem.data.replace(/\s+/g, " ");
            if (compr.startsWith(" ") && /(^|\s)$/.test(text))
              compr = compr.substring(1);
            text += compr;
          } else if (elem.type === "comment" || SKIP_TAGS_REGEX.test(elem.tagName)) {
          } else if (elem.tagName === "br") {
            text += "\n";
          } else if (elem.tagName === "td") {
            process42(elem.children);
            text += "	";
          } else {
            const isBlockTag = BLOCK_TAGS_REGEX.test(elem.tagName);
            if (isBlockTag && !/(^|\n)$/.test(text))
              text += "\n";
            process42(elem.children);
            if (isBlockTag && !text.endsWith("\n"))
              text += "\n";
          }
        }
      };
      const $body = $2("body");
      process42($body.length > 0 ? $body : $2.root());
      return text.trim();
    }
    function extractUrlsFromCheerio($2, selector = "a", baseUrl = "") {
      const base = $2("base").attr("href");
      const absoluteBaseUrl = base && (0, extract_urls_1.tryAbsoluteURL)(base, baseUrl);
      if (absoluteBaseUrl) {
        baseUrl = absoluteBaseUrl;
      }
      return $2(selector).map((_i2, el) => $2(el).attr("href")).get().filter(Boolean).map((href) => {
        const isHrefAbsolute = /^[a-z][a-z0-9+.-]*:/.test(href);
        if (!isHrefAbsolute && !baseUrl) {
          throw new Error(`An extracted URL: ${href} is relative and baseUrl is not set. Provide a baseUrl to automatically resolve relative URLs.`);
        }
        return baseUrl ? (0, extract_urls_1.tryAbsoluteURL)(href, baseUrl) : href;
      }).filter(Boolean);
    }
  }
});
var require_chunk = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/chunk.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.chunk = chunk2;
    function chunk2(array, chunkSize) {
      if (!Array.isArray(array))
        throw new TypeError("entries must be an array.");
      if (!Number.isInteger(chunkSize))
        throw new TypeError("chunkSize must be an integer.");
      if (chunkSize < 1)
        throw new RangeError("chunkSize must be 1 or greater.");
      const clone = array.slice();
      const chunks = [];
      while (clone.length)
        chunks.push(clone.splice(0, chunkSize));
      return chunks;
    }
  }
});
var require_through = __commonJS2({
  "../../node_modules/.pnpm/through@2.3.8/node_modules/through/index.js"(exports2, module2) {
    var Stream = __require("stream");
    exports2 = module2.exports = through;
    through.through = through;
    function through(write2, end, opts) {
      write2 = write2 || function(data) {
        this.queue(data);
      };
      end = end || function() {
        this.queue(null);
      };
      var ended = false, destroyed = false, buffer = [], _ended = false;
      var stream5 = new Stream();
      stream5.readable = stream5.writable = true;
      stream5.paused = false;
      stream5.autoDestroy = !(opts && opts.autoDestroy === false);
      stream5.write = function(data) {
        write2.call(this, data);
        return !stream5.paused;
      };
      function drain() {
        while (buffer.length && !stream5.paused) {
          var data = buffer.shift();
          if (null === data)
            return stream5.emit("end");
          else
            stream5.emit("data", data);
        }
      }
      stream5.queue = stream5.push = function(data) {
        if (_ended) return stream5;
        if (data === null) _ended = true;
        buffer.push(data);
        drain();
        return stream5;
      };
      stream5.on("end", function() {
        stream5.readable = false;
        if (!stream5.writable && stream5.autoDestroy)
          process.nextTick(function() {
            stream5.destroy();
          });
      });
      function _end() {
        stream5.writable = false;
        end.call(stream5);
        if (!stream5.readable && stream5.autoDestroy)
          stream5.destroy();
      }
      stream5.end = function(data) {
        if (ended) return;
        ended = true;
        if (arguments.length) stream5.write(data);
        _end();
        return stream5;
      };
      stream5.destroy = function() {
        if (destroyed) return;
        destroyed = true;
        ended = true;
        buffer.length = 0;
        stream5.writable = stream5.readable = false;
        stream5.emit("close");
        return stream5;
      };
      stream5.pause = function() {
        if (stream5.paused) return;
        stream5.paused = true;
        return stream5;
      };
      stream5.resume = function() {
        if (stream5.paused) {
          stream5.paused = false;
          stream5.emit("resume");
        }
        drain();
        if (!stream5.paused)
          stream5.emit("drain");
        return stream5;
      };
      return stream5;
    }
  }
});
var require_from = __commonJS2({
  "../../node_modules/.pnpm/from@0.1.7/node_modules/from/index.js"(exports2, module2) {
    "use strict";
    var Stream = __require("stream");
    module2.exports = function from(source) {
      if (Array.isArray(source)) {
        var source_index = 0, source_len = source.length;
        return from(function(i3) {
          if (source_index < source_len)
            this.emit("data", source[source_index++]);
          else
            this.emit("end");
          return true;
        });
      }
      var s2 = new Stream(), i22 = 0;
      s2.ended = false;
      s2.started = false;
      s2.readable = true;
      s2.writable = false;
      s2.paused = false;
      s2.ended = false;
      s2.pause = function() {
        s2.started = true;
        s2.paused = true;
      };
      function next() {
        s2.started = true;
        if (s2.ended) return;
        while (!s2.ended && !s2.paused && source.call(s2, i22++, function() {
          if (!s2.ended && !s2.paused)
            process.nextTick(next);
        }))
          ;
      }
      s2.resume = function() {
        s2.started = true;
        s2.paused = false;
        next();
      };
      s2.on("end", function() {
        s2.ended = true;
        s2.readable = false;
        process.nextTick(s2.destroy);
      });
      s2.destroy = function() {
        s2.ended = true;
        s2.emit("close");
      };
      process.nextTick(function() {
        if (!s2.started) s2.resume();
      });
      return s2;
    };
  }
});
var require_duplexer = __commonJS2({
  "../../node_modules/.pnpm/duplexer@0.1.2/node_modules/duplexer/index.js"(exports2, module2) {
    var Stream = __require("stream");
    var writeMethods = ["write", "end", "destroy"];
    var readMethods = ["resume", "pause"];
    var readEvents = ["data", "close"];
    var slice = Array.prototype.slice;
    module2.exports = duplex;
    function forEach2(arr, fn3) {
      if (arr.forEach) {
        return arr.forEach(fn3);
      }
      for (var i22 = 0; i22 < arr.length; i22++) {
        fn3(arr[i22], i22);
      }
    }
    function duplex(writer, reader) {
      var stream5 = new Stream();
      var ended = false;
      forEach2(writeMethods, proxyWriter);
      forEach2(readMethods, proxyReader);
      forEach2(readEvents, proxyStream);
      reader.on("end", handleEnd);
      writer.on("drain", function() {
        stream5.emit("drain");
      });
      writer.on("error", reemit);
      reader.on("error", reemit);
      stream5.writable = writer.writable;
      stream5.readable = reader.readable;
      return stream5;
      function proxyWriter(methodName) {
        stream5[methodName] = method;
        function method() {
          return writer[methodName].apply(writer, arguments);
        }
      }
      function proxyReader(methodName) {
        stream5[methodName] = method;
        function method() {
          stream5.emit(methodName);
          var func = reader[methodName];
          if (func) {
            return func.apply(reader, arguments);
          }
          reader.emit(methodName);
        }
      }
      function proxyStream(methodName) {
        reader.on(methodName, reemit2);
        function reemit2() {
          var args = slice.call(arguments);
          args.unshift(methodName);
          stream5.emit.apply(stream5, args);
        }
      }
      function handleEnd() {
        if (ended) {
          return;
        }
        ended = true;
        var args = slice.call(arguments);
        args.unshift("end");
        stream5.emit.apply(stream5, args);
      }
      function reemit(err2) {
        stream5.emit("error", err2);
      }
    }
  }
});
var require_map_stream = __commonJS2({
  "../../node_modules/.pnpm/map-stream@0.1.0/node_modules/map-stream/index.js"(exports2, module2) {
    var Stream = __require("stream").Stream;
    module2.exports = function(mapper, opts) {
      var stream5 = new Stream(), self2 = this, inputs = 0, outputs = 0, ended = false, paused = false, destroyed = false, lastWritten = 0, inNext = false;
      this.opts = opts || {};
      var errorEventName = this.opts.failures ? "failure" : "error";
      var writeQueue = {};
      stream5.writable = true;
      stream5.readable = true;
      function queueData(data, number) {
        var nextToWrite = lastWritten + 1;
        if (number === nextToWrite) {
          if (data !== void 0) {
            stream5.emit.apply(stream5, ["data", data]);
          }
          lastWritten++;
          nextToWrite++;
        } else {
          writeQueue[number] = data;
        }
        if (writeQueue.hasOwnProperty(nextToWrite)) {
          var dataToWrite = writeQueue[nextToWrite];
          delete writeQueue[nextToWrite];
          return queueData(dataToWrite, nextToWrite);
        }
        outputs++;
        if (inputs === outputs) {
          if (paused) paused = false, stream5.emit("drain");
          if (ended) end();
        }
      }
      function next(err2, data, number) {
        if (destroyed) return;
        inNext = true;
        if (!err2 || self2.opts.failures) {
          queueData(data, number);
        }
        if (err2) {
          stream5.emit.apply(stream5, [errorEventName, err2]);
        }
        inNext = false;
      }
      function wrappedMapper(input, number, callback) {
        return mapper.call(null, input, function(err2, data) {
          callback(err2, data, number);
        });
      }
      stream5.write = function(data) {
        if (ended) throw new Error("map stream is not writable");
        inNext = false;
        inputs++;
        try {
          var written = wrappedMapper(data, inputs, next);
          paused = written === false;
          return !paused;
        } catch (err2) {
          if (inNext)
            throw err2;
          next(err2);
          return !paused;
        }
      };
      function end(data) {
        ended = true;
        stream5.writable = false;
        if (data !== void 0) {
          return queueData(data, inputs);
        } else if (inputs == outputs) {
          stream5.readable = false, stream5.emit("end"), stream5.destroy();
        }
      }
      stream5.end = function(data) {
        if (ended) return;
        end();
      };
      stream5.destroy = function() {
        ended = destroyed = true;
        stream5.writable = stream5.readable = paused = false;
        process.nextTick(function() {
          stream5.emit("close");
        });
      };
      stream5.pause = function() {
        paused = true;
      };
      stream5.resume = function() {
        paused = false;
      };
      return stream5;
    };
  }
});
var require_pause_stream = __commonJS2({
  "../../node_modules/.pnpm/pause-stream@0.0.11/node_modules/pause-stream/index.js"(exports2, module2) {
    module2.exports = require_through();
  }
});
var require_split = __commonJS2({
  "../../node_modules/.pnpm/split@0.3.3/node_modules/split/index.js"(exports2, module2) {
    var through = require_through();
    var Decoder = __require("string_decoder").StringDecoder;
    module2.exports = split;
    function split(matcher, mapper, options) {
      var decoder2 = new Decoder();
      var soFar = "";
      var maxLength = options && options.maxLength;
      if ("function" === typeof matcher)
        mapper = matcher, matcher = null;
      if (!matcher)
        matcher = /\r?\n/;
      function emit(stream5, piece) {
        if (mapper) {
          try {
            piece = mapper(piece);
          } catch (err2) {
            return stream5.emit("error", err2);
          }
          if ("undefined" !== typeof piece)
            stream5.queue(piece);
        } else
          stream5.queue(piece);
      }
      function next(stream5, buffer) {
        var pieces = ((soFar != null ? soFar : "") + buffer).split(matcher);
        soFar = pieces.pop();
        if (maxLength && soFar.length > maxLength)
          stream5.emit("error", new Error("maximum buffer reached"));
        for (var i22 = 0; i22 < pieces.length; i22++) {
          var piece = pieces[i22];
          emit(stream5, piece);
        }
      }
      return through(
        function(b2) {
          next(this, decoder2.write(b2));
        },
        function() {
          if (decoder2.end)
            next(this, decoder2.end());
          if (soFar != null)
            emit(this, soFar);
          this.queue(null);
        }
      );
    }
  }
});
var require_stream_combiner = __commonJS2({
  "../../node_modules/.pnpm/stream-combiner@0.0.4/node_modules/stream-combiner/index.js"(exports2, module2) {
    var duplexer = require_duplexer();
    module2.exports = function() {
      var streams = [].slice.call(arguments), first = streams[0], last = streams[streams.length - 1], thepipe = duplexer(first, last);
      if (streams.length == 1)
        return streams[0];
      else if (!streams.length)
        throw new Error("connect called with empty args");
      function recurse(streams2) {
        if (streams2.length < 2)
          return;
        streams2[0].pipe(streams2[1]);
        recurse(streams2.slice(1));
      }
      recurse(streams);
      function onerror() {
        var args = [].slice.call(arguments);
        args.unshift("error");
        thepipe.emit.apply(thepipe, args);
      }
      for (var i22 = 1; i22 < streams.length - 1; i22++)
        streams[i22].on("error", onerror);
      return thepipe;
    };
  }
});
var require_event_stream = __commonJS2({
  "../../node_modules/.pnpm/event-stream@3.3.4/node_modules/event-stream/index.js"(exports2) {
    var Stream = __require("stream").Stream;
    var es2 = exports2;
    var through = require_through();
    var from = require_from();
    var duplex = require_duplexer();
    var map2 = require_map_stream();
    var pause = require_pause_stream();
    var split = require_split();
    var pipeline2 = require_stream_combiner();
    var immediately = global.setImmediate || process.nextTick;
    es2.Stream = Stream;
    es2.through = through;
    es2.from = from;
    es2.duplex = duplex;
    es2.map = map2;
    es2.pause = pause;
    es2.split = split;
    es2.pipeline = es2.connect = es2.pipe = pipeline2;
    es2.concat = //actually this should be called concat
    es2.merge = function() {
      var toMerge = [].slice.call(arguments);
      if (toMerge.length === 1 && toMerge[0] instanceof Array) {
        toMerge = toMerge[0];
      }
      var stream5 = new Stream();
      stream5.setMaxListeners(0);
      var endCount = 0;
      stream5.writable = stream5.readable = true;
      if (toMerge.length) {
        toMerge.forEach(function(e2) {
          e2.pipe(stream5, { end: false });
          var ended = false;
          e2.on("end", function() {
            if (ended) return;
            ended = true;
            endCount++;
            if (endCount == toMerge.length)
              stream5.emit("end");
          });
        });
      } else {
        process.nextTick(function() {
          stream5.emit("end");
        });
      }
      stream5.write = function(data) {
        this.emit("data", data);
      };
      stream5.destroy = function() {
        toMerge.forEach(function(e2) {
          if (e2.destroy) e2.destroy();
        });
      };
      return stream5;
    };
    es2.writeArray = function(done) {
      if ("function" !== typeof done)
        throw new Error("function writeArray (done): done must be function");
      var a2 = new Stream(), array = [], isDone = false;
      a2.write = function(l2) {
        array.push(l2);
      };
      a2.end = function() {
        isDone = true;
        done(null, array);
      };
      a2.writable = true;
      a2.readable = false;
      a2.destroy = function() {
        a2.writable = a2.readable = false;
        if (isDone) return;
        done(new Error("destroyed before end"), array);
      };
      return a2;
    };
    es2.readArray = function(array) {
      var stream5 = new Stream(), i22 = 0, paused = false, ended = false;
      stream5.readable = true;
      stream5.writable = false;
      if (!Array.isArray(array))
        throw new Error("event-stream.read expects an array");
      stream5.resume = function() {
        if (ended) return;
        paused = false;
        var l2 = array.length;
        while (i22 < l2 && !paused && !ended) {
          stream5.emit("data", array[i22++]);
        }
        if (i22 == l2 && !ended)
          ended = true, stream5.readable = false, stream5.emit("end");
      };
      process.nextTick(stream5.resume);
      stream5.pause = function() {
        paused = true;
      };
      stream5.destroy = function() {
        ended = true;
        stream5.emit("close");
      };
      return stream5;
    };
    es2.readable = function(func, continueOnError) {
      var stream5 = new Stream(), i22 = 0, paused = false, ended = false, reading = false;
      stream5.readable = true;
      stream5.writable = false;
      if ("function" !== typeof func)
        throw new Error("event-stream.readable expects async function");
      stream5.on("end", function() {
        ended = true;
      });
      function get2(err2, data) {
        if (err2) {
          stream5.emit("error", err2);
          if (!continueOnError) stream5.emit("end");
        } else if (arguments.length > 1)
          stream5.emit("data", data);
        immediately(function() {
          if (ended || paused || reading) return;
          try {
            reading = true;
            func.call(stream5, i22++, function() {
              reading = false;
              get2.apply(null, arguments);
            });
          } catch (err3) {
            stream5.emit("error", err3);
          }
        });
      }
      stream5.resume = function() {
        paused = false;
        get2();
      };
      process.nextTick(get2);
      stream5.pause = function() {
        paused = true;
      };
      stream5.destroy = function() {
        stream5.emit("end");
        stream5.emit("close");
        ended = true;
      };
      return stream5;
    };
    es2.mapSync = function(sync) {
      return es2.through(function write2(data) {
        var mappedData;
        try {
          mappedData = sync(data);
        } catch (err2) {
          return this.emit("error", err2);
        }
        if (mappedData !== void 0)
          this.emit("data", mappedData);
      });
    };
    es2.log = function(name2) {
      return es2.through(function(data) {
        var args = [].slice.call(arguments);
        if (name2) console.error(name2, data);
        else console.error(data);
        this.emit("data", data);
      });
    };
    es2.child = function(child) {
      return es2.duplex(child.stdin, child.stdout);
    };
    es2.parse = function(options) {
      var emitError = !!(options ? options.error : false);
      return es2.through(function(data) {
        var obj;
        try {
          if (data)
            obj = JSON.parse(data.toString());
        } catch (err2) {
          if (emitError)
            return this.emit("error", err2);
          return console.error(err2, "attempting to parse:", data);
        }
        if (obj !== void 0)
          this.emit("data", obj);
      });
    };
    es2.stringify = function() {
      var Buffer4 = __require("buffer").Buffer;
      return es2.mapSync(function(e2) {
        return JSON.stringify(Buffer4.isBuffer(e2) ? e2.toString() : e2) + "\n";
      });
    };
    es2.replace = function(from2, to2) {
      return es2.pipeline(es2.split(from2), es2.join(to2));
    };
    es2.join = function(str) {
      if ("function" === typeof str)
        return es2.wait(str);
      var first = true;
      return es2.through(function(data) {
        if (!first)
          this.emit("data", str);
        first = false;
        this.emit("data", data);
        return true;
      });
    };
    es2.wait = function(callback) {
      var arr = [];
      return es2.through(
        function(data) {
          arr.push(data);
        },
        function() {
          var body = Buffer.isBuffer(arr[0]) ? Buffer.concat(arr) : arr.join("");
          this.emit("data", body);
          this.emit("end");
          if (callback) callback(null, body);
        }
      );
    };
    es2.pipeable = function() {
      throw new Error("[EVENT-STREAM] es.pipeable is deprecated");
    };
  }
});
var require_ps_tree = __commonJS2({
  "../../node_modules/.pnpm/@apify+ps-tree@1.2.0/node_modules/@apify/ps-tree/index.js"(exports2, module2) {
    "use strict";
    var spawn = __require("child_process").spawn;
    var es2 = require_event_stream();
    module2.exports = function childrenOfPid(pid, includeRoot, callback) {
      var headers = null;
      if (typeof includeRoot === "function") {
        callback = includeRoot;
        includeRoot = false;
      }
      if (typeof callback !== "function") {
        throw new Error("childrenOfPid(pid, callback) expects callback");
      }
      if (typeof pid === "number") {
        pid = pid.toString();
      }
      var processLister;
      if (process.platform === "win32") {
        processLister = spawn("wmic.exe", ["PROCESS", "GET", "ProcessId,ParentProcessId,WorkingSetSize,Name"]);
      } else {
        processLister = spawn("ps", ["-A", "-o", "ppid,pid,stat,rss,comm"]);
      }
      processLister.on("error", callback);
      es2.connect(
        // spawn('ps', ['-A', '-o', 'ppid,pid,stat,comm']).stdout,
        processLister.stdout,
        es2.split(),
        es2.map(function(line, cb) {
          var columns = line.trim().split(/\s+/);
          if (!headers) {
            headers = columns;
            headers = headers.map(normalizeHeader2);
            return cb();
          }
          if (process.platform == "win32") {
            columns[2] = parseInt(columns[2], 10);
          } else {
            columns[3] = parseInt(columns[3], 10);
            columns[3] *= 1024;
          }
          var row = {};
          var h23 = headers.slice();
          while (h23.length) {
            row[h23.shift()] = h23.length ? columns.shift() : columns.join(" ");
          }
          if (process.platform == "win32") {
            row["STAT"] = null;
          }
          return cb(null, row);
        }),
        es2.writeArray(function(err2, ps2) {
          var parents = {};
          var children = [];
          parents[pid] = true;
          ps2.forEach(function(proc) {
            if (parents[proc.PPID]) {
              parents[proc.PID] = true;
              children.push(proc);
            } else if (includeRoot && pid === proc.PID) {
              children.push(proc);
            }
          });
          callback(null, children);
        })
      ).on("error", callback);
    };
    function normalizeHeader2(str) {
      if (process.platform !== "win32") {
        if (str === "COMM") return "COMMAND";
        return str;
      }
      switch (str) {
        case "Name":
          return "COMMAND";
        case "ParentProcessId":
          return "PPID";
        case "ProcessId":
          return "PID";
        case "Status":
          return "STAT";
        case "WorkingSetSize":
          return "RSS";
        default:
          throw new Error("Unknown process listing header: " + str);
      }
    }
  }
});
var require_memory_info = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/memory-info.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getMemoryInfo = getMemoryInfo;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var promises_1 = __require("node:fs/promises");
    var node_os_1 = __require("node:os");
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var ps_tree_1 = tslib_1.__importDefault(require_ps_tree());
    var general_1 = require_general2();
    var MEMORY_FILE_PATHS = {
      TOTAL: {
        V1: "/sys/fs/cgroup/memory/memory.limit_in_bytes",
        V2: "/sys/fs/cgroup/memory.max"
      },
      USED: {
        V1: "/sys/fs/cgroup/memory/memory.usage_in_bytes",
        V2: "/sys/fs/cgroup/memory.current"
      }
    };
    async function getMemoryInfo() {
      const psTreePromised = node_util_1.default.promisify(ps_tree_1.default);
      const isLambdaEnvironment = process.platform === "linux" && !!process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE;
      const isDockerVar = !isLambdaEnvironment && await (0, general_1.isDocker)();
      let mainProcessBytes = -1;
      let childProcessesBytes = 0;
      if (isLambdaEnvironment) {
        mainProcessBytes = process.memoryUsage().rss;
        const memInfo = (0, node_child_process_1.execSync)("cat /proc/meminfo").toString();
        const values = memInfo.split(/[\n: ]/).filter((val) => val.trim());
        childProcessesBytes = +values[19] * 1e3 - mainProcessBytes;
      } else {
        const processes = await psTreePromised(process.pid, true);
        processes.forEach((rec) => {
          if (rec.COMMAND === "ps" || rec.COMMAND === "WMIC.exe") {
            return;
          }
          const bytes = parseInt(rec.RSS, 10);
          if (rec.PID === `${process.pid}`) {
            mainProcessBytes = bytes;
            return;
          }
          childProcessesBytes += bytes;
        });
      }
      let totalBytes;
      let usedBytes;
      let freeBytes;
      if (isLambdaEnvironment) {
        totalBytes = parseInt(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE, 10) * 1e6;
        usedBytes = mainProcessBytes + childProcessesBytes;
        freeBytes = totalBytes - usedBytes;
        log_1.default.debug(`lambda size of ${totalBytes} with ${freeBytes} free bytes`);
      } else if (isDockerVar) {
        let cgroupsVersion = "V1";
        try {
          await (0, promises_1.access)("/sys/fs/cgroup/memory/");
        } catch {
          cgroupsVersion = "V2";
        }
        try {
          let [totalBytesStr, usedBytesStr] = await Promise.all([
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.TOTAL[cgroupsVersion], "utf8"),
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.USED[cgroupsVersion], "utf8")
          ]);
          totalBytesStr = totalBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          usedBytesStr = usedBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          if (totalBytesStr === "max") {
            totalBytes = (0, node_os_1.totalmem)();
          } else {
            totalBytes = parseInt(totalBytesStr, 10);
            const containerRunsWithUnlimitedMemory = totalBytes > Number.MAX_SAFE_INTEGER;
            if (containerRunsWithUnlimitedMemory)
              totalBytes = (0, node_os_1.totalmem)();
          }
          usedBytes = parseInt(usedBytesStr, 10);
          freeBytes = totalBytes - usedBytes;
        } catch (err2) {
          log_1.default.deprecated(`Your environment is Docker, but your system does not support memory cgroups. If you're running containers with limited memory, memory auto-scaling will not work properly.

Cause: ${err2.message}`);
          totalBytes = (0, node_os_1.totalmem)();
          freeBytes = (0, node_os_1.freemem)();
          usedBytes = totalBytes - freeBytes;
        }
      } else {
        totalBytes = (0, node_os_1.totalmem)();
        freeBytes = (0, node_os_1.freemem)();
        usedBytes = totalBytes - freeBytes;
      }
      return {
        totalBytes,
        freeBytes,
        usedBytes,
        mainProcessBytes,
        childProcessesBytes
      };
    }
  }
});
var require_debug = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/debug.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.createRequestDebugInfo = createRequestDebugInfo;
    exports2.getObjectType = getObjectType3;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    function createRequestDebugInfo(request, response = {}, additionalFields = {}) {
      (0, ow_1.default)(request, ow_1.default.object);
      (0, ow_1.default)(response, ow_1.default.object);
      (0, ow_1.default)(additionalFields, ow_1.default.object);
      return {
        requestId: request.id,
        url: request.url,
        loadedUrl: request.loadedUrl,
        method: request.method,
        retryCount: request.retryCount,
        errorMessages: request.errorMessages,
        // Puppeteer response has .status() function and NodeJS response, statusCode property.
        statusCode: "status" in response && response.status instanceof Function ? response.status() : response.statusCode,
        ...additionalFields
      };
    }
    function getObjectType3(value) {
      const simple = typeof value;
      if (["string", "number", "boolean", "bigint"].includes(simple)) {
        return simple;
      }
      const objectType2 = Object.prototype.toString.call(value);
      const type = objectType2.match(/\[object (\w+)]/)[1];
      if (type === "Uint8Array") {
        return "Buffer";
      }
      return ["Date", "Buffer", "RegExp"].includes(type) ? type : type.toLowerCase();
    }
  }
});
var require_social = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/social.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DISCORD_REGEX_GLOBAL = exports2.DISCORD_REGEX = exports2.PINTEREST_REGEX_GLOBAL = exports2.PINTEREST_REGEX = exports2.TIKTOK_REGEX_GLOBAL = exports2.TIKTOK_REGEX = exports2.YOUTUBE_REGEX_GLOBAL = exports2.YOUTUBE_REGEX = exports2.FACEBOOK_REGEX_GLOBAL = exports2.FACEBOOK_REGEX = exports2.TWITTER_REGEX_GLOBAL = exports2.TWITTER_REGEX = exports2.INSTAGRAM_REGEX_GLOBAL = exports2.INSTAGRAM_REGEX = exports2.LINKEDIN_REGEX_GLOBAL = exports2.LINKEDIN_REGEX = exports2.EMAIL_REGEX_GLOBAL = exports2.EMAIL_REGEX = void 0;
    exports2.emailsFromText = emailsFromText;
    exports2.emailsFromUrls = emailsFromUrls;
    exports2.phonesFromText = phonesFromText;
    exports2.phonesFromUrls = phonesFromUrls;
    exports2.parseHandlesFromHtml = parseHandlesFromHtml;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var cheerio = tslib_1.__importStar(require_lib12());
    var cheerio_1 = require_cheerio2();
    var EMAIL_REGEX_STRING = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[-\b\v\f-!#-[]-\x7F]|\\\\[-	\v\f-\x7F])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[-\b\v\f-!-ZS-\x7F]|\\\\[-	\v\f-\x7F])+)\\])";
    exports2.EMAIL_REGEX = new RegExp(`^${EMAIL_REGEX_STRING}$`, "i");
    exports2.EMAIL_REGEX_GLOBAL = new RegExp(EMAIL_REGEX_STRING, "ig");
    var EMAIL_URL_PREFIX_REGEX = /^mailto:/i;
    function emailsFromText(text) {
      if (typeof text !== "string")
        return [];
      return text.match(exports2.EMAIL_REGEX_GLOBAL) || [];
    }
    function emailsFromUrls(urls) {
      if (!Array.isArray(urls))
        throw new Error('The "urls" parameter must be an array');
      const emails = [];
      for (const url2 of urls) {
        if (!url2)
          continue;
        if (!EMAIL_URL_PREFIX_REGEX.test(url2))
          continue;
        const email = url2.replace(EMAIL_URL_PREFIX_REGEX, "").trim();
        if (exports2.EMAIL_REGEX.test(email))
          emails.push(email);
      }
      return emails;
    }
    var PHONE_URL_PREFIX_REGEX = /^(tel|phone|telephone|callto):(\/)?(\/)?/i;
    var PHONE_REGEXS_STRINGS = [
      // 775123456
      "[0-9]{6,15}",
      // 1(413)555-2378 or 1(413)555.2378 or 1 (413) 555-2378 or 1 (413) 555 2378 or (303) 494-2320
      "([0-9]{1,4}( )?)?\\([0-9]{2,4}\\)( )?[0-9]{2,4}(( )?(-|.))?( )?[0-9]{2,6}",
      // (51) 5667-9987 or (19)94138-9398
      "\\([0-9]{2}\\)( )?[0-9]{4,5}-[0-9]{4}",
      // 1(262) 955-95-79 or 1(262)955.95.79
      "([0-9]{1,4}( )?)?\\([0-9]{2,4}\\)( )?[0-9]{2,4}(( )?(-|.))?( )?[0-9]{2,6}",
      // 413-577-1234-564
      "[0-9]{2,4}-[0-9]{2,4}-[0-9]{2,4}-[0-9]{2,6}",
      // 413-577-1234
      "[0-9]{2,4}-[0-9]{2,4}-[0-9]{2,6}",
      // 413-577
      "[0-9]{2,4}-[0-9]{2,6}",
      // 413.577.1234.564
      "[0-9]{2,4}\\.[0-9]{2,4}\\.[0-9]{2,4}\\.[0-9]{2,6}",
      // 413.577.1234
      "[0-9]{2,4}\\.[0-9]{2,4}\\.[0-9]{2,6}",
      // 413.577
      "[0-9]{2,4}\\.[0-9]{2,6}",
      // 413 577 1234 564
      "[0-9]{2,4} [0-9]{2,4} [0-9]{2,4} [0-9]{2,6}",
      // 413 577 1234
      "[0-9]{2,4} [0-9]{2,4} [0-9]{2,6}",
      // 123 4567
      "[0-9]{2,4} [0-9]{3,8}"
      // All phones might be prefixed with '+' or '00'
    ].map((regex) => `(00|\\+)?${regex}`);
    var PHONE_MIN_DIGITS = 7;
    var SKIP_PHONE_REGEXS = [
      // 2018-11-10
      "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
    ];
    var PHONE_REGEX_GLOBAL = new RegExp(`(${PHONE_REGEXS_STRINGS.join("|")})`, "ig");
    var PHONE_REGEX = new RegExp(`^(${PHONE_REGEXS_STRINGS.join("|")})$`, "i");
    var SKIP_PHONE_REGEX = new RegExp(`^(${SKIP_PHONE_REGEXS.join("|")})$`, "i");
    function phonesFromText(text) {
      if (typeof text !== "string")
        return [];
      let phones = text.match(PHONE_REGEX_GLOBAL) || [];
      phones = phones.filter((phone) => {
        if (!phone)
          return false;
        if (phone.match(/[0-9]/g).length < PHONE_MIN_DIGITS)
          return false;
        if (SKIP_PHONE_REGEX.test(phone))
          return false;
        return true;
      });
      return phones;
    }
    function phonesFromUrls(urls) {
      if (!Array.isArray(urls))
        throw new Error('The "urls" parameter must be an array');
      const phones = [];
      for (const url2 of urls) {
        if (!url2)
          continue;
        if (!PHONE_URL_PREFIX_REGEX.test(url2))
          continue;
        const phone = url2.replace(PHONE_URL_PREFIX_REGEX, "").trim();
        if (PHONE_REGEX.test(phone))
          phones.push(phone);
      }
      return phones;
    }
    var LINKEDIN_REGEX_STRING = "(?<!\\w)(?:(?:http(?:s)?:\\/\\/)?(?:(?:(?:[a-z]+\\.)?linkedin\\.com\\/(?:in|company)\\/)([a-z0-9\\-_%=]{2,60})(?![a-z0-9\\-_%=])))(?:\\/)?";
    var INSTAGRAM_REGEX_STRING = "(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:(?:www\\.)?(?:instagram\\.com|instagr\\.am)\\/)(?!explore|_n|_u)([a-z0-9_.]{2,30})(?![a-z0-9_.])(?:/)?";
    var TWITTER_RESERVED_PATHS = "oauth|account|tos|privacy|signup|home|hashtag|search|login|widgets|i|settings|start|share|intent|oct|messages|explore|notifications|jobs|compose\\/post";
    var X_SUBDOMAINS = "business|help|about|blog|careers|developer|ads";
    var TWITTER_REGEX_STRING = `(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:www.)?(?<!(?:${X_SUBDOMAINS})\\.)(?:x|twitter)(?:.com)\\/(?!(?:${TWITTER_RESERVED_PATHS})(?:[\\'\\"\\?\\.\\/]|$))(?:@)?([a-z0-9_]{1,15})(?![a-z0-9_])(?:/)?`;
    var FACEBOOK_RESERVED_PATHS = "rsrc\\.php|apps|groups|events|l\\.php|friends|images|photo.php|chat|ajax|dyi|common|policies|login|recover|reg|help|security|messages|marketplace|pages\\/(?:create|merge|search)|live|bookmarks|games|fundraisers|saved|gaming|salesgroups|jobs|people|ads|ad_campaign|weather|offers|recommendations|crisisresponse|onthisday|developers|settings|connect|business|plugins|intern|sharer";
    var FACEBOOK_REGEX_STRING = `(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:www.)?(?:facebook.com|fb.com)\\/(?!(?:${FACEBOOK_RESERVED_PATHS})(?:[\\'\\"\\?\\.\\/]|$))(profile\\.php\\?id\\=[0-9]{3,20}|pages\\/[a-z0-9-_][a-z0-9-_\\.\\/]{0,150}|(?!pages|profile\\.php)[a-z0-9-\\.]{5,51}(?![a-z0-9\\.]))(?:\\/)?`;
    var YOUTUBE_REGEX_STRING = "(?<!\\w)(?:https?:\\/\\/)?(?:youtu\\.be\\/|(?:www\\.|m\\.)?youtube\\.com(?:(?:(?:\\/(?:watch|v|embed|user|c(?:hannel)?)(?:\\.php)?)?(?:\\?[^ ]*v=|\\/))|(?:(?:\\/c)?\\/@)))([a-zA-Z0-9\\-_]{2,100})";
    var TIKTOK_REGEX_STRING = "(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:(?:www|m)\\.)?(?:tiktok\\.com)\\/(((?:(?:v|embed|trending)(?:\\?shareId=|\\/))[0-9]{2,50}(?![0-9]))|(?:@)[a-z0-9\\-_\\.]+((?:\\/video\\/)[0-9]{2,50}(?![0-9]))?)(?:\\/)?";
    var PINTEREST_REGEX_STRING = "(?<!\\w)(?:http(?:s)?:\\/\\/)?(?:(?:(?:(?:www\\.)?pinterest(?:\\.com|(?:\\.[a-z]{2}){1,2}))|(?:[a-z]{2})\\.pinterest\\.com)(?:\\/))((pin\\/[0-9]{2,50})|((?!pin)[a-z0-9\\-_\\.]+(\\/[a-z0-9\\-_\\.]+)?))(?:\\/)?";
    var DISCORD_REGEX_STRING = "(?<!\\w)(?:https?:\\/\\/)?(?:www\\.)?((?:(?:(?:canary|ptb).)?(?:discord|discordapp)\\.com\\/channels(?:\\/)[0-9]{2,50}(\\/[0-9]{2,50})*)|(?:(?:(?:canary|ptb).)?(?:discord\\.(?:com|me|li|gg|io)|discordapp\\.com)(?:\\/invite)?)\\/(?!channels)[a-z0-9\\-_]{2,50})(?:\\/)?";
    exports2.LINKEDIN_REGEX = new RegExp(`^${LINKEDIN_REGEX_STRING}$`, "i");
    exports2.LINKEDIN_REGEX_GLOBAL = new RegExp(LINKEDIN_REGEX_STRING, "ig");
    exports2.INSTAGRAM_REGEX = new RegExp(`^${INSTAGRAM_REGEX_STRING}$`, "i");
    exports2.INSTAGRAM_REGEX_GLOBAL = new RegExp(INSTAGRAM_REGEX_STRING, "ig");
    exports2.TWITTER_REGEX = new RegExp(`^${TWITTER_REGEX_STRING}$`, "i");
    exports2.TWITTER_REGEX_GLOBAL = new RegExp(TWITTER_REGEX_STRING, "ig");
    exports2.FACEBOOK_REGEX = new RegExp(`^${FACEBOOK_REGEX_STRING}$`, "i");
    exports2.FACEBOOK_REGEX_GLOBAL = new RegExp(FACEBOOK_REGEX_STRING, "ig");
    exports2.YOUTUBE_REGEX = new RegExp(`^${YOUTUBE_REGEX_STRING}$`, "i");
    exports2.YOUTUBE_REGEX_GLOBAL = new RegExp(YOUTUBE_REGEX_STRING, "ig");
    exports2.TIKTOK_REGEX = new RegExp(`^${TIKTOK_REGEX_STRING}$`, "i");
    exports2.TIKTOK_REGEX_GLOBAL = new RegExp(TIKTOK_REGEX_STRING, "ig");
    exports2.PINTEREST_REGEX = new RegExp(`^${PINTEREST_REGEX_STRING}$`, "i");
    exports2.PINTEREST_REGEX_GLOBAL = new RegExp(PINTEREST_REGEX_STRING, "ig");
    exports2.DISCORD_REGEX = new RegExp(`^${DISCORD_REGEX_STRING}$`, "i");
    exports2.DISCORD_REGEX_GLOBAL = new RegExp(DISCORD_REGEX_STRING, "ig");
    function parseHandlesFromHtml(html, data = null) {
      const result = {
        emails: [],
        phones: [],
        phonesUncertain: [],
        linkedIns: [],
        twitters: [],
        instagrams: [],
        facebooks: [],
        youtubes: [],
        tiktoks: [],
        pinterests: [],
        discords: []
      };
      if (typeof html !== "string")
        return result;
      const $2 = cheerio.load(html, { decodeEntities: true });
      if (data)
        data.$ = $2;
      const text = (0, cheerio_1.htmlToText)($2);
      if (data)
        data.text = text;
      const texts = $2("*").contents().toArray().filter((node) => node.type === "text").map((node) => $2(node).text().trim());
      const linkUrls = [];
      $2("a[href]").each((_index, elem) => {
        if (elem)
          linkUrls.push($2(elem).attr("href"));
      });
      result.emails = emailsFromUrls(linkUrls).concat(texts.flatMap(emailsFromText));
      result.phones = phonesFromUrls(linkUrls);
      result.phonesUncertain = phonesFromText(text);
      result.linkedIns = html.match(exports2.LINKEDIN_REGEX_GLOBAL) || [];
      result.twitters = html.match(exports2.TWITTER_REGEX_GLOBAL) || [];
      result.instagrams = html.match(exports2.INSTAGRAM_REGEX_GLOBAL) || [];
      result.facebooks = html.match(exports2.FACEBOOK_REGEX_GLOBAL) || [];
      result.youtubes = html.match(exports2.YOUTUBE_REGEX_GLOBAL) || [];
      result.tiktoks = html.match(exports2.TIKTOK_REGEX_GLOBAL) || [];
      result.pinterests = html.match(exports2.PINTEREST_REGEX_GLOBAL) || [];
      result.discords = html.match(exports2.DISCORD_REGEX_GLOBAL) || [];
      for (const key of Object.keys(result)) {
        result[key].sort();
        result[key] = [...new Set(result[key])].sort();
      }
      return result;
    }
  }
});
var require_typedefs = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/typedefs.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.entries = entries2;
    exports2.keys = keys;
    function entries2(obj) {
      return Object.entries(obj);
    }
    function keys(obj) {
      return Object.keys(obj);
    }
  }
});
var require_open_graph_parser = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/open_graph_parser.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.parseOpenGraph = parseOpenGraph;
    var cheerio_1 = require_lib12();
    var optionalSpread = (key, item) => item !== void 0 && !!Object.values(item)?.length ? { [key]: item } : {};
    var OPEN_GRAPH_PROPERTIES = [
      {
        name: "og:title",
        outputName: "title",
        children: []
      },
      {
        name: "og:type",
        outputName: "type",
        children: []
      },
      {
        name: "og:image",
        outputName: "image",
        children: [
          {
            name: "og:image:url",
            outputName: "url",
            children: []
          },
          {
            name: "og:image:secure_url",
            outputName: "secureUrl",
            children: []
          },
          {
            name: "og:image:type",
            outputName: "type",
            children: []
          },
          {
            name: "og:image:width",
            outputName: "width",
            children: []
          },
          {
            name: "og:image:height",
            outputName: "height",
            children: []
          },
          {
            name: "og:image:alt",
            outputName: "alt",
            children: []
          }
        ]
      },
      {
        name: "og:url",
        outputName: "url",
        children: []
      },
      {
        name: "og:audio",
        outputName: "audio",
        children: [
          {
            name: "og:audio:url",
            outputName: "url",
            children: []
          },
          {
            name: "og:audio:secure_url",
            outputName: "secureUrl",
            children: []
          },
          {
            name: "og:audio:type",
            outputName: "type",
            children: []
          }
        ]
      },
      {
        name: "og:description",
        outputName: "description",
        children: []
      },
      {
        name: "og:determiner",
        outputName: "determiner",
        children: []
      },
      {
        name: "og:locale",
        outputName: "locale",
        children: [
          {
            name: "og:locale:alternate",
            outputName: "alternate",
            children: []
          }
        ]
      },
      {
        name: "og:site_name",
        outputName: "siteName",
        children: []
      },
      {
        name: "og:video",
        outputName: "video",
        children: [
          {
            name: "og:video:url",
            outputName: "url",
            children: []
          },
          {
            name: "og:video:secure_url",
            outputName: "secureUrl",
            children: []
          },
          {
            name: "og:video:type",
            outputName: "type",
            children: []
          },
          {
            name: "og:video:width",
            outputName: "width",
            children: []
          },
          {
            name: "og:video:height",
            outputName: "height",
            children: []
          },
          {
            name: "og:video:alt",
            outputName: "alt",
            children: []
          }
        ]
      },
      // The properties below aren't prefixed with "og".
      // Part of the reason the properties have been hardcoded is because not all OpenGraph properties start with "og".
      // Especially the newer ones that extend "og:type".
      {
        name: "video",
        outputName: "videoInfo",
        children: [
          {
            name: "video:actor",
            outputName: "actor",
            children: [
              {
                name: "video:actor:role",
                outputName: "role",
                children: []
              }
            ]
          },
          {
            name: "video:director",
            outputName: "director",
            children: []
          },
          {
            name: "video:writer",
            outputName: "writer",
            children: []
          },
          {
            name: "video:duration",
            outputName: "duration",
            children: []
          },
          {
            name: "video:release_date",
            outputName: "releaseDate",
            children: []
          },
          {
            name: "video:tag",
            outputName: "tag",
            children: []
          },
          {
            name: "video:series",
            outputName: "series",
            children: []
          }
        ]
      },
      {
        name: "music",
        outputName: "musicInfo",
        children: [
          {
            name: "music:duration",
            outputName: "duration",
            children: []
          },
          {
            name: "music:album",
            outputName: "album",
            children: [
              {
                name: "music:album:disc",
                outputName: "disc",
                children: []
              },
              {
                name: "music:album:track",
                outputName: "track",
                children: []
              }
            ]
          },
          {
            name: "music:musician",
            outputName: "musician",
            children: []
          },
          {
            name: "music:song",
            outputName: "song",
            children: [
              {
                name: "music:song:disc",
                outputName: "disc",
                children: []
              },
              {
                name: "music:song:track",
                outputName: "track",
                children: []
              }
            ]
          },
          {
            name: "music:release_date",
            outputName: "releaseDate",
            children: []
          },
          {
            name: "music:creator",
            outputName: "creator",
            children: []
          }
        ]
      },
      {
        name: "article",
        outputName: "articleInfo",
        children: [
          {
            name: "music:published_time",
            outputName: "publishedTime",
            children: []
          },
          {
            name: "music:modified_time",
            outputName: "modifiedTime",
            children: []
          },
          {
            name: "music:expiration_time",
            outputName: "expirationTime",
            children: []
          },
          {
            name: "music:author",
            outputName: "author",
            children: []
          },
          {
            name: "music:section",
            outputName: "section",
            children: []
          },
          {
            name: "music:tag",
            outputName: "tag",
            children: []
          }
        ]
      },
      {
        name: "book",
        outputName: "bookInfo",
        children: [
          {
            name: "book:author",
            outputName: "author",
            children: []
          },
          {
            name: "book:isbn",
            outputName: "isbn",
            children: []
          },
          {
            name: "book:release_date",
            outputName: "releaseDate",
            children: []
          },
          {
            name: "book:tag",
            outputName: "tag",
            children: []
          }
        ]
      },
      {
        name: "profile",
        outputName: "profileInfo",
        children: [
          {
            name: "profile:first_name",
            outputName: "firstName",
            children: []
          },
          {
            name: "profile:last_name",
            outputName: "lastName",
            children: []
          },
          {
            name: "profile:username",
            outputName: "username",
            children: []
          },
          {
            name: "profile:gender",
            outputName: "gender",
            children: []
          }
        ]
      }
    ];
    var makeOpenGraphSelector = (name2) => `meta[property="${name2}"]`;
    var parseOpenGraphProperty = (property, $2) => {
      const values = [...$2(makeOpenGraphSelector(property.name))].map((elem) => $2(elem).attr("content"));
      const content2 = values.length <= 1 ? values[0] : values;
      if (!property.children.length)
        return content2;
      return {
        // We do this, because for example, there can be a value under og:image which should still be parsed,
        // but there can also be child properties such as og:image:url or og:image:size
        // "Value" is appended to the end of the property name to make it more clear, and to prevent things such
        // as `videoInfo.actor.actor` to grab the actor's name.
        ...optionalSpread(`${property.outputName}Value`, content2),
        ...property.children.reduce((acc, curr) => {
          const parsed = parseOpenGraphProperty(curr, $2);
          if (parsed === void 0)
            return acc;
          return {
            ...acc,
            ...optionalSpread(curr.outputName, parseOpenGraphProperty(curr, $2))
          };
        }, {})
      };
    };
    function parseOpenGraph(item, additionalProperties) {
      const $2 = typeof item === "string" ? (0, cheerio_1.load)(item) : item;
      return [...additionalProperties || [], ...OPEN_GRAPH_PROPERTIES].reduce((acc, curr) => {
        return {
          ...acc,
          ...optionalSpread(curr.outputName, parseOpenGraphProperty(curr, $2))
        };
      }, {});
    }
  }
});
var require_iterables = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/iterables.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.isIterable = isIterable4;
    exports2.isAsyncIterable = isAsyncIterable3;
    exports2.asyncifyIterable = asyncifyIterable;
    exports2.chunkedAsyncIterable = chunkedAsyncIterable;
    exports2.peekableAsyncIterable = peekableAsyncIterable;
    exports2.mergeAsyncIterables = mergeAsyncIterables;
    var node_util_1 = __require("node:util");
    function isIterable4(value) {
      if (value == null || typeof value === "string" || ArrayBuffer.isView(value)) {
        return false;
      }
      if (Array.isArray(value)) {
        return true;
      }
      return typeof Object(value)[Symbol.iterator] === "function";
    }
    function isAsyncIterable3(value) {
      if (value == null || typeof value === "string" || ArrayBuffer.isView(value)) {
        return false;
      }
      return typeof Object(value)[Symbol.asyncIterator] === "function";
    }
    async function* asyncifyIterable(iterable) {
      yield* iterable;
    }
    async function* chunkedAsyncIterable(iterable, chunkSize) {
      if (typeof chunkSize !== "number" || chunkSize < 1) {
        throw new Error(`Chunk size must be a positive number (${(0, node_util_1.inspect)(chunkSize)}) received`);
      }
      let chunk2 = [];
      for await (const item of iterable) {
        chunk2.push(item);
        if (chunk2.length >= chunkSize) {
          yield chunk2;
          chunk2 = [];
        }
      }
      if (chunk2.length) {
        yield chunk2;
      }
    }
    function peekableAsyncIterable(iterable) {
      const iterator2 = asyncifyIterable(iterable)[Symbol.asyncIterator]();
      let peekedValue;
      let isExhausted = false;
      const peekableIterator = {
        async next() {
          if (peekedValue !== void 0) {
            const result2 = peekedValue;
            peekedValue = void 0;
            if (result2.done) {
              isExhausted = true;
              return { done: true, value: void 0 };
            }
            return { done: false, value: result2.value };
          }
          if (isExhausted) {
            return { done: true, value: void 0 };
          }
          const result = await iterator2.next();
          if (result.done) {
            isExhausted = true;
          }
          return result;
        },
        async peek() {
          if (peekedValue !== void 0) {
            return peekedValue.done ? void 0 : peekedValue.value;
          }
          if (isExhausted) {
            return void 0;
          }
          const result = await iterator2.next();
          peekedValue = { done: result.done ?? false, value: result.value };
          if (result.done) {
            isExhausted = true;
            return void 0;
          }
          return result.value;
        },
        [Symbol.asyncIterator]() {
          return this;
        }
      };
      return {
        [Symbol.asyncIterator]() {
          return peekableIterator;
        }
      };
    }
    async function* mergeAsyncIterables(...iterables) {
      const asyncIterators = iterables.map((iterable) => iterable[Symbol.asyncIterator]());
      const results = [];
      let count = asyncIterators.length;
      const never = new Promise(() => {
      });
      async function getNext(asyncIterator2, index) {
        const result = await asyncIterator2.next();
        return {
          index,
          result
        };
      }
      const nextPromises = asyncIterators.map(getNext);
      try {
        while (count) {
          const { index, result } = await Promise.race(nextPromises);
          if (result.done) {
            nextPromises[index] = never;
            results[index] = result.value;
            count--;
          } else {
            nextPromises[index] = getNext(asyncIterators[index], index);
            yield result.value;
          }
        }
      } finally {
        for (const [index, iterator2] of asyncIterators.entries()) {
          if (nextPromises[index] !== never && iterator2.return != null)
            void iterator2.return();
        }
      }
      return results;
    }
  }
});
var require_Robots = __commonJS2({
  "../../node_modules/.pnpm/robots-parser@3.0.1/node_modules/robots-parser/Robots.js"(exports2, module2) {
    function trimLine(line) {
      if (!line) {
        return null;
      }
      if (Array.isArray(line)) {
        return line.map(trimLine);
      }
      return String(line).trim();
    }
    function removeComments(line) {
      var commentStartIndex = line.indexOf("#");
      if (commentStartIndex > -1) {
        return line.substr(0, commentStartIndex);
      }
      return line;
    }
    function splitLine(line) {
      var idx = String(line).indexOf(":");
      if (!line || idx < 0) {
        return null;
      }
      return [line.slice(0, idx), line.slice(idx + 1)];
    }
    function formatUserAgent(userAgent) {
      var formattedUserAgent = userAgent.toLowerCase();
      var idx = formattedUserAgent.indexOf("/");
      if (idx > -1) {
        formattedUserAgent = formattedUserAgent.substr(0, idx);
      }
      return formattedUserAgent.trim();
    }
    function normaliseEncoding(path22) {
      try {
        return urlEncodeToUpper(encodeURI(path22).replace(/%25/g, "%"));
      } catch (e2) {
        return path22;
      }
    }
    function urlEncodeToUpper(path22) {
      return path22.replace(/%[0-9a-fA-F]{2}/g, function(match) {
        return match.toUpperCase();
      });
    }
    function matches(pattern, path22) {
      var matchingLengths = new Array(path22.length + 1);
      var numMatchingLengths = 1;
      matchingLengths[0] = 0;
      for (var p = 0; p < pattern.length; p++) {
        if (pattern[p] === "$" && p + 1 === pattern.length) {
          return matchingLengths[numMatchingLengths - 1] === path22.length;
        }
        if (pattern[p] == "*") {
          numMatchingLengths = path22.length - matchingLengths[0] + 1;
          for (var i22 = 1; i22 < numMatchingLengths; i22++) {
            matchingLengths[i22] = matchingLengths[i22 - 1] + 1;
          }
        } else {
          var numMatches = 0;
          for (var i22 = 0; i22 < numMatchingLengths; i22++) {
            if (matchingLengths[i22] < path22.length && path22[matchingLengths[i22]] === pattern[p]) {
              matchingLengths[numMatches++] = matchingLengths[i22] + 1;
            }
          }
          if (numMatches == 0) {
            return false;
          }
          numMatchingLengths = numMatches;
        }
      }
      return true;
    }
    function parseRobots(contents, robots) {
      var newlineRegex = /\r\n|\r|\n/;
      var lines = contents.split(newlineRegex).map(removeComments).map(splitLine).map(trimLine);
      var currentUserAgents = [];
      var isNoneUserAgentState = true;
      for (var i22 = 0; i22 < lines.length; i22++) {
        var line = lines[i22];
        if (!line || !line[0]) {
          continue;
        }
        switch (line[0].toLowerCase()) {
          case "user-agent":
            if (isNoneUserAgentState) {
              currentUserAgents.length = 0;
            }
            if (line[1]) {
              currentUserAgents.push(formatUserAgent(line[1]));
            }
            break;
          case "disallow":
            robots.addRule(currentUserAgents, line[1], false, i22 + 1);
            break;
          case "allow":
            robots.addRule(currentUserAgents, line[1], true, i22 + 1);
            break;
          case "crawl-delay":
            robots.setCrawlDelay(currentUserAgents, line[1]);
            break;
          case "sitemap":
            if (line[1]) {
              robots.addSitemap(line[1]);
            }
            break;
          case "host":
            if (line[1]) {
              robots.setPreferredHost(line[1].toLowerCase());
            }
            break;
        }
        isNoneUserAgentState = line[0].toLowerCase() !== "user-agent";
      }
    }
    function findRule(path22, rules) {
      var matchedRule = null;
      for (var i22 = 0; i22 < rules.length; i22++) {
        var rule = rules[i22];
        if (!matches(rule.pattern, path22)) {
          continue;
        }
        if (!matchedRule || rule.pattern.length > matchedRule.pattern.length) {
          matchedRule = rule;
        } else if (rule.pattern.length == matchedRule.pattern.length && rule.allow && !matchedRule.allow) {
          matchedRule = rule;
        }
      }
      return matchedRule;
    }
    function parseUrl(url2) {
      try {
        var url2 = new URL(url2, "http://robots-relative.samclarke.com/");
        if (!url2.port) {
          url2.port = url2.protocol === "https:" ? 443 : 80;
        }
        return url2;
      } catch (e2) {
        return null;
      }
    }
    function Robots(url2, contents) {
      this._url = parseUrl(url2) || {};
      this._rules = /* @__PURE__ */ Object.create(null);
      this._sitemaps = [];
      this._preferredHost = null;
      parseRobots(contents || "", this);
    }
    Robots.prototype.addRule = function(userAgents, pattern, allow, lineNumber) {
      var rules = this._rules;
      userAgents.forEach(function(userAgent) {
        rules[userAgent] = rules[userAgent] || [];
        if (!pattern) {
          return;
        }
        rules[userAgent].push({
          pattern: normaliseEncoding(pattern),
          allow,
          lineNumber
        });
      });
    };
    Robots.prototype.setCrawlDelay = function(userAgents, delayStr) {
      var rules = this._rules;
      var delay2 = Number(delayStr);
      userAgents.forEach(function(userAgent) {
        rules[userAgent] = rules[userAgent] || [];
        if (isNaN(delay2)) {
          return;
        }
        rules[userAgent].crawlDelay = delay2;
      });
    };
    Robots.prototype.addSitemap = function(url2) {
      this._sitemaps.push(url2);
    };
    Robots.prototype.setPreferredHost = function(url2) {
      this._preferredHost = url2;
    };
    Robots.prototype._getRule = function(url2, ua2) {
      var parsedUrl = parseUrl(url2) || {};
      var userAgent = formatUserAgent(ua2 || "*");
      if (parsedUrl.protocol !== this._url.protocol || parsedUrl.hostname !== this._url.hostname || parsedUrl.port !== this._url.port) {
        return;
      }
      var rules = this._rules[userAgent] || this._rules["*"] || [];
      var path22 = urlEncodeToUpper(parsedUrl.pathname + parsedUrl.search);
      var rule = findRule(path22, rules);
      return rule;
    };
    Robots.prototype.isAllowed = function(url2, ua2) {
      var rule = this._getRule(url2, ua2);
      if (typeof rule === "undefined") {
        return;
      }
      return !rule || rule.allow;
    };
    Robots.prototype.getMatchingLineNumber = function(url2, ua2) {
      var rule = this._getRule(url2, ua2);
      return rule ? rule.lineNumber : -1;
    };
    Robots.prototype.isDisallowed = function(url2, ua2) {
      return !this.isAllowed(url2, ua2);
    };
    Robots.prototype.getCrawlDelay = function(ua2) {
      var userAgent = formatUserAgent(ua2 || "*");
      return (this._rules[userAgent] || this._rules["*"] || {}).crawlDelay;
    };
    Robots.prototype.getPreferredHost = function() {
      return this._preferredHost;
    };
    Robots.prototype.getSitemaps = function() {
      return this._sitemaps.slice(0);
    };
    module2.exports = Robots;
  }
});
var require_robots_parser = __commonJS2({
  "../../node_modules/.pnpm/robots-parser@3.0.1/node_modules/robots-parser/index.js"(exports2, module2) {
    var Robots = require_Robots();
    module2.exports = function(url2, contents) {
      return new Robots(url2, contents);
    };
  }
});
var require_sax = __commonJS2({
  "../../node_modules/.pnpm/sax@1.4.4/node_modules/sax/lib/sax.js"(exports2) {
    (function(sax) {
      sax.parser = function(strict, opt) {
        return new SAXParser(strict, opt);
      };
      sax.SAXParser = SAXParser;
      sax.SAXStream = SAXStream;
      sax.createStream = createStream;
      sax.MAX_BUFFER_LENGTH = 64 * 1024;
      var buffers = [
        "comment",
        "sgmlDecl",
        "textNode",
        "tagName",
        "doctype",
        "procInstName",
        "procInstBody",
        "entity",
        "attribName",
        "attribValue",
        "cdata",
        "script"
      ];
      sax.EVENTS = [
        "text",
        "processinginstruction",
        "sgmldeclaration",
        "doctype",
        "comment",
        "opentagstart",
        "attribute",
        "opentag",
        "closetag",
        "opencdata",
        "cdata",
        "closecdata",
        "error",
        "end",
        "ready",
        "script",
        "opennamespace",
        "closenamespace"
      ];
      function SAXParser(strict, opt) {
        if (!(this instanceof SAXParser)) {
          return new SAXParser(strict, opt);
        }
        var parser = this;
        clearBuffers(parser);
        parser.q = parser.c = "";
        parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH;
        parser.opt = opt || {};
        parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;
        parser.looseCase = parser.opt.lowercase ? "toLowerCase" : "toUpperCase";
        parser.tags = [];
        parser.closed = parser.closedRoot = parser.sawRoot = false;
        parser.tag = parser.error = null;
        parser.strict = !!strict;
        parser.noscript = !!(strict || parser.opt.noscript);
        parser.state = S3.BEGIN;
        parser.strictEntities = parser.opt.strictEntities;
        parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES);
        parser.attribList = [];
        if (parser.opt.xmlns) {
          parser.ns = Object.create(rootNS);
        }
        if (parser.opt.unquotedAttributeValues === void 0) {
          parser.opt.unquotedAttributeValues = !strict;
        }
        parser.trackPosition = parser.opt.position !== false;
        if (parser.trackPosition) {
          parser.position = parser.line = parser.column = 0;
        }
        emit(parser, "onready");
      }
      if (!Object.create) {
        Object.create = function(o22) {
          function F() {
          }
          F.prototype = o22;
          var newf = new F();
          return newf;
        };
      }
      if (!Object.keys) {
        Object.keys = function(o22) {
          var a2 = [];
          for (var i22 in o22) if (o22.hasOwnProperty(i22)) a2.push(i22);
          return a2;
        };
      }
      function checkBufferLength(parser) {
        var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10);
        var maxActual = 0;
        for (var i22 = 0, l2 = buffers.length; i22 < l2; i22++) {
          var len = parser[buffers[i22]].length;
          if (len > maxAllowed) {
            switch (buffers[i22]) {
              case "textNode":
                closeText(parser);
                break;
              case "cdata":
                emitNode(parser, "oncdata", parser.cdata);
                parser.cdata = "";
                break;
              case "script":
                emitNode(parser, "onscript", parser.script);
                parser.script = "";
                break;
              default:
                error(parser, "Max buffer length exceeded: " + buffers[i22]);
            }
          }
          maxActual = Math.max(maxActual, len);
        }
        var m2 = sax.MAX_BUFFER_LENGTH - maxActual;
        parser.bufferCheckPosition = m2 + parser.position;
      }
      function clearBuffers(parser) {
        for (var i22 = 0, l2 = buffers.length; i22 < l2; i22++) {
          parser[buffers[i22]] = "";
        }
      }
      function flushBuffers(parser) {
        closeText(parser);
        if (parser.cdata !== "") {
          emitNode(parser, "oncdata", parser.cdata);
          parser.cdata = "";
        }
        if (parser.script !== "") {
          emitNode(parser, "onscript", parser.script);
          parser.script = "";
        }
      }
      SAXParser.prototype = {
        end: function() {
          end(this);
        },
        write: write2,
        resume: function() {
          this.error = null;
          return this;
        },
        close: function() {
          return this.write(null);
        },
        flush: function() {
          flushBuffers(this);
        }
      };
      var Stream;
      try {
        Stream = __require("stream").Stream;
      } catch (ex) {
        Stream = function() {
        };
      }
      if (!Stream) Stream = function() {
      };
      var streamWraps = sax.EVENTS.filter(function(ev) {
        return ev !== "error" && ev !== "end";
      });
      function createStream(strict, opt) {
        return new SAXStream(strict, opt);
      }
      function SAXStream(strict, opt) {
        if (!(this instanceof SAXStream)) {
          return new SAXStream(strict, opt);
        }
        Stream.apply(this);
        this._parser = new SAXParser(strict, opt);
        this.writable = true;
        this.readable = true;
        var me3 = this;
        this._parser.onend = function() {
          me3.emit("end");
        };
        this._parser.onerror = function(er3) {
          me3.emit("error", er3);
          me3._parser.error = null;
        };
        this._decoder = null;
        streamWraps.forEach(function(ev) {
          Object.defineProperty(me3, "on" + ev, {
            get: function() {
              return me3._parser["on" + ev];
            },
            set: function(h23) {
              if (!h23) {
                me3.removeAllListeners(ev);
                me3._parser["on" + ev] = h23;
                return h23;
              }
              me3.on(ev, h23);
            },
            enumerable: true,
            configurable: false
          });
        });
      }
      SAXStream.prototype = Object.create(Stream.prototype, {
        constructor: {
          value: SAXStream
        }
      });
      SAXStream.prototype.write = function(data) {
        if (typeof Buffer === "function" && typeof Buffer.isBuffer === "function" && Buffer.isBuffer(data)) {
          if (!this._decoder) {
            this._decoder = new TextDecoder("utf8");
          }
          data = this._decoder.decode(data, { stream: true });
        }
        this._parser.write(data.toString());
        this.emit("data", data);
        return true;
      };
      SAXStream.prototype.end = function(chunk2) {
        if (chunk2 && chunk2.length) {
          this.write(chunk2);
        }
        if (this._decoder) {
          var remaining = this._decoder.decode();
          if (remaining) {
            this._parser.write(remaining);
            this.emit("data", remaining);
          }
        }
        this._parser.end();
        return true;
      };
      SAXStream.prototype.on = function(ev, handler) {
        var me3 = this;
        if (!me3._parser["on" + ev] && streamWraps.indexOf(ev) !== -1) {
          me3._parser["on" + ev] = function() {
            var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);
            args.splice(0, 0, ev);
            me3.emit.apply(me3, args);
          };
        }
        return Stream.prototype.on.call(me3, ev, handler);
      };
      var CDATA3 = "[CDATA[";
      var DOCTYPE = "DOCTYPE";
      var XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace";
      var XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/";
      var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };
      var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;
      var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;
      var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;
      var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;
      function isWhitespace2(c3) {
        return c3 === " " || c3 === "\n" || c3 === "\r" || c3 === "	";
      }
      function isQuote(c3) {
        return c3 === '"' || c3 === "'";
      }
      function isAttribEnd(c3) {
        return c3 === ">" || isWhitespace2(c3);
      }
      function isMatch(regex, c3) {
        return regex.test(c3);
      }
      function notMatch(regex, c3) {
        return !isMatch(regex, c3);
      }
      var S3 = 0;
      sax.STATE = {
        BEGIN: S3++,
        // leading byte order mark or whitespace
        BEGIN_WHITESPACE: S3++,
        // leading whitespace
        TEXT: S3++,
        // general stuff
        TEXT_ENTITY: S3++,
        // &amp and such.
        OPEN_WAKA: S3++,
        // <
        SGML_DECL: S3++,
        // <!BLARG
        SGML_DECL_QUOTED: S3++,
        // <!BLARG foo "bar
        DOCTYPE: S3++,
        // <!DOCTYPE
        DOCTYPE_QUOTED: S3++,
        // <!DOCTYPE "//blah
        DOCTYPE_DTD: S3++,
        // <!DOCTYPE "//blah" [ ...
        DOCTYPE_DTD_QUOTED: S3++,
        // <!DOCTYPE "//blah" [ "foo
        COMMENT_STARTING: S3++,
        // <!-
        COMMENT: S3++,
        // <!--
        COMMENT_ENDING: S3++,
        // <!-- blah -
        COMMENT_ENDED: S3++,
        // <!-- blah --
        CDATA: S3++,
        // <![CDATA[ something
        CDATA_ENDING: S3++,
        // ]
        CDATA_ENDING_2: S3++,
        // ]]
        PROC_INST: S3++,
        // <?hi
        PROC_INST_BODY: S3++,
        // <?hi there
        PROC_INST_ENDING: S3++,
        // <?hi "there" ?
        OPEN_TAG: S3++,
        // <strong
        OPEN_TAG_SLASH: S3++,
        // <strong /
        ATTRIB: S3++,
        // <a
        ATTRIB_NAME: S3++,
        // <a foo
        ATTRIB_NAME_SAW_WHITE: S3++,
        // <a foo _
        ATTRIB_VALUE: S3++,
        // <a foo=
        ATTRIB_VALUE_QUOTED: S3++,
        // <a foo="bar
        ATTRIB_VALUE_CLOSED: S3++,
        // <a foo="bar"
        ATTRIB_VALUE_UNQUOTED: S3++,
        // <a foo=bar
        ATTRIB_VALUE_ENTITY_Q: S3++,
        // <foo bar="&quot;"
        ATTRIB_VALUE_ENTITY_U: S3++,
        // <foo bar=&quot
        CLOSE_TAG: S3++,
        // </a
        CLOSE_TAG_SAW_WHITE: S3++,
        // </a   >
        SCRIPT: S3++,
        // <script> ...
        SCRIPT_ENDING: S3++
        // <script> ... <
      };
      sax.XML_ENTITIES = {
        amp: "&",
        gt: ">",
        lt: "<",
        quot: '"',
        apos: "'"
      };
      sax.ENTITIES = {
        amp: "&",
        gt: ">",
        lt: "<",
        quot: '"',
        apos: "'",
        AElig: 198,
        Aacute: 193,
        Acirc: 194,
        Agrave: 192,
        Aring: 197,
        Atilde: 195,
        Auml: 196,
        Ccedil: 199,
        ETH: 208,
        Eacute: 201,
        Ecirc: 202,
        Egrave: 200,
        Euml: 203,
        Iacute: 205,
        Icirc: 206,
        Igrave: 204,
        Iuml: 207,
        Ntilde: 209,
        Oacute: 211,
        Ocirc: 212,
        Ograve: 210,
        Oslash: 216,
        Otilde: 213,
        Ouml: 214,
        THORN: 222,
        Uacute: 218,
        Ucirc: 219,
        Ugrave: 217,
        Uuml: 220,
        Yacute: 221,
        aacute: 225,
        acirc: 226,
        aelig: 230,
        agrave: 224,
        aring: 229,
        atilde: 227,
        auml: 228,
        ccedil: 231,
        eacute: 233,
        ecirc: 234,
        egrave: 232,
        eth: 240,
        euml: 235,
        iacute: 237,
        icirc: 238,
        igrave: 236,
        iuml: 239,
        ntilde: 241,
        oacute: 243,
        ocirc: 244,
        ograve: 242,
        oslash: 248,
        otilde: 245,
        ouml: 246,
        szlig: 223,
        thorn: 254,
        uacute: 250,
        ucirc: 251,
        ugrave: 249,
        uuml: 252,
        yacute: 253,
        yuml: 255,
        copy: 169,
        reg: 174,
        nbsp: 160,
        iexcl: 161,
        cent: 162,
        pound: 163,
        curren: 164,
        yen: 165,
        brvbar: 166,
        sect: 167,
        uml: 168,
        ordf: 170,
        laquo: 171,
        not: 172,
        shy: 173,
        macr: 175,
        deg: 176,
        plusmn: 177,
        sup1: 185,
        sup2: 178,
        sup3: 179,
        acute: 180,
        micro: 181,
        para: 182,
        middot: 183,
        cedil: 184,
        ordm: 186,
        raquo: 187,
        frac14: 188,
        frac12: 189,
        frac34: 190,
        iquest: 191,
        times: 215,
        divide: 247,
        OElig: 338,
        oelig: 339,
        Scaron: 352,
        scaron: 353,
        Yuml: 376,
        fnof: 402,
        circ: 710,
        tilde: 732,
        Alpha: 913,
        Beta: 914,
        Gamma: 915,
        Delta: 916,
        Epsilon: 917,
        Zeta: 918,
        Eta: 919,
        Theta: 920,
        Iota: 921,
        Kappa: 922,
        Lambda: 923,
        Mu: 924,
        Nu: 925,
        Xi: 926,
        Omicron: 927,
        Pi: 928,
        Rho: 929,
        Sigma: 931,
        Tau: 932,
        Upsilon: 933,
        Phi: 934,
        Chi: 935,
        Psi: 936,
        Omega: 937,
        alpha: 945,
        beta: 946,
        gamma: 947,
        delta: 948,
        epsilon: 949,
        zeta: 950,
        eta: 951,
        theta: 952,
        iota: 953,
        kappa: 954,
        lambda: 955,
        mu: 956,
        nu: 957,
        xi: 958,
        omicron: 959,
        pi: 960,
        rho: 961,
        sigmaf: 962,
        sigma: 963,
        tau: 964,
        upsilon: 965,
        phi: 966,
        chi: 967,
        psi: 968,
        omega: 969,
        thetasym: 977,
        upsih: 978,
        piv: 982,
        ensp: 8194,
        emsp: 8195,
        thinsp: 8201,
        zwnj: 8204,
        zwj: 8205,
        lrm: 8206,
        rlm: 8207,
        ndash: 8211,
        mdash: 8212,
        lsquo: 8216,
        rsquo: 8217,
        sbquo: 8218,
        ldquo: 8220,
        rdquo: 8221,
        bdquo: 8222,
        dagger: 8224,
        Dagger: 8225,
        bull: 8226,
        hellip: 8230,
        permil: 8240,
        prime: 8242,
        Prime: 8243,
        lsaquo: 8249,
        rsaquo: 8250,
        oline: 8254,
        frasl: 8260,
        euro: 8364,
        image: 8465,
        weierp: 8472,
        real: 8476,
        trade: 8482,
        alefsym: 8501,
        larr: 8592,
        uarr: 8593,
        rarr: 8594,
        darr: 8595,
        harr: 8596,
        crarr: 8629,
        lArr: 8656,
        uArr: 8657,
        rArr: 8658,
        dArr: 8659,
        hArr: 8660,
        forall: 8704,
        part: 8706,
        exist: 8707,
        empty: 8709,
        nabla: 8711,
        isin: 8712,
        notin: 8713,
        ni: 8715,
        prod: 8719,
        sum: 8721,
        minus: 8722,
        lowast: 8727,
        radic: 8730,
        prop: 8733,
        infin: 8734,
        ang: 8736,
        and: 8743,
        or: 8744,
        cap: 8745,
        cup: 8746,
        int: 8747,
        there4: 8756,
        sim: 8764,
        cong: 8773,
        asymp: 8776,
        ne: 8800,
        equiv: 8801,
        le: 8804,
        ge: 8805,
        sub: 8834,
        sup: 8835,
        nsub: 8836,
        sube: 8838,
        supe: 8839,
        oplus: 8853,
        otimes: 8855,
        perp: 8869,
        sdot: 8901,
        lceil: 8968,
        rceil: 8969,
        lfloor: 8970,
        rfloor: 8971,
        lang: 9001,
        rang: 9002,
        loz: 9674,
        spades: 9824,
        clubs: 9827,
        hearts: 9829,
        diams: 9830
      };
      Object.keys(sax.ENTITIES).forEach(function(key) {
        var e2 = sax.ENTITIES[key];
        var s22 = typeof e2 === "number" ? String.fromCharCode(e2) : e2;
        sax.ENTITIES[key] = s22;
      });
      for (var s2 in sax.STATE) {
        sax.STATE[sax.STATE[s2]] = s2;
      }
      S3 = sax.STATE;
      function emit(parser, event, data) {
        parser[event] && parser[event](data);
      }
      function emitNode(parser, nodeType, data) {
        if (parser.textNode) closeText(parser);
        emit(parser, nodeType, data);
      }
      function closeText(parser) {
        parser.textNode = textopts(parser.opt, parser.textNode);
        if (parser.textNode) emit(parser, "ontext", parser.textNode);
        parser.textNode = "";
      }
      function textopts(opt, text) {
        if (opt.trim) text = text.trim();
        if (opt.normalize) text = text.replace(/\s+/g, " ");
        return text;
      }
      function error(parser, er3) {
        closeText(parser);
        if (parser.trackPosition) {
          er3 += "\nLine: " + parser.line + "\nColumn: " + parser.column + "\nChar: " + parser.c;
        }
        er3 = new Error(er3);
        parser.error = er3;
        emit(parser, "onerror", er3);
        return parser;
      }
      function end(parser) {
        if (parser.sawRoot && !parser.closedRoot)
          strictFail(parser, "Unclosed root tag");
        if (parser.state !== S3.BEGIN && parser.state !== S3.BEGIN_WHITESPACE && parser.state !== S3.TEXT) {
          error(parser, "Unexpected end");
        }
        closeText(parser);
        parser.c = "";
        parser.closed = true;
        emit(parser, "onend");
        SAXParser.call(parser, parser.strict, parser.opt);
        return parser;
      }
      function strictFail(parser, message) {
        if (typeof parser !== "object" || !(parser instanceof SAXParser)) {
          throw new Error("bad call to strictFail");
        }
        if (parser.strict) {
          error(parser, message);
        }
      }
      function newTag(parser) {
        if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();
        var parent = parser.tags[parser.tags.length - 1] || parser;
        var tag = parser.tag = { name: parser.tagName, attributes: {} };
        if (parser.opt.xmlns) {
          tag.ns = parent.ns;
        }
        parser.attribList.length = 0;
        emitNode(parser, "onopentagstart", tag);
      }
      function qname(name2, attribute) {
        var i22 = name2.indexOf(":");
        var qualName = i22 < 0 ? ["", name2] : name2.split(":");
        var prefix = qualName[0];
        var local = qualName[1];
        if (attribute && name2 === "xmlns") {
          prefix = "xmlns";
          local = "";
        }
        return { prefix, local };
      }
      function attrib(parser) {
        if (!parser.strict) {
          parser.attribName = parser.attribName[parser.looseCase]();
        }
        if (parser.attribList.indexOf(parser.attribName) !== -1 || parser.tag.attributes.hasOwnProperty(parser.attribName)) {
          parser.attribName = parser.attribValue = "";
          return;
        }
        if (parser.opt.xmlns) {
          var qn3 = qname(parser.attribName, true);
          var prefix = qn3.prefix;
          var local = qn3.local;
          if (prefix === "xmlns") {
            if (local === "xml" && parser.attribValue !== XML_NAMESPACE) {
              strictFail(
                parser,
                "xml: prefix must be bound to " + XML_NAMESPACE + "\nActual: " + parser.attribValue
              );
            } else if (local === "xmlns" && parser.attribValue !== XMLNS_NAMESPACE) {
              strictFail(
                parser,
                "xmlns: prefix must be bound to " + XMLNS_NAMESPACE + "\nActual: " + parser.attribValue
              );
            } else {
              var tag = parser.tag;
              var parent = parser.tags[parser.tags.length - 1] || parser;
              if (tag.ns === parent.ns) {
                tag.ns = Object.create(parent.ns);
              }
              tag.ns[local] = parser.attribValue;
            }
          }
          parser.attribList.push([parser.attribName, parser.attribValue]);
        } else {
          parser.tag.attributes[parser.attribName] = parser.attribValue;
          emitNode(parser, "onattribute", {
            name: parser.attribName,
            value: parser.attribValue
          });
        }
        parser.attribName = parser.attribValue = "";
      }
      function openTag(parser, selfClosing) {
        if (parser.opt.xmlns) {
          var tag = parser.tag;
          var qn3 = qname(parser.tagName);
          tag.prefix = qn3.prefix;
          tag.local = qn3.local;
          tag.uri = tag.ns[qn3.prefix] || "";
          if (tag.prefix && !tag.uri) {
            strictFail(
              parser,
              "Unbound namespace prefix: " + JSON.stringify(parser.tagName)
            );
            tag.uri = qn3.prefix;
          }
          var parent = parser.tags[parser.tags.length - 1] || parser;
          if (tag.ns && parent.ns !== tag.ns) {
            Object.keys(tag.ns).forEach(function(p) {
              emitNode(parser, "onopennamespace", {
                prefix: p,
                uri: tag.ns[p]
              });
            });
          }
          for (var i22 = 0, l2 = parser.attribList.length; i22 < l2; i22++) {
            var nv = parser.attribList[i22];
            var name2 = nv[0];
            var value = nv[1];
            var qualName = qname(name2, true);
            var prefix = qualName.prefix;
            var local = qualName.local;
            var uri = prefix === "" ? "" : tag.ns[prefix] || "";
            var a2 = {
              name: name2,
              value,
              prefix,
              local,
              uri
            };
            if (prefix && prefix !== "xmlns" && !uri) {
              strictFail(
                parser,
                "Unbound namespace prefix: " + JSON.stringify(prefix)
              );
              a2.uri = prefix;
            }
            parser.tag.attributes[name2] = a2;
            emitNode(parser, "onattribute", a2);
          }
          parser.attribList.length = 0;
        }
        parser.tag.isSelfClosing = !!selfClosing;
        parser.sawRoot = true;
        parser.tags.push(parser.tag);
        emitNode(parser, "onopentag", parser.tag);
        if (!selfClosing) {
          if (!parser.noscript && parser.tagName.toLowerCase() === "script") {
            parser.state = S3.SCRIPT;
          } else {
            parser.state = S3.TEXT;
          }
          parser.tag = null;
          parser.tagName = "";
        }
        parser.attribName = parser.attribValue = "";
        parser.attribList.length = 0;
      }
      function closeTag(parser) {
        if (!parser.tagName) {
          strictFail(parser, "Weird empty close tag.");
          parser.textNode += "</>";
          parser.state = S3.TEXT;
          return;
        }
        if (parser.script) {
          if (parser.tagName !== "script") {
            parser.script += "</" + parser.tagName + ">";
            parser.tagName = "";
            parser.state = S3.SCRIPT;
            return;
          }
          emitNode(parser, "onscript", parser.script);
          parser.script = "";
        }
        var t9 = parser.tags.length;
        var tagName = parser.tagName;
        if (!parser.strict) {
          tagName = tagName[parser.looseCase]();
        }
        var closeTo = tagName;
        while (t9--) {
          var close = parser.tags[t9];
          if (close.name !== closeTo) {
            strictFail(parser, "Unexpected close tag");
          } else {
            break;
          }
        }
        if (t9 < 0) {
          strictFail(parser, "Unmatched closing tag: " + parser.tagName);
          parser.textNode += "</" + parser.tagName + ">";
          parser.state = S3.TEXT;
          return;
        }
        parser.tagName = tagName;
        var s22 = parser.tags.length;
        while (s22-- > t9) {
          var tag = parser.tag = parser.tags.pop();
          parser.tagName = parser.tag.name;
          emitNode(parser, "onclosetag", parser.tagName);
          var x3 = {};
          for (var i22 in tag.ns) {
            x3[i22] = tag.ns[i22];
          }
          var parent = parser.tags[parser.tags.length - 1] || parser;
          if (parser.opt.xmlns && tag.ns !== parent.ns) {
            Object.keys(tag.ns).forEach(function(p) {
              var n22 = tag.ns[p];
              emitNode(parser, "onclosenamespace", { prefix: p, uri: n22 });
            });
          }
        }
        if (t9 === 0) parser.closedRoot = true;
        parser.tagName = parser.attribValue = parser.attribName = "";
        parser.attribList.length = 0;
        parser.state = S3.TEXT;
      }
      function parseEntity(parser) {
        var entity = parser.entity;
        var entityLC = entity.toLowerCase();
        var num;
        var numStr = "";
        if (parser.ENTITIES[entity]) {
          return parser.ENTITIES[entity];
        }
        if (parser.ENTITIES[entityLC]) {
          return parser.ENTITIES[entityLC];
        }
        entity = entityLC;
        if (entity.charAt(0) === "#") {
          if (entity.charAt(1) === "x") {
            entity = entity.slice(2);
            num = parseInt(entity, 16);
            numStr = num.toString(16);
          } else {
            entity = entity.slice(1);
            num = parseInt(entity, 10);
            numStr = num.toString(10);
          }
        }
        entity = entity.replace(/^0+/, "");
        if (isNaN(num) || numStr.toLowerCase() !== entity || num < 0 || num > 1114111) {
          strictFail(parser, "Invalid character entity");
          return "&" + parser.entity + ";";
        }
        return String.fromCodePoint(num);
      }
      function beginWhiteSpace(parser, c3) {
        if (c3 === "<") {
          parser.state = S3.OPEN_WAKA;
          parser.startTagPosition = parser.position;
        } else if (!isWhitespace2(c3)) {
          strictFail(parser, "Non-whitespace before first tag.");
          parser.textNode = c3;
          parser.state = S3.TEXT;
        }
      }
      function charAt(chunk2, i22) {
        var result = "";
        if (i22 < chunk2.length) {
          result = chunk2.charAt(i22);
        }
        return result;
      }
      function write2(chunk2) {
        var parser = this;
        if (this.error) {
          throw this.error;
        }
        if (parser.closed) {
          return error(
            parser,
            "Cannot write after close. Assign an onready handler."
          );
        }
        if (chunk2 === null) {
          return end(parser);
        }
        if (typeof chunk2 === "object") {
          chunk2 = chunk2.toString();
        }
        var i22 = 0;
        var c3 = "";
        while (true) {
          c3 = charAt(chunk2, i22++);
          parser.c = c3;
          if (!c3) {
            break;
          }
          if (parser.trackPosition) {
            parser.position++;
            if (c3 === "\n") {
              parser.line++;
              parser.column = 0;
            } else {
              parser.column++;
            }
          }
          switch (parser.state) {
            case S3.BEGIN:
              parser.state = S3.BEGIN_WHITESPACE;
              if (c3 === "\uFEFF") {
                continue;
              }
              beginWhiteSpace(parser, c3);
              continue;
            case S3.BEGIN_WHITESPACE:
              beginWhiteSpace(parser, c3);
              continue;
            case S3.TEXT:
              if (parser.sawRoot && !parser.closedRoot) {
                var starti = i22 - 1;
                while (c3 && c3 !== "<" && c3 !== "&") {
                  c3 = charAt(chunk2, i22++);
                  if (c3 && parser.trackPosition) {
                    parser.position++;
                    if (c3 === "\n") {
                      parser.line++;
                      parser.column = 0;
                    } else {
                      parser.column++;
                    }
                  }
                }
                parser.textNode += chunk2.substring(starti, i22 - 1);
              }
              if (c3 === "<" && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {
                parser.state = S3.OPEN_WAKA;
                parser.startTagPosition = parser.position;
              } else {
                if (!isWhitespace2(c3) && (!parser.sawRoot || parser.closedRoot)) {
                  strictFail(parser, "Text data outside of root node.");
                }
                if (c3 === "&") {
                  parser.state = S3.TEXT_ENTITY;
                } else {
                  parser.textNode += c3;
                }
              }
              continue;
            case S3.SCRIPT:
              if (c3 === "<") {
                parser.state = S3.SCRIPT_ENDING;
              } else {
                parser.script += c3;
              }
              continue;
            case S3.SCRIPT_ENDING:
              if (c3 === "/") {
                parser.state = S3.CLOSE_TAG;
              } else {
                parser.script += "<" + c3;
                parser.state = S3.SCRIPT;
              }
              continue;
            case S3.OPEN_WAKA:
              if (c3 === "!") {
                parser.state = S3.SGML_DECL;
                parser.sgmlDecl = "";
              } else if (isWhitespace2(c3)) {
              } else if (isMatch(nameStart, c3)) {
                parser.state = S3.OPEN_TAG;
                parser.tagName = c3;
              } else if (c3 === "/") {
                parser.state = S3.CLOSE_TAG;
                parser.tagName = "";
              } else if (c3 === "?") {
                parser.state = S3.PROC_INST;
                parser.procInstName = parser.procInstBody = "";
              } else {
                strictFail(parser, "Unencoded <");
                if (parser.startTagPosition + 1 < parser.position) {
                  var pad = parser.position - parser.startTagPosition;
                  c3 = new Array(pad).join(" ") + c3;
                }
                parser.textNode += "<" + c3;
                parser.state = S3.TEXT;
              }
              continue;
            case S3.SGML_DECL:
              if (parser.sgmlDecl + c3 === "--") {
                parser.state = S3.COMMENT;
                parser.comment = "";
                parser.sgmlDecl = "";
                continue;
              }
              if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {
                parser.state = S3.DOCTYPE_DTD;
                parser.doctype += "<!" + parser.sgmlDecl + c3;
                parser.sgmlDecl = "";
              } else if ((parser.sgmlDecl + c3).toUpperCase() === CDATA3) {
                emitNode(parser, "onopencdata");
                parser.state = S3.CDATA;
                parser.sgmlDecl = "";
                parser.cdata = "";
              } else if ((parser.sgmlDecl + c3).toUpperCase() === DOCTYPE) {
                parser.state = S3.DOCTYPE;
                if (parser.doctype || parser.sawRoot) {
                  strictFail(
                    parser,
                    "Inappropriately located doctype declaration"
                  );
                }
                parser.doctype = "";
                parser.sgmlDecl = "";
              } else if (c3 === ">") {
                emitNode(parser, "onsgmldeclaration", parser.sgmlDecl);
                parser.sgmlDecl = "";
                parser.state = S3.TEXT;
              } else if (isQuote(c3)) {
                parser.state = S3.SGML_DECL_QUOTED;
                parser.sgmlDecl += c3;
              } else {
                parser.sgmlDecl += c3;
              }
              continue;
            case S3.SGML_DECL_QUOTED:
              if (c3 === parser.q) {
                parser.state = S3.SGML_DECL;
                parser.q = "";
              }
              parser.sgmlDecl += c3;
              continue;
            case S3.DOCTYPE:
              if (c3 === ">") {
                parser.state = S3.TEXT;
                emitNode(parser, "ondoctype", parser.doctype);
                parser.doctype = true;
              } else {
                parser.doctype += c3;
                if (c3 === "[") {
                  parser.state = S3.DOCTYPE_DTD;
                } else if (isQuote(c3)) {
                  parser.state = S3.DOCTYPE_QUOTED;
                  parser.q = c3;
                }
              }
              continue;
            case S3.DOCTYPE_QUOTED:
              parser.doctype += c3;
              if (c3 === parser.q) {
                parser.q = "";
                parser.state = S3.DOCTYPE;
              }
              continue;
            case S3.DOCTYPE_DTD:
              if (c3 === "]") {
                parser.doctype += c3;
                parser.state = S3.DOCTYPE;
              } else if (c3 === "<") {
                parser.state = S3.OPEN_WAKA;
                parser.startTagPosition = parser.position;
              } else if (isQuote(c3)) {
                parser.doctype += c3;
                parser.state = S3.DOCTYPE_DTD_QUOTED;
                parser.q = c3;
              } else {
                parser.doctype += c3;
              }
              continue;
            case S3.DOCTYPE_DTD_QUOTED:
              parser.doctype += c3;
              if (c3 === parser.q) {
                parser.state = S3.DOCTYPE_DTD;
                parser.q = "";
              }
              continue;
            case S3.COMMENT:
              if (c3 === "-") {
                parser.state = S3.COMMENT_ENDING;
              } else {
                parser.comment += c3;
              }
              continue;
            case S3.COMMENT_ENDING:
              if (c3 === "-") {
                parser.state = S3.COMMENT_ENDED;
                parser.comment = textopts(parser.opt, parser.comment);
                if (parser.comment) {
                  emitNode(parser, "oncomment", parser.comment);
                }
                parser.comment = "";
              } else {
                parser.comment += "-" + c3;
                parser.state = S3.COMMENT;
              }
              continue;
            case S3.COMMENT_ENDED:
              if (c3 !== ">") {
                strictFail(parser, "Malformed comment");
                parser.comment += "--" + c3;
                parser.state = S3.COMMENT;
              } else if (parser.doctype && parser.doctype !== true) {
                parser.state = S3.DOCTYPE_DTD;
              } else {
                parser.state = S3.TEXT;
              }
              continue;
            case S3.CDATA:
              var starti = i22 - 1;
              while (c3 && c3 !== "]") {
                c3 = charAt(chunk2, i22++);
                if (c3 && parser.trackPosition) {
                  parser.position++;
                  if (c3 === "\n") {
                    parser.line++;
                    parser.column = 0;
                  } else {
                    parser.column++;
                  }
                }
              }
              parser.cdata += chunk2.substring(starti, i22 - 1);
              if (c3 === "]") {
                parser.state = S3.CDATA_ENDING;
              }
              continue;
            case S3.CDATA_ENDING:
              if (c3 === "]") {
                parser.state = S3.CDATA_ENDING_2;
              } else {
                parser.cdata += "]" + c3;
                parser.state = S3.CDATA;
              }
              continue;
            case S3.CDATA_ENDING_2:
              if (c3 === ">") {
                if (parser.cdata) {
                  emitNode(parser, "oncdata", parser.cdata);
                }
                emitNode(parser, "onclosecdata");
                parser.cdata = "";
                parser.state = S3.TEXT;
              } else if (c3 === "]") {
                parser.cdata += "]";
              } else {
                parser.cdata += "]]" + c3;
                parser.state = S3.CDATA;
              }
              continue;
            case S3.PROC_INST:
              if (c3 === "?") {
                parser.state = S3.PROC_INST_ENDING;
              } else if (isWhitespace2(c3)) {
                parser.state = S3.PROC_INST_BODY;
              } else {
                parser.procInstName += c3;
              }
              continue;
            case S3.PROC_INST_BODY:
              if (!parser.procInstBody && isWhitespace2(c3)) {
                continue;
              } else if (c3 === "?") {
                parser.state = S3.PROC_INST_ENDING;
              } else {
                parser.procInstBody += c3;
              }
              continue;
            case S3.PROC_INST_ENDING:
              if (c3 === ">") {
                emitNode(parser, "onprocessinginstruction", {
                  name: parser.procInstName,
                  body: parser.procInstBody
                });
                parser.procInstName = parser.procInstBody = "";
                parser.state = S3.TEXT;
              } else {
                parser.procInstBody += "?" + c3;
                parser.state = S3.PROC_INST_BODY;
              }
              continue;
            case S3.OPEN_TAG:
              if (isMatch(nameBody, c3)) {
                parser.tagName += c3;
              } else {
                newTag(parser);
                if (c3 === ">") {
                  openTag(parser);
                } else if (c3 === "/") {
                  parser.state = S3.OPEN_TAG_SLASH;
                } else {
                  if (!isWhitespace2(c3)) {
                    strictFail(parser, "Invalid character in tag name");
                  }
                  parser.state = S3.ATTRIB;
                }
              }
              continue;
            case S3.OPEN_TAG_SLASH:
              if (c3 === ">") {
                openTag(parser, true);
                closeTag(parser);
              } else {
                strictFail(
                  parser,
                  "Forward-slash in opening tag not followed by >"
                );
                parser.state = S3.ATTRIB;
              }
              continue;
            case S3.ATTRIB:
              if (isWhitespace2(c3)) {
                continue;
              } else if (c3 === ">") {
                openTag(parser);
              } else if (c3 === "/") {
                parser.state = S3.OPEN_TAG_SLASH;
              } else if (isMatch(nameStart, c3)) {
                parser.attribName = c3;
                parser.attribValue = "";
                parser.state = S3.ATTRIB_NAME;
              } else {
                strictFail(parser, "Invalid attribute name");
              }
              continue;
            case S3.ATTRIB_NAME:
              if (c3 === "=") {
                parser.state = S3.ATTRIB_VALUE;
              } else if (c3 === ">") {
                strictFail(parser, "Attribute without value");
                parser.attribValue = parser.attribName;
                attrib(parser);
                openTag(parser);
              } else if (isWhitespace2(c3)) {
                parser.state = S3.ATTRIB_NAME_SAW_WHITE;
              } else if (isMatch(nameBody, c3)) {
                parser.attribName += c3;
              } else {
                strictFail(parser, "Invalid attribute name");
              }
              continue;
            case S3.ATTRIB_NAME_SAW_WHITE:
              if (c3 === "=") {
                parser.state = S3.ATTRIB_VALUE;
              } else if (isWhitespace2(c3)) {
                continue;
              } else {
                strictFail(parser, "Attribute without value");
                parser.tag.attributes[parser.attribName] = "";
                parser.attribValue = "";
                emitNode(parser, "onattribute", {
                  name: parser.attribName,
                  value: ""
                });
                parser.attribName = "";
                if (c3 === ">") {
                  openTag(parser);
                } else if (isMatch(nameStart, c3)) {
                  parser.attribName = c3;
                  parser.state = S3.ATTRIB_NAME;
                } else {
                  strictFail(parser, "Invalid attribute name");
                  parser.state = S3.ATTRIB;
                }
              }
              continue;
            case S3.ATTRIB_VALUE:
              if (isWhitespace2(c3)) {
                continue;
              } else if (isQuote(c3)) {
                parser.q = c3;
                parser.state = S3.ATTRIB_VALUE_QUOTED;
              } else {
                if (!parser.opt.unquotedAttributeValues) {
                  error(parser, "Unquoted attribute value");
                }
                parser.state = S3.ATTRIB_VALUE_UNQUOTED;
                parser.attribValue = c3;
              }
              continue;
            case S3.ATTRIB_VALUE_QUOTED:
              if (c3 !== parser.q) {
                if (c3 === "&") {
                  parser.state = S3.ATTRIB_VALUE_ENTITY_Q;
                } else {
                  parser.attribValue += c3;
                }
                continue;
              }
              attrib(parser);
              parser.q = "";
              parser.state = S3.ATTRIB_VALUE_CLOSED;
              continue;
            case S3.ATTRIB_VALUE_CLOSED:
              if (isWhitespace2(c3)) {
                parser.state = S3.ATTRIB;
              } else if (c3 === ">") {
                openTag(parser);
              } else if (c3 === "/") {
                parser.state = S3.OPEN_TAG_SLASH;
              } else if (isMatch(nameStart, c3)) {
                strictFail(parser, "No whitespace between attributes");
                parser.attribName = c3;
                parser.attribValue = "";
                parser.state = S3.ATTRIB_NAME;
              } else {
                strictFail(parser, "Invalid attribute name");
              }
              continue;
            case S3.ATTRIB_VALUE_UNQUOTED:
              if (!isAttribEnd(c3)) {
                if (c3 === "&") {
                  parser.state = S3.ATTRIB_VALUE_ENTITY_U;
                } else {
                  parser.attribValue += c3;
                }
                continue;
              }
              attrib(parser);
              if (c3 === ">") {
                openTag(parser);
              } else {
                parser.state = S3.ATTRIB;
              }
              continue;
            case S3.CLOSE_TAG:
              if (!parser.tagName) {
                if (isWhitespace2(c3)) {
                  continue;
                } else if (notMatch(nameStart, c3)) {
                  if (parser.script) {
                    parser.script += "</" + c3;
                    parser.state = S3.SCRIPT;
                  } else {
                    strictFail(parser, "Invalid tagname in closing tag.");
                  }
                } else {
                  parser.tagName = c3;
                }
              } else if (c3 === ">") {
                closeTag(parser);
              } else if (isMatch(nameBody, c3)) {
                parser.tagName += c3;
              } else if (parser.script) {
                parser.script += "</" + parser.tagName + c3;
                parser.tagName = "";
                parser.state = S3.SCRIPT;
              } else {
                if (!isWhitespace2(c3)) {
                  strictFail(parser, "Invalid tagname in closing tag");
                }
                parser.state = S3.CLOSE_TAG_SAW_WHITE;
              }
              continue;
            case S3.CLOSE_TAG_SAW_WHITE:
              if (isWhitespace2(c3)) {
                continue;
              }
              if (c3 === ">") {
                closeTag(parser);
              } else {
                strictFail(parser, "Invalid characters in closing tag");
              }
              continue;
            case S3.TEXT_ENTITY:
            case S3.ATTRIB_VALUE_ENTITY_Q:
            case S3.ATTRIB_VALUE_ENTITY_U:
              var returnState;
              var buffer;
              switch (parser.state) {
                case S3.TEXT_ENTITY:
                  returnState = S3.TEXT;
                  buffer = "textNode";
                  break;
                case S3.ATTRIB_VALUE_ENTITY_Q:
                  returnState = S3.ATTRIB_VALUE_QUOTED;
                  buffer = "attribValue";
                  break;
                case S3.ATTRIB_VALUE_ENTITY_U:
                  returnState = S3.ATTRIB_VALUE_UNQUOTED;
                  buffer = "attribValue";
                  break;
              }
              if (c3 === ";") {
                var parsedEntity = parseEntity(parser);
                if (parser.opt.unparsedEntities && !Object.values(sax.XML_ENTITIES).includes(parsedEntity)) {
                  parser.entity = "";
                  parser.state = returnState;
                  parser.write(parsedEntity);
                } else {
                  parser[buffer] += parsedEntity;
                  parser.entity = "";
                  parser.state = returnState;
                }
              } else if (isMatch(parser.entity.length ? entityBody : entityStart, c3)) {
                parser.entity += c3;
              } else {
                strictFail(parser, "Invalid character in entity name");
                parser[buffer] += "&" + parser.entity + c3;
                parser.entity = "";
                parser.state = returnState;
              }
              continue;
            default: {
              throw new Error(parser, "Unknown state: " + parser.state);
            }
          }
        }
        if (parser.position >= parser.bufferCheckPosition) {
          checkBufferLength(parser);
        }
        return parser;
      }
      if (!String.fromCodePoint) {
        ;
        (function() {
          var stringFromCharCode = String.fromCharCode;
          var floor = Math.floor;
          var fromCodePoint2 = function() {
            var MAX_SIZE = 16384;
            var codeUnits = [];
            var highSurrogate;
            var lowSurrogate;
            var index = -1;
            var length = arguments.length;
            if (!length) {
              return "";
            }
            var result = "";
            while (++index < length) {
              var codePoint = Number(arguments[index]);
              if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
              codePoint < 0 || // not a valid Unicode code point
              codePoint > 1114111 || // not a valid Unicode code point
              floor(codePoint) !== codePoint) {
                throw RangeError("Invalid code point: " + codePoint);
              }
              if (codePoint <= 65535) {
                codeUnits.push(codePoint);
              } else {
                codePoint -= 65536;
                highSurrogate = (codePoint >> 10) + 55296;
                lowSurrogate = codePoint % 1024 + 56320;
                codeUnits.push(highSurrogate, lowSurrogate);
              }
              if (index + 1 === length || codeUnits.length > MAX_SIZE) {
                result += stringFromCharCode.apply(null, codeUnits);
                codeUnits.length = 0;
              }
            }
            return result;
          };
          if (Object.defineProperty) {
            Object.defineProperty(String, "fromCodePoint", {
              value: fromCodePoint2,
              configurable: true,
              writable: true
            });
          } else {
            String.fromCodePoint = fromCodePoint2;
          }
        })();
      }
    })(typeof exports2 === "undefined" ? exports2.sax = {} : exports2);
  }
});
var require_utils8 = __commonJS2({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/utils.js"(exports2) {
    "use strict";
    exports2.removeLeadingAndTrailingHTTPWhitespace = (string) => {
      return string.replace(/^[ \t\n\r]+/u, "").replace(/[ \t\n\r]+$/u, "");
    };
    exports2.removeTrailingHTTPWhitespace = (string) => {
      return string.replace(/[ \t\n\r]+$/u, "");
    };
    exports2.isHTTPWhitespaceChar = (char) => {
      return char === " " || char === "	" || char === "\n" || char === "\r";
    };
    exports2.solelyContainsHTTPTokenCodePoints = (string) => {
      return /^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/u.test(string);
    };
    exports2.soleyContainsHTTPQuotedStringTokenCodePoints = (string) => {
      return /^[\t\u0020-\u007E\u0080-\u00FF]*$/u.test(string);
    };
    exports2.asciiLowercase = (string) => {
      return string.replace(/[A-Z]/ug, (l2) => l2.toLowerCase());
    };
    exports2.collectAnHTTPQuotedString = (input, position) => {
      let value = "";
      position++;
      while (true) {
        while (position < input.length && input[position] !== '"' && input[position] !== "\\") {
          value += input[position];
          ++position;
        }
        if (position >= input.length) {
          break;
        }
        const quoteOrBackslash = input[position];
        ++position;
        if (quoteOrBackslash === "\\") {
          if (position >= input.length) {
            value += "\\";
            break;
          }
          value += input[position];
          ++position;
        } else {
          break;
        }
      }
      return [value, position];
    };
  }
});
var require_mime_type_parameters = __commonJS2({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/mime-type-parameters.js"(exports2, module2) {
    "use strict";
    var {
      asciiLowercase,
      solelyContainsHTTPTokenCodePoints,
      soleyContainsHTTPQuotedStringTokenCodePoints
    } = require_utils8();
    module2.exports = class MIMETypeParameters {
      constructor(map2) {
        this._map = map2;
      }
      get size() {
        return this._map.size;
      }
      get(name2) {
        name2 = asciiLowercase(String(name2));
        return this._map.get(name2);
      }
      has(name2) {
        name2 = asciiLowercase(String(name2));
        return this._map.has(name2);
      }
      set(name2, value) {
        name2 = asciiLowercase(String(name2));
        value = String(value);
        if (!solelyContainsHTTPTokenCodePoints(name2)) {
          throw new Error(`Invalid MIME type parameter name "${name2}": only HTTP token code points are valid.`);
        }
        if (!soleyContainsHTTPQuotedStringTokenCodePoints(value)) {
          throw new Error(`Invalid MIME type parameter value "${value}": only HTTP quoted-string token code points are valid.`);
        }
        return this._map.set(name2, value);
      }
      clear() {
        this._map.clear();
      }
      delete(name2) {
        name2 = asciiLowercase(String(name2));
        return this._map.delete(name2);
      }
      forEach(callbackFn, thisArg) {
        this._map.forEach(callbackFn, thisArg);
      }
      keys() {
        return this._map.keys();
      }
      values() {
        return this._map.values();
      }
      entries() {
        return this._map.entries();
      }
      [Symbol.iterator]() {
        return this._map[Symbol.iterator]();
      }
    };
  }
});
var require_parser2 = __commonJS2({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/parser.js"(exports2, module2) {
    "use strict";
    var {
      removeLeadingAndTrailingHTTPWhitespace,
      removeTrailingHTTPWhitespace,
      isHTTPWhitespaceChar,
      solelyContainsHTTPTokenCodePoints,
      soleyContainsHTTPQuotedStringTokenCodePoints,
      asciiLowercase,
      collectAnHTTPQuotedString
    } = require_utils8();
    module2.exports = (input) => {
      input = removeLeadingAndTrailingHTTPWhitespace(input);
      let position = 0;
      let type = "";
      while (position < input.length && input[position] !== "/") {
        type += input[position];
        ++position;
      }
      if (type.length === 0 || !solelyContainsHTTPTokenCodePoints(type)) {
        return null;
      }
      if (position >= input.length) {
        return null;
      }
      ++position;
      let subtype = "";
      while (position < input.length && input[position] !== ";") {
        subtype += input[position];
        ++position;
      }
      subtype = removeTrailingHTTPWhitespace(subtype);
      if (subtype.length === 0 || !solelyContainsHTTPTokenCodePoints(subtype)) {
        return null;
      }
      const mimeType = {
        type: asciiLowercase(type),
        subtype: asciiLowercase(subtype),
        parameters: /* @__PURE__ */ new Map()
      };
      while (position < input.length) {
        ++position;
        while (isHTTPWhitespaceChar(input[position])) {
          ++position;
        }
        let parameterName = "";
        while (position < input.length && input[position] !== ";" && input[position] !== "=") {
          parameterName += input[position];
          ++position;
        }
        parameterName = asciiLowercase(parameterName);
        if (position < input.length) {
          if (input[position] === ";") {
            continue;
          }
          ++position;
        }
        let parameterValue = null;
        if (input[position] === '"') {
          [parameterValue, position] = collectAnHTTPQuotedString(input, position);
          while (position < input.length && input[position] !== ";") {
            ++position;
          }
        } else {
          parameterValue = "";
          while (position < input.length && input[position] !== ";") {
            parameterValue += input[position];
            ++position;
          }
          parameterValue = removeTrailingHTTPWhitespace(parameterValue);
          if (parameterValue === "") {
            continue;
          }
        }
        if (parameterName.length > 0 && solelyContainsHTTPTokenCodePoints(parameterName) && soleyContainsHTTPQuotedStringTokenCodePoints(parameterValue) && !mimeType.parameters.has(parameterName)) {
          mimeType.parameters.set(parameterName, parameterValue);
        }
      }
      return mimeType;
    };
  }
});
var require_serializer2 = __commonJS2({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/serializer.js"(exports2, module2) {
    "use strict";
    var { solelyContainsHTTPTokenCodePoints } = require_utils8();
    module2.exports = (mimeType) => {
      let serialization = `${mimeType.type}/${mimeType.subtype}`;
      if (mimeType.parameters.size === 0) {
        return serialization;
      }
      for (let [name2, value] of mimeType.parameters) {
        serialization += ";";
        serialization += name2;
        serialization += "=";
        if (!solelyContainsHTTPTokenCodePoints(value) || value.length === 0) {
          value = value.replace(/(["\\])/ug, "\\$1");
          value = `"${value}"`;
        }
        serialization += value;
      }
      return serialization;
    };
  }
});
var require_mime_type = __commonJS2({
  "../../node_modules/.pnpm/whatwg-mimetype@4.0.0/node_modules/whatwg-mimetype/lib/mime-type.js"(exports2, module2) {
    "use strict";
    var MIMETypeParameters = require_mime_type_parameters();
    var parse = require_parser2();
    var serialize2 = require_serializer2();
    var {
      asciiLowercase,
      solelyContainsHTTPTokenCodePoints
    } = require_utils8();
    module2.exports = class MIMEType {
      constructor(string) {
        string = String(string);
        const result = parse(string);
        if (result === null) {
          throw new Error(`Could not parse MIME type string "${string}"`);
        }
        this._type = result.type;
        this._subtype = result.subtype;
        this._parameters = new MIMETypeParameters(result.parameters);
      }
      static parse(string) {
        try {
          return new this(string);
        } catch (e2) {
          return null;
        }
      }
      get essence() {
        return `${this.type}/${this.subtype}`;
      }
      get type() {
        return this._type;
      }
      set type(value) {
        value = asciiLowercase(String(value));
        if (value.length === 0) {
          throw new Error("Invalid type: must be a non-empty string");
        }
        if (!solelyContainsHTTPTokenCodePoints(value)) {
          throw new Error(`Invalid type ${value}: must contain only HTTP token code points`);
        }
        this._type = value;
      }
      get subtype() {
        return this._subtype;
      }
      set subtype(value) {
        value = asciiLowercase(String(value));
        if (value.length === 0) {
          throw new Error("Invalid subtype: must be a non-empty string");
        }
        if (!solelyContainsHTTPTokenCodePoints(value)) {
          throw new Error(`Invalid subtype ${value}: must contain only HTTP token code points`);
        }
        this._subtype = value;
      }
      get parameters() {
        return this._parameters;
      }
      toString() {
        return serialize2(this);
      }
      isJavaScript({ prohibitParameters = false } = {}) {
        switch (this._type) {
          case "text": {
            switch (this._subtype) {
              case "ecmascript":
              case "javascript":
              case "javascript1.0":
              case "javascript1.1":
              case "javascript1.2":
              case "javascript1.3":
              case "javascript1.4":
              case "javascript1.5":
              case "jscript":
              case "livescript":
              case "x-ecmascript":
              case "x-javascript": {
                return !prohibitParameters || this._parameters.size === 0;
              }
              default: {
                return false;
              }
            }
          }
          case "application": {
            switch (this._subtype) {
              case "ecmascript":
              case "javascript":
              case "x-ecmascript":
              case "x-javascript": {
                return !prohibitParameters || this._parameters.size === 0;
              }
              default: {
                return false;
              }
            }
          }
          default: {
            return false;
          }
        }
      }
      isXML() {
        return this._subtype === "xml" && (this._type === "text" || this._type === "application") || this._subtype.endsWith("+xml");
      }
      isHTML() {
        return this._subtype === "html" && this._type === "text";
      }
    };
  }
});
var defaultMessages;
var EndOfStreamError;
var AbortError2;
var init_Errors = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Errors.js"() {
    defaultMessages = "End-Of-Stream";
    EndOfStreamError = class extends Error {
      constructor() {
        super(defaultMessages);
        this.name = "EndOfStreamError";
      }
    };
    AbortError2 = class extends Error {
      constructor(message = "The operation was aborted") {
        super(message);
        this.name = "AbortError";
      }
    };
  }
});
var Deferred;
var init_Deferred = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Deferred.js"() {
    Deferred = class {
      constructor() {
        this.resolve = () => null;
        this.reject = () => null;
        this.promise = new Promise((resolve2, reject) => {
          this.reject = reject;
          this.resolve = resolve2;
        });
      }
    };
  }
});
var AbstractStreamReader;
var init_AbstractStreamReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/AbstractStreamReader.js"() {
    init_Errors();
    AbstractStreamReader = class {
      constructor() {
        this.endOfStream = false;
        this.interrupted = false;
        this.peekQueue = [];
      }
      async peek(uint8Array, mayBeLess = false) {
        const bytesRead = await this.read(uint8Array, mayBeLess);
        this.peekQueue.push(uint8Array.subarray(0, bytesRead));
        return bytesRead;
      }
      async read(buffer, mayBeLess = false) {
        if (buffer.length === 0) {
          return 0;
        }
        let bytesRead = this.readFromPeekBuffer(buffer);
        if (!this.endOfStream) {
          bytesRead += await this.readRemainderFromStream(buffer.subarray(bytesRead), mayBeLess);
        }
        if (bytesRead === 0 && !mayBeLess) {
          throw new EndOfStreamError();
        }
        return bytesRead;
      }
      /**
       * Read chunk from stream
       * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in
       * @returns Number of bytes read
       */
      readFromPeekBuffer(buffer) {
        let remaining = buffer.length;
        let bytesRead = 0;
        while (this.peekQueue.length > 0 && remaining > 0) {
          const peekData = this.peekQueue.pop();
          if (!peekData)
            throw new Error("peekData should be defined");
          const lenCopy = Math.min(peekData.length, remaining);
          buffer.set(peekData.subarray(0, lenCopy), bytesRead);
          bytesRead += lenCopy;
          remaining -= lenCopy;
          if (lenCopy < peekData.length) {
            this.peekQueue.push(peekData.subarray(lenCopy));
          }
        }
        return bytesRead;
      }
      async readRemainderFromStream(buffer, mayBeLess) {
        let bytesRead = 0;
        while (bytesRead < buffer.length && !this.endOfStream) {
          if (this.interrupted) {
            throw new AbortError2();
          }
          const chunkLen = await this.readFromStream(buffer.subarray(bytesRead), mayBeLess);
          if (chunkLen === 0)
            break;
          bytesRead += chunkLen;
        }
        if (!mayBeLess && bytesRead < buffer.length) {
          throw new EndOfStreamError();
        }
        return bytesRead;
      }
    };
  }
});
var StreamReader;
var init_StreamReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/StreamReader.js"() {
    init_Errors();
    init_Deferred();
    init_AbstractStreamReader();
    StreamReader = class extends AbstractStreamReader {
      constructor(s2) {
        super();
        this.s = s2;
        this.deferred = null;
        if (!s2.read || !s2.once) {
          throw new Error("Expected an instance of stream.Readable");
        }
        this.s.once("end", () => {
          this.endOfStream = true;
          if (this.deferred) {
            this.deferred.resolve(0);
          }
        });
        this.s.once("error", (err2) => this.reject(err2));
        this.s.once("close", () => this.abort());
      }
      /**
       * Read chunk from stream
       * @param buffer Target Uint8Array (or Buffer) to store data read from stream in
       * @param mayBeLess - If true, may fill the buffer partially
       * @returns Number of bytes read
       */
      async readFromStream(buffer, mayBeLess) {
        if (buffer.length === 0)
          return 0;
        const readBuffer = this.s.read(buffer.length);
        if (readBuffer) {
          buffer.set(readBuffer);
          return readBuffer.length;
        }
        const request = {
          buffer,
          mayBeLess,
          deferred: new Deferred()
        };
        this.deferred = request.deferred;
        this.s.once("readable", () => {
          this.readDeferred(request);
        });
        return request.deferred.promise;
      }
      /**
       * Process deferred read request
       * @param request Deferred read request
       */
      readDeferred(request) {
        const readBuffer = this.s.read(request.buffer.length);
        if (readBuffer) {
          request.buffer.set(readBuffer);
          request.deferred.resolve(readBuffer.length);
          this.deferred = null;
        } else {
          this.s.once("readable", () => {
            this.readDeferred(request);
          });
        }
      }
      reject(err2) {
        this.interrupted = true;
        if (this.deferred) {
          this.deferred.reject(err2);
          this.deferred = null;
        }
      }
      async abort() {
        this.reject(new AbortError2());
      }
      async close() {
        return this.abort();
      }
    };
  }
});
var WebStreamReader;
var init_WebStreamReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReader.js"() {
    init_AbstractStreamReader();
    WebStreamReader = class extends AbstractStreamReader {
      constructor(reader) {
        super();
        this.reader = reader;
      }
      async abort() {
        return this.close();
      }
      async close() {
        this.reader.releaseLock();
      }
    };
  }
});
var WebStreamByobReader;
var init_WebStreamByobReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamByobReader.js"() {
    init_WebStreamReader();
    WebStreamByobReader = class extends WebStreamReader {
      /**
       * Read from stream
       * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in
       * @param mayBeLess - If true, may fill the buffer partially
       * @protected Bytes read
       */
      async readFromStream(buffer, mayBeLess) {
        if (buffer.length === 0)
          return 0;
        const result = await this.reader.read(new Uint8Array(buffer.length), { min: mayBeLess ? void 0 : buffer.length });
        if (result.done) {
          this.endOfStream = result.done;
        }
        if (result.value) {
          buffer.set(result.value);
          return result.value.length;
        }
        return 0;
      }
    };
  }
});
var WebStreamDefaultReader;
var init_WebStreamDefaultReader = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js"() {
    init_Errors();
    init_AbstractStreamReader();
    WebStreamDefaultReader = class extends AbstractStreamReader {
      constructor(reader) {
        super();
        this.reader = reader;
        this.buffer = null;
      }
      /**
       * Copy chunk to target, and store the remainder in this.buffer
       */
      writeChunk(target, chunk2) {
        const written = Math.min(chunk2.length, target.length);
        target.set(chunk2.subarray(0, written));
        if (written < chunk2.length) {
          this.buffer = chunk2.subarray(written);
        } else {
          this.buffer = null;
        }
        return written;
      }
      /**
       * Read from stream
       * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in
       * @param mayBeLess - If true, may fill the buffer partially
       * @protected Bytes read
       */
      async readFromStream(buffer, mayBeLess) {
        if (buffer.length === 0)
          return 0;
        let totalBytesRead = 0;
        if (this.buffer) {
          totalBytesRead += this.writeChunk(buffer, this.buffer);
        }
        while (totalBytesRead < buffer.length && !this.endOfStream) {
          const result = await this.reader.read();
          if (result.done) {
            this.endOfStream = true;
            break;
          }
          if (result.value) {
            totalBytesRead += this.writeChunk(buffer.subarray(totalBytesRead), result.value);
          }
        }
        if (!mayBeLess && totalBytesRead === 0 && this.endOfStream) {
          throw new EndOfStreamError();
        }
        return totalBytesRead;
      }
      abort() {
        this.interrupted = true;
        return this.reader.cancel();
      }
      async close() {
        await this.abort();
        this.reader.releaseLock();
      }
    };
  }
});
function makeWebStreamReader(stream5) {
  try {
    const reader = stream5.getReader({ mode: "byob" });
    if (reader instanceof ReadableStreamDefaultReader) {
      return new WebStreamDefaultReader(reader);
    }
    return new WebStreamByobReader(reader);
  } catch (error) {
    if (error instanceof TypeError) {
      return new WebStreamDefaultReader(stream5.getReader());
    }
    throw error;
  }
}
var init_WebStreamReaderFactory = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js"() {
    init_WebStreamByobReader();
    init_WebStreamDefaultReader();
  }
});
var init_stream2 = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/index.js"() {
    init_Errors();
    init_StreamReader();
    init_WebStreamByobReader();
    init_WebStreamDefaultReader();
    init_WebStreamReaderFactory();
  }
});
var AbstractTokenizer;
var init_AbstractTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/AbstractTokenizer.js"() {
    init_stream2();
    AbstractTokenizer = class {
      /**
       * Constructor
       * @param options Tokenizer options
       * @protected
       */
      constructor(options) {
        this.numBuffer = new Uint8Array(8);
        this.position = 0;
        this.onClose = options?.onClose;
        if (options?.abortSignal) {
          options.abortSignal.addEventListener("abort", () => {
            this.abort();
          });
        }
      }
      /**
       * Read a token from the tokenizer-stream
       * @param token - The token to read
       * @param position - If provided, the desired position in the tokenizer-stream
       * @returns Promise with token data
       */
      async readToken(token2, position = this.position) {
        const uint8Array = new Uint8Array(token2.len);
        const len = await this.readBuffer(uint8Array, { position });
        if (len < token2.len)
          throw new EndOfStreamError();
        return token2.get(uint8Array, 0);
      }
      /**
       * Peek a token from the tokenizer-stream.
       * @param token - Token to peek from the tokenizer-stream.
       * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.
       * @returns Promise with token data
       */
      async peekToken(token2, position = this.position) {
        const uint8Array = new Uint8Array(token2.len);
        const len = await this.peekBuffer(uint8Array, { position });
        if (len < token2.len)
          throw new EndOfStreamError();
        return token2.get(uint8Array, 0);
      }
      /**
       * Read a numeric token from the stream
       * @param token - Numeric token
       * @returns Promise with number
       */
      async readNumber(token2) {
        const len = await this.readBuffer(this.numBuffer, { length: token2.len });
        if (len < token2.len)
          throw new EndOfStreamError();
        return token2.get(this.numBuffer, 0);
      }
      /**
       * Read a numeric token from the stream
       * @param token - Numeric token
       * @returns Promise with number
       */
      async peekNumber(token2) {
        const len = await this.peekBuffer(this.numBuffer, { length: token2.len });
        if (len < token2.len)
          throw new EndOfStreamError();
        return token2.get(this.numBuffer, 0);
      }
      /**
       * Ignore number of bytes, advances the pointer in under tokenizer-stream.
       * @param length - Number of bytes to ignore
       * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available
       */
      async ignore(length) {
        if (this.fileInfo.size !== void 0) {
          const bytesLeft = this.fileInfo.size - this.position;
          if (length > bytesLeft) {
            this.position += bytesLeft;
            return bytesLeft;
          }
        }
        this.position += length;
        return length;
      }
      async close() {
        await this.abort();
        await this.onClose?.();
      }
      normalizeOptions(uint8Array, options) {
        if (!this.supportsRandomAccess() && options && options.position !== void 0 && options.position < this.position) {
          throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
        }
        return {
          ...{
            mayBeLess: false,
            offset: 0,
            length: uint8Array.length,
            position: this.position
          },
          ...options
        };
      }
      abort() {
        return Promise.resolve();
      }
    };
  }
});
var maxBufferSize;
var ReadStreamTokenizer;
var init_ReadStreamTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/ReadStreamTokenizer.js"() {
    init_AbstractTokenizer();
    init_stream2();
    maxBufferSize = 256e3;
    ReadStreamTokenizer = class extends AbstractTokenizer {
      /**
       * Constructor
       * @param streamReader stream-reader to read from
       * @param options Tokenizer options
       */
      constructor(streamReader, options) {
        super(options);
        this.streamReader = streamReader;
        this.fileInfo = options?.fileInfo ?? {};
      }
      /**
       * Read buffer from tokenizer
       * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream
       * @param options - Read behaviour options
       * @returns Promise with number of bytes read
       */
      async readBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        const skipBytes = normOptions.position - this.position;
        if (skipBytes > 0) {
          await this.ignore(skipBytes);
          return this.readBuffer(uint8Array, options);
        }
        if (skipBytes < 0) {
          throw new Error("`options.position` must be equal or greater than `tokenizer.position`");
        }
        if (normOptions.length === 0) {
          return 0;
        }
        const bytesRead = await this.streamReader.read(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);
        this.position += bytesRead;
        if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {
          throw new EndOfStreamError();
        }
        return bytesRead;
      }
      /**
       * Peek (read ahead) buffer from tokenizer
       * @param uint8Array - Uint8Array (or Buffer) to write data to
       * @param options - Read behaviour options
       * @returns Promise with number of bytes peeked
       */
      async peekBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        let bytesRead = 0;
        if (normOptions.position) {
          const skipBytes = normOptions.position - this.position;
          if (skipBytes > 0) {
            const skipBuffer = new Uint8Array(normOptions.length + skipBytes);
            bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });
            uint8Array.set(skipBuffer.subarray(skipBytes));
            return bytesRead - skipBytes;
          }
          if (skipBytes < 0) {
            throw new Error("Cannot peek from a negative offset in a stream");
          }
        }
        if (normOptions.length > 0) {
          try {
            bytesRead = await this.streamReader.peek(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);
          } catch (err2) {
            if (options?.mayBeLess && err2 instanceof EndOfStreamError) {
              return 0;
            }
            throw err2;
          }
          if (!normOptions.mayBeLess && bytesRead < normOptions.length) {
            throw new EndOfStreamError();
          }
        }
        return bytesRead;
      }
      async ignore(length) {
        const bufSize = Math.min(maxBufferSize, length);
        const buf = new Uint8Array(bufSize);
        let totBytesRead = 0;
        while (totBytesRead < length) {
          const remaining = length - totBytesRead;
          const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });
          if (bytesRead < 0) {
            return bytesRead;
          }
          totBytesRead += bytesRead;
        }
        return totBytesRead;
      }
      abort() {
        return this.streamReader.abort();
      }
      async close() {
        return this.streamReader.close();
      }
      supportsRandomAccess() {
        return false;
      }
    };
  }
});
var BufferTokenizer;
var init_BufferTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BufferTokenizer.js"() {
    init_stream2();
    init_AbstractTokenizer();
    BufferTokenizer = class extends AbstractTokenizer {
      /**
       * Construct BufferTokenizer
       * @param uint8Array - Uint8Array to tokenize
       * @param options Tokenizer options
       */
      constructor(uint8Array, options) {
        super(options);
        this.uint8Array = uint8Array;
        this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: uint8Array.length } };
      }
      /**
       * Read buffer from tokenizer
       * @param uint8Array - Uint8Array to tokenize
       * @param options - Read behaviour options
       * @returns {Promise<number>}
       */
      async readBuffer(uint8Array, options) {
        if (options?.position) {
          this.position = options.position;
        }
        const bytesRead = await this.peekBuffer(uint8Array, options);
        this.position += bytesRead;
        return bytesRead;
      }
      /**
       * Peek (read ahead) buffer from tokenizer
       * @param uint8Array
       * @param options - Read behaviour options
       * @returns {Promise<number>}
       */
      async peekBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);
        if (!normOptions.mayBeLess && bytes2read < normOptions.length) {
          throw new EndOfStreamError();
        }
        uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read));
        return bytes2read;
      }
      close() {
        return super.close();
      }
      supportsRandomAccess() {
        return true;
      }
      setPosition(position) {
        this.position = position;
      }
    };
  }
});
var init_BlobTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BlobTokenizer.js"() {
    init_stream2();
    init_AbstractTokenizer();
  }
});
function fromStream(stream5, options) {
  const streamReader = new StreamReader(stream5);
  const _options2 = options ?? {};
  const chainedClose = _options2.onClose;
  _options2.onClose = async () => {
    await streamReader.close();
    if (chainedClose) {
      return chainedClose();
    }
  };
  return new ReadStreamTokenizer(streamReader, _options2);
}
function fromWebStream(webStream, options) {
  const webStreamReader = makeWebStreamReader(webStream);
  const _options2 = options ?? {};
  const chainedClose = _options2.onClose;
  _options2.onClose = async () => {
    await webStreamReader.close();
    if (chainedClose) {
      return chainedClose();
    }
  };
  return new ReadStreamTokenizer(webStreamReader, _options2);
}
function fromBuffer(uint8Array, options) {
  return new BufferTokenizer(uint8Array, options);
}
var init_core2 = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/core.js"() {
    init_stream2();
    init_ReadStreamTokenizer();
    init_BufferTokenizer();
    init_BlobTokenizer();
    init_stream2();
    init_AbstractTokenizer();
  }
});
var FileTokenizer;
var init_FileTokenizer = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/FileTokenizer.js"() {
    init_AbstractTokenizer();
    init_stream2();
    FileTokenizer = class _FileTokenizer extends AbstractTokenizer {
      /**
       * Create tokenizer from provided file path
       * @param sourceFilePath File path
       */
      static async fromFile(sourceFilePath) {
        const fileHandle = await (0, import_promises3.open)(sourceFilePath, "r");
        const stat = await fileHandle.stat();
        return new _FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } });
      }
      constructor(fileHandle, options) {
        super(options);
        this.fileHandle = fileHandle;
        this.fileInfo = options.fileInfo;
      }
      /**
       * Read buffer from file
       * @param uint8Array - Uint8Array to write result to
       * @param options - Read behaviour options
       * @returns Promise number of bytes read
       */
      async readBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        this.position = normOptions.position;
        if (normOptions.length === 0)
          return 0;
        const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);
        this.position += res.bytesRead;
        if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {
          throw new EndOfStreamError();
        }
        return res.bytesRead;
      }
      /**
       * Peek buffer from file
       * @param uint8Array - Uint8Array (or Buffer) to write data to
       * @param options - Read behaviour options
       * @returns Promise number of bytes read
       */
      async peekBuffer(uint8Array, options) {
        const normOptions = this.normalizeOptions(uint8Array, options);
        const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);
        if (!normOptions.mayBeLess && res.bytesRead < normOptions.length) {
          throw new EndOfStreamError();
        }
        return res.bytesRead;
      }
      async close() {
        await this.fileHandle.close();
        return super.close();
      }
      setPosition(position) {
        this.position = position;
      }
      supportsRandomAccess() {
        return true;
      }
    };
  }
});
async function fromStream2(stream5, options) {
  const rst = fromStream(stream5, options);
  if (stream5.path) {
    const stat = await (0, import_promises4.stat)(stream5.path);
    rst.fileInfo.path = stream5.path;
    rst.fileInfo.size = stat.size;
  }
  return rst;
}
var fromFile;
var init_lib2 = __esm({
  "../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/index.js"() {
    init_core2();
    init_FileTokenizer();
    init_FileTokenizer();
    init_core2();
    fromFile = FileTokenizer.fromFile;
  }
});
var require_ieee754 = __commonJS2({
  "../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js"(exports2) {
    exports2.read = function(buffer, offset, isLE, mLen, nBytes) {
      var e2, m2;
      var eLen = nBytes * 8 - mLen - 1;
      var eMax = (1 << eLen) - 1;
      var eBias = eMax >> 1;
      var nBits = -7;
      var i22 = isLE ? nBytes - 1 : 0;
      var d = isLE ? -1 : 1;
      var s2 = buffer[offset + i22];
      i22 += d;
      e2 = s2 & (1 << -nBits) - 1;
      s2 >>= -nBits;
      nBits += eLen;
      for (; nBits > 0; e2 = e2 * 256 + buffer[offset + i22], i22 += d, nBits -= 8) {
      }
      m2 = e2 & (1 << -nBits) - 1;
      e2 >>= -nBits;
      nBits += mLen;
      for (; nBits > 0; m2 = m2 * 256 + buffer[offset + i22], i22 += d, nBits -= 8) {
      }
      if (e2 === 0) {
        e2 = 1 - eBias;
      } else if (e2 === eMax) {
        return m2 ? NaN : (s2 ? -1 : 1) * Infinity;
      } else {
        m2 = m2 + Math.pow(2, mLen);
        e2 = e2 - eBias;
      }
      return (s2 ? -1 : 1) * m2 * Math.pow(2, e2 - mLen);
    };
    exports2.write = function(buffer, value, offset, isLE, mLen, nBytes) {
      var e2, m2, c3;
      var eLen = nBytes * 8 - mLen - 1;
      var eMax = (1 << eLen) - 1;
      var eBias = eMax >> 1;
      var rt3 = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
      var i22 = isLE ? 0 : nBytes - 1;
      var d = isLE ? 1 : -1;
      var s2 = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
      value = Math.abs(value);
      if (isNaN(value) || value === Infinity) {
        m2 = isNaN(value) ? 1 : 0;
        e2 = eMax;
      } else {
        e2 = Math.floor(Math.log(value) / Math.LN2);
        if (value * (c3 = Math.pow(2, -e2)) < 1) {
          e2--;
          c3 *= 2;
        }
        if (e2 + eBias >= 1) {
          value += rt3 / c3;
        } else {
          value += rt3 * Math.pow(2, 1 - eBias);
        }
        if (value * c3 >= 2) {
          e2++;
          c3 /= 2;
        }
        if (e2 + eBias >= eMax) {
          m2 = 0;
          e2 = eMax;
        } else if (e2 + eBias >= 1) {
          m2 = (value * c3 - 1) * Math.pow(2, mLen);
          e2 = e2 + eBias;
        } else {
          m2 = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
          e2 = 0;
        }
      }
      for (; mLen >= 8; buffer[offset + i22] = m2 & 255, i22 += d, m2 /= 256, mLen -= 8) {
      }
      e2 = e2 << mLen | m2;
      eLen += mLen;
      for (; eLen > 0; buffer[offset + i22] = e2 & 255, i22 += d, e2 /= 256, eLen -= 8) {
      }
      buffer[offset + i22 - d] |= s2 * 128;
    };
  }
});
function utf8Decoder() {
  if (typeof globalThis.TextDecoder === "undefined")
    return void 0;
  return _utf8Decoder !== null && _utf8Decoder !== void 0 ? _utf8Decoder : _utf8Decoder = new globalThis.TextDecoder("utf-8");
}
function textDecode(bytes, encoding = "utf-8") {
  switch (encoding.toLowerCase()) {
    case "utf-8":
    case "utf8": {
      const dec = utf8Decoder();
      return dec ? dec.decode(bytes) : decodeUTF8(bytes);
    }
    case "utf-16le":
      return decodeUTF16LE(bytes);
    case "us-ascii":
    case "ascii":
      return decodeASCII(bytes);
    case "latin1":
    case "iso-8859-1":
      return decodeLatin1(bytes);
    case "windows-1252":
      return decodeWindows1252(bytes);
    default:
      throw new RangeError(`Encoding '${encoding}' not supported`);
  }
}
function decodeUTF8(bytes) {
  const parts = [];
  let out = "";
  let i22 = 0;
  while (i22 < bytes.length) {
    const b1 = bytes[i22++];
    if (b1 < 128) {
      out += String.fromCharCode(b1);
    } else if (b1 < 224) {
      const b2 = bytes[i22++] & 63;
      out += String.fromCharCode((b1 & 31) << 6 | b2);
    } else if (b1 < 240) {
      const b2 = bytes[i22++] & 63;
      const b3 = bytes[i22++] & 63;
      out += String.fromCharCode((b1 & 15) << 12 | b2 << 6 | b3);
    } else {
      const b2 = bytes[i22++] & 63;
      const b3 = bytes[i22++] & 63;
      const b4 = bytes[i22++] & 63;
      let cp = (b1 & 7) << 18 | b2 << 12 | b3 << 6 | b4;
      cp -= 65536;
      out += String.fromCharCode(55296 + (cp >> 10 & 1023), 56320 + (cp & 1023));
    }
    if (out.length >= CHUNK) {
      parts.push(out);
      out = "";
    }
  }
  if (out)
    parts.push(out);
  return parts.join("");
}
function decodeUTF16LE(bytes) {
  const len = bytes.length & ~1;
  if (len === 0)
    return "";
  const parts = [];
  const maxUnits = CHUNK;
  for (let i22 = 0; i22 < len; ) {
    const unitsThis = Math.min(maxUnits, len - i22 >> 1);
    const units = new Array(unitsThis);
    for (let j2 = 0; j2 < unitsThis; j2++, i22 += 2) {
      units[j2] = bytes[i22] | bytes[i22 + 1] << 8;
    }
    parts.push(String.fromCharCode.apply(null, units));
  }
  return parts.join("");
}
function decodeASCII(bytes) {
  const parts = [];
  for (let i22 = 0; i22 < bytes.length; i22 += CHUNK) {
    const end = Math.min(bytes.length, i22 + CHUNK);
    const codes = new Array(end - i22);
    for (let j2 = i22, k3 = 0; j2 < end; j2++, k3++) {
      codes[k3] = bytes[j2] & 127;
    }
    parts.push(String.fromCharCode.apply(null, codes));
  }
  return parts.join("");
}
function decodeLatin1(bytes) {
  const parts = [];
  for (let i22 = 0; i22 < bytes.length; i22 += CHUNK) {
    const end = Math.min(bytes.length, i22 + CHUNK);
    const codes = new Array(end - i22);
    for (let j2 = i22, k3 = 0; j2 < end; j2++, k3++) {
      codes[k3] = bytes[j2];
    }
    parts.push(String.fromCharCode.apply(null, codes));
  }
  return parts.join("");
}
function decodeWindows1252(bytes) {
  const parts = [];
  let out = "";
  for (let i22 = 0; i22 < bytes.length; i22++) {
    const b2 = bytes[i22];
    const extra = b2 >= 128 && b2 <= 159 ? WINDOWS_1252_EXTRA[b2] : void 0;
    out += extra !== null && extra !== void 0 ? extra : String.fromCharCode(b2);
    if (out.length >= CHUNK) {
      parts.push(out);
      out = "";
    }
  }
  if (out)
    parts.push(out);
  return parts.join("");
}
var WINDOWS_1252_EXTRA;
var WINDOWS_1252_REVERSE;
var _utf8Decoder;
var CHUNK;
var init_lib3 = __esm({
  "../../node_modules/.pnpm/@borewit+text-codec@0.2.1/node_modules/@borewit/text-codec/lib/index.js"() {
    WINDOWS_1252_EXTRA = {
      128: "\u20AC",
      130: "\u201A",
      131: "\u0192",
      132: "\u201E",
      133: "\u2026",
      134: "\u2020",
      135: "\u2021",
      136: "\u02C6",
      137: "\u2030",
      138: "\u0160",
      139: "\u2039",
      140: "\u0152",
      142: "\u017D",
      145: "\u2018",
      146: "\u2019",
      147: "\u201C",
      148: "\u201D",
      149: "\u2022",
      150: "\u2013",
      151: "\u2014",
      152: "\u02DC",
      153: "\u2122",
      154: "\u0161",
      155: "\u203A",
      156: "\u0153",
      158: "\u017E",
      159: "\u0178"
    };
    WINDOWS_1252_REVERSE = {};
    for (const [code, char] of Object.entries(WINDOWS_1252_EXTRA)) {
      WINDOWS_1252_REVERSE[char] = Number.parseInt(code, 10);
    }
    CHUNK = 32 * 1024;
  }
});
function dv(array) {
  return new DataView(array.buffer, array.byteOffset);
}
var ieee754;
var UINT8;
var UINT16_LE;
var UINT16_BE;
var UINT32_LE;
var UINT32_BE;
var INT32_BE;
var UINT64_LE;
var StringType;
var init_lib4 = __esm({
  "../../node_modules/.pnpm/token-types@6.1.2/node_modules/token-types/lib/index.js"() {
    ieee754 = __toESM2(require_ieee754(), 1);
    init_lib3();
    UINT8 = {
      len: 1,
      get(array, offset) {
        return dv(array).getUint8(offset);
      },
      put(array, offset, value) {
        dv(array).setUint8(offset, value);
        return offset + 1;
      }
    };
    UINT16_LE = {
      len: 2,
      get(array, offset) {
        return dv(array).getUint16(offset, true);
      },
      put(array, offset, value) {
        dv(array).setUint16(offset, value, true);
        return offset + 2;
      }
    };
    UINT16_BE = {
      len: 2,
      get(array, offset) {
        return dv(array).getUint16(offset);
      },
      put(array, offset, value) {
        dv(array).setUint16(offset, value);
        return offset + 2;
      }
    };
    UINT32_LE = {
      len: 4,
      get(array, offset) {
        return dv(array).getUint32(offset, true);
      },
      put(array, offset, value) {
        dv(array).setUint32(offset, value, true);
        return offset + 4;
      }
    };
    UINT32_BE = {
      len: 4,
      get(array, offset) {
        return dv(array).getUint32(offset);
      },
      put(array, offset, value) {
        dv(array).setUint32(offset, value);
        return offset + 4;
      }
    };
    INT32_BE = {
      len: 4,
      get(array, offset) {
        return dv(array).getInt32(offset);
      },
      put(array, offset, value) {
        dv(array).setInt32(offset, value);
        return offset + 4;
      }
    };
    UINT64_LE = {
      len: 8,
      get(array, offset) {
        return dv(array).getBigUint64(offset, true);
      },
      put(array, offset, value) {
        dv(array).setBigUint64(offset, value, true);
        return offset + 8;
      }
    };
    StringType = class {
      constructor(len, encoding) {
        this.len = len;
        this.encoding = encoding;
      }
      get(data, offset = 0) {
        const bytes = data.subarray(offset, offset + this.len);
        return textDecode(bytes, this.encoding);
      }
    };
  }
});
function inflateSync(data, opts) {
  return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);
}
function gunzipSync(data, opts) {
  var st3 = gzs(data);
  if (st3 + 8 > data.length)
    err(6, "invalid gzip data");
  return inflt(data.subarray(st3, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);
}
function unzlibSync(data, opts) {
  return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);
}
function decompressSync(data, opts) {
  return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzipSync(data, opts) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflateSync(data, opts) : unzlibSync(data, opts);
}
var require2;
var Worker;
var u8;
var u16;
var i32;
var fleb;
var fdeb;
var clim;
var freb;
var _a;
var fl;
var revfl;
var _b;
var fd;
var revfd;
var rev;
var x;
var i2;
var hMap;
var flt;
var i2;
var i2;
var i2;
var i2;
var fdt;
var i2;
var flrm;
var fdrm;
var max;
var bits;
var bits16;
var shft;
var slc;
var ec;
var err;
var inflt;
var et;
var gzs;
var gzl;
var zls;
var td;
var tds;
var init_esm = __esm({
  "../../node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/index.mjs"() {
    require2 = (0, import_module.createRequire)("/");
    try {
      Worker = require2("worker_threads").Worker;
    } catch (e2) {
    }
    u8 = Uint8Array;
    u16 = Uint16Array;
    i32 = Int32Array;
    fleb = new u8([
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      1,
      1,
      1,
      2,
      2,
      2,
      2,
      3,
      3,
      3,
      3,
      4,
      4,
      4,
      4,
      5,
      5,
      5,
      5,
      0,
      /* unused */
      0,
      0,
      /* impossible */
      0
    ]);
    fdeb = new u8([
      0,
      0,
      0,
      0,
      1,
      1,
      2,
      2,
      3,
      3,
      4,
      4,
      5,
      5,
      6,
      6,
      7,
      7,
      8,
      8,
      9,
      9,
      10,
      10,
      11,
      11,
      12,
      12,
      13,
      13,
      /* unused */
      0,
      0
    ]);
    clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
    freb = function(eb, start) {
      var b2 = new u16(31);
      for (var i22 = 0; i22 < 31; ++i22) {
        b2[i22] = start += 1 << eb[i22 - 1];
      }
      var r2 = new i32(b2[30]);
      for (var i22 = 1; i22 < 30; ++i22) {
        for (var j2 = b2[i22]; j2 < b2[i22 + 1]; ++j2) {
          r2[j2] = j2 - b2[i22] << 5 | i22;
        }
      }
      return { b: b2, r: r2 };
    };
    _a = freb(fleb, 2);
    fl = _a.b;
    revfl = _a.r;
    fl[28] = 258, revfl[258] = 28;
    _b = freb(fdeb, 0);
    fd = _b.b;
    revfd = _b.r;
    rev = new u16(32768);
    for (i2 = 0; i2 < 32768; ++i2) {
      x = (i2 & 43690) >> 1 | (i2 & 21845) << 1;
      x = (x & 52428) >> 2 | (x & 13107) << 2;
      x = (x & 61680) >> 4 | (x & 3855) << 4;
      rev[i2] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1;
    }
    hMap = (function(cd, mb, r2) {
      var s2 = cd.length;
      var i22 = 0;
      var l2 = new u16(mb);
      for (; i22 < s2; ++i22) {
        if (cd[i22])
          ++l2[cd[i22] - 1];
      }
      var le3 = new u16(mb);
      for (i22 = 1; i22 < mb; ++i22) {
        le3[i22] = le3[i22 - 1] + l2[i22 - 1] << 1;
      }
      var co2;
      if (r2) {
        co2 = new u16(1 << mb);
        var rvb = 15 - mb;
        for (i22 = 0; i22 < s2; ++i22) {
          if (cd[i22]) {
            var sv = i22 << 4 | cd[i22];
            var r_1 = mb - cd[i22];
            var v2 = le3[cd[i22] - 1]++ << r_1;
            for (var m2 = v2 | (1 << r_1) - 1; v2 <= m2; ++v2) {
              co2[rev[v2] >> rvb] = sv;
            }
          }
        }
      } else {
        co2 = new u16(s2);
        for (i22 = 0; i22 < s2; ++i22) {
          if (cd[i22]) {
            co2[i22] = rev[le3[cd[i22] - 1]++] >> 15 - cd[i22];
          }
        }
      }
      return co2;
    });
    flt = new u8(288);
    for (i2 = 0; i2 < 144; ++i2)
      flt[i2] = 8;
    for (i2 = 144; i2 < 256; ++i2)
      flt[i2] = 9;
    for (i2 = 256; i2 < 280; ++i2)
      flt[i2] = 7;
    for (i2 = 280; i2 < 288; ++i2)
      flt[i2] = 8;
    fdt = new u8(32);
    for (i2 = 0; i2 < 32; ++i2)
      fdt[i2] = 5;
    flrm = /* @__PURE__ */ hMap(flt, 9, 1);
    fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);
    max = function(a2) {
      var m2 = a2[0];
      for (var i22 = 1; i22 < a2.length; ++i22) {
        if (a2[i22] > m2)
          m2 = a2[i22];
      }
      return m2;
    };
    bits = function(d, p, m2) {
      var o22 = p / 8 | 0;
      return (d[o22] | d[o22 + 1] << 8) >> (p & 7) & m2;
    };
    bits16 = function(d, p) {
      var o22 = p / 8 | 0;
      return (d[o22] | d[o22 + 1] << 8 | d[o22 + 2] << 16) >> (p & 7);
    };
    shft = function(p) {
      return (p + 7) / 8 | 0;
    };
    slc = function(v2, s2, e2) {
      if (s2 == null || s2 < 0)
        s2 = 0;
      if (e2 == null || e2 > v2.length)
        e2 = v2.length;
      return new u8(v2.subarray(s2, e2));
    };
    ec = [
      "unexpected EOF",
      "invalid block type",
      "invalid length/literal",
      "invalid distance",
      "stream finished",
      "no stream handler",
      ,
      "no callback",
      "invalid UTF-8 data",
      "extra field too long",
      "date not in range 1980-2099",
      "filename too long",
      "stream finishing",
      "invalid zip data"
      // determined by unknown compression method
    ];
    err = function(ind, msg, nt3) {
      var e2 = new Error(msg || ec[ind]);
      e2.code = ind;
      if (Error.captureStackTrace)
        Error.captureStackTrace(e2, err);
      if (!nt3)
        throw e2;
      return e2;
    };
    inflt = function(dat, st3, buf, dict) {
      var sl = dat.length, dl = dict ? dict.length : 0;
      if (!sl || st3.f && !st3.l)
        return buf || new u8(0);
      var noBuf = !buf;
      var resize = noBuf || st3.i != 2;
      var noSt = st3.i;
      if (noBuf)
        buf = new u8(sl * 3);
      var cbuf = function(l22) {
        var bl = buf.length;
        if (l22 > bl) {
          var nbuf = new u8(Math.max(bl * 2, l22));
          nbuf.set(buf);
          buf = nbuf;
        }
      };
      var final = st3.f || 0, pos = st3.p || 0, bt3 = st3.b || 0, lm = st3.l, dm = st3.d, lbt = st3.m, dbt = st3.n;
      var tbts = sl * 8;
      do {
        if (!lm) {
          final = bits(dat, pos, 1);
          var type = bits(dat, pos + 1, 3);
          pos += 3;
          if (!type) {
            var s2 = shft(pos) + 4, l2 = dat[s2 - 4] | dat[s2 - 3] << 8, t9 = s2 + l2;
            if (t9 > sl) {
              if (noSt)
                err(0);
              break;
            }
            if (resize)
              cbuf(bt3 + l2);
            buf.set(dat.subarray(s2, t9), bt3);
            st3.b = bt3 += l2, st3.p = pos = t9 * 8, st3.f = final;
            continue;
          } else if (type == 1)
            lm = flrm, dm = fdrm, lbt = 9, dbt = 5;
          else if (type == 2) {
            var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;
            var tl = hLit + bits(dat, pos + 5, 31) + 1;
            pos += 14;
            var ldt = new u8(tl);
            var clt = new u8(19);
            for (var i22 = 0; i22 < hcLen; ++i22) {
              clt[clim[i22]] = bits(dat, pos + i22 * 3, 7);
            }
            pos += hcLen * 3;
            var clb = max(clt), clbmsk = (1 << clb) - 1;
            var clm = hMap(clt, clb, 1);
            for (var i22 = 0; i22 < tl; ) {
              var r2 = clm[bits(dat, pos, clbmsk)];
              pos += r2 & 15;
              var s2 = r2 >> 4;
              if (s2 < 16) {
                ldt[i22++] = s2;
              } else {
                var c3 = 0, n22 = 0;
                if (s2 == 16)
                  n22 = 3 + bits(dat, pos, 3), pos += 2, c3 = ldt[i22 - 1];
                else if (s2 == 17)
                  n22 = 3 + bits(dat, pos, 7), pos += 3;
                else if (s2 == 18)
                  n22 = 11 + bits(dat, pos, 127), pos += 7;
                while (n22--)
                  ldt[i22++] = c3;
              }
            }
            var lt3 = ldt.subarray(0, hLit), dt3 = ldt.subarray(hLit);
            lbt = max(lt3);
            dbt = max(dt3);
            lm = hMap(lt3, lbt, 1);
            dm = hMap(dt3, dbt, 1);
          } else
            err(1);
          if (pos > tbts) {
            if (noSt)
              err(0);
            break;
          }
        }
        if (resize)
          cbuf(bt3 + 131072);
        var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
        var lpos = pos;
        for (; ; lpos = pos) {
          var c3 = lm[bits16(dat, pos) & lms], sym = c3 >> 4;
          pos += c3 & 15;
          if (pos > tbts) {
            if (noSt)
              err(0);
            break;
          }
          if (!c3)
            err(2);
          if (sym < 256)
            buf[bt3++] = sym;
          else if (sym == 256) {
            lpos = pos, lm = null;
            break;
          } else {
            var add = sym - 254;
            if (sym > 264) {
              var i22 = sym - 257, b2 = fleb[i22];
              add = bits(dat, pos, (1 << b2) - 1) + fl[i22];
              pos += b2;
            }
            var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;
            if (!d)
              err(3);
            pos += d & 15;
            var dt3 = fd[dsym];
            if (dsym > 3) {
              var b2 = fdeb[dsym];
              dt3 += bits16(dat, pos) & (1 << b2) - 1, pos += b2;
            }
            if (pos > tbts) {
              if (noSt)
                err(0);
              break;
            }
            if (resize)
              cbuf(bt3 + 131072);
            var end = bt3 + add;
            if (bt3 < dt3) {
              var shift = dl - dt3, dend = Math.min(dt3, end);
              if (shift + bt3 < 0)
                err(3);
              for (; bt3 < dend; ++bt3)
                buf[bt3] = dict[shift + bt3];
            }
            for (; bt3 < end; ++bt3)
              buf[bt3] = buf[bt3 - dt3];
          }
        }
        st3.l = lm, st3.p = lpos, st3.b = bt3, st3.f = final;
        if (lm)
          final = 1, st3.m = lbt, st3.d = dm, st3.n = dbt;
      } while (!final);
      return bt3 != buf.length && noBuf ? slc(buf, 0, bt3) : buf.subarray(0, bt3);
    };
    et = /* @__PURE__ */ new u8(0);
    gzs = function(d) {
      if (d[0] != 31 || d[1] != 139 || d[2] != 8)
        err(6, "invalid gzip data");
      var flg = d[3];
      var st3 = 10;
      if (flg & 4)
        st3 += (d[10] | d[11] << 8) + 2;
      for (var zs2 = (flg >> 3 & 1) + (flg >> 4 & 1); zs2 > 0; zs2 -= !d[st3++])
        ;
      return st3 + (flg & 2);
    };
    gzl = function(d) {
      var l2 = d.length;
      return (d[l2 - 4] | d[l2 - 3] << 8 | d[l2 - 2] << 16 | d[l2 - 1] << 24) >>> 0;
    };
    zls = function(d, dict) {
      if ((d[0] & 15) != 8 || d[0] >> 4 > 7 || (d[0] << 8 | d[1]) % 31)
        err(6, "invalid zlib data");
      if ((d[1] >> 5 & 1) == +!dict)
        err(6, "invalid zlib data: " + (d[1] & 32 ? "need" : "unexpected") + " dictionary");
      return (d[1] >> 3 & 4) + 2;
    };
    td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder();
    tds = 0;
    try {
      td.decode(et, { stream: true });
      tds = 1;
    } catch (e2) {
    }
  }
});
var require_ms = __commonJS2({
  "../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js"(exports2, module2) {
    var s2 = 1e3;
    var m2 = s2 * 60;
    var h23 = m2 * 60;
    var d = h23 * 24;
    var w3 = d * 7;
    var y2 = d * 365.25;
    module2.exports = function(val, options) {
      options = options || {};
      var type = typeof val;
      if (type === "string" && val.length > 0) {
        return parse(val);
      } else if (type === "number" && isFinite(val)) {
        return options.long ? fmtLong(val) : fmtShort(val);
      }
      throw new Error(
        "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
      );
    };
    function parse(str) {
      str = String(str);
      if (str.length > 100) {
        return;
      }
      var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
        str
      );
      if (!match) {
        return;
      }
      var n22 = parseFloat(match[1]);
      var type = (match[2] || "ms").toLowerCase();
      switch (type) {
        case "years":
        case "year":
        case "yrs":
        case "yr":
        case "y":
          return n22 * y2;
        case "weeks":
        case "week":
        case "w":
          return n22 * w3;
        case "days":
        case "day":
        case "d":
          return n22 * d;
        case "hours":
        case "hour":
        case "hrs":
        case "hr":
        case "h":
          return n22 * h23;
        case "minutes":
        case "minute":
        case "mins":
        case "min":
        case "m":
          return n22 * m2;
        case "seconds":
        case "second":
        case "secs":
        case "sec":
        case "s":
          return n22 * s2;
        case "milliseconds":
        case "millisecond":
        case "msecs":
        case "msec":
        case "ms":
          return n22;
        default:
          return void 0;
      }
    }
    function fmtShort(ms2) {
      var msAbs = Math.abs(ms2);
      if (msAbs >= d) {
        return Math.round(ms2 / d) + "d";
      }
      if (msAbs >= h23) {
        return Math.round(ms2 / h23) + "h";
      }
      if (msAbs >= m2) {
        return Math.round(ms2 / m2) + "m";
      }
      if (msAbs >= s2) {
        return Math.round(ms2 / s2) + "s";
      }
      return ms2 + "ms";
    }
    function fmtLong(ms2) {
      var msAbs = Math.abs(ms2);
      if (msAbs >= d) {
        return plural(ms2, msAbs, d, "day");
      }
      if (msAbs >= h23) {
        return plural(ms2, msAbs, h23, "hour");
      }
      if (msAbs >= m2) {
        return plural(ms2, msAbs, m2, "minute");
      }
      if (msAbs >= s2) {
        return plural(ms2, msAbs, s2, "second");
      }
      return ms2 + " ms";
    }
    function plural(ms2, msAbs, n22, name2) {
      var isPlural = msAbs >= n22 * 1.5;
      return Math.round(ms2 / n22) + " " + name2 + (isPlural ? "s" : "");
    }
  }
});
var require_common = __commonJS2({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js"(exports2, module2) {
    function setup(env) {
      createDebug.debug = createDebug;
      createDebug.default = createDebug;
      createDebug.coerce = coerce2;
      createDebug.disable = disable;
      createDebug.enable = enable;
      createDebug.enabled = enabled;
      createDebug.humanize = require_ms();
      createDebug.destroy = destroy;
      Object.keys(env).forEach((key) => {
        createDebug[key] = env[key];
      });
      createDebug.names = [];
      createDebug.skips = [];
      createDebug.formatters = {};
      function selectColor(namespace) {
        let hash = 0;
        for (let i22 = 0; i22 < namespace.length; i22++) {
          hash = (hash << 5) - hash + namespace.charCodeAt(i22);
          hash |= 0;
        }
        return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
      }
      createDebug.selectColor = selectColor;
      function createDebug(namespace) {
        let prevTime;
        let enableOverride = null;
        let namespacesCache;
        let enabledCache;
        function debug2(...args) {
          if (!debug2.enabled) {
            return;
          }
          const self2 = debug2;
          const curr = Number(/* @__PURE__ */ new Date());
          const ms2 = curr - (prevTime || curr);
          self2.diff = ms2;
          self2.prev = prevTime;
          self2.curr = curr;
          prevTime = curr;
          args[0] = createDebug.coerce(args[0]);
          if (typeof args[0] !== "string") {
            args.unshift("%O");
          }
          let index = 0;
          args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
            if (match === "%%") {
              return "%";
            }
            index++;
            const formatter = createDebug.formatters[format];
            if (typeof formatter === "function") {
              const val = args[index];
              match = formatter.call(self2, val);
              args.splice(index, 1);
              index--;
            }
            return match;
          });
          createDebug.formatArgs.call(self2, args);
          const logFn = self2.log || createDebug.log;
          logFn.apply(self2, args);
        }
        debug2.namespace = namespace;
        debug2.useColors = createDebug.useColors();
        debug2.color = createDebug.selectColor(namespace);
        debug2.extend = extend2;
        debug2.destroy = createDebug.destroy;
        Object.defineProperty(debug2, "enabled", {
          enumerable: true,
          configurable: false,
          get: () => {
            if (enableOverride !== null) {
              return enableOverride;
            }
            if (namespacesCache !== createDebug.namespaces) {
              namespacesCache = createDebug.namespaces;
              enabledCache = createDebug.enabled(namespace);
            }
            return enabledCache;
          },
          set: (v2) => {
            enableOverride = v2;
          }
        });
        if (typeof createDebug.init === "function") {
          createDebug.init(debug2);
        }
        return debug2;
      }
      function extend2(namespace, delimiter) {
        const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
        newDebug.log = this.log;
        return newDebug;
      }
      function enable(namespaces) {
        createDebug.save(namespaces);
        createDebug.namespaces = namespaces;
        createDebug.names = [];
        createDebug.skips = [];
        const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
        for (const ns2 of split) {
          if (ns2[0] === "-") {
            createDebug.skips.push(ns2.slice(1));
          } else {
            createDebug.names.push(ns2);
          }
        }
      }
      function matchesTemplate(search, template) {
        let searchIndex = 0;
        let templateIndex = 0;
        let starIndex = -1;
        let matchIndex = 0;
        while (searchIndex < search.length) {
          if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
            if (template[templateIndex] === "*") {
              starIndex = templateIndex;
              matchIndex = searchIndex;
              templateIndex++;
            } else {
              searchIndex++;
              templateIndex++;
            }
          } else if (starIndex !== -1) {
            templateIndex = starIndex + 1;
            matchIndex++;
            searchIndex = matchIndex;
          } else {
            return false;
          }
        }
        while (templateIndex < template.length && template[templateIndex] === "*") {
          templateIndex++;
        }
        return templateIndex === template.length;
      }
      function disable() {
        const namespaces = [
          ...createDebug.names,
          ...createDebug.skips.map((namespace) => "-" + namespace)
        ].join(",");
        createDebug.enable("");
        return namespaces;
      }
      function enabled(name2) {
        for (const skip of createDebug.skips) {
          if (matchesTemplate(name2, skip)) {
            return false;
          }
        }
        for (const ns2 of createDebug.names) {
          if (matchesTemplate(name2, ns2)) {
            return true;
          }
        }
        return false;
      }
      function coerce2(val) {
        if (val instanceof Error) {
          return val.stack || val.message;
        }
        return val;
      }
      function destroy() {
        console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
      }
      createDebug.enable(createDebug.load());
      return createDebug;
    }
    module2.exports = setup;
  }
});
var require_browser = __commonJS2({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js"(exports2, module2) {
    exports2.formatArgs = formatArgs;
    exports2.save = save;
    exports2.load = load;
    exports2.useColors = useColors;
    exports2.storage = localstorage();
    exports2.destroy = /* @__PURE__ */ (() => {
      let warned = false;
      return () => {
        if (!warned) {
          warned = true;
          console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
        }
      };
    })();
    exports2.colors = [
      "#0000CC",
      "#0000FF",
      "#0033CC",
      "#0033FF",
      "#0066CC",
      "#0066FF",
      "#0099CC",
      "#0099FF",
      "#00CC00",
      "#00CC33",
      "#00CC66",
      "#00CC99",
      "#00CCCC",
      "#00CCFF",
      "#3300CC",
      "#3300FF",
      "#3333CC",
      "#3333FF",
      "#3366CC",
      "#3366FF",
      "#3399CC",
      "#3399FF",
      "#33CC00",
      "#33CC33",
      "#33CC66",
      "#33CC99",
      "#33CCCC",
      "#33CCFF",
      "#6600CC",
      "#6600FF",
      "#6633CC",
      "#6633FF",
      "#66CC00",
      "#66CC33",
      "#9900CC",
      "#9900FF",
      "#9933CC",
      "#9933FF",
      "#99CC00",
      "#99CC33",
      "#CC0000",
      "#CC0033",
      "#CC0066",
      "#CC0099",
      "#CC00CC",
      "#CC00FF",
      "#CC3300",
      "#CC3333",
      "#CC3366",
      "#CC3399",
      "#CC33CC",
      "#CC33FF",
      "#CC6600",
      "#CC6633",
      "#CC9900",
      "#CC9933",
      "#CCCC00",
      "#CCCC33",
      "#FF0000",
      "#FF0033",
      "#FF0066",
      "#FF0099",
      "#FF00CC",
      "#FF00FF",
      "#FF3300",
      "#FF3333",
      "#FF3366",
      "#FF3399",
      "#FF33CC",
      "#FF33FF",
      "#FF6600",
      "#FF6633",
      "#FF9900",
      "#FF9933",
      "#FFCC00",
      "#FFCC33"
    ];
    function useColors() {
      if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
        return true;
      }
      if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
        return false;
      }
      let m2;
      return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
      typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
      // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
      typeof navigator !== "undefined" && navigator.userAgent && (m2 = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m2[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
    }
    function formatArgs(args) {
      args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
      if (!this.useColors) {
        return;
      }
      const c3 = "color: " + this.color;
      args.splice(1, 0, c3, "color: inherit");
      let index = 0;
      let lastC = 0;
      args[0].replace(/%[a-zA-Z%]/g, (match) => {
        if (match === "%%") {
          return;
        }
        index++;
        if (match === "%c") {
          lastC = index;
        }
      });
      args.splice(lastC, 0, c3);
    }
    exports2.log = console.debug || console.log || (() => {
    });
    function save(namespaces) {
      try {
        if (namespaces) {
          exports2.storage.setItem("debug", namespaces);
        } else {
          exports2.storage.removeItem("debug");
        }
      } catch (error) {
      }
    }
    function load() {
      let r2;
      try {
        r2 = exports2.storage.getItem("debug") || exports2.storage.getItem("DEBUG");
      } catch (error) {
      }
      if (!r2 && typeof process !== "undefined" && "env" in process) {
        r2 = process.env.DEBUG;
      }
      return r2;
    }
    function localstorage() {
      try {
        return localStorage;
      } catch (error) {
      }
    }
    module2.exports = require_common()(exports2);
    var { formatters } = module2.exports;
    formatters.j = function(v2) {
      try {
        return JSON.stringify(v2);
      } catch (error) {
        return "[UnexpectedJSONParseError]: " + error.message;
      }
    };
  }
});
var require_has_flag = __commonJS2({
  "../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js"(exports2, module2) {
    "use strict";
    module2.exports = (flag, argv = process.argv) => {
      const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
      const position = argv.indexOf(prefix + flag);
      const terminatorPosition = argv.indexOf("--");
      return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
    };
  }
});
var require_supports_color = __commonJS2({
  "../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports2, module2) {
    "use strict";
    var os22 = __require("os");
    var tty = __require("tty");
    var hasFlag = require_has_flag();
    var { env } = process;
    var forceColor;
    if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
      forceColor = 0;
    } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
      forceColor = 1;
    }
    if ("FORCE_COLOR" in env) {
      if (env.FORCE_COLOR === "true") {
        forceColor = 1;
      } else if (env.FORCE_COLOR === "false") {
        forceColor = 0;
      } else {
        forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
      }
    }
    function translateLevel(level) {
      if (level === 0) {
        return false;
      }
      return {
        level,
        hasBasic: true,
        has256: level >= 2,
        has16m: level >= 3
      };
    }
    function supportsColor(haveStream, streamIsTTY) {
      if (forceColor === 0) {
        return 0;
      }
      if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
        return 3;
      }
      if (hasFlag("color=256")) {
        return 2;
      }
      if (haveStream && !streamIsTTY && forceColor === void 0) {
        return 0;
      }
      const min = forceColor || 0;
      if (env.TERM === "dumb") {
        return min;
      }
      if (process.platform === "win32") {
        const osRelease = os22.release().split(".");
        if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
          return Number(osRelease[2]) >= 14931 ? 3 : 2;
        }
        return 1;
      }
      if ("CI" in env) {
        if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
          return 1;
        }
        return min;
      }
      if ("TEAMCITY_VERSION" in env) {
        return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
      }
      if (env.COLORTERM === "truecolor") {
        return 3;
      }
      if ("TERM_PROGRAM" in env) {
        const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
        switch (env.TERM_PROGRAM) {
          case "iTerm.app":
            return version >= 3 ? 3 : 2;
          case "Apple_Terminal":
            return 2;
        }
      }
      if (/-256(color)?$/i.test(env.TERM)) {
        return 2;
      }
      if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
        return 1;
      }
      if ("COLORTERM" in env) {
        return 1;
      }
      return min;
    }
    function getSupportLevel(stream5) {
      const level = supportsColor(stream5, stream5 && stream5.isTTY);
      return translateLevel(level);
    }
    module2.exports = {
      supportsColor: getSupportLevel,
      stdout: translateLevel(supportsColor(true, tty.isatty(1))),
      stderr: translateLevel(supportsColor(true, tty.isatty(2)))
    };
  }
});
var require_node3 = __commonJS2({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js"(exports2, module2) {
    var tty = __require("tty");
    var util32 = __require("util");
    exports2.init = init3;
    exports2.log = log2;
    exports2.formatArgs = formatArgs;
    exports2.save = save;
    exports2.load = load;
    exports2.useColors = useColors;
    exports2.destroy = util32.deprecate(
      () => {
      },
      "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
    );
    exports2.colors = [6, 2, 3, 4, 5, 1];
    try {
      const supportsColor = require_supports_color();
      if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
        exports2.colors = [
          20,
          21,
          26,
          27,
          32,
          33,
          38,
          39,
          40,
          41,
          42,
          43,
          44,
          45,
          56,
          57,
          62,
          63,
          68,
          69,
          74,
          75,
          76,
          77,
          78,
          79,
          80,
          81,
          92,
          93,
          98,
          99,
          112,
          113,
          128,
          129,
          134,
          135,
          148,
          149,
          160,
          161,
          162,
          163,
          164,
          165,
          166,
          167,
          168,
          169,
          170,
          171,
          172,
          173,
          178,
          179,
          184,
          185,
          196,
          197,
          198,
          199,
          200,
          201,
          202,
          203,
          204,
          205,
          206,
          207,
          208,
          209,
          214,
          215,
          220,
          221
        ];
      }
    } catch (error) {
    }
    exports2.inspectOpts = Object.keys(process.env).filter((key) => {
      return /^debug_/i.test(key);
    }).reduce((obj, key) => {
      const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_3, k3) => {
        return k3.toUpperCase();
      });
      let val = process.env[key];
      if (/^(yes|on|true|enabled)$/i.test(val)) {
        val = true;
      } else if (/^(no|off|false|disabled)$/i.test(val)) {
        val = false;
      } else if (val === "null") {
        val = null;
      } else {
        val = Number(val);
      }
      obj[prop] = val;
      return obj;
    }, {});
    function useColors() {
      return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd);
    }
    function formatArgs(args) {
      const { namespace: name2, useColors: useColors2 } = this;
      if (useColors2) {
        const c3 = this.color;
        const colorCode = "\x1B[3" + (c3 < 8 ? c3 : "8;5;" + c3);
        const prefix = `  ${colorCode};1m${name2} \x1B[0m`;
        args[0] = prefix + args[0].split("\n").join("\n" + prefix);
        args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m");
      } else {
        args[0] = getDate() + name2 + " " + args[0];
      }
    }
    function getDate() {
      if (exports2.inspectOpts.hideDate) {
        return "";
      }
      return (/* @__PURE__ */ new Date()).toISOString() + " ";
    }
    function log2(...args) {
      return process.stderr.write(util32.formatWithOptions(exports2.inspectOpts, ...args) + "\n");
    }
    function save(namespaces) {
      if (namespaces) {
        process.env.DEBUG = namespaces;
      } else {
        delete process.env.DEBUG;
      }
    }
    function load() {
      return process.env.DEBUG;
    }
    function init3(debug2) {
      debug2.inspectOpts = {};
      const keys = Object.keys(exports2.inspectOpts);
      for (let i22 = 0; i22 < keys.length; i22++) {
        debug2.inspectOpts[keys[i22]] = exports2.inspectOpts[keys[i22]];
      }
    }
    module2.exports = require_common()(exports2);
    var { formatters } = module2.exports;
    formatters.o = function(v2) {
      this.inspectOpts.colors = this.useColors;
      return util32.inspect(v2, this.inspectOpts).split("\n").map((str) => str.trim()).join(" ");
    };
    formatters.O = function(v2) {
      this.inspectOpts.colors = this.useColors;
      return util32.inspect(v2, this.inspectOpts);
    };
  }
});
var require_src = __commonJS2({
  "../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js"(exports2, module2) {
    if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
      module2.exports = require_browser();
    } else {
      module2.exports = require_node3();
    }
  }
});
var Signature;
var DataDescriptor;
var LocalFileHeaderToken;
var EndOfCentralDirectoryRecordToken;
var FileHeader;
var init_ZipToken = __esm({
  "../../node_modules/.pnpm/@tokenizer+inflate@0.2.7/node_modules/@tokenizer/inflate/lib/ZipToken.js"() {
    init_lib4();
    Signature = {
      LocalFileHeader: 67324752,
      DataDescriptor: 134695760,
      CentralFileHeader: 33639248,
      EndOfCentralDirectory: 101010256
    };
    DataDescriptor = {
      get(array) {
        const flags = UINT16_LE.get(array, 6);
        return {
          signature: UINT32_LE.get(array, 0),
          compressedSize: UINT32_LE.get(array, 8),
          uncompressedSize: UINT32_LE.get(array, 12)
        };
      },
      len: 16
    };
    LocalFileHeaderToken = {
      get(array) {
        const flags = UINT16_LE.get(array, 6);
        return {
          signature: UINT32_LE.get(array, 0),
          minVersion: UINT16_LE.get(array, 4),
          dataDescriptor: !!(flags & 8),
          compressedMethod: UINT16_LE.get(array, 8),
          compressedSize: UINT32_LE.get(array, 18),
          uncompressedSize: UINT32_LE.get(array, 22),
          filenameLength: UINT16_LE.get(array, 26),
          extraFieldLength: UINT16_LE.get(array, 28),
          filename: null
        };
      },
      len: 30
    };
    EndOfCentralDirectoryRecordToken = {
      get(array) {
        return {
          signature: UINT32_LE.get(array, 0),
          nrOfThisDisk: UINT16_LE.get(array, 4),
          nrOfThisDiskWithTheStart: UINT16_LE.get(array, 6),
          nrOfEntriesOnThisDisk: UINT16_LE.get(array, 8),
          nrOfEntriesOfSize: UINT16_LE.get(array, 10),
          sizeOfCd: UINT32_LE.get(array, 12),
          offsetOfStartOfCd: UINT32_LE.get(array, 16),
          zipFileCommentLength: UINT16_LE.get(array, 20)
        };
      },
      len: 22
    };
    FileHeader = {
      get(array) {
        const flags = UINT16_LE.get(array, 8);
        return {
          signature: UINT32_LE.get(array, 0),
          minVersion: UINT16_LE.get(array, 6),
          dataDescriptor: !!(flags & 8),
          compressedMethod: UINT16_LE.get(array, 10),
          compressedSize: UINT32_LE.get(array, 20),
          uncompressedSize: UINT32_LE.get(array, 24),
          filenameLength: UINT16_LE.get(array, 28),
          extraFieldLength: UINT16_LE.get(array, 30),
          fileCommentLength: UINT16_LE.get(array, 32),
          relativeOffsetOfLocalHeader: UINT32_LE.get(array, 42),
          filename: null
        };
      },
      len: 46
    };
  }
});
function signatureToArray(signature) {
  const signatureBytes = new Uint8Array(UINT32_LE.len);
  UINT32_LE.put(signatureBytes, 0, signature);
  return signatureBytes;
}
function indexOf(buffer, portion) {
  const bufferLength = buffer.length;
  const portionLength = portion.length;
  if (portionLength > bufferLength)
    return -1;
  for (let i22 = 0; i22 <= bufferLength - portionLength; i22++) {
    let found = true;
    for (let j2 = 0; j2 < portionLength; j2++) {
      if (buffer[i22 + j2] !== portion[j2]) {
        found = false;
        break;
      }
    }
    if (found) {
      return i22;
    }
  }
  return -1;
}
function mergeArrays(chunks) {
  const totalLength = chunks.reduce((acc, curr) => acc + curr.length, 0);
  const mergedArray = new Uint8Array(totalLength);
  let offset = 0;
  for (const chunk2 of chunks) {
    mergedArray.set(chunk2, offset);
    offset += chunk2.length;
  }
  return mergedArray;
}
var import_debug;
var debug;
var syncBufferSize;
var ddSignatureArray;
var eocdSignatureBytes;
var ZipHandler;
var init_lib5 = __esm({
  "../../node_modules/.pnpm/@tokenizer+inflate@0.2.7/node_modules/@tokenizer/inflate/lib/index.js"() {
    init_lib4();
    init_esm();
    import_debug = __toESM2(require_src(), 1);
    init_ZipToken();
    debug = (0, import_debug.default)("tokenizer:inflate");
    syncBufferSize = 256 * 1024;
    ddSignatureArray = signatureToArray(Signature.DataDescriptor);
    eocdSignatureBytes = signatureToArray(Signature.EndOfCentralDirectory);
    ZipHandler = class {
      constructor(tokenizer) {
        this.tokenizer = tokenizer;
        this.syncBuffer = new Uint8Array(syncBufferSize);
      }
      async isZip() {
        return await this.peekSignature() === Signature.LocalFileHeader;
      }
      peekSignature() {
        return this.tokenizer.peekToken(UINT32_LE);
      }
      async findEndOfCentralDirectoryLocator() {
        const randomReadTokenizer = this.tokenizer;
        const chunkLength = Math.min(16 * 1024, randomReadTokenizer.fileInfo.size);
        const buffer = this.syncBuffer.subarray(0, chunkLength);
        await this.tokenizer.readBuffer(buffer, { position: randomReadTokenizer.fileInfo.size - chunkLength });
        for (let i22 = buffer.length - 4; i22 >= 0; i22--) {
          if (buffer[i22] === eocdSignatureBytes[0] && buffer[i22 + 1] === eocdSignatureBytes[1] && buffer[i22 + 2] === eocdSignatureBytes[2] && buffer[i22 + 3] === eocdSignatureBytes[3]) {
            return randomReadTokenizer.fileInfo.size - chunkLength + i22;
          }
        }
        return -1;
      }
      async readCentralDirectory() {
        if (!this.tokenizer.supportsRandomAccess()) {
          debug("Cannot reading central-directory without random-read support");
          return;
        }
        debug("Reading central-directory...");
        const pos = this.tokenizer.position;
        const offset = await this.findEndOfCentralDirectoryLocator();
        if (offset > 0) {
          debug("Central-directory 32-bit signature found");
          const eocdHeader = await this.tokenizer.readToken(EndOfCentralDirectoryRecordToken, offset);
          const files = [];
          this.tokenizer.setPosition(eocdHeader.offsetOfStartOfCd);
          for (let n22 = 0; n22 < eocdHeader.nrOfEntriesOfSize; ++n22) {
            const entry = await this.tokenizer.readToken(FileHeader);
            if (entry.signature !== Signature.CentralFileHeader) {
              throw new Error("Expected Central-File-Header signature");
            }
            entry.filename = await this.tokenizer.readToken(new StringType(entry.filenameLength, "utf-8"));
            await this.tokenizer.ignore(entry.extraFieldLength);
            await this.tokenizer.ignore(entry.fileCommentLength);
            files.push(entry);
            debug(`Add central-directory file-entry: n=${n22 + 1}/${files.length}: filename=${files[n22].filename}`);
          }
          this.tokenizer.setPosition(pos);
          return files;
        }
        this.tokenizer.setPosition(pos);
      }
      async unzip(fileCb) {
        const entries2 = await this.readCentralDirectory();
        if (entries2) {
          return this.iterateOverCentralDirectory(entries2, fileCb);
        }
        let stop = false;
        do {
          const zipHeader = await this.readLocalFileHeader();
          if (!zipHeader)
            break;
          const next = fileCb(zipHeader);
          stop = !!next.stop;
          let fileData = void 0;
          await this.tokenizer.ignore(zipHeader.extraFieldLength);
          if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) {
            const chunks = [];
            let len = syncBufferSize;
            debug("Compressed-file-size unknown, scanning for next data-descriptor-signature....");
            let nextHeaderIndex = -1;
            while (nextHeaderIndex < 0 && len === syncBufferSize) {
              len = await this.tokenizer.peekBuffer(this.syncBuffer, { mayBeLess: true });
              nextHeaderIndex = indexOf(this.syncBuffer.subarray(0, len), ddSignatureArray);
              const size = nextHeaderIndex >= 0 ? nextHeaderIndex : len;
              if (next.handler) {
                const data = new Uint8Array(size);
                await this.tokenizer.readBuffer(data);
                chunks.push(data);
              } else {
                await this.tokenizer.ignore(size);
              }
            }
            debug(`Found data-descriptor-signature at pos=${this.tokenizer.position}`);
            if (next.handler) {
              await this.inflate(zipHeader, mergeArrays(chunks), next.handler);
            }
          } else {
            if (next.handler) {
              debug(`Reading compressed-file-data: ${zipHeader.compressedSize} bytes`);
              fileData = new Uint8Array(zipHeader.compressedSize);
              await this.tokenizer.readBuffer(fileData);
              await this.inflate(zipHeader, fileData, next.handler);
            } else {
              debug(`Ignoring compressed-file-data: ${zipHeader.compressedSize} bytes`);
              await this.tokenizer.ignore(zipHeader.compressedSize);
            }
          }
          debug(`Reading data-descriptor at pos=${this.tokenizer.position}`);
          if (zipHeader.dataDescriptor) {
            const dataDescriptor = await this.tokenizer.readToken(DataDescriptor);
            if (dataDescriptor.signature !== 134695760) {
              throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - DataDescriptor.len}`);
            }
          }
        } while (!stop);
      }
      async iterateOverCentralDirectory(entries2, fileCb) {
        for (const fileHeader of entries2) {
          const next = fileCb(fileHeader);
          if (next.handler) {
            this.tokenizer.setPosition(fileHeader.relativeOffsetOfLocalHeader);
            const zipHeader = await this.readLocalFileHeader();
            if (zipHeader) {
              await this.tokenizer.ignore(zipHeader.extraFieldLength);
              const fileData = new Uint8Array(fileHeader.compressedSize);
              await this.tokenizer.readBuffer(fileData);
              await this.inflate(zipHeader, fileData, next.handler);
            }
          }
          if (next.stop)
            break;
        }
      }
      inflate(zipHeader, fileData, cb) {
        if (zipHeader.compressedMethod === 0) {
          return cb(fileData);
        }
        debug(`Decompress filename=${zipHeader.filename}, compressed-size=${fileData.length}`);
        const uncompressedData = decompressSync(fileData);
        return cb(uncompressedData);
      }
      async readLocalFileHeader() {
        const signature = await this.tokenizer.peekToken(UINT32_LE);
        if (signature === Signature.LocalFileHeader) {
          const header2 = await this.tokenizer.readToken(LocalFileHeaderToken);
          header2.filename = await this.tokenizer.readToken(new StringType(header2.filenameLength, "utf-8"));
          return header2;
        }
        if (signature === Signature.CentralFileHeader) {
          return false;
        }
        if (signature === 3759263696) {
          throw new Error("Encrypted ZIP");
        }
        throw new Error("Unexpected signature");
      }
    };
  }
});
function getUintBE(view) {
  const { byteLength: byteLength2 } = view;
  if (byteLength2 === 6) {
    return view.getUint16(0) * 2 ** 32 + view.getUint32(2);
  }
  if (byteLength2 === 5) {
    return view.getUint8(0) * 2 ** 32 + view.getUint32(1);
  }
  if (byteLength2 === 4) {
    return view.getUint32(0);
  }
  if (byteLength2 === 3) {
    return view.getUint8(0) * 2 ** 16 + view.getUint16(1);
  }
  if (byteLength2 === 2) {
    return view.getUint16(0);
  }
  if (byteLength2 === 1) {
    return view.getUint8(0);
  }
}
function indexOf2(array, value) {
  const arrayLength = array.length;
  const valueLength = value.length;
  if (valueLength === 0) {
    return -1;
  }
  if (valueLength > arrayLength) {
    return -1;
  }
  const validOffsetLength = arrayLength - valueLength;
  for (let index = 0; index <= validOffsetLength; index++) {
    let isMatch = true;
    for (let index2 = 0; index2 < valueLength; index2++) {
      if (array[index + index2] !== value[index2]) {
        isMatch = false;
        break;
      }
    }
    if (isMatch) {
      return index;
    }
  }
  return -1;
}
function includes(array, value) {
  return indexOf2(array, value) !== -1;
}
var cachedDecoders;
var cachedEncoder;
var byteToHexLookupTable;
var init_uint8array_extras = __esm({
  "../../node_modules/.pnpm/uint8array-extras@1.5.0/node_modules/uint8array-extras/index.js"() {
    cachedDecoders = {
      utf8: new globalThis.TextDecoder("utf8")
    };
    cachedEncoder = new globalThis.TextEncoder();
    byteToHexLookupTable = Array.from({ length: 256 }, (_3, index) => index.toString(16).padStart(2, "0"));
  }
});
function stringToBytes(string) {
  return [...string].map((character) => character.charCodeAt(0));
}
function tarHeaderChecksumMatches(arrayBuffer, offset = 0) {
  const readSum = Number.parseInt(new StringType(6).get(arrayBuffer, 148).replace(/\0.*$/, "").trim(), 8);
  if (Number.isNaN(readSum)) {
    return false;
  }
  let sum = 8 * 32;
  for (let index = offset; index < offset + 148; index++) {
    sum += arrayBuffer[index];
  }
  for (let index = offset + 156; index < offset + 512; index++) {
    sum += arrayBuffer[index];
  }
  return readSum === sum;
}
var uint32SyncSafeToken;
var init_util = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/util.js"() {
    init_lib4();
    uint32SyncSafeToken = {
      get: (buffer, offset) => buffer[offset + 3] & 127 | buffer[offset + 2] << 7 | buffer[offset + 1] << 14 | buffer[offset] << 21,
      len: 4
    };
  }
});
var extensions;
var mimeTypes;
var init_supported = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/supported.js"() {
    extensions = [
      "jpg",
      "png",
      "apng",
      "gif",
      "webp",
      "flif",
      "xcf",
      "cr2",
      "cr3",
      "orf",
      "arw",
      "dng",
      "nef",
      "rw2",
      "raf",
      "tif",
      "bmp",
      "icns",
      "jxr",
      "psd",
      "indd",
      "zip",
      "tar",
      "rar",
      "gz",
      "bz2",
      "7z",
      "dmg",
      "mp4",
      "mid",
      "mkv",
      "webm",
      "mov",
      "avi",
      "mpg",
      "mp2",
      "mp3",
      "m4a",
      "oga",
      "ogg",
      "ogv",
      "opus",
      "flac",
      "wav",
      "spx",
      "amr",
      "pdf",
      "epub",
      "elf",
      "macho",
      "exe",
      "swf",
      "rtf",
      "wasm",
      "woff",
      "woff2",
      "eot",
      "ttf",
      "otf",
      "ttc",
      "ico",
      "flv",
      "ps",
      "xz",
      "sqlite",
      "nes",
      "crx",
      "xpi",
      "cab",
      "deb",
      "ar",
      "rpm",
      "Z",
      "lz",
      "cfb",
      "mxf",
      "mts",
      "blend",
      "bpg",
      "docx",
      "pptx",
      "xlsx",
      "3gp",
      "3g2",
      "j2c",
      "jp2",
      "jpm",
      "jpx",
      "mj2",
      "aif",
      "qcp",
      "odt",
      "ods",
      "odp",
      "xml",
      "mobi",
      "heic",
      "cur",
      "ktx",
      "ape",
      "wv",
      "dcm",
      "ics",
      "glb",
      "pcap",
      "dsf",
      "lnk",
      "alias",
      "voc",
      "ac3",
      "m4v",
      "m4p",
      "m4b",
      "f4v",
      "f4p",
      "f4b",
      "f4a",
      "mie",
      "asf",
      "ogm",
      "ogx",
      "mpc",
      "arrow",
      "shp",
      "aac",
      "mp1",
      "it",
      "s3m",
      "xm",
      "ai",
      "skp",
      "avif",
      "eps",
      "lzh",
      "pgp",
      "asar",
      "stl",
      "chm",
      "3mf",
      "zst",
      "jxl",
      "vcf",
      "jls",
      "pst",
      "dwg",
      "parquet",
      "class",
      "arj",
      "cpio",
      "ace",
      "avro",
      "icc",
      "fbx",
      "vsdx",
      "vtt",
      "apk",
      "drc",
      "lz4",
      "potx",
      "xltx",
      "dotx",
      "xltm",
      "ott",
      "ots",
      "otp",
      "odg",
      "otg",
      "xlsm",
      "docm",
      "dotm",
      "potm",
      "pptm",
      "jar",
      "rm",
      "ppsm",
      "ppsx"
    ];
    mimeTypes = [
      "image/jpeg",
      "image/png",
      "image/gif",
      "image/webp",
      "image/flif",
      "image/x-xcf",
      "image/x-canon-cr2",
      "image/x-canon-cr3",
      "image/tiff",
      "image/bmp",
      "image/vnd.ms-photo",
      "image/vnd.adobe.photoshop",
      "application/x-indesign",
      "application/epub+zip",
      "application/x-xpinstall",
      "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
      "application/vnd.oasis.opendocument.text",
      "application/vnd.oasis.opendocument.spreadsheet",
      "application/vnd.oasis.opendocument.presentation",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "application/vnd.openxmlformats-officedocument.presentationml.presentation",
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
      "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
      "application/zip",
      "application/x-tar",
      "application/x-rar-compressed",
      "application/gzip",
      "application/x-bzip2",
      "application/x-7z-compressed",
      "application/x-apple-diskimage",
      "application/x-apache-arrow",
      "video/mp4",
      "audio/midi",
      "video/x-matroska",
      "video/webm",
      "video/quicktime",
      "video/vnd.avi",
      "audio/wav",
      "audio/qcelp",
      "audio/x-ms-asf",
      "video/x-ms-asf",
      "application/vnd.ms-asf",
      "video/mpeg",
      "video/3gpp",
      "audio/mpeg",
      "audio/mp4",
      // RFC 4337
      "video/ogg",
      "audio/ogg",
      "audio/ogg; codecs=opus",
      "application/ogg",
      "audio/x-flac",
      "audio/ape",
      "audio/wavpack",
      "audio/amr",
      "application/pdf",
      "application/x-elf",
      "application/x-mach-binary",
      "application/x-msdownload",
      "application/x-shockwave-flash",
      "application/rtf",
      "application/wasm",
      "font/woff",
      "font/woff2",
      "application/vnd.ms-fontobject",
      "font/ttf",
      "font/otf",
      "font/collection",
      "image/x-icon",
      "video/x-flv",
      "application/postscript",
      "application/eps",
      "application/x-xz",
      "application/x-sqlite3",
      "application/x-nintendo-nes-rom",
      "application/x-google-chrome-extension",
      "application/vnd.ms-cab-compressed",
      "application/x-deb",
      "application/x-unix-archive",
      "application/x-rpm",
      "application/x-compress",
      "application/x-lzip",
      "application/x-cfb",
      "application/x-mie",
      "application/mxf",
      "video/mp2t",
      "application/x-blender",
      "image/bpg",
      "image/j2c",
      "image/jp2",
      "image/jpx",
      "image/jpm",
      "image/mj2",
      "audio/aiff",
      "application/xml",
      "application/x-mobipocket-ebook",
      "image/heif",
      "image/heif-sequence",
      "image/heic",
      "image/heic-sequence",
      "image/icns",
      "image/ktx",
      "application/dicom",
      "audio/x-musepack",
      "text/calendar",
      "text/vcard",
      "text/vtt",
      "model/gltf-binary",
      "application/vnd.tcpdump.pcap",
      "audio/x-dsf",
      // Non-standard
      "application/x.ms.shortcut",
      // Invented by us
      "application/x.apple.alias",
      // Invented by us
      "audio/x-voc",
      "audio/vnd.dolby.dd-raw",
      "audio/x-m4a",
      "image/apng",
      "image/x-olympus-orf",
      "image/x-sony-arw",
      "image/x-adobe-dng",
      "image/x-nikon-nef",
      "image/x-panasonic-rw2",
      "image/x-fujifilm-raf",
      "video/x-m4v",
      "video/3gpp2",
      "application/x-esri-shape",
      "audio/aac",
      "audio/x-it",
      "audio/x-s3m",
      "audio/x-xm",
      "video/MP1S",
      "video/MP2P",
      "application/vnd.sketchup.skp",
      "image/avif",
      "application/x-lzh-compressed",
      "application/pgp-encrypted",
      "application/x-asar",
      "model/stl",
      "application/vnd.ms-htmlhelp",
      "model/3mf",
      "image/jxl",
      "application/zstd",
      "image/jls",
      "application/vnd.ms-outlook",
      "image/vnd.dwg",
      "application/x-parquet",
      "application/java-vm",
      "application/x-arj",
      "application/x-cpio",
      "application/x-ace-compressed",
      "application/avro",
      "application/vnd.iccprofile",
      "application/x.autodesk.fbx",
      // Invented by us
      "application/vnd.visio",
      "application/vnd.android.package-archive",
      "application/vnd.google.draco",
      // Invented by us
      "application/x-lz4",
      // Invented by us
      "application/vnd.openxmlformats-officedocument.presentationml.template",
      "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
      "application/vnd.ms-excel.template.macroenabled.12",
      "application/vnd.oasis.opendocument.text-template",
      "application/vnd.oasis.opendocument.spreadsheet-template",
      "application/vnd.oasis.opendocument.presentation-template",
      "application/vnd.oasis.opendocument.graphics",
      "application/vnd.oasis.opendocument.graphics-template",
      "application/vnd.ms-excel.sheet.macroenabled.12",
      "application/vnd.ms-word.document.macroenabled.12",
      "application/vnd.ms-word.template.macroenabled.12",
      "application/vnd.ms-powerpoint.template.macroenabled.12",
      "application/vnd.ms-powerpoint.presentation.macroenabled.12",
      "application/java-archive",
      "application/vnd.rn-realmedia"
    ];
  }
});
async function fileTypeFromBuffer(input) {
  return new FileTypeParser().fromBuffer(input);
}
async function fileTypeFromBlob(blob) {
  return new FileTypeParser().fromBlob(blob);
}
function getFileTypeFromMimeType(mimeType) {
  switch (mimeType.toLowerCase()) {
    case "application/epub+zip":
      return {
        ext: "epub",
        mime: "application/epub+zip"
      };
    case "application/vnd.oasis.opendocument.text":
      return {
        ext: "odt",
        mime: "application/vnd.oasis.opendocument.text"
      };
    case "application/vnd.oasis.opendocument.text-template":
      return {
        ext: "ott",
        mime: "application/vnd.oasis.opendocument.text-template"
      };
    case "application/vnd.oasis.opendocument.spreadsheet":
      return {
        ext: "ods",
        mime: "application/vnd.oasis.opendocument.spreadsheet"
      };
    case "application/vnd.oasis.opendocument.spreadsheet-template":
      return {
        ext: "ots",
        mime: "application/vnd.oasis.opendocument.spreadsheet-template"
      };
    case "application/vnd.oasis.opendocument.presentation":
      return {
        ext: "odp",
        mime: "application/vnd.oasis.opendocument.presentation"
      };
    case "application/vnd.oasis.opendocument.presentation-template":
      return {
        ext: "otp",
        mime: "application/vnd.oasis.opendocument.presentation-template"
      };
    case "application/vnd.oasis.opendocument.graphics":
      return {
        ext: "odg",
        mime: "application/vnd.oasis.opendocument.graphics"
      };
    case "application/vnd.oasis.opendocument.graphics-template":
      return {
        ext: "otg",
        mime: "application/vnd.oasis.opendocument.graphics-template"
      };
    case "application/vnd.openxmlformats-officedocument.presentationml.slideshow":
      return {
        ext: "ppsx",
        mime: "application/vnd.openxmlformats-officedocument.presentationml.slideshow"
      };
    case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
      return {
        ext: "xlsx",
        mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
      };
    case "application/vnd.ms-excel.sheet.macroenabled":
      return {
        ext: "xlsm",
        mime: "application/vnd.ms-excel.sheet.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.spreadsheetml.template":
      return {
        ext: "xltx",
        mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.template"
      };
    case "application/vnd.ms-excel.template.macroenabled":
      return {
        ext: "xltm",
        mime: "application/vnd.ms-excel.template.macroenabled.12"
      };
    case "application/vnd.ms-powerpoint.slideshow.macroenabled":
      return {
        ext: "ppsm",
        mime: "application/vnd.ms-powerpoint.slideshow.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
      return {
        ext: "docx",
        mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
      };
    case "application/vnd.ms-word.document.macroenabled":
      return {
        ext: "docm",
        mime: "application/vnd.ms-word.document.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.wordprocessingml.template":
      return {
        ext: "dotx",
        mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.template"
      };
    case "application/vnd.ms-word.template.macroenabledtemplate":
      return {
        ext: "dotm",
        mime: "application/vnd.ms-word.template.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.presentationml.template":
      return {
        ext: "potx",
        mime: "application/vnd.openxmlformats-officedocument.presentationml.template"
      };
    case "application/vnd.ms-powerpoint.template.macroenabled":
      return {
        ext: "potm",
        mime: "application/vnd.ms-powerpoint.template.macroenabled.12"
      };
    case "application/vnd.openxmlformats-officedocument.presentationml.presentation":
      return {
        ext: "pptx",
        mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation"
      };
    case "application/vnd.ms-powerpoint.presentation.macroenabled":
      return {
        ext: "pptm",
        mime: "application/vnd.ms-powerpoint.presentation.macroenabled.12"
      };
    case "application/vnd.ms-visio.drawing":
      return {
        ext: "vsdx",
        mime: "application/vnd.visio"
      };
    case "application/vnd.ms-package.3dmanufacturing-3dmodel+xml":
      return {
        ext: "3mf",
        mime: "model/3mf"
      };
    default:
  }
}
function _check(buffer, headers, options) {
  options = {
    offset: 0,
    ...options
  };
  for (const [index, header2] of headers.entries()) {
    if (options.mask) {
      if (header2 !== (options.mask[index] & buffer[index + options.offset])) {
        return false;
      }
    } else if (header2 !== buffer[index + options.offset]) {
      return false;
    }
  }
  return true;
}
async function fileTypeFromTokenizer(tokenizer) {
  return new FileTypeParser().fromTokenizer(tokenizer);
}
var reasonableDetectionSizeInBytes;
var FileTypeParser;
var supportedExtensions;
var supportedMimeTypes;
var init_core3 = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/core.js"() {
    init_lib4();
    init_core2();
    init_lib5();
    init_uint8array_extras();
    init_util();
    init_supported();
    reasonableDetectionSizeInBytes = 4100;
    FileTypeParser = class {
      constructor(options) {
        this.detectors = [
          ...options?.customDetectors ?? [],
          { id: "core", detect: this.detectConfident },
          { id: "core.imprecise", detect: this.detectImprecise }
        ];
        this.tokenizerOptions = {
          abortSignal: options?.signal
        };
      }
      async fromTokenizer(tokenizer) {
        const initialPosition = tokenizer.position;
        for (const detector of this.detectors) {
          const fileType = await detector.detect(tokenizer);
          if (fileType) {
            return fileType;
          }
          if (initialPosition !== tokenizer.position) {
            return void 0;
          }
        }
      }
      async fromBuffer(input) {
        if (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {
          throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof input}\``);
        }
        const buffer = input instanceof Uint8Array ? input : new Uint8Array(input);
        if (!(buffer?.length > 1)) {
          return;
        }
        return this.fromTokenizer(fromBuffer(buffer, this.tokenizerOptions));
      }
      async fromBlob(blob) {
        return this.fromStream(blob.stream());
      }
      async fromStream(stream5) {
        const tokenizer = await fromWebStream(stream5, this.tokenizerOptions);
        try {
          return await this.fromTokenizer(tokenizer);
        } finally {
          await tokenizer.close();
        }
      }
      async toDetectionStream(stream5, options) {
        const { sampleSize = reasonableDetectionSizeInBytes } = options;
        let detectedFileType;
        let firstChunk;
        const reader = stream5.getReader({ mode: "byob" });
        try {
          const { value: chunk2, done } = await reader.read(new Uint8Array(sampleSize));
          firstChunk = chunk2;
          if (!done && chunk2) {
            try {
              detectedFileType = await this.fromBuffer(chunk2.slice(0, sampleSize));
            } catch (error) {
              if (!(error instanceof EndOfStreamError)) {
                throw error;
              }
              detectedFileType = void 0;
            }
          }
          firstChunk = chunk2;
        } finally {
          reader.releaseLock();
        }
        const transformStream = new TransformStream({
          async start(controller) {
            controller.enqueue(firstChunk);
          },
          transform(chunk2, controller) {
            controller.enqueue(chunk2);
          }
        });
        const newStream = stream5.pipeThrough(transformStream);
        newStream.fileType = detectedFileType;
        return newStream;
      }
      check(header2, options) {
        return _check(this.buffer, header2, options);
      }
      checkString(header2, options) {
        return this.check(stringToBytes(header2), options);
      }
      // Detections with a high degree of certainty in identifying the correct file type
      detectConfident = async (tokenizer) => {
        this.buffer = new Uint8Array(reasonableDetectionSizeInBytes);
        if (tokenizer.fileInfo.size === void 0) {
          tokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;
        }
        this.tokenizer = tokenizer;
        await tokenizer.peekBuffer(this.buffer, { length: 12, mayBeLess: true });
        if (this.check([66, 77])) {
          return {
            ext: "bmp",
            mime: "image/bmp"
          };
        }
        if (this.check([11, 119])) {
          return {
            ext: "ac3",
            mime: "audio/vnd.dolby.dd-raw"
          };
        }
        if (this.check([120, 1])) {
          return {
            ext: "dmg",
            mime: "application/x-apple-diskimage"
          };
        }
        if (this.check([77, 90])) {
          return {
            ext: "exe",
            mime: "application/x-msdownload"
          };
        }
        if (this.check([37, 33])) {
          await tokenizer.peekBuffer(this.buffer, { length: 24, mayBeLess: true });
          if (this.checkString("PS-Adobe-", { offset: 2 }) && this.checkString(" EPSF-", { offset: 14 })) {
            return {
              ext: "eps",
              mime: "application/eps"
            };
          }
          return {
            ext: "ps",
            mime: "application/postscript"
          };
        }
        if (this.check([31, 160]) || this.check([31, 157])) {
          return {
            ext: "Z",
            mime: "application/x-compress"
          };
        }
        if (this.check([199, 113])) {
          return {
            ext: "cpio",
            mime: "application/x-cpio"
          };
        }
        if (this.check([96, 234])) {
          return {
            ext: "arj",
            mime: "application/x-arj"
          };
        }
        if (this.check([239, 187, 191])) {
          this.tokenizer.ignore(3);
          return this.detectConfident(tokenizer);
        }
        if (this.check([71, 73, 70])) {
          return {
            ext: "gif",
            mime: "image/gif"
          };
        }
        if (this.check([73, 73, 188])) {
          return {
            ext: "jxr",
            mime: "image/vnd.ms-photo"
          };
        }
        if (this.check([31, 139, 8])) {
          return {
            ext: "gz",
            mime: "application/gzip"
          };
        }
        if (this.check([66, 90, 104])) {
          return {
            ext: "bz2",
            mime: "application/x-bzip2"
          };
        }
        if (this.checkString("ID3")) {
          await tokenizer.ignore(6);
          const id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);
          if (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {
            return {
              ext: "mp3",
              mime: "audio/mpeg"
            };
          }
          await tokenizer.ignore(id3HeaderLength);
          return this.fromTokenizer(tokenizer);
        }
        if (this.checkString("MP+")) {
          return {
            ext: "mpc",
            mime: "audio/x-musepack"
          };
        }
        if ((this.buffer[0] === 67 || this.buffer[0] === 70) && this.check([87, 83], { offset: 1 })) {
          return {
            ext: "swf",
            mime: "application/x-shockwave-flash"
          };
        }
        if (this.check([255, 216, 255])) {
          if (this.check([247], { offset: 3 })) {
            return {
              ext: "jls",
              mime: "image/jls"
            };
          }
          return {
            ext: "jpg",
            mime: "image/jpeg"
          };
        }
        if (this.check([79, 98, 106, 1])) {
          return {
            ext: "avro",
            mime: "application/avro"
          };
        }
        if (this.checkString("FLIF")) {
          return {
            ext: "flif",
            mime: "image/flif"
          };
        }
        if (this.checkString("8BPS")) {
          return {
            ext: "psd",
            mime: "image/vnd.adobe.photoshop"
          };
        }
        if (this.checkString("MPCK")) {
          return {
            ext: "mpc",
            mime: "audio/x-musepack"
          };
        }
        if (this.checkString("FORM")) {
          return {
            ext: "aif",
            mime: "audio/aiff"
          };
        }
        if (this.checkString("icns", { offset: 0 })) {
          return {
            ext: "icns",
            mime: "image/icns"
          };
        }
        if (this.check([80, 75, 3, 4])) {
          let fileType;
          await new ZipHandler(tokenizer).unzip((zipHeader) => {
            switch (zipHeader.filename) {
              case "META-INF/mozilla.rsa":
                fileType = {
                  ext: "xpi",
                  mime: "application/x-xpinstall"
                };
                return {
                  stop: true
                };
              case "META-INF/MANIFEST.MF":
                fileType = {
                  ext: "jar",
                  mime: "application/java-archive"
                };
                return {
                  stop: true
                };
              case "mimetype":
                return {
                  async handler(fileData) {
                    const mimeType = new TextDecoder("utf-8").decode(fileData).trim();
                    fileType = getFileTypeFromMimeType(mimeType);
                  },
                  stop: true
                };
              case "[Content_Types].xml":
                return {
                  async handler(fileData) {
                    let xmlContent = new TextDecoder("utf-8").decode(fileData);
                    const endPos = xmlContent.indexOf('.main+xml"');
                    if (endPos === -1) {
                      const mimeType = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml";
                      if (xmlContent.includes(`ContentType="${mimeType}"`)) {
                        fileType = getFileTypeFromMimeType(mimeType);
                      }
                    } else {
                      xmlContent = xmlContent.slice(0, Math.max(0, endPos));
                      const firstPos = xmlContent.lastIndexOf('"');
                      const mimeType = xmlContent.slice(Math.max(0, firstPos + 1));
                      fileType = getFileTypeFromMimeType(mimeType);
                    }
                  },
                  stop: true
                };
              default:
                if (/classes\d*\.dex/.test(zipHeader.filename)) {
                  fileType = {
                    ext: "apk",
                    mime: "application/vnd.android.package-archive"
                  };
                  return { stop: true };
                }
                return {};
            }
          });
          return fileType ?? {
            ext: "zip",
            mime: "application/zip"
          };
        }
        if (this.checkString("OggS")) {
          await tokenizer.ignore(28);
          const type = new Uint8Array(8);
          await tokenizer.readBuffer(type);
          if (_check(type, [79, 112, 117, 115, 72, 101, 97, 100])) {
            return {
              ext: "opus",
              mime: "audio/ogg; codecs=opus"
            };
          }
          if (_check(type, [128, 116, 104, 101, 111, 114, 97])) {
            return {
              ext: "ogv",
              mime: "video/ogg"
            };
          }
          if (_check(type, [1, 118, 105, 100, 101, 111, 0])) {
            return {
              ext: "ogm",
              mime: "video/ogg"
            };
          }
          if (_check(type, [127, 70, 76, 65, 67])) {
            return {
              ext: "oga",
              mime: "audio/ogg"
            };
          }
          if (_check(type, [83, 112, 101, 101, 120, 32, 32])) {
            return {
              ext: "spx",
              mime: "audio/ogg"
            };
          }
          if (_check(type, [1, 118, 111, 114, 98, 105, 115])) {
            return {
              ext: "ogg",
              mime: "audio/ogg"
            };
          }
          return {
            ext: "ogx",
            mime: "application/ogg"
          };
        }
        if (this.check([80, 75]) && (this.buffer[2] === 3 || this.buffer[2] === 5 || this.buffer[2] === 7) && (this.buffer[3] === 4 || this.buffer[3] === 6 || this.buffer[3] === 8)) {
          return {
            ext: "zip",
            mime: "application/zip"
          };
        }
        if (this.checkString("MThd")) {
          return {
            ext: "mid",
            mime: "audio/midi"
          };
        }
        if (this.checkString("wOFF") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 }))) {
          return {
            ext: "woff",
            mime: "font/woff"
          };
        }
        if (this.checkString("wOF2") && (this.check([0, 1, 0, 0], { offset: 4 }) || this.checkString("OTTO", { offset: 4 }))) {
          return {
            ext: "woff2",
            mime: "font/woff2"
          };
        }
        if (this.check([212, 195, 178, 161]) || this.check([161, 178, 195, 212])) {
          return {
            ext: "pcap",
            mime: "application/vnd.tcpdump.pcap"
          };
        }
        if (this.checkString("DSD ")) {
          return {
            ext: "dsf",
            mime: "audio/x-dsf"
            // Non-standard
          };
        }
        if (this.checkString("LZIP")) {
          return {
            ext: "lz",
            mime: "application/x-lzip"
          };
        }
        if (this.checkString("fLaC")) {
          return {
            ext: "flac",
            mime: "audio/x-flac"
          };
        }
        if (this.check([66, 80, 71, 251])) {
          return {
            ext: "bpg",
            mime: "image/bpg"
          };
        }
        if (this.checkString("wvpk")) {
          return {
            ext: "wv",
            mime: "audio/wavpack"
          };
        }
        if (this.checkString("%PDF")) {
          try {
            const skipBytes = 1350;
            if (skipBytes === await tokenizer.ignore(skipBytes)) {
              const maxBufferSize2 = 10 * 1024 * 1024;
              const buffer = new Uint8Array(Math.min(maxBufferSize2, tokenizer.fileInfo.size - skipBytes));
              await tokenizer.readBuffer(buffer, { mayBeLess: true });
              if (includes(buffer, new TextEncoder().encode("AIPrivateData"))) {
                return {
                  ext: "ai",
                  mime: "application/postscript"
                };
              }
            }
          } catch (error) {
            if (!(error instanceof EndOfStreamError)) {
              throw error;
            }
          }
          return {
            ext: "pdf",
            mime: "application/pdf"
          };
        }
        if (this.check([0, 97, 115, 109])) {
          return {
            ext: "wasm",
            mime: "application/wasm"
          };
        }
        if (this.check([73, 73])) {
          const fileType = await this.readTiffHeader(false);
          if (fileType) {
            return fileType;
          }
        }
        if (this.check([77, 77])) {
          const fileType = await this.readTiffHeader(true);
          if (fileType) {
            return fileType;
          }
        }
        if (this.checkString("MAC ")) {
          return {
            ext: "ape",
            mime: "audio/ape"
          };
        }
        if (this.check([26, 69, 223, 163])) {
          async function readField() {
            const msb = await tokenizer.peekNumber(UINT8);
            let mask = 128;
            let ic = 0;
            while ((msb & mask) === 0 && mask !== 0) {
              ++ic;
              mask >>= 1;
            }
            const id = new Uint8Array(ic + 1);
            await tokenizer.readBuffer(id);
            return id;
          }
          async function readElement() {
            const idField = await readField();
            const lengthField = await readField();
            lengthField[0] ^= 128 >> lengthField.length - 1;
            const nrLength = Math.min(6, lengthField.length);
            const idView = new DataView(idField.buffer);
            const lengthView = new DataView(lengthField.buffer, lengthField.length - nrLength, nrLength);
            return {
              id: getUintBE(idView),
              len: getUintBE(lengthView)
            };
          }
          async function readChildren(children) {
            while (children > 0) {
              const element = await readElement();
              if (element.id === 17026) {
                const rawValue = await tokenizer.readToken(new StringType(element.len));
                return rawValue.replaceAll(/\00.*$/g, "");
              }
              await tokenizer.ignore(element.len);
              --children;
            }
          }
          const re3 = await readElement();
          const documentType = await readChildren(re3.len);
          switch (documentType) {
            case "webm":
              return {
                ext: "webm",
                mime: "video/webm"
              };
            case "matroska":
              return {
                ext: "mkv",
                mime: "video/x-matroska"
              };
            default:
              return;
          }
        }
        if (this.checkString("SQLi")) {
          return {
            ext: "sqlite",
            mime: "application/x-sqlite3"
          };
        }
        if (this.check([78, 69, 83, 26])) {
          return {
            ext: "nes",
            mime: "application/x-nintendo-nes-rom"
          };
        }
        if (this.checkString("Cr24")) {
          return {
            ext: "crx",
            mime: "application/x-google-chrome-extension"
          };
        }
        if (this.checkString("MSCF") || this.checkString("ISc(")) {
          return {
            ext: "cab",
            mime: "application/vnd.ms-cab-compressed"
          };
        }
        if (this.check([237, 171, 238, 219])) {
          return {
            ext: "rpm",
            mime: "application/x-rpm"
          };
        }
        if (this.check([197, 208, 211, 198])) {
          return {
            ext: "eps",
            mime: "application/eps"
          };
        }
        if (this.check([40, 181, 47, 253])) {
          return {
            ext: "zst",
            mime: "application/zstd"
          };
        }
        if (this.check([127, 69, 76, 70])) {
          return {
            ext: "elf",
            mime: "application/x-elf"
          };
        }
        if (this.check([33, 66, 68, 78])) {
          return {
            ext: "pst",
            mime: "application/vnd.ms-outlook"
          };
        }
        if (this.checkString("PAR1")) {
          return {
            ext: "parquet",
            mime: "application/x-parquet"
          };
        }
        if (this.checkString("ttcf")) {
          return {
            ext: "ttc",
            mime: "font/collection"
          };
        }
        if (this.check([207, 250, 237, 254])) {
          return {
            ext: "macho",
            mime: "application/x-mach-binary"
          };
        }
        if (this.check([4, 34, 77, 24])) {
          return {
            ext: "lz4",
            mime: "application/x-lz4"
            // Invented by us
          };
        }
        if (this.check([79, 84, 84, 79, 0])) {
          return {
            ext: "otf",
            mime: "font/otf"
          };
        }
        if (this.checkString("#!AMR")) {
          return {
            ext: "amr",
            mime: "audio/amr"
          };
        }
        if (this.checkString("{\\rtf")) {
          return {
            ext: "rtf",
            mime: "application/rtf"
          };
        }
        if (this.check([70, 76, 86, 1])) {
          return {
            ext: "flv",
            mime: "video/x-flv"
          };
        }
        if (this.checkString("IMPM")) {
          return {
            ext: "it",
            mime: "audio/x-it"
          };
        }
        if (this.checkString("-lh0-", { offset: 2 }) || this.checkString("-lh1-", { offset: 2 }) || this.checkString("-lh2-", { offset: 2 }) || this.checkString("-lh3-", { offset: 2 }) || this.checkString("-lh4-", { offset: 2 }) || this.checkString("-lh5-", { offset: 2 }) || this.checkString("-lh6-", { offset: 2 }) || this.checkString("-lh7-", { offset: 2 }) || this.checkString("-lzs-", { offset: 2 }) || this.checkString("-lz4-", { offset: 2 }) || this.checkString("-lz5-", { offset: 2 }) || this.checkString("-lhd-", { offset: 2 })) {
          return {
            ext: "lzh",
            mime: "application/x-lzh-compressed"
          };
        }
        if (this.check([0, 0, 1, 186])) {
          if (this.check([33], { offset: 4, mask: [241] })) {
            return {
              ext: "mpg",
              // May also be .ps, .mpeg
              mime: "video/MP1S"
            };
          }
          if (this.check([68], { offset: 4, mask: [196] })) {
            return {
              ext: "mpg",
              // May also be .mpg, .m2p, .vob or .sub
              mime: "video/MP2P"
            };
          }
        }
        if (this.checkString("ITSF")) {
          return {
            ext: "chm",
            mime: "application/vnd.ms-htmlhelp"
          };
        }
        if (this.check([202, 254, 186, 190])) {
          return {
            ext: "class",
            mime: "application/java-vm"
          };
        }
        if (this.checkString(".RMF")) {
          return {
            ext: "rm",
            mime: "application/vnd.rn-realmedia"
          };
        }
        if (this.checkString("DRACO")) {
          return {
            ext: "drc",
            mime: "application/vnd.google.draco"
            // Invented by us
          };
        }
        if (this.check([253, 55, 122, 88, 90, 0])) {
          return {
            ext: "xz",
            mime: "application/x-xz"
          };
        }
        if (this.checkString("<?xml ")) {
          return {
            ext: "xml",
            mime: "application/xml"
          };
        }
        if (this.check([55, 122, 188, 175, 39, 28])) {
          return {
            ext: "7z",
            mime: "application/x-7z-compressed"
          };
        }
        if (this.check([82, 97, 114, 33, 26, 7]) && (this.buffer[6] === 0 || this.buffer[6] === 1)) {
          return {
            ext: "rar",
            mime: "application/x-rar-compressed"
          };
        }
        if (this.checkString("solid ")) {
          return {
            ext: "stl",
            mime: "model/stl"
          };
        }
        if (this.checkString("AC")) {
          const version = new StringType(4, "latin1").get(this.buffer, 2);
          if (version.match("^d*") && version >= 1e3 && version <= 1050) {
            return {
              ext: "dwg",
              mime: "image/vnd.dwg"
            };
          }
        }
        if (this.checkString("070707")) {
          return {
            ext: "cpio",
            mime: "application/x-cpio"
          };
        }
        if (this.checkString("BLENDER")) {
          return {
            ext: "blend",
            mime: "application/x-blender"
          };
        }
        if (this.checkString("!<arch>")) {
          await tokenizer.ignore(8);
          const string = await tokenizer.readToken(new StringType(13, "ascii"));
          if (string === "debian-binary") {
            return {
              ext: "deb",
              mime: "application/x-deb"
            };
          }
          return {
            ext: "ar",
            mime: "application/x-unix-archive"
          };
        }
        if (this.checkString("WEBVTT") && // One of LF, CR, tab, space, or end of file must follow "WEBVTT" per the spec (see `fixture/fixture-vtt-*.vtt` for examples). Note that `\0` is technically the null character (there is no such thing as an EOF character). However, checking for `\0` gives us the same result as checking for the end of the stream.
        ["\n", "\r", "	", " ", "\0"].some((char7) => this.checkString(char7, { offset: 6 }))) {
          return {
            ext: "vtt",
            mime: "text/vtt"
          };
        }
        if (this.check([137, 80, 78, 71, 13, 10, 26, 10])) {
          await tokenizer.ignore(8);
          async function readChunkHeader() {
            return {
              length: await tokenizer.readToken(INT32_BE),
              type: await tokenizer.readToken(new StringType(4, "latin1"))
            };
          }
          do {
            const chunk2 = await readChunkHeader();
            if (chunk2.length < 0) {
              return;
            }
            switch (chunk2.type) {
              case "IDAT":
                return {
                  ext: "png",
                  mime: "image/png"
                };
              case "acTL":
                return {
                  ext: "apng",
                  mime: "image/apng"
                };
              default:
                await tokenizer.ignore(chunk2.length + 4);
            }
          } while (tokenizer.position + 8 < tokenizer.fileInfo.size);
          return {
            ext: "png",
            mime: "image/png"
          };
        }
        if (this.check([65, 82, 82, 79, 87, 49, 0, 0])) {
          return {
            ext: "arrow",
            mime: "application/x-apache-arrow"
          };
        }
        if (this.check([103, 108, 84, 70, 2, 0, 0, 0])) {
          return {
            ext: "glb",
            mime: "model/gltf-binary"
          };
        }
        if (this.check([102, 114, 101, 101], { offset: 4 }) || this.check([109, 100, 97, 116], { offset: 4 }) || this.check([109, 111, 111, 118], { offset: 4 }) || this.check([119, 105, 100, 101], { offset: 4 })) {
          return {
            ext: "mov",
            mime: "video/quicktime"
          };
        }
        if (this.check([73, 73, 82, 79, 8, 0, 0, 0, 24])) {
          return {
            ext: "orf",
            mime: "image/x-olympus-orf"
          };
        }
        if (this.checkString("gimp xcf ")) {
          return {
            ext: "xcf",
            mime: "image/x-xcf"
          };
        }
        if (this.checkString("ftyp", { offset: 4 }) && (this.buffer[8] & 96) !== 0) {
          const brandMajor = new StringType(4, "latin1").get(this.buffer, 8).replace("\0", " ").trim();
          switch (brandMajor) {
            case "avif":
            case "avis":
              return { ext: "avif", mime: "image/avif" };
            case "mif1":
              return { ext: "heic", mime: "image/heif" };
            case "msf1":
              return { ext: "heic", mime: "image/heif-sequence" };
            case "heic":
            case "heix":
              return { ext: "heic", mime: "image/heic" };
            case "hevc":
            case "hevx":
              return { ext: "heic", mime: "image/heic-sequence" };
            case "qt":
              return { ext: "mov", mime: "video/quicktime" };
            case "M4V":
            case "M4VH":
            case "M4VP":
              return { ext: "m4v", mime: "video/x-m4v" };
            case "M4P":
              return { ext: "m4p", mime: "video/mp4" };
            case "M4B":
              return { ext: "m4b", mime: "audio/mp4" };
            case "M4A":
              return { ext: "m4a", mime: "audio/x-m4a" };
            case "F4V":
              return { ext: "f4v", mime: "video/mp4" };
            case "F4P":
              return { ext: "f4p", mime: "video/mp4" };
            case "F4A":
              return { ext: "f4a", mime: "audio/mp4" };
            case "F4B":
              return { ext: "f4b", mime: "audio/mp4" };
            case "crx":
              return { ext: "cr3", mime: "image/x-canon-cr3" };
            default:
              if (brandMajor.startsWith("3g")) {
                if (brandMajor.startsWith("3g2")) {
                  return { ext: "3g2", mime: "video/3gpp2" };
                }
                return { ext: "3gp", mime: "video/3gpp" };
              }
              return { ext: "mp4", mime: "video/mp4" };
          }
        }
        if (this.check([82, 73, 70, 70])) {
          if (this.checkString("WEBP", { offset: 8 })) {
            return {
              ext: "webp",
              mime: "image/webp"
            };
          }
          if (this.check([65, 86, 73], { offset: 8 })) {
            return {
              ext: "avi",
              mime: "video/vnd.avi"
            };
          }
          if (this.check([87, 65, 86, 69], { offset: 8 })) {
            return {
              ext: "wav",
              mime: "audio/wav"
            };
          }
          if (this.check([81, 76, 67, 77], { offset: 8 })) {
            return {
              ext: "qcp",
              mime: "audio/qcelp"
            };
          }
        }
        if (this.check([73, 73, 85, 0, 24, 0, 0, 0, 136, 231, 116, 216])) {
          return {
            ext: "rw2",
            mime: "image/x-panasonic-rw2"
          };
        }
        if (this.check([48, 38, 178, 117, 142, 102, 207, 17, 166, 217])) {
          async function readHeader() {
            const guid = new Uint8Array(16);
            await tokenizer.readBuffer(guid);
            return {
              id: guid,
              size: Number(await tokenizer.readToken(UINT64_LE))
            };
          }
          await tokenizer.ignore(30);
          while (tokenizer.position + 24 < tokenizer.fileInfo.size) {
            const header2 = await readHeader();
            let payload = header2.size - 24;
            if (_check(header2.id, [145, 7, 220, 183, 183, 169, 207, 17, 142, 230, 0, 192, 12, 32, 83, 101])) {
              const typeId = new Uint8Array(16);
              payload -= await tokenizer.readBuffer(typeId);
              if (_check(typeId, [64, 158, 105, 248, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) {
                return {
                  ext: "asf",
                  mime: "audio/x-ms-asf"
                };
              }
              if (_check(typeId, [192, 239, 25, 188, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43])) {
                return {
                  ext: "asf",
                  mime: "video/x-ms-asf"
                };
              }
              break;
            }
            await tokenizer.ignore(payload);
          }
          return {
            ext: "asf",
            mime: "application/vnd.ms-asf"
          };
        }
        if (this.check([171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10])) {
          return {
            ext: "ktx",
            mime: "image/ktx"
          };
        }
        if ((this.check([126, 16, 4]) || this.check([126, 24, 4])) && this.check([48, 77, 73, 69], { offset: 4 })) {
          return {
            ext: "mie",
            mime: "application/x-mie"
          };
        }
        if (this.check([39, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], { offset: 2 })) {
          return {
            ext: "shp",
            mime: "application/x-esri-shape"
          };
        }
        if (this.check([255, 79, 255, 81])) {
          return {
            ext: "j2c",
            mime: "image/j2c"
          };
        }
        if (this.check([0, 0, 0, 12, 106, 80, 32, 32, 13, 10, 135, 10])) {
          await tokenizer.ignore(20);
          const type = await tokenizer.readToken(new StringType(4, "ascii"));
          switch (type) {
            case "jp2 ":
              return {
                ext: "jp2",
                mime: "image/jp2"
              };
            case "jpx ":
              return {
                ext: "jpx",
                mime: "image/jpx"
              };
            case "jpm ":
              return {
                ext: "jpm",
                mime: "image/jpm"
              };
            case "mjp2":
              return {
                ext: "mj2",
                mime: "image/mj2"
              };
            default:
              return;
          }
        }
        if (this.check([255, 10]) || this.check([0, 0, 0, 12, 74, 88, 76, 32, 13, 10, 135, 10])) {
          return {
            ext: "jxl",
            mime: "image/jxl"
          };
        }
        if (this.check([254, 255])) {
          if (this.check([0, 60, 0, 63, 0, 120, 0, 109, 0, 108], { offset: 2 })) {
            return {
              ext: "xml",
              mime: "application/xml"
            };
          }
          return void 0;
        }
        if (this.check([208, 207, 17, 224, 161, 177, 26, 225])) {
          return {
            ext: "cfb",
            mime: "application/x-cfb"
          };
        }
        await tokenizer.peekBuffer(this.buffer, { length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true });
        if (this.check([97, 99, 115, 112], { offset: 36 })) {
          return {
            ext: "icc",
            mime: "application/vnd.iccprofile"
          };
        }
        if (this.checkString("**ACE", { offset: 7 }) && this.checkString("**", { offset: 12 })) {
          return {
            ext: "ace",
            mime: "application/x-ace-compressed"
          };
        }
        if (this.checkString("BEGIN:")) {
          if (this.checkString("VCARD", { offset: 6 })) {
            return {
              ext: "vcf",
              mime: "text/vcard"
            };
          }
          if (this.checkString("VCALENDAR", { offset: 6 })) {
            return {
              ext: "ics",
              mime: "text/calendar"
            };
          }
        }
        if (this.checkString("FUJIFILMCCD-RAW")) {
          return {
            ext: "raf",
            mime: "image/x-fujifilm-raf"
          };
        }
        if (this.checkString("Extended Module:")) {
          return {
            ext: "xm",
            mime: "audio/x-xm"
          };
        }
        if (this.checkString("Creative Voice File")) {
          return {
            ext: "voc",
            mime: "audio/x-voc"
          };
        }
        if (this.check([4, 0, 0, 0]) && this.buffer.length >= 16) {
          const jsonSize = new DataView(this.buffer.buffer).getUint32(12, true);
          if (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {
            try {
              const header2 = new TextDecoder().decode(this.buffer.slice(16, jsonSize + 16));
              const json = JSON.parse(header2);
              if (json.files) {
                return {
                  ext: "asar",
                  mime: "application/x-asar"
                };
              }
            } catch {
            }
          }
        }
        if (this.check([6, 14, 43, 52, 2, 5, 1, 1, 13, 1, 2, 1, 1, 2])) {
          return {
            ext: "mxf",
            mime: "application/mxf"
          };
        }
        if (this.checkString("SCRM", { offset: 44 })) {
          return {
            ext: "s3m",
            mime: "audio/x-s3m"
          };
        }
        if (this.check([71]) && this.check([71], { offset: 188 })) {
          return {
            ext: "mts",
            mime: "video/mp2t"
          };
        }
        if (this.check([71], { offset: 4 }) && this.check([71], { offset: 196 })) {
          return {
            ext: "mts",
            mime: "video/mp2t"
          };
        }
        if (this.check([66, 79, 79, 75, 77, 79, 66, 73], { offset: 60 })) {
          return {
            ext: "mobi",
            mime: "application/x-mobipocket-ebook"
          };
        }
        if (this.check([68, 73, 67, 77], { offset: 128 })) {
          return {
            ext: "dcm",
            mime: "application/dicom"
          };
        }
        if (this.check([76, 0, 0, 0, 1, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70])) {
          return {
            ext: "lnk",
            mime: "application/x.ms.shortcut"
            // Invented by us
          };
        }
        if (this.check([98, 111, 111, 107, 0, 0, 0, 0, 109, 97, 114, 107, 0, 0, 0, 0])) {
          return {
            ext: "alias",
            mime: "application/x.apple.alias"
            // Invented by us
          };
        }
        if (this.checkString("Kaydara FBX Binary  \0")) {
          return {
            ext: "fbx",
            mime: "application/x.autodesk.fbx"
            // Invented by us
          };
        }
        if (this.check([76, 80], { offset: 34 }) && (this.check([0, 0, 1], { offset: 8 }) || this.check([1, 0, 2], { offset: 8 }) || this.check([2, 0, 2], { offset: 8 }))) {
          return {
            ext: "eot",
            mime: "application/vnd.ms-fontobject"
          };
        }
        if (this.check([6, 6, 237, 245, 216, 29, 70, 229, 189, 49, 239, 231, 254, 116, 183, 29])) {
          return {
            ext: "indd",
            mime: "application/x-indesign"
          };
        }
        await tokenizer.peekBuffer(this.buffer, { length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true });
        if (tarHeaderChecksumMatches(this.buffer)) {
          return {
            ext: "tar",
            mime: "application/x-tar"
          };
        }
        if (this.check([255, 254])) {
          if (this.check([60, 0, 63, 0, 120, 0, 109, 0, 108, 0], { offset: 2 })) {
            return {
              ext: "xml",
              mime: "application/xml"
            };
          }
          if (this.check([255, 14, 83, 0, 107, 0, 101, 0, 116, 0, 99, 0, 104, 0, 85, 0, 112, 0, 32, 0, 77, 0, 111, 0, 100, 0, 101, 0, 108, 0], { offset: 2 })) {
            return {
              ext: "skp",
              mime: "application/vnd.sketchup.skp"
            };
          }
          return void 0;
        }
        if (this.checkString("-----BEGIN PGP MESSAGE-----")) {
          return {
            ext: "pgp",
            mime: "application/pgp-encrypted"
          };
        }
      };
      // Detections with limited supporting data, resulting in a higher likelihood of false positives
      detectImprecise = async (tokenizer) => {
        this.buffer = new Uint8Array(reasonableDetectionSizeInBytes);
        await tokenizer.peekBuffer(this.buffer, { length: Math.min(8, tokenizer.fileInfo.size), mayBeLess: true });
        if (this.check([0, 0, 1, 186]) || this.check([0, 0, 1, 179])) {
          return {
            ext: "mpg",
            mime: "video/mpeg"
          };
        }
        if (this.check([0, 1, 0, 0, 0])) {
          return {
            ext: "ttf",
            mime: "font/ttf"
          };
        }
        if (this.check([0, 0, 1, 0])) {
          return {
            ext: "ico",
            mime: "image/x-icon"
          };
        }
        if (this.check([0, 0, 2, 0])) {
          return {
            ext: "cur",
            mime: "image/x-icon"
          };
        }
        if (this.buffer.length >= 2 && this.check([255, 224], { offset: 0, mask: [255, 224] })) {
          if (this.check([16], { offset: 1, mask: [22] })) {
            if (this.check([8], { offset: 1, mask: [8] })) {
              return {
                ext: "aac",
                mime: "audio/aac"
              };
            }
            return {
              ext: "aac",
              mime: "audio/aac"
            };
          }
          if (this.check([2], { offset: 1, mask: [6] })) {
            return {
              ext: "mp3",
              mime: "audio/mpeg"
            };
          }
          if (this.check([4], { offset: 1, mask: [6] })) {
            return {
              ext: "mp2",
              mime: "audio/mpeg"
            };
          }
          if (this.check([6], { offset: 1, mask: [6] })) {
            return {
              ext: "mp1",
              mime: "audio/mpeg"
            };
          }
        }
      };
      async readTiffTag(bigEndian) {
        const tagId = await this.tokenizer.readToken(bigEndian ? UINT16_BE : UINT16_LE);
        this.tokenizer.ignore(10);
        switch (tagId) {
          case 50341:
            return {
              ext: "arw",
              mime: "image/x-sony-arw"
            };
          case 50706:
            return {
              ext: "dng",
              mime: "image/x-adobe-dng"
            };
          default:
        }
      }
      async readTiffIFD(bigEndian) {
        const numberOfTags = await this.tokenizer.readToken(bigEndian ? UINT16_BE : UINT16_LE);
        for (let n22 = 0; n22 < numberOfTags; ++n22) {
          const fileType = await this.readTiffTag(bigEndian);
          if (fileType) {
            return fileType;
          }
        }
      }
      async readTiffHeader(bigEndian) {
        const version = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 2);
        const ifdOffset = (bigEndian ? UINT32_BE : UINT32_LE).get(this.buffer, 4);
        if (version === 42) {
          if (ifdOffset >= 6) {
            if (this.checkString("CR", { offset: 8 })) {
              return {
                ext: "cr2",
                mime: "image/x-canon-cr2"
              };
            }
            if (ifdOffset >= 8) {
              const someId1 = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 8);
              const someId2 = (bigEndian ? UINT16_BE : UINT16_LE).get(this.buffer, 10);
              if (someId1 === 28 && someId2 === 254 || someId1 === 31 && someId2 === 11) {
                return {
                  ext: "nef",
                  mime: "image/x-nikon-nef"
                };
              }
            }
          }
          await this.tokenizer.ignore(ifdOffset);
          const fileType = await this.readTiffIFD(bigEndian);
          return fileType ?? {
            ext: "tif",
            mime: "image/tiff"
          };
        }
        if (version === 43) {
          return {
            ext: "tif",
            mime: "image/tiff"
          };
        }
      }
    };
    supportedExtensions = new Set(extensions);
    supportedMimeTypes = new Set(mimeTypes);
  }
});
var file_type_exports = {};
__export2(file_type_exports, {
  FileTypeParser: () => FileTypeParser2,
  fileTypeFromBlob: () => fileTypeFromBlob,
  fileTypeFromBuffer: () => fileTypeFromBuffer,
  fileTypeFromFile: () => fileTypeFromFile,
  fileTypeFromStream: () => fileTypeFromStream,
  fileTypeFromTokenizer: () => fileTypeFromTokenizer,
  fileTypeStream: () => fileTypeStream,
  supportedExtensions: () => supportedExtensions,
  supportedMimeTypes: () => supportedMimeTypes
});
async function fileTypeFromFile(path22, fileTypeOptions) {
  return new FileTypeParser2(fileTypeOptions).fromFile(path22, fileTypeOptions);
}
async function fileTypeFromStream(stream5, fileTypeOptions) {
  return new FileTypeParser2(fileTypeOptions).fromStream(stream5);
}
async function fileTypeStream(readableStream, options = {}) {
  return new FileTypeParser2(options).toDetectionStream(readableStream, options);
}
var FileTypeParser2;
var init_file_type = __esm({
  "../../node_modules/.pnpm/file-type@20.5.0/node_modules/file-type/index.js"() {
    init_lib2();
    init_core3();
    init_core3();
    FileTypeParser2 = class extends FileTypeParser {
      async fromStream(stream5) {
        const tokenizer = await (stream5 instanceof import_web.ReadableStream ? fromWebStream(stream5, this.tokenizerOptions) : fromStream2(stream5, this.tokenizerOptions));
        try {
          return await super.fromTokenizer(tokenizer);
        } finally {
          await tokenizer.close();
        }
      }
      async fromFile(path22) {
        const tokenizer = await fromFile(path22);
        try {
          return await super.fromTokenizer(tokenizer);
        } finally {
          await tokenizer.close();
        }
      }
      async toDetectionStream(readableStream, options = {}) {
        if (!(readableStream instanceof import_node_stream6.Readable)) {
          return super.toDetectionStream(readableStream, options);
        }
        const { sampleSize = reasonableDetectionSizeInBytes } = options;
        return new Promise((resolve2, reject) => {
          readableStream.on("error", reject);
          readableStream.once("readable", () => {
            (async () => {
              try {
                const pass = new import_node_stream6.PassThrough();
                const outputStream = import_node_stream6.pipeline ? (0, import_node_stream6.pipeline)(readableStream, pass, () => {
                }) : readableStream.pipe(pass);
                const chunk2 = readableStream.read(sampleSize) ?? readableStream.read() ?? new Uint8Array(0);
                try {
                  pass.fileType = await this.fromBuffer(chunk2);
                } catch (error) {
                  if (error instanceof EndOfStreamError) {
                    pass.fileType = void 0;
                  } else {
                    reject(error);
                  }
                }
                resolve2(outputStream);
              } catch (error) {
                reject(error);
              }
            })();
          });
        });
      }
    };
  }
});
var require_sitemap = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/sitemap.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Sitemap = void 0;
    exports2.parseSitemap = parseSitemap;
    exports2.discoverValidSitemaps = discoverValidSitemaps;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_crypto_1 = __require("node:crypto");
    var node_stream_1 = __require("node:stream");
    var node_string_decoder_1 = __require("node:string_decoder");
    var node_zlib_1 = __require("node:zlib");
    var sax_1 = tslib_1.__importDefault(require_sax());
    var whatwg_mimetype_1 = tslib_1.__importDefault(require_mime_type());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var iterables_1 = require_iterables();
    var robots_1 = require_robots();
    var SitemapTxtParser = class extends node_stream_1.Transform {
      constructor() {
        super({
          readableObjectMode: true,
          transform: (chunk2, _encoding, callback) => {
            this.processBuffer(this.decoder.write(chunk2), false);
            callback();
          },
          flush: (callback) => {
            this.processBuffer(this.decoder.end(), true);
            callback();
          }
        });
        Object.defineProperty(this, "decoder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new node_string_decoder_1.StringDecoder("utf8")
        });
        Object.defineProperty(this, "buffer", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: ""
        });
      }
      processBuffer(input, finalize) {
        this.buffer += input;
        if (finalize || this.buffer.includes("\n")) {
          const parts = this.buffer.split("\n").map((part) => part.trim()).filter((part) => part.length > 0);
          if (finalize) {
            for (const url2 of parts) {
              this.push({ type: "url", loc: url2 });
            }
            this.buffer = "";
          } else if (parts.length > 0) {
            for (const url2 of parts.slice(0, -1)) {
              this.push({ type: "url", loc: url2 });
            }
            this.buffer = parts.at(-1);
          }
        }
      }
    };
    var SitemapXmlParser = class extends node_stream_1.Transform {
      constructor() {
        super({
          readableObjectMode: true,
          transform: (chunk2, _encoding, callback) => {
            this.parser.write(this.decoder.write(chunk2));
            callback();
          },
          flush: (callback) => {
            const rest = this.decoder.end();
            if (rest.length > 0) {
              this.parser.write(rest);
            }
            this.parser.end();
            callback();
          }
        });
        Object.defineProperty(this, "decoder", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new node_string_decoder_1.StringDecoder("utf8")
        });
        Object.defineProperty(this, "parser", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new sax_1.default.SAXParser(true)
        });
        Object.defineProperty(this, "rootTagName", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "currentTag", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "url", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        this.parser.onopentag = this.onOpenTag.bind(this);
        this.parser.onclosetag = this.onCloseTag.bind(this);
        this.parser.ontext = this.onText.bind(this);
        this.parser.oncdata = this.onText.bind(this);
        this.parser.onerror = this.destroy.bind(this);
      }
      onOpenTag(node) {
        if (this.rootTagName !== void 0) {
          if (node.name === "loc" || node.name === "lastmod" || node.name === "priority" || node.name === "changefreq") {
            this.currentTag = node.name;
          }
        }
        if (node.name === "urlset") {
          this.rootTagName = "urlset";
        }
        if (node.name === "sitemapindex") {
          this.rootTagName = "sitemapindex";
        }
      }
      onCloseTag(name2) {
        if (name2 === "loc" || name2 === "lastmod" || name2 === "priority" || name2 === "changefreq") {
          this.currentTag = void 0;
        }
        if (name2 === "url" && this.url.loc !== void 0) {
          this.push({ type: "url", ...this.url, loc: this.url.loc });
          this.url = {};
        }
      }
      onText(text) {
        if (this.currentTag === "loc") {
          if (this.rootTagName === "sitemapindex") {
            this.push({ type: "sitemapUrl", url: text.trim() });
          }
          if (this.rootTagName === "urlset") {
            this.url ?? (this.url = {});
            this.url.loc = text.trim();
          }
        }
        text = text.trim();
        if (this.currentTag === "lastmod") {
          this.url.lastmod = new Date(text);
        }
        if (this.currentTag === "priority") {
          this.url.priority = Number(text);
        }
        if (this.currentTag === "changefreq") {
          if (["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"].includes(text)) {
            this.url.changefreq = text;
          }
        }
      }
    };
    async function* parseSitemap(initialSources, proxyUrl, options) {
      const { gotScraping: gotScraping2 } = await Promise.resolve().then(() => (init_dist6(), dist_exports));
      const { fileTypeStream: fileTypeStream2 } = await Promise.resolve().then(() => (init_file_type(), file_type_exports));
      const { emitNestedSitemaps = false, maxDepth = Infinity, sitemapRetries = 3, networkTimeouts, reportNetworkErrors = true } = options ?? {};
      const sources = [...initialSources];
      const visitedSitemapUrls = /* @__PURE__ */ new Set();
      const createParser = (contentType = "", url2) => {
        let mimeType;
        try {
          mimeType = new whatwg_mimetype_1.default(contentType);
        } catch {
          mimeType = null;
        }
        if (mimeType?.isXML() || url2?.pathname.endsWith(".xml")) {
          return new SitemapXmlParser();
        }
        if (mimeType?.essence === "text/plain" || url2?.pathname.endsWith(".txt")) {
          return new SitemapTxtParser();
        }
        throw new Error(`Unsupported sitemap content type (contentType = ${contentType}, url = ${url2?.toString()})`);
      };
      while (sources.length > 0) {
        const source = sources.shift();
        if ((source?.depth ?? 0) > maxDepth) {
          log_1.default.debug(`Skipping sitemap ${source.type === "url" ? source.url : ""} because it reached max depth ${maxDepth}.`);
          continue;
        }
        let items = null;
        if (source.type === "url") {
          const sitemapUrl = new URL(source.url);
          visitedSitemapUrls.add(sitemapUrl.toString());
          let retriesLeft = sitemapRetries + 1;
          while (retriesLeft-- > 0) {
            try {
              const sitemapStream = await new Promise((resolve2, reject) => {
                const request = gotScraping2.stream({
                  url: sitemapUrl,
                  proxyUrl,
                  method: "GET",
                  timeout: networkTimeouts,
                  headers: {
                    accept: "*/*"
                  }
                });
                request.on("response", () => resolve2(request));
                request.on("error", reject);
              });
              let error = null;
              if (sitemapStream.response.statusCode >= 200 && sitemapStream.response.statusCode < 300) {
                let contentType = sitemapStream.response.headers["content-type"];
                const streamWithType = await fileTypeStream2(sitemapStream);
                if (streamWithType.fileType !== void 0) {
                  contentType = streamWithType.fileType.mime;
                }
                let isGzipped = false;
                if (contentType !== void 0 ? contentType === "application/gzip" : sitemapUrl.pathname.endsWith(".gz")) {
                  isGzipped = true;
                  if (sitemapUrl.pathname.endsWith(".gz")) {
                    sitemapUrl.pathname = sitemapUrl.pathname.substring(0, sitemapUrl.pathname.length - 3);
                  }
                }
                items = (0, node_stream_1.pipeline)(streamWithType, isGzipped ? (0, node_zlib_1.createGunzip)() : new node_stream_1.PassThrough(), createParser(contentType, sitemapUrl), (e2) => {
                  if (e2 !== void 0 && e2 !== null) {
                    error = { type: "parser", error: e2 };
                  }
                });
              } else {
                error = {
                  type: "fetch",
                  error: new Error(`Failed to fetch sitemap: ${sitemapUrl}, status code: ${sitemapStream.response.statusCode}`)
                };
              }
              if (error !== null) {
                const shouldIgnoreError = error.type === "fetch" && !reportNetworkErrors;
                if (!shouldIgnoreError) {
                  throw error.error;
                }
              } else {
                break;
              }
            } catch (e2) {
              log_1.default.warning(`Malformed sitemap content: ${sitemapUrl}, ${retriesLeft === 0 ? "no retries left." : "retrying..."} (${e2})`);
            }
          }
        } else if (source.type === "raw") {
          items = (0, node_stream_1.pipeline)(node_stream_1.Readable.from([source.content]), createParser("text/xml"), (error) => {
            if (error !== void 0) {
              log_1.default.warning(`Malformed sitemap content: ${error}`);
            }
          });
        }
        if (items === null) {
          continue;
        }
        for await (const item of items) {
          if (item.type === "sitemapUrl" && !visitedSitemapUrls.has(item.url)) {
            sources.push({ type: "url", url: item.url, depth: (source.depth ?? 0) + 1 });
            if (emitNestedSitemaps) {
              yield { loc: item.url, originSitemapUrl: null };
            }
          }
          if (item.type === "url") {
            yield {
              ...item,
              originSitemapUrl: source.type === "url" ? source.url : `raw://${(0, node_crypto_1.createHash)("sha256").update(source.content).digest("base64")}`
            };
          }
        }
      }
    }
    var Sitemap = class _Sitemap {
      constructor(urls) {
        Object.defineProperty(this, "urls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: urls
        });
      }
      /**
       * Try to load sitemap from the most common locations - `/sitemap.xml` and `/sitemap.txt`.
       * For loading based on `Sitemap` entries in `robots.txt`, the {@link RobotsTxtFile} class should be used.
       * @param url The domain URL to fetch the sitemap for.
       * @param proxyUrl A proxy to be used for fetching the sitemap file.
       */
      static async tryCommonNames(url2, proxyUrl) {
        const sitemapUrls = [];
        const sitemapUrl = new URL(url2);
        sitemapUrl.search = "";
        sitemapUrl.pathname = "/sitemap.xml";
        sitemapUrls.push(sitemapUrl.toString());
        sitemapUrl.pathname = "/sitemap.txt";
        sitemapUrls.push(sitemapUrl.toString());
        return _Sitemap.load(sitemapUrls, proxyUrl, { reportNetworkErrors: false });
      }
      /**
       * Fetch sitemap content from given URL or URLs and return URLs of referenced pages.
       * @param urls sitemap URL(s)
       * @param proxyUrl URL of a proxy to be used for fetching sitemap contents
       */
      static async load(urls, proxyUrl, parseSitemapOptions) {
        return await this.parse((Array.isArray(urls) ? urls : [urls]).map((url2) => ({ type: "url", url: url2 })), proxyUrl, parseSitemapOptions);
      }
      /**
       * Parse XML sitemap content from a string and return URLs of referenced pages. If the sitemap references other sitemaps, they will be loaded via HTTP.
       * @param content XML sitemap content
       * @param proxyUrl URL of a proxy to be used for fetching sitemap contents
       */
      static async fromXmlString(content2, proxyUrl) {
        return await this.parse([{ type: "raw", content: content2 }], proxyUrl);
      }
      static async parse(sources, proxyUrl, parseSitemapOptions) {
        const urls = [];
        try {
          for await (const item of parseSitemap(sources, proxyUrl, parseSitemapOptions)) {
            urls.push(item.loc);
          }
        } catch {
          return new _Sitemap([]);
        }
        return new _Sitemap(urls);
      }
    };
    exports2.Sitemap = Sitemap;
    async function* discoverValidSitemaps(urls, options = {}) {
      const { proxyUrl } = options;
      const { gotScraping: gotScraping2 } = await Promise.resolve().then(() => (init_dist6(), dist_exports));
      const sitemapUrls = /* @__PURE__ */ new Set();
      const addSitemapUrl = (url2) => {
        const sizeBefore = sitemapUrls.size;
        sitemapUrls.add(url2);
        if (sitemapUrls.size > sizeBefore) {
          return url2;
        }
        return void 0;
      };
      const urlExists = (url2) => gotScraping2({
        proxyUrl,
        url: url2,
        method: "HEAD"
      }).then((response) => response.statusCode >= 200 && response.statusCode < 400);
      const discoverSitemapsForDomainUrls = async function* (hostname, domainUrls) {
        if (!hostname) {
          return;
        }
        try {
          const robotsFile = await robots_1.RobotsFile.find(domainUrls[0], proxyUrl);
          for (const sitemapUrl2 of robotsFile.getSitemaps()) {
            if (addSitemapUrl(sitemapUrl2)) {
              yield sitemapUrl2;
            }
          }
        } catch (err2) {
          log_1.default.warning(`Failed to fetch robots.txt file for ${hostname}`, { error: err2 });
        }
        const sitemapUrl = domainUrls.find((url2) => /sitemap\.(?:xml|txt)(?:\.gz)?$/i.test(url2));
        if (sitemapUrl !== void 0) {
          if (addSitemapUrl(sitemapUrl)) {
            yield sitemapUrl;
          }
        } else {
          const firstUrl = new URL(domainUrls[0]);
          const possibleSitemapPathnames = ["/sitemap.xml", "/sitemap.txt", "/sitemap_index.xml"];
          for (const pathname of possibleSitemapPathnames) {
            firstUrl.pathname = pathname;
            if (await urlExists(firstUrl.toString())) {
              if (addSitemapUrl(firstUrl.toString())) {
                yield firstUrl.toString();
              }
            }
          }
        }
      };
      const groupedUrls = urls.reduce((acc, url2) => {
        const hostname = new URL(url2)?.hostname ?? "";
        acc[hostname] ?? (acc[hostname] = []);
        acc[hostname].push(url2);
        return acc;
      }, {});
      const iterables = Object.entries(groupedUrls).map(([hostname, domainUrls]) => discoverSitemapsForDomainUrls(hostname, domainUrls));
      for await (const url2 of (0, iterables_1.mergeAsyncIterables)(...iterables)) {
        yield url2;
      }
    }
  }
});
var require_robots = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/robots.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RobotsFile = exports2.RobotsTxtFile = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var robots_parser_1 = tslib_1.__importDefault(require_robots_parser());
    var gotScraping_1 = require_gotScraping();
    var sitemap_1 = require_sitemap();
    var HTTPError2;
    var RobotsTxtFile = class _RobotsTxtFile {
      constructor(robots, proxyUrl) {
        Object.defineProperty(this, "robots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: robots
        });
        Object.defineProperty(this, "proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: proxyUrl
        });
      }
      /**
       * Determine the location of a robots.txt file for a URL and fetch it.
       * @param url the URL to fetch robots.txt for
       * @param [proxyUrl] a proxy to be used for fetching the robots.txt file
       */
      static async find(url2, proxyUrl) {
        const robotsTxtFileUrl = new URL(url2);
        robotsTxtFileUrl.pathname = "/robots.txt";
        robotsTxtFileUrl.search = "";
        return _RobotsTxtFile.load(robotsTxtFileUrl.toString(), proxyUrl);
      }
      /**
       * Allows providing the URL and robots.txt content explicitly instead of loading it from the target site.
       * @param url the URL for robots.txt file
       * @param content contents of robots.txt
       * @param [proxyUrl] a proxy to be used for fetching the robots.txt file
       */
      static from(url2, content2, proxyUrl) {
        return new _RobotsTxtFile((0, robots_parser_1.default)(url2, content2), proxyUrl);
      }
      static async load(url2, proxyUrl) {
        if (!HTTPError2) {
          HTTPError2 = (await Promise.resolve().then(() => (init_dist6(), dist_exports))).HTTPError;
        }
        try {
          const response = await (0, gotScraping_1.gotScraping)({
            url: url2,
            proxyUrl,
            method: "GET",
            responseType: "text"
          });
          return new _RobotsTxtFile((0, robots_parser_1.default)(url2.toString(), response.body), proxyUrl);
        } catch (e2) {
          if (e2 instanceof HTTPError2 && e2.response.statusCode === 404) {
            return new _RobotsTxtFile({
              isAllowed() {
                return true;
              },
              getSitemaps() {
                return [];
              }
            }, proxyUrl);
          }
          throw e2;
        }
      }
      /**
       * Check if a URL should be crawled by robots.
       * @param url the URL to check against the rules in robots.txt
       * @param [userAgent] relevant user agent, default to `*`
       */
      isAllowed(url2, userAgent = "*") {
        return this.robots.isAllowed(url2, userAgent) ?? true;
      }
      /**
       * Get URLs of sitemaps referenced in the robots file.
       */
      getSitemaps() {
        return this.robots.getSitemaps();
      }
      /**
       * Parse all the sitemaps referenced in the robots file.
       */
      async parseSitemaps() {
        return sitemap_1.Sitemap.load(this.robots.getSitemaps(), this.proxyUrl);
      }
      /**
       * Get all URLs from all the sitemaps referenced in the robots file. A shorthand for `(await robots.parseSitemaps()).urls`.
       */
      async parseUrlsFromSitemaps() {
        return (await this.parseSitemaps()).urls;
      }
    };
    exports2.RobotsTxtFile = RobotsTxtFile;
    exports2.RobotsFile = RobotsTxtFile;
  }
});
var require_url = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/url.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.applySearchParams = applySearchParams;
    function applySearchParams(url2, searchParams) {
      if (searchParams === void 0) {
        return;
      }
      if (typeof searchParams === "string") {
        url2.search = searchParams;
        return;
      }
      let newSearchParams;
      if (searchParams instanceof URLSearchParams) {
        newSearchParams = searchParams;
      } else {
        newSearchParams = new URLSearchParams();
        for (const [key, value] of Object.entries(newSearchParams)) {
          if (value === void 0) {
            newSearchParams.delete(key);
          } else if (value === null) {
            newSearchParams.append(key, "");
          } else {
            newSearchParams.append(key, value);
          }
        }
      }
      url2.search = newSearchParams.toString();
    }
  }
});
var require_cpu_info = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/cpu-info.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getCurrentCpuTicks = getCurrentCpuTicks;
    exports2.getCpuQuota = getCpuQuota;
    exports2.getCpuPeriod = getCpuPeriod;
    exports2.getContainerCpuUsage = getContainerCpuUsage;
    exports2.getSystemCpuUsage = getSystemCpuUsage;
    exports2.sampleCpuUsage = sampleCpuUsage;
    exports2.getCurrentCpuTicksV2 = getCurrentCpuTicksV2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var promises_1 = __require("node:fs/promises");
    var node_os_1 = tslib_1.__importDefault(__require("node:os"));
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var general_1 = require_general2();
    var CPU_FILE_PATHS = {
      STAT: {
        V1: "/sys/fs/cgroup/cpuacct/cpuacct.usage",
        V2: "/sys/fs/cgroup/cpu.stat"
      },
      QUOTA: {
        V1: "/sys/fs/cgroup/cpu/cpu.cfs_quota_us",
        V2: "/sys/fs/cgroup/cpu.max"
      },
      PERIOD: {
        V1: "/sys/fs/cgroup/cpu/cpu.cfs_period_us",
        V2: "/sys/fs/cgroup/cpu.max"
      }
    };
    var CLOCK_TICKS_PER_SECOND = 100;
    var CLOCK_TICKS_CHECKED = false;
    var NANOSECONDS_PER_SECOND = 1e9;
    var previousTicks = { idle: 0, total: 0 };
    function getCurrentCpuTicks() {
      const cpusCores = node_os_1.default.cpus();
      const ticks = cpusCores.reduce((acc, cpu) => {
        const cpuTimes = Object.values(cpu.times);
        return {
          idle: acc.idle + cpu.times.idle,
          total: acc.total + cpuTimes.reduce((sum, num) => sum + num)
        };
      }, { idle: 0, total: 0 });
      const idleTicksDelta = ticks.idle - previousTicks.idle;
      const totalTicksDelta = ticks.total - previousTicks.total;
      return totalTicksDelta ? 1 - idleTicksDelta / totalTicksDelta : 0;
    }
    function getClockTicks() {
      try {
        const result = (0, node_child_process_1.execSync)("getconf CLK_TCK").toString().trim();
        return parseInt(result, 10);
      } catch (err2) {
        log_1.default.warningOnce("Failed to get clock ticks; defaulting to 100");
        return 100;
      }
    }
    async function getCpuQuota(cgroupsVersion) {
      if (cgroupsVersion === "V1") {
        const quotaStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.QUOTA.V1, "utf8");
        const quota = parseInt(quotaStr.trim(), 10);
        return quota === -1 ? null : quota;
      }
      const maxStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.QUOTA.V2, "utf8");
      const parts = maxStr.trim().split(/\s+/);
      if (parts[0] === "max") {
        return null;
      }
      return parseInt(parts[0], 10);
    }
    async function getCpuPeriod(cgroupsVersion) {
      if (cgroupsVersion === "V1") {
        const quotaStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.PERIOD.V1, "utf8");
        const quota = parseInt(quotaStr.trim(), 10);
        return quota;
      }
      const maxStr = await (0, promises_1.readFile)(CPU_FILE_PATHS.PERIOD.V2, "utf8");
      const parts = maxStr.trim().split(/\s+/);
      return parseInt(parts[1], 10);
    }
    async function getContainerCpuUsage(cgroupsVersion) {
      if (cgroupsVersion === "V1") {
        const data2 = await (0, promises_1.readFile)(CPU_FILE_PATHS.STAT.V1, "utf8");
        return Number(data2.trim());
      }
      const data = await (0, promises_1.readFile)(CPU_FILE_PATHS.STAT.V2, "utf8");
      const lines = data.split("\n");
      let usageUsec = 0;
      for (const line of lines) {
        const parts = line.trim().split(/\s+/);
        if (parts[0] === "usage_usec") {
          usageUsec = Number(parts[1]);
          break;
        }
      }
      return usageUsec * 1e3;
    }
    async function getSystemCpuUsage() {
      const statData = await (0, promises_1.readFile)("/proc/stat", "utf8");
      const lines = statData.split("\n");
      for (const line of lines) {
        if (line.startsWith("cpu ")) {
          const parts = line.split(/\s+/).slice(1, 8);
          let totalTicks = 0;
          for (const part of parts) {
            totalTicks += Number(part);
          }
          return totalTicks * NANOSECONDS_PER_SECOND / CLOCK_TICKS_PER_SECOND;
        }
      }
      throw new Error("no cpu line");
    }
    async function sampleCpuUsage(cGroupsVersion) {
      const [containerUsage, systemUsage] = await Promise.all([
        getContainerCpuUsage(cGroupsVersion),
        getSystemCpuUsage()
      ]);
      return { containerUsage, systemUsage };
    }
    var previousSample = { containerUsage: 0, systemUsage: 0 };
    async function getCurrentCpuTicksV2(containerized = false) {
      try {
        if (!containerized) {
          return getCurrentCpuTicks();
        }
        if (!CLOCK_TICKS_CHECKED) {
          CLOCK_TICKS_PER_SECOND = getClockTicks();
          CLOCK_TICKS_CHECKED = true;
        }
        const cgroupsVersion = await (0, general_1.getCgroupsVersion)();
        if (cgroupsVersion === null) {
          log_1.default.deprecated("Your environment is containerized, but your system does not support cgroups.\nIf you're running containers with limited cpu, cpu auto-scaling will not work properly.");
          return getCurrentCpuTicks();
        }
        const quota = await getCpuQuota(cgroupsVersion);
        if (quota === null) {
          return getCurrentCpuTicks();
        }
        const period = await getCpuPeriod(cgroupsVersion);
        const cpuAllowance = quota / period;
        const sample = await sampleCpuUsage(cgroupsVersion);
        const containerDelta = sample.containerUsage - previousSample.containerUsage;
        const systemDelta = sample.systemUsage - previousSample.systemUsage;
        previousSample = sample;
        const numCpus = node_os_1.default.cpus().length;
        return containerDelta / systemDelta * numCpus / cpuAllowance;
      } catch (err2) {
        log_1.default.exception(err2, "Cpu snapshot failed.");
        return getCurrentCpuTicks();
      }
    }
  }
});
var require_ps_tree2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/ps-tree.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.psTree = psTree;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var readline = tslib_1.__importStar(__require("node:readline"));
    async function psTree(pid, includeRoot = false) {
      return new Promise((resolve2, reject) => {
        if (typeof pid === "number") {
          pid = pid.toString();
        }
        let processLister;
        if (process.platform === "win32") {
          processLister = (0, node_child_process_1.spawn)("powershell", [
            "-NoProfile",
            "-Command",
            "Get-CimInstance Win32_Process | Format-Table ProcessId,ParentProcessId,WorkingSetSize,Name"
          ]);
        } else {
          processLister = (0, node_child_process_1.spawn)("ps", ["-A", "-o", "ppid,pid,stat,rss,comm"]);
        }
        processLister.on("error", reject);
        if (!processLister.stdout) {
          reject(new Error("Child process stdout is null"));
          return;
        }
        const rl = readline.createInterface({
          input: processLister.stdout
        });
        const rows = [];
        let headers = null;
        rl.on("line", (line) => {
          const trimmed = line.trim();
          if (trimmed === "") {
            return;
          }
          const fields = trimmed.split(/\s+/);
          if (headers !== null && fields.every((field) => /^-+$/.test(field))) {
            return;
          }
          if (!headers) {
            headers = fields.map(normalizeHeader2);
            return;
          }
          const columns = fields.slice();
          const row = {};
          const hdrs = headers.slice();
          for (const [index, header2] of hdrs.entries()) {
            let value;
            if (index === hdrs.length - 1) {
              value = columns.join(" ");
            } else {
              value = columns.shift();
            }
            if (header2 === "RSS") {
              row[header2] = Number.parseInt(value, 10);
              if (process.platform !== "win32") {
                row[header2] *= 1024;
              }
            } else {
              row[header2] = value;
            }
          }
          if (process.platform === "win32") {
            row.STAT = null;
          }
          rows.push(row);
        });
        rl.on("close", () => {
          const parents = {};
          const children = [];
          parents[pid] = true;
          rows.forEach((proc) => {
            if (proc.COMMAND === "ps" || proc.COMMAND === "powershell.exe") {
              return;
            }
            if (parents[proc.PPID]) {
              parents[proc.PID] = true;
              children.push(proc);
            } else if (includeRoot && pid === proc.PID) {
              children.push(proc);
            }
          });
          resolve2(children);
        });
        processLister.stdout.on("error", reject);
      });
    }
    function normalizeHeader2(str) {
      if (process.platform !== "win32") {
        if (str === "COMM")
          return "COMMAND";
        return str;
      }
      switch (str) {
        case "Name":
          return "COMMAND";
        case "ParentProcessId":
          return "PPID";
        case "ProcessId":
          return "PID";
        case "Status":
          return "STAT";
        case "WorkingSetSize":
          return "RSS";
        default:
          throw new Error(`Unknown process listing header: ${str}`);
      }
    }
  }
});
var require_memory_info2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/internals/systemInfoV2/memory-info.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getMemoryInfoV2 = getMemoryInfoV2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_child_process_1 = __require("node:child_process");
    var promises_1 = __require("node:fs/promises");
    var node_os_1 = __require("node:os");
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var general_1 = require_general2();
    var ps_tree_1 = require_ps_tree2();
    var MEMORY_FILE_PATHS = {
      TOTAL: {
        V1: "/sys/fs/cgroup/memory/memory.limit_in_bytes",
        V2: "/sys/fs/cgroup/memory.max"
      },
      USED: {
        V1: "/sys/fs/cgroup/memory/memory.usage_in_bytes",
        V2: "/sys/fs/cgroup/memory.current"
      }
    };
    async function getMemoryInfoV2(containerized = false) {
      let mainProcessBytes = -1;
      let childProcessesBytes = 0;
      if ((0, general_1.isLambda)()) {
        mainProcessBytes = process.memoryUsage().rss;
        const memInfo = (0, node_child_process_1.execSync)("cat /proc/meminfo").toString();
        const values = memInfo.split(/[\n: ]/).filter((val) => val.trim());
        childProcessesBytes = +values[19] * 1e3 - mainProcessBytes;
      } else {
        const processes = await (0, ps_tree_1.psTree)(process.pid, true);
        processes.forEach((rec) => {
          if (rec.PID === `${process.pid}`) {
            mainProcessBytes = rec.RSS;
            return;
          }
          childProcessesBytes += rec.RSS;
        });
      }
      let totalBytes;
      let usedBytes;
      let freeBytes;
      if ((0, general_1.isLambda)()) {
        totalBytes = parseInt(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE, 10) * 1e6;
        usedBytes = mainProcessBytes + childProcessesBytes;
        freeBytes = totalBytes - usedBytes;
        log_1.default.debug(`lambda size of ${totalBytes} with ${freeBytes} free bytes`);
      } else if (containerized) {
        const cgroupsVersion = await (0, general_1.getCgroupsVersion)();
        try {
          if (cgroupsVersion === null) {
            throw new Error("cgroup not available");
          }
          let [totalBytesStr, usedBytesStr] = await Promise.all([
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.TOTAL[cgroupsVersion], "utf8"),
            (0, promises_1.readFile)(MEMORY_FILE_PATHS.USED[cgroupsVersion], "utf8")
          ]);
          totalBytesStr = totalBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          usedBytesStr = usedBytesStr.replace(/[^a-zA-Z0-9 ]/g, "");
          if (totalBytesStr === "max") {
            totalBytes = (0, node_os_1.totalmem)();
          } else {
            totalBytes = parseInt(totalBytesStr, 10);
            const containerRunsWithUnlimitedMemory = totalBytes > Number.MAX_SAFE_INTEGER;
            if (containerRunsWithUnlimitedMemory)
              totalBytes = (0, node_os_1.totalmem)();
          }
          usedBytes = parseInt(usedBytesStr, 10);
          freeBytes = totalBytes - usedBytes;
        } catch (err2) {
          log_1.default.deprecated(`Your environment is containerized, but your system does not support memory cgroups. If you're running containers with limited memory, memory auto-scaling will not work properly.

Cause: ${err2.message}`);
          totalBytes = (0, node_os_1.totalmem)();
          freeBytes = (0, node_os_1.freemem)();
          usedBytes = totalBytes - freeBytes;
        }
      } else {
        totalBytes = (0, node_os_1.totalmem)();
        freeBytes = (0, node_os_1.freemem)();
        usedBytes = totalBytes - freeBytes;
      }
      return {
        totalBytes,
        freeBytes,
        usedBytes,
        mainProcessBytes,
        childProcessesBytes
      };
    }
  }
});
var require_utils9 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+utils@3.16.0/node_modules/@crawlee/utils/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getMemoryInfoV2 = exports2.getCurrentCpuTicksV2 = exports2.social = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_blocked(), exports2);
    tslib_1.__exportStar(require_cheerio2(), exports2);
    tslib_1.__exportStar(require_chunk(), exports2);
    tslib_1.__exportStar(require_extract_urls(), exports2);
    tslib_1.__exportStar(require_general2(), exports2);
    tslib_1.__exportStar(require_memory_info(), exports2);
    tslib_1.__exportStar(require_debug(), exports2);
    exports2.social = tslib_1.__importStar(require_social());
    tslib_1.__exportStar(require_typedefs(), exports2);
    tslib_1.__exportStar(require_open_graph_parser(), exports2);
    tslib_1.__exportStar(require_gotScraping(), exports2);
    tslib_1.__exportStar(require_iterables(), exports2);
    tslib_1.__exportStar(require_robots(), exports2);
    tslib_1.__exportStar(require_sitemap(), exports2);
    tslib_1.__exportStar(require_url(), exports2);
    var cpu_info_1 = require_cpu_info();
    Object.defineProperty(exports2, "getCurrentCpuTicksV2", { enumerable: true, get: function() {
      return cpu_info_1.getCurrentCpuTicksV2;
    } });
    var memory_info_1 = require_memory_info2();
    Object.defineProperty(exports2, "getMemoryInfoV2", { enumerable: true, get: function() {
      return memory_info_1.getMemoryInfoV2;
    } });
  }
});
var require_local_event_manager = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/local_event_manager.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.LocalEventManager = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_os_1 = tslib_1.__importDefault(__require("node:os"));
    var utils_1 = require_utils9();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var event_manager_1 = require_event_manager();
    var LocalEventManager2 = class extends event_manager_1.EventManager {
      constructor() {
        super(...arguments);
        Object.defineProperty(this, "previousTicks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: { idle: 0, total: 0 }
        });
      }
      /**
       * Initializes the EventManager and sets up periodic `systemInfo` and `persistState` events.
       * This is automatically called at the beginning of `crawler.run()`.
       */
      async init() {
        if (this.initialized) {
          return;
        }
        await super.init();
        const systemInfoIntervalMillis = this.config.get("systemInfoIntervalMillis");
        this.emitSystemInfoEvent = this.emitSystemInfoEvent.bind(this);
        this.intervals.systemInfo = (0, utilities_1.betterSetInterval)(this.emitSystemInfoEvent.bind(this), systemInfoIntervalMillis);
      }
      /**
       * @inheritDoc
       */
      async close() {
        if (!this.initialized) {
          return;
        }
        await super.close();
        (0, utilities_1.betterClearInterval)(this.intervals.systemInfo);
      }
      /**
       * @internal
       */
      async emitSystemInfoEvent(intervalCallback) {
        const info = await this.createSystemInfo({
          maxUsedCpuRatio: this.config.get("maxUsedCpuRatio")
        });
        this.events.emit("systemInfo", info);
        intervalCallback();
      }
      /**
       * @internal
       */
      async isContainerizedWrapper() {
        return this.config.get("containerized", await (0, utils_1.isContainerized)());
      }
      getCurrentCpuTicks() {
        const cpus = node_os_1.default.cpus();
        return cpus.reduce((acc, cpu) => {
          const cpuTimes = Object.values(cpu.times);
          return {
            idle: acc.idle + cpu.times.idle,
            total: acc.total + cpuTimes.reduce((sum, num) => sum + num)
          };
        }, { idle: 0, total: 0 });
      }
      /**
       * Creates a SystemInfo object based on local metrics.
       */
      async createSystemInfo(options) {
        return {
          createdAt: /* @__PURE__ */ new Date(),
          ...await this.createCpuInfo(options),
          ...await this.createMemoryInfo()
        };
      }
      async createCpuInfo(options) {
        if (this.config.get("systemInfoV2")) {
          const usedCpuRatio2 = await (0, utils_1.getCurrentCpuTicksV2)(await this.isContainerizedWrapper());
          return {
            cpuCurrentUsage: usedCpuRatio2 * 100,
            isCpuOverloaded: usedCpuRatio2 > options.maxUsedCpuRatio
          };
        }
        const ticks = this.getCurrentCpuTicks();
        const idleTicksDelta = ticks.idle - this.previousTicks.idle;
        const totalTicksDelta = ticks.total - this.previousTicks.total;
        const usedCpuRatio = totalTicksDelta ? 1 - idleTicksDelta / totalTicksDelta : 0;
        Object.assign(this.previousTicks, ticks);
        return {
          cpuCurrentUsage: usedCpuRatio * 100,
          isCpuOverloaded: usedCpuRatio > options.maxUsedCpuRatio
        };
      }
      async createMemoryInfo() {
        try {
          if (this.config.get("systemInfoV2")) {
            const memInfo2 = await (0, utils_1.getMemoryInfoV2)(await this.isContainerizedWrapper());
            return {
              memCurrentBytes: memInfo2.mainProcessBytes + memInfo2.childProcessesBytes
            };
          }
          const memInfo = await (0, utils_1.getMemoryInfo)();
          return {
            memCurrentBytes: memInfo.mainProcessBytes + memInfo.childProcessesBytes
          };
        } catch (err2) {
          log_1.default.exception(err2, "Memory snapshot failed.");
          return {};
        }
      }
    };
    exports2.LocalEventManager = LocalEventManager2;
  }
});
var require_events = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/events/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_event_manager(), exports2);
    tslib_1.__exportStar(require_local_event_manager(), exports2);
  }
});
var require_typedefs2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/typedefs.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.entries = entries2;
    exports2.keys = keys;
    function entries2(obj) {
      return Object.entries(obj);
    }
    function keys(obj) {
      return Object.keys(obj);
    }
  }
});
var require_configuration = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/configuration.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Configuration = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_async_hooks_1 = __require("node:async_hooks");
    var node_events_1 = __require("node:events");
    var node_path_1 = __require("node:path");
    var memory_storage_1 = require_memory_storage2();
    var fs_extra_1 = require_lib();
    var log_1 = tslib_1.__importStar(require_cjs3());
    var events_1 = require_events();
    var typedefs_1 = require_typedefs2();
    var Configuration2 = class _Configuration {
      /**
       * Creates new `Configuration` instance with provided options. Env vars will have precedence over those.
       */
      constructor(options = {}) {
        Object.defineProperty(this, "options", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "services", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "storageManagers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        this.buildOptions(options);
        node_events_1.EventEmitter.defaultMaxListeners = 50;
        const logLevel = this.get("logLevel");
        if (logLevel) {
          const level = Number.isFinite(+logLevel) ? +logLevel : log_1.LogLevel[String(logLevel).toUpperCase()];
          log_1.default.setLevel(level);
        }
      }
      /**
       * Returns configured value. First checks the environment variables, then provided configuration,
       * fallbacks to the `defaultValue` argument if provided, otherwise uses the default value as described
       * in the above section.
       */
      get(key, defaultValue) {
        let envValue;
        for (const [k3, v2] of (0, typedefs_1.entries)(_Configuration.ENV_MAP)) {
          if (key === v2) {
            envValue = process.env[k3];
            if (envValue) {
              break;
            }
          }
        }
        if (envValue != null) {
          return this._castEnvValue(key, envValue);
        }
        if (this.options.has(key)) {
          return this.options.get(key);
        }
        return defaultValue ?? _Configuration.DEFAULTS[key] ?? envValue;
      }
      _castEnvValue(key, value) {
        if (_Configuration.INTEGER_VARS.includes(key)) {
          return +value;
        }
        if (_Configuration.BOOLEAN_VARS.includes(key)) {
          return !["0", "false", ""].includes(String(value).toLowerCase());
        }
        if (_Configuration.COMMA_SEPARATED_LIST_VARS.includes(key)) {
          if (!value)
            return [];
          return String(value).split(",").map((v2) => v2.trim());
        }
        return value;
      }
      /**
       * Sets value for given option. Only affects this `Configuration` instance, the value will not be propagated down to the env var.
       * To reset a value, we can omit the `value` argument or pass `undefined` there.
       */
      set(key, value) {
        this.options.set(key, value);
      }
      /**
       * Sets value for given option. Only affects the global `Configuration` instance, the value will not be propagated down to the env var.
       * To reset a value, we can omit the `value` argument or pass `undefined` there.
       */
      static set(key, value) {
        this.getGlobalConfig().set(key, value);
      }
      /**
       * Returns cached instance of {@link StorageClient} using options as defined in the environment variables or in
       * this {@link Configuration} instance. Only first call of this method will create the client, following calls will
       * return the same client instance.
       *
       * Caching works based on the `storageClientOptions`, so calling this method with different options will return
       * multiple instances, one for each variant of the options.
       * @internal
       */
      getStorageClient() {
        if (this.options.has("storageClient")) {
          return this.options.get("storageClient");
        }
        const options = this.options.get("storageClientOptions");
        return this.createMemoryStorage(options);
      }
      getEventManager() {
        if (this.options.has("eventManager")) {
          return this.options.get("eventManager");
        }
        if (this.services.has("eventManager")) {
          return this.services.get("eventManager");
        }
        const eventManager = new events_1.LocalEventManager(this);
        this.services.set("eventManager", eventManager);
        return eventManager;
      }
      /**
       * Creates an instance of MemoryStorage using options as defined in the environment variables or in this `Configuration` instance.
       * @internal
       */
      createMemoryStorage(options = {}) {
        const cacheKey = `MemoryStorage-${JSON.stringify(options)}`;
        if (this.services.has(cacheKey)) {
          return this.services.get(cacheKey);
        }
        const storage2 = new memory_storage_1.MemoryStorage({
          persistStorage: this.get("persistStorage"),
          // Override persistStorage if user provides it via storageClientOptions
          ...options
        });
        this.services.set(cacheKey, storage2);
        return storage2;
      }
      useStorageClient(client) {
        this.options.set("storageClient", client);
      }
      static useStorageClient(client) {
        this.getGlobalConfig().useStorageClient(client);
      }
      useEventManager(events) {
        this.options.set("eventManager", events);
      }
      /**
       * Returns the global configuration instance. It will respect the environment variables.
       */
      static getGlobalConfig() {
        if (_Configuration.storage.getStore()) {
          return _Configuration.storage.getStore();
        }
        _Configuration.globalConfig ?? (_Configuration.globalConfig = new _Configuration());
        return _Configuration.globalConfig;
      }
      /**
       * Gets default {@link StorageClient} instance.
       */
      static getStorageClient() {
        return this.getGlobalConfig().getStorageClient();
      }
      /**
       * Gets default {@link EventManager} instance.
       */
      static getEventManager() {
        return this.getGlobalConfig().getEventManager();
      }
      /**
       * Resets global configuration instance. The default instance holds configuration based on env vars,
       * if we want to change them, we need to first reset the global state. Used mainly for testing purposes.
       */
      static resetGlobalState() {
        delete this.globalConfig;
      }
      buildOptions(options) {
        const path22 = (0, node_path_1.join)(process.cwd(), "crawlee.json");
        if ((0, fs_extra_1.pathExistsSync)(path22)) {
          try {
            const file = (0, fs_extra_1.readFileSync)(path22);
            const optionsFromFileConfig = JSON.parse(file.toString());
            Object.assign(options, optionsFromFileConfig);
          } catch {
          }
        }
        this.options = new Map((0, typedefs_1.entries)(options));
      }
    };
    exports2.Configuration = Configuration2;
    Object.defineProperty(Configuration2, "ENV_MAP", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        CRAWLEE_AVAILABLE_MEMORY_RATIO: "availableMemoryRatio",
        CRAWLEE_PURGE_ON_START: "purgeOnStart",
        CRAWLEE_MEMORY_MBYTES: "memoryMbytes",
        CRAWLEE_DEFAULT_DATASET_ID: "defaultDatasetId",
        CRAWLEE_DEFAULT_KEY_VALUE_STORE_ID: "defaultKeyValueStoreId",
        CRAWLEE_DEFAULT_REQUEST_QUEUE_ID: "defaultRequestQueueId",
        CRAWLEE_INPUT_KEY: "inputKey",
        CRAWLEE_PERSIST_STATE_INTERVAL_MILLIS: "persistStateIntervalMillis",
        CRAWLEE_HEADLESS: "headless",
        CRAWLEE_XVFB: "xvfb",
        CRAWLEE_CHROME_EXECUTABLE_PATH: "chromeExecutablePath",
        CRAWLEE_DEFAULT_BROWSER_PATH: "defaultBrowserPath",
        CRAWLEE_DISABLE_BROWSER_SANDBOX: "disableBrowserSandbox",
        CRAWLEE_LOG_LEVEL: "logLevel",
        CRAWLEE_PERSIST_STORAGE: "persistStorage",
        CRAWLEE_SYSTEM_INFO_V2: "systemInfoV2",
        CRAWLEE_CONTAINERIZED: "containerized"
      }
    });
    Object.defineProperty(Configuration2, "BOOLEAN_VARS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: [
        "purgeOnStart",
        "headless",
        "xvfb",
        "disableBrowserSandbox",
        "persistStorage",
        "systemInfoV2",
        "containerized"
      ]
    });
    Object.defineProperty(Configuration2, "INTEGER_VARS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: ["memoryMbytes", "persistStateIntervalMillis", "systemInfoIntervalMillis"]
    });
    Object.defineProperty(Configuration2, "COMMA_SEPARATED_LIST_VARS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: []
    });
    Object.defineProperty(Configuration2, "DEFAULTS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        defaultKeyValueStoreId: "default",
        defaultDatasetId: "default",
        defaultRequestQueueId: "default",
        inputKey: "INPUT",
        maxUsedCpuRatio: 0.95,
        availableMemoryRatio: 0.25,
        storageClientOptions: {},
        purgeOnStart: true,
        headless: true,
        persistStateIntervalMillis: 6e4,
        systemInfoIntervalMillis: 1e3,
        persistStorage: true,
        systemInfoV2: true
      }
    });
    Object.defineProperty(Configuration2, "storage", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: new node_async_hooks_1.AsyncLocalStorage()
    });
  }
});
var require_log = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/log.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.LoggerText = exports2.LoggerJson = exports2.Logger = exports2.LogLevel = exports2.Log = exports2.log = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var log_1 = tslib_1.__importStar(require_cjs3());
    exports2.log = log_1.default;
    Object.defineProperty(exports2, "Log", { enumerable: true, get: function() {
      return log_1.Log;
    } });
    Object.defineProperty(exports2, "Logger", { enumerable: true, get: function() {
      return log_1.Logger;
    } });
    Object.defineProperty(exports2, "LoggerJson", { enumerable: true, get: function() {
      return log_1.LoggerJson;
    } });
    Object.defineProperty(exports2, "LoggerText", { enumerable: true, get: function() {
      return log_1.LoggerText;
    } });
    Object.defineProperty(exports2, "LogLevel", { enumerable: true, get: function() {
      return log_1.LogLevel;
    } });
  }
});
var require_snapshotter = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/snapshotter.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Snapshotter = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var RESERVE_MEMORY_RATIO = 0.5;
    var CLIENT_RATE_LIMIT_ERROR_RETRY_COUNT = 2;
    var CRITICAL_OVERLOAD_RATE_LIMIT_MILLIS = 1e4;
    var Snapshotter2 = class {
      /**
       * @param [options] All `Snapshotter` configuration options.
       */
      constructor(options = {}) {
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "eventLoopSnapshotIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "clientSnapshotIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "snapshotHistoryMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxBlockedMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxUsedMemoryRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxClientErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxMemoryBytes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "cpuSnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "eventLoopSnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "memorySnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "clientSnapshots", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "eventLoopInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "clientInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "lastLoggedCriticalMemoryOverloadAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          eventLoopSnapshotIntervalSecs: ow_1.default.optional.number,
          clientSnapshotIntervalSecs: ow_1.default.optional.number,
          snapshotHistorySecs: ow_1.default.optional.number,
          maxBlockedMillis: ow_1.default.optional.number,
          maxUsedMemoryRatio: ow_1.default.optional.number,
          maxClientErrors: ow_1.default.optional.number,
          log: ow_1.default.optional.object,
          client: ow_1.default.optional.object,
          config: ow_1.default.optional.object
        }));
        const { eventLoopSnapshotIntervalSecs = 0.5, clientSnapshotIntervalSecs = 1, snapshotHistorySecs = 30, maxBlockedMillis = 50, maxUsedMemoryRatio = 0.9, maxClientErrors = 3, log: log2 = log_1.log, config = configuration_1.Configuration.getGlobalConfig(), client = config.getStorageClient() } = options;
        this.log = log2.child({ prefix: "Snapshotter" });
        this.client = client;
        this.config = config;
        this.events = this.config.getEventManager();
        this.eventLoopSnapshotIntervalMillis = eventLoopSnapshotIntervalSecs * 1e3;
        this.clientSnapshotIntervalMillis = clientSnapshotIntervalSecs * 1e3;
        this.snapshotHistoryMillis = snapshotHistorySecs * 1e3;
        this.maxBlockedMillis = maxBlockedMillis;
        this.maxUsedMemoryRatio = maxUsedMemoryRatio;
        this.maxClientErrors = maxClientErrors;
        this._snapshotCpu = this._snapshotCpu.bind(this);
        this._snapshotMemory = this._snapshotMemory.bind(this);
      }
      /**
       * Starts capturing snapshots at configured intervals.
       */
      async start() {
        const memoryMbytes = this.config.get("memoryMbytes", 0);
        if (memoryMbytes > 0) {
          this.maxMemoryBytes = memoryMbytes * 1024 * 1024;
        } else {
          let totalBytes;
          if (this.config.get("systemInfoV2")) {
            const containerized = this.config.get("containerized", await (0, utils_1.isContainerized)());
            const memInfo = await (0, utils_1.getMemoryInfoV2)(containerized);
            totalBytes = memInfo.totalBytes;
          } else {
            const memInfo = await (0, utils_1.getMemoryInfo)();
            totalBytes = memInfo.totalBytes;
          }
          this.maxMemoryBytes = Math.ceil(totalBytes * this.config.get("availableMemoryRatio"));
          this.log.debug(`Setting max memory of this run to ${Math.round(this.maxMemoryBytes / 1024 / 1024)} MB. Use the CRAWLEE_MEMORY_MBYTES or CRAWLEE_AVAILABLE_MEMORY_RATIO environment variable to override it.`);
        }
        this.eventLoopInterval = (0, utilities_1.betterSetInterval)(this._snapshotEventLoop.bind(this), this.eventLoopSnapshotIntervalMillis);
        this.clientInterval = (0, utilities_1.betterSetInterval)(this._snapshotClient.bind(this), this.clientSnapshotIntervalMillis);
        this.events.on("systemInfo", this._snapshotCpu);
        this.events.on("systemInfo", this._snapshotMemory);
      }
      /**
       * Stops all resource capturing.
       */
      async stop() {
        (0, utilities_1.betterClearInterval)(this.eventLoopInterval);
        (0, utilities_1.betterClearInterval)(this.clientInterval);
        this.events.off("systemInfo", this._snapshotCpu);
        this.events.off("systemInfo", this._snapshotMemory);
        await new Promise((resolve2) => {
          setImmediate(resolve2);
        });
      }
      /**
       * Returns a sample of latest memory snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getMemorySample(sampleDurationMillis) {
        return this._getSample(this.memorySnapshots, sampleDurationMillis);
      }
      /**
       * Returns a sample of latest event loop snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getEventLoopSample(sampleDurationMillis) {
        return this._getSample(this.eventLoopSnapshots, sampleDurationMillis);
      }
      /**
       * Returns a sample of latest CPU snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getCpuSample(sampleDurationMillis) {
        return this._getSample(this.cpuSnapshots, sampleDurationMillis);
      }
      /**
       * Returns a sample of latest Client snapshots, with the size of the sample defined
       * by the sampleDurationMillis parameter. If omitted, it returns a full snapshot history.
       */
      getClientSample(sampleDurationMillis) {
        return this._getSample(this.clientSnapshots, sampleDurationMillis);
      }
      /**
       * Finds the latest snapshots by sampleDurationMillis in the provided array.
       */
      _getSample(snapshots, sampleDurationMillis) {
        if (!sampleDurationMillis)
          return snapshots;
        const sample = [];
        let idx = snapshots.length;
        if (!idx)
          return sample;
        const latestTime = snapshots[idx - 1].createdAt;
        while (idx--) {
          const snapshot = snapshots[idx];
          if (+latestTime - +snapshot.createdAt <= sampleDurationMillis) {
            sample.unshift(snapshot);
          } else {
            break;
          }
        }
        return sample;
      }
      /**
       * Creates a snapshot of current memory usage
       * using the Apify platform `systemInfo` event.
       */
      _snapshotMemory(systemInfo) {
        const createdAt = systemInfo.createdAt ? new Date(systemInfo.createdAt) : /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.memorySnapshots, createdAt);
        const { memCurrentBytes } = systemInfo;
        const snapshot = {
          createdAt,
          isOverloaded: memCurrentBytes / this.maxMemoryBytes > this.maxUsedMemoryRatio,
          usedBytes: memCurrentBytes
        };
        this.memorySnapshots.push(snapshot);
        this._memoryOverloadWarning(systemInfo);
      }
      /**
       * Checks for critical memory overload and logs it to the console.
       */
      _memoryOverloadWarning(systemInfo) {
        const { memCurrentBytes } = systemInfo;
        const createdAt = systemInfo.createdAt ? new Date(systemInfo.createdAt) : /* @__PURE__ */ new Date();
        if (this.lastLoggedCriticalMemoryOverloadAt && +createdAt < +this.lastLoggedCriticalMemoryOverloadAt + CRITICAL_OVERLOAD_RATE_LIMIT_MILLIS)
          return;
        const maxDesiredMemoryBytes = this.maxUsedMemoryRatio * this.maxMemoryBytes;
        const reserveMemory = this.maxMemoryBytes * (1 - this.maxUsedMemoryRatio) * RESERVE_MEMORY_RATIO;
        const criticalOverloadBytes = maxDesiredMemoryBytes + reserveMemory;
        const isCriticalOverload = memCurrentBytes > criticalOverloadBytes;
        if (isCriticalOverload) {
          const usedPercentage = Math.round(memCurrentBytes / this.maxMemoryBytes * 100);
          const toMb = (bytes) => Math.round(bytes / 1024 ** 2);
          this.log.warning(`Memory is critically overloaded. Using ${toMb(memCurrentBytes)} MB of ${toMb(this.maxMemoryBytes)} MB (${usedPercentage}%). Consider increasing available memory.`);
          this.lastLoggedCriticalMemoryOverloadAt = createdAt;
        }
      }
      /**
       * Creates a snapshot of current event loop delay.
       */
      _snapshotEventLoop(intervalCallback) {
        const now = /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.eventLoopSnapshots, now);
        const snapshot = {
          createdAt: now,
          isOverloaded: false,
          exceededMillis: 0
        };
        const previousSnapshot = this.eventLoopSnapshots[this.eventLoopSnapshots.length - 1];
        if (previousSnapshot) {
          const { createdAt } = previousSnapshot;
          const delta = now.getTime() - +createdAt - this.eventLoopSnapshotIntervalMillis;
          if (delta > this.maxBlockedMillis)
            snapshot.isOverloaded = true;
          snapshot.exceededMillis = Math.max(delta - this.maxBlockedMillis, 0);
        }
        this.eventLoopSnapshots.push(snapshot);
        intervalCallback();
      }
      /**
       * Creates a snapshot of current CPU usage using the Apify platform `systemInfo` event.
       */
      _snapshotCpu(systemInfo) {
        const { cpuCurrentUsage, isCpuOverloaded } = systemInfo;
        const createdAt = systemInfo.createdAt ? new Date(systemInfo.createdAt) : /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.cpuSnapshots, createdAt);
        this.cpuSnapshots.push({
          createdAt,
          isOverloaded: isCpuOverloaded,
          usedRatio: Math.ceil(cpuCurrentUsage / 100)
        });
      }
      /**
       * Creates a snapshot of current API state by checking for
       * rate limit errors. Only errors produced by a 2nd retry
       * of the API call are considered for snapshotting since
       * earlier errors may just be caused by a random spike in
       * number of requests and do not necessarily signify API
       * overloading.
       */
      _snapshotClient(intervalCallback) {
        const now = /* @__PURE__ */ new Date();
        this._pruneSnapshots(this.clientSnapshots, now);
        const allErrorCounts = this.client.stats?.rateLimitErrors ?? [];
        const currentErrCount = allErrorCounts[CLIENT_RATE_LIMIT_ERROR_RETRY_COUNT] || 0;
        const snapshot = {
          createdAt: now,
          isOverloaded: false,
          rateLimitErrorCount: currentErrCount
        };
        const previousSnapshot = this.clientSnapshots[this.clientSnapshots.length - 1];
        if (previousSnapshot) {
          const { rateLimitErrorCount } = previousSnapshot;
          const delta = currentErrCount - rateLimitErrorCount;
          if (delta > this.maxClientErrors)
            snapshot.isOverloaded = true;
        }
        this.clientSnapshots.push(snapshot);
        intervalCallback();
      }
      /**
       * Removes snapshots that are older than the snapshotHistorySecs option
       * from the array (destructively - in place).
       */
      _pruneSnapshots(snapshots, now) {
        let oldCount = 0;
        for (let i22 = 0; i22 < snapshots.length; i22++) {
          const { createdAt } = snapshots[i22];
          if (now.getTime() - new Date(createdAt).getTime() > this.snapshotHistoryMillis)
            oldCount++;
          else
            break;
        }
        snapshots.splice(0, oldCount);
      }
    };
    exports2.Snapshotter = Snapshotter2;
  }
});
var require_system_status = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/system_status.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SystemStatus = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var snapshotter_1 = require_snapshotter();
    var SystemStatus2 = class {
      constructor(options = {}) {
        Object.defineProperty(this, "currentHistoryMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxMemoryOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxEventLoopOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxCpuOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxClientOverloadedRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "snapshotter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          currentHistorySecs: ow_1.default.optional.number,
          maxMemoryOverloadedRatio: ow_1.default.optional.number,
          maxEventLoopOverloadedRatio: ow_1.default.optional.number,
          maxCpuOverloadedRatio: ow_1.default.optional.number,
          maxClientOverloadedRatio: ow_1.default.optional.number,
          snapshotter: ow_1.default.optional.object,
          config: ow_1.default.optional.object
        }));
        const { currentHistorySecs = 5, maxMemoryOverloadedRatio = 0.2, maxEventLoopOverloadedRatio = 0.6, maxCpuOverloadedRatio = 0.4, maxClientOverloadedRatio = 0.3, snapshotter, config } = options;
        this.currentHistoryMillis = currentHistorySecs * 1e3;
        this.maxMemoryOverloadedRatio = maxMemoryOverloadedRatio;
        this.maxEventLoopOverloadedRatio = maxEventLoopOverloadedRatio;
        this.maxCpuOverloadedRatio = maxCpuOverloadedRatio;
        this.maxClientOverloadedRatio = maxClientOverloadedRatio;
        this.snapshotter = snapshotter || new snapshotter_1.Snapshotter({ config });
      }
      /**
       * Returns an {@link SystemInfo} object with the following structure:
       *
       * ```javascript
       * {
       *     isSystemIdle: Boolean,
       *     memInfo: Object,
       *     eventLoopInfo: Object,
       *     cpuInfo: Object
       * }
       * ```
       *
       * Where the `isSystemIdle` property is set to `false` if the system
       * has been overloaded in the last `options.currentHistorySecs` seconds,
       * and `true` otherwise.
       */
      getCurrentStatus() {
        return this._isSystemIdle(this.currentHistoryMillis);
      }
      /**
       * Returns an {@link SystemInfo} object with the following structure:
       *
       * ```javascript
       * {
       *     isSystemIdle: Boolean,
       *     memInfo: Object,
       *     eventLoopInfo: Object,
       *     cpuInfo: Object
       * }
       * ```
       *
       * Where the `isSystemIdle` property is set to `false` if the system
       * has been overloaded in the full history of the {@link Snapshotter}
       * (which is configurable in the {@link Snapshotter}) and `true` otherwise.
       */
      getHistoricalStatus() {
        return this._isSystemIdle();
      }
      /**
       * Returns a system status object.
       */
      _isSystemIdle(sampleDurationMillis) {
        const memInfo = this._isMemoryOverloaded(sampleDurationMillis);
        const eventLoopInfo = this._isEventLoopOverloaded(sampleDurationMillis);
        const cpuInfo = this._isCpuOverloaded(sampleDurationMillis);
        const clientInfo = this._isClientOverloaded(sampleDurationMillis);
        return {
          isSystemIdle: !memInfo.isOverloaded && !eventLoopInfo.isOverloaded && !cpuInfo.isOverloaded && !clientInfo.isOverloaded,
          memInfo,
          eventLoopInfo,
          cpuInfo,
          clientInfo
        };
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the memory has been overloaded in the last sampleDurationMillis.
       */
      _isMemoryOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getMemorySample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxMemoryOverloadedRatio);
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the event loop has been overloaded in the last sampleDurationMillis.
       */
      _isEventLoopOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getEventLoopSample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxEventLoopOverloadedRatio);
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the CPU has been overloaded in the last sampleDurationMillis.
       */
      _isCpuOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getCpuSample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxCpuOverloadedRatio);
      }
      /**
       * Returns an object with an isOverloaded property set to true
       * if the client has been overloaded in the last sampleDurationMillis.
       */
      _isClientOverloaded(sampleDurationMillis) {
        const sample = this.snapshotter.getClientSample(sampleDurationMillis);
        return this._isSampleOverloaded(sample, this.maxClientOverloadedRatio);
      }
      /**
       * Returns an object with sample information and an isOverloaded property
       * set to true if at least the ratio of snapshots in the sample are overloaded.
       */
      _isSampleOverloaded(sample, ratio) {
        if (sample.length === 0) {
          return {
            isOverloaded: false,
            limitRatio: ratio,
            actualRatio: 0
          };
        }
        const weights = [];
        const values = [];
        for (let i22 = 1; i22 < sample.length; i22++) {
          const previous = sample[i22 - 1];
          const current = sample[i22];
          const weight = +current.createdAt - +previous.createdAt;
          weights.push(weight || 1);
          values.push(+current.isOverloaded);
        }
        const wAvg = sample.length === 1 ? +sample[0].isOverloaded : (0, utils_1.weightedAvg)(values, weights);
        return {
          isOverloaded: wAvg > ratio,
          limitRatio: ratio,
          actualRatio: Math.round(wAvg * 1e3) / 1e3
        };
      }
    };
    exports2.SystemStatus = SystemStatus2;
  }
});
var require_autoscaled_pool = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/autoscaled_pool.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.AutoscaledPool = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var timeout_1 = require_cjs();
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var errors_1 = require_errors();
    var log_1 = require_log();
    var snapshotter_1 = require_snapshotter();
    var system_status_1 = require_system_status();
    var AutoscaledPool2 = class {
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "desiredConcurrencyRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "scaleUpStepRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "scaleDownStepRatio", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maybeRunIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "loggingIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "autoscaleIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "taskTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "runTaskFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isFinishedFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isTaskReadyFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxTasksPerMinute", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_minConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_maxConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_desiredConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_currentConcurrency", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "isStopped", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "lastLoggingTime", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "resolve", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "reject", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "snapshotter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "systemStatus", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "autoscaleInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maybeRunInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "queryingIsTaskReady", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "queryingIsFinished", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "tasksDonePerSecondInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_tasksPerMinute", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: Array.from({ length: 60 }, () => 0)
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          runTaskFunction: ow_1.default.function,
          isFinishedFunction: ow_1.default.function,
          isTaskReadyFunction: ow_1.default.function,
          maxConcurrency: ow_1.default.optional.number.integer.greaterThanOrEqual(1),
          minConcurrency: ow_1.default.optional.number.integer.greaterThanOrEqual(1),
          desiredConcurrency: ow_1.default.optional.number.integer.greaterThanOrEqual(1),
          desiredConcurrencyRatio: ow_1.default.optional.number.greaterThan(0).lessThan(1),
          scaleUpStepRatio: ow_1.default.optional.number.greaterThan(0).lessThan(1),
          scaleDownStepRatio: ow_1.default.optional.number.greaterThan(0).lessThan(1),
          maybeRunIntervalSecs: ow_1.default.optional.number.greaterThan(0),
          loggingIntervalSecs: ow_1.default.any(ow_1.default.number.greaterThan(0), ow_1.default.nullOrUndefined),
          autoscaleIntervalSecs: ow_1.default.optional.number.greaterThan(0),
          taskTimeoutSecs: ow_1.default.optional.number.greaterThanOrEqual(0),
          systemStatusOptions: ow_1.default.optional.object,
          snapshotterOptions: ow_1.default.optional.object,
          log: ow_1.default.optional.object,
          maxTasksPerMinute: ow_1.default.optional.number.integerOrInfinite.greaterThanOrEqual(1)
        }));
        const { runTaskFunction, isFinishedFunction, isTaskReadyFunction, maxConcurrency = 200, minConcurrency = 1, desiredConcurrency, desiredConcurrencyRatio = 0.9, scaleUpStepRatio = 0.05, scaleDownStepRatio = 0.05, maybeRunIntervalSecs = 0.5, loggingIntervalSecs = 60, taskTimeoutSecs = 0, autoscaleIntervalSecs = 10, systemStatusOptions, snapshotterOptions, log: log2 = log_1.log, maxTasksPerMinute = Infinity } = options;
        this.log = log2.child({ prefix: "AutoscaledPool" });
        this.desiredConcurrencyRatio = desiredConcurrencyRatio;
        this.scaleUpStepRatio = scaleUpStepRatio;
        this.scaleDownStepRatio = scaleDownStepRatio;
        this.maybeRunIntervalMillis = maybeRunIntervalSecs * 1e3;
        this.loggingIntervalMillis = loggingIntervalSecs * 1e3;
        this.autoscaleIntervalMillis = autoscaleIntervalSecs * 1e3;
        this.taskTimeoutMillis = taskTimeoutSecs * 1e3;
        this.runTaskFunction = runTaskFunction;
        this.isFinishedFunction = isFinishedFunction;
        this.isTaskReadyFunction = isTaskReadyFunction;
        this.maxTasksPerMinute = maxTasksPerMinute;
        this._minConcurrency = minConcurrency;
        this._maxConcurrency = maxConcurrency;
        this._desiredConcurrency = Math.min(desiredConcurrency ?? minConcurrency, maxConcurrency);
        this._currentConcurrency = 0;
        this.isStopped = false;
        this.resolve = null;
        this.reject = null;
        this._autoscale = this._autoscale.bind(this);
        this._maybeRunTask = this._maybeRunTask.bind(this);
        this._incrementTasksDonePerSecond = this._incrementTasksDonePerSecond.bind(this);
        const ssoCopy = { ...systemStatusOptions };
        ssoCopy.snapshotter ?? (ssoCopy.snapshotter = new snapshotter_1.Snapshotter({
          ...snapshotterOptions,
          log: this.log,
          config: this.config,
          client: this.config.getStorageClient()
        }));
        ssoCopy.config ?? (ssoCopy.config = this.config);
        this.snapshotter = ssoCopy.snapshotter;
        this.systemStatus = new system_status_1.SystemStatus(ssoCopy);
      }
      /**
       * Gets the minimum number of tasks running in parallel.
       */
      get minConcurrency() {
        return this._minConcurrency;
      }
      /**
       * Sets the minimum number of tasks running in parallel.
       *
       * *WARNING:* If you set this value too high with respect to the available system memory and CPU, your code might run extremely slow or crash.
       * If you're not sure, just keep the default value and the concurrency will scale up automatically.
       */
      set minConcurrency(value) {
        (0, ow_1.default)(value, ow_1.default.optional.number.integer.greaterThanOrEqual(1));
        this._minConcurrency = value;
      }
      /**
       * Gets the maximum number of tasks running in parallel.
       */
      get maxConcurrency() {
        return this._maxConcurrency;
      }
      /**
       * Sets the maximum number of tasks running in parallel.
       */
      set maxConcurrency(value) {
        (0, ow_1.default)(value, ow_1.default.optional.number.integer.greaterThanOrEqual(1));
        this._maxConcurrency = value;
      }
      /**
       * Gets the desired concurrency for the pool,
       * which is an estimated number of parallel tasks that the system can currently support.
       */
      get desiredConcurrency() {
        return this._desiredConcurrency;
      }
      /**
       * Sets the desired concurrency for the pool, i.e. the number of tasks that should be running
       * in parallel if there's large enough supply of tasks.
       */
      set desiredConcurrency(value) {
        (0, ow_1.default)(value, ow_1.default.optional.number.integer.greaterThanOrEqual(1));
        this._desiredConcurrency = value;
      }
      /**
       * Gets the number of parallel tasks currently running in the pool.
       */
      get currentConcurrency() {
        return this._currentConcurrency;
      }
      /**
       * Runs the auto-scaled pool. Returns a promise that gets resolved or rejected once
       * all the tasks are finished or one of them fails.
       */
      async run() {
        const poolPromise = new Promise((resolve2, reject) => {
          this.resolve = resolve2;
          this.reject = reject;
        });
        await this.snapshotter.start();
        this.autoscaleInterval = (0, utilities_1.betterSetInterval)(this._autoscale, this.autoscaleIntervalMillis);
        this.maybeRunInterval = (0, utilities_1.betterSetInterval)(this._maybeRunTask, this.maybeRunIntervalMillis);
        if (this.maxTasksPerMinute !== Infinity) {
          this.tasksDonePerSecondInterval = (0, utilities_1.betterSetInterval)(this._incrementTasksDonePerSecond, 1e3);
        }
        try {
          await poolPromise;
        } finally {
          if (this.resolve)
            await this._destroy();
        }
      }
      /**
       * Aborts the run of the auto-scaled pool and destroys it. The promise returned from
       * the {@link AutoscaledPool.run} function will immediately resolve, no more new tasks
       * will be spawned and all running tasks will be left in their current state.
       *
       * Due to the nature of the tasks, auto-scaled pool cannot reliably guarantee abortion
       * of all the running tasks, therefore, no abortion is attempted and some of the tasks
       * may finish, while others may not. Essentially, auto-scaled pool doesn't care about
       * their state after the invocation of `.abort()`, but that does not mean that some
       * parts of their asynchronous chains of commands will not execute.
       */
      async abort() {
        this.isStopped = true;
        if (this.resolve) {
          this.resolve();
          await this._destroy();
        }
      }
      /**
       * Prevents the auto-scaled pool from starting new tasks, but allows the running ones to finish
       * (unlike abort, which terminates them). Used together with {@link AutoscaledPool.resume}
       *
       * The function's promise will resolve once all running tasks have completed and the pool
       * is effectively idle. If the `timeoutSecs` argument is provided, the promise will reject
       * with a timeout error after the `timeoutSecs` seconds.
       *
       * The promise returned from the {@link AutoscaledPool.run} function will not resolve
       * when `.pause()` is invoked (unlike abort, which resolves it).
       */
      async pause(timeoutSecs) {
        if (this.isStopped)
          return;
        this.isStopped = true;
        await new Promise((resolve2, reject) => {
          let timeout;
          if (timeoutSecs) {
            timeout = setTimeout(() => {
              const err2 = new Error(`The pool's running tasks did not finishin ${timeoutSecs} secs after pool.pause() invocation.`);
              reject(err2);
            }, timeoutSecs);
          }
          const interval = setInterval(() => {
            if (this._currentConcurrency <= 0) {
              if (timeout)
                clearTimeout(timeout);
              clearInterval(interval);
              resolve2();
            }
          }, this.maybeRunIntervalMillis);
        });
      }
      /**
       * Resumes the operation of the autoscaled-pool by allowing more tasks to be run.
       * Used together with {@link AutoscaledPool.pause}
       *
       * Tasks will automatically start running again in `options.maybeRunIntervalSecs`.
       */
      resume() {
        this.isStopped = false;
      }
      /**
       * Explicitly check the queue for new tasks. The AutoscaledPool checks the queue for new tasks periodically,
       * every `maybeRunIntervalSecs` seconds. If you want to trigger the processing immediately, use this method.
       */
      async notify() {
        setImmediate(this._maybeRunTask);
      }
      /**
       * Starts a new task
       * if the number of running tasks (current concurrency) is lower than desired concurrency
       * and the system is not currently overloaded
       * and this.isTaskReadyFunction() returns true.
       *
       * It doesn't allow multiple concurrent runs of this method.
       */
      async _maybeRunTask(intervalCallback) {
        this.log.perf("Attempting to run a task.");
        const done = intervalCallback || (() => {
        });
        if (this.isStopped) {
          this.log.perf("Task will not run. AutoscaledPool is stopped.");
          return done();
        }
        if (this.queryingIsTaskReady) {
          this.log.perf("Task will not run. Waiting for a ready task.");
          return done();
        }
        if (this._currentConcurrency >= this._desiredConcurrency) {
          this.log.perf("Task will not run. Desired concurrency achieved.");
          return done();
        }
        const currentStatus = this.systemStatus.getCurrentStatus();
        const { isSystemIdle } = currentStatus;
        if (!isSystemIdle && this._currentConcurrency >= this._minConcurrency) {
          this.log.perf("Task will not be run. System is overloaded.", currentStatus);
          return done();
        }
        this.queryingIsTaskReady = true;
        let isTaskReady;
        try {
          this.log.perf("Checking for ready tasks.");
          isTaskReady = await this.isTaskReadyFunction();
        } catch (e2) {
          const err2 = e2;
          this.log.perf("Checking for ready tasks failed.");
          if (this.reject) {
            this.log.exception(err2, "isTaskReadyFunction failed");
            this.reject(err2);
          }
        } finally {
          this.queryingIsTaskReady = false;
        }
        if (!isTaskReady) {
          this.log.perf("Task will not run. No tasks are ready.");
          done();
          return this._maybeFinish();
        }
        if (this._isOverMaxRequestLimit) {
          this.log.perf("Task will not run. Maximum tasks per minute reached.");
          return done();
        }
        try {
          this._currentConcurrency++;
          this._tasksPerMinute[0]++;
          setImmediate(this._maybeRunTask);
          done();
          this.log.perf("Running a task.");
          if (this.taskTimeoutMillis > 0) {
            await (0, timeout_1.addTimeoutToPromise)(async () => this.runTaskFunction(), this.taskTimeoutMillis, `runTaskFunction timed out after ${this.taskTimeoutMillis / 1e3} seconds.`);
          } else {
            await this.runTaskFunction();
          }
          this.log.perf("Task finished.");
          this._currentConcurrency--;
          setImmediate(this._maybeRunTask);
        } catch (e2) {
          const err2 = e2;
          this.log.perf("Running a task failed.");
          if (this.reject) {
            if (
              // avoid reprinting the same critical error multiple times, as it will be printed by Nodejs at the end anyway
              !(e2 instanceof errors_1.CriticalError)
            ) {
              this.log.exception(err2, "runTaskFunction failed.");
            }
            this.reject(err2);
          }
        }
        return void 0;
      }
      /**
       * Gets called every autoScaleIntervalSecs and evaluates the current system status.
       * If the system IS NOT overloaded and the settings allow it, it scales up.
       * If the system IS overloaded and the settings allow it, it scales down.
       */
      _autoscale(intervalCallback) {
        if (this.isStopped)
          return intervalCallback();
        if (this._isOverMaxRequestLimit)
          return intervalCallback();
        const systemStatus = this.systemStatus.getHistoricalStatus();
        const { isSystemIdle } = systemStatus;
        const weAreNotAtMax = this._desiredConcurrency < this._maxConcurrency;
        const minCurrentConcurrency = Math.floor(this._desiredConcurrency * this.desiredConcurrencyRatio);
        const weAreReachingDesiredConcurrency = this._currentConcurrency >= minCurrentConcurrency;
        if (isSystemIdle && weAreNotAtMax && weAreReachingDesiredConcurrency)
          this._scaleUp(systemStatus);
        const isSystemOverloaded = !isSystemIdle;
        const weAreNotAtMin = this._desiredConcurrency > this._minConcurrency;
        if (isSystemOverloaded && weAreNotAtMin)
          this._scaleDown(systemStatus);
        if (this.loggingIntervalMillis > 0) {
          const now = Date.now();
          if (this.lastLoggingTime == null) {
            this.lastLoggingTime = now;
          } else if (now > this.lastLoggingTime + this.loggingIntervalMillis) {
            this.lastLoggingTime = now;
            this.log.info("state", {
              currentConcurrency: this._currentConcurrency,
              desiredConcurrency: this._desiredConcurrency,
              systemStatus
            });
          }
        }
        return intervalCallback();
      }
      /**
       * Scales the pool up by increasing
       * the desired concurrency by the scaleUpStepRatio.
       *
       * @param systemStatus for logging
       */
      _scaleUp(systemStatus) {
        const step = Math.ceil(this._desiredConcurrency * this.scaleUpStepRatio);
        this._desiredConcurrency = Math.min(this._maxConcurrency, this._desiredConcurrency + step);
        this.log.debug("scaling up", {
          oldConcurrency: this._desiredConcurrency - step,
          newConcurrency: this._desiredConcurrency,
          systemStatus
        });
      }
      /**
       * Scales the pool down by decreasing
       * the desired concurrency by the scaleDownStepRatio.
       *
       * @param systemStatus for logging
       */
      _scaleDown(systemStatus) {
        const step = Math.ceil(this._desiredConcurrency * this.scaleDownStepRatio);
        this._desiredConcurrency = Math.max(this._minConcurrency, this._desiredConcurrency - step);
        this.log.debug("scaling down", {
          oldConcurrency: this._desiredConcurrency + step,
          newConcurrency: this._desiredConcurrency,
          systemStatus
        });
      }
      /**
       * If there are no running tasks and this.isFinishedFunction() returns true then closes
       * the pool and resolves the pool's promise returned by the run() method.
       *
       * It doesn't allow multiple concurrent runs of this method.
       */
      async _maybeFinish() {
        if (this.queryingIsFinished)
          return;
        if (this._currentConcurrency > 0)
          return;
        this.queryingIsFinished = true;
        try {
          const isFinished = await this.isFinishedFunction();
          if (isFinished && this.resolve)
            this.resolve();
        } catch (e2) {
          const err2 = e2;
          if (this.reject) {
            this.log.exception(err2, "isFinishedFunction failed.");
            this.reject(err2);
          }
        } finally {
          this.queryingIsFinished = false;
        }
      }
      /**
       * Cleans up resources.
       */
      async _destroy() {
        this.resolve = null;
        this.reject = null;
        (0, utilities_1.betterClearInterval)(this.autoscaleInterval);
        (0, utilities_1.betterClearInterval)(this.maybeRunInterval);
        if (this.tasksDonePerSecondInterval)
          (0, utilities_1.betterClearInterval)(this.tasksDonePerSecondInterval);
        if (this.snapshotter)
          await this.snapshotter.stop();
      }
      _incrementTasksDonePerSecond(intervalCallback) {
        this._tasksPerMinute.unshift(0);
        this._tasksPerMinute.pop();
        return intervalCallback();
      }
      get _isOverMaxRequestLimit() {
        if (this.maxTasksPerMinute === Infinity) {
          return false;
        }
        return this._tasksPerMinute.reduce((acc, curr) => acc + curr, 0) >= this.maxTasksPerMinute;
      }
    };
    exports2.AutoscaledPool = AutoscaledPool2;
  }
});
var require_autoscaling = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/autoscaling/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_autoscaled_pool(), exports2);
    tslib_1.__exportStar(require_snapshotter(), exports2);
    tslib_1.__exportStar(require_system_status(), exports2);
  }
});
var require_sync = __commonJS2({
  "../../node_modules/.pnpm/csv-stringify@6.6.0/node_modules/csv-stringify/dist/cjs/sync.cjs"(exports2) {
    "use strict";
    var charCodeOfDot = ".".charCodeAt(0);
    var reEscapeChar = /\\(\\)?/g;
    var rePropName = RegExp(
      // Match anything that isn't a dot or bracket.
      `[^.[\\]]+|\\[(?:([^"'][^[]*)|(["'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))`,
      "g"
    );
    var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
    var reIsPlainProp = /^\w*$/;
    var getTag = function(value) {
      return Object.prototype.toString.call(value);
    };
    var isSymbol2 = function(value) {
      const type = typeof value;
      return type === "symbol" || type === "object" && value && getTag(value) === "[object Symbol]";
    };
    var isKey = function(value, object) {
      if (Array.isArray(value)) {
        return false;
      }
      const type = typeof value;
      if (type === "number" || type === "symbol" || type === "boolean" || !value || isSymbol2(value)) {
        return true;
      }
      return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);
    };
    var stringToPath = function(string) {
      const result = [];
      if (string.charCodeAt(0) === charCodeOfDot) {
        result.push("");
      }
      string.replace(rePropName, function(match, expression, quote, subString) {
        let key = match;
        if (quote) {
          key = subString.replace(reEscapeChar, "$1");
        } else if (expression) {
          key = expression.trim();
        }
        result.push(key);
      });
      return result;
    };
    var castPath = function(value, object) {
      if (Array.isArray(value)) {
        return value;
      } else {
        return isKey(value, object) ? [value] : stringToPath(value);
      }
    };
    var toKey = function(value) {
      if (typeof value === "string" || isSymbol2(value)) return value;
      const result = `${value}`;
      return result == "0" && 1 / value == -INFINITY ? "-0" : result;
    };
    var get2 = function(object, path22) {
      path22 = castPath(path22, object);
      let index = 0;
      const length = path22.length;
      while (object != null && index < length) {
        object = object[toKey(path22[index++])];
      }
      return index && index === length ? object : void 0;
    };
    var is_object = function(obj) {
      return typeof obj === "object" && obj !== null && !Array.isArray(obj);
    };
    var normalize_columns = function(columns) {
      if (columns === void 0 || columns === null) {
        return [void 0, void 0];
      }
      if (typeof columns !== "object") {
        return [Error('Invalid option "columns": expect an array or an object')];
      }
      if (!Array.isArray(columns)) {
        const newcolumns = [];
        for (const k3 in columns) {
          newcolumns.push({
            key: k3,
            header: columns[k3]
          });
        }
        columns = newcolumns;
      } else {
        const newcolumns = [];
        for (const column of columns) {
          if (typeof column === "string") {
            newcolumns.push({
              key: column,
              header: column
            });
          } else if (typeof column === "object" && column !== null && !Array.isArray(column)) {
            if (!column.key) {
              return [
                Error('Invalid column definition: property "key" is required')
              ];
            }
            if (column.header === void 0) {
              column.header = column.key;
            }
            newcolumns.push(column);
          } else {
            return [
              Error("Invalid column definition: expect a string or an object")
            ];
          }
        }
        columns = newcolumns;
      }
      return [void 0, columns];
    };
    var CsvError = class _CsvError extends Error {
      constructor(code, message, ...contexts) {
        if (Array.isArray(message)) message = message.join(" ");
        super(message);
        if (Error.captureStackTrace !== void 0) {
          Error.captureStackTrace(this, _CsvError);
        }
        this.code = code;
        for (const context of contexts) {
          for (const key in context) {
            const value = context[key];
            this[key] = Buffer.isBuffer(value) ? value.toString() : value == null ? value : JSON.parse(JSON.stringify(value));
          }
        }
      }
    };
    var underscore = function(str) {
      return str.replace(/([A-Z])/g, function(_3, match) {
        return "_" + match.toLowerCase();
      });
    };
    var normalize_options = function(opts) {
      const options = {};
      for (const opt in opts) {
        options[underscore(opt)] = opts[opt];
      }
      if (options.bom === void 0 || options.bom === null || options.bom === false) {
        options.bom = false;
      } else if (options.bom !== true) {
        return [
          new CsvError("CSV_OPTION_BOOLEAN_INVALID_TYPE", [
            "option `bom` is optional and must be a boolean value,",
            `got ${JSON.stringify(options.bom)}`
          ])
        ];
      }
      if (options.delimiter === void 0 || options.delimiter === null) {
        options.delimiter = ",";
      } else if (Buffer.isBuffer(options.delimiter)) {
        options.delimiter = options.delimiter.toString();
      } else if (typeof options.delimiter !== "string") {
        return [
          new CsvError("CSV_OPTION_DELIMITER_INVALID_TYPE", [
            "option `delimiter` must be a buffer or a string,",
            `got ${JSON.stringify(options.delimiter)}`
          ])
        ];
      }
      if (options.quote === void 0 || options.quote === null) {
        options.quote = '"';
      } else if (options.quote === true) {
        options.quote = '"';
      } else if (options.quote === false) {
        options.quote = "";
      } else if (Buffer.isBuffer(options.quote)) {
        options.quote = options.quote.toString();
      } else if (typeof options.quote !== "string") {
        return [
          new CsvError("CSV_OPTION_QUOTE_INVALID_TYPE", [
            "option `quote` must be a boolean, a buffer or a string,",
            `got ${JSON.stringify(options.quote)}`
          ])
        ];
      }
      if (options.quoted === void 0 || options.quoted === null) {
        options.quoted = false;
      }
      if (options.escape_formulas === void 0 || options.escape_formulas === null) {
        options.escape_formulas = false;
      } else if (typeof options.escape_formulas !== "boolean") {
        return [
          new CsvError("CSV_OPTION_ESCAPE_FORMULAS_INVALID_TYPE", [
            "option `escape_formulas` must be a boolean,",
            `got ${JSON.stringify(options.escape_formulas)}`
          ])
        ];
      }
      if (options.quoted_empty === void 0 || options.quoted_empty === null) {
        options.quoted_empty = void 0;
      }
      if (options.quoted_match === void 0 || options.quoted_match === null || options.quoted_match === false) {
        options.quoted_match = null;
      } else if (!Array.isArray(options.quoted_match)) {
        options.quoted_match = [options.quoted_match];
      }
      if (options.quoted_match) {
        for (const quoted_match of options.quoted_match) {
          const isString3 = typeof quoted_match === "string";
          const isRegExp3 = quoted_match instanceof RegExp;
          if (!isString3 && !isRegExp3) {
            return [
              Error(
                `Invalid Option: quoted_match must be a string or a regex, got ${JSON.stringify(quoted_match)}`
              )
            ];
          }
        }
      }
      if (options.quoted_string === void 0 || options.quoted_string === null) {
        options.quoted_string = false;
      }
      if (options.eof === void 0 || options.eof === null) {
        options.eof = true;
      }
      if (options.escape === void 0 || options.escape === null) {
        options.escape = '"';
      } else if (Buffer.isBuffer(options.escape)) {
        options.escape = options.escape.toString();
      } else if (typeof options.escape !== "string") {
        return [
          Error(
            `Invalid Option: escape must be a buffer or a string, got ${JSON.stringify(options.escape)}`
          )
        ];
      }
      if (options.escape.length > 1) {
        return [
          Error(
            `Invalid Option: escape must be one character, got ${options.escape.length} characters`
          )
        ];
      }
      if (options.header === void 0 || options.header === null) {
        options.header = false;
      }
      const [errColumns, columns] = normalize_columns(options.columns);
      if (errColumns !== void 0) return [errColumns];
      options.columns = columns;
      if (options.quoted === void 0 || options.quoted === null) {
        options.quoted = false;
      }
      if (options.cast === void 0 || options.cast === null) {
        options.cast = {};
      }
      if (options.cast.bigint === void 0 || options.cast.bigint === null) {
        options.cast.bigint = (value) => "" + value;
      }
      if (options.cast.boolean === void 0 || options.cast.boolean === null) {
        options.cast.boolean = (value) => value ? "1" : "";
      }
      if (options.cast.date === void 0 || options.cast.date === null) {
        options.cast.date = (value) => "" + value.getTime();
      }
      if (options.cast.number === void 0 || options.cast.number === null) {
        options.cast.number = (value) => "" + value;
      }
      if (options.cast.object === void 0 || options.cast.object === null) {
        options.cast.object = (value) => JSON.stringify(value);
      }
      if (options.cast.string === void 0 || options.cast.string === null) {
        options.cast.string = function(value) {
          return value;
        };
      }
      if (options.on_record !== void 0 && typeof options.on_record !== "function") {
        return [Error(`Invalid Option: "on_record" must be a function.`)];
      }
      if (options.record_delimiter === void 0 || options.record_delimiter === null) {
        options.record_delimiter = "\n";
      } else if (Buffer.isBuffer(options.record_delimiter)) {
        options.record_delimiter = options.record_delimiter.toString();
      } else if (typeof options.record_delimiter !== "string") {
        return [
          Error(
            `Invalid Option: record_delimiter must be a buffer or a string, got ${JSON.stringify(options.record_delimiter)}`
          )
        ];
      }
      switch (options.record_delimiter) {
        case "unix":
          options.record_delimiter = "\n";
          break;
        case "mac":
          options.record_delimiter = "\r";
          break;
        case "windows":
          options.record_delimiter = "\r\n";
          break;
        case "ascii":
          options.record_delimiter = "";
          break;
        case "unicode":
          options.record_delimiter = "\u2028";
          break;
      }
      return [void 0, options];
    };
    var bom_utf8 = Buffer.from([239, 187, 191]);
    var stringifier = function(options, state, info) {
      return {
        options,
        state,
        info,
        __transform: function(chunk2, push) {
          if (!Array.isArray(chunk2) && typeof chunk2 !== "object") {
            return Error(
              `Invalid Record: expect an array or an object, got ${JSON.stringify(chunk2)}`
            );
          }
          if (this.info.records === 0) {
            if (Array.isArray(chunk2)) {
              if (this.options.header === true && this.options.columns === void 0) {
                return Error(
                  "Undiscoverable Columns: header option requires column option or object records"
                );
              }
            } else if (this.options.columns === void 0) {
              const [err3, columns] = normalize_columns(Object.keys(chunk2));
              if (err3) return;
              this.options.columns = columns;
            }
          }
          if (this.info.records === 0) {
            this.bom(push);
            const err3 = this.headers(push);
            if (err3) return err3;
          }
          try {
            if (this.options.on_record) {
              this.options.on_record(chunk2, this.info.records);
            }
          } catch (err3) {
            return err3;
          }
          let err2, chunk_string;
          if (this.options.eof) {
            [err2, chunk_string] = this.stringify(chunk2);
            if (err2) return err2;
            if (chunk_string === void 0) {
              return;
            } else {
              chunk_string = chunk_string + this.options.record_delimiter;
            }
          } else {
            [err2, chunk_string] = this.stringify(chunk2);
            if (err2) return err2;
            if (chunk_string === void 0) {
              return;
            } else {
              if (this.options.header || this.info.records) {
                chunk_string = this.options.record_delimiter + chunk_string;
              }
            }
          }
          this.info.records++;
          push(chunk_string);
        },
        stringify: function(chunk2, chunkIsHeader = false) {
          if (typeof chunk2 !== "object") {
            return [void 0, chunk2];
          }
          const { columns } = this.options;
          const record = [];
          if (Array.isArray(chunk2)) {
            if (columns) {
              chunk2.splice(columns.length);
            }
            for (let i22 = 0; i22 < chunk2.length; i22++) {
              const field = chunk2[i22];
              const [err2, value] = this.__cast(field, {
                index: i22,
                column: i22,
                records: this.info.records,
                header: chunkIsHeader
              });
              if (err2) return [err2];
              record[i22] = [value, field];
            }
          } else {
            for (let i22 = 0; i22 < columns.length; i22++) {
              const field = get2(chunk2, columns[i22].key);
              const [err2, value] = this.__cast(field, {
                index: i22,
                column: columns[i22].key,
                records: this.info.records,
                header: chunkIsHeader
              });
              if (err2) return [err2];
              record[i22] = [value, field];
            }
          }
          let csvrecord = "";
          for (let i22 = 0; i22 < record.length; i22++) {
            let options2, err2;
            let [value, field] = record[i22];
            if (typeof value === "string") {
              options2 = this.options;
            } else if (is_object(value)) {
              options2 = value;
              value = options2.value;
              delete options2.value;
              if (typeof value !== "string" && value !== void 0 && value !== null) {
                if (err2)
                  return [
                    Error(
                      `Invalid Casting Value: returned value must return a string, null or undefined, got ${JSON.stringify(value)}`
                    )
                  ];
              }
              options2 = { ...this.options, ...options2 };
              [err2, options2] = normalize_options(options2);
              if (err2 !== void 0) {
                return [err2];
              }
            } else if (value === void 0 || value === null) {
              options2 = this.options;
            } else {
              return [
                Error(
                  `Invalid Casting Value: returned value must return a string, an object, null or undefined, got ${JSON.stringify(value)}`
                )
              ];
            }
            const {
              delimiter,
              escape: escape22,
              quote,
              quoted,
              quoted_empty,
              quoted_string,
              quoted_match,
              record_delimiter,
              escape_formulas
            } = options2;
            if ("" === value && "" === field) {
              let quotedMatch = quoted_match && quoted_match.filter((quoted_match2) => {
                if (typeof quoted_match2 === "string") {
                  return value.indexOf(quoted_match2) !== -1;
                } else {
                  return quoted_match2.test(value);
                }
              });
              quotedMatch = quotedMatch && quotedMatch.length > 0;
              const shouldQuote = quotedMatch || true === quoted_empty || true === quoted_string && false !== quoted_empty;
              if (shouldQuote === true) {
                value = quote + value + quote;
              }
              csvrecord += value;
            } else if (value) {
              if (typeof value !== "string") {
                return [
                  Error(
                    `Formatter must return a string, null or undefined, got ${JSON.stringify(value)}`
                  )
                ];
              }
              const containsdelimiter = delimiter.length && value.indexOf(delimiter) >= 0;
              const containsQuote = quote !== "" && value.indexOf(quote) >= 0;
              const containsEscape = value.indexOf(escape22) >= 0 && escape22 !== quote;
              const containsRecordDelimiter = value.indexOf(record_delimiter) >= 0;
              const quotedString = quoted_string && typeof field === "string";
              let quotedMatch = quoted_match && quoted_match.filter((quoted_match2) => {
                if (typeof quoted_match2 === "string") {
                  return value.indexOf(quoted_match2) !== -1;
                } else {
                  return quoted_match2.test(value);
                }
              });
              quotedMatch = quotedMatch && quotedMatch.length > 0;
              if (escape_formulas) {
                switch (value[0]) {
                  case "=":
                  case "+":
                  case "-":
                  case "@":
                  case "	":
                  case "\r":
                  case "\uFF1D":
                  // Unicode '='
                  case "\uFF0B":
                  // Unicode '+'
                  case "\uFF0D":
                  // Unicode '-'
                  case "\uFF20":
                    value = `'${value}`;
                    break;
                }
              }
              const shouldQuote = containsQuote === true || containsdelimiter || containsRecordDelimiter || quoted || quotedString || quotedMatch;
              if (shouldQuote === true && containsEscape === true) {
                const regexp = escape22 === "\\" ? new RegExp(escape22 + escape22, "g") : new RegExp(escape22, "g");
                value = value.replace(regexp, escape22 + escape22);
              }
              if (containsQuote === true) {
                const regexp = new RegExp(quote, "g");
                value = value.replace(regexp, escape22 + quote);
              }
              if (shouldQuote === true) {
                value = quote + value + quote;
              }
              csvrecord += value;
            } else if (quoted_empty === true || field === "" && quoted_string === true && quoted_empty !== false) {
              csvrecord += quote + quote;
            }
            if (i22 !== record.length - 1) {
              csvrecord += delimiter;
            }
          }
          return [void 0, csvrecord];
        },
        bom: function(push) {
          if (this.options.bom !== true) {
            return;
          }
          push(bom_utf8);
        },
        headers: function(push) {
          if (this.options.header === false) {
            return;
          }
          if (this.options.columns === void 0) {
            return;
          }
          let err2;
          let headers = this.options.columns.map((column) => column.header);
          if (this.options.eof) {
            [err2, headers] = this.stringify(headers, true);
            headers += this.options.record_delimiter;
          } else {
            [err2, headers] = this.stringify(headers);
          }
          if (err2) return err2;
          push(headers);
        },
        __cast: function(value, context) {
          const type = typeof value;
          try {
            if (type === "string") {
              return [void 0, this.options.cast.string(value, context)];
            } else if (type === "bigint") {
              return [void 0, this.options.cast.bigint(value, context)];
            } else if (type === "number") {
              return [void 0, this.options.cast.number(value, context)];
            } else if (type === "boolean") {
              return [void 0, this.options.cast.boolean(value, context)];
            } else if (value instanceof Date) {
              return [void 0, this.options.cast.date(value, context)];
            } else if (type === "object" && value !== null) {
              return [void 0, this.options.cast.object(value, context)];
            } else {
              return [void 0, value, value];
            }
          } catch (err2) {
            return [err2];
          }
        }
      };
    };
    var stringify = function(records, opts = {}) {
      const data = [];
      const [err2, options] = normalize_options(opts);
      if (err2 !== void 0) throw err2;
      const state = {
        stop: false
      };
      const info = {
        records: 0
      };
      const api = stringifier(options, state, info);
      for (const record of records) {
        const err3 = api.__transform(record, function(record2) {
          data.push(record2);
        });
        if (err3 !== void 0) throw err3;
      }
      if (data.length === 0) {
        api.bom((d) => {
          data.push(d);
        });
        const err3 = api.headers((headers) => {
          data.push(headers);
        });
        if (err3 !== void 0) throw err3;
      }
      return data.join("");
    };
    exports2.stringify = stringify;
  }
});
var require_access_checking = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/access_checking.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.withCheckedStorageAccess = exports2.checkStorageAccess = void 0;
    var node_async_hooks_1 = __require("node:async_hooks");
    var storage2 = new node_async_hooks_1.AsyncLocalStorage();
    var checkStorageAccess2 = () => storage2.getStore()?.checkFunction();
    exports2.checkStorageAccess = checkStorageAccess2;
    var withCheckedStorageAccess2 = async (checkFunction, callback) => storage2.run({ checkFunction }, callback);
    exports2.withCheckedStorageAccess = withCheckedStorageAccess2;
  }
});
var require_storage_manager = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/storage_manager.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.StorageManager = void 0;
    var async_queue_1 = require_cjs6();
    var configuration_1 = require_configuration();
    var DEFAULT_ID_CONFIG_KEYS = {
      Dataset: "defaultDatasetId",
      KeyValueStore: "defaultKeyValueStoreId",
      RequestQueue: "defaultRequestQueueId"
    };
    var StorageManager2 = class _StorageManager {
      constructor(StorageConstructor, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "StorageConstructor", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "cache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "storageOpenQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        this.StorageConstructor = StorageConstructor;
        this.name = this.StorageConstructor.name;
      }
      static async openStorage(storageClass, idOrName, client, config = configuration_1.Configuration.getGlobalConfig()) {
        return this.getManager(storageClass, config).openStorage(idOrName, client);
      }
      static getManager(storageClass, config = configuration_1.Configuration.getGlobalConfig()) {
        if (!config.storageManagers.has(storageClass)) {
          const manager = new _StorageManager(storageClass, config);
          config.storageManagers.set(storageClass, manager);
        }
        return config.storageManagers.get(storageClass);
      }
      /** @internal */
      static clearCache(config = configuration_1.Configuration.getGlobalConfig()) {
        config.storageManagers.forEach((manager) => {
          if (manager.name === "KeyValueStore") {
            manager.cache.forEach((item) => {
              item.clearCache?.();
            });
          }
        });
        config.storageManagers.clear();
      }
      async openStorage(idOrName, client) {
        await this.storageOpenQueue.wait();
        if (!idOrName) {
          const defaultIdConfigKey = DEFAULT_ID_CONFIG_KEYS[this.name];
          idOrName = this.config.get(defaultIdConfigKey);
        }
        const cacheKey = idOrName;
        let storage2 = this.cache.get(cacheKey);
        if (!storage2) {
          client ?? (client = this.config.getStorageClient());
          const storageObject = await this._getOrCreateStorage(idOrName, this.name, client);
          storage2 = new this.StorageConstructor({
            id: storageObject.id,
            name: storageObject.name,
            storageObject,
            client
          }, this.config);
          this._addStorageToCache(storage2);
        }
        this.storageOpenQueue.shift();
        return storage2;
      }
      closeStorage(storage2) {
        const idKey = storage2.id;
        this.cache.delete(idKey);
        if (storage2.name) {
          const nameKey = storage2.name;
          this.cache.delete(nameKey);
        }
      }
      /**
       * Helper function that first requests storage by ID and if storage doesn't exist then gets it by name.
       */
      async _getOrCreateStorage(storageIdOrName, storageConstructorName, apiClient) {
        const { createStorageClient, createStorageCollectionClient } = this._getStorageClientFactories(apiClient, storageConstructorName);
        const storageClient = createStorageClient(storageIdOrName);
        const existingStorage = await storageClient.get();
        if (existingStorage)
          return existingStorage;
        const storageCollectionClient = createStorageCollectionClient();
        return storageCollectionClient.getOrCreate(storageIdOrName);
      }
      _getStorageClientFactories(client, storageConstructorName) {
        const clientName = storageConstructorName[0].toLowerCase() + storageConstructorName.slice(1);
        const collectionClientName = `${clientName}s`;
        return {
          createStorageClient: client[clientName].bind(client),
          createStorageCollectionClient: client[collectionClientName].bind(client)
        };
      }
      _addStorageToCache(storage2) {
        const idKey = storage2.id;
        this.cache.set(idKey, storage2);
        if (storage2.name) {
          const nameKey = storage2.name;
          this.cache.set(nameKey, storage2);
        }
      }
    };
    exports2.StorageManager = StorageManager2;
  }
});
var require_utils10 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.MAX_QUERIES_FOR_CONSISTENCY = exports2.API_PROCESSED_REQUESTS_DELAY_MILLIS = exports2.QUERY_HEAD_BUFFER = exports2.STORAGE_CONSISTENCY_DELAY_MILLIS = exports2.QUERY_HEAD_MIN_LENGTH = void 0;
    exports2.purgeDefaultStorages = purgeDefaultStorages2;
    exports2.useState = useState2;
    exports2.getRequestId = getRequestId2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_crypto_1 = tslib_1.__importDefault(__require("node:crypto"));
    var configuration_1 = require_configuration();
    var key_value_store_1 = require_key_value_store3();
    async function purgeDefaultStorages2(configOrOptions, client) {
      const options = configOrOptions instanceof configuration_1.Configuration ? {
        client,
        config: configOrOptions
      } : configOrOptions ?? {};
      const { config = configuration_1.Configuration.getGlobalConfig(), onlyPurgeOnce = false } = options;
      ({ client = config.getStorageClient() } = options);
      const casted = client;
      if (!onlyPurgeOnce || config.get("purgeOnStart") && !casted.__purged) {
        casted.__purged = true;
        await casted.purge?.();
      }
    }
    async function useState2(name2, defaultValue = {}, options) {
      const kvStore = await key_value_store_1.KeyValueStore.open(options?.keyValueStoreName, {
        config: options?.config || configuration_1.Configuration.getGlobalConfig()
      });
      return kvStore.getAutoSavedValue(name2 || "CRAWLEE_GLOBAL_STATE", defaultValue);
    }
    function getRequestId2(uniqueKey) {
      const str = node_crypto_1.default.createHash("sha256").update(uniqueKey).digest("base64").replace(/[+/=]/g, "");
      return str.slice(0, 15);
    }
    exports2.QUERY_HEAD_MIN_LENGTH = 100;
    exports2.STORAGE_CONSISTENCY_DELAY_MILLIS = 3e3;
    exports2.QUERY_HEAD_BUFFER = 3;
    exports2.API_PROCESSED_REQUESTS_DELAY_MILLIS = 1e4;
    exports2.MAX_QUERIES_FOR_CONSISTENCY = 6;
  }
});
var require_key_value_store3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/key_value_store.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.KeyValueStore = exports2.maybeStringify = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var promises_1 = __require("node:fs/promises");
    var node_path_1 = __require("node:path");
    var json5_1 = tslib_1.__importDefault(require_lib2());
    var ow_1 = tslib_1.__importStar(require_dist2());
    var consts_1 = require_cjs2();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var access_checking_1 = require_access_checking();
    var storage_manager_1 = require_storage_manager();
    var utils_1 = require_utils10();
    var maybeStringify2 = (value, options) => {
      if (options.contentType === null || options.contentType === void 0) {
        options.contentType = "application/json; charset=utf-8";
        try {
          value = (0, utilities_1.jsonStringifyExtended)(value, null, 2);
        } catch (e2) {
          const error = e2;
          if (error.message?.includes("Invalid string length")) {
            error.message = "Object is too large";
          }
          throw new Error(`The "value" parameter cannot be stringified to JSON: ${error.message}`);
        }
        if (value === void 0) {
          throw new Error(`The "value" parameter was stringified to JSON and returned undefined. Make sure you're not trying to stringify an undefined value.`);
        }
      }
      return value;
    };
    exports2.maybeStringify = maybeStringify2;
    var KeyValueStore2 = class _KeyValueStore {
      /**
       * @internal
       */
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "storageObject", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateEventStarted", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "cache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        this.id = options.id;
        this.name = options.name;
        this.storageObject = options.storageObject;
        this.client = options.client.keyValueStore(this.id);
      }
      /**
       * Gets a value from the key-value store.
       *
       * The function returns a `Promise` that resolves to the record value,
       * whose JavaScript type depends on the MIME content type of the record.
       * Records with the `application/json`
       * content type are automatically parsed and returned as a JavaScript object.
       * Similarly, records with `text/plain` content types are returned as a string.
       * For all other content types, the value is returned as a raw
       * [`Buffer`](https://nodejs.org/api/buffer.html) instance.
       *
       * If the record does not exist, the function resolves to `null`.
       *
       * To save or delete a value in the key-value store, use the
       * {@link KeyValueStore.setValue} function.
       *
       * **Example usage:**
       *
       * ```javascript
       * const store = await KeyValueStore.open();
       * const buffer = await store.getValue('screenshot1.png');
       * ```
       * @param key
       *   Unique key of the record. It can be at most 256 characters long and only consist
       *   of the following characters: `a`-`z`, `A`-`Z`, `0`-`9` and `!-_.'()`
       * @param defaultValue
       *   Fallback that will be returned if no value if present in the storage.
       * @returns
       *   Returns a promise that resolves to an object, string
       *   or [`Buffer`](https://nodejs.org/api/buffer.html), depending
       *   on the MIME content type of the record, or `null` if the key is missing from the store.
       */
      async getValue(key, defaultValue) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(key, ow_1.default.string.nonEmpty);
        const record = await this.client.getRecord(key);
        return record?.value ?? defaultValue ?? null;
      }
      /**
       * Tests whether a record with the given key exists in the key-value store without retrieving its value.
       *
       * @param key The queried record key.
       * @returns `true` if the record exists, `false` if it does not.
       */
      async recordExists(key) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(key, ow_1.default.string.nonEmpty);
        return this.client.recordExists(key);
      }
      async getAutoSavedValue(key, defaultValue = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        const value = await this.getValue(key, defaultValue);
        if (this.cache.has(key)) {
          return this.cache.get(key);
        }
        this.cache.set(key, value);
        this.ensurePersistStateEvent();
        return value;
      }
      ensurePersistStateEvent() {
        if (this.persistStateEventStarted) {
          return;
        }
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        const timeoutSecs = persistStateIntervalMillis / 2e3;
        this.config.getEventManager().on("persistState", async () => {
          const promises = [];
          for (const [key, value] of this.cache) {
            promises.push(this.setValue(key, value, {
              timeoutSecs,
              doNotRetryTimeouts: true
            }).catch((error) => log_1.default.warning(`Failed to persist the state value to ${key}`, { error })));
          }
          await Promise.all(promises);
        });
        this.persistStateEventStarted = true;
      }
      /**
       * Saves or deletes a record in the key-value store.
       * The function returns a promise that resolves once the record has been saved or deleted.
       *
       * **Example usage:**
       *
       * ```javascript
       * const store = await KeyValueStore.open();
       * await store.setValue('OUTPUT', { foo: 'bar' });
       * ```
       *
       * Beware that the key can be at most 256 characters long and only contain the following characters: `a-zA-Z0-9!-_.'()`
       *
       * By default, `value` is converted to JSON and stored with the
       * `application/json; charset=utf-8` MIME content type.
       * To store the value with another content type, pass it in the options as follows:
       * ```javascript
       * const store = await KeyValueStore.open('my-text-store');
       * await store.setValue('RESULTS', 'my text data', { contentType: 'text/plain' });
       * ```
       * If you set custom content type, `value` must be either a string or
       * [`Buffer`](https://nodejs.org/api/buffer.html), otherwise an error will be thrown.
       *
       * If `value` is `null`, the record is deleted instead. Note that the `setValue()` function succeeds
       * regardless whether the record existed or not.
       *
       * To retrieve a value from the key-value store, use the
       * {@link KeyValueStore.getValue} function.
       *
       * **IMPORTANT:** Always make sure to use the `await` keyword when calling `setValue()`,
       * otherwise the crawler process might finish before the value is stored!
       *
       * @param key
       *   Unique key of the record. It can be at most 256 characters long and only consist
       *   of the following characters: `a`-`z`, `A`-`Z`, `0`-`9` and `!-_.'()`
       * @param value
       *   Record data, which can be one of the following values:
       *    - If `null`, the record in the key-value store is deleted.
       *    - If no `options.contentType` is specified, `value` can be any JavaScript object and it will be stringified to JSON.
       *    - If `options.contentType` is set, `value` is taken as is and it must be a `String` or [`Buffer`](https://nodejs.org/api/buffer.html).
       *   For any other value an error will be thrown.
       * @param [options] Record options.
       */
      async setValue(key, value, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(key, "key", ow_1.default.string.nonEmpty);
        (0, ow_1.default)(key, ow_1.default.string.validate((k3) => ({
          validator: ow_1.default.isValid(k3, ow_1.default.string.matches(consts_1.KEY_VALUE_STORE_KEY_REGEX)),
          message: `The "key" argument "${key}" must be at most 256 characters long and only contain the following characters: a-zA-Z0-9!-_.'()`
        })));
        if (options.contentType && !(ow_1.default.isValid(value, ow_1.default.any(ow_1.default.string, ow_1.default.uint8Array)) || ow_1.default.isValid(value, ow_1.default.object) && typeof value.pipe === "function")) {
          throw new ow_1.ArgumentError('The "value" parameter must be a String, Buffer or Stream when "options.contentType" is specified.', this.setValue);
        }
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          contentType: ow_1.default.optional.string.nonEmpty,
          timeoutSecs: ow_1.default.optional.number,
          doNotRetryTimeouts: ow_1.default.optional.boolean
        }));
        const optionsCopy = { ...options };
        const cachedValue = this.cache.get(key);
        if (cachedValue && cachedValue !== value) {
          if (value === null) {
            Object.keys(cachedValue).forEach((k3) => this.cache.delete(k3));
          } else if (typeof value === "object") {
            Object.keys(cachedValue).filter((k3) => !(k3 in value)).forEach((k3) => this.cache.delete(k3));
            Object.assign(cachedValue, value);
          }
        }
        if (value === null)
          return this.client.deleteRecord(key);
        value = (0, exports2.maybeStringify)(value, optionsCopy);
        return this.client.setRecord({
          key,
          value,
          contentType: optionsCopy.contentType
        }, {
          timeoutSecs: optionsCopy.timeoutSecs,
          doNotRetryTimeouts: optionsCopy.doNotRetryTimeouts
        });
      }
      /**
       * Removes the key-value store either from the Apify cloud storage or from the local directory,
       * depending on the mode of operation.
       */
      async drop() {
        (0, access_checking_1.checkStorageAccess)();
        await this.client.delete();
        const manager = storage_manager_1.StorageManager.getManager(_KeyValueStore, this.config);
        manager.closeStorage(this);
      }
      /** @internal */
      clearCache() {
        (0, access_checking_1.checkStorageAccess)();
        this.cache.clear();
      }
      /**
       * Iterates over key-value store keys, yielding each in turn to an `iteratee` function.
       * Each invocation of `iteratee` is called with three arguments: `(key, index, info)`, where `key`
       * is the record key, `index` is a zero-based index of the key in the current iteration
       * (regardless of `options.exclusiveStartKey`) and `info` is an object that contains a single property `size`
       * indicating size of the record in bytes.
       *
       * If the `iteratee` function returns a Promise then it is awaited before the next call.
       * If it throws an error, the iteration is aborted and the `forEachKey` function throws the error.
       *
       * **Example usage**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * await keyValueStore.forEachKey(async (key, index, info) => {
       *   console.log(`Key at ${index}: ${key} has size ${info.size}`);
       * });
       * ```
       *
       * @param iteratee A function that is called for every key in the key-value store.
       * @param [options] All `forEachKey()` parameters.
       */
      async forEachKey(iteratee, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        return this._forEachKey(iteratee, options);
      }
      async _forEachKey(iteratee, options = {}, index = 0) {
        const { exclusiveStartKey, prefix, collection } = options;
        (0, ow_1.default)(iteratee, ow_1.default.function);
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          exclusiveStartKey: ow_1.default.optional.string,
          prefix: ow_1.default.optional.string,
          collection: ow_1.default.optional.string
        }));
        const response = await this.client.listKeys({ exclusiveStartKey, prefix, collection });
        const { nextExclusiveStartKey, isTruncated, items } = response;
        for (const item of items) {
          await iteratee(item.key, index++, { size: item.size });
        }
        return isTruncated ? this._forEachKey(iteratee, { exclusiveStartKey: nextExclusiveStartKey, prefix, collection }, index) : void 0;
      }
      /**
       * Iterates over key-value store keys using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const key of keyValueStore.keys()) {
       *   console.log(key);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      async *keys(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.keys) {
          throw new Error('Resource client is missing the "keys" method.');
        }
        yield* this.client.keys(options);
      }
      /**
       * Iterates over key-value store values using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const value of keyValueStore.values()) {
       *   console.log(value);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      values(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.values) {
          throw new Error('Resource client is missing the "values" method.');
        }
        return this.client.values(options);
      }
      /**
       * Iterates over key-value store entries (key-value pairs) using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const [key, value] of keyValueStore.entries()) {
       *   console.log(`${key}: ${value}`);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      entries(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.entries) {
          throw new Error('Resource client is missing the "entries" method.');
        }
        return this.client.entries(options);
      }
      /**
       * Default async iterator for the key-value store, iterating over entries (key-value pairs).
       * Allows using the store directly in a `for await...of` loop.
       *
       * **Example usage:**
       * ```javascript
       * const keyValueStore = await KeyValueStore.open();
       * for await (const [key, value] of keyValueStore) {
       *   console.log(`${key}: ${value}`);
       * }
       * ```
       */
      async *[Symbol.asyncIterator]() {
        yield* this.entries();
      }
      /**
       * Returns a file URL for the given key.
       */
      getPublicUrl(key) {
        const name2 = this.name ?? this.config.get("defaultKeyValueStoreId");
        return `file://${process.cwd()}/storage/key_value_stores/${name2}/${key}`;
      }
      /**
       * Opens a key-value store and returns a promise resolving to an instance of the {@link KeyValueStore} class.
       *
       * Key-value stores are used to store records or files, along with their MIME content type.
       * The records are stored and retrieved using a unique key.
       * The actual data is stored either on a local filesystem or in the Apify cloud.
       *
       * For more details and code examples, see the {@link KeyValueStore} class.
       *
       * @param [storeIdOrName]
       *   ID or name of the key-value store to be opened. If `null` or `undefined`,
       *   the function returns the default key-value store associated with the crawler run.
       * @param [options] Storage manager options.
       */
      static async open(storeIdOrName, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(storeIdOrName, ow_1.default.optional.any(ow_1.default.string, ow_1.default.null));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          config: ow_1.default.optional.object.instanceOf(configuration_1.Configuration),
          storageClient: ow_1.default.optional.object
        }));
        options.config ?? (options.config = configuration_1.Configuration.getGlobalConfig());
        options.storageClient ?? (options.storageClient = options.config.getStorageClient());
        await (0, utils_1.purgeDefaultStorages)({ onlyPurgeOnce: true, client: options.storageClient, config: options.config });
        const manager = storage_manager_1.StorageManager.getManager(this, options.config);
        return manager.openStorage(storeIdOrName, options.storageClient);
      }
      /**
       * Gets a value from the default {@link KeyValueStore} associated with the current crawler run.
       *
       * This is just a convenient shortcut for {@link KeyValueStore.getValue}.
       * For example, calling the following code:
       * ```javascript
       * const value = await KeyValueStore.getValue('my-key');
       * ```
       *
       * is equivalent to:
       * ```javascript
       * const store = await KeyValueStore.open();
       * const value = await store.getValue('my-key');
       * ```
       *
       * To store the value to the default key-value store, you can use the {@link KeyValueStore.setValue} function.
       *
       * For more information, see  {@link KeyValueStore.open}
       * and  {@link KeyValueStore.getValue}.
       *
       * @param key Unique record key.
       * @param defaultValue Fallback that will be returned if no value if present in the storage.
       * @returns
       *   Returns a promise that resolves to an object, string
       *   or [`Buffer`](https://nodejs.org/api/buffer.html), depending
       *   on the MIME content type of the record, or `null`
       *   if the record is missing.
       * @ignore
       */
      static async getValue(key, defaultValue) {
        const store = await this.open();
        return store.getValue(key, defaultValue);
      }
      /**
       * Tests whether a record with the given key exists in the default {@link KeyValueStore} associated with the current crawler run.
       * @param key The queried record key.
       * @returns `true` if the record exists, `false` if it does not.
       */
      static async recordExists(key) {
        const store = await this.open();
        return store.recordExists(key);
      }
      static async getAutoSavedValue(key, defaultValue = {}) {
        const store = await this.open();
        return store.getAutoSavedValue(key, defaultValue);
      }
      /**
       * Stores or deletes a value in the default {@link KeyValueStore} associated with the current crawler run.
       *
       * This is just a convenient shortcut for  {@link KeyValueStore.setValue}.
       * For example, calling the following code:
       * ```javascript
       * await KeyValueStore.setValue('OUTPUT', { foo: "bar" });
       * ```
       *
       * is equivalent to:
       * ```javascript
       * const store = await KeyValueStore.open();
       * await store.setValue('OUTPUT', { foo: "bar" });
       * ```
       *
       * To get a value from the default key-value store, you can use the  {@link KeyValueStore.getValue} function.
       *
       * For more information, see  {@link KeyValueStore.open}
       * and  {@link KeyValueStore.getValue}.
       *
       * @param key
       *   Unique record key.
       * @param value
       *   Record data, which can be one of the following values:
       *    - If `null`, the record in the key-value store is deleted.
       *    - If no `options.contentType` is specified, `value` can be any JavaScript object, and it will be stringified to JSON.
       *    - If `options.contentType` is set, `value` is taken as is, and it must be a `String` or [`Buffer`](https://nodejs.org/api/buffer.html).
       *   For any other value an error will be thrown.
       * @param [options]
       * @ignore
       */
      static async setValue(key, value, options = {}) {
        const store = await this.open();
        return store.setValue(key, value, options);
      }
      /**
       * Gets the crawler input value from the default {@link KeyValueStore} associated with the current crawler run.
       * By default, it will try to find root input files (either extension-less, `.json` or `.txt`),
       * or alternatively read the input from the default {@link KeyValueStore}.
       *
       * Note that the `getInput()` function does not cache the value read from the key-value store.
       * If you need to use the input multiple times in your crawler,
       * it is far more efficient to read it once and store it locally.
       *
       * For more information, see {@link KeyValueStore.open}
       * and {@link KeyValueStore.getValue}.
       *
       * @returns
       *   Returns a promise that resolves to an object, string
       *   or [`Buffer`](https://nodejs.org/api/buffer.html), depending
       *   on the MIME content type of the record, or `null`
       *   if the record is missing.
       * @ignore
       */
      static async getInput() {
        const store = await this.open();
        const inputKey = store.config.get("inputKey");
        const cwd = process.cwd();
        const possibleExtensions = ["", ".json", ".txt"];
        for (const extension of possibleExtensions) {
          const inputFile = (0, node_path_1.join)(cwd, `${inputKey}${extension}`);
          let input;
          try {
            input = await (0, promises_1.readFile)(inputFile);
          } catch {
            continue;
          }
          try {
            return json5_1.default.parse(input.toString());
          } catch {
            return input;
          }
        }
        return store.getValue(inputKey);
      }
    };
    exports2.KeyValueStore = KeyValueStore2;
  }
});
var require_dataset3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/dataset.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Dataset = exports2.DATASET_ITERATORS_DEFAULT_LIMIT = void 0;
    exports2.checkAndSerialize = checkAndSerialize2;
    exports2.chunkBySize = chunkBySize2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var sync_1 = require_sync();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var consts_1 = require_cjs2();
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var access_checking_1 = require_access_checking();
    var key_value_store_1 = require_key_value_store3();
    var storage_manager_1 = require_storage_manager();
    var utils_1 = require_utils10();
    exports2.DATASET_ITERATORS_DEFAULT_LIMIT = 1e4;
    var SAFETY_BUFFER_PERCENT = 0.01 / 100;
    function checkAndSerialize2(item, limitBytes, index) {
      const s2 = typeof index === "number" ? ` at index ${index} ` : " ";
      const isItemObject = item && typeof item === "object" && !Array.isArray(item);
      if (!isItemObject) {
        throw new Error(`Data item${s2}is not an object. You can push only objects into a dataset.`);
      }
      let payload;
      try {
        payload = JSON.stringify(item);
      } catch (e2) {
        const err2 = e2;
        throw new Error(`Data item${s2}is not serializable to JSON.
Cause: ${err2.message}`);
      }
      const bytes = Buffer.byteLength(payload);
      if (bytes > limitBytes) {
        throw new Error(`Data item${s2}is too large (size: ${bytes} bytes, limit: ${limitBytes} bytes)`);
      }
      return payload;
    }
    function chunkBySize2(items, limitBytes) {
      if (!items.length)
        return [];
      if (items.length === 1)
        return items;
      let lastChunkBytes = 2;
      const chunks = [];
      for (const payload of items) {
        const bytes = Buffer.byteLength(payload);
        if (bytes <= limitBytes && bytes + 2 > limitBytes) {
          chunks.push(payload);
          lastChunkBytes = bytes;
        } else if (lastChunkBytes + bytes <= limitBytes) {
          if (!Array.isArray(chunks[chunks.length - 1])) {
            chunks.push([]);
          }
          chunks[chunks.length - 1].push(payload);
          lastChunkBytes += bytes + 1;
        } else {
          chunks.push([payload]);
          lastChunkBytes = bytes + 2;
        }
      }
      return chunks.map((chunk2) => typeof chunk2 === "string" ? chunk2 : `[${chunk2.join(",")}]`);
    }
    var Dataset2 = class _Dataset {
      /**
       * @internal
       */
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "storageObject", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.log.child({ prefix: "Dataset" })
        });
        this.id = options.id;
        this.name = options.name;
        this.client = options.client.dataset(this.id);
        this.storageObject = options.storageObject;
      }
      /**
       * Stores an object or an array of objects to the dataset.
       * The function returns a promise that resolves when the operation finishes.
       * It has no result, but throws on invalid args or other errors.
       *
       * **IMPORTANT**: Make sure to use the `await` keyword when calling `pushData()`,
       * otherwise the crawler process might finish before the data is stored!
       *
       * The size of the data is limited by the receiving API and therefore `pushData()` will only
       * allow objects whose JSON representation is smaller than 9MB. When an array is passed,
       * none of the included objects
       * may be larger than 9MB, but the array itself may be of any size.
       *
       * The function internally
       * chunks the array into separate items and pushes them sequentially.
       * The chunking process is stable (keeps order of data), but it does not provide a transaction
       * safety mechanism. Therefore, in the event of an uploading error (after several automatic retries),
       * the function's Promise will reject and the dataset will be left in a state where some of
       * the items have already been saved to the dataset while other items from the source array were not.
       * To overcome this limitation, the developer may, for example, read the last item saved in the dataset
       * and re-attempt the save of the data from this item onwards to prevent duplicates.
       * @param data Object or array of objects containing data to be stored in the default dataset.
       *   The objects must be serializable to JSON and the JSON representation of each object must be smaller than 9MB.
       */
      async pushData(data) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(data, "data", ow_1.default.object);
        const dispatch = async (payload) => this.client.pushItems(payload);
        const limit = consts_1.MAX_PAYLOAD_SIZE_BYTES - Math.ceil(consts_1.MAX_PAYLOAD_SIZE_BYTES * SAFETY_BUFFER_PERCENT);
        if (!Array.isArray(data)) {
          const payload = checkAndSerialize2(data, limit);
          await dispatch(payload);
          return;
        }
        const payloads = data.map((item, index) => checkAndSerialize2(item, limit, index));
        const chunks = chunkBySize2(payloads, limit);
        for (const chunk2 of chunks) {
          await dispatch(chunk2);
        }
      }
      /**
       * Returns {@link DatasetContent} object holding the items in the dataset based on the provided parameters.
       */
      async getData(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        try {
          return await this.client.listItems(options);
        } catch (e2) {
          const error = e2;
          if (error.message.includes("Cannot create a string longer than")) {
            throw new Error('dataset.getData(): The response is too large for parsing. You can fix this by lowering the "limit" option.');
          }
          throw e2;
        }
      }
      /**
       * Returns all the data from the dataset. This will iterate through the whole dataset
       * via the `listItems()` client method, which gives you only paginated results.
       */
      async export(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        const items = [];
        const fetchNextChunk = async (offset = 0) => {
          const limit = 1e3;
          const value = await this.client.listItems({ offset, limit, ...options });
          if (value.count === 0) {
            return;
          }
          items.push(...value.items);
          if (value.total > offset + value.count) {
            await fetchNextChunk(offset + value.count);
          }
        };
        await fetchNextChunk();
        return items;
      }
      /**
       * Save the entirety of the dataset's contents into one file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the dataset and target KVS name.
       * @param [contentType] Only JSON and CSV are supported currently, defaults to JSON.
       */
      async exportTo(key, options, contentType) {
        const kvStore = await key_value_store_1.KeyValueStore.open(options?.toKVS ?? null, { config: this.config });
        const items = await this.export(options);
        if (contentType === "text/csv") {
          if (items.length === 0) {
            await kvStore.setValue(key, "", { contentType });
            return items;
          }
          const keys = options?.collectAllKeys ? Array.from(new Set(items.flatMap(Object.keys))) : Object.keys(items[0]);
          const value = (0, sync_1.stringify)([
            keys,
            ...items.map((item) => {
              return keys.map((k3) => item[k3]);
            })
          ]);
          await kvStore.setValue(key, value, { contentType });
          return items;
        }
        if (contentType === "application/json") {
          await kvStore.setValue(key, items);
          return items;
        }
        throw new Error(`Unsupported content type: ${contentType}`);
        return items;
      }
      /**
       * Save entire default dataset's contents into one JSON file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the target KVS name.
       */
      async exportToJSON(key, options) {
        await this.exportTo(key, options, "application/json");
      }
      /**
       * Save entire default dataset's contents into one CSV file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the target KVS name.
       */
      async exportToCSV(key, options) {
        await this.exportTo(key, options, "text/csv");
      }
      /**
       * Save entire default dataset's contents into one JSON file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the dataset and target KVS name.
       */
      static async exportToJSON(key, options) {
        (0, access_checking_1.checkStorageAccess)();
        const dataset = await this.open(options?.fromDataset);
        await dataset.exportToJSON(key, options);
      }
      /**
       * Save entire default dataset's contents into one CSV file within a key-value store.
       *
       * @param key The name of the value to save the data in.
       * @param [options] An optional options object where you can provide the dataset and target KVS name.
       */
      static async exportToCSV(key, options) {
        (0, access_checking_1.checkStorageAccess)();
        const dataset = await this.open(options?.fromDataset);
        await dataset.exportToCSV(key, options);
      }
      /**
       * Returns an object containing general information about the dataset.
       *
       * The function returns the same object as the Apify API Client's
       * [getDataset](https://docs.apify.com/api/apify-client-js/latest#ApifyClient-datasets-getDataset)
       * function, which in turn calls the
       * [Get dataset](https://apify.com/docs/api/v2#/reference/datasets/dataset/get-dataset)
       * API endpoint.
       *
       * **Example:**
       * ```
       * {
       *   id: "WkzbQMuFYuamGv3YF",
       *   name: "my-dataset",
       *   userId: "wRsJZtadYvn4mBZmm",
       *   createdAt: new Date("2015-12-12T07:34:14.202Z"),
       *   modifiedAt: new Date("2015-12-13T08:36:13.202Z"),
       *   accessedAt: new Date("2015-12-14T08:36:13.202Z"),
       *   itemCount: 14,
       * }
       * ```
       */
      async getInfo() {
        (0, access_checking_1.checkStorageAccess)();
        return this.client.get();
      }
      /**
       * Iterates over dataset items, yielding each in turn to an `iteratee` function.
       * Each invocation of `iteratee` is called with two arguments: `(item, index)`.
       *
       * If the `iteratee` function returns a Promise then it is awaited before the next call.
       * If it throws an error, the iteration is aborted and the `forEach` function throws the error.
       *
       * **Example usage**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * await dataset.forEach(async (item, index) => {
       *   console.log(`Item at ${index}: ${JSON.stringify(item)}`);
       * });
       * ```
       *
       * @param iteratee A function that is called for every item in the dataset.
       * @param [options] All `forEach()` parameters.
       * @param [index] Specifies the initial index number passed to the `iteratee` function.
       * @default 0
       */
      async forEach(iteratee, options = {}, index = 0) {
        (0, access_checking_1.checkStorageAccess)();
        if (!options.offset)
          options.offset = 0;
        if (options.format && options.format !== "json")
          throw new Error('Dataset.forEach/map/reduce() support only a "json" format.');
        if (!options.limit)
          options.limit = exports2.DATASET_ITERATORS_DEFAULT_LIMIT;
        const { items, total, limit, offset } = await this.getData(options);
        for (const item of items) {
          await iteratee(item, index++);
        }
        const newOffset = offset + limit;
        if (newOffset >= total)
          return;
        const newOpts = { ...options, offset: newOffset };
        await this.forEach(iteratee, newOpts, index);
      }
      /**
       * Produces a new array of values by mapping each value in list through a transformation function `iteratee()`.
       * Each invocation of `iteratee()` is called with two arguments: `(element, index)`.
       *
       * If `iteratee` returns a `Promise` then it's awaited before a next call.
       *
       * @param iteratee
       * @param [options] All `map()` parameters.
       */
      async map(iteratee, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        const result = [];
        await this.forEach(async (item, index) => {
          const res = await iteratee(item, index);
          result.push(res);
        }, options);
        return result;
      }
      async reduce(iteratee, memo, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        let currentMemo = memo;
        const wrappedFunc = async (item, index) => {
          if (index === 0 && currentMemo === void 0) {
            currentMemo = item;
          } else {
            currentMemo = await iteratee(currentMemo, item, index);
          }
        };
        await this.forEach(wrappedFunc, options);
        return currentMemo;
      }
      /**
       * Iterates over dataset items using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * for await (const item of dataset.values()) {
       *   console.log(item);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      values(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        const result = this.client.listItems(options);
        if (!(Symbol.asyncIterator in result)) {
          Object.defineProperty(result, Symbol.asyncIterator, {
            get() {
              throw new Error('Resource client "listItems" method does not return an async iterable.');
            }
          });
        }
        return result;
      }
      /**
       * Iterates over dataset entries (index-value pairs) using an async generator,
       * allowing the use of `for await...of` syntax.
       *
       * **Example usage:**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * for await (const [index, item] of dataset.entries()) {
       *   console.log(`Item at ${index}: ${JSON.stringify(item)}`);
       * }
       * ```
       *
       * @param options Options for the iteration.
       */
      entries(options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        if (!this.client.listEntries) {
          throw new Error('Resource client is missing the "listEntries" method.');
        }
        return this.client.listEntries(options);
      }
      /**
       * Default async iterator for the dataset, iterating over items.
       * Allows using the dataset directly in a `for await...of` loop.
       *
       * **Example usage:**
       * ```javascript
       * const dataset = await Dataset.open('my-results');
       * for await (const item of dataset) {
       *   console.log(item);
       * }
       * ```
       */
      async *[Symbol.asyncIterator]() {
        yield* this.values();
      }
      /**
       * Removes the dataset either from the Apify cloud storage or from the local directory,
       * depending on the mode of operation.
       */
      async drop() {
        (0, access_checking_1.checkStorageAccess)();
        await this.client.delete();
        const manager = storage_manager_1.StorageManager.getManager(_Dataset, this.config);
        manager.closeStorage(this);
      }
      /**
       * Opens a dataset and returns a promise resolving to an instance of the {@link Dataset} class.
       *
       * Datasets are used to store structured data where each object stored has the same attributes,
       * such as online store products or real estate offers.
       * The actual data is stored either on the local filesystem or in the cloud.
       *
       * For more details and code examples, see the {@link Dataset} class.
       *
       * @param [datasetIdOrName]
       *   ID or name of the dataset to be opened. If `null` or `undefined`,
       *   the function returns the default dataset associated with the crawler run.
       * @param [options] Storage manager options.
       */
      static async open(datasetIdOrName, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(datasetIdOrName, ow_1.default.optional.string);
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          config: ow_1.default.optional.object.instanceOf(configuration_1.Configuration),
          storageClient: ow_1.default.optional.object
        }));
        options.config ?? (options.config = configuration_1.Configuration.getGlobalConfig());
        options.storageClient ?? (options.storageClient = options.config.getStorageClient());
        await (0, utils_1.purgeDefaultStorages)({ onlyPurgeOnce: true, client: options.storageClient, config: options.config });
        const manager = storage_manager_1.StorageManager.getManager(this, options.config);
        return manager.openStorage(datasetIdOrName, options.storageClient);
      }
      /**
       * Stores an object or an array of objects to the default {@link Dataset} of the current crawler run.
       *
       * This is just a convenient shortcut for {@link Dataset.pushData}.
       * For example, calling the following code:
       * ```javascript
       * await Dataset.pushData({ myValue: 123 });
       * ```
       *
       * is equivalent to:
       * ```javascript
       * const dataset = await Dataset.open();
       * await dataset.pushData({ myValue: 123 });
       * ```
       *
       * For more information, see {@link Dataset.open} and {@link Dataset.pushData}
       *
       * **IMPORTANT**: Make sure to use the `await` keyword when calling `pushData()`,
       * otherwise the crawler process might finish before the data are stored!
       *
       * @param item Object or array of objects containing data to be stored in the default dataset.
       * The objects must be serializable to JSON and the JSON representation of each object must be smaller than 9MB.
       * @ignore
       */
      static async pushData(item) {
        const dataset = await this.open();
        return dataset.pushData(item);
      }
      /**
       * Returns {@link DatasetContent} object holding the items in the dataset based on the provided parameters.
       */
      static async getData(options = {}) {
        const dataset = await this.open();
        return dataset.getData(options);
      }
    };
    exports2.Dataset = Dataset2;
  }
});
var require_request = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/request.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Request = exports2.RequestState = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_crypto_1 = tslib_1.__importDefault(__require("node:crypto"));
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var utilities_1 = require_cjs4();
    var log_1 = require_log();
    var typedefs_1 = require_typedefs2();
    var log2 = log_1.log.child({ prefix: "Request" });
    var requestOptionalPredicates = {
      id: ow_1.default.optional.string,
      loadedUrl: ow_1.default.optional.string.url,
      uniqueKey: ow_1.default.optional.string,
      method: ow_1.default.optional.string,
      payload: ow_1.default.optional.any(ow_1.default.string, ow_1.default.uint8Array),
      noRetry: ow_1.default.optional.boolean,
      retryCount: ow_1.default.optional.number,
      sessionRotationCount: ow_1.default.optional.number,
      maxRetries: ow_1.default.optional.number,
      errorMessages: ow_1.default.optional.array.ofType(ow_1.default.string),
      headers: ow_1.default.optional.object,
      userData: ow_1.default.optional.object,
      label: ow_1.default.optional.string,
      handledAt: ow_1.default.optional.any(ow_1.default.string.date, ow_1.default.date),
      keepUrlFragment: ow_1.default.optional.boolean,
      useExtendedUniqueKey: ow_1.default.optional.boolean,
      skipNavigation: ow_1.default.optional.boolean,
      crawlDepth: ow_1.default.optional.number.greaterThanOrEqual(0),
      state: ow_1.default.optional.number.greaterThanOrEqual(0).lessThanOrEqual(6)
    };
    var RequestState2;
    (function(RequestState3) {
      RequestState3[RequestState3["UNPROCESSED"] = 0] = "UNPROCESSED";
      RequestState3[RequestState3["BEFORE_NAV"] = 1] = "BEFORE_NAV";
      RequestState3[RequestState3["AFTER_NAV"] = 2] = "AFTER_NAV";
      RequestState3[RequestState3["REQUEST_HANDLER"] = 3] = "REQUEST_HANDLER";
      RequestState3[RequestState3["DONE"] = 4] = "DONE";
      RequestState3[RequestState3["ERROR_HANDLER"] = 5] = "ERROR_HANDLER";
      RequestState3[RequestState3["ERROR"] = 6] = "ERROR";
      RequestState3[RequestState3["SKIPPED"] = 7] = "SKIPPED";
    })(RequestState2 || (exports2.RequestState = RequestState2 = {}));
    var Request3 = class _Request {
      /**
       * `Request` parameters including the URL, HTTP method and headers, and others.
       */
      constructor(options) {
        var _a22;
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "url", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "loadedUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "uniqueKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "method", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "payload", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "noRetry", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "retryCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorMessages", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "headers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_userData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "userData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "handledAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, "RequestOptions", ow_1.default.object);
        (0, ow_1.default)(options.url, "RequestOptions.url", ow_1.default.string);
        (0, typedefs_1.keys)(options).forEach((prop) => {
          if (prop === "url") {
            return;
          }
          const predicate = requestOptionalPredicates[prop];
          const value = options[prop];
          if (predicate) {
            (0, ow_1.default)(value, `RequestOptions.${prop}`, predicate);
          }
        });
        const { id, url: url2, loadedUrl, uniqueKey, payload, noRetry = false, retryCount = 0, sessionRotationCount = 0, maxRetries, errorMessages = [], headers = {}, userData = {}, label, handledAt, keepUrlFragment = false, useExtendedUniqueKey = false, skipNavigation, enqueueStrategy, crawlDepth } = options;
        let { method = "GET" } = options;
        method = method.toUpperCase();
        if (method === "GET" && payload)
          throw new Error("Request with GET method cannot have a payload.");
        this.id = id;
        this.url = url2;
        this.loadedUrl = loadedUrl;
        this.uniqueKey = uniqueKey || _Request.computeUniqueKey({ url: url2, method, payload, keepUrlFragment, useExtendedUniqueKey });
        this.method = method;
        this.payload = payload;
        this.noRetry = noRetry;
        this.retryCount = retryCount;
        this.sessionRotationCount = sessionRotationCount;
        this.errorMessages = [...errorMessages];
        this.headers = { ...headers };
        this.handledAt = handledAt instanceof Date ? handledAt.toISOString() : handledAt;
        if (label) {
          userData.label = label;
        }
        Object.defineProperties(this, {
          _userData: {
            value: { __crawlee: {}, ...userData },
            enumerable: false,
            writable: true
          },
          userData: {
            get: () => this._userData,
            set: (value) => {
              Object.defineProperties(value, {
                __crawlee: {
                  value: this._userData.__crawlee,
                  enumerable: false,
                  writable: true
                },
                toJSON: {
                  value: () => {
                    if (Object.keys(this._userData.__crawlee).length > 0) {
                      return {
                        ...this._userData,
                        __crawlee: this._userData.__crawlee
                      };
                    }
                    return this._userData;
                  },
                  enumerable: false,
                  writable: true
                }
              });
              this._userData = value;
            },
            enumerable: true
          }
        });
        this.userData = userData;
        if (skipNavigation != null)
          this.skipNavigation = skipNavigation;
        if (maxRetries != null)
          this.maxRetries = maxRetries;
        if (crawlDepth != null)
          (_a22 = this.userData.__crawlee).crawlDepth ?? (_a22.crawlDepth = crawlDepth);
        if (enqueueStrategy) {
          this.enqueueStrategy ?? (this.enqueueStrategy = enqueueStrategy);
        }
      }
      /** Tells the crawler processing this request to skip the navigation and process the request directly. */
      get skipNavigation() {
        return this.userData.__crawlee?.skipNavigation ?? false;
      }
      /** Tells the crawler processing this request to skip the navigation and process the request directly. */
      set skipNavigation(value) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { skipNavigation: value };
        } else {
          this.userData.__crawlee.skipNavigation = value;
        }
      }
      /**
       * Depth of the request in the current crawl tree.
       * Note that this is dependent on the crawler setup and might produce unexpected results when used with multiple crawlers.
       */
      get crawlDepth() {
        return this.userData.__crawlee?.crawlDepth ?? 0;
      }
      /**
       * Depth of the request in the current crawl tree.
       * Note that this is dependent on the crawler setup and might produce unexpected results when used with multiple crawlers.
       */
      set crawlDepth(value) {
        var _a22;
        (_a22 = this.userData).__crawlee ?? (_a22.__crawlee = {});
        this.userData.__crawlee.crawlDepth = value;
      }
      /** Indicates the number of times the crawling of the request has rotated the session due to a session or a proxy error. */
      get sessionRotationCount() {
        return this.userData.__crawlee?.sessionRotationCount ?? 0;
      }
      /** Indicates the number of times the crawling of the request has rotated the session due to a session or a proxy error. */
      set sessionRotationCount(value) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { sessionRotationCount: value };
        } else {
          this.userData.__crawlee.sessionRotationCount = value;
        }
      }
      /** shortcut for getting `request.userData.label` */
      get label() {
        return this.userData.label;
      }
      /** shortcut for setting `request.userData.label` */
      set label(value) {
        this.userData.label = value;
      }
      /** Maximum number of retries for this request. Allows to override the global `maxRequestRetries` option of `BasicCrawler`. */
      get maxRetries() {
        return this.userData.__crawlee?.maxRetries;
      }
      /** Maximum number of retries for this request. Allows to override the global `maxRequestRetries` option of `BasicCrawler`. */
      set maxRetries(value) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { maxRetries: value };
        } else {
          this.userData.__crawlee.maxRetries = value;
        }
      }
      /** Describes the request's current lifecycle state. */
      get state() {
        return this.userData.__crawlee?.state ?? RequestState2.UNPROCESSED;
      }
      /** Describes the request's current lifecycle state. */
      set state(value) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { state: value };
        } else {
          this.userData.__crawlee.state = value;
        }
      }
      get enqueueStrategy() {
        return this.userData.__crawlee?.enqueueStrategy;
      }
      set enqueueStrategy(value) {
        if (!this.userData.__crawlee) {
          this.userData.__crawlee = { enqueueStrategy: value };
        } else {
          this.userData.__crawlee.enqueueStrategy = value;
        }
      }
      /**
       * Stores information about an error that occurred during processing of this request.
       *
       * You should always use Error instances when throwing errors in JavaScript.
       *
       * Nevertheless, to improve the debugging experience when using third party libraries
       * that may not always throw an Error instance, the function performs a type
       * inspection of the passed argument and attempts to extract as much information
       * as possible, since just throwing a bad type error makes any debugging rather difficult.
       *
       * @param errorOrMessage Error object or error message to be stored in the request.
       * @param [options]
       */
      pushErrorMessage(errorOrMessage, options = {}) {
        const { omitStack } = options;
        let message;
        const type = typeof errorOrMessage;
        if (type === "object") {
          if (!errorOrMessage) {
            message = "null";
          } else if (errorOrMessage instanceof Error) {
            message = omitStack ? errorOrMessage.message : (
              // .stack includes the message
              errorOrMessage.stack
            );
          } else if (Reflect.has(Object(errorOrMessage), "message")) {
            message = Reflect.get(Object(errorOrMessage), "message");
          } else if (errorOrMessage.toString() !== "[object Object]") {
            message = errorOrMessage.toString();
          } else {
            try {
              message = node_util_1.default.inspect(errorOrMessage);
            } catch (err2) {
              message = "Unable to extract any message from the received object.";
            }
          }
        } else if (type === "undefined") {
          message = "undefined";
        } else {
          message = errorOrMessage.toString();
        }
        this.errorMessages.push(message);
      }
      // TODO: only for better BC, remove in v4
      _computeUniqueKey(options) {
        return _Request.computeUniqueKey(options);
      }
      // TODO: only for better BC, remove in v4
      _hashPayload(payload) {
        return _Request.hashPayload(payload);
      }
      /** @internal */
      static computeUniqueKey({ url: url2, method = "GET", payload, keepUrlFragment = false, useExtendedUniqueKey = false }) {
        const normalizedMethod = method.toUpperCase();
        const normalizedUrl = (0, utilities_1.normalizeUrl)(url2, keepUrlFragment) || url2;
        if (!useExtendedUniqueKey) {
          if (normalizedMethod !== "GET" && payload) {
            log2.deprecated(`We've encountered a ${normalizedMethod} Request with a payload. This is fine. Just letting you know that if your requests point to the same URL and differ only in method and payload, you should see the "useExtendedUniqueKey" option of Request constructor.`);
          }
          return normalizedUrl;
        }
        const payloadHash = payload ? _Request.hashPayload(payload) : "";
        return `${normalizedMethod}(${payloadHash}):${normalizedUrl}`;
      }
      /** @internal */
      static hashPayload(payload) {
        return node_crypto_1.default.createHash("sha256").update(payload).digest("base64").replace(/[+/=]/g, "").substring(0, 8);
      }
    };
    exports2.Request = Request3;
  }
});
var require_Assembler = __commonJS2({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/Assembler.js"(exports2, module2) {
    "use strict";
    var EventEmitter4 = __require("events");
    var startObject = (Ctr) => function() {
      if (this.done) {
        this.done = false;
      } else {
        this.stack.push(this.current, this.key);
      }
      this.current = new Ctr();
      this.key = null;
    };
    var Assembler = class _Assembler extends EventEmitter4 {
      static connectTo(stream5, options) {
        return new _Assembler(options).connectTo(stream5);
      }
      constructor(options) {
        super();
        this.stack = [];
        this.current = this.key = null;
        this.done = true;
        if (options) {
          this.reviver = typeof options.reviver == "function" && options.reviver;
          if (this.reviver) {
            this.stringValue = this._saveValue = this._saveValueWithReviver;
          }
          if (options.numberAsString) {
            this.numberValue = this.stringValue;
          }
        }
      }
      connectTo(stream5) {
        stream5.on("data", (chunk2) => {
          if (this[chunk2.name]) {
            this[chunk2.name](chunk2.value);
            if (this.done) this.emit("done", this);
          }
        });
        return this;
      }
      get depth() {
        return (this.stack.length >> 1) + (this.done ? 0 : 1);
      }
      get path() {
        const path22 = [];
        for (let i22 = 0; i22 < this.stack.length; i22 += 2) {
          const key = this.stack[i22 + 1];
          path22.push(key === null ? this.stack[i22].length : key);
        }
        return path22;
      }
      dropToLevel(level) {
        if (level < this.depth) {
          if (level) {
            const index = level - 1 << 1;
            this.current = this.stack[index];
            this.key = this.stack[index + 1];
            this.stack.splice(index);
          } else {
            this.stack = [];
            this.current = this.key = null;
            this.done = true;
          }
        }
        return this;
      }
      consume(chunk2) {
        this[chunk2.name] && this[chunk2.name](chunk2.value);
        return this;
      }
      keyValue(value) {
        this.key = value;
      }
      //stringValue() - aliased below to _saveValue()
      numberValue(value) {
        this._saveValue(parseFloat(value));
      }
      nullValue() {
        this._saveValue(null);
      }
      trueValue() {
        this._saveValue(true);
      }
      falseValue() {
        this._saveValue(false);
      }
      //startObject() - assigned below
      endObject() {
        if (this.stack.length) {
          const value = this.current;
          this.key = this.stack.pop();
          this.current = this.stack.pop();
          this._saveValue(value);
        } else {
          this.done = true;
        }
      }
      //startArray() - assigned below
      //endArray() - aliased below to endObject()
      _saveValue(value) {
        if (this.done) {
          this.current = value;
        } else {
          if (this.current instanceof Array) {
            this.current.push(value);
          } else {
            this.current[this.key] = value;
            this.key = null;
          }
        }
      }
      _saveValueWithReviver(value) {
        if (this.done) {
          this.current = this.reviver("", value);
        } else {
          if (this.current instanceof Array) {
            value = this.reviver("" + this.current.length, value);
            this.current.push(value);
            if (value === void 0) {
              delete this.current[this.current.length - 1];
            }
          } else {
            value = this.reviver(this.key, value);
            if (value !== void 0) {
              this.current[this.key] = value;
            }
            this.key = null;
          }
        }
      }
    };
    Assembler.prototype.stringValue = Assembler.prototype._saveValue;
    Assembler.prototype.startObject = startObject(Object);
    Assembler.prototype.startArray = startObject(Array);
    Assembler.prototype.endArray = Assembler.prototype.endObject;
    module2.exports = Assembler;
  }
});
var require_StreamBase = __commonJS2({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/streamers/StreamBase.js"(exports2, module2) {
    "use strict";
    var { Transform } = __require("stream");
    var Assembler = require_Assembler();
    var Counter = class {
      constructor(initialDepth) {
        this.depth = initialDepth;
      }
      startObject() {
        ++this.depth;
      }
      endObject() {
        --this.depth;
      }
      startArray() {
        ++this.depth;
      }
      endArray() {
        --this.depth;
      }
    };
    var StreamBase = class extends Transform {
      constructor(options) {
        super(Object.assign({}, options, { writableObjectMode: true, readableObjectMode: true }));
        if (options) {
          this.objectFilter = options.objectFilter;
          this.includeUndecided = options.includeUndecided;
        }
        if (typeof this.objectFilter != "function") {
          this._filter = this._transform;
        }
        this._transform = this._wait || this._filter;
        this._assembler = new Assembler(options);
      }
      _transform(chunk2, encoding, callback) {
        if (this._assembler[chunk2.name]) {
          this._assembler[chunk2.name](chunk2.value);
          if (this._assembler.depth === this._level) {
            this._push();
          }
        }
        callback(null);
      }
      _filter(chunk2, encoding, callback) {
        if (this._assembler[chunk2.name]) {
          this._assembler[chunk2.name](chunk2.value);
          const result = this.objectFilter(this._assembler);
          if (result) {
            if (this._assembler.depth === this._level) {
              this._push();
              this._transform = this._filter;
            }
            this._transform = this._accept;
            return callback(null);
          }
          if (result === false) {
            this._saved_assembler = this._assembler;
            this._assembler = new Counter(this._saved_assembler.depth);
            this._saved_assembler.dropToLevel(this._level);
            if (this._assembler.depth === this._level) {
              this._assembler = this._saved_assembler;
              this._transform = this._filter;
            }
            this._transform = this._reject;
            return callback(null);
          }
          if (this._assembler.depth === this._level) {
            this._push(!this.includeUndecided);
          }
        }
        callback(null);
      }
      _accept(chunk2, encoding, callback) {
        if (this._assembler[chunk2.name]) {
          this._assembler[chunk2.name](chunk2.value);
          if (this._assembler.depth === this._level) {
            this._push();
            this._transform = this._filter;
          }
        }
        callback(null);
      }
      _reject(chunk2, encoding, callback) {
        if (this._assembler[chunk2.name]) {
          this._assembler[chunk2.name](chunk2.value);
          if (this._assembler.depth === this._level) {
            this._assembler = this._saved_assembler;
            this._transform = this._filter;
          }
        }
        callback(null);
      }
    };
    module2.exports = StreamBase;
  }
});
var require_stream_chain = __commonJS2({
  "../../node_modules/.pnpm/stream-chain@2.2.5/node_modules/stream-chain/index.js"(exports2, module2) {
    "use strict";
    var { Readable: Readable3, Writable: Writable2, Duplex: Duplex2, Transform } = __require("stream");
    var none = Symbol.for("object-stream.none");
    var finalSymbol = Symbol.for("object-stream.final");
    var manySymbol = Symbol.for("object-stream.many");
    var final = (value) => ({ [finalSymbol]: value });
    var many2 = (values) => ({ [manySymbol]: values });
    var isFinal = (o22) => o22 && typeof o22 == "object" && finalSymbol in o22;
    var isMany = (o22) => o22 && typeof o22 == "object" && manySymbol in o22;
    var getFinalValue = (o22) => o22[finalSymbol];
    var getManyValues = (o22) => o22[manySymbol];
    var runAsyncGenerator = async (gen, stream5) => {
      for (; ; ) {
        let data = gen.next();
        if (data && typeof data.then == "function") {
          data = await data;
        }
        if (data.done) break;
        let value = data.value;
        if (value && typeof value.then == "function") {
          value = await value;
        }
        Chain.sanitize(value, stream5);
      }
    };
    var wrapFunction = (fn3) => new Transform({
      writableObjectMode: true,
      readableObjectMode: true,
      transform(chunk2, encoding, callback) {
        try {
          const result = fn3.call(this, chunk2, encoding);
          if (result && typeof result.then == "function") {
            result.then(
              (result2) => (Chain.sanitize(result2, this), callback(null)),
              (error) => callback(error)
            );
            return;
          }
          if (result && typeof result.next == "function") {
            runAsyncGenerator(result, this).then(
              () => callback(null),
              (error) => callback(error)
            );
            return;
          }
          Chain.sanitize(result, this);
          callback(null);
        } catch (error) {
          callback(error);
        }
      }
    });
    var wrapArray = (fns) => new Transform({
      writableObjectMode: true,
      readableObjectMode: true,
      transform(chunk2, encoding, callback) {
        try {
          let value = chunk2;
          for (let i22 = 0; i22 < fns.length; ++i22) {
            const result = fns[i22].call(this, value, encoding);
            if (result === Chain.none) {
              callback(null);
              return;
            }
            if (Chain.isFinal(result)) {
              value = Chain.getFinalValue(result);
              break;
            }
            value = result;
          }
          Chain.sanitize(value, this);
          callback(null);
        } catch (error) {
          callback(error);
        }
      }
    });
    var isReadableNodeStream = (obj) => obj && typeof obj.pipe === "function" && typeof obj.on === "function" && (!obj._writableState || (typeof obj._readableState === "object" ? obj._readableState.readable : null) !== false) && // Duplex
    (!obj._writableState || obj._readableState);
    var isWritableNodeStream = (obj) => obj && typeof obj.write === "function" && typeof obj.on === "function" && (!obj._readableState || (typeof obj._writableState === "object" ? obj._writableState.writable : null) !== false);
    var isDuplexNodeStream = (obj) => obj && typeof obj.pipe === "function" && obj._readableState && typeof obj.on === "function" && typeof obj.write === "function";
    var Chain = class _Chain extends Duplex2 {
      constructor(fns, options) {
        super(options || { writableObjectMode: true, readableObjectMode: true });
        if (!(fns instanceof Array) || !fns.length) {
          throw Error("Chain's argument should be a non-empty array.");
        }
        this.streams = fns.filter((fn3) => fn3).map((fn3, index, fns2) => {
          if (typeof fn3 === "function" || fn3 instanceof Array) return _Chain.convertToTransform(fn3);
          if (isDuplexNodeStream(fn3) || !index && isReadableNodeStream(fn3) || index === fns2.length - 1 && isWritableNodeStream(fn3)) {
            return fn3;
          }
          throw Error("Arguments should be functions, arrays or streams.");
        }).filter((s2) => s2);
        this.input = this.streams[0];
        this.output = this.streams.reduce((output, stream5) => output && output.pipe(stream5) || stream5);
        if (!isWritableNodeStream(this.input)) {
          this._write = (_1, _22, callback) => callback(null);
          this._final = (callback) => callback(null);
          this.input.on("end", () => this.end());
        }
        if (isReadableNodeStream(this.output)) {
          this.output.on("data", (chunk2) => !this.push(chunk2) && this.output.pause());
          this.output.on("end", () => this.push(null));
        } else {
          this._read = () => {
          };
          this.resume();
          this.output.on("finish", () => this.push(null));
        }
        if (!options || !options.skipEvents) {
          this.streams.forEach((stream5) => stream5.on("error", (error) => this.emit("error", error)));
        }
      }
      _write(chunk2, encoding, callback) {
        let error = null;
        try {
          this.input.write(chunk2, encoding, (e2) => callback(e2 || error));
        } catch (e2) {
          error = e2;
        }
      }
      _final(callback) {
        let error = null;
        try {
          this.input.end(null, null, (e2) => callback(e2 || error));
        } catch (e2) {
          error = e2;
        }
      }
      _read() {
        this.output.resume();
      }
      static make(fns, options) {
        return new _Chain(fns, options);
      }
      static sanitize(result, stream5) {
        if (_Chain.isFinal(result)) {
          result = _Chain.getFinalValue(result);
        } else if (_Chain.isMany(result)) {
          result = _Chain.getManyValues(result);
        }
        if (result !== void 0 && result !== null && result !== _Chain.none) {
          if (result instanceof Array) {
            result.forEach((value) => value !== void 0 && value !== null && stream5.push(value));
          } else {
            stream5.push(result);
          }
        }
      }
      static convertToTransform(fn3) {
        if (typeof fn3 === "function") return wrapFunction(fn3);
        if (fn3 instanceof Array) return fn3.length ? wrapArray(fn3) : null;
        return null;
      }
    };
    Chain.none = none;
    Chain.final = final;
    Chain.isFinal = isFinal;
    Chain.getFinalValue = getFinalValue;
    Chain.many = many2;
    Chain.isMany = isMany;
    Chain.getManyValues = getManyValues;
    Chain.chain = Chain.make;
    Chain.make.Constructor = Chain;
    module2.exports = Chain;
  }
});
var require_Utf8Stream = __commonJS2({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/utils/Utf8Stream.js"(exports2, module2) {
    "use strict";
    var { Transform } = __require("stream");
    var { StringDecoder } = __require("string_decoder");
    var Utf8Stream = class extends Transform {
      constructor(options) {
        super(Object.assign({}, options, { writableObjectMode: false }));
        this._buffer = "";
      }
      _transform(chunk2, encoding, callback) {
        if (typeof chunk2 == "string") {
          this._transform = this._transformString;
        } else {
          this._stringDecoder = new StringDecoder();
          this._transform = this._transformBuffer;
        }
        this._transform(chunk2, encoding, callback);
      }
      _transformBuffer(chunk2, _3, callback) {
        this._buffer += this._stringDecoder.write(chunk2);
        this._processBuffer(callback);
      }
      _transformString(chunk2, _3, callback) {
        this._buffer += chunk2.toString();
        this._processBuffer(callback);
      }
      _processBuffer(callback) {
        if (this._buffer) {
          this.push(this._buffer, "utf8");
          this._buffer = "";
        }
        callback(null);
      }
      _flushInput() {
        if (this._stringDecoder) {
          this._buffer += this._stringDecoder.end();
        }
      }
      _flush(callback) {
        this._flushInput();
        this._processBuffer(callback);
      }
    };
    module2.exports = Utf8Stream;
  }
});
var require_Parser2 = __commonJS2({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/Parser.js"(exports2, module2) {
    "use strict";
    var Utf8Stream = require_Utf8Stream();
    var patterns = {
      value1: /^(?:[\"\{\[\]\-\d]|true\b|false\b|null\b|\s{1,256})/,
      string: /^(?:[^\x00-\x1f\"\\]{1,256}|\\[bfnrt\"\\\/]|\\u[\da-fA-F]{4}|\")/,
      key1: /^(?:[\"\}]|\s{1,256})/,
      colon: /^(?:\:|\s{1,256})/,
      comma: /^(?:[\,\]\}]|\s{1,256})/,
      ws: /^\s{1,256}/,
      numberStart: /^\d/,
      numberDigit: /^\d{0,256}/,
      numberFraction: /^[\.eE]/,
      numberExponent: /^[eE]/,
      numberExpSign: /^[-+]/
    };
    var MAX_PATTERN_SIZE = 16;
    var noSticky = true;
    try {
      new RegExp(".", "y");
      noSticky = false;
    } catch (e2) {
    }
    !noSticky && Object.keys(patterns).forEach((key) => {
      let src = patterns[key].source.slice(1);
      if (src.slice(0, 3) === "(?:" && src.slice(-1) === ")") {
        src = src.slice(3, -1);
      }
      patterns[key] = new RegExp(src, "y");
    });
    patterns.numberFracStart = patterns.numberExpStart = patterns.numberStart;
    patterns.numberFracDigit = patterns.numberExpDigit = patterns.numberDigit;
    var values = { true: true, false: false, null: null };
    var expected = { object: "objectStop", array: "arrayStop", "": "done" };
    var fromHex = (s2) => String.fromCharCode(parseInt(s2.slice(2), 16));
    var codes = { b: "\b", f: "\f", n: "\n", r: "\r", t: "	", '"': '"', "\\": "\\", "/": "/" };
    var Parser2 = class _Parser extends Utf8Stream {
      static make(options) {
        return new _Parser(options);
      }
      constructor(options) {
        super(Object.assign({}, options, { readableObjectMode: true }));
        this._packKeys = this._packStrings = this._packNumbers = this._streamKeys = this._streamStrings = this._streamNumbers = true;
        if (options) {
          "packValues" in options && (this._packKeys = this._packStrings = this._packNumbers = options.packValues);
          "packKeys" in options && (this._packKeys = options.packKeys);
          "packStrings" in options && (this._packStrings = options.packStrings);
          "packNumbers" in options && (this._packNumbers = options.packNumbers);
          "streamValues" in options && (this._streamKeys = this._streamStrings = this._streamNumbers = options.streamValues);
          "streamKeys" in options && (this._streamKeys = options.streamKeys);
          "streamStrings" in options && (this._streamStrings = options.streamStrings);
          "streamNumbers" in options && (this._streamNumbers = options.streamNumbers);
          this._jsonStreaming = options.jsonStreaming;
        }
        !this._packKeys && (this._streamKeys = true);
        !this._packStrings && (this._streamStrings = true);
        !this._packNumbers && (this._streamNumbers = true);
        this._done = false;
        this._expect = this._jsonStreaming ? "done" : "value";
        this._stack = [];
        this._parent = "";
        this._open_number = false;
        this._accumulator = "";
      }
      _flush(callback) {
        this._done = true;
        super._flush((error) => {
          if (error) return callback(error);
          if (this._open_number) {
            if (this._streamNumbers) {
              this.push({ name: "endNumber" });
            }
            this._open_number = false;
            if (this._packNumbers) {
              this.push({ name: "numberValue", value: this._accumulator });
              this._accumulator = "";
            }
          }
          callback(null);
        });
      }
      _processBuffer(callback) {
        let match, value, index = 0;
        main: for (; ; ) {
          switch (this._expect) {
            case "value1":
            case "value":
              patterns.value1.lastIndex = index;
              match = patterns.value1.exec(this._buffer);
              if (!match) {
                if (this._done || index + MAX_PATTERN_SIZE < this._buffer.length) {
                  if (index < this._buffer.length) return callback(new Error("Parser cannot parse input: expected a value"));
                  return callback(new Error("Parser has expected a value"));
                }
                break main;
              }
              value = match[0];
              switch (value) {
                case '"':
                  this._streamStrings && this.push({ name: "startString" });
                  this._expect = "string";
                  break;
                case "{":
                  this.push({ name: "startObject" });
                  this._stack.push(this._parent);
                  this._parent = "object";
                  this._expect = "key1";
                  break;
                case "[":
                  this.push({ name: "startArray" });
                  this._stack.push(this._parent);
                  this._parent = "array";
                  this._expect = "value1";
                  break;
                case "]":
                  if (this._expect !== "value1") return callback(new Error("Parser cannot parse input: unexpected token ']'"));
                  if (this._open_number) {
                    this._streamNumbers && this.push({ name: "endNumber" });
                    this._open_number = false;
                    if (this._packNumbers) {
                      this.push({ name: "numberValue", value: this._accumulator });
                      this._accumulator = "";
                    }
                  }
                  this.push({ name: "endArray" });
                  this._parent = this._stack.pop();
                  this._expect = expected[this._parent];
                  break;
                case "-":
                  this._open_number = true;
                  if (this._streamNumbers) {
                    this.push({ name: "startNumber" });
                    this.push({ name: "numberChunk", value: "-" });
                  }
                  this._packNumbers && (this._accumulator = "-");
                  this._expect = "numberStart";
                  break;
                case "0":
                  this._open_number = true;
                  if (this._streamNumbers) {
                    this.push({ name: "startNumber" });
                    this.push({ name: "numberChunk", value: "0" });
                  }
                  this._packNumbers && (this._accumulator = "0");
                  this._expect = "numberFraction";
                  break;
                case "1":
                case "2":
                case "3":
                case "4":
                case "5":
                case "6":
                case "7":
                case "8":
                case "9":
                  this._open_number = true;
                  if (this._streamNumbers) {
                    this.push({ name: "startNumber" });
                    this.push({ name: "numberChunk", value });
                  }
                  this._packNumbers && (this._accumulator = value);
                  this._expect = "numberDigit";
                  break;
                case "true":
                case "false":
                case "null":
                  if (this._buffer.length - index === value.length && !this._done) break main;
                  this.push({ name: value + "Value", value: values[value] });
                  this._expect = expected[this._parent];
                  break;
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "keyVal":
            case "string":
              patterns.string.lastIndex = index;
              match = patterns.string.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length && (this._done || this._buffer.length - index >= 6))
                  return callback(new Error("Parser cannot parse input: escaped characters"));
                if (this._done) return callback(new Error("Parser has expected a string value"));
                break main;
              }
              value = match[0];
              if (value === '"') {
                if (this._expect === "keyVal") {
                  this._streamKeys && this.push({ name: "endKey" });
                  if (this._packKeys) {
                    this.push({ name: "keyValue", value: this._accumulator });
                    this._accumulator = "";
                  }
                  this._expect = "colon";
                } else {
                  this._streamStrings && this.push({ name: "endString" });
                  if (this._packStrings) {
                    this.push({ name: "stringValue", value: this._accumulator });
                    this._accumulator = "";
                  }
                  this._expect = expected[this._parent];
                }
              } else if (value.length > 1 && value.charAt(0) === "\\") {
                const t9 = value.length == 2 ? codes[value.charAt(1)] : fromHex(value);
                if (this._expect === "keyVal" ? this._streamKeys : this._streamStrings) {
                  this.push({ name: "stringChunk", value: t9 });
                }
                if (this._expect === "keyVal" ? this._packKeys : this._packStrings) {
                  this._accumulator += t9;
                }
              } else {
                if (this._expect === "keyVal" ? this._streamKeys : this._streamStrings) {
                  this.push({ name: "stringChunk", value });
                }
                if (this._expect === "keyVal" ? this._packKeys : this._packStrings) {
                  this._accumulator += value;
                }
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "key1":
            case "key":
              patterns.key1.lastIndex = index;
              match = patterns.key1.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected an object key"));
                break main;
              }
              value = match[0];
              if (value === '"') {
                this._streamKeys && this.push({ name: "startKey" });
                this._expect = "keyVal";
              } else if (value === "}") {
                if (this._expect !== "key1") return callback(new Error("Parser cannot parse input: unexpected token '}'"));
                this.push({ name: "endObject" });
                this._parent = this._stack.pop();
                this._expect = expected[this._parent];
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "colon":
              patterns.colon.lastIndex = index;
              match = patterns.colon.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected ':'"));
                break main;
              }
              value = match[0];
              value === ":" && (this._expect = "value");
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "arrayStop":
            case "objectStop":
              patterns.comma.lastIndex = index;
              match = patterns.comma.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected ','"));
                break main;
              }
              if (this._open_number) {
                this._streamNumbers && this.push({ name: "endNumber" });
                this._open_number = false;
                if (this._packNumbers) {
                  this.push({ name: "numberValue", value: this._accumulator });
                  this._accumulator = "";
                }
              }
              value = match[0];
              if (value === ",") {
                this._expect = this._expect === "arrayStop" ? "value" : "key";
              } else if (value === "}" || value === "]") {
                if (value === "}" ? this._expect === "arrayStop" : this._expect !== "arrayStop") {
                  return callback(new Error("Parser cannot parse input: expected '" + (this._expect === "arrayStop" ? "]" : "}") + "'"));
                }
                this.push({ name: value === "}" ? "endObject" : "endArray" });
                this._parent = this._stack.pop();
                this._expect = expected[this._parent];
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            // number chunks
            case "numberStart":
              patterns.numberStart.lastIndex = index;
              match = patterns.numberStart.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected a starting digit"));
                break main;
              }
              value = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value });
              this._packNumbers && (this._accumulator += value);
              this._expect = value === "0" ? "numberFraction" : "numberDigit";
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "numberDigit":
              patterns.numberDigit.lastIndex = index;
              match = patterns.numberDigit.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected a digit"));
                break main;
              }
              value = match[0];
              if (value) {
                this._streamNumbers && this.push({ name: "numberChunk", value });
                this._packNumbers && (this._accumulator += value);
                if (noSticky) {
                  this._buffer = this._buffer.slice(value.length);
                } else {
                  index += value.length;
                }
              } else {
                if (index < this._buffer.length) {
                  this._expect = "numberFraction";
                  break;
                }
                if (this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              break;
            case "numberFraction":
              patterns.numberFraction.lastIndex = index;
              match = patterns.numberFraction.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              value = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value });
              this._packNumbers && (this._accumulator += value);
              this._expect = value === "." ? "numberFracStart" : "numberExpSign";
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "numberFracStart":
              patterns.numberFracStart.lastIndex = index;
              match = patterns.numberFracStart.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected a fractional part of a number"));
                break main;
              }
              value = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value });
              this._packNumbers && (this._accumulator += value);
              this._expect = "numberFracDigit";
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "numberFracDigit":
              patterns.numberFracDigit.lastIndex = index;
              match = patterns.numberFracDigit.exec(this._buffer);
              value = match[0];
              if (value) {
                this._streamNumbers && this.push({ name: "numberChunk", value });
                this._packNumbers && (this._accumulator += value);
                if (noSticky) {
                  this._buffer = this._buffer.slice(value.length);
                } else {
                  index += value.length;
                }
              } else {
                if (index < this._buffer.length) {
                  this._expect = "numberExponent";
                  break;
                }
                if (this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              break;
            case "numberExponent":
              patterns.numberExponent.lastIndex = index;
              match = patterns.numberExponent.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length) {
                  this._expect = expected[this._parent];
                  break;
                }
                if (this._done) {
                  this._expect = "done";
                  break;
                }
                break main;
              }
              value = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value });
              this._packNumbers && (this._accumulator += value);
              this._expect = "numberExpSign";
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "numberExpSign":
              patterns.numberExpSign.lastIndex = index;
              match = patterns.numberExpSign.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length) {
                  this._expect = "numberExpStart";
                  break;
                }
                if (this._done) return callback(new Error("Parser has expected an exponent value of a number"));
                break main;
              }
              value = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value });
              this._packNumbers && (this._accumulator += value);
              this._expect = "numberExpStart";
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "numberExpStart":
              patterns.numberExpStart.lastIndex = index;
              match = patterns.numberExpStart.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length || this._done) return callback(new Error("Parser cannot parse input: expected an exponent part of a number"));
                break main;
              }
              value = match[0];
              this._streamNumbers && this.push({ name: "numberChunk", value });
              this._packNumbers && (this._accumulator += value);
              this._expect = "numberExpDigit";
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
            case "numberExpDigit":
              patterns.numberExpDigit.lastIndex = index;
              match = patterns.numberExpDigit.exec(this._buffer);
              value = match[0];
              if (value) {
                this._streamNumbers && this.push({ name: "numberChunk", value });
                this._packNumbers && (this._accumulator += value);
                if (noSticky) {
                  this._buffer = this._buffer.slice(value.length);
                } else {
                  index += value.length;
                }
              } else {
                if (index < this._buffer.length || this._done) {
                  this._expect = expected[this._parent];
                  break;
                }
                break main;
              }
              break;
            case "done":
              patterns.ws.lastIndex = index;
              match = patterns.ws.exec(this._buffer);
              if (!match) {
                if (index < this._buffer.length) {
                  if (this._jsonStreaming) {
                    this._expect = "value";
                    break;
                  }
                  return callback(new Error("Parser cannot parse input: unexpected characters"));
                }
                break main;
              }
              value = match[0];
              if (this._open_number) {
                this._streamNumbers && this.push({ name: "endNumber" });
                this._open_number = false;
                if (this._packNumbers) {
                  this.push({ name: "numberValue", value: this._accumulator });
                  this._accumulator = "";
                }
              }
              if (noSticky) {
                this._buffer = this._buffer.slice(value.length);
              } else {
                index += value.length;
              }
              break;
          }
        }
        !noSticky && (this._buffer = this._buffer.slice(index));
        callback(null);
      }
    };
    Parser2.parser = Parser2.make;
    Parser2.make.Constructor = Parser2;
    module2.exports = Parser2;
  }
});
var require_withParser = __commonJS2({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/utils/withParser.js"(exports2, module2) {
    "use strict";
    var { chain: chain2 } = require_stream_chain();
    var Parser2 = require_Parser2();
    var withParser = (fn3, options) => chain2([new Parser2(options), fn3(options)], Object.assign({}, options, { writableObjectMode: false, readableObjectMode: true }));
    module2.exports = withParser;
  }
});
var require_StreamArray = __commonJS2({
  "../../node_modules/.pnpm/stream-json@1.9.1/node_modules/stream-json/streamers/StreamArray.js"(exports2, module2) {
    "use strict";
    var StreamBase = require_StreamBase();
    var withParser = require_withParser();
    var StreamArray = class _StreamArray extends StreamBase {
      static make(options) {
        return new _StreamArray(options);
      }
      static withParser(options) {
        return withParser(_StreamArray.make, options);
      }
      constructor(options) {
        super(options);
        this._level = 1;
        this._counter = 0;
      }
      _wait(chunk2, _3, callback) {
        if (chunk2.name !== "startArray") {
          return callback(new Error("Top-level object should be an array."));
        }
        this._transform = this._filter;
        return this._transform(chunk2, _3, callback);
      }
      _push(discard) {
        if (this._assembler.current.length) {
          if (discard) {
            ++this._counter;
            this._assembler.current.pop();
          } else {
            this.push({ key: this._counter++, value: this._assembler.current.pop() });
          }
        }
      }
    };
    StreamArray.streamArray = StreamArray.make;
    StreamArray.make.Constructor = StreamArray;
    module2.exports = StreamArray;
  }
});
var require_serialization = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/serialization.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.serializeArray = serializeArray2;
    exports2.deserializeArray = deserializeArray2;
    exports2.createDeserialize = createDeserialize2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_stream_1 = __require("node:stream");
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var node_zlib_1 = tslib_1.__importDefault(__require("node:zlib"));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var StreamArray_1 = tslib_1.__importDefault(require_StreamArray());
    var pipeline2 = node_util_1.default.promisify(node_stream_1.pipeline);
    var ArrayToJson = class extends node_stream_1.Readable {
      constructor(data, options = {}) {
        super({
          ...options,
          autoDestroy: true,
          emitClose: true
        });
        Object.defineProperty(this, "data", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: data
        });
        Object.defineProperty(this, "offset", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "batchSize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { batchSize = 1e4 } = options;
        this.batchSize = batchSize;
        this.data = data;
        this.push("[");
      }
      _read() {
        try {
          const items = this.data.slice(this.offset, this.offset + this.batchSize);
          if (items.length) {
            const json = JSON.stringify(items);
            const itemString = json.substring(1, json.length - 1);
            if (this.offset > 0)
              this.push(",", "utf8");
            this.push(itemString, "utf8");
            this.offset += this.batchSize;
          } else {
            this.push("]");
            this.push(null);
          }
        } catch (err2) {
          this.emit("error", err2);
        }
      }
    };
    async function serializeArray2(data) {
      (0, ow_1.default)(data, ow_1.default.array);
      const { chunks, collector } = createChunkCollector();
      await pipeline2(new ArrayToJson(data), node_zlib_1.default.createGzip(), collector);
      return Buffer.concat(chunks);
    }
    async function deserializeArray2(compressedData) {
      (0, ow_1.default)(compressedData, ow_1.default.uint8Array);
      const { chunks, collector } = createChunkCollector({ fromValuesStream: true });
      await pipeline2(node_stream_1.Readable.from([compressedData]), node_zlib_1.default.createGunzip(), StreamArray_1.default.withParser(), collector);
      return chunks;
    }
    function createDeserialize2(compressedData) {
      (0, ow_1.default)(compressedData, ow_1.default.uint8Array);
      const streamArray = StreamArray_1.default.withParser();
      const destination = pluckValue(streamArray);
      (0, node_stream_1.pipeline)(
        node_stream_1.Readable.from([compressedData]),
        node_zlib_1.default.createGunzip(),
        destination,
        // @ts-expect-error Something's wrong here, the types are wrong but tests fail if we correct the code to make them right
        (err2) => destination.emit(err2)
      );
      return destination;
    }
    function createChunkCollector(options = {}) {
      const { fromValuesStream = false } = options;
      const chunks = [];
      const collector = new node_stream_1.Writable({
        decodeStrings: false,
        objectMode: fromValuesStream,
        write(chunk2, _nil, callback) {
          chunks.push(fromValuesStream ? chunk2.value : chunk2);
          callback();
        },
        writev(chunkObjects, callback) {
          const buffers = chunkObjects.map(({ chunk: chunk2 }) => {
            return fromValuesStream ? chunk2.value : chunk2;
          });
          chunkObjects.push(...buffers);
          callback();
        }
      });
      return { collector, chunks };
    }
    function pluckValue(streamArray) {
      const realPush = streamArray.push.bind(streamArray);
      streamArray.push = (obj) => realPush(obj && obj.value);
      return streamArray;
    }
  }
});
var require_request_list = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_list.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestList = exports2.REQUESTS_PERSISTENCE_KEY = exports2.STATE_PERSISTENCE_KEY = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importStar(require_dist2());
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var request_1 = require_request();
    var serialization_1 = require_serialization();
    var key_value_store_1 = require_key_value_store3();
    var utils_2 = require_utils10();
    exports2.STATE_PERSISTENCE_KEY = "REQUEST_LIST_STATE";
    exports2.REQUESTS_PERSISTENCE_KEY = "REQUEST_LIST_REQUESTS";
    var CONTENT_TYPE_BINARY = "application/octet-stream";
    var RequestList2 = class _RequestList {
      /**
       * To create new instance of `RequestList` we need to use `RequestList.open()` factory method.
       * @param options All `RequestList` configuration options
       * @internal
       */
      constructor(options = {}) {
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.log.child({ prefix: "RequestList" })
        });
        Object.defineProperty(this, "requests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "nextIndex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "uniqueKeyToIndex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "inProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "reclaimed", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "isStatePersisted", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: true
        });
        Object.defineProperty(this, "areRequestsPersisted", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "isLoading", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "isInitialized", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistRequestsKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "initialState", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "store", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keepDuplicateUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sources", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sourcesFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyConfiguration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        const { sources, sourcesFunction, persistStateKey, persistRequestsKey, state, proxyConfiguration, keepDuplicateUrls = false, config = configuration_1.Configuration.getGlobalConfig() } = options;
        if (!(sources || sourcesFunction)) {
          throw new ow_1.ArgumentError('At least one of "sources" or "sourcesFunction" must be provided.', this.constructor);
        }
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          sources: ow_1.default.optional.array,
          // check only for array and not subtypes to avoid iteration over the whole thing
          sourcesFunction: ow_1.default.optional.function,
          persistStateKey: ow_1.default.optional.string,
          persistRequestsKey: ow_1.default.optional.string,
          state: ow_1.default.optional.object.exactShape({
            nextIndex: ow_1.default.number,
            nextUniqueKey: ow_1.default.string,
            inProgress: ow_1.default.object
          }),
          keepDuplicateUrls: ow_1.default.optional.boolean,
          proxyConfiguration: ow_1.default.optional.object
        }));
        this.persistStateKey = persistStateKey ? `SDK_${persistStateKey}` : persistStateKey;
        this.persistRequestsKey = persistRequestsKey ? `SDK_${persistRequestsKey}` : persistRequestsKey;
        this.initialState = state;
        this.events = config.getEventManager();
        this.keepDuplicateUrls = keepDuplicateUrls;
        this.sources = sources ? [...sources] : [];
        this.sourcesFunction = sourcesFunction;
        this.proxyConfiguration = proxyConfiguration;
      }
      /**
       * Loads all remote sources of URLs and potentially starts periodic state persistence.
       * This function must be called before you can start using the instance in a meaningful way.
       */
      async initialize() {
        if (this.isLoading) {
          throw new Error("RequestList sources are already loading or were loaded.");
        }
        this.isLoading = true;
        await (0, utils_2.purgeDefaultStorages)({ onlyPurgeOnce: true });
        const [state, persistedRequests] = await this._loadStateAndPersistedRequests();
        if (persistedRequests) {
          await this._addPersistedRequests(persistedRequests);
        } else {
          await this._addRequestsFromSources();
        }
        this._restoreState(state);
        this.isInitialized = true;
        if (this.persistRequestsKey && !this.areRequestsPersisted)
          await this._persistRequests();
        if (this.persistStateKey) {
          this.events.on("persistState", this.persistState.bind(this));
        }
        return this;
      }
      /**
       * Adds previously persisted Requests, as retrieved from the key-value store.
       * This needs to be done in a memory efficient way. We should update the input
       * to a Stream once apify-client supports streams.
       */
      async _addPersistedRequests(persistedRequests) {
        for (let i22 = 0; i22 < this.sources.length; i22++) {
          delete this.sources[i22];
        }
        this.sources = [];
        this.areRequestsPersisted = true;
        const requestStream = (0, serialization_1.createDeserialize)(persistedRequests);
        for await (const request of requestStream) {
          this._addRequest(request);
        }
      }
      /**
       * Add Requests from both options.sources and options.sourcesFunction.
       * This function is called only when persisted sources were not loaded.
       * We need to avoid keeping both sources and requests in memory
       * to reduce memory footprint with very large sources.
       */
      async _addRequestsFromSources() {
        const sourcesCount = this.sources.length;
        for (let i22 = 0; i22 < sourcesCount; i22++) {
          const source = this.sources[i22];
          delete this.sources[i22];
          if (typeof source === "object" && source.requestsFromUrl) {
            const fetchedRequests = await this._fetchRequestsFromUrl(source);
            await this._addFetchedRequests(source, fetchedRequests);
          } else {
            this._addRequest(source);
          }
        }
        this.sources = [];
        if (this.sourcesFunction) {
          try {
            const sourcesFromFunction = await this.sourcesFunction();
            const sourcesFromFunctionCount = sourcesFromFunction.length;
            for (let i22 = 0; i22 < sourcesFromFunctionCount; i22++) {
              const source = sourcesFromFunction.shift();
              this._addRequest(source);
            }
          } catch (e2) {
            const err2 = e2;
            throw new Error(`Loading requests with sourcesFunction failed.
Cause: ${err2.message}`);
          }
        }
      }
      /**
       * @inheritDoc
       */
      async persistState() {
        if (!this.persistStateKey) {
          throw new Error("Cannot persist state. options.persistStateKey is not set.");
        }
        if (this.isStatePersisted)
          return;
        try {
          this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
          await this.store.setValue(this.persistStateKey, this.getState());
          this.isStatePersisted = true;
        } catch (e2) {
          const err2 = e2;
          this.log.exception(err2, "Attempted to persist state, but failed.");
        }
      }
      /**
       * Unlike persistState(), this is used only internally, since the sources
       * are automatically persisted at RequestList initialization (if the persistRequestsKey is set),
       * but there's no reason to persist it again afterwards, because RequestList is immutable.
       */
      async _persistRequests() {
        const serializedRequests = await (0, serialization_1.serializeArray)(this.requests);
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        await this.store.setValue(this.persistRequestsKey, serializedRequests, { contentType: CONTENT_TYPE_BINARY });
        this.areRequestsPersisted = true;
      }
      /**
       * Restores RequestList state from a state object.
       */
      _restoreState(state) {
        if (!state)
          return;
        if (typeof state.nextIndex !== "number" || state.nextIndex < 0) {
          throw new Error("The state object is invalid: nextIndex must be a non-negative number.");
        }
        if (state.nextIndex > this.requests.length) {
          throw new Error("The state object is not consistent with RequestList, too few requests loaded.");
        }
        if (state.nextIndex < this.requests.length && this.requests[state.nextIndex].uniqueKey !== state.nextUniqueKey) {
          throw new Error("The state object is not consistent with RequestList the order of URLs seems to have changed.");
        }
        const deleteFromInProgress = [];
        state.inProgress.forEach((uniqueKey) => {
          const index = this.uniqueKeyToIndex[uniqueKey];
          if (typeof index !== "number") {
            throw new Error("The state object is not consistent with RequestList. Unknown uniqueKey is present in the state.");
          }
          if (index >= state.nextIndex) {
            deleteFromInProgress.push(uniqueKey);
          }
        });
        this.nextIndex = state.nextIndex;
        this.inProgress = new Set(state.inProgress);
        if (deleteFromInProgress.length) {
          this.log.warning("RequestList's in-progress field is not consistent, skipping invalid in-progress entries", {
            deleteFromInProgress
          });
          for (const uniqueKey of deleteFromInProgress) {
            this.inProgress.delete(uniqueKey);
          }
        }
        this.reclaimed = new Set(this.inProgress);
      }
      /**
       * Attempts to load state and requests using the `RequestList` configuration
       * and returns a tuple of [state, requests] where each may be null if not loaded.
       */
      async _loadStateAndPersistedRequests() {
        let state;
        let persistedRequests;
        if (this.initialState) {
          state = this.initialState;
          this.log.debug("Loaded state from options.state argument.");
        } else if (this.persistStateKey) {
          state = await this._getPersistedState(this.persistStateKey);
          if (state)
            this.log.debug("Loaded state from key value store using the persistStateKey.");
        }
        if (this.persistRequestsKey) {
          persistedRequests = await this._getPersistedState(this.persistRequestsKey);
          if (persistedRequests)
            this.log.debug("Loaded requests from key value store using the persistRequestsKey.");
        }
        return [state, persistedRequests];
      }
      /**
       * Returns an object representing the internal state of the `RequestList` instance.
       * Note that the object's fields can change in future releases.
       */
      getState() {
        this._ensureIsInitialized();
        return {
          nextIndex: this.nextIndex,
          nextUniqueKey: this.nextIndex < this.requests.length ? this.requests[this.nextIndex].uniqueKey : null,
          inProgress: [...this.inProgress]
        };
      }
      /**
       * @inheritDoc
       */
      async isEmpty() {
        this._ensureIsInitialized();
        return this.reclaimed.size === 0 && this.nextIndex >= this.requests.length;
      }
      /**
       * @inheritDoc
       */
      async isFinished() {
        this._ensureIsInitialized();
        return this.inProgress.size === 0 && this.nextIndex >= this.requests.length;
      }
      /**
       * @inheritDoc
       */
      async fetchNextRequest() {
        this._ensureIsInitialized();
        const uniqueKey = this.reclaimed.values().next().value;
        if (uniqueKey) {
          this.reclaimed.delete(uniqueKey);
          const index = this.uniqueKeyToIndex[uniqueKey];
          return this.ensureRequest(this.requests[index], index);
        }
        if (this.nextIndex < this.requests.length) {
          const index = this.nextIndex;
          const request = this.requests[index];
          this.inProgress.add(request.uniqueKey);
          this.nextIndex++;
          this.isStatePersisted = false;
          return this.ensureRequest(request, index);
        }
        return null;
      }
      /**
       * @inheritDoc
       */
      async *[Symbol.asyncIterator]() {
        while (true) {
          const req = await this.fetchNextRequest();
          if (!req)
            break;
          yield req;
        }
      }
      ensureRequest(requestLike, index) {
        if (requestLike instanceof request_1.Request) {
          return requestLike;
        }
        this.requests[index] = new request_1.Request(requestLike);
        return this.requests[index];
      }
      /**
       * @inheritDoc
       */
      async markRequestHandled(request) {
        const { uniqueKey } = request;
        this._ensureUniqueKeyValid(uniqueKey);
        this._ensureInProgressAndNotReclaimed(uniqueKey);
        this._ensureIsInitialized();
        this.inProgress.delete(uniqueKey);
        this.isStatePersisted = false;
      }
      /**
       * @inheritDoc
       */
      async reclaimRequest(request) {
        const { uniqueKey } = request;
        this._ensureUniqueKeyValid(uniqueKey);
        this._ensureInProgressAndNotReclaimed(uniqueKey);
        this._ensureIsInitialized();
        this.reclaimed.add(uniqueKey);
      }
      /**
       * Adds all fetched requests from a URL from a remote resource.
       */
      async _addFetchedRequests(source, fetchedRequests) {
        const { requestsFromUrl, regex } = source;
        const originalLength = this.requests.length;
        fetchedRequests.forEach((request) => this._addRequest(request));
        const fetchedCount = fetchedRequests.length;
        const importedCount = this.requests.length - originalLength;
        this.log.info("Fetched and loaded Requests from a remote resource.", {
          requestsFromUrl,
          regex,
          fetchedCount,
          importedCount,
          duplicateCount: fetchedCount - importedCount,
          sample: JSON.stringify(fetchedRequests.slice(0, 5))
        });
      }
      async _getPersistedState(key) {
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        const state = await this.store.getValue(key);
        return state;
      }
      /**
       * Fetches URLs from requestsFromUrl and returns them in format of list of requests
       */
      async _fetchRequestsFromUrl(source) {
        const { requestsFromUrl, regex, ...sharedOpts } = source;
        let urlsArr;
        try {
          urlsArr = await this._downloadListOfUrls({
            url: requestsFromUrl,
            urlRegExp: regex,
            proxyUrl: await this.proxyConfiguration?.newUrl()
          });
        } catch (err2) {
          throw new Error(`Cannot fetch a request list from ${requestsFromUrl}: ${err2}`);
        }
        if (!urlsArr.length) {
          this.log.warning("The fetched list contains no valid URLs.", { requestsFromUrl, regex });
          return [];
        }
        return urlsArr.map((url2) => ({ url: url2, ...sharedOpts }));
      }
      /**
       * Adds given request.
       * If the `source` parameter is a string or plain object and not an instance
       * of a `Request`, then the function creates a `Request` instance.
       */
      _addRequest(source) {
        let request;
        const type = typeof source;
        if (type === "string") {
          request = { url: source };
        } else if (source instanceof request_1.Request) {
          request = source;
        } else if (source && type === "object") {
          request = source;
        } else {
          throw new Error(`Cannot create Request from type: ${type}`);
        }
        const hasUniqueKey = Reflect.has(Object(source), "uniqueKey");
        request.uniqueKey ?? (request.uniqueKey = request_1.Request.computeUniqueKey(request));
        if (this.keepDuplicateUrls && !hasUniqueKey) {
          request.uniqueKey += `-${this.requests.length}`;
        }
        const { uniqueKey } = request;
        this._ensureUniqueKeyValid(uniqueKey);
        if (!Object.hasOwn(this.uniqueKeyToIndex, uniqueKey)) {
          this.uniqueKeyToIndex[uniqueKey] = this.requests.length;
          this.requests.push(request);
        } else if (this.keepDuplicateUrls) {
          this.log.warning(`Duplicate uniqueKey: ${uniqueKey} found while the keepDuplicateUrls option was set. Check your sources' unique keys.`);
        }
      }
      /**
       * Helper function that validates unique key.
       * Throws an error if uniqueKey is not a non-empty string.
       */
      _ensureUniqueKeyValid(uniqueKey) {
        if (typeof uniqueKey !== "string" || !uniqueKey) {
          throw new Error("Request object's uniqueKey must be a non-empty string");
        }
      }
      /**
       * Checks that request is not reclaimed and throws an error if so.
       */
      _ensureInProgressAndNotReclaimed(uniqueKey) {
        if (!this.inProgress.has(uniqueKey)) {
          throw new Error(`The request is not being processed (uniqueKey: ${uniqueKey})`);
        }
        if (this.reclaimed.has(uniqueKey)) {
          throw new Error(`The request was already reclaimed (uniqueKey: ${uniqueKey})`);
        }
      }
      /**
       * Throws an error if request list wasn't initialized.
       */
      _ensureIsInitialized() {
        if (!this.isInitialized) {
          throw new Error('RequestList is not initialized; you must call "await requestList.initialize()" before using it!');
        }
      }
      /**
       * Returns the total number of unique requests present in the `RequestList`.
       */
      length() {
        this._ensureIsInitialized();
        return this.requests.length;
      }
      /**
       * @inheritDoc
       */
      handledCount() {
        this._ensureIsInitialized();
        return this.nextIndex - this.inProgress.size;
      }
      /**
       * Opens a request list and returns a promise resolving to an instance
       * of the {@link RequestList} class that is already initialized.
       *
       * {@link RequestList} represents a list of URLs to crawl, which is always stored in memory.
       * To enable picking up where left off after a process restart, the request list sources
       * are persisted to the key-value store at initialization of the list. Then, while crawling,
       * a small state object is regularly persisted to keep track of the crawling status.
       *
       * For more details and code examples, see the {@link RequestList} class.
       *
       * **Example usage:**
       *
       * ```javascript
       * const sources = [
       *     'https://www.example.com',
       *     'https://www.google.com',
       *     'https://www.bing.com'
       * ];
       *
       * const requestList = await RequestList.open('my-name', sources);
       * ```
       *
       * @param listNameOrOptions
       *   Name of the request list to be opened, or the options object. Setting a name enables the `RequestList`'s
       *   state to be persisted in the key-value store. This is useful in case of a restart or migration. Since `RequestList`
       *   is only stored in memory, a restart or migration wipes it clean. Setting a name will enable the `RequestList`'s
       *   state to survive those situations and continue where it left off.
       *
       *   The name will be used as a prefix in key-value store, producing keys such as `NAME-REQUEST_LIST_STATE`
       *   and `NAME-REQUEST_LIST_SOURCES`.
       *
       *   If `null`, the list will not be persisted and will only be stored in memory. Process restart
       *   will then cause the list to be crawled again from the beginning. We suggest always using a name.
       * @param [sources]
       *  An array of sources of URLs for the {@link RequestList}. It can be either an array of strings,
       *  plain objects that define at least the `url` property, or an array of {@link Request} instances.
       *
       *  **IMPORTANT:** The `sources` array will be consumed (left empty) after {@link RequestList} initializes.
       *  This is a measure to prevent memory leaks in situations when millions of sources are
       *  added.
       *
       *  Additionally, the `requestsFromUrl` property may be used instead of `url`,
       *  which will instruct {@link RequestList} to download the source URLs from a given remote location.
       *  The URLs will be parsed from the received response. In this case you can limit the URLs
       *  using `regex` parameter containing regular expression pattern for URLs to be included.
       *
       *  For details, see the {@link RequestListOptions.sources}
       * @param [options]
       *   The {@link RequestList} options. Note that the `listName` parameter supersedes
       *   the {@link RequestListOptions.persistStateKey} and {@link RequestListOptions.persistRequestsKey}
       *   options and the `sources` parameter supersedes the {@link RequestListOptions.sources} option.
       */
      static async open(listNameOrOptions, sources, options = {}) {
        if (listNameOrOptions != null && typeof listNameOrOptions === "object") {
          options = { ...listNameOrOptions, ...options };
          const rl2 = new _RequestList(options);
          await rl2.initialize();
          return rl2;
        }
        const listName = listNameOrOptions;
        (0, ow_1.default)(listName, ow_1.default.optional.any(ow_1.default.string, ow_1.default.null));
        (0, ow_1.default)(sources, ow_1.default.array);
        (0, ow_1.default)(options, ow_1.default.object.is((v2) => !Array.isArray(v2)));
        const rl = new _RequestList({
          ...options,
          persistStateKey: listName ? `${listName}-${exports2.STATE_PERSISTENCE_KEY}` : options.persistStateKey,
          persistRequestsKey: listName ? `${listName}-${exports2.REQUESTS_PERSISTENCE_KEY}` : options.persistRequestsKey,
          sources: sources ?? options.sources
        });
        await rl.initialize();
        return rl;
      }
      /**
       * @internal wraps public utility for mocking purposes
       */
      async _downloadListOfUrls(options) {
        return (0, utils_1.downloadListOfUrls)(options);
      }
    };
    exports2.RequestList = RequestList2;
  }
});
var require_request_list_adapter = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_list_adapter.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestListAdapter = void 0;
    var RequestListAdapter2 = class {
      constructor(requestList) {
        Object.defineProperty(this, "requestList", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: requestList
        });
      }
      /**
       * @inheritdoc
       */
      async isFinished() {
        return this.requestList.isFinished();
      }
      /**
       * @inheritdoc
       */
      async isEmpty() {
        return this.requestList.isEmpty();
      }
      /**
       * @inheritdoc
       */
      async handledCount() {
        return Promise.resolve(this.requestList.handledCount());
      }
      /**
       * @inheritdoc
       */
      getTotalCount() {
        return this.requestList.length();
      }
      /**
       * @inheritdoc
       */
      getPendingCount() {
        return this.requestList.length() - this.requestList.handledCount();
      }
      /**
       * @inheritdoc
       */
      async fetchNextRequest() {
        return await this.requestList.fetchNextRequest();
      }
      /**
       * @inheritdoc
       */
      async markRequestHandled(request) {
        return this.requestList.markRequestHandled(request);
      }
      /**
       * @inheritdoc
       */
      async reclaimRequest(request, _options2) {
        await this.requestList.reclaimRequest(request);
        return null;
      }
      /**
       * @inheritdoc
       */
      async *[Symbol.asyncIterator]() {
        for await (const request of this.requestList) {
          yield request;
        }
      }
      /**
       * @inheritdoc
       */
      addRequestsBatched() {
        throw new Error("Cannot add requests to a read-only request list");
      }
      /**
       * @inheritdoc
       */
      addRequest() {
        throw new Error("Cannot add requests to a read-only request list");
      }
    };
    exports2.RequestListAdapter = RequestListAdapter2;
  }
});
var require_cjs9 = __commonJS2({
  "../../node_modules/.pnpm/@apify+datastructures@2.0.3/node_modules/@apify/datastructures/cjs/index.cjs"(exports2, module2) {
    "use strict";
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __defNormalProp22 = (obj, key, value) => key in obj ? __defProp32(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value) => __defNormalProp22(obj, typeof key !== "symbol" ? key + "" : key, value);
    var index_exports2 = {};
    __export22(index_exports2, {
      LinkedList: () => LinkedList,
      LinkedListNode: () => LinkedListNode,
      ListDictionary: () => ListDictionary,
      LruCache: () => LruCache
    });
    module2.exports = __toCommonJS22(index_exports2);
    var dataEqual = /* @__PURE__ */ __name2((data1, data2) => {
      if (data1 === null) return data2 === null;
      if (data1.equals) return data1.equals(data2);
      return data1 === data2;
    }, "dataEqual");
    var _LinkedListNode = class _LinkedListNode {
      constructor(data) {
        this.data = data;
        __publicField2(this, "prev", null);
        __publicField2(this, "next", null);
        __publicField2(this, "dictKey");
      }
    };
    __name2(_LinkedListNode, "LinkedListNode");
    var LinkedListNode = _LinkedListNode;
    var _LinkedList = class _LinkedList {
      constructor() {
        __publicField2(this, "head", null);
        __publicField2(this, "tail", null);
        __publicField2(this, "length", 0);
      }
      /**
        * Appends a new node with specific data to the end of the linked list.
        */
      add(data, toFirstPosition) {
        const node = new LinkedListNode(data);
        this.addNode(node, toFirstPosition);
        return node;
      }
      /**
       * Appends a new node to the end of the linked list or the beginning if firstPosition is true-ish.
       */
      addNode(node, toFirstPosition) {
        if (typeof node !== "object" || node === null) throw new Error('Parameter "node" must be an object');
        if (node.prev || node.next) throw new Error("New node is still included in some linked list");
        node.prev = null;
        node.next = null;
        if (this.length === 0) {
          this.tail = node;
          this.head = node;
        } else if (toFirstPosition) {
          node.next = this.head;
          this.head.prev = node;
          this.head = node;
        } else {
          node.prev = this.tail;
          this.tail.next = node;
          this.tail = node;
        }
        this.length++;
      }
      /**
       * Finds a first node that holds a specific data object. See 'dataEqual' function for a description
       * how the object equality is tested. Function returns null if the data cannot be found.
       */
      find(data) {
        for (let node = this.head; node != null; node = node.next) {
          if (dataEqual(node.data, data)) {
            return node;
          }
        }
        return null;
      }
      removeNode(node) {
        if (typeof node !== "object" || node == null) throw new Error('Parameter "node" must be an object');
        if (node.prev != null) {
          if (node.next != null) {
            node.prev.next = node.next;
            node.next.prev = node.prev;
            node.prev = null;
            node.next = null;
          } else {
            this.tail = node.prev;
            node.prev.next = null;
            node.prev = null;
          }
        } else if (node.next != null) {
          this.head = node.next;
          node.next.prev = null;
          node.next = null;
        } else {
          this.head = null;
          this.tail = null;
          node.next = null;
          node.prev = null;
        }
        this.length--;
      }
      /**
       * Removes the first item from the list. The function
       * returns the item object or null if the list is empty.
       */
      removeFirst() {
        const { head } = this;
        if (!head) return null;
        this.removeNode(head);
        return head.data;
      }
    };
    __name2(_LinkedList, "LinkedList");
    var LinkedList = _LinkedList;
    var _ListDictionary = class _ListDictionary {
      constructor() {
        __publicField2(this, "linkedList", new LinkedList());
        __publicField2(this, "dictionary", {});
      }
      /**
       * Gets the number of item in the list.
       */
      length() {
        return this.linkedList.length;
      }
      /**
       * Adds an item to the list. If there is already an item with same key, the function
       * returns false and doesn't make any changes. Otherwise, it returns true.
       */
      add(key, item, toFirstPosition) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        if (key in this.dictionary) return false;
        const linkedListNode = this.linkedList.add(item, toFirstPosition);
        linkedListNode.dictKey = key;
        this.dictionary[key] = linkedListNode;
        return true;
      }
      /**
       * Gets the first item in the list. The function returns null if the list is empty.
       */
      getFirst() {
        const { head } = this.linkedList;
        if (head) return head.data;
        return null;
      }
      /**
       * Gets the last item in the list. The function returns null if the list is empty.
       */
      getLast() {
        const { tail } = this.linkedList;
        if (tail) return tail.data;
        return null;
      }
      /**
       * Gets the first item from the list and moves it to the end of the list.
       * The function returns null if the queue is empty.
       */
      moveFirstToEnd() {
        const node = this.linkedList.head;
        if (!node) return null;
        this.linkedList.removeNode(node);
        this.linkedList.addNode(node);
        return node.data;
      }
      /**
       * Removes the first item from the list.
       * The function returns the item or null if the list is empty.
       */
      removeFirst() {
        const { head } = this.linkedList;
        if (!head) return null;
        this.linkedList.removeNode(head);
        delete this.dictionary[head.dictKey];
        return head.data;
      }
      /**
       * Removes the last item from the list.
       * The function returns the item or null if the list is empty.
       */
      removeLast() {
        const { tail } = this.linkedList;
        if (!tail) return null;
        this.linkedList.removeNode(tail);
        delete this.dictionary[tail.dictKey];
        return tail.data;
      }
      /**
       * Removes an item identified by a key. The function returns the
       * object if it was found or null if it wasn't.
       */
      remove(key) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        const node = this.dictionary[key];
        if (!node) return null;
        delete this.dictionary[key];
        this.linkedList.removeNode(node);
        return node.data;
      }
      /**
       * Finds a request based on the URL.
       */
      get(key) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        const node = this.dictionary[key];
        if (!node) return null;
        return node.data;
      }
      /**
       * Removes all items from the list.
       */
      clear() {
        if (this.linkedList.length > 0) {
          this.linkedList = new LinkedList();
          this.dictionary = {};
        }
      }
    };
    __name2(_ListDictionary, "ListDictionary");
    var ListDictionary = _ListDictionary;
    var _LruCache = class _LruCache {
      constructor(options) {
        this.options = options;
        __publicField2(this, "listDictionary", new ListDictionary());
        __publicField2(this, "maxLength");
        if (typeof options.maxLength !== "number") {
          throw new Error('Parameter "maxLength" must be a number.');
        }
        this.maxLength = options.maxLength;
      }
      /**
       * Gets the number of item in the list.
       */
      length() {
        return this.listDictionary.length();
      }
      /**
       * Get item from Cache and move to last position
       */
      get(key) {
        if (typeof key !== "string") throw new Error('Parameter "key" must be a string.');
        const node = this.listDictionary.dictionary[key];
        if (!node) return null;
        this.listDictionary.remove(key);
        this.listDictionary.add(key, node.data);
        return node.data;
      }
      /**
       * Add new item to cache, remove least used item if length exceeds maxLength
       */
      add(key, value) {
        const added = this.listDictionary.add(key, value);
        if (!added) return false;
        if (this.length() > this.maxLength) {
          this.listDictionary.removeFirst();
        }
        return true;
      }
      /**
       * Remove item with key
       */
      remove(key) {
        return this.listDictionary.remove(key);
      }
      /**
       * Clear cache
       */
      clear() {
        return this.listDictionary.clear();
      }
    };
    __name2(_LruCache, "LruCache");
    var LruCache = _LruCache;
  }
});
var require_request_provider = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_provider.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestProvider = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_util_1 = __require("node:util");
    var utils_1 = require_utils9();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var datastructures_1 = require_cjs9();
    var utilities_1 = require_cjs4();
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var request_1 = require_request();
    var access_checking_1 = require_access_checking();
    var storage_manager_1 = require_storage_manager();
    var utils_2 = require_utils10();
    var RequestProvider2 = class {
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "timeoutSecs", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 30
        });
        Object.defineProperty(this, "clientKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (0, utilities_1.cryptoRandomObjectId)()
        });
        Object.defineProperty(this, "client", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "proxyConfiguration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "internalTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 5 * 6e4
        });
        Object.defineProperty(this, "requestLockSecs", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 3 * 60
        });
        Object.defineProperty(this, "assumedTotalCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "assumedHandledCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "initialCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "initialHandledCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "queueHeadIds", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new datastructures_1.ListDictionary()
        });
        Object.defineProperty(this, "requestCache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "recentlyHandledRequestsCache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "queuePausedForMigration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "lastActivity", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Date()
        });
        Object.defineProperty(this, "isFinishedCalledWhileHeadWasNotEmpty", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "inProgressRequestBatchCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        this.id = options.id;
        this.name = options.name;
        this.client = options.client.requestQueue(this.id, {
          clientKey: this.clientKey,
          timeoutSecs: this.timeoutSecs
        });
        this.proxyConfiguration = options.proxyConfiguration;
        this.requestCache = new datastructures_1.LruCache({ maxLength: options.requestCacheMaxSize });
        this.recentlyHandledRequestsCache = new datastructures_1.LruCache({ maxLength: options.recentlyHandledRequestsMaxSize });
        this.log = log_1.log.child({ prefix: `${options.logPrefix}(${this.id}, ${this.name ?? "no-name"})` });
        const eventManager = config.getEventManager();
        eventManager.on("migrating", async () => {
          this.queuePausedForMigration = true;
        });
      }
      /**
       * Returns an offline approximation of the total number of requests in the queue (i.e. pending + handled).
       *
       * Survives restarts and actor migrations.
       */
      getTotalCount() {
        return this.assumedTotalCount + this.initialCount;
      }
      /**
       * Returns an offline approximation of the total number of pending requests in the queue.
       *
       * Survives restarts and Actor migrations.
       */
      getPendingCount() {
        return this.getTotalCount() - this.initialHandledCount - this.assumedHandledCount;
      }
      /**
       * Adds a request to the queue.
       *
       * If a request with the same `uniqueKey` property is already present in the queue,
       * it will not be updated. You can find out whether this happened from the resulting
       * {@link QueueOperationInfo} object.
       *
       * To add multiple requests to the queue by extracting links from a webpage,
       * see the {@link enqueueLinks} helper function.
       *
       * @param requestLike {@link Request} object or vanilla object with request data.
       * Note that the function sets the `uniqueKey` and `id` fields to the passed Request.
       * @param [options] Request queue operation options.
       */
      async addRequest(requestLike, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(requestLike, ow_1.default.object);
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean
        }));
        const { forefront = false } = options;
        if ("requestsFromUrl" in requestLike) {
          const requests = await this._fetchRequestsFromUrl(requestLike);
          const processedRequests = await this._addFetchedRequests(requestLike, requests, options);
          return { ...processedRequests[0], forefront };
        }
        (0, ow_1.default)(requestLike, ow_1.default.object.partialShape({
          url: ow_1.default.string,
          id: ow_1.default.undefined
        }));
        const request = requestLike instanceof request_1.Request ? requestLike : new request_1.Request(requestLike);
        const cacheKey = (0, utils_2.getRequestId)(request.uniqueKey);
        const cachedInfo = this.requestCache.get(cacheKey);
        if (cachedInfo) {
          request.id = cachedInfo.id;
          return {
            wasAlreadyPresent: true,
            // We may assume that if request is in local cache then also the information if the
            // request was already handled is there because just one client should be using one queue.
            wasAlreadyHandled: cachedInfo.isHandled,
            requestId: cachedInfo.id,
            uniqueKey: cachedInfo.uniqueKey,
            forefront
          };
        }
        const queueOperationInfo = {
          ...await this.client.addRequest(request, { forefront }),
          uniqueKey: request.uniqueKey,
          forefront
        };
        const { requestId, wasAlreadyPresent } = queueOperationInfo;
        this._cacheRequest(cacheKey, queueOperationInfo);
        if (!wasAlreadyPresent && !this.recentlyHandledRequestsCache.get(requestId)) {
          this.assumedTotalCount++;
          this._maybeAddRequestToQueueHead(requestId, forefront);
        }
        return queueOperationInfo;
      }
      /**
       * Adds requests to the queue in batches of 25. This method will wait till all the requests are added
       * to the queue before resolving. You should prefer using `queue.addRequestsBatched()` or `crawler.addRequests()`
       * if you don't want to block the processing, as those methods will only wait for the initial 1000 requests,
       * start processing right after that happens, and continue adding more in the background.
       *
       * If a request passed in is already present due to its `uniqueKey` property being the same,
       * it will not be updated. You can find out whether this happened by finding the request in the resulting
       * {@link BatchAddRequestsResult} object.
       *
       * @param requestsLike {@link Request} objects or vanilla objects with request data.
       * Note that the function sets the `uniqueKey` and `id` fields to the passed requests if missing.
       * @param [options] Request queue operation options.
       */
      async addRequests(requestsLike, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(requestsLike, ow_1.default.object.is((value) => (0, utils_1.isIterable)(value) || (0, utils_1.isAsyncIterable)(value)).message((value) => `Expected an iterable or async iterable, got ${(0, utils_1.getObjectType)(value)}`));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean,
          cache: ow_1.default.optional.boolean
        }));
        const { forefront = false, cache = true } = options;
        const uniqueKeyToCacheKey = /* @__PURE__ */ new Map();
        const getCachedRequestId = (uniqueKey) => {
          const cached = uniqueKeyToCacheKey.get(uniqueKey);
          if (cached)
            return cached;
          const newCacheKey = (0, utils_2.getRequestId)(uniqueKey);
          uniqueKeyToCacheKey.set(uniqueKey, newCacheKey);
          return newCacheKey;
        };
        const results = {
          processedRequests: [],
          unprocessedRequests: []
        };
        const requests = [];
        for await (const requestLike of requestsLike) {
          if (typeof requestLike === "string") {
            requests.push(new request_1.Request({ url: requestLike }));
          } else if ("requestsFromUrl" in requestLike) {
            const fetchedRequests = await this._fetchRequestsFromUrl(requestLike);
            await this._addFetchedRequests(requestLike, fetchedRequests, options);
          } else {
            requests.push(requestLike instanceof request_1.Request ? requestLike : new request_1.Request(requestLike));
          }
        }
        const requestsToAdd = /* @__PURE__ */ new Map();
        for (const request of requests) {
          const cacheKey = getCachedRequestId(request.uniqueKey);
          const cachedInfo = this.requestCache.get(cacheKey);
          if (cachedInfo) {
            request.id = cachedInfo.id;
            results.processedRequests.push({
              wasAlreadyPresent: true,
              // We may assume that if request is in local cache then also the information if the
              // request was already handled is there because just one client should be using one queue.
              wasAlreadyHandled: cachedInfo.isHandled,
              requestId: cachedInfo.id,
              uniqueKey: cachedInfo.uniqueKey
            });
          } else if (!requestsToAdd.has(request.uniqueKey)) {
            requestsToAdd.set(request.uniqueKey, request);
          }
        }
        if (!requestsToAdd.size) {
          return results;
        }
        const apiResults = await this.client.batchAddRequests([...requestsToAdd.values()], { forefront });
        results.unprocessedRequests = apiResults.unprocessedRequests;
        for (const newRequest of apiResults.processedRequests) {
          results.processedRequests.push(newRequest);
          const cacheKey = getCachedRequestId(newRequest.uniqueKey);
          const { requestId, wasAlreadyPresent } = newRequest;
          if (cache) {
            this._cacheRequest(cacheKey, { ...newRequest, forefront });
          }
          if (!wasAlreadyPresent && !this.recentlyHandledRequestsCache.get(requestId)) {
            this.assumedTotalCount++;
            this._maybeAddRequestToQueueHead(requestId, forefront);
          }
        }
        return results;
      }
      /**
       * Adds requests to the queue in batches. By default, it will resolve after the initial batch is added, and continue
       * adding the rest in the background. You can configure the batch size via `batchSize` option and the sleep time in between
       * the batches via `waitBetweenBatchesMillis`. If you want to wait for all batches to be added to the queue, you can use
       * the `waitForAllRequestsToBeAdded` promise you get in the response object.
       *
       * @param requests The requests to add
       * @param options Options for the request queue
       */
      async addRequestsBatched(requests, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(requests, ow_1.default.object.is((value) => (0, utils_1.isIterable)(value) || (0, utils_1.isAsyncIterable)(value)).message((value) => `Expected an iterable or async iterable, got ${(0, utils_1.getObjectType)(value)}`));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean,
          waitForAllRequestsToBeAdded: ow_1.default.optional.boolean,
          batchSize: ow_1.default.optional.number,
          waitBetweenBatchesMillis: ow_1.default.optional.number
        }));
        const addRequest = this.addRequest.bind(this);
        async function* generateRequests() {
          for await (const opts of requests) {
            if (typeof opts === "object" && opts !== null) {
              if (opts.url !== void 0 && typeof opts.url !== "string") {
                throw new Error(`Request options are not valid, the 'url' property is not a string. Input: ${(0, node_util_1.inspect)(opts)}`);
              }
              if (opts.id !== void 0) {
                throw new Error(`Request options are not valid, the 'id' property must not be present. Input: ${(0, node_util_1.inspect)(opts)}`);
              }
              if (opts.requestsFromUrl !== void 0 && typeof opts.requestsFromUrl !== "string") {
                throw new Error(`Request options are not valid, the 'requestsFromUrl' property is not a string. Input: ${(0, node_util_1.inspect)(opts)}`);
              }
            }
            if (opts && typeof opts === "object" && "requestsFromUrl" in opts) {
              await addRequest(opts, { forefront: options.forefront });
            } else {
              yield typeof opts === "string" ? { url: opts } : opts;
            }
          }
        }
        const { batchSize = 1e3, waitBetweenBatchesMillis = 1e3 } = options;
        const chunks = (0, utils_1.peekableAsyncIterable)((0, utils_1.chunkedAsyncIterable)(generateRequests(), batchSize));
        const chunksIterator = chunks[Symbol.asyncIterator]();
        const attemptToAddToQueueAndAddAnyUnprocessed = async (providedRequests, cache = true) => {
          const resultsToReturn = [];
          const apiResult = await this.addRequests(providedRequests, { forefront: options.forefront, cache });
          resultsToReturn.push(...apiResult.processedRequests);
          if (apiResult.unprocessedRequests.length) {
            await (0, utils_1.sleep)(waitBetweenBatchesMillis);
            resultsToReturn.push(...await attemptToAddToQueueAndAddAnyUnprocessed(providedRequests.filter((r2) => !apiResult.processedRequests.some((pr3) => pr3.uniqueKey === r2.uniqueKey)), false));
          }
          return resultsToReturn;
        };
        const initialChunk = await chunksIterator.peek();
        if (initialChunk === void 0) {
          return { addedRequests: [], waitForAllRequestsToBeAdded: Promise.resolve([]) };
        }
        const addedRequests = await attemptToAddToQueueAndAddAnyUnprocessed(initialChunk);
        await chunksIterator.next();
        if (await chunksIterator.peek() === void 0) {
          return {
            addedRequests,
            waitForAllRequestsToBeAdded: Promise.resolve([])
          };
        }
        const promise = new Promise(async (resolve2) => {
          const finalAddedRequests = [];
          for await (const requestChunk of chunks) {
            finalAddedRequests.push(...await attemptToAddToQueueAndAddAnyUnprocessed(requestChunk, false));
            await (0, utils_1.sleep)(waitBetweenBatchesMillis);
          }
          resolve2(finalAddedRequests);
        });
        this.inProgressRequestBatchCount += 1;
        void promise.finally(() => {
          this.inProgressRequestBatchCount -= 1;
        });
        if (options.waitForAllRequestsToBeAdded) {
          addedRequests.push(...await promise);
        }
        return {
          addedRequests,
          waitForAllRequestsToBeAdded: promise
        };
      }
      /**
       * Gets the request from the queue specified by ID.
       *
       * @param id ID of the request.
       * @returns Returns the request object, or `null` if it was not found.
       */
      async getRequest(id) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(id, ow_1.default.string);
        const requestOptions = await this.client.getRequest(id);
        if (!requestOptions)
          return null;
        return new request_1.Request(requestOptions);
      }
      /**
       * Marks a request that was previously returned by the
       * {@link RequestQueue.fetchNextRequest}
       * function as handled after successful processing.
       * Handled requests will never again be returned by the `fetchNextRequest` function.
       */
      async markRequestHandled(request) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(request, ow_1.default.object.partialShape({
          id: ow_1.default.string,
          uniqueKey: ow_1.default.string,
          handledAt: ow_1.default.optional.string
        }));
        const forefront = this.requestCache.get((0, utils_2.getRequestId)(request.uniqueKey))?.forefront ?? false;
        const handledAt = request.handledAt ?? (/* @__PURE__ */ new Date()).toISOString();
        const queueOperationInfo = {
          ...await this.client.updateRequest({
            ...request,
            handledAt
          }),
          uniqueKey: request.uniqueKey,
          forefront
        };
        request.handledAt = handledAt;
        this.recentlyHandledRequestsCache.add(request.id, true);
        if (!queueOperationInfo.wasAlreadyHandled) {
          this.assumedHandledCount++;
        }
        this.queueHeadIds.remove(request.id);
        this._cacheRequest((0, utils_2.getRequestId)(request.uniqueKey), queueOperationInfo);
        return queueOperationInfo;
      }
      /**
       * Reclaims a failed request back to the queue, so that it can be returned for processing later again
       * by another call to {@link RequestQueue.fetchNextRequest}.
       * The request record in the queue is updated using the provided `request` parameter.
       * For example, this lets you store the number of retries or error messages for the request.
       */
      async reclaimRequest(request, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        (0, ow_1.default)(request, ow_1.default.object.partialShape({
          id: ow_1.default.string,
          uniqueKey: ow_1.default.string
        }));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          forefront: ow_1.default.optional.boolean
        }));
        const { forefront = false } = options;
        const queueOperationInfo = {
          ...await this.client.updateRequest(request, {
            forefront
          }),
          uniqueKey: request.uniqueKey,
          forefront
        };
        this._cacheRequest((0, utils_2.getRequestId)(request.uniqueKey), queueOperationInfo);
        return queueOperationInfo;
      }
      /**
       * Resolves to `true` if the next call to {@link RequestQueue.fetchNextRequest}
       * would return `null`, otherwise it resolves to `false`.
       * Note that even if the queue is empty, there might be some pending requests currently being processed.
       * If you need to ensure that there is no activity in the queue, use {@link RequestQueue.isFinished}.
       */
      async isEmpty() {
        await this.ensureHeadIsNonEmpty();
        return this.queueHeadIds.length() === 0;
      }
      _reset() {
        this.lastActivity = /* @__PURE__ */ new Date();
        this.queueHeadIds.clear();
        this.recentlyHandledRequestsCache.clear();
        this.assumedTotalCount = 0;
        this.assumedHandledCount = 0;
        this.requestCache.clear();
      }
      /**
       * Caches information about request to beware of unneeded addRequest() calls.
       */
      _cacheRequest(cacheKey, queueOperationInfo) {
        this.requestCache.remove(cacheKey);
        this.requestCache.add(cacheKey, {
          id: queueOperationInfo.requestId,
          isHandled: queueOperationInfo.wasAlreadyHandled,
          uniqueKey: queueOperationInfo.uniqueKey,
          hydrated: null,
          lockExpiresAt: null,
          forefront: queueOperationInfo.forefront
        });
      }
      /**
       * Adds a request straight to the queueHeadDict, to improve performance.
       */
      _maybeAddRequestToQueueHead(requestId, forefront) {
        if (forefront) {
          this.queueHeadIds.add(requestId, requestId, true);
        } else if (this.assumedTotalCount < utils_2.QUERY_HEAD_MIN_LENGTH) {
          this.queueHeadIds.add(requestId, requestId, false);
        }
      }
      /**
       * Removes the queue either from the Apify Cloud storage or from the local database,
       * depending on the mode of operation.
       */
      async drop() {
        (0, access_checking_1.checkStorageAccess)();
        await this.client.delete();
        const manager = storage_manager_1.StorageManager.getManager(this.constructor, this.config);
        manager.closeStorage(this);
      }
      /**
       * @inheritdoc
       */
      async *[Symbol.asyncIterator]() {
        while (true) {
          const req = await this.fetchNextRequest();
          if (!req)
            break;
          yield req;
        }
      }
      /**
       * Returns the number of handled requests.
       *
       * This function is just a convenient shortcut for:
       *
       * ```javascript
       * const { handledRequestCount } = await queue.getInfo();
       * ```
       * @inheritdoc
       */
      async handledCount() {
        const { handledRequestCount } = await this.getInfo() ?? {};
        return handledRequestCount ?? 0;
      }
      /**
       * Returns an object containing general information about the request queue.
       *
       * The function returns the same object as the Apify API Client's
       * [getQueue](https://docs.apify.com/api/apify-client-js/latest#ApifyClient-requestQueues)
       * function, which in turn calls the
       * [Get request queue](https://apify.com/docs/api/v2#/reference/request-queues/queue/get-request-queue)
       * API endpoint.
       *
       * **Example:**
       * ```
       * {
       *   id: "WkzbQMuFYuamGv3YF",
       *   name: "my-queue",
       *   userId: "wRsJZtadYvn4mBZmm",
       *   createdAt: new Date("2015-12-12T07:34:14.202Z"),
       *   modifiedAt: new Date("2015-12-13T08:36:13.202Z"),
       *   accessedAt: new Date("2015-12-14T08:36:13.202Z"),
       *   totalRequestCount: 25,
       *   handledRequestCount: 5,
       *   pendingRequestCount: 20,
       * }
       * ```
       */
      async getInfo() {
        (0, access_checking_1.checkStorageAccess)();
        return this.client.get();
      }
      /**
       * Fetches URLs from requestsFromUrl and returns them in format of list of requests
       */
      async _fetchRequestsFromUrl(source) {
        const { requestsFromUrl, regex, ...sharedOpts } = source;
        let urlsArr;
        try {
          urlsArr = await this._downloadListOfUrls({
            url: requestsFromUrl,
            urlRegExp: regex,
            proxyUrl: await this.proxyConfiguration?.newUrl()
          });
        } catch (err2) {
          throw new Error(`Cannot fetch a request list from ${requestsFromUrl}: ${err2}`);
        }
        if (!urlsArr.length) {
          this.log.warning("The fetched list contains no valid URLs.", { requestsFromUrl, regex });
          return [];
        }
        return urlsArr.map((url2) => ({ url: url2, ...sharedOpts }));
      }
      /**
       * Adds all fetched requests from a URL from a remote resource.
       */
      async _addFetchedRequests(source, fetchedRequests, options) {
        const { requestsFromUrl, regex } = source;
        const { addedRequests } = await this.addRequestsBatched(fetchedRequests, options);
        this.log.info("Fetched and loaded Requests from a remote resource.", {
          requestsFromUrl,
          regex,
          fetchedCount: fetchedRequests.length,
          importedCount: addedRequests.length,
          duplicateCount: fetchedRequests.length - addedRequests.length,
          sample: JSON.stringify(fetchedRequests.slice(0, 5))
        });
        return addedRequests;
      }
      /**
       * @internal wraps public utility for mocking purposes
       */
      async _downloadListOfUrls(options) {
        return (0, utils_1.downloadListOfUrls)(options);
      }
      /**
       * Opens a request queue and returns a promise resolving to an instance
       * of the {@link RequestQueue} class.
       *
       * {@link RequestQueue} represents a queue of URLs to crawl, which is stored either on local filesystem or in the cloud.
       * The queue is used for deep crawling of websites, where you start with several URLs and then
       * recursively follow links to other pages. The data structure supports both breadth-first
       * and depth-first crawling orders.
       *
       * For more details and code examples, see the {@link RequestQueue} class.
       *
       * @param [queueIdOrName]
       *   ID or name of the request queue to be opened. If `null` or `undefined`,
       *   the function returns the default request queue associated with the crawler run.
       * @param [options] Open Request Queue options.
       */
      static async open(queueIdOrName, options = {}) {
        (0, access_checking_1.checkStorageAccess)();
        (0, ow_1.default)(queueIdOrName, ow_1.default.optional.any(ow_1.default.string, ow_1.default.null));
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          config: ow_1.default.optional.object.instanceOf(configuration_1.Configuration),
          storageClient: ow_1.default.optional.object,
          proxyConfiguration: ow_1.default.optional.object
        }));
        options.config ?? (options.config = configuration_1.Configuration.getGlobalConfig());
        options.storageClient ?? (options.storageClient = options.config.getStorageClient());
        await (0, utils_2.purgeDefaultStorages)({ onlyPurgeOnce: true, client: options.storageClient, config: options.config });
        const manager = storage_manager_1.StorageManager.getManager(this, options.config);
        const queue = await manager.openStorage(queueIdOrName, options.storageClient);
        queue.proxyConfiguration = options.proxyConfiguration;
        const queueInfo = await queue.client.get();
        queue.initialCount = queueInfo?.totalRequestCount ?? 0;
        queue.initialHandledCount = queueInfo?.handledRequestCount ?? 0;
        return queue;
      }
    };
    exports2.RequestProvider = RequestProvider2;
  }
});
var require_request_queue3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_queue.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestQueueV1 = void 0;
    var promises_1 = __require("node:timers/promises");
    var consts_1 = require_cjs2();
    var configuration_1 = require_configuration();
    var access_checking_1 = require_access_checking();
    var request_provider_1 = require_request_provider();
    var utils_1 = require_utils10();
    var MAX_CACHED_REQUESTS = 1e6;
    var RECENTLY_HANDLED_CACHE_SIZE = 1e3;
    var RequestQueue2 = class extends request_provider_1.RequestProvider {
      /**
       * @internal
       */
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        super({
          ...options,
          logPrefix: "RequestQueue",
          recentlyHandledRequestsMaxSize: RECENTLY_HANDLED_CACHE_SIZE,
          requestCacheMaxSize: MAX_CACHED_REQUESTS
        }, config);
        Object.defineProperty(this, "queryQueueHeadPromise", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "inProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
      }
      /**
       * @internal
       */
      inProgressCount() {
        return this.inProgress.size;
      }
      /**
       * Returns a next request in the queue to be processed, or `null` if there are no more pending requests.
       *
       * Once you successfully finish processing of the request, you need to call
       * {@link RequestQueue.markRequestHandled}
       * to mark the request as handled in the queue. If there was some error in processing the request,
       * call {@link RequestQueue.reclaimRequest} instead,
       * so that the queue will give the request to some other consumer in another call to the `fetchNextRequest` function.
       *
       * Note that the `null` return value doesn't mean the queue processing finished,
       * it means there are currently no pending requests.
       * To check whether all requests in queue were finished,
       * use {@link RequestQueue.isFinished} instead.
       *
       * @returns
       *   Returns the request object or `null` if there are no more pending requests.
       */
      async fetchNextRequest() {
        (0, access_checking_1.checkStorageAccess)();
        this.lastActivity = /* @__PURE__ */ new Date();
        await this.ensureHeadIsNonEmpty();
        const nextRequestId = this.queueHeadIds.removeFirst();
        if (!nextRequestId)
          return null;
        if (this.inProgress.has(nextRequestId) || this.recentlyHandledRequestsCache.get(nextRequestId)) {
          this.log.warning("Queue head returned a request that is already in progress?!", {
            nextRequestId,
            inProgress: this.inProgress.has(nextRequestId),
            recentlyHandled: !!this.recentlyHandledRequestsCache.get(nextRequestId)
          });
          return null;
        }
        this.inProgress.add(nextRequestId);
        this.lastActivity = /* @__PURE__ */ new Date();
        let request;
        try {
          request = await this.getRequest(nextRequestId);
        } catch (e2) {
          this.inProgress.delete(nextRequestId);
          throw e2;
        }
        if (!request) {
          this.log.debug("Cannot find a request from the beginning of queue, will be retried later", {
            nextRequestId
          });
          setTimeout(() => {
            this.inProgress.delete(nextRequestId);
          }, utils_1.STORAGE_CONSISTENCY_DELAY_MILLIS);
          return null;
        }
        if (request.handledAt) {
          this.log.debug("Request fetched from the beginning of queue was already handled", { nextRequestId });
          this.recentlyHandledRequestsCache.add(nextRequestId, true);
          return null;
        }
        return request;
      }
      async ensureHeadIsNonEmpty() {
        await this._ensureHeadIsNonEmpty();
      }
      /**
       * We always request more items than is in progress to ensure that something falls into head.
       *
       * @param [ensureConsistency] If true then query for queue head is retried until queueModifiedAt
       *   is older than queryStartedAt by at least API_PROCESSED_REQUESTS_DELAY_MILLIS to ensure that queue
       *   head is consistent.
       * @default false
       * @param [limit] How many queue head items will be fetched.
       * @param [iteration] Used when this function is called recursively to limit the recursion.
       * @returns Indicates if queue head is consistent (true) or inconsistent (false).
       */
      async _ensureHeadIsNonEmpty(ensureConsistency = false, limit = Math.max(this.inProgressCount() * utils_1.QUERY_HEAD_BUFFER, utils_1.QUERY_HEAD_MIN_LENGTH), iteration = 0) {
        if (this.queuePausedForMigration) {
          return true;
        }
        if (this.queueHeadIds.length() > 0) {
          return true;
        }
        if (!this.queryQueueHeadPromise) {
          const queryStartedAt2 = /* @__PURE__ */ new Date();
          this.queryQueueHeadPromise = this.client.listHead({ limit }).then(({ items, queueModifiedAt: queueModifiedAt2, hadMultipleClients: hadMultipleClients2 }) => {
            items.forEach(({ id: requestId, uniqueKey }) => {
              if (!requestId || !uniqueKey || this.inProgress.has(requestId) || this.recentlyHandledRequestsCache.get(requestId))
                return;
              this.queueHeadIds.add(requestId, requestId, false);
              const forefront = this.requestCache.get((0, utils_1.getRequestId)(uniqueKey))?.forefront ?? false;
              this._cacheRequest((0, utils_1.getRequestId)(uniqueKey), {
                requestId,
                wasAlreadyHandled: false,
                wasAlreadyPresent: true,
                uniqueKey,
                forefront
              });
            });
            this.queryQueueHeadPromise = null;
            return {
              wasLimitReached: items.length >= limit,
              prevLimit: limit,
              queueModifiedAt: new Date(queueModifiedAt2),
              queryStartedAt: queryStartedAt2,
              hadMultipleClients: hadMultipleClients2
            };
          });
        }
        const { queueModifiedAt, wasLimitReached, prevLimit, queryStartedAt, hadMultipleClients } = await this.queryQueueHeadPromise;
        if (prevLimit >= consts_1.REQUEST_QUEUE_HEAD_MAX_LIMIT) {
          this.log.warning(`Reached the maximum number of requests in progress: ${consts_1.REQUEST_QUEUE_HEAD_MAX_LIMIT}.`);
        }
        const shouldRepeatWithHigherLimit = this.queueHeadIds.length() === 0 && wasLimitReached && prevLimit < consts_1.REQUEST_QUEUE_HEAD_MAX_LIMIT;
        const isDatabaseConsistent = +queryStartedAt - +queueModifiedAt >= utils_1.API_PROCESSED_REQUESTS_DELAY_MILLIS;
        const isLocallyConsistent = !hadMultipleClients && this.assumedTotalCount <= this.assumedHandledCount;
        const shouldRepeatForConsistency = ensureConsistency && !isDatabaseConsistent && !isLocallyConsistent;
        if (!shouldRepeatWithHigherLimit && !shouldRepeatForConsistency)
          return true;
        if (!shouldRepeatWithHigherLimit && iteration > utils_1.MAX_QUERIES_FOR_CONSISTENCY)
          return false;
        const nextLimit = shouldRepeatWithHigherLimit ? Math.round(prevLimit * 1.5) : prevLimit;
        if (shouldRepeatForConsistency) {
          const delayMillis = utils_1.API_PROCESSED_REQUESTS_DELAY_MILLIS - (Date.now() - +queueModifiedAt);
          this.log.info(`Waiting for ${delayMillis}ms before considering the queue as finished to ensure that the data is consistent.`);
          await (0, promises_1.setTimeout)(delayMillis);
        }
        return this._ensureHeadIsNonEmpty(ensureConsistency, nextLimit, iteration + 1);
      }
      // RequestQueue v1 behavior overrides below
      async isFinished() {
        (0, access_checking_1.checkStorageAccess)();
        if (Date.now() - +this.lastActivity > this.internalTimeoutMillis) {
          const message = `The request queue seems to be stuck for ${this.internalTimeoutMillis / 1e3}s, resetting internal state.`;
          this.log.warning(message, { inProgress: [...this.inProgress] });
          this._reset();
        }
        if (this.inProgressRequestBatchCount > 0) {
          return false;
        }
        if (this.queueHeadIds.length() > 0 || this.inProgressCount() > 0)
          return false;
        const isHeadConsistent = await this._ensureHeadIsNonEmpty(true);
        return isHeadConsistent && this.queueHeadIds.length() === 0 && this.inProgressCount() === 0;
      }
      /**
       * Reclaims a failed request back to the queue, so that it can be returned for processing later again
       * by another call to {@link RequestQueue.fetchNextRequest}.
       * The request record in the queue is updated using the provided `request` parameter.
       * For example, this lets you store the number of retries or error messages for the request.
       */
      async reclaimRequest(...args) {
        (0, access_checking_1.checkStorageAccess)();
        const [request, options] = args;
        const forefront = options?.forefront ?? false;
        const result = await super.reclaimRequest(...args);
        setTimeout(() => {
          if (!this.inProgress.has(request.id)) {
            this.log.debug("The request is no longer marked as in progress in the queue?!", {
              requestId: request.id
            });
            return;
          }
          this.inProgress.delete(request.id);
          this._maybeAddRequestToQueueHead(request.id, forefront);
        }, utils_1.STORAGE_CONSISTENCY_DELAY_MILLIS);
        return result;
      }
      /**
       * @inheritdoc
       */
      async markRequestHandled(request) {
        const res = await super.markRequestHandled(request);
        this.inProgress.delete(request.id);
        return res;
      }
      _reset() {
        super._reset();
        this.inProgress.clear();
      }
      /**
       * Opens a request queue and returns a promise resolving to an instance
       * of the {@link RequestQueue} class.
       *
       * {@link RequestQueue} represents a queue of URLs to crawl, which is stored either on local filesystem or in the cloud.
       * The queue is used for deep crawling of websites, where you start with several URLs and then
       * recursively follow links to other pages. The data structure supports both breadth-first
       * and depth-first crawling orders.
       *
       * For more details and code examples, see the {@link RequestQueue} class.
       *
       * @param [queueIdOrName]
       *   ID or name of the request queue to be opened. If `null` or `undefined`,
       *   the function returns the default request queue associated with the crawler run.
       * @param [options] Open Request Queue options.
       */
      static async open(...args) {
        return super.open(...args);
      }
    };
    exports2.RequestQueueV1 = RequestQueue2;
  }
});
var require_request_queue_v2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_queue_v2.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestQueue = void 0;
    var configuration_1 = require_configuration();
    var access_checking_1 = require_access_checking();
    var request_provider_1 = require_request_provider();
    var utils_1 = require_utils10();
    var MAX_CACHED_REQUESTS = 2e6;
    var RECENTLY_HANDLED_CACHE_SIZE = 1e3;
    var LIST_AND_LOCK_HEAD_LIMIT = 25;
    var QUEUE_HEAD_REFILL_THRESHOLD = 1;
    var RequestQueue2 = class extends request_provider_1.RequestProvider {
      constructor(options, config = configuration_1.Configuration.getGlobalConfig()) {
        super({
          ...options,
          logPrefix: "RequestQueue2",
          recentlyHandledRequestsMaxSize: RECENTLY_HANDLED_CACHE_SIZE,
          requestCacheMaxSize: MAX_CACHED_REQUESTS
        }, config);
        Object.defineProperty(this, "listHeadAndLockPromise", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "queueHasLockedRequests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "shouldCheckForForefrontRequests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "dequeuedRequestCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        const eventManager = config.getEventManager();
        eventManager.on("migrating", async () => {
          await this._clearPossibleLocks();
        });
        eventManager.on("aborting", async () => {
          await this._clearPossibleLocks();
        });
      }
      /**
       * Caches information about request to beware of unneeded addRequest() calls.
       */
      _cacheRequest(cacheKey, queueOperationInfo) {
        super._cacheRequest(cacheKey, queueOperationInfo);
        this.requestCache.remove(queueOperationInfo.requestId);
        this.requestCache.add(queueOperationInfo.requestId, {
          id: queueOperationInfo.requestId,
          isHandled: queueOperationInfo.wasAlreadyHandled,
          uniqueKey: queueOperationInfo.uniqueKey,
          forefront: queueOperationInfo.forefront,
          hydrated: null,
          lockExpiresAt: null
        });
      }
      /**
       * @inheritDoc
       */
      async addRequest(requestLike, options = {}) {
        const result = await super.addRequest(requestLike, options);
        if (!result.wasAlreadyPresent && options.forefront) {
          this.shouldCheckForForefrontRequests = true;
        }
        return result;
      }
      /**
       * @inheritDoc
       */
      async addRequests(requestsLike, options = {}) {
        const result = await super.addRequests(requestsLike, options);
        for (const request of result.processedRequests) {
          if (!request.wasAlreadyPresent && options.forefront) {
            this.shouldCheckForForefrontRequests = true;
            break;
          }
        }
        return result;
      }
      /**
       * @inheritDoc
       */
      async fetchNextRequest() {
        (0, access_checking_1.checkStorageAccess)();
        if (this.queuePausedForMigration) {
          return null;
        }
        this.lastActivity = /* @__PURE__ */ new Date();
        await this.ensureHeadIsNonEmpty();
        const nextRequestId = this.queueHeadIds.removeFirst();
        if (!nextRequestId) {
          return null;
        }
        const request = await this.getOrHydrateRequest(nextRequestId);
        if (!request) {
          this.log.debug("Cannot find a request from the beginning of queue or lost lock, will be retried later", {
            nextRequestId
          });
          return null;
        }
        if (request.handledAt) {
          this.log.debug("Request fetched from the beginning of queue was already handled", { nextRequestId });
          return null;
        }
        this.dequeuedRequestCount += 1;
        return request;
      }
      /**
       * @inheritDoc
       */
      async markRequestHandled(request) {
        this.dequeuedRequestCount -= 1;
        return await super.markRequestHandled(request);
      }
      /**
       * @inheritDoc
       */
      async isFinished() {
        if (this.inProgressRequestBatchCount > 0) {
          return false;
        }
        if (this.queueHeadIds.length() > 0) {
          return false;
        }
        await this.ensureHeadIsNonEmpty();
        if (this.queueHeadIds.length() > 0) {
          return false;
        }
        if (this.queueHasLockedRequests !== void 0) {
          if (this.queueHasLockedRequests && this.dequeuedRequestCount === 0 && ++this.isFinishedCalledWhileHeadWasNotEmpty % 25 === 0) {
            this.log.info("The queue still contains requests locked by another client");
          }
          return !this.queueHasLockedRequests;
        }
        const currentHead = await this.client.listHead({ limit: 2 });
        if (currentHead.items.length === 0) {
          return true;
        }
        if (++this.isFinishedCalledWhileHeadWasNotEmpty % 25 === 0) {
          const requests = await Promise.all(currentHead.items.map(async (item) => this.client.getRequest(item.id)));
          this.log.info(`Queue head still returned requests that need to be processed (or that are locked by other clients)`, {
            requests: requests.map((r2) => {
              if (!r2) {
                return null;
              }
              return {
                id: r2.id,
                lockExpiresAt: r2.lockExpiresAt,
                lockedBy: r2.lockByClient
              };
            }).filter(Boolean),
            clientKey: this.clientKey
          });
        } else {
          this.log.debug("Queue head still returned requests that need to be processed (or that are locked by other clients)", {
            requestIds: currentHead.items.map((item) => item.id)
          });
        }
        return false;
      }
      /**
       * @inheritDoc
       */
      async reclaimRequest(...args) {
        const res = await super.reclaimRequest(...args);
        if (res) {
          const [request, options] = args;
          if (options?.forefront) {
            this.shouldCheckForForefrontRequests = true;
          }
          try {
            await this.client.deleteRequestLock(request.id, { forefront: options?.forefront ?? false });
          } catch (err2) {
            this.log.debug(`Failed to delete request lock for request ${request.id}`, { err: err2 });
          }
        }
        return res;
      }
      async ensureHeadIsNonEmpty() {
        (0, access_checking_1.checkStorageAccess)();
        if (this.queuePausedForMigration) {
          return;
        }
        if (this.queueHeadIds.length() > QUEUE_HEAD_REFILL_THRESHOLD && !this.shouldCheckForForefrontRequests) {
          return;
        }
        this.listHeadAndLockPromise ?? (this.listHeadAndLockPromise = this._listHeadAndLock().finally(() => {
          this.listHeadAndLockPromise = null;
        }));
        await this.listHeadAndLockPromise;
      }
      async giveUpLock(id, uniqueKey) {
        if (id === void 0) {
          return;
        }
        try {
          await this.client.deleteRequestLock(id);
        } catch {
          this.log.debug("Failed to delete request lock", { id, uniqueKey });
        }
      }
      async _listHeadAndLock() {
        const shouldCheckForForefrontRequests = this.shouldCheckForForefrontRequests;
        const headData = await this.client.listAndLockHead({
          limit: LIST_AND_LOCK_HEAD_LIMIT,
          lockSecs: this.requestLockSecs
        });
        this.queueHasLockedRequests = headData.queueHasLockedRequests;
        const headIdBuffer = [];
        const forefrontHeadIdBuffer = [];
        for (const { id, uniqueKey } of headData.items) {
          if (!id || !uniqueKey) {
            this.log.warning(`Skipping request from queue head as it's invalid. Please report this with the provided metadata!`, {
              id,
              uniqueKey
            });
            await this.giveUpLock(id, uniqueKey);
            continue;
          }
          const forefront = this.requestCache.get((0, utils_1.getRequestId)(uniqueKey))?.forefront ?? false;
          if (forefront) {
            forefrontHeadIdBuffer.unshift(id);
          } else {
            headIdBuffer.push(id);
          }
          this._cacheRequest((0, utils_1.getRequestId)(uniqueKey), {
            requestId: id,
            uniqueKey,
            wasAlreadyPresent: true,
            wasAlreadyHandled: false,
            forefront
          });
        }
        for (const id of headIdBuffer) {
          this.queueHeadIds.add(id, id, false);
        }
        for (const id of forefrontHeadIdBuffer) {
          this.queueHeadIds.add(id, id, true);
        }
        const toUnlock = [];
        const limit = shouldCheckForForefrontRequests ? LIST_AND_LOCK_HEAD_LIMIT : LIST_AND_LOCK_HEAD_LIMIT + QUEUE_HEAD_REFILL_THRESHOLD;
        while (this.queueHeadIds.length() > limit) {
          toUnlock.push(this.queueHeadIds.removeLast());
        }
        if (toUnlock.length > 0) {
          await Promise.all(toUnlock.map(async (id) => await this.giveUpLock(id)));
        }
        if (shouldCheckForForefrontRequests) {
          this.shouldCheckForForefrontRequests = false;
        }
      }
      async getOrHydrateRequest(requestId) {
        (0, access_checking_1.checkStorageAccess)();
        const cachedEntry = this.requestCache.get(requestId);
        if (!cachedEntry) {
          const prolongResult = await this._prolongRequestLock(requestId);
          if (!prolongResult) {
            return null;
          }
          const hydratedRequest2 = await this.getRequest(requestId);
          if (!hydratedRequest2) {
            try {
              await this.client.deleteRequestLock(requestId);
            } catch {
            }
            return null;
          }
          this.requestCache.add(requestId, {
            id: requestId,
            uniqueKey: hydratedRequest2.uniqueKey,
            hydrated: hydratedRequest2,
            isHandled: hydratedRequest2.handledAt !== null,
            lockExpiresAt: prolongResult.getTime(),
            forefront: false
          });
          return hydratedRequest2;
        }
        if (cachedEntry.hydrated) {
          if (cachedEntry.lockExpiresAt && cachedEntry.lockExpiresAt < Date.now()) {
            const prolonged2 = await this._prolongRequestLock(cachedEntry.id);
            if (!prolonged2) {
              return null;
            }
            cachedEntry.lockExpiresAt = prolonged2.getTime();
          }
          return cachedEntry.hydrated;
        }
        const prolonged = await this._prolongRequestLock(cachedEntry.id);
        if (!prolonged) {
          return null;
        }
        const hydratedRequest = await this.getRequest(cachedEntry.id);
        cachedEntry.hydrated = hydratedRequest;
        if (!hydratedRequest) {
          try {
            await this.client.deleteRequestLock(cachedEntry.id);
          } catch {
          }
          return null;
        }
        return hydratedRequest;
      }
      async _prolongRequestLock(requestId) {
        try {
          const res = await this.client.prolongRequestLock(requestId, { lockSecs: this.requestLockSecs });
          return res.lockExpiresAt;
        } catch (err2) {
          this.log.warning(`Failed to prolong lock for cached request ${requestId}, either lost the lock or the request was already handled
`, {
            err: err2
          });
          return null;
        }
      }
      _reset() {
        super._reset();
        this.listHeadAndLockPromise = null;
        this.queueHasLockedRequests = void 0;
      }
      _maybeAddRequestToQueueHead() {
      }
      async _clearPossibleLocks() {
        this.queuePausedForMigration = true;
        let requestId;
        while ((requestId = this.queueHeadIds.removeFirst()) !== null) {
          try {
            await this.client.deleteRequestLock(requestId);
          } catch {
          }
        }
      }
      /**
       * @inheritDoc
       */
      static async open(...args) {
        return super.open(...args);
      }
    };
    exports2.RequestQueue = RequestQueue2;
  }
});
var require_balanced_match = __commonJS2({
  "../../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports2, module2) {
    "use strict";
    module2.exports = balanced;
    function balanced(a2, b2, str) {
      if (a2 instanceof RegExp) a2 = maybeMatch(a2, str);
      if (b2 instanceof RegExp) b2 = maybeMatch(b2, str);
      var r2 = range(a2, b2, str);
      return r2 && {
        start: r2[0],
        end: r2[1],
        pre: str.slice(0, r2[0]),
        body: str.slice(r2[0] + a2.length, r2[1]),
        post: str.slice(r2[1] + b2.length)
      };
    }
    function maybeMatch(reg, str) {
      var m2 = str.match(reg);
      return m2 ? m2[0] : null;
    }
    balanced.range = range;
    function range(a2, b2, str) {
      var begs, beg, left2, right2, result;
      var ai3 = str.indexOf(a2);
      var bi3 = str.indexOf(b2, ai3 + 1);
      var i22 = ai3;
      if (ai3 >= 0 && bi3 > 0) {
        if (a2 === b2) {
          return [ai3, bi3];
        }
        begs = [];
        left2 = str.length;
        while (i22 >= 0 && !result) {
          if (i22 == ai3) {
            begs.push(i22);
            ai3 = str.indexOf(a2, i22 + 1);
          } else if (begs.length == 1) {
            result = [begs.pop(), bi3];
          } else {
            beg = begs.pop();
            if (beg < left2) {
              left2 = beg;
              right2 = bi3;
            }
            bi3 = str.indexOf(b2, i22 + 1);
          }
          i22 = ai3 < bi3 && ai3 >= 0 ? ai3 : bi3;
        }
        if (begs.length) {
          result = [left2, right2];
        }
      }
      return result;
    }
  }
});
var require_brace_expansion = __commonJS2({
  "../../node_modules/.pnpm/brace-expansion@2.0.2/node_modules/brace-expansion/index.js"(exports2, module2) {
    var balanced = require_balanced_match();
    module2.exports = expandTop;
    var escSlash = "\0SLASH" + Math.random() + "\0";
    var escOpen = "\0OPEN" + Math.random() + "\0";
    var escClose = "\0CLOSE" + Math.random() + "\0";
    var escComma = "\0COMMA" + Math.random() + "\0";
    var escPeriod = "\0PERIOD" + Math.random() + "\0";
    function numeric(str) {
      return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
    }
    function escapeBraces(str) {
      return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod);
    }
    function unescapeBraces(str) {
      return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
    }
    function parseCommaParts(str) {
      if (!str)
        return [""];
      var parts = [];
      var m2 = balanced("{", "}", str);
      if (!m2)
        return str.split(",");
      var pre = m2.pre;
      var body = m2.body;
      var post = m2.post;
      var p = pre.split(",");
      p[p.length - 1] += "{" + body + "}";
      var postParts = parseCommaParts(post);
      if (post.length) {
        p[p.length - 1] += postParts.shift();
        p.push.apply(p, postParts);
      }
      parts.push.apply(parts, p);
      return parts;
    }
    function expandTop(str) {
      if (!str)
        return [];
      if (str.substr(0, 2) === "{}") {
        str = "\\{\\}" + str.substr(2);
      }
      return expand(escapeBraces(str), true).map(unescapeBraces);
    }
    function embrace(str) {
      return "{" + str + "}";
    }
    function isPadded(el) {
      return /^-?0\d/.test(el);
    }
    function lte(i22, y2) {
      return i22 <= y2;
    }
    function gte(i22, y2) {
      return i22 >= y2;
    }
    function expand(str, isTop) {
      var expansions = [];
      var m2 = balanced("{", "}", str);
      if (!m2) return [str];
      var pre = m2.pre;
      var post = m2.post.length ? expand(m2.post, false) : [""];
      if (/\$$/.test(m2.pre)) {
        for (var k3 = 0; k3 < post.length; k3++) {
          var expansion = pre + "{" + m2.body + "}" + post[k3];
          expansions.push(expansion);
        }
      } else {
        var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m2.body);
        var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m2.body);
        var isSequence = isNumericSequence || isAlphaSequence;
        var isOptions = m2.body.indexOf(",") >= 0;
        if (!isSequence && !isOptions) {
          if (m2.post.match(/,(?!,).*\}/)) {
            str = m2.pre + "{" + m2.body + escClose + m2.post;
            return expand(str);
          }
          return [str];
        }
        var n22;
        if (isSequence) {
          n22 = m2.body.split(/\.\./);
        } else {
          n22 = parseCommaParts(m2.body);
          if (n22.length === 1) {
            n22 = expand(n22[0], false).map(embrace);
            if (n22.length === 1) {
              return post.map(function(p) {
                return m2.pre + n22[0] + p;
              });
            }
          }
        }
        var N3;
        if (isSequence) {
          var x3 = numeric(n22[0]);
          var y2 = numeric(n22[1]);
          var width = Math.max(n22[0].length, n22[1].length);
          var incr = n22.length == 3 ? Math.abs(numeric(n22[2])) : 1;
          var test3 = lte;
          var reverse = y2 < x3;
          if (reverse) {
            incr *= -1;
            test3 = gte;
          }
          var pad = n22.some(isPadded);
          N3 = [];
          for (var i22 = x3; test3(i22, y2); i22 += incr) {
            var c3;
            if (isAlphaSequence) {
              c3 = String.fromCharCode(i22);
              if (c3 === "\\")
                c3 = "";
            } else {
              c3 = String(i22);
              if (pad) {
                var need = width - c3.length;
                if (need > 0) {
                  var z4 = new Array(need + 1).join("0");
                  if (i22 < 0)
                    c3 = "-" + z4 + c3.slice(1);
                  else
                    c3 = z4 + c3;
                }
              }
            }
            N3.push(c3);
          }
        } else {
          N3 = [];
          for (var j2 = 0; j2 < n22.length; j2++) {
            N3.push.apply(N3, expand(n22[j2], false));
          }
        }
        for (var j2 = 0; j2 < N3.length; j2++) {
          for (var k3 = 0; k3 < post.length; k3++) {
            var expansion = pre + N3[j2] + post[k3];
            if (!isTop || isSequence || expansion)
              expansions.push(expansion);
          }
        }
      }
      return expansions;
    }
  }
});
var require_assert_valid_pattern = __commonJS2({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.assertValidPattern = void 0;
    var MAX_PATTERN_LENGTH = 1024 * 64;
    var assertValidPattern = (pattern) => {
      if (typeof pattern !== "string") {
        throw new TypeError("invalid pattern");
      }
      if (pattern.length > MAX_PATTERN_LENGTH) {
        throw new TypeError("pattern is too long");
      }
    };
    exports2.assertValidPattern = assertValidPattern;
  }
});
var require_brace_expressions = __commonJS2({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/brace-expressions.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.parseClass = void 0;
    var posixClasses = {
      "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true],
      "[:alpha:]": ["\\p{L}\\p{Nl}", true],
      "[:ascii:]": ["\\x00-\\x7f", false],
      "[:blank:]": ["\\p{Zs}\\t", true],
      "[:cntrl:]": ["\\p{Cc}", true],
      "[:digit:]": ["\\p{Nd}", true],
      "[:graph:]": ["\\p{Z}\\p{C}", true, true],
      "[:lower:]": ["\\p{Ll}", true],
      "[:print:]": ["\\p{C}", true],
      "[:punct:]": ["\\p{P}", true],
      "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true],
      "[:upper:]": ["\\p{Lu}", true],
      "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true],
      "[:xdigit:]": ["A-Fa-f0-9", false]
    };
    var braceEscape = (s2) => s2.replace(/[[\]\\-]/g, "\\$&");
    var regexpEscape = (s2) => s2.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    var rangesToString = (ranges) => ranges.join("");
    var parseClass = (glob, position) => {
      const pos = position;
      if (glob.charAt(pos) !== "[") {
        throw new Error("not in a brace expression");
      }
      const ranges = [];
      const negs = [];
      let i22 = pos + 1;
      let sawStart = false;
      let uflag = false;
      let escaping = false;
      let negate = false;
      let endPos = pos;
      let rangeStart = "";
      WHILE: while (i22 < glob.length) {
        const c3 = glob.charAt(i22);
        if ((c3 === "!" || c3 === "^") && i22 === pos + 1) {
          negate = true;
          i22++;
          continue;
        }
        if (c3 === "]" && sawStart && !escaping) {
          endPos = i22 + 1;
          break;
        }
        sawStart = true;
        if (c3 === "\\") {
          if (!escaping) {
            escaping = true;
            i22++;
            continue;
          }
        }
        if (c3 === "[" && !escaping) {
          for (const [cls, [unip, u2, neg]] of Object.entries(posixClasses)) {
            if (glob.startsWith(cls, i22)) {
              if (rangeStart) {
                return ["$.", false, glob.length - pos, true];
              }
              i22 += cls.length;
              if (neg)
                negs.push(unip);
              else
                ranges.push(unip);
              uflag = uflag || u2;
              continue WHILE;
            }
          }
        }
        escaping = false;
        if (rangeStart) {
          if (c3 > rangeStart) {
            ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c3));
          } else if (c3 === rangeStart) {
            ranges.push(braceEscape(c3));
          }
          rangeStart = "";
          i22++;
          continue;
        }
        if (glob.startsWith("-]", i22 + 1)) {
          ranges.push(braceEscape(c3 + "-"));
          i22 += 2;
          continue;
        }
        if (glob.startsWith("-", i22 + 1)) {
          rangeStart = c3;
          i22 += 2;
          continue;
        }
        ranges.push(braceEscape(c3));
        i22++;
      }
      if (endPos < i22) {
        return ["", false, 0, false];
      }
      if (!ranges.length && !negs.length) {
        return ["$.", false, glob.length - pos, true];
      }
      if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) {
        const r2 = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];
        return [regexpEscape(r2), false, endPos - pos, false];
      }
      const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]";
      const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]";
      const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs;
      return [comb, uflag, endPos - pos, true];
    };
    exports2.parseClass = parseClass;
  }
});
var require_unescape = __commonJS2({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/unescape.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.unescape = void 0;
    var unescape22 = (s2, { windowsPathsNoEscape = false } = {}) => {
      return windowsPathsNoEscape ? s2.replace(/\[([^\/\\])\]/g, "$1") : s2.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1");
    };
    exports2.unescape = unescape22;
  }
});
var require_ast = __commonJS2({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/ast.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.AST = void 0;
    var brace_expressions_js_1 = require_brace_expressions();
    var unescape_js_1 = require_unescape();
    var types2 = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]);
    var isExtglobType = (c3) => types2.has(c3);
    var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))";
    var startNoDot = "(?!\\.)";
    var addPatternStart = /* @__PURE__ */ new Set(["[", "."]);
    var justDots = /* @__PURE__ */ new Set(["..", "."]);
    var reSpecials = new Set("().*{}+?[]^$\\!");
    var regExpEscape = (s2) => s2.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    var qmark = "[^/]";
    var star = qmark + "*?";
    var starNoEmpty = qmark + "+?";
    var AST = class _AST {
      type;
      #root;
      #hasMagic;
      #uflag = false;
      #parts = [];
      #parent;
      #parentIndex;
      #negs;
      #filledNegs = false;
      #options;
      #toString;
      // set to true if it's an extglob with no children
      // (which really means one child of '')
      #emptyExt = false;
      constructor(type, parent, options = {}) {
        this.type = type;
        if (type)
          this.#hasMagic = true;
        this.#parent = parent;
        this.#root = this.#parent ? this.#parent.#root : this;
        this.#options = this.#root === this ? options : this.#root.#options;
        this.#negs = this.#root === this ? [] : this.#root.#negs;
        if (type === "!" && !this.#root.#filledNegs)
          this.#negs.push(this);
        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;
      }
      get hasMagic() {
        if (this.#hasMagic !== void 0)
          return this.#hasMagic;
        for (const p of this.#parts) {
          if (typeof p === "string")
            continue;
          if (p.type || p.hasMagic)
            return this.#hasMagic = true;
        }
        return this.#hasMagic;
      }
      // reconstructs the pattern
      toString() {
        if (this.#toString !== void 0)
          return this.#toString;
        if (!this.type) {
          return this.#toString = this.#parts.map((p) => String(p)).join("");
        } else {
          return this.#toString = this.type + "(" + this.#parts.map((p) => String(p)).join("|") + ")";
        }
      }
      #fillNegs() {
        if (this !== this.#root)
          throw new Error("should only call on root");
        if (this.#filledNegs)
          return this;
        this.toString();
        this.#filledNegs = true;
        let n22;
        while (n22 = this.#negs.pop()) {
          if (n22.type !== "!")
            continue;
          let p = n22;
          let pp = p.#parent;
          while (pp) {
            for (let i22 = p.#parentIndex + 1; !pp.type && i22 < pp.#parts.length; i22++) {
              for (const part of n22.#parts) {
                if (typeof part === "string") {
                  throw new Error("string part in extglob AST??");
                }
                part.copyIn(pp.#parts[i22]);
              }
            }
            p = pp;
            pp = p.#parent;
          }
        }
        return this;
      }
      push(...parts) {
        for (const p of parts) {
          if (p === "")
            continue;
          if (typeof p !== "string" && !(p instanceof _AST && p.#parent === this)) {
            throw new Error("invalid part: " + p);
          }
          this.#parts.push(p);
        }
      }
      toJSON() {
        const ret = this.type === null ? this.#parts.slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...this.#parts.map((p) => p.toJSON())];
        if (this.isStart() && !this.type)
          ret.unshift([]);
        if (this.isEnd() && (this === this.#root || this.#root.#filledNegs && this.#parent?.type === "!")) {
          ret.push({});
        }
        return ret;
      }
      isStart() {
        if (this.#root === this)
          return true;
        if (!this.#parent?.isStart())
          return false;
        if (this.#parentIndex === 0)
          return true;
        const p = this.#parent;
        for (let i22 = 0; i22 < this.#parentIndex; i22++) {
          const pp = p.#parts[i22];
          if (!(pp instanceof _AST && pp.type === "!")) {
            return false;
          }
        }
        return true;
      }
      isEnd() {
        if (this.#root === this)
          return true;
        if (this.#parent?.type === "!")
          return true;
        if (!this.#parent?.isEnd())
          return false;
        if (!this.type)
          return this.#parent?.isEnd();
        const pl = this.#parent ? this.#parent.#parts.length : 0;
        return this.#parentIndex === pl - 1;
      }
      copyIn(part) {
        if (typeof part === "string")
          this.push(part);
        else
          this.push(part.clone(this));
      }
      clone(parent) {
        const c3 = new _AST(this.type, parent);
        for (const p of this.#parts) {
          c3.copyIn(p);
        }
        return c3;
      }
      static #parseAST(str, ast, pos, opt) {
        let escaping = false;
        let inBrace = false;
        let braceStart = -1;
        let braceNeg = false;
        if (ast.type === null) {
          let i3 = pos;
          let acc2 = "";
          while (i3 < str.length) {
            const c3 = str.charAt(i3++);
            if (escaping || c3 === "\\") {
              escaping = !escaping;
              acc2 += c3;
              continue;
            }
            if (inBrace) {
              if (i3 === braceStart + 1) {
                if (c3 === "^" || c3 === "!") {
                  braceNeg = true;
                }
              } else if (c3 === "]" && !(i3 === braceStart + 2 && braceNeg)) {
                inBrace = false;
              }
              acc2 += c3;
              continue;
            } else if (c3 === "[") {
              inBrace = true;
              braceStart = i3;
              braceNeg = false;
              acc2 += c3;
              continue;
            }
            if (!opt.noext && isExtglobType(c3) && str.charAt(i3) === "(") {
              ast.push(acc2);
              acc2 = "";
              const ext = new _AST(c3, ast);
              i3 = _AST.#parseAST(str, ext, i3, opt);
              ast.push(ext);
              continue;
            }
            acc2 += c3;
          }
          ast.push(acc2);
          return i3;
        }
        let i22 = pos + 1;
        let part = new _AST(null, ast);
        const parts = [];
        let acc = "";
        while (i22 < str.length) {
          const c3 = str.charAt(i22++);
          if (escaping || c3 === "\\") {
            escaping = !escaping;
            acc += c3;
            continue;
          }
          if (inBrace) {
            if (i22 === braceStart + 1) {
              if (c3 === "^" || c3 === "!") {
                braceNeg = true;
              }
            } else if (c3 === "]" && !(i22 === braceStart + 2 && braceNeg)) {
              inBrace = false;
            }
            acc += c3;
            continue;
          } else if (c3 === "[") {
            inBrace = true;
            braceStart = i22;
            braceNeg = false;
            acc += c3;
            continue;
          }
          if (isExtglobType(c3) && str.charAt(i22) === "(") {
            part.push(acc);
            acc = "";
            const ext = new _AST(c3, part);
            part.push(ext);
            i22 = _AST.#parseAST(str, ext, i22, opt);
            continue;
          }
          if (c3 === "|") {
            part.push(acc);
            acc = "";
            parts.push(part);
            part = new _AST(null, ast);
            continue;
          }
          if (c3 === ")") {
            if (acc === "" && ast.#parts.length === 0) {
              ast.#emptyExt = true;
            }
            part.push(acc);
            acc = "";
            ast.push(...parts, part);
            return i22;
          }
          acc += c3;
        }
        ast.type = null;
        ast.#hasMagic = void 0;
        ast.#parts = [str.substring(pos - 1)];
        return i22;
      }
      static fromGlob(pattern, options = {}) {
        const ast = new _AST(null, void 0, options);
        _AST.#parseAST(pattern, ast, 0, options);
        return ast;
      }
      // returns the regular expression if there's magic, or the unescaped
      // string if not.
      toMMPattern() {
        if (this !== this.#root)
          return this.#root.toMMPattern();
        const glob = this.toString();
        const [re3, body, hasMagic, uflag] = this.toRegExpSource();
        const anyMagic = hasMagic || this.#hasMagic || this.#options.nocase && !this.#options.nocaseMagicOnly && glob.toUpperCase() !== glob.toLowerCase();
        if (!anyMagic) {
          return body;
        }
        const flags = (this.#options.nocase ? "i" : "") + (uflag ? "u" : "");
        return Object.assign(new RegExp(`^${re3}$`, flags), {
          _src: re3,
          _glob: glob
        });
      }
      get options() {
        return this.#options;
      }
      // returns the string match, the regexp source, whether there's magic
      // in the regexp (so a regular expression is required) and whether or
      // not the uflag is needed for the regular expression (for posix classes)
      // TODO: instead of injecting the start/end at this point, just return
      // the BODY of the regexp, along with the start/end portions suitable
      // for binding the start/end in either a joined full-path makeRe context
      // (where we bind to (^|/), or a standalone matchPart context (where
      // we bind to ^, and not /).  Otherwise slashes get duped!
      //
      // In part-matching mode, the start is:
      // - if not isStart: nothing
      // - if traversal possible, but not allowed: ^(?!\.\.?$)
      // - if dots allowed or not possible: ^
      // - if dots possible and not allowed: ^(?!\.)
      // end is:
      // - if not isEnd(): nothing
      // - else: $
      //
      // In full-path matching mode, we put the slash at the START of the
      // pattern, so start is:
      // - if first pattern: same as part-matching mode
      // - if not isStart(): nothing
      // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/))
      // - if dots allowed or not possible: /
      // - if dots possible and not allowed: /(?!\.)
      // end is:
      // - if last pattern, same as part-matching mode
      // - else nothing
      //
      // Always put the (?:$|/) on negated tails, though, because that has to be
      // there to bind the end of the negated pattern portion, and it's easier to
      // just stick it in now rather than try to inject it later in the middle of
      // the pattern.
      //
      // We can just always return the same end, and leave it up to the caller
      // to know whether it's going to be used joined or in parts.
      // And, if the start is adjusted slightly, can do the same there:
      // - if not isStart: nothing
      // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$)
      // - if dots allowed or not possible: (?:/|^)
      // - if dots possible and not allowed: (?:/|^)(?!\.)
      //
      // But it's better to have a simpler binding without a conditional, for
      // performance, so probably better to return both start options.
      //
      // Then the caller just ignores the end if it's not the first pattern,
      // and the start always gets applied.
      //
      // But that's always going to be $ if it's the ending pattern, or nothing,
      // so the caller can just attach $ at the end of the pattern when building.
      //
      // So the todo is:
      // - better detect what kind of start is needed
      // - return both flavors of starting pattern
      // - attach $ at the end of the pattern when creating the actual RegExp
      //
      // Ah, but wait, no, that all only applies to the root when the first pattern
      // is not an extglob. If the first pattern IS an extglob, then we need all
      // that dot prevention biz to live in the extglob portions, because eg
      // +(*|.x*) can match .xy but not .yx.
      //
      // So, return the two flavors if it's #root and the first child is not an
      // AST, otherwise leave it to the child AST to handle it, and there,
      // use the (?:^|/) style of start binding.
      //
      // Even simplified further:
      // - Since the start for a join is eg /(?!\.) and the start for a part
      // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
      // or start or whatever) and prepend ^ or / at the Regexp construction.
      toRegExpSource(allowDot) {
        const dot = allowDot ?? !!this.#options.dot;
        if (this.#root === this)
          this.#fillNegs();
        if (!this.type) {
          const noEmpty = this.isStart() && this.isEnd();
          const src = this.#parts.map((p) => {
            const [re3, _3, hasMagic, uflag] = typeof p === "string" ? _AST.#parseGlob(p, this.#hasMagic, noEmpty) : p.toRegExpSource(allowDot);
            this.#hasMagic = this.#hasMagic || hasMagic;
            this.#uflag = this.#uflag || uflag;
            return re3;
          }).join("");
          let start2 = "";
          if (this.isStart()) {
            if (typeof this.#parts[0] === "string") {
              const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);
              if (!dotTravAllowed) {
                const aps = addPatternStart;
                const needNoTrav = (
                  // dots are allowed, and the pattern starts with [ or .
                  dot && aps.has(src.charAt(0)) || // the pattern starts with \., and then [ or .
                  src.startsWith("\\.") && aps.has(src.charAt(2)) || // the pattern starts with \.\., and then [ or .
                  src.startsWith("\\.\\.") && aps.has(src.charAt(4))
                );
                const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));
                start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : "";
              }
            }
          }
          let end = "";
          if (this.isEnd() && this.#root.#filledNegs && this.#parent?.type === "!") {
            end = "(?:$|\\/)";
          }
          const final2 = start2 + src + end;
          return [
            final2,
            (0, unescape_js_1.unescape)(src),
            this.#hasMagic = !!this.#hasMagic,
            this.#uflag
          ];
        }
        const repeated = this.type === "*" || this.type === "+";
        const start = this.type === "!" ? "(?:(?!(?:" : "(?:";
        let body = this.#partsToRegExp(dot);
        if (this.isStart() && this.isEnd() && !body && this.type !== "!") {
          const s2 = this.toString();
          this.#parts = [s2];
          this.type = null;
          this.#hasMagic = void 0;
          return [s2, (0, unescape_js_1.unescape)(this.toString()), false, false];
        }
        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : this.#partsToRegExp(true);
        if (bodyDotAllowed === body) {
          bodyDotAllowed = "";
        }
        if (bodyDotAllowed) {
          body = `(?:${body})(?:${bodyDotAllowed})*?`;
        }
        let final = "";
        if (this.type === "!" && this.#emptyExt) {
          final = (this.isStart() && !dot ? startNoDot : "") + starNoEmpty;
        } else {
          const close = this.type === "!" ? (
            // !() must match something,but !(x) can match ''
            "))" + (this.isStart() && !dot && !allowDot ? startNoDot : "") + star + ")"
          ) : this.type === "@" ? ")" : this.type === "?" ? ")?" : this.type === "+" && bodyDotAllowed ? ")" : this.type === "*" && bodyDotAllowed ? `)?` : `)${this.type}`;
          final = start + body + close;
        }
        return [
          final,
          (0, unescape_js_1.unescape)(body),
          this.#hasMagic = !!this.#hasMagic,
          this.#uflag
        ];
      }
      #partsToRegExp(dot) {
        return this.#parts.map((p) => {
          if (typeof p === "string") {
            throw new Error("string type in extglob ast??");
          }
          const [re3, _3, _hasMagic, uflag] = p.toRegExpSource(dot);
          this.#uflag = this.#uflag || uflag;
          return re3;
        }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join("|");
      }
      static #parseGlob(glob, hasMagic, noEmpty = false) {
        let escaping = false;
        let re3 = "";
        let uflag = false;
        for (let i22 = 0; i22 < glob.length; i22++) {
          const c3 = glob.charAt(i22);
          if (escaping) {
            escaping = false;
            re3 += (reSpecials.has(c3) ? "\\" : "") + c3;
            continue;
          }
          if (c3 === "\\") {
            if (i22 === glob.length - 1) {
              re3 += "\\\\";
            } else {
              escaping = true;
            }
            continue;
          }
          if (c3 === "[") {
            const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i22);
            if (consumed) {
              re3 += src;
              uflag = uflag || needUflag;
              i22 += consumed - 1;
              hasMagic = hasMagic || magic;
              continue;
            }
          }
          if (c3 === "*") {
            if (noEmpty && glob === "*")
              re3 += starNoEmpty;
            else
              re3 += star;
            hasMagic = true;
            continue;
          }
          if (c3 === "?") {
            re3 += qmark;
            hasMagic = true;
            continue;
          }
          re3 += regExpEscape(c3);
        }
        return [re3, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];
      }
    };
    exports2.AST = AST;
  }
});
var require_escape3 = __commonJS2({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/escape.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.escape = void 0;
    var escape22 = (s2, { windowsPathsNoEscape = false } = {}) => {
      return windowsPathsNoEscape ? s2.replace(/[?*()[\]]/g, "[$&]") : s2.replace(/[?*()[\]\\]/g, "\\$&");
    };
    exports2.escape = escape22;
  }
});
var require_commonjs2 = __commonJS2({
  "../../node_modules/.pnpm/minimatch@9.0.5/node_modules/minimatch/dist/commonjs/index.js"(exports2) {
    "use strict";
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.unescape = exports2.escape = exports2.AST = exports2.Minimatch = exports2.match = exports2.makeRe = exports2.braceExpand = exports2.defaults = exports2.filter = exports2.GLOBSTAR = exports2.sep = exports2.minimatch = void 0;
    var brace_expansion_1 = __importDefault2(require_brace_expansion());
    var assert_valid_pattern_js_1 = require_assert_valid_pattern();
    var ast_js_1 = require_ast();
    var escape_js_1 = require_escape3();
    var unescape_js_1 = require_unescape();
    var minimatch = (p, pattern, options = {}) => {
      (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
      if (!options.nocomment && pattern.charAt(0) === "#") {
        return false;
      }
      return new Minimatch(pattern, options).match(p);
    };
    exports2.minimatch = minimatch;
    var starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/;
    var starDotExtTest = (ext2) => (f) => !f.startsWith(".") && f.endsWith(ext2);
    var starDotExtTestDot = (ext2) => (f) => f.endsWith(ext2);
    var starDotExtTestNocase = (ext2) => {
      ext2 = ext2.toLowerCase();
      return (f) => !f.startsWith(".") && f.toLowerCase().endsWith(ext2);
    };
    var starDotExtTestNocaseDot = (ext2) => {
      ext2 = ext2.toLowerCase();
      return (f) => f.toLowerCase().endsWith(ext2);
    };
    var starDotStarRE = /^\*+\.\*+$/;
    var starDotStarTest = (f) => !f.startsWith(".") && f.includes(".");
    var starDotStarTestDot = (f) => f !== "." && f !== ".." && f.includes(".");
    var dotStarRE = /^\.\*+$/;
    var dotStarTest = (f) => f !== "." && f !== ".." && f.startsWith(".");
    var starRE = /^\*+$/;
    var starTest = (f) => f.length !== 0 && !f.startsWith(".");
    var starTestDot = (f) => f.length !== 0 && f !== "." && f !== "..";
    var qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/;
    var qmarksTestNocase = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExt([$0]);
      if (!ext2)
        return noext;
      ext2 = ext2.toLowerCase();
      return (f) => noext(f) && f.toLowerCase().endsWith(ext2);
    };
    var qmarksTestNocaseDot = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExtDot([$0]);
      if (!ext2)
        return noext;
      ext2 = ext2.toLowerCase();
      return (f) => noext(f) && f.toLowerCase().endsWith(ext2);
    };
    var qmarksTestDot = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExtDot([$0]);
      return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);
    };
    var qmarksTest = ([$0, ext2 = ""]) => {
      const noext = qmarksTestNoExt([$0]);
      return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);
    };
    var qmarksTestNoExt = ([$0]) => {
      const len = $0.length;
      return (f) => f.length === len && !f.startsWith(".");
    };
    var qmarksTestNoExtDot = ([$0]) => {
      const len = $0.length;
      return (f) => f.length === len && f !== "." && f !== "..";
    };
    var defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix";
    var path22 = {
      win32: { sep: "\\" },
      posix: { sep: "/" }
    };
    exports2.sep = defaultPlatform === "win32" ? path22.win32.sep : path22.posix.sep;
    exports2.minimatch.sep = exports2.sep;
    exports2.GLOBSTAR = Symbol("globstar **");
    exports2.minimatch.GLOBSTAR = exports2.GLOBSTAR;
    var qmark = "[^/]";
    var star = qmark + "*?";
    var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";
    var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?";
    var filter22 = (pattern, options = {}) => (p) => (0, exports2.minimatch)(p, pattern, options);
    exports2.filter = filter22;
    exports2.minimatch.filter = exports2.filter;
    var ext = (a2, b2 = {}) => Object.assign({}, a2, b2);
    var defaults42 = (def) => {
      if (!def || typeof def !== "object" || !Object.keys(def).length) {
        return exports2.minimatch;
      }
      const orig = exports2.minimatch;
      const m2 = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));
      return Object.assign(m2, {
        Minimatch: class Minimatch extends orig.Minimatch {
          constructor(pattern, options = {}) {
            super(pattern, ext(def, options));
          }
          static defaults(options) {
            return orig.defaults(ext(def, options)).Minimatch;
          }
        },
        AST: class AST extends orig.AST {
          /* c8 ignore start */
          constructor(type, parent, options = {}) {
            super(type, parent, ext(def, options));
          }
          /* c8 ignore stop */
          static fromGlob(pattern, options = {}) {
            return orig.AST.fromGlob(pattern, ext(def, options));
          }
        },
        unescape: (s2, options = {}) => orig.unescape(s2, ext(def, options)),
        escape: (s2, options = {}) => orig.escape(s2, ext(def, options)),
        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),
        defaults: (options) => orig.defaults(ext(def, options)),
        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),
        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),
        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),
        sep: orig.sep,
        GLOBSTAR: exports2.GLOBSTAR
      });
    };
    exports2.defaults = defaults42;
    exports2.minimatch.defaults = exports2.defaults;
    var braceExpand = (pattern, options = {}) => {
      (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
      if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
        return [pattern];
      }
      return (0, brace_expansion_1.default)(pattern);
    };
    exports2.braceExpand = braceExpand;
    exports2.minimatch.braceExpand = exports2.braceExpand;
    var makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();
    exports2.makeRe = makeRe;
    exports2.minimatch.makeRe = exports2.makeRe;
    var match = (list, pattern, options = {}) => {
      const mm = new Minimatch(pattern, options);
      list = list.filter((f) => mm.match(f));
      if (mm.options.nonull && !list.length) {
        list.push(pattern);
      }
      return list;
    };
    exports2.match = match;
    exports2.minimatch.match = exports2.match;
    var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
    var regExpEscape = (s2) => s2.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
    var Minimatch = class {
      options;
      set;
      pattern;
      windowsPathsNoEscape;
      nonegate;
      negate;
      comment;
      empty;
      preserveMultipleSlashes;
      partial;
      globSet;
      globParts;
      nocase;
      isWindows;
      platform;
      windowsNoMagicRoot;
      regexp;
      constructor(pattern, options = {}) {
        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
        options = options || {};
        this.options = options;
        this.pattern = pattern;
        this.platform = options.platform || defaultPlatform;
        this.isWindows = this.platform === "win32";
        this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;
        if (this.windowsPathsNoEscape) {
          this.pattern = this.pattern.replace(/\\/g, "/");
        }
        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;
        this.regexp = null;
        this.negate = false;
        this.nonegate = !!options.nonegate;
        this.comment = false;
        this.empty = false;
        this.partial = !!options.partial;
        this.nocase = !!this.options.nocase;
        this.windowsNoMagicRoot = options.windowsNoMagicRoot !== void 0 ? options.windowsNoMagicRoot : !!(this.isWindows && this.nocase);
        this.globSet = [];
        this.globParts = [];
        this.set = [];
        this.make();
      }
      hasMagic() {
        if (this.options.magicalBraces && this.set.length > 1) {
          return true;
        }
        for (const pattern of this.set) {
          for (const part of pattern) {
            if (typeof part !== "string")
              return true;
          }
        }
        return false;
      }
      debug(..._3) {
      }
      make() {
        const pattern = this.pattern;
        const options = this.options;
        if (!options.nocomment && pattern.charAt(0) === "#") {
          this.comment = true;
          return;
        }
        if (!pattern) {
          this.empty = true;
          return;
        }
        this.parseNegate();
        this.globSet = [...new Set(this.braceExpand())];
        if (options.debug) {
          this.debug = (...args) => console.error(...args);
        }
        this.debug(this.pattern, this.globSet);
        const rawGlobParts = this.globSet.map((s2) => this.slashSplit(s2));
        this.globParts = this.preprocess(rawGlobParts);
        this.debug(this.pattern, this.globParts);
        let set = this.globParts.map((s2, _3, __) => {
          if (this.isWindows && this.windowsNoMagicRoot) {
            const isUNC = s2[0] === "" && s2[1] === "" && (s2[2] === "?" || !globMagic.test(s2[2])) && !globMagic.test(s2[3]);
            const isDrive = /^[a-z]:/i.test(s2[0]);
            if (isUNC) {
              return [...s2.slice(0, 4), ...s2.slice(4).map((ss2) => this.parse(ss2))];
            } else if (isDrive) {
              return [s2[0], ...s2.slice(1).map((ss2) => this.parse(ss2))];
            }
          }
          return s2.map((ss2) => this.parse(ss2));
        });
        this.debug(this.pattern, set);
        this.set = set.filter((s2) => s2.indexOf(false) === -1);
        if (this.isWindows) {
          for (let i22 = 0; i22 < this.set.length; i22++) {
            const p = this.set[i22];
            if (p[0] === "" && p[1] === "" && this.globParts[i22][2] === "?" && typeof p[3] === "string" && /^[a-z]:$/i.test(p[3])) {
              p[2] = "?";
            }
          }
        }
        this.debug(this.pattern, this.set);
      }
      // various transforms to equivalent pattern sets that are
      // faster to process in a filesystem walk.  The goal is to
      // eliminate what we can, and push all ** patterns as far
      // to the right as possible, even if it increases the number
      // of patterns that we have to process.
      preprocess(globParts) {
        if (this.options.noglobstar) {
          for (let i22 = 0; i22 < globParts.length; i22++) {
            for (let j2 = 0; j2 < globParts[i22].length; j2++) {
              if (globParts[i22][j2] === "**") {
                globParts[i22][j2] = "*";
              }
            }
          }
        }
        const { optimizationLevel = 1 } = this.options;
        if (optimizationLevel >= 2) {
          globParts = this.firstPhasePreProcess(globParts);
          globParts = this.secondPhasePreProcess(globParts);
        } else if (optimizationLevel >= 1) {
          globParts = this.levelOneOptimize(globParts);
        } else {
          globParts = this.adjascentGlobstarOptimize(globParts);
        }
        return globParts;
      }
      // just get rid of adjascent ** portions
      adjascentGlobstarOptimize(globParts) {
        return globParts.map((parts) => {
          let gs2 = -1;
          while (-1 !== (gs2 = parts.indexOf("**", gs2 + 1))) {
            let i22 = gs2;
            while (parts[i22 + 1] === "**") {
              i22++;
            }
            if (i22 !== gs2) {
              parts.splice(gs2, i22 - gs2);
            }
          }
          return parts;
        });
      }
      // get rid of adjascent ** and resolve .. portions
      levelOneOptimize(globParts) {
        return globParts.map((parts) => {
          parts = parts.reduce((set, part) => {
            const prev = set[set.length - 1];
            if (part === "**" && prev === "**") {
              return set;
            }
            if (part === "..") {
              if (prev && prev !== ".." && prev !== "." && prev !== "**") {
                set.pop();
                return set;
              }
            }
            set.push(part);
            return set;
          }, []);
          return parts.length === 0 ? [""] : parts;
        });
      }
      levelTwoFileOptimize(parts) {
        if (!Array.isArray(parts)) {
          parts = this.slashSplit(parts);
        }
        let didSomething = false;
        do {
          didSomething = false;
          if (!this.preserveMultipleSlashes) {
            for (let i22 = 1; i22 < parts.length - 1; i22++) {
              const p = parts[i22];
              if (i22 === 1 && p === "" && parts[0] === "")
                continue;
              if (p === "." || p === "") {
                didSomething = true;
                parts.splice(i22, 1);
                i22--;
              }
            }
            if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
              didSomething = true;
              parts.pop();
            }
          }
          let dd = 0;
          while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
            const p = parts[dd - 1];
            if (p && p !== "." && p !== ".." && p !== "**") {
              didSomething = true;
              parts.splice(dd - 1, 2);
              dd -= 2;
            }
          }
        } while (didSomething);
        return parts.length === 0 ? [""] : parts;
      }
      // First phase: single-pattern processing
      // <pre> is 1 or more portions
      // <rest> is 1 or more portions
      // <p> is any portion other than ., .., '', or **
      // <e> is . or ''
      //
      // **/.. is *brutal* for filesystem walking performance, because
      // it effectively resets the recursive walk each time it occurs,
      // and ** cannot be reduced out by a .. pattern part like a regexp
      // or most strings (other than .., ., and '') can be.
      //
      // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}
      // <pre>/<e>/<rest> -> <pre>/<rest>
      // <pre>/<p>/../<rest> -> <pre>/<rest>
      // **/**/<rest> -> **/<rest>
      //
      // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow
      // this WOULD be allowed if ** did follow symlinks, or * didn't
      firstPhasePreProcess(globParts) {
        let didSomething = false;
        do {
          didSomething = false;
          for (let parts of globParts) {
            let gs2 = -1;
            while (-1 !== (gs2 = parts.indexOf("**", gs2 + 1))) {
              let gss = gs2;
              while (parts[gss + 1] === "**") {
                gss++;
              }
              if (gss > gs2) {
                parts.splice(gs2 + 1, gss - gs2);
              }
              let next = parts[gs2 + 1];
              const p = parts[gs2 + 2];
              const p2 = parts[gs2 + 3];
              if (next !== "..")
                continue;
              if (!p || p === "." || p === ".." || !p2 || p2 === "." || p2 === "..") {
                continue;
              }
              didSomething = true;
              parts.splice(gs2, 1);
              const other = parts.slice(0);
              other[gs2] = "**";
              globParts.push(other);
              gs2--;
            }
            if (!this.preserveMultipleSlashes) {
              for (let i22 = 1; i22 < parts.length - 1; i22++) {
                const p = parts[i22];
                if (i22 === 1 && p === "" && parts[0] === "")
                  continue;
                if (p === "." || p === "") {
                  didSomething = true;
                  parts.splice(i22, 1);
                  i22--;
                }
              }
              if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
                didSomething = true;
                parts.pop();
              }
            }
            let dd = 0;
            while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
              const p = parts[dd - 1];
              if (p && p !== "." && p !== ".." && p !== "**") {
                didSomething = true;
                const needDot = dd === 1 && parts[dd + 1] === "**";
                const splin = needDot ? ["."] : [];
                parts.splice(dd - 1, 2, ...splin);
                if (parts.length === 0)
                  parts.push("");
                dd -= 2;
              }
            }
          }
        } while (didSomething);
        return globParts;
      }
      // second phase: multi-pattern dedupes
      // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest>
      // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest>
      // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest>
      //
      // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest>
      // ^-- not valid because ** doens't follow symlinks
      secondPhasePreProcess(globParts) {
        for (let i22 = 0; i22 < globParts.length - 1; i22++) {
          for (let j2 = i22 + 1; j2 < globParts.length; j2++) {
            const matched = this.partsMatch(globParts[i22], globParts[j2], !this.preserveMultipleSlashes);
            if (matched) {
              globParts[i22] = [];
              globParts[j2] = matched;
              break;
            }
          }
        }
        return globParts.filter((gs2) => gs2.length);
      }
      partsMatch(a2, b2, emptyGSMatch = false) {
        let ai3 = 0;
        let bi3 = 0;
        let result = [];
        let which = "";
        while (ai3 < a2.length && bi3 < b2.length) {
          if (a2[ai3] === b2[bi3]) {
            result.push(which === "b" ? b2[bi3] : a2[ai3]);
            ai3++;
            bi3++;
          } else if (emptyGSMatch && a2[ai3] === "**" && b2[bi3] === a2[ai3 + 1]) {
            result.push(a2[ai3]);
            ai3++;
          } else if (emptyGSMatch && b2[bi3] === "**" && a2[ai3] === b2[bi3 + 1]) {
            result.push(b2[bi3]);
            bi3++;
          } else if (a2[ai3] === "*" && b2[bi3] && (this.options.dot || !b2[bi3].startsWith(".")) && b2[bi3] !== "**") {
            if (which === "b")
              return false;
            which = "a";
            result.push(a2[ai3]);
            ai3++;
            bi3++;
          } else if (b2[bi3] === "*" && a2[ai3] && (this.options.dot || !a2[ai3].startsWith(".")) && a2[ai3] !== "**") {
            if (which === "a")
              return false;
            which = "b";
            result.push(b2[bi3]);
            ai3++;
            bi3++;
          } else {
            return false;
          }
        }
        return a2.length === b2.length && result;
      }
      parseNegate() {
        if (this.nonegate)
          return;
        const pattern = this.pattern;
        let negate = false;
        let negateOffset = 0;
        for (let i22 = 0; i22 < pattern.length && pattern.charAt(i22) === "!"; i22++) {
          negate = !negate;
          negateOffset++;
        }
        if (negateOffset)
          this.pattern = pattern.slice(negateOffset);
        this.negate = negate;
      }
      // set partial to true to test if, for example,
      // "/a/b" matches the start of "/*/b/*/d"
      // Partial means, if you run out of file before you run
      // out of pattern, then that's fine, as long as all
      // the parts match.
      matchOne(file, pattern, partial2 = false) {
        const options = this.options;
        if (this.isWindows) {
          const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
          const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
          const patternDrive = typeof pattern[0] === "string" && /^[a-z]:$/i.test(pattern[0]);
          const patternUNC = !patternDrive && pattern[0] === "" && pattern[1] === "" && pattern[2] === "?" && typeof pattern[3] === "string" && /^[a-z]:$/i.test(pattern[3]);
          const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
          const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
          if (typeof fdi === "number" && typeof pdi === "number") {
            const [fd2, pd] = [file[fdi], pattern[pdi]];
            if (fd2.toLowerCase() === pd.toLowerCase()) {
              pattern[pdi] = fd2;
              if (pdi > fdi) {
                pattern = pattern.slice(pdi);
              } else if (fdi > pdi) {
                file = file.slice(fdi);
              }
            }
          }
        }
        const { optimizationLevel = 1 } = this.options;
        if (optimizationLevel >= 2) {
          file = this.levelTwoFileOptimize(file);
        }
        this.debug("matchOne", this, { file, pattern });
        this.debug("matchOne", file.length, pattern.length);
        for (var fi3 = 0, pi3 = 0, fl2 = file.length, pl = pattern.length; fi3 < fl2 && pi3 < pl; fi3++, pi3++) {
          this.debug("matchOne loop");
          var p = pattern[pi3];
          var f = file[fi3];
          this.debug(pattern, p, f);
          if (p === false) {
            return false;
          }
          if (p === exports2.GLOBSTAR) {
            this.debug("GLOBSTAR", [pattern, p, f]);
            var fr3 = fi3;
            var pr3 = pi3 + 1;
            if (pr3 === pl) {
              this.debug("** at the end");
              for (; fi3 < fl2; fi3++) {
                if (file[fi3] === "." || file[fi3] === ".." || !options.dot && file[fi3].charAt(0) === ".")
                  return false;
              }
              return true;
            }
            while (fr3 < fl2) {
              var swallowee = file[fr3];
              this.debug("\nglobstar while", file, fr3, pattern, pr3, swallowee);
              if (this.matchOne(file.slice(fr3), pattern.slice(pr3), partial2)) {
                this.debug("globstar found match!", fr3, fl2, swallowee);
                return true;
              } else {
                if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
                  this.debug("dot detected!", file, fr3, pattern, pr3);
                  break;
                }
                this.debug("globstar swallow a segment, and continue");
                fr3++;
              }
            }
            if (partial2) {
              this.debug("\n>>> no match, partial?", file, fr3, pattern, pr3);
              if (fr3 === fl2) {
                return true;
              }
            }
            return false;
          }
          let hit;
          if (typeof p === "string") {
            hit = f === p;
            this.debug("string match", p, f, hit);
          } else {
            hit = p.test(f);
            this.debug("pattern match", p, f, hit);
          }
          if (!hit)
            return false;
        }
        if (fi3 === fl2 && pi3 === pl) {
          return true;
        } else if (fi3 === fl2) {
          return partial2;
        } else if (pi3 === pl) {
          return fi3 === fl2 - 1 && file[fi3] === "";
        } else {
          throw new Error("wtf?");
        }
      }
      braceExpand() {
        return (0, exports2.braceExpand)(this.pattern, this.options);
      }
      parse(pattern) {
        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
        const options = this.options;
        if (pattern === "**")
          return exports2.GLOBSTAR;
        if (pattern === "")
          return "";
        let m2;
        let fastTest = null;
        if (m2 = pattern.match(starRE)) {
          fastTest = options.dot ? starTestDot : starTest;
        } else if (m2 = pattern.match(starDotExtRE)) {
          fastTest = (options.nocase ? options.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options.dot ? starDotExtTestDot : starDotExtTest)(m2[1]);
        } else if (m2 = pattern.match(qmarksRE)) {
          fastTest = (options.nocase ? options.dot ? qmarksTestNocaseDot : qmarksTestNocase : options.dot ? qmarksTestDot : qmarksTest)(m2);
        } else if (m2 = pattern.match(starDotStarRE)) {
          fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
        } else if (m2 = pattern.match(dotStarRE)) {
          fastTest = dotStarTest;
        }
        const re3 = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();
        if (fastTest && typeof re3 === "object") {
          Reflect.defineProperty(re3, "test", { value: fastTest });
        }
        return re3;
      }
      makeRe() {
        if (this.regexp || this.regexp === false)
          return this.regexp;
        const set = this.set;
        if (!set.length) {
          this.regexp = false;
          return this.regexp;
        }
        const options = this.options;
        const twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot;
        const flags = new Set(options.nocase ? ["i"] : []);
        let re3 = set.map((pattern) => {
          const pp = pattern.map((p) => {
            if (p instanceof RegExp) {
              for (const f of p.flags.split(""))
                flags.add(f);
            }
            return typeof p === "string" ? regExpEscape(p) : p === exports2.GLOBSTAR ? exports2.GLOBSTAR : p._src;
          });
          pp.forEach((p, i22) => {
            const next = pp[i22 + 1];
            const prev = pp[i22 - 1];
            if (p !== exports2.GLOBSTAR || prev === exports2.GLOBSTAR) {
              return;
            }
            if (prev === void 0) {
              if (next !== void 0 && next !== exports2.GLOBSTAR) {
                pp[i22 + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
              } else {
                pp[i22] = twoStar;
              }
            } else if (next === void 0) {
              pp[i22 - 1] = prev + "(?:\\/|" + twoStar + ")?";
            } else if (next !== exports2.GLOBSTAR) {
              pp[i22 - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
              pp[i22 + 1] = exports2.GLOBSTAR;
            }
          });
          return pp.filter((p) => p !== exports2.GLOBSTAR).join("/");
        }).join("|");
        const [open, close] = set.length > 1 ? ["(?:", ")"] : ["", ""];
        re3 = "^" + open + re3 + close + "$";
        if (this.negate)
          re3 = "^(?!" + re3 + ").+$";
        try {
          this.regexp = new RegExp(re3, [...flags].join(""));
        } catch (ex) {
          this.regexp = false;
        }
        return this.regexp;
      }
      slashSplit(p) {
        if (this.preserveMultipleSlashes) {
          return p.split("/");
        } else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
          return ["", ...p.split(/\/+/)];
        } else {
          return p.split(/\/+/);
        }
      }
      match(f, partial2 = this.partial) {
        this.debug("match", f, this.pattern);
        if (this.comment) {
          return false;
        }
        if (this.empty) {
          return f === "";
        }
        if (f === "/" && partial2) {
          return true;
        }
        const options = this.options;
        if (this.isWindows) {
          f = f.split("\\").join("/");
        }
        const ff = this.slashSplit(f);
        this.debug(this.pattern, "split", ff);
        const set = this.set;
        this.debug(this.pattern, "set", set);
        let filename = ff[ff.length - 1];
        if (!filename) {
          for (let i22 = ff.length - 2; !filename && i22 >= 0; i22--) {
            filename = ff[i22];
          }
        }
        for (let i22 = 0; i22 < set.length; i22++) {
          const pattern = set[i22];
          let file = ff;
          if (options.matchBase && pattern.length === 1) {
            file = [filename];
          }
          const hit = this.matchOne(file, pattern, partial2);
          if (hit) {
            if (options.flipNegate) {
              return true;
            }
            return !this.negate;
          }
        }
        if (options.flipNegate) {
          return false;
        }
        return this.negate;
      }
      static defaults(def) {
        return exports2.minimatch.defaults(def).Minimatch;
      }
    };
    exports2.Minimatch = Minimatch;
    var ast_js_2 = require_ast();
    Object.defineProperty(exports2, "AST", { enumerable: true, get: function() {
      return ast_js_2.AST;
    } });
    var escape_js_2 = require_escape3();
    Object.defineProperty(exports2, "escape", { enumerable: true, get: function() {
      return escape_js_2.escape;
    } });
    var unescape_js_2 = require_unescape();
    Object.defineProperty(exports2, "unescape", { enumerable: true, get: function() {
      return unescape_js_2.unescape;
    } });
    exports2.minimatch.AST = ast_js_1.AST;
    exports2.minimatch.Minimatch = Minimatch;
    exports2.minimatch.escape = escape_js_1.escape;
    exports2.minimatch.unescape = unescape_js_1.unescape;
  }
});
var require_cjs10 = __commonJS2({
  "../../node_modules/.pnpm/tldts@7.0.23/node_modules/tldts/dist/cjs/index.js"(exports2) {
    "use strict";
    function shareSameDomainSuffix(hostname, vhost) {
      if (hostname.endsWith(vhost)) {
        return hostname.length === vhost.length || hostname[hostname.length - vhost.length - 1] === ".";
      }
      return false;
    }
    function extractDomainWithSuffix(hostname, publicSuffix) {
      const publicSuffixIndex = hostname.length - publicSuffix.length - 2;
      const lastDotBeforeSuffixIndex = hostname.lastIndexOf(".", publicSuffixIndex);
      if (lastDotBeforeSuffixIndex === -1) {
        return hostname;
      }
      return hostname.slice(lastDotBeforeSuffixIndex + 1);
    }
    function getDomain$1(suffix, hostname, options) {
      if (options.validHosts !== null) {
        const validHosts = options.validHosts;
        for (const vhost of validHosts) {
          if (
            /*@__INLINE__*/
            shareSameDomainSuffix(hostname, vhost)
          ) {
            return vhost;
          }
        }
      }
      let numberOfLeadingDots = 0;
      if (hostname.startsWith(".")) {
        while (numberOfLeadingDots < hostname.length && hostname[numberOfLeadingDots] === ".") {
          numberOfLeadingDots += 1;
        }
      }
      if (suffix.length === hostname.length - numberOfLeadingDots) {
        return null;
      }
      return (
        /*@__INLINE__*/
        extractDomainWithSuffix(hostname, suffix)
      );
    }
    function getDomainWithoutSuffix$1(domain, suffix) {
      return domain.slice(0, -suffix.length - 1);
    }
    function extractHostname(url2, urlIsValidHostname) {
      let start = 0;
      let end = url2.length;
      let hasUpper = false;
      if (!urlIsValidHostname) {
        if (url2.startsWith("data:")) {
          return null;
        }
        while (start < url2.length && url2.charCodeAt(start) <= 32) {
          start += 1;
        }
        while (end > start + 1 && url2.charCodeAt(end - 1) <= 32) {
          end -= 1;
        }
        if (url2.charCodeAt(start) === 47 && url2.charCodeAt(start + 1) === 47) {
          start += 2;
        } else {
          const indexOfProtocol = url2.indexOf(":/", start);
          if (indexOfProtocol !== -1) {
            const protocolSize = indexOfProtocol - start;
            const c0 = url2.charCodeAt(start);
            const c1 = url2.charCodeAt(start + 1);
            const c22 = url2.charCodeAt(start + 2);
            const c3 = url2.charCodeAt(start + 3);
            const c4 = url2.charCodeAt(start + 4);
            if (protocolSize === 5 && c0 === 104 && c1 === 116 && c22 === 116 && c3 === 112 && c4 === 115) ;
            else if (protocolSize === 4 && c0 === 104 && c1 === 116 && c22 === 116 && c3 === 112) ;
            else if (protocolSize === 3 && c0 === 119 && c1 === 115 && c22 === 115) ;
            else if (protocolSize === 2 && c0 === 119 && c1 === 115) ;
            else {
              for (let i22 = start; i22 < indexOfProtocol; i22 += 1) {
                const lowerCaseCode = url2.charCodeAt(i22) | 32;
                if (!(lowerCaseCode >= 97 && lowerCaseCode <= 122 || // [a, z]
                lowerCaseCode >= 48 && lowerCaseCode <= 57 || // [0, 9]
                lowerCaseCode === 46 || // '.'
                lowerCaseCode === 45 || // '-'
                lowerCaseCode === 43)) {
                  return null;
                }
              }
            }
            start = indexOfProtocol + 2;
            while (url2.charCodeAt(start) === 47) {
              start += 1;
            }
          }
        }
        let indexOfIdentifier = -1;
        let indexOfClosingBracket = -1;
        let indexOfPort = -1;
        for (let i22 = start; i22 < end; i22 += 1) {
          const code = url2.charCodeAt(i22);
          if (code === 35 || // '#'
          code === 47 || // '/'
          code === 63) {
            end = i22;
            break;
          } else if (code === 64) {
            indexOfIdentifier = i22;
          } else if (code === 93) {
            indexOfClosingBracket = i22;
          } else if (code === 58) {
            indexOfPort = i22;
          } else if (code >= 65 && code <= 90) {
            hasUpper = true;
          }
        }
        if (indexOfIdentifier !== -1 && indexOfIdentifier > start && indexOfIdentifier < end) {
          start = indexOfIdentifier + 1;
        }
        if (url2.charCodeAt(start) === 91) {
          if (indexOfClosingBracket !== -1) {
            return url2.slice(start + 1, indexOfClosingBracket).toLowerCase();
          }
          return null;
        } else if (indexOfPort !== -1 && indexOfPort > start && indexOfPort < end) {
          end = indexOfPort;
        }
      }
      while (end > start + 1 && url2.charCodeAt(end - 1) === 46) {
        end -= 1;
      }
      const hostname = start !== 0 || end !== url2.length ? url2.slice(start, end) : url2;
      if (hasUpper) {
        return hostname.toLowerCase();
      }
      return hostname;
    }
    function isProbablyIpv4(hostname) {
      if (hostname.length < 7) {
        return false;
      }
      if (hostname.length > 15) {
        return false;
      }
      let numberOfDots = 0;
      for (let i22 = 0; i22 < hostname.length; i22 += 1) {
        const code = hostname.charCodeAt(i22);
        if (code === 46) {
          numberOfDots += 1;
        } else if (code < 48 || code > 57) {
          return false;
        }
      }
      return numberOfDots === 3 && hostname.charCodeAt(0) !== 46 && hostname.charCodeAt(hostname.length - 1) !== 46;
    }
    function isProbablyIpv6(hostname) {
      if (hostname.length < 3) {
        return false;
      }
      let start = hostname.startsWith("[") ? 1 : 0;
      let end = hostname.length;
      if (hostname[end - 1] === "]") {
        end -= 1;
      }
      if (end - start > 39) {
        return false;
      }
      let hasColon = false;
      for (; start < end; start += 1) {
        const code = hostname.charCodeAt(start);
        if (code === 58) {
          hasColon = true;
        } else if (!(code >= 48 && code <= 57 || // 0-9
        code >= 97 && code <= 102 || // a-f
        code >= 65 && code <= 90)) {
          return false;
        }
      }
      return hasColon;
    }
    function isIp(hostname) {
      return isProbablyIpv6(hostname) || isProbablyIpv4(hostname);
    }
    function isValidAscii(code) {
      return code >= 97 && code <= 122 || code >= 48 && code <= 57 || code > 127;
    }
    function isValidHostname(hostname) {
      if (hostname.length > 255) {
        return false;
      }
      if (hostname.length === 0) {
        return false;
      }
      if (
        /*@__INLINE__*/
        !isValidAscii(hostname.charCodeAt(0)) && hostname.charCodeAt(0) !== 46 && // '.' (dot)
        hostname.charCodeAt(0) !== 95
      ) {
        return false;
      }
      let lastDotIndex = -1;
      let lastCharCode = -1;
      const len = hostname.length;
      for (let i22 = 0; i22 < len; i22 += 1) {
        const code = hostname.charCodeAt(i22);
        if (code === 46) {
          if (
            // Check that previous label is < 63 bytes long (64 = 63 + '.')
            i22 - lastDotIndex > 64 || // Check that previous character was not already a '.'
            lastCharCode === 46 || // Check that the previous label does not end with a '-' (dash)
            lastCharCode === 45 || // Check that the previous label does not end with a '_' (underscore)
            lastCharCode === 95
          ) {
            return false;
          }
          lastDotIndex = i22;
        } else if (!/*@__INLINE__*/
        (isValidAscii(code) || code === 45 || code === 95)) {
          return false;
        }
        lastCharCode = code;
      }
      return (
        // Check that last label is shorter than 63 chars
        len - lastDotIndex - 1 <= 63 && // Check that the last character is an allowed trailing label character.
        // Since we already checked that the char is a valid hostname character,
        // we only need to check that it's different from '-'.
        lastCharCode !== 45
      );
    }
    function setDefaultsImpl({ allowIcannDomains = true, allowPrivateDomains = false, detectIp = true, extractHostname: extractHostname2 = true, mixedInputs = true, validHosts = null, validateHostname = true }) {
      return {
        allowIcannDomains,
        allowPrivateDomains,
        detectIp,
        extractHostname: extractHostname2,
        mixedInputs,
        validHosts,
        validateHostname
      };
    }
    var DEFAULT_OPTIONS2 = (
      /*@__INLINE__*/
      setDefaultsImpl({})
    );
    function setDefaults(options) {
      if (options === void 0) {
        return DEFAULT_OPTIONS2;
      }
      return (
        /*@__INLINE__*/
        setDefaultsImpl(options)
      );
    }
    function getSubdomain$1(hostname, domain) {
      if (domain.length === hostname.length) {
        return "";
      }
      return hostname.slice(0, -domain.length - 1);
    }
    function getEmptyResult() {
      return {
        domain: null,
        domainWithoutSuffix: null,
        hostname: null,
        isIcann: null,
        isIp: null,
        isPrivate: null,
        publicSuffix: null,
        subdomain: null
      };
    }
    function resetResult(result) {
      result.domain = null;
      result.domainWithoutSuffix = null;
      result.hostname = null;
      result.isIcann = null;
      result.isIp = null;
      result.isPrivate = null;
      result.publicSuffix = null;
      result.subdomain = null;
    }
    function parseImpl(url2, step, suffixLookup2, partialOptions, result) {
      const options = (
        /*@__INLINE__*/
        setDefaults(partialOptions)
      );
      if (typeof url2 !== "string") {
        return result;
      }
      if (!options.extractHostname) {
        result.hostname = url2;
      } else if (options.mixedInputs) {
        result.hostname = extractHostname(url2, isValidHostname(url2));
      } else {
        result.hostname = extractHostname(url2, false);
      }
      if (options.detectIp && result.hostname !== null) {
        result.isIp = isIp(result.hostname);
        if (result.isIp) {
          return result;
        }
      }
      if (options.validateHostname && options.extractHostname && result.hostname !== null && !isValidHostname(result.hostname)) {
        result.hostname = null;
        return result;
      }
      if (step === 0 || result.hostname === null) {
        return result;
      }
      suffixLookup2(result.hostname, options, result);
      if (step === 2 || result.publicSuffix === null) {
        return result;
      }
      result.domain = getDomain$1(result.publicSuffix, result.hostname, options);
      if (step === 3 || result.domain === null) {
        return result;
      }
      result.subdomain = getSubdomain$1(result.hostname, result.domain);
      if (step === 4) {
        return result;
      }
      result.domainWithoutSuffix = getDomainWithoutSuffix$1(result.domain, result.publicSuffix);
      return result;
    }
    function fastPathLookup(hostname, options, out) {
      if (!options.allowPrivateDomains && hostname.length > 3) {
        const last = hostname.length - 1;
        const c3 = hostname.charCodeAt(last);
        const c22 = hostname.charCodeAt(last - 1);
        const c1 = hostname.charCodeAt(last - 2);
        const c0 = hostname.charCodeAt(last - 3);
        if (c3 === 109 && c22 === 111 && c1 === 99 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "com";
          return true;
        } else if (c3 === 103 && c22 === 114 && c1 === 111 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "org";
          return true;
        } else if (c3 === 117 && c22 === 100 && c1 === 101 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "edu";
          return true;
        } else if (c3 === 118 && c22 === 111 && c1 === 103 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "gov";
          return true;
        } else if (c3 === 116 && c22 === 101 && c1 === 110 && c0 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "net";
          return true;
        } else if (c3 === 101 && c22 === 100 && c1 === 46) {
          out.isIcann = true;
          out.isPrivate = false;
          out.publicSuffix = "de";
          return true;
        }
      }
      return false;
    }
    var exceptions = /* @__PURE__ */ (function() {
      const _0 = [1, {}], _1 = [0, { "city": _0 }];
      const exceptions2 = [0, { "ck": [0, { "www": _0 }], "jp": [0, { "kawasaki": _1, "kitakyushu": _1, "kobe": _1, "nagoya": _1, "sapporo": _1, "sendai": _1, "yokohama": _1 }] }];
      return exceptions2;
    })();
    var rules = /* @__PURE__ */ (function() {
      const _22 = [1, {}], _3 = [2, {}], _4 = [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22 }], _5 = [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22 }], _6 = [0, { "*": _3 }], _7 = [2, { "s": _6 }], _8 = [0, { "relay": _3 }], _9 = [2, { "id": _3 }], _10 = [1, { "gov": _22 }], _11 = [0, { "airflow": _6, "lambda-url": _3, "transfer-webapp": _3 }], _12 = [0, { "airflow": _6, "transfer-webapp": _3 }], _13 = [0, { "transfer-webapp": _3 }], _14 = [0, { "transfer-webapp": _3, "transfer-webapp-fips": _3 }], _15 = [0, { "notebook": _3, "studio": _3 }], _16 = [0, { "labeling": _3, "notebook": _3, "studio": _3 }], _17 = [0, { "notebook": _3 }], _18 = [0, { "labeling": _3, "notebook": _3, "notebook-fips": _3, "studio": _3 }], _19 = [0, { "notebook": _3, "notebook-fips": _3, "studio": _3, "studio-fips": _3 }], _20 = [0, { "shop": _3 }], _21 = [0, { "*": _22 }], _222 = [1, { "co": _3 }], _23 = [0, { "objects": _3 }], _24 = [2, { "nodes": _3 }], _25 = [0, { "my": _3 }], _26 = [0, { "s3": _3, "s3-accesspoint": _3, "s3-website": _3 }], _27 = [0, { "s3": _3, "s3-accesspoint": _3 }], _28 = [0, { "direct": _3 }], _29 = [0, { "webview-assets": _3 }], _30 = [0, { "vfs": _3, "webview-assets": _3 }], _31 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": _30 }], _32 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _27, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": _30 }], _33 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], _34 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3 }], _35 = [0, { "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-website": _3 }], _36 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": _30 }], _37 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3 }], _38 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-deprecated": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], _39 = [0, { "auth": _3 }], _40 = [0, { "auth": _3, "auth-fips": _3 }], _41 = [0, { "auth-fips": _3 }], _42 = [0, { "apps": _3 }], _43 = [0, { "paas": _3 }], _44 = [2, { "eu": _3 }], _45 = [0, { "app": _3 }], _46 = [0, { "site": _3 }], _47 = [1, { "com": _22, "edu": _22, "net": _22, "org": _22 }], _48 = [0, { "j": _3 }], _49 = [0, { "dyn": _3 }], _50 = [2, { "web": _3 }], _51 = [1, { "discourse": _3 }], _52 = [1, { "co": _22, "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22 }], _53 = [0, { "p": _3 }], _54 = [0, { "user": _3 }], _55 = [0, { "cdn": _3 }], _56 = [2, { "raw": _6 }], _57 = [0, { "cust": _3, "reservd": _3 }], _58 = [0, { "cust": _3 }], _59 = [0, { "s3": _3 }], _60 = [1, { "biz": _22, "com": _22, "edu": _22, "gov": _22, "info": _22, "net": _22, "org": _22 }], _61 = [0, { "ipfs": _3 }], _62 = [1, { "framer": _3 }], _63 = [0, { "forgot": _3 }], _64 = [0, { "blob": _3, "file": _3, "web": _3 }], _65 = [0, { "core": _64, "servicebus": _3 }], _66 = [1, { "gs": _22 }], _67 = [0, { "nes": _22 }], _68 = [1, { "k12": _22, "cc": _22, "lib": _22 }], _69 = [1, { "cc": _22 }], _70 = [1, { "cc": _22, "lib": _22 }];
      const rules2 = [0, { "ac": [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "drr": _3, "feedback": _3, "forms": _3 }], "ad": _22, "ae": [1, { "ac": _22, "co": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "sch": _22 }], "aero": [1, { "airline": _22, "airport": _22, "accident-investigation": _22, "accident-prevention": _22, "aerobatic": _22, "aeroclub": _22, "aerodrome": _22, "agents": _22, "air-surveillance": _22, "air-traffic-control": _22, "aircraft": _22, "airtraffic": _22, "ambulance": _22, "association": _22, "author": _22, "ballooning": _22, "broker": _22, "caa": _22, "cargo": _22, "catering": _22, "certification": _22, "championship": _22, "charter": _22, "civilaviation": _22, "club": _22, "conference": _22, "consultant": _22, "consulting": _22, "control": _22, "council": _22, "crew": _22, "design": _22, "dgca": _22, "educator": _22, "emergency": _22, "engine": _22, "engineer": _22, "entertainment": _22, "equipment": _22, "exchange": _22, "express": _22, "federation": _22, "flight": _22, "freight": _22, "fuel": _22, "gliding": _22, "government": _22, "groundhandling": _22, "group": _22, "hanggliding": _22, "homebuilt": _22, "insurance": _22, "journal": _22, "journalist": _22, "leasing": _22, "logistics": _22, "magazine": _22, "maintenance": _22, "marketplace": _22, "media": _22, "microlight": _22, "modelling": _22, "navigation": _22, "parachuting": _22, "paragliding": _22, "passenger-association": _22, "pilot": _22, "press": _22, "production": _22, "recreation": _22, "repbody": _22, "res": _22, "research": _22, "rotorcraft": _22, "safety": _22, "scientist": _22, "services": _22, "show": _22, "skydiving": _22, "software": _22, "student": _22, "taxi": _22, "trader": _22, "trading": _22, "trainer": _22, "union": _22, "workinggroup": _22, "works": _22 }], "af": _4, "ag": [1, { "co": _22, "com": _22, "net": _22, "nom": _22, "org": _22, "obj": _3 }], "ai": [1, { "com": _22, "net": _22, "off": _22, "org": _22, "uwu": _3, "framer": _3, "kiloapps": _3 }], "al": _5, "am": [1, { "co": _22, "com": _22, "commune": _22, "net": _22, "org": _22, "radio": _3 }], "ao": [1, { "co": _22, "ed": _22, "edu": _22, "gov": _22, "gv": _22, "it": _22, "og": _22, "org": _22, "pb": _22 }], "aq": _22, "ar": [1, { "bet": _22, "com": _22, "coop": _22, "edu": _22, "gob": _22, "gov": _22, "int": _22, "mil": _22, "musica": _22, "mutual": _22, "net": _22, "org": _22, "seg": _22, "senasa": _22, "tur": _22 }], "arpa": [1, { "e164": _22, "home": _22, "in-addr": _22, "ip6": _22, "iris": _22, "uri": _22, "urn": _22 }], "as": _10, "asia": [1, { "cloudns": _3, "daemon": _3, "dix": _3 }], "at": [1, { "4": _3, "ac": [1, { "sth": _22 }], "co": _22, "gv": _22, "or": _22, "funkfeuer": [0, { "wien": _3 }], "futurecms": [0, { "*": _3, "ex": _6, "in": _6 }], "futurehosting": _3, "futuremailing": _3, "ortsinfo": [0, { "ex": _6, "kunden": _6 }], "biz": _3, "info": _3, "123webseite": _3, "priv": _3, "my": _3, "myspreadshop": _3, "12hp": _3, "2ix": _3, "4lima": _3, "lima-city": _3 }], "au": [1, { "asn": _22, "com": [1, { "cloudlets": [0, { "mel": _3 }], "myspreadshop": _3 }], "edu": [1, { "act": _22, "catholic": _22, "nsw": _22, "nt": _22, "qld": _22, "sa": _22, "tas": _22, "vic": _22, "wa": _22 }], "gov": [1, { "qld": _22, "sa": _22, "tas": _22, "vic": _22, "wa": _22 }], "id": _22, "net": _22, "org": _22, "conf": _22, "oz": _22, "act": _22, "nsw": _22, "nt": _22, "qld": _22, "sa": _22, "tas": _22, "vic": _22, "wa": _22, "hrsn": [0, { "vps": _3 }] }], "aw": [1, { "com": _22 }], "ax": _22, "az": [1, { "biz": _22, "co": _22, "com": _22, "edu": _22, "gov": _22, "info": _22, "int": _22, "mil": _22, "name": _22, "net": _22, "org": _22, "pp": _22, "pro": _22 }], "ba": [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "brendly": _20, "rs": _3 }], "bb": [1, { "biz": _22, "co": _22, "com": _22, "edu": _22, "gov": _22, "info": _22, "net": _22, "org": _22, "store": _22, "tv": _22 }], "bd": [1, { "ac": _22, "ai": _22, "co": _22, "com": _22, "edu": _22, "gov": _22, "id": _22, "info": _22, "it": _22, "mil": _22, "net": _22, "org": _22, "sch": _22, "tv": _22 }], "be": [1, { "ac": _22, "cloudns": _3, "webhosting": _3, "interhostsolutions": [0, { "cloud": _3 }], "kuleuven": [0, { "ezproxy": _3 }], "123website": _3, "myspreadshop": _3, "transurl": _6 }], "bf": _10, "bg": [1, { "0": _22, "1": _22, "2": _22, "3": _22, "4": _22, "5": _22, "6": _22, "7": _22, "8": _22, "9": _22, "a": _22, "b": _22, "c": _22, "d": _22, "e": _22, "f": _22, "g": _22, "h": _22, "i": _22, "j": _22, "k": _22, "l": _22, "m": _22, "n": _22, "o": _22, "p": _22, "q": _22, "r": _22, "s": _22, "t": _22, "u": _22, "v": _22, "w": _22, "x": _22, "y": _22, "z": _22, "barsy": _3 }], "bh": _4, "bi": [1, { "co": _22, "com": _22, "edu": _22, "or": _22, "org": _22 }], "biz": [1, { "activetrail": _3, "cloud-ip": _3, "cloudns": _3, "jozi": _3, "dyndns": _3, "for-better": _3, "for-more": _3, "for-some": _3, "for-the": _3, "selfip": _3, "webhop": _3, "orx": _3, "mmafan": _3, "myftp": _3, "no-ip": _3, "dscloud": _3 }], "bj": [1, { "africa": _22, "agro": _22, "architectes": _22, "assur": _22, "avocats": _22, "co": _22, "com": _22, "eco": _22, "econo": _22, "edu": _22, "info": _22, "loisirs": _22, "money": _22, "net": _22, "org": _22, "ote": _22, "restaurant": _22, "resto": _22, "tourism": _22, "univ": _22 }], "bm": _4, "bn": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "co": _3 }], "bo": [1, { "com": _22, "edu": _22, "gob": _22, "int": _22, "mil": _22, "net": _22, "org": _22, "tv": _22, "web": _22, "academia": _22, "agro": _22, "arte": _22, "blog": _22, "bolivia": _22, "ciencia": _22, "cooperativa": _22, "democracia": _22, "deporte": _22, "ecologia": _22, "economia": _22, "empresa": _22, "indigena": _22, "industria": _22, "info": _22, "medicina": _22, "movimiento": _22, "musica": _22, "natural": _22, "nombre": _22, "noticias": _22, "patria": _22, "plurinacional": _22, "politica": _22, "profesional": _22, "pueblo": _22, "revista": _22, "salud": _22, "tecnologia": _22, "tksat": _22, "transporte": _22, "wiki": _22 }], "br": [1, { "9guacu": _22, "abc": _22, "adm": _22, "adv": _22, "agr": _22, "aju": _22, "am": _22, "anani": _22, "aparecida": _22, "api": _22, "app": _22, "arq": _22, "art": _22, "ato": _22, "b": _22, "barueri": _22, "belem": _22, "bet": _22, "bhz": _22, "bib": _22, "bio": _22, "blog": _22, "bmd": _22, "boavista": _22, "bsb": _22, "campinagrande": _22, "campinas": _22, "caxias": _22, "cim": _22, "cng": _22, "cnt": _22, "com": [1, { "simplesite": _3 }], "contagem": _22, "coop": _22, "coz": _22, "cri": _22, "cuiaba": _22, "curitiba": _22, "def": _22, "des": _22, "det": _22, "dev": _22, "ecn": _22, "eco": _22, "edu": _22, "emp": _22, "enf": _22, "eng": _22, "esp": _22, "etc": _22, "eti": _22, "far": _22, "feira": _22, "flog": _22, "floripa": _22, "fm": _22, "fnd": _22, "fortal": _22, "fot": _22, "foz": _22, "fst": _22, "g12": _22, "geo": _22, "ggf": _22, "goiania": _22, "gov": [1, { "ac": _22, "al": _22, "am": _22, "ap": _22, "ba": _22, "ce": _22, "df": _22, "es": _22, "go": _22, "ma": _22, "mg": _22, "ms": _22, "mt": _22, "pa": _22, "pb": _22, "pe": _22, "pi": _22, "pr": _22, "rj": _22, "rn": _22, "ro": _22, "rr": _22, "rs": _22, "sc": _22, "se": _22, "sp": _22, "to": _22 }], "gru": _22, "ia": _22, "imb": _22, "ind": _22, "inf": _22, "jab": _22, "jampa": _22, "jdf": _22, "joinville": _22, "jor": _22, "jus": _22, "leg": [1, { "ac": _3, "al": _3, "am": _3, "ap": _3, "ba": _3, "ce": _3, "df": _3, "es": _3, "go": _3, "ma": _3, "mg": _3, "ms": _3, "mt": _3, "pa": _3, "pb": _3, "pe": _3, "pi": _3, "pr": _3, "rj": _3, "rn": _3, "ro": _3, "rr": _3, "rs": _3, "sc": _3, "se": _3, "sp": _3, "to": _3 }], "leilao": _22, "lel": _22, "log": _22, "londrina": _22, "macapa": _22, "maceio": _22, "manaus": _22, "maringa": _22, "mat": _22, "med": _22, "mil": _22, "morena": _22, "mp": _22, "mus": _22, "natal": _22, "net": _22, "niteroi": _22, "nom": _21, "not": _22, "ntr": _22, "odo": _22, "ong": _22, "org": _22, "osasco": _22, "palmas": _22, "poa": _22, "ppg": _22, "pro": _22, "psc": _22, "psi": _22, "pvh": _22, "qsl": _22, "radio": _22, "rec": _22, "recife": _22, "rep": _22, "ribeirao": _22, "rio": _22, "riobranco": _22, "riopreto": _22, "salvador": _22, "sampa": _22, "santamaria": _22, "santoandre": _22, "saobernardo": _22, "saogonca": _22, "seg": _22, "sjc": _22, "slg": _22, "slz": _22, "social": _22, "sorocaba": _22, "srv": _22, "taxi": _22, "tc": _22, "tec": _22, "teo": _22, "the": _22, "tmp": _22, "trd": _22, "tur": _22, "tv": _22, "udi": _22, "vet": _22, "vix": _22, "vlog": _22, "wiki": _22, "xyz": _22, "zlg": _22, "tche": _3 }], "bs": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "we": _3 }], "bt": _4, "bv": _22, "bw": [1, { "ac": _22, "co": _22, "gov": _22, "net": _22, "org": _22 }], "by": [1, { "gov": _22, "mil": _22, "com": _22, "of": _22, "mediatech": _3 }], "bz": [1, { "co": _22, "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "za": _3, "mydns": _3, "gsj": _3 }], "ca": [1, { "ab": _22, "bc": _22, "mb": _22, "nb": _22, "nf": _22, "nl": _22, "ns": _22, "nt": _22, "nu": _22, "on": _22, "pe": _22, "qc": _22, "sk": _22, "yk": _22, "gc": _22, "barsy": _3, "awdev": _6, "co": _3, "no-ip": _3, "onid": _3, "myspreadshop": _3, "box": _3 }], "cat": _22, "cc": [1, { "cleverapps": _3, "cloud-ip": _3, "cloudns": _3, "ccwu": _3, "ftpaccess": _3, "game-server": _3, "myphotos": _3, "scrapping": _3, "twmail": _3, "csx": _3, "fantasyleague": _3, "spawn": [0, { "instances": _3 }], "ec": _3, "eu": _3, "gu": _3, "uk": _3, "us": _3 }], "cd": [1, { "gov": _22, "cc": _3 }], "cf": _22, "cg": _22, "ch": [1, { "square7": _3, "cloudns": _3, "cloudscale": [0, { "cust": _3, "lpg": _23, "rma": _23 }], "objectstorage": [0, { "lpg": _3, "rma": _3 }], "flow": [0, { "ae": [0, { "alp1": _3 }], "appengine": _3 }], "linkyard-cloud": _3, "gotdns": _3, "dnsking": _3, "123website": _3, "myspreadshop": _3, "firenet": [0, { "*": _3, "svc": _6 }], "12hp": _3, "2ix": _3, "4lima": _3, "lima-city": _3 }], "ci": [1, { "ac": _22, "xn--aroport-bya": _22, "a\xE9roport": _22, "asso": _22, "co": _22, "com": _22, "ed": _22, "edu": _22, "go": _22, "gouv": _22, "int": _22, "net": _22, "or": _22, "org": _22, "us": _3 }], "ck": _21, "cl": [1, { "co": _22, "gob": _22, "gov": _22, "mil": _22, "cloudns": _3 }], "cm": [1, { "co": _22, "com": _22, "gov": _22, "net": _22 }], "cn": [1, { "ac": _22, "com": [1, { "amazonaws": [0, { "cn-north-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "rds": _6, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-deprecated": _3, "s3-object-lambda": _3, "s3-website": _3 }], "cn-northwest-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "rds": _6, "dualstack": _27, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3 }], "compute": _6, "airflow": [0, { "cn-north-1": _6, "cn-northwest-1": _6 }], "eb": [0, { "cn-north-1": _3, "cn-northwest-1": _3 }], "elb": _6 }], "amazonwebservices": [0, { "on": [0, { "cn-north-1": _12, "cn-northwest-1": _12 }] }], "sagemaker": [0, { "cn-north-1": _15, "cn-northwest-1": _15 }] }], "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "xn--55qx5d": _22, "\u516C\u53F8": _22, "xn--od0alg": _22, "\u7DB2\u7D61": _22, "xn--io0a7i": _22, "\u7F51\u7EDC": _22, "ah": _22, "bj": _22, "cq": _22, "fj": _22, "gd": _22, "gs": _22, "gx": _22, "gz": _22, "ha": _22, "hb": _22, "he": _22, "hi": _22, "hk": _22, "hl": _22, "hn": _22, "jl": _22, "js": _22, "jx": _22, "ln": _22, "mo": _22, "nm": _22, "nx": _22, "qh": _22, "sc": _22, "sd": _22, "sh": [1, { "as": _3 }], "sn": _22, "sx": _22, "tj": _22, "tw": _22, "xj": _22, "xz": _22, "yn": _22, "zj": _22, "canva-apps": _3, "canvasite": _25, "myqnapcloud": _3, "quickconnect": _28 }], "co": [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "nom": _22, "org": _22, "carrd": _3, "crd": _3, "otap": _6, "hidns": _3, "leadpages": _3, "lpages": _3, "mypi": _3, "xmit": _6, "rdpa": [0, { "clusters": _6, "srvrless": _6 }], "firewalledreplit": _9, "repl": _9, "supabase": [2, { "realtime": _3, "storage": _3 }], "umso": _3 }], "com": [1, { "a2hosted": _3, "cpserver": _3, "adobeaemcloud": [2, { "dev": _6 }], "africa": _3, "auiusercontent": _6, "aivencloud": _3, "alibabacloudcs": _3, "kasserver": _3, "amazonaws": [0, { "af-south-1": _31, "ap-east-1": _32, "ap-northeast-1": _33, "ap-northeast-2": _33, "ap-northeast-3": _31, "ap-south-1": _33, "ap-south-2": _34, "ap-southeast-1": _33, "ap-southeast-2": _33, "ap-southeast-3": _34, "ap-southeast-4": _34, "ap-southeast-5": [0, { "execute-api": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-deprecated": _3, "s3-object-lambda": _3, "s3-website": _3 }], "ca-central-1": _36, "ca-west-1": _37, "eu-central-1": _33, "eu-central-2": _34, "eu-north-1": _32, "eu-south-1": _31, "eu-south-2": _34, "eu-west-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-deprecated": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], "eu-west-2": _32, "eu-west-3": _31, "il-central-1": [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _26, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _29, "cloud9": [0, { "vfs": _3 }] }], "me-central-1": _34, "me-south-1": _32, "sa-east-1": _31, "us-east-1": [2, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _35, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-deprecated": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _29, "cloud9": _30 }], "us-east-2": _38, "us-gov-east-1": _37, "us-gov-west-1": _37, "us-west-1": _36, "us-west-2": _38, "compute": _6, "compute-1": _6, "airflow": [0, { "af-south-1": _6, "ap-east-1": _6, "ap-northeast-1": _6, "ap-northeast-2": _6, "ap-northeast-3": _6, "ap-south-1": _6, "ap-south-2": _6, "ap-southeast-1": _6, "ap-southeast-2": _6, "ap-southeast-3": _6, "ap-southeast-4": _6, "ap-southeast-5": _6, "ap-southeast-7": _6, "ca-central-1": _6, "ca-west-1": _6, "eu-central-1": _6, "eu-central-2": _6, "eu-north-1": _6, "eu-south-1": _6, "eu-south-2": _6, "eu-west-1": _6, "eu-west-2": _6, "eu-west-3": _6, "il-central-1": _6, "me-central-1": _6, "me-south-1": _6, "sa-east-1": _6, "us-east-1": _6, "us-east-2": _6, "us-west-1": _6, "us-west-2": _6 }], "rds": [0, { "af-south-1": _6, "ap-east-1": _6, "ap-east-2": _6, "ap-northeast-1": _6, "ap-northeast-2": _6, "ap-northeast-3": _6, "ap-south-1": _6, "ap-south-2": _6, "ap-southeast-1": _6, "ap-southeast-2": _6, "ap-southeast-3": _6, "ap-southeast-4": _6, "ap-southeast-5": _6, "ap-southeast-6": _6, "ap-southeast-7": _6, "ca-central-1": _6, "ca-west-1": _6, "eu-central-1": _6, "eu-central-2": _6, "eu-west-1": _6, "eu-west-2": _6, "eu-west-3": _6, "il-central-1": _6, "me-central-1": _6, "me-south-1": _6, "mx-central-1": _6, "sa-east-1": _6, "us-east-1": _6, "us-east-2": _6, "us-gov-east-1": _6, "us-gov-west-1": _6, "us-northeast-1": _6, "us-west-1": _6, "us-west-2": _6 }], "s3": _3, "s3-1": _3, "s3-ap-east-1": _3, "s3-ap-northeast-1": _3, "s3-ap-northeast-2": _3, "s3-ap-northeast-3": _3, "s3-ap-south-1": _3, "s3-ap-southeast-1": _3, "s3-ap-southeast-2": _3, "s3-ca-central-1": _3, "s3-eu-central-1": _3, "s3-eu-north-1": _3, "s3-eu-west-1": _3, "s3-eu-west-2": _3, "s3-eu-west-3": _3, "s3-external-1": _3, "s3-fips-us-gov-east-1": _3, "s3-fips-us-gov-west-1": _3, "s3-global": [0, { "accesspoint": [0, { "mrap": _3 }] }], "s3-me-south-1": _3, "s3-sa-east-1": _3, "s3-us-east-2": _3, "s3-us-gov-east-1": _3, "s3-us-gov-west-1": _3, "s3-us-west-1": _3, "s3-us-west-2": _3, "s3-website-ap-northeast-1": _3, "s3-website-ap-southeast-1": _3, "s3-website-ap-southeast-2": _3, "s3-website-eu-west-1": _3, "s3-website-sa-east-1": _3, "s3-website-us-east-1": _3, "s3-website-us-gov-west-1": _3, "s3-website-us-west-1": _3, "s3-website-us-west-2": _3, "elb": _6 }], "amazoncognito": [0, { "af-south-1": _39, "ap-east-1": _39, "ap-northeast-1": _39, "ap-northeast-2": _39, "ap-northeast-3": _39, "ap-south-1": _39, "ap-south-2": _39, "ap-southeast-1": _39, "ap-southeast-2": _39, "ap-southeast-3": _39, "ap-southeast-4": _39, "ap-southeast-5": _39, "ap-southeast-7": _39, "ca-central-1": _39, "ca-west-1": _39, "eu-central-1": _39, "eu-central-2": _39, "eu-north-1": _39, "eu-south-1": _39, "eu-south-2": _39, "eu-west-1": _39, "eu-west-2": _39, "eu-west-3": _39, "il-central-1": _39, "me-central-1": _39, "me-south-1": _39, "mx-central-1": _39, "sa-east-1": _39, "us-east-1": _40, "us-east-2": _40, "us-gov-east-1": _41, "us-gov-west-1": _41, "us-west-1": _40, "us-west-2": _40 }], "amplifyapp": _3, "awsapprunner": _6, "awsapps": _3, "elasticbeanstalk": [2, { "af-south-1": _3, "ap-east-1": _3, "ap-northeast-1": _3, "ap-northeast-2": _3, "ap-northeast-3": _3, "ap-south-1": _3, "ap-southeast-1": _3, "ap-southeast-2": _3, "ap-southeast-3": _3, "ap-southeast-5": _3, "ap-southeast-7": _3, "ca-central-1": _3, "eu-central-1": _3, "eu-north-1": _3, "eu-south-1": _3, "eu-south-2": _3, "eu-west-1": _3, "eu-west-2": _3, "eu-west-3": _3, "il-central-1": _3, "me-central-1": _3, "me-south-1": _3, "sa-east-1": _3, "us-east-1": _3, "us-east-2": _3, "us-gov-east-1": _3, "us-gov-west-1": _3, "us-west-1": _3, "us-west-2": _3 }], "awsglobalaccelerator": _3, "siiites": _3, "appspacehosted": _3, "appspaceusercontent": _3, "on-aptible": _3, "myasustor": _3, "balena-devices": _3, "boutir": _3, "bplaced": _3, "cafjs": _3, "canva-apps": _3, "canva-hosted-embed": _3, "canvacode": _3, "rice-labs": _3, "cdn77-storage": _3, "br": _3, "cn": _3, "de": _3, "eu": _3, "jpn": _3, "mex": _3, "ru": _3, "sa": _3, "uk": _3, "us": _3, "za": _3, "clever-cloud": [0, { "services": _6 }], "abrdns": _3, "dnsabr": _3, "ip-ddns": _3, "jdevcloud": _3, "wpdevcloud": _3, "cf-ipfs": _3, "cloudflare-ipfs": _3, "trycloudflare": _3, "co": _3, "devinapps": _6, "builtwithdark": _3, "datadetect": [0, { "demo": _3, "instance": _3 }], "dattolocal": _3, "dattorelay": _3, "dattoweb": _3, "mydatto": _3, "digitaloceanspaces": _6, "discordsays": _3, "discordsez": _3, "drayddns": _3, "dreamhosters": _3, "durumis": _3, "blogdns": _3, "cechire": _3, "dnsalias": _3, "dnsdojo": _3, "doesntexist": _3, "dontexist": _3, "doomdns": _3, "dyn-o-saur": _3, "dynalias": _3, "dyndns-at-home": _3, "dyndns-at-work": _3, "dyndns-blog": _3, "dyndns-free": _3, "dyndns-home": _3, "dyndns-ip": _3, "dyndns-mail": _3, "dyndns-office": _3, "dyndns-pics": _3, "dyndns-remote": _3, "dyndns-server": _3, "dyndns-web": _3, "dyndns-wiki": _3, "dyndns-work": _3, "est-a-la-maison": _3, "est-a-la-masion": _3, "est-le-patron": _3, "est-mon-blogueur": _3, "from-ak": _3, "from-al": _3, "from-ar": _3, "from-ca": _3, "from-ct": _3, "from-dc": _3, "from-de": _3, "from-fl": _3, "from-ga": _3, "from-hi": _3, "from-ia": _3, "from-id": _3, "from-il": _3, "from-in": _3, "from-ks": _3, "from-ky": _3, "from-ma": _3, "from-md": _3, "from-mi": _3, "from-mn": _3, "from-mo": _3, "from-ms": _3, "from-mt": _3, "from-nc": _3, "from-nd": _3, "from-ne": _3, "from-nh": _3, "from-nj": _3, "from-nm": _3, "from-nv": _3, "from-oh": _3, "from-ok": _3, "from-or": _3, "from-pa": _3, "from-pr": _3, "from-ri": _3, "from-sc": _3, "from-sd": _3, "from-tn": _3, "from-tx": _3, "from-ut": _3, "from-va": _3, "from-vt": _3, "from-wa": _3, "from-wi": _3, "from-wv": _3, "from-wy": _3, "getmyip": _3, "gotdns": _3, "hobby-site": _3, "homelinux": _3, "homeunix": _3, "iamallama": _3, "is-a-anarchist": _3, "is-a-blogger": _3, "is-a-bookkeeper": _3, "is-a-bulls-fan": _3, "is-a-caterer": _3, "is-a-chef": _3, "is-a-conservative": _3, "is-a-cpa": _3, "is-a-cubicle-slave": _3, "is-a-democrat": _3, "is-a-designer": _3, "is-a-doctor": _3, "is-a-financialadvisor": _3, "is-a-geek": _3, "is-a-green": _3, "is-a-guru": _3, "is-a-hard-worker": _3, "is-a-hunter": _3, "is-a-landscaper": _3, "is-a-lawyer": _3, "is-a-liberal": _3, "is-a-libertarian": _3, "is-a-llama": _3, "is-a-musician": _3, "is-a-nascarfan": _3, "is-a-nurse": _3, "is-a-painter": _3, "is-a-personaltrainer": _3, "is-a-photographer": _3, "is-a-player": _3, "is-a-republican": _3, "is-a-rockstar": _3, "is-a-socialist": _3, "is-a-student": _3, "is-a-teacher": _3, "is-a-techie": _3, "is-a-therapist": _3, "is-an-accountant": _3, "is-an-actor": _3, "is-an-actress": _3, "is-an-anarchist": _3, "is-an-artist": _3, "is-an-engineer": _3, "is-an-entertainer": _3, "is-certified": _3, "is-gone": _3, "is-into-anime": _3, "is-into-cars": _3, "is-into-cartoons": _3, "is-into-games": _3, "is-leet": _3, "is-not-certified": _3, "is-slick": _3, "is-uberleet": _3, "is-with-theband": _3, "isa-geek": _3, "isa-hockeynut": _3, "issmarterthanyou": _3, "likes-pie": _3, "likescandy": _3, "neat-url": _3, "saves-the-whales": _3, "selfip": _3, "sells-for-less": _3, "sells-for-u": _3, "servebbs": _3, "simple-url": _3, "space-to-rent": _3, "teaches-yoga": _3, "writesthisblog": _3, "1cooldns": _3, "bumbleshrimp": _3, "ddnsfree": _3, "ddnsgeek": _3, "ddnsguru": _3, "dynuddns": _3, "dynuhosting": _3, "giize": _3, "gleeze": _3, "kozow": _3, "loseyourip": _3, "ooguy": _3, "pivohosting": _3, "theworkpc": _3, "wiredbladehosting": _3, "emergentagent": [0, { "preview": _3 }], "mytuleap": _3, "tuleap-partners": _3, "encoreapi": _3, "evennode": [0, { "eu-1": _3, "eu-2": _3, "eu-3": _3, "eu-4": _3, "us-1": _3, "us-2": _3, "us-3": _3, "us-4": _3 }], "onfabrica": _3, "fastly-edge": _3, "fastly-terrarium": _3, "fastvps-server": _3, "mydobiss": _3, "firebaseapp": _3, "fldrv": _3, "framercanvas": _3, "freebox-os": _3, "freeboxos": _3, "freemyip": _3, "aliases121": _3, "gentapps": _3, "gentlentapis": _3, "githubusercontent": _3, "0emm": _6, "appspot": [2, { "r": _6 }], "blogspot": _3, "codespot": _3, "googleapis": _3, "googlecode": _3, "pagespeedmobilizer": _3, "withgoogle": _3, "withyoutube": _3, "grayjayleagues": _3, "hatenablog": _3, "hatenadiary": _3, "hercules-app": _3, "hercules-dev": _3, "herokuapp": _3, "gr": _3, "smushcdn": _3, "wphostedmail": _3, "wpmucdn": _3, "pixolino": _3, "apps-1and1": _3, "live-website": _3, "webspace-host": _3, "dopaas": _3, "hosted-by-previder": _43, "hosteur": [0, { "rag-cloud": _3, "rag-cloud-ch": _3 }], "ik-server": [0, { "jcloud": _3, "jcloud-ver-jpc": _3 }], "jelastic": [0, { "demo": _3 }], "massivegrid": _43, "wafaicloud": [0, { "jed": _3, "ryd": _3 }], "eu1-plenit": _3, "la1-plenit": _3, "us1-plenit": _3, "webadorsite": _3, "on-forge": _3, "on-vapor": _3, "lpusercontent": _3, "linode": [0, { "members": _3, "nodebalancer": _6 }], "linodeobjects": _6, "linodeusercontent": [0, { "ip": _3 }], "localtonet": _3, "lovableproject": _3, "barsycenter": _3, "barsyonline": _3, "lutrausercontent": _6, "magicpatternsapp": _3, "modelscape": _3, "mwcloudnonprod": _3, "polyspace": _3, "mazeplay": _3, "miniserver": _3, "atmeta": _3, "fbsbx": _42, "meteorapp": _44, "routingthecloud": _3, "same-app": _3, "same-preview": _3, "mydbserver": _3, "mochausercontent": _3, "hostedpi": _3, "mythic-beasts": [0, { "caracal": _3, "customer": _3, "fentiger": _3, "lynx": _3, "ocelot": _3, "oncilla": _3, "onza": _3, "sphinx": _3, "vs": _3, "x": _3, "yali": _3 }], "nospamproxy": [0, { "cloud": [2, { "o365": _3 }] }], "4u": _3, "nfshost": _3, "3utilities": _3, "blogsyte": _3, "ciscofreak": _3, "damnserver": _3, "ddnsking": _3, "ditchyourip": _3, "dnsiskinky": _3, "dynns": _3, "geekgalaxy": _3, "health-carereform": _3, "homesecuritymac": _3, "homesecuritypc": _3, "myactivedirectory": _3, "mysecuritycamera": _3, "myvnc": _3, "net-freaks": _3, "onthewifi": _3, "point2this": _3, "quicksytes": _3, "securitytactics": _3, "servebeer": _3, "servecounterstrike": _3, "serveexchange": _3, "serveftp": _3, "servegame": _3, "servehalflife": _3, "servehttp": _3, "servehumour": _3, "serveirc": _3, "servemp3": _3, "servep2p": _3, "servepics": _3, "servequake": _3, "servesarcasm": _3, "stufftoread": _3, "unusualperson": _3, "workisboring": _3, "myiphost": _3, "observableusercontent": [0, { "static": _3 }], "simplesite": _3, "oaiusercontent": _6, "orsites": _3, "operaunite": _3, "customer-oci": [0, { "*": _3, "oci": _6, "ocp": _6, "ocs": _6 }], "oraclecloudapps": _6, "oraclegovcloudapps": _6, "authgear-staging": _3, "authgearapps": _3, "outsystemscloud": _3, "ownprovider": _3, "pgfog": _3, "pagexl": _3, "gotpantheon": _3, "paywhirl": _6, "forgeblocks": _3, "upsunapp": _3, "postman-echo": _3, "prgmr": [0, { "xen": _3 }], "project-study": [0, { "dev": _3 }], "pythonanywhere": _44, "qa2": _3, "alpha-myqnapcloud": _3, "dev-myqnapcloud": _3, "mycloudnas": _3, "mynascloud": _3, "myqnapcloud": _3, "qualifioapp": _3, "ladesk": _3, "qualyhqpartner": _6, "qualyhqportal": _6, "qbuser": _3, "quipelements": _6, "rackmaze": _3, "readthedocs-hosted": _3, "rhcloud": _3, "onrender": _3, "render": _45, "subsc-pay": _3, "180r": _3, "dojin": _3, "sakuratan": _3, "sakuraweb": _3, "x0": _3, "code": [0, { "builder": _6, "dev-builder": _6, "stg-builder": _6 }], "salesforce": [0, { "platform": [0, { "code-builder-stg": [0, { "test": [0, { "001": _6 }] }] }] }], "logoip": _3, "scrysec": _3, "firewall-gateway": _3, "myshopblocks": _3, "myshopify": _3, "shopitsite": _3, "1kapp": _3, "appchizi": _3, "applinzi": _3, "sinaapp": _3, "vipsinaapp": _3, "streamlitapp": _3, "try-snowplow": _3, "playstation-cloud": _3, "myspreadshop": _3, "w-corp-staticblitz": _3, "w-credentialless-staticblitz": _3, "w-staticblitz": _3, "stackhero-network": _3, "stdlib": [0, { "api": _3 }], "strapiapp": [2, { "media": _3 }], "streak-link": _3, "streaklinks": _3, "streakusercontent": _3, "temp-dns": _3, "dsmynas": _3, "familyds": _3, "mytabit": _3, "taveusercontent": _3, "tb-hosting": _46, "reservd": _3, "thingdustdata": _3, "townnews-staging": _3, "typeform": [0, { "pro": _3 }], "hk": _3, "it": _3, "deus-canvas": _3, "vultrobjects": _6, "wafflecell": _3, "hotelwithflight": _3, "reserve-online": _3, "cprapid": _3, "pleskns": _3, "remotewd": _3, "wiardweb": [0, { "pages": _3 }], "base44-sandbox": _3, "wixsite": _3, "wixstudio": _3, "messwithdns": _3, "woltlab-demo": _3, "wpenginepowered": [2, { "js": _3 }], "xnbay": [2, { "u2": _3, "u2-local": _3 }], "xtooldevice": _3, "yolasite": _3 }], "coop": _22, "cr": [1, { "ac": _22, "co": _22, "ed": _22, "fi": _22, "go": _22, "or": _22, "sa": _22 }], "cu": [1, { "com": _22, "edu": _22, "gob": _22, "inf": _22, "nat": _22, "net": _22, "org": _22 }], "cv": [1, { "com": _22, "edu": _22, "id": _22, "int": _22, "net": _22, "nome": _22, "org": _22, "publ": _22 }], "cw": _47, "cx": [1, { "gov": _22, "cloudns": _3, "ath": _3, "info": _3, "assessments": _3, "calculators": _3, "funnels": _3, "paynow": _3, "quizzes": _3, "researched": _3, "tests": _3 }], "cy": [1, { "ac": _22, "biz": _22, "com": [1, { "scaleforce": _48 }], "ekloges": _22, "gov": _22, "ltd": _22, "mil": _22, "net": _22, "org": _22, "press": _22, "pro": _22, "tm": _22 }], "cz": [1, { "gov": _22, "contentproxy9": [0, { "rsc": _3 }], "realm": _3, "e4": _3, "co": _3, "metacentrum": [0, { "cloud": _6, "custom": _3 }], "muni": [0, { "cloud": [0, { "flt": _3, "usr": _3 }] }] }], "de": [1, { "bplaced": _3, "square7": _3, "bwcloud-os-instance": _6, "com": _3, "cosidns": _49, "dnsupdater": _3, "dynamisches-dns": _3, "internet-dns": _3, "l-o-g-i-n": _3, "ddnss": [2, { "dyn": _3, "dyndns": _3 }], "dyn-ip24": _3, "dyndns1": _3, "home-webserver": [2, { "dyn": _3 }], "myhome-server": _3, "dnshome": _3, "fuettertdasnetz": _3, "isteingeek": _3, "istmein": _3, "lebtimnetz": _3, "leitungsen": _3, "traeumtgerade": _3, "frusky": _6, "goip": _3, "xn--gnstigbestellen-zvb": _3, "g\xFCnstigbestellen": _3, "xn--gnstigliefern-wob": _3, "g\xFCnstigliefern": _3, "hs-heilbronn": [0, { "it": [0, { "pages": _3, "pages-research": _3 }] }], "dyn-berlin": _3, "in-berlin": _3, "in-brb": _3, "in-butter": _3, "in-dsl": _3, "in-vpn": _3, "iservschule": _3, "mein-iserv": _3, "schuldock": _3, "schulplattform": _3, "schulserver": _3, "test-iserv": _3, "keymachine": _3, "co": _3, "git-repos": _3, "lcube-server": _3, "svn-repos": _3, "barsy": _3, "webspaceconfig": _3, "123webseite": _3, "rub": _3, "ruhr-uni-bochum": [2, { "noc": [0, { "io": _3 }] }], "logoip": _3, "firewall-gateway": _3, "my-gateway": _3, "my-router": _3, "spdns": _3, "my": _3, "speedpartner": [0, { "customer": _3 }], "myspreadshop": _3, "taifun-dns": _3, "12hp": _3, "2ix": _3, "4lima": _3, "lima-city": _3, "virtual-user": _3, "virtualuser": _3, "community-pro": _3, "diskussionsbereich": _3, "xenonconnect": _6 }], "dj": _22, "dk": [1, { "biz": _3, "co": _3, "firm": _3, "reg": _3, "store": _3, "123hjemmeside": _3, "myspreadshop": _3 }], "dm": _52, "do": [1, { "art": _22, "com": _22, "edu": _22, "gob": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "sld": _22, "web": _22 }], "dz": [1, { "art": _22, "asso": _22, "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "pol": _22, "soc": _22, "tm": _22 }], "ec": [1, { "abg": _22, "adm": _22, "agron": _22, "arqt": _22, "art": _22, "bar": _22, "chef": _22, "com": _22, "cont": _22, "cpa": _22, "cue": _22, "dent": _22, "dgn": _22, "disco": _22, "doc": _22, "edu": _22, "eng": _22, "esm": _22, "fin": _22, "fot": _22, "gal": _22, "gob": _22, "gov": _22, "gye": _22, "ibr": _22, "info": _22, "k12": _22, "lat": _22, "loj": _22, "med": _22, "mil": _22, "mktg": _22, "mon": _22, "net": _22, "ntr": _22, "odont": _22, "org": _22, "pro": _22, "prof": _22, "psic": _22, "psiq": _22, "pub": _22, "rio": _22, "rrpp": _22, "sal": _22, "tech": _22, "tul": _22, "tur": _22, "uio": _22, "vet": _22, "xxx": _22, "base": _3, "official": _3 }], "edu": [1, { "rit": [0, { "git-pages": _3 }] }], "ee": [1, { "aip": _22, "com": _22, "edu": _22, "fie": _22, "gov": _22, "lib": _22, "med": _22, "org": _22, "pri": _22, "riik": _22 }], "eg": [1, { "ac": _22, "com": _22, "edu": _22, "eun": _22, "gov": _22, "info": _22, "me": _22, "mil": _22, "name": _22, "net": _22, "org": _22, "sci": _22, "sport": _22, "tv": _22 }], "er": _21, "es": [1, { "com": _22, "edu": _22, "gob": _22, "nom": _22, "org": _22, "123miweb": _3, "myspreadshop": _3 }], "et": [1, { "biz": _22, "com": _22, "edu": _22, "gov": _22, "info": _22, "name": _22, "net": _22, "org": _22 }], "eu": [1, { "amazonwebservices": [0, { "on": [0, { "eusc-de-east-1": [0, { "cognito-idp": _39 }] }] }], "cloudns": _3, "prvw": _3, "deuxfleurs": _3, "dogado": [0, { "jelastic": _3 }], "barsy": _3, "spdns": _3, "nxa": _6, "directwp": _3, "transurl": _6 }], "fi": [1, { "aland": _22, "dy": _3, "xn--hkkinen-5wa": _3, "h\xE4kkinen": _3, "iki": _3, "cloudplatform": [0, { "fi": _3 }], "datacenter": [0, { "demo": _3, "paas": _3 }], "kapsi": _3, "123kotisivu": _3, "myspreadshop": _3 }], "fj": [1, { "ac": _22, "biz": _22, "com": _22, "edu": _22, "gov": _22, "id": _22, "info": _22, "mil": _22, "name": _22, "net": _22, "org": _22, "pro": _22 }], "fk": _21, "fm": [1, { "com": _22, "edu": _22, "net": _22, "org": _22, "radio": _3, "user": _6 }], "fo": _22, "fr": [1, { "asso": _22, "com": _22, "gouv": _22, "nom": _22, "prd": _22, "tm": _22, "avoues": _22, "cci": _22, "greta": _22, "huissier-justice": _22, "fbx-os": _3, "fbxos": _3, "freebox-os": _3, "freeboxos": _3, "goupile": _3, "123siteweb": _3, "on-web": _3, "chirurgiens-dentistes-en-france": _3, "dedibox": _3, "aeroport": _3, "avocat": _3, "chambagri": _3, "chirurgiens-dentistes": _3, "experts-comptables": _3, "medecin": _3, "notaires": _3, "pharmacien": _3, "port": _3, "veterinaire": _3, "myspreadshop": _3, "ynh": _3 }], "ga": _22, "gb": _22, "gd": [1, { "edu": _22, "gov": _22 }], "ge": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "pvt": _22, "school": _22 }], "gf": _22, "gg": [1, { "co": _22, "net": _22, "org": _22, "ply": [0, { "at": _6, "d6": _3 }], "botdash": _3, "kaas": _3, "stackit": _3, "panel": [2, { "daemon": _3 }] }], "gh": [1, { "biz": _22, "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22 }], "gi": [1, { "com": _22, "edu": _22, "gov": _22, "ltd": _22, "mod": _22, "org": _22 }], "gl": [1, { "co": _22, "com": _22, "edu": _22, "net": _22, "org": _22 }], "gm": _22, "gn": [1, { "ac": _22, "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22 }], "gov": _22, "gp": [1, { "asso": _22, "com": _22, "edu": _22, "mobi": _22, "net": _22, "org": _22 }], "gq": _22, "gr": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "barsy": _3, "simplesite": _3 }], "gs": _22, "gt": [1, { "com": _22, "edu": _22, "gob": _22, "ind": _22, "mil": _22, "net": _22, "org": _22 }], "gu": [1, { "com": _22, "edu": _22, "gov": _22, "guam": _22, "info": _22, "net": _22, "org": _22, "web": _22 }], "gw": [1, { "nx": _3 }], "gy": _52, "hk": [1, { "com": _22, "edu": _22, "gov": _22, "idv": _22, "net": _22, "org": _22, "xn--ciqpn": _22, "\u4E2A\u4EBA": _22, "xn--gmqw5a": _22, "\u500B\u4EBA": _22, "xn--55qx5d": _22, "\u516C\u53F8": _22, "xn--mxtq1m": _22, "\u653F\u5E9C": _22, "xn--lcvr32d": _22, "\u654E\u80B2": _22, "xn--wcvs22d": _22, "\u6559\u80B2": _22, "xn--gmq050i": _22, "\u7B87\u4EBA": _22, "xn--uc0atv": _22, "\u7D44\u7E54": _22, "xn--uc0ay4a": _22, "\u7D44\u7EC7": _22, "xn--od0alg": _22, "\u7DB2\u7D61": _22, "xn--zf0avx": _22, "\u7DB2\u7EDC": _22, "xn--mk0axi": _22, "\u7EC4\u7E54": _22, "xn--tn0ag": _22, "\u7EC4\u7EC7": _22, "xn--od0aq3b": _22, "\u7F51\u7D61": _22, "xn--io0a7i": _22, "\u7F51\u7EDC": _22, "inc": _3, "ltd": _3 }], "hm": _22, "hn": [1, { "com": _22, "edu": _22, "gob": _22, "mil": _22, "net": _22, "org": _22 }], "hr": [1, { "com": _22, "from": _22, "iz": _22, "name": _22, "brendly": _20 }], "ht": [1, { "adult": _22, "art": _22, "asso": _22, "com": _22, "coop": _22, "edu": _22, "firm": _22, "gouv": _22, "info": _22, "med": _22, "net": _22, "org": _22, "perso": _22, "pol": _22, "pro": _22, "rel": _22, "shop": _22, "rt": _3 }], "hu": [1, { "2000": _22, "agrar": _22, "bolt": _22, "casino": _22, "city": _22, "co": _22, "erotica": _22, "erotika": _22, "film": _22, "forum": _22, "games": _22, "hotel": _22, "info": _22, "ingatlan": _22, "jogasz": _22, "konyvelo": _22, "lakas": _22, "media": _22, "news": _22, "org": _22, "priv": _22, "reklam": _22, "sex": _22, "shop": _22, "sport": _22, "suli": _22, "szex": _22, "tm": _22, "tozsde": _22, "utazas": _22, "video": _22 }], "id": [1, { "ac": _22, "biz": _22, "co": _22, "desa": _22, "go": _22, "kop": _22, "mil": _22, "my": _22, "net": _22, "or": _22, "ponpes": _22, "sch": _22, "web": _22, "xn--9tfky": _22, "\u1B29\u1B2E\u1B36": _22, "e": _3, "zone": _3 }], "ie": [1, { "gov": _22, "myspreadshop": _3 }], "il": [1, { "ac": _22, "co": [1, { "ravpage": _3, "mytabit": _3, "tabitorder": _3 }], "gov": _22, "idf": _22, "k12": _22, "muni": _22, "net": _22, "org": _22 }], "xn--4dbrk0ce": [1, { "xn--4dbgdty6c": _22, "xn--5dbhl8d": _22, "xn--8dbq2a": _22, "xn--hebda8b": _22 }], "\u05D9\u05E9\u05E8\u05D0\u05DC": [1, { "\u05D0\u05E7\u05D3\u05DE\u05D9\u05D4": _22, "\u05D9\u05E9\u05D5\u05D1": _22, "\u05E6\u05D4\u05DC": _22, "\u05DE\u05DE\u05E9\u05DC": _22 }], "im": [1, { "ac": _22, "co": [1, { "ltd": _22, "plc": _22 }], "com": _22, "net": _22, "org": _22, "tt": _22, "tv": _22 }], "in": [1, { "5g": _22, "6g": _22, "ac": _22, "ai": _22, "am": _22, "bank": _22, "bihar": _22, "biz": _22, "business": _22, "ca": _22, "cn": _22, "co": _22, "com": _22, "coop": _22, "cs": _22, "delhi": _22, "dr": _22, "edu": _22, "er": _22, "fin": _22, "firm": _22, "gen": _22, "gov": _22, "gujarat": _22, "ind": _22, "info": _22, "int": _22, "internet": _22, "io": _22, "me": _22, "mil": _22, "net": _22, "nic": _22, "org": _22, "pg": _22, "post": _22, "pro": _22, "res": _22, "travel": _22, "tv": _22, "uk": _22, "up": _22, "us": _22, "cloudns": _3, "barsy": _3, "web": _3, "indevs": _3, "supabase": _3 }], "info": [1, { "cloudns": _3, "dynamic-dns": _3, "barrel-of-knowledge": _3, "barrell-of-knowledge": _3, "dyndns": _3, "for-our": _3, "groks-the": _3, "groks-this": _3, "here-for-more": _3, "knowsitall": _3, "selfip": _3, "webhop": _3, "barsy": _3, "mayfirst": _3, "mittwald": _3, "mittwaldserver": _3, "typo3server": _3, "dvrcam": _3, "ilovecollege": _3, "no-ip": _3, "forumz": _3, "nsupdate": _3, "dnsupdate": _3, "v-info": _3 }], "int": [1, { "eu": _22 }], "io": [1, { "2038": _3, "co": _22, "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "nom": _22, "org": _22, "on-acorn": _6, "myaddr": _3, "apigee": _3, "b-data": _3, "beagleboard": _3, "bitbucket": _3, "bluebite": _3, "boxfuse": _3, "brave": _7, "browsersafetymark": _3, "bubble": _55, "bubbleapps": _3, "bigv": [0, { "uk0": _3 }], "cleverapps": _3, "cloudbeesusercontent": _3, "dappnode": [0, { "dyndns": _3 }], "darklang": _3, "definima": _3, "dedyn": _3, "icp0": _56, "icp1": _56, "qzz": _3, "fh-muenster": _3, "gitbook": _3, "github": _3, "gitlab": _3, "lolipop": _3, "hasura-app": _3, "hostyhosting": _3, "hypernode": _3, "moonscale": _6, "beebyte": _43, "beebyteapp": [0, { "sekd1": _3 }], "jele": _3, "keenetic": _3, "kiloapps": _3, "webthings": _3, "loginline": _3, "barsy": _3, "azurecontainer": _6, "ngrok": [2, { "ap": _3, "au": _3, "eu": _3, "in": _3, "jp": _3, "sa": _3, "us": _3 }], "nodeart": [0, { "stage": _3 }], "pantheonsite": _3, "forgerock": [0, { "id": _3 }], "pstmn": [2, { "mock": _3 }], "protonet": _3, "qcx": [2, { "sys": _6 }], "qoto": _3, "vaporcloud": _3, "myrdbx": _3, "rb-hosting": _46, "on-k3s": _6, "on-rio": _6, "readthedocs": _3, "resindevice": _3, "resinstaging": [0, { "devices": _3 }], "hzc": _3, "sandcats": _3, "scrypted": [0, { "client": _3 }], "mo-siemens": _3, "lair": _42, "stolos": _6, "musician": _3, "utwente": _3, "edugit": _3, "telebit": _3, "thingdust": [0, { "dev": _57, "disrec": _57, "prod": _58, "testing": _57 }], "tickets": _3, "webflow": _3, "webflowtest": _3, "editorx": _3, "wixstudio": _3, "basicserver": _3, "virtualserver": _3 }], "iq": _5, "ir": [1, { "ac": _22, "co": _22, "gov": _22, "id": _22, "net": _22, "org": _22, "sch": _22, "xn--mgba3a4f16a": _22, "\u0627\u06CC\u0631\u0627\u0646": _22, "xn--mgba3a4fra": _22, "\u0627\u064A\u0631\u0627\u0646": _22, "arvanedge": _3, "vistablog": _3 }], "is": _22, "it": [1, { "edu": _22, "gov": _22, "abr": _22, "abruzzo": _22, "aosta-valley": _22, "aostavalley": _22, "bas": _22, "basilicata": _22, "cal": _22, "calabria": _22, "cam": _22, "campania": _22, "emilia-romagna": _22, "emiliaromagna": _22, "emr": _22, "friuli-v-giulia": _22, "friuli-ve-giulia": _22, "friuli-vegiulia": _22, "friuli-venezia-giulia": _22, "friuli-veneziagiulia": _22, "friuli-vgiulia": _22, "friuliv-giulia": _22, "friulive-giulia": _22, "friulivegiulia": _22, "friulivenezia-giulia": _22, "friuliveneziagiulia": _22, "friulivgiulia": _22, "fvg": _22, "laz": _22, "lazio": _22, "lig": _22, "liguria": _22, "lom": _22, "lombardia": _22, "lombardy": _22, "lucania": _22, "mar": _22, "marche": _22, "mol": _22, "molise": _22, "piedmont": _22, "piemonte": _22, "pmn": _22, "pug": _22, "puglia": _22, "sar": _22, "sardegna": _22, "sardinia": _22, "sic": _22, "sicilia": _22, "sicily": _22, "taa": _22, "tos": _22, "toscana": _22, "trentin-sud-tirol": _22, "xn--trentin-sd-tirol-rzb": _22, "trentin-s\xFCd-tirol": _22, "trentin-sudtirol": _22, "xn--trentin-sdtirol-7vb": _22, "trentin-s\xFCdtirol": _22, "trentin-sued-tirol": _22, "trentin-suedtirol": _22, "trentino": _22, "trentino-a-adige": _22, "trentino-aadige": _22, "trentino-alto-adige": _22, "trentino-altoadige": _22, "trentino-s-tirol": _22, "trentino-stirol": _22, "trentino-sud-tirol": _22, "xn--trentino-sd-tirol-c3b": _22, "trentino-s\xFCd-tirol": _22, "trentino-sudtirol": _22, "xn--trentino-sdtirol-szb": _22, "trentino-s\xFCdtirol": _22, "trentino-sued-tirol": _22, "trentino-suedtirol": _22, "trentinoa-adige": _22, "trentinoaadige": _22, "trentinoalto-adige": _22, "trentinoaltoadige": _22, "trentinos-tirol": _22, "trentinostirol": _22, "trentinosud-tirol": _22, "xn--trentinosd-tirol-rzb": _22, "trentinos\xFCd-tirol": _22, "trentinosudtirol": _22, "xn--trentinosdtirol-7vb": _22, "trentinos\xFCdtirol": _22, "trentinosued-tirol": _22, "trentinosuedtirol": _22, "trentinsud-tirol": _22, "xn--trentinsd-tirol-6vb": _22, "trentins\xFCd-tirol": _22, "trentinsudtirol": _22, "xn--trentinsdtirol-nsb": _22, "trentins\xFCdtirol": _22, "trentinsued-tirol": _22, "trentinsuedtirol": _22, "tuscany": _22, "umb": _22, "umbria": _22, "val-d-aosta": _22, "val-daosta": _22, "vald-aosta": _22, "valdaosta": _22, "valle-aosta": _22, "valle-d-aosta": _22, "valle-daosta": _22, "valleaosta": _22, "valled-aosta": _22, "valledaosta": _22, "vallee-aoste": _22, "xn--valle-aoste-ebb": _22, "vall\xE9e-aoste": _22, "vallee-d-aoste": _22, "xn--valle-d-aoste-ehb": _22, "vall\xE9e-d-aoste": _22, "valleeaoste": _22, "xn--valleaoste-e7a": _22, "vall\xE9eaoste": _22, "valleedaoste": _22, "xn--valledaoste-ebb": _22, "vall\xE9edaoste": _22, "vao": _22, "vda": _22, "ven": _22, "veneto": _22, "ag": _22, "agrigento": _22, "al": _22, "alessandria": _22, "alto-adige": _22, "altoadige": _22, "an": _22, "ancona": _22, "andria-barletta-trani": _22, "andria-trani-barletta": _22, "andriabarlettatrani": _22, "andriatranibarletta": _22, "ao": _22, "aosta": _22, "aoste": _22, "ap": _22, "aq": _22, "aquila": _22, "ar": _22, "arezzo": _22, "ascoli-piceno": _22, "ascolipiceno": _22, "asti": _22, "at": _22, "av": _22, "avellino": _22, "ba": _22, "balsan": _22, "balsan-sudtirol": _22, "xn--balsan-sdtirol-nsb": _22, "balsan-s\xFCdtirol": _22, "balsan-suedtirol": _22, "bari": _22, "barletta-trani-andria": _22, "barlettatraniandria": _22, "belluno": _22, "benevento": _22, "bergamo": _22, "bg": _22, "bi": _22, "biella": _22, "bl": _22, "bn": _22, "bo": _22, "bologna": _22, "bolzano": _22, "bolzano-altoadige": _22, "bozen": _22, "bozen-sudtirol": _22, "xn--bozen-sdtirol-2ob": _22, "bozen-s\xFCdtirol": _22, "bozen-suedtirol": _22, "br": _22, "brescia": _22, "brindisi": _22, "bs": _22, "bt": _22, "bulsan": _22, "bulsan-sudtirol": _22, "xn--bulsan-sdtirol-nsb": _22, "bulsan-s\xFCdtirol": _22, "bulsan-suedtirol": _22, "bz": _22, "ca": _22, "cagliari": _22, "caltanissetta": _22, "campidano-medio": _22, "campidanomedio": _22, "campobasso": _22, "carbonia-iglesias": _22, "carboniaiglesias": _22, "carrara-massa": _22, "carraramassa": _22, "caserta": _22, "catania": _22, "catanzaro": _22, "cb": _22, "ce": _22, "cesena-forli": _22, "xn--cesena-forl-mcb": _22, "cesena-forl\xEC": _22, "cesenaforli": _22, "xn--cesenaforl-i8a": _22, "cesenaforl\xEC": _22, "ch": _22, "chieti": _22, "ci": _22, "cl": _22, "cn": _22, "co": _22, "como": _22, "cosenza": _22, "cr": _22, "cremona": _22, "crotone": _22, "cs": _22, "ct": _22, "cuneo": _22, "cz": _22, "dell-ogliastra": _22, "dellogliastra": _22, "en": _22, "enna": _22, "fc": _22, "fe": _22, "fermo": _22, "ferrara": _22, "fg": _22, "fi": _22, "firenze": _22, "florence": _22, "fm": _22, "foggia": _22, "forli-cesena": _22, "xn--forl-cesena-fcb": _22, "forl\xEC-cesena": _22, "forlicesena": _22, "xn--forlcesena-c8a": _22, "forl\xECcesena": _22, "fr": _22, "frosinone": _22, "ge": _22, "genoa": _22, "genova": _22, "go": _22, "gorizia": _22, "gr": _22, "grosseto": _22, "iglesias-carbonia": _22, "iglesiascarbonia": _22, "im": _22, "imperia": _22, "is": _22, "isernia": _22, "kr": _22, "la-spezia": _22, "laquila": _22, "laspezia": _22, "latina": _22, "lc": _22, "le": _22, "lecce": _22, "lecco": _22, "li": _22, "livorno": _22, "lo": _22, "lodi": _22, "lt": _22, "lu": _22, "lucca": _22, "macerata": _22, "mantova": _22, "massa-carrara": _22, "massacarrara": _22, "matera": _22, "mb": _22, "mc": _22, "me": _22, "medio-campidano": _22, "mediocampidano": _22, "messina": _22, "mi": _22, "milan": _22, "milano": _22, "mn": _22, "mo": _22, "modena": _22, "monza": _22, "monza-brianza": _22, "monza-e-della-brianza": _22, "monzabrianza": _22, "monzaebrianza": _22, "monzaedellabrianza": _22, "ms": _22, "mt": _22, "na": _22, "naples": _22, "napoli": _22, "no": _22, "novara": _22, "nu": _22, "nuoro": _22, "og": _22, "ogliastra": _22, "olbia-tempio": _22, "olbiatempio": _22, "or": _22, "oristano": _22, "ot": _22, "pa": _22, "padova": _22, "padua": _22, "palermo": _22, "parma": _22, "pavia": _22, "pc": _22, "pd": _22, "pe": _22, "perugia": _22, "pesaro-urbino": _22, "pesarourbino": _22, "pescara": _22, "pg": _22, "pi": _22, "piacenza": _22, "pisa": _22, "pistoia": _22, "pn": _22, "po": _22, "pordenone": _22, "potenza": _22, "pr": _22, "prato": _22, "pt": _22, "pu": _22, "pv": _22, "pz": _22, "ra": _22, "ragusa": _22, "ravenna": _22, "rc": _22, "re": _22, "reggio-calabria": _22, "reggio-emilia": _22, "reggiocalabria": _22, "reggioemilia": _22, "rg": _22, "ri": _22, "rieti": _22, "rimini": _22, "rm": _22, "rn": _22, "ro": _22, "roma": _22, "rome": _22, "rovigo": _22, "sa": _22, "salerno": _22, "sassari": _22, "savona": _22, "si": _22, "siena": _22, "siracusa": _22, "so": _22, "sondrio": _22, "sp": _22, "sr": _22, "ss": _22, "xn--sdtirol-n2a": _22, "s\xFCdtirol": _22, "suedtirol": _22, "sv": _22, "ta": _22, "taranto": _22, "te": _22, "tempio-olbia": _22, "tempioolbia": _22, "teramo": _22, "terni": _22, "tn": _22, "to": _22, "torino": _22, "tp": _22, "tr": _22, "trani-andria-barletta": _22, "trani-barletta-andria": _22, "traniandriabarletta": _22, "tranibarlettaandria": _22, "trapani": _22, "trento": _22, "treviso": _22, "trieste": _22, "ts": _22, "turin": _22, "tv": _22, "ud": _22, "udine": _22, "urbino-pesaro": _22, "urbinopesaro": _22, "va": _22, "varese": _22, "vb": _22, "vc": _22, "ve": _22, "venezia": _22, "venice": _22, "verbania": _22, "vercelli": _22, "verona": _22, "vi": _22, "vibo-valentia": _22, "vibovalentia": _22, "vicenza": _22, "viterbo": _22, "vr": _22, "vs": _22, "vt": _22, "vv": _22, "ibxos": _3, "iliadboxos": _3, "neen": [0, { "jc": _3 }], "123homepage": _3, "16-b": _3, "32-b": _3, "64-b": _3, "myspreadshop": _3, "syncloud": _3 }], "je": [1, { "co": _22, "net": _22, "org": _22, "of": _3 }], "jm": _21, "jo": [1, { "agri": _22, "ai": _22, "com": _22, "edu": _22, "eng": _22, "fm": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "per": _22, "phd": _22, "sch": _22, "tv": _22 }], "jobs": _22, "jp": [1, { "ac": _22, "ad": _22, "co": _22, "ed": _22, "go": _22, "gr": _22, "lg": _22, "ne": [1, { "aseinet": _54, "gehirn": _3, "ivory": _3, "mail-box": _3, "mints": _3, "mokuren": _3, "opal": _3, "sakura": _3, "sumomo": _3, "topaz": _3 }], "or": _22, "aichi": [1, { "aisai": _22, "ama": _22, "anjo": _22, "asuke": _22, "chiryu": _22, "chita": _22, "fuso": _22, "gamagori": _22, "handa": _22, "hazu": _22, "hekinan": _22, "higashiura": _22, "ichinomiya": _22, "inazawa": _22, "inuyama": _22, "isshiki": _22, "iwakura": _22, "kanie": _22, "kariya": _22, "kasugai": _22, "kira": _22, "kiyosu": _22, "komaki": _22, "konan": _22, "kota": _22, "mihama": _22, "miyoshi": _22, "nishio": _22, "nisshin": _22, "obu": _22, "oguchi": _22, "oharu": _22, "okazaki": _22, "owariasahi": _22, "seto": _22, "shikatsu": _22, "shinshiro": _22, "shitara": _22, "tahara": _22, "takahama": _22, "tobishima": _22, "toei": _22, "togo": _22, "tokai": _22, "tokoname": _22, "toyoake": _22, "toyohashi": _22, "toyokawa": _22, "toyone": _22, "toyota": _22, "tsushima": _22, "yatomi": _22 }], "akita": [1, { "akita": _22, "daisen": _22, "fujisato": _22, "gojome": _22, "hachirogata": _22, "happou": _22, "higashinaruse": _22, "honjo": _22, "honjyo": _22, "ikawa": _22, "kamikoani": _22, "kamioka": _22, "katagami": _22, "kazuno": _22, "kitaakita": _22, "kosaka": _22, "kyowa": _22, "misato": _22, "mitane": _22, "moriyoshi": _22, "nikaho": _22, "noshiro": _22, "odate": _22, "oga": _22, "ogata": _22, "semboku": _22, "yokote": _22, "yurihonjo": _22 }], "aomori": [1, { "aomori": _22, "gonohe": _22, "hachinohe": _22, "hashikami": _22, "hiranai": _22, "hirosaki": _22, "itayanagi": _22, "kuroishi": _22, "misawa": _22, "mutsu": _22, "nakadomari": _22, "noheji": _22, "oirase": _22, "owani": _22, "rokunohe": _22, "sannohe": _22, "shichinohe": _22, "shingo": _22, "takko": _22, "towada": _22, "tsugaru": _22, "tsuruta": _22 }], "chiba": [1, { "abiko": _22, "asahi": _22, "chonan": _22, "chosei": _22, "choshi": _22, "chuo": _22, "funabashi": _22, "futtsu": _22, "hanamigawa": _22, "ichihara": _22, "ichikawa": _22, "ichinomiya": _22, "inzai": _22, "isumi": _22, "kamagaya": _22, "kamogawa": _22, "kashiwa": _22, "katori": _22, "katsuura": _22, "kimitsu": _22, "kisarazu": _22, "kozaki": _22, "kujukuri": _22, "kyonan": _22, "matsudo": _22, "midori": _22, "mihama": _22, "minamiboso": _22, "mobara": _22, "mutsuzawa": _22, "nagara": _22, "nagareyama": _22, "narashino": _22, "narita": _22, "noda": _22, "oamishirasato": _22, "omigawa": _22, "onjuku": _22, "otaki": _22, "sakae": _22, "sakura": _22, "shimofusa": _22, "shirako": _22, "shiroi": _22, "shisui": _22, "sodegaura": _22, "sosa": _22, "tako": _22, "tateyama": _22, "togane": _22, "tohnosho": _22, "tomisato": _22, "urayasu": _22, "yachimata": _22, "yachiyo": _22, "yokaichiba": _22, "yokoshibahikari": _22, "yotsukaido": _22 }], "ehime": [1, { "ainan": _22, "honai": _22, "ikata": _22, "imabari": _22, "iyo": _22, "kamijima": _22, "kihoku": _22, "kumakogen": _22, "masaki": _22, "matsuno": _22, "matsuyama": _22, "namikata": _22, "niihama": _22, "ozu": _22, "saijo": _22, "seiyo": _22, "shikokuchuo": _22, "tobe": _22, "toon": _22, "uchiko": _22, "uwajima": _22, "yawatahama": _22 }], "fukui": [1, { "echizen": _22, "eiheiji": _22, "fukui": _22, "ikeda": _22, "katsuyama": _22, "mihama": _22, "minamiechizen": _22, "obama": _22, "ohi": _22, "ono": _22, "sabae": _22, "sakai": _22, "takahama": _22, "tsuruga": _22, "wakasa": _22 }], "fukuoka": [1, { "ashiya": _22, "buzen": _22, "chikugo": _22, "chikuho": _22, "chikujo": _22, "chikushino": _22, "chikuzen": _22, "chuo": _22, "dazaifu": _22, "fukuchi": _22, "hakata": _22, "higashi": _22, "hirokawa": _22, "hisayama": _22, "iizuka": _22, "inatsuki": _22, "kaho": _22, "kasuga": _22, "kasuya": _22, "kawara": _22, "keisen": _22, "koga": _22, "kurate": _22, "kurogi": _22, "kurume": _22, "minami": _22, "miyako": _22, "miyama": _22, "miyawaka": _22, "mizumaki": _22, "munakata": _22, "nakagawa": _22, "nakama": _22, "nishi": _22, "nogata": _22, "ogori": _22, "okagaki": _22, "okawa": _22, "oki": _22, "omuta": _22, "onga": _22, "onojo": _22, "oto": _22, "saigawa": _22, "sasaguri": _22, "shingu": _22, "shinyoshitomi": _22, "shonai": _22, "soeda": _22, "sue": _22, "tachiarai": _22, "tagawa": _22, "takata": _22, "toho": _22, "toyotsu": _22, "tsuiki": _22, "ukiha": _22, "umi": _22, "usui": _22, "yamada": _22, "yame": _22, "yanagawa": _22, "yukuhashi": _22 }], "fukushima": [1, { "aizubange": _22, "aizumisato": _22, "aizuwakamatsu": _22, "asakawa": _22, "bandai": _22, "date": _22, "fukushima": _22, "furudono": _22, "futaba": _22, "hanawa": _22, "higashi": _22, "hirata": _22, "hirono": _22, "iitate": _22, "inawashiro": _22, "ishikawa": _22, "iwaki": _22, "izumizaki": _22, "kagamiishi": _22, "kaneyama": _22, "kawamata": _22, "kitakata": _22, "kitashiobara": _22, "koori": _22, "koriyama": _22, "kunimi": _22, "miharu": _22, "mishima": _22, "namie": _22, "nango": _22, "nishiaizu": _22, "nishigo": _22, "okuma": _22, "omotego": _22, "ono": _22, "otama": _22, "samegawa": _22, "shimogo": _22, "shirakawa": _22, "showa": _22, "soma": _22, "sukagawa": _22, "taishin": _22, "tamakawa": _22, "tanagura": _22, "tenei": _22, "yabuki": _22, "yamato": _22, "yamatsuri": _22, "yanaizu": _22, "yugawa": _22 }], "gifu": [1, { "anpachi": _22, "ena": _22, "gifu": _22, "ginan": _22, "godo": _22, "gujo": _22, "hashima": _22, "hichiso": _22, "hida": _22, "higashishirakawa": _22, "ibigawa": _22, "ikeda": _22, "kakamigahara": _22, "kani": _22, "kasahara": _22, "kasamatsu": _22, "kawaue": _22, "kitagata": _22, "mino": _22, "minokamo": _22, "mitake": _22, "mizunami": _22, "motosu": _22, "nakatsugawa": _22, "ogaki": _22, "sakahogi": _22, "seki": _22, "sekigahara": _22, "shirakawa": _22, "tajimi": _22, "takayama": _22, "tarui": _22, "toki": _22, "tomika": _22, "wanouchi": _22, "yamagata": _22, "yaotsu": _22, "yoro": _22 }], "gunma": [1, { "annaka": _22, "chiyoda": _22, "fujioka": _22, "higashiagatsuma": _22, "isesaki": _22, "itakura": _22, "kanna": _22, "kanra": _22, "katashina": _22, "kawaba": _22, "kiryu": _22, "kusatsu": _22, "maebashi": _22, "meiwa": _22, "midori": _22, "minakami": _22, "naganohara": _22, "nakanojo": _22, "nanmoku": _22, "numata": _22, "oizumi": _22, "ora": _22, "ota": _22, "shibukawa": _22, "shimonita": _22, "shinto": _22, "showa": _22, "takasaki": _22, "takayama": _22, "tamamura": _22, "tatebayashi": _22, "tomioka": _22, "tsukiyono": _22, "tsumagoi": _22, "ueno": _22, "yoshioka": _22 }], "hiroshima": [1, { "asaminami": _22, "daiwa": _22, "etajima": _22, "fuchu": _22, "fukuyama": _22, "hatsukaichi": _22, "higashihiroshima": _22, "hongo": _22, "jinsekikogen": _22, "kaita": _22, "kui": _22, "kumano": _22, "kure": _22, "mihara": _22, "miyoshi": _22, "naka": _22, "onomichi": _22, "osakikamijima": _22, "otake": _22, "saka": _22, "sera": _22, "seranishi": _22, "shinichi": _22, "shobara": _22, "takehara": _22 }], "hokkaido": [1, { "abashiri": _22, "abira": _22, "aibetsu": _22, "akabira": _22, "akkeshi": _22, "asahikawa": _22, "ashibetsu": _22, "ashoro": _22, "assabu": _22, "atsuma": _22, "bibai": _22, "biei": _22, "bifuka": _22, "bihoro": _22, "biratori": _22, "chippubetsu": _22, "chitose": _22, "date": _22, "ebetsu": _22, "embetsu": _22, "eniwa": _22, "erimo": _22, "esan": _22, "esashi": _22, "fukagawa": _22, "fukushima": _22, "furano": _22, "furubira": _22, "haboro": _22, "hakodate": _22, "hamatonbetsu": _22, "hidaka": _22, "higashikagura": _22, "higashikawa": _22, "hiroo": _22, "hokuryu": _22, "hokuto": _22, "honbetsu": _22, "horokanai": _22, "horonobe": _22, "ikeda": _22, "imakane": _22, "ishikari": _22, "iwamizawa": _22, "iwanai": _22, "kamifurano": _22, "kamikawa": _22, "kamishihoro": _22, "kamisunagawa": _22, "kamoenai": _22, "kayabe": _22, "kembuchi": _22, "kikonai": _22, "kimobetsu": _22, "kitahiroshima": _22, "kitami": _22, "kiyosato": _22, "koshimizu": _22, "kunneppu": _22, "kuriyama": _22, "kuromatsunai": _22, "kushiro": _22, "kutchan": _22, "kyowa": _22, "mashike": _22, "matsumae": _22, "mikasa": _22, "minamifurano": _22, "mombetsu": _22, "moseushi": _22, "mukawa": _22, "muroran": _22, "naie": _22, "nakagawa": _22, "nakasatsunai": _22, "nakatombetsu": _22, "nanae": _22, "nanporo": _22, "nayoro": _22, "nemuro": _22, "niikappu": _22, "niki": _22, "nishiokoppe": _22, "noboribetsu": _22, "numata": _22, "obihiro": _22, "obira": _22, "oketo": _22, "okoppe": _22, "otaru": _22, "otobe": _22, "otofuke": _22, "otoineppu": _22, "oumu": _22, "ozora": _22, "pippu": _22, "rankoshi": _22, "rebun": _22, "rikubetsu": _22, "rishiri": _22, "rishirifuji": _22, "saroma": _22, "sarufutsu": _22, "shakotan": _22, "shari": _22, "shibecha": _22, "shibetsu": _22, "shikabe": _22, "shikaoi": _22, "shimamaki": _22, "shimizu": _22, "shimokawa": _22, "shinshinotsu": _22, "shintoku": _22, "shiranuka": _22, "shiraoi": _22, "shiriuchi": _22, "sobetsu": _22, "sunagawa": _22, "taiki": _22, "takasu": _22, "takikawa": _22, "takinoue": _22, "teshikaga": _22, "tobetsu": _22, "tohma": _22, "tomakomai": _22, "tomari": _22, "toya": _22, "toyako": _22, "toyotomi": _22, "toyoura": _22, "tsubetsu": _22, "tsukigata": _22, "urakawa": _22, "urausu": _22, "uryu": _22, "utashinai": _22, "wakkanai": _22, "wassamu": _22, "yakumo": _22, "yoichi": _22 }], "hyogo": [1, { "aioi": _22, "akashi": _22, "ako": _22, "amagasaki": _22, "aogaki": _22, "asago": _22, "ashiya": _22, "awaji": _22, "fukusaki": _22, "goshiki": _22, "harima": _22, "himeji": _22, "ichikawa": _22, "inagawa": _22, "itami": _22, "kakogawa": _22, "kamigori": _22, "kamikawa": _22, "kasai": _22, "kasuga": _22, "kawanishi": _22, "miki": _22, "minamiawaji": _22, "nishinomiya": _22, "nishiwaki": _22, "ono": _22, "sanda": _22, "sannan": _22, "sasayama": _22, "sayo": _22, "shingu": _22, "shinonsen": _22, "shiso": _22, "sumoto": _22, "taishi": _22, "taka": _22, "takarazuka": _22, "takasago": _22, "takino": _22, "tamba": _22, "tatsuno": _22, "toyooka": _22, "yabu": _22, "yashiro": _22, "yoka": _22, "yokawa": _22 }], "ibaraki": [1, { "ami": _22, "asahi": _22, "bando": _22, "chikusei": _22, "daigo": _22, "fujishiro": _22, "hitachi": _22, "hitachinaka": _22, "hitachiomiya": _22, "hitachiota": _22, "ibaraki": _22, "ina": _22, "inashiki": _22, "itako": _22, "iwama": _22, "joso": _22, "kamisu": _22, "kasama": _22, "kashima": _22, "kasumigaura": _22, "koga": _22, "miho": _22, "mito": _22, "moriya": _22, "naka": _22, "namegata": _22, "oarai": _22, "ogawa": _22, "omitama": _22, "ryugasaki": _22, "sakai": _22, "sakuragawa": _22, "shimodate": _22, "shimotsuma": _22, "shirosato": _22, "sowa": _22, "suifu": _22, "takahagi": _22, "tamatsukuri": _22, "tokai": _22, "tomobe": _22, "tone": _22, "toride": _22, "tsuchiura": _22, "tsukuba": _22, "uchihara": _22, "ushiku": _22, "yachiyo": _22, "yamagata": _22, "yawara": _22, "yuki": _22 }], "ishikawa": [1, { "anamizu": _22, "hakui": _22, "hakusan": _22, "kaga": _22, "kahoku": _22, "kanazawa": _22, "kawakita": _22, "komatsu": _22, "nakanoto": _22, "nanao": _22, "nomi": _22, "nonoichi": _22, "noto": _22, "shika": _22, "suzu": _22, "tsubata": _22, "tsurugi": _22, "uchinada": _22, "wajima": _22 }], "iwate": [1, { "fudai": _22, "fujisawa": _22, "hanamaki": _22, "hiraizumi": _22, "hirono": _22, "ichinohe": _22, "ichinoseki": _22, "iwaizumi": _22, "iwate": _22, "joboji": _22, "kamaishi": _22, "kanegasaki": _22, "karumai": _22, "kawai": _22, "kitakami": _22, "kuji": _22, "kunohe": _22, "kuzumaki": _22, "miyako": _22, "mizusawa": _22, "morioka": _22, "ninohe": _22, "noda": _22, "ofunato": _22, "oshu": _22, "otsuchi": _22, "rikuzentakata": _22, "shiwa": _22, "shizukuishi": _22, "sumita": _22, "tanohata": _22, "tono": _22, "yahaba": _22, "yamada": _22 }], "kagawa": [1, { "ayagawa": _22, "higashikagawa": _22, "kanonji": _22, "kotohira": _22, "manno": _22, "marugame": _22, "mitoyo": _22, "naoshima": _22, "sanuki": _22, "tadotsu": _22, "takamatsu": _22, "tonosho": _22, "uchinomi": _22, "utazu": _22, "zentsuji": _22 }], "kagoshima": [1, { "akune": _22, "amami": _22, "hioki": _22, "isa": _22, "isen": _22, "izumi": _22, "kagoshima": _22, "kanoya": _22, "kawanabe": _22, "kinko": _22, "kouyama": _22, "makurazaki": _22, "matsumoto": _22, "minamitane": _22, "nakatane": _22, "nishinoomote": _22, "satsumasendai": _22, "soo": _22, "tarumizu": _22, "yusui": _22 }], "kanagawa": [1, { "aikawa": _22, "atsugi": _22, "ayase": _22, "chigasaki": _22, "ebina": _22, "fujisawa": _22, "hadano": _22, "hakone": _22, "hiratsuka": _22, "isehara": _22, "kaisei": _22, "kamakura": _22, "kiyokawa": _22, "matsuda": _22, "minamiashigara": _22, "miura": _22, "nakai": _22, "ninomiya": _22, "odawara": _22, "oi": _22, "oiso": _22, "sagamihara": _22, "samukawa": _22, "tsukui": _22, "yamakita": _22, "yamato": _22, "yokosuka": _22, "yugawara": _22, "zama": _22, "zushi": _22 }], "kochi": [1, { "aki": _22, "geisei": _22, "hidaka": _22, "higashitsuno": _22, "ino": _22, "kagami": _22, "kami": _22, "kitagawa": _22, "kochi": _22, "mihara": _22, "motoyama": _22, "muroto": _22, "nahari": _22, "nakamura": _22, "nankoku": _22, "nishitosa": _22, "niyodogawa": _22, "ochi": _22, "okawa": _22, "otoyo": _22, "otsuki": _22, "sakawa": _22, "sukumo": _22, "susaki": _22, "tosa": _22, "tosashimizu": _22, "toyo": _22, "tsuno": _22, "umaji": _22, "yasuda": _22, "yusuhara": _22 }], "kumamoto": [1, { "amakusa": _22, "arao": _22, "aso": _22, "choyo": _22, "gyokuto": _22, "kamiamakusa": _22, "kikuchi": _22, "kumamoto": _22, "mashiki": _22, "mifune": _22, "minamata": _22, "minamioguni": _22, "nagasu": _22, "nishihara": _22, "oguni": _22, "ozu": _22, "sumoto": _22, "takamori": _22, "uki": _22, "uto": _22, "yamaga": _22, "yamato": _22, "yatsushiro": _22 }], "kyoto": [1, { "ayabe": _22, "fukuchiyama": _22, "higashiyama": _22, "ide": _22, "ine": _22, "joyo": _22, "kameoka": _22, "kamo": _22, "kita": _22, "kizu": _22, "kumiyama": _22, "kyotamba": _22, "kyotanabe": _22, "kyotango": _22, "maizuru": _22, "minami": _22, "minamiyamashiro": _22, "miyazu": _22, "muko": _22, "nagaokakyo": _22, "nakagyo": _22, "nantan": _22, "oyamazaki": _22, "sakyo": _22, "seika": _22, "tanabe": _22, "uji": _22, "ujitawara": _22, "wazuka": _22, "yamashina": _22, "yawata": _22 }], "mie": [1, { "asahi": _22, "inabe": _22, "ise": _22, "kameyama": _22, "kawagoe": _22, "kiho": _22, "kisosaki": _22, "kiwa": _22, "komono": _22, "kumano": _22, "kuwana": _22, "matsusaka": _22, "meiwa": _22, "mihama": _22, "minamiise": _22, "misugi": _22, "miyama": _22, "nabari": _22, "shima": _22, "suzuka": _22, "tado": _22, "taiki": _22, "taki": _22, "tamaki": _22, "toba": _22, "tsu": _22, "udono": _22, "ureshino": _22, "watarai": _22, "yokkaichi": _22 }], "miyagi": [1, { "furukawa": _22, "higashimatsushima": _22, "ishinomaki": _22, "iwanuma": _22, "kakuda": _22, "kami": _22, "kawasaki": _22, "marumori": _22, "matsushima": _22, "minamisanriku": _22, "misato": _22, "murata": _22, "natori": _22, "ogawara": _22, "ohira": _22, "onagawa": _22, "osaki": _22, "rifu": _22, "semine": _22, "shibata": _22, "shichikashuku": _22, "shikama": _22, "shiogama": _22, "shiroishi": _22, "tagajo": _22, "taiwa": _22, "tome": _22, "tomiya": _22, "wakuya": _22, "watari": _22, "yamamoto": _22, "zao": _22 }], "miyazaki": [1, { "aya": _22, "ebino": _22, "gokase": _22, "hyuga": _22, "kadogawa": _22, "kawaminami": _22, "kijo": _22, "kitagawa": _22, "kitakata": _22, "kitaura": _22, "kobayashi": _22, "kunitomi": _22, "kushima": _22, "mimata": _22, "miyakonojo": _22, "miyazaki": _22, "morotsuka": _22, "nichinan": _22, "nishimera": _22, "nobeoka": _22, "saito": _22, "shiiba": _22, "shintomi": _22, "takaharu": _22, "takanabe": _22, "takazaki": _22, "tsuno": _22 }], "nagano": [1, { "achi": _22, "agematsu": _22, "anan": _22, "aoki": _22, "asahi": _22, "azumino": _22, "chikuhoku": _22, "chikuma": _22, "chino": _22, "fujimi": _22, "hakuba": _22, "hara": _22, "hiraya": _22, "iida": _22, "iijima": _22, "iiyama": _22, "iizuna": _22, "ikeda": _22, "ikusaka": _22, "ina": _22, "karuizawa": _22, "kawakami": _22, "kiso": _22, "kisofukushima": _22, "kitaaiki": _22, "komagane": _22, "komoro": _22, "matsukawa": _22, "matsumoto": _22, "miasa": _22, "minamiaiki": _22, "minamimaki": _22, "minamiminowa": _22, "minowa": _22, "miyada": _22, "miyota": _22, "mochizuki": _22, "nagano": _22, "nagawa": _22, "nagiso": _22, "nakagawa": _22, "nakano": _22, "nozawaonsen": _22, "obuse": _22, "ogawa": _22, "okaya": _22, "omachi": _22, "omi": _22, "ookuwa": _22, "ooshika": _22, "otaki": _22, "otari": _22, "sakae": _22, "sakaki": _22, "saku": _22, "sakuho": _22, "shimosuwa": _22, "shinanomachi": _22, "shiojiri": _22, "suwa": _22, "suzaka": _22, "takagi": _22, "takamori": _22, "takayama": _22, "tateshina": _22, "tatsuno": _22, "togakushi": _22, "togura": _22, "tomi": _22, "ueda": _22, "wada": _22, "yamagata": _22, "yamanouchi": _22, "yasaka": _22, "yasuoka": _22 }], "nagasaki": [1, { "chijiwa": _22, "futsu": _22, "goto": _22, "hasami": _22, "hirado": _22, "iki": _22, "isahaya": _22, "kawatana": _22, "kuchinotsu": _22, "matsuura": _22, "nagasaki": _22, "obama": _22, "omura": _22, "oseto": _22, "saikai": _22, "sasebo": _22, "seihi": _22, "shimabara": _22, "shinkamigoto": _22, "togitsu": _22, "tsushima": _22, "unzen": _22 }], "nara": [1, { "ando": _22, "gose": _22, "heguri": _22, "higashiyoshino": _22, "ikaruga": _22, "ikoma": _22, "kamikitayama": _22, "kanmaki": _22, "kashiba": _22, "kashihara": _22, "katsuragi": _22, "kawai": _22, "kawakami": _22, "kawanishi": _22, "koryo": _22, "kurotaki": _22, "mitsue": _22, "miyake": _22, "nara": _22, "nosegawa": _22, "oji": _22, "ouda": _22, "oyodo": _22, "sakurai": _22, "sango": _22, "shimoichi": _22, "shimokitayama": _22, "shinjo": _22, "soni": _22, "takatori": _22, "tawaramoto": _22, "tenkawa": _22, "tenri": _22, "uda": _22, "yamatokoriyama": _22, "yamatotakada": _22, "yamazoe": _22, "yoshino": _22 }], "niigata": [1, { "aga": _22, "agano": _22, "gosen": _22, "itoigawa": _22, "izumozaki": _22, "joetsu": _22, "kamo": _22, "kariwa": _22, "kashiwazaki": _22, "minamiuonuma": _22, "mitsuke": _22, "muika": _22, "murakami": _22, "myoko": _22, "nagaoka": _22, "niigata": _22, "ojiya": _22, "omi": _22, "sado": _22, "sanjo": _22, "seiro": _22, "seirou": _22, "sekikawa": _22, "shibata": _22, "tagami": _22, "tainai": _22, "tochio": _22, "tokamachi": _22, "tsubame": _22, "tsunan": _22, "uonuma": _22, "yahiko": _22, "yoita": _22, "yuzawa": _22 }], "oita": [1, { "beppu": _22, "bungoono": _22, "bungotakada": _22, "hasama": _22, "hiji": _22, "himeshima": _22, "hita": _22, "kamitsue": _22, "kokonoe": _22, "kuju": _22, "kunisaki": _22, "kusu": _22, "oita": _22, "saiki": _22, "taketa": _22, "tsukumi": _22, "usa": _22, "usuki": _22, "yufu": _22 }], "okayama": [1, { "akaiwa": _22, "asakuchi": _22, "bizen": _22, "hayashima": _22, "ibara": _22, "kagamino": _22, "kasaoka": _22, "kibichuo": _22, "kumenan": _22, "kurashiki": _22, "maniwa": _22, "misaki": _22, "nagi": _22, "niimi": _22, "nishiawakura": _22, "okayama": _22, "satosho": _22, "setouchi": _22, "shinjo": _22, "shoo": _22, "soja": _22, "takahashi": _22, "tamano": _22, "tsuyama": _22, "wake": _22, "yakage": _22 }], "okinawa": [1, { "aguni": _22, "ginowan": _22, "ginoza": _22, "gushikami": _22, "haebaru": _22, "higashi": _22, "hirara": _22, "iheya": _22, "ishigaki": _22, "ishikawa": _22, "itoman": _22, "izena": _22, "kadena": _22, "kin": _22, "kitadaito": _22, "kitanakagusuku": _22, "kumejima": _22, "kunigami": _22, "minamidaito": _22, "motobu": _22, "nago": _22, "naha": _22, "nakagusuku": _22, "nakijin": _22, "nanjo": _22, "nishihara": _22, "ogimi": _22, "okinawa": _22, "onna": _22, "shimoji": _22, "taketomi": _22, "tarama": _22, "tokashiki": _22, "tomigusuku": _22, "tonaki": _22, "urasoe": _22, "uruma": _22, "yaese": _22, "yomitan": _22, "yonabaru": _22, "yonaguni": _22, "zamami": _22 }], "osaka": [1, { "abeno": _22, "chihayaakasaka": _22, "chuo": _22, "daito": _22, "fujiidera": _22, "habikino": _22, "hannan": _22, "higashiosaka": _22, "higashisumiyoshi": _22, "higashiyodogawa": _22, "hirakata": _22, "ibaraki": _22, "ikeda": _22, "izumi": _22, "izumiotsu": _22, "izumisano": _22, "kadoma": _22, "kaizuka": _22, "kanan": _22, "kashiwara": _22, "katano": _22, "kawachinagano": _22, "kishiwada": _22, "kita": _22, "kumatori": _22, "matsubara": _22, "minato": _22, "minoh": _22, "misaki": _22, "moriguchi": _22, "neyagawa": _22, "nishi": _22, "nose": _22, "osakasayama": _22, "sakai": _22, "sayama": _22, "sennan": _22, "settsu": _22, "shijonawate": _22, "shimamoto": _22, "suita": _22, "tadaoka": _22, "taishi": _22, "tajiri": _22, "takaishi": _22, "takatsuki": _22, "tondabayashi": _22, "toyonaka": _22, "toyono": _22, "yao": _22 }], "saga": [1, { "ariake": _22, "arita": _22, "fukudomi": _22, "genkai": _22, "hamatama": _22, "hizen": _22, "imari": _22, "kamimine": _22, "kanzaki": _22, "karatsu": _22, "kashima": _22, "kitagata": _22, "kitahata": _22, "kiyama": _22, "kouhoku": _22, "kyuragi": _22, "nishiarita": _22, "ogi": _22, "omachi": _22, "ouchi": _22, "saga": _22, "shiroishi": _22, "taku": _22, "tara": _22, "tosu": _22, "yoshinogari": _22 }], "saitama": [1, { "arakawa": _22, "asaka": _22, "chichibu": _22, "fujimi": _22, "fujimino": _22, "fukaya": _22, "hanno": _22, "hanyu": _22, "hasuda": _22, "hatogaya": _22, "hatoyama": _22, "hidaka": _22, "higashichichibu": _22, "higashimatsuyama": _22, "honjo": _22, "ina": _22, "iruma": _22, "iwatsuki": _22, "kamiizumi": _22, "kamikawa": _22, "kamisato": _22, "kasukabe": _22, "kawagoe": _22, "kawaguchi": _22, "kawajima": _22, "kazo": _22, "kitamoto": _22, "koshigaya": _22, "kounosu": _22, "kuki": _22, "kumagaya": _22, "matsubushi": _22, "minano": _22, "misato": _22, "miyashiro": _22, "miyoshi": _22, "moroyama": _22, "nagatoro": _22, "namegawa": _22, "niiza": _22, "ogano": _22, "ogawa": _22, "ogose": _22, "okegawa": _22, "omiya": _22, "otaki": _22, "ranzan": _22, "ryokami": _22, "saitama": _22, "sakado": _22, "satte": _22, "sayama": _22, "shiki": _22, "shiraoka": _22, "soka": _22, "sugito": _22, "toda": _22, "tokigawa": _22, "tokorozawa": _22, "tsurugashima": _22, "urawa": _22, "warabi": _22, "yashio": _22, "yokoze": _22, "yono": _22, "yorii": _22, "yoshida": _22, "yoshikawa": _22, "yoshimi": _22 }], "shiga": [1, { "aisho": _22, "gamo": _22, "higashiomi": _22, "hikone": _22, "koka": _22, "konan": _22, "kosei": _22, "koto": _22, "kusatsu": _22, "maibara": _22, "moriyama": _22, "nagahama": _22, "nishiazai": _22, "notogawa": _22, "omihachiman": _22, "otsu": _22, "ritto": _22, "ryuoh": _22, "takashima": _22, "takatsuki": _22, "torahime": _22, "toyosato": _22, "yasu": _22 }], "shimane": [1, { "akagi": _22, "ama": _22, "gotsu": _22, "hamada": _22, "higashiizumo": _22, "hikawa": _22, "hikimi": _22, "izumo": _22, "kakinoki": _22, "masuda": _22, "matsue": _22, "misato": _22, "nishinoshima": _22, "ohda": _22, "okinoshima": _22, "okuizumo": _22, "shimane": _22, "tamayu": _22, "tsuwano": _22, "unnan": _22, "yakumo": _22, "yasugi": _22, "yatsuka": _22 }], "shizuoka": [1, { "arai": _22, "atami": _22, "fuji": _22, "fujieda": _22, "fujikawa": _22, "fujinomiya": _22, "fukuroi": _22, "gotemba": _22, "haibara": _22, "hamamatsu": _22, "higashiizu": _22, "ito": _22, "iwata": _22, "izu": _22, "izunokuni": _22, "kakegawa": _22, "kannami": _22, "kawanehon": _22, "kawazu": _22, "kikugawa": _22, "kosai": _22, "makinohara": _22, "matsuzaki": _22, "minamiizu": _22, "mishima": _22, "morimachi": _22, "nishiizu": _22, "numazu": _22, "omaezaki": _22, "shimada": _22, "shimizu": _22, "shimoda": _22, "shizuoka": _22, "susono": _22, "yaizu": _22, "yoshida": _22 }], "tochigi": [1, { "ashikaga": _22, "bato": _22, "haga": _22, "ichikai": _22, "iwafune": _22, "kaminokawa": _22, "kanuma": _22, "karasuyama": _22, "kuroiso": _22, "mashiko": _22, "mibu": _22, "moka": _22, "motegi": _22, "nasu": _22, "nasushiobara": _22, "nikko": _22, "nishikata": _22, "nogi": _22, "ohira": _22, "ohtawara": _22, "oyama": _22, "sakura": _22, "sano": _22, "shimotsuke": _22, "shioya": _22, "takanezawa": _22, "tochigi": _22, "tsuga": _22, "ujiie": _22, "utsunomiya": _22, "yaita": _22 }], "tokushima": [1, { "aizumi": _22, "anan": _22, "ichiba": _22, "itano": _22, "kainan": _22, "komatsushima": _22, "matsushige": _22, "mima": _22, "minami": _22, "miyoshi": _22, "mugi": _22, "nakagawa": _22, "naruto": _22, "sanagochi": _22, "shishikui": _22, "tokushima": _22, "wajiki": _22 }], "tokyo": [1, { "adachi": _22, "akiruno": _22, "akishima": _22, "aogashima": _22, "arakawa": _22, "bunkyo": _22, "chiyoda": _22, "chofu": _22, "chuo": _22, "edogawa": _22, "fuchu": _22, "fussa": _22, "hachijo": _22, "hachioji": _22, "hamura": _22, "higashikurume": _22, "higashimurayama": _22, "higashiyamato": _22, "hino": _22, "hinode": _22, "hinohara": _22, "inagi": _22, "itabashi": _22, "katsushika": _22, "kita": _22, "kiyose": _22, "kodaira": _22, "koganei": _22, "kokubunji": _22, "komae": _22, "koto": _22, "kouzushima": _22, "kunitachi": _22, "machida": _22, "meguro": _22, "minato": _22, "mitaka": _22, "mizuho": _22, "musashimurayama": _22, "musashino": _22, "nakano": _22, "nerima": _22, "ogasawara": _22, "okutama": _22, "ome": _22, "oshima": _22, "ota": _22, "setagaya": _22, "shibuya": _22, "shinagawa": _22, "shinjuku": _22, "suginami": _22, "sumida": _22, "tachikawa": _22, "taito": _22, "tama": _22, "toshima": _22 }], "tottori": [1, { "chizu": _22, "hino": _22, "kawahara": _22, "koge": _22, "kotoura": _22, "misasa": _22, "nanbu": _22, "nichinan": _22, "sakaiminato": _22, "tottori": _22, "wakasa": _22, "yazu": _22, "yonago": _22 }], "toyama": [1, { "asahi": _22, "fuchu": _22, "fukumitsu": _22, "funahashi": _22, "himi": _22, "imizu": _22, "inami": _22, "johana": _22, "kamiichi": _22, "kurobe": _22, "nakaniikawa": _22, "namerikawa": _22, "nanto": _22, "nyuzen": _22, "oyabe": _22, "taira": _22, "takaoka": _22, "tateyama": _22, "toga": _22, "tonami": _22, "toyama": _22, "unazuki": _22, "uozu": _22, "yamada": _22 }], "wakayama": [1, { "arida": _22, "aridagawa": _22, "gobo": _22, "hashimoto": _22, "hidaka": _22, "hirogawa": _22, "inami": _22, "iwade": _22, "kainan": _22, "kamitonda": _22, "katsuragi": _22, "kimino": _22, "kinokawa": _22, "kitayama": _22, "koya": _22, "koza": _22, "kozagawa": _22, "kudoyama": _22, "kushimoto": _22, "mihama": _22, "misato": _22, "nachikatsuura": _22, "shingu": _22, "shirahama": _22, "taiji": _22, "tanabe": _22, "wakayama": _22, "yuasa": _22, "yura": _22 }], "yamagata": [1, { "asahi": _22, "funagata": _22, "higashine": _22, "iide": _22, "kahoku": _22, "kaminoyama": _22, "kaneyama": _22, "kawanishi": _22, "mamurogawa": _22, "mikawa": _22, "murayama": _22, "nagai": _22, "nakayama": _22, "nanyo": _22, "nishikawa": _22, "obanazawa": _22, "oe": _22, "oguni": _22, "ohkura": _22, "oishida": _22, "sagae": _22, "sakata": _22, "sakegawa": _22, "shinjo": _22, "shirataka": _22, "shonai": _22, "takahata": _22, "tendo": _22, "tozawa": _22, "tsuruoka": _22, "yamagata": _22, "yamanobe": _22, "yonezawa": _22, "yuza": _22 }], "yamaguchi": [1, { "abu": _22, "hagi": _22, "hikari": _22, "hofu": _22, "iwakuni": _22, "kudamatsu": _22, "mitou": _22, "nagato": _22, "oshima": _22, "shimonoseki": _22, "shunan": _22, "tabuse": _22, "tokuyama": _22, "toyota": _22, "ube": _22, "yuu": _22 }], "yamanashi": [1, { "chuo": _22, "doshi": _22, "fuefuki": _22, "fujikawa": _22, "fujikawaguchiko": _22, "fujiyoshida": _22, "hayakawa": _22, "hokuto": _22, "ichikawamisato": _22, "kai": _22, "kofu": _22, "koshu": _22, "kosuge": _22, "minami-alps": _22, "minobu": _22, "nakamichi": _22, "nanbu": _22, "narusawa": _22, "nirasaki": _22, "nishikatsura": _22, "oshino": _22, "otsuki": _22, "showa": _22, "tabayama": _22, "tsuru": _22, "uenohara": _22, "yamanakako": _22, "yamanashi": _22 }], "xn--ehqz56n": _22, "\u4E09\u91CD": _22, "xn--1lqs03n": _22, "\u4EAC\u90FD": _22, "xn--qqqt11m": _22, "\u4F50\u8CC0": _22, "xn--f6qx53a": _22, "\u5175\u5EAB": _22, "xn--djrs72d6uy": _22, "\u5317\u6D77\u9053": _22, "xn--mkru45i": _22, "\u5343\u8449": _22, "xn--0trq7p7nn": _22, "\u548C\u6B4C\u5C71": _22, "xn--5js045d": _22, "\u57FC\u7389": _22, "xn--kbrq7o": _22, "\u5927\u5206": _22, "xn--pssu33l": _22, "\u5927\u962A": _22, "xn--ntsq17g": _22, "\u5948\u826F": _22, "xn--uisz3g": _22, "\u5BAE\u57CE": _22, "xn--6btw5a": _22, "\u5BAE\u5D0E": _22, "xn--1ctwo": _22, "\u5BCC\u5C71": _22, "xn--6orx2r": _22, "\u5C71\u53E3": _22, "xn--rht61e": _22, "\u5C71\u5F62": _22, "xn--rht27z": _22, "\u5C71\u68A8": _22, "xn--nit225k": _22, "\u5C90\u961C": _22, "xn--rht3d": _22, "\u5CA1\u5C71": _22, "xn--djty4k": _22, "\u5CA9\u624B": _22, "xn--klty5x": _22, "\u5CF6\u6839": _22, "xn--kltx9a": _22, "\u5E83\u5CF6": _22, "xn--kltp7d": _22, "\u5FB3\u5CF6": _22, "xn--c3s14m": _22, "\u611B\u5A9B": _22, "xn--vgu402c": _22, "\u611B\u77E5": _22, "xn--efvn9s": _22, "\u65B0\u6F5F": _22, "xn--1lqs71d": _22, "\u6771\u4EAC": _22, "xn--4pvxs": _22, "\u6803\u6728": _22, "xn--uuwu58a": _22, "\u6C96\u7E04": _22, "xn--zbx025d": _22, "\u6ECB\u8CC0": _22, "xn--8pvr4u": _22, "\u718A\u672C": _22, "xn--5rtp49c": _22, "\u77F3\u5DDD": _22, "xn--ntso0iqx3a": _22, "\u795E\u5948\u5DDD": _22, "xn--elqq16h": _22, "\u798F\u4E95": _22, "xn--4it168d": _22, "\u798F\u5CA1": _22, "xn--klt787d": _22, "\u798F\u5CF6": _22, "xn--rny31h": _22, "\u79CB\u7530": _22, "xn--7t0a264c": _22, "\u7FA4\u99AC": _22, "xn--uist22h": _22, "\u8328\u57CE": _22, "xn--8ltr62k": _22, "\u9577\u5D0E": _22, "xn--2m4a15e": _22, "\u9577\u91CE": _22, "xn--32vp30h": _22, "\u9752\u68EE": _22, "xn--4it797k": _22, "\u9759\u5CA1": _22, "xn--5rtq34k": _22, "\u9999\u5DDD": _22, "xn--k7yn95e": _22, "\u9AD8\u77E5": _22, "xn--tor131o": _22, "\u9CE5\u53D6": _22, "xn--d5qv7z876c": _22, "\u9E7F\u5150\u5CF6": _22, "kawasaki": _21, "kitakyushu": _21, "kobe": _21, "nagoya": _21, "sapporo": _21, "sendai": _21, "yokohama": _21, "buyshop": _3, "fashionstore": _3, "handcrafted": _3, "kawaiishop": _3, "supersale": _3, "theshop": _3, "0am": _3, "0g0": _3, "0j0": _3, "0t0": _3, "mydns": _3, "pgw": _3, "wjg": _3, "usercontent": _3, "angry": _3, "babyblue": _3, "babymilk": _3, "backdrop": _3, "bambina": _3, "bitter": _3, "blush": _3, "boo": _3, "boy": _3, "boyfriend": _3, "but": _3, "candypop": _3, "capoo": _3, "catfood": _3, "cheap": _3, "chicappa": _3, "chillout": _3, "chips": _3, "chowder": _3, "chu": _3, "ciao": _3, "cocotte": _3, "coolblog": _3, "cranky": _3, "cutegirl": _3, "daa": _3, "deca": _3, "deci": _3, "digick": _3, "egoism": _3, "fakefur": _3, "fem": _3, "flier": _3, "floppy": _3, "fool": _3, "frenchkiss": _3, "girlfriend": _3, "girly": _3, "gloomy": _3, "gonna": _3, "greater": _3, "hacca": _3, "heavy": _3, "her": _3, "hiho": _3, "hippy": _3, "holy": _3, "hungry": _3, "icurus": _3, "itigo": _3, "jellybean": _3, "kikirara": _3, "kill": _3, "kilo": _3, "kuron": _3, "littlestar": _3, "lolipopmc": _3, "lolitapunk": _3, "lomo": _3, "lovepop": _3, "lovesick": _3, "main": _3, "mods": _3, "mond": _3, "mongolian": _3, "moo": _3, "namaste": _3, "nikita": _3, "nobushi": _3, "noor": _3, "oops": _3, "parallel": _3, "parasite": _3, "pecori": _3, "peewee": _3, "penne": _3, "pepper": _3, "perma": _3, "pigboat": _3, "pinoko": _3, "punyu": _3, "pupu": _3, "pussycat": _3, "pya": _3, "raindrop": _3, "readymade": _3, "sadist": _3, "schoolbus": _3, "secret": _3, "staba": _3, "stripper": _3, "sub": _3, "sunnyday": _3, "thick": _3, "tonkotsu": _3, "under": _3, "upper": _3, "velvet": _3, "verse": _3, "versus": _3, "vivian": _3, "watson": _3, "weblike": _3, "whitesnow": _3, "zombie": _3, "hateblo": _3, "hatenablog": _3, "hatenadiary": _3, "2-d": _3, "bona": _3, "crap": _3, "daynight": _3, "eek": _3, "flop": _3, "halfmoon": _3, "jeez": _3, "matrix": _3, "mimoza": _3, "netgamers": _3, "nyanta": _3, "o0o0": _3, "rdy": _3, "rgr": _3, "rulez": _3, "sakurastorage": [0, { "isk01": _59, "isk02": _59 }], "saloon": _3, "sblo": _3, "skr": _3, "tank": _3, "uh-oh": _3, "undo": _3, "webaccel": [0, { "rs": _3, "user": _3 }], "websozai": _3, "xii": _3 }], "ke": [1, { "ac": _22, "co": _22, "go": _22, "info": _22, "me": _22, "mobi": _22, "ne": _22, "or": _22, "sc": _22 }], "kg": [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "us": _3, "xx": _3, "ae": _3 }], "kh": _21, "ki": _60, "km": [1, { "ass": _22, "com": _22, "edu": _22, "gov": _22, "mil": _22, "nom": _22, "org": _22, "prd": _22, "tm": _22, "asso": _22, "coop": _22, "gouv": _22, "medecin": _22, "notaires": _22, "pharmaciens": _22, "presse": _22, "veterinaire": _22 }], "kn": [1, { "edu": _22, "gov": _22, "net": _22, "org": _22 }], "kp": [1, { "com": _22, "edu": _22, "gov": _22, "org": _22, "rep": _22, "tra": _22 }], "kr": [1, { "ac": _22, "ai": _22, "co": _22, "es": _22, "go": _22, "hs": _22, "io": _22, "it": _22, "kg": _22, "me": _22, "mil": _22, "ms": _22, "ne": _22, "or": _22, "pe": _22, "re": _22, "sc": _22, "busan": _22, "chungbuk": _22, "chungnam": _22, "daegu": _22, "daejeon": _22, "gangwon": _22, "gwangju": _22, "gyeongbuk": _22, "gyeonggi": _22, "gyeongnam": _22, "incheon": _22, "jeju": _22, "jeonbuk": _22, "jeonnam": _22, "seoul": _22, "ulsan": _22, "c01": _3, "eliv-api": _3, "eliv-cdn": _3, "eliv-dns": _3, "mmv": _3, "vki": _3 }], "kw": [1, { "com": _22, "edu": _22, "emb": _22, "gov": _22, "ind": _22, "net": _22, "org": _22 }], "ky": _47, "kz": [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "jcloud": _3 }], "la": [1, { "com": _22, "edu": _22, "gov": _22, "info": _22, "int": _22, "net": _22, "org": _22, "per": _22, "bnr": _3 }], "lb": _4, "lc": [1, { "co": _22, "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "oy": _3 }], "li": _22, "lk": [1, { "ac": _22, "assn": _22, "com": _22, "edu": _22, "gov": _22, "grp": _22, "hotel": _22, "int": _22, "ltd": _22, "net": _22, "ngo": _22, "org": _22, "sch": _22, "soc": _22, "web": _22 }], "lr": _4, "ls": [1, { "ac": _22, "biz": _22, "co": _22, "edu": _22, "gov": _22, "info": _22, "net": _22, "org": _22, "sc": _22 }], "lt": _10, "lu": [1, { "123website": _3 }], "lv": [1, { "asn": _22, "com": _22, "conf": _22, "edu": _22, "gov": _22, "id": _22, "mil": _22, "net": _22, "org": _22 }], "ly": [1, { "com": _22, "edu": _22, "gov": _22, "id": _22, "med": _22, "net": _22, "org": _22, "plc": _22, "sch": _22 }], "ma": [1, { "ac": _22, "co": _22, "gov": _22, "net": _22, "org": _22, "press": _22 }], "mc": [1, { "asso": _22, "tm": _22 }], "md": [1, { "ir": _3 }], "me": [1, { "ac": _22, "co": _22, "edu": _22, "gov": _22, "its": _22, "net": _22, "org": _22, "priv": _22, "c66": _3, "craft": _3, "edgestack": _3, "filegear": _3, "filegear-sg": _3, "lohmus": _3, "barsy": _3, "mcdir": _3, "brasilia": _3, "ddns": _3, "dnsfor": _3, "hopto": _3, "loginto": _3, "noip": _3, "webhop": _3, "soundcast": _3, "tcp4": _3, "vp4": _3, "diskstation": _3, "dscloud": _3, "i234": _3, "myds": _3, "synology": _3, "transip": _46, "nohost": _3 }], "mg": [1, { "co": _22, "com": _22, "edu": _22, "gov": _22, "mil": _22, "nom": _22, "org": _22, "prd": _22 }], "mh": _22, "mil": _22, "mk": [1, { "com": _22, "edu": _22, "gov": _22, "inf": _22, "name": _22, "net": _22, "org": _22 }], "ml": [1, { "ac": _22, "art": _22, "asso": _22, "com": _22, "edu": _22, "gouv": _22, "gov": _22, "info": _22, "inst": _22, "net": _22, "org": _22, "pr": _22, "presse": _22 }], "mm": _21, "mn": [1, { "edu": _22, "gov": _22, "org": _22, "nyc": _3 }], "mo": _4, "mobi": [1, { "barsy": _3, "dscloud": _3 }], "mp": [1, { "ju": _3 }], "mq": _22, "mr": _10, "ms": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "minisite": _3 }], "mt": _47, "mu": [1, { "ac": _22, "co": _22, "com": _22, "gov": _22, "net": _22, "or": _22, "org": _22 }], "museum": _22, "mv": [1, { "aero": _22, "biz": _22, "com": _22, "coop": _22, "edu": _22, "gov": _22, "info": _22, "int": _22, "mil": _22, "museum": _22, "name": _22, "net": _22, "org": _22, "pro": _22 }], "mw": [1, { "ac": _22, "biz": _22, "co": _22, "com": _22, "coop": _22, "edu": _22, "gov": _22, "int": _22, "net": _22, "org": _22 }], "mx": [1, { "com": _22, "edu": _22, "gob": _22, "net": _22, "org": _22 }], "my": [1, { "biz": _22, "com": _22, "edu": _22, "gov": _22, "mil": _22, "name": _22, "net": _22, "org": _22 }], "mz": [1, { "ac": _22, "adv": _22, "co": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22 }], "na": [1, { "alt": _22, "co": _22, "com": _22, "gov": _22, "net": _22, "org": _22 }], "name": [1, { "her": _63, "his": _63, "ispmanager": _3, "keenetic": _3 }], "nc": [1, { "asso": _22, "nom": _22 }], "ne": _22, "net": [1, { "adobeaemcloud": _3, "adobeio-static": _3, "adobeioruntime": _3, "akadns": _3, "akamai": _3, "akamai-staging": _3, "akamaiedge": _3, "akamaiedge-staging": _3, "akamaihd": _3, "akamaihd-staging": _3, "akamaiorigin": _3, "akamaiorigin-staging": _3, "akamaized": _3, "akamaized-staging": _3, "edgekey": _3, "edgekey-staging": _3, "edgesuite": _3, "edgesuite-staging": _3, "alwaysdata": _3, "myamaze": _3, "cloudfront": _3, "appudo": _3, "atlassian-dev": [0, { "prod": _55 }], "myfritz": _3, "shopselect": _3, "blackbaudcdn": _3, "boomla": _3, "bplaced": _3, "square7": _3, "cdn77": [0, { "r": _3 }], "cdn77-ssl": _3, "gb": _3, "hu": _3, "jp": _3, "se": _3, "uk": _3, "clickrising": _3, "ddns-ip": _3, "dns-cloud": _3, "dns-dynamic": _3, "cloudaccess": _3, "cloudflare": [2, { "cdn": _3 }], "cloudflareanycast": _55, "cloudflarecn": _55, "cloudflareglobal": _55, "ctfcloud": _3, "feste-ip": _3, "knx-server": _3, "static-access": _3, "cryptonomic": _6, "dattolocal": _3, "mydatto": _3, "debian": _3, "definima": _3, "deno": _3, "icp": _6, "de5": _3, "at-band-camp": _3, "blogdns": _3, "broke-it": _3, "buyshouses": _3, "dnsalias": _3, "dnsdojo": _3, "does-it": _3, "dontexist": _3, "dynalias": _3, "dynathome": _3, "endofinternet": _3, "from-az": _3, "from-co": _3, "from-la": _3, "from-ny": _3, "gets-it": _3, "ham-radio-op": _3, "homeftp": _3, "homeip": _3, "homelinux": _3, "homeunix": _3, "in-the-band": _3, "is-a-chef": _3, "is-a-geek": _3, "isa-geek": _3, "kicks-ass": _3, "office-on-the": _3, "podzone": _3, "scrapper-site": _3, "selfip": _3, "sells-it": _3, "servebbs": _3, "serveftp": _3, "thruhere": _3, "webhop": _3, "casacam": _3, "dynu": _3, "dynuddns": _3, "mysynology": _3, "opik": _3, "spryt": _3, "dynv6": _3, "twmail": _3, "ru": _3, "channelsdvr": [2, { "u": _3 }], "fastly": [0, { "freetls": _3, "map": _3, "prod": [0, { "a": _3, "global": _3 }], "ssl": [0, { "a": _3, "b": _3, "global": _3 }] }], "fastlylb": [2, { "map": _3 }], "keyword-on": _3, "live-on": _3, "server-on": _3, "cdn-edges": _3, "heteml": _3, "cloudfunctions": _3, "grafana-dev": _3, "iobb": _3, "moonscale": _3, "in-dsl": _3, "in-vpn": _3, "oninferno": _3, "botdash": _3, "apps-1and1": _3, "ipifony": _3, "cloudjiffy": [2, { "fra1-de": _3, "west1-us": _3 }], "elastx": [0, { "jls-sto1": _3, "jls-sto2": _3, "jls-sto3": _3 }], "massivegrid": [0, { "paas": [0, { "fr-1": _3, "lon-1": _3, "lon-2": _3, "ny-1": _3, "ny-2": _3, "sg-1": _3 }] }], "saveincloud": [0, { "jelastic": _3, "nordeste-idc": _3 }], "scaleforce": _48, "kinghost": _3, "uni5": _3, "krellian": _3, "ggff": _3, "localto": _6, "barsy": _3, "luyani": _3, "memset": _3, "azure-api": _3, "azure-mobile": _3, "azureedge": _3, "azurefd": _3, "azurestaticapps": [2, { "1": _3, "2": _3, "3": _3, "4": _3, "5": _3, "6": _3, "7": _3, "centralus": _3, "eastasia": _3, "eastus2": _3, "westeurope": _3, "westus2": _3 }], "azurewebsites": _3, "cloudapp": _3, "trafficmanager": _3, "usgovcloudapi": _65, "usgovcloudapp": _3, "usgovtrafficmanager": _3, "windows": _65, "mynetname": [0, { "sn": _3 }], "routingthecloud": _3, "bounceme": _3, "ddns": _3, "eating-organic": _3, "mydissent": _3, "myeffect": _3, "mymediapc": _3, "mypsx": _3, "mysecuritycamera": _3, "nhlfan": _3, "no-ip": _3, "pgafan": _3, "privatizehealthinsurance": _3, "redirectme": _3, "serveblog": _3, "serveminecraft": _3, "sytes": _3, "dnsup": _3, "hicam": _3, "now-dns": _3, "ownip": _3, "vpndns": _3, "cloudycluster": _3, "ovh": [0, { "hosting": _6, "webpaas": _6 }], "rackmaze": _3, "myradweb": _3, "in": _3, "subsc-pay": _3, "squares": _3, "schokokeks": _3, "firewall-gateway": _3, "seidat": _3, "senseering": _3, "siteleaf": _3, "mafelo": _3, "myspreadshop": _3, "vps-host": [2, { "jelastic": [0, { "atl": _3, "njs": _3, "ric": _3 }] }], "srcf": [0, { "soc": _3, "user": _3 }], "supabase": _3, "dsmynas": _3, "familyds": _3, "ts": [2, { "c": _6 }], "torproject": [2, { "pages": _3 }], "tunnelmole": _3, "vusercontent": _3, "reserve-online": _3, "localcert": _3, "community-pro": _3, "meinforum": _3, "yandexcloud": [2, { "storage": _3, "website": _3 }], "za": _3, "zabc": _3 }], "nf": [1, { "arts": _22, "com": _22, "firm": _22, "info": _22, "net": _22, "other": _22, "per": _22, "rec": _22, "store": _22, "web": _22 }], "ng": [1, { "com": _22, "edu": _22, "gov": _22, "i": _22, "mil": _22, "mobi": _22, "name": _22, "net": _22, "org": _22, "sch": _22, "biz": [2, { "co": _3, "dl": _3, "go": _3, "lg": _3, "on": _3 }], "col": _3, "firm": _3, "gen": _3, "ltd": _3, "ngo": _3, "plc": _3 }], "ni": [1, { "ac": _22, "biz": _22, "co": _22, "com": _22, "edu": _22, "gob": _22, "in": _22, "info": _22, "int": _22, "mil": _22, "net": _22, "nom": _22, "org": _22, "web": _22 }], "nl": [1, { "co": _3, "hosting-cluster": _3, "gov": _3, "khplay": _3, "123website": _3, "myspreadshop": _3, "transurl": _6, "cistron": _3, "demon": _3 }], "no": [1, { "fhs": _22, "folkebibl": _22, "fylkesbibl": _22, "idrett": _22, "museum": _22, "priv": _22, "vgs": _22, "dep": _22, "herad": _22, "kommune": _22, "mil": _22, "stat": _22, "aa": _66, "ah": _66, "bu": _66, "fm": _66, "hl": _66, "hm": _66, "jan-mayen": _66, "mr": _66, "nl": _66, "nt": _66, "of": _66, "ol": _66, "oslo": _66, "rl": _66, "sf": _66, "st": _66, "svalbard": _66, "tm": _66, "tr": _66, "va": _66, "vf": _66, "akrehamn": _22, "xn--krehamn-dxa": _22, "\xE5krehamn": _22, "algard": _22, "xn--lgrd-poac": _22, "\xE5lg\xE5rd": _22, "arna": _22, "bronnoysund": _22, "xn--brnnysund-m8ac": _22, "br\xF8nn\xF8ysund": _22, "brumunddal": _22, "bryne": _22, "drobak": _22, "xn--drbak-wua": _22, "dr\xF8bak": _22, "egersund": _22, "fetsund": _22, "floro": _22, "xn--flor-jra": _22, "flor\xF8": _22, "fredrikstad": _22, "hokksund": _22, "honefoss": _22, "xn--hnefoss-q1a": _22, "h\xF8nefoss": _22, "jessheim": _22, "jorpeland": _22, "xn--jrpeland-54a": _22, "j\xF8rpeland": _22, "kirkenes": _22, "kopervik": _22, "krokstadelva": _22, "langevag": _22, "xn--langevg-jxa": _22, "langev\xE5g": _22, "leirvik": _22, "mjondalen": _22, "xn--mjndalen-64a": _22, "mj\xF8ndalen": _22, "mo-i-rana": _22, "mosjoen": _22, "xn--mosjen-eya": _22, "mosj\xF8en": _22, "nesoddtangen": _22, "orkanger": _22, "osoyro": _22, "xn--osyro-wua": _22, "os\xF8yro": _22, "raholt": _22, "xn--rholt-mra": _22, "r\xE5holt": _22, "sandnessjoen": _22, "xn--sandnessjen-ogb": _22, "sandnessj\xF8en": _22, "skedsmokorset": _22, "slattum": _22, "spjelkavik": _22, "stathelle": _22, "stavern": _22, "stjordalshalsen": _22, "xn--stjrdalshalsen-sqb": _22, "stj\xF8rdalshalsen": _22, "tananger": _22, "tranby": _22, "vossevangen": _22, "aarborte": _22, "aejrie": _22, "afjord": _22, "xn--fjord-lra": _22, "\xE5fjord": _22, "agdenes": _22, "akershus": _67, "aknoluokta": _22, "xn--koluokta-7ya57h": _22, "\xE1k\u014Boluokta": _22, "al": _22, "xn--l-1fa": _22, "\xE5l": _22, "alaheadju": _22, "xn--laheadju-7ya": _22, "\xE1laheadju": _22, "alesund": _22, "xn--lesund-hua": _22, "\xE5lesund": _22, "alstahaug": _22, "alta": _22, "xn--lt-liac": _22, "\xE1lt\xE1": _22, "alvdal": _22, "amli": _22, "xn--mli-tla": _22, "\xE5mli": _22, "amot": _22, "xn--mot-tla": _22, "\xE5mot": _22, "andasuolo": _22, "andebu": _22, "andoy": _22, "xn--andy-ira": _22, "and\xF8y": _22, "ardal": _22, "xn--rdal-poa": _22, "\xE5rdal": _22, "aremark": _22, "arendal": _22, "xn--s-1fa": _22, "\xE5s": _22, "aseral": _22, "xn--seral-lra": _22, "\xE5seral": _22, "asker": _22, "askim": _22, "askoy": _22, "xn--asky-ira": _22, "ask\xF8y": _22, "askvoll": _22, "asnes": _22, "xn--snes-poa": _22, "\xE5snes": _22, "audnedaln": _22, "aukra": _22, "aure": _22, "aurland": _22, "aurskog-holand": _22, "xn--aurskog-hland-jnb": _22, "aurskog-h\xF8land": _22, "austevoll": _22, "austrheim": _22, "averoy": _22, "xn--avery-yua": _22, "aver\xF8y": _22, "badaddja": _22, "xn--bdddj-mrabd": _22, "b\xE5d\xE5ddj\xE5": _22, "xn--brum-voa": _22, "b\xE6rum": _22, "bahcavuotna": _22, "xn--bhcavuotna-s4a": _22, "b\xE1hcavuotna": _22, "bahccavuotna": _22, "xn--bhccavuotna-k7a": _22, "b\xE1hccavuotna": _22, "baidar": _22, "xn--bidr-5nac": _22, "b\xE1id\xE1r": _22, "bajddar": _22, "xn--bjddar-pta": _22, "b\xE1jddar": _22, "balat": _22, "xn--blt-elab": _22, "b\xE1l\xE1t": _22, "balestrand": _22, "ballangen": _22, "balsfjord": _22, "bamble": _22, "bardu": _22, "barum": _22, "batsfjord": _22, "xn--btsfjord-9za": _22, "b\xE5tsfjord": _22, "bearalvahki": _22, "xn--bearalvhki-y4a": _22, "bearalv\xE1hki": _22, "beardu": _22, "beiarn": _22, "berg": _22, "bergen": _22, "berlevag": _22, "xn--berlevg-jxa": _22, "berlev\xE5g": _22, "bievat": _22, "xn--bievt-0qa": _22, "biev\xE1t": _22, "bindal": _22, "birkenes": _22, "bjerkreim": _22, "bjugn": _22, "bodo": _22, "xn--bod-2na": _22, "bod\xF8": _22, "bokn": _22, "bomlo": _22, "xn--bmlo-gra": _22, "b\xF8mlo": _22, "bremanger": _22, "bronnoy": _22, "xn--brnny-wuac": _22, "br\xF8nn\xF8y": _22, "budejju": _22, "buskerud": _67, "bygland": _22, "bykle": _22, "cahcesuolo": _22, "xn--hcesuolo-7ya35b": _22, "\u010D\xE1hcesuolo": _22, "davvenjarga": _22, "xn--davvenjrga-y4a": _22, "davvenj\xE1rga": _22, "davvesiida": _22, "deatnu": _22, "dielddanuorri": _22, "divtasvuodna": _22, "divttasvuotna": _22, "donna": _22, "xn--dnna-gra": _22, "d\xF8nna": _22, "dovre": _22, "drammen": _22, "drangedal": _22, "dyroy": _22, "xn--dyry-ira": _22, "dyr\xF8y": _22, "eid": _22, "eidfjord": _22, "eidsberg": _22, "eidskog": _22, "eidsvoll": _22, "eigersund": _22, "elverum": _22, "enebakk": _22, "engerdal": _22, "etne": _22, "etnedal": _22, "evenassi": _22, "xn--eveni-0qa01ga": _22, "even\xE1\u0161\u0161i": _22, "evenes": _22, "evje-og-hornnes": _22, "farsund": _22, "fauske": _22, "fedje": _22, "fet": _22, "finnoy": _22, "xn--finny-yua": _22, "finn\xF8y": _22, "fitjar": _22, "fjaler": _22, "fjell": _22, "fla": _22, "xn--fl-zia": _22, "fl\xE5": _22, "flakstad": _22, "flatanger": _22, "flekkefjord": _22, "flesberg": _22, "flora": _22, "folldal": _22, "forde": _22, "xn--frde-gra": _22, "f\xF8rde": _22, "forsand": _22, "fosnes": _22, "xn--frna-woa": _22, "fr\xE6na": _22, "frana": _22, "frei": _22, "frogn": _22, "froland": _22, "frosta": _22, "froya": _22, "xn--frya-hra": _22, "fr\xF8ya": _22, "fuoisku": _22, "fuossko": _22, "fusa": _22, "fyresdal": _22, "gaivuotna": _22, "xn--givuotna-8ya": _22, "g\xE1ivuotna": _22, "galsa": _22, "xn--gls-elac": _22, "g\xE1ls\xE1": _22, "gamvik": _22, "gangaviika": _22, "xn--ggaviika-8ya47h": _22, "g\xE1\u014Bgaviika": _22, "gaular": _22, "gausdal": _22, "giehtavuoatna": _22, "gildeskal": _22, "xn--gildeskl-g0a": _22, "gildesk\xE5l": _22, "giske": _22, "gjemnes": _22, "gjerdrum": _22, "gjerstad": _22, "gjesdal": _22, "gjovik": _22, "xn--gjvik-wua": _22, "gj\xF8vik": _22, "gloppen": _22, "gol": _22, "gran": _22, "grane": _22, "granvin": _22, "gratangen": _22, "grimstad": _22, "grong": _22, "grue": _22, "gulen": _22, "guovdageaidnu": _22, "ha": _22, "xn--h-2fa": _22, "h\xE5": _22, "habmer": _22, "xn--hbmer-xqa": _22, "h\xE1bmer": _22, "hadsel": _22, "xn--hgebostad-g3a": _22, "h\xE6gebostad": _22, "hagebostad": _22, "halden": _22, "halsa": _22, "hamar": _22, "hamaroy": _22, "hammarfeasta": _22, "xn--hmmrfeasta-s4ac": _22, "h\xE1mm\xE1rfeasta": _22, "hammerfest": _22, "hapmir": _22, "xn--hpmir-xqa": _22, "h\xE1pmir": _22, "haram": _22, "hareid": _22, "harstad": _22, "hasvik": _22, "hattfjelldal": _22, "haugesund": _22, "hedmark": [0, { "os": _22, "valer": _22, "xn--vler-qoa": _22, "v\xE5ler": _22 }], "hemne": _22, "hemnes": _22, "hemsedal": _22, "hitra": _22, "hjartdal": _22, "hjelmeland": _22, "hobol": _22, "xn--hobl-ira": _22, "hob\xF8l": _22, "hof": _22, "hol": _22, "hole": _22, "holmestrand": _22, "holtalen": _22, "xn--holtlen-hxa": _22, "holt\xE5len": _22, "hordaland": [0, { "os": _22 }], "hornindal": _22, "horten": _22, "hoyanger": _22, "xn--hyanger-q1a": _22, "h\xF8yanger": _22, "hoylandet": _22, "xn--hylandet-54a": _22, "h\xF8ylandet": _22, "hurdal": _22, "hurum": _22, "hvaler": _22, "hyllestad": _22, "ibestad": _22, "inderoy": _22, "xn--indery-fya": _22, "inder\xF8y": _22, "iveland": _22, "ivgu": _22, "jevnaker": _22, "jolster": _22, "xn--jlster-bya": _22, "j\xF8lster": _22, "jondal": _22, "kafjord": _22, "xn--kfjord-iua": _22, "k\xE5fjord": _22, "karasjohka": _22, "xn--krjohka-hwab49j": _22, "k\xE1r\xE1\u0161johka": _22, "karasjok": _22, "karlsoy": _22, "karmoy": _22, "xn--karmy-yua": _22, "karm\xF8y": _22, "kautokeino": _22, "klabu": _22, "xn--klbu-woa": _22, "kl\xE6bu": _22, "klepp": _22, "kongsberg": _22, "kongsvinger": _22, "kraanghke": _22, "xn--kranghke-b0a": _22, "kr\xE5anghke": _22, "kragero": _22, "xn--krager-gya": _22, "krager\xF8": _22, "kristiansand": _22, "kristiansund": _22, "krodsherad": _22, "xn--krdsherad-m8a": _22, "kr\xF8dsherad": _22, "xn--kvfjord-nxa": _22, "kv\xE6fjord": _22, "xn--kvnangen-k0a": _22, "kv\xE6nangen": _22, "kvafjord": _22, "kvalsund": _22, "kvam": _22, "kvanangen": _22, "kvinesdal": _22, "kvinnherad": _22, "kviteseid": _22, "kvitsoy": _22, "xn--kvitsy-fya": _22, "kvits\xF8y": _22, "laakesvuemie": _22, "xn--lrdal-sra": _22, "l\xE6rdal": _22, "lahppi": _22, "xn--lhppi-xqa": _22, "l\xE1hppi": _22, "lardal": _22, "larvik": _22, "lavagis": _22, "lavangen": _22, "leangaviika": _22, "xn--leagaviika-52b": _22, "lea\u014Bgaviika": _22, "lebesby": _22, "leikanger": _22, "leirfjord": _22, "leka": _22, "leksvik": _22, "lenvik": _22, "lerdal": _22, "lesja": _22, "levanger": _22, "lier": _22, "lierne": _22, "lillehammer": _22, "lillesand": _22, "lindas": _22, "xn--linds-pra": _22, "lind\xE5s": _22, "lindesnes": _22, "loabat": _22, "xn--loabt-0qa": _22, "loab\xE1t": _22, "lodingen": _22, "xn--ldingen-q1a": _22, "l\xF8dingen": _22, "lom": _22, "loppa": _22, "lorenskog": _22, "xn--lrenskog-54a": _22, "l\xF8renskog": _22, "loten": _22, "xn--lten-gra": _22, "l\xF8ten": _22, "lund": _22, "lunner": _22, "luroy": _22, "xn--lury-ira": _22, "lur\xF8y": _22, "luster": _22, "lyngdal": _22, "lyngen": _22, "malatvuopmi": _22, "xn--mlatvuopmi-s4a": _22, "m\xE1latvuopmi": _22, "malselv": _22, "xn--mlselv-iua": _22, "m\xE5lselv": _22, "malvik": _22, "mandal": _22, "marker": _22, "marnardal": _22, "masfjorden": _22, "masoy": _22, "xn--msy-ula0h": _22, "m\xE5s\xF8y": _22, "matta-varjjat": _22, "xn--mtta-vrjjat-k7af": _22, "m\xE1tta-v\xE1rjjat": _22, "meland": _22, "meldal": _22, "melhus": _22, "meloy": _22, "xn--mely-ira": _22, "mel\xF8y": _22, "meraker": _22, "xn--merker-kua": _22, "mer\xE5ker": _22, "midsund": _22, "midtre-gauldal": _22, "moareke": _22, "xn--moreke-jua": _22, "mo\xE5reke": _22, "modalen": _22, "modum": _22, "molde": _22, "more-og-romsdal": [0, { "heroy": _22, "sande": _22 }], "xn--mre-og-romsdal-qqb": [0, { "xn--hery-ira": _22, "sande": _22 }], "m\xF8re-og-romsdal": [0, { "her\xF8y": _22, "sande": _22 }], "moskenes": _22, "moss": _22, "muosat": _22, "xn--muost-0qa": _22, "muos\xE1t": _22, "naamesjevuemie": _22, "xn--nmesjevuemie-tcba": _22, "n\xE5\xE5mesjevuemie": _22, "xn--nry-yla5g": _22, "n\xE6r\xF8y": _22, "namdalseid": _22, "namsos": _22, "namsskogan": _22, "nannestad": _22, "naroy": _22, "narviika": _22, "narvik": _22, "naustdal": _22, "navuotna": _22, "xn--nvuotna-hwa": _22, "n\xE1vuotna": _22, "nedre-eiker": _22, "nesna": _22, "nesodden": _22, "nesseby": _22, "nesset": _22, "nissedal": _22, "nittedal": _22, "nord-aurdal": _22, "nord-fron": _22, "nord-odal": _22, "norddal": _22, "nordkapp": _22, "nordland": [0, { "bo": _22, "xn--b-5ga": _22, "b\xF8": _22, "heroy": _22, "xn--hery-ira": _22, "her\xF8y": _22 }], "nordre-land": _22, "nordreisa": _22, "nore-og-uvdal": _22, "notodden": _22, "notteroy": _22, "xn--nttery-byae": _22, "n\xF8tter\xF8y": _22, "odda": _22, "oksnes": _22, "xn--ksnes-uua": _22, "\xF8ksnes": _22, "omasvuotna": _22, "oppdal": _22, "oppegard": _22, "xn--oppegrd-ixa": _22, "oppeg\xE5rd": _22, "orkdal": _22, "orland": _22, "xn--rland-uua": _22, "\xF8rland": _22, "orskog": _22, "xn--rskog-uua": _22, "\xF8rskog": _22, "orsta": _22, "xn--rsta-fra": _22, "\xF8rsta": _22, "osen": _22, "osteroy": _22, "xn--ostery-fya": _22, "oster\xF8y": _22, "ostfold": [0, { "valer": _22 }], "xn--stfold-9xa": [0, { "xn--vler-qoa": _22 }], "\xF8stfold": [0, { "v\xE5ler": _22 }], "ostre-toten": _22, "xn--stre-toten-zcb": _22, "\xF8stre-toten": _22, "overhalla": _22, "ovre-eiker": _22, "xn--vre-eiker-k8a": _22, "\xF8vre-eiker": _22, "oyer": _22, "xn--yer-zna": _22, "\xF8yer": _22, "oygarden": _22, "xn--ygarden-p1a": _22, "\xF8ygarden": _22, "oystre-slidre": _22, "xn--ystre-slidre-ujb": _22, "\xF8ystre-slidre": _22, "porsanger": _22, "porsangu": _22, "xn--porsgu-sta26f": _22, "pors\xE1\u014Bgu": _22, "porsgrunn": _22, "rade": _22, "xn--rde-ula": _22, "r\xE5de": _22, "radoy": _22, "xn--rady-ira": _22, "rad\xF8y": _22, "xn--rlingen-mxa": _22, "r\xE6lingen": _22, "rahkkeravju": _22, "xn--rhkkervju-01af": _22, "r\xE1hkker\xE1vju": _22, "raisa": _22, "xn--risa-5na": _22, "r\xE1isa": _22, "rakkestad": _22, "ralingen": _22, "rana": _22, "randaberg": _22, "rauma": _22, "rendalen": _22, "rennebu": _22, "rennesoy": _22, "xn--rennesy-v1a": _22, "rennes\xF8y": _22, "rindal": _22, "ringebu": _22, "ringerike": _22, "ringsaker": _22, "risor": _22, "xn--risr-ira": _22, "ris\xF8r": _22, "rissa": _22, "roan": _22, "rodoy": _22, "xn--rdy-0nab": _22, "r\xF8d\xF8y": _22, "rollag": _22, "romsa": _22, "romskog": _22, "xn--rmskog-bya": _22, "r\xF8mskog": _22, "roros": _22, "xn--rros-gra": _22, "r\xF8ros": _22, "rost": _22, "xn--rst-0na": _22, "r\xF8st": _22, "royken": _22, "xn--ryken-vua": _22, "r\xF8yken": _22, "royrvik": _22, "xn--ryrvik-bya": _22, "r\xF8yrvik": _22, "ruovat": _22, "rygge": _22, "salangen": _22, "salat": _22, "xn--slat-5na": _22, "s\xE1lat": _22, "xn--slt-elab": _22, "s\xE1l\xE1t": _22, "saltdal": _22, "samnanger": _22, "sandefjord": _22, "sandnes": _22, "sandoy": _22, "xn--sandy-yua": _22, "sand\xF8y": _22, "sarpsborg": _22, "sauda": _22, "sauherad": _22, "sel": _22, "selbu": _22, "selje": _22, "seljord": _22, "siellak": _22, "sigdal": _22, "siljan": _22, "sirdal": _22, "skanit": _22, "xn--sknit-yqa": _22, "sk\xE1nit": _22, "skanland": _22, "xn--sknland-fxa": _22, "sk\xE5nland": _22, "skaun": _22, "skedsmo": _22, "ski": _22, "skien": _22, "skierva": _22, "xn--skierv-uta": _22, "skierv\xE1": _22, "skiptvet": _22, "skjak": _22, "xn--skjk-soa": _22, "skj\xE5k": _22, "skjervoy": _22, "xn--skjervy-v1a": _22, "skjerv\xF8y": _22, "skodje": _22, "smola": _22, "xn--smla-hra": _22, "sm\xF8la": _22, "snaase": _22, "xn--snase-nra": _22, "sn\xE5ase": _22, "snasa": _22, "xn--snsa-roa": _22, "sn\xE5sa": _22, "snillfjord": _22, "snoasa": _22, "sogndal": _22, "sogne": _22, "xn--sgne-gra": _22, "s\xF8gne": _22, "sokndal": _22, "sola": _22, "solund": _22, "somna": _22, "xn--smna-gra": _22, "s\xF8mna": _22, "sondre-land": _22, "xn--sndre-land-0cb": _22, "s\xF8ndre-land": _22, "songdalen": _22, "sor-aurdal": _22, "xn--sr-aurdal-l8a": _22, "s\xF8r-aurdal": _22, "sor-fron": _22, "xn--sr-fron-q1a": _22, "s\xF8r-fron": _22, "sor-odal": _22, "xn--sr-odal-q1a": _22, "s\xF8r-odal": _22, "sor-varanger": _22, "xn--sr-varanger-ggb": _22, "s\xF8r-varanger": _22, "sorfold": _22, "xn--srfold-bya": _22, "s\xF8rfold": _22, "sorreisa": _22, "xn--srreisa-q1a": _22, "s\xF8rreisa": _22, "sortland": _22, "sorum": _22, "xn--srum-gra": _22, "s\xF8rum": _22, "spydeberg": _22, "stange": _22, "stavanger": _22, "steigen": _22, "steinkjer": _22, "stjordal": _22, "xn--stjrdal-s1a": _22, "stj\xF8rdal": _22, "stokke": _22, "stor-elvdal": _22, "stord": _22, "stordal": _22, "storfjord": _22, "strand": _22, "stranda": _22, "stryn": _22, "sula": _22, "suldal": _22, "sund": _22, "sunndal": _22, "surnadal": _22, "sveio": _22, "svelvik": _22, "sykkylven": _22, "tana": _22, "telemark": [0, { "bo": _22, "xn--b-5ga": _22, "b\xF8": _22 }], "time": _22, "tingvoll": _22, "tinn": _22, "tjeldsund": _22, "tjome": _22, "xn--tjme-hra": _22, "tj\xF8me": _22, "tokke": _22, "tolga": _22, "tonsberg": _22, "xn--tnsberg-q1a": _22, "t\xF8nsberg": _22, "torsken": _22, "xn--trna-woa": _22, "tr\xE6na": _22, "trana": _22, "tranoy": _22, "xn--trany-yua": _22, "tran\xF8y": _22, "troandin": _22, "trogstad": _22, "xn--trgstad-r1a": _22, "tr\xF8gstad": _22, "tromsa": _22, "tromso": _22, "xn--troms-zua": _22, "troms\xF8": _22, "trondheim": _22, "trysil": _22, "tvedestrand": _22, "tydal": _22, "tynset": _22, "tysfjord": _22, "tysnes": _22, "xn--tysvr-vra": _22, "tysv\xE6r": _22, "tysvar": _22, "ullensaker": _22, "ullensvang": _22, "ulvik": _22, "unjarga": _22, "xn--unjrga-rta": _22, "unj\xE1rga": _22, "utsira": _22, "vaapste": _22, "vadso": _22, "xn--vads-jra": _22, "vads\xF8": _22, "xn--vry-yla5g": _22, "v\xE6r\xF8y": _22, "vaga": _22, "xn--vg-yiab": _22, "v\xE5g\xE5": _22, "vagan": _22, "xn--vgan-qoa": _22, "v\xE5gan": _22, "vagsoy": _22, "xn--vgsy-qoa0j": _22, "v\xE5gs\xF8y": _22, "vaksdal": _22, "valle": _22, "vang": _22, "vanylven": _22, "vardo": _22, "xn--vard-jra": _22, "vard\xF8": _22, "varggat": _22, "xn--vrggt-xqad": _22, "v\xE1rgg\xE1t": _22, "varoy": _22, "vefsn": _22, "vega": _22, "vegarshei": _22, "xn--vegrshei-c0a": _22, "veg\xE5rshei": _22, "vennesla": _22, "verdal": _22, "verran": _22, "vestby": _22, "vestfold": [0, { "sande": _22 }], "vestnes": _22, "vestre-slidre": _22, "vestre-toten": _22, "vestvagoy": _22, "xn--vestvgy-ixa6o": _22, "vestv\xE5g\xF8y": _22, "vevelstad": _22, "vik": _22, "vikna": _22, "vindafjord": _22, "voagat": _22, "volda": _22, "voss": _22, "co": _3, "123hjemmeside": _3, "myspreadshop": _3 }], "np": _21, "nr": _60, "nu": [1, { "merseine": _3, "mine": _3, "shacknet": _3, "enterprisecloud": _3 }], "nz": [1, { "ac": _22, "co": _22, "cri": _22, "geek": _22, "gen": _22, "govt": _22, "health": _22, "iwi": _22, "kiwi": _22, "maori": _22, "xn--mori-qsa": _22, "m\u0101ori": _22, "mil": _22, "net": _22, "org": _22, "parliament": _22, "school": _22, "cloudns": _3 }], "om": [1, { "co": _22, "com": _22, "edu": _22, "gov": _22, "med": _22, "museum": _22, "net": _22, "org": _22, "pro": _22 }], "onion": _22, "org": [1, { "altervista": _3, "pimienta": _3, "poivron": _3, "potager": _3, "sweetpepper": _3, "cdn77": [0, { "c": _3, "rsc": _3 }], "cdn77-secure": [0, { "origin": [0, { "ssl": _3 }] }], "ae": _3, "cloudns": _3, "ip-dynamic": _3, "ddnss": _3, "dpdns": _3, "duckdns": _3, "tunk": _3, "blogdns": _3, "blogsite": _3, "boldlygoingnowhere": _3, "dnsalias": _3, "dnsdojo": _3, "doesntexist": _3, "dontexist": _3, "doomdns": _3, "dvrdns": _3, "dynalias": _3, "dyndns": [2, { "go": _3, "home": _3 }], "endofinternet": _3, "endoftheinternet": _3, "from-me": _3, "game-host": _3, "gotdns": _3, "hobby-site": _3, "homedns": _3, "homeftp": _3, "homelinux": _3, "homeunix": _3, "is-a-bruinsfan": _3, "is-a-candidate": _3, "is-a-celticsfan": _3, "is-a-chef": _3, "is-a-geek": _3, "is-a-knight": _3, "is-a-linux-user": _3, "is-a-patsfan": _3, "is-a-soxfan": _3, "is-found": _3, "is-lost": _3, "is-saved": _3, "is-very-bad": _3, "is-very-evil": _3, "is-very-good": _3, "is-very-nice": _3, "is-very-sweet": _3, "isa-geek": _3, "kicks-ass": _3, "misconfused": _3, "podzone": _3, "readmyblog": _3, "selfip": _3, "sellsyourhome": _3, "servebbs": _3, "serveftp": _3, "servegame": _3, "stuff-4-sale": _3, "webhop": _3, "accesscam": _3, "camdvr": _3, "freeddns": _3, "mywire": _3, "roxa": _3, "webredirect": _3, "twmail": _3, "eu": [2, { "al": _3, "asso": _3, "at": _3, "au": _3, "be": _3, "bg": _3, "ca": _3, "cd": _3, "ch": _3, "cn": _3, "cy": _3, "cz": _3, "de": _3, "dk": _3, "edu": _3, "ee": _3, "es": _3, "fi": _3, "fr": _3, "gr": _3, "hr": _3, "hu": _3, "ie": _3, "il": _3, "in": _3, "int": _3, "is": _3, "it": _3, "jp": _3, "kr": _3, "lt": _3, "lu": _3, "lv": _3, "me": _3, "mk": _3, "mt": _3, "my": _3, "net": _3, "ng": _3, "nl": _3, "no": _3, "nz": _3, "pl": _3, "pt": _3, "ro": _3, "ru": _3, "se": _3, "si": _3, "sk": _3, "tr": _3, "uk": _3, "us": _3 }], "fedorainfracloud": _3, "fedorapeople": _3, "fedoraproject": [0, { "cloud": _3, "os": _45, "stg": [0, { "os": _45 }] }], "freedesktop": _3, "hatenadiary": _3, "hepforge": _3, "in-dsl": _3, "in-vpn": _3, "js": _3, "barsy": _3, "mayfirst": _3, "routingthecloud": _3, "bmoattachments": _3, "cable-modem": _3, "collegefan": _3, "couchpotatofries": _3, "hopto": _3, "mlbfan": _3, "myftp": _3, "mysecuritycamera": _3, "nflfan": _3, "no-ip": _3, "read-books": _3, "ufcfan": _3, "zapto": _3, "dynserv": _3, "now-dns": _3, "is-local": _3, "httpbin": _3, "pubtls": _3, "jpn": _3, "my-firewall": _3, "myfirewall": _3, "spdns": _3, "small-web": _3, "dsmynas": _3, "familyds": _3, "teckids": _59, "tuxfamily": _3, "hk": _3, "us": _3, "toolforge": _3, "wmcloud": [2, { "beta": _3 }], "wmflabs": _3, "za": _3 }], "pa": [1, { "abo": _22, "ac": _22, "com": _22, "edu": _22, "gob": _22, "ing": _22, "med": _22, "net": _22, "nom": _22, "org": _22, "sld": _22 }], "pe": [1, { "com": _22, "edu": _22, "gob": _22, "mil": _22, "net": _22, "nom": _22, "org": _22 }], "pf": [1, { "com": _22, "edu": _22, "org": _22 }], "pg": _21, "ph": [1, { "com": _22, "edu": _22, "gov": _22, "i": _22, "mil": _22, "net": _22, "ngo": _22, "org": _22, "cloudns": _3 }], "pk": [1, { "ac": _22, "biz": _22, "com": _22, "edu": _22, "fam": _22, "gkp": _22, "gob": _22, "gog": _22, "gok": _22, "gop": _22, "gos": _22, "gov": _22, "net": _22, "org": _22, "web": _22 }], "pl": [1, { "com": _22, "net": _22, "org": _22, "agro": _22, "aid": _22, "atm": _22, "auto": _22, "biz": _22, "edu": _22, "gmina": _22, "gsm": _22, "info": _22, "mail": _22, "media": _22, "miasta": _22, "mil": _22, "nieruchomosci": _22, "nom": _22, "pc": _22, "powiat": _22, "priv": _22, "realestate": _22, "rel": _22, "sex": _22, "shop": _22, "sklep": _22, "sos": _22, "szkola": _22, "targi": _22, "tm": _22, "tourism": _22, "travel": _22, "turystyka": _22, "gov": [1, { "ap": _22, "griw": _22, "ic": _22, "is": _22, "kmpsp": _22, "konsulat": _22, "kppsp": _22, "kwp": _22, "kwpsp": _22, "mup": _22, "mw": _22, "oia": _22, "oirm": _22, "oke": _22, "oow": _22, "oschr": _22, "oum": _22, "pa": _22, "pinb": _22, "piw": _22, "po": _22, "pr": _22, "psp": _22, "psse": _22, "pup": _22, "rzgw": _22, "sa": _22, "sdn": _22, "sko": _22, "so": _22, "sr": _22, "starostwo": _22, "ug": _22, "ugim": _22, "um": _22, "umig": _22, "upow": _22, "uppo": _22, "us": _22, "uw": _22, "uzs": _22, "wif": _22, "wiih": _22, "winb": _22, "wios": _22, "witd": _22, "wiw": _22, "wkz": _22, "wsa": _22, "wskr": _22, "wsse": _22, "wuoz": _22, "wzmiuw": _22, "zp": _22, "zpisdn": _22 }], "augustow": _22, "babia-gora": _22, "bedzin": _22, "beskidy": _22, "bialowieza": _22, "bialystok": _22, "bielawa": _22, "bieszczady": _22, "boleslawiec": _22, "bydgoszcz": _22, "bytom": _22, "cieszyn": _22, "czeladz": _22, "czest": _22, "dlugoleka": _22, "elblag": _22, "elk": _22, "glogow": _22, "gniezno": _22, "gorlice": _22, "grajewo": _22, "ilawa": _22, "jaworzno": _22, "jelenia-gora": _22, "jgora": _22, "kalisz": _22, "karpacz": _22, "kartuzy": _22, "kaszuby": _22, "katowice": _22, "kazimierz-dolny": _22, "kepno": _22, "ketrzyn": _22, "klodzko": _22, "kobierzyce": _22, "kolobrzeg": _22, "konin": _22, "konskowola": _22, "kutno": _22, "lapy": _22, "lebork": _22, "legnica": _22, "lezajsk": _22, "limanowa": _22, "lomza": _22, "lowicz": _22, "lubin": _22, "lukow": _22, "malbork": _22, "malopolska": _22, "mazowsze": _22, "mazury": _22, "mielec": _22, "mielno": _22, "mragowo": _22, "naklo": _22, "nowaruda": _22, "nysa": _22, "olawa": _22, "olecko": _22, "olkusz": _22, "olsztyn": _22, "opoczno": _22, "opole": _22, "ostroda": _22, "ostroleka": _22, "ostrowiec": _22, "ostrowwlkp": _22, "pila": _22, "pisz": _22, "podhale": _22, "podlasie": _22, "polkowice": _22, "pomorskie": _22, "pomorze": _22, "prochowice": _22, "pruszkow": _22, "przeworsk": _22, "pulawy": _22, "radom": _22, "rawa-maz": _22, "rybnik": _22, "rzeszow": _22, "sanok": _22, "sejny": _22, "skoczow": _22, "slask": _22, "slupsk": _22, "sosnowiec": _22, "stalowa-wola": _22, "starachowice": _22, "stargard": _22, "suwalki": _22, "swidnica": _22, "swiebodzin": _22, "swinoujscie": _22, "szczecin": _22, "szczytno": _22, "tarnobrzeg": _22, "tgory": _22, "turek": _22, "tychy": _22, "ustka": _22, "walbrzych": _22, "warmia": _22, "warszawa": _22, "waw": _22, "wegrow": _22, "wielun": _22, "wlocl": _22, "wloclawek": _22, "wodzislaw": _22, "wolomin": _22, "wroclaw": _22, "zachpomor": _22, "zagan": _22, "zarow": _22, "zgora": _22, "zgorzelec": _22, "art": _3, "gliwice": _3, "krakow": _3, "poznan": _3, "wroc": _3, "zakopane": _3, "beep": _3, "ecommerce-shop": _3, "cfolks": _3, "dfirma": _3, "dkonto": _3, "you2": _3, "shoparena": _3, "homesklep": _3, "sdscloud": _3, "unicloud": _3, "lodz": _3, "pabianice": _3, "plock": _3, "sieradz": _3, "skierniewice": _3, "zgierz": _3, "krasnik": _3, "leczna": _3, "lubartow": _3, "lublin": _3, "poniatowa": _3, "swidnik": _3, "co": _3, "torun": _3, "simplesite": _3, "myspreadshop": _3, "gda": _3, "gdansk": _3, "gdynia": _3, "med": _3, "sopot": _3, "bielsko": _3 }], "pm": [1, { "own": _3, "name": _3 }], "pn": [1, { "co": _22, "edu": _22, "gov": _22, "net": _22, "org": _22 }], "post": _22, "pr": [1, { "biz": _22, "com": _22, "edu": _22, "gov": _22, "info": _22, "isla": _22, "name": _22, "net": _22, "org": _22, "pro": _22, "ac": _22, "est": _22, "prof": _22 }], "pro": [1, { "aaa": _22, "aca": _22, "acct": _22, "avocat": _22, "bar": _22, "cpa": _22, "eng": _22, "jur": _22, "law": _22, "med": _22, "recht": _22, "cloudns": _3, "keenetic": _3, "barsy": _3, "ngrok": _3 }], "ps": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "plo": _22, "sec": _22 }], "pt": [1, { "com": _22, "edu": _22, "gov": _22, "int": _22, "net": _22, "nome": _22, "org": _22, "publ": _22, "123paginaweb": _3 }], "pw": [1, { "gov": _22, "cloudns": _3, "x443": _3 }], "py": [1, { "com": _22, "coop": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22 }], "qa": [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "name": _22, "net": _22, "org": _22, "sch": _22 }], "re": [1, { "asso": _22, "com": _22, "netlib": _3, "can": _3 }], "ro": [1, { "arts": _22, "com": _22, "firm": _22, "info": _22, "nom": _22, "nt": _22, "org": _22, "rec": _22, "store": _22, "tm": _22, "www": _22, "co": _3, "shop": _3, "barsy": _3 }], "rs": [1, { "ac": _22, "co": _22, "edu": _22, "gov": _22, "in": _22, "org": _22, "brendly": _20, "barsy": _3, "ox": _3 }], "ru": [1, { "ac": _3, "edu": _3, "gov": _3, "int": _3, "mil": _3, "eurodir": _3, "adygeya": _3, "bashkiria": _3, "bir": _3, "cbg": _3, "com": _3, "dagestan": _3, "grozny": _3, "kalmykia": _3, "kustanai": _3, "marine": _3, "mordovia": _3, "msk": _3, "mytis": _3, "nalchik": _3, "nov": _3, "pyatigorsk": _3, "spb": _3, "vladikavkaz": _3, "vladimir": _3, "na4u": _3, "mircloud": _3, "myjino": [2, { "hosting": _6, "landing": _6, "spectrum": _6, "vps": _6 }], "cldmail": [0, { "hb": _3 }], "mcdir": [2, { "vps": _3 }], "mcpre": _3, "net": _3, "org": _3, "pp": _3, "ras": _3 }], "rw": [1, { "ac": _22, "co": _22, "coop": _22, "gov": _22, "mil": _22, "net": _22, "org": _22 }], "sa": [1, { "com": _22, "edu": _22, "gov": _22, "med": _22, "net": _22, "org": _22, "pub": _22, "sch": _22 }], "sb": _4, "sc": _4, "sd": [1, { "com": _22, "edu": _22, "gov": _22, "info": _22, "med": _22, "net": _22, "org": _22, "tv": _22 }], "se": [1, { "a": _22, "ac": _22, "b": _22, "bd": _22, "brand": _22, "c": _22, "d": _22, "e": _22, "f": _22, "fh": _22, "fhsk": _22, "fhv": _22, "g": _22, "h": _22, "i": _22, "k": _22, "komforb": _22, "kommunalforbund": _22, "komvux": _22, "l": _22, "lanbib": _22, "m": _22, "n": _22, "naturbruksgymn": _22, "o": _22, "org": _22, "p": _22, "parti": _22, "pp": _22, "press": _22, "r": _22, "s": _22, "t": _22, "tm": _22, "u": _22, "w": _22, "x": _22, "y": _22, "z": _22, "com": _3, "iopsys": _3, "123minsida": _3, "itcouldbewor": _3, "myspreadshop": _3 }], "sg": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "enscaled": _3 }], "sh": [1, { "com": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "hashbang": _3, "botda": _3, "lovable": _3, "platform": [0, { "ent": _3, "eu": _3, "us": _3 }], "teleport": _3, "now": _3 }], "si": [1, { "f5": _3, "gitapp": _3, "gitpage": _3 }], "sj": _22, "sk": [1, { "org": _22 }], "sl": _4, "sm": _22, "sn": [1, { "art": _22, "com": _22, "edu": _22, "gouv": _22, "org": _22, "univ": _22 }], "so": [1, { "com": _22, "edu": _22, "gov": _22, "me": _22, "net": _22, "org": _22, "surveys": _3 }], "sr": _22, "ss": [1, { "biz": _22, "co": _22, "com": _22, "edu": _22, "gov": _22, "me": _22, "net": _22, "org": _22, "sch": _22 }], "st": [1, { "co": _22, "com": _22, "consulado": _22, "edu": _22, "embaixada": _22, "mil": _22, "net": _22, "org": _22, "principe": _22, "saotome": _22, "store": _22, "helioho": _3, "cn": _6, "kirara": _3, "noho": _3 }], "su": [1, { "abkhazia": _3, "adygeya": _3, "aktyubinsk": _3, "arkhangelsk": _3, "armenia": _3, "ashgabad": _3, "azerbaijan": _3, "balashov": _3, "bashkiria": _3, "bryansk": _3, "bukhara": _3, "chimkent": _3, "dagestan": _3, "east-kazakhstan": _3, "exnet": _3, "georgia": _3, "grozny": _3, "ivanovo": _3, "jambyl": _3, "kalmykia": _3, "kaluga": _3, "karacol": _3, "karaganda": _3, "karelia": _3, "khakassia": _3, "krasnodar": _3, "kurgan": _3, "kustanai": _3, "lenug": _3, "mangyshlak": _3, "mordovia": _3, "msk": _3, "murmansk": _3, "nalchik": _3, "navoi": _3, "north-kazakhstan": _3, "nov": _3, "obninsk": _3, "penza": _3, "pokrovsk": _3, "sochi": _3, "spb": _3, "tashkent": _3, "termez": _3, "togliatti": _3, "troitsk": _3, "tselinograd": _3, "tula": _3, "tuva": _3, "vladikavkaz": _3, "vladimir": _3, "vologda": _3 }], "sv": [1, { "com": _22, "edu": _22, "gob": _22, "org": _22, "red": _22 }], "sx": _10, "sy": _5, "sz": [1, { "ac": _22, "co": _22, "org": _22 }], "tc": _22, "td": _22, "tel": _22, "tf": [1, { "sch": _3 }], "tg": _22, "th": [1, { "ac": _22, "co": _22, "go": _22, "in": _22, "mi": _22, "net": _22, "or": _22, "online": _3, "shop": _3 }], "tj": [1, { "ac": _22, "biz": _22, "co": _22, "com": _22, "edu": _22, "go": _22, "gov": _22, "int": _22, "mil": _22, "name": _22, "net": _22, "nic": _22, "org": _22, "test": _22, "web": _22 }], "tk": _22, "tl": _10, "tm": [1, { "co": _22, "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "nom": _22, "org": _22 }], "tn": [1, { "com": _22, "ens": _22, "fin": _22, "gov": _22, "ind": _22, "info": _22, "intl": _22, "mincom": _22, "nat": _22, "net": _22, "org": _22, "perso": _22, "tourism": _22, "orangecloud": _3 }], "to": [1, { "611": _3, "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "oya": _3, "x0": _3, "quickconnect": _28, "vpnplus": _3, "nett": _3 }], "tr": [1, { "av": _22, "bbs": _22, "bel": _22, "biz": _22, "com": _22, "dr": _22, "edu": _22, "gen": _22, "gov": _22, "info": _22, "k12": _22, "kep": _22, "mil": _22, "name": _22, "net": _22, "org": _22, "pol": _22, "tel": _22, "tsk": _22, "tv": _22, "web": _22, "nc": _10 }], "tt": [1, { "biz": _22, "co": _22, "com": _22, "edu": _22, "gov": _22, "info": _22, "mil": _22, "name": _22, "net": _22, "org": _22, "pro": _22 }], "tv": [1, { "better-than": _3, "dyndns": _3, "on-the-web": _3, "worse-than": _3, "from": _3, "sakura": _3 }], "tw": [1, { "club": _22, "com": [1, { "mymailer": _3 }], "ebiz": _22, "edu": _22, "game": _22, "gov": _22, "idv": _22, "mil": _22, "net": _22, "org": _22, "url": _3, "mydns": _3 }], "tz": [1, { "ac": _22, "co": _22, "go": _22, "hotel": _22, "info": _22, "me": _22, "mil": _22, "mobi": _22, "ne": _22, "or": _22, "sc": _22, "tv": _22 }], "ua": [1, { "com": _22, "edu": _22, "gov": _22, "in": _22, "net": _22, "org": _22, "cherkassy": _22, "cherkasy": _22, "chernigov": _22, "chernihiv": _22, "chernivtsi": _22, "chernovtsy": _22, "ck": _22, "cn": _22, "cr": _22, "crimea": _22, "cv": _22, "dn": _22, "dnepropetrovsk": _22, "dnipropetrovsk": _22, "donetsk": _22, "dp": _22, "if": _22, "ivano-frankivsk": _22, "kh": _22, "kharkiv": _22, "kharkov": _22, "kherson": _22, "khmelnitskiy": _22, "khmelnytskyi": _22, "kiev": _22, "kirovograd": _22, "km": _22, "kr": _22, "kropyvnytskyi": _22, "krym": _22, "ks": _22, "kv": _22, "kyiv": _22, "lg": _22, "lt": _22, "lugansk": _22, "luhansk": _22, "lutsk": _22, "lv": _22, "lviv": _22, "mk": _22, "mykolaiv": _22, "nikolaev": _22, "od": _22, "odesa": _22, "odessa": _22, "pl": _22, "poltava": _22, "rivne": _22, "rovno": _22, "rv": _22, "sb": _22, "sebastopol": _22, "sevastopol": _22, "sm": _22, "sumy": _22, "te": _22, "ternopil": _22, "uz": _22, "uzhgorod": _22, "uzhhorod": _22, "vinnica": _22, "vinnytsia": _22, "vn": _22, "volyn": _22, "yalta": _22, "zakarpattia": _22, "zaporizhzhe": _22, "zaporizhzhia": _22, "zhitomir": _22, "zhytomyr": _22, "zp": _22, "zt": _22, "cc": _3, "inf": _3, "ltd": _3, "cx": _3, "biz": _3, "co": _3, "pp": _3, "v": _3 }], "ug": [1, { "ac": _22, "co": _22, "com": _22, "edu": _22, "go": _22, "gov": _22, "mil": _22, "ne": _22, "or": _22, "org": _22, "sc": _22, "us": _22 }], "uk": [1, { "ac": _22, "co": [1, { "bytemark": [0, { "dh": _3, "vm": _3 }], "layershift": _48, "barsy": _3, "barsyonline": _3, "retrosnub": _58, "nh-serv": _3, "no-ip": _3, "adimo": _3, "myspreadshop": _3 }], "gov": [1, { "api": _3, "campaign": _3, "service": _3 }], "ltd": _22, "me": _22, "net": _22, "nhs": _22, "org": [1, { "glug": _3, "lug": _3, "lugs": _3, "affinitylottery": _3, "raffleentry": _3, "weeklylottery": _3 }], "plc": _22, "police": _22, "sch": _21, "conn": _3, "copro": _3, "hosp": _3, "independent-commission": _3, "independent-inquest": _3, "independent-inquiry": _3, "independent-panel": _3, "independent-review": _3, "public-inquiry": _3, "royal-commission": _3, "pymnt": _3, "barsy": _3, "nimsite": _3, "oraclegovcloudapps": _6 }], "us": [1, { "dni": _22, "isa": _22, "nsn": _22, "ak": _68, "al": _68, "ar": _68, "as": _68, "az": _68, "ca": _68, "co": _68, "ct": _68, "dc": _68, "de": _69, "fl": _68, "ga": _68, "gu": _68, "hi": _70, "ia": _68, "id": _68, "il": _68, "in": _68, "ks": _68, "ky": _68, "la": _68, "ma": [1, { "k12": [1, { "chtr": _22, "paroch": _22, "pvt": _22 }], "cc": _22, "lib": _22 }], "md": _68, "me": _68, "mi": [1, { "k12": _22, "cc": _22, "lib": _22, "ann-arbor": _22, "cog": _22, "dst": _22, "eaton": _22, "gen": _22, "mus": _22, "tec": _22, "washtenaw": _22 }], "mn": _68, "mo": _68, "ms": [1, { "k12": _22, "cc": _22 }], "mt": _68, "nc": _68, "nd": _70, "ne": _68, "nh": _68, "nj": _68, "nm": _68, "nv": _68, "ny": _68, "oh": _68, "ok": _68, "or": _68, "pa": _68, "pr": _68, "ri": _70, "sc": _68, "sd": _70, "tn": _68, "tx": _68, "ut": _68, "va": _68, "vi": _68, "vt": _68, "wa": _68, "wi": _68, "wv": _69, "wy": _68, "cloudns": _3, "is-by": _3, "land-4-sale": _3, "stuff-4-sale": _3, "heliohost": _3, "enscaled": [0, { "phx": _3 }], "mircloud": _3, "azure-api": _3, "azurewebsites": _3, "ngo": _3, "golffan": _3, "noip": _3, "pointto": _3, "freeddns": _3, "srv": [2, { "gh": _3, "gl": _3 }], "servername": _3 }], "uy": [1, { "com": _22, "edu": _22, "gub": _22, "mil": _22, "net": _22, "org": _22, "gv": _3 }], "uz": [1, { "co": _22, "com": _22, "net": _22, "org": _22 }], "va": _22, "vc": [1, { "com": _22, "edu": _22, "gov": _22, "mil": _22, "net": _22, "org": _22, "gv": [2, { "d": _3 }], "0e": _6, "mydns": _3 }], "ve": [1, { "arts": _22, "bib": _22, "co": _22, "com": _22, "e12": _22, "edu": _22, "emprende": _22, "firm": _22, "gob": _22, "gov": _22, "ia": _22, "info": _22, "int": _22, "mil": _22, "net": _22, "nom": _22, "org": _22, "rar": _22, "rec": _22, "store": _22, "tec": _22, "web": _22 }], "vg": [1, { "edu": _22 }], "vi": [1, { "co": _22, "com": _22, "k12": _22, "net": _22, "org": _22 }], "vn": [1, { "ac": _22, "ai": _22, "biz": _22, "com": _22, "edu": _22, "gov": _22, "health": _22, "id": _22, "info": _22, "int": _22, "io": _22, "name": _22, "net": _22, "org": _22, "pro": _22, "angiang": _22, "bacgiang": _22, "backan": _22, "baclieu": _22, "bacninh": _22, "baria-vungtau": _22, "bentre": _22, "binhdinh": _22, "binhduong": _22, "binhphuoc": _22, "binhthuan": _22, "camau": _22, "cantho": _22, "caobang": _22, "daklak": _22, "daknong": _22, "danang": _22, "dienbien": _22, "dongnai": _22, "dongthap": _22, "gialai": _22, "hagiang": _22, "haiduong": _22, "haiphong": _22, "hanam": _22, "hanoi": _22, "hatinh": _22, "haugiang": _22, "hoabinh": _22, "hungyen": _22, "khanhhoa": _22, "kiengiang": _22, "kontum": _22, "laichau": _22, "lamdong": _22, "langson": _22, "laocai": _22, "longan": _22, "namdinh": _22, "nghean": _22, "ninhbinh": _22, "ninhthuan": _22, "phutho": _22, "phuyen": _22, "quangbinh": _22, "quangnam": _22, "quangngai": _22, "quangninh": _22, "quangtri": _22, "soctrang": _22, "sonla": _22, "tayninh": _22, "thaibinh": _22, "thainguyen": _22, "thanhhoa": _22, "thanhphohochiminh": _22, "thuathienhue": _22, "tiengiang": _22, "travinh": _22, "tuyenquang": _22, "vinhlong": _22, "vinhphuc": _22, "yenbai": _22 }], "vu": _47, "wf": [1, { "biz": _3, "sch": _3 }], "ws": [1, { "com": _22, "edu": _22, "gov": _22, "net": _22, "org": _22, "advisor": _6, "cloud66": _3, "dyndns": _3, "mypets": _3 }], "yt": [1, { "org": _3 }], "xn--mgbaam7a8h": _22, "\u0627\u0645\u0627\u0631\u0627\u062A": _22, "xn--y9a3aq": _22, "\u0570\u0561\u0575": _22, "xn--54b7fta0cc": _22, "\u09AC\u09BE\u0982\u09B2\u09BE": _22, "xn--90ae": _22, "\u0431\u0433": _22, "xn--mgbcpq6gpa1a": _22, "\u0627\u0644\u0628\u062D\u0631\u064A\u0646": _22, "xn--90ais": _22, "\u0431\u0435\u043B": _22, "xn--fiqs8s": _22, "\u4E2D\u56FD": _22, "xn--fiqz9s": _22, "\u4E2D\u570B": _22, "xn--lgbbat1ad8j": _22, "\u0627\u0644\u062C\u0632\u0627\u0626\u0631": _22, "xn--wgbh1c": _22, "\u0645\u0635\u0631": _22, "xn--e1a4c": _22, "\u0435\u044E": _22, "xn--qxa6a": _22, "\u03B5\u03C5": _22, "xn--mgbah1a3hjkrd": _22, "\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627": _22, "xn--node": _22, "\u10D2\u10D4": _22, "xn--qxam": _22, "\u03B5\u03BB": _22, "xn--j6w193g": [1, { "xn--gmqw5a": _22, "xn--55qx5d": _22, "xn--mxtq1m": _22, "xn--wcvs22d": _22, "xn--uc0atv": _22, "xn--od0alg": _22 }], "\u9999\u6E2F": [1, { "\u500B\u4EBA": _22, "\u516C\u53F8": _22, "\u653F\u5E9C": _22, "\u6559\u80B2": _22, "\u7D44\u7E54": _22, "\u7DB2\u7D61": _22 }], "xn--2scrj9c": _22, "\u0CAD\u0CBE\u0CB0\u0CA4": _22, "xn--3hcrj9c": _22, "\u0B2D\u0B3E\u0B30\u0B24": _22, "xn--45br5cyl": _22, "\u09AD\u09BE\u09F0\u09A4": _22, "xn--h2breg3eve": _22, "\u092D\u093E\u0930\u0924\u092E\u094D": _22, "xn--h2brj9c8c": _22, "\u092D\u093E\u0930\u094B\u0924": _22, "xn--mgbgu82a": _22, "\u0680\u0627\u0631\u062A": _22, "xn--rvc1e0am3e": _22, "\u0D2D\u0D3E\u0D30\u0D24\u0D02": _22, "xn--h2brj9c": _22, "\u092D\u093E\u0930\u0924": _22, "xn--mgbbh1a": _22, "\u0628\u0627\u0631\u062A": _22, "xn--mgbbh1a71e": _22, "\u0628\u06BE\u0627\u0631\u062A": _22, "xn--fpcrj9c3d": _22, "\u0C2D\u0C3E\u0C30\u0C24\u0C4D": _22, "xn--gecrj9c": _22, "\u0AAD\u0ABE\u0AB0\u0AA4": _22, "xn--s9brj9c": _22, "\u0A2D\u0A3E\u0A30\u0A24": _22, "xn--45brj9c": _22, "\u09AD\u09BE\u09B0\u09A4": _22, "xn--xkc2dl3a5ee0h": _22, "\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE": _22, "xn--mgba3a4f16a": _22, "\u0627\u06CC\u0631\u0627\u0646": _22, "xn--mgba3a4fra": _22, "\u0627\u064A\u0631\u0627\u0646": _22, "xn--mgbtx2b": _22, "\u0639\u0631\u0627\u0642": _22, "xn--mgbayh7gpa": _22, "\u0627\u0644\u0627\u0631\u062F\u0646": _22, "xn--3e0b707e": _22, "\uD55C\uAD6D": _22, "xn--80ao21a": _22, "\u049B\u0430\u0437": _22, "xn--q7ce6a": _22, "\u0EA5\u0EB2\u0EA7": _22, "xn--fzc2c9e2c": _22, "\u0DBD\u0D82\u0D9A\u0DCF": _22, "xn--xkc2al3hye2a": _22, "\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8": _22, "xn--mgbc0a9azcg": _22, "\u0627\u0644\u0645\u063A\u0631\u0628": _22, "xn--d1alf": _22, "\u043C\u043A\u0434": _22, "xn--l1acc": _22, "\u043C\u043E\u043D": _22, "xn--mix891f": _22, "\u6FB3\u9580": _22, "xn--mix082f": _22, "\u6FB3\u95E8": _22, "xn--mgbx4cd0ab": _22, "\u0645\u0644\u064A\u0633\u064A\u0627": _22, "xn--mgb9awbf": _22, "\u0639\u0645\u0627\u0646": _22, "xn--mgbai9azgqp6j": _22, "\u067E\u0627\u06A9\u0633\u062A\u0627\u0646": _22, "xn--mgbai9a5eva00b": _22, "\u067E\u0627\u0643\u0633\u062A\u0627\u0646": _22, "xn--ygbi2ammx": _22, "\u0641\u0644\u0633\u0637\u064A\u0646": _22, "xn--90a3ac": [1, { "xn--80au": _22, "xn--90azh": _22, "xn--d1at": _22, "xn--c1avg": _22, "xn--o1ac": _22, "xn--o1ach": _22 }], "\u0441\u0440\u0431": [1, { "\u0430\u043A": _22, "\u043E\u0431\u0440": _22, "\u043E\u0434": _22, "\u043E\u0440\u0433": _22, "\u043F\u0440": _22, "\u0443\u043F\u0440": _22 }], "xn--p1ai": _22, "\u0440\u0444": _22, "xn--wgbl6a": _22, "\u0642\u0637\u0631": _22, "xn--mgberp4a5d4ar": _22, "\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629": _22, "xn--mgberp4a5d4a87g": _22, "\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u0629": _22, "xn--mgbqly7c0a67fbc": _22, "\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u06C3": _22, "xn--mgbqly7cvafr": _22, "\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0647": _22, "xn--mgbpl2fh": _22, "\u0633\u0648\u062F\u0627\u0646": _22, "xn--yfro4i67o": _22, "\u65B0\u52A0\u5761": _22, "xn--clchc0ea0b2g2a9gcd": _22, "\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD": _22, "xn--ogbpf8fl": _22, "\u0633\u0648\u0631\u064A\u0629": _22, "xn--mgbtf8fl": _22, "\u0633\u0648\u0631\u064A\u0627": _22, "xn--o3cw4h": [1, { "xn--o3cyx2a": _22, "xn--12co0c3b4eva": _22, "xn--m3ch0j3a": _22, "xn--h3cuzk1di": _22, "xn--12c1fe0br": _22, "xn--12cfi8ixb8l": _22 }], "\u0E44\u0E17\u0E22": [1, { "\u0E17\u0E2B\u0E32\u0E23": _22, "\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08": _22, "\u0E40\u0E19\u0E47\u0E15": _22, "\u0E23\u0E31\u0E10\u0E1A\u0E32\u0E25": _22, "\u0E28\u0E36\u0E01\u0E29\u0E32": _22, "\u0E2D\u0E07\u0E04\u0E4C\u0E01\u0E23": _22 }], "xn--pgbs0dh": _22, "\u062A\u0648\u0646\u0633": _22, "xn--kpry57d": _22, "\u53F0\u7063": _22, "xn--kprw13d": _22, "\u53F0\u6E7E": _22, "xn--nnx388a": _22, "\u81FA\u7063": _22, "xn--j1amh": _22, "\u0443\u043A\u0440": _22, "xn--mgb2ddes": _22, "\u0627\u0644\u064A\u0645\u0646": _22, "xxx": _22, "ye": _5, "za": [0, { "ac": _22, "agric": _22, "alt": _22, "co": _22, "edu": _22, "gov": _22, "grondar": _22, "law": _22, "mil": _22, "net": _22, "ngo": _22, "nic": _22, "nis": _22, "nom": _22, "org": _22, "school": _22, "tm": _22, "web": _22 }], "zm": [1, { "ac": _22, "biz": _22, "co": _22, "com": _22, "edu": _22, "gov": _22, "info": _22, "mil": _22, "net": _22, "org": _22, "sch": _22 }], "zw": [1, { "ac": _22, "co": _22, "gov": _22, "mil": _22, "org": _22 }], "aaa": _22, "aarp": _22, "abb": _22, "abbott": _22, "abbvie": _22, "abc": _22, "able": _22, "abogado": _22, "abudhabi": _22, "academy": [1, { "official": _3 }], "accenture": _22, "accountant": _22, "accountants": _22, "aco": _22, "actor": _22, "ads": _22, "adult": _22, "aeg": _22, "aetna": _22, "afl": _22, "africa": _22, "agakhan": _22, "agency": _22, "aig": _22, "airbus": _22, "airforce": _22, "airtel": _22, "akdn": _22, "alibaba": _22, "alipay": _22, "allfinanz": _22, "allstate": _22, "ally": _22, "alsace": _22, "alstom": _22, "amazon": _22, "americanexpress": _22, "americanfamily": _22, "amex": _22, "amfam": _22, "amica": _22, "amsterdam": _22, "analytics": _22, "android": _22, "anquan": _22, "anz": _22, "aol": _22, "apartments": _22, "app": [1, { "adaptable": _3, "aiven": _3, "beget": _6, "brave": _7, "clerk": _3, "clerkstage": _3, "cloudflare": _3, "wnext": _3, "csb": [2, { "preview": _3 }], "convex": _3, "corespeed": _3, "deta": _3, "ondigitalocean": _3, "easypanel": _3, "encr": [2, { "frontend": _3 }], "evervault": _8, "expo": [2, { "staging": _3 }], "edgecompute": _3, "on-fleek": _3, "flutterflow": _3, "sprites": _3, "e2b": _3, "framer": _3, "gadget": _3, "github": _3, "hosted": _6, "run": [0, { "*": _3, "mtls": _6 }], "web": _3, "hackclub": _3, "hasura": _3, "onhercules": _3, "botdash": _3, "shiptoday": _3, "leapcell": _3, "loginline": _3, "lovable": _3, "luyani": _3, "magicpatterns": _3, "medusajs": _3, "messerli": _3, "miren": _3, "mocha": _3, "netlify": _3, "ngrok": _3, "ngrok-free": _3, "developer": _6, "noop": _3, "northflank": _6, "upsun": _6, "railway": [0, { "up": _3 }], "replit": _9, "nyat": _3, "snowflake": [0, { "*": _3, "privatelink": _6 }], "streamlit": _3, "spawnbase": _3, "telebit": _3, "typedream": _3, "vercel": _3, "wal": _3, "wasmer": _3, "bookonline": _3, "windsurf": _3, "base44": _3, "zeabur": _3, "zerops": _6 }], "apple": [1, { "int": [2, { "cloud": [0, { "*": _3, "r": [0, { "*": _3, "ap-north-1": _6, "ap-south-1": _6, "ap-south-2": _6, "eu-central-1": _6, "eu-north-1": _6, "us-central-1": _6, "us-central-2": _6, "us-east-1": _6, "us-east-2": _6, "us-west-1": _6, "us-west-2": _6, "us-west-3": _6 }] }] }] }], "aquarelle": _22, "arab": _22, "aramco": _22, "archi": _22, "army": _22, "art": _22, "arte": _22, "asda": _22, "associates": _22, "athleta": _22, "attorney": _22, "auction": _22, "audi": _22, "audible": _22, "audio": _22, "auspost": _22, "author": _22, "auto": _22, "autos": _22, "aws": [1, { "on": [0, { "af-south-1": _11, "ap-east-1": _11, "ap-northeast-1": _11, "ap-northeast-2": _11, "ap-northeast-3": _11, "ap-south-1": _11, "ap-south-2": _12, "ap-southeast-1": _11, "ap-southeast-2": _11, "ap-southeast-3": _11, "ap-southeast-4": _12, "ap-southeast-5": _12, "ca-central-1": _11, "ca-west-1": _12, "eu-central-1": _11, "eu-central-2": _12, "eu-north-1": _11, "eu-south-1": _11, "eu-south-2": _12, "eu-west-1": _11, "eu-west-2": _11, "eu-west-3": _11, "il-central-1": _12, "me-central-1": _12, "me-south-1": _11, "sa-east-1": _11, "us-east-1": _11, "us-east-2": _11, "us-west-1": _11, "us-west-2": _11, "ap-southeast-7": _13, "mx-central-1": _13, "us-gov-east-1": _14, "us-gov-west-1": _14 }], "sagemaker": [0, { "ap-northeast-1": _16, "ap-northeast-2": _16, "ap-south-1": _16, "ap-southeast-1": _16, "ap-southeast-2": _16, "ca-central-1": _18, "eu-central-1": _16, "eu-west-1": _16, "eu-west-2": _16, "us-east-1": _18, "us-east-2": _18, "us-west-2": _18, "af-south-1": _15, "ap-east-1": _15, "ap-northeast-3": _15, "ap-south-2": _17, "ap-southeast-3": _15, "ap-southeast-4": _17, "ca-west-1": [0, { "notebook": _3, "notebook-fips": _3 }], "eu-central-2": _15, "eu-north-1": _15, "eu-south-1": _15, "eu-south-2": _15, "eu-west-3": _15, "il-central-1": _15, "me-central-1": _15, "me-south-1": _15, "sa-east-1": _15, "us-gov-east-1": _19, "us-gov-west-1": _19, "us-west-1": [0, { "notebook": _3, "notebook-fips": _3, "studio": _3 }], "experiments": _6 }], "repost": [0, { "private": _6 }] }], "axa": _22, "azure": _22, "baby": _22, "baidu": _22, "banamex": _22, "band": _22, "bank": _22, "bar": _22, "barcelona": _22, "barclaycard": _22, "barclays": _22, "barefoot": _22, "bargains": _22, "baseball": _22, "basketball": [1, { "aus": _3, "nz": _3 }], "bauhaus": _22, "bayern": _22, "bbc": _22, "bbt": _22, "bbva": _22, "bcg": _22, "bcn": _22, "beats": _22, "beauty": _22, "beer": _22, "berlin": _22, "best": _22, "bestbuy": _22, "bet": _22, "bharti": _22, "bible": _22, "bid": _22, "bike": _22, "bing": _22, "bingo": _22, "bio": _22, "black": _22, "blackfriday": _22, "blockbuster": _22, "blog": _22, "bloomberg": _22, "blue": _22, "bms": _22, "bmw": _22, "bnpparibas": _22, "boats": _22, "boehringer": _22, "bofa": _22, "bom": _22, "bond": _22, "boo": _22, "book": _22, "booking": _22, "bosch": _22, "bostik": _22, "boston": _22, "bot": _22, "boutique": _22, "box": _22, "bradesco": _22, "bridgestone": _22, "broadway": _22, "broker": _22, "brother": _22, "brussels": _22, "build": [1, { "shiptoday": _3, "v0": _3, "windsurf": _3 }], "builders": [1, { "cloudsite": _3 }], "business": _222, "buy": _22, "buzz": _22, "bzh": _22, "cab": _22, "cafe": _22, "cal": _22, "call": _22, "calvinklein": _22, "cam": _22, "camera": _22, "camp": [1, { "emf": [0, { "at": _3 }] }], "canon": _22, "capetown": _22, "capital": _22, "capitalone": _22, "car": _22, "caravan": _22, "cards": _22, "care": _22, "career": _22, "careers": _22, "cars": _22, "casa": [1, { "nabu": [0, { "ui": _3 }] }], "case": [1, { "sav": _3 }], "cash": _22, "casino": _22, "catering": _22, "catholic": _22, "cba": _22, "cbn": _22, "cbre": _22, "center": _22, "ceo": _22, "cern": _22, "cfa": _22, "cfd": _22, "chanel": _22, "channel": _22, "charity": _22, "chase": _22, "chat": _22, "cheap": _22, "chintai": _22, "christmas": _22, "chrome": _22, "church": _22, "cipriani": _22, "circle": _22, "cisco": _22, "citadel": _22, "citi": _22, "citic": _22, "city": _22, "claims": _22, "cleaning": _22, "click": _22, "clinic": _22, "clinique": _22, "clothing": _22, "cloud": [1, { "antagonist": _3, "convex": _3, "elementor": _3, "emergent": _3, "encoway": [0, { "eu": _3 }], "statics": _6, "ravendb": _3, "axarnet": [0, { "es-1": _3 }], "diadem": _3, "jelastic": [0, { "vip": _3 }], "jele": _3, "jenv-aruba": [0, { "aruba": [0, { "eur": [0, { "it1": _3 }] }], "it1": _3 }], "keliweb": [2, { "cs": _3 }], "oxa": [2, { "tn": _3, "uk": _3 }], "primetel": [2, { "uk": _3 }], "reclaim": [0, { "ca": _3, "uk": _3, "us": _3 }], "trendhosting": [0, { "ch": _3, "de": _3 }], "jote": _3, "jotelulu": _3, "kuleuven": _3, "laravel": _3, "linkyard": _3, "magentosite": _6, "matlab": _3, "observablehq": _3, "perspecta": _3, "vapor": _3, "on-rancher": _6, "scw": [0, { "baremetal": [0, { "fr-par-1": _3, "fr-par-2": _3, "nl-ams-1": _3 }], "fr-par": [0, { "cockpit": _3, "ddl": _3, "dtwh": _3, "fnc": [2, { "functions": _3 }], "ifr": _3, "k8s": _24, "kafk": _3, "mgdb": _3, "rdb": _3, "s3": _3, "s3-website": _3, "scbl": _3, "whm": _3 }], "instances": [0, { "priv": _3, "pub": _3 }], "k8s": _3, "nl-ams": [0, { "cockpit": _3, "ddl": _3, "dtwh": _3, "ifr": _3, "k8s": _24, "kafk": _3, "mgdb": _3, "rdb": _3, "s3": _3, "s3-website": _3, "scbl": _3, "whm": _3 }], "pl-waw": [0, { "cockpit": _3, "ddl": _3, "dtwh": _3, "ifr": _3, "k8s": _24, "kafk": _3, "mgdb": _3, "rdb": _3, "s3": _3, "s3-website": _3, "scbl": _3 }], "scalebook": _3, "smartlabeling": _3 }], "servebolt": _3, "onstackit": [0, { "runs": _3 }], "trafficplex": _3, "unison-services": _3, "urown": _3, "voorloper": _3, "zap": _3 }], "club": [1, { "cloudns": _3, "jele": _3, "barsy": _3 }], "clubmed": _22, "coach": _22, "codes": [1, { "owo": _6 }], "coffee": _22, "college": _22, "cologne": _22, "commbank": _22, "community": [1, { "nog": _3, "ravendb": _3, "myforum": _3 }], "company": _22, "compare": _22, "computer": _22, "comsec": _22, "condos": _22, "construction": _22, "consulting": _22, "contact": _22, "contractors": _22, "cooking": _22, "cool": [1, { "elementor": _3, "de": _3 }], "corsica": _22, "country": _22, "coupon": _22, "coupons": _22, "courses": _22, "cpa": _22, "credit": _22, "creditcard": _22, "creditunion": _22, "cricket": _22, "crown": _22, "crs": _22, "cruise": _22, "cruises": _22, "cuisinella": _22, "cymru": _22, "cyou": _22, "dad": _22, "dance": _22, "data": _22, "date": _22, "dating": _22, "datsun": _22, "day": _22, "dclk": _22, "dds": _22, "deal": _22, "dealer": _22, "deals": _22, "degree": _22, "delivery": _22, "dell": _22, "deloitte": _22, "delta": _22, "democrat": _22, "dental": _22, "dentist": _22, "desi": _22, "design": [1, { "graphic": _3, "bss": _3 }], "dev": [1, { "myaddr": _3, "panel": _3, "bearblog": _3, "brave": _7, "lcl": _6, "lclstage": _6, "stg": _6, "stgstage": _6, "pages": _3, "r2": _3, "workers": _3, "deno": _3, "deno-staging": _3, "deta": _3, "lp": [2, { "api": _3, "objects": _3 }], "evervault": _8, "fly": _3, "githubpreview": _3, "gateway": _6, "grebedoc": _3, "botdash": _3, "inbrowser": _6, "is-a-good": _3, "iserv": _3, "leapcell": _3, "runcontainers": _3, "localcert": [0, { "user": _6 }], "loginline": _3, "barsy": _3, "mediatech": _3, "mocha-sandbox": _3, "modx": _3, "ngrok": _3, "ngrok-free": _3, "is-a-fullstack": _3, "is-cool": _3, "is-not-a": _3, "localplayer": _3, "xmit": _3, "platter-app": _3, "replit": [2, { "archer": _3, "bones": _3, "canary": _3, "global": _3, "hacker": _3, "id": _3, "janeway": _3, "kim": _3, "kira": _3, "kirk": _3, "odo": _3, "paris": _3, "picard": _3, "pike": _3, "prerelease": _3, "reed": _3, "riker": _3, "sisko": _3, "spock": _3, "staging": _3, "sulu": _3, "tarpit": _3, "teams": _3, "tucker": _3, "wesley": _3, "worf": _3 }], "crm": [0, { "aa": _6, "ab": _6, "ac": _6, "ad": _6, "ae": _6, "af": _6, "ci": _6, "d": _6, "pa": _6, "pb": _6, "pc": _6, "pd": _6, "pe": _6, "pf": _6, "w": _6, "wa": _6, "wb": _6, "wc": _6, "wd": _6, "we": _6, "wf": _6 }], "erp": _50, "vercel": _3, "webhare": _6, "hrsn": _3, "is-a": _3 }], "dhl": _22, "diamonds": _22, "diet": _22, "digital": [1, { "cloudapps": [2, { "london": _3 }] }], "direct": [1, { "libp2p": _3 }], "directory": _22, "discount": _22, "discover": _22, "dish": _22, "diy": _51, "dnp": _22, "docs": _22, "doctor": _22, "dog": _22, "domains": _22, "dot": _22, "download": _22, "drive": _22, "dtv": _22, "dubai": _22, "dupont": _22, "durban": _22, "dvag": _22, "dvr": _22, "earth": _22, "eat": _22, "eco": _22, "edeka": _22, "education": _222, "email": [1, { "crisp": [0, { "on": _3 }], "tawk": _53, "tawkto": _53 }], "emerck": _22, "energy": _22, "engineer": _22, "engineering": _22, "enterprises": _22, "epson": _22, "equipment": _22, "ericsson": _22, "erni": _22, "esq": _22, "estate": [1, { "compute": _6 }], "eurovision": _22, "eus": [1, { "party": _54 }], "events": [1, { "koobin": _3, "co": _3 }], "exchange": _22, "expert": _22, "exposed": _22, "express": _22, "extraspace": _22, "fage": _22, "fail": _22, "fairwinds": _22, "faith": _22, "family": _22, "fan": _22, "fans": _22, "farm": [1, { "storj": _3 }], "farmers": _22, "fashion": _22, "fast": _22, "fedex": _22, "feedback": _22, "ferrari": _22, "ferrero": _22, "fidelity": _22, "fido": _22, "film": _22, "final": _22, "finance": _22, "financial": _222, "fire": _22, "firestone": _22, "firmdale": _22, "fish": _22, "fishing": _22, "fit": _22, "fitness": _22, "flickr": _22, "flights": _22, "flir": _22, "florist": _22, "flowers": _22, "fly": _22, "foo": _22, "food": _22, "football": _22, "ford": _22, "forex": _22, "forsale": _22, "forum": _22, "foundation": _22, "fox": _22, "free": _22, "fresenius": _22, "frl": _22, "frogans": _22, "frontier": _22, "ftr": _22, "fujitsu": _22, "fun": _22, "fund": _22, "furniture": _22, "futbol": _22, "fyi": _22, "gal": _22, "gallery": _22, "gallo": _22, "gallup": _22, "game": _22, "games": [1, { "pley": _3, "sheezy": _3 }], "gap": _22, "garden": _22, "gay": [1, { "pages": _3 }], "gbiz": _22, "gdn": [1, { "cnpy": _3 }], "gea": _22, "gent": _22, "genting": _22, "george": _22, "ggee": _22, "gift": _22, "gifts": _22, "gives": _22, "giving": _22, "glass": _22, "gle": _22, "global": [1, { "appwrite": _3 }], "globo": _22, "gmail": _22, "gmbh": _22, "gmo": _22, "gmx": _22, "godaddy": _22, "gold": _22, "goldpoint": _22, "golf": _22, "goodyear": _22, "goog": [1, { "cloud": _3, "translate": _3, "usercontent": _6 }], "google": _22, "gop": _22, "got": _22, "grainger": _22, "graphics": _22, "gratis": _22, "green": _22, "gripe": _22, "grocery": _22, "group": _51, "gucci": _22, "guge": _22, "guide": _22, "guitars": _22, "guru": _22, "hair": _22, "hamburg": _22, "hangout": _22, "haus": _22, "hbo": _22, "hdfc": _22, "hdfcbank": _22, "health": [1, { "hra": _3 }], "healthcare": _22, "help": _22, "helsinki": _22, "here": _22, "hermes": _22, "hiphop": _22, "hisamitsu": _22, "hitachi": _22, "hiv": _22, "hkt": _22, "hockey": _22, "holdings": _22, "holiday": _22, "homedepot": _22, "homegoods": _22, "homes": _22, "homesense": _22, "honda": _22, "horse": _22, "hospital": _22, "host": [1, { "cloudaccess": _3, "freesite": _3, "easypanel": _3, "emergent": _3, "fastvps": _3, "myfast": _3, "gadget": _3, "tempurl": _3, "wpmudev": _3, "iserv": _3, "jele": _3, "mircloud": _3, "bolt": _3, "wp2": _3, "half": _3 }], "hosting": [1, { "opencraft": _3 }], "hot": _22, "hotel": _22, "hotels": _22, "hotmail": _22, "house": _22, "how": _22, "hsbc": _22, "hughes": _22, "hyatt": _22, "hyundai": _22, "ibm": _22, "icbc": _22, "ice": _22, "icu": _22, "ieee": _22, "ifm": _22, "ikano": _22, "imamat": _22, "imdb": _22, "immo": _22, "immobilien": _22, "inc": _22, "industries": _22, "infiniti": _22, "ing": _22, "ink": _22, "institute": _22, "insurance": _22, "insure": _22, "international": _22, "intuit": _22, "investments": _22, "ipiranga": _22, "irish": _22, "ismaili": _22, "ist": _22, "istanbul": _22, "itau": _22, "itv": _22, "jaguar": _22, "java": _22, "jcb": _22, "jeep": _22, "jetzt": _22, "jewelry": _22, "jio": _22, "jll": _22, "jmp": _22, "jnj": _22, "joburg": _22, "jot": _22, "joy": _22, "jpmorgan": _22, "jprs": _22, "juegos": _22, "juniper": _22, "kaufen": _22, "kddi": _22, "kerryhotels": _22, "kerryproperties": _22, "kfh": _22, "kia": _22, "kids": _22, "kim": _22, "kindle": _22, "kitchen": _22, "kiwi": _22, "koeln": _22, "komatsu": _22, "kosher": _22, "kpmg": _22, "kpn": _22, "krd": [1, { "co": _3, "edu": _3 }], "kred": _22, "kuokgroup": _22, "kyoto": _22, "lacaixa": _22, "lamborghini": _22, "lamer": _22, "land": _22, "landrover": _22, "lanxess": _22, "lasalle": _22, "lat": _22, "latino": _22, "latrobe": _22, "law": _22, "lawyer": _22, "lds": _22, "lease": _22, "leclerc": _22, "lefrak": _22, "legal": _22, "lego": _22, "lexus": _22, "lgbt": _22, "lidl": _22, "life": _22, "lifeinsurance": _22, "lifestyle": _22, "lighting": _22, "like": _22, "lilly": _22, "limited": _22, "limo": _22, "lincoln": _22, "link": [1, { "myfritz": _3, "cyon": _3, "joinmc": _3, "dweb": _6, "inbrowser": _6, "keenetic": _3, "nftstorage": _61, "mypep": _3, "storacha": _61, "w3s": _61 }], "live": [1, { "aem": _3, "hlx": _3, "ewp": _6 }], "living": _22, "llc": _22, "llp": _22, "loan": _22, "loans": _22, "locker": _22, "locus": _22, "lol": [1, { "omg": _3 }], "london": _22, "lotte": _22, "lotto": _22, "love": _22, "lpl": _22, "lplfinancial": _22, "ltd": _22, "ltda": _22, "lundbeck": _22, "luxe": _22, "luxury": _22, "madrid": _22, "maif": _22, "maison": _22, "makeup": _22, "man": _22, "management": _22, "mango": _22, "map": _22, "market": _22, "marketing": _22, "markets": _22, "marriott": _22, "marshalls": _22, "mattel": _22, "mba": _22, "mckinsey": _22, "med": _22, "media": _62, "meet": _22, "melbourne": _22, "meme": _22, "memorial": _22, "men": _22, "menu": [1, { "barsy": _3, "barsyonline": _3 }], "merck": _22, "merckmsd": _22, "miami": _22, "microsoft": _22, "mini": _22, "mint": _22, "mit": _22, "mitsubishi": _22, "mlb": _22, "mls": _22, "mma": _22, "mobile": _22, "moda": _22, "moe": _22, "moi": _22, "mom": _22, "monash": _22, "money": _22, "monster": _22, "mormon": _22, "mortgage": _22, "moscow": _22, "moto": _22, "motorcycles": _22, "mov": _22, "movie": _22, "msd": _22, "mtn": _22, "mtr": _22, "music": _22, "nab": _22, "nagoya": _22, "navy": _22, "nba": _22, "nec": _22, "netbank": _22, "netflix": _22, "network": [1, { "aem": _3, "alces": _6, "appwrite": _3, "co": _3, "arvo": _3, "azimuth": _3, "tlon": _3 }], "neustar": _22, "new": _22, "news": [1, { "noticeable": _3 }], "next": _22, "nextdirect": _22, "nexus": _22, "nfl": _22, "ngo": _22, "nhk": _22, "nico": _22, "nike": _22, "nikon": _22, "ninja": _22, "nissan": _22, "nissay": _22, "nokia": _22, "norton": _22, "now": _22, "nowruz": _22, "nowtv": _22, "nra": _22, "nrw": _22, "ntt": _22, "nyc": _22, "obi": _22, "observer": _22, "office": _22, "okinawa": _22, "olayan": _22, "olayangroup": _22, "ollo": _22, "omega": _22, "one": [1, { "kin": _6, "service": _3, "website": _3 }], "ong": _22, "onl": _22, "online": [1, { "eero": _3, "eero-stage": _3, "websitebuilder": _3, "leapcell": _3, "barsy": _3 }], "ooo": _22, "open": _22, "oracle": _22, "orange": [1, { "tech": _3 }], "organic": _22, "origins": _22, "osaka": _22, "otsuka": _22, "ott": _22, "ovh": [1, { "nerdpol": _3 }], "page": [1, { "aem": _3, "hlx": _3, "codeberg": _3, "deuxfleurs": _3, "heyflow": _3, "prvcy": _3, "rocky": _3, "statichost": _3, "pdns": _3, "plesk": _3 }], "panasonic": _22, "paris": _22, "pars": _22, "partners": _22, "parts": _22, "party": _22, "pay": _22, "pccw": _22, "pet": _22, "pfizer": _22, "pharmacy": _22, "phd": _22, "philips": _22, "phone": _22, "photo": _22, "photography": _22, "photos": _62, "physio": _22, "pics": _22, "pictet": _22, "pictures": [1, { "1337": _3 }], "pid": _22, "pin": _22, "ping": _22, "pink": _22, "pioneer": _22, "pizza": [1, { "ngrok": _3 }], "place": _222, "play": _22, "playstation": _22, "plumbing": _22, "plus": [1, { "playit": [2, { "at": _6, "with": _3 }] }], "pnc": _22, "pohl": _22, "poker": _22, "politie": _22, "porn": _22, "praxi": _22, "press": _22, "prime": _22, "prod": _22, "productions": _22, "prof": _22, "progressive": _22, "promo": _22, "properties": _22, "property": _22, "protection": _22, "pru": _22, "prudential": _22, "pub": [1, { "id": _6, "kin": _6, "barsy": _3 }], "pwc": _22, "qpon": _22, "quebec": _22, "quest": _22, "racing": _22, "radio": _22, "read": _22, "realestate": _22, "realtor": _22, "realty": _22, "recipes": _22, "red": _22, "redumbrella": _22, "rehab": _22, "reise": _22, "reisen": _22, "reit": _22, "reliance": _22, "ren": _22, "rent": _22, "rentals": _22, "repair": _22, "report": _22, "republican": _22, "rest": _22, "restaurant": _22, "review": _22, "reviews": [1, { "aem": _3 }], "rexroth": _22, "rich": _22, "richardli": _22, "ricoh": _22, "ril": _22, "rio": _22, "rip": [1, { "clan": _3 }], "rocks": [1, { "myddns": _3, "stackit": _3, "lima-city": _3, "webspace": _3 }], "rodeo": _22, "rogers": _22, "room": _22, "rsvp": _22, "rugby": _22, "ruhr": _22, "run": [1, { "appwrite": _6, "canva": _3, "development": _3, "ravendb": _3, "liara": [2, { "iran": _3 }], "lovable": _3, "needle": _3, "build": _6, "code": _6, "database": _6, "migration": _6, "onporter": _3, "repl": _3, "stackit": _3, "val": _50, "vercel": _3, "wix": _3 }], "rwe": _22, "ryukyu": _22, "saarland": _22, "safe": _22, "safety": _22, "sakura": _22, "sale": _22, "salon": _22, "samsclub": _22, "samsung": _22, "sandvik": _22, "sandvikcoromant": _22, "sanofi": _22, "sap": _22, "sarl": _22, "sas": _22, "save": _22, "saxo": _22, "sbi": _22, "sbs": _22, "scb": _22, "schaeffler": _22, "schmidt": _22, "scholarships": _22, "school": _22, "schule": _22, "schwarz": _22, "science": _22, "scot": [1, { "co": _3, "me": _3, "org": _3, "gov": [2, { "service": _3 }] }], "search": _22, "seat": _22, "secure": _22, "security": _22, "seek": _22, "select": _22, "sener": _22, "services": [1, { "loginline": _3 }], "seven": _22, "sew": _22, "sex": _22, "sexy": _22, "sfr": _22, "shangrila": _22, "sharp": _22, "shell": _22, "shia": _22, "shiksha": _22, "shoes": _22, "shop": [1, { "base": _3, "hoplix": _3, "barsy": _3, "barsyonline": _3, "shopware": _3 }], "shopping": _22, "shouji": _22, "show": _22, "silk": _22, "sina": _22, "singles": _22, "site": [1, { "square": _3, "canva": _25, "cloudera": _6, "convex": _3, "cyon": _3, "caffeine": _3, "fastvps": _3, "figma": _3, "figma-gov": _3, "preview": _3, "heyflow": _3, "jele": _3, "jouwweb": _3, "loginline": _3, "barsy": _3, "co": _3, "notion": _3, "omniwe": _3, "opensocial": _3, "madethis": _3, "support": _3, "platformsh": _6, "tst": _6, "byen": _3, "sol": _3, "srht": _3, "novecore": _3, "cpanel": _3, "wpsquared": _3, "sourcecraft": _3 }], "ski": _22, "skin": _22, "sky": _22, "skype": _22, "sling": _22, "smart": _22, "smile": _22, "sncf": _22, "soccer": _22, "social": _22, "softbank": _22, "software": _22, "sohu": _22, "solar": _22, "solutions": _22, "song": _22, "sony": _22, "soy": _22, "spa": _22, "space": [1, { "myfast": _3, "heiyu": _3, "hf": [2, { "static": _3 }], "app-ionos": _3, "project": _3, "uber": _3, "xs4all": _3 }], "sport": _22, "spot": _22, "srl": _22, "stada": _22, "staples": _22, "star": _22, "statebank": _22, "statefarm": _22, "stc": _22, "stcgroup": _22, "stockholm": _22, "storage": _22, "store": [1, { "barsy": _3, "sellfy": _3, "shopware": _3, "storebase": _3 }], "stream": _22, "studio": _22, "study": _22, "style": _22, "sucks": _22, "supplies": _22, "supply": _22, "support": [1, { "barsy": _3 }], "surf": _22, "surgery": _22, "suzuki": _22, "swatch": _22, "swiss": _22, "sydney": _22, "systems": [1, { "knightpoint": _3, "miren": _3 }], "tab": _22, "taipei": _22, "talk": _22, "taobao": _22, "target": _22, "tatamotors": _22, "tatar": _22, "tattoo": _22, "tax": _22, "taxi": _22, "tci": _22, "tdk": _22, "team": [1, { "discourse": _3, "jelastic": _3 }], "tech": [1, { "cleverapps": _3 }], "technology": _222, "temasek": _22, "tennis": _22, "teva": _22, "thd": _22, "theater": _22, "theatre": _22, "tiaa": _22, "tickets": _22, "tienda": _22, "tips": _22, "tires": _22, "tirol": _22, "tjmaxx": _22, "tjx": _22, "tkmaxx": _22, "tmall": _22, "today": [1, { "prequalifyme": _3 }], "tokyo": _22, "tools": [1, { "addr": _49, "myaddr": _3 }], "top": [1, { "ntdll": _3, "wadl": _6 }], "toray": _22, "toshiba": _22, "total": _22, "tours": _22, "town": _22, "toyota": _22, "toys": _22, "trade": _22, "trading": _22, "training": _22, "travel": _22, "travelers": _22, "travelersinsurance": _22, "trust": _22, "trv": _22, "tube": _22, "tui": _22, "tunes": _22, "tushu": _22, "tvs": _22, "ubank": _22, "ubs": _22, "unicom": _22, "university": _22, "uno": _22, "uol": _22, "ups": _22, "vacations": _22, "vana": _22, "vanguard": _22, "vegas": _22, "ventures": _22, "verisign": _22, "versicherung": _22, "vet": _22, "viajes": _22, "video": _22, "vig": _22, "viking": _22, "villas": _22, "vin": _22, "vip": [1, { "hidns": _3 }], "virgin": _22, "visa": _22, "vision": _22, "viva": _22, "vivo": _22, "vlaanderen": _22, "vodka": _22, "volvo": _22, "vote": _22, "voting": _22, "voto": _22, "voyage": _22, "wales": _22, "walmart": _22, "walter": _22, "wang": _22, "wanggou": _22, "watch": _22, "watches": _22, "weather": _22, "weatherchannel": _22, "webcam": _22, "weber": _22, "website": _62, "wed": _22, "wedding": _22, "weibo": _22, "weir": _22, "whoswho": _22, "wien": _22, "wiki": _62, "williamhill": _22, "win": _22, "windows": _22, "wine": _22, "winners": _22, "wme": _22, "wolterskluwer": _22, "woodside": _22, "work": [1, { "imagine-proxy": _3 }], "works": _22, "world": _22, "wow": _22, "wtc": _22, "wtf": _22, "xbox": _22, "xerox": _22, "xihuan": _22, "xin": _22, "xn--11b4c3d": _22, "\u0915\u0949\u092E": _22, "xn--1ck2e1b": _22, "\u30BB\u30FC\u30EB": _22, "xn--1qqw23a": _22, "\u4F5B\u5C71": _22, "xn--30rr7y": _22, "\u6148\u5584": _22, "xn--3bst00m": _22, "\u96C6\u56E2": _22, "xn--3ds443g": _22, "\u5728\u7EBF": _22, "xn--3pxu8k": _22, "\u70B9\u770B": _22, "xn--42c2d9a": _22, "\u0E04\u0E2D\u0E21": _22, "xn--45q11c": _22, "\u516B\u5366": _22, "xn--4gbrim": _22, "\u0645\u0648\u0642\u0639": _22, "xn--55qw42g": _22, "\u516C\u76CA": _22, "xn--55qx5d": _22, "\u516C\u53F8": _22, "xn--5su34j936bgsg": _22, "\u9999\u683C\u91CC\u62C9": _22, "xn--5tzm5g": _22, "\u7F51\u7AD9": _22, "xn--6frz82g": _22, "\u79FB\u52A8": _22, "xn--6qq986b3xl": _22, "\u6211\u7231\u4F60": _22, "xn--80adxhks": _22, "\u043C\u043E\u0441\u043A\u0432\u0430": _22, "xn--80aqecdr1a": _22, "\u043A\u0430\u0442\u043E\u043B\u0438\u043A": _22, "xn--80asehdb": _22, "\u043E\u043D\u043B\u0430\u0439\u043D": _22, "xn--80aswg": _22, "\u0441\u0430\u0439\u0442": _22, "xn--8y0a063a": _22, "\u8054\u901A": _22, "xn--9dbq2a": _22, "\u05E7\u05D5\u05DD": _22, "xn--9et52u": _22, "\u65F6\u5C1A": _22, "xn--9krt00a": _22, "\u5FAE\u535A": _22, "xn--b4w605ferd": _22, "\u6DE1\u9A6C\u9521": _22, "xn--bck1b9a5dre4c": _22, "\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3": _22, "xn--c1avg": _22, "\u043E\u0440\u0433": _22, "xn--c2br7g": _22, "\u0928\u0947\u091F": _22, "xn--cck2b3b": _22, "\u30B9\u30C8\u30A2": _22, "xn--cckwcxetd": _22, "\u30A2\u30DE\u30BE\u30F3": _22, "xn--cg4bki": _22, "\uC0BC\uC131": _22, "xn--czr694b": _22, "\u5546\u6807": _22, "xn--czrs0t": _22, "\u5546\u5E97": _22, "xn--czru2d": _22, "\u5546\u57CE": _22, "xn--d1acj3b": _22, "\u0434\u0435\u0442\u0438": _22, "xn--eckvdtc9d": _22, "\u30DD\u30A4\u30F3\u30C8": _22, "xn--efvy88h": _22, "\u65B0\u95FB": _22, "xn--fct429k": _22, "\u5BB6\u96FB": _22, "xn--fhbei": _22, "\u0643\u0648\u0645": _22, "xn--fiq228c5hs": _22, "\u4E2D\u6587\u7F51": _22, "xn--fiq64b": _22, "\u4E2D\u4FE1": _22, "xn--fjq720a": _22, "\u5A31\u4E50": _22, "xn--flw351e": _22, "\u8C37\u6B4C": _22, "xn--fzys8d69uvgm": _22, "\u96FB\u8A0A\u76C8\u79D1": _22, "xn--g2xx48c": _22, "\u8D2D\u7269": _22, "xn--gckr3f0f": _22, "\u30AF\u30E9\u30A6\u30C9": _22, "xn--gk3at1e": _22, "\u901A\u8CA9": _22, "xn--hxt814e": _22, "\u7F51\u5E97": _22, "xn--i1b6b1a6a2e": _22, "\u0938\u0902\u0917\u0920\u0928": _22, "xn--imr513n": _22, "\u9910\u5385": _22, "xn--io0a7i": _22, "\u7F51\u7EDC": _22, "xn--j1aef": _22, "\u043A\u043E\u043C": _22, "xn--jlq480n2rg": _22, "\u4E9A\u9A6C\u900A": _22, "xn--jvr189m": _22, "\u98DF\u54C1": _22, "xn--kcrx77d1x4a": _22, "\u98DE\u5229\u6D66": _22, "xn--kput3i": _22, "\u624B\u673A": _22, "xn--mgba3a3ejt": _22, "\u0627\u0631\u0627\u0645\u0643\u0648": _22, "xn--mgba7c0bbn0a": _22, "\u0627\u0644\u0639\u0644\u064A\u0627\u0646": _22, "xn--mgbab2bd": _22, "\u0628\u0627\u0632\u0627\u0631": _22, "xn--mgbca7dzdo": _22, "\u0627\u0628\u0648\u0638\u0628\u064A": _22, "xn--mgbi4ecexp": _22, "\u0643\u0627\u062B\u0648\u0644\u064A\u0643": _22, "xn--mgbt3dhd": _22, "\u0647\u0645\u0631\u0627\u0647": _22, "xn--mk1bu44c": _22, "\uB2F7\uCEF4": _22, "xn--mxtq1m": _22, "\u653F\u5E9C": _22, "xn--ngbc5azd": _22, "\u0634\u0628\u0643\u0629": _22, "xn--ngbe9e0a": _22, "\u0628\u064A\u062A\u0643": _22, "xn--ngbrx": _22, "\u0639\u0631\u0628": _22, "xn--nqv7f": _22, "\u673A\u6784": _22, "xn--nqv7fs00ema": _22, "\u7EC4\u7EC7\u673A\u6784": _22, "xn--nyqy26a": _22, "\u5065\u5EB7": _22, "xn--otu796d": _22, "\u62DB\u8058": _22, "xn--p1acf": [1, { "xn--90amc": _3, "xn--j1aef": _3, "xn--j1ael8b": _3, "xn--h1ahn": _3, "xn--j1adp": _3, "xn--c1avg": _3, "xn--80aaa0cvac": _3, "xn--h1aliz": _3, "xn--90a1af": _3, "xn--41a": _3 }], "\u0440\u0443\u0441": [1, { "\u0431\u0438\u0437": _3, "\u043A\u043E\u043C": _3, "\u043A\u0440\u044B\u043C": _3, "\u043C\u0438\u0440": _3, "\u043C\u0441\u043A": _3, "\u043E\u0440\u0433": _3, "\u0441\u0430\u043C\u0430\u0440\u0430": _3, "\u0441\u043E\u0447\u0438": _3, "\u0441\u043F\u0431": _3, "\u044F": _3 }], "xn--pssy2u": _22, "\u5927\u62FF": _22, "xn--q9jyb4c": _22, "\u307F\u3093\u306A": _22, "xn--qcka1pmc": _22, "\u30B0\u30FC\u30B0\u30EB": _22, "xn--rhqv96g": _22, "\u4E16\u754C": _22, "xn--rovu88b": _22, "\u66F8\u7C4D": _22, "xn--ses554g": _22, "\u7F51\u5740": _22, "xn--t60b56a": _22, "\uB2F7\uB137": _22, "xn--tckwe": _22, "\u30B3\u30E0": _22, "xn--tiq49xqyj": _22, "\u5929\u4E3B\u6559": _22, "xn--unup4y": _22, "\u6E38\u620F": _22, "xn--vermgensberater-ctb": _22, "verm\xF6gensberater": _22, "xn--vermgensberatung-pwb": _22, "verm\xF6gensberatung": _22, "xn--vhquv": _22, "\u4F01\u4E1A": _22, "xn--vuq861b": _22, "\u4FE1\u606F": _22, "xn--w4r85el8fhu5dnra": _22, "\u5609\u91CC\u5927\u9152\u5E97": _22, "xn--w4rs40l": _22, "\u5609\u91CC": _22, "xn--xhq521b": _22, "\u5E7F\u4E1C": _22, "xn--zfr164b": _22, "\u653F\u52A1": _22, "xyz": [1, { "caffeine": _3, "botdash": _3, "telebit": _6 }], "yachts": _22, "yahoo": _22, "yamaxun": _22, "yandex": _22, "yodobashi": _22, "yoga": _22, "yokohama": _22, "you": _22, "youtube": _22, "yun": _22, "zappos": _22, "zara": _22, "zero": _22, "zip": _22, "zone": [1, { "triton": _6, "stackit": _3, "lima": _3 }], "zuerich": _22 }];
      return rules2;
    })();
    function lookupInTrie(parts, trie, index, allowedMask) {
      let result = null;
      let node = trie;
      while (node !== void 0) {
        if ((node[0] & allowedMask) !== 0) {
          result = {
            index: index + 1,
            isIcann: (node[0] & 1) !== 0,
            isPrivate: (node[0] & 2) !== 0
          };
        }
        if (index === -1) {
          break;
        }
        const succ = node[1];
        node = Object.prototype.hasOwnProperty.call(succ, parts[index]) ? succ[parts[index]] : succ["*"];
        index -= 1;
      }
      return result;
    }
    function suffixLookup(hostname, options, out) {
      var _a22;
      if (fastPathLookup(hostname, options, out)) {
        return;
      }
      const hostnameParts = hostname.split(".");
      const allowedMask = (options.allowPrivateDomains ? 2 : 0) | (options.allowIcannDomains ? 1 : 0);
      const exceptionMatch = lookupInTrie(hostnameParts, exceptions, hostnameParts.length - 1, allowedMask);
      if (exceptionMatch !== null) {
        out.isIcann = exceptionMatch.isIcann;
        out.isPrivate = exceptionMatch.isPrivate;
        out.publicSuffix = hostnameParts.slice(exceptionMatch.index + 1).join(".");
        return;
      }
      const rulesMatch = lookupInTrie(hostnameParts, rules, hostnameParts.length - 1, allowedMask);
      if (rulesMatch !== null) {
        out.isIcann = rulesMatch.isIcann;
        out.isPrivate = rulesMatch.isPrivate;
        out.publicSuffix = hostnameParts.slice(rulesMatch.index).join(".");
        return;
      }
      out.isIcann = false;
      out.isPrivate = false;
      out.publicSuffix = (_a22 = hostnameParts[hostnameParts.length - 1]) !== null && _a22 !== void 0 ? _a22 : null;
    }
    var RESULT = getEmptyResult();
    function parse(url2, options = {}) {
      return parseImpl(url2, 5, suffixLookup, options, getEmptyResult());
    }
    function getHostname(url2, options = {}) {
      resetResult(RESULT);
      return parseImpl(url2, 0, suffixLookup, options, RESULT).hostname;
    }
    function getPublicSuffix(url2, options = {}) {
      resetResult(RESULT);
      return parseImpl(url2, 2, suffixLookup, options, RESULT).publicSuffix;
    }
    function getDomain(url2, options = {}) {
      resetResult(RESULT);
      return parseImpl(url2, 3, suffixLookup, options, RESULT).domain;
    }
    function getSubdomain(url2, options = {}) {
      resetResult(RESULT);
      return parseImpl(url2, 4, suffixLookup, options, RESULT).subdomain;
    }
    function getDomainWithoutSuffix(url2, options = {}) {
      resetResult(RESULT);
      return parseImpl(url2, 5, suffixLookup, options, RESULT).domainWithoutSuffix;
    }
    exports2.getDomain = getDomain;
    exports2.getDomainWithoutSuffix = getDomainWithoutSuffix;
    exports2.getHostname = getHostname;
    exports2.getPublicSuffix = getPublicSuffix;
    exports2.getSubdomain = getSubdomain;
    exports2.parse = parse;
  }
});
var require_cjs11 = __commonJS2({
  "../../node_modules/.pnpm/@apify+pseudo_url@2.0.73/node_modules/@apify/pseudo_url/cjs/index.cjs"(exports2, module2) {
    "use strict";
    var __create22 = Object.create;
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __getProtoOf22 = Object.getPrototypeOf;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __defNormalProp22 = (obj, key, value) => key in obj ? __defProp32(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
    var __name2 = (target, value) => __defProp32(target, "name", { value, configurable: true });
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toESM22 = (mod3, isNodeMode, target) => (target = mod3 != null ? __create22(__getProtoOf22(mod3)) : {}, __copyProps22(
      // If the importer is in node compatibility mode or this is not an ESM
      // file that has been converted to a CommonJS file using a Babel-
      // compatible transform (i.e. "__esModule" has not been set), then set
      // "default" to the CommonJS "module.exports" for node compatibility.
      isNodeMode || !mod3 || !mod3.__esModule ? __defProp32(target, "default", { value: mod3, enumerable: true }) : target,
      mod3
    ));
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var __publicField2 = (obj, key, value) => __defNormalProp22(obj, typeof key !== "symbol" ? key + "" : key, value);
    var index_exports2 = {};
    __export22(index_exports2, {
      PseudoUrl: () => PseudoUrl2,
      purlToRegExp: () => purlToRegExp
    });
    module2.exports = __toCommonJS22(index_exports2);
    var import_node_util5 = __require("util");
    var import_log = __toESM22(require_cjs3());
    var _PseudoUrl = class _PseudoUrl {
      /**
       * @param purl
       *   A pseudo-URL string or a regular expression object.
       *   Using a `RegExp` instance enables more granular control,
       *   such as making the matching case-sensitive.
       */
      constructor(purl) {
        __publicField2(this, "regex");
        if (purl instanceof RegExp) {
          this.regex = purl;
        } else if (typeof purl === "string") {
          this.regex = purlToRegExp(purl);
          import_log.default.debug("PURL parsed", { purl, regex: this.regex });
        } else {
          const type = Array.isArray(purl) ? "array" : typeof purl;
          throw new Error(`Invalid PseudoUrl format, 'string' or 'RegExp' required, got \`${(0, import_node_util5.inspect)(purl)}\` of type '${type}' instead`);
        }
      }
      /**
       * Determines whether a URL matches this pseudo-URL pattern.
       */
      matches(url2) {
        return typeof url2 === "string" && url2.match(this.regex) !== null;
      }
    };
    __name2(_PseudoUrl, "PseudoUrl");
    var PseudoUrl2 = _PseudoUrl;
    function purlToRegExp(purl) {
      const trimmedPurl = purl.trim();
      if (trimmedPurl.length === 0) throw new Error(`Cannot parse PURL '${trimmedPurl}': it must be an non-empty string`);
      let regex = "^";
      try {
        let openBrackets = 0;
        for (let i22 = 0; i22 < trimmedPurl.length; i22++) {
          const ch = trimmedPurl.charAt(i22);
          if (ch === "[" && ++openBrackets === 1) {
            regex += "(";
          } else if (ch === "]" && openBrackets > 0 && --openBrackets === 0) {
            regex += ")";
          } else if (openBrackets > 0) {
            regex += ch;
          } else {
            const code = ch.charCodeAt(0);
            if (code >= 48 && code <= 57 || code >= 65 && code <= 90 || code >= 97 && code <= 122) {
              regex += ch;
            } else {
              const hex = code < 16 ? `0${code.toString(16)}` : code.toString(16);
              regex += `\\x${hex}`;
            }
          }
        }
        regex += "$";
      } catch (err2) {
        throw new Error(`Cannot parse PURL '${purl}': ${err2}`);
      }
      return new RegExp(regex, "i");
    }
    __name2(purlToRegExp, "purlToRegExp");
  }
});
var require_shared = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/shared.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.tryAbsoluteURL = void 0;
    exports2.updateEnqueueLinksPatternCache = updateEnqueueLinksPatternCache2;
    exports2.constructRegExpObjectsFromPseudoUrls = constructRegExpObjectsFromPseudoUrls2;
    exports2.constructGlobObjectsFromGlobs = constructGlobObjectsFromGlobs2;
    exports2.validateGlobPattern = validateGlobPattern2;
    exports2.constructRegExpObjectsFromRegExps = constructRegExpObjectsFromRegExps2;
    exports2.createRequests = createRequests2;
    exports2.filterRequestsByPatterns = filterRequestsByPatterns2;
    exports2.createRequestOptions = createRequestOptions2;
    var node_url_1 = __require("node:url");
    var minimatch_1 = require_commonjs2();
    var pseudo_url_1 = require_cjs11();
    var request_1 = require_request();
    var utils_1 = require_utils9();
    Object.defineProperty(exports2, "tryAbsoluteURL", { enumerable: true, get: function() {
      return utils_1.tryAbsoluteURL;
    } });
    var MAX_ENQUEUE_LINKS_CACHE_SIZE = 1e3;
    var enqueueLinksPatternCache = /* @__PURE__ */ new Map();
    function updateEnqueueLinksPatternCache2(item, pattern) {
      enqueueLinksPatternCache.set(item, pattern);
      if (enqueueLinksPatternCache.size > MAX_ENQUEUE_LINKS_CACHE_SIZE) {
        const key = enqueueLinksPatternCache.keys().next().value;
        enqueueLinksPatternCache.delete(key);
      }
    }
    function constructRegExpObjectsFromPseudoUrls2(pseudoUrls) {
      return pseudoUrls.map((item) => {
        let regexpObject = enqueueLinksPatternCache.get(item);
        if (regexpObject)
          return regexpObject;
        if (typeof item === "string") {
          regexpObject = { regexp: (0, pseudo_url_1.purlToRegExp)(item) };
        } else {
          const { purl, ...requestOptions } = item;
          regexpObject = { regexp: (0, pseudo_url_1.purlToRegExp)(purl), ...requestOptions };
        }
        updateEnqueueLinksPatternCache2(item, regexpObject);
        return regexpObject;
      });
    }
    function constructGlobObjectsFromGlobs2(globs) {
      return globs.filter((glob) => {
        if (!glob) {
          return false;
        }
        if (typeof glob === "string") {
          return glob.trim().length > 0;
        }
        if (glob.glob) {
          return glob.glob.trim().length > 0;
        }
        return false;
      }).map((item) => {
        let globObject = enqueueLinksPatternCache.get(item);
        if (globObject)
          return globObject;
        if (typeof item === "string") {
          globObject = { glob: validateGlobPattern2(item) };
        } else {
          const { glob, ...requestOptions } = item;
          globObject = { glob: validateGlobPattern2(glob), ...requestOptions };
        }
        updateEnqueueLinksPatternCache2(item, globObject);
        return globObject;
      });
    }
    function validateGlobPattern2(glob) {
      const globTrimmed = glob.trim();
      if (globTrimmed.length === 0)
        throw new Error(`Cannot parse Glob pattern '${globTrimmed}': it must be an non-empty string`);
      return globTrimmed;
    }
    function constructRegExpObjectsFromRegExps2(regexps) {
      return regexps.map((item) => {
        let regexpObject = enqueueLinksPatternCache.get(item);
        if (regexpObject)
          return regexpObject;
        if (item instanceof RegExp) {
          regexpObject = { regexp: item };
        } else {
          regexpObject = item;
        }
        updateEnqueueLinksPatternCache2(item, regexpObject);
        return regexpObject;
      });
    }
    function createRequests2(requestOptions, urlPatternObjects, excludePatternObjects = [], strategy, onSkippedUrl) {
      const excludePatternObjectMatchers = excludePatternObjects.map(createPatternObjectMatcher);
      const urlPatternObjectMatchers = urlPatternObjects?.map(createPatternObjectMatcher);
      return requestOptions.map((opts) => ({ url: typeof opts === "string" ? opts : opts.url, opts })).filter(({ url: url2 }) => {
        const matchesExcludePatterns = excludePatternObjectMatchers.some(({ match }) => match(url2));
        if (matchesExcludePatterns) {
          onSkippedUrl?.(url2);
        }
        return !matchesExcludePatterns;
      }).map(({ url: url2, opts }) => {
        if (!urlPatternObjectMatchers || !urlPatternObjectMatchers.length) {
          return new request_1.Request(typeof opts === "string" ? { url: opts, enqueueStrategy: strategy } : { ...opts });
        }
        for (const urlPatternObject of urlPatternObjectMatchers) {
          const { match, glob, regexp, ...requestRegExpOptions } = urlPatternObject;
          if (match(url2)) {
            const request = typeof opts === "string" ? { url: opts, ...requestRegExpOptions, enqueueStrategy: strategy } : { ...opts, ...requestRegExpOptions, enqueueStrategy: strategy };
            return new request_1.Request(request);
          }
        }
        onSkippedUrl?.(url2);
        return null;
      }).filter((request) => request);
    }
    function filterRequestsByPatterns2(requests, patterns, onSkippedUrl) {
      if (!patterns?.length) {
        return requests;
      }
      const filtered = [];
      const patternMatchers = patterns?.map(createPatternObjectMatcher);
      for (const request of requests) {
        const matchingPattern = patternMatchers.find(({ match }) => match(request.url));
        if (matchingPattern !== void 0) {
          filtered.push(request);
        } else {
          onSkippedUrl?.(request.url);
        }
      }
      return filtered;
    }
    function createRequestOptions2(sources, options = {}) {
      return sources.map((src) => typeof src === "string" ? { url: src, enqueueStrategy: options.strategy } : { ...src, enqueueStrategy: options.strategy }).filter(({ url: url2 }) => {
        try {
          return new node_url_1.URL(url2, options.baseUrl).href;
        } catch (err2) {
          return false;
        }
      }).map((requestOptions) => {
        requestOptions.url = new node_url_1.URL(requestOptions.url, options.baseUrl).href;
        requestOptions.userData ?? (requestOptions.userData = options.userData ?? {});
        if (typeof options.label === "string") {
          requestOptions.userData = {
            ...requestOptions.userData,
            label: options.label
          };
        }
        if (options.skipNavigation) {
          requestOptions.skipNavigation = true;
        }
        return requestOptions;
      });
    }
    function createPatternObjectMatcher(urlPatternObject) {
      const { regexp, glob } = urlPatternObject;
      let match;
      if (regexp) {
        match = (url2) => regexp.test(url2);
      } else if (glob) {
        const m2 = new minimatch_1.Minimatch(glob, { nocase: true });
        match = (url2) => m2.match(url2);
      } else {
        match = () => false;
      }
      return { ...urlPatternObject, match };
    }
  }
});
var require_enqueue_links = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/enqueue_links.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.EnqueueStrategy = void 0;
    exports2.enqueueLinks = enqueueLinks2;
    exports2.resolveBaseUrlForEnqueueLinksFiltering = resolveBaseUrlForEnqueueLinksFiltering2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var tldts_1 = require_cjs10();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var shared_1 = require_shared();
    var EnqueueStrategy2;
    (function(EnqueueStrategy3) {
      EnqueueStrategy3["All"] = "all";
      EnqueueStrategy3["SameHostname"] = "same-hostname";
      EnqueueStrategy3["SameDomain"] = "same-domain";
      EnqueueStrategy3["SameOrigin"] = "same-origin";
    })(EnqueueStrategy2 || (exports2.EnqueueStrategy = EnqueueStrategy2 = {}));
    async function enqueueLinks2(options) {
      if (!options || Object.keys(options).length === 0) {
        throw new RangeError([
          "enqueueLinks() was called without the required options. You can only do that when you use the `crawlingContext.enqueueLinks()` method in request handlers.",
          "Check out our guide on how to use enqueueLinks() here: https://crawlee.dev/js/docs/examples/crawl-relative-links"
        ].join("\n"));
      }
      (0, ow_1.default)(options, ow_1.default.object.exactShape({
        urls: ow_1.default.array.ofType(ow_1.default.string),
        requestQueue: ow_1.default.object.hasKeys("addRequestsBatched"),
        robotsTxtFile: ow_1.default.optional.object.hasKeys("isAllowed"),
        onSkippedRequest: ow_1.default.optional.function,
        forefront: ow_1.default.optional.boolean,
        skipNavigation: ow_1.default.optional.boolean,
        limit: ow_1.default.optional.number,
        selector: ow_1.default.optional.string,
        baseUrl: ow_1.default.optional.string,
        userData: ow_1.default.optional.object,
        label: ow_1.default.optional.string,
        pseudoUrls: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("purl"))),
        globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("glob"))),
        exclude: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.regExp, ow_1.default.object.hasKeys("glob"), ow_1.default.object.hasKeys("regexp"))),
        regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys("regexp"))),
        transformRequestFunction: ow_1.default.optional.function,
        strategy: ow_1.default.optional.string.oneOf(Object.values(EnqueueStrategy2)),
        waitForAllRequestsToBeAdded: ow_1.default.optional.boolean
      }));
      const { requestQueue, limit, urls, pseudoUrls, exclude, globs, regexps, transformRequestFunction, forefront, waitForAllRequestsToBeAdded, robotsTxtFile, onSkippedRequest } = options;
      const urlExcludePatternObjects = [];
      const urlPatternObjects = [];
      if (exclude?.length) {
        for (const excl of exclude) {
          if (typeof excl === "string" || "glob" in excl) {
            urlExcludePatternObjects.push(...(0, shared_1.constructGlobObjectsFromGlobs)([excl]));
          } else if (excl instanceof RegExp || "regexp" in excl) {
            urlExcludePatternObjects.push(...(0, shared_1.constructRegExpObjectsFromRegExps)([excl]));
          }
        }
      }
      if (pseudoUrls?.length) {
        log_1.default.deprecated("`pseudoUrls` option is deprecated, use `globs` or `regexps` instead");
        urlPatternObjects.push(...(0, shared_1.constructRegExpObjectsFromPseudoUrls)(pseudoUrls));
      }
      if (globs?.length) {
        urlPatternObjects.push(...(0, shared_1.constructGlobObjectsFromGlobs)(globs));
      }
      if (regexps?.length) {
        urlPatternObjects.push(...(0, shared_1.constructRegExpObjectsFromRegExps)(regexps));
      }
      if (!urlPatternObjects.length) {
        options.strategy ?? (options.strategy = EnqueueStrategy2.SameHostname);
      }
      const enqueueStrategyPatterns = [];
      if (options.baseUrl) {
        const url2 = new URL(options.baseUrl);
        switch (options.strategy) {
          case EnqueueStrategy2.SameHostname:
            enqueueStrategyPatterns.push({ glob: ignoreHttpSchema(`${url2.origin}/**`) });
            break;
          case EnqueueStrategy2.SameDomain: {
            const baseUrlHostname = (0, tldts_1.getDomain)(url2.hostname, { mixedInputs: false });
            if (baseUrlHostname) {
              url2.hostname = baseUrlHostname;
              enqueueStrategyPatterns.push({ glob: ignoreHttpSchema(`${url2.origin.replace(baseUrlHostname, `*.${baseUrlHostname}`)}/**`) }, { glob: ignoreHttpSchema(`${url2.origin}/**`) });
            } else {
              enqueueStrategyPatterns.push({ glob: ignoreHttpSchema(`${url2.origin}/**`) });
            }
            break;
          }
          case EnqueueStrategy2.SameOrigin: {
            enqueueStrategyPatterns.push({ glob: `${url2.origin}/**` });
            break;
          }
          case EnqueueStrategy2.All:
          default:
            enqueueStrategyPatterns.push({ glob: `http{s,}://**` });
            break;
        }
      }
      async function reportSkippedRequests(skippedRequests, reason) {
        if (onSkippedRequest && skippedRequests.length > 0) {
          await Promise.all(skippedRequests.map((request) => {
            return onSkippedRequest({
              url: request.url,
              reason: request.skippedReason ?? reason
            });
          }));
        }
      }
      let requestOptions = (0, shared_1.createRequestOptions)(urls, options);
      if (robotsTxtFile) {
        const skippedRequests = [];
        requestOptions = requestOptions.filter((request) => {
          if (robotsTxtFile.isAllowed(request.url)) {
            return true;
          }
          skippedRequests.push(request);
          return false;
        });
        await reportSkippedRequests(skippedRequests, "robotsTxt");
      }
      if (transformRequestFunction) {
        const skippedRequests = [];
        requestOptions = requestOptions.map((request) => {
          const transformedRequest = transformRequestFunction(request);
          if (!transformedRequest) {
            skippedRequests.push(request);
          }
          return transformedRequest;
        }).filter((r2) => Boolean(r2));
        await reportSkippedRequests(skippedRequests, "filters");
      }
      async function createFilteredRequests() {
        const skippedRequests = [];
        if (urlPatternObjects.length === 0) {
          return (0, shared_1.createRequests)(requestOptions, enqueueStrategyPatterns, urlExcludePatternObjects, options.strategy, (url2) => skippedRequests.push(url2));
        }
        const generatedRequestsFromUserFilters = (0, shared_1.createRequests)(requestOptions, urlPatternObjects, urlExcludePatternObjects, options.strategy, (url2) => skippedRequests.push(url2));
        const filtered = (0, shared_1.filterRequestsByPatterns)(generatedRequestsFromUserFilters, enqueueStrategyPatterns, (url2) => skippedRequests.push(url2));
        await reportSkippedRequests(skippedRequests.map((url2) => ({ url: url2 })), "filters");
        return filtered;
      }
      let requests = await createFilteredRequests();
      if (typeof limit === "number" && limit < requests.length) {
        await reportSkippedRequests(requests.slice(limit), "enqueueLimit");
        requests = requests.slice(0, limit);
      }
      const { addedRequests } = await requestQueue.addRequestsBatched(requests, {
        forefront,
        waitForAllRequestsToBeAdded
      });
      return { processedRequests: addedRequests, unprocessedRequests: [] };
    }
    function resolveBaseUrlForEnqueueLinksFiltering2({ enqueueStrategy, finalRequestUrl, originalRequestUrl, userProvidedBaseUrl }) {
      if (userProvidedBaseUrl) {
        return userProvidedBaseUrl;
      }
      const originalUrlOrigin = new URL(originalRequestUrl).origin;
      const finalUrlOrigin = new URL(finalRequestUrl ?? originalRequestUrl).origin;
      if (enqueueStrategy === EnqueueStrategy2.All) {
        return finalUrlOrigin;
      }
      if (enqueueStrategy === EnqueueStrategy2.SameDomain) {
        const originalHostname = (0, tldts_1.getDomain)(originalUrlOrigin, { mixedInputs: false });
        const finalHostname = (0, tldts_1.getDomain)(finalUrlOrigin, { mixedInputs: false });
        if (originalHostname === finalHostname) {
          return finalUrlOrigin;
        }
        return void 0;
      }
      return originalUrlOrigin;
    }
    function ignoreHttpSchema(pattern) {
      return pattern.replace(/^(https?):\/\//, "http{s,}://");
    }
  }
});
var require_enqueue_links2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/enqueue_links/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_enqueue_links(), exports2);
    tslib_1.__exportStar(require_shared(), exports2);
  }
});
var require_sitemap_request_list = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/sitemap_request_list.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SitemapRequestList = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_stream_1 = __require("node:stream");
    var utils_1 = require_utils9();
    var minimatch_1 = require_commonjs2();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var configuration_1 = require_configuration();
    var enqueue_links_1 = require_enqueue_links2();
    var request_1 = require_request();
    var key_value_store_1 = require_key_value_store3();
    var utils_2 = require_utils10();
    var STATE_PERSISTENCE_KEY2 = "SITEMAP_REQUEST_LIST_STATE";
    var SitemapRequestList2 = class _SitemapRequestList {
      /** @internal */
      constructor(options) {
        Object.defineProperty(this, "inProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "reclaimed", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "requestData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "sitemapParsingProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {
            /**
             * URL of the sitemap that is currently being parsed. `null` if no sitemap is being parsed.
             */
            inProgressSitemapUrl: null,
            /**
             * Buffer for URLs from the currently parsed sitemap. Used for tracking partially loaded sitemaps across migrations.
             */
            inProgressEntries: /* @__PURE__ */ new Set(),
            /**
             * Set of sitemap URLs that have not been parsed yet. If the set is empty and `inProgressSitemapUrl` is `null`, the sitemap loading is finished.
             */
            pendingSitemapUrls: /* @__PURE__ */ new Set()
          }
        });
        Object.defineProperty(this, "urlQueueStream", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "abortLoading", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "handledUrlCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "store", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "closed", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "proxyUrl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.default.child({ prefix: "SitemapRequestList" })
        });
        Object.defineProperty(this, "urlExcludePatternObjects", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "urlPatternObjects", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistenceOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          sitemapUrls: ow_1.default.array.ofType(ow_1.default.string),
          proxyUrl: ow_1.default.optional.string,
          persistStateKey: ow_1.default.optional.string,
          signal: ow_1.default.optional.any(),
          timeoutMillis: ow_1.default.optional.number,
          maxBufferSize: ow_1.default.optional.number,
          parseSitemapOptions: ow_1.default.optional.object,
          globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys("glob"))),
          exclude: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.regExp, ow_1.default.object.hasKeys("glob"), ow_1.default.object.hasKeys("regexp"))),
          regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys("regexp"))),
          config: ow_1.default.optional.object,
          persistenceOptions: ow_1.default.optional.object
        }));
        const { globs, exclude, regexps, config = configuration_1.Configuration.getGlobalConfig() } = options;
        if (exclude?.length) {
          for (const excl of exclude) {
            if (typeof excl === "string" || "glob" in excl) {
              this.urlExcludePatternObjects.push(...(0, enqueue_links_1.constructGlobObjectsFromGlobs)([excl]));
            } else if (excl instanceof RegExp || "regexp" in excl) {
              this.urlExcludePatternObjects.push(...(0, enqueue_links_1.constructRegExpObjectsFromRegExps)([excl]));
            }
          }
        }
        if (globs?.length) {
          this.urlPatternObjects.push(...(0, enqueue_links_1.constructGlobObjectsFromGlobs)(globs));
        }
        if (regexps?.length) {
          this.urlPatternObjects.push(...(0, enqueue_links_1.constructRegExpObjectsFromRegExps)(regexps));
        }
        this.persistStateKey = options.persistStateKey;
        this.persistenceOptions = { enable: true, ...options.persistenceOptions };
        this.proxyUrl = options.proxyUrl;
        this.urlQueueStream = this.createNewStream(options.maxBufferSize ?? 200);
        this.sitemapParsingProgress.pendingSitemapUrls = new Set(options.sitemapUrls);
        this.events = config.getEventManager();
        this.persistState = this.persistState.bind(this);
      }
      /**
       * Creates a new object stream with the specified highWaterMark.
       * @param highWaterMark High water mark for the stream (the maximum number of objects the stream will buffer).
       * @returns A new object stream.
       */
      createNewStream(highWaterMark) {
        return new node_stream_1.Transform({
          objectMode: true,
          highWaterMark
        }).pause();
      }
      /**
       * Returns a function that checks whether the provided pattern matches the closure URL.
       * @param url URL to be checked.
       * @returns A matcher function that checks whether the pattern matches the closure URL.
       */
      matchesUrl(url2) {
        return (patternObject) => {
          const { regexp, glob } = patternObject;
          const matchesRegex = regexp && url2.match(regexp) || false;
          const matchesGlob = glob && (0, minimatch_1.minimatch)(url2, glob, { nocase: true }) || false;
          return Boolean(matchesRegex || matchesGlob);
        };
      }
      /**
       * Checks whether the URL matches the `globs` / `regexps` / `exclude` provided in the `options`.
       * @param url URL to be checked.
       * @returns `true` if the URL matches the patterns, `false` otherwise.
       */
      isUrlMatchingPatterns(url2) {
        return !this.urlExcludePatternObjects.some(this.matchesUrl(url2)) && (this.urlPatternObjects.length === 0 || this.urlPatternObjects.some(this.matchesUrl(url2)));
      }
      /**
       * Adds a URL to the queue of parsed URLs.
       *
       * Blocks if the stream is full until it is drained.
       */
      async pushNextUrl(url2) {
        return new Promise((resolve2) => {
          if (this.closed || url2 && !this.isUrlMatchingPatterns(url2)) {
            resolve2();
            return;
          }
          if (!this.urlQueueStream.push(url2)) {
            this.urlQueueStream.once("readdata", () => {
              resolve2();
            });
          } else {
            resolve2();
          }
        });
      }
      /**
       * Reads the next URL from the queue of parsed URLs.
       *
       * If the stream is empty, blocks until a new URL is pushed.
       * @returns The next URL from the queue or `null` if we have read all URLs.
       */
      async readNextUrl() {
        return new Promise((resolve2) => {
          if (this.closed) {
            resolve2(null);
            return;
          }
          const result = this.urlQueueStream.read();
          if (!result && !this.isSitemapFullyLoaded()) {
            this.urlQueueStream.once("readable", () => {
              const nextUrl = this.urlQueueStream.read();
              resolve2(nextUrl);
            });
          } else {
            resolve2(result);
          }
          this.urlQueueStream.emit("readdata");
        });
      }
      /**
       * Indicates whether the background processing of sitemap contents has successfully finished.
       *
       * If this is `false`, the background processing is either still in progress or was aborted.
       */
      isSitemapFullyLoaded() {
        return this.sitemapParsingProgress.inProgressSitemapUrl === null && this.sitemapParsingProgress.pendingSitemapUrls.size === 0;
      }
      /**
       * Start processing the sitemaps and loading the URLs.
       *
       * Resolves once all the sitemaps URLs have been fully loaded (sets `isSitemapFullyLoaded` to `true`).
       */
      async load({ parseSitemapOptions }) {
        while (!this.isSitemapFullyLoaded() && !this.abortLoading) {
          const sitemapUrl = this.sitemapParsingProgress.inProgressSitemapUrl ?? this.sitemapParsingProgress.pendingSitemapUrls.values().next().value;
          try {
            for await (const item of (0, utils_1.parseSitemap)([{ type: "url", url: sitemapUrl }], this.proxyUrl, {
              ...parseSitemapOptions,
              maxDepth: 0,
              emitNestedSitemaps: true
            })) {
              if (!item.originSitemapUrl) {
                this.sitemapParsingProgress.pendingSitemapUrls.add(item.loc);
                continue;
              }
              if (!this.sitemapParsingProgress.inProgressEntries.has(item.loc)) {
                await this.pushNextUrl(item.loc);
                this.sitemapParsingProgress.inProgressEntries.add(item.loc);
              }
            }
          } catch (e2) {
            this.log.error("Error loading sitemap contents:", e2);
          }
          this.sitemapParsingProgress.pendingSitemapUrls.delete(sitemapUrl);
          this.sitemapParsingProgress.inProgressEntries.clear();
          this.sitemapParsingProgress.inProgressSitemapUrl = null;
        }
        this.urlQueueStream.end();
      }
      /**
       * Open a sitemap and start processing it.
       *
       * Resolves to a new instance of `SitemapRequestList`, which **might not be fully loaded yet** - i.e. the sitemap might still be loading in the background.
       *
       * Track the loading progress using the `isSitemapFullyLoaded` property.
       */
      static async open(options) {
        const requestList = new _SitemapRequestList({
          ...options,
          persistStateKey: options.persistStateKey ?? STATE_PERSISTENCE_KEY2
        });
        await requestList.restoreState();
        void requestList.load({ parseSitemapOptions: options.parseSitemapOptions });
        if (requestList.persistenceOptions.enable) {
          requestList.events.on("persistState", requestList.persistState);
        }
        options?.signal?.addEventListener("abort", () => {
          requestList.abortLoading = true;
        });
        if (options.timeoutMillis) {
          setTimeout(() => {
            requestList.abortLoading = true;
          }, options.timeoutMillis);
        }
        return requestList;
      }
      /**
       * @inheritDoc
       */
      length() {
        return this.urlQueueStream.readableLength + this.handledUrlCount - this.inProgress.size - this.reclaimed.size;
      }
      /**
       * @inheritDoc
       */
      async isFinished() {
        return await this.isEmpty() && this.inProgress.size === 0 && (this.isSitemapFullyLoaded() || this.abortLoading);
      }
      /**
       * @inheritDoc
       */
      async isEmpty() {
        return this.reclaimed.size === 0 && this.urlQueueStream.readableLength === 0;
      }
      /**
       * @inheritDoc
       */
      handledCount() {
        return this.handledUrlCount;
      }
      /**
       * @inheritDoc
       */
      async persistState() {
        if (this.persistStateKey === void 0) {
          return;
        }
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        const urlQueue = [];
        while (this.urlQueueStream.readableLength > 0) {
          const url2 = this.urlQueueStream.read();
          if (url2 === null) {
            break;
          }
          urlQueue.push(url2);
        }
        const newStream = this.createNewStream(this.urlQueueStream.readableHighWaterMark);
        for (const url2 of urlQueue) {
          newStream.push(url2);
        }
        if (this.urlQueueStream.writableEnded) {
          newStream.end();
        }
        this.urlQueueStream = newStream;
        await this.store.setValue(this.persistStateKey, {
          sitemapParsingProgress: {
            pendingSitemapUrls: Array.from(this.sitemapParsingProgress.pendingSitemapUrls),
            inProgressSitemapUrl: this.sitemapParsingProgress.inProgressSitemapUrl,
            inProgressEntries: Array.from(this.sitemapParsingProgress.inProgressEntries)
          },
          urlQueue,
          reclaimed: [...this.inProgress, ...this.reclaimed],
          // In-progress and reclaimed requests will be both retried if state is restored
          requestData: Array.from(this.requestData.entries()),
          abortLoading: this.abortLoading,
          closed: this.closed
        });
      }
      async restoreState() {
        await (0, utils_2.purgeDefaultStorages)({ onlyPurgeOnce: true });
        if (this.persistStateKey === void 0) {
          return;
        }
        this.store ?? (this.store = await key_value_store_1.KeyValueStore.open());
        const state = await this.store.getValue(this.persistStateKey);
        if (state === null) {
          return;
        }
        this.reclaimed = new Set(state.reclaimed);
        this.sitemapParsingProgress = {
          pendingSitemapUrls: new Set(state.sitemapParsingProgress.pendingSitemapUrls),
          inProgressSitemapUrl: state.sitemapParsingProgress.inProgressSitemapUrl,
          inProgressEntries: new Set(state.sitemapParsingProgress.inProgressEntries)
        };
        this.requestData = new Map(state.requestData ?? []);
        for (const url2 of state.urlQueue) {
          this.urlQueueStream.push(url2);
        }
        this.abortLoading = state.abortLoading;
        this.closed = state.closed;
      }
      /**
       * @inheritDoc
       */
      async fetchNextRequest() {
        let nextUrl = this.reclaimed.values().next().value;
        if (nextUrl) {
          this.reclaimed.delete(nextUrl);
        } else {
          nextUrl = await this.readNextUrl();
          if (!nextUrl) {
            return null;
          }
          this.requestData.set(nextUrl, new request_1.Request({ url: nextUrl }));
        }
        this.inProgress.add(nextUrl);
        return this.requestData.get(nextUrl);
      }
      /**
       * @inheritDoc
       */
      async *[Symbol.asyncIterator]() {
        while (!await this.isFinished()) {
          const request = await this.fetchNextRequest();
          if (!request)
            break;
          yield request;
        }
      }
      /**
       * @inheritDoc
       */
      async reclaimRequest(request) {
        this.ensureInProgressAndNotReclaimed(request.url);
        this.reclaimed.add(request.url);
        this.inProgress.delete(request.url);
      }
      /**
       * Aborts the internal sitemap loading, stops the processing of the sitemap contents and drops all the pending URLs.
       *
       * Calling `fetchNextRequest()` after this method will always return `null`.
       */
      async teardown() {
        this.closed = true;
        this.abortLoading = true;
        this.events.off("persistState", this.persistState);
        await this.persistState();
        this.urlQueueStream.emit("readdata");
      }
      /**
       * @inheritDoc
       */
      async markRequestHandled(request) {
        this.handledUrlCount += 1;
        this.ensureInProgressAndNotReclaimed(request.url);
        this.inProgress.delete(request.url);
        this.requestData.delete(request.url);
      }
      ensureInProgressAndNotReclaimed(url2) {
        if (!this.inProgress.has(url2)) {
          throw new Error(`The request is not being processed (url: ${url2})`);
        }
        if (this.reclaimed.has(url2)) {
          throw new Error(`The request was already reclaimed (url: ${url2})`);
        }
      }
    };
    exports2.SitemapRequestList = SitemapRequestList2;
  }
});
var require_request_manager_tandem = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/request_manager_tandem.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestManagerTandem = void 0;
    var log_1 = require_log();
    var RequestManagerTandem2 = class {
      constructor(requestList, requestQueue) {
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestList", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.log = log_1.log.child({ prefix: "RequestManagerTandem" });
        this.requestList = requestList;
        this.requestQueue = requestQueue;
      }
      /**
       * Transfers a batch of requests from the RequestList to the RequestQueue.
       * Handles both successful transfers and failures appropriately.
       * @private
       */
      async transferNextBatchToQueue() {
        const request = await this.requestList.fetchNextRequest();
        if (request === null) {
          return;
        }
        try {
          await this.requestQueue.addRequest(request, { forefront: true });
        } catch (error) {
          this.log.error("Adding of request from the RequestList to the RequestQueue failed, reclaiming request back to the list.", { request });
          await this.requestList.reclaimRequest(request);
          return;
        }
        await this.requestList.markRequestHandled(request);
      }
      /**
       * Fetches the next request from the RequestQueue. If the queue is empty and the RequestList
       * is not finished, it will transfer a batch of requests from the list to the queue first.
       * @inheritdoc
       */
      async fetchNextRequest() {
        const [listEmpty, listFinished] = await Promise.all([
          this.requestList.isEmpty(),
          this.requestList.isFinished()
        ]);
        if (!listEmpty && !listFinished) {
          await this.transferNextBatchToQueue();
        }
        return this.requestQueue.fetchNextRequest();
      }
      /**
       * @inheritdoc
       */
      async isFinished() {
        const storagesFinished = await Promise.all([this.requestList.isFinished(), this.requestQueue.isFinished()]);
        return storagesFinished.every(Boolean);
      }
      /**
       * @inheritdoc
       */
      async isEmpty() {
        const storagesEmpty = await Promise.all([this.requestList.isEmpty(), this.requestQueue.isEmpty()]);
        return storagesEmpty.every(Boolean);
      }
      /**
       * @inheritdoc
       */
      async handledCount() {
        return await this.requestQueue.handledCount();
      }
      /**
       * @inheritdoc
       */
      getTotalCount() {
        return this.requestQueue.getTotalCount();
      }
      /**
       * @inheritdoc
       */
      getPendingCount() {
        return this.requestQueue.getPendingCount() + this.requestList.length() - this.requestList.handledCount();
      }
      /**
       * @inheritdoc
       */
      async *[Symbol.asyncIterator]() {
        while (true) {
          const req = await this.fetchNextRequest();
          if (!req)
            break;
          yield req;
        }
      }
      /**
       * @inheritdoc
       */
      async markRequestHandled(request) {
        return this.requestQueue.markRequestHandled(request);
      }
      /**
       * @inheritdoc
       */
      async reclaimRequest(request, options) {
        return await this.requestQueue.reclaimRequest(request, options);
      }
      /**
       * @inheritdoc
       */
      async addRequest(requestLike, options) {
        return await this.requestQueue.addRequest(requestLike, options);
      }
      /**
       * @inheritdoc
       */
      async addRequestsBatched(requests, options) {
        return await this.requestQueue.addRequestsBatched(requests, options);
      }
    };
    exports2.RequestManagerTandem = RequestManagerTandem2;
  }
});
var require_storages = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/storages/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestQueueV2 = exports2.RequestQueue = exports2.RequestQueueV1 = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_dataset3(), exports2);
    tslib_1.__exportStar(require_key_value_store3(), exports2);
    tslib_1.__exportStar(require_request_list(), exports2);
    tslib_1.__exportStar(require_request_list_adapter(), exports2);
    tslib_1.__exportStar(require_request_provider(), exports2);
    var request_queue_1 = require_request_queue3();
    Object.defineProperty(exports2, "RequestQueueV1", { enumerable: true, get: function() {
      return request_queue_1.RequestQueueV1;
    } });
    var request_queue_v2_1 = require_request_queue_v2();
    Object.defineProperty(exports2, "RequestQueue", { enumerable: true, get: function() {
      return request_queue_v2_1.RequestQueue;
    } });
    var request_queue_v2_2 = require_request_queue_v2();
    Object.defineProperty(exports2, "RequestQueueV2", { enumerable: true, get: function() {
      return request_queue_v2_2.RequestQueue;
    } });
    tslib_1.__exportStar(require_storage_manager(), exports2);
    tslib_1.__exportStar(require_utils10(), exports2);
    tslib_1.__exportStar(require_access_checking(), exports2);
    tslib_1.__exportStar(require_sitemap_request_list(), exports2);
    tslib_1.__exportStar(require_request_manager_tandem(), exports2);
  }
});
var require_crawler_commons = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_commons.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RequestHandlerResult = void 0;
    var storages_1 = require_storages();
    var RequestHandlerResult2 = class {
      constructor(config, crawleeStateKey) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "crawleeStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: crawleeStateKey
        });
        Object.defineProperty(this, "_keyValueStoreChanges", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        Object.defineProperty(this, "pushDataCalls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "addRequestsCalls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "pushData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (data, datasetIdOrName) => {
            this.pushDataCalls.push([data, datasetIdOrName]);
          }
        });
        Object.defineProperty(this, "addRequests", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (requests, options = {}) => {
            this.addRequestsCalls.push([requests, options]);
          }
        });
        Object.defineProperty(this, "useState", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (defaultValue) => {
            const store = await this.getKeyValueStore(void 0);
            return await store.getAutoSavedValue(this.crawleeStateKey, defaultValue);
          }
        });
        Object.defineProperty(this, "getKeyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (idOrName) => {
            const store = await storages_1.KeyValueStore.open(idOrName, { config: this.config });
            return {
              id: this.idOrDefault(idOrName),
              name: idOrName,
              getValue: async (key) => this.getKeyValueStoreChangedValue(idOrName, key) ?? await store.getValue(key),
              setValue: async (key, value, options) => {
                this.setKeyValueStoreChangedValue(idOrName, key, value, options);
              },
              getAutoSavedValue: store.getAutoSavedValue.bind(store),
              getPublicUrl: store.getPublicUrl.bind(store)
            };
          }
        });
        Object.defineProperty(this, "idOrDefault", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (idOrName) => idOrName ?? this.config.get("defaultKeyValueStoreId")
        });
        Object.defineProperty(this, "getKeyValueStoreChangedValue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (idOrName, key) => {
            var _a22;
            const id = this.idOrDefault(idOrName);
            (_a22 = this._keyValueStoreChanges)[id] ?? (_a22[id] = {});
            return this.keyValueStoreChanges[id][key]?.changedValue ?? null;
          }
        });
        Object.defineProperty(this, "setKeyValueStoreChangedValue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: (idOrName, key, changedValue, options) => {
            var _a22;
            const id = this.idOrDefault(idOrName);
            (_a22 = this._keyValueStoreChanges)[id] ?? (_a22[id] = {});
            this._keyValueStoreChanges[id][key] = { changedValue, options };
          }
        });
      }
      /**
       * A record of calls to {@link RestrictedCrawlingContext.pushData}, {@link RestrictedCrawlingContext.addRequests}, {@link RestrictedCrawlingContext.enqueueLinks} made by a request handler.
       */
      get calls() {
        return {
          pushData: this.pushDataCalls,
          addRequests: this.addRequestsCalls
        };
      }
      /**
       * A record of changes made to key-value stores by a request handler.
       */
      get keyValueStoreChanges() {
        return this._keyValueStoreChanges;
      }
      /**
       * Items added to datasets by a request handler.
       */
      get datasetItems() {
        return this.pushDataCalls.flatMap(([data, datasetIdOrName]) => (Array.isArray(data) ? data : [data]).map((item) => ({ item, datasetIdOrName })));
      }
      /**
       * URLs enqueued to the request queue by a request handler, either via {@link RestrictedCrawlingContext.addRequests} or {@link RestrictedCrawlingContext.enqueueLinks}
       */
      get enqueuedUrls() {
        const result = [];
        for (const [requests] of this.addRequestsCalls) {
          for (const request of requests) {
            if (typeof request === "object" && (!("requestsFromUrl" in request) || request.requestsFromUrl !== void 0) && request.url !== void 0) {
              result.push({ url: request.url, label: request.label });
            } else if (typeof request === "string") {
              result.push({ url: request });
            }
          }
        }
        return result;
      }
      /**
       * URL lists enqueued to the request queue by a request handler via {@link RestrictedCrawlingContext.addRequests} using the `requestsFromUrl` option.
       */
      get enqueuedUrlLists() {
        const result = [];
        for (const [requests] of this.addRequestsCalls) {
          for (const request of requests) {
            if (typeof request === "object" && "requestsFromUrl" in request && request.requestsFromUrl !== void 0) {
              result.push({ listUrl: request.requestsFromUrl, label: request.label });
            }
          }
        }
        return result;
      }
    };
    exports2.RequestHandlerResult = RequestHandlerResult2;
  }
});
var require_crawler_extension = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_extension.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.CrawlerExtension = void 0;
    var log_1 = require_log();
    var CrawlerExtension2 = class {
      constructor() {
        Object.defineProperty(this, "name", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: this.constructor.name
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.log.child({ prefix: this.name })
        });
      }
      getCrawlerOptions() {
        throw new Error(`${this.name} has not implemented "getCrawlerOptions" method.`);
      }
    };
    exports2.CrawlerExtension = CrawlerExtension2;
  }
});
var require_crawler_utils = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/crawler_utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.handleRequestTimeout = handleRequestTimeout2;
    var timeout_1 = require_cjs();
    function handleRequestTimeout2({ session, errorMessage }) {
      session?.markBad();
      const timeoutMillis = errorMessage.match(/(\d+)\s?ms/)?.[1];
      const timeoutSecs = Number(timeoutMillis) / 1e3;
      throw new timeout_1.TimeoutError(`Navigation timed out after ${timeoutSecs} seconds.`);
    }
  }
});
var require_error_snapshotter = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/error_snapshotter.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ErrorSnapshotter = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_crypto_1 = tslib_1.__importDefault(__require("node:crypto"));
    var ErrorSnapshotter2 = class _ErrorSnapshotter {
      /**
       * Capture a snapshot of the error context.
       */
      async captureSnapshot(error, context) {
        try {
          const page = context?.page;
          const body = context?.body;
          const keyValueStore = await context?.getKeyValueStore();
          if (!keyValueStore || !body && !page) {
            return {};
          }
          const fileName = this.generateFilename(error);
          let screenshotFileName;
          let htmlFileName;
          if (page) {
            const capturedFiles = await this.contextCaptureSnapshot(context, fileName);
            if (capturedFiles) {
              screenshotFileName = capturedFiles.screenshotFileName;
              htmlFileName = capturedFiles.htmlFileName;
            }
            if (!htmlFileName) {
              const html = await page.content();
              htmlFileName = html ? await this.saveHTMLSnapshot(html, keyValueStore, fileName) : void 0;
            }
          } else if (typeof body === "string") {
            htmlFileName = await this.saveHTMLSnapshot(body, keyValueStore, fileName);
          }
          return {
            screenshotFileName,
            screenshotFileUrl: screenshotFileName && keyValueStore.getPublicUrl(screenshotFileName),
            htmlFileName,
            htmlFileUrl: htmlFileName && keyValueStore.getPublicUrl(htmlFileName)
          };
        } catch {
          return {};
        }
      }
      /**
       * Captures a snapshot of the current page using the context.saveSnapshot function.
       * This function is applicable for browser contexts only.
       * Returns an object containing the filenames of the screenshot and HTML file.
       */
      async contextCaptureSnapshot(context, fileName) {
        try {
          await context.saveSnapshot({ key: fileName });
          return {
            screenshotFileName: `${fileName}.jpg`,
            htmlFileName: `${fileName}.html`
          };
        } catch {
          return void 0;
        }
      }
      /**
       * Save the HTML snapshot of the page, and return the fileName with the extension.
       */
      async saveHTMLSnapshot(html, keyValueStore, fileName) {
        try {
          await keyValueStore.setValue(fileName, html, { contentType: "text/html" });
          return `${fileName}.html`;
        } catch {
          return void 0;
        }
      }
      /**
       * Generate a unique fileName for each error snapshot.
       */
      generateFilename(error) {
        const { SNAPSHOT_PREFIX, BASE_MESSAGE, MAX_HASH_LENGTH, MAX_ERROR_CHARACTERS, MAX_FILENAME_LENGTH } = _ErrorSnapshotter;
        const errorStackHash = node_crypto_1.default.createHash("sha1").update(error.stack || error.message || "").digest("hex").slice(0, MAX_HASH_LENGTH);
        const errorMessagePrefix = (error.message || BASE_MESSAGE).slice(0, MAX_ERROR_CHARACTERS).trim();
        const sanitizeString = (str) => {
          return str.replace(/^\W+|\W+$/g, "");
        };
        const fileName = `${SNAPSHOT_PREFIX}_${sanitizeString(errorStackHash)}_${sanitizeString(errorMessagePrefix)}`.replace(/\W+/g, "-").slice(0, MAX_FILENAME_LENGTH);
        return fileName;
      }
    };
    exports2.ErrorSnapshotter = ErrorSnapshotter2;
    Object.defineProperty(ErrorSnapshotter2, "MAX_ERROR_CHARACTERS", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 30
    });
    Object.defineProperty(ErrorSnapshotter2, "MAX_HASH_LENGTH", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 30
    });
    Object.defineProperty(ErrorSnapshotter2, "MAX_FILENAME_LENGTH", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 250
    });
    Object.defineProperty(ErrorSnapshotter2, "BASE_MESSAGE", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: "An error occurred"
    });
    Object.defineProperty(ErrorSnapshotter2, "SNAPSHOT_PREFIX", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: "ERROR_SNAPSHOT"
    });
  }
});
var require_error_tracker = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/error_tracker.js"(exports2) {
    "use strict";
    var _ErrorTracker_options;
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ErrorTracker = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_util_1 = __require("node:util");
    var error_snapshotter_1 = require_error_snapshotter();
    var extractPathFromStackTraceLine = (line) => {
      const lastStartingRoundBracketIndex = line.lastIndexOf("(");
      if (lastStartingRoundBracketIndex !== -1) {
        const closingRoundBracketIndex = line.indexOf(")", lastStartingRoundBracketIndex);
        if (closingRoundBracketIndex !== -1) {
          return line.slice(lastStartingRoundBracketIndex + 1, closingRoundBracketIndex);
        }
      }
      return line;
    };
    var getPathFromStackTrace = (stack) => {
      for (const line of stack) {
        const path22 = extractPathFromStackTraceLine(line);
        if (path22.startsWith("node:") || path22.includes("/node_modules/") || path22.includes("\\node_modules\\")) {
          continue;
        }
        return path22;
      }
      return extractPathFromStackTraceLine(stack[0]);
    };
    var getStackTraceGroup = (error, storage2, showFullStack) => {
      const stack = error.stack?.split("\n").map((line) => line.trim());
      let sliceAt = -1;
      if (stack) {
        for (let i22 = 0; i22 < stack.length; i22++) {
          if (stack[i22].startsWith("at ") || stack[i22].startsWith("eval at ")) {
            sliceAt = i22;
            break;
          }
        }
      }
      let normalizedStackTrace = null;
      if (sliceAt !== -1) {
        normalizedStackTrace = showFullStack ? stack.slice(sliceAt).map((x3) => x3.trim()).join("\n") : getPathFromStackTrace(stack.slice(sliceAt));
      }
      if (!normalizedStackTrace) {
        normalizedStackTrace = "missing stack trace";
      }
      if (!(normalizedStackTrace in storage2)) {
        storage2[normalizedStackTrace] = /* @__PURE__ */ Object.create(null);
      }
      return storage2[normalizedStackTrace];
    };
    var getErrorCodeGroup = (error, storage2) => {
      let { code } = error;
      if (code === void 0) {
        code = "missing error code";
      }
      if (!(code in storage2)) {
        storage2[code] = /* @__PURE__ */ Object.create(null);
      }
      return storage2[String(code)];
    };
    var getErrorNameGroup = (error, storage2) => {
      const { name: name2 } = error;
      if (!(name2 in storage2)) {
        storage2[name2] = /* @__PURE__ */ Object.create(null);
      }
      return storage2[name2];
    };
    var findBiggestWordIntersection = (a2, b2) => {
      let maxStreak = 0;
      let bStreakIndex = -1;
      let aStreakIndex = -1;
      for (let aIndex = 0; aIndex < a2.length; aIndex++) {
        let bIndex = -1;
        do {
          let aWalkIndex = aIndex;
          bIndex = b2.indexOf(a2[aIndex], bIndex + 1);
          let bWalkIndex = bIndex;
          let streak = 0;
          while (aWalkIndex < a2.length && bWalkIndex < b2.length && b2[bWalkIndex++] === a2[aWalkIndex++]) {
            streak++;
          }
          if (streak > maxStreak) {
            maxStreak = streak;
            aStreakIndex = aIndex;
            bStreakIndex = bIndex;
          }
        } while (bIndex !== -1);
      }
      return {
        maxStreak,
        aStreakIndex,
        bStreakIndex
      };
    };
    var arrayCount = (array, target) => {
      let result = 0;
      for (const item of array) {
        if (item === target) {
          result++;
        }
      }
      return result;
    };
    var calculatePlaceholder = (a2, b2) => {
      const { maxStreak, aStreakIndex, bStreakIndex } = findBiggestWordIntersection(a2, b2);
      if (maxStreak === 0) {
        return ["_"];
      }
      const leftA = a2.slice(0, aStreakIndex);
      const leftB = b2.slice(0, bStreakIndex);
      const rightA = a2.slice(aStreakIndex + maxStreak);
      const rightB = b2.slice(bStreakIndex + maxStreak);
      const output = [];
      if (leftA.length !== 0 || leftB.length !== 0) {
        output.push(...calculatePlaceholder(leftA, leftB));
      }
      output.push(...a2.slice(aStreakIndex, aStreakIndex + maxStreak));
      if (rightA.length !== 0 || rightB.length !== 0) {
        output.push(...calculatePlaceholder(rightA, rightB));
      }
      return output;
    };
    var normalizedCalculatePlaceholder = (a2, b2) => {
      const output = calculatePlaceholder(a2, b2);
      if (arrayCount(output, "_") / output.length >= 0.5) {
        return ["_"];
      }
      return output;
    };
    var mergeMessages = (a2, b2, storage2) => {
      const placeholder = normalizedCalculatePlaceholder(a2.split(" "), b2.split(" ")).join(" ");
      if (placeholder === "_") {
        return void 0;
      }
      const count = storage2[a2].count + storage2[b2].count;
      delete storage2[a2];
      delete storage2[b2];
      storage2[placeholder] = Object.assign(/* @__PURE__ */ Object.create(null), {
        count
      });
      return placeholder;
    };
    var getErrorMessageGroup = (error, storage2, showFullMessage) => {
      let { message } = error;
      if (!message) {
        try {
          message = typeof error === "string" ? error : `Unknown error message. Received non-error object: ${JSON.stringify(error)}`;
        } catch {
          message = `Unknown error message. Received non-error object, and could not stringify it: ${(0, node_util_1.inspect)(error, {
            depth: 0
          })}`;
        }
      }
      if (!showFullMessage) {
        const newLineIndex = message.indexOf("\n");
        message = message.slice(0, newLineIndex === -1 ? void 0 : newLineIndex);
      }
      if (!(message in storage2)) {
        storage2[message] = Object.assign(/* @__PURE__ */ Object.create(null), {
          count: 0
        });
        for (const existingMessage in storage2) {
          const newMessage = mergeMessages(message, existingMessage, storage2);
          if (newMessage) {
            message = newMessage;
            break;
          }
        }
      }
      return storage2[message];
    };
    var increaseCount = (group) => {
      if (!("count" in group)) {
        group.count = 0;
      }
      group.count++;
    };
    var ErrorTracker2 = class {
      constructor(options = {}) {
        _ErrorTracker_options.set(this, void 0);
        Object.defineProperty(this, "result", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "total", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorSnapshotter", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        tslib_1.__classPrivateFieldSet(this, _ErrorTracker_options, {
          showErrorCode: true,
          showErrorName: true,
          showStackTrace: true,
          showFullStack: false,
          showErrorMessage: true,
          showFullMessage: false,
          saveErrorSnapshots: false,
          ...options
        }, "f");
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").saveErrorSnapshots) {
          this.errorSnapshotter = new error_snapshotter_1.ErrorSnapshotter();
        }
        this.result = /* @__PURE__ */ Object.create(null);
        this.total = 0;
      }
      updateGroup(error) {
        let group = this.result;
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showStackTrace) {
          group = getStackTraceGroup(error, group, tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showFullStack);
        }
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showErrorCode) {
          group = getErrorCodeGroup(error, group);
        }
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showErrorName) {
          group = getErrorNameGroup(error, group);
        }
        if (tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showErrorMessage) {
          group = getErrorMessageGroup(error, group, tslib_1.__classPrivateFieldGet(this, _ErrorTracker_options, "f").showFullMessage);
        }
        increaseCount(group);
        return group;
      }
      add(error) {
        this.total++;
        this.updateGroup(error);
        if (typeof error.cause === "object" && error.cause !== null) {
          this.add(error.cause);
        }
      }
      /**
       * This method is async, because it captures a snapshot of the error context.
       * We added this new method to avoid breaking changes.
       */
      async addAsync(error, context) {
        this.total++;
        const group = this.updateGroup(error);
        if (group.count === 1 && context) {
          await this.captureSnapshot(group, error, context).catch(() => {
          });
        }
        if (typeof error.cause === "object" && error.cause !== null) {
          await this.addAsync(error.cause);
        }
      }
      getUniqueErrorCount() {
        let count = 0;
        const goDeeper = (group) => {
          if ("count" in group) {
            count++;
            return;
          }
          for (const key in group) {
            goDeeper(group[key]);
          }
        };
        goDeeper(this.result);
        return count;
      }
      getMostPopularErrors(count) {
        const result = [];
        const goDeeper = (group, path22) => {
          if ("count" in group) {
            result.push([group.count, path22]);
            return;
          }
          for (const key in group) {
            goDeeper(group[key], [...path22, key]);
          }
        };
        goDeeper(this.result, []);
        return result.sort((a2, b2) => b2[0] - a2[0]).slice(0, count);
      }
      async captureSnapshot(storage2, error, context) {
        if (!this.errorSnapshotter) {
          return;
        }
        const { screenshotFileUrl, htmlFileUrl } = await this.errorSnapshotter.captureSnapshot(error, context);
        storage2.firstErrorScreenshotUrl = screenshotFileUrl;
        storage2.firstErrorHtmlUrl = htmlFileUrl;
      }
      reset() {
        for (const key in this.result) {
          delete this.result[key];
        }
      }
    };
    exports2.ErrorTracker = ErrorTracker2;
    _ErrorTracker_options = /* @__PURE__ */ new WeakMap();
  }
});
var require_statistics = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/statistics.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Statistics = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var key_value_store_1 = require_key_value_store3();
    var error_tracker_1 = require_error_tracker();
    var Job = class {
      constructor() {
        Object.defineProperty(this, "lastRunAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "durationMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
      }
      run() {
        this.lastRunAt = Date.now();
      }
      finish() {
        this.durationMillis = Date.now() - this.lastRunAt;
        return this.durationMillis;
      }
    };
    var errorTrackerConfig = {
      showErrorCode: true,
      showErrorName: true,
      showStackTrace: true,
      showFullStack: false,
      showErrorMessage: true,
      showFullMessage: false
    };
    var Statistics2 = class _Statistics {
      /**
       * @internal
       */
      constructor(options = {}) {
        Object.defineProperty(this, "errorTracker", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorTrackerRetry", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: _Statistics.id++
        });
        Object.defineProperty(this, "state", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestRetryHistogram", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: `SDK_CRAWLER_STATISTICS_${this.id}`
        });
        Object.defineProperty(this, "logIntervalMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "logMessage", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "listener", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestsInProgress", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "instanceStart", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "logInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistenceOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          logIntervalSecs: ow_1.default.optional.number,
          logMessage: ow_1.default.optional.string,
          log: ow_1.default.optional.object,
          keyValueStore: ow_1.default.optional.object,
          config: ow_1.default.optional.object,
          persistenceOptions: ow_1.default.optional.object,
          saveErrorSnapshots: ow_1.default.optional.boolean
        }));
        const { logIntervalSecs = 60, logMessage = "Statistics", keyValueStore, config = configuration_1.Configuration.getGlobalConfig(), persistenceOptions = {
          enable: true
        }, saveErrorSnapshots = false } = options;
        this.log = (options.log ?? log_1.log).child({ prefix: "Statistics" });
        this.errorTracker = new error_tracker_1.ErrorTracker({ ...errorTrackerConfig, saveErrorSnapshots });
        this.errorTrackerRetry = new error_tracker_1.ErrorTracker({ ...errorTrackerConfig, saveErrorSnapshots });
        this.logIntervalMillis = logIntervalSecs * 1e3;
        this.logMessage = logMessage;
        this.keyValueStore = keyValueStore;
        this.listener = this.persistState.bind(this);
        this.events = config.getEventManager();
        this.config = config;
        this.persistenceOptions = persistenceOptions;
        this.reset();
      }
      /**
       * Set the current statistic instance to pristine values
       */
      reset() {
        this.errorTracker.reset();
        this.errorTrackerRetry.reset();
        this.state = {
          requestsFinished: 0,
          requestsFailed: 0,
          requestsRetries: 0,
          requestsFailedPerMinute: 0,
          requestsFinishedPerMinute: 0,
          requestMinDurationMillis: Infinity,
          requestMaxDurationMillis: 0,
          requestTotalFailedDurationMillis: 0,
          requestTotalFinishedDurationMillis: 0,
          crawlerStartedAt: null,
          crawlerFinishedAt: null,
          statsPersistedAt: null,
          crawlerRuntimeMillis: 0,
          requestsWithStatusCode: {},
          errors: this.errorTracker.result,
          retryErrors: this.errorTrackerRetry.result
        };
        this.requestRetryHistogram.length = 0;
        this.requestsInProgress.clear();
        this.instanceStart = Date.now();
        this._teardown();
      }
      /**
       * @param options - Override the persistence options provided in the constructor
       */
      async resetStore(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        if (!this.keyValueStore) {
          return;
        }
        await this.keyValueStore.setValue(this.persistStateKey, null);
      }
      /**
       * Increments the status code counter.
       */
      registerStatusCode(code) {
        const s2 = String(code);
        if (this.state.requestsWithStatusCode[s2] === void 0) {
          this.state.requestsWithStatusCode[s2] = 0;
        }
        this.state.requestsWithStatusCode[s2]++;
      }
      /**
       * Starts a job
       * @ignore
       */
      startJob(id) {
        let job = this.requestsInProgress.get(id);
        if (!job)
          job = new Job();
        job.run();
        this.requestsInProgress.set(id, job);
      }
      /**
       * Mark job as finished and sets the state
       * @ignore
       */
      finishJob(id, retryCount) {
        const job = this.requestsInProgress.get(id);
        if (!job)
          return;
        const jobDurationMillis = job.finish();
        this.state.requestsFinished++;
        this.state.requestTotalFinishedDurationMillis += jobDurationMillis;
        this._saveRetryCountForJob(retryCount);
        if (jobDurationMillis < this.state.requestMinDurationMillis)
          this.state.requestMinDurationMillis = jobDurationMillis;
        if (jobDurationMillis > this.state.requestMaxDurationMillis)
          this.state.requestMaxDurationMillis = jobDurationMillis;
        this.requestsInProgress.delete(id);
      }
      /**
       * Mark job as failed and sets the state
       * @ignore
       */
      failJob(id, retryCount) {
        const job = this.requestsInProgress.get(id);
        if (!job)
          return;
        this.state.requestTotalFailedDurationMillis += job.finish();
        this.state.requestsFailed++;
        this._saveRetryCountForJob(retryCount);
        this.requestsInProgress.delete(id);
      }
      /**
       * Calculate the current statistics
       */
      calculate() {
        const { requestsFailed, requestsFinished, requestTotalFailedDurationMillis, requestTotalFinishedDurationMillis } = this.state;
        const totalMillis = Date.now() - this.instanceStart;
        const totalMinutes = totalMillis / 1e3 / 60;
        return {
          requestAvgFailedDurationMillis: Math.round(requestTotalFailedDurationMillis / requestsFailed) || Infinity,
          requestAvgFinishedDurationMillis: Math.round(requestTotalFinishedDurationMillis / requestsFinished) || Infinity,
          requestsFinishedPerMinute: Math.round(requestsFinished / totalMinutes) || 0,
          requestsFailedPerMinute: Math.floor(requestsFailed / totalMinutes) || 0,
          requestTotalDurationMillis: requestTotalFinishedDurationMillis + requestTotalFailedDurationMillis,
          requestsTotal: requestsFailed + requestsFinished,
          crawlerRuntimeMillis: totalMillis
        };
      }
      /**
       * Initializes the key value store for persisting the statistics,
       * displaying the current state in predefined intervals
       */
      async startCapturing() {
        this.keyValueStore ?? (this.keyValueStore = await key_value_store_1.KeyValueStore.open(null, { config: this.config }));
        if (this.state.crawlerStartedAt === null) {
          this.state.crawlerStartedAt = /* @__PURE__ */ new Date();
        }
        if (this.persistenceOptions.enable) {
          await this._maybeLoadStatistics();
          this.events.on("persistState", this.listener);
        }
        this.logInterval = setInterval(() => {
          this.log.info(this.logMessage, {
            ...this.calculate(),
            retryHistogram: this.requestRetryHistogram
          });
        }, this.logIntervalMillis);
      }
      /**
       * Stops logging and remove event listeners, then persist
       */
      async stopCapturing() {
        this._teardown();
        this.state.crawlerFinishedAt = /* @__PURE__ */ new Date();
        await this.persistState();
      }
      _saveRetryCountForJob(retryCount) {
        var _a22;
        if (retryCount > 0)
          this.state.requestsRetries++;
        (_a22 = this.requestRetryHistogram)[retryCount] ?? (_a22[retryCount] = 0);
        this.requestRetryHistogram[retryCount]++;
      }
      /**
       * Persist internal state to the key value store
       * @param options - Override the persistence options provided in the constructor
       */
      async persistState(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        if (!this.keyValueStore) {
          return;
        }
        this.log.debug("Persisting state", { persistStateKey: this.persistStateKey });
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        const timeoutSecs = persistStateIntervalMillis / 2e3;
        await this.keyValueStore.setValue(this.persistStateKey, this.toJSON(), {
          timeoutSecs,
          doNotRetryTimeouts: true
        }).catch((error) => this.log.warning(`Failed to persist the statistics to ${this.persistStateKey}`, { error }));
      }
      /**
       * Loads the current statistic from the key value store if any
       */
      async _maybeLoadStatistics() {
        if (!this.keyValueStore) {
          return;
        }
        const savedState = await this.keyValueStore.getValue(this.persistStateKey);
        if (!savedState)
          return;
        if (!Array.isArray(savedState.requestRetryHistogram)) {
          this.log.warning("Received invalid state from Key-value store.", {
            persistStateKey: this.persistStateKey,
            state: savedState
          });
        }
        this.log.debug("Recreating state from KeyValueStore", { persistStateKey: this.persistStateKey });
        savedState.requestRetryHistogram.forEach((idx) => this.requestRetryHistogram.push(idx));
        this.state.requestsFinished = savedState.requestsFinished;
        this.state.requestsFailed = savedState.requestsFailed;
        this.state.requestsRetries = savedState.requestsRetries;
        this.state.requestTotalFailedDurationMillis = savedState.requestTotalFailedDurationMillis;
        this.state.requestTotalFinishedDurationMillis = savedState.requestTotalFinishedDurationMillis;
        this.state.requestMinDurationMillis = savedState.requestMinDurationMillis;
        this.state.requestMaxDurationMillis = savedState.requestMaxDurationMillis;
        this.state.crawlerFinishedAt = savedState.crawlerFinishedAt ? new Date(savedState.crawlerFinishedAt) : null;
        this.state.crawlerStartedAt = savedState.crawlerStartedAt ? new Date(savedState.crawlerStartedAt) : null;
        this.state.statsPersistedAt = savedState.statsPersistedAt ? new Date(savedState.statsPersistedAt) : null;
        this.state.crawlerRuntimeMillis = savedState.crawlerRuntimeMillis;
        this.instanceStart = Date.now() - (+this.state.statsPersistedAt - savedState.crawlerLastStartTimestamp);
        this.log.debug("Loaded from KeyValueStore");
      }
      _teardown() {
        this.events.off("persistState", this.listener);
        if (this.logInterval) {
          clearInterval(this.logInterval);
          this.logInterval = null;
        }
      }
      /**
       * Make this class serializable when called with `JSON.stringify(statsInstance)` directly
       * or through `keyValueStore.setValue('KEY', statsInstance)`
       */
      toJSON() {
        const result = {
          ...this.state,
          crawlerLastStartTimestamp: this.instanceStart,
          crawlerFinishedAt: this.state.crawlerFinishedAt ? new Date(this.state.crawlerFinishedAt).toISOString() : null,
          crawlerStartedAt: this.state.crawlerStartedAt ? new Date(this.state.crawlerStartedAt).toISOString() : null,
          requestRetryHistogram: this.requestRetryHistogram,
          statsId: this.id,
          statsPersistedAt: (/* @__PURE__ */ new Date()).toISOString(),
          ...this.calculate()
        };
        Reflect.deleteProperty(result, "requestsWithStatusCode");
        Reflect.deleteProperty(result, "errors");
        Reflect.deleteProperty(result, "retryErrors");
        result.requestsWithStatusCode = this.state.requestsWithStatusCode;
        result.errors = this.state.errors;
        result.retryErrors = this.state.retryErrors;
        return result;
      }
    };
    exports2.Statistics = Statistics2;
    Object.defineProperty(Statistics2, "id", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: 0
    });
  }
});
var require_crawlers = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/crawlers/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_crawler_commons(), exports2);
    tslib_1.__exportStar(require_crawler_extension(), exports2);
    tslib_1.__exportStar(require_crawler_utils(), exports2);
    tslib_1.__exportStar(require_statistics(), exports2);
    tslib_1.__exportStar(require_error_tracker(), exports2);
    tslib_1.__exportStar(require_error_snapshotter(), exports2);
  }
});
var require_base_http_client = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/base-http-client.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.processHttpRequestOptions = processHttpRequestOptions2;
    var utils_1 = require_utils9();
    function processHttpRequestOptions2({ searchParams, form, json, username, password, ...request }) {
      const url2 = new URL(request.url);
      const headers = { ...request.headers };
      (0, utils_1.applySearchParams)(url2, searchParams);
      if ([request.body, form, json].filter((value) => value !== void 0).length > 1) {
        throw new Error("At most one of `body`, `form` and `json` may be specified in sendRequest arguments");
      }
      const body = (() => {
        if (form !== void 0) {
          return new URLSearchParams(form).toString();
        }
        if (json !== void 0) {
          return JSON.stringify(json);
        }
        return request.body;
      })();
      if (form !== void 0) {
        headers["content-type"] ?? (headers["content-type"] = "application/x-www-form-urlencoded");
      }
      if (json !== void 0) {
        headers["content-type"] ?? (headers["content-type"] = "application/json");
      }
      if (username !== void 0 || password !== void 0) {
        const encodedAuth = Buffer.from(`${username ?? ""}:${password ?? ""}`).toString("base64");
        headers.authorization = `Basic ${encodedAuth}`;
      }
      return { ...request, body, url: url2, headers };
    }
  }
});
var require_got_scraping_http_client = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/got-scraping-http-client.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.GotScrapingHttpClient = void 0;
    var utils_1 = require_utils9();
    var GotScrapingHttpClient2 = class {
      /**
       * @inheritDoc
       */
      async sendRequest(request) {
        const gotResult = await (0, utils_1.gotScraping)({
          ...request,
          // `HttpCrawler` reads the cookies beforehand and sets them in `request.gotOptions`.
          // Using the `cookieJar` option directly would override that.
          cookieJar: void 0,
          retry: {
            limit: 0,
            ...request.retry
          }
        });
        return {
          ...gotResult,
          body: gotResult.body,
          request: { url: request.url, ...gotResult.request }
        };
      }
      /**
       * @inheritDoc
       */
      async stream(request, handleRedirect) {
        return new Promise(async (resolve2, reject) => {
          const stream5 = await Promise.resolve((0, utils_1.gotScraping)({ ...request, isStream: true, cookieJar: void 0 }));
          stream5.on("redirect", (updatedOptions, redirectResponse) => {
            handleRedirect?.(redirectResponse, updatedOptions);
          });
          if (request.method && ["DELETE", "delete"].includes(request.method)) {
            stream5.end();
          }
          stream5.on("error", reject);
          stream5.on("response", (response) => {
            const result = {
              stream: stream5,
              request,
              redirectUrls: response.redirectUrls,
              url: response.url,
              ip: response.ip,
              statusCode: response.statusCode,
              headers: response.headers,
              trailers: response.trailers,
              complete: response.complete,
              get downloadProgress() {
                return stream5.downloadProgress;
              },
              get uploadProgress() {
                return stream5.uploadProgress;
              }
            };
            Object.assign(result, response);
            resolve2(result);
            stream5.on("end", () => {
              var _a22;
              result.complete = response.complete;
              result.trailers ?? (result.trailers = {});
              Object.assign(result.trailers, response.trailers);
              (_a22 = result).rawTrailers ?? (_a22.rawTrailers = []);
              Object.assign(result.rawTrailers, response.rawTrailers);
            });
          });
        });
      }
    };
    exports2.GotScrapingHttpClient = GotScrapingHttpClient2;
  }
});
var require_http_clients = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/http_clients/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_base_http_client(), exports2);
    tslib_1.__exportStar(require_got_scraping_http_client(), exports2);
  }
});
var require_proxy_configuration = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/proxy_configuration.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.ProxyConfiguration = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var utilities_1 = require_cjs4();
    var ProxyTierTracker = class {
      constructor(tieredProxyUrls) {
        Object.defineProperty(this, "histogram", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "currentTier", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.histogram = tieredProxyUrls.map(() => 0);
        this.currentTier = 0;
      }
      /**
       * Processes a single step of the algorithm and updates the current tier prediction based on the error history.
       */
      processStep() {
        this.histogram.forEach((x3, i22) => {
          if (this.currentTier === i22)
            return;
          if (x3 > 0)
            this.histogram[i22]--;
        });
        const left2 = this.currentTier > 0 ? this.histogram[this.currentTier - 1] : Infinity;
        const right2 = this.currentTier < this.histogram.length - 1 ? this.histogram[this.currentTier + 1] : Infinity;
        if (this.histogram[this.currentTier] > Math.min(left2, right2)) {
          this.currentTier = left2 <= right2 ? this.currentTier - 1 : this.currentTier + 1;
        } else if (this.histogram[this.currentTier] === left2) {
          this.currentTier--;
        }
      }
      /**
       * Increases the error score for the given proxy tier. This raises the chance of picking a different proxy tier for the subsequent requests.
       *
       * The error score is increased by 10 for the given tier. This means that this tier will be disadvantaged for the next 10 requests (every new request prediction decreases the error score by 1).
       * @param tier The proxy tier to mark as problematic.
       */
      addError(tier) {
        this.histogram[tier] += 10;
      }
      /**
       * Returns the best proxy tier for the next request based on the error history for different proxy tiers.
       * @returns The proxy tier prediction
       */
      predictTier() {
        this.processStep();
        return this.currentTier;
      }
    };
    var ProxyConfiguration2 = class {
      /**
       * Creates a {@link ProxyConfiguration} instance based on the provided options. Proxy servers are used to prevent target websites from
       * blocking your crawlers based on IP address rate limits or blacklists. Setting proxy configuration in your crawlers automatically configures
       * them to use the selected proxies for all connections.
       *
       * ```javascript
       * const proxyConfiguration = new ProxyConfiguration({
       *     proxyUrls: ['http://user:pass@proxy-1.com', 'http://user:pass@proxy-2.com'],
       * });
       *
       * const crawler = new CheerioCrawler({
       *   // ...
       *   proxyConfiguration,
       *   requestHandler({ proxyInfo }) {
       *       const usedProxyUrl = proxyInfo.url; // Getting the proxy URL
       *   }
       * })
       *
       * ```
       */
      constructor(options = {}) {
        Object.defineProperty(this, "isManInTheMiddle", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "nextCustomUrlIndex", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "proxyUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "tieredProxyUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "usedProxyUrls", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "newUrlFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: log_1.default.child({ prefix: "ProxyConfiguration" })
        });
        Object.defineProperty(this, "domainTiers", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        const { validateRequired, ...rest } = options;
        (0, ow_1.default)(rest, ow_1.default.object.exactShape({
          proxyUrls: ow_1.default.optional.array.nonEmpty.ofType(ow_1.default.any(ow_1.default.string.url, ow_1.default.null)),
          newUrlFunction: ow_1.default.optional.function,
          tieredProxyUrls: ow_1.default.optional.array.nonEmpty.ofType(ow_1.default.array.nonEmpty.ofType(ow_1.default.any(ow_1.default.string.url, ow_1.default.null)))
        }));
        const { proxyUrls, newUrlFunction, tieredProxyUrls } = options;
        if ([proxyUrls, newUrlFunction, tieredProxyUrls].filter((x3) => x3).length > 1)
          this._throwCannotCombineCustomMethods();
        if (!proxyUrls && !newUrlFunction && validateRequired)
          this._throwNoOptionsProvided();
        this.proxyUrls = proxyUrls;
        this.newUrlFunction = newUrlFunction;
        this.tieredProxyUrls = tieredProxyUrls;
      }
      /**
       * This function creates a new {@link ProxyInfo} info object.
       * It is used by CheerioCrawler and PuppeteerCrawler to generate proxy URLs and also to allow the user to inspect
       * the currently used proxy via the requestHandler parameter `proxyInfo`.
       * Use it if you want to work with a rich representation of a proxy URL.
       * If you need the URL string only, use {@link ProxyConfiguration.newUrl}.
       * @param [sessionId]
       *  Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
       *  you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
       *  When the provided sessionId is a number, it's converted to a string. Property sessionId of
       *  {@link ProxyInfo} is always returned as a type string.
       *
       *  All the HTTP requests going through the proxy with the same session identifier
       *  will use the same target proxy server (i.e. the same IP address).
       *  The identifier must not be longer than 50 characters and include only the following: `0-9`, `a-z`, `A-Z`, `"."`, `"_"` and `"~"`.
       * @return Represents information about used proxy and its configuration.
       */
      async newProxyInfo(sessionId, options) {
        if (typeof sessionId === "number")
          sessionId = `${sessionId}`;
        let url2;
        let tier;
        if (this.tieredProxyUrls) {
          const { proxyUrl, proxyTier } = this._handleTieredUrl(sessionId ?? (0, utilities_1.cryptoRandomObjectId)(6), options);
          url2 = proxyUrl ?? void 0;
          tier = proxyTier;
        } else {
          url2 = await this.newUrl(sessionId, options);
        }
        if (!url2)
          return void 0;
        const { username, password, port, hostname } = new URL(url2);
        return {
          sessionId,
          url: url2,
          username: decodeURIComponent(username),
          password: decodeURIComponent(password),
          hostname,
          port,
          proxyTier: tier
        };
      }
      /**
       * Given a session identifier and a request / proxy tier, this function returns a new proxy URL based on the provided configuration options.
       * @param _sessionId Session identifier
       * @param options Options for the tiered proxy rotation
       * @returns An object with the proxy URL and the proxy tier used.
       */
      _handleTieredUrl(_sessionId, options) {
        if (!this.tieredProxyUrls)
          throw new Error("Tiered proxy URLs are not set");
        if (!options || !options?.request && options?.proxyTier === void 0) {
          const allProxyUrls = this.tieredProxyUrls.flat();
          return {
            proxyUrl: allProxyUrls[this.nextCustomUrlIndex++ % allProxyUrls.length]
          };
        }
        let tierPrediction = options.proxyTier;
        if (typeof tierPrediction !== "number") {
          tierPrediction = this.predictProxyTier(options.request);
        }
        const proxyTier = this.tieredProxyUrls[tierPrediction];
        return {
          proxyUrl: proxyTier[this.nextCustomUrlIndex++ % proxyTier.length],
          proxyTier: tierPrediction
        };
      }
      /**
       * Given a `Request` object, this function returns the tier of the proxy that should be used for the request.
       *
       * This returns `null` if `tieredProxyUrls` option is not set.
       */
      predictProxyTier(request) {
        var _a22;
        if (!this.tieredProxyUrls)
          return null;
        const domain = new URL(request.url).hostname;
        if (!this.domainTiers.has(domain)) {
          this.domainTiers.set(domain, new ProxyTierTracker(this.tieredProxyUrls));
        }
        (_a22 = request.userData).__crawlee ?? (_a22.__crawlee = {});
        const tracker = this.domainTiers.get(domain);
        if (typeof request.userData.__crawlee.lastProxyTier === "number") {
          tracker.addError(request.userData.__crawlee.lastProxyTier);
        }
        const tierPrediction = tracker.predictTier();
        if (typeof request.userData.__crawlee.lastProxyTier === "number" && request.userData.__crawlee.lastProxyTier !== tierPrediction) {
          log_1.default.debug(`Changing proxy tier for domain "${domain}" from ${request.userData.__crawlee.lastProxyTier} to ${tierPrediction}.`);
        }
        request.userData.__crawlee.lastProxyTier = tierPrediction;
        request.userData.__crawlee.forefront = true;
        return tierPrediction;
      }
      /**
       * Returns a new proxy URL based on provided configuration options and the `sessionId` parameter.
       * @param [sessionId]
       *  Represents the identifier of user {@link Session} that can be managed by the {@link SessionPool} or
       *  you can use the Apify Proxy [Session](https://docs.apify.com/proxy#sessions) identifier.
       *  When the provided sessionId is a number, it's converted to a string.
       *
       *  All the HTTP requests going through the proxy with the same session identifier
       *  will use the same target proxy server (i.e. the same IP address).
       *  The identifier must not be longer than 50 characters and include only the following: `0-9`, `a-z`, `A-Z`, `"."`, `"_"` and `"~"`.
       * @return A string with a proxy URL, including authentication credentials and port number.
       *  For example, `http://bob:password123@proxy.example.com:8000`
       */
      async newUrl(sessionId, options) {
        if (typeof sessionId === "number")
          sessionId = `${sessionId}`;
        if (this.newUrlFunction) {
          return await this._callNewUrlFunction(sessionId, { request: options?.request }) ?? void 0;
        }
        if (this.tieredProxyUrls) {
          return this._handleTieredUrl(sessionId ?? (0, utilities_1.cryptoRandomObjectId)(6), options).proxyUrl ?? void 0;
        }
        return this._handleCustomUrl(sessionId) ?? void 0;
      }
      /**
       * Handles custom url rotation with session
       */
      _handleCustomUrl(sessionId) {
        let customUrlToUse;
        if (!sessionId) {
          return this.proxyUrls[this.nextCustomUrlIndex++ % this.proxyUrls.length];
        }
        if (this.usedProxyUrls.has(sessionId)) {
          customUrlToUse = this.usedProxyUrls.get(sessionId);
        } else {
          customUrlToUse = this.proxyUrls[this.nextCustomUrlIndex++ % this.proxyUrls.length];
          this.usedProxyUrls.set(sessionId, customUrlToUse);
        }
        return customUrlToUse;
      }
      /**
       * Calls the custom newUrlFunction and checks format of its return value
       */
      async _callNewUrlFunction(sessionId, options) {
        const proxyUrl = await this.newUrlFunction(sessionId, options);
        try {
          if (proxyUrl) {
            new URL(proxyUrl);
          }
          return proxyUrl;
        } catch (err2) {
          throw new Error(`The provided newUrlFunction did not return a valid URL.
Cause: ${err2.message}`);
        }
      }
      _throwCannotCombineCustomMethods() {
        throw new Error('Cannot combine custom proxies "options.proxyUrls" with custom generating function "options.newUrlFunction".');
      }
      _throwNoOptionsProvided() {
        throw new Error('One of "options.proxyUrls" or "options.newUrlFunction" needs to be provided.');
      }
    };
    exports2.ProxyConfiguration = ProxyConfiguration2;
  }
});
var require_router = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/router.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Router = void 0;
    var errors_1 = require_errors();
    var defaultRoute = Symbol("default-route");
    var Router2 = class _Router {
      /**
       * use Router.create() instead!
       * @ignore
       */
      constructor() {
        Object.defineProperty(this, "routes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "middlewares", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
      }
      /**
       * Registers new route handler for given label.
       */
      addHandler(label, handler) {
        this.validate(label);
        this.routes.set(label, handler);
      }
      /**
       * Registers default route handler.
       */
      addDefaultHandler(handler) {
        this.validate(defaultRoute);
        this.routes.set(defaultRoute, handler);
      }
      /**
       * Registers a middleware that will be fired before the matching route handler.
       * Multiple middlewares can be registered, they will be fired in the same order.
       */
      use(middleware) {
        this.middlewares.push(middleware);
      }
      /**
       * Returns route handler for given label. If no label is provided, the default request handler will be returned.
       */
      getHandler(label) {
        if (label && this.routes.has(label)) {
          return this.routes.get(label);
        }
        if (this.routes.has(defaultRoute)) {
          return this.routes.get(defaultRoute);
        }
        throw new errors_1.MissingRouteError(`Route not found for label '${String(label)}'. You must set up a route for this label or a default route. Use \`requestHandler\`, \`router.addHandler\` or \`router.addDefaultHandler\`.`);
      }
      /**
       * Throws when the label already exists in our registry.
       */
      validate(label) {
        if (this.routes.has(label)) {
          const message = label === defaultRoute ? `Default route is already defined!` : `Route for label '${String(label)}' is already defined!`;
          throw new Error(message);
        }
      }
      /**
       * Creates new router instance. This instance can then serve as a `requestHandler` of your crawler.
       *
       * ```ts
       * import { Router, CheerioCrawler, CheerioCrawlingContext } from 'crawlee';
       *
       * const router = Router.create<CheerioCrawlingContext>();
       * router.addHandler('label-a', async (ctx) => {
       *    ctx.log.info('...');
       * });
       * router.addDefaultHandler(async (ctx) => {
       *    ctx.log.info('...');
       * });
       *
       * const crawler = new CheerioCrawler({
       *     requestHandler: router,
       * });
       * await crawler.run();
       * ```
       */
      static create(routes) {
        const router = new _Router();
        const obj = Object.create(Function.prototype);
        obj.addHandler = router.addHandler.bind(router);
        obj.addDefaultHandler = router.addDefaultHandler.bind(router);
        obj.getHandler = router.getHandler.bind(router);
        obj.use = router.use.bind(router);
        for (const [label, handler] of Object.entries(routes ?? {})) {
          router.addHandler(label, handler);
        }
        const func = async function(context) {
          const { url: url2, loadedUrl, label } = context.request;
          context.log.debug("Page opened.", { label, url: loadedUrl ?? url2 });
          for (const middleware of router.middlewares) {
            await middleware(context);
          }
          return router.getHandler(label)(context);
        };
        Object.setPrototypeOf(func, obj);
        return func;
      }
    };
    exports2.Router = Router2;
  }
});
var require_errors4 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/errors.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.CookieParseError = void 0;
    var CookieParseError2 = class _CookieParseError extends Error {
      constructor(cookieHeaderString) {
        super(`Could not parse cookie header string: ${cookieHeaderString}`);
        Object.defineProperty(this, "cookieHeaderString", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: cookieHeaderString
        });
        Error.captureStackTrace(this, _CookieParseError);
      }
    };
    exports2.CookieParseError = CookieParseError2;
  }
});
var require_events2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/events.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.EVENT_SESSION_RETIRED = void 0;
    exports2.EVENT_SESSION_RETIRED = "sessionRetired";
  }
});
var require_dist5 = __commonJS2({
  "../../node_modules/.pnpm/tough-cookie@6.0.0/node_modules/tough-cookie/dist/index.cjs"(exports2, module2) {
    "use strict";
    var __defProp32 = Object.defineProperty;
    var __getOwnPropDesc22 = Object.getOwnPropertyDescriptor;
    var __getOwnPropNames22 = Object.getOwnPropertyNames;
    var __hasOwnProp22 = Object.prototype.hasOwnProperty;
    var __export22 = (target, all52) => {
      for (var name2 in all52)
        __defProp32(target, name2, { get: all52[name2], enumerable: true });
    };
    var __copyProps22 = (to2, from, except, desc) => {
      if (from && typeof from === "object" || typeof from === "function") {
        for (let key of __getOwnPropNames22(from))
          if (!__hasOwnProp22.call(to2, key) && key !== except)
            __defProp32(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc22(from, key)) || desc.enumerable });
      }
      return to2;
    };
    var __toCommonJS22 = (mod3) => __copyProps22(__defProp32({}, "__esModule", { value: true }), mod3);
    var index_exports2 = {};
    __export22(index_exports2, {
      Cookie: () => Cookie,
      CookieJar: () => CookieJar,
      MemoryCookieStore: () => MemoryCookieStore,
      ParameterError: () => ParameterError,
      PrefixSecurityEnum: () => PrefixSecurityEnum,
      Store: () => Store,
      canonicalDomain: () => canonicalDomain,
      cookieCompare: () => cookieCompare,
      defaultPath: () => defaultPath,
      domainMatch: () => domainMatch,
      formatDate: () => formatDate,
      fromJSON: () => fromJSON2,
      getPublicSuffix: () => getPublicSuffix,
      parse: () => parse2,
      parseDate: () => parseDate,
      pathMatch: () => pathMatch,
      permuteDomain: () => permuteDomain,
      permutePath: () => permutePath,
      version: () => version
    });
    module2.exports = __toCommonJS22(index_exports2);
    function pathMatch(reqPath, cookiePath) {
      if (cookiePath === reqPath) {
        return true;
      }
      const idx = reqPath.indexOf(cookiePath);
      if (idx === 0) {
        if (cookiePath[cookiePath.length - 1] === "/") {
          return true;
        }
        if (reqPath.startsWith(cookiePath) && reqPath[cookiePath.length] === "/") {
          return true;
        }
      }
      return false;
    }
    var import_tldts = require_cjs10();
    var SPECIAL_USE_DOMAINS = ["local", "example", "invalid", "localhost", "test"];
    var SPECIAL_TREATMENT_DOMAINS = ["localhost", "invalid"];
    var defaultGetPublicSuffixOptions = {
      allowSpecialUseDomain: false,
      ignoreError: false
    };
    function getPublicSuffix(domain, options = {}) {
      options = { ...defaultGetPublicSuffixOptions, ...options };
      const domainParts = domain.split(".");
      const topLevelDomain = domainParts[domainParts.length - 1];
      const allowSpecialUseDomain = !!options.allowSpecialUseDomain;
      const ignoreError = !!options.ignoreError;
      if (allowSpecialUseDomain && topLevelDomain !== void 0 && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {
        if (domainParts.length > 1) {
          const secondLevelDomain = domainParts[domainParts.length - 2];
          return `${secondLevelDomain}.${topLevelDomain}`;
        } else if (SPECIAL_TREATMENT_DOMAINS.includes(topLevelDomain)) {
          return topLevelDomain;
        }
      }
      if (!ignoreError && topLevelDomain !== void 0 && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {
        throw new Error(
          `Cookie has domain set to the public suffix "${topLevelDomain}" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain: true, rejectPublicSuffixes: false}.`
        );
      }
      const publicSuffix = (0, import_tldts.getDomain)(domain, {
        allowIcannDomains: true,
        allowPrivateDomains: true
      });
      if (publicSuffix) return publicSuffix;
    }
    function permuteDomain(domain, allowSpecialUseDomain) {
      const pubSuf = getPublicSuffix(domain, {
        allowSpecialUseDomain
      });
      if (!pubSuf) {
        return void 0;
      }
      if (pubSuf == domain) {
        return [domain];
      }
      if (domain.slice(-1) == ".") {
        domain = domain.slice(0, -1);
      }
      const prefix = domain.slice(0, -(pubSuf.length + 1));
      const parts = prefix.split(".").reverse();
      let cur = pubSuf;
      const permutations = [cur];
      while (parts.length) {
        const part = parts.shift();
        cur = `${part}.${cur}`;
        permutations.push(cur);
      }
      return permutations;
    }
    var Store = class {
      constructor() {
        this.synchronous = false;
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookie(_domain, _path, _key, _callback) {
        throw new Error("findCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookies(_domain, _path, _allowSpecialUseDomain = false, _callback) {
        throw new Error("findCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      putCookie(_cookie, _callback) {
        throw new Error("putCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      updateCookie(_oldCookie, _newCookie, _callback) {
        throw new Error("updateCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookie(_domain, _path, _key, _callback) {
        throw new Error("removeCookie is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookies(_domain, _path, _callback) {
        throw new Error("removeCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeAllCookies(_callback) {
        throw new Error("removeAllCookies is not implemented");
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      getAllCookies(_callback) {
        throw new Error(
          "getAllCookies is not implemented (therefore jar cannot be serialized)"
        );
      }
    };
    var objectToString2 = (obj) => Object.prototype.toString.call(obj);
    var safeArrayToString = (arr, seenArrays) => {
      if (typeof arr.join !== "function") return objectToString2(arr);
      seenArrays.add(arr);
      const mapped = arr.map(
        (val) => val === null || val === void 0 || seenArrays.has(val) ? "" : safeToStringImpl(val, seenArrays)
      );
      return mapped.join();
    };
    var safeToStringImpl = (val, seenArrays = /* @__PURE__ */ new WeakSet()) => {
      if (typeof val !== "object" || val === null) {
        return String(val);
      } else if (typeof val.toString === "function") {
        return Array.isArray(val) ? (
          // Arrays have a weird custom toString that we need to replicate
          safeArrayToString(val, seenArrays)
        ) : (
          // eslint-disable-next-line @typescript-eslint/no-base-to-string
          String(val)
        );
      } else {
        return objectToString2(val);
      }
    };
    var safeToString = (val) => safeToStringImpl(val);
    function createPromiseCallback(cb) {
      let callback;
      let resolve2;
      let reject;
      const promise = new Promise((_resolve, _reject) => {
        resolve2 = _resolve;
        reject = _reject;
      });
      if (typeof cb === "function") {
        callback = (err2, result) => {
          try {
            if (err2) cb(err2);
            else cb(null, result);
          } catch (e2) {
            reject(e2 instanceof Error ? e2 : new Error());
          }
        };
      } else {
        callback = (err2, result) => {
          try {
            if (err2) reject(err2);
            else resolve2(result);
          } catch (e2) {
            reject(e2 instanceof Error ? e2 : new Error());
          }
        };
      }
      return {
        promise,
        callback,
        resolve: (value) => {
          callback(null, value);
          return promise;
        },
        reject: (error) => {
          callback(error);
          return promise;
        }
      };
    }
    function inOperator(k3, o22) {
      return k3 in o22;
    }
    var MemoryCookieStore = class extends Store {
      /**
       * Create a new {@link MemoryCookieStore}.
       */
      constructor() {
        super();
        this.synchronous = true;
        this.idx = /* @__PURE__ */ Object.create(null);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookie(domain, path22, key, callback) {
        const promiseCallback = createPromiseCallback(callback);
        if (domain == null || path22 == null || key == null) {
          return promiseCallback.resolve(void 0);
        }
        const result = this.idx[domain]?.[path22]?.[key];
        return promiseCallback.resolve(result);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      findCookies(domain, path22, allowSpecialUseDomain = false, callback) {
        if (typeof allowSpecialUseDomain === "function") {
          callback = allowSpecialUseDomain;
          allowSpecialUseDomain = true;
        }
        const results = [];
        const promiseCallback = createPromiseCallback(callback);
        if (!domain) {
          return promiseCallback.resolve([]);
        }
        let pathMatcher;
        if (!path22) {
          pathMatcher = function matchAll2(domainIndex) {
            for (const curPath in domainIndex) {
              const pathIndex = domainIndex[curPath];
              for (const key in pathIndex) {
                const value = pathIndex[key];
                if (value) {
                  results.push(value);
                }
              }
            }
          };
        } else {
          pathMatcher = function matchRFC(domainIndex) {
            for (const cookiePath in domainIndex) {
              if (pathMatch(path22, cookiePath)) {
                const pathIndex = domainIndex[cookiePath];
                for (const key in pathIndex) {
                  const value = pathIndex[key];
                  if (value) {
                    results.push(value);
                  }
                }
              }
            }
          };
        }
        const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];
        const idx = this.idx;
        domains.forEach((curDomain) => {
          const domainIndex = idx[curDomain];
          if (!domainIndex) {
            return;
          }
          pathMatcher(domainIndex);
        });
        return promiseCallback.resolve(results);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      putCookie(cookie, callback) {
        const promiseCallback = createPromiseCallback(callback);
        const { domain, path: path22, key } = cookie;
        if (domain == null || path22 == null || key == null) {
          return promiseCallback.resolve(void 0);
        }
        const domainEntry = this.idx[domain] ?? /* @__PURE__ */ Object.create(null);
        this.idx[domain] = domainEntry;
        const pathEntry = domainEntry[path22] ?? /* @__PURE__ */ Object.create(null);
        domainEntry[path22] = pathEntry;
        pathEntry[key] = cookie;
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      updateCookie(_oldCookie, newCookie, callback) {
        if (callback) this.putCookie(newCookie, callback);
        else return this.putCookie(newCookie);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookie(domain, path22, key, callback) {
        const promiseCallback = createPromiseCallback(callback);
        delete this.idx[domain]?.[path22]?.[key];
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeCookies(domain, path22, callback) {
        const promiseCallback = createPromiseCallback(callback);
        const domainEntry = this.idx[domain];
        if (domainEntry) {
          if (path22) {
            delete domainEntry[path22];
          } else {
            delete this.idx[domain];
          }
        }
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      removeAllCookies(callback) {
        const promiseCallback = createPromiseCallback(callback);
        this.idx = /* @__PURE__ */ Object.create(null);
        return promiseCallback.resolve(void 0);
      }
      /**
       * @internal No doc because this is an overload that supports the implementation
       */
      getAllCookies(callback) {
        const promiseCallback = createPromiseCallback(callback);
        const cookies = [];
        const idx = this.idx;
        const domains = Object.keys(idx);
        domains.forEach((domain) => {
          const domainEntry = idx[domain] ?? {};
          const paths = Object.keys(domainEntry);
          paths.forEach((path22) => {
            const pathEntry = domainEntry[path22] ?? {};
            const keys = Object.keys(pathEntry);
            keys.forEach((key) => {
              const keyEntry = pathEntry[key];
              if (keyEntry != null) {
                cookies.push(keyEntry);
              }
            });
          });
        });
        cookies.sort((a2, b2) => {
          return (a2.creationIndex || 0) - (b2.creationIndex || 0);
        });
        return promiseCallback.resolve(cookies);
      }
    };
    function isNonEmptyString2(data) {
      return isString3(data) && data !== "";
    }
    function isEmptyString2(data) {
      return data === "" || data instanceof String && data.toString() === "";
    }
    function isString3(data) {
      return typeof data === "string" || data instanceof String;
    }
    function isObject4(data) {
      return objectToString2(data) === "[object Object]";
    }
    function validate(bool, cbOrMessage, message) {
      if (bool) return;
      const cb = typeof cbOrMessage === "function" ? cbOrMessage : void 0;
      let options = typeof cbOrMessage === "function" ? message : cbOrMessage;
      if (!isObject4(options)) options = "[object Object]";
      const err2 = new ParameterError(safeToString(options));
      if (cb) cb(err2);
      else throw err2;
    }
    var ParameterError = class extends Error {
    };
    var version = "6.0.0";
    var PrefixSecurityEnum = {
      SILENT: "silent",
      STRICT: "strict",
      DISABLED: "unsafe-disabled"
    };
    Object.freeze(PrefixSecurityEnum);
    var IP_V6_REGEX = `
\\[?(?:
(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|
(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|
(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|
(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|
(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|
(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:))
)(?:%[0-9a-zA-Z]{1,})?\\]?
`.replace(/\s*\/\/.*$/gm, "").replace(/\n/g, "").trim();
    var IP_V6_REGEX_OBJECT = new RegExp(`^${IP_V6_REGEX}$`);
    var IP_V4_REGEX = `(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])`;
    var IP_V4_REGEX_OBJECT = new RegExp(`^${IP_V4_REGEX}$`);
    function domainToASCII(domain) {
      return new URL(`http://${domain}`).hostname;
    }
    function canonicalDomain(domainName) {
      if (domainName == null) {
        return void 0;
      }
      let str = domainName.trim().replace(/^\./, "");
      if (IP_V6_REGEX_OBJECT.test(str)) {
        if (!str.startsWith("[")) {
          str = "[" + str;
        }
        if (!str.endsWith("]")) {
          str = str + "]";
        }
        return domainToASCII(str).slice(1, -1);
      }
      if (/[^\u0001-\u007f]/.test(str)) {
        return domainToASCII(str);
      }
      return str.toLowerCase();
    }
    function formatDate(date) {
      return date.toUTCString();
    }
    var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
    var MONTH_TO_NUM = {
      jan: 0,
      feb: 1,
      mar: 2,
      apr: 3,
      may: 4,
      jun: 5,
      jul: 6,
      aug: 7,
      sep: 8,
      oct: 9,
      nov: 10,
      dec: 11
    };
    function parseDigits(token2, minDigits, maxDigits, trailingOK) {
      let count = 0;
      while (count < token2.length) {
        const c3 = token2.charCodeAt(count);
        if (c3 <= 47 || c3 >= 58) {
          break;
        }
        count++;
      }
      if (count < minDigits || count > maxDigits) {
        return;
      }
      if (!trailingOK && count != token2.length) {
        return;
      }
      return parseInt(token2.slice(0, count), 10);
    }
    function parseTime(token2) {
      const parts = token2.split(":");
      const result = [0, 0, 0];
      if (parts.length !== 3) {
        return;
      }
      for (let i22 = 0; i22 < 3; i22++) {
        const trailingOK = i22 == 2;
        const numPart = parts[i22];
        if (numPart === void 0) {
          return;
        }
        const num = parseDigits(numPart, 1, 2, trailingOK);
        if (num === void 0) {
          return;
        }
        result[i22] = num;
      }
      return result;
    }
    function parseMonth(token2) {
      token2 = String(token2).slice(0, 3).toLowerCase();
      switch (token2) {
        case "jan":
          return MONTH_TO_NUM.jan;
        case "feb":
          return MONTH_TO_NUM.feb;
        case "mar":
          return MONTH_TO_NUM.mar;
        case "apr":
          return MONTH_TO_NUM.apr;
        case "may":
          return MONTH_TO_NUM.may;
        case "jun":
          return MONTH_TO_NUM.jun;
        case "jul":
          return MONTH_TO_NUM.jul;
        case "aug":
          return MONTH_TO_NUM.aug;
        case "sep":
          return MONTH_TO_NUM.sep;
        case "oct":
          return MONTH_TO_NUM.oct;
        case "nov":
          return MONTH_TO_NUM.nov;
        case "dec":
          return MONTH_TO_NUM.dec;
        default:
          return;
      }
    }
    function parseDate(cookieDate) {
      if (!cookieDate) {
        return;
      }
      const tokens = cookieDate.split(DATE_DELIM);
      let hour;
      let minute;
      let second;
      let dayOfMonth;
      let month;
      let year;
      for (let i22 = 0; i22 < tokens.length; i22++) {
        const token2 = (tokens[i22] ?? "").trim();
        if (!token2.length) {
          continue;
        }
        if (second === void 0) {
          const result = parseTime(token2);
          if (result) {
            hour = result[0];
            minute = result[1];
            second = result[2];
            continue;
          }
        }
        if (dayOfMonth === void 0) {
          const result = parseDigits(token2, 1, 2, true);
          if (result !== void 0) {
            dayOfMonth = result;
            continue;
          }
        }
        if (month === void 0) {
          const result = parseMonth(token2);
          if (result !== void 0) {
            month = result;
            continue;
          }
        }
        if (year === void 0) {
          const result = parseDigits(token2, 2, 4, true);
          if (result !== void 0) {
            year = result;
            if (year >= 70 && year <= 99) {
              year += 1900;
            } else if (year >= 0 && year <= 69) {
              year += 2e3;
            }
          }
        }
      }
      if (dayOfMonth === void 0 || month === void 0 || year === void 0 || hour === void 0 || minute === void 0 || second === void 0 || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {
        return;
      }
      return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
    }
    var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;
    var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/;
    var CONTROL_CHARS = /[\x00-\x1F]/;
    var TERMINATORS = ["\n", "\r", "\0"];
    function trimTerminator(str) {
      if (isEmptyString2(str)) return str;
      for (let t9 = 0; t9 < TERMINATORS.length; t9++) {
        const terminator = TERMINATORS[t9];
        const terminatorIdx = terminator ? str.indexOf(terminator) : -1;
        if (terminatorIdx !== -1) {
          str = str.slice(0, terminatorIdx);
        }
      }
      return str;
    }
    function parseCookiePair(cookiePair, looseMode) {
      cookiePair = trimTerminator(cookiePair);
      let firstEq = cookiePair.indexOf("=");
      if (looseMode) {
        if (firstEq === 0) {
          cookiePair = cookiePair.substring(1);
          firstEq = cookiePair.indexOf("=");
        }
      } else {
        if (firstEq <= 0) {
          return void 0;
        }
      }
      let cookieName, cookieValue;
      if (firstEq <= 0) {
        cookieName = "";
        cookieValue = cookiePair.trim();
      } else {
        cookieName = cookiePair.slice(0, firstEq).trim();
        cookieValue = cookiePair.slice(firstEq + 1).trim();
      }
      if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {
        return void 0;
      }
      const c3 = new Cookie();
      c3.key = cookieName;
      c3.value = cookieValue;
      return c3;
    }
    function parse(str, options) {
      if (isEmptyString2(str) || !isString3(str)) {
        return void 0;
      }
      str = str.trim();
      const firstSemi = str.indexOf(";");
      const cookiePair = firstSemi === -1 ? str : str.slice(0, firstSemi);
      const c3 = parseCookiePair(cookiePair, options?.loose ?? false);
      if (!c3) {
        return void 0;
      }
      if (firstSemi === -1) {
        return c3;
      }
      const unparsed = str.slice(firstSemi + 1).trim();
      if (unparsed.length === 0) {
        return c3;
      }
      const cookie_avs = unparsed.split(";");
      while (cookie_avs.length) {
        const av = (cookie_avs.shift() ?? "").trim();
        if (av.length === 0) {
          continue;
        }
        const av_sep = av.indexOf("=");
        let av_key, av_value;
        if (av_sep === -1) {
          av_key = av;
          av_value = null;
        } else {
          av_key = av.slice(0, av_sep);
          av_value = av.slice(av_sep + 1);
        }
        av_key = av_key.trim().toLowerCase();
        if (av_value) {
          av_value = av_value.trim();
        }
        switch (av_key) {
          case "expires":
            if (av_value) {
              const exp = parseDate(av_value);
              if (exp) {
                c3.expires = exp;
              }
            }
            break;
          case "max-age":
            if (av_value) {
              if (/^-?[0-9]+$/.test(av_value)) {
                const delta = parseInt(av_value, 10);
                c3.setMaxAge(delta);
              }
            }
            break;
          case "domain":
            if (av_value) {
              const domain = av_value.trim().replace(/^\./, "");
              if (domain) {
                c3.domain = domain.toLowerCase();
              }
            }
            break;
          case "path":
            c3.path = av_value && av_value[0] === "/" ? av_value : null;
            break;
          case "secure":
            c3.secure = true;
            break;
          case "httponly":
            c3.httpOnly = true;
            break;
          case "samesite":
            switch (av_value ? av_value.toLowerCase() : "") {
              case "strict":
                c3.sameSite = "strict";
                break;
              case "lax":
                c3.sameSite = "lax";
                break;
              case "none":
                c3.sameSite = "none";
                break;
              default:
                c3.sameSite = void 0;
                break;
            }
            break;
          default:
            c3.extensions = c3.extensions || [];
            c3.extensions.push(av);
            break;
        }
      }
      return c3;
    }
    function fromJSON(str) {
      if (!str || isEmptyString2(str)) {
        return void 0;
      }
      let obj;
      if (typeof str === "string") {
        try {
          obj = JSON.parse(str);
        } catch {
          return void 0;
        }
      } else {
        obj = str;
      }
      const c3 = new Cookie();
      Cookie.serializableProperties.forEach((prop) => {
        if (obj && typeof obj === "object" && inOperator(prop, obj)) {
          const val = obj[prop];
          if (val === void 0) {
            return;
          }
          if (inOperator(prop, cookieDefaults) && val === cookieDefaults[prop]) {
            return;
          }
          switch (prop) {
            case "key":
            case "value":
            case "sameSite":
              if (typeof val === "string") {
                c3[prop] = val;
              }
              break;
            case "expires":
            case "creation":
            case "lastAccessed":
              if (typeof val === "number" || typeof val === "string" || val instanceof Date) {
                c3[prop] = obj[prop] == "Infinity" ? "Infinity" : new Date(val);
              } else if (val === null) {
                c3[prop] = null;
              }
              break;
            case "maxAge":
              if (typeof val === "number" || val === "Infinity" || val === "-Infinity") {
                c3[prop] = val;
              }
              break;
            case "domain":
            case "path":
              if (typeof val === "string" || val === null) {
                c3[prop] = val;
              }
              break;
            case "secure":
            case "httpOnly":
              if (typeof val === "boolean") {
                c3[prop] = val;
              }
              break;
            case "extensions":
              if (Array.isArray(val) && val.every((item) => typeof item === "string")) {
                c3[prop] = val;
              }
              break;
            case "hostOnly":
            case "pathIsDefault":
              if (typeof val === "boolean" || val === null) {
                c3[prop] = val;
              }
              break;
          }
        }
      });
      return c3;
    }
    var cookieDefaults = {
      // the order in which the RFC has them:
      key: "",
      value: "",
      expires: "Infinity",
      maxAge: null,
      domain: null,
      path: null,
      secure: false,
      httpOnly: false,
      extensions: null,
      // set by the CookieJar:
      hostOnly: null,
      pathIsDefault: null,
      creation: null,
      lastAccessed: null,
      sameSite: void 0
    };
    var _Cookie = class _Cookie2 {
      /**
       * Create a new Cookie instance.
       * @public
       * @param options - The attributes to set on the cookie
       */
      constructor(options = {}) {
        this.key = options.key ?? cookieDefaults.key;
        this.value = options.value ?? cookieDefaults.value;
        this.expires = options.expires ?? cookieDefaults.expires;
        this.maxAge = options.maxAge ?? cookieDefaults.maxAge;
        this.domain = options.domain ?? cookieDefaults.domain;
        this.path = options.path ?? cookieDefaults.path;
        this.secure = options.secure ?? cookieDefaults.secure;
        this.httpOnly = options.httpOnly ?? cookieDefaults.httpOnly;
        this.extensions = options.extensions ?? cookieDefaults.extensions;
        this.creation = options.creation ?? cookieDefaults.creation;
        this.hostOnly = options.hostOnly ?? cookieDefaults.hostOnly;
        this.pathIsDefault = options.pathIsDefault ?? cookieDefaults.pathIsDefault;
        this.lastAccessed = options.lastAccessed ?? cookieDefaults.lastAccessed;
        this.sameSite = options.sameSite ?? cookieDefaults.sameSite;
        this.creation = options.creation ?? /* @__PURE__ */ new Date();
        Object.defineProperty(this, "creationIndex", {
          configurable: false,
          enumerable: false,
          // important for assert.deepEqual checks
          writable: true,
          value: ++_Cookie2.cookiesCreated
        });
        this.creationIndex = _Cookie2.cookiesCreated;
      }
      [Symbol.for("nodejs.util.inspect.custom")]() {
        const now = Date.now();
        const hostOnly = this.hostOnly != null ? this.hostOnly.toString() : "?";
        const createAge = this.creation && this.creation !== "Infinity" ? `${String(now - this.creation.getTime())}ms` : "?";
        const accessAge = this.lastAccessed && this.lastAccessed !== "Infinity" ? `${String(now - this.lastAccessed.getTime())}ms` : "?";
        return `Cookie="${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}"`;
      }
      /**
       * For convenience in using `JSON.stringify(cookie)`. Returns a plain-old Object that can be JSON-serialized.
       *
       * @remarks
       * - Any `Date` properties (such as {@link Cookie.expires}, {@link Cookie.creation}, and {@link Cookie.lastAccessed}) are exported in ISO format (`Date.toISOString()`).
       *
       *  - Custom Cookie properties are discarded. In tough-cookie 1.x, since there was no {@link Cookie.toJSON} method explicitly defined, all enumerable properties were captured.
       *      If you want a property to be serialized, add the property name to {@link Cookie.serializableProperties}.
       */
      toJSON() {
        const obj = {};
        for (const prop of _Cookie2.serializableProperties) {
          const val = this[prop];
          if (val === cookieDefaults[prop]) {
            continue;
          }
          switch (prop) {
            case "key":
            case "value":
            case "sameSite":
              if (typeof val === "string") {
                obj[prop] = val;
              }
              break;
            case "expires":
            case "creation":
            case "lastAccessed":
              if (typeof val === "number" || typeof val === "string" || val instanceof Date) {
                obj[prop] = val == "Infinity" ? "Infinity" : new Date(val).toISOString();
              } else if (val === null) {
                obj[prop] = null;
              }
              break;
            case "maxAge":
              if (typeof val === "number" || val === "Infinity" || val === "-Infinity") {
                obj[prop] = val;
              }
              break;
            case "domain":
            case "path":
              if (typeof val === "string" || val === null) {
                obj[prop] = val;
              }
              break;
            case "secure":
            case "httpOnly":
              if (typeof val === "boolean") {
                obj[prop] = val;
              }
              break;
            case "extensions":
              if (Array.isArray(val)) {
                obj[prop] = val;
              }
              break;
            case "hostOnly":
            case "pathIsDefault":
              if (typeof val === "boolean" || val === null) {
                obj[prop] = val;
              }
              break;
          }
        }
        return obj;
      }
      /**
       * Does a deep clone of this cookie, implemented exactly as `Cookie.fromJSON(cookie.toJSON())`.
       * @public
       */
      clone() {
        return fromJSON(this.toJSON());
      }
      /**
       * Validates cookie attributes for semantic correctness. Useful for "lint" checking any `Set-Cookie` headers you generate.
       * For now, it returns a boolean, but eventually could return a reason string.
       *
       * @remarks
       * Works for a few things, but is by no means comprehensive.
       *
       * @beta
       */
      validate() {
        if (!this.value || !COOKIE_OCTETS.test(this.value)) {
          return false;
        }
        if (this.expires != "Infinity" && !(this.expires instanceof Date) && !parseDate(this.expires)) {
          return false;
        }
        if (this.maxAge != null && this.maxAge !== "Infinity" && (this.maxAge === "-Infinity" || this.maxAge <= 0)) {
          return false;
        }
        if (this.path != null && !PATH_VALUE.test(this.path)) {
          return false;
        }
        const cdomain = this.cdomain();
        if (cdomain) {
          if (cdomain.match(/\.$/)) {
            return false;
          }
          const suffix = getPublicSuffix(cdomain);
          if (suffix == null) {
            return false;
          }
        }
        return true;
      }
      /**
       * Sets the 'Expires' attribute on a cookie.
       *
       * @remarks
       * When given a `string` value it will be parsed with {@link parseDate}. If the value can't be parsed as a cookie date
       * then the 'Expires' attribute will be set to `"Infinity"`.
       *
       * @param exp - the new value for the 'Expires' attribute of the cookie.
       */
      setExpires(exp) {
        if (exp instanceof Date) {
          this.expires = exp;
        } else {
          this.expires = parseDate(exp) || "Infinity";
        }
      }
      /**
       * Sets the 'Max-Age' attribute (in seconds) on a cookie.
       *
       * @remarks
       * Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it can be serialized to JSON.
       *
       * @param age - the new value for the 'Max-Age' attribute (in seconds).
       */
      setMaxAge(age) {
        if (age === Infinity) {
          this.maxAge = "Infinity";
        } else if (age === -Infinity) {
          this.maxAge = "-Infinity";
        } else {
          this.maxAge = age;
        }
      }
      /**
       * Encodes to a `Cookie` header value (specifically, the {@link Cookie.key} and {@link Cookie.value} properties joined with "=").
       * @public
       */
      cookieString() {
        const val = this.value || "";
        if (this.key) {
          return `${this.key}=${val}`;
        }
        return val;
      }
      /**
       * Encodes to a `Set-Cookie header` value.
       * @public
       */
      toString() {
        let str = this.cookieString();
        if (this.expires != "Infinity") {
          if (this.expires instanceof Date) {
            str += `; Expires=${formatDate(this.expires)}`;
          }
        }
        if (this.maxAge != null && this.maxAge != Infinity) {
          str += `; Max-Age=${String(this.maxAge)}`;
        }
        if (this.domain && !this.hostOnly) {
          str += `; Domain=${this.domain}`;
        }
        if (this.path) {
          str += `; Path=${this.path}`;
        }
        if (this.secure) {
          str += "; Secure";
        }
        if (this.httpOnly) {
          str += "; HttpOnly";
        }
        if (this.sameSite && this.sameSite !== "none") {
          if (this.sameSite.toLowerCase() === _Cookie2.sameSiteCanonical.lax.toLowerCase()) {
            str += `; SameSite=${_Cookie2.sameSiteCanonical.lax}`;
          } else if (this.sameSite.toLowerCase() === _Cookie2.sameSiteCanonical.strict.toLowerCase()) {
            str += `; SameSite=${_Cookie2.sameSiteCanonical.strict}`;
          } else {
            str += `; SameSite=${this.sameSite}`;
          }
        }
        if (this.extensions) {
          this.extensions.forEach((ext) => {
            str += `; ${ext}`;
          });
        }
        return str;
      }
      /**
       * Computes the TTL relative to now (milliseconds).
       *
       * @remarks
       * - `Infinity` is returned for cookies without an explicit expiry
       *
       * - `0` is returned if the cookie is expired.
       *
       * - Otherwise a time-to-live in milliseconds is returned.
       *
       * @param now - passing an explicit value is mostly used for testing purposes since this defaults to the `Date.now()`
       * @public
       */
      TTL(now = Date.now()) {
        if (this.maxAge != null && typeof this.maxAge === "number") {
          return this.maxAge <= 0 ? 0 : this.maxAge * 1e3;
        }
        const expires = this.expires;
        if (expires === "Infinity") {
          return Infinity;
        }
        return (expires?.getTime() ?? now) - (now || Date.now());
      }
      /**
       * Computes the absolute unix-epoch milliseconds that this cookie expires.
       *
       * The "Max-Age" attribute takes precedence over "Expires" (as per the RFC). The {@link Cookie.lastAccessed} attribute
       * (or the `now` parameter if given) is used to offset the {@link Cookie.maxAge} attribute.
       *
       * If Expires ({@link Cookie.expires}) is set, that's returned.
       *
       * @param now - can be used to provide a time offset (instead of {@link Cookie.lastAccessed}) to use when calculating the "Max-Age" value
       */
      expiryTime(now) {
        if (this.maxAge != null) {
          const relativeTo = now || this.lastAccessed || /* @__PURE__ */ new Date();
          const maxAge = typeof this.maxAge === "number" ? this.maxAge : -Infinity;
          const age = maxAge <= 0 ? -Infinity : maxAge * 1e3;
          if (relativeTo === "Infinity") {
            return Infinity;
          }
          return relativeTo.getTime() + age;
        }
        if (this.expires == "Infinity") {
          return Infinity;
        }
        return this.expires ? this.expires.getTime() : void 0;
      }
      /**
       * Similar to {@link Cookie.expiryTime}, computes the absolute unix-epoch milliseconds that this cookie expires and returns it as a Date.
       *
       * The "Max-Age" attribute takes precedence over "Expires" (as per the RFC). The {@link Cookie.lastAccessed} attribute
       * (or the `now` parameter if given) is used to offset the {@link Cookie.maxAge} attribute.
       *
       * If Expires ({@link Cookie.expires}) is set, that's returned.
       *
       * @param now - can be used to provide a time offset (instead of {@link Cookie.lastAccessed}) to use when calculating the "Max-Age" value
       */
      expiryDate(now) {
        const millisec = this.expiryTime(now);
        if (millisec == Infinity) {
          return /* @__PURE__ */ new Date(2147483647e3);
        } else if (millisec == -Infinity) {
          return /* @__PURE__ */ new Date(0);
        } else {
          return millisec == void 0 ? void 0 : new Date(millisec);
        }
      }
      /**
       * Indicates if the cookie has been persisted to a store or not.
       * @public
       */
      isPersistent() {
        return this.maxAge != null || this.expires != "Infinity";
      }
      /**
       * Calls {@link canonicalDomain} with the {@link Cookie.domain} property.
       * @public
       */
      canonicalizedDomain() {
        return canonicalDomain(this.domain);
      }
      /**
       * Alias for {@link Cookie.canonicalizedDomain}
       * @public
       */
      cdomain() {
        return canonicalDomain(this.domain);
      }
      /**
       * Parses a string into a Cookie object.
       *
       * @remarks
       * Note: when parsing a `Cookie` header it must be split by ';' before each Cookie string can be parsed.
       *
       * @example
       * ```
       * // parse a `Set-Cookie` header
       * const setCookieHeader = 'a=bcd; Expires=Tue, 18 Oct 2011 07:05:03 GMT'
       * const cookie = Cookie.parse(setCookieHeader)
       * cookie.key === 'a'
       * cookie.value === 'bcd'
       * cookie.expires === new Date(Date.parse('Tue, 18 Oct 2011 07:05:03 GMT'))
       * ```
       *
       * @example
       * ```
       * // parse a `Cookie` header
       * const cookieHeader = 'name=value; name2=value2; name3=value3'
       * const cookies = cookieHeader.split(';').map(Cookie.parse)
       * cookies[0].name === 'name'
       * cookies[0].value === 'value'
       * cookies[1].name === 'name2'
       * cookies[1].value === 'value2'
       * cookies[2].name === 'name3'
       * cookies[2].value === 'value3'
       * ```
       *
       * @param str - The `Set-Cookie` header or a Cookie string to parse.
       * @param options - Configures `strict` or `loose` mode for cookie parsing
       */
      static parse(str, options) {
        return parse(str, options);
      }
      /**
       * Does the reverse of {@link Cookie.toJSON}.
       *
       * @remarks
       * Any Date properties (such as .expires, .creation, and .lastAccessed) are parsed via Date.parse, not tough-cookie's parseDate, since ISO timestamps are being handled at this layer.
       *
       * @example
       * ```
       * const json = JSON.stringify({
       *   key: 'alpha',
       *   value: 'beta',
       *   domain: 'example.com',
       *   path: '/foo',
       *   expires: '2038-01-19T03:14:07.000Z',
       * })
       * const cookie = Cookie.fromJSON(json)
       * cookie.key === 'alpha'
       * cookie.value === 'beta'
       * cookie.domain === 'example.com'
       * cookie.path === '/foo'
       * cookie.expires === new Date(Date.parse('2038-01-19T03:14:07.000Z'))
       * ```
       *
       * @param str - An unparsed JSON string or a value that has already been parsed as JSON
       */
      static fromJSON(str) {
        return fromJSON(str);
      }
    };
    _Cookie.cookiesCreated = 0;
    _Cookie.sameSiteLevel = {
      strict: 3,
      lax: 2,
      none: 1
    };
    _Cookie.sameSiteCanonical = {
      strict: "Strict",
      lax: "Lax"
    };
    _Cookie.serializableProperties = [
      "key",
      "value",
      "expires",
      "maxAge",
      "domain",
      "path",
      "secure",
      "httpOnly",
      "extensions",
      "hostOnly",
      "pathIsDefault",
      "creation",
      "lastAccessed",
      "sameSite"
    ];
    var Cookie = _Cookie;
    var MAX_TIME = 2147483647e3;
    function cookieCompare(a2, b2) {
      let cmp;
      const aPathLen = a2.path ? a2.path.length : 0;
      const bPathLen = b2.path ? b2.path.length : 0;
      cmp = bPathLen - aPathLen;
      if (cmp !== 0) {
        return cmp;
      }
      const aTime = a2.creation && a2.creation instanceof Date ? a2.creation.getTime() : MAX_TIME;
      const bTime = b2.creation && b2.creation instanceof Date ? b2.creation.getTime() : MAX_TIME;
      cmp = aTime - bTime;
      if (cmp !== 0) {
        return cmp;
      }
      cmp = (a2.creationIndex || 0) - (b2.creationIndex || 0);
      return cmp;
    }
    function defaultPath(path22) {
      if (!path22 || path22.slice(0, 1) !== "/") {
        return "/";
      }
      if (path22 === "/") {
        return path22;
      }
      const rightSlash = path22.lastIndexOf("/");
      if (rightSlash === 0) {
        return "/";
      }
      return path22.slice(0, rightSlash);
    }
    var IP_REGEX_LOWERCASE = /(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/;
    function domainMatch(domain, cookieDomain, canonicalize) {
      if (domain == null || cookieDomain == null) {
        return void 0;
      }
      let _str;
      let _domStr;
      if (canonicalize !== false) {
        _str = canonicalDomain(domain);
        _domStr = canonicalDomain(cookieDomain);
      } else {
        _str = domain;
        _domStr = cookieDomain;
      }
      if (_str == null || _domStr == null) {
        return void 0;
      }
      if (_str == _domStr) {
        return true;
      }
      const idx = _str.lastIndexOf(_domStr);
      if (idx <= 0) {
        return false;
      }
      if (_str.length !== _domStr.length + idx) {
        return false;
      }
      if (_str.substring(idx - 1, idx) !== ".") {
        return false;
      }
      return !IP_REGEX_LOWERCASE.test(_str);
    }
    function isLoopbackV4(address) {
      const octets = address.split(".");
      return octets.length === 4 && octets[0] !== void 0 && parseInt(octets[0], 10) === 127;
    }
    function isLoopbackV6(address) {
      return address === "::1";
    }
    function isNormalizedLocalhostTLD(lowerHost) {
      return lowerHost.endsWith(".localhost");
    }
    function isLocalHostname(host) {
      const lowerHost = host.toLowerCase();
      return lowerHost === "localhost" || isNormalizedLocalhostTLD(lowerHost);
    }
    function hostNoBrackets(host) {
      if (host.length >= 2 && host.startsWith("[") && host.endsWith("]")) {
        return host.substring(1, host.length - 1);
      }
      return host;
    }
    function isPotentiallyTrustworthy(inputUrl, allowSecureOnLocal = true) {
      let url2;
      if (typeof inputUrl === "string") {
        try {
          url2 = new URL(inputUrl);
        } catch {
          return false;
        }
      } else {
        url2 = inputUrl;
      }
      const scheme = url2.protocol.replace(":", "").toLowerCase();
      const hostname = hostNoBrackets(url2.hostname).replace(/\.+$/, "");
      if (scheme === "https" || scheme === "wss") {
        return true;
      }
      if (!allowSecureOnLocal) {
        return false;
      }
      if (IP_V4_REGEX_OBJECT.test(hostname)) {
        return isLoopbackV4(hostname);
      }
      if (IP_V6_REGEX_OBJECT.test(hostname)) {
        return isLoopbackV6(hostname);
      }
      return isLocalHostname(hostname);
    }
    var defaultSetCookieOptions = {
      loose: false,
      sameSiteContext: void 0,
      ignoreError: false,
      http: true
    };
    var defaultGetCookieOptions = {
      http: true,
      expire: true,
      allPaths: false,
      sameSiteContext: void 0,
      sort: void 0
    };
    var SAME_SITE_CONTEXT_VAL_ERR = 'Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';
    function getCookieContext(url2) {
      if (url2 && typeof url2 === "object" && "hostname" in url2 && typeof url2.hostname === "string" && "pathname" in url2 && typeof url2.pathname === "string" && "protocol" in url2 && typeof url2.protocol === "string") {
        return {
          hostname: url2.hostname,
          pathname: url2.pathname,
          protocol: url2.protocol
        };
      } else if (typeof url2 === "string") {
        try {
          return new URL(decodeURI(url2));
        } catch {
          return new URL(url2);
        }
      } else {
        throw new ParameterError("`url` argument is not a string or URL.");
      }
    }
    function checkSameSiteContext(value) {
      const context = String(value).toLowerCase();
      if (context === "none" || context === "lax" || context === "strict") {
        return context;
      } else {
        return void 0;
      }
    }
    function isSecurePrefixConditionMet(cookie) {
      const startsWithSecurePrefix = typeof cookie.key === "string" && cookie.key.startsWith("__Secure-");
      return !startsWithSecurePrefix || cookie.secure;
    }
    function isHostPrefixConditionMet(cookie) {
      const startsWithHostPrefix = typeof cookie.key === "string" && cookie.key.startsWith("__Host-");
      return !startsWithHostPrefix || Boolean(
        cookie.secure && cookie.hostOnly && cookie.path != null && cookie.path === "/"
      );
    }
    function getNormalizedPrefixSecurity(prefixSecurity) {
      const normalizedPrefixSecurity = prefixSecurity.toLowerCase();
      switch (normalizedPrefixSecurity) {
        case PrefixSecurityEnum.STRICT:
        case PrefixSecurityEnum.SILENT:
        case PrefixSecurityEnum.DISABLED:
          return normalizedPrefixSecurity;
        default:
          return PrefixSecurityEnum.SILENT;
      }
    }
    var CookieJar = class _CookieJar {
      /**
       * Creates a new `CookieJar` instance.
       *
       * @remarks
       * - If a custom store is not passed to the constructor, an in-memory store ({@link MemoryCookieStore} will be created and used.
       * - If a boolean value is passed as the `options` parameter, this is equivalent to passing `{ rejectPublicSuffixes: <value> }`
       *
       * @param store - a custom {@link Store} implementation (defaults to {@link MemoryCookieStore})
       * @param options - configures how cookies are processed by the cookie jar
       */
      constructor(store, options) {
        if (typeof options === "boolean") {
          options = { rejectPublicSuffixes: options };
        }
        this.rejectPublicSuffixes = options?.rejectPublicSuffixes ?? true;
        this.enableLooseMode = options?.looseMode ?? false;
        this.allowSpecialUseDomain = options?.allowSpecialUseDomain ?? true;
        this.allowSecureOnLocal = options?.allowSecureOnLocal ?? true;
        this.prefixSecurity = getNormalizedPrefixSecurity(
          options?.prefixSecurity ?? "silent"
        );
        this.store = store ?? new MemoryCookieStore();
      }
      callSync(fn3) {
        if (!this.store.synchronous) {
          throw new Error(
            "CookieJar store is not synchronous; use async API instead."
          );
        }
        let syncErr = null;
        let syncResult = void 0;
        try {
          fn3.call(this, (error, result) => {
            syncErr = error;
            syncResult = result;
          });
        } catch (err2) {
          syncErr = err2;
        }
        if (syncErr) throw syncErr;
        return syncResult;
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      setCookie(cookie, url2, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        let context;
        try {
          if (typeof url2 === "string") {
            validate(
              isNonEmptyString2(url2),
              callback,
              safeToString(options)
            );
          }
          context = getCookieContext(url2);
          if (typeof url2 === "function") {
            return promiseCallback.reject(new Error("No URL was specified"));
          }
          if (typeof options === "function") {
            options = defaultSetCookieOptions;
          }
          validate(typeof cb === "function", cb);
          if (!isNonEmptyString2(cookie) && !isObject4(cookie) && cookie instanceof String && cookie.length == 0) {
            return promiseCallback.resolve(void 0);
          }
        } catch (err2) {
          return promiseCallback.reject(err2);
        }
        const host = canonicalDomain(context.hostname) ?? null;
        const loose = options?.loose || this.enableLooseMode;
        let sameSiteContext = null;
        if (options?.sameSiteContext) {
          sameSiteContext = checkSameSiteContext(options.sameSiteContext);
          if (!sameSiteContext) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
        }
        if (typeof cookie === "string" || cookie instanceof String) {
          const parsedCookie = Cookie.parse(cookie.toString(), { loose });
          if (!parsedCookie) {
            const err2 = new Error("Cookie failed to parse");
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
          cookie = parsedCookie;
        } else if (!(cookie instanceof Cookie)) {
          const err2 = new Error(
            "First argument to setCookie must be a Cookie object or string"
          );
          return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
        }
        const now = options?.now || /* @__PURE__ */ new Date();
        if (this.rejectPublicSuffixes && cookie.domain) {
          try {
            const cdomain = cookie.cdomain();
            const suffix = typeof cdomain === "string" ? getPublicSuffix(cdomain, {
              allowSpecialUseDomain: this.allowSpecialUseDomain,
              ignoreError: options?.ignoreError
            }) : null;
            if (suffix == null && !IP_V6_REGEX_OBJECT.test(cookie.domain)) {
              const err2 = new Error("Cookie has domain set to a public suffix");
              return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
            }
          } catch (err2) {
            return options?.ignoreError ? promiseCallback.resolve(void 0) : (
              // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
              promiseCallback.reject(err2)
            );
          }
        }
        if (cookie.domain) {
          if (!domainMatch(host ?? void 0, cookie.cdomain() ?? void 0, false)) {
            const err2 = new Error(
              `Cookie not in this host's domain. Cookie:${cookie.cdomain() ?? "null"} Request:${host ?? "null"}`
            );
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
          if (cookie.hostOnly == null) {
            cookie.hostOnly = false;
          }
        } else {
          cookie.hostOnly = true;
          cookie.domain = host;
        }
        if (!cookie.path || cookie.path[0] !== "/") {
          cookie.path = defaultPath(context.pathname);
          cookie.pathIsDefault = true;
        }
        if (options?.http === false && cookie.httpOnly) {
          const err2 = new Error("Cookie is HttpOnly and this isn't an HTTP API");
          return options.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
        }
        if (cookie.sameSite !== "none" && cookie.sameSite !== void 0 && sameSiteContext) {
          if (sameSiteContext === "none") {
            const err2 = new Error(
              "Cookie is SameSite but this is a cross-origin request"
            );
            return options?.ignoreError ? promiseCallback.resolve(void 0) : promiseCallback.reject(err2);
          }
        }
        const ignoreErrorForPrefixSecurity = this.prefixSecurity === PrefixSecurityEnum.SILENT;
        const prefixSecurityDisabled = this.prefixSecurity === PrefixSecurityEnum.DISABLED;
        if (!prefixSecurityDisabled) {
          let errorFound = false;
          let errorMsg;
          if (!isSecurePrefixConditionMet(cookie)) {
            errorFound = true;
            errorMsg = "Cookie has __Secure prefix but Secure attribute is not set";
          } else if (!isHostPrefixConditionMet(cookie)) {
            errorFound = true;
            errorMsg = "Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'";
          }
          if (errorFound) {
            return options?.ignoreError || ignoreErrorForPrefixSecurity ? promiseCallback.resolve(void 0) : promiseCallback.reject(new Error(errorMsg));
          }
        }
        const store = this.store;
        if (!store.updateCookie) {
          store.updateCookie = async function(_oldCookie, newCookie, cb2) {
            return this.putCookie(newCookie).then(
              () => cb2?.(null),
              (error) => cb2?.(error)
            );
          };
        }
        const withCookie = function withCookie2(err2, oldCookie) {
          if (err2) {
            cb(err2);
            return;
          }
          const next = function(err22) {
            if (err22) {
              cb(err22);
            } else if (typeof cookie === "string") {
              cb(null, void 0);
            } else {
              cb(null, cookie);
            }
          };
          if (oldCookie) {
            if (options && "http" in options && options.http === false && oldCookie.httpOnly) {
              err2 = new Error("old Cookie is HttpOnly and this isn't an HTTP API");
              if (options.ignoreError) cb(null, void 0);
              else cb(err2);
              return;
            }
            if (cookie instanceof Cookie) {
              cookie.creation = oldCookie.creation;
              cookie.creationIndex = oldCookie.creationIndex;
              cookie.lastAccessed = now;
              store.updateCookie(oldCookie, cookie, next);
            }
          } else {
            if (cookie instanceof Cookie) {
              cookie.creation = cookie.lastAccessed = now;
              store.putCookie(cookie, next);
            }
          }
        };
        store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);
        return promiseCallback.promise;
      }
      /**
       * Synchronously attempt to set the {@link Cookie} in the {@link CookieJar}.
       *
       * <strong>Note:</strong> Only works if the configured {@link Store} is also synchronous.
       *
       * @remarks
       * - If successfully persisted, the {@link Cookie} will have updated
       *     {@link Cookie.creation}, {@link Cookie.lastAccessed} and {@link Cookie.hostOnly}
       *     properties.
       *
       * - As per the RFC, the {@link Cookie.hostOnly} flag is set if there was no `Domain={value}`
       *     attribute on the cookie string. The {@link Cookie.domain} property is set to the
       *     fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an
       *     exact hostname match (not a {@link domainMatch} as per usual)
       *
       * @param cookie - The cookie object or cookie string to store. A string value will be parsed into a cookie using {@link Cookie.parse}.
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when storing the cookie.
       * @public
       */
      setCookieSync(cookie, url2, options) {
        const setCookieFn = options ? this.setCookie.bind(this, cookie, url2, options) : this.setCookie.bind(this, cookie, url2);
        return this.callSync(setCookieFn);
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getCookies(url2, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = defaultGetCookieOptions;
        } else if (options === void 0) {
          options = defaultGetCookieOptions;
        }
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        let context;
        try {
          if (typeof url2 === "string") {
            validate(isNonEmptyString2(url2), cb, url2);
          }
          context = getCookieContext(url2);
          validate(
            isObject4(options),
            cb,
            safeToString(options)
          );
          validate(typeof cb === "function", cb);
        } catch (parameterError) {
          return promiseCallback.reject(parameterError);
        }
        const host = canonicalDomain(context.hostname);
        const path22 = context.pathname || "/";
        const potentiallyTrustworthy = isPotentiallyTrustworthy(
          url2,
          this.allowSecureOnLocal
        );
        let sameSiteLevel = 0;
        if (options.sameSiteContext) {
          const sameSiteContext = checkSameSiteContext(options.sameSiteContext);
          if (sameSiteContext == null) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
          sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];
          if (!sameSiteLevel) {
            return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));
          }
        }
        const http6 = options.http ?? true;
        const now = Date.now();
        const expireCheck = options.expire ?? true;
        const allPaths = options.allPaths ?? false;
        const store = this.store;
        function matchingCookie(c3) {
          if (c3.hostOnly) {
            if (c3.domain != host) {
              return false;
            }
          } else {
            if (!domainMatch(host ?? void 0, c3.domain ?? void 0, false)) {
              return false;
            }
          }
          if (!allPaths && typeof c3.path === "string" && !pathMatch(path22, c3.path)) {
            return false;
          }
          if (c3.secure && !potentiallyTrustworthy) {
            return false;
          }
          if (c3.httpOnly && !http6) {
            return false;
          }
          if (sameSiteLevel) {
            let cookieLevel;
            if (c3.sameSite === "lax") {
              cookieLevel = Cookie.sameSiteLevel.lax;
            } else if (c3.sameSite === "strict") {
              cookieLevel = Cookie.sameSiteLevel.strict;
            } else {
              cookieLevel = Cookie.sameSiteLevel.none;
            }
            if (cookieLevel > sameSiteLevel) {
              return false;
            }
          }
          const expiryTime = c3.expiryTime();
          if (expireCheck && expiryTime != void 0 && expiryTime <= now) {
            store.removeCookie(c3.domain, c3.path, c3.key, () => {
            });
            return false;
          }
          return true;
        }
        store.findCookies(
          host,
          allPaths ? null : path22,
          this.allowSpecialUseDomain,
          (err2, cookies) => {
            if (err2) {
              cb(err2);
              return;
            }
            if (cookies == null) {
              cb(null, []);
              return;
            }
            cookies = cookies.filter(matchingCookie);
            if ("sort" in options && options.sort !== false) {
              cookies = cookies.sort(cookieCompare);
            }
            const now2 = /* @__PURE__ */ new Date();
            for (const cookie of cookies) {
              cookie.lastAccessed = now2;
            }
            cb(null, cookies);
          }
        );
        return promiseCallback.promise;
      }
      /**
       * Synchronously retrieve the list of cookies that can be sent in a Cookie header for the
       * current URL.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - The array of cookies returned will be sorted according to {@link cookieCompare}.
       *
       * - The {@link Cookie.lastAccessed} property will be updated on all returned cookies.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getCookiesSync(url2, options) {
        return this.callSync(this.getCookies.bind(this, url2, options)) ?? [];
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getCookieString(url2, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        const next = function(err2, cookies) {
          if (err2) {
            promiseCallback.callback(err2);
          } else {
            promiseCallback.callback(
              null,
              cookies?.sort(cookieCompare).map((c3) => c3.cookieString()).join("; ")
            );
          }
        };
        this.getCookies(url2, options, next);
        return promiseCallback.promise;
      }
      /**
       * Synchronous version of `.getCookieString()`. Accepts the same options as `.getCookies()` but returns a string suitable for a
       * `Cookie` header rather than an Array.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getCookieStringSync(url2, options) {
        return this.callSync(
          options ? this.getCookieString.bind(this, url2, options) : this.getCookieString.bind(this, url2)
        ) ?? "";
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      getSetCookieStrings(url2, options, callback) {
        if (typeof options === "function") {
          callback = options;
          options = void 0;
        }
        const promiseCallback = createPromiseCallback(
          callback
        );
        const next = function(err2, cookies) {
          if (err2) {
            promiseCallback.callback(err2);
          } else {
            promiseCallback.callback(
              null,
              cookies?.map((c3) => {
                return c3.toString();
              })
            );
          }
        };
        this.getCookies(url2, options, next);
        return promiseCallback.promise;
      }
      /**
       * Synchronous version of `.getSetCookieStrings()`. Returns an array of strings suitable for `Set-Cookie` headers.
       * Accepts the same options as `.getCookies()`.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @param url - The domain to store the cookie with.
       * @param options - Configuration settings to use when retrieving the cookies.
       */
      getSetCookieStringsSync(url2, options = {}) {
        return this.callSync(this.getSetCookieStrings.bind(this, url2, options)) ?? [];
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      serialize(callback) {
        const promiseCallback = createPromiseCallback(callback);
        let type = this.store.constructor.name;
        if (isObject4(type)) {
          type = null;
        }
        const serialized = {
          // The version of tough-cookie that serialized this jar. Generally a good
          // practice since future versions can make data import decisions based on
          // known past behavior. When/if this matters, use `semver`.
          version: `tough-cookie@${version}`,
          // add the store type, to make humans happy:
          storeType: type,
          // CookieJar configuration:
          rejectPublicSuffixes: this.rejectPublicSuffixes,
          enableLooseMode: this.enableLooseMode,
          allowSpecialUseDomain: this.allowSpecialUseDomain,
          prefixSecurity: getNormalizedPrefixSecurity(this.prefixSecurity),
          // this gets filled from getAllCookies:
          cookies: []
        };
        if (typeof this.store.getAllCookies !== "function") {
          return promiseCallback.reject(
            new Error(
              "store does not support getAllCookies and cannot be serialized"
            )
          );
        }
        this.store.getAllCookies((err2, cookies) => {
          if (err2) {
            promiseCallback.callback(err2);
            return;
          }
          if (cookies == null) {
            promiseCallback.callback(null, serialized);
            return;
          }
          serialized.cookies = cookies.map((cookie) => {
            const serializedCookie = cookie.toJSON();
            delete serializedCookie.creationIndex;
            return serializedCookie;
          });
          promiseCallback.callback(null, serialized);
        });
        return promiseCallback.promise;
      }
      /**
       * Serialize the CookieJar if the underlying store supports `.getAllCookies`.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       */
      serializeSync() {
        return this.callSync((callback) => {
          this.serialize(callback);
        });
      }
      /**
       * Alias of {@link CookieJar.serializeSync}. Allows the cookie to be serialized
       * with `JSON.stringify(cookieJar)`.
       */
      toJSON() {
        return this.serializeSync();
      }
      /**
       * Use the class method CookieJar.deserialize instead of calling this directly
       * @internal
       */
      _importCookies(serialized, callback) {
        let cookies = void 0;
        if (serialized && typeof serialized === "object" && inOperator("cookies", serialized) && Array.isArray(serialized.cookies)) {
          cookies = serialized.cookies;
        }
        if (!cookies) {
          callback(new Error("serialized jar has no cookies array"), void 0);
          return;
        }
        cookies = cookies.slice();
        const putNext = (err2) => {
          if (err2) {
            callback(err2, void 0);
            return;
          }
          if (Array.isArray(cookies)) {
            if (!cookies.length) {
              callback(err2, this);
              return;
            }
            let cookie;
            try {
              cookie = Cookie.fromJSON(cookies.shift());
            } catch (e2) {
              callback(e2 instanceof Error ? e2 : new Error(), void 0);
              return;
            }
            if (cookie === void 0) {
              putNext(null);
              return;
            }
            this.store.putCookie(cookie, putNext);
          }
        };
        putNext(null);
      }
      /**
       * @internal
       */
      _importCookiesSync(serialized) {
        this.callSync(this._importCookies.bind(this, serialized));
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      clone(newStore, callback) {
        if (typeof newStore === "function") {
          callback = newStore;
          newStore = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        this.serialize((err2, serialized) => {
          if (err2) {
            return promiseCallback.reject(err2);
          }
          return _CookieJar.deserialize(serialized ?? "", newStore, cb);
        });
        return promiseCallback.promise;
      }
      /**
       * @internal
       */
      _cloneSync(newStore) {
        const cloneFn = newStore && typeof newStore !== "function" ? this.clone.bind(this, newStore) : this.clone.bind(this);
        return this.callSync((callback) => {
          cloneFn(callback);
        });
      }
      /**
       * Produces a deep clone of this CookieJar. Modifications to the original do
       * not affect the clone, and vice versa.
       *
       * <strong>Note</strong>: Only works if both the configured Store and destination
       * Store are synchronous.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - Transferring between store types is supported so long as the source
       *     implements `.getAllCookies()` and the destination implements `.putCookie()`.
       *
       * @param newStore - The target {@link Store} to clone cookies into.
       */
      cloneSync(newStore) {
        if (!newStore) {
          return this._cloneSync();
        }
        if (!newStore.synchronous) {
          throw new Error(
            "CookieJar clone destination store is not synchronous; use async API instead."
          );
        }
        return this._cloneSync(newStore);
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      removeAllCookies(callback) {
        const promiseCallback = createPromiseCallback(callback);
        const cb = promiseCallback.callback;
        const store = this.store;
        if (typeof store.removeAllCookies === "function" && store.removeAllCookies !== Store.prototype.removeAllCookies) {
          store.removeAllCookies(cb);
          return promiseCallback.promise;
        }
        store.getAllCookies((err2, cookies) => {
          if (err2) {
            cb(err2);
            return;
          }
          if (!cookies) {
            cookies = [];
          }
          if (cookies.length === 0) {
            cb(null, void 0);
            return;
          }
          let completedCount = 0;
          const removeErrors = [];
          const removeCookieCb = function removeCookieCb2(removeErr) {
            if (removeErr) {
              removeErrors.push(removeErr);
            }
            completedCount++;
            if (completedCount === cookies.length) {
              if (removeErrors[0]) cb(removeErrors[0]);
              else cb(null, void 0);
              return;
            }
          };
          cookies.forEach((cookie) => {
            store.removeCookie(
              cookie.domain,
              cookie.path,
              cookie.key,
              removeCookieCb
            );
          });
        });
        return promiseCallback.promise;
      }
      /**
       * Removes all cookies from the CookieJar.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - This is a new backwards-compatible feature of tough-cookie version 2.5,
       *     so not all Stores will implement it efficiently. For Stores that do not
       *     implement `removeAllCookies`, the fallback is to call `removeCookie` after
       *     `getAllCookies`.
       *
       * - If `getAllCookies` fails or isn't implemented in the Store, an error is returned.
       *
       * - If one or more of the `removeCookie` calls fail, only the first error is returned.
       */
      removeAllCookiesSync() {
        this.callSync((callback) => {
          this.removeAllCookies(callback);
        });
      }
      /**
       * @internal No doc because this is the overload implementation
       */
      static deserialize(strOrObj, store, callback) {
        if (typeof store === "function") {
          callback = store;
          store = void 0;
        }
        const promiseCallback = createPromiseCallback(callback);
        let serialized;
        if (typeof strOrObj === "string") {
          try {
            serialized = JSON.parse(strOrObj);
          } catch (e2) {
            return promiseCallback.reject(e2 instanceof Error ? e2 : new Error());
          }
        } else {
          serialized = strOrObj;
        }
        const readSerializedProperty = (property) => {
          return serialized && typeof serialized === "object" && inOperator(property, serialized) ? serialized[property] : void 0;
        };
        const readSerializedBoolean = (property) => {
          const value = readSerializedProperty(property);
          return typeof value === "boolean" ? value : void 0;
        };
        const readSerializedString = (property) => {
          const value = readSerializedProperty(property);
          return typeof value === "string" ? value : void 0;
        };
        const jar = new _CookieJar(store, {
          rejectPublicSuffixes: readSerializedBoolean("rejectPublicSuffixes"),
          looseMode: readSerializedBoolean("enableLooseMode"),
          allowSpecialUseDomain: readSerializedBoolean("allowSpecialUseDomain"),
          prefixSecurity: getNormalizedPrefixSecurity(
            readSerializedString("prefixSecurity") ?? "silent"
          )
        });
        jar._importCookies(serialized, (err2) => {
          if (err2) {
            promiseCallback.callback(err2);
            return;
          }
          promiseCallback.callback(null, jar);
        });
        return promiseCallback.promise;
      }
      /**
       * A new CookieJar is created and the serialized {@link Cookie} values are added to
       * the underlying store. Each {@link Cookie} is added via `store.putCookie(...)` in
       * the order in which they appear in the serialization.
       *
       * <strong>Note</strong>: Only works if the configured Store is also synchronous.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - As a convenience, if `strOrObj` is a string, it is passed through `JSON.parse` first.
       *
       * @param strOrObj - A JSON string or object representing the deserialized cookies.
       * @param store - The underlying store to persist the deserialized cookies into.
       */
      static deserializeSync(strOrObj, store) {
        const serialized = typeof strOrObj === "string" ? JSON.parse(strOrObj) : strOrObj;
        const readSerializedProperty = (property) => {
          return serialized && typeof serialized === "object" && inOperator(property, serialized) ? serialized[property] : void 0;
        };
        const readSerializedBoolean = (property) => {
          const value = readSerializedProperty(property);
          return typeof value === "boolean" ? value : void 0;
        };
        const readSerializedString = (property) => {
          const value = readSerializedProperty(property);
          return typeof value === "string" ? value : void 0;
        };
        const jar = new _CookieJar(store, {
          rejectPublicSuffixes: readSerializedBoolean("rejectPublicSuffixes"),
          looseMode: readSerializedBoolean("enableLooseMode"),
          allowSpecialUseDomain: readSerializedBoolean("allowSpecialUseDomain"),
          prefixSecurity: getNormalizedPrefixSecurity(
            readSerializedString("prefixSecurity") ?? "silent"
          )
        });
        if (!jar.store.synchronous) {
          throw new Error(
            "CookieJar store is not synchronous; use async API instead."
          );
        }
        jar._importCookiesSync(serialized);
        return jar;
      }
      /**
       * Alias of {@link CookieJar.deserializeSync}.
       *
       * @remarks
       * - When no {@link Store} is provided, a new {@link MemoryCookieStore} will be used.
       *
       * - As a convenience, if `strOrObj` is a string, it is passed through `JSON.parse` first.
       *
       * @param jsonString - A JSON string or object representing the deserialized cookies.
       * @param store - The underlying store to persist the deserialized cookies into.
       */
      static fromJSON(jsonString, store) {
        return _CookieJar.deserializeSync(jsonString, store);
      }
    };
    function permutePath(path22) {
      if (path22 === "/") {
        return ["/"];
      }
      const permutations = [path22];
      while (path22.length > 1) {
        const lindex = path22.lastIndexOf("/");
        if (lindex === 0) {
          break;
        }
        path22 = path22.slice(0, lindex);
        permutations.push(path22);
      }
      permutations.push("/");
      return permutations;
    }
    function parse2(str, options) {
      return Cookie.parse(str, options);
    }
    function fromJSON2(str) {
      return Cookie.fromJSON(str);
    }
  }
});
var require_cookie_utils = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/cookie_utils.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.getCookiesFromResponse = getCookiesFromResponse2;
    exports2.getDefaultCookieExpirationDate = getDefaultCookieExpirationDate2;
    exports2.toughCookieToBrowserPoolCookie = toughCookieToBrowserPoolCookie2;
    exports2.browserPoolCookieToToughCookie = browserPoolCookieToToughCookie2;
    exports2.cookieStringToToughCookie = cookieStringToToughCookie2;
    exports2.mergeCookies = mergeCookies2;
    var tough_cookie_1 = require_dist5();
    var log_1 = require_log();
    var errors_1 = require_errors4();
    function getCookiesFromResponse2(response) {
      const headers = typeof response.headers === "function" ? response.headers() : response.headers;
      const cookieHeader = headers?.["set-cookie"] || "";
      try {
        return Array.isArray(cookieHeader) ? cookieHeader.map((cookie) => tough_cookie_1.Cookie.parse(cookie)) : [tough_cookie_1.Cookie.parse(cookieHeader)];
      } catch (e2) {
        throw new errors_1.CookieParseError(cookieHeader);
      }
    }
    function getDefaultCookieExpirationDate2(maxAgeSecs) {
      return new Date(Date.now() + maxAgeSecs * 1e3);
    }
    function toughCookieToBrowserPoolCookie2(toughCookie) {
      return {
        name: toughCookie.key,
        value: toughCookie.value,
        // Puppeteer and Playwright expect 'expires' to be 'Unix time in seconds', not ms
        // If there is no expires date (so defaults to Infinity), we don't provide it to the browsers
        expires: toughCookie.expires == null || toughCookie.expires === "Infinity" ? void 0 : toughCookie.expires.getTime() / 1e3,
        domain: toughCookie.domain ? `${toughCookie.hostOnly ? "" : "."}${toughCookie.domain}` : void 0,
        path: toughCookie.path ?? void 0,
        secure: toughCookie.secure,
        httpOnly: toughCookie.httpOnly
      };
    }
    function browserPoolCookieToToughCookie2(cookieObject, maxAgeSecs) {
      const isExpiresValid = cookieObject.expires && typeof cookieObject.expires === "number" && cookieObject.expires > 0;
      const expires = isExpiresValid ? new Date(cookieObject.expires * 1e3) : getDefaultCookieExpirationDate2(maxAgeSecs);
      const domainHasLeadingDot = cookieObject.domain?.startsWith?.(".");
      const domain = domainHasLeadingDot ? cookieObject.domain?.slice?.(1) : cookieObject.domain;
      return new tough_cookie_1.Cookie({
        key: cookieObject.name,
        value: cookieObject.value,
        expires,
        domain,
        path: cookieObject.path,
        secure: cookieObject.secure,
        httpOnly: cookieObject.httpOnly,
        hostOnly: !domainHasLeadingDot
      });
    }
    function cookieStringToToughCookie2(cookieString) {
      const parsed = tough_cookie_1.Cookie.parse(cookieString);
      if (parsed) {
        return toughCookieToBrowserPoolCookie2(parsed);
      }
      return null;
    }
    function mergeCookies2(url2, sourceCookies) {
      const jar = new tough_cookie_1.CookieJar();
      for (const sourceCookieString of sourceCookies) {
        if (!sourceCookieString)
          continue;
        const cookies = sourceCookieString.split(/ *; */);
        for (const cookieString of cookies) {
          if (!cookieString)
            continue;
          const cookie = tough_cookie_1.Cookie.parse(cookieString);
          const similarKeyCookie = jar.getCookiesSync(url2).find((c3) => {
            return cookie.key !== c3.key && cookie.key.toLowerCase() === c3.key.toLowerCase();
          });
          if (similarKeyCookie) {
            log_1.log.deprecated(`Found cookies with similar name during cookie merging: '${cookie.key}' and '${similarKeyCookie.key}'`);
          }
          jar.setCookieSync(cookie, url2);
        }
      }
      return jar.getCookieStringSync(url2);
    }
  }
});
var require_session = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/session.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Session = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_events_1 = __require("node:events");
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var tough_cookie_1 = require_dist5();
    var utilities_1 = require_cjs4();
    var cookie_utils_1 = require_cookie_utils();
    var log_1 = require_log();
    var events_1 = require_events2();
    var Session2 = class {
      get errorScore() {
        return this._errorScore;
      }
      get usageCount() {
        return this._usageCount;
      }
      get maxErrorScore() {
        return this._maxErrorScore;
      }
      get errorScoreDecrement() {
        return this._errorScoreDecrement;
      }
      get expiresAt() {
        return this._expiresAt;
      }
      get createdAt() {
        return this._createdAt;
      }
      get maxUsageCount() {
        return this._maxUsageCount;
      }
      get cookieJar() {
        return this._cookieJar;
      }
      /**
       * Session configuration.
       */
      constructor(options) {
        Object.defineProperty(this, "id", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxAgeSecs", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userData", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_maxErrorScore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_errorScoreDecrement", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_createdAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_expiresAt", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_usageCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_maxUsageCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessionPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_errorScore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_cookieJar", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          sessionPool: ow_1.default.object.instanceOf(node_events_1.EventEmitter),
          id: ow_1.default.optional.string,
          cookieJar: ow_1.default.optional.object,
          maxAgeSecs: ow_1.default.optional.number,
          userData: ow_1.default.optional.object,
          maxErrorScore: ow_1.default.optional.number,
          errorScoreDecrement: ow_1.default.optional.number,
          createdAt: ow_1.default.optional.date,
          expiresAt: ow_1.default.optional.date,
          usageCount: ow_1.default.optional.number,
          errorScore: ow_1.default.optional.number,
          maxUsageCount: ow_1.default.optional.number,
          log: ow_1.default.optional.object
        }));
        const { sessionPool, id = `session_${(0, utilities_1.cryptoRandomObjectId)(10)}`, cookieJar = new tough_cookie_1.CookieJar(), maxAgeSecs = 3e3, userData = {}, maxErrorScore = 3, errorScoreDecrement = 0.5, createdAt = /* @__PURE__ */ new Date(), usageCount = 0, errorScore = 0, maxUsageCount = 50, log: log2 = log_1.log } = options;
        const { expiresAt = (0, cookie_utils_1.getDefaultCookieExpirationDate)(maxAgeSecs) } = options;
        this.log = log2.child({ prefix: "Session" });
        this._cookieJar = cookieJar.setCookie ? cookieJar : tough_cookie_1.CookieJar.fromJSON(JSON.stringify(cookieJar));
        this.id = id;
        this.maxAgeSecs = maxAgeSecs;
        this.userData = userData;
        this._maxErrorScore = maxErrorScore;
        this._errorScoreDecrement = errorScoreDecrement;
        this._expiresAt = expiresAt;
        this._createdAt = createdAt;
        this._usageCount = usageCount;
        this._errorScore = errorScore;
        this._maxUsageCount = maxUsageCount;
        this.sessionPool = sessionPool;
      }
      /**
       * Indicates whether the session is blocked.
       * Session is blocked once it reaches the `maxErrorScore`.
       */
      isBlocked() {
        return this.errorScore >= this.maxErrorScore;
      }
      /**
       * Indicates whether the session is expired.
       * Session expiration is determined by the `maxAgeSecs`.
       * Once the session is older than `createdAt + maxAgeSecs` the session is considered expired.
       */
      isExpired() {
        return this.expiresAt <= /* @__PURE__ */ new Date();
      }
      /**
       * Indicates whether the session is used maximum number of times.
       * Session maximum usage count can be changed by `maxUsageCount` parameter.
       */
      isMaxUsageCountReached() {
        return this.usageCount >= this.maxUsageCount;
      }
      /**
       * Indicates whether the session can be used for next requests.
       * Session is usable when it is not expired, not blocked and the maximum usage count has not be reached.
       */
      isUsable() {
        return !this.isBlocked() && !this.isExpired() && !this.isMaxUsageCountReached();
      }
      /**
       * This method should be called after a successful session usage.
       * It increases `usageCount` and potentially lowers the `errorScore` by the `errorScoreDecrement`.
       */
      markGood() {
        this._usageCount += 1;
        if (this._errorScore > 0) {
          this._errorScore -= this._errorScoreDecrement;
        }
        this._maybeSelfRetire();
      }
      /**
       * Gets session state for persistence in KeyValueStore.
       * @returns Represents session internal state.
       */
      getState() {
        return {
          id: this.id,
          cookieJar: this.cookieJar.toJSON(),
          userData: this.userData,
          maxErrorScore: this.maxErrorScore,
          errorScoreDecrement: this.errorScoreDecrement,
          expiresAt: this.expiresAt.toISOString(),
          createdAt: this.createdAt.toISOString(),
          usageCount: this.usageCount,
          maxUsageCount: this.maxUsageCount,
          errorScore: this.errorScore
        };
      }
      /**
       * Marks session as blocked and emits event on the `SessionPool`
       * This method should be used if the session usage was unsuccessful
       * and you are sure that it is because of the session configuration and not any external matters.
       * For example when server returns 403 status code.
       * If the session does not work due to some external factors as server error such as 5XX you probably want to use `markBad` method.
       */
      retire() {
        this._errorScore += this._maxErrorScore;
        this._usageCount += 1;
        this.sessionPool.emit(events_1.EVENT_SESSION_RETIRED, this);
      }
      /**
       * Increases usage and error count.
       * Should be used when the session has been used unsuccessfully. For example because of timeouts.
       */
      markBad() {
        this._errorScore += 1;
        this._usageCount += 1;
        this._maybeSelfRetire();
      }
      retireOnBlockedStatusCodes(statusCode, additionalBlockedStatusCodes = []) {
        const isBlocked = this.sessionPool["blockedStatusCodes"].concat(additionalBlockedStatusCodes).includes(statusCode);
        if (isBlocked) {
          this.retire();
        }
        return isBlocked;
      }
      /**
       * Saves cookies from an HTTP response to be used with the session.
       * It expects an object with a `headers` property that's either an `Object`
       * (typical Node.js responses) or a `Function` (Puppeteer Response).
       *
       * It then parses and saves the cookies from the `set-cookie` header, if available.
       */
      setCookiesFromResponse(response) {
        try {
          const cookies = (0, cookie_utils_1.getCookiesFromResponse)(response).filter((c3) => c3);
          this._setCookies(cookies, typeof response.url === "function" ? response.url() : response.url);
        } catch (e2) {
          const err2 = e2;
          this.log.exception(err2, "Could not get cookies from response");
        }
      }
      /**
       * Saves an array with cookie objects to be used with the session.
       * The objects should be in the format that
       * [Puppeteer uses](https://pptr.dev/#?product=Puppeteer&version=v2.0.0&show=api-pagecookiesurls),
       * but you can also use this function to set cookies manually:
       *
       * ```
       * [
       *   { name: 'cookie1', value: 'my-cookie' },
       *   { name: 'cookie2', value: 'your-cookie' }
       * ]
       * ```
       */
      setCookies(cookies, url2) {
        const normalizedCookies = cookies.map((c3) => (0, cookie_utils_1.browserPoolCookieToToughCookie)(c3, this.maxAgeSecs));
        this._setCookies(normalizedCookies, url2);
      }
      /**
       * Returns cookies in a format compatible with puppeteer/playwright and ready to be used with `page.setCookie`.
       * @param url website url. Only cookies stored for this url will be returned
       */
      getCookies(url2) {
        const cookies = this.cookieJar.getCookiesSync(url2);
        return cookies.map((c3) => (0, cookie_utils_1.toughCookieToBrowserPoolCookie)(c3));
      }
      /**
       * Returns cookies saved with the session in the typical
       * key1=value1; key2=value2 format, ready to be used in
       * a cookie header or elsewhere.
       * @returns Represents `Cookie` header.
       */
      getCookieString(url2) {
        return this.cookieJar.getCookieStringSync(url2, {});
      }
      /**
       * Sets a cookie within this session for the specific URL.
       */
      setCookie(rawCookie, url2) {
        this.cookieJar.setCookieSync(rawCookie, url2);
      }
      /**
       * Sets cookies.
       */
      _setCookies(cookies, url2) {
        const errorMessages = [];
        for (const cookie of cookies) {
          try {
            this.cookieJar.setCookieSync(cookie, url2, { ignoreError: false });
          } catch (e2) {
            const err2 = e2;
            errorMessages.push(err2.message);
          }
        }
        if (errorMessages.length) {
          this.log.debug("Could not set cookies.", { errorMessages });
        }
      }
      /**
       * Checks if session is not usable. if it is not retires the session.
       */
      _maybeSelfRetire() {
        if (!this.isUsable()) {
          this.retire();
        }
      }
    };
    exports2.Session = Session2;
  }
});
var require_consts2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/consts.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.MAX_POOL_SIZE = exports2.PERSIST_STATE_KEY = exports2.BLOCKED_STATUS_CODES = void 0;
    exports2.BLOCKED_STATUS_CODES = [401, 403, 429];
    exports2.PERSIST_STATE_KEY = "SDK_SESSION_POOL_STATE";
    exports2.MAX_POOL_SIZE = 1e3;
  }
});
var require_session_pool = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/session_pool.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.SessionPool = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_events_1 = __require("node:events");
    var async_queue_1 = require_cjs6();
    var ow_1 = tslib_1.__importDefault(require_dist2());
    var configuration_1 = require_configuration();
    var log_1 = require_log();
    var key_value_store_1 = require_key_value_store3();
    var consts_1 = require_consts2();
    var session_1 = require_session();
    var SessionPool2 = class _SessionPool extends node_events_1.EventEmitter {
      /**
       * @internal
       */
      constructor(options = {}, config = configuration_1.Configuration.getGlobalConfig()) {
        super();
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxPoolSize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "createSessionFunction", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: []
        });
        Object.defineProperty(this, "sessionMap", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "sessionOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKeyValueStoreId", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_listener", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "blockedStatusCodes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistenceOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "isInitialized", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "queue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: new async_queue_1.AsyncQueue()
        });
        (0, ow_1.default)(options, ow_1.default.object.exactShape({
          maxPoolSize: ow_1.default.optional.number,
          persistStateKeyValueStoreId: ow_1.default.optional.string,
          persistStateKey: ow_1.default.optional.string,
          createSessionFunction: ow_1.default.optional.function,
          sessionOptions: ow_1.default.optional.object,
          blockedStatusCodes: ow_1.default.optional.array.ofType(ow_1.default.number),
          log: ow_1.default.optional.object,
          persistenceOptions: ow_1.default.optional.object
        }));
        const { maxPoolSize = consts_1.MAX_POOL_SIZE, persistStateKeyValueStoreId, persistStateKey = consts_1.PERSIST_STATE_KEY, createSessionFunction, sessionOptions = {}, blockedStatusCodes = consts_1.BLOCKED_STATUS_CODES, log: log2 = log_1.log, persistenceOptions = {
          enable: true
        } } = options;
        this.config = config;
        this.blockedStatusCodes = blockedStatusCodes;
        this.events = config.getEventManager();
        this.log = log2.child({ prefix: "SessionPool" });
        this.persistenceOptions = persistenceOptions;
        this.maxPoolSize = maxPoolSize;
        this.createSessionFunction = createSessionFunction || this._defaultCreateSessionFunction;
        this.sessionOptions = {
          ...sessionOptions,
          // the log needs to propagate to createSessionFunction as in "new Session({ ...sessionPool.sessionOptions })"
          // and can't go inside _defaultCreateSessionFunction
          log: this.log
        };
        this.persistStateKeyValueStoreId = persistStateKeyValueStoreId;
        this.persistStateKey = persistStateKey;
      }
      /**
       * Gets count of usable sessions in the pool.
       */
      get usableSessionsCount() {
        return this.sessions.filter((session) => session.isUsable()).length;
      }
      /**
       * Gets count of retired sessions in the pool.
       */
      get retiredSessionsCount() {
        return this.sessions.filter((session) => !session.isUsable()).length;
      }
      /**
       * Starts periodic state persistence and potentially loads SessionPool state from {@link KeyValueStore}.
       * It is called automatically by the {@link SessionPool.open} function.
       */
      async initialize() {
        if (this.isInitialized) {
          return;
        }
        this.keyValueStore = await key_value_store_1.KeyValueStore.open(this.persistStateKeyValueStoreId, { config: this.config });
        if (!this.persistenceOptions.enable) {
          this.isInitialized = true;
          return;
        }
        if (!this.persistStateKeyValueStoreId) {
          this.log.debug(`No 'persistStateKeyValueStoreId' options specified, this session pool's data has been saved in the KeyValueStore with the id: ${this.keyValueStore.id}`);
        }
        await this._maybeLoadSessionPool();
        this._listener = this.persistState.bind(this);
        this.events.on("persistState", this._listener);
        this.isInitialized = true;
      }
      /**
       * Adds a new session to the session pool. The pool automatically creates sessions up to the maximum size of the pool,
       * but this allows you to add more sessions once the max pool size is reached.
       * This also allows you to add session with overridden session options (e.g. with specific session id).
       * @param [options] The configuration options for the session being added to the session pool.
       */
      async addSession(options = {}) {
        this._throwIfNotInitialized();
        const { id } = options;
        if (id) {
          const sessionExists = this.sessionMap.has(id);
          if (sessionExists) {
            throw new Error(`Cannot add session with id '${id}' as it already exists in the pool`);
          }
        }
        if (!this._hasSpaceForSession()) {
          this._removeRetiredSessions();
        }
        const newSession = options instanceof session_1.Session ? options : await this.createSessionFunction(this, { sessionOptions: options });
        this.log.debug(`Adding new Session - ${newSession.id}`);
        this._addSession(newSession);
      }
      /**
       * Gets session.
       * If there is space for new session, it creates and returns new session.
       * If the session pool is full, it picks a session from the pool,
       * If the picked session is usable it is returned, otherwise it creates and returns a new one.
       * @param [sessionId] If provided, it returns the usable session with this id, `undefined` otherwise.
       */
      async getSession(sessionId) {
        await this.queue.wait();
        try {
          this._throwIfNotInitialized();
          if (sessionId) {
            const session = this.sessionMap.get(sessionId);
            if (session && session.isUsable())
              return session;
            return void 0;
          }
          if (this._hasSpaceForSession()) {
            return await this._createSession();
          }
          const pickedSession = this._pickSession();
          if (pickedSession.isUsable()) {
            return pickedSession;
          }
          this._removeRetiredSessions();
          return await this._createSession();
        } finally {
          this.queue.shift();
        }
      }
      /**
       * @param options - Override the persistence options provided in the constructor
       */
      async resetStore(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        await this.keyValueStore?.setValue(this.persistStateKey, null);
      }
      /**
       * Returns an object representing the internal state of the `SessionPool` instance.
       * Note that the object's fields can change in future releases.
       */
      getState() {
        return {
          usableSessionsCount: this.usableSessionsCount,
          retiredSessionsCount: this.retiredSessionsCount,
          sessions: this.sessions.map((session) => session.getState())
        };
      }
      /**
       * Persists the current state of the `SessionPool` into the default {@link KeyValueStore}.
       * The state is persisted automatically in regular intervals.
       * @param options - Override the persistence options provided in the constructor
       */
      async persistState(options) {
        if (!this.persistenceOptions.enable && !options?.enable) {
          return;
        }
        this.log.debug("Persisting state", {
          persistStateKeyValueStoreId: this.persistStateKeyValueStoreId,
          persistStateKey: this.persistStateKey
        });
        const persistStateIntervalMillis = this.config.get("persistStateIntervalMillis");
        const timeoutSecs = persistStateIntervalMillis / 2e3;
        await this.keyValueStore.setValue(this.persistStateKey, this.getState(), {
          timeoutSecs,
          doNotRetryTimeouts: true
        }).catch((error) => this.log.warning(`Failed to persist the session pool stats to ${this.persistStateKey}`, { error }));
      }
      /**
       * Removes listener from `persistState` event.
       * This function should be called after you are done with using the `SessionPool` instance.
       */
      async teardown() {
        this.events.off("persistState", this._listener);
        await this.persistState();
      }
      /**
       * SessionPool should not work before initialization.
       */
      _throwIfNotInitialized() {
        if (!this.isInitialized)
          throw new Error("SessionPool is not initialized.");
      }
      /**
       * Removes retired `Session` instances from `SessionPool`.
       */
      _removeRetiredSessions() {
        this.sessions = this.sessions.filter((storedSession) => {
          if (storedSession.isUsable())
            return true;
          this.sessionMap.delete(storedSession.id);
          this.log.debug(`Removed Session - ${storedSession.id}`);
          return false;
        });
      }
      /**
       * Adds `Session` instance to `SessionPool`.
       * @param newSession `Session` instance to be added.
       */
      _addSession(newSession) {
        this.sessions.push(newSession);
        this.sessionMap.set(newSession.id, newSession);
      }
      /**
       * Gets random index.
       */
      _getRandomIndex() {
        return Math.floor(Math.random() * this.sessions.length);
      }
      /**
       * Creates new session without any extra behavior.
       * @param sessionPool
       * @param [options]
       * @param [options.sessionOptions] The configuration options for the session being created.
       * @returns New session.
       */
      _defaultCreateSessionFunction(sessionPool, options = {}) {
        (0, ow_1.default)(options, ow_1.default.object.exactShape({ sessionOptions: ow_1.default.optional.object }));
        const { sessionOptions = {} } = options;
        return new session_1.Session({
          ...this.sessionOptions,
          ...sessionOptions,
          sessionPool
        });
      }
      /**
       * Creates new session and adds it to the pool.
       * @returns Newly created `Session` instance.
       */
      async _createSession() {
        const newSession = await this.createSessionFunction(this);
        this._addSession(newSession);
        this.log.debug(`Created new Session - ${newSession.id}`);
        return newSession;
      }
      /**
       * Decides whether there is enough space for creating new session.
       */
      _hasSpaceForSession() {
        return this.sessions.length < this.maxPoolSize;
      }
      /**
       * Picks random session from the `SessionPool`.
       * @returns Picked `Session`.
       */
      _pickSession() {
        return this.sessions[this._getRandomIndex()];
      }
      /**
       * Potentially loads `SessionPool`.
       * If the state was persisted it loads the `SessionPool` from the persisted state.
       */
      async _maybeLoadSessionPool() {
        const loadedSessionPool = await this.keyValueStore.getValue(this.persistStateKey);
        if (!loadedSessionPool)
          return;
        this.log.debug("Recreating state from KeyValueStore", {
          persistStateKeyValueStoreId: this.persistStateKeyValueStoreId,
          persistStateKey: this.persistStateKey
        });
        for (const sessionObject of loadedSessionPool.sessions) {
          sessionObject.sessionPool = this;
          sessionObject.createdAt = new Date(sessionObject.createdAt);
          sessionObject.expiresAt = new Date(sessionObject.expiresAt);
          const recreatedSession = await this.createSessionFunction(this, { sessionOptions: sessionObject });
          if (recreatedSession.isUsable()) {
            this._addSession(recreatedSession);
          }
        }
        this.log.debug(`${this.usableSessionsCount} active sessions loaded from KeyValueStore`);
      }
      /**
       * Opens a SessionPool and returns a promise resolving to an instance
       * of the {@link SessionPool} class that is already initialized.
       *
       * For more details and code examples, see the {@link SessionPool} class.
       */
      static async open(options, config) {
        const sessionPool = new _SessionPool(options, config);
        await sessionPool.initialize();
        return sessionPool;
      }
    };
    exports2.SessionPool = SessionPool2;
  }
});
var require_session_pool2 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/session_pool/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_errors4(), exports2);
    tslib_1.__exportStar(require_events2(), exports2);
    tslib_1.__exportStar(require_session(), exports2);
    tslib_1.__exportStar(require_session_pool(), exports2);
    tslib_1.__exportStar(require_consts2(), exports2);
  }
});
var require_validators = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/validators.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.validators = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var ow_1 = tslib_1.__importDefault(require_dist2());
    exports2.validators = {
      // Naming it browser page for future proofing with Playwright
      browserPage: (value) => ({
        validator: ow_1.default.isValid(value, ow_1.default.object.hasKeys("goto", "evaluate", "$", "on")),
        message: (label) => `Expected argument '${label}' to be a Puppeteer Page, got something else.`
      }),
      proxyConfiguration: (value) => ({
        validator: ow_1.default.isValid(value, ow_1.default.object.hasKeys("newUrl", "newProxyInfo")),
        message: (label) => `Expected argument '${label}' to be a ProxyConfiguration, got something else.`
      }),
      requestList: (value) => ({
        validator: ow_1.default.isValid(value, ow_1.default.object.hasKeys("fetchNextRequest", "persistState")),
        message: (label) => `Expected argument '${label}' to be a RequestList, got something else.`
      }),
      requestQueue: (value) => ({
        validator: ow_1.default.isValid(value, ow_1.default.object.hasKeys("fetchNextRequest", "addRequest")),
        message: (label) => `Expected argument '${label}' to be a RequestQueue, got something else.`
      })
    };
  }
});
var require_recoverable_state = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/recoverable_state.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.RecoverableState = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var core_1 = require_core();
    var log_1 = tslib_1.__importDefault(require_cjs3());
    var RecoverableState2 = class {
      /**
       * Initialize a new recoverable state object.
       *
       * @param options Configuration options for the recoverable state
       */
      constructor(options) {
        Object.defineProperty(this, "defaultState", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "state", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "persistenceEnabled", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKey", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKvsName", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistStateKvsId", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "keyValueStore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: null
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "serialize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "deserialize", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.defaultState = options.defaultState;
        this.persistStateKey = options.persistStateKey;
        this.persistenceEnabled = options.persistenceEnabled ?? false;
        this.persistStateKvsName = options.persistStateKvsName;
        this.persistStateKvsId = options.persistStateKvsId;
        this.log = options.logger ?? log_1.default.child({ prefix: "RecoverableState" });
        this.config = options.config ?? core_1.Configuration.getGlobalConfig();
        this.serialize = options.serialize ?? JSON.stringify;
        this.deserialize = options.deserialize ?? JSON.parse;
        this.persistState = this.persistState.bind(this);
      }
      /**
       * Initialize the recoverable state.
       *
       * This method must be called before using the recoverable state. It loads the saved state
       * if persistence is enabled and registers the object to listen for PERSIST_STATE events.
       *
       * @returns The loaded state object
       */
      async initialize() {
        if (this.state !== null && this.state !== void 0) {
          return this.currentValue;
        }
        if (!this.persistenceEnabled) {
          this.state = this.deserialize(this.serialize(this.defaultState));
          return this.currentValue;
        }
        this.keyValueStore = await core_1.KeyValueStore.open(this.persistStateKvsName ?? this.persistStateKvsId, {
          config: this.config
        });
        await this.loadSavedState();
        const eventManager = this.config.getEventManager();
        eventManager.on("persistState", this.persistState);
        return this.currentValue;
      }
      /**
       * Clean up resources used by the recoverable state.
       *
       * If persistence is enabled, this method deregisters the object from PERSIST_STATE events
       * and persists the current state one last time.
       */
      async teardown() {
        if (!this.persistenceEnabled || !this.persistState) {
          return;
        }
        const eventManager = this.config.getEventManager();
        eventManager.off("persistState", this.persistState);
        await this.persistState();
      }
      /**
       * Get the current state.
       */
      get currentValue() {
        if (this.state === null) {
          throw new Error("Recoverable state has not yet been loaded");
        }
        return this.state;
      }
      /**
       * Reset the state to the default values and clear any persisted state.
       *
       * Resets the current state to the default state and, if persistence is enabled,
       * clears the persisted state from the KeyValueStore.
       */
      async reset() {
        this.state = this.deserialize(this.serialize(this.defaultState));
        if (this.persistenceEnabled) {
          if (this.keyValueStore === null) {
            throw new Error("Recoverable state has not yet been initialized");
          }
          await this.keyValueStore.setValue(this.persistStateKey, null);
        }
      }
      /**
       * Persist the current state to the KeyValueStore.
       *
       * This method is typically called in response to a PERSIST_STATE event, but can also be called
       * directly when needed.
       *
       * @param eventData Optional data associated with a PERSIST_STATE event
       */
      async persistState(eventData) {
        this.log.debug(`Persisting state of the RecoverableState (eventData=${JSON.stringify(eventData)}).`);
        if (this.keyValueStore === null || this.state === null) {
          throw new Error("Recoverable state has not yet been initialized");
        }
        if (this.persistenceEnabled) {
          await this.keyValueStore.setValue(this.persistStateKey, this.serialize(this.state), {
            contentType: "text/plain"
            // HACK - the result is expected to be JSON, but we do this to avoid the implicit JSON.parse in `KeyValueStore.getValue`
          });
        }
      }
      /**
       * Load the saved state from the KeyValueStore
       */
      async loadSavedState() {
        if (this.keyValueStore === null) {
          throw new Error("Recoverable state has not yet been initialized");
        }
        const storedState = await this.keyValueStore.getValue(this.persistStateKey);
        if (storedState === null || storedState === void 0) {
          this.state = this.deserialize(this.serialize(this.defaultState));
        } else {
          this.state = this.deserialize(storedState);
        }
      }
    };
    exports2.RecoverableState = RecoverableState2;
  }
});
var require_core = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+core@3.16.0/node_modules/@crawlee/core/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.PseudoUrl = void 0;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_errors(), exports2);
    tslib_1.__exportStar(require_autoscaling(), exports2);
    tslib_1.__exportStar(require_configuration(), exports2);
    tslib_1.__exportStar(require_crawlers(), exports2);
    tslib_1.__exportStar(require_enqueue_links2(), exports2);
    tslib_1.__exportStar(require_events(), exports2);
    tslib_1.__exportStar(require_http_clients(), exports2);
    tslib_1.__exportStar(require_log(), exports2);
    tslib_1.__exportStar(require_proxy_configuration(), exports2);
    tslib_1.__exportStar(require_request(), exports2);
    tslib_1.__exportStar(require_router(), exports2);
    tslib_1.__exportStar(require_serialization(), exports2);
    tslib_1.__exportStar(require_session_pool2(), exports2);
    tslib_1.__exportStar(require_storages(), exports2);
    tslib_1.__exportStar(require_validators(), exports2);
    tslib_1.__exportStar(require_cookie_utils(), exports2);
    tslib_1.__exportStar(require_recoverable_state(), exports2);
    var pseudo_url_1 = require_cjs11();
    Object.defineProperty(exports2, "PseudoUrl", { enumerable: true, get: function() {
      return pseudo_url_1.PseudoUrl;
    } });
  }
});
var require_send_request = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/send-request.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.createSendRequest = createSendRequest;
    var core_1 = require_core();
    function createSendRequest(httpClient, originRequest, session, getProxyUrl) {
      return async (overrideOptions = {}) => {
        const cookieJar = session ? {
          getCookieString: async (url2) => session.getCookieString(url2),
          setCookie: async (rawCookie, url2) => session.setCookie(rawCookie, url2),
          ...overrideOptions?.cookieJar
        } : overrideOptions?.cookieJar;
        const requestOptions = (0, core_1.processHttpRequestOptions)({
          url: originRequest.url,
          method: originRequest.method,
          // Narrow type to omit CONNECT
          headers: originRequest.headers,
          proxyUrl: getProxyUrl(),
          sessionToken: session,
          responseType: "text",
          ...overrideOptions,
          cookieJar
        });
        requestOptions.body ?? (requestOptions.body = originRequest.payload);
        return httpClient.sendRequest(requestOptions);
      };
    }
  }
});
var require_basic_crawler = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/basic-crawler.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.BasicCrawler = void 0;
    exports2.createBasicRouter = createBasicRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_path_1 = __require("node:path");
    var core_1 = require_core();
    var utils_1 = require_utils9();
    var sync_1 = require_sync();
    var fs_extra_1 = require_lib();
    var ow_1 = tslib_1.__importStar(require_dist2());
    var tldts_1 = require_cjs10();
    var datastructures_1 = require_cjs9();
    var log_1 = tslib_1.__importStar(require_cjs3());
    var timeout_1 = require_cjs();
    var utilities_1 = require_cjs4();
    var send_request_1 = require_send_request();
    var SAFE_MIGRATION_WAIT_MILLIS = 2e4;
    var BasicCrawler2 = class _BasicCrawler {
      /**
       * All `BasicCrawler` parameters are passed via an options object.
       */
      constructor(options = {}, config = core_1.Configuration.getGlobalConfig()) {
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "stats", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestList", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestQueue", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestManager", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessionPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "autoscaledPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "router", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: core_1.Router.create()
        });
        Object.defineProperty(this, "running", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "hasFinishedBefore", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "unexpectedStop", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: false
        });
        Object.defineProperty(this, "log", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "errorHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "failedRequestHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "requestHandlerTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "internalTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxRequestRetries", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxCrawlDepth", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sameDomainDelayMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "domainAccessedTime", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxSessionRotations", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "maxRequestsPerCrawl", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "handledRequestsCount", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: 0
        });
        Object.defineProperty(this, "statusMessageLoggingInterval", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "statusMessageCallback", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "sessionPoolOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "useSessionPool", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "crawlingContexts", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Map()
        });
        Object.defineProperty(this, "autoscaledPoolOptions", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "events", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "httpClient", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "retryOnBlocked", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "respectRobotsTxtFile", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "onSkippedRequest", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_closeEvents", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "loggedPerRun", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: /* @__PURE__ */ new Set()
        });
        Object.defineProperty(this, "experiments", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "robotsTxtFileCache", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_experimentWarnings", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: {}
        });
        (0, ow_1.default)(options, "BasicCrawlerOptions", ow_1.default.object.exactShape(_BasicCrawler.optionsShape));
        const {
          requestList,
          requestQueue,
          requestManager,
          maxRequestRetries = 3,
          sameDomainDelaySecs = 0,
          maxSessionRotations = 10,
          maxRequestsPerCrawl,
          maxCrawlDepth,
          autoscaledPoolOptions = {},
          keepAlive,
          sessionPoolOptions = {},
          useSessionPool = true,
          // AutoscaledPool shorthands
          minConcurrency,
          maxConcurrency,
          maxRequestsPerMinute,
          retryOnBlocked = false,
          respectRobotsTxtFile = false,
          onSkippedRequest,
          // internal
          log: log2 = log_1.default.child({ prefix: this.constructor.name }),
          experiments = {},
          // Old and new request handler methods
          handleRequestFunction,
          requestHandler,
          handleRequestTimeoutSecs,
          requestHandlerTimeoutSecs,
          errorHandler,
          handleFailedRequestFunction,
          failedRequestHandler,
          statusMessageLoggingInterval = 10,
          statusMessageCallback,
          statisticsOptions,
          httpClient
        } = options;
        if (requestManager !== void 0) {
          if (requestList !== void 0 || requestQueue !== void 0) {
            throw new Error("The `requestManager` option cannot be used in conjunction with `requestList` and/or `requestQueue`");
          }
          this.requestManager = requestManager;
          this.requestQueue = requestManager;
        } else {
          this.requestList = requestList;
          this.requestQueue = requestQueue;
        }
        this.httpClient = httpClient ?? new core_1.GotScrapingHttpClient();
        this.log = log2;
        this.statusMessageLoggingInterval = statusMessageLoggingInterval;
        this.statusMessageCallback = statusMessageCallback;
        this.events = config.getEventManager();
        this.domainAccessedTime = /* @__PURE__ */ new Map();
        this.experiments = experiments;
        this.robotsTxtFileCache = new datastructures_1.LruCache({ maxLength: 1e3 });
        this.handleSkippedRequest = this.handleSkippedRequest.bind(this);
        this._handlePropertyNameChange({
          newName: "requestHandler",
          oldName: "handleRequestFunction",
          propertyKey: "requestHandler",
          newProperty: requestHandler,
          oldProperty: handleRequestFunction,
          allowUndefined: true
          // fallback to the default router
        });
        if (!this.requestHandler) {
          this.requestHandler = this.router;
        }
        this.errorHandler = errorHandler;
        this._handlePropertyNameChange({
          newName: "failedRequestHandler",
          oldName: "handleFailedRequestFunction",
          propertyKey: "failedRequestHandler",
          newProperty: failedRequestHandler,
          oldProperty: handleFailedRequestFunction,
          allowUndefined: true
        });
        let newRequestHandlerTimeout;
        if (!handleRequestTimeoutSecs) {
          if (!requestHandlerTimeoutSecs) {
            newRequestHandlerTimeout = 6e4;
          } else {
            newRequestHandlerTimeout = requestHandlerTimeoutSecs * 1e3;
          }
        } else if (requestHandlerTimeoutSecs) {
          newRequestHandlerTimeout = requestHandlerTimeoutSecs * 1e3;
        }
        this.retryOnBlocked = retryOnBlocked;
        this.respectRobotsTxtFile = respectRobotsTxtFile;
        this.onSkippedRequest = onSkippedRequest;
        this._handlePropertyNameChange({
          newName: "requestHandlerTimeoutSecs",
          oldName: "handleRequestTimeoutSecs",
          propertyKey: "requestHandlerTimeoutMillis",
          newProperty: newRequestHandlerTimeout,
          oldProperty: handleRequestTimeoutSecs ? handleRequestTimeoutSecs * 1e3 : void 0
        });
        const tryEnv = (val) => val == null ? null : +val;
        this.internalTimeoutMillis = tryEnv(process.env.CRAWLEE_INTERNAL_TIMEOUT) ?? Math.max(this.requestHandlerTimeoutMillis * 2, 3e5);
        if (this.requestQueue) {
          this.requestQueue.internalTimeoutMillis = this.internalTimeoutMillis;
          this.requestQueue.requestLockSecs = Math.max(this.requestHandlerTimeoutMillis / 1e3 + 5, 60);
        }
        this.maxRequestRetries = maxRequestRetries;
        this.maxCrawlDepth = maxCrawlDepth;
        this.sameDomainDelayMillis = sameDomainDelaySecs * 1e3;
        this.maxSessionRotations = maxSessionRotations;
        this.stats = new core_1.Statistics({
          logMessage: `${log2.getOptions().prefix} request statistics:`,
          log: log2,
          config,
          ...statisticsOptions
        });
        this.sessionPoolOptions = {
          ...sessionPoolOptions,
          log: log2
        };
        if (this.retryOnBlocked) {
          this.sessionPoolOptions.blockedStatusCodes = sessionPoolOptions.blockedStatusCodes ?? [];
          if (this.sessionPoolOptions.blockedStatusCodes.length !== 0) {
            log2.warning(`Both 'blockedStatusCodes' and 'retryOnBlocked' are set. Please note that the 'retryOnBlocked' feature might not work as expected.`);
          }
        }
        this.useSessionPool = useSessionPool;
        this.crawlingContexts = /* @__PURE__ */ new Map();
        const maxSignedInteger = 2 ** 31 - 1;
        if (this.requestHandlerTimeoutMillis > maxSignedInteger) {
          log2.warning(`requestHandlerTimeoutMillis ${this.requestHandlerTimeoutMillis} does not fit a signed 32-bit integer. Limiting the value to ${maxSignedInteger}`);
          this.requestHandlerTimeoutMillis = maxSignedInteger;
        }
        this.internalTimeoutMillis = Math.min(this.internalTimeoutMillis, maxSignedInteger);
        this.maxRequestsPerCrawl = maxRequestsPerCrawl;
        const isMaxPagesExceeded = () => this.maxRequestsPerCrawl && this.maxRequestsPerCrawl <= this.handledRequestsCount;
        let { isFinishedFunction, isTaskReadyFunction } = autoscaledPoolOptions;
        if (keepAlive) {
          isFinishedFunction = async () => false;
        }
        const basicCrawlerAutoscaledPoolConfiguration = {
          minConcurrency: minConcurrency ?? autoscaledPoolOptions?.minConcurrency,
          maxConcurrency: maxConcurrency ?? autoscaledPoolOptions?.maxConcurrency,
          maxTasksPerMinute: maxRequestsPerMinute ?? autoscaledPoolOptions?.maxTasksPerMinute,
          runTaskFunction: this._runTaskFunction.bind(this),
          isTaskReadyFunction: async () => {
            if (isMaxPagesExceeded()) {
              this.logOncePerRun("shuttingDown", `Crawler reached the maxRequestsPerCrawl limit of ${this.maxRequestsPerCrawl} requests and will shut down soon. Requests that are in progress will be allowed to finish.`);
              return false;
            }
            if (this.unexpectedStop) {
              this.logOncePerRun("shuttingDown", "No new requests are allowed because the `stop()` method has been called. Ongoing requests will be allowed to complete.");
              return false;
            }
            return isTaskReadyFunction ? await isTaskReadyFunction() : await this._isTaskReadyFunction();
          },
          isFinishedFunction: async () => {
            if (isMaxPagesExceeded()) {
              log2.info(`Earlier, the crawler reached the maxRequestsPerCrawl limit of ${this.maxRequestsPerCrawl} requests and all requests that were in progress at that time have now finished. In total, the crawler processed ${this.handledRequestsCount} requests and will shut down.`);
              return true;
            }
            if (this.unexpectedStop) {
              this.log.info("The crawler has finished all the remaining ongoing requests and will shut down now.");
              return true;
            }
            const isFinished = isFinishedFunction ? await isFinishedFunction() : await this._defaultIsFinishedFunction();
            if (isFinished) {
              const reason = isFinishedFunction ? "Crawler's custom isFinishedFunction() returned true, the crawler will shut down." : "All requests from the queue have been processed, the crawler will shut down.";
              log2.info(reason);
            }
            return isFinished;
          },
          log: log2
        };
        this.autoscaledPoolOptions = { ...autoscaledPoolOptions, ...basicCrawlerAutoscaledPoolConfiguration };
      }
      /**
       * Checks if the given error is a proxy error by comparing its message to a list of known proxy error messages.
       * Used for retrying requests that failed due to proxy errors.
       *
       * @param error The error to check.
       */
      isProxyError(error) {
        return utils_1.ROTATE_PROXY_ERRORS.some((x3) => this._getMessageFromError(error)?.includes(x3));
      }
      /**
       * Checks whether the given crawling context is getting blocked by anti-bot protection using several heuristics.
       * Returns `false` if the request is not blocked, otherwise returns a string with a description of the block reason.
       * @param _crawlingContext The crawling context to check.
       */
      async isRequestBlocked(_crawlingContext) {
        throw new Error('the "isRequestBlocked" method is not implemented in this crawler.');
      }
      /**
       * This method is periodically called by the crawler, every `statusMessageLoggingInterval` seconds.
       */
      async setStatusMessage(message, options = {}) {
        const data = options.isStatusMessageTerminal != null ? { terminal: options.isStatusMessageTerminal } : void 0;
        this.log.internal(log_1.LogLevel[options.level ?? "DEBUG"], message, data);
        const client = this.config.getStorageClient();
        if (!client.setStatusMessage) {
          return;
        }
        await (0, timeout_1.addTimeoutToPromise)(async () => client.setStatusMessage(message, options), 1e3, "Setting status message timed out after 1s").catch((e2) => this.log.debug(e2.message));
      }
      getPeriodicLogger() {
        let previousState = { ...this.stats.state };
        const getOperationMode = () => {
          const { requestsFailed } = this.stats.state;
          const { requestsFailed: previousRequestsFailed } = previousState;
          previousState = { ...this.stats.state };
          if (requestsFailed - previousRequestsFailed > 0) {
            return "ERROR";
          }
          return "REGULAR";
        };
        const log2 = async () => {
          const operationMode = getOperationMode();
          let message;
          if (operationMode === "ERROR") {
            message = `Experiencing problems, ${this.stats.state.requestsFailed - previousState.requestsFailed || this.stats.state.requestsFailed} failed requests in the past ${this.statusMessageLoggingInterval} seconds.`;
          } else {
            const total = this.requestManager?.getTotalCount();
            message = `Crawled ${this.stats.state.requestsFinished}${total ? `/${total}` : ""} pages, ${this.stats.state.requestsFailed} failed requests, desired concurrency ${this.autoscaledPool?.desiredConcurrency ?? 0}.`;
          }
          if (this.statusMessageCallback) {
            await this.statusMessageCallback({
              crawler: this,
              state: this.stats.state,
              previousState,
              message
            });
            return;
          }
          await this.setStatusMessage(message);
        };
        const interval = setInterval(log2, this.statusMessageLoggingInterval * 1e3);
        return { log: log2, stop: () => clearInterval(interval) };
      }
      /**
       * Runs the crawler. Returns a promise that resolves once all the requests are processed
       * and `autoscaledPool.isFinished` returns `true`.
       *
       * We can use the `requests` parameter to enqueue the initial requests — it is a shortcut for
       * running {@link BasicCrawler.addRequests|`crawler.addRequests()`} before {@link BasicCrawler.run|`crawler.run()`}.
       *
       * @param [requests] The requests to add.
       * @param [options] Options for the request queue.
       */
      async run(requests, options) {
        if (this.running) {
          throw new Error("This crawler instance is already running, you can add more requests to it via `crawler.addRequests()`.");
        }
        const { purgeRequestQueue = true, ...addRequestsOptions } = options ?? {};
        if (this.hasFinishedBefore) {
          if (this.requestQueue?.name === "default" && purgeRequestQueue) {
            await this.requestQueue.drop();
            this.requestQueue = await this._getRequestQueue();
            this.requestManager = void 0;
            await this.initializeRequestManager();
            this.handledRequestsCount = 0;
          }
          this.stats.reset();
          await this.stats.resetStore();
          await this.sessionPool?.resetStore();
        }
        this.unexpectedStop = false;
        this.running = true;
        this.loggedPerRun.clear();
        await (0, core_1.purgeDefaultStorages)({
          onlyPurgeOnce: true,
          client: this.config.getStorageClient(),
          config: this.config
        });
        if (requests) {
          await this.addRequests(requests, addRequestsOptions);
        }
        await this._init();
        await this.stats.startCapturing();
        const periodicLogger = this.getPeriodicLogger();
        void this.setStatusMessage("Starting the crawler.", { level: "INFO" });
        const sigintHandler = async () => {
          this.log.warning("Pausing... Press CTRL+C again to force exit. To resume, do: CRAWLEE_PURGE_ON_START=0 npm start");
          await this._pauseOnMigration();
          await this.autoscaledPool.abort();
        };
        const boundPauseOnMigration = this._pauseOnMigration.bind(this);
        process.once("SIGINT", sigintHandler);
        this.events.on("migrating", boundPauseOnMigration);
        this.events.on("aborting", boundPauseOnMigration);
        let stats = {};
        try {
          await this.autoscaledPool.run();
        } finally {
          await this.teardown();
          await this.stats.stopCapturing();
          process.off("SIGINT", sigintHandler);
          this.events.off("migrating", boundPauseOnMigration);
          this.events.off("aborting", boundPauseOnMigration);
          const finalStats = this.stats.calculate();
          stats = {
            requestsFinished: this.stats.state.requestsFinished,
            requestsFailed: this.stats.state.requestsFailed,
            retryHistogram: this.stats.requestRetryHistogram,
            ...finalStats
          };
          this.log.info("Final request statistics:", stats);
          if (this.stats.errorTracker.total !== 0) {
            const prettify = ([count, info]) => `${count}x: ${info.at(-1).trim()} (${info[0]})`;
            this.log.info(`Error analysis:`, {
              totalErrors: this.stats.errorTracker.total,
              uniqueErrors: this.stats.errorTracker.getUniqueErrorCount(),
              mostCommonErrors: this.stats.errorTracker.getMostPopularErrors(3).map(prettify)
            });
          }
          const client = this.config.getStorageClient();
          if (client.teardown) {
            let finished2 = false;
            setTimeout(() => {
              if (!finished2) {
                this.log.info("Waiting for the storage to write its state to file system.");
              }
            }, 1e3);
            await client.teardown();
            finished2 = true;
          }
          periodicLogger.stop();
          void this.setStatusMessage(`Finished! Total ${this.stats.state.requestsFinished + this.stats.state.requestsFailed} requests: ${this.stats.state.requestsFinished} succeeded, ${this.stats.state.requestsFailed} failed.`, { isStatusMessageTerminal: true, level: "INFO" });
          this.running = false;
          this.hasFinishedBefore = true;
        }
        return stats;
      }
      /**
       * Gracefully stops the current run of the crawler.
       *
       * All the tasks active at the time of calling this method will be allowed to finish.
       *
       * To stop the crawler immediately, use {@link BasicCrawler.teardown|`crawler.teardown()`} instead.
       */
      stop(reason = "The crawler has been gracefully stopped.") {
        if (this.unexpectedStop) {
          return;
        }
        this.log.info(reason);
        this.unexpectedStop = true;
      }
      async getRequestQueue() {
        if (!this.requestQueue && this.requestList) {
          this.log.warningOnce("When using RequestList and RequestQueue at the same time, you should instantiate both explicitly and provide them in the crawler options, to ensure correctly handled restarts of the crawler.");
        }
        if (!this.requestQueue) {
          this.requestQueue = await this._getRequestQueue();
          this.requestManager = void 0;
        }
        if (!this.requestManager) {
          this.requestManager = this.requestList === void 0 ? this.requestQueue : new core_1.RequestManagerTandem(this.requestList, this.requestQueue);
        }
        return this.requestQueue;
      }
      async useState(defaultValue = {}) {
        const kvs = await core_1.KeyValueStore.open(null, { config: this.config });
        return kvs.getAutoSavedValue(_BasicCrawler.CRAWLEE_STATE_KEY, defaultValue);
      }
      get pendingRequestCountApproximation() {
        return this.requestManager?.getPendingCount() ?? 0;
      }
      calculateEnqueuedRequestLimit(explicitLimit) {
        if (this.maxRequestsPerCrawl === void 0) {
          return explicitLimit;
        }
        const limit = Math.max(0, this.maxRequestsPerCrawl - this.handledRequestsCount - this.pendingRequestCountApproximation);
        return Math.min(limit, explicitLimit ?? Infinity);
      }
      async handleSkippedRequest(options) {
        if (options.reason === "limit") {
          this.logOncePerRun("maxRequestsPerCrawl", `The number of requests enqueued by the crawler reached the maxRequestsPerCrawl limit of ${this.maxRequestsPerCrawl} requests and no further requests will be added.`);
        }
        if (options.reason === "depth") {
          this.logOncePerRun("maxCrawlDepth", `The crawler reached the maxCrawlDepth limit of ${this.maxCrawlDepth} and no further requests will be enqueued.`);
        }
        await this.onSkippedRequest?.(options);
      }
      logOncePerRun(key, message) {
        if (!this.loggedPerRun.has(key)) {
          this.log.info(message);
          this.loggedPerRun.add(key);
        }
      }
      /**
       * Adds requests to the queue in batches. By default, it will resolve after the initial batch is added, and continue
       * adding the rest in background. You can configure the batch size via `batchSize` option and the sleep time in between
       * the batches via `waitBetweenBatchesMillis`. If you want to wait for all batches to be added to the queue, you can use
       * the `waitForAllRequestsToBeAdded` promise you get in the response object.
       *
       * This is an alias for calling `addRequestsBatched()` on the implicit `RequestQueue` for this crawler instance.
       *
       * @param requests The requests to add
       * @param options Options for the request queue
       */
      async addRequests(requests, options = {}) {
        await this.getRequestQueue();
        const requestLimit = this.calculateEnqueuedRequestLimit();
        const skippedBecauseOfRobots = /* @__PURE__ */ new Set();
        const skippedBecauseOfLimit = /* @__PURE__ */ new Set();
        const skippedBecauseOfMaxCrawlDepth = /* @__PURE__ */ new Set();
        const isAllowedBasedOnRobotsTxtFile = this.isAllowedBasedOnRobotsTxtFile.bind(this);
        const maxCrawlDepth = this.maxCrawlDepth;
        (0, ow_1.default)(requests, ow_1.default.object.is((value) => (0, utils_1.isIterable)(value) || (0, utils_1.isAsyncIterable)(value)).message((value) => `Expected an iterable or async iterable, got ${(0, utils_1.getObjectType)(value)}`));
        async function* filteredRequests() {
          let yieldedRequestCount = 0;
          for await (const request of requests) {
            const url2 = typeof request === "string" ? request : request.url;
            if (requestLimit !== void 0 && yieldedRequestCount >= requestLimit) {
              skippedBecauseOfLimit.add(url2);
              continue;
            }
            if (maxCrawlDepth !== void 0 && request.crawlDepth > maxCrawlDepth) {
              skippedBecauseOfMaxCrawlDepth.add(url2);
              continue;
            }
            if (await isAllowedBasedOnRobotsTxtFile(url2)) {
              yield request;
              yieldedRequestCount += 1;
            } else {
              skippedBecauseOfRobots.add(url2);
            }
          }
        }
        const result = await this.requestManager.addRequestsBatched(filteredRequests(), options);
        if (skippedBecauseOfRobots.size > 0) {
          this.log.warning(`Some requests were skipped because they were disallowed based on the robots.txt file`, {
            skipped: [...skippedBecauseOfRobots]
          });
        }
        if (skippedBecauseOfRobots.size > 0 || skippedBecauseOfLimit.size > 0 || skippedBecauseOfMaxCrawlDepth.size > 0) {
          await Promise.all([...skippedBecauseOfRobots].map((url2) => {
            return this.handleSkippedRequest({ url: url2, reason: "robotsTxt" });
          }).concat([...skippedBecauseOfLimit].map((url2) => {
            return this.handleSkippedRequest({ url: url2, reason: "limit" });
          }), [...skippedBecauseOfMaxCrawlDepth].map((url2) => {
            return this.handleSkippedRequest({ url: url2, reason: "depth" });
          })));
        }
        return result;
      }
      /**
       * Pushes data to the specified {@link Dataset}, or the default crawler {@link Dataset} by calling {@link Dataset.pushData}.
       */
      async pushData(data, datasetIdOrName) {
        const dataset = await this.getDataset(datasetIdOrName);
        return dataset.pushData(data);
      }
      /**
       * Retrieves the specified {@link Dataset}, or the default crawler {@link Dataset}.
       */
      async getDataset(idOrName) {
        return core_1.Dataset.open(idOrName, { config: this.config });
      }
      /**
       * Retrieves data from the default crawler {@link Dataset} by calling {@link Dataset.getData}.
       */
      async getData(...args) {
        const dataset = await this.getDataset();
        return dataset.getData(...args);
      }
      /**
       * Retrieves all the data from the default crawler {@link Dataset} and exports them to the specified format.
       * Supported formats are currently 'json' and 'csv', and will be inferred from the `path` automatically.
       */
      async exportData(path22, format, options) {
        const supportedFormats = ["json", "csv"];
        if (!format && path22.match(/\.(json|csv)$/i)) {
          format = path22.toLowerCase().match(/\.(json|csv)$/)[1];
        }
        if (!format) {
          throw new Error(`Failed to infer format from the path: '${path22}'. Supported formats: ${supportedFormats.join(", ")}`);
        }
        if (!supportedFormats.includes(format)) {
          throw new Error(`Unsupported format: '${format}'. Use one of ${supportedFormats.join(", ")}`);
        }
        const dataset = await this.getDataset();
        const items = await dataset.export(options);
        if (format === "csv") {
          let value;
          if (items.length === 0) {
            value = "";
          } else {
            const keys = options?.collectAllKeys ? Array.from(new Set(items.flatMap(Object.keys))) : Object.keys(items[0]);
            value = (0, sync_1.stringify)([
              keys,
              ...items.map((item) => {
                return keys.map((k3) => item[k3]);
              })
            ]);
          }
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(path22));
          await (0, fs_extra_1.writeFile)(path22, value);
          this.log.info(`Export to ${path22} finished!`);
        }
        if (format === "json") {
          await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(path22));
          await (0, fs_extra_1.writeJSON)(path22, items, { spaces: 4 });
          this.log.info(`Export to ${path22} finished!`);
        }
        return items;
      }
      /**
       * Initializes the crawler.
       */
      async _init() {
        if (!this.events.isInitialized()) {
          await this.events.init();
          this._closeEvents = true;
        }
        this.autoscaledPool = new core_1.AutoscaledPool(this.autoscaledPoolOptions, this.config);
        if (this.useSessionPool) {
          this.sessionPool = await core_1.SessionPool.open(this.sessionPoolOptions, this.config);
          this.sessionPool.setMaxListeners(20);
        }
        await this.initializeRequestManager();
        await this._loadHandledRequestCount();
      }
      async _runRequestHandler(crawlingContext) {
        await this.requestHandler(crawlingContext);
      }
      /**
       * Handles blocked request
       */
      _throwOnBlockedRequest(session, statusCode) {
        const isBlocked = session.retireOnBlockedStatusCodes(statusCode);
        if (isBlocked) {
          throw new Error(`Request blocked - received ${statusCode} status code.`);
        }
      }
      async isAllowedBasedOnRobotsTxtFile(url2) {
        if (!this.respectRobotsTxtFile) {
          return true;
        }
        const robotsTxtFile = await this.getRobotsTxtFileForUrl(url2);
        const userAgent = typeof this.respectRobotsTxtFile === "object" ? this.respectRobotsTxtFile?.userAgent : "*";
        return !robotsTxtFile || robotsTxtFile.isAllowed(url2, userAgent);
      }
      async getRobotsTxtFileForUrl(url2) {
        if (!this.respectRobotsTxtFile) {
          return void 0;
        }
        try {
          const origin2 = new URL(url2).origin;
          const cachedRobotsTxtFile = this.robotsTxtFileCache.get(origin2);
          if (cachedRobotsTxtFile) {
            return cachedRobotsTxtFile;
          }
          const robotsTxtFile = await utils_1.RobotsTxtFile.find(url2);
          this.robotsTxtFileCache.add(origin2, robotsTxtFile);
          return robotsTxtFile;
        } catch (e2) {
          this.log.warning(`Failed to fetch robots.txt for request ${url2}`);
          return void 0;
        }
      }
      async _pauseOnMigration() {
        if (this.autoscaledPool) {
          await this.autoscaledPool.pause(SAFE_MIGRATION_WAIT_MILLIS).catch((err2) => {
            if (err2.message.includes("running tasks did not finish")) {
              this.log.error("The crawler was paused due to migration to another host, but some requests did not finish in time. Those requests' results may be duplicated.");
            } else {
              throw err2;
            }
          });
        }
        const requestListPersistPromise = (async () => {
          if (this.requestList) {
            if (await this.requestList.isFinished())
              return;
            await this.requestList.persistState().catch((err2) => {
              if (err2.message.includes("Cannot persist state.")) {
                this.log.error(`The crawler attempted to persist its request list's state and failed due to missing or invalid config. Make sure to use either RequestList.open() or the "stateKeyPrefix" option of RequestList constructor to ensure your crawling state is persisted through host migrations and restarts.`);
              } else {
                this.log.exception(err2, "An unexpected error occurred when the crawler attempted to persist its request list's state.");
              }
            });
          }
        })();
        await Promise.all([requestListPersistPromise, this.stats.persistState()]);
      }
      /**
       * Initializes the RequestManager based on the configured requestList and requestQueue.
       */
      async initializeRequestManager() {
        if (this.requestManager !== void 0) {
          return;
        }
        if (this.requestList && this.requestQueue) {
          this.requestManager = new core_1.RequestManagerTandem(this.requestList, this.requestQueue);
        } else if (this.requestQueue) {
          this.requestManager = this.requestQueue;
        } else if (this.requestList) {
          this.requestManager = new core_1.RequestListAdapter(this.requestList);
        }
      }
      /**
       * Fetches the next request to process from the underlying request provider.
       */
      async _fetchNextRequest() {
        if (this.requestManager === void 0) {
          throw new Error(`_fetchNextRequest called on an uninitialized crawler`);
        }
        return this.requestManager.fetchNextRequest();
      }
      /**
       * Executed when `errorHandler` finishes or the request is successful.
       * Can be used to clean up orphaned browser pages.
       */
      async _cleanupContext(_crawlingContext) {
      }
      /**
       * Delays processing of the request based on the `sameDomainDelaySecs` option,
       * adding it back to the queue after the timeout passes. Returns `true` if the request
       * should be ignored and will be reclaimed to the queue once ready.
       */
      delayRequest(request, source) {
        const domain = (0, tldts_1.getDomain)(request.url);
        if (!domain || !request) {
          return false;
        }
        const now = Date.now();
        const lastAccessTime = this.domainAccessedTime.get(domain);
        if (!lastAccessTime || now - lastAccessTime >= this.sameDomainDelayMillis) {
          this.domainAccessedTime.set(domain, now);
          return false;
        }
        if (source instanceof core_1.RequestQueueV1) {
          source["inProgress"]?.delete(request.id);
        }
        const delay2 = lastAccessTime + this.sameDomainDelayMillis - now;
        this.log.debug(`Request ${request.url} (${request.id}) will be reclaimed after ${delay2} milliseconds due to same domain delay`);
        setTimeout(async () => {
          this.log.debug(`Adding request ${request.url} (${request.id}) back to the queue`);
          if (source instanceof core_1.RequestQueueV1) {
            source["inProgress"].add(request.id);
          }
          await source.reclaimRequest(request, { forefront: request.userData?.__crawlee?.forefront });
        }, delay2);
        return true;
      }
      /**
       * Wrapper around requestHandler that fetches requests from RequestList/RequestQueue
       * then retries them in a case of an error, etc.
       */
      async _runTaskFunction() {
        const source = this.requestManager;
        if (!source)
          throw new Error("Request provider is not initialized!");
        const request = await this._timeoutAndRetry(this._fetchNextRequest.bind(this), this.internalTimeoutMillis, `Fetching next request timed out after ${this.internalTimeoutMillis / 1e3} seconds.`);
        (0, timeout_1.tryCancel)();
        const session = this.useSessionPool ? await this._timeoutAndRetry(this.sessionPool.getSession.bind(this.sessionPool), this.internalTimeoutMillis, `Fetching session timed out after ${this.internalTimeoutMillis / 1e3} seconds.`) : void 0;
        (0, timeout_1.tryCancel)();
        if (!request || this.delayRequest(request, source)) {
          return;
        }
        if (!await this.isAllowedBasedOnRobotsTxtFile(request.url)) {
          this.log.warning(`Skipping request ${request.url} (${request.id}) because it is disallowed based on robots.txt`);
          request.state = core_1.RequestState.SKIPPED;
          request.noRetry = true;
          await source.markRequestHandled(request);
          await this.handleSkippedRequest({
            url: request.url,
            reason: "robotsTxt"
          });
          return;
        }
        request.loadedUrl = void 0;
        const statisticsId = request.id || request.uniqueKey;
        this.stats.startJob(statisticsId);
        const crawlingContext = {
          id: (0, utilities_1.cryptoRandomObjectId)(10),
          crawler: this,
          log: this.log,
          request,
          session,
          enqueueLinks: async (options) => {
            const requestQueue = await this.getRequestQueue();
            return this.enqueueLinksWithCrawlDepth(options, request, requestQueue);
          },
          addRequests: async (requests, options = {}) => {
            const newCrawlDepth = request.crawlDepth + 1;
            const requestsGenerator = this.addCrawlDepthRequestGenerator(requests, newCrawlDepth);
            return this.addRequests(requestsGenerator, options);
          },
          pushData: this.pushData.bind(this),
          useState: this.useState.bind(this),
          sendRequest: (0, send_request_1.createSendRequest)(this.httpClient, request, session, () => crawlingContext.proxyInfo?.url),
          getKeyValueStore: async (idOrName) => core_1.KeyValueStore.open(idOrName, { config: this.config })
        };
        this.crawlingContexts.set(crawlingContext.id, crawlingContext);
        let isRequestLocked = true;
        try {
          request.state = core_1.RequestState.REQUEST_HANDLER;
          await (0, timeout_1.addTimeoutToPromise)(async () => this._runRequestHandler(crawlingContext), this.requestHandlerTimeoutMillis, `requestHandler timed out after ${this.requestHandlerTimeoutMillis / 1e3} seconds (${request.id}).`);
          await this._timeoutAndRetry(async () => source.markRequestHandled(request), this.internalTimeoutMillis, `Marking request ${request.url} (${request.id}) as handled timed out after ${this.internalTimeoutMillis / 1e3} seconds.`);
          isRequestLocked = false;
          this.stats.finishJob(statisticsId, request.retryCount);
          this.handledRequestsCount++;
          request.state = core_1.RequestState.DONE;
          crawlingContext.session?.markGood();
        } catch (err2) {
          try {
            request.state = core_1.RequestState.ERROR_HANDLER;
            await (0, timeout_1.addTimeoutToPromise)(async () => this._requestFunctionErrorHandler(err2, crawlingContext, source), this.internalTimeoutMillis, `Handling request failure of ${request.url} (${request.id}) timed out after ${this.internalTimeoutMillis / 1e3} seconds.`);
            if (!(err2 instanceof core_1.CriticalError)) {
              isRequestLocked = false;
            }
            request.state = core_1.RequestState.DONE;
          } catch (secondaryError) {
            if (!secondaryError.triggeredFromUserHandler && // avoid reprinting the same critical error multiple times, as it will be printed by Nodejs at the end anyway
            !(secondaryError instanceof core_1.CriticalError)) {
              const apifySpecific = process.env.APIFY_IS_AT_HOME ? `This may have happened due to an internal error of Apify's API or due to a misconfigured crawler.` : "";
              this.log.exception(secondaryError, `An exception occurred during handling of failed request. This places the crawler and its underlying storages into an unknown state and crawling will be terminated. ${apifySpecific}`);
            }
            request.state = core_1.RequestState.ERROR;
            throw secondaryError;
          }
          crawlingContext.session?.markBad();
        } finally {
          await this._cleanupContext(crawlingContext);
          this.crawlingContexts.delete(crawlingContext.id);
          if (isRequestLocked && source instanceof core_1.RequestProvider) {
            try {
              await source.client.deleteRequestLock(request.id);
            } catch {
            }
          }
        }
      }
      /**
       * Wrapper around the crawling context's `enqueueLinks` method:
       * - Injects `crawlDepth` to each request being added based on the crawling context request.
       * - Provides defaults for the `enqueueLinks` options based on the crawler configuration.
       *      - These options can be overridden by the user.
       * @internal
       */
      async enqueueLinksWithCrawlDepth(options, request, requestQueue) {
        const transformRequestFunctionWrapper = (newRequest) => {
          newRequest.crawlDepth = request.crawlDepth + 1;
          if (this.maxCrawlDepth !== void 0 && newRequest.crawlDepth > this.maxCrawlDepth) {
            newRequest.skippedReason = "depth";
            return false;
          }
          return options.transformRequestFunction?.(newRequest) ?? newRequest;
        };
        let loggedEnqueueLimitForThisRequest = false;
        const onSkippedRequest = async (skippedOptions) => {
          if (skippedOptions.reason === "enqueueLimit") {
            if (!loggedEnqueueLimitForThisRequest && options.limit !== void 0) {
              this.log.info(`Skipping URLs in the handler for ${request.url} due to the enqueueLinks limit of ${options.limit}.`);
              loggedEnqueueLimitForThisRequest = true;
            }
          }
          await this.handleSkippedRequest(skippedOptions);
        };
        return (0, core_1.enqueueLinks)({
          requestQueue,
          robotsTxtFile: await this.getRobotsTxtFileForUrl(request.url),
          onSkippedRequest,
          limit: this.calculateEnqueuedRequestLimit(options.limit),
          // Allow user options to override defaults set above ⤴
          ...options,
          transformRequestFunction: transformRequestFunctionWrapper
        });
      }
      /**
       * Generator function that yields requests injected with the given crawl depth.
       * @internal
       */
      async *addCrawlDepthRequestGenerator(requests, newRequestDepth) {
        for await (const request of requests) {
          if (typeof request === "string") {
            yield { url: request, crawlDepth: newRequestDepth };
          } else {
            request.crawlDepth ?? (request.crawlDepth = newRequestDepth);
            yield request;
          }
        }
      }
      /**
       * Run async callback with given timeout and retry. Returns the result of the callback.
       * @ignore
       */
      async _timeoutAndRetry(handler, timeout, error, maxRetries = 3, retried = 1) {
        try {
          return await (0, timeout_1.addTimeoutToPromise)(handler, timeout, error);
        } catch (e2) {
          if (retried <= maxRetries) {
            this.log.warning(`${e2.message} (retrying ${retried}/${maxRetries})`);
            return this._timeoutAndRetry(handler, timeout, error, maxRetries, retried + 1);
          }
          throw e2;
        }
      }
      /**
       * Returns true if either RequestList or RequestQueue have a request ready for processing.
       */
      async _isTaskReadyFunction() {
        return this.requestManager !== void 0 && !await this.requestManager.isEmpty();
      }
      /**
       * Returns true if both RequestList and RequestQueue have all requests finished.
       */
      async _defaultIsFinishedFunction() {
        return !this.requestManager || await this.requestManager.isFinished();
      }
      async _rotateSession(crawlingContext) {
        const { request } = crawlingContext;
        request.sessionRotationCount ?? (request.sessionRotationCount = 0);
        request.sessionRotationCount++;
        crawlingContext.session?.retire();
      }
      /**
       * Handles errors thrown by user provided requestHandler()
       */
      async _requestFunctionErrorHandler(error, crawlingContext, source) {
        const { request } = crawlingContext;
        request.pushErrorMessage(error);
        if (error instanceof core_1.CriticalError) {
          throw error;
        }
        const shouldRetryRequest = this._canRequestBeRetried(request, error);
        if (shouldRetryRequest) {
          await this.stats.errorTrackerRetry.addAsync(error, crawlingContext);
          await this._tagUserHandlerError(() => this.errorHandler?.(this._augmentContextWithDeprecatedError(crawlingContext, error), error));
          if (error instanceof core_1.SessionError) {
            await this._rotateSession(crawlingContext);
          }
          if (!request.noRetry) {
            request.retryCount++;
            const { url: url2, retryCount, id } = request;
            const message = this._getMessageFromError(error);
            this.log.warning(`Reclaiming failed request back to the list or queue. ${message}`, {
              id,
              url: url2,
              retryCount
            });
            await source.reclaimRequest(request, { forefront: request.userData?.__crawlee?.forefront });
            return;
          }
        }
        const { noRetry, maxRetries } = request;
        if (noRetry || !maxRetries) {
          await this.stats.errorTracker.addAsync(error, crawlingContext);
        } else {
          this.stats.errorTracker.add(error);
        }
        this.handledRequestsCount++;
        await source.markRequestHandled(request);
        this.stats.failJob(request.id || request.uniqueKey, request.retryCount);
        await this._handleFailedRequestHandler(crawlingContext, error);
      }
      async _tagUserHandlerError(cb) {
        try {
          return await cb();
        } catch (e2) {
          Object.defineProperty(e2, "triggeredFromUserHandler", { value: true });
          throw e2;
        }
      }
      async _handleFailedRequestHandler(crawlingContext, error) {
        const { id, url: url2, method, uniqueKey } = crawlingContext.request;
        const message = this._getMessageFromError(error, true);
        this.log.error(`Request failed and reached maximum retries. ${message}`, { id, url: url2, method, uniqueKey });
        if (this.failedRequestHandler) {
          await this._tagUserHandlerError(() => this.failedRequestHandler?.(this._augmentContextWithDeprecatedError(crawlingContext, error), error));
        }
      }
      /**
       * Resolves the most verbose error message from a thrown error
       * @param error The error received
       * @returns The message to be logged
       */
      _getMessageFromError(error, forceStack = false) {
        if ([TypeError, SyntaxError, ReferenceError].some((type) => error instanceof type)) {
          forceStack = true;
        }
        const stackLines = error?.stack ? error.stack.split("\n") : new Error().stack.split("\n").slice(2);
        const baseDir = process.cwd();
        const userLine = stackLines.find((line) => line.includes(baseDir) && !line.includes("node_modules"));
        if (error instanceof timeout_1.TimeoutError) {
          return process.env.CRAWLEE_VERBOSE_LOG ? error.stack : error.message || error;
        }
        return process.env.CRAWLEE_VERBOSE_LOG || forceStack ? error.stack ?? [error.message || error, ...stackLines].join("\n") : [error.message || error, userLine].join("\n");
      }
      _canRequestBeRetried(request, error) {
        if (request.noRetry || error instanceof core_1.NonRetryableError || error instanceof core_1.SessionError && this.maxSessionRotations <= (request.sessionRotationCount ?? 0)) {
          return false;
        }
        if (error instanceof core_1.RetryRequestError) {
          return true;
        }
        const maxRequestRetries = request.maxRetries ?? this.maxRequestRetries;
        return request.retryCount < maxRequestRetries;
      }
      _augmentContextWithDeprecatedError(context, error) {
        Object.defineProperty(context, "error", {
          get: () => {
            this.log.deprecated("The 'error' property of the crawling context is deprecated, and it is now passed as the second parameter in 'errorHandler' and 'failedRequestHandler'. Please update your code, as this property will be removed in a future version.");
            return error;
          },
          configurable: true
        });
        return context;
      }
      /**
       * Updates handledRequestsCount from possibly stored counts, usually after worker migration.
       */
      async _loadHandledRequestCount() {
        if (this.requestManager) {
          this.handledRequestsCount = await this.requestManager.handledCount();
        }
      }
      async _executeHooks(hooks2, ...args) {
        if (Array.isArray(hooks2) && hooks2.length) {
          for (const hook of hooks2) {
            await hook(...args);
          }
        }
      }
      /**
       * Stops the crawler immediately.
       *
       * This method doesn't wait for currently active requests to finish.
       *
       * To stop the crawler gracefully (waiting for all running requests to finish), use {@link BasicCrawler.stop|`crawler.stop()`} instead.
       */
      async teardown() {
        this.events.emit("persistState", { isMigrating: false });
        if (this.useSessionPool) {
          await this.sessionPool.teardown();
        }
        if (this._closeEvents) {
          await this.events.close();
        }
        await this.autoscaledPool?.abort();
      }
      _handlePropertyNameChange({ newProperty, newName, oldProperty, oldName, propertyKey, allowUndefined = false }) {
        if (newProperty && oldProperty) {
          this.log.warning([
            `Both "${newName}" and "${oldName}" were provided in the crawler options.`,
            `"${oldName}" has been renamed to "${newName}", and will be removed in a future version.`,
            `As such, "${newName}" will be used instead.`
          ].join("\n"));
          this[propertyKey] = newProperty;
        } else if (oldProperty) {
          this.log.warning([
            `"${oldName}" has been renamed to "${newName}", and will be removed in a future version.`,
            `The provided value will be used, but you should rename "${oldName}" to "${newName}" in your crawler options.`
          ].join("\n"));
          this[propertyKey] = oldProperty;
        } else if (newProperty) {
          this[propertyKey] = newProperty;
        } else if (!allowUndefined) {
          throw new ow_1.ArgumentError(`"${newName}" must be provided in the crawler options`, this.constructor);
        }
      }
      _getCookieHeaderFromRequest(request) {
        if (request.headers?.Cookie && request.headers?.cookie) {
          this.log.warning(`Encountered mixed casing for the cookie headers for request ${request.url} (${request.id}). Their values will be merged.`);
          return (0, core_1.mergeCookies)(request.url, [request.headers.cookie, request.headers.Cookie]);
        }
        return request.headers?.Cookie || request.headers?.cookie || "";
      }
      async _getRequestQueue() {
        if (this.experiments.requestLocking === false) {
          if (!this._experimentWarnings.requestLocking) {
            this.log.info("Using the old RequestQueue implementation without request locking.");
            this._experimentWarnings.requestLocking = true;
          }
          return core_1.RequestQueueV1.open(null, { config: this.config });
        }
        return core_1.RequestQueue.open(null, { config: this.config });
      }
      requestMatchesEnqueueStrategy(request) {
        const { url: url2, loadedUrl } = request;
        const strategy = request["enqueueStrategy"];
        if (!strategy) {
          return true;
        }
        if (!loadedUrl) {
          return true;
        }
        const baseUrl = new URL(url2);
        const loadedBaseUrl = new URL(loadedUrl);
        switch (strategy) {
          case core_1.EnqueueStrategy.SameHostname: {
            return baseUrl.hostname === loadedBaseUrl.hostname;
          }
          case core_1.EnqueueStrategy.SameDomain: {
            const baseUrlHostname = (0, tldts_1.getDomain)(baseUrl.hostname, { mixedInputs: false });
            if (baseUrlHostname) {
              const loadedBaseUrlHostname = (0, tldts_1.getDomain)(loadedBaseUrl.hostname, { mixedInputs: false });
              return baseUrlHostname === loadedBaseUrlHostname;
            }
            return baseUrl.origin === loadedBaseUrl.origin;
          }
          case core_1.EnqueueStrategy.SameOrigin: {
            return baseUrl.origin === loadedBaseUrl.origin;
          }
          case core_1.EnqueueStrategy.All:
          default: {
            return baseUrl.protocol === "http:" || baseUrl.protocol === "https:";
          }
        }
      }
    };
    exports2.BasicCrawler = BasicCrawler2;
    Object.defineProperty(BasicCrawler2, "CRAWLEE_STATE_KEY", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: "CRAWLEE_STATE"
    });
    Object.defineProperty(BasicCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        requestList: ow_1.default.optional.object.validate(core_1.validators.requestList),
        requestQueue: ow_1.default.optional.object.validate(core_1.validators.requestQueue),
        // Subclasses override this function instead of passing it
        // in constructor, so this validation needs to apply only
        // if the user creates an instance of BasicCrawler directly.
        requestHandler: ow_1.default.optional.function,
        // TODO: remove in a future release
        handleRequestFunction: ow_1.default.optional.function,
        requestHandlerTimeoutSecs: ow_1.default.optional.number,
        // TODO: remove in a future release
        handleRequestTimeoutSecs: ow_1.default.optional.number,
        errorHandler: ow_1.default.optional.function,
        failedRequestHandler: ow_1.default.optional.function,
        // TODO: remove in a future release
        handleFailedRequestFunction: ow_1.default.optional.function,
        maxRequestRetries: ow_1.default.optional.number,
        sameDomainDelaySecs: ow_1.default.optional.number,
        maxSessionRotations: ow_1.default.optional.number,
        maxRequestsPerCrawl: ow_1.default.optional.number,
        maxCrawlDepth: ow_1.default.optional.number,
        autoscaledPoolOptions: ow_1.default.optional.object,
        sessionPoolOptions: ow_1.default.optional.object,
        useSessionPool: ow_1.default.optional.boolean,
        statusMessageLoggingInterval: ow_1.default.optional.number,
        statusMessageCallback: ow_1.default.optional.function,
        retryOnBlocked: ow_1.default.optional.boolean,
        respectRobotsTxtFile: ow_1.default.optional.any(ow_1.default.boolean, ow_1.default.object),
        onSkippedRequest: ow_1.default.optional.function,
        httpClient: ow_1.default.optional.object,
        // AutoscaledPool shorthands
        minConcurrency: ow_1.default.optional.number,
        maxConcurrency: ow_1.default.optional.number,
        maxRequestsPerMinute: ow_1.default.optional.number.integerOrInfinite.positive.greaterThanOrEqual(1),
        keepAlive: ow_1.default.optional.boolean,
        // internal
        log: ow_1.default.optional.object,
        experiments: ow_1.default.optional.object,
        statisticsOptions: ow_1.default.optional.object
      }
    });
    function createBasicRouter2(routes) {
      return core_1.Router.create(routes);
    }
  }
});
var require_constants3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/internals/constants.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS = void 0;
    exports2.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS = 10;
  }
});
var require_basic = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+basic@3.16.0/node_modules/@crawlee/basic/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_core(), exports2);
    tslib_1.__exportStar(require_basic_crawler(), exports2);
    tslib_1.__exportStar(require_constants3(), exports2);
  }
});
var require_safer = __commonJS2({
  "../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js"(exports2, module2) {
    "use strict";
    var buffer = __require("buffer");
    var Buffer4 = 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 Buffer4) {
      if (!Buffer4.hasOwnProperty(key)) continue;
      if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
      Safer[key] = Buffer4[key];
    }
    safer.Buffer.prototype = Buffer4.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 Buffer4(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 = Buffer4(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 (e2) {
      }
    }
    if (!safer.constants) {
      safer.constants = {
        MAX_LENGTH: safer.kMaxLength
      };
      if (safer.kStringMaxLength) {
        safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
      }
    }
    module2.exports = safer;
  }
});
var require_bom_handling = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/bom-handling.js"(exports2) {
    "use strict";
    var BOMChar = "\uFEFF";
    exports2.PrependBOM = PrependBOMWrapper;
    function PrependBOMWrapper(encoder, options) {
      this.encoder = encoder;
      this.addBOM = true;
    }
    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();
    };
    exports2.StripBOM = StripBOMWrapper;
    function StripBOMWrapper(decoder2, options) {
      this.decoder = decoder2;
      this.pass = false;
      this.options = options || {};
    }
    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();
    };
  }
});
var require_merge_exports = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/helpers/merge-exports.js"(exports2, module2) {
    "use strict";
    var hasOwn = typeof Object.hasOwn === "undefined" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn;
    function mergeModules(target, module22) {
      for (var key in module22) {
        if (hasOwn(module22, key)) {
          target[key] = module22[key];
        }
      }
    }
    module2.exports = mergeModules;
  }
});
var require_internal = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/internal.js"(exports2, module2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    module2.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 (Buffer4.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
          this.decoder = InternalDecoderCesu8;
          this.defaultCharUnicode = iconv.defaultCharUnicode;
        }
      }
    }
    InternalCodec.prototype.encoder = InternalEncoder;
    InternalCodec.prototype.decoder = InternalDecoder;
    var StringDecoder = __require("string_decoder").StringDecoder;
    function InternalDecoder(options, codec) {
      this.decoder = new StringDecoder(codec.enc);
    }
    InternalDecoder.prototype.write = function(buf) {
      if (!Buffer4.isBuffer(buf)) {
        buf = Buffer4.from(buf);
      }
      return this.decoder.write(buf);
    };
    InternalDecoder.prototype.end = function() {
      return this.decoder.end();
    };
    function InternalEncoder(options, codec) {
      this.enc = codec.enc;
    }
    InternalEncoder.prototype.write = function(str) {
      return Buffer4.from(str, this.enc);
    };
    InternalEncoder.prototype.end = function() {
    };
    function InternalEncoderBase64(options, codec) {
      this.prevStr = "";
    }
    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 Buffer4.from(str, "base64");
    };
    InternalEncoderBase64.prototype.end = function() {
      return Buffer4.from(this.prevStr, "base64");
    };
    function InternalEncoderCesu8(options, codec) {
    }
    InternalEncoderCesu8.prototype.write = function(str) {
      var buf = Buffer4.alloc(str.length * 3);
      var bufIdx = 0;
      for (var i22 = 0; i22 < str.length; i22++) {
        var charCode = str.charCodeAt(i22);
        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;
    }
    InternalDecoderCesu8.prototype.write = function(buf) {
      var acc = this.acc;
      var contBytes = this.contBytes;
      var accBytes = this.accBytes;
      var res = "";
      for (var i22 = 0; i22 < buf.length; i22++) {
        var curByte = buf[i22];
        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 = "";
    }
    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 Buffer4.from(str, this.enc);
    };
    InternalEncoderUtf8.prototype.end = function() {
      if (this.highSurrogate) {
        var str = this.highSurrogate;
        this.highSurrogate = "";
        return Buffer4.from(str, this.enc);
      }
    };
  }
});
var require_utf32 = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf32.js"(exports2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    exports2._utf32 = Utf32Codec;
    function Utf32Codec(codecOptions, iconv) {
      this.iconv = iconv;
      this.bomAware = true;
      this.isLE = codecOptions.isLE;
    }
    exports2.utf32le = { type: "_utf32", isLE: true };
    exports2.utf32be = { type: "_utf32", isLE: false };
    exports2.ucs4le = "utf32le";
    exports2.ucs4be = "utf32be";
    Utf32Codec.prototype.encoder = Utf32Encoder;
    Utf32Codec.prototype.decoder = Utf32Decoder;
    function Utf32Encoder(options, codec) {
      this.isLE = codec.isLE;
      this.highSurrogate = 0;
    }
    Utf32Encoder.prototype.write = function(str) {
      var src = Buffer4.from(str, "ucs2");
      var dst = Buffer4.alloc(src.length * 2);
      var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
      var offset = 0;
      for (var i22 = 0; i22 < src.length; i22 += 2) {
        var code = src.readUInt16LE(i22);
        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 = Buffer4.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 = [];
    }
    Utf32Decoder.prototype.write = function(src) {
      if (src.length === 0) {
        return "";
      }
      var i22 = 0;
      var codepoint = 0;
      var dst = Buffer4.alloc(src.length + 4);
      var offset = 0;
      var isLE = this.isLE;
      var overflow = this.overflow;
      var badChar = this.badChar;
      if (overflow.length > 0) {
        for (; i22 < src.length && overflow.length < 4; i22++) {
          overflow.push(src[i22]);
        }
        if (overflow.length === 4) {
          if (isLE) {
            codepoint = overflow[i22] | overflow[i22 + 1] << 8 | overflow[i22 + 2] << 16 | overflow[i22 + 3] << 24;
          } else {
            codepoint = overflow[i22 + 3] | overflow[i22 + 2] << 8 | overflow[i22 + 1] << 16 | overflow[i22] << 24;
          }
          overflow.length = 0;
          offset = _writeCodepoint(dst, offset, codepoint, badChar);
        }
      }
      for (; i22 < src.length - 3; i22 += 4) {
        if (isLE) {
          codepoint = src[i22] | src[i22 + 1] << 8 | src[i22 + 2] << 16 | src[i22 + 3] << 24;
        } else {
          codepoint = src[i22 + 3] | src[i22 + 2] << 8 | src[i22 + 1] << 16 | src[i22] << 24;
        }
        offset = _writeCodepoint(dst, offset, codepoint, badChar);
      }
      for (; i22 < src.length; i22++) {
        overflow.push(src[i22]);
      }
      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;
    }
    Utf32Decoder.prototype.end = function() {
      this.overflow.length = 0;
    };
    exports2.utf32 = Utf32AutoCodec;
    exports2.ucs4 = "utf32";
    function Utf32AutoCodec(options, iconv) {
      this.iconv = iconv;
    }
    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);
    }
    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;
    }
    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 i22 = 0; i22 < this.initialBufs.length; i22++) {
          resStr += this.decoder.write(this.initialBufs[i22]);
        }
        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 i22 = 0; i22 < this.initialBufs.length; i22++) {
          resStr += this.decoder.write(this.initialBufs[i22]);
        }
        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 b2 = [];
      var charsProcessed = 0;
      var invalidLE = 0;
      var invalidBE = 0;
      var bmpCharsLE = 0;
      var bmpCharsBE = 0;
      outerLoop:
        for (var i22 = 0; i22 < bufs.length; i22++) {
          var buf = bufs[i22];
          for (var j2 = 0; j2 < buf.length; j2++) {
            b2.push(buf[j2]);
            if (b2.length === 4) {
              if (charsProcessed === 0) {
                if (b2[0] === 255 && b2[1] === 254 && b2[2] === 0 && b2[3] === 0) {
                  return "utf-32le";
                }
                if (b2[0] === 0 && b2[1] === 0 && b2[2] === 254 && b2[3] === 255) {
                  return "utf-32be";
                }
              }
              if (b2[0] !== 0 || b2[1] > 16) invalidBE++;
              if (b2[3] !== 0 || b2[2] > 16) invalidLE++;
              if (b2[0] === 0 && b2[1] === 0 && (b2[2] !== 0 || b2[3] !== 0)) bmpCharsBE++;
              if ((b2[0] !== 0 || b2[1] !== 0) && b2[2] === 0 && b2[3] === 0) bmpCharsLE++;
              b2.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";
    }
  }
});
var require_utf16 = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf16.js"(exports2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    exports2.utf16be = Utf16BECodec;
    function Utf16BECodec() {
    }
    Utf16BECodec.prototype.encoder = Utf16BEEncoder;
    Utf16BECodec.prototype.decoder = Utf16BEDecoder;
    Utf16BECodec.prototype.bomAware = true;
    function Utf16BEEncoder() {
    }
    Utf16BEEncoder.prototype.write = function(str) {
      var buf = Buffer4.from(str, "ucs2");
      for (var i22 = 0; i22 < buf.length; i22 += 2) {
        var tmp = buf[i22];
        buf[i22] = buf[i22 + 1];
        buf[i22 + 1] = tmp;
      }
      return buf;
    };
    Utf16BEEncoder.prototype.end = function() {
    };
    function Utf16BEDecoder() {
      this.overflowByte = -1;
    }
    Utf16BEDecoder.prototype.write = function(buf) {
      if (buf.length == 0) {
        return "";
      }
      var buf2 = Buffer4.alloc(buf.length + 1);
      var i22 = 0;
      var j2 = 0;
      if (this.overflowByte !== -1) {
        buf2[0] = buf[0];
        buf2[1] = this.overflowByte;
        i22 = 1;
        j2 = 2;
      }
      for (; i22 < buf.length - 1; i22 += 2, j2 += 2) {
        buf2[j2] = buf[i22 + 1];
        buf2[j2 + 1] = buf[i22];
      }
      this.overflowByte = i22 == buf.length - 1 ? buf[buf.length - 1] : -1;
      return buf2.slice(0, j2).toString("ucs2");
    };
    Utf16BEDecoder.prototype.end = function() {
      this.overflowByte = -1;
    };
    exports2.utf16 = Utf16Codec;
    function Utf16Codec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    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);
    }
    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;
    }
    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 i22 = 0; i22 < this.initialBufs.length; i22++) {
          resStr += this.decoder.write(this.initialBufs[i22]);
        }
        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 i22 = 0; i22 < this.initialBufs.length; i22++) {
          resStr += this.decoder.write(this.initialBufs[i22]);
        }
        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 b2 = [];
      var charsProcessed = 0;
      var asciiCharsLE = 0;
      var asciiCharsBE = 0;
      outerLoop:
        for (var i22 = 0; i22 < bufs.length; i22++) {
          var buf = bufs[i22];
          for (var j2 = 0; j2 < buf.length; j2++) {
            b2.push(buf[j2]);
            if (b2.length === 2) {
              if (charsProcessed === 0) {
                if (b2[0] === 255 && b2[1] === 254) return "utf-16le";
                if (b2[0] === 254 && b2[1] === 255) return "utf-16be";
              }
              if (b2[0] === 0 && b2[1] !== 0) asciiCharsBE++;
              if (b2[0] !== 0 && b2[1] === 0) asciiCharsLE++;
              b2.length = 0;
              charsProcessed++;
              if (charsProcessed >= 100) {
                break outerLoop;
              }
            }
          }
        }
      if (asciiCharsBE > asciiCharsLE) return "utf-16be";
      if (asciiCharsBE < asciiCharsLE) return "utf-16le";
      return defaultEncoding || "utf-16le";
    }
  }
});
var require_utf7 = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/utf7.js"(exports2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    exports2.utf7 = Utf7Codec;
    exports2.unicode11utf7 = "utf7";
    function Utf7Codec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    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;
    }
    Utf7Encoder.prototype.write = function(str) {
      return Buffer4.from(str.replace(nonDirectChars, function(chunk2) {
        return "+" + (chunk2 === "+" ? "" : this.iconv.encode(chunk2, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
      }.bind(this)));
    };
    Utf7Encoder.prototype.end = function() {
    };
    function Utf7Decoder(options, codec) {
      this.iconv = codec.iconv;
      this.inBase64 = false;
      this.base64Accum = "";
    }
    var base64Regex = /[A-Za-z0-9\/+]/;
    var base64Chars = [];
    for (i22 = 0; i22 < 256; i22++) {
      base64Chars[i22] = base64Regex.test(String.fromCharCode(i22));
    }
    var i22;
    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 i3 = 0; i3 < buf.length; i3++) {
        if (!inBase64) {
          if (buf[i3] == plusChar) {
            res += this.iconv.decode(buf.slice(lastI, i3), "ascii");
            lastI = i3 + 1;
            inBase64 = true;
          }
        } else {
          if (!base64Chars[buf[i3]]) {
            if (i3 == lastI && buf[i3] == minusChar) {
              res += "+";
            } else {
              var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i3), "ascii");
              res += this.iconv.decode(Buffer4.from(b64str, "base64"), "utf16-be");
            }
            if (buf[i3] != minusChar) {
              i3--;
            }
            lastI = i3 + 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(Buffer4.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(Buffer4.from(this.base64Accum, "base64"), "utf16-be");
      }
      this.inBase64 = false;
      this.base64Accum = "";
      return res;
    };
    exports2.utf7imap = Utf7IMAPCodec;
    function Utf7IMAPCodec(codecOptions, iconv) {
      this.iconv = iconv;
    }
    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 = Buffer4.alloc(6);
      this.base64AccumIdx = 0;
    }
    Utf7IMAPEncoder.prototype.write = function(str) {
      var inBase64 = this.inBase64;
      var base64Accum = this.base64Accum;
      var base64AccumIdx = this.base64AccumIdx;
      var buf = Buffer4.alloc(str.length * 5 + 10);
      var bufIdx = 0;
      for (var i3 = 0; i3 < str.length; i3++) {
        var uChar = str.charCodeAt(i3);
        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 = Buffer4.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 = "";
    }
    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 i3 = 0; i3 < buf.length; i3++) {
        if (!inBase64) {
          if (buf[i3] == andChar) {
            res += this.iconv.decode(buf.slice(lastI, i3), "ascii");
            lastI = i3 + 1;
            inBase64 = true;
          }
        } else {
          if (!base64IMAPChars[buf[i3]]) {
            if (i3 == lastI && buf[i3] == minusChar) {
              res += "&";
            } else {
              var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i3), "ascii").replace(/,/g, "/");
              res += this.iconv.decode(Buffer4.from(b64str, "base64"), "utf16-be");
            }
            if (buf[i3] != minusChar) {
              i3--;
            }
            lastI = i3 + 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(Buffer4.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(Buffer4.from(this.base64Accum, "base64"), "utf16-be");
      }
      this.inBase64 = false;
      this.base64Accum = "";
      return res;
    };
  }
});
var require_sbcs_codec = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    exports2._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 i22 = 0; i22 < 128; i22++) {
          asciiString += String.fromCharCode(i22);
        }
        codecOptions.chars = asciiString + codecOptions.chars;
      }
      this.decodeBuf = Buffer4.from(codecOptions.chars, "ucs2");
      var encodeBuf = Buffer4.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
      for (var i22 = 0; i22 < codecOptions.chars.length; i22++) {
        encodeBuf[codecOptions.chars.charCodeAt(i22)] = i22;
      }
      this.encodeBuf = encodeBuf;
    }
    SBCSCodec.prototype.encoder = SBCSEncoder;
    SBCSCodec.prototype.decoder = SBCSDecoder;
    function SBCSEncoder(options, codec) {
      this.encodeBuf = codec.encodeBuf;
    }
    SBCSEncoder.prototype.write = function(str) {
      var buf = Buffer4.alloc(str.length);
      for (var i22 = 0; i22 < str.length; i22++) {
        buf[i22] = this.encodeBuf[str.charCodeAt(i22)];
      }
      return buf;
    };
    SBCSEncoder.prototype.end = function() {
    };
    function SBCSDecoder(options, codec) {
      this.decodeBuf = codec.decodeBuf;
    }
    SBCSDecoder.prototype.write = function(buf) {
      var decodeBuf = this.decodeBuf;
      var newBuf = Buffer4.alloc(buf.length * 2);
      var idx1 = 0;
      var idx2 = 0;
      for (var i22 = 0; i22 < buf.length; i22++) {
        idx1 = buf[i22] * 2;
        idx2 = i22 * 2;
        newBuf[idx2] = decodeBuf[idx1];
        newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
      }
      return newBuf.toString("ucs2");
    };
    SBCSDecoder.prototype.end = function() {
    };
  }
});
var require_sbcs_data = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-data.js"(exports2, module2) {
    "use strict";
    module2.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",
      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"
    };
  }
});
var require_sbcs_data_generated = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports2, module2) {
    "use strict";
    module2.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"
      }
    };
  }
});
var require_dbcs_codec = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    exports2._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 (i22 = 0; i22 < 256; i22++) {
      UNASSIGNED_NODE[i22] = UNASSIGNED;
    }
    var i22;
    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 i3 = 0; i3 < mappingTable.length; i3++) {
        this._addDecodeChunk(mappingTable[i3]);
      }
      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 i3 = 129; i3 <= 254; i3++) {
          var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i3]];
          for (var j2 = 48; j2 <= 57; j2++) {
            if (secondByteNode[j2] === UNASSIGNED) {
              secondByteNode[j2] = NODE_START - commonThirdByteNodeIdx;
            } else if (secondByteNode[j2] > NODE_START) {
              throw new Error("gb18030 decode tables conflict at byte 2");
            }
            var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j2]];
            for (var k3 = 129; k3 <= 254; k3++) {
              if (thirdByteNode[k3] === UNASSIGNED) {
                thirdByteNode[k3] = NODE_START - commonFourthByteNodeIdx;
              } else if (thirdByteNode[k3] === NODE_START - commonFourthByteNodeIdx) {
                continue;
              } else if (thirdByteNode[k3] > NODE_START) {
                throw new Error("gb18030 decode tables conflict at byte 3");
              }
              var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k3]];
              for (var l2 = 48; l2 <= 57; l2++) {
                if (fourthByteNode[l2] === UNASSIGNED) {
                  fourthByteNode[l2] = GB18030_CODE;
                }
              }
            }
          }
        }
      }
      this.defaultCharUnicode = iconv.defaultCharUnicode;
      this.encodeTable = [];
      this.encodeTableSeq = [];
      var skipEncodeChars = {};
      if (codecOptions.encodeSkipVals) {
        for (var i3 = 0; i3 < codecOptions.encodeSkipVals.length; i3++) {
          var val = codecOptions.encodeSkipVals[i3];
          if (typeof val === "number") {
            skipEncodeChars[val] = true;
          } else {
            for (var j2 = val.from; j2 <= val.to; j2++) {
              skipEncodeChars[j2] = 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);
    }
    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 i3 = bytes.length - 1; i3 > 0; i3--) {
        var val = node[bytes[i3]];
        if (val == UNASSIGNED) {
          node[bytes[i3]] = 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(chunk2) {
      var curAddr = parseInt(chunk2[0], 16);
      var writeTable = this._getDecodeTrieNode(curAddr);
      curAddr = curAddr & 255;
      for (var k3 = 1; k3 < chunk2.length; k3++) {
        var part = chunk2[k3];
        if (typeof part === "string") {
          for (var l2 = 0; l2 < part.length; ) {
            var code = part.charCodeAt(l2++);
            if (code >= 55296 && code < 56320) {
              var codeTrail = part.charCodeAt(l2++);
              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 " + chunk2[0]);
              }
            } else if (code > 4080 && code <= 4095) {
              var len = 4095 - code + 2;
              var seq = [];
              for (var m2 = 0; m2 < len; m2++) {
                seq.push(part.charCodeAt(l2++));
              }
              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 l2 = 0; l2 < part; l2++) {
            writeTable[curAddr++] = charCode++;
          }
        } else {
          throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk2[0]);
        }
      }
      if (curAddr > 255) {
        throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk2[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 j2 = 1; j2 < seq.length - 1; j2++) {
        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 i3 = 0; i3 < 256; i3++) {
        var uCode = node[i3];
        var mbCode = prefix + i3;
        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;
    }
    DBCSEncoder.prototype.write = function(str) {
      var newBuf = Buffer4.alloc(str.length * (this.gb18030 ? 4 : 3));
      var leadSurrogate = this.leadSurrogate;
      var seqObj = this.seqObj;
      var nextChar = -1;
      var i3 = 0;
      var j2 = 0;
      while (true) {
        if (nextChar === -1) {
          if (i3 == str.length) break;
          var uCode = str.charCodeAt(i3++);
        } 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[j2++] = 129 + Math.floor(dbcsCode / 12600);
              dbcsCode = dbcsCode % 12600;
              newBuf[j2++] = 48 + Math.floor(dbcsCode / 1260);
              dbcsCode = dbcsCode % 1260;
              newBuf[j2++] = 129 + Math.floor(dbcsCode / 10);
              dbcsCode = dbcsCode % 10;
              newBuf[j2++] = 48 + dbcsCode;
              continue;
            }
          }
        }
        if (dbcsCode === UNASSIGNED) {
          dbcsCode = this.defaultCharSingleByte;
        }
        if (dbcsCode < 256) {
          newBuf[j2++] = dbcsCode;
        } else if (dbcsCode < 65536) {
          newBuf[j2++] = dbcsCode >> 8;
          newBuf[j2++] = dbcsCode & 255;
        } else if (dbcsCode < 16777216) {
          newBuf[j2++] = dbcsCode >> 16;
          newBuf[j2++] = dbcsCode >> 8 & 255;
          newBuf[j2++] = dbcsCode & 255;
        } else {
          newBuf[j2++] = dbcsCode >>> 24;
          newBuf[j2++] = dbcsCode >>> 16 & 255;
          newBuf[j2++] = dbcsCode >>> 8 & 255;
          newBuf[j2++] = dbcsCode & 255;
        }
      }
      this.seqObj = seqObj;
      this.leadSurrogate = leadSurrogate;
      return newBuf.slice(0, j2);
    };
    DBCSEncoder.prototype.end = function() {
      if (this.leadSurrogate === -1 && this.seqObj === void 0) {
        return;
      }
      var newBuf = Buffer4.alloc(10);
      var j2 = 0;
      if (this.seqObj) {
        var dbcsCode = this.seqObj[DEF_CHAR];
        if (dbcsCode !== void 0) {
          if (dbcsCode < 256) {
            newBuf[j2++] = dbcsCode;
          } else {
            newBuf[j2++] = dbcsCode >> 8;
            newBuf[j2++] = dbcsCode & 255;
          }
        } else {
        }
        this.seqObj = void 0;
      }
      if (this.leadSurrogate !== -1) {
        newBuf[j2++] = this.defaultCharSingleByte;
        this.leadSurrogate = -1;
      }
      return newBuf.slice(0, j2);
    };
    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;
    }
    DBCSDecoder.prototype.write = function(buf) {
      var newBuf = Buffer4.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 i3 = 0, j2 = 0; i3 < buf.length; i3++) {
        var curByte = i3 >= 0 ? buf[i3] : prevBytes[i3 + prevOffset];
        var uCode = this.decodeTables[nodeIdx][curByte];
        if (uCode >= 0) {
        } else if (uCode === UNASSIGNED) {
          uCode = this.defaultCharUnicode.charCodeAt(0);
          i3 = seqStart;
        } else if (uCode === GB18030_CODE) {
          if (i3 >= 3) {
            var ptr = (buf[i3 - 3] - 129) * 12600 + (buf[i3 - 2] - 48) * 1260 + (buf[i3 - 1] - 129) * 10 + (curByte - 48);
          } else {
            var ptr = (prevBytes[i3 - 3 + prevOffset] - 129) * 12600 + ((i3 - 2 >= 0 ? buf[i3 - 2] : prevBytes[i3 - 2 + prevOffset]) - 48) * 1260 + ((i3 - 1 >= 0 ? buf[i3 - 1] : prevBytes[i3 - 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 k3 = 0; k3 < seq.length - 1; k3++) {
            uCode = seq[k3];
            newBuf[j2++] = uCode & 255;
            newBuf[j2++] = 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[j2++] = uCodeLead & 255;
          newBuf[j2++] = uCodeLead >> 8;
          uCode = 56320 | uCode & 1023;
        }
        newBuf[j2++] = uCode & 255;
        newBuf[j2++] = uCode >> 8;
        nodeIdx = 0;
        seqStart = i3 + 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, j2).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 l2 = 0;
      var r2 = table.length;
      while (l2 < r2 - 1) {
        var mid = l2 + (r2 - l2 + 1 >> 1);
        if (table[mid] <= val) {
          l2 = mid;
        } else {
          r2 = mid;
        }
      }
      return l2;
    }
  }
});
var require_shiftjis = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports2, module2) {
    module2.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"]
    ];
  }
});
var require_eucjp = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/eucjp.json"(exports2, module2) {
    module2.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"]
    ];
  }
});
var require_cp936 = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp936.json"(exports2, module2) {
    module2.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"]
    ];
  }
});
var require_gbk_added = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports2, module2) {
    module2.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"]
    ];
  }
});
var require_gb18030_ranges = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports2, module2) {
    module2.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] };
  }
});
var require_cp949 = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp949.json"(exports2, module2) {
    module2.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"]
    ];
  }
});
var require_cp950 = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/cp950.json"(exports2, module2) {
    module2.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"]
    ];
  }
});
var require_big5_added = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/tables/big5-added.json"(exports2, module2) {
    module2.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"]
    ];
  }
});
var require_dbcs_data = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/dbcs-data.js"(exports2, module2) {
    "use strict";
    module2.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: function() {
          return require_shiftjis();
        },
        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: function() {
          return require_eucjp();
        },
        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: function() {
          return require_cp936();
        }
      },
      // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
      gbk: {
        type: "_dbcs",
        table: function() {
          return require_cp936().concat(require_gbk_added());
        }
      },
      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: function() {
          return require_cp936().concat(require_gbk_added());
        },
        gb18030: function() {
          return require_gb18030_ranges();
        },
        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: function() {
          return require_cp949();
        }
      },
      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: function() {
          return require_cp950();
        }
      },
      // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
      big5: "big5hkscs",
      big5hkscs: {
        type: "_dbcs",
        table: function() {
          return require_cp950().concat(require_big5_added());
        },
        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"
    };
  }
});
var require_encodings = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/encodings/index.js"(exports2, module2) {
    "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 (i22 = 0; i22 < modules.length; i22++) {
      module2 = modules[i22];
      mergeModules(exports2, module2);
    }
    var module2;
    var i22;
  }
});
var require_streams = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/streams.js"(exports2, module2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    module2.exports = function(streamModule) {
      var Transform = streamModule.Transform;
      function IconvLiteEncoderStream(conv, options) {
        this.conv = conv;
        options = options || {};
        options.decodeStrings = false;
        Transform.call(this, options);
      }
      IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
        constructor: { value: IconvLiteEncoderStream }
      });
      IconvLiteEncoderStream.prototype._transform = function(chunk2, encoding, done) {
        if (typeof chunk2 !== "string") {
          return done(new Error("Iconv encoding stream needs strings as its input."));
        }
        try {
          var res = this.conv.write(chunk2);
          if (res && res.length) this.push(res);
          done();
        } catch (e2) {
          done(e2);
        }
      };
      IconvLiteEncoderStream.prototype._flush = function(done) {
        try {
          var res = this.conv.end();
          if (res && res.length) this.push(res);
          done();
        } catch (e2) {
          done(e2);
        }
      };
      IconvLiteEncoderStream.prototype.collect = function(cb) {
        var chunks = [];
        this.on("error", cb);
        this.on("data", function(chunk2) {
          chunks.push(chunk2);
        });
        this.on("end", function() {
          cb(null, Buffer4.concat(chunks));
        });
        return this;
      };
      function IconvLiteDecoderStream(conv, options) {
        this.conv = conv;
        options = options || {};
        options.encoding = this.encoding = "utf8";
        Transform.call(this, options);
      }
      IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
        constructor: { value: IconvLiteDecoderStream }
      });
      IconvLiteDecoderStream.prototype._transform = function(chunk2, encoding, done) {
        if (!Buffer4.isBuffer(chunk2) && !(chunk2 instanceof Uint8Array)) {
          return done(new Error("Iconv decoding stream needs buffers as its input."));
        }
        try {
          var res = this.conv.write(chunk2);
          if (res && res.length) this.push(res, this.encoding);
          done();
        } catch (e2) {
          done(e2);
        }
      };
      IconvLiteDecoderStream.prototype._flush = function(done) {
        try {
          var res = this.conv.end();
          if (res && res.length) this.push(res, this.encoding);
          done();
        } catch (e2) {
          done(e2);
        }
      };
      IconvLiteDecoderStream.prototype.collect = function(cb) {
        var res = "";
        this.on("error", cb);
        this.on("data", function(chunk2) {
          res += chunk2;
        });
        this.on("end", function() {
          cb(null, res);
        });
        return this;
      };
      return {
        IconvLiteEncoderStream,
        IconvLiteDecoderStream
      };
    };
  }
});
var require_lib13 = __commonJS2({
  "../../node_modules/.pnpm/iconv-lite@0.7.2/node_modules/iconv-lite/lib/index.js"(exports2, module2) {
    "use strict";
    var Buffer4 = require_safer().Buffer;
    var bomHandling = require_bom_handling();
    var mergeModules = require_merge_exports();
    module2.exports.encodings = null;
    module2.exports.defaultCharUnicode = "\uFFFD";
    module2.exports.defaultCharSingleByte = "?";
    module2.exports.encode = function encode3(str, encoding, options) {
      str = "" + (str || "");
      var encoder = module2.exports.getEncoder(encoding, options);
      var res = encoder.write(str);
      var trail = encoder.end();
      return trail && trail.length > 0 ? Buffer4.concat([res, trail]) : res;
    };
    module2.exports.decode = function decode(buf, encoding, options) {
      if (typeof buf === "string") {
        if (!module2.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");
          module2.exports.skipDecodeWarning = true;
        }
        buf = Buffer4.from("" + (buf || ""), "binary");
      }
      var decoder2 = module2.exports.getDecoder(encoding, options);
      var res = decoder2.write(buf);
      var trail = decoder2.end();
      return trail ? res + trail : res;
    };
    module2.exports.encodingExists = function encodingExists(enc) {
      try {
        module2.exports.getCodec(enc);
        return true;
      } catch (e2) {
        return false;
      }
    };
    module2.exports.toEncoding = module2.exports.encode;
    module2.exports.fromEncoding = module2.exports.decode;
    module2.exports._codecDataCache = { __proto__: null };
    module2.exports.getCodec = function getCodec(encoding) {
      if (!module2.exports.encodings) {
        var raw = require_encodings();
        module2.exports.encodings = { __proto__: null };
        mergeModules(module2.exports.encodings, raw);
      }
      var enc = module2.exports._canonicalizeEncoding(encoding);
      var codecOptions = {};
      while (true) {
        var codec = module2.exports._codecDataCache[enc];
        if (codec) {
          return codec;
        }
        var codecDef = module2.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, module2.exports);
            module2.exports._codecDataCache[codecOptions.encodingName] = codec;
            return codec;
          default:
            throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
        }
      }
    };
    module2.exports._canonicalizeEncoding = function(encoding) {
      return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
    };
    module2.exports.getEncoder = function getEncoder(encoding, options) {
      var codec = module2.exports.getCodec(encoding);
      var encoder = new codec.encoder(options, codec);
      if (codec.bomAware && options && options.addBOM) {
        encoder = new bomHandling.PrependBOM(encoder, options);
      }
      return encoder;
    };
    module2.exports.getDecoder = function getDecoder2(encoding, options) {
      var codec = module2.exports.getCodec(encoding);
      var decoder2 = new codec.decoder(options, codec);
      if (codec.bomAware && !(options && options.stripBOM === false)) {
        decoder2 = new bomHandling.StripBOM(decoder2, options);
      }
      return decoder2;
    };
    module2.exports.enableStreamingAPI = function enableStreamingAPI(streamModule2) {
      if (module2.exports.supportsStreams) {
        return;
      }
      var streams = require_streams()(streamModule2);
      module2.exports.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
      module2.exports.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
      module2.exports.encodeStream = function encodeStream(encoding, options) {
        return new module2.exports.IconvLiteEncoderStream(module2.exports.getEncoder(encoding, options), options);
      };
      module2.exports.decodeStream = function decodeStream(encoding, options) {
        return new module2.exports.IconvLiteDecoderStream(module2.exports.getDecoder(encoding, options), options);
      };
      module2.exports.supportsStreams = true;
    };
    var streamModule;
    try {
      streamModule = __require("stream");
    } catch (e2) {
    }
    if (streamModule && streamModule.Transform) {
      module2.exports.enableStreamingAPI(streamModule);
    } else {
      module2.exports.encodeStream = module2.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.");
    }
  }
});
var require_http_crawler = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/internals/http-crawler.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.HttpCrawler = void 0;
    exports2.createHttpRouter = createHttpRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var node_path_1 = __require("node:path");
    var node_util_1 = tslib_1.__importDefault(__require("node:util"));
    var basic_1 = require_basic();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_lib12());
    var content_type_1 = tslib_1.__importDefault(require_content_type());
    var iconv_lite_1 = tslib_1.__importDefault(require_lib13());
    var mime_types_1 = tslib_1.__importDefault(require_mime_types());
    var ow_1 = tslib_1.__importStar(require_dist2());
    var timeout_1 = require_cjs();
    var utilities_1 = require_cjs4();
    var TimeoutError3;
    var HTML_AND_XML_MIME_TYPES = ["text/html", "text/xml", "application/xhtml+xml", "application/xml"];
    var APPLICATION_JSON_MIME_TYPE = "application/json";
    var HTTP_OPTIMIZED_AUTOSCALED_POOL_OPTIONS = {
      desiredConcurrency: 10,
      snapshotterOptions: {
        eventLoopSnapshotIntervalSecs: 2,
        maxBlockedMillis: 100
      },
      systemStatusOptions: {
        maxEventLoopOverloadedRatio: 0.7
      }
    };
    var HttpCrawler2 = class _HttpCrawler extends basic_1.BasicCrawler {
      /**
       * All `HttpCrawlerOptions` parameters are passed via an options object.
       */
      constructor(options = {}, config = basic_1.Configuration.getGlobalConfig()) {
        (0, ow_1.default)(options, "HttpCrawlerOptions", ow_1.default.object.exactShape(_HttpCrawler.optionsShape));
        const {
          requestHandler,
          handlePageFunction,
          requestHandlerTimeoutSecs = 60,
          navigationTimeoutSecs = 30,
          ignoreSslErrors = true,
          additionalMimeTypes = [],
          suggestResponseEncoding,
          forceResponseEncoding,
          proxyConfiguration,
          persistCookiesPerSession,
          preNavigationHooks = [],
          postNavigationHooks = [],
          additionalHttpErrorStatusCodes = [],
          ignoreHttpErrorStatusCodes = [],
          // Ignored
          handleRequestFunction,
          // BasicCrawler
          autoscaledPoolOptions = HTTP_OPTIMIZED_AUTOSCALED_POOL_OPTIONS,
          ...basicCrawlerOptions
        } = options;
        super({
          ...basicCrawlerOptions,
          requestHandler,
          autoscaledPoolOptions,
          // We need to add some time for internal functions to finish,
          // but not too much so that we would stall the crawler.
          requestHandlerTimeoutSecs: navigationTimeoutSecs + requestHandlerTimeoutSecs + basic_1.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS
        }, config);
        Object.defineProperty(this, "config", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: config
        });
        Object.defineProperty(this, "proxyConfiguration", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "userRequestHandlerTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "preNavigationHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "postNavigationHooks", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "persistCookiesPerSession", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "navigationTimeoutMillis", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "ignoreSslErrors", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "suggestResponseEncoding", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "forceResponseEncoding", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "additionalHttpErrorStatusCodes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "ignoreHttpErrorStatusCodes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "supportedMimeTypes", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        Object.defineProperty(this, "_requestAsBrowser", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: async (options2, session) => {
            const response = await this.httpClient.stream((0, basic_1.processHttpRequestOptions)({
              ...options2,
              cookieJar: options2.cookieJar,
              responseType: "text"
            }), (redirectResponse, updatedRequest) => {
              if (this.persistCookiesPerSession) {
                session.setCookiesFromResponse(redirectResponse);
                const cookieString = session.getCookieString(updatedRequest.url.toString());
                if (cookieString !== "") {
                  updatedRequest.headers.Cookie = cookieString;
                }
              }
            });
            return addResponsePropertiesToStream(response.stream, response);
          }
        });
        this._handlePropertyNameChange({
          newName: "requestHandler",
          oldName: "handlePageFunction",
          propertyKey: "requestHandler",
          newProperty: requestHandler,
          oldProperty: handlePageFunction,
          allowUndefined: true
        });
        if (!this.requestHandler) {
          this.requestHandler = this.router;
        }
        if (!this.useSessionPool && persistCookiesPerSession) {
          throw new Error('You cannot use "persistCookiesPerSession" without "useSessionPool" set to true.');
        }
        this.supportedMimeTypes = /* @__PURE__ */ new Set([...HTML_AND_XML_MIME_TYPES, APPLICATION_JSON_MIME_TYPE]);
        if (additionalMimeTypes.length)
          this._extendSupportedMimeTypes(additionalMimeTypes);
        if (suggestResponseEncoding && forceResponseEncoding) {
          this.log.warning("Both forceResponseEncoding and suggestResponseEncoding options are set. Using forceResponseEncoding.");
        }
        this.userRequestHandlerTimeoutMillis = requestHandlerTimeoutSecs * 1e3;
        this.navigationTimeoutMillis = navigationTimeoutSecs * 1e3;
        this.ignoreSslErrors = ignoreSslErrors;
        this.suggestResponseEncoding = suggestResponseEncoding;
        this.forceResponseEncoding = forceResponseEncoding;
        this.additionalHttpErrorStatusCodes = /* @__PURE__ */ new Set([...additionalHttpErrorStatusCodes]);
        this.ignoreHttpErrorStatusCodes = /* @__PURE__ */ new Set([...ignoreHttpErrorStatusCodes]);
        this.proxyConfiguration = proxyConfiguration;
        this.preNavigationHooks = preNavigationHooks;
        this.postNavigationHooks = [
          ({ request, response }) => this._abortDownloadOfBody(request, response),
          ...postNavigationHooks
        ];
        if (this.useSessionPool) {
          this.persistCookiesPerSession = persistCookiesPerSession ?? true;
        } else {
          this.persistCookiesPerSession = false;
        }
      }
      /**
       * **EXPERIMENTAL**
       * Function for attaching CrawlerExtensions such as the Unblockers.
       * @param extension Crawler extension that overrides the crawler configuration.
       */
      use(extension) {
        (0, ow_1.default)(extension, ow_1.default.object.instanceOf(basic_1.CrawlerExtension));
        const className = this.constructor.name;
        const extensionOptions = extension.getCrawlerOptions();
        for (const [key, value] of Object.entries(extensionOptions)) {
          const isConfigurable = Object.hasOwn(this, key);
          const originalType = typeof this[key];
          const extensionType = typeof value;
          const isSameType = originalType === extensionType || value == null;
          const exists = this[key] != null;
          if (!isConfigurable) {
            throw new Error(`${extension.name} tries to set property "${key}" that is not configurable on ${className} instance.`);
          }
          if (!isSameType && exists) {
            throw new Error(`${extension.name} tries to set property of different type "${extensionType}". "${className}.${key}: ${originalType}".`);
          }
          this.log.warning(`${extension.name} is overriding "${className}.${key}: ${originalType}" with ${value}.`);
          this[key] = value;
        }
      }
      /**
       * Wrapper around requestHandler that opens and closes pages etc.
       */
      async _runRequestHandler(crawlingContext) {
        const { request, session } = crawlingContext;
        if (this.proxyConfiguration) {
          const sessionId = session ? session.id : void 0;
          crawlingContext.proxyInfo = await this.proxyConfiguration.newProxyInfo(sessionId, { request });
        }
        if (!request.skipNavigation) {
          await this._handleNavigation(crawlingContext);
          (0, timeout_1.tryCancel)();
          const parsed = await this._parseResponse(request, crawlingContext.response, crawlingContext);
          const response = parsed.response;
          const contentType = parsed.contentType;
          (0, timeout_1.tryCancel)();
          crawlingContext.waitForSelector ?? (crawlingContext.waitForSelector = async (selector, _timeoutMs) => {
            const $2 = cheerio.load(parsed.body.toString());
            if ($2(selector).get().length === 0) {
              throw new Error(`Selector '${selector}' not found.`);
            }
          });
          crawlingContext.parseWithCheerio ?? (crawlingContext.parseWithCheerio = async (selector, timeoutMs) => {
            const $2 = cheerio.load(parsed.body.toString());
            if (selector) {
              await crawlingContext.waitForSelector(selector, timeoutMs);
            }
            return $2;
          });
          if (this.useSessionPool) {
            this._throwOnBlockedRequest(crawlingContext.session, response.statusCode);
          }
          if (this.persistCookiesPerSession) {
            crawlingContext.session.setCookiesFromResponse(response);
          }
          request.loadedUrl = response.url;
          if (!this.requestMatchesEnqueueStrategy(request)) {
            this.log.debug(
              // eslint-disable-next-line dot-notation
              `Skipping request ${request.id} (starting url: ${request.url} -> loaded url: ${request.loadedUrl}) because it does not match the enqueue strategy (${request["enqueueStrategy"]}).`
            );
            request.noRetry = true;
            request.state = basic_1.RequestState.SKIPPED;
            await this.handleSkippedRequest({ url: request.url, reason: "redirect" });
            return;
          }
          Object.assign(crawlingContext, parsed);
          Object.defineProperty(crawlingContext, "json", {
            get() {
              if (contentType.type !== APPLICATION_JSON_MIME_TYPE)
                return null;
              const jsonString = parsed.body.toString(contentType.encoding);
              return JSON.parse(jsonString);
            }
          });
        }
        if (this.retryOnBlocked) {
          const error = await this.isRequestBlocked(crawlingContext);
          if (error)
            throw new basic_1.SessionError(error);
        }
        request.state = basic_1.RequestState.REQUEST_HANDLER;
        try {
          await (0, timeout_1.addTimeoutToPromise)(async () => Promise.resolve(this.requestHandler(crawlingContext)), this.userRequestHandlerTimeoutMillis, `requestHandler timed out after ${this.userRequestHandlerTimeoutMillis / 1e3} seconds.`);
          request.state = basic_1.RequestState.DONE;
        } catch (e2) {
          request.state = basic_1.RequestState.ERROR;
          throw e2;
        }
      }
      async isRequestBlocked(crawlingContext) {
        if (HTML_AND_XML_MIME_TYPES.includes(crawlingContext.contentType.type)) {
          const $2 = await crawlingContext.parseWithCheerio();
          const foundSelectors = utils_1.RETRY_CSS_SELECTORS.filter((selector) => $2(selector).length > 0);
          if (foundSelectors.length > 0) {
            return `Found selectors: ${foundSelectors.join(", ")}`;
          }
        }
        const blockedStatusCodes = (
          // eslint-disable-next-line dot-notation
          (this.sessionPool?.["blockedStatusCodes"].length ?? 0) > 0 ? (
            // eslint-disable-next-line dot-notation
            this.sessionPool["blockedStatusCodes"]
          ) : basic_1.BLOCKED_STATUS_CODES
        );
        if (blockedStatusCodes.includes(crawlingContext.response.statusCode)) {
          return `Blocked by status code ${crawlingContext.response.statusCode}`;
        }
        return false;
      }
      async _handleNavigation(crawlingContext) {
        const gotOptions = {};
        const { request, session } = crawlingContext;
        const preNavigationHooksCookies = this._getCookieHeaderFromRequest(request);
        request.state = basic_1.RequestState.BEFORE_NAV;
        await this._executeHooks(this.preNavigationHooks, crawlingContext, gotOptions);
        (0, timeout_1.tryCancel)();
        const postNavigationHooksCookies = this._getCookieHeaderFromRequest(request);
        this._applyCookies(crawlingContext, gotOptions, preNavigationHooksCookies, postNavigationHooksCookies);
        const proxyUrl = crawlingContext.proxyInfo?.url;
        crawlingContext.response = await (0, timeout_1.addTimeoutToPromise)(async () => this._requestFunction({ request, session, proxyUrl, gotOptions }), this.navigationTimeoutMillis, `request timed out after ${this.navigationTimeoutMillis / 1e3} seconds.`);
        (0, timeout_1.tryCancel)();
        request.state = basic_1.RequestState.AFTER_NAV;
        await this._executeHooks(this.postNavigationHooks, crawlingContext, gotOptions);
        (0, timeout_1.tryCancel)();
      }
      /**
       * Sets the cookie header to `gotOptions` based on the provided request and session headers, as well as any changes that occurred due to hooks.
       */
      _applyCookies({ session, request }, gotOptions, preHookCookies, postHookCookies) {
        const sessionCookie = session?.getCookieString(request.url) ?? "";
        let alteredGotOptionsCookies = gotOptions.headers?.Cookie || gotOptions.headers?.cookie || "";
        if (gotOptions.headers?.Cookie && gotOptions.headers?.cookie) {
          const { Cookie: upperCaseHeader, cookie: lowerCaseHeader } = gotOptions.headers;
          this.log.warning(`Encountered mixed casing for the cookie headers in the got options for request ${request.url} (${request.id}). Their values will be merged`);
          const sourceCookies2 = [];
          if (Array.isArray(lowerCaseHeader)) {
            sourceCookies2.push(...lowerCaseHeader);
          } else {
            sourceCookies2.push(lowerCaseHeader);
          }
          if (Array.isArray(upperCaseHeader)) {
            sourceCookies2.push(...upperCaseHeader);
          } else {
            sourceCookies2.push(upperCaseHeader);
          }
          alteredGotOptionsCookies = (0, basic_1.mergeCookies)(request.url, sourceCookies2);
        }
        const sourceCookies = [sessionCookie, preHookCookies];
        if (Array.isArray(alteredGotOptionsCookies)) {
          sourceCookies.push(...alteredGotOptionsCookies);
        } else {
          sourceCookies.push(alteredGotOptionsCookies);
        }
        sourceCookies.push(postHookCookies);
        const mergedCookie = (0, basic_1.mergeCookies)(request.url, sourceCookies);
        gotOptions.headers ?? (gotOptions.headers = {});
        Reflect.deleteProperty(gotOptions.headers, "Cookie");
        Reflect.deleteProperty(gotOptions.headers, "cookie");
        if (mergedCookie !== "") {
          gotOptions.headers.Cookie = mergedCookie;
        }
      }
      /**
       * Function to make the HTTP request. It performs optimizations
       * on the request such as only downloading the request body if the
       * received content type matches text/html, application/xml, application/xhtml+xml.
       */
      async _requestFunction({ request, session, proxyUrl, gotOptions }) {
        if (!TimeoutError3) {
          ({ TimeoutError: TimeoutError3 } = await Promise.resolve().then(() => (init_dist6(), dist_exports)));
        }
        const opts = this._getRequestOptions(request, session, proxyUrl, gotOptions);
        try {
          return await this._requestAsBrowser(opts, session);
        } catch (e2) {
          if (e2 instanceof TimeoutError3) {
            this._handleRequestTimeout(session);
            return void 0;
          }
          if (this.isProxyError(e2)) {
            throw new basic_1.SessionError(this._getMessageFromError(e2));
          } else {
            throw e2;
          }
        }
      }
      /**
       * Encodes and parses response according to the provided content type
       */
      async _parseResponse(request, responseStream, crawlingContext) {
        const { statusCode } = responseStream;
        const { type, charset } = parseContentTypeFromResponse(responseStream);
        const { response, encoding } = this._encodeResponse(request, responseStream, charset);
        const contentType = { type, encoding };
        if (statusCode >= 400 && statusCode <= 599) {
          this.stats.registerStatusCode(statusCode);
        }
        const excludeError = this.ignoreHttpErrorStatusCodes.has(statusCode);
        const includeError = this.additionalHttpErrorStatusCodes.has(statusCode);
        if (statusCode >= 500 && !excludeError || includeError) {
          const body = await (0, utilities_1.readStreamToString)(response, encoding);
          if (type === APPLICATION_JSON_MIME_TYPE) {
            const errorResponse = JSON.parse(body);
            let { message } = errorResponse;
            if (!message)
              message = node_util_1.default.inspect(errorResponse, { depth: 1, maxArrayLength: 10 });
            throw new Error(`${statusCode} - ${message}`);
          }
          if (includeError) {
            throw new Error(`${statusCode} - Error status code was set by user.`);
          }
          throw new Error(`${statusCode} - Internal Server Error: ${body.slice(0, 100)}`);
        } else if (HTML_AND_XML_MIME_TYPES.includes(type)) {
          const isXml = type.includes("xml");
          const parsed = await this._parseHTML(response, isXml, crawlingContext);
          return { ...parsed, isXml, response, contentType };
        } else {
          const body = await (0, utilities_1.concatStreamToBuffer)(response);
          return {
            body,
            response,
            contentType,
            enqueueLinks: async () => Promise.resolve({ processedRequests: [], unprocessedRequests: [] })
          };
        }
      }
      async _parseHTML(response, _isXml, _crawlingContext) {
        return {
          body: await (0, utilities_1.concatStreamToBuffer)(response)
        };
      }
      /**
       * Combines the provided `requestOptions` with mandatory (non-overridable) values.
       */
      _getRequestOptions(request, session, proxyUrl, gotOptions) {
        const requestOptions = {
          url: request.url,
          method: request.method,
          proxyUrl,
          timeout: { request: this.navigationTimeoutMillis },
          cookieJar: this.persistCookiesPerSession ? session?.cookieJar : void 0,
          sessionToken: session,
          ...gotOptions,
          headers: { ...request.headers, ...gotOptions?.headers },
          https: {
            ...gotOptions?.https,
            rejectUnauthorized: !this.ignoreSslErrors
          },
          isStream: true
        };
        Reflect.deleteProperty(requestOptions.headers, "cookie");
        if (this.proxyConfiguration && this.proxyConfiguration.isManInTheMiddle) {
          requestOptions.https = {
            ...requestOptions.https,
            rejectUnauthorized: false
          };
        }
        if (/PATCH|POST|PUT/.test(request.method))
          requestOptions.body = request.payload ?? "";
        return requestOptions;
      }
      _encodeResponse(request, response, encoding) {
        if (this.forceResponseEncoding) {
          encoding = this.forceResponseEncoding;
        } else if (!encoding && this.suggestResponseEncoding) {
          encoding = this.suggestResponseEncoding;
        }
        const utf8 = "utf8";
        if (!encoding)
          return { response, encoding: utf8 };
        if (Buffer.isEncoding(encoding))
          return { response, encoding };
        if (iconv_lite_1.default.encodingExists(encoding)) {
          const encodeStream = iconv_lite_1.default.encodeStream(utf8);
          const decodeStream = iconv_lite_1.default.decodeStream(encoding).on("error", (err2) => encodeStream.emit("error", err2));
          response.on("error", (err2) => decodeStream.emit("error", err2));
          const encodedResponse = response.pipe(decodeStream).pipe(encodeStream);
          encodedResponse.statusCode = response.statusCode;
          encodedResponse.headers = response.headers;
          encodedResponse.url = response.url;
          return {
            response: encodedResponse,
            encoding: utf8
          };
        }
        throw new Error(`Resource ${request.url} served with unsupported charset/encoding: ${encoding}`);
      }
      /**
       * Checks and extends supported mime types
       */
      _extendSupportedMimeTypes(additionalMimeTypes) {
        for (const mimeType of additionalMimeTypes) {
          if (mimeType === "*/*") {
            this.supportedMimeTypes.add(mimeType);
            continue;
          }
          try {
            const parsedType = content_type_1.default.parse(mimeType);
            this.supportedMimeTypes.add(parsedType.type);
          } catch (err2) {
            throw new Error(`Can not parse mime type ${mimeType} from "options.additionalMimeTypes".`);
          }
        }
      }
      /**
       * Handles timeout request
       */
      _handleRequestTimeout(session) {
        session?.markBad();
        throw new Error(`request timed out after ${this.requestHandlerTimeoutMillis / 1e3} seconds.`);
      }
      _abortDownloadOfBody(request, response) {
        const { statusCode } = response;
        const { type } = parseContentTypeFromResponse(response);
        const blockedStatusCodes = this.sessionPool ? this.sessionPool["blockedStatusCodes"] : [];
        const isTransientContentType = statusCode >= 500 || blockedStatusCodes.includes(statusCode);
        if (!this.supportedMimeTypes.has(type) && !this.supportedMimeTypes.has("*/*") && !isTransientContentType) {
          request.noRetry = true;
          throw new Error(`Resource ${request.url} served Content-Type ${type}, but only ${Array.from(this.supportedMimeTypes).join(", ")} are allowed. Skipping resource.`);
        }
      }
    };
    exports2.HttpCrawler = HttpCrawler2;
    Object.defineProperty(HttpCrawler2, "optionsShape", {
      enumerable: true,
      configurable: true,
      writable: true,
      value: {
        ...basic_1.BasicCrawler.optionsShape,
        handlePageFunction: ow_1.default.optional.function,
        navigationTimeoutSecs: ow_1.default.optional.number,
        ignoreSslErrors: ow_1.default.optional.boolean,
        additionalMimeTypes: ow_1.default.optional.array.ofType(ow_1.default.string),
        suggestResponseEncoding: ow_1.default.optional.string,
        forceResponseEncoding: ow_1.default.optional.string,
        proxyConfiguration: ow_1.default.optional.object.validate(basic_1.validators.proxyConfiguration),
        persistCookiesPerSession: ow_1.default.optional.boolean,
        additionalHttpErrorStatusCodes: ow_1.default.optional.array.ofType(ow_1.default.number),
        ignoreHttpErrorStatusCodes: ow_1.default.optional.array.ofType(ow_1.default.number),
        preNavigationHooks: ow_1.default.optional.array,
        postNavigationHooks: ow_1.default.optional.array
      }
    });
    function addResponsePropertiesToStream(stream5, response) {
      const properties = [
        "statusCode",
        "statusMessage",
        "headers",
        "complete",
        "httpVersion",
        "rawHeaders",
        "rawTrailers",
        "trailers",
        "url",
        "request"
      ];
      stream5.on("end", () => {
        if (stream5.rawTrailers)
          stream5.rawTrailers = response.rawTrailers;
        if (stream5.trailers)
          stream5.trailers = response.trailers;
        stream5.complete = response.complete;
      });
      for (const prop of properties) {
        if (!(prop in stream5)) {
          stream5[prop] = response[prop];
        }
      }
      return stream5;
    }
    function parseContentTypeFromResponse(response) {
      (0, ow_1.default)(response, ow_1.default.object.partialShape({
        url: ow_1.default.string.url,
        headers: new ow_1.ObjectPredicate()
      }));
      const { url: url2, headers } = response;
      let parsedContentType;
      if (headers["content-type"]) {
        try {
          parsedContentType = content_type_1.default.parse(headers["content-type"]);
        } catch {
        }
      }
      if (!parsedContentType) {
        const parsedUrl = new URL(url2);
        const contentTypeFromExtname = mime_types_1.default.contentType((0, node_path_1.extname)(parsedUrl.pathname)) || "application/octet-stream; charset=utf-8";
        parsedContentType = content_type_1.default.parse(contentTypeFromExtname);
      }
      return {
        type: parsedContentType.type,
        charset: parsedContentType.parameters.charset
      };
    }
    function createHttpRouter2(routes) {
      return basic_1.Router.create(routes);
    }
  }
});
var require_file_download = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/internals/file-download.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.FileDownload = void 0;
    exports2.MinimumSpeedStream = MinimumSpeedStream2;
    exports2.ByteCounterStream = ByteCounterStream2;
    exports2.createFileRouter = createFileRouter2;
    var node_stream_1 = __require("node:stream");
    var promises_1 = __require("node:stream/promises");
    var types_1 = __require("node:util/types");
    var index_1 = require_http();
    function MinimumSpeedStream2({ minSpeedKbps, historyLengthMs = 1e4, checkProgressInterval: checkProgressIntervalMs = 5e3 }) {
      let snapshots = [];
      const checkInterval = setInterval(() => {
        const now = Date.now();
        snapshots = snapshots.filter((snapshot) => now - snapshot.timestamp < historyLengthMs);
        const totalBytes = snapshots.reduce((acc, snapshot) => acc + snapshot.bytes, 0);
        const elapsed = (now - (snapshots[0]?.timestamp ?? 0)) / 1e3;
        if (totalBytes / 1024 / elapsed < minSpeedKbps) {
          clearInterval(checkInterval);
          stream5.emit("error", new Error(`Stream speed too slow, aborting...`));
        }
      }, checkProgressIntervalMs);
      const stream5 = new node_stream_1.Transform({
        transform: (chunk2, _3, callback) => {
          snapshots.push({ timestamp: Date.now(), bytes: chunk2.length });
          callback(null, chunk2);
        },
        final: (callback) => {
          clearInterval(checkInterval);
          callback();
        }
      });
      return stream5;
    }
    function ByteCounterStream2({ logTransferredBytes, loggingInterval = 5e3 }) {
      let transferredBytes = 0;
      let lastLogTime = Date.now();
      return new node_stream_1.Transform({
        transform: (chunk2, _3, callback) => {
          transferredBytes += chunk2.length;
          if (Date.now() - lastLogTime > loggingInterval) {
            lastLogTime = Date.now();
            logTransferredBytes(transferredBytes);
          }
          callback(null, chunk2);
        },
        flush: (callback) => {
          logTransferredBytes(transferredBytes);
          callback();
        }
      });
    }
    var FileDownload2 = class extends index_1.HttpCrawler {
      constructor(options = {}) {
        const { streamHandler } = options;
        delete options.streamHandler;
        if (streamHandler) {
          options.requestHandlerTimeoutSecs = options.navigationTimeoutSecs ?? 120;
        }
        super(options);
        Object.defineProperty(this, "streamHandler", {
          enumerable: true,
          configurable: true,
          writable: true,
          value: void 0
        });
        this.streamHandler = streamHandler;
        if (this.streamHandler) {
          this.requestHandler = this.streamRequestHandler;
        }
        this.supportedMimeTypes = /* @__PURE__ */ new Set(["*/*"]);
      }
      async _runRequestHandler(context) {
        if (this.streamHandler) {
          context.request.skipNavigation = true;
        }
        await super._runRequestHandler(context);
      }
      async streamRequestHandler(context) {
        const { log: log2, request: { url: url2 } } = context;
        const response = await this.httpClient.stream({
          url: url2,
          timeout: { request: void 0 },
          proxyUrl: context.proxyInfo?.url
        });
        let pollingInterval;
        const cleanUp = () => {
          clearInterval(pollingInterval);
          response.stream.destroy();
        };
        const downloadPromise = new Promise((resolve2, reject) => {
          pollingInterval = setInterval(() => {
            const { total, transferred } = response.downloadProgress;
            if (transferred > 0) {
              log2.debug(`Downloaded ${transferred} bytes of ${total ?? 0} bytes from ${url2}.`);
            }
          }, 5e3);
          response.stream.on("error", async (error) => {
            cleanUp();
            reject(error);
          });
          let streamHandlerResult;
          try {
            context.stream = response.stream;
            context.response = response;
            streamHandlerResult = this.streamHandler(context);
          } catch (e2) {
            cleanUp();
            reject(e2);
          }
          if ((0, types_1.isPromise)(streamHandlerResult)) {
            streamHandlerResult.then(() => {
              resolve2();
            }).catch((e2) => {
              cleanUp();
              reject(e2);
            });
          } else {
            resolve2();
          }
        });
        await Promise.all([downloadPromise, (0, promises_1.finished)(response.stream)]);
        cleanUp();
      }
    };
    exports2.FileDownload = FileDownload2;
    function createFileRouter2(routes) {
      return index_1.Router.create(routes);
    }
  }
});
var require_http = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+http@3.16.0/node_modules/@crawlee/http/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_basic(), exports2);
    tslib_1.__exportStar(require_http_crawler(), exports2);
    tslib_1.__exportStar(require_file_download(), exports2);
  }
});
var require_Tokenizer2 = __commonJS2({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/Tokenizer.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.QuoteType = void 0;
    var decode_js_1 = require_decode();
    var CharCodes3;
    (function(CharCodes22) {
      CharCodes22[CharCodes22["Tab"] = 9] = "Tab";
      CharCodes22[CharCodes22["NewLine"] = 10] = "NewLine";
      CharCodes22[CharCodes22["FormFeed"] = 12] = "FormFeed";
      CharCodes22[CharCodes22["CarriageReturn"] = 13] = "CarriageReturn";
      CharCodes22[CharCodes22["Space"] = 32] = "Space";
      CharCodes22[CharCodes22["ExclamationMark"] = 33] = "ExclamationMark";
      CharCodes22[CharCodes22["Number"] = 35] = "Number";
      CharCodes22[CharCodes22["Amp"] = 38] = "Amp";
      CharCodes22[CharCodes22["SingleQuote"] = 39] = "SingleQuote";
      CharCodes22[CharCodes22["DoubleQuote"] = 34] = "DoubleQuote";
      CharCodes22[CharCodes22["Dash"] = 45] = "Dash";
      CharCodes22[CharCodes22["Slash"] = 47] = "Slash";
      CharCodes22[CharCodes22["Zero"] = 48] = "Zero";
      CharCodes22[CharCodes22["Nine"] = 57] = "Nine";
      CharCodes22[CharCodes22["Semi"] = 59] = "Semi";
      CharCodes22[CharCodes22["Lt"] = 60] = "Lt";
      CharCodes22[CharCodes22["Eq"] = 61] = "Eq";
      CharCodes22[CharCodes22["Gt"] = 62] = "Gt";
      CharCodes22[CharCodes22["Questionmark"] = 63] = "Questionmark";
      CharCodes22[CharCodes22["UpperA"] = 65] = "UpperA";
      CharCodes22[CharCodes22["LowerA"] = 97] = "LowerA";
      CharCodes22[CharCodes22["UpperF"] = 70] = "UpperF";
      CharCodes22[CharCodes22["LowerF"] = 102] = "LowerF";
      CharCodes22[CharCodes22["UpperZ"] = 90] = "UpperZ";
      CharCodes22[CharCodes22["LowerZ"] = 122] = "LowerZ";
      CharCodes22[CharCodes22["LowerX"] = 120] = "LowerX";
      CharCodes22[CharCodes22["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
    })(CharCodes3 || (CharCodes3 = {}));
    var State2;
    (function(State22) {
      State22[State22["Text"] = 1] = "Text";
      State22[State22["BeforeTagName"] = 2] = "BeforeTagName";
      State22[State22["InTagName"] = 3] = "InTagName";
      State22[State22["InSelfClosingTag"] = 4] = "InSelfClosingTag";
      State22[State22["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
      State22[State22["InClosingTagName"] = 6] = "InClosingTagName";
      State22[State22["AfterClosingTagName"] = 7] = "AfterClosingTagName";
      State22[State22["BeforeAttributeName"] = 8] = "BeforeAttributeName";
      State22[State22["InAttributeName"] = 9] = "InAttributeName";
      State22[State22["AfterAttributeName"] = 10] = "AfterAttributeName";
      State22[State22["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
      State22[State22["InAttributeValueDq"] = 12] = "InAttributeValueDq";
      State22[State22["InAttributeValueSq"] = 13] = "InAttributeValueSq";
      State22[State22["InAttributeValueNq"] = 14] = "InAttributeValueNq";
      State22[State22["BeforeDeclaration"] = 15] = "BeforeDeclaration";
      State22[State22["InDeclaration"] = 16] = "InDeclaration";
      State22[State22["InProcessingInstruction"] = 17] = "InProcessingInstruction";
      State22[State22["BeforeComment"] = 18] = "BeforeComment";
      State22[State22["CDATASequence"] = 19] = "CDATASequence";
      State22[State22["InSpecialComment"] = 20] = "InSpecialComment";
      State22[State22["InCommentLike"] = 21] = "InCommentLike";
      State22[State22["BeforeSpecialS"] = 22] = "BeforeSpecialS";
      State22[State22["BeforeSpecialT"] = 23] = "BeforeSpecialT";
      State22[State22["SpecialStartSequence"] = 24] = "SpecialStartSequence";
      State22[State22["InSpecialTag"] = 25] = "InSpecialTag";
      State22[State22["InEntity"] = 26] = "InEntity";
    })(State2 || (State2 = {}));
    function isWhitespace2(c3) {
      return c3 === CharCodes3.Space || c3 === CharCodes3.NewLine || c3 === CharCodes3.Tab || c3 === CharCodes3.FormFeed || c3 === CharCodes3.CarriageReturn;
    }
    function isEndOfTagSection2(c3) {
      return c3 === CharCodes3.Slash || c3 === CharCodes3.Gt || isWhitespace2(c3);
    }
    function isASCIIAlpha2(c3) {
      return c3 >= CharCodes3.LowerA && c3 <= CharCodes3.LowerZ || c3 >= CharCodes3.UpperA && c3 <= CharCodes3.UpperZ;
    }
    var QuoteType2;
    (function(QuoteType22) {
      QuoteType22[QuoteType22["NoValue"] = 0] = "NoValue";
      QuoteType22[QuoteType22["Unquoted"] = 1] = "Unquoted";
      QuoteType22[QuoteType22["Single"] = 2] = "Single";
      QuoteType22[QuoteType22["Double"] = 3] = "Double";
    })(QuoteType2 || (exports2.QuoteType = QuoteType2 = {}));
    var Sequences2 = {
      Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
      // CDATA[
      CdataEnd: new Uint8Array([93, 93, 62]),
      // ]]>
      CommentEnd: new Uint8Array([45, 45, 62]),
      // `-->`
      ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
      // `</script`
      StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
      // `</style`
      TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
      // `</title`
      TextareaEnd: new Uint8Array([
        60,
        47,
        116,
        101,
        120,
        116,
        97,
        114,
        101,
        97
      ])
      // `</textarea`
    };
    var Tokenizer2 = (
      /** @class */
      (function() {
        function Tokenizer22(_a22, cbs) {
          var _b2 = _a22.xmlMode, xmlMode = _b2 === void 0 ? false : _b2, _c = _a22.decodeEntities, decodeEntities = _c === void 0 ? true : _c;
          var _this = this;
          this.cbs = cbs;
          this.state = State2.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.entityStart = 0;
          this.baseState = State2.Text;
          this.isSpecial = false;
          this.running = true;
          this.offset = 0;
          this.currentSequence = void 0;
          this.sequenceIndex = 0;
          this.xmlMode = xmlMode;
          this.decodeEntities = decodeEntities;
          this.entityDecoder = new decode_js_1.EntityDecoder(xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree, function(cp, consumed) {
            return _this.emitCodePoint(cp, consumed);
          });
        }
        Tokenizer22.prototype.reset = function() {
          this.state = State2.Text;
          this.buffer = "";
          this.sectionStart = 0;
          this.index = 0;
          this.baseState = State2.Text;
          this.currentSequence = void 0;
          this.running = true;
          this.offset = 0;
        };
        Tokenizer22.prototype.write = function(chunk2) {
          this.offset += this.buffer.length;
          this.buffer = chunk2;
          this.parse();
        };
        Tokenizer22.prototype.end = function() {
          if (this.running)
            this.finish();
        };
        Tokenizer22.prototype.pause = function() {
          this.running = false;
        };
        Tokenizer22.prototype.resume = function() {
          this.running = true;
          if (this.index < this.buffer.length + this.offset) {
            this.parse();
          }
        };
        Tokenizer22.prototype.stateText = function(c3) {
          if (c3 === CharCodes3.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes3.Lt)) {
            if (this.index > this.sectionStart) {
              this.cbs.ontext(this.sectionStart, this.index);
            }
            this.state = State2.BeforeTagName;
            this.sectionStart = this.index;
          } else if (this.decodeEntities && c3 === CharCodes3.Amp) {
            this.startEntity();
          }
        };
        Tokenizer22.prototype.stateSpecialStartSequence = function(c3) {
          var isEnd = this.sequenceIndex === this.currentSequence.length;
          var isMatch = isEnd ? (
            // If we are at the end of the sequence, make sure the tag name has ended
            isEndOfTagSection2(c3)
          ) : (
            // Otherwise, do a case-insensitive comparison
            (c3 | 32) === this.currentSequence[this.sequenceIndex]
          );
          if (!isMatch) {
            this.isSpecial = false;
          } else if (!isEnd) {
            this.sequenceIndex++;
            return;
          }
          this.sequenceIndex = 0;
          this.state = State2.InTagName;
          this.stateInTagName(c3);
        };
        Tokenizer22.prototype.stateInSpecialTag = function(c3) {
          if (this.sequenceIndex === this.currentSequence.length) {
            if (c3 === CharCodes3.Gt || isWhitespace2(c3)) {
              var endOfText = this.index - this.currentSequence.length;
              if (this.sectionStart < endOfText) {
                var actualIndex = this.index;
                this.index = endOfText;
                this.cbs.ontext(this.sectionStart, endOfText);
                this.index = actualIndex;
              }
              this.isSpecial = false;
              this.sectionStart = endOfText + 2;
              this.stateInClosingTagName(c3);
              return;
            }
            this.sequenceIndex = 0;
          }
          if ((c3 | 32) === this.currentSequence[this.sequenceIndex]) {
            this.sequenceIndex += 1;
          } else if (this.sequenceIndex === 0) {
            if (this.currentSequence === Sequences2.TitleEnd) {
              if (this.decodeEntities && c3 === CharCodes3.Amp) {
                this.startEntity();
              }
            } else if (this.fastForwardTo(CharCodes3.Lt)) {
              this.sequenceIndex = 1;
            }
          } else {
            this.sequenceIndex = Number(c3 === CharCodes3.Lt);
          }
        };
        Tokenizer22.prototype.stateCDATASequence = function(c3) {
          if (c3 === Sequences2.Cdata[this.sequenceIndex]) {
            if (++this.sequenceIndex === Sequences2.Cdata.length) {
              this.state = State2.InCommentLike;
              this.currentSequence = Sequences2.CdataEnd;
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
            }
          } else {
            this.sequenceIndex = 0;
            this.state = State2.InDeclaration;
            this.stateInDeclaration(c3);
          }
        };
        Tokenizer22.prototype.fastForwardTo = function(c3) {
          while (++this.index < this.buffer.length + this.offset) {
            if (this.buffer.charCodeAt(this.index - this.offset) === c3) {
              return true;
            }
          }
          this.index = this.buffer.length + this.offset - 1;
          return false;
        };
        Tokenizer22.prototype.stateInCommentLike = function(c3) {
          if (c3 === this.currentSequence[this.sequenceIndex]) {
            if (++this.sequenceIndex === this.currentSequence.length) {
              if (this.currentSequence === Sequences2.CdataEnd) {
                this.cbs.oncdata(this.sectionStart, this.index, 2);
              } else {
                this.cbs.oncomment(this.sectionStart, this.index, 2);
              }
              this.sequenceIndex = 0;
              this.sectionStart = this.index + 1;
              this.state = State2.Text;
            }
          } else if (this.sequenceIndex === 0) {
            if (this.fastForwardTo(this.currentSequence[0])) {
              this.sequenceIndex = 1;
            }
          } else if (c3 !== this.currentSequence[this.sequenceIndex - 1]) {
            this.sequenceIndex = 0;
          }
        };
        Tokenizer22.prototype.isTagStartChar = function(c3) {
          return this.xmlMode ? !isEndOfTagSection2(c3) : isASCIIAlpha2(c3);
        };
        Tokenizer22.prototype.startSpecial = function(sequence, offset) {
          this.isSpecial = true;
          this.currentSequence = sequence;
          this.sequenceIndex = offset;
          this.state = State2.SpecialStartSequence;
        };
        Tokenizer22.prototype.stateBeforeTagName = function(c3) {
          if (c3 === CharCodes3.ExclamationMark) {
            this.state = State2.BeforeDeclaration;
            this.sectionStart = this.index + 1;
          } else if (c3 === CharCodes3.Questionmark) {
            this.state = State2.InProcessingInstruction;
            this.sectionStart = this.index + 1;
          } else if (this.isTagStartChar(c3)) {
            var lower = c3 | 32;
            this.sectionStart = this.index;
            if (this.xmlMode) {
              this.state = State2.InTagName;
            } else if (lower === Sequences2.ScriptEnd[2]) {
              this.state = State2.BeforeSpecialS;
            } else if (lower === Sequences2.TitleEnd[2]) {
              this.state = State2.BeforeSpecialT;
            } else {
              this.state = State2.InTagName;
            }
          } else if (c3 === CharCodes3.Slash) {
            this.state = State2.BeforeClosingTagName;
          } else {
            this.state = State2.Text;
            this.stateText(c3);
          }
        };
        Tokenizer22.prototype.stateInTagName = function(c3) {
          if (isEndOfTagSection2(c3)) {
            this.cbs.onopentagname(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          }
        };
        Tokenizer22.prototype.stateBeforeClosingTagName = function(c3) {
          if (isWhitespace2(c3)) {
          } else if (c3 === CharCodes3.Gt) {
            this.state = State2.Text;
          } else {
            this.state = this.isTagStartChar(c3) ? State2.InClosingTagName : State2.InSpecialComment;
            this.sectionStart = this.index;
          }
        };
        Tokenizer22.prototype.stateInClosingTagName = function(c3) {
          if (c3 === CharCodes3.Gt || isWhitespace2(c3)) {
            this.cbs.onclosetag(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.state = State2.AfterClosingTagName;
            this.stateAfterClosingTagName(c3);
          }
        };
        Tokenizer22.prototype.stateAfterClosingTagName = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateBeforeAttributeName = function(c3) {
          if (c3 === CharCodes3.Gt) {
            this.cbs.onopentagend(this.index);
            if (this.isSpecial) {
              this.state = State2.InSpecialTag;
              this.sequenceIndex = 0;
            } else {
              this.state = State2.Text;
            }
            this.sectionStart = this.index + 1;
          } else if (c3 === CharCodes3.Slash) {
            this.state = State2.InSelfClosingTag;
          } else if (!isWhitespace2(c3)) {
            this.state = State2.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer22.prototype.stateInSelfClosingTag = function(c3) {
          if (c3 === CharCodes3.Gt) {
            this.cbs.onselfclosingtag(this.index);
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
            this.isSpecial = false;
          } else if (!isWhitespace2(c3)) {
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          }
        };
        Tokenizer22.prototype.stateInAttributeName = function(c3) {
          if (c3 === CharCodes3.Eq || isEndOfTagSection2(c3)) {
            this.cbs.onattribname(this.sectionStart, this.index);
            this.sectionStart = this.index;
            this.state = State2.AfterAttributeName;
            this.stateAfterAttributeName(c3);
          }
        };
        Tokenizer22.prototype.stateAfterAttributeName = function(c3) {
          if (c3 === CharCodes3.Eq) {
            this.state = State2.BeforeAttributeValue;
          } else if (c3 === CharCodes3.Slash || c3 === CharCodes3.Gt) {
            this.cbs.onattribend(QuoteType2.NoValue, this.sectionStart);
            this.sectionStart = -1;
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          } else if (!isWhitespace2(c3)) {
            this.cbs.onattribend(QuoteType2.NoValue, this.sectionStart);
            this.state = State2.InAttributeName;
            this.sectionStart = this.index;
          }
        };
        Tokenizer22.prototype.stateBeforeAttributeValue = function(c3) {
          if (c3 === CharCodes3.DoubleQuote) {
            this.state = State2.InAttributeValueDq;
            this.sectionStart = this.index + 1;
          } else if (c3 === CharCodes3.SingleQuote) {
            this.state = State2.InAttributeValueSq;
            this.sectionStart = this.index + 1;
          } else if (!isWhitespace2(c3)) {
            this.sectionStart = this.index;
            this.state = State2.InAttributeValueNq;
            this.stateInAttributeValueNoQuotes(c3);
          }
        };
        Tokenizer22.prototype.handleInAttributeValue = function(c3, quote) {
          if (c3 === quote || !this.decodeEntities && this.fastForwardTo(quote)) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(quote === CharCodes3.DoubleQuote ? QuoteType2.Double : QuoteType2.Single, this.index + 1);
            this.state = State2.BeforeAttributeName;
          } else if (this.decodeEntities && c3 === CharCodes3.Amp) {
            this.startEntity();
          }
        };
        Tokenizer22.prototype.stateInAttributeValueDoubleQuotes = function(c3) {
          this.handleInAttributeValue(c3, CharCodes3.DoubleQuote);
        };
        Tokenizer22.prototype.stateInAttributeValueSingleQuotes = function(c3) {
          this.handleInAttributeValue(c3, CharCodes3.SingleQuote);
        };
        Tokenizer22.prototype.stateInAttributeValueNoQuotes = function(c3) {
          if (isWhitespace2(c3) || c3 === CharCodes3.Gt) {
            this.cbs.onattribdata(this.sectionStart, this.index);
            this.sectionStart = -1;
            this.cbs.onattribend(QuoteType2.Unquoted, this.index);
            this.state = State2.BeforeAttributeName;
            this.stateBeforeAttributeName(c3);
          } else if (this.decodeEntities && c3 === CharCodes3.Amp) {
            this.startEntity();
          }
        };
        Tokenizer22.prototype.stateBeforeDeclaration = function(c3) {
          if (c3 === CharCodes3.OpeningSquareBracket) {
            this.state = State2.CDATASequence;
            this.sequenceIndex = 0;
          } else {
            this.state = c3 === CharCodes3.Dash ? State2.BeforeComment : State2.InDeclaration;
          }
        };
        Tokenizer22.prototype.stateInDeclaration = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.cbs.ondeclaration(this.sectionStart, this.index);
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateInProcessingInstruction = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.cbs.onprocessinginstruction(this.sectionStart, this.index);
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateBeforeComment = function(c3) {
          if (c3 === CharCodes3.Dash) {
            this.state = State2.InCommentLike;
            this.currentSequence = Sequences2.CommentEnd;
            this.sequenceIndex = 2;
            this.sectionStart = this.index + 1;
          } else {
            this.state = State2.InDeclaration;
          }
        };
        Tokenizer22.prototype.stateInSpecialComment = function(c3) {
          if (c3 === CharCodes3.Gt || this.fastForwardTo(CharCodes3.Gt)) {
            this.cbs.oncomment(this.sectionStart, this.index, 0);
            this.state = State2.Text;
            this.sectionStart = this.index + 1;
          }
        };
        Tokenizer22.prototype.stateBeforeSpecialS = function(c3) {
          var lower = c3 | 32;
          if (lower === Sequences2.ScriptEnd[3]) {
            this.startSpecial(Sequences2.ScriptEnd, 4);
          } else if (lower === Sequences2.StyleEnd[3]) {
            this.startSpecial(Sequences2.StyleEnd, 4);
          } else {
            this.state = State2.InTagName;
            this.stateInTagName(c3);
          }
        };
        Tokenizer22.prototype.stateBeforeSpecialT = function(c3) {
          var lower = c3 | 32;
          if (lower === Sequences2.TitleEnd[3]) {
            this.startSpecial(Sequences2.TitleEnd, 4);
          } else if (lower === Sequences2.TextareaEnd[3]) {
            this.startSpecial(Sequences2.TextareaEnd, 4);
          } else {
            this.state = State2.InTagName;
            this.stateInTagName(c3);
          }
        };
        Tokenizer22.prototype.startEntity = function() {
          this.baseState = this.state;
          this.state = State2.InEntity;
          this.entityStart = this.index;
          this.entityDecoder.startEntity(this.xmlMode ? decode_js_1.DecodingMode.Strict : this.baseState === State2.Text || this.baseState === State2.InSpecialTag ? decode_js_1.DecodingMode.Legacy : decode_js_1.DecodingMode.Attribute);
        };
        Tokenizer22.prototype.stateInEntity = function() {
          var length = this.entityDecoder.write(this.buffer, this.index - this.offset);
          if (length >= 0) {
            this.state = this.baseState;
            if (length === 0) {
              this.index = this.entityStart;
            }
          } else {
            this.index = this.offset + this.buffer.length - 1;
          }
        };
        Tokenizer22.prototype.cleanup = function() {
          if (this.running && this.sectionStart !== this.index) {
            if (this.state === State2.Text || this.state === State2.InSpecialTag && this.sequenceIndex === 0) {
              this.cbs.ontext(this.sectionStart, this.index);
              this.sectionStart = this.index;
            } else if (this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueNq) {
              this.cbs.onattribdata(this.sectionStart, this.index);
              this.sectionStart = this.index;
            }
          }
        };
        Tokenizer22.prototype.shouldContinue = function() {
          return this.index < this.buffer.length + this.offset && this.running;
        };
        Tokenizer22.prototype.parse = function() {
          while (this.shouldContinue()) {
            var c3 = this.buffer.charCodeAt(this.index - this.offset);
            switch (this.state) {
              case State2.Text: {
                this.stateText(c3);
                break;
              }
              case State2.SpecialStartSequence: {
                this.stateSpecialStartSequence(c3);
                break;
              }
              case State2.InSpecialTag: {
                this.stateInSpecialTag(c3);
                break;
              }
              case State2.CDATASequence: {
                this.stateCDATASequence(c3);
                break;
              }
              case State2.InAttributeValueDq: {
                this.stateInAttributeValueDoubleQuotes(c3);
                break;
              }
              case State2.InAttributeName: {
                this.stateInAttributeName(c3);
                break;
              }
              case State2.InCommentLike: {
                this.stateInCommentLike(c3);
                break;
              }
              case State2.InSpecialComment: {
                this.stateInSpecialComment(c3);
                break;
              }
              case State2.BeforeAttributeName: {
                this.stateBeforeAttributeName(c3);
                break;
              }
              case State2.InTagName: {
                this.stateInTagName(c3);
                break;
              }
              case State2.InClosingTagName: {
                this.stateInClosingTagName(c3);
                break;
              }
              case State2.BeforeTagName: {
                this.stateBeforeTagName(c3);
                break;
              }
              case State2.AfterAttributeName: {
                this.stateAfterAttributeName(c3);
                break;
              }
              case State2.InAttributeValueSq: {
                this.stateInAttributeValueSingleQuotes(c3);
                break;
              }
              case State2.BeforeAttributeValue: {
                this.stateBeforeAttributeValue(c3);
                break;
              }
              case State2.BeforeClosingTagName: {
                this.stateBeforeClosingTagName(c3);
                break;
              }
              case State2.AfterClosingTagName: {
                this.stateAfterClosingTagName(c3);
                break;
              }
              case State2.BeforeSpecialS: {
                this.stateBeforeSpecialS(c3);
                break;
              }
              case State2.BeforeSpecialT: {
                this.stateBeforeSpecialT(c3);
                break;
              }
              case State2.InAttributeValueNq: {
                this.stateInAttributeValueNoQuotes(c3);
                break;
              }
              case State2.InSelfClosingTag: {
                this.stateInSelfClosingTag(c3);
                break;
              }
              case State2.InDeclaration: {
                this.stateInDeclaration(c3);
                break;
              }
              case State2.BeforeDeclaration: {
                this.stateBeforeDeclaration(c3);
                break;
              }
              case State2.BeforeComment: {
                this.stateBeforeComment(c3);
                break;
              }
              case State2.InProcessingInstruction: {
                this.stateInProcessingInstruction(c3);
                break;
              }
              case State2.InEntity: {
                this.stateInEntity();
                break;
              }
            }
            this.index++;
          }
          this.cleanup();
        };
        Tokenizer22.prototype.finish = function() {
          if (this.state === State2.InEntity) {
            this.entityDecoder.end();
            this.state = this.baseState;
          }
          this.handleTrailingData();
          this.cbs.onend();
        };
        Tokenizer22.prototype.handleTrailingData = function() {
          var endIndex = this.buffer.length + this.offset;
          if (this.sectionStart >= endIndex) {
            return;
          }
          if (this.state === State2.InCommentLike) {
            if (this.currentSequence === Sequences2.CdataEnd) {
              this.cbs.oncdata(this.sectionStart, endIndex, 0);
            } else {
              this.cbs.oncomment(this.sectionStart, endIndex, 0);
            }
          } else if (this.state === State2.InTagName || this.state === State2.BeforeAttributeName || this.state === State2.BeforeAttributeValue || this.state === State2.AfterAttributeName || this.state === State2.InAttributeName || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueNq || this.state === State2.InClosingTagName) {
          } else {
            this.cbs.ontext(this.sectionStart, endIndex);
          }
        };
        Tokenizer22.prototype.emitCodePoint = function(cp, consumed) {
          if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) {
            if (this.sectionStart < this.entityStart) {
              this.cbs.onattribdata(this.sectionStart, this.entityStart);
            }
            this.sectionStart = this.entityStart + consumed;
            this.index = this.sectionStart - 1;
            this.cbs.onattribentity(cp);
          } else {
            if (this.sectionStart < this.entityStart) {
              this.cbs.ontext(this.sectionStart, this.entityStart);
            }
            this.sectionStart = this.entityStart + consumed;
            this.index = this.sectionStart - 1;
            this.cbs.ontextentity(cp, this.sectionStart);
          }
        };
        return Tokenizer22;
      })()
    );
    exports2.default = Tokenizer2;
  }
});
var require_Parser3 = __commonJS2({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/Parser.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.Parser = void 0;
    var Tokenizer_js_1 = __importStar2(require_Tokenizer2());
    var decode_js_1 = require_decode();
    var formTags2 = /* @__PURE__ */ new Set([
      "input",
      "option",
      "optgroup",
      "select",
      "button",
      "datalist",
      "textarea"
    ]);
    var pTag2 = /* @__PURE__ */ new Set(["p"]);
    var tableSectionTags2 = /* @__PURE__ */ new Set(["thead", "tbody"]);
    var ddtTags2 = /* @__PURE__ */ new Set(["dd", "dt"]);
    var rtpTags2 = /* @__PURE__ */ new Set(["rt", "rp"]);
    var openImpliesClose2 = /* @__PURE__ */ new Map([
      ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
      ["th", /* @__PURE__ */ new Set(["th"])],
      ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
      ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
      ["li", /* @__PURE__ */ new Set(["li"])],
      ["p", pTag2],
      ["h1", pTag2],
      ["h2", pTag2],
      ["h3", pTag2],
      ["h4", pTag2],
      ["h5", pTag2],
      ["h6", pTag2],
      ["select", formTags2],
      ["input", formTags2],
      ["output", formTags2],
      ["button", formTags2],
      ["datalist", formTags2],
      ["textarea", formTags2],
      ["option", /* @__PURE__ */ new Set(["option"])],
      ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
      ["dd", ddtTags2],
      ["dt", ddtTags2],
      ["address", pTag2],
      ["article", pTag2],
      ["aside", pTag2],
      ["blockquote", pTag2],
      ["details", pTag2],
      ["div", pTag2],
      ["dl", pTag2],
      ["fieldset", pTag2],
      ["figcaption", pTag2],
      ["figure", pTag2],
      ["footer", pTag2],
      ["form", pTag2],
      ["header", pTag2],
      ["hr", pTag2],
      ["main", pTag2],
      ["nav", pTag2],
      ["ol", pTag2],
      ["pre", pTag2],
      ["section", pTag2],
      ["table", pTag2],
      ["ul", pTag2],
      ["rt", rtpTags2],
      ["rp", rtpTags2],
      ["tbody", tableSectionTags2],
      ["tfoot", tableSectionTags2]
    ]);
    var voidElements2 = /* @__PURE__ */ new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr"
    ]);
    var foreignContextElements2 = /* @__PURE__ */ new Set(["math", "svg"]);
    var htmlIntegrationElements2 = /* @__PURE__ */ new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignobject",
      "desc",
      "title"
    ]);
    var reNameEnd2 = /\s|\//;
    var Parser2 = (
      /** @class */
      (function() {
        function Parser22(cbs, options) {
          if (options === void 0) {
            options = {};
          }
          var _a22, _b2, _c, _d, _e3, _f;
          this.options = options;
          this.startIndex = 0;
          this.endIndex = 0;
          this.openTagStart = 0;
          this.tagname = "";
          this.attribname = "";
          this.attribvalue = "";
          this.attribs = null;
          this.stack = [];
          this.buffers = [];
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
          this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
          this.htmlMode = !this.options.xmlMode;
          this.lowerCaseTagNames = (_a22 = options.lowerCaseTags) !== null && _a22 !== void 0 ? _a22 : this.htmlMode;
          this.lowerCaseAttributeNames = (_b2 = options.lowerCaseAttributeNames) !== null && _b2 !== void 0 ? _b2 : this.htmlMode;
          this.recognizeSelfClosing = (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;
          this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer_js_1.default)(this.options, this);
          this.foreignContext = [!this.htmlMode];
          (_f = (_e3 = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e3, this);
        }
        Parser22.prototype.ontext = function(start, endIndex) {
          var _a22, _b2;
          var data = this.getSlice(start, endIndex);
          this.endIndex = endIndex - 1;
          (_b2 = (_a22 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, data);
          this.startIndex = endIndex;
        };
        Parser22.prototype.ontextentity = function(cp, endIndex) {
          var _a22, _b2;
          this.endIndex = endIndex - 1;
          (_b2 = (_a22 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, (0, decode_js_1.fromCodePoint)(cp));
          this.startIndex = endIndex;
        };
        Parser22.prototype.isVoidElement = function(name2) {
          return this.htmlMode && voidElements2.has(name2);
        };
        Parser22.prototype.onopentagname = function(start, endIndex) {
          this.endIndex = endIndex;
          var name2 = this.getSlice(start, endIndex);
          if (this.lowerCaseTagNames) {
            name2 = name2.toLowerCase();
          }
          this.emitOpenTag(name2);
        };
        Parser22.prototype.emitOpenTag = function(name2) {
          var _a22, _b2, _c, _d;
          this.openTagStart = this.startIndex;
          this.tagname = name2;
          var impliesClose = this.htmlMode && openImpliesClose2.get(name2);
          if (impliesClose) {
            while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {
              var element = this.stack.shift();
              (_b2 = (_a22 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, element, true);
            }
          }
          if (!this.isVoidElement(name2)) {
            this.stack.unshift(name2);
            if (this.htmlMode) {
              if (foreignContextElements2.has(name2)) {
                this.foreignContext.unshift(true);
              } else if (htmlIntegrationElements2.has(name2)) {
                this.foreignContext.unshift(false);
              }
            }
          }
          (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name2);
          if (this.cbs.onopentag)
            this.attribs = {};
        };
        Parser22.prototype.endOpenTag = function(isImplied) {
          var _a22, _b2;
          this.startIndex = this.openTagStart;
          if (this.attribs) {
            (_b2 = (_a22 = this.cbs).onopentag) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, this.tagname, this.attribs, isImplied);
            this.attribs = null;
          }
          if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
            this.cbs.onclosetag(this.tagname, true);
          }
          this.tagname = "";
        };
        Parser22.prototype.onopentagend = function(endIndex) {
          this.endIndex = endIndex;
          this.endOpenTag(false);
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onclosetag = function(start, endIndex) {
          var _a22, _b2, _c, _d, _e3, _f, _g, _h;
          this.endIndex = endIndex;
          var name2 = this.getSlice(start, endIndex);
          if (this.lowerCaseTagNames) {
            name2 = name2.toLowerCase();
          }
          if (this.htmlMode && (foreignContextElements2.has(name2) || htmlIntegrationElements2.has(name2))) {
            this.foreignContext.shift();
          }
          if (!this.isVoidElement(name2)) {
            var pos = this.stack.indexOf(name2);
            if (pos !== -1) {
              for (var index = 0; index <= pos; index++) {
                var element = this.stack.shift();
                (_b2 = (_a22 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, element, index !== pos);
              }
            } else if (this.htmlMode && name2 === "p") {
              this.emitOpenTag("p");
              this.closeCurrentTag(true);
            }
          } else if (this.htmlMode && name2 === "br") {
            (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, "br");
            (_f = (_e3 = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e3, "br", {}, true);
            (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, "br", false);
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onselfclosingtag = function(endIndex) {
          this.endIndex = endIndex;
          if (this.recognizeSelfClosing || this.foreignContext[0]) {
            this.closeCurrentTag(false);
            this.startIndex = endIndex + 1;
          } else {
            this.onopentagend(endIndex);
          }
        };
        Parser22.prototype.closeCurrentTag = function(isOpenImplied) {
          var _a22, _b2;
          var name2 = this.tagname;
          this.endOpenTag(isOpenImplied);
          if (this.stack[0] === name2) {
            (_b2 = (_a22 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, name2, !isOpenImplied);
            this.stack.shift();
          }
        };
        Parser22.prototype.onattribname = function(start, endIndex) {
          this.startIndex = start;
          var name2 = this.getSlice(start, endIndex);
          this.attribname = this.lowerCaseAttributeNames ? name2.toLowerCase() : name2;
        };
        Parser22.prototype.onattribdata = function(start, endIndex) {
          this.attribvalue += this.getSlice(start, endIndex);
        };
        Parser22.prototype.onattribentity = function(cp) {
          this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);
        };
        Parser22.prototype.onattribend = function(quote, endIndex) {
          var _a22, _b2;
          this.endIndex = endIndex;
          (_b2 = (_a22 = this.cbs).onattribute) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? void 0 : null);
          if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
            this.attribs[this.attribname] = this.attribvalue;
          }
          this.attribvalue = "";
        };
        Parser22.prototype.getInstructionName = function(value) {
          var index = value.search(reNameEnd2);
          var name2 = index < 0 ? value : value.substr(0, index);
          if (this.lowerCaseTagNames) {
            name2 = name2.toLowerCase();
          }
          return name2;
        };
        Parser22.prototype.ondeclaration = function(start, endIndex) {
          this.endIndex = endIndex;
          var value = this.getSlice(start, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name2 = this.getInstructionName(value);
            this.cbs.onprocessinginstruction("!".concat(name2), "!".concat(value));
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onprocessinginstruction = function(start, endIndex) {
          this.endIndex = endIndex;
          var value = this.getSlice(start, endIndex);
          if (this.cbs.onprocessinginstruction) {
            var name2 = this.getInstructionName(value);
            this.cbs.onprocessinginstruction("?".concat(name2), "?".concat(value));
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.oncomment = function(start, endIndex, offset) {
          var _a22, _b2, _c, _d;
          this.endIndex = endIndex;
          (_b2 = (_a22 = this.cbs).oncomment) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, this.getSlice(start, endIndex - offset));
          (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.oncdata = function(start, endIndex, offset) {
          var _a22, _b2, _c, _d, _e3, _f, _g, _h, _j, _k;
          this.endIndex = endIndex;
          var value = this.getSlice(start, endIndex - offset);
          if (!this.htmlMode || this.options.recognizeCDATA) {
            (_b2 = (_a22 = this.cbs).oncdatastart) === null || _b2 === void 0 ? void 0 : _b2.call(_a22);
            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);
            (_f = (_e3 = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e3);
          } else {
            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, "[CDATA[".concat(value, "]]"));
            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
          }
          this.startIndex = endIndex + 1;
        };
        Parser22.prototype.onend = function() {
          var _a22, _b2;
          if (this.cbs.onclosetag) {
            this.endIndex = this.startIndex;
            for (var index = 0; index < this.stack.length; index++) {
              this.cbs.onclosetag(this.stack[index], true);
            }
          }
          (_b2 = (_a22 = this.cbs).onend) === null || _b2 === void 0 ? void 0 : _b2.call(_a22);
        };
        Parser22.prototype.reset = function() {
          var _a22, _b2, _c, _d;
          (_b2 = (_a22 = this.cbs).onreset) === null || _b2 === void 0 ? void 0 : _b2.call(_a22);
          this.tokenizer.reset();
          this.tagname = "";
          this.attribname = "";
          this.attribs = null;
          this.stack.length = 0;
          this.startIndex = 0;
          this.endIndex = 0;
          (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
          this.buffers.length = 0;
          this.foreignContext.length = 0;
          this.foreignContext.unshift(!this.htmlMode);
          this.bufferOffset = 0;
          this.writeIndex = 0;
          this.ended = false;
        };
        Parser22.prototype.parseComplete = function(data) {
          this.reset();
          this.end(data);
        };
        Parser22.prototype.getSlice = function(start, end) {
          while (start - this.bufferOffset >= this.buffers[0].length) {
            this.shiftBuffer();
          }
          var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);
          while (end - this.bufferOffset > this.buffers[0].length) {
            this.shiftBuffer();
            slice += this.buffers[0].slice(0, end - this.bufferOffset);
          }
          return slice;
        };
        Parser22.prototype.shiftBuffer = function() {
          this.bufferOffset += this.buffers[0].length;
          this.writeIndex--;
          this.buffers.shift();
        };
        Parser22.prototype.write = function(chunk2) {
          var _a22, _b2;
          if (this.ended) {
            (_b2 = (_a22 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, new Error(".write() after done!"));
            return;
          }
          this.buffers.push(chunk2);
          if (this.tokenizer.running) {
            this.tokenizer.write(chunk2);
            this.writeIndex++;
          }
        };
        Parser22.prototype.end = function(chunk2) {
          var _a22, _b2;
          if (this.ended) {
            (_b2 = (_a22 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a22, new Error(".end() after done!"));
            return;
          }
          if (chunk2)
            this.write(chunk2);
          this.ended = true;
          this.tokenizer.end();
        };
        Parser22.prototype.pause = function() {
          this.tokenizer.pause();
        };
        Parser22.prototype.resume = function() {
          this.tokenizer.resume();
          while (this.tokenizer.running && this.writeIndex < this.buffers.length) {
            this.tokenizer.write(this.buffers[this.writeIndex++]);
          }
          if (this.ended)
            this.tokenizer.end();
        };
        Parser22.prototype.parseChunk = function(chunk2) {
          this.write(chunk2);
        };
        Parser22.prototype.done = function(chunk2) {
          this.end(chunk2);
        };
        return Parser22;
      })()
    );
    exports2.Parser = Parser2;
  }
});
var require_lib14 = __commonJS2({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/index.js"(exports2) {
    "use strict";
    var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      var desc = Object.getOwnPropertyDescriptor(m2, k3);
      if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() {
          return m2[k3];
        } };
      }
      Object.defineProperty(o22, k22, desc);
    }) : (function(o22, m2, k3, k22) {
      if (k22 === void 0) k22 = k3;
      o22[k22] = m2[k3];
    }));
    var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o22, v2) {
      Object.defineProperty(o22, "default", { enumerable: true, value: v2 });
    }) : function(o22, v2) {
      o22["default"] = v2;
    });
    var __importStar2 = exports2 && exports2.__importStar || function(mod3) {
      if (mod3 && mod3.__esModule) return mod3;
      var result = {};
      if (mod3 != null) {
        for (var k3 in mod3) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod3, k3)) __createBinding2(result, mod3, k3);
      }
      __setModuleDefault2(result, mod3);
      return result;
    };
    var __importDefault2 = exports2 && exports2.__importDefault || function(mod3) {
      return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
    };
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.DomUtils = exports2.parseFeed = exports2.getFeed = exports2.ElementType = exports2.QuoteType = exports2.Tokenizer = exports2.createDomStream = exports2.createDocumentStream = exports2.parseDOM = exports2.parseDocument = exports2.DefaultHandler = exports2.DomHandler = exports2.Parser = void 0;
    var Parser_js_1 = require_Parser3();
    var Parser_js_2 = require_Parser3();
    Object.defineProperty(exports2, "Parser", { enumerable: true, get: function() {
      return Parser_js_2.Parser;
    } });
    var domhandler_1 = require_lib4();
    var domhandler_2 = require_lib4();
    Object.defineProperty(exports2, "DomHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    Object.defineProperty(exports2, "DefaultHandler", { enumerable: true, get: function() {
      return domhandler_2.DomHandler;
    } });
    function parseDocument2(data, options) {
      var handler = new domhandler_1.DomHandler(void 0, options);
      new Parser_js_1.Parser(handler, options).end(data);
      return handler.root;
    }
    exports2.parseDocument = parseDocument2;
    function parseDOM(data, options) {
      return parseDocument2(data, options).children;
    }
    exports2.parseDOM = parseDOM;
    function createDocumentStream(callback, options, elementCallback) {
      var handler = new domhandler_1.DomHandler(function(error) {
        return callback(error, handler.root);
      }, options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    exports2.createDocumentStream = createDocumentStream;
    function createDomStream(callback, options, elementCallback) {
      var handler = new domhandler_1.DomHandler(callback, options, elementCallback);
      return new Parser_js_1.Parser(handler, options);
    }
    exports2.createDomStream = createDomStream;
    var Tokenizer_js_1 = require_Tokenizer2();
    Object.defineProperty(exports2, "Tokenizer", { enumerable: true, get: function() {
      return __importDefault2(Tokenizer_js_1).default;
    } });
    Object.defineProperty(exports2, "QuoteType", { enumerable: true, get: function() {
      return Tokenizer_js_1.QuoteType;
    } });
    exports2.ElementType = __importStar2(require_lib3());
    var domutils_1 = require_lib7();
    var domutils_2 = require_lib7();
    Object.defineProperty(exports2, "getFeed", { enumerable: true, get: function() {
      return domutils_2.getFeed;
    } });
    var parseFeedDefaultOptions = { xmlMode: true };
    function parseFeed(feed, options) {
      if (options === void 0) {
        options = parseFeedDefaultOptions;
      }
      return (0, domutils_1.getFeed)(parseDOM(feed, options));
    }
    exports2.parseFeed = parseFeed;
    exports2.DomUtils = __importStar2(require_lib7());
  }
});
var require_WritableStream = __commonJS2({
  "../../node_modules/.pnpm/htmlparser2@9.1.0/node_modules/htmlparser2/lib/WritableStream.js"(exports2) {
    "use strict";
    var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() {
      var extendStatics2 = function(d, b2) {
        extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b22) {
          d2.__proto__ = b22;
        } || function(d2, b22) {
          for (var p in b22) if (Object.prototype.hasOwnProperty.call(b22, p)) d2[p] = b22[p];
        };
        return extendStatics2(d, b2);
      };
      return function(d, b2) {
        if (typeof b2 !== "function" && b2 !== null)
          throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
        extendStatics2(d, b2);
        function __() {
          this.constructor = d;
        }
        d.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
      };
    })();
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.WritableStream = void 0;
    var Parser_js_1 = require_Parser3();
    var node_stream_1 = __require("node:stream");
    var node_string_decoder_1 = __require("node:string_decoder");
    function isBuffer3(_chunk, encoding) {
      return encoding === "buffer";
    }
    var WritableStream2 = (
      /** @class */
      (function(_super) {
        __extends2(WritableStream22, _super);
        function WritableStream22(cbs, options) {
          var _this = _super.call(this, { decodeStrings: false }) || this;
          _this._decoder = new node_string_decoder_1.StringDecoder();
          _this._parser = new Parser_js_1.Parser(cbs, options);
          return _this;
        }
        WritableStream22.prototype._write = function(chunk2, encoding, callback) {
          this._parser.write(isBuffer3(chunk2, encoding) ? this._decoder.write(chunk2) : chunk2);
          callback();
        };
        WritableStream22.prototype._final = function(callback) {
          this._parser.end(this._decoder.end());
          callback();
        };
        return WritableStream22;
      })(node_stream_1.Writable)
    );
    exports2.WritableStream = WritableStream2;
  }
});
var require_cheerio_crawler = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+cheerio@3.16.0/node_modules/@crawlee/cheerio/internals/cheerio-crawler.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    exports2.CheerioCrawler = void 0;
    exports2.cheerioCrawlerEnqueueLinks = cheerioCrawlerEnqueueLinks2;
    exports2.createCheerioRouter = createCheerioRouter2;
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    var consumers_1 = __require("node:stream/consumers");
    var http_1 = require_http();
    var utils_1 = require_utils9();
    var cheerio = tslib_1.__importStar(require_lib12());
    var htmlparser2_1 = require_lib14();
    var WritableStream_1 = require_WritableStream();
    var CheerioCrawler2 = class extends http_1.HttpCrawler {
      /**
       * All `CheerioCrawler` parameters are passed via an options object.
       */
      // eslint-disable-next-line @typescript-eslint/no-useless-constructor
      constructor(options, config) {
        super(options, config);
      }
      async _parseHTML(response, isXml, crawlingContext) {
        const body = await (0, consumers_1.text)(response);
        const dom = (0, htmlparser2_1.parseDocument)(body, { decodeEntities: true, xmlMode: isXml });
        const $2 = cheerio.load(body, {
          xmlMode: isXml,
          // Recent versions of cheerio use parse5 as the HTML parser/serializer. It's more strict than htmlparser2
          // and not good for scraping. It also does not have a great streaming interface.
          // Here we tell cheerio to use htmlparser2 for serialization, otherwise the conflict produces weird errors.
          _useHtmlParser2: true
        });
        const originalEnqueueLinks = crawlingContext.enqueueLinks;
        return {
          dom,
          $: $2,
          body,
          enqueueLinks: async (enqueueOptions) => {
            return cheerioCrawlerEnqueueLinks2({
              options: { ...enqueueOptions, limit: this.calculateEnqueuedRequestLimit(enqueueOptions?.limit) },
              $: $2,
              requestQueue: await this.getRequestQueue(),
              robotsTxtFile: await this.getRobotsTxtFileForUrl(crawlingContext.request.url),
              onSkippedRequest: this.handleSkippedRequest,
              originalRequestUrl: crawlingContext.request.url,
              finalRequestUrl: crawlingContext.request.loadedUrl,
              enqueueLinks: originalEnqueueLinks
            });
          }
        };
      }
      // TODO: unused code - remove in 4.0
      async _parseHtmlToDom(response, isXml) {
        return new Promise((resolve2, reject) => {
          const domHandler = new htmlparser2_1.DomHandler((err2, dom) => {
            if (err2)
              reject(err2);
            else
              resolve2(dom);
          }, { xmlMode: isXml });
          const parser = new WritableStream_1.WritableStream(domHandler, { decodeEntities: true, xmlMode: isXml });
          parser.on("error", reject);
          response.on("error", reject).pipe(parser);
        });
      }
      async _runRequestHandler(context) {
        context.waitForSelector = async (selector, _timeoutMs) => {
          if (context.$(selector).get().length === 0) {
            throw new Error(`Selector '${selector}' not found.`);
          }
        };
        context.parseWithCheerio = async (selector, timeoutMs) => {
          if (selector) {
            await context.waitForSelector(selector, timeoutMs);
          }
          return context.$;
        };
        await super._runRequestHandler(context);
      }
    };
    exports2.CheerioCrawler = CheerioCrawler2;
    function containsEnqueueLinks(options) {
      return !!options.enqueueLinks;
    }
    async function cheerioCrawlerEnqueueLinks2(options) {
      const { options: enqueueLinksOptions, $: $2, originalRequestUrl, finalRequestUrl } = options;
      if (!$2) {
        throw new Error("Cannot enqueue links because the DOM is not available.");
      }
      const baseUrl = (0, http_1.resolveBaseUrlForEnqueueLinksFiltering)({
        enqueueStrategy: enqueueLinksOptions?.strategy,
        finalRequestUrl,
        originalRequestUrl,
        userProvidedBaseUrl: enqueueLinksOptions?.baseUrl
      });
      const urls = (0, utils_1.extractUrlsFromCheerio)($2, enqueueLinksOptions?.selector ?? "a", enqueueLinksOptions?.baseUrl ?? finalRequestUrl ?? originalRequestUrl);
      if (containsEnqueueLinks(options)) {
        return options.enqueueLinks({
          urls,
          baseUrl,
          ...enqueueLinksOptions
        });
      }
      return (0, http_1.enqueueLinks)({
        requestQueue: options.requestQueue,
        robotsTxtFile: options.robotsTxtFile,
        onSkippedRequest: options.onSkippedRequest,
        urls,
        baseUrl,
        ...enqueueLinksOptions
      });
    }
    function createCheerioRouter2(routes) {
      return http_1.Router.create(routes);
    }
  }
});
var require_cheerio3 = __commonJS2({
  "../../node_modules/.pnpm/@crawlee+cheerio@3.16.0/node_modules/@crawlee/cheerio/index.js"(exports2) {
    "use strict";
    Object.defineProperty(exports2, "__esModule", { value: true });
    var tslib_1 = (init_tslib_es6(), __toCommonJS2(tslib_es6_exports));
    tslib_1.__exportStar(require_http(), exports2);
    tslib_1.__exportStar(require_cheerio_crawler(), exports2);
  }
});
var require_delayed_stream = __commonJS2({
  "../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js"(exports2, module2) {
    var Stream = __require("stream").Stream;
    var util32 = __require("util");
    module2.exports = DelayedStream;
    function DelayedStream() {
      this.source = null;
      this.dataSize = 0;
      this.maxDataSize = 1024 * 1024;
      this.pauseStream = true;
      this._maxDataSizeExceeded = false;
      this._released = false;
      this._bufferedEvents = [];
    }
    util32.inherits(DelayedStream, Stream);
    DelayedStream.create = function(source, options) {
      var delayedStream = new this();
      options = options || {};
      for (var option2 in options) {
        delayedStream[option2] = options[option2];
      }
      delayedStream.source = source;
      var realEmit = source.emit;
      source.emit = function() {
        delayedStream._handleEmit(arguments);
        return realEmit.apply(source, arguments);
      };
      source.on("error", function() {
      });
      if (delayedStream.pauseStream) {
        source.pause();
      }
      return delayedStream;
    };
    Object.defineProperty(DelayedStream.prototype, "readable", {
      configurable: true,
      enumerable: true,
      get: function() {
        return this.source.readable;
      }
    });
    DelayedStream.prototype.setEncoding = function() {
      return this.source.setEncoding.apply(this.source, arguments);
    };
    DelayedStream.prototype.resume = function() {
      if (!this._released) {
        this.release();
      }
      this.source.resume();
    };
    DelayedStream.prototype.pause = function() {
      this.source.pause();
    };
    DelayedStream.prototype.release = function() {
      this._released = true;
      this._bufferedEvents.forEach(function(args) {
        this.emit.apply(this, args);
      }.bind(this));
      this._bufferedEvents = [];
    };
    DelayedStream.prototype.pipe = function() {
      var r2 = Stream.prototype.pipe.apply(this, arguments);
      this.resume();
      return r2;
    };
    DelayedStream.prototype._handleEmit = function(args) {
      if (this._released) {
        this.emit.apply(this, args);
        return;
      }
      if (args[0] === "data") {
        this.dataSize += args[1].length;
        this._checkIfMaxDataSizeExceeded();
      }
      this._bufferedEvents.push(args);
    };
    DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {
      if (this._maxDataSizeExceeded) {
        return;
      }
      if (this.dataSize <= this.maxDataSize) {
        return;
      }
      this._maxDataSizeExceeded = true;
      var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded.";
      this.emit("error", new Error(message));
    };
  }
});
var require_combined_stream = __commonJS2({
  "../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js"(exports2, module2) {
    var util32 = __require("util");
    var Stream = __require("stream").Stream;
    var DelayedStream = require_delayed_stream();
    module2.exports = CombinedStream;
    function CombinedStream() {
      this.writable = false;
      this.readable = true;
      this.dataSize = 0;
      this.maxDataSize = 2 * 1024 * 1024;
      this.pauseStreams = true;
      this._released = false;
      this._streams = [];
      this._currentStream = null;
      this._insideLoop = false;
      this._pendingNext = false;
    }
    util32.inherits(CombinedStream, Stream);
    CombinedStream.create = function(options) {
      var combinedStream = new this();
      options = options || {};
      for (var option2 in options) {
        combinedStream[option2] = options[option2];
      }
      return combinedStream;
    };
    CombinedStream.isStreamLike = function(stream5) {
      return typeof stream5 !== "function" && typeof stream5 !== "string" && typeof stream5 !== "boolean" && typeof stream5 !== "number" && !Buffer.isBuffer(stream5);
    };
    CombinedStream.prototype.append = function(stream5) {
      var isStreamLike = CombinedStream.isStreamLike(stream5);
      if (isStreamLike) {
        if (!(stream5 instanceof DelayedStream)) {
          var newStream = DelayedStream.create(stream5, {
            maxDataSize: Infinity,
            pauseStream: this.pauseStreams
          });
          stream5.on("data", this._checkDataSize.bind(this));
          stream5 = newStream;
        }
        this._handleErrors(stream5);
        if (this.pauseStreams) {
          stream5.pause();
        }
      }
      this._streams.push(stream5);
      return this;
    };
    CombinedStream.prototype.pipe = function(dest, options) {
      Stream.prototype.pipe.call(this, dest, options);
      this.resume();
      return dest;
    };
    CombinedStream.prototype._getNext = function() {
      this._currentStream = null;
      if (this._insideLoop) {
        this._pendingNext = true;
        return;
      }
      this._insideLoop = true;
      try {
        do {
          this._pendingNext = false;
          this._realGetNext();
        } while (this._pendingNext);
      } finally {
        this._insideLoop = false;
      }
    };
    CombinedStream.prototype._realGetNext = function() {
      var stream5 = this._streams.shift();
      if (typeof stream5 == "undefined") {
        this.end();
        return;
      }
      if (typeof stream5 !== "function") {
        this._pipeNext(stream5);
        return;
      }
      var getStream = stream5;
      getStream(function(stream6) {
        var isStreamLike = CombinedStream.isStreamLike(stream6);
        if (isStreamLike) {
          stream6.on("data", this._checkDataSize.bind(this));
          this._handleErrors(stream6);
        }
        this._pipeNext(stream6);
      }.bind(this));
    };
    CombinedStream.prototype._pipeNext = function(stream5) {
      this._currentStream = stream5;
      var isStreamLike = CombinedStream.isStreamLike(stream5);
      if (isStreamLike) {
        stream5.on("end", this._getNext.bind(this));
        stream5.pipe(this, { end: false });
        return;
      }
      var value = stream5;
      this.write(value);
      this._getNext();
    };
    CombinedStream.prototype._handleErrors = function(stream5) {
      var self2 = this;
      stream5.on("error", function(err2) {
        self2._emitError(err2);
      });
    };
    CombinedStream.prototype.write = function(data) {
      this.emit("data", data);
    };
    CombinedStream.prototype.pause = function() {
      if (!this.pauseStreams) {
        return;
      }
      if (this.pauseStreams && this._currentStream && typeof this._currentStream.pause == "function") this._currentStream.pause();
      this.emit("pause");
    };
    CombinedStream.prototype.resume = function() {
      if (!this._released) {
        this._released = true;
        this.writable = true;
        this._getNext();
      }
      if (this.pauseStreams && this._currentStream && typeof this._currentStream.resume == "function") this._currentStream.resume();
      this.emit("resume");
    };
    CombinedStream.prototype.end = function() {
      this._reset();
      this.emit("end");
    };
    CombinedStream.prototype.destroy = function() {
      this._reset();
      this.emit("close");
    };
    CombinedStream.prototype._reset = function() {
      this.writable = false;
      this._streams = [];
      this._currentStream = null;
    };
    CombinedStream.prototype._checkDataSize = function() {
      this._updateDataSize();
      if (this.dataSize <= this.maxDataSize) {
        return;
      }
      var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded.";
      this._emitError(new Error(message));
    };
    CombinedStream.prototype._updateDataSize = function() {
      this.dataSize = 0;
      var self2 = this;
      this._streams.forEach(function(stream5) {
        if (!stream5.dataSize) {
          return;
        }
        self2.dataSize += stream5.dataSize;
      });
      if (this._currentStream && this._currentStream.dataSize) {
        this.dataSize += this._currentStream.dataSize;
      }
    };
    CombinedStream.prototype._emitError = function(err2) {
      this._reset();
      this.emit("error", err2);
    };
  }
});
var require_defer = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js"(exports2, module2) {
    module2.exports = defer;
    function defer(fn3) {
      var nextTick = typeof setImmediate == "function" ? setImmediate : typeof process == "object" && typeof process.nextTick == "function" ? process.nextTick : null;
      if (nextTick) {
        nextTick(fn3);
      } else {
        setTimeout(fn3, 0);
      }
    }
  }
});
var require_async2 = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js"(exports2, module2) {
    var defer = require_defer();
    module2.exports = async;
    function async(callback) {
      var isAsync2 = false;
      defer(function() {
        isAsync2 = true;
      });
      return function async_callback(err2, result) {
        if (isAsync2) {
          callback(err2, result);
        } else {
          defer(function nextTick_callback() {
            callback(err2, result);
          });
        }
      };
    }
  }
});
var require_abort = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js"(exports2, module2) {
    module2.exports = abort;
    function abort(state) {
      Object.keys(state.jobs).forEach(clean.bind(state));
      state.jobs = {};
    }
    function clean(key) {
      if (typeof this.jobs[key] == "function") {
        this.jobs[key]();
      }
    }
  }
});
var require_iterate = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js"(exports2, module2) {
    var async = require_async2();
    var abort = require_abort();
    module2.exports = iterate;
    function iterate(list, iterator2, state, callback) {
      var key = state["keyedList"] ? state["keyedList"][state.index] : state.index;
      state.jobs[key] = runJob(iterator2, key, list[key], function(error, output) {
        if (!(key in state.jobs)) {
          return;
        }
        delete state.jobs[key];
        if (error) {
          abort(state);
        } else {
          state.results[key] = output;
        }
        callback(error, state.results);
      });
    }
    function runJob(iterator2, key, item, callback) {
      var aborter;
      if (iterator2.length == 2) {
        aborter = iterator2(item, async(callback));
      } else {
        aborter = iterator2(item, key, async(callback));
      }
      return aborter;
    }
  }
});
var require_state = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js"(exports2, module2) {
    module2.exports = state;
    function state(list, sortMethod) {
      var isNamedList = !Array.isArray(list), initState = {
        index: 0,
        keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
        jobs: {},
        results: isNamedList ? {} : [],
        size: isNamedList ? Object.keys(list).length : list.length
      };
      if (sortMethod) {
        initState.keyedList.sort(isNamedList ? sortMethod : function(a2, b2) {
          return sortMethod(list[a2], list[b2]);
        });
      }
      return initState;
    }
  }
});
var require_terminator = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js"(exports2, module2) {
    var abort = require_abort();
    var async = require_async2();
    module2.exports = terminator;
    function terminator(callback) {
      if (!Object.keys(this.jobs).length) {
        return;
      }
      this.index = this.size;
      abort(this);
      async(callback)(null, this.results);
    }
  }
});
var require_parallel = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js"(exports2, module2) {
    var iterate = require_iterate();
    var initState = require_state();
    var terminator = require_terminator();
    module2.exports = parallel;
    function parallel(list, iterator2, callback) {
      var state = initState(list);
      while (state.index < (state["keyedList"] || list).length) {
        iterate(list, iterator2, state, function(error, result) {
          if (error) {
            callback(error, result);
            return;
          }
          if (Object.keys(state.jobs).length === 0) {
            callback(null, state.results);
            return;
          }
        });
        state.index++;
      }
      return terminator.bind(state, callback);
    }
  }
});
var require_serialOrdered = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js"(exports2, module2) {
    var iterate = require_iterate();
    var initState = require_state();
    var terminator = require_terminator();
    module2.exports = serialOrdered;
    module2.exports.ascending = ascending;
    module2.exports.descending = descending;
    function serialOrdered(list, iterator2, sortMethod, callback) {
      var state = initState(list, sortMethod);
      iterate(list, iterator2, state, function iteratorHandler(error, result) {
        if (error) {
          callback(error, result);
          return;
        }
        state.index++;
        if (state.index < (state["keyedList"] || list).length) {
          iterate(list, iterator2, state, iteratorHandler);
          return;
        }
        callback(null, state.results);
      });
      return terminator.bind(state, callback);
    }
    function ascending(a2, b2) {
      return a2 < b2 ? -1 : a2 > b2 ? 1 : 0;
    }
    function descending(a2, b2) {
      return -1 * ascending(a2, b2);
    }
  }
});
var require_serial = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js"(exports2, module2) {
    var serialOrdered = require_serialOrdered();
    module2.exports = serial;
    function serial(list, iterator2, callback) {
      return serialOrdered(list, iterator2, null, callback);
    }
  }
});
var require_asynckit = __commonJS2({
  "../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js"(exports2, module2) {
    module2.exports = {
      parallel: require_parallel(),
      serial: require_serial(),
      serialOrdered: require_serialOrdered()
    };
  }
});
var require_es_object_atoms = __commonJS2({
  "../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js"(exports2, module2) {
    "use strict";
    module2.exports = Object;
  }
});
var require_es_errors = __commonJS2({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js"(exports2, module2) {
    "use strict";
    module2.exports = Error;
  }
});
var require_eval = __commonJS2({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js"(exports2, module2) {
    "use strict";
    module2.exports = EvalError;
  }
});
var require_range = __commonJS2({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js"(exports2, module2) {
    "use strict";
    module2.exports = RangeError;
  }
});
var require_ref = __commonJS2({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js"(exports2, module2) {
    "use strict";
    module2.exports = ReferenceError;
  }
});
var require_syntax = __commonJS2({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js"(exports2, module2) {
    "use strict";
    module2.exports = SyntaxError;
  }
});
var require_type = __commonJS2({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js"(exports2, module2) {
    "use strict";
    module2.exports = TypeError;
  }
});
var require_uri = __commonJS2({
  "../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js"(exports2, module2) {
    "use strict";
    module2.exports = URIError;
  }
});
var require_abs = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js"(exports2, module2) {
    "use strict";
    module2.exports = Math.abs;
  }
});
var require_floor = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js"(exports2, module2) {
    "use strict";
    module2.exports = Math.floor;
  }
});
var require_max = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js"(exports2, module2) {
    "use strict";
    module2.exports = Math.max;
  }
});
var require_min = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js"(exports2, module2) {
    "use strict";
    module2.exports = Math.min;
  }
});
var require_pow = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js"(exports2, module2) {
    "use strict";
    module2.exports = Math.pow;
  }
});
var require_round = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js"(exports2, module2) {
    "use strict";
    module2.exports = Math.round;
  }
});
var require_isNaN = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js"(exports2, module2) {
    "use strict";
    module2.exports = Number.isNaN || function isNaN2(a2) {
      return a2 !== a2;
    };
  }
});
var require_sign = __commonJS2({
  "../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js"(exports2, module2) {
    "use strict";
    var $isNaN = require_isNaN();
    module2.exports = function sign(number) {
      if ($isNaN(number) || number === 0) {
        return number;
      }
      return number < 0 ? -1 : 1;
    };
  }
});
var require_gOPD = __commonJS2({
  "../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js"(exports2, module2) {
    "use strict";
    module2.exports = Object.getOwnPropertyDescriptor;
  }
});
var require_gopd = __commonJS2({
  "../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js"(exports2, module2) {
    "use strict";
    var $gOPD = require_gOPD();
    if ($gOPD) {
      try {
        $gOPD([], "length");
      } catch (e2) {
        $gOPD = null;
      }
    }
    module2.exports = $gOPD;
  }
});
var require_es_define_property = __commonJS2({
  "../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js"(exports2, module2) {
    "use strict";
    var $defineProperty = Object.defineProperty || false;
    if ($defineProperty) {
      try {
        $defineProperty({}, "a", { value: 1 });
      } catch (e2) {
        $defineProperty = false;
      }
    }
    module2.exports = $defineProperty;
  }
});
var require_shams = __commonJS2({
  "../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js"(exports2, module2) {
    "use strict";
    module2.exports = function hasSymbols() {
      if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
        return false;
      }
      if (typeof Symbol.iterator === "symbol") {
        return true;
      }
      var obj = {};
      var sym = 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 _3 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;
    };
  }
});
var require_has_symbols = __commonJS2({
  "../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js"(exports2, module2) {
    "use strict";
    var origSymbol = typeof Symbol !== "undefined" && Symbol;
    var hasSymbolSham = require_shams();
    module2.exports = function hasNativeSymbols() {
      if (typeof origSymbol !== "function") {
        return false;
      }
      if (typeof Symbol !== "function") {
        return false;
      }
      if (typeof origSymbol("foo") !== "symbol") {
        return false;
      }
      if (typeof Symbol("bar") !== "symbol") {
        return false;
      }
      return hasSymbolSham();
    };
  }
});
var require_Reflect_getPrototypeOf = __commonJS2({
  "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js"(exports2, module2) {
    "use strict";
    module2.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
  }
});
var require_Object_getPrototypeOf = __commonJS2({
  "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js"(exports2, module2) {
    "use strict";
    var $Object = require_es_object_atoms();
    module2.exports = $Object.getPrototypeOf || null;
  }
});
var require_implementation = __commonJS2({
  "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js"(exports2, module2) {
    "use strict";
    var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
    var toStr = Object.prototype.toString;
    var max2 = Math.max;
    var funcType = "[object Function]";
    var concatty = function concatty2(a2, b2) {
      var arr = [];
      for (var i22 = 0; i22 < a2.length; i22 += 1) {
        arr[i22] = a2[i22];
      }
      for (var j2 = 0; j2 < b2.length; j2 += 1) {
        arr[j2 + a2.length] = b2[j2];
      }
      return arr;
    };
    var slicy = function slicy2(arrLike, offset) {
      var arr = [];
      for (var i22 = offset || 0, j2 = 0; i22 < arrLike.length; i22 += 1, j2 += 1) {
        arr[j2] = arrLike[i22];
      }
      return arr;
    };
    var joiny = function(arr, joiner) {
      var str = "";
      for (var i22 = 0; i22 < arr.length; i22 += 1) {
        str += arr[i22];
        if (i22 + 1 < arr.length) {
          str += joiner;
        }
      }
      return str;
    };
    module2.exports = function bind2(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 = 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)
        );
      };
      var boundLength = max2(0, target.length - args.length);
      var boundArgs = [];
      for (var i22 = 0; i22 < boundLength; i22++) {
        boundArgs[i22] = "$" + i22;
      }
      bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
      if (target.prototype) {
        var Empty = function Empty2() {
        };
        Empty.prototype = target.prototype;
        bound.prototype = new Empty();
        Empty.prototype = null;
      }
      return bound;
    };
  }
});
var require_function_bind = __commonJS2({
  "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js"(exports2, module2) {
    "use strict";
    var implementation = require_implementation();
    module2.exports = Function.prototype.bind || implementation;
  }
});
var require_functionCall = __commonJS2({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js"(exports2, module2) {
    "use strict";
    module2.exports = Function.prototype.call;
  }
});
var require_functionApply = __commonJS2({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js"(exports2, module2) {
    "use strict";
    module2.exports = Function.prototype.apply;
  }
});
var require_reflectApply = __commonJS2({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js"(exports2, module2) {
    "use strict";
    module2.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
  }
});
var require_actualApply = __commonJS2({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js"(exports2, module2) {
    "use strict";
    var bind2 = require_function_bind();
    var $apply = require_functionApply();
    var $call = require_functionCall();
    var $reflectApply = require_reflectApply();
    module2.exports = $reflectApply || bind2.call($call, $apply);
  }
});
var require_call_bind_apply_helpers = __commonJS2({
  "../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js"(exports2, module2) {
    "use strict";
    var bind2 = require_function_bind();
    var $TypeError = require_type();
    var $call = require_functionCall();
    var $actualApply = require_actualApply();
    module2.exports = function callBindBasic(args) {
      if (args.length < 1 || typeof args[0] !== "function") {
        throw new $TypeError("a function is required");
      }
      return $actualApply(bind2, $call, args);
    };
  }
});
var require_get2 = __commonJS2({
  "../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js"(exports2, module2) {
    "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 (e2) {
      if (!e2 || typeof e2 !== "object" || !("code" in e2) || e2.code !== "ERR_PROTO_ACCESS") {
        throw e2;
      }
    }
    var desc = !!hasProtoAccessor && gOPD && gOPD(
      Object.prototype,
      /** @type {keyof typeof Object.prototype} */
      "__proto__"
    );
    var $Object = Object;
    var $getPrototypeOf = $Object.getPrototypeOf;
    module2.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? (
      /** @type {import('./get')} */
      (function getDunder(value) {
        return $getPrototypeOf(value == null ? value : $Object(value));
      })
    ) : false;
  }
});
var require_get_proto = __commonJS2({
  "../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js"(exports2, module2) {
    "use strict";
    var reflectGetProto = require_Reflect_getPrototypeOf();
    var originalGetProto = require_Object_getPrototypeOf();
    var getDunderProto = require_get2();
    module2.exports = reflectGetProto ? function getProto(O3) {
      return reflectGetProto(O3);
    } : originalGetProto ? function getProto(O3) {
      if (!O3 || typeof O3 !== "object" && typeof O3 !== "function") {
        throw new TypeError("getProto: not an object");
      }
      return originalGetProto(O3);
    } : getDunderProto ? function getProto(O3) {
      return getDunderProto(O3);
    } : null;
  }
});
var require_hasown = __commonJS2({
  "../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js"(exports2, module2) {
    "use strict";
    var call = Function.prototype.call;
    var $hasOwn = Object.prototype.hasOwnProperty;
    var bind2 = require_function_bind();
    module2.exports = bind2.call(call, $hasOwn);
  }
});
var require_get_intrinsic = __commonJS2({
  "../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js"(exports2, module2) {
    "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 max2 = require_max();
    var min = require_min();
    var pow = require_pow();
    var round = require_round();
    var sign = require_sign();
    var $Function = Function;
    var getEvalledConstructor = function(expressionSyntax) {
      try {
        return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
      } catch (e2) {
      }
    };
    var $gOPD = require_gopd();
    var $defineProperty = require_es_define_property();
    var throwTypeError = function() {
      throw new $TypeError();
    };
    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%": max2,
      "%Math.min%": min,
      "%Math.pow%": pow,
      "%Math.round%": round,
      "%Math.sign%": sign,
      "%Reflect.getPrototypeOf%": $ReflectGPO
    };
    if (getProto) {
      try {
        null.error;
      } catch (e2) {
        errorProto = getProto(getProto(e2));
        INTRINSICS["%Error.prototype%"] = errorProto;
      }
    }
    var errorProto;
    var doEval = function doEval2(name2) {
      var value;
      if (name2 === "%AsyncFunction%") {
        value = getEvalledConstructor("async function () {}");
      } else if (name2 === "%GeneratorFunction%") {
        value = getEvalledConstructor("function* () {}");
      } else if (name2 === "%AsyncGeneratorFunction%") {
        value = getEvalledConstructor("async function* () {}");
      } else if (name2 === "%AsyncGenerator%") {
        var fn3 = doEval2("%AsyncGeneratorFunction%");
        if (fn3) {
          value = fn3.prototype;
        }
      } else if (name2 === "%AsyncIteratorPrototype%") {
        var gen = doEval2("%AsyncGenerator%");
        if (gen && getProto) {
          value = getProto(gen.prototype);
        }
      }
      INTRINSICS[name2] = value;
      return value;
    };
    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 bind2 = require_function_bind();
    var hasOwn = require_hasown();
    var $concat = bind2.call($call, Array.prototype.concat);
    var $spliceApply = bind2.call($apply, Array.prototype.splice);
    var $replace = bind2.call($call, String.prototype.replace);
    var $strSlice = bind2.call($call, String.prototype.slice);
    var $exec = bind2.call($call, RegExp.prototype.exec);
    var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
    var reEscapeChar = /\\(\\)?/g;
    var stringToPath = 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;
    };
    var getBaseIntrinsic = function getBaseIntrinsic2(name2, allowMissing) {
      var intrinsicName = name2;
      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 " + name2 + " exists, but is not available. Please file an issue!");
        }
        return {
          alias,
          name: intrinsicName,
          value
        };
      }
      throw new $SyntaxError("intrinsic " + name2 + " does not exist!");
    };
    module2.exports = function GetIntrinsic(name2, allowMissing) {
      if (typeof name2 !== "string" || name2.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(/^%?[^%]*%?$/, name2) === null) {
        throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
      }
      var parts = stringToPath(name2);
      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 i22 = 1, isOwn = true; i22 < parts.length; i22 += 1) {
        var part = parts[i22];
        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 " + name2 + " exists, but the property is not available.");
            }
            return void undefined2;
          }
          if ($gOPD && i22 + 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;
    };
  }
});
var require_shams2 = __commonJS2({
  "../../node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js"(exports2, module2) {
    "use strict";
    var hasSymbols = require_shams();
    module2.exports = function hasToStringTagShams() {
      return hasSymbols() && !!Symbol.toStringTag;
    };
  }
});
var require_es_set_tostringtag = __commonJS2({
  "../../node_modules/.pnpm/es-set-tostringtag@2.1.0/node_modules/es-set-tostringtag/index.js"(exports2, module2) {
    "use strict";
    var GetIntrinsic = require_get_intrinsic();
    var $defineProperty = GetIntrinsic("%Object.defineProperty%", true);
    var hasToStringTag = require_shams2()();
    var hasOwn = require_hasown();
    var $TypeError = require_type();
    var toStringTag2 = hasToStringTag ? Symbol.toStringTag : null;
    module2.exports = function setToStringTag(object, value) {
      var overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;
      var nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;
      if (typeof overrideIfSet !== "undefined" && typeof overrideIfSet !== "boolean" || typeof nonConfigurable !== "undefined" && typeof nonConfigurable !== "boolean") {
        throw new $TypeError("if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans");
      }
      if (toStringTag2 && (overrideIfSet || !hasOwn(object, toStringTag2))) {
        if ($defineProperty) {
          $defineProperty(object, toStringTag2, {
            configurable: !nonConfigurable,
            enumerable: false,
            value,
            writable: false
          });
        } else {
          object[toStringTag2] = value;
        }
      }
    };
  }
});
var require_populate = __commonJS2({
  "../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/populate.js"(exports2, module2) {
    "use strict";
    module2.exports = function(dst, src) {
      Object.keys(src).forEach(function(prop) {
        dst[prop] = dst[prop] || src[prop];
      });
      return dst;
    };
  }
});
var require_form_data = __commonJS2({
  "../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/form_data.js"(exports2, module2) {
    "use strict";
    var CombinedStream = require_combined_stream();
    var util32 = __require("util");
    var path22 = __require("path");
    var http6 = __require("http");
    var https5 = __require("https");
    var parseUrl = __require("url").parse;
    var fs32 = __require("fs");
    var Stream = __require("stream").Stream;
    var crypto4 = __require("crypto");
    var mime = require_mime_types();
    var asynckit = require_asynckit();
    var setToStringTag = require_es_set_tostringtag();
    var hasOwn = require_hasown();
    var populate = require_populate();
    function FormData3(options) {
      if (!(this instanceof FormData3)) {
        return new FormData3(options);
      }
      this._overheadLength = 0;
      this._valueLength = 0;
      this._valuesToMeasure = [];
      CombinedStream.call(this);
      options = options || {};
      for (var option2 in options) {
        this[option2] = options[option2];
      }
    }
    util32.inherits(FormData3, CombinedStream);
    FormData3.LINE_BREAK = "\r\n";
    FormData3.DEFAULT_CONTENT_TYPE = "application/octet-stream";
    FormData3.prototype.append = function(field, value, options) {
      options = options || {};
      if (typeof options === "string") {
        options = { filename: options };
      }
      var append2 = CombinedStream.prototype.append.bind(this);
      if (typeof value === "number" || value == null) {
        value = String(value);
      }
      if (Array.isArray(value)) {
        this._error(new Error("Arrays are not supported."));
        return;
      }
      var header2 = this._multiPartHeader(field, value, options);
      var footer2 = this._multiPartFooter();
      append2(header2);
      append2(value);
      append2(footer2);
      this._trackLength(header2, value, options);
    };
    FormData3.prototype._trackLength = function(header2, value, options) {
      var valueLength = 0;
      if (options.knownLength != null) {
        valueLength += Number(options.knownLength);
      } else if (Buffer.isBuffer(value)) {
        valueLength = value.length;
      } else if (typeof value === "string") {
        valueLength = Buffer.byteLength(value);
      }
      this._valueLength += valueLength;
      this._overheadLength += Buffer.byteLength(header2) + FormData3.LINE_BREAK.length;
      if (!value || !value.path && !(value.readable && hasOwn(value, "httpVersion")) && !(value instanceof Stream)) {
        return;
      }
      if (!options.knownLength) {
        this._valuesToMeasure.push(value);
      }
    };
    FormData3.prototype._lengthRetriever = function(value, callback) {
      if (hasOwn(value, "fd")) {
        if (value.end != void 0 && value.end != Infinity && value.start != void 0) {
          callback(null, value.end + 1 - (value.start ? value.start : 0));
        } else {
          fs32.stat(value.path, function(err2, stat) {
            if (err2) {
              callback(err2);
              return;
            }
            var fileSize = stat.size - (value.start ? value.start : 0);
            callback(null, fileSize);
          });
        }
      } else if (hasOwn(value, "httpVersion")) {
        callback(null, Number(value.headers["content-length"]));
      } else if (hasOwn(value, "httpModule")) {
        value.on("response", function(response) {
          value.pause();
          callback(null, Number(response.headers["content-length"]));
        });
        value.resume();
      } else {
        callback("Unknown stream");
      }
    };
    FormData3.prototype._multiPartHeader = function(field, value, options) {
      if (typeof options.header === "string") {
        return options.header;
      }
      var contentDisposition = this._getContentDisposition(value, options);
      var contentType = this._getContentType(value, options);
      var contents = "";
      var headers = {
        // add custom disposition as third element or keep it two elements if not
        "Content-Disposition": ["form-data", 'name="' + field + '"'].concat(contentDisposition || []),
        // if no content type. allow it to be empty array
        "Content-Type": [].concat(contentType || [])
      };
      if (typeof options.header === "object") {
        populate(headers, options.header);
      }
      var header2;
      for (var prop in headers) {
        if (hasOwn(headers, prop)) {
          header2 = headers[prop];
          if (header2 == null) {
            continue;
          }
          if (!Array.isArray(header2)) {
            header2 = [header2];
          }
          if (header2.length) {
            contents += prop + ": " + header2.join("; ") + FormData3.LINE_BREAK;
          }
        }
      }
      return "--" + this.getBoundary() + FormData3.LINE_BREAK + contents + FormData3.LINE_BREAK;
    };
    FormData3.prototype._getContentDisposition = function(value, options) {
      var filename;
      if (typeof options.filepath === "string") {
        filename = path22.normalize(options.filepath).replace(/\\/g, "/");
      } else if (options.filename || value && (value.name || value.path)) {
        filename = path22.basename(options.filename || value && (value.name || value.path));
      } else if (value && value.readable && hasOwn(value, "httpVersion")) {
        filename = path22.basename(value.client._httpMessage.path || "");
      }
      if (filename) {
        return 'filename="' + filename + '"';
      }
    };
    FormData3.prototype._getContentType = function(value, options) {
      var contentType = options.contentType;
      if (!contentType && value && value.name) {
        contentType = mime.lookup(value.name);
      }
      if (!contentType && value && value.path) {
        contentType = mime.lookup(value.path);
      }
      if (!contentType && value && value.readable && hasOwn(value, "httpVersion")) {
        contentType = value.headers["content-type"];
      }
      if (!contentType && (options.filepath || options.filename)) {
        contentType = mime.lookup(options.filepath || options.filename);
      }
      if (!contentType && value && typeof value === "object") {
        contentType = FormData3.DEFAULT_CONTENT_TYPE;
      }
      return contentType;
    };
    FormData3.prototype._multiPartFooter = function() {
      return function(next) {
        var footer2 = FormData3.LINE_BREAK;
        var lastPart = this._streams.length === 0;
        if (lastPart) {
          footer2 += this._lastBoundary();
        }
        next(footer2);
      }.bind(this);
    };
    FormData3.prototype._lastBoundary = function() {
      return "--" + this.getBoundary() + "--" + FormData3.LINE_BREAK;
    };
    FormData3.prototype.getHeaders = function(userHeaders) {
      var header2;
      var formHeaders = {
        "content-type": "multipart/form-data; boundary=" + this.getBoundary()
      };
      for (header2 in userHeaders) {
        if (hasOwn(userHeaders, header2)) {
          formHeaders[header2.toLowerCase()] = userHeaders[header2];
        }
      }
      return formHeaders;
    };
    FormData3.prototype.setBoundary = function(boundary) {
      if (typeof boundary !== "string") {
        throw new TypeError("FormData boundary must be a string");
      }
      this._boundary = boundary;
    };
    FormData3.prototype.getBoundary = function() {
      if (!this._boundary) {
        this._generateBoundary();
      }
      return this._boundary;
    };
    FormData3.prototype.getBuffer = function() {
      var dataBuffer = new Buffer.alloc(0);
      var boundary = this.getBoundary();
      for (var i22 = 0, len = this._streams.length; i22 < len; i22++) {
        if (typeof this._streams[i22] !== "function") {
          if (Buffer.isBuffer(this._streams[i22])) {
            dataBuffer = Buffer.concat([dataBuffer, this._streams[i22]]);
          } else {
            dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i22])]);
          }
          if (typeof this._streams[i22] !== "string" || this._streams[i22].substring(2, boundary.length + 2) !== boundary) {
            dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData3.LINE_BREAK)]);
          }
        }
      }
      return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);
    };
    FormData3.prototype._generateBoundary = function() {
      this._boundary = "--------------------------" + crypto4.randomBytes(12).toString("hex");
    };
    FormData3.prototype.getLengthSync = function() {
      var knownLength = this._overheadLength + this._valueLength;
      if (this._streams.length) {
        knownLength += this._lastBoundary().length;
      }
      if (!this.hasKnownLength()) {
        this._error(new Error("Cannot calculate proper length in synchronous way."));
      }
      return knownLength;
    };
    FormData3.prototype.hasKnownLength = function() {
      var hasKnownLength = true;
      if (this._valuesToMeasure.length) {
        hasKnownLength = false;
      }
      return hasKnownLength;
    };
    FormData3.prototype.getLength = function(cb) {
      var knownLength = this._overheadLength + this._valueLength;
      if (this._streams.length) {
        knownLength += this._lastBoundary().length;
      }
      if (!this._valuesToMeasure.length) {
        process.nextTick(cb.bind(this, null, knownLength));
        return;
      }
      asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err2, values) {
        if (err2) {
          cb(err2);
          return;
        }
        values.forEach(function(length) {
          knownLength += length;
        });
        cb(null, knownLength);
      });
    };
    FormData3.prototype.submit = function(params, cb) {
      var request;
      var options;
      var defaults42 = { method: "post" };
      if (typeof params === "string") {
        params = parseUrl(params);
        options = populate({
          port: params.port,
          path: params.pathname,
          host: params.hostname,
          protocol: params.protocol
        }, defaults42);
      } else {
        options = populate(params, defaults42);
        if (!options.port) {
          options.port = options.protocol === "https:" ? 443 : 80;
        }
      }
      options.headers = this.getHeaders(params.headers);
      if (options.protocol === "https:") {
        request = https5.request(options);
      } else {
        request = http6.request(options);
      }
      this.getLength(function(err2, length) {
        if (err2 && err2 !== "Unknown stream") {
          this._error(err2);
          return;
        }
        if (length) {
          request.setHeader("Content-Length", length);
        }
        this.pipe(request);
        if (cb) {
          var onResponse2;
          var callback = function(error, responce) {
            request.removeListener("error", callback);
            request.removeListener("response", onResponse2);
            return cb.call(this, error, responce);
          };
          onResponse2 = callback.bind(this, null);
          request.on("error", callback);
          request.on("response", onResponse2);
        }
      }.bind(this));
      return request;
    };
    FormData3.prototype._error = function(err2) {
      if (!this.error) {
        this.error = err2;
        this.pause();
        this.emit("error", err2);
      }
    };
    FormData3.prototype.toString = function() {
      return "[object FormData]";
    };
    setToStringTag(FormData3.prototype, "FormData");
    module2.exports = FormData3;
  }
});
var require_proxy_from_env = __commonJS2({
  "../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js"(exports2) {
    "use strict";
    var parseUrl = __require("url").parse;
    var DEFAULT_PORTS = {
      ftp: 21,
      gopher: 70,
      http: 80,
      https: 443,
      ws: 80,
      wss: 443
    };
    var stringEndsWith = String.prototype.endsWith || function(s2) {
      return s2.length <= this.length && this.indexOf(s2, this.length - s2.length) !== -1;
    };
    function getProxyForUrl(url2) {
      var parsedUrl = typeof url2 === "string" ? parseUrl(url2) : url2 || {};
      var proto = parsedUrl.protocol;
      var hostname = parsedUrl.host;
      var port = parsedUrl.port;
      if (typeof hostname !== "string" || !hostname || typeof proto !== "string") {
        return "";
      }
      proto = proto.split(":", 1)[0];
      hostname = hostname.replace(/:\d*$/, "");
      port = parseInt(port) || DEFAULT_PORTS[proto] || 0;
      if (!shouldProxy(hostname, port)) {
        return "";
      }
      var proxy = getEnv("npm_config_" + proto + "_proxy") || getEnv(proto + "_proxy") || getEnv("npm_config_proxy") || getEnv("all_proxy");
      if (proxy && proxy.indexOf("://") === -1) {
        proxy = proto + "://" + proxy;
      }
      return proxy;
    }
    function shouldProxy(hostname, port) {
      var NO_PROXY = (getEnv("npm_config_no_proxy") || getEnv("no_proxy")).toLowerCase();
      if (!NO_PROXY) {
        return true;
      }
      if (NO_PROXY === "*") {
        return false;
      }
      return NO_PROXY.split(/[,\s]/).every(function(proxy) {
        if (!proxy) {
          return true;
        }
        var parsedProxy = proxy.match(/^(.+):(\d+)$/);
        var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;
        var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;
        if (parsedProxyPort && parsedProxyPort !== port) {
          return true;
        }
        if (!/^[.*]/.test(parsedProxyHostname)) {
          return hostname !== parsedProxyHostname;
        }
        if (parsedProxyHostname.charAt(0) === "*") {
          parsedProxyHostname = parsedProxyHostname.slice(1);
        }
        return !stringEndsWith.call(hostname, parsedProxyHostname);
      });
    }
    function getEnv(key) {
      return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || "";
    }
    exports2.getProxyForUrl = getProxyForUrl;
  }
});
var require_debug2 = __commonJS2({
  "../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/debug.js"(exports2, module2) {
    var debug2;
    module2.exports = function() {
      if (!debug2) {
        try {
          debug2 = require_src()("follow-redirects");
        } catch (error) {
        }
        if (typeof debug2 !== "function") {
          debug2 = function() {
          };
        }
      }
      debug2.apply(null, arguments);
    };
  }
});
var require_follow_redirects = __commonJS2({
  "../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/index.js"(exports2, module2) {
    var url2 = __require("url");
    var URL5 = url2.URL;
    var http6 = __require("http");
    var https5 = __require("https");
    var Writable2 = __require("stream").Writable;
    var assert3 = __require("assert");
    var debug2 = require_debug2();
    (function detectUnsupportedEnvironment() {
      var looksLikeNode = typeof process !== "undefined";
      var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined";
      var looksLikeV8 = isFunction5(Error.captureStackTrace);
      if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {
        console.warn("The follow-redirects package should be excluded from browser builds.");
      }
    })();
    var useNativeURL = false;
    try {
      assert3(new URL5(""));
    } catch (error) {
      useNativeURL = error.code === "ERR_INVALID_URL";
    }
    var preservedUrlFields = [
      "auth",
      "host",
      "hostname",
      "href",
      "path",
      "pathname",
      "port",
      "protocol",
      "query",
      "search",
      "hash"
    ];
    var events = ["abort", "aborted", "connect", "error", "socket", "timeout"];
    var eventHandlers = /* @__PURE__ */ Object.create(null);
    events.forEach(function(event) {
      eventHandlers[event] = function(arg1, arg2, arg3) {
        this._redirectable.emit(event, arg1, arg2, arg3);
      };
    });
    var InvalidUrlError = createErrorType(
      "ERR_INVALID_URL",
      "Invalid URL",
      TypeError
    );
    var RedirectionError = createErrorType(
      "ERR_FR_REDIRECTION_FAILURE",
      "Redirected request failed"
    );
    var TooManyRedirectsError = createErrorType(
      "ERR_FR_TOO_MANY_REDIRECTS",
      "Maximum number of redirects exceeded",
      RedirectionError
    );
    var MaxBodyLengthExceededError = createErrorType(
      "ERR_FR_MAX_BODY_LENGTH_EXCEEDED",
      "Request body larger than maxBodyLength limit"
    );
    var WriteAfterEndError = createErrorType(
      "ERR_STREAM_WRITE_AFTER_END",
      "write after end"
    );
    var destroy = Writable2.prototype.destroy || noop5;
    function RedirectableRequest(options, responseCallback) {
      Writable2.call(this);
      this._sanitizeOptions(options);
      this._options = options;
      this._ended = false;
      this._ending = false;
      this._redirectCount = 0;
      this._redirects = [];
      this._requestBodyLength = 0;
      this._requestBodyBuffers = [];
      if (responseCallback) {
        this.on("response", responseCallback);
      }
      var self2 = this;
      this._onNativeResponse = function(response) {
        try {
          self2._processResponse(response);
        } catch (cause) {
          self2.emit("error", cause instanceof RedirectionError ? cause : new RedirectionError({ cause }));
        }
      };
      this._performRequest();
    }
    RedirectableRequest.prototype = Object.create(Writable2.prototype);
    RedirectableRequest.prototype.abort = function() {
      destroyRequest(this._currentRequest);
      this._currentRequest.abort();
      this.emit("abort");
    };
    RedirectableRequest.prototype.destroy = function(error) {
      destroyRequest(this._currentRequest, error);
      destroy.call(this, error);
      return this;
    };
    RedirectableRequest.prototype.write = function(data, encoding, callback) {
      if (this._ending) {
        throw new WriteAfterEndError();
      }
      if (!isString3(data) && !isBuffer3(data)) {
        throw new TypeError("data should be a string, Buffer or Uint8Array");
      }
      if (isFunction5(encoding)) {
        callback = encoding;
        encoding = null;
      }
      if (data.length === 0) {
        if (callback) {
          callback();
        }
        return;
      }
      if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {
        this._requestBodyLength += data.length;
        this._requestBodyBuffers.push({ data, encoding });
        this._currentRequest.write(data, encoding, callback);
      } else {
        this.emit("error", new MaxBodyLengthExceededError());
        this.abort();
      }
    };
    RedirectableRequest.prototype.end = function(data, encoding, callback) {
      if (isFunction5(data)) {
        callback = data;
        data = encoding = null;
      } else if (isFunction5(encoding)) {
        callback = encoding;
        encoding = null;
      }
      if (!data) {
        this._ended = this._ending = true;
        this._currentRequest.end(null, null, callback);
      } else {
        var self2 = this;
        var currentRequest = this._currentRequest;
        this.write(data, encoding, function() {
          self2._ended = true;
          currentRequest.end(null, null, callback);
        });
        this._ending = true;
      }
    };
    RedirectableRequest.prototype.setHeader = function(name2, value) {
      this._options.headers[name2] = value;
      this._currentRequest.setHeader(name2, value);
    };
    RedirectableRequest.prototype.removeHeader = function(name2) {
      delete this._options.headers[name2];
      this._currentRequest.removeHeader(name2);
    };
    RedirectableRequest.prototype.setTimeout = function(msecs, callback) {
      var self2 = this;
      function destroyOnTimeout(socket) {
        socket.setTimeout(msecs);
        socket.removeListener("timeout", socket.destroy);
        socket.addListener("timeout", socket.destroy);
      }
      function startTimer(socket) {
        if (self2._timeout) {
          clearTimeout(self2._timeout);
        }
        self2._timeout = setTimeout(function() {
          self2.emit("timeout");
          clearTimer();
        }, msecs);
        destroyOnTimeout(socket);
      }
      function clearTimer() {
        if (self2._timeout) {
          clearTimeout(self2._timeout);
          self2._timeout = null;
        }
        self2.removeListener("abort", clearTimer);
        self2.removeListener("error", clearTimer);
        self2.removeListener("response", clearTimer);
        self2.removeListener("close", clearTimer);
        if (callback) {
          self2.removeListener("timeout", callback);
        }
        if (!self2.socket) {
          self2._currentRequest.removeListener("socket", startTimer);
        }
      }
      if (callback) {
        this.on("timeout", callback);
      }
      if (this.socket) {
        startTimer(this.socket);
      } else {
        this._currentRequest.once("socket", startTimer);
      }
      this.on("socket", destroyOnTimeout);
      this.on("abort", clearTimer);
      this.on("error", clearTimer);
      this.on("response", clearTimer);
      this.on("close", clearTimer);
      return this;
    };
    [
      "flushHeaders",
      "getHeader",
      "setNoDelay",
      "setSocketKeepAlive"
    ].forEach(function(method) {
      RedirectableRequest.prototype[method] = function(a2, b2) {
        return this._currentRequest[method](a2, b2);
      };
    });
    ["aborted", "connection", "socket"].forEach(function(property) {
      Object.defineProperty(RedirectableRequest.prototype, property, {
        get: function() {
          return this._currentRequest[property];
        }
      });
    });
    RedirectableRequest.prototype._sanitizeOptions = function(options) {
      if (!options.headers) {
        options.headers = {};
      }
      if (options.host) {
        if (!options.hostname) {
          options.hostname = options.host;
        }
        delete options.host;
      }
      if (!options.pathname && options.path) {
        var searchPos = options.path.indexOf("?");
        if (searchPos < 0) {
          options.pathname = options.path;
        } else {
          options.pathname = options.path.substring(0, searchPos);
          options.search = options.path.substring(searchPos);
        }
      }
    };
    RedirectableRequest.prototype._performRequest = function() {
      var protocol = this._options.protocol;
      var nativeProtocol = this._options.nativeProtocols[protocol];
      if (!nativeProtocol) {
        throw new TypeError("Unsupported protocol " + protocol);
      }
      if (this._options.agents) {
        var scheme = protocol.slice(0, -1);
        this._options.agent = this._options.agents[scheme];
      }
      var request = this._currentRequest = nativeProtocol.request(this._options, this._onNativeResponse);
      request._redirectable = this;
      for (var event of events) {
        request.on(event, eventHandlers[event]);
      }
      this._currentUrl = /^\//.test(this._options.path) ? url2.format(this._options) : (
        // When making a request to a proxy, […]
        // a client MUST send the target URI in absolute-form […].
        this._options.path
      );
      if (this._isRedirect) {
        var i22 = 0;
        var self2 = this;
        var buffers = this._requestBodyBuffers;
        (function writeNext(error) {
          if (request === self2._currentRequest) {
            if (error) {
              self2.emit("error", error);
            } else if (i22 < buffers.length) {
              var buffer = buffers[i22++];
              if (!request.finished) {
                request.write(buffer.data, buffer.encoding, writeNext);
              }
            } else if (self2._ended) {
              request.end();
            }
          }
        })();
      }
    };
    RedirectableRequest.prototype._processResponse = function(response) {
      var statusCode = response.statusCode;
      if (this._options.trackRedirects) {
        this._redirects.push({
          url: this._currentUrl,
          headers: response.headers,
          statusCode
        });
      }
      var location = response.headers.location;
      if (!location || this._options.followRedirects === false || statusCode < 300 || statusCode >= 400) {
        response.responseUrl = this._currentUrl;
        response.redirects = this._redirects;
        this.emit("response", response);
        this._requestBodyBuffers = [];
        return;
      }
      destroyRequest(this._currentRequest);
      response.destroy();
      if (++this._redirectCount > this._options.maxRedirects) {
        throw new TooManyRedirectsError();
      }
      var requestHeaders;
      var beforeRedirect2 = this._options.beforeRedirect;
      if (beforeRedirect2) {
        requestHeaders = Object.assign({
          // The Host header was set by nativeProtocol.request
          Host: response.req.getHeader("host")
        }, this._options.headers);
      }
      var method = this._options.method;
      if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || // RFC7231§6.4.4: The 303 (See Other) status code indicates that
      // the server is redirecting the user agent to a different resource […]
      // A user agent can perform a retrieval request targeting that URI
      // (a GET or HEAD request if using HTTP) […]
      statusCode === 303 && !/^(?:GET|HEAD)$/.test(this._options.method)) {
        this._options.method = "GET";
        this._requestBodyBuffers = [];
        removeMatchingHeaders(/^content-/i, this._options.headers);
      }
      var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);
      var currentUrlParts = parseUrl(this._currentUrl);
      var currentHost = currentHostHeader || currentUrlParts.host;
      var currentUrl = /^\w+:/.test(location) ? this._currentUrl : url2.format(Object.assign(currentUrlParts, { host: currentHost }));
      var redirectUrl = resolveUrl(location, currentUrl);
      debug2("redirecting to", redirectUrl.href);
      this._isRedirect = true;
      spreadUrlObject(redirectUrl, this._options);
      if (redirectUrl.protocol !== currentUrlParts.protocol && redirectUrl.protocol !== "https:" || redirectUrl.host !== currentHost && !isSubdomain(redirectUrl.host, currentHost)) {
        removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);
      }
      if (isFunction5(beforeRedirect2)) {
        var responseDetails = {
          headers: response.headers,
          statusCode
        };
        var requestDetails = {
          url: currentUrl,
          method,
          headers: requestHeaders
        };
        beforeRedirect2(this._options, responseDetails, requestDetails);
        this._sanitizeOptions(this._options);
      }
      this._performRequest();
    };
    function wrap(protocols) {
      var exports22 = {
        maxRedirects: 21,
        maxBodyLength: 10 * 1024 * 1024
      };
      var nativeProtocols = {};
      Object.keys(protocols).forEach(function(scheme) {
        var protocol = scheme + ":";
        var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];
        var wrappedProtocol = exports22[scheme] = Object.create(nativeProtocol);
        function request(input, options, callback) {
          if (isURL(input)) {
            input = spreadUrlObject(input);
          } else if (isString3(input)) {
            input = spreadUrlObject(parseUrl(input));
          } else {
            callback = options;
            options = validateUrl(input);
            input = { protocol };
          }
          if (isFunction5(options)) {
            callback = options;
            options = null;
          }
          options = Object.assign({
            maxRedirects: exports22.maxRedirects,
            maxBodyLength: exports22.maxBodyLength
          }, input, options);
          options.nativeProtocols = nativeProtocols;
          if (!isString3(options.host) && !isString3(options.hostname)) {
            options.hostname = "::1";
          }
          assert3.equal(options.protocol, protocol, "protocol mismatch");
          debug2("options", options);
          return new RedirectableRequest(options, callback);
        }
        function get2(input, options, callback) {
          var wrappedRequest = wrappedProtocol.request(input, options, callback);
          wrappedRequest.end();
          return wrappedRequest;
        }
        Object.defineProperties(wrappedProtocol, {
          request: { value: request, configurable: true, enumerable: true, writable: true },
          get: { value: get2, configurable: true, enumerable: true, writable: true }
        });
      });
      return exports22;
    }
    function noop5() {
    }
    function parseUrl(input) {
      var parsed;
      if (useNativeURL) {
        parsed = new URL5(input);
      } else {
        parsed = validateUrl(url2.parse(input));
        if (!isString3(parsed.protocol)) {
          throw new InvalidUrlError({ input });
        }
      }
      return parsed;
    }
    function resolveUrl(relative, base) {
      return useNativeURL ? new URL5(relative, base) : parseUrl(url2.resolve(base, relative));
    }
    function validateUrl(input) {
      if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) {
        throw new InvalidUrlError({ input: input.href || input });
      }
      if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) {
        throw new InvalidUrlError({ input: input.href || input });
      }
      return input;
    }
    function spreadUrlObject(urlObject, target) {
      var spread3 = target || {};
      for (var key of preservedUrlFields) {
        spread3[key] = urlObject[key];
      }
      if (spread3.hostname.startsWith("[")) {
        spread3.hostname = spread3.hostname.slice(1, -1);
      }
      if (spread3.port !== "") {
        spread3.port = Number(spread3.port);
      }
      spread3.path = spread3.search ? spread3.pathname + spread3.search : spread3.pathname;
      return spread3;
    }
    function removeMatchingHeaders(regex, headers) {
      var lastValue;
      for (var header2 in headers) {
        if (regex.test(header2)) {
          lastValue = headers[header2];
          delete headers[header2];
        }
      }
      return lastValue === null || typeof lastValue === "undefined" ? void 0 : String(lastValue).trim();
    }
    function createErrorType(code, message, baseClass) {
      function CustomError(properties) {
        if (isFunction5(Error.captureStackTrace)) {
          Error.captureStackTrace(this, this.constructor);
        }
        Object.assign(this, properties || {});
        this.code = code;
        this.message = this.cause ? message + ": " + this.cause.message : message;
      }
      CustomError.prototype = new (baseClass || Error)();
      Object.defineProperties(CustomError.prototype, {
        constructor: {
          value: CustomError,
          enumerable: false
        },
        name: {
          value: "Error [" + code + "]",
          enumerable: false
        }
      });
      return CustomError;
    }
    function destroyRequest(request, error) {
      for (var event of events) {
        request.removeListener(event, eventHandlers[event]);
      }
      request.on("error", noop5);
      request.destroy(error);
    }
    function isSubdomain(subdomain, domain) {
      assert3(isString3(subdomain) && isString3(domain));
      var dot = subdomain.length - domain.length - 1;
      return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain);
    }
    function isString3(value) {
      return typeof value === "string" || value instanceof String;
    }
    function isFunction5(value) {
      return typeof value === "function";
    }
    function isBuffer3(value) {
      return typeof value === "object" && "length" in value;
    }
    function isURL(value) {
      return URL5 && value instanceof URL5;
    }
    module2.exports = wrap({ http: http6, https: https5 });
    module2.exports.wrap = wrap;
  }
});
var PRICING = {
  BASE_WEBSITE: 5440,
  // Updated to match AI prompt requirement in Pass 1
  PAGE: 600,
  FEATURE: 1500,
  FUNCTION: 800,
  NEW_DATASET: 450,
  HOSTING_MONTHLY: 250,
  STORAGE_EXPANSION_MONTHLY: 10,
  CMS_SETUP: 1500,
  CMS_CONNECTION_PER_FEATURE: 1500,
  API_INTEGRATION: 800,
  APP_HOURLY: 120
};
var initialState = {
  projectType: "website",
  // Company
  companyName: "",
  employeeCount: "",
  // Existing Presence
  existingWebsite: "",
  socialMedia: [],
  socialMediaUrls: {},
  existingDomain: "",
  wishedDomain: "",
  // Project
  websiteTopic: "",
  selectedPages: ["Home"],
  otherPages: [],
  otherPagesCount: 0,
  features: [],
  otherFeatures: [],
  otherFeaturesCount: 0,
  functions: [],
  otherFunctions: [],
  otherFunctionsCount: 0,
  apiSystems: [],
  otherTech: [],
  otherTechCount: 0,
  assets: [],
  otherAssets: [],
  otherAssetsCount: 0,
  newDatasets: 0,
  cmsSetup: false,
  storageExpansion: 0,
  name: "",
  email: "",
  role: "",
  message: "",
  sitemapFile: null,
  contactFiles: [],
  // Design
  designVibe: "minimal",
  colorScheme: ["#ffffff", "#f8fafc", "#0f172a"],
  references: [],
  designWishes: "",
  // Maintenance
  expectedAdjustments: "low",
  languagesList: ["Deutsch"],
  personName: "",
  // Timeline
  deadline: "flexible",
  // Web App specific
  targetAudience: "internal",
  userRoles: [],
  dataSensitivity: "standard",
  platformType: "web-only",
  // Meta
  dontKnows: [],
  visualStaging: "standard",
  complexInteractions: "standard",
  // AI generated / Post-processed
  briefingSummary: "",
  designVision: "",
  positionDescriptions: {},
  taxId: "",
  sitemap: []
};
var FEATURE_LABELS = {
  blog_news: "Blog / News",
  products: "Produktbereich",
  jobs: "Karriere / Jobs",
  refs: "Referenzen / Cases",
  events: "Events / Termine"
};
var FUNCTION_LABELS = {
  search: "Suche",
  filter: "Filter-Systeme",
  pdf: "PDF-Export",
  forms: "Individuelle Formular-Logik",
  members: "Mitgliederbereich",
  calendar: "Event-Kalender",
  multilang: "Mehrsprachigkeit",
  chat: "Echtzeit-Chat"
};
var API_LABELS = {
  crm_erp: "CRM / ERP",
  payment: "Payment",
  marketing: "Marketing",
  ecommerce: "E-Commerce",
  maps: "Google Maps / Places",
  social: "Social Media Sync",
  analytics: "Custom Analytics"
};
var PAGE_LABELS = {
  Home: "Startseite",
  About: "\xDCber uns",
  Services: "Leistungen",
  Contact: "Kontakt",
  Landing: "Landingpage",
  Legal: "Impressum & Datenschutz"
};
function calculateTotals(state, pricing) {
  if (state.projectType !== "website") {
    return {
      totalPrice: 0,
      monthlyPrice: 0,
      totalPagesCount: 0,
      totalFeatures: 0,
      totalFunctions: 0,
      totalApis: 0,
      languagesCount: 0
    };
  }
  const sitemapPagesCount = state.sitemap?.reduce(
    (acc, cat) => acc + (cat.pages?.length || 0),
    0
  ) || 0;
  const totalPagesCount = Math.max(
    (state.selectedPages?.length || 0) + (state.otherPages?.length || 0) + (state.otherPagesCount || 0),
    sitemapPagesCount
  );
  const totalFeatures = (state.features?.length || 0) + (state.otherFeatures?.length || 0) + (state.otherFeaturesCount || 0);
  const totalFunctions = (state.functions?.length || 0) + (state.otherFunctions?.length || 0) + (state.otherFunctionsCount || 0);
  const totalApis = (state.apiSystems?.length || 0) + (state.otherTech?.length || 0) + (state.otherTechCount || 0);
  let total = pricing.BASE_WEBSITE;
  total += totalPagesCount * pricing.PAGE;
  total += totalFeatures * pricing.FEATURE;
  total += totalFunctions * pricing.FUNCTION;
  total += totalApis * pricing.API_INTEGRATION;
  total += (state.newDatasets || 0) * pricing.NEW_DATASET;
  if (state.cmsSetup) {
    total += Math.max(1, totalFeatures) * pricing.CMS_CONNECTION_PER_FEATURE;
  }
  const languagesCount = state.languagesList?.length || 1;
  if (languagesCount > 1) {
    total *= 1 + (languagesCount - 1) * 0.2;
  }
  const monthlyPrice = pricing.HOSTING_MONTHLY + (state.storageExpansion || 0) * pricing.STORAGE_EXPANSION_MONTHLY;
  return {
    totalPrice: Math.round(total),
    monthlyPrice: Math.round(monthlyPrice),
    totalPagesCount,
    totalFeatures,
    totalFunctions,
    totalApis,
    languagesCount
  };
}
function calculatePositions(state, pricing) {
  const positions = [];
  let pos = 1;
  if (state.projectType === "website") {
    positions.push({
      pos: pos++,
      title: "Das technische Fundament",
      desc: "Projekt-Setup, Infrastruktur, Hosting-Bereitstellung, Grundstruktur & Design-Vorlage, technisches SEO-Basics, Analytics.",
      qty: 1,
      price: pricing.BASE_WEBSITE
    });
    const sitemapPagesCount = state.sitemap?.reduce(
      (acc, cat) => acc + (cat.pages?.length || 0),
      0
    ) || 0;
    const totalPagesCount = Math.max(
      (state.selectedPages?.length || 0) + (state.otherPages?.length || 0) + (state.otherPagesCount || 0),
      sitemapPagesCount
    );
    const allPages = [
      ...(state.selectedPages || []).map((p) => PAGE_LABELS[p] || p),
      ...state.otherPages || [],
      ...state.sitemap?.flatMap(
        (cat) => cat.pages?.map((p) => p.title)
      ) || []
    ];
    const uniquePages = Array.from(new Set(allPages));
    positions.push({
      pos: pos++,
      title: "Individuelle Seiten",
      desc: `Gestaltung und Umsetzung von ${totalPagesCount} individuellen Seiten-Layouts (${uniquePages.join(", ")}).`,
      qty: totalPagesCount,
      price: totalPagesCount * pricing.PAGE
    });
    if ((state.features?.length || 0) > 0 || (state.otherFeatures?.length || 0) > 0) {
      const allFeatures = [
        ...(state.features || []).map((f) => FEATURE_LABELS[f] || f),
        ...state.otherFeatures || []
      ];
      positions.push({
        pos: pos++,
        title: "System-Module (Features)",
        desc: `Implementierung funktionaler Bereiche: ${allFeatures.join(", ")}. Inklusive Datenstruktur und Darstellung.`,
        qty: allFeatures.length,
        price: allFeatures.length * pricing.FEATURE
      });
    }
    if ((state.functions?.length || 0) > 0 || (state.otherFunctions?.length || 0) > 0) {
      const allFunctions = [
        ...(state.functions || []).map((f) => FUNCTION_LABELS[f] || f),
        ...state.otherFunctions || []
      ];
      positions.push({
        pos: pos++,
        title: "Logik-Funktionen",
        desc: `Implementierung technischer Logik: ${allFunctions.join(", ")}.`,
        qty: allFunctions.length,
        price: allFunctions.length * pricing.FUNCTION
      });
    }
    if ((state.apiSystems?.length || 0) > 0 || (state.otherTech?.length || 0) > 0) {
      const allApis = [
        ...(state.apiSystems || []).map((a2) => API_LABELS[a2] || a2),
        ...state.otherTech || []
      ];
      positions.push({
        pos: pos++,
        title: "Schnittstellen (API)",
        desc: `Anbindung externer Systeme zur Datensynchronisation: ${allApis.join(", ")}.`,
        qty: allApis.length,
        price: allApis.length * pricing.API_INTEGRATION
      });
    }
    if (state.cmsSetup) {
      const totalFeatures = (state.features?.length || 0) + (state.otherFeatures?.length || 0) + (state.otherFeaturesCount || 0);
      const qty = Math.max(1, totalFeatures);
      positions.push({
        pos: pos++,
        title: "Inhalts-Verwaltung",
        desc: "Anbindung der System-Module an das Redaktions-System zur eigenst\xE4ndigen Pflege von Inhalten.",
        qty,
        price: qty * pricing.CMS_CONNECTION_PER_FEATURE
      });
    }
    if (state.newDatasets > 0) {
      positions.push({
        pos: pos++,
        title: "Inhaltliche Initial-Pflege",
        desc: `Manuelle \xDCbernahme und Aufbereitung von ${state.newDatasets} Datens\xE4tzen (Produkte, Artikel) in das Zielsystem.`,
        qty: state.newDatasets,
        price: state.newDatasets * pricing.NEW_DATASET
      });
    }
    const languagesCount = state.languagesList?.length || 1;
    if (languagesCount > 1) {
      const subtotal = positions.reduce((sum, p) => sum + p.price, 0);
      const factorPrice = subtotal * ((languagesCount - 1) * 0.2);
      positions.push({
        pos: pos++,
        title: "Mehrsprachigkeit",
        desc: `Erweiterung des Systems auf ${languagesCount} Sprachen (Struktur & Logik).`,
        qty: languagesCount,
        price: Math.round(factorPrice)
      });
    }
    const monthlyRate = pricing.HOSTING_MONTHLY + state.storageExpansion * pricing.STORAGE_EXPANSION_MONTHLY;
    positions.push({
      pos: pos++,
      title: "Sorglos Betrieb (1 Jahr)",
      desc: `Inklusive 1 Jahr Sicherung des technischen Betriebs, Hosting, Instandhaltung, Sicherheits-Updates und techn. Support gem\xE4\xDF AGB Punkt 7a.`,
      qty: 1,
      price: monthlyRate * 12
    });
  } else {
    positions.push({
      pos: pos++,
      title: "Web App / Software Entwicklung",
      desc: "Individuelle Software-Entwicklung nach Aufwand. Abrechnung erfolgt auf Stundenbasis.",
      qty: 1,
      price: 0
    });
  }
  return positions;
}
var COLORS = {
  CHARCOAL: "#0f172a",
  // Slate 900
  TEXT_MAIN: "#334155",
  // Slate 700
  TEXT_DIM: "#64748b",
  // Slate 500
  TEXT_LIGHT: "#94a3b8",
  // Slate 400
  DIVIDER: "#cbd5e1",
  // Slate 300
  GRID: "#f1f5f9",
  // Slate 100
  BLUEPRINT: "#e2e8f0",
  // Slate 200
  WHITE: "#ffffff"
};
var FONT_SIZES = {
  HERO: 24,
  // Main Page Titles
  HEADING: 14,
  // Section Headers
  BODY: 11,
  // Standard Content
  LABEL: 10,
  // Bold Labels / Keys
  SMALL: 9,
  // Descriptions / Footnotes
  TINY: 8
  // Metadata / Unit prices
};
var pdfStyles = import_renderer2.StyleSheet.create({
  page: {
    paddingTop: 45,
    // DIN 5008
    paddingLeft: 70,
    // ~25mm
    paddingRight: 57,
    // ~20mm
    paddingBottom: 80,
    // Safe buffer for absolute footer
    backgroundColor: COLORS.WHITE,
    fontFamily: "Helvetica",
    fontSize: FONT_SIZES.BODY,
    color: COLORS.CHARCOAL
  },
  titlePage: {
    width: "100%",
    height: "100%",
    backgroundColor: COLORS.WHITE,
    fontFamily: "Helvetica",
    color: COLORS.CHARCOAL,
    padding: 0
  },
  header: {
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "flex-start",
    marginBottom: 20,
    minHeight: 120
  },
  addressBlock: {
    width: "55%",
    marginTop: 45
  },
  senderLine: {
    fontSize: FONT_SIZES.TINY,
    textDecoration: "underline",
    color: COLORS.TEXT_DIM,
    marginBottom: 8
  },
  recipientAddress: {
    fontSize: FONT_SIZES.BODY,
    lineHeight: 1.4
  },
  brandLogoContainer: {
    width: "40%",
    alignItems: "flex-end"
  },
  brandIconContainer: {
    width: 40,
    height: 40,
    backgroundColor: "#0f172a",
    borderRadius: 8,
    alignItems: "center",
    justifyContent: "center",
    marginBottom: 12
  },
  brandIconText: {
    color: COLORS.WHITE,
    fontSize: 20,
    fontWeight: "bold"
  },
  titleInfo: {
    marginBottom: 24
  },
  mainTitle: {
    fontSize: FONT_SIZES.HEADING,
    fontWeight: "bold",
    marginBottom: 4,
    color: COLORS.CHARCOAL,
    letterSpacing: 0.5
  },
  subTitle: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_DIM,
    marginTop: 2,
    lineHeight: 1.4
  },
  section: {
    marginBottom: 32
  },
  sectionTitle: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    textTransform: "uppercase",
    letterSpacing: 1,
    color: COLORS.TEXT_LIGHT,
    marginBottom: 8
  },
  footer: {
    position: "absolute",
    bottom: 32,
    left: 70,
    right: 57,
    borderTopWidth: 1,
    borderTopColor: COLORS.GRID,
    paddingTop: 16,
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "flex-start"
  },
  footerColumn: {
    flex: 1,
    alignItems: "flex-start"
  },
  footerLogo: {
    height: 20,
    width: "auto",
    objectFit: "contain",
    marginBottom: 8
  },
  footerText: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_LIGHT,
    lineHeight: 1.4
  },
  asymmetryContainer: {
    flexDirection: "row",
    gap: 32
  },
  asymmetryLeft: {
    width: "32%"
  },
  asymmetryRight: {
    width: "63%"
  },
  specRow: {
    flexDirection: "row",
    justifyContent: "space-between",
    paddingVertical: 6,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID
  },
  specLabel: {
    fontSize: FONT_SIZES.TINY,
    fontWeight: "bold",
    color: COLORS.TEXT_LIGHT,
    textTransform: "uppercase",
    letterSpacing: 0.5
  },
  specValue: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.CHARCOAL,
    fontWeight: "bold"
  },
  blueprintBox: {
    borderWidth: 1,
    borderColor: COLORS.GRID,
    padding: 16,
    backgroundColor: "#fafafa"
  },
  footerLabel: {
    fontWeight: "bold",
    color: COLORS.TEXT_DIM
  },
  pageNumber: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.DIVIDER,
    fontWeight: "bold",
    marginTop: 8,
    textAlign: "right"
  },
  foldingMark: {
    position: "absolute",
    left: 20,
    width: 10,
    borderTopWidth: 0.5,
    borderTopColor: COLORS.DIVIDER
  },
  divider: {
    width: "100%",
    height: 1,
    backgroundColor: COLORS.DIVIDER,
    marginVertical: 12
  },
  industrialListItem: {
    flexDirection: "row",
    alignItems: "flex-start",
    marginBottom: 6
  },
  industrialBulletBox: {
    width: 6,
    height: 6,
    backgroundColor: COLORS.DIVIDER,
    marginRight: 8,
    marginTop: 5
  },
  industrialTitle: {
    fontSize: FONT_SIZES.HERO,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    marginBottom: 6,
    letterSpacing: 0
  }
});
var Footer = ({
  logo,
  companyData,
  bankData,
  showDetails = true,
  showPageNumber = true
}) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_renderer2.View, { style: pdfStyles.footer, children: [
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.View, { style: pdfStyles.footerColumn, children: logo ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Image, { src: logo, style: pdfStyles.footerLogo }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { style: { fontSize: 12, fontWeight: "bold", marginBottom: 8 }, children: "marc mintel" }) }),
  showDetails && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
    /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.View, { style: pdfStyles.footerColumn, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_renderer2.Text, { style: pdfStyles.footerText, children: [
      /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { style: pdfStyles.footerLabel, children: companyData.name }),
      "\n",
      companyData.address1,
      "\n",
      companyData.address2,
      "\n",
      "UST: ",
      companyData.ustId
    ] }) }),
    /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.View, { style: [pdfStyles.footerColumn, { alignItems: "flex-end" }], children: showPageNumber && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
      import_renderer2.Text,
      {
        style: pdfStyles.pageNumber,
        render: ({ pageNumber, totalPages }) => `${pageNumber} / ${totalPages}`,
        fixed: true
      }
    ) })
  ] }),
  !showDetails && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.View, { style: [pdfStyles.footerColumn, { alignItems: "flex-end" }], children: showPageNumber && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
    import_renderer2.Text,
    {
      style: pdfStyles.pageNumber,
      render: ({ pageNumber, totalPages }) => `${pageNumber} / ${totalPages}`,
      fixed: true
    }
  ) })
] });
var Header = ({
  sender,
  recipient,
  icon,
  showAddress = true
}) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
  import_renderer2.View,
  {
    style: [
      pdfStyles.header,
      showAddress ? {} : { minHeight: 40, marginBottom: 0 }
    ],
    children: [
      /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.View, { style: pdfStyles.addressBlock, children: showAddress && sender && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
        /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { style: pdfStyles.senderLine, children: sender }),
        recipient && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_renderer2.View, { style: pdfStyles.recipientAddress, children: [
          /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { style: { fontWeight: "bold" }, children: recipient.title }),
          recipient.subtitle && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { children: recipient.subtitle }),
          recipient.address && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { children: recipient.address }),
          recipient.phone && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { children: recipient.phone }),
          recipient.email && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { children: recipient.email }),
          recipient.taxId && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_renderer2.Text, { children: [
            "USt-ID: ",
            recipient.taxId
          ] })
        ] })
      ] }) }),
      /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.View, { style: pdfStyles.brandLogoContainer, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.View, { style: pdfStyles.brandIconContainer, children: icon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Image, { src: icon, style: { width: 24, height: 24 } }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_renderer2.Text, { style: pdfStyles.brandIconText, children: "M" }) }) })
    ]
  }
);
var DocumentTitle = ({
  title,
  subLines,
  isHero = false
}) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_renderer2.View, { style: pdfStyles.titleInfo, children: [
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
    import_renderer2.Text,
    {
      style: [
        pdfStyles.mainTitle,
        { fontSize: isHero ? FONT_SIZES.HERO : FONT_SIZES.HEADING }
      ],
      children: title
    }
  ),
  subLines?.map((line, i22) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
    import_renderer2.Text,
    {
      style: [
        pdfStyles.subTitle,
        i22 === 1 ? { fontWeight: "bold", color: COLORS.CHARCOAL } : {}
      ],
      children: line
    },
    i22
  ))
] });
var simpleStyles = import_renderer3.StyleSheet.create({
  industrialPage: {
    padding: 30,
    paddingTop: 20,
    backgroundColor: "#ffffff"
  },
  industrialNumber: {
    fontSize: 60,
    fontWeight: "bold",
    color: "#f1f5f9",
    position: "absolute",
    top: -10,
    right: 0,
    zIndex: -1
  },
  industrialSection: {
    marginTop: 16,
    paddingTop: 12,
    flexDirection: "row",
    position: "relative"
  }
});
var SimpleLayout = ({
  children,
  pageNumber,
  icon,
  footerLogo,
  companyData,
  bankData,
  showPageNumber = true
}) => {
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_renderer3.Page, { size: "A4", style: [pdfStyles.page, simpleStyles.industrialPage], children: [
    /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Header, { icon, showAddress: false }),
    pageNumber && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_renderer3.Text, { style: simpleStyles.industrialNumber, children: pageNumber }),
    /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_renderer3.View, { style: simpleStyles.industrialSection, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_renderer3.View, { style: { width: "100%" }, children }) }),
    /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
      Footer,
      {
        logo: footerLogo,
        companyData,
        bankData,
        showDetails: false,
        showPageNumber
      }
    )
  ] });
};
var styles = import_renderer4.StyleSheet.create({
  titlePage: {
    flex: 1,
    padding: 60,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: COLORS.WHITE
  },
  titleBrandIcon: {
    width: 80,
    height: 80,
    backgroundColor: COLORS.CHARCOAL,
    borderRadius: 16,
    alignItems: "center",
    justifyContent: "center",
    marginBottom: 40
  },
  brandIconText: {
    fontSize: 40,
    color: COLORS.WHITE,
    fontWeight: "bold"
  },
  titleProjectName: {
    fontSize: FONT_SIZES.HERO,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    marginBottom: 16,
    textAlign: "center",
    maxWidth: "85%",
    lineHeight: 1.2
  },
  titleDate: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_LIGHT,
    marginTop: 40
  }
});
var FrontPageModule = ({ state, headerIcon, date }) => {
  const fullTitle = `Digitale Webpr\xE4senz f\xFCr
${state.companyName || "Ihr Projekt"}`;
  const fontSize = fullTitle.length > 60 ? 14 : fullTitle.length > 40 ? 18 : 22;
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_renderer4.View, { style: styles.titlePage, children: [
    /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_renderer4.View, { style: styles.titleBrandIcon, children: headerIcon ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_renderer4.Image, { src: headerIcon, style: { width: 40, height: 40 } }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_renderer4.Text, { style: styles.brandIconText, children: "M" }) }),
    /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_renderer4.Text, { style: [styles.titleProjectName, { fontSize }], children: fullTitle }),
    /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_renderer4.View, { style: { marginBottom: 40 } }),
    /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_renderer4.Text, { style: styles.titleDate, children: [
      date,
      " | Marc Mintel"
    ] })
  ] });
};
var styles2 = import_renderer5.StyleSheet.create({
  section: { marginBottom: 24 },
  sectionTitle: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    marginBottom: 8,
    color: COLORS.CHARCOAL
  },
  visionText: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_MAIN,
    lineHeight: 1.4,
    textAlign: "justify"
  }
});
var BriefingModule = ({ state }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(DocumentTitle, { title: "Projektdetails", isHero: true }),
  state.briefingSummary && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_renderer5.View, { style: styles2.section, children: [
    /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_renderer5.Text, { style: styles2.sectionTitle, children: "Briefing Analyse" }),
    /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
      import_renderer5.Text,
      {
        style: {
          fontSize: FONT_SIZES.BODY,
          color: COLORS.TEXT_MAIN,
          lineHeight: 1.6,
          textAlign: "justify"
        },
        children: state.briefingSummary
      }
    )
  ] }),
  state.designVision && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
    import_renderer5.View,
    {
      style: [
        styles2.section,
        {
          padding: 12,
          borderLeftWidth: 2,
          borderLeftColor: COLORS.DIVIDER,
          backgroundColor: COLORS.GRID
        }
      ],
      children: [
        /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
          import_renderer5.Text,
          {
            style: [
              styles2.sectionTitle,
              { color: COLORS.CHARCOAL, marginBottom: 4 }
            ],
            children: "Strategische Vision"
          }
        ),
        /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_renderer5.Text, { style: styles2.visionText, children: state.designVision })
      ]
    }
  )
] });
var styles3 = import_renderer6.StyleSheet.create({
  section: { marginBottom: 32 },
  intro: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.4,
    marginBottom: 24,
    textAlign: "justify"
  },
  sitemapTree: { marginTop: 8 },
  rootNode: {
    padding: 12,
    backgroundColor: COLORS.GRID,
    marginBottom: 20,
    borderLeftWidth: 2,
    borderLeftColor: COLORS.CHARCOAL
  },
  rootTitle: {
    fontSize: FONT_SIZES.HEADING,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    letterSpacing: 0.5
  },
  categorySection: { marginBottom: 20 },
  categoryHeader: {
    flexDirection: "row",
    alignItems: "center",
    paddingBottom: 6,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.BLUEPRINT,
    marginBottom: 10
  },
  categoryIcon: {
    width: 8,
    height: 8,
    backgroundColor: COLORS.GRID,
    borderInlineWidth: 1,
    borderColor: COLORS.DIVIDER,
    marginRight: 10
  },
  categoryTitle: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    textTransform: "uppercase",
    letterSpacing: 1
  },
  pagesGrid: { flexDirection: "row", flexWrap: "wrap" },
  pageCard: {
    width: "48%",
    marginRight: "2%",
    marginBottom: 12,
    padding: 10,
    borderWidth: 1,
    borderColor: COLORS.GRID,
    backgroundColor: "#fafafa"
  },
  pageTitle: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.TEXT_MAIN,
    marginBottom: 4
  },
  pageDesc: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.3
  }
});
var SitemapModule = ({ state }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DocumentTitle, { title: "Informationsarchitektur", isHero: true }),
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_renderer6.View, { style: styles3.section, children: [
    /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.Text, { style: styles3.intro, children: "Die folgende Struktur definiert die logische Hierarchie und Benutzerf\xFChrung. Sie dient als Bauplan f\xFCr die technische Umsetzung und stellt sicher, dass alle relevanten Gesch\xE4ftsbereiche intuitiv auffindbar sind." }),
    /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_renderer6.View, { style: styles3.sitemapTree, children: [
      /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.View, { style: styles3.rootNode, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.Text, { style: styles3.rootTitle, children: "Seitenstruktur" }) }),
      state.sitemap?.map((cat, i22) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_renderer6.View, { style: styles3.categorySection, wrap: false, children: [
        /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_renderer6.View, { style: styles3.categoryHeader, children: [
          /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.View, { style: styles3.categoryIcon }),
          /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.Text, { style: styles3.categoryTitle, children: cat.category })
        ] }),
        /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.View, { style: styles3.pagesGrid, children: cat.pages.map((p, j2) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
          import_renderer6.View,
          {
            style: [
              styles3.pageCard,
              j2 % 2 === 1 ? { marginRight: 0 } : {}
            ],
            children: [
              /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.Text, { style: styles3.pageTitle, children: p.title }),
              p.desc && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_renderer6.Text, { style: styles3.pageDesc, children: p.desc })
            ]
          },
          j2
        )) })
      ] }, i22))
    ] })
  ] })
] });
var styles4 = import_renderer7.StyleSheet.create({
  table: { marginTop: 12 },
  tableHeader: {
    flexDirection: "row",
    paddingBottom: 8,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.CHARCOAL,
    marginBottom: 12
  },
  tableRow: {
    flexDirection: "row",
    paddingVertical: 10,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID,
    alignItems: "flex-start"
  },
  colPos: { width: "8%" },
  colDesc: { width: "62%" },
  colQty: { width: "10%", textAlign: "center" },
  colPrice: { width: "20%", textAlign: "right" },
  headerText: {
    fontSize: FONT_SIZES.TINY,
    fontWeight: "bold",
    textTransform: "uppercase",
    letterSpacing: 1,
    color: COLORS.TEXT_DIM
  },
  posText: { fontSize: FONT_SIZES.TINY, color: COLORS.TEXT_LIGHT },
  itemTitle: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    marginBottom: 4
  },
  itemDesc: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.4
  },
  priceText: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.CHARCOAL
  },
  summaryContainer: {
    borderTopWidth: 1,
    borderTopColor: COLORS.CHARCOAL,
    paddingTop: 8
  },
  summaryRow: {
    flexDirection: "row",
    justifyContent: "flex-end",
    paddingVertical: 4,
    alignItems: "baseline"
  },
  summaryLabel: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_DIM,
    textTransform: "uppercase",
    letterSpacing: 1,
    fontWeight: "bold",
    marginRight: 12
  },
  summaryValue: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    width: 100,
    textAlign: "right",
    color: COLORS.CHARCOAL
  },
  totalRow: {
    flexDirection: "row",
    justifyContent: "flex-end",
    paddingTop: 12,
    marginTop: 8,
    borderTopWidth: 2,
    borderTopColor: COLORS.CHARCOAL,
    alignItems: "baseline"
  }
});
var EstimationModule = ({
  state,
  positions,
  totalPrice,
  date
}) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
    DocumentTitle,
    {
      title: "Kostensch\xE4tzung",
      subLines: [
        `Datum: ${date}`,
        `Projekt: ${state.projectType === "website" ? "Website" : "Web App"}`
      ],
      isHero: true
    }
  ),
  /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.table, children: [
    /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.tableHeader, children: [
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: [styles4.headerText, styles4.colPos], children: "Pos" }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: [styles4.headerText, styles4.colDesc], children: "Beschreibung" }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: [styles4.headerText, styles4.colQty], children: "Menge" }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: [styles4.headerText, styles4.colPrice], children: "Betrag" })
    ] }),
    positions.map((item, i22) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.tableRow, wrap: false, children: [
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: [styles4.posText, styles4.colPos], children: item.pos.toString().padStart(2, "0") }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.colDesc, children: [
        /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: styles4.itemTitle, children: item.title }),
        /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: styles4.itemDesc, children: state.positionDescriptions?.[item.title] || item.desc })
      ] }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: [styles4.posText, styles4.colQty], children: item.qty }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: [styles4.priceText, styles4.colPrice], children: item.price > 0 ? `${item.price.toLocaleString("de-DE")} \u20AC` : "n. A." })
    ] }, i22))
  ] }),
  /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.summaryContainer, wrap: false, children: [
    /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.summaryRow, children: [
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: styles4.summaryLabel, children: "Nettobetrag" }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.Text, { style: styles4.summaryValue, children: [
        totalPrice.toLocaleString("de-DE"),
        " \u20AC"
      ] })
    ] }),
    /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.summaryRow, children: [
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: styles4.summaryLabel, children: "Umsatzsteuer (19%)" }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.Text, { style: styles4.summaryValue, children: [
        (totalPrice * 0.19).toLocaleString("de-DE"),
        " \u20AC"
      ] })
    ] }),
    /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_renderer7.View, { style: styles4.totalRow, children: [
      /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_renderer7.Text, { style: styles4.summaryLabel, children: "Gesamtbetrag (Brutto)" }),
      /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
        import_renderer7.Text,
        {
          style: [styles4.summaryValue, { fontSize: FONT_SIZES.HEADING }],
          children: [
            (totalPrice * 1.19).toLocaleString("de-DE"),
            " \u20AC"
          ]
        }
      )
    ] })
  ] })
] });
var styles5 = import_renderer8.StyleSheet.create({
  section: { marginBottom: 24 },
  ledgerRow: {
    paddingVertical: 14,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID,
    flexDirection: "row",
    alignItems: "flex-start"
  },
  moduleLabel: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    letterSpacing: 0.5,
    marginBottom: 4
  },
  moduleDesc: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.5
  },
  ledgerPrice: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.CHARCOAL
  },
  ledgerUnit: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_LIGHT,
    marginLeft: 2
  }
});
var TransparenzModule = ({ pricing }) => {
  const sorglosPrice = (pricing.HOSTING_MONTHLY || 250) * 12;
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
    /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DocumentTitle, { title: "Preis-Transparenz & Modell", isHero: true }),
    /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_renderer8.View, { style: styles5.section, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_renderer8.View, { style: { borderTopWidth: 1, borderTopColor: COLORS.CHARCOAL }, children: [
      {
        l: "Fundament",
        d: "Bereitstellung der techn. Infrastruktur & System-Umgebung.",
        p: pricing.BASE_WEBSITE
      },
      {
        l: "Einzelseiten",
        d: "Individuelle Gestaltung, Layout & responsive Struktur.",
        p: pricing.PAGE,
        unit: "/ Stk"
      },
      {
        l: "Core Features",
        d: "Geschlossene Datensysteme mit eigener Datenstruktur.",
        p: pricing.FEATURE,
        unit: "/ Stk"
      },
      {
        l: "Logik & Funktionen",
        d: "Interaktive Funktions-Bausteine & Prozess-Logik.",
        p: pricing.FUNCTION,
        unit: "/ Stk"
      },
      {
        l: "Schnittstellen",
        d: "Synchronisation mit externen Zielsystemen.",
        p: pricing.API_INTEGRATION,
        unit: "/ Stk"
      },
      {
        l: "Sprachversionen",
        d: "Skalierung der System-Architektur auf Zweit-Sprachen.",
        p: "+20%"
      },
      {
        l: "Initial-Pflege",
        d: "Konvertierung & Aufbereitung von Bestandsdaten.",
        p: pricing.NEW_DATASET,
        unit: "/ Stk"
      },
      {
        l: "Sorglos Betrieb",
        d: "Hosting, Instandhaltung, Security & techn. Support.",
        p: sorglosPrice,
        unit: "/ Jahr"
      }
    ].map((item, i22) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_renderer8.View, { style: styles5.ledgerRow, children: [
      /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_renderer8.View, { style: { width: "25%" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_renderer8.Text, { style: styles5.moduleLabel, children: item.l.toUpperCase() }) }),
      /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_renderer8.View, { style: { width: "50%" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_renderer8.Text, { style: styles5.moduleDesc, children: item.d }) }),
      /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_renderer8.View, { style: { width: "25%", alignItems: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_renderer8.Text, { style: styles5.ledgerPrice, children: [
        typeof item.p === "number" ? `${item.p.toLocaleString("de-DE")} \u20AC` : item.p,
        item.unit && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_renderer8.Text, { style: styles5.ledgerUnit, children: [
          " ",
          item.unit
        ] })
      ] }) })
    ] }, i22)) }) })
  ] });
};
var styles6 = import_renderer9.StyleSheet.create({
  section: { marginBottom: 24 },
  moduleLabel: {
    fontSize: FONT_SIZES.LABEL,
    fontWeight: "bold",
    color: COLORS.CHARCOAL,
    letterSpacing: 0.5,
    marginBottom: 4
  },
  moduleDesc: {
    fontSize: FONT_SIZES.SMALL,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.5
  },
  ledgerRow: {
    paddingVertical: 14,
    borderBottomWidth: 1,
    borderBottomColor: COLORS.GRID,
    flexDirection: "row",
    alignItems: "flex-start"
  },
  ledgerPrice: {
    fontSize: FONT_SIZES.BODY,
    fontWeight: "bold",
    color: COLORS.CHARCOAL
  },
  ledgerUnit: {
    fontSize: FONT_SIZES.TINY,
    color: COLORS.TEXT_LIGHT,
    marginLeft: 2
  }
});
var ClosingModule = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DocumentTitle, { title: "Abschluss & Kontakt", isHero: true }),
  /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_renderer9.View, { style: styles6.section, children: [
    /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
      import_renderer9.Text,
      {
        style: [
          styles6.moduleLabel,
          { fontSize: FONT_SIZES.HEADING, marginBottom: 12 }
        ],
        children: "Vielen Dank f\xFCr Ihr Interesse!"
      }
    ),
    /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_renderer9.Text, { style: styles6.moduleDesc, children: "Die aufgef\xFChrten Positionen stellen eine detaillierte Sch\xE4tzung auf Basis unseres aktuellen Stands dar. Sollten sich Anforderungen \xE4ndern oder Sie Fragen zu einzelnen Details haben, lassen Sie uns die Positionen gerne gemeinsam besprechen." }),
    /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
      import_renderer9.View,
      {
        style: {
          marginTop: 24,
          padding: 16,
          backgroundColor: COLORS.GRID,
          borderLeftWidth: 2,
          borderLeftColor: COLORS.DIVIDER
        },
        children: [
          /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_renderer9.Text, { style: [styles6.moduleLabel, { marginBottom: 8 }], children: "Haben Sie Fragen?" }),
          /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_renderer9.Text, { style: styles6.moduleDesc, children: "Ich erkl\xE4re Ihnen gerne noch einmal pers\xF6nlich, was die technische Umsetzung f\xFCr Ihr Projekt bedeutet und wie wir die n\xE4chsten Schritte gemeinsam gehen k\xF6nnen." }),
          /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_renderer9.View, { style: { marginTop: 16 }, children: [
            /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_renderer9.Text, { style: styles6.moduleLabel, children: "Kontakt:" }),
            /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
              import_renderer9.Text,
              {
                style: [
                  styles6.moduleDesc,
                  { color: COLORS.CHARCOAL, fontWeight: "bold" }
                ],
                children: "Marc Mintel \u2013 marc@mintel.me"
              }
            )
          ] })
        ]
      }
    )
  ] })
] });
var EstimationPDF = ({
  state,
  totalPrice,
  pricing,
  headerIcon,
  footerLogo
}) => {
  const date = (/* @__PURE__ */ new Date()).toLocaleDateString("de-DE", {
    year: "numeric",
    month: "long",
    day: "numeric"
  });
  const positions = calculatePositions(state, pricing);
  const companyData = {
    name: "Marc Mintel",
    address1: "Georg-Meistermann-Stra\xDFe 7",
    address2: "54586 Sch\xFCller",
    ustId: "DE367588065"
  };
  const commonProps = {
    state,
    date,
    icon: headerIcon,
    footerLogo,
    companyData
  };
  let pageCounter = 1;
  const getPageNum = () => (pageCounter++).toString().padStart(2, "0");
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_renderer.Document, { title: `Angebot - ${state.companyName || "Projekt"}`, children: [
    /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_renderer.Page, { size: "A4", style: pdfStyles.titlePage, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(FrontPageModule, { state, headerIcon, date }) }),
    /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SimpleLayout, { ...commonProps, pageNumber: getPageNum(), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(BriefingModule, { state }) }),
    state.sitemap && state.sitemap.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SimpleLayout, { ...commonProps, pageNumber: getPageNum(), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SitemapModule, { state }) }),
    /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SimpleLayout, { ...commonProps, pageNumber: getPageNum(), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
      EstimationModule,
      {
        state,
        positions,
        totalPrice,
        date
      }
    ) }),
    /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SimpleLayout, { ...commonProps, pageNumber: getPageNum(), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TransparenzModule, { pricing }) }),
    /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SimpleLayout, { ...commonProps, pageNumber: getPageNum(), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ClosingModule, {}) })
  ] });
};
var styles7 = import_renderer10.StyleSheet.create({
  industrialTextLead: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_MAIN,
    lineHeight: 1.4,
    marginBottom: 16
  },
  industrialText: {
    fontSize: FONT_SIZES.BODY,
    color: COLORS.TEXT_DIM,
    lineHeight: 1.4,
    marginBottom: 12
  },
  industrialGrid2: { flexDirection: "row" },
  industrialCol: { width: "46%" }
});
var localStyles = import_renderer11.StyleSheet.create({
  sectionContainer: {
    marginTop: 0
  },
  agbSection: {
    marginBottom: 20
  },
  labelRow: {
    flexDirection: "row",
    alignItems: "baseline",
    marginBottom: 6
  },
  monoNumber: {
    fontSize: 7,
    fontWeight: "bold",
    color: "#94a3b8",
    letterSpacing: 2,
    width: 25
  },
  sectionTitle: {
    fontSize: 9,
    fontWeight: "bold",
    color: "#000000",
    textTransform: "uppercase",
    letterSpacing: 0.5
  },
  officialText: {
    fontSize: 8,
    lineHeight: 1.5,
    color: "#334155",
    textAlign: "justify",
    paddingLeft: 25
  }
});
var import_index2 = __toESM2(require_cheerio3(), 1);
var API_PROCESSED_REQUESTS_DELAY_MILLIS = import_index2.default.API_PROCESSED_REQUESTS_DELAY_MILLIS;
var AutoscaledPool = import_index2.default.AutoscaledPool;
var BASIC_CRAWLER_TIMEOUT_BUFFER_SECS = import_index2.default.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS;
var BLOCKED_STATUS_CODES = import_index2.default.BLOCKED_STATUS_CODES;
var BasicCrawler = import_index2.default.BasicCrawler;
var ByteCounterStream = import_index2.default.ByteCounterStream;
var CheerioCrawler = import_index2.default.CheerioCrawler;
var Configuration = import_index2.default.Configuration;
var CookieParseError = import_index2.default.CookieParseError;
var CrawlerExtension = import_index2.default.CrawlerExtension;
var CriticalError = import_index2.default.CriticalError;
var DATASET_ITERATORS_DEFAULT_LIMIT = import_index2.default.DATASET_ITERATORS_DEFAULT_LIMIT;
var Dataset = import_index2.default.Dataset;
var EVENT_SESSION_RETIRED = import_index2.default.EVENT_SESSION_RETIRED;
var EnqueueStrategy = import_index2.default.EnqueueStrategy;
var ErrorSnapshotter = import_index2.default.ErrorSnapshotter;
var ErrorTracker = import_index2.default.ErrorTracker;
var EventManager2 = import_index2.default.EventManager;
var EventType = import_index2.default.EventType;
var FileDownload = import_index2.default.FileDownload;
var GotScrapingHttpClient = import_index2.default.GotScrapingHttpClient;
var HttpCrawler = import_index2.default.HttpCrawler;
var KeyValueStore = import_index2.default.KeyValueStore;
var LocalEventManager = import_index2.default.LocalEventManager;
var Log = import_index2.default.Log;
var LogLevel = import_index2.default.LogLevel;
var Logger = import_index2.default.Logger;
var LoggerJson = import_index2.default.LoggerJson;
var LoggerText = import_index2.default.LoggerText;
var MAX_POOL_SIZE = import_index2.default.MAX_POOL_SIZE;
var MAX_QUERIES_FOR_CONSISTENCY = import_index2.default.MAX_QUERIES_FOR_CONSISTENCY;
var MinimumSpeedStream = import_index2.default.MinimumSpeedStream;
var MissingRouteError = import_index2.default.MissingRouteError;
var NonRetryableError = import_index2.default.NonRetryableError;
var PERSIST_STATE_KEY = import_index2.default.PERSIST_STATE_KEY;
var ProxyConfiguration = import_index2.default.ProxyConfiguration;
var PseudoUrl = import_index2.default.PseudoUrl;
var QUERY_HEAD_BUFFER = import_index2.default.QUERY_HEAD_BUFFER;
var QUERY_HEAD_MIN_LENGTH = import_index2.default.QUERY_HEAD_MIN_LENGTH;
var REQUESTS_PERSISTENCE_KEY = import_index2.default.REQUESTS_PERSISTENCE_KEY;
var RecoverableState = import_index2.default.RecoverableState;
var Request2 = import_index2.default.Request;
var RequestHandlerResult = import_index2.default.RequestHandlerResult;
var RequestList = import_index2.default.RequestList;
var RequestListAdapter = import_index2.default.RequestListAdapter;
var RequestManagerTandem = import_index2.default.RequestManagerTandem;
var RequestProvider = import_index2.default.RequestProvider;
var RequestQueue = import_index2.default.RequestQueue;
var RequestQueueV1 = import_index2.default.RequestQueueV1;
var RequestQueueV2 = import_index2.default.RequestQueueV2;
var RequestState = import_index2.default.RequestState;
var RetryRequestError = import_index2.default.RetryRequestError;
var Router = import_index2.default.Router;
var STATE_PERSISTENCE_KEY = import_index2.default.STATE_PERSISTENCE_KEY;
var STORAGE_CONSISTENCY_DELAY_MILLIS = import_index2.default.STORAGE_CONSISTENCY_DELAY_MILLIS;
var Session = import_index2.default.Session;
var SessionError = import_index2.default.SessionError;
var SessionPool = import_index2.default.SessionPool;
var SitemapRequestList = import_index2.default.SitemapRequestList;
var Snapshotter = import_index2.default.Snapshotter;
var Statistics = import_index2.default.Statistics;
var StorageManager = import_index2.default.StorageManager;
var SystemStatus = import_index2.default.SystemStatus;
var browserPoolCookieToToughCookie = import_index2.default.browserPoolCookieToToughCookie;
var checkAndSerialize = import_index2.default.checkAndSerialize;
var checkStorageAccess = import_index2.default.checkStorageAccess;
var cheerioCrawlerEnqueueLinks = import_index2.default.cheerioCrawlerEnqueueLinks;
var chunkBySize = import_index2.default.chunkBySize;
var constructGlobObjectsFromGlobs = import_index2.default.constructGlobObjectsFromGlobs;
var constructRegExpObjectsFromPseudoUrls = import_index2.default.constructRegExpObjectsFromPseudoUrls;
var constructRegExpObjectsFromRegExps = import_index2.default.constructRegExpObjectsFromRegExps;
var cookieStringToToughCookie = import_index2.default.cookieStringToToughCookie;
var createBasicRouter = import_index2.default.createBasicRouter;
var createCheerioRouter = import_index2.default.createCheerioRouter;
var createDeserialize = import_index2.default.createDeserialize;
var createFileRouter = import_index2.default.createFileRouter;
var createHttpRouter = import_index2.default.createHttpRouter;
var createRequestOptions = import_index2.default.createRequestOptions;
var createRequests = import_index2.default.createRequests;
var deserializeArray = import_index2.default.deserializeArray;
var enqueueLinks = import_index2.default.enqueueLinks;
var filterRequestsByPatterns = import_index2.default.filterRequestsByPatterns;
var getCookiesFromResponse = import_index2.default.getCookiesFromResponse;
var getDefaultCookieExpirationDate = import_index2.default.getDefaultCookieExpirationDate;
var getRequestId = import_index2.default.getRequestId;
var handleRequestTimeout = import_index2.default.handleRequestTimeout;
var log = import_index2.default.log;
var maybeStringify = import_index2.default.maybeStringify;
var mergeCookies = import_index2.default.mergeCookies;
var processHttpRequestOptions = import_index2.default.processHttpRequestOptions;
var purgeDefaultStorages = import_index2.default.purgeDefaultStorages;
var resolveBaseUrlForEnqueueLinksFiltering = import_index2.default.resolveBaseUrlForEnqueueLinksFiltering;
var serializeArray = import_index2.default.serializeArray;
var toughCookieToBrowserPoolCookie = import_index2.default.toughCookieToBrowserPoolCookie;
var tryAbsoluteURL = import_index2.default.tryAbsoluteURL;
var updateEnqueueLinksPatternCache = import_index2.default.updateEnqueueLinksPatternCache;
var useState = import_index2.default.useState;
var validateGlobPattern = import_index2.default.validateGlobPattern;
var validators = import_index2.default.validators;
var withCheckedStorageAccess = import_index2.default.withCheckedStorageAccess;
function bind(fn3, thisArg) {
  return function wrap() {
    return fn3.apply(thisArg, arguments);
  };
}
var { toString: toString3 } = Object.prototype;
var { getPrototypeOf } = Object;
var { iterator, toStringTag } = Symbol;
var kindOf = /* @__PURE__ */ ((cache) => (thing) => {
  const str = toString3.call(thing);
  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
})(/* @__PURE__ */ Object.create(null));
var kindOfTest = (type) => {
  type = type.toLowerCase();
  return (thing) => kindOf(thing) === type;
};
var typeOfTest = (type) => (thing) => typeof thing === type;
var { isArray: isArray2 } = Array;
var isUndefined2 = typeOfTest("undefined");
function isBuffer2(val) {
  return val !== null && !isUndefined2(val) && val.constructor !== null && !isUndefined2(val.constructor) && isFunction3(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}
var isArrayBuffer2 = kindOfTest("ArrayBuffer");
function isArrayBufferView(val) {
  let result;
  if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) {
    result = ArrayBuffer.isView(val);
  } else {
    result = val && val.buffer && isArrayBuffer2(val.buffer);
  }
  return result;
}
var isString2 = typeOfTest("string");
var isFunction3 = typeOfTest("function");
var isNumber2 = typeOfTest("number");
var isObject3 = (thing) => thing !== null && typeof thing === "object";
var isBoolean2 = (thing) => thing === true || thing === false;
var isPlainObject3 = (val) => {
  if (kindOf(val) !== "object") {
    return false;
  }
  const prototype2 = getPrototypeOf(val);
  return (prototype2 === null || prototype2 === Object.prototype || Object.getPrototypeOf(prototype2) === null) && !(toStringTag in val) && !(iterator in val);
};
var isEmptyObject2 = (val) => {
  if (!isObject3(val) || isBuffer2(val)) {
    return false;
  }
  try {
    return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;
  } catch (e2) {
    return false;
  }
};
var isDate2 = kindOfTest("Date");
var isFile2 = kindOfTest("File");
var isBlob2 = kindOfTest("Blob");
var isFileList = kindOfTest("FileList");
var isStream2 = (val) => isObject3(val) && isFunction3(val.pipe);
var isFormData4 = (thing) => {
  let kind;
  return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction3(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance
  kind === "object" && isFunction3(thing.toString) && thing.toString() === "[object FormData]"));
};
var isURLSearchParams = kindOfTest("URLSearchParams");
var [isReadableStream2, isRequest2, isResponse, isHeaders] = [
  "ReadableStream",
  "Request",
  "Response",
  "Headers"
].map(kindOfTest);
var trim = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
function forEach(obj, fn3, { allOwnKeys = false } = {}) {
  if (obj === null || typeof obj === "undefined") {
    return;
  }
  let i22;
  let l2;
  if (typeof obj !== "object") {
    obj = [obj];
  }
  if (isArray2(obj)) {
    for (i22 = 0, l2 = obj.length; i22 < l2; i22++) {
      fn3.call(null, obj[i22], i22, obj);
    }
  } else {
    if (isBuffer2(obj)) {
      return;
    }
    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
    const len = keys.length;
    let key;
    for (i22 = 0; i22 < len; i22++) {
      key = keys[i22];
      fn3.call(null, obj[key], key, obj);
    }
  }
}
function findKey(obj, key) {
  if (isBuffer2(obj)) {
    return null;
  }
  key = key.toLowerCase();
  const keys = Object.keys(obj);
  let i22 = keys.length;
  let _key;
  while (i22-- > 0) {
    _key = keys[i22];
    if (key === _key.toLowerCase()) {
      return _key;
    }
  }
  return null;
}
var _global = (() => {
  if (typeof globalThis !== "undefined") return globalThis;
  return typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : global;
})();
var isContextDefined = (context) => !isUndefined2(context) && context !== _global;
function merge() {
  const { caseless, skipUndefined } = isContextDefined(this) && this || {};
  const result = {};
  const assignValue = (val, key) => {
    if (key === "__proto__" || key === "constructor" || key === "prototype") {
      return;
    }
    const targetKey = caseless && findKey(result, key) || key;
    if (isPlainObject3(result[targetKey]) && isPlainObject3(val)) {
      result[targetKey] = merge(result[targetKey], val);
    } else if (isPlainObject3(val)) {
      result[targetKey] = merge({}, val);
    } else if (isArray2(val)) {
      result[targetKey] = val.slice();
    } else if (!skipUndefined || !isUndefined2(val)) {
      result[targetKey] = val;
    }
  };
  for (let i22 = 0, l2 = arguments.length; i22 < l2; i22++) {
    arguments[i22] && forEach(arguments[i22], assignValue);
  }
  return result;
}
var extend = (a2, b2, thisArg, { allOwnKeys } = {}) => {
  forEach(
    b2,
    (val, key) => {
      if (thisArg && isFunction3(val)) {
        Object.defineProperty(a2, key, {
          value: bind(val, thisArg),
          writable: true,
          enumerable: true,
          configurable: true
        });
      } else {
        Object.defineProperty(a2, key, {
          value: val,
          writable: true,
          enumerable: true,
          configurable: true
        });
      }
    },
    { allOwnKeys }
  );
  return a2;
};
var stripBOM = (content2) => {
  if (content2.charCodeAt(0) === 65279) {
    content2 = content2.slice(1);
  }
  return content2;
};
var inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(
    superConstructor.prototype,
    descriptors
  );
  Object.defineProperty(constructor.prototype, "constructor", {
    value: constructor,
    writable: true,
    enumerable: false,
    configurable: true
  });
  Object.defineProperty(constructor, "super", {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
};
var toFlatObject = (sourceObj, destObj, filter22, propFilter) => {
  let props;
  let i22;
  let prop;
  const merged = {};
  destObj = destObj || {};
  if (sourceObj == null) return destObj;
  do {
    props = Object.getOwnPropertyNames(sourceObj);
    i22 = props.length;
    while (i22-- > 0) {
      prop = props[i22];
      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
        destObj[prop] = sourceObj[prop];
        merged[prop] = true;
      }
    }
    sourceObj = filter22 !== false && getPrototypeOf(sourceObj);
  } while (sourceObj && (!filter22 || filter22(sourceObj, destObj)) && sourceObj !== Object.prototype);
  return destObj;
};
var endsWith = (str, searchString, position) => {
  str = String(str);
  if (position === void 0 || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  const lastIndex = str.indexOf(searchString, position);
  return lastIndex !== -1 && lastIndex === position;
};
var toArray = (thing) => {
  if (!thing) return null;
  if (isArray2(thing)) return thing;
  let i22 = thing.length;
  if (!isNumber2(i22)) return null;
  const arr = new Array(i22);
  while (i22-- > 0) {
    arr[i22] = thing[i22];
  }
  return arr;
};
var isTypedArray2 = /* @__PURE__ */ ((TypedArray) => {
  return (thing) => {
    return TypedArray && thing instanceof TypedArray;
  };
})(typeof Uint8Array !== "undefined" && getPrototypeOf(Uint8Array));
var forEachEntry = (obj, fn3) => {
  const generator2 = obj && obj[iterator];
  const _iterator = generator2.call(obj);
  let result;
  while ((result = _iterator.next()) && !result.done) {
    const pair = result.value;
    fn3.call(obj, pair[0], pair[1]);
  }
};
var matchAll = (regExp, str) => {
  let matches;
  const arr = [];
  while ((matches = regExp.exec(str)) !== null) {
    arr.push(matches);
  }
  return arr;
};
var isHTMLForm = kindOfTest("HTMLFormElement");
var toCamelCase = (str) => {
  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m2, p1, p2) {
    return p1.toUpperCase() + p2;
  });
};
var hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);
var isRegExp2 = kindOfTest("RegExp");
var reduceDescriptors = (obj, reducer) => {
  const descriptors = Object.getOwnPropertyDescriptors(obj);
  const reducedDescriptors = {};
  forEach(descriptors, (descriptor, name2) => {
    let ret;
    if ((ret = reducer(descriptor, name2, obj)) !== false) {
      reducedDescriptors[name2] = ret || descriptor;
    }
  });
  Object.defineProperties(obj, reducedDescriptors);
};
var freezeMethods = (obj) => {
  reduceDescriptors(obj, (descriptor, name2) => {
    if (isFunction3(obj) && ["arguments", "caller", "callee"].indexOf(name2) !== -1) {
      return false;
    }
    const value = obj[name2];
    if (!isFunction3(value)) return;
    descriptor.enumerable = false;
    if ("writable" in descriptor) {
      descriptor.writable = false;
      return;
    }
    if (!descriptor.set) {
      descriptor.set = () => {
        throw Error("Can not rewrite read-only method '" + name2 + "'");
      };
    }
  });
};
var toObjectSet = (arrayOrString, delimiter) => {
  const obj = {};
  const define2 = (arr) => {
    arr.forEach((value) => {
      obj[value] = true;
    });
  };
  isArray2(arrayOrString) ? define2(arrayOrString) : define2(String(arrayOrString).split(delimiter));
  return obj;
};
var noop4 = () => {
};
var toFiniteNumber = (value, defaultValue) => {
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
};
function isSpecCompliantForm(thing) {
  return !!(thing && isFunction3(thing.append) && thing[toStringTag] === "FormData" && thing[iterator]);
}
var toJSONObject = (obj) => {
  const stack = new Array(10);
  const visit = (source, i22) => {
    if (isObject3(source)) {
      if (stack.indexOf(source) >= 0) {
        return;
      }
      if (isBuffer2(source)) {
        return source;
      }
      if (!("toJSON" in source)) {
        stack[i22] = source;
        const target = isArray2(source) ? [] : {};
        forEach(source, (value, key) => {
          const reducedValue = visit(value, i22 + 1);
          !isUndefined2(reducedValue) && (target[key] = reducedValue);
        });
        stack[i22] = void 0;
        return target;
      }
    }
    return source;
  };
  return visit(obj, 0);
};
var isAsyncFn = kindOfTest("AsyncFunction");
var isThenable = (thing) => thing && (isObject3(thing) || isFunction3(thing)) && isFunction3(thing.then) && isFunction3(thing.catch);
var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
  if (setImmediateSupported) {
    return setImmediate;
  }
  return postMessageSupported ? ((token2, callbacks) => {
    _global.addEventListener(
      "message",
      ({ source, data }) => {
        if (source === _global && data === token2) {
          callbacks.length && callbacks.shift()();
        }
      },
      false
    );
    return (cb) => {
      callbacks.push(cb);
      _global.postMessage(token2, "*");
    };
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
})(typeof setImmediate === "function", isFunction3(_global.postMessage));
var asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate;
var isIterable3 = (thing) => thing != null && isFunction3(thing[iterator]);
var utils_default = {
  isArray: isArray2,
  isArrayBuffer: isArrayBuffer2,
  isBuffer: isBuffer2,
  isFormData: isFormData4,
  isArrayBufferView,
  isString: isString2,
  isNumber: isNumber2,
  isBoolean: isBoolean2,
  isObject: isObject3,
  isPlainObject: isPlainObject3,
  isEmptyObject: isEmptyObject2,
  isReadableStream: isReadableStream2,
  isRequest: isRequest2,
  isResponse,
  isHeaders,
  isUndefined: isUndefined2,
  isDate: isDate2,
  isFile: isFile2,
  isBlob: isBlob2,
  isRegExp: isRegExp2,
  isFunction: isFunction3,
  isStream: isStream2,
  isURLSearchParams,
  isTypedArray: isTypedArray2,
  isFileList,
  forEach,
  merge,
  extend,
  trim,
  stripBOM,
  inherits,
  toFlatObject,
  kindOf,
  kindOfTest,
  endsWith,
  toArray,
  forEachEntry,
  matchAll,
  isHTMLForm,
  hasOwnProperty,
  hasOwnProp: hasOwnProperty,
  // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors,
  freezeMethods,
  toObjectSet,
  toCamelCase,
  noop: noop4,
  toFiniteNumber,
  findKey,
  global: _global,
  isContextDefined,
  isSpecCompliantForm,
  toJSONObject,
  isAsyncFn,
  isThenable,
  setImmediate: _setImmediate,
  asap,
  isIterable: isIterable3
};
var AxiosError = class _AxiosError extends Error {
  static from(error, code, config, request, response, customProps) {
    const axiosError = new _AxiosError(error.message, code || error.code, config, request, response);
    axiosError.cause = error;
    axiosError.name = error.name;
    customProps && Object.assign(axiosError, customProps);
    return axiosError;
  }
  /**
   * Create an Error with the specified message, config, error code, request and response.
   *
   * @param {string} message The error message.
   * @param {string} [code] The error code (for example, 'ECONNABORTED').
   * @param {Object} [config] The config.
   * @param {Object} [request] The request.
   * @param {Object} [response] The response.
   *
   * @returns {Error} The created error.
   */
  constructor(message, code, config, request, response) {
    super(message);
    this.name = "AxiosError";
    this.isAxiosError = true;
    code && (this.code = code);
    config && (this.config = config);
    request && (this.request = request);
    if (response) {
      this.response = response;
      this.status = response.status;
    }
  }
  toJSON() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: utils_default.toJSONObject(this.config),
      code: this.code,
      status: this.status
    };
  }
};
AxiosError.ERR_BAD_OPTION_VALUE = "ERR_BAD_OPTION_VALUE";
AxiosError.ERR_BAD_OPTION = "ERR_BAD_OPTION";
AxiosError.ECONNABORTED = "ECONNABORTED";
AxiosError.ETIMEDOUT = "ETIMEDOUT";
AxiosError.ERR_NETWORK = "ERR_NETWORK";
AxiosError.ERR_FR_TOO_MANY_REDIRECTS = "ERR_FR_TOO_MANY_REDIRECTS";
AxiosError.ERR_DEPRECATED = "ERR_DEPRECATED";
AxiosError.ERR_BAD_RESPONSE = "ERR_BAD_RESPONSE";
AxiosError.ERR_BAD_REQUEST = "ERR_BAD_REQUEST";
AxiosError.ERR_CANCELED = "ERR_CANCELED";
AxiosError.ERR_NOT_SUPPORT = "ERR_NOT_SUPPORT";
AxiosError.ERR_INVALID_URL = "ERR_INVALID_URL";
var AxiosError_default = AxiosError;
var import_form_data = __toESM2(require_form_data(), 1);
var FormData_default = import_form_data.default;
function isVisitable(thing) {
  return utils_default.isPlainObject(thing) || utils_default.isArray(thing);
}
function removeBrackets(key) {
  return utils_default.endsWith(key, "[]") ? key.slice(0, -2) : key;
}
function renderKey(path22, key, dots) {
  if (!path22) return key;
  return path22.concat(key).map(function each(token2, i22) {
    token2 = removeBrackets(token2);
    return !dots && i22 ? "[" + token2 + "]" : token2;
  }).join(dots ? "." : "");
}
function isFlatArray(arr) {
  return utils_default.isArray(arr) && !arr.some(isVisitable);
}
var predicates2 = utils_default.toFlatObject(utils_default, {}, null, function filter(prop) {
  return /^is[A-Z]/.test(prop);
});
function toFormData(obj, formData, options) {
  if (!utils_default.isObject(obj)) {
    throw new TypeError("target must be an object");
  }
  formData = formData || new (FormData_default || FormData)();
  options = utils_default.toFlatObject(options, {
    metaTokens: true,
    dots: false,
    indexes: false
  }, false, function defined(option2, source) {
    return !utils_default.isUndefined(source[option2]);
  });
  const metaTokens = options.metaTokens;
  const visitor = options.visitor || defaultVisitor;
  const dots = options.dots;
  const indexes = options.indexes;
  const _Blob = options.Blob || typeof Blob !== "undefined" && Blob;
  const useBlob = _Blob && utils_default.isSpecCompliantForm(formData);
  if (!utils_default.isFunction(visitor)) {
    throw new TypeError("visitor must be a function");
  }
  function convertValue(value) {
    if (value === null) return "";
    if (utils_default.isDate(value)) {
      return value.toISOString();
    }
    if (utils_default.isBoolean(value)) {
      return value.toString();
    }
    if (!useBlob && utils_default.isBlob(value)) {
      throw new AxiosError_default("Blob is not supported. Use a Buffer instead.");
    }
    if (utils_default.isArrayBuffer(value) || utils_default.isTypedArray(value)) {
      return useBlob && typeof Blob === "function" ? new Blob([value]) : Buffer.from(value);
    }
    return value;
  }
  function defaultVisitor(value, key, path22) {
    let arr = value;
    if (value && !path22 && typeof value === "object") {
      if (utils_default.endsWith(key, "{}")) {
        key = metaTokens ? key : key.slice(0, -2);
        value = JSON.stringify(value);
      } else if (utils_default.isArray(value) && isFlatArray(value) || (utils_default.isFileList(value) || utils_default.endsWith(key, "[]")) && (arr = utils_default.toArray(value))) {
        key = removeBrackets(key);
        arr.forEach(function each(el, index) {
          !(utils_default.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + "[]",
            convertValue(el)
          );
        });
        return false;
      }
    }
    if (isVisitable(value)) {
      return true;
    }
    formData.append(renderKey(path22, key, dots), convertValue(value));
    return false;
  }
  const stack = [];
  const exposedHelpers = Object.assign(predicates2, {
    defaultVisitor,
    convertValue,
    isVisitable
  });
  function build(value, path22) {
    if (utils_default.isUndefined(value)) return;
    if (stack.indexOf(value) !== -1) {
      throw Error("Circular reference detected in " + path22.join("."));
    }
    stack.push(value);
    utils_default.forEach(value, function each(el, key) {
      const result = !(utils_default.isUndefined(el) || el === null) && visitor.call(
        formData,
        el,
        utils_default.isString(key) ? key.trim() : key,
        path22,
        exposedHelpers
      );
      if (result === true) {
        build(el, path22 ? path22.concat(key) : [key]);
      }
    });
    stack.pop();
  }
  if (!utils_default.isObject(obj)) {
    throw new TypeError("data must be an object");
  }
  build(obj);
  return formData;
}
var toFormData_default = toFormData;
function encode(str) {
  const charMap = {
    "!": "%21",
    "'": "%27",
    "(": "%28",
    ")": "%29",
    "~": "%7E",
    "%20": "+",
    "%00": "\0"
  };
  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
    return charMap[match];
  });
}
function AxiosURLSearchParams(params, options) {
  this._pairs = [];
  params && toFormData_default(params, this, options);
}
var prototype = AxiosURLSearchParams.prototype;
prototype.append = function append(name2, value) {
  this._pairs.push([name2, value]);
};
prototype.toString = function toString4(encoder) {
  const _encode = encoder ? function(value) {
    return encoder.call(this, value, encode);
  } : encode;
  return this._pairs.map(function each(pair) {
    return _encode(pair[0]) + "=" + _encode(pair[1]);
  }, "").join("&");
};
var AxiosURLSearchParams_default = AxiosURLSearchParams;
function encode2(val) {
  return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+");
}
function buildURL(url2, params, options) {
  if (!params) {
    return url2;
  }
  const _encode = options && options.encode || encode2;
  const _options2 = utils_default.isFunction(options) ? {
    serialize: options
  } : options;
  const serializeFn = _options2 && _options2.serialize;
  let serializedParams;
  if (serializeFn) {
    serializedParams = serializeFn(params, _options2);
  } else {
    serializedParams = utils_default.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams_default(params, _options2).toString(_encode);
  }
  if (serializedParams) {
    const hashmarkIndex = url2.indexOf("#");
    if (hashmarkIndex !== -1) {
      url2 = url2.slice(0, hashmarkIndex);
    }
    url2 += (url2.indexOf("?") === -1 ? "?" : "&") + serializedParams;
  }
  return url2;
}
var InterceptorManager = class {
  constructor() {
    this.handlers = [];
  }
  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   * @param {Object} options The options for the interceptor, synchronous and runWhen
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(fulfilled, rejected, options) {
    this.handlers.push({
      fulfilled,
      rejected,
      synchronous: options ? options.synchronous : false,
      runWhen: options ? options.runWhen : null
    });
    return this.handlers.length - 1;
  }
  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {void}
   */
  eject(id) {
    if (this.handlers[id]) {
      this.handlers[id] = null;
    }
  }
  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    if (this.handlers) {
      this.handlers = [];
    }
  }
  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(fn3) {
    utils_default.forEach(this.handlers, function forEachHandler(h23) {
      if (h23 !== null) {
        fn3(h23);
      }
    });
  }
};
var InterceptorManager_default = InterceptorManager;
var transitional_default = {
  silentJSONParsing: true,
  forcedJSONParsing: true,
  clarifyTimeoutError: false,
  legacyInterceptorReqResOrdering: true
};
var URLSearchParams_default = import_url.default.URLSearchParams;
var ALPHA = "abcdefghijklmnopqrstuvwxyz";
var DIGIT = "0123456789";
var ALPHABET = {
  DIGIT,
  ALPHA,
  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
};
var generateString = (size = 16, alphabet2 = ALPHABET.ALPHA_DIGIT) => {
  let str = "";
  const { length } = alphabet2;
  const randomValues = new Uint32Array(size);
  import_crypto.default.randomFillSync(randomValues);
  for (let i22 = 0; i22 < size; i22++) {
    str += alphabet2[randomValues[i22] % length];
  }
  return str;
};
var node_default = {
  isNode: true,
  classes: {
    URLSearchParams: URLSearchParams_default,
    FormData: FormData_default,
    Blob: typeof Blob !== "undefined" && Blob || null
  },
  ALPHABET,
  generateString,
  protocols: ["http", "https", "file", "data"]
};
var utils_exports = {};
__export2(utils_exports, {
  hasBrowserEnv: () => hasBrowserEnv,
  hasStandardBrowserEnv: () => hasStandardBrowserEnv,
  hasStandardBrowserWebWorkerEnv: () => hasStandardBrowserWebWorkerEnv,
  navigator: () => _navigator,
  origin: () => origin
});
var hasBrowserEnv = typeof window !== "undefined" && typeof document !== "undefined";
var _navigator = typeof navigator === "object" && navigator || void 0;
var hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ["ReactNative", "NativeScript", "NS"].indexOf(_navigator.product) < 0);
var hasStandardBrowserWebWorkerEnv = (() => {
  return typeof WorkerGlobalScope !== "undefined" && // eslint-disable-next-line no-undef
  self instanceof WorkerGlobalScope && typeof self.importScripts === "function";
})();
var origin = hasBrowserEnv && window.location.href || "http://localhost";
var platform_default = {
  ...utils_exports,
  ...node_default
};
function toURLEncodedForm(data, options) {
  return toFormData_default(data, new platform_default.classes.URLSearchParams(), {
    visitor: function(value, key, path22, helpers) {
      if (platform_default.isNode && utils_default.isBuffer(value)) {
        this.append(key, value.toString("base64"));
        return false;
      }
      return helpers.defaultVisitor.apply(this, arguments);
    },
    ...options
  });
}
function parsePropPath(name2) {
  return utils_default.matchAll(/\w+|\[(\w*)]/g, name2).map((match) => {
    return match[0] === "[]" ? "" : match[1] || match[0];
  });
}
function arrayToObject(arr) {
  const obj = {};
  const keys = Object.keys(arr);
  let i22;
  const len = keys.length;
  let key;
  for (i22 = 0; i22 < len; i22++) {
    key = keys[i22];
    obj[key] = arr[key];
  }
  return obj;
}
function formDataToJSON(formData) {
  function buildPath(path22, value, target, index) {
    let name2 = path22[index++];
    if (name2 === "__proto__") return true;
    const isNumericKey = Number.isFinite(+name2);
    const isLast = index >= path22.length;
    name2 = !name2 && utils_default.isArray(target) ? target.length : name2;
    if (isLast) {
      if (utils_default.hasOwnProp(target, name2)) {
        target[name2] = [target[name2], value];
      } else {
        target[name2] = value;
      }
      return !isNumericKey;
    }
    if (!target[name2] || !utils_default.isObject(target[name2])) {
      target[name2] = [];
    }
    const result = buildPath(path22, value, target[name2], index);
    if (result && utils_default.isArray(target[name2])) {
      target[name2] = arrayToObject(target[name2]);
    }
    return !isNumericKey;
  }
  if (utils_default.isFormData(formData) && utils_default.isFunction(formData.entries)) {
    const obj = {};
    utils_default.forEachEntry(formData, (name2, value) => {
      buildPath(parsePropPath(name2), value, obj, 0);
    });
    return obj;
  }
  return null;
}
var formDataToJSON_default = formDataToJSON;
function stringifySafely(rawValue, parser, encoder) {
  if (utils_default.isString(rawValue)) {
    try {
      (parser || JSON.parse)(rawValue);
      return utils_default.trim(rawValue);
    } catch (e2) {
      if (e2.name !== "SyntaxError") {
        throw e2;
      }
    }
  }
  return (encoder || JSON.stringify)(rawValue);
}
var defaults3 = {
  transitional: transitional_default,
  adapter: ["xhr", "http", "fetch"],
  transformRequest: [function transformRequest(data, headers) {
    const contentType = headers.getContentType() || "";
    const hasJSONContentType = contentType.indexOf("application/json") > -1;
    const isObjectPayload = utils_default.isObject(data);
    if (isObjectPayload && utils_default.isHTMLForm(data)) {
      data = new FormData(data);
    }
    const isFormData5 = utils_default.isFormData(data);
    if (isFormData5) {
      return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data)) : data;
    }
    if (utils_default.isArrayBuffer(data) || utils_default.isBuffer(data) || utils_default.isStream(data) || utils_default.isFile(data) || utils_default.isBlob(data) || utils_default.isReadableStream(data)) {
      return data;
    }
    if (utils_default.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils_default.isURLSearchParams(data)) {
      headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false);
      return data.toString();
    }
    let isFileList2;
    if (isObjectPayload) {
      if (contentType.indexOf("application/x-www-form-urlencoded") > -1) {
        return toURLEncodedForm(data, this.formSerializer).toString();
      }
      if ((isFileList2 = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) {
        const _FormData = this.env && this.env.FormData;
        return toFormData_default(
          isFileList2 ? { "files[]": data } : data,
          _FormData && new _FormData(),
          this.formSerializer
        );
      }
    }
    if (isObjectPayload || hasJSONContentType) {
      headers.setContentType("application/json", false);
      return stringifySafely(data);
    }
    return data;
  }],
  transformResponse: [function transformResponse(data) {
    const transitional2 = this.transitional || defaults3.transitional;
    const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing;
    const JSONRequested = this.responseType === "json";
    if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) {
      return data;
    }
    if (data && utils_default.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
      const silentJSONParsing = transitional2 && transitional2.silentJSONParsing;
      const strictJSONParsing = !silentJSONParsing && JSONRequested;
      try {
        return JSON.parse(data, this.parseReviver);
      } catch (e2) {
        if (strictJSONParsing) {
          if (e2.name === "SyntaxError") {
            throw AxiosError_default.from(e2, AxiosError_default.ERR_BAD_RESPONSE, this, null, this.response);
          }
          throw e2;
        }
      }
    }
    return data;
  }],
  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,
  xsrfCookieName: "XSRF-TOKEN",
  xsrfHeaderName: "X-XSRF-TOKEN",
  maxContentLength: -1,
  maxBodyLength: -1,
  env: {
    FormData: platform_default.classes.FormData,
    Blob: platform_default.classes.Blob
  },
  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },
  headers: {
    common: {
      "Accept": "application/json, text/plain, */*",
      "Content-Type": void 0
    }
  }
};
utils_default.forEach(["delete", "get", "head", "post", "put", "patch"], (method) => {
  defaults3.headers[method] = {};
});
var defaults_default = defaults3;
var ignoreDuplicateOf = utils_default.toObjectSet([
  "age",
  "authorization",
  "content-length",
  "content-type",
  "etag",
  "expires",
  "from",
  "host",
  "if-modified-since",
  "if-unmodified-since",
  "last-modified",
  "location",
  "max-forwards",
  "proxy-authorization",
  "referer",
  "retry-after",
  "user-agent"
]);
var parseHeaders_default = (rawHeaders) => {
  const parsed = {};
  let key;
  let val;
  let i22;
  rawHeaders && rawHeaders.split("\n").forEach(function parser(line) {
    i22 = line.indexOf(":");
    key = line.substring(0, i22).trim().toLowerCase();
    val = line.substring(i22 + 1).trim();
    if (!key || parsed[key] && ignoreDuplicateOf[key]) {
      return;
    }
    if (key === "set-cookie") {
      if (parsed[key]) {
        parsed[key].push(val);
      } else {
        parsed[key] = [val];
      }
    } else {
      parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
    }
  });
  return parsed;
};
var $internals = Symbol("internals");
function normalizeHeader(header2) {
  return header2 && String(header2).trim().toLowerCase();
}
function normalizeValue2(value) {
  if (value === false || value == null) {
    return value;
  }
  return utils_default.isArray(value) ? value.map(normalizeValue2) : String(value);
}
function parseTokens(str) {
  const tokens = /* @__PURE__ */ Object.create(null);
  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let match;
  while (match = tokensRE.exec(str)) {
    tokens[match[1]] = match[2];
  }
  return tokens;
}
var isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
function matchHeaderValue(context, value, header2, filter22, isHeaderNameFilter) {
  if (utils_default.isFunction(filter22)) {
    return filter22.call(this, value, header2);
  }
  if (isHeaderNameFilter) {
    value = header2;
  }
  if (!utils_default.isString(value)) return;
  if (utils_default.isString(filter22)) {
    return value.indexOf(filter22) !== -1;
  }
  if (utils_default.isRegExp(filter22)) {
    return filter22.test(value);
  }
}
function formatHeader(header2) {
  return header2.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w3, char, str) => {
    return char.toUpperCase() + str;
  });
}
function buildAccessors(obj, header2) {
  const accessorName = utils_default.toCamelCase(" " + header2);
  ["get", "set", "has"].forEach((methodName) => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header2, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}
var AxiosHeaders = class {
  constructor(headers) {
    headers && this.set(headers);
  }
  set(header2, valueOrRewrite, rewrite) {
    const self2 = this;
    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);
      if (!lHeader) {
        throw new Error("header name must be a non-empty string");
      }
      const key = utils_default.findKey(self2, lHeader);
      if (!key || self2[key] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key] !== false) {
        self2[key || _header] = normalizeValue2(_value);
      }
    }
    const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
    if (utils_default.isPlainObject(header2) || header2 instanceof this.constructor) {
      setHeaders(header2, valueOrRewrite);
    } else if (utils_default.isString(header2) && (header2 = header2.trim()) && !isValidHeaderName(header2)) {
      setHeaders(parseHeaders_default(header2), valueOrRewrite);
    } else if (utils_default.isObject(header2) && utils_default.isIterable(header2)) {
      let obj = {}, dest, key;
      for (const entry of header2) {
        if (!utils_default.isArray(entry)) {
          throw TypeError("Object iterator must return a key-value pair");
        }
        obj[key = entry[0]] = (dest = obj[key]) ? utils_default.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];
      }
      setHeaders(obj, valueOrRewrite);
    } else {
      header2 != null && setHeader(valueOrRewrite, header2, rewrite);
    }
    return this;
  }
  get(header2, parser) {
    header2 = normalizeHeader(header2);
    if (header2) {
      const key = utils_default.findKey(this, header2);
      if (key) {
        const value = this[key];
        if (!parser) {
          return value;
        }
        if (parser === true) {
          return parseTokens(value);
        }
        if (utils_default.isFunction(parser)) {
          return parser.call(this, value, key);
        }
        if (utils_default.isRegExp(parser)) {
          return parser.exec(value);
        }
        throw new TypeError("parser must be boolean|regexp|function");
      }
    }
  }
  has(header2, matcher) {
    header2 = normalizeHeader(header2);
    if (header2) {
      const key = utils_default.findKey(this, header2);
      return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
    }
    return false;
  }
  delete(header2, matcher) {
    const self2 = this;
    let deleted = false;
    function deleteHeader(_header) {
      _header = normalizeHeader(_header);
      if (_header) {
        const key = utils_default.findKey(self2, _header);
        if (key && (!matcher || matchHeaderValue(self2, self2[key], key, matcher))) {
          delete self2[key];
          deleted = true;
        }
      }
    }
    if (utils_default.isArray(header2)) {
      header2.forEach(deleteHeader);
    } else {
      deleteHeader(header2);
    }
    return deleted;
  }
  clear(matcher) {
    const keys = Object.keys(this);
    let i22 = keys.length;
    let deleted = false;
    while (i22--) {
      const key = keys[i22];
      if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
        delete this[key];
        deleted = true;
      }
    }
    return deleted;
  }
  normalize(format) {
    const self2 = this;
    const headers = {};
    utils_default.forEach(this, (value, header2) => {
      const key = utils_default.findKey(headers, header2);
      if (key) {
        self2[key] = normalizeValue2(value);
        delete self2[header2];
        return;
      }
      const normalized = format ? formatHeader(header2) : String(header2).trim();
      if (normalized !== header2) {
        delete self2[header2];
      }
      self2[normalized] = normalizeValue2(value);
      headers[normalized] = true;
    });
    return this;
  }
  concat(...targets) {
    return this.constructor.concat(this, ...targets);
  }
  toJSON(asStrings) {
    const obj = /* @__PURE__ */ Object.create(null);
    utils_default.forEach(this, (value, header2) => {
      value != null && value !== false && (obj[header2] = asStrings && utils_default.isArray(value) ? value.join(", ") : value);
    });
    return obj;
  }
  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }
  toString() {
    return Object.entries(this.toJSON()).map(([header2, value]) => header2 + ": " + value).join("\n");
  }
  getSetCookie() {
    return this.get("set-cookie") || [];
  }
  get [Symbol.toStringTag]() {
    return "AxiosHeaders";
  }
  static from(thing) {
    return thing instanceof this ? thing : new this(thing);
  }
  static concat(first, ...targets) {
    const computed = new this(first);
    targets.forEach((target) => computed.set(target));
    return computed;
  }
  static accessor(header2) {
    const internals = this[$internals] = this[$internals] = {
      accessors: {}
    };
    const accessors = internals.accessors;
    const prototype2 = this.prototype;
    function defineAccessor(_header) {
      const lHeader = normalizeHeader(_header);
      if (!accessors[lHeader]) {
        buildAccessors(prototype2, _header);
        accessors[lHeader] = true;
      }
    }
    utils_default.isArray(header2) ? header2.forEach(defineAccessor) : defineAccessor(header2);
    return this;
  }
};
AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
utils_default.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {
  let mapped = key[0].toUpperCase() + key.slice(1);
  return {
    get: () => value,
    set(headerValue) {
      this[mapped] = headerValue;
    }
  };
});
utils_default.freezeMethods(AxiosHeaders);
var AxiosHeaders_default = AxiosHeaders;
function transformData(fns, response) {
  const config = this || defaults_default;
  const context = response || config;
  const headers = AxiosHeaders_default.from(context.headers);
  let data = context.data;
  utils_default.forEach(fns, function transform(fn3) {
    data = fn3.call(config, data, headers.normalize(), response ? response.status : void 0);
  });
  headers.normalize();
  return data;
}
function isCancel(value) {
  return !!(value && value.__CANCEL__);
}
var CanceledError = class extends AxiosError_default {
  /**
   * A `CanceledError` is an object that is thrown when an operation is canceled.
   *
   * @param {string=} message The message.
   * @param {Object=} config The config.
   * @param {Object=} request The request.
   *
   * @returns {CanceledError} The created error.
   */
  constructor(message, config, request) {
    super(message == null ? "canceled" : message, AxiosError_default.ERR_CANCELED, config, request);
    this.name = "CanceledError";
    this.__CANCEL__ = true;
  }
};
var CanceledError_default = CanceledError;
function settle(resolve2, reject, response) {
  const validateStatus2 = response.config.validateStatus;
  if (!response.status || !validateStatus2 || validateStatus2(response.status)) {
    resolve2(response);
  } else {
    reject(new AxiosError_default(
      "Request failed with status code " + response.status,
      [AxiosError_default.ERR_BAD_REQUEST, AxiosError_default.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
      response.config,
      response.request,
      response
    ));
  }
}
function isAbsoluteURL(url2) {
  if (typeof url2 !== "string") {
    return false;
  }
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url2);
}
function combineURLs(baseURL, relativeURL) {
  return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL;
}
function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
  let isRelativeUrl = !isAbsoluteURL(requestedURL);
  if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
    return combineURLs(baseURL, requestedURL);
  }
  return requestedURL;
}
var import_proxy_from_env = __toESM2(require_proxy_from_env(), 1);
var import_follow_redirects = __toESM2(require_follow_redirects(), 1);
var VERSION = "1.13.5";
function parseProtocol(url2) {
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url2);
  return match && match[1] || "";
}
var DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;
function fromDataURI(uri, asBlob, options) {
  const _Blob = options && options.Blob || platform_default.classes.Blob;
  const protocol = parseProtocol(uri);
  if (asBlob === void 0 && _Blob) {
    asBlob = true;
  }
  if (protocol === "data") {
    uri = protocol.length ? uri.slice(protocol.length + 1) : uri;
    const match = DATA_URL_PATTERN.exec(uri);
    if (!match) {
      throw new AxiosError_default("Invalid URL", AxiosError_default.ERR_INVALID_URL);
    }
    const mime = match[1];
    const isBase64 = match[2];
    const body = match[3];
    const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? "base64" : "utf8");
    if (asBlob) {
      if (!_Blob) {
        throw new AxiosError_default("Blob is not supported", AxiosError_default.ERR_NOT_SUPPORT);
      }
      return new _Blob([buffer], { type: mime });
    }
    return buffer;
  }
  throw new AxiosError_default("Unsupported protocol " + protocol, AxiosError_default.ERR_NOT_SUPPORT);
}
var kInternals = Symbol("internals");
var AxiosTransformStream = class extends import_stream2.default.Transform {
  constructor(options) {
    options = utils_default.toFlatObject(options, {
      maxRate: 0,
      chunkSize: 64 * 1024,
      minChunkSize: 100,
      timeWindow: 500,
      ticksRate: 2,
      samplesCount: 15
    }, null, (prop, source) => {
      return !utils_default.isUndefined(source[prop]);
    });
    super({
      readableHighWaterMark: options.chunkSize
    });
    const internals = this[kInternals] = {
      timeWindow: options.timeWindow,
      chunkSize: options.chunkSize,
      maxRate: options.maxRate,
      minChunkSize: options.minChunkSize,
      bytesSeen: 0,
      isCaptured: false,
      notifiedBytesLoaded: 0,
      ts: Date.now(),
      bytes: 0,
      onReadCallback: null
    };
    this.on("newListener", (event) => {
      if (event === "progress") {
        if (!internals.isCaptured) {
          internals.isCaptured = true;
        }
      }
    });
  }
  _read(size) {
    const internals = this[kInternals];
    if (internals.onReadCallback) {
      internals.onReadCallback();
    }
    return super._read(size);
  }
  _transform(chunk2, encoding, callback) {
    const internals = this[kInternals];
    const maxRate = internals.maxRate;
    const readableHighWaterMark = this.readableHighWaterMark;
    const timeWindow = internals.timeWindow;
    const divider = 1e3 / timeWindow;
    const bytesThreshold = maxRate / divider;
    const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;
    const pushChunk = (_chunk, _callback) => {
      const bytes = Buffer.byteLength(_chunk);
      internals.bytesSeen += bytes;
      internals.bytes += bytes;
      internals.isCaptured && this.emit("progress", internals.bytesSeen);
      if (this.push(_chunk)) {
        process.nextTick(_callback);
      } else {
        internals.onReadCallback = () => {
          internals.onReadCallback = null;
          process.nextTick(_callback);
        };
      }
    };
    const transformChunk = (_chunk, _callback) => {
      const chunkSize = Buffer.byteLength(_chunk);
      let chunkRemainder = null;
      let maxChunkSize = readableHighWaterMark;
      let bytesLeft;
      let passed = 0;
      if (maxRate) {
        const now = Date.now();
        if (!internals.ts || (passed = now - internals.ts) >= timeWindow) {
          internals.ts = now;
          bytesLeft = bytesThreshold - internals.bytes;
          internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;
          passed = 0;
        }
        bytesLeft = bytesThreshold - internals.bytes;
      }
      if (maxRate) {
        if (bytesLeft <= 0) {
          return setTimeout(() => {
            _callback(null, _chunk);
          }, timeWindow - passed);
        }
        if (bytesLeft < maxChunkSize) {
          maxChunkSize = bytesLeft;
        }
      }
      if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) {
        chunkRemainder = _chunk.subarray(maxChunkSize);
        _chunk = _chunk.subarray(0, maxChunkSize);
      }
      pushChunk(_chunk, chunkRemainder ? () => {
        process.nextTick(_callback, null, chunkRemainder);
      } : _callback);
    };
    transformChunk(chunk2, function transformNextChunk(err2, _chunk) {
      if (err2) {
        return callback(err2);
      }
      if (_chunk) {
        transformChunk(_chunk, transformNextChunk);
      } else {
        callback(null);
      }
    });
  }
};
var AxiosTransformStream_default = AxiosTransformStream;
var { asyncIterator } = Symbol;
var readBlob = async function* (blob) {
  if (blob.stream) {
    yield* blob.stream();
  } else if (blob.arrayBuffer) {
    yield await blob.arrayBuffer();
  } else if (blob[asyncIterator]) {
    yield* blob[asyncIterator]();
  } else {
    yield blob;
  }
};
var readBlob_default = readBlob;
var BOUNDARY_ALPHABET = platform_default.ALPHABET.ALPHA_DIGIT + "-_";
var textEncoder3 = typeof TextEncoder === "function" ? new TextEncoder() : new import_util2.default.TextEncoder();
var CRLF = "\r\n";
var CRLF_BYTES = textEncoder3.encode(CRLF);
var CRLF_BYTES_COUNT = 2;
var FormDataPart = class {
  constructor(name2, value) {
    const { escapeName: escapeName2 } = this.constructor;
    const isStringValue = utils_default.isString(value);
    let headers = `Content-Disposition: form-data; name="${escapeName2(name2)}"${!isStringValue && value.name ? `; filename="${escapeName2(value.name)}"` : ""}${CRLF}`;
    if (isStringValue) {
      value = textEncoder3.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF));
    } else {
      headers += `Content-Type: ${value.type || "application/octet-stream"}${CRLF}`;
    }
    this.headers = textEncoder3.encode(headers + CRLF);
    this.contentLength = isStringValue ? value.byteLength : value.size;
    this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;
    this.name = name2;
    this.value = value;
  }
  async *encode() {
    yield this.headers;
    const { value } = this;
    if (utils_default.isTypedArray(value)) {
      yield value;
    } else {
      yield* readBlob_default(value);
    }
    yield CRLF_BYTES;
  }
  static escapeName(name2) {
    return String(name2).replace(/[\r\n"]/g, (match) => ({
      "\r": "%0D",
      "\n": "%0A",
      '"': "%22"
    })[match]);
  }
};
var formDataToStream = (form, headersHandler, options) => {
  const {
    tag = "form-data-boundary",
    size = 25,
    boundary = tag + "-" + platform_default.generateString(size, BOUNDARY_ALPHABET)
  } = options || {};
  if (!utils_default.isFormData(form)) {
    throw TypeError("FormData instance required");
  }
  if (boundary.length < 1 || boundary.length > 70) {
    throw Error("boundary must be 10-70 characters long");
  }
  const boundaryBytes = textEncoder3.encode("--" + boundary + CRLF);
  const footerBytes = textEncoder3.encode("--" + boundary + "--" + CRLF);
  let contentLength = footerBytes.byteLength;
  const parts = Array.from(form.entries()).map(([name2, value]) => {
    const part = new FormDataPart(name2, value);
    contentLength += part.size;
    return part;
  });
  contentLength += boundaryBytes.byteLength * parts.length;
  contentLength = utils_default.toFiniteNumber(contentLength);
  const computedHeaders = {
    "Content-Type": `multipart/form-data; boundary=${boundary}`
  };
  if (Number.isFinite(contentLength)) {
    computedHeaders["Content-Length"] = contentLength;
  }
  headersHandler && headersHandler(computedHeaders);
  return import_stream3.Readable.from((async function* () {
    for (const part of parts) {
      yield boundaryBytes;
      yield* part.encode();
    }
    yield footerBytes;
  })());
};
var formDataToStream_default = formDataToStream;
var ZlibHeaderTransformStream = class extends import_stream4.default.Transform {
  __transform(chunk2, encoding, callback) {
    this.push(chunk2);
    callback();
  }
  _transform(chunk2, encoding, callback) {
    if (chunk2.length !== 0) {
      this._transform = this.__transform;
      if (chunk2[0] !== 120) {
        const header2 = Buffer.alloc(2);
        header2[0] = 120;
        header2[1] = 156;
        this.push(header2, encoding);
      }
    }
    this.__transform(chunk2, encoding, callback);
  }
};
var ZlibHeaderTransformStream_default = ZlibHeaderTransformStream;
var callbackify = (fn3, reducer) => {
  return utils_default.isAsyncFn(fn3) ? function(...args) {
    const cb = args.pop();
    fn3.apply(this, args).then((value) => {
      try {
        reducer ? cb(null, ...reducer(value)) : cb(null, value);
      } catch (err2) {
        cb(err2);
      }
    }, cb);
  } : fn3;
};
var callbackify_default = callbackify;
function speedometer(samplesCount, min) {
  samplesCount = samplesCount || 10;
  const bytes = new Array(samplesCount);
  const timestamps = new Array(samplesCount);
  let head = 0;
  let tail = 0;
  let firstSampleTS;
  min = min !== void 0 ? min : 1e3;
  return function push(chunkLength) {
    const now = Date.now();
    const startedAt = timestamps[tail];
    if (!firstSampleTS) {
      firstSampleTS = now;
    }
    bytes[head] = chunkLength;
    timestamps[head] = now;
    let i22 = tail;
    let bytesCount = 0;
    while (i22 !== head) {
      bytesCount += bytes[i22++];
      i22 = i22 % samplesCount;
    }
    head = (head + 1) % samplesCount;
    if (head === tail) {
      tail = (tail + 1) % samplesCount;
    }
    if (now - firstSampleTS < min) {
      return;
    }
    const passed = startedAt && now - startedAt;
    return passed ? Math.round(bytesCount * 1e3 / passed) : void 0;
  };
}
var speedometer_default = speedometer;
function throttle(fn3, freq) {
  let timestamp = 0;
  let threshold = 1e3 / freq;
  let lastArgs;
  let timer2;
  const invoke = (args, now = Date.now()) => {
    timestamp = now;
    lastArgs = null;
    if (timer2) {
      clearTimeout(timer2);
      timer2 = null;
    }
    fn3(...args);
  };
  const throttled = (...args) => {
    const now = Date.now();
    const passed = now - timestamp;
    if (passed >= threshold) {
      invoke(args, now);
    } else {
      lastArgs = args;
      if (!timer2) {
        timer2 = setTimeout(() => {
          timer2 = null;
          invoke(lastArgs);
        }, threshold - passed);
      }
    }
  };
  const flush = () => lastArgs && invoke(lastArgs);
  return [throttled, flush];
}
var throttle_default = throttle;
var progressEventReducer = (listener, isDownloadStream, freq = 3) => {
  let bytesNotified = 0;
  const _speedometer = speedometer_default(50, 250);
  return throttle_default((e2) => {
    const loaded = e2.loaded;
    const total = e2.lengthComputable ? e2.total : void 0;
    const progressBytes = loaded - bytesNotified;
    const rate = _speedometer(progressBytes);
    const inRange = loaded <= total;
    bytesNotified = loaded;
    const data = {
      loaded,
      total,
      progress: total ? loaded / total : void 0,
      bytes: progressBytes,
      rate: rate ? rate : void 0,
      estimated: rate && total && inRange ? (total - loaded) / rate : void 0,
      event: e2,
      lengthComputable: total != null,
      [isDownloadStream ? "download" : "upload"]: true
    };
    listener(data);
  }, freq);
};
var progressEventDecorator = (total, throttled) => {
  const lengthComputable = total != null;
  return [(loaded) => throttled[0]({
    lengthComputable,
    total,
    loaded
  }), throttled[1]];
};
var asyncDecorator = (fn3) => (...args) => utils_default.asap(() => fn3(...args));
function estimateDataURLDecodedBytes(url2) {
  if (!url2 || typeof url2 !== "string") return 0;
  if (!url2.startsWith("data:")) return 0;
  const comma = url2.indexOf(",");
  if (comma < 0) return 0;
  const meta = url2.slice(5, comma);
  const body = url2.slice(comma + 1);
  const isBase64 = /;base64/i.test(meta);
  if (isBase64) {
    let effectiveLen = body.length;
    const len = body.length;
    for (let i22 = 0; i22 < len; i22++) {
      if (body.charCodeAt(i22) === 37 && i22 + 2 < len) {
        const a2 = body.charCodeAt(i22 + 1);
        const b2 = body.charCodeAt(i22 + 2);
        const isHex = (a2 >= 48 && a2 <= 57 || a2 >= 65 && a2 <= 70 || a2 >= 97 && a2 <= 102) && (b2 >= 48 && b2 <= 57 || b2 >= 65 && b2 <= 70 || b2 >= 97 && b2 <= 102);
        if (isHex) {
          effectiveLen -= 2;
          i22 += 2;
        }
      }
    }
    let pad = 0;
    let idx = len - 1;
    const tailIsPct3D = (j2) => j2 >= 2 && body.charCodeAt(j2 - 2) === 37 && // '%'
    body.charCodeAt(j2 - 1) === 51 && // '3'
    (body.charCodeAt(j2) === 68 || body.charCodeAt(j2) === 100);
    if (idx >= 0) {
      if (body.charCodeAt(idx) === 61) {
        pad++;
        idx--;
      } else if (tailIsPct3D(idx)) {
        pad++;
        idx -= 3;
      }
    }
    if (pad === 1 && idx >= 0) {
      if (body.charCodeAt(idx) === 61) {
        pad++;
      } else if (tailIsPct3D(idx)) {
        pad++;
      }
    }
    const groups = Math.floor(effectiveLen / 4);
    const bytes = groups * 3 - (pad || 0);
    return bytes > 0 ? bytes : 0;
  }
  return Buffer.byteLength(body, "utf8");
}
var zlibOptions = {
  flush: import_zlib.default.constants.Z_SYNC_FLUSH,
  finishFlush: import_zlib.default.constants.Z_SYNC_FLUSH
};
var brotliOptions = {
  flush: import_zlib.default.constants.BROTLI_OPERATION_FLUSH,
  finishFlush: import_zlib.default.constants.BROTLI_OPERATION_FLUSH
};
var isBrotliSupported = utils_default.isFunction(import_zlib.default.createBrotliDecompress);
var { http: httpFollow, https: httpsFollow } = import_follow_redirects.default;
var isHttps = /https:?/;
var supportedProtocols2 = platform_default.protocols.map((protocol) => {
  return protocol + ":";
});
var flushOnFinish = (stream5, [throttled, flush]) => {
  stream5.on("end", flush).on("error", flush);
  return throttled;
};
var Http2Sessions = class {
  constructor() {
    this.sessions = /* @__PURE__ */ Object.create(null);
  }
  getSession(authority, options) {
    options = Object.assign({
      sessionTimeout: 1e3
    }, options);
    let authoritySessions = this.sessions[authority];
    if (authoritySessions) {
      let len = authoritySessions.length;
      for (let i22 = 0; i22 < len; i22++) {
        const [sessionHandle, sessionOptions] = authoritySessions[i22];
        if (!sessionHandle.destroyed && !sessionHandle.closed && import_util.default.isDeepStrictEqual(sessionOptions, options)) {
          return sessionHandle;
        }
      }
    }
    const session = import_http2.default.connect(authority, options);
    let removed;
    const removeSession = () => {
      if (removed) {
        return;
      }
      removed = true;
      let entries2 = authoritySessions, len = entries2.length, i22 = len;
      while (i22--) {
        if (entries2[i22][0] === session) {
          if (len === 1) {
            delete this.sessions[authority];
          } else {
            entries2.splice(i22, 1);
          }
          return;
        }
      }
    };
    const originalRequestFn = session.request;
    const { sessionTimeout } = options;
    if (sessionTimeout != null) {
      let timer2;
      let streamsCount = 0;
      session.request = function() {
        const stream5 = originalRequestFn.apply(this, arguments);
        streamsCount++;
        if (timer2) {
          clearTimeout(timer2);
          timer2 = null;
        }
        stream5.once("close", () => {
          if (!--streamsCount) {
            timer2 = setTimeout(() => {
              timer2 = null;
              removeSession();
            }, sessionTimeout);
          }
        });
        return stream5;
      };
    }
    session.once("close", removeSession);
    let entry = [
      session,
      options
    ];
    authoritySessions ? authoritySessions.push(entry) : authoritySessions = this.sessions[authority] = [entry];
    return session;
  }
};
var http2Sessions = new Http2Sessions();
function dispatchBeforeRedirect(options, responseDetails) {
  if (options.beforeRedirects.proxy) {
    options.beforeRedirects.proxy(options);
  }
  if (options.beforeRedirects.config) {
    options.beforeRedirects.config(options, responseDetails);
  }
}
function setProxy(options, configProxy, location) {
  let proxy = configProxy;
  if (!proxy && proxy !== false) {
    const proxyUrl = import_proxy_from_env.default.getProxyForUrl(location);
    if (proxyUrl) {
      proxy = new URL(proxyUrl);
    }
  }
  if (proxy) {
    if (proxy.username) {
      proxy.auth = (proxy.username || "") + ":" + (proxy.password || "");
    }
    if (proxy.auth) {
      const validProxyAuth = Boolean(proxy.auth.username || proxy.auth.password);
      if (validProxyAuth) {
        proxy.auth = (proxy.auth.username || "") + ":" + (proxy.auth.password || "");
      } else if (typeof proxy.auth === "object") {
        throw new AxiosError_default("Invalid proxy authorization", AxiosError_default.ERR_BAD_OPTION, { proxy });
      }
      const base64 = Buffer.from(proxy.auth, "utf8").toString("base64");
      options.headers["Proxy-Authorization"] = "Basic " + base64;
    }
    options.headers.host = options.hostname + (options.port ? ":" + options.port : "");
    const proxyHost = proxy.hostname || proxy.host;
    options.hostname = proxyHost;
    options.host = proxyHost;
    options.port = proxy.port;
    options.path = location;
    if (proxy.protocol) {
      options.protocol = proxy.protocol.includes(":") ? proxy.protocol : `${proxy.protocol}:`;
    }
  }
  options.beforeRedirects.proxy = function beforeRedirect2(redirectOptions) {
    setProxy(redirectOptions, configProxy, redirectOptions.href);
  };
}
var isHttpAdapterSupported = typeof process !== "undefined" && utils_default.kindOf(process) === "process";
var wrapAsync = (asyncExecutor) => {
  return new Promise((resolve2, reject) => {
    let onDone;
    let isDone;
    const done = (value, isRejected) => {
      if (isDone) return;
      isDone = true;
      onDone && onDone(value, isRejected);
    };
    const _resolve = (value) => {
      done(value);
      resolve2(value);
    };
    const _reject = (reason) => {
      done(reason, true);
      reject(reason);
    };
    asyncExecutor(_resolve, _reject, (onDoneHandler) => onDone = onDoneHandler).catch(_reject);
  });
};
var resolveFamily = ({ address, family }) => {
  if (!utils_default.isString(address)) {
    throw TypeError("address must be a string");
  }
  return {
    address,
    family: family || (address.indexOf(".") < 0 ? 6 : 4)
  };
};
var buildAddressEntry = (address, family) => resolveFamily(utils_default.isObject(address) ? address : { address, family });
var http2Transport = {
  request(options, cb) {
    const authority = options.protocol + "//" + options.hostname + ":" + (options.port || (options.protocol === "https:" ? 443 : 80));
    const { http2Options, headers } = options;
    const session = http2Sessions.getSession(authority, http2Options);
    const {
      HTTP2_HEADER_SCHEME,
      HTTP2_HEADER_METHOD,
      HTTP2_HEADER_PATH,
      HTTP2_HEADER_STATUS
    } = import_http2.default.constants;
    const http2Headers = {
      [HTTP2_HEADER_SCHEME]: options.protocol.replace(":", ""),
      [HTTP2_HEADER_METHOD]: options.method,
      [HTTP2_HEADER_PATH]: options.path
    };
    utils_default.forEach(headers, (header2, name2) => {
      name2.charAt(0) !== ":" && (http2Headers[name2] = header2);
    });
    const req = session.request(http2Headers);
    req.once("response", (responseHeaders) => {
      const response = req;
      responseHeaders = Object.assign({}, responseHeaders);
      const status = responseHeaders[HTTP2_HEADER_STATUS];
      delete responseHeaders[HTTP2_HEADER_STATUS];
      response.headers = responseHeaders;
      response.statusCode = +status;
      cb(response);
    });
    return req;
  }
};
var http_default = isHttpAdapterSupported && function httpAdapter(config) {
  return wrapAsync(async function dispatchHttpRequest(resolve2, reject, onDone) {
    let { data, lookup, family, httpVersion = 1, http2Options } = config;
    const { responseType, responseEncoding } = config;
    const method = config.method.toUpperCase();
    let isDone;
    let rejected = false;
    let req;
    httpVersion = +httpVersion;
    if (Number.isNaN(httpVersion)) {
      throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`);
    }
    if (httpVersion !== 1 && httpVersion !== 2) {
      throw TypeError(`Unsupported protocol version '${httpVersion}'`);
    }
    const isHttp2 = httpVersion === 2;
    if (lookup) {
      const _lookup = callbackify_default(lookup, (value) => utils_default.isArray(value) ? value : [value]);
      lookup = (hostname, opt, cb) => {
        _lookup(hostname, opt, (err2, arg0, arg1) => {
          if (err2) {
            return cb(err2);
          }
          const addresses = utils_default.isArray(arg0) ? arg0.map((addr) => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
          opt.all ? cb(err2, addresses) : cb(err2, addresses[0].address, addresses[0].family);
        });
      };
    }
    const abortEmitter = new import_events.EventEmitter();
    function abort(reason) {
      try {
        abortEmitter.emit("abort", !reason || reason.type ? new CanceledError_default(null, config, req) : reason);
      } catch (err2) {
        console.warn("emit error", err2);
      }
    }
    abortEmitter.once("abort", reject);
    const onFinished = () => {
      if (config.cancelToken) {
        config.cancelToken.unsubscribe(abort);
      }
      if (config.signal) {
        config.signal.removeEventListener("abort", abort);
      }
      abortEmitter.removeAllListeners();
    };
    if (config.cancelToken || config.signal) {
      config.cancelToken && config.cancelToken.subscribe(abort);
      if (config.signal) {
        config.signal.aborted ? abort() : config.signal.addEventListener("abort", abort);
      }
    }
    onDone((response, isRejected) => {
      isDone = true;
      if (isRejected) {
        rejected = true;
        onFinished();
        return;
      }
      const { data: data2 } = response;
      if (data2 instanceof import_stream.default.Readable || data2 instanceof import_stream.default.Duplex) {
        const offListeners = import_stream.default.finished(data2, () => {
          offListeners();
          onFinished();
        });
      } else {
        onFinished();
      }
    });
    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
    const parsed = new URL(fullPath, platform_default.hasBrowserEnv ? platform_default.origin : void 0);
    const protocol = parsed.protocol || supportedProtocols2[0];
    if (protocol === "data:") {
      if (config.maxContentLength > -1) {
        const dataUrl = String(config.url || fullPath || "");
        const estimated = estimateDataURLDecodedBytes(dataUrl);
        if (estimated > config.maxContentLength) {
          return reject(new AxiosError_default(
            "maxContentLength size of " + config.maxContentLength + " exceeded",
            AxiosError_default.ERR_BAD_RESPONSE,
            config
          ));
        }
      }
      let convertedData;
      if (method !== "GET") {
        return settle(resolve2, reject, {
          status: 405,
          statusText: "method not allowed",
          headers: {},
          config
        });
      }
      try {
        convertedData = fromDataURI(config.url, responseType === "blob", {
          Blob: config.env && config.env.Blob
        });
      } catch (err2) {
        throw AxiosError_default.from(err2, AxiosError_default.ERR_BAD_REQUEST, config);
      }
      if (responseType === "text") {
        convertedData = convertedData.toString(responseEncoding);
        if (!responseEncoding || responseEncoding === "utf8") {
          convertedData = utils_default.stripBOM(convertedData);
        }
      } else if (responseType === "stream") {
        convertedData = import_stream.default.Readable.from(convertedData);
      }
      return settle(resolve2, reject, {
        data: convertedData,
        status: 200,
        statusText: "OK",
        headers: new AxiosHeaders_default(),
        config
      });
    }
    if (supportedProtocols2.indexOf(protocol) === -1) {
      return reject(new AxiosError_default(
        "Unsupported protocol " + protocol,
        AxiosError_default.ERR_BAD_REQUEST,
        config
      ));
    }
    const headers = AxiosHeaders_default.from(config.headers).normalize();
    headers.set("User-Agent", "axios/" + VERSION, false);
    const { onUploadProgress, onDownloadProgress } = config;
    const maxRate = config.maxRate;
    let maxUploadRate = void 0;
    let maxDownloadRate = void 0;
    if (utils_default.isSpecCompliantForm(data)) {
      const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i);
      data = formDataToStream_default(data, (formHeaders) => {
        headers.set(formHeaders);
      }, {
        tag: `axios-${VERSION}-boundary`,
        boundary: userBoundary && userBoundary[1] || void 0
      });
    } else if (utils_default.isFormData(data) && utils_default.isFunction(data.getHeaders)) {
      headers.set(data.getHeaders());
      if (!headers.hasContentLength()) {
        try {
          const knownLength = await import_util.default.promisify(data.getLength).call(data);
          Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);
        } catch (e2) {
        }
      }
    } else if (utils_default.isBlob(data) || utils_default.isFile(data)) {
      data.size && headers.setContentType(data.type || "application/octet-stream");
      headers.setContentLength(data.size || 0);
      data = import_stream.default.Readable.from(readBlob_default(data));
    } else if (data && !utils_default.isStream(data)) {
      if (Buffer.isBuffer(data)) {
      } else if (utils_default.isArrayBuffer(data)) {
        data = Buffer.from(new Uint8Array(data));
      } else if (utils_default.isString(data)) {
        data = Buffer.from(data, "utf-8");
      } else {
        return reject(new AxiosError_default(
          "Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",
          AxiosError_default.ERR_BAD_REQUEST,
          config
        ));
      }
      headers.setContentLength(data.length, false);
      if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {
        return reject(new AxiosError_default(
          "Request body larger than maxBodyLength limit",
          AxiosError_default.ERR_BAD_REQUEST,
          config
        ));
      }
    }
    const contentLength = utils_default.toFiniteNumber(headers.getContentLength());
    if (utils_default.isArray(maxRate)) {
      maxUploadRate = maxRate[0];
      maxDownloadRate = maxRate[1];
    } else {
      maxUploadRate = maxDownloadRate = maxRate;
    }
    if (data && (onUploadProgress || maxUploadRate)) {
      if (!utils_default.isStream(data)) {
        data = import_stream.default.Readable.from(data, { objectMode: false });
      }
      data = import_stream.default.pipeline([data, new AxiosTransformStream_default({
        maxRate: utils_default.toFiniteNumber(maxUploadRate)
      })], utils_default.noop);
      onUploadProgress && data.on("progress", flushOnFinish(
        data,
        progressEventDecorator(
          contentLength,
          progressEventReducer(asyncDecorator(onUploadProgress), false, 3)
        )
      ));
    }
    let auth = void 0;
    if (config.auth) {
      const username = config.auth.username || "";
      const password = config.auth.password || "";
      auth = username + ":" + password;
    }
    if (!auth && parsed.username) {
      const urlUsername = parsed.username;
      const urlPassword = parsed.password;
      auth = urlUsername + ":" + urlPassword;
    }
    auth && headers.delete("authorization");
    let path22;
    try {
      path22 = buildURL(
        parsed.pathname + parsed.search,
        config.params,
        config.paramsSerializer
      ).replace(/^\?/, "");
    } catch (err2) {
      const customErr = new Error(err2.message);
      customErr.config = config;
      customErr.url = config.url;
      customErr.exists = true;
      return reject(customErr);
    }
    headers.set(
      "Accept-Encoding",
      "gzip, compress, deflate" + (isBrotliSupported ? ", br" : ""),
      false
    );
    const options = {
      path: path22,
      method,
      headers: headers.toJSON(),
      agents: { http: config.httpAgent, https: config.httpsAgent },
      auth,
      protocol,
      family,
      beforeRedirect: dispatchBeforeRedirect,
      beforeRedirects: {},
      http2Options
    };
    !utils_default.isUndefined(lookup) && (options.lookup = lookup);
    if (config.socketPath) {
      options.socketPath = config.socketPath;
    } else {
      options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
      options.port = parsed.port;
      setProxy(options, config.proxy, protocol + "//" + parsed.hostname + (parsed.port ? ":" + parsed.port : "") + options.path);
    }
    let transport;
    const isHttpsRequest = isHttps.test(options.protocol);
    options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;
    if (isHttp2) {
      transport = http2Transport;
    } else {
      if (config.transport) {
        transport = config.transport;
      } else if (config.maxRedirects === 0) {
        transport = isHttpsRequest ? import_https.default : import_http.default;
      } else {
        if (config.maxRedirects) {
          options.maxRedirects = config.maxRedirects;
        }
        if (config.beforeRedirect) {
          options.beforeRedirects.config = config.beforeRedirect;
        }
        transport = isHttpsRequest ? httpsFollow : httpFollow;
      }
    }
    if (config.maxBodyLength > -1) {
      options.maxBodyLength = config.maxBodyLength;
    } else {
      options.maxBodyLength = Infinity;
    }
    if (config.insecureHTTPParser) {
      options.insecureHTTPParser = config.insecureHTTPParser;
    }
    req = transport.request(options, function handleResponse(res) {
      if (req.destroyed) return;
      const streams = [res];
      const responseLength = utils_default.toFiniteNumber(res.headers["content-length"]);
      if (onDownloadProgress || maxDownloadRate) {
        const transformStream = new AxiosTransformStream_default({
          maxRate: utils_default.toFiniteNumber(maxDownloadRate)
        });
        onDownloadProgress && transformStream.on("progress", flushOnFinish(
          transformStream,
          progressEventDecorator(
            responseLength,
            progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)
          )
        ));
        streams.push(transformStream);
      }
      let responseStream = res;
      const lastRequest = res.req || req;
      if (config.decompress !== false && res.headers["content-encoding"]) {
        if (method === "HEAD" || res.statusCode === 204) {
          delete res.headers["content-encoding"];
        }
        switch ((res.headers["content-encoding"] || "").toLowerCase()) {
          /*eslint default-case:0*/
          case "gzip":
          case "x-gzip":
          case "compress":
          case "x-compress":
            streams.push(import_zlib.default.createUnzip(zlibOptions));
            delete res.headers["content-encoding"];
            break;
          case "deflate":
            streams.push(new ZlibHeaderTransformStream_default());
            streams.push(import_zlib.default.createUnzip(zlibOptions));
            delete res.headers["content-encoding"];
            break;
          case "br":
            if (isBrotliSupported) {
              streams.push(import_zlib.default.createBrotliDecompress(brotliOptions));
              delete res.headers["content-encoding"];
            }
        }
      }
      responseStream = streams.length > 1 ? import_stream.default.pipeline(streams, utils_default.noop) : streams[0];
      const response = {
        status: res.statusCode,
        statusText: res.statusMessage,
        headers: new AxiosHeaders_default(res.headers),
        config,
        request: lastRequest
      };
      if (responseType === "stream") {
        response.data = responseStream;
        settle(resolve2, reject, response);
      } else {
        const responseBuffer = [];
        let totalResponseBytes = 0;
        responseStream.on("data", function handleStreamData(chunk2) {
          responseBuffer.push(chunk2);
          totalResponseBytes += chunk2.length;
          if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {
            rejected = true;
            responseStream.destroy();
            abort(new AxiosError_default(
              "maxContentLength size of " + config.maxContentLength + " exceeded",
              AxiosError_default.ERR_BAD_RESPONSE,
              config,
              lastRequest
            ));
          }
        });
        responseStream.on("aborted", function handlerStreamAborted() {
          if (rejected) {
            return;
          }
          const err2 = new AxiosError_default(
            "stream has been aborted",
            AxiosError_default.ERR_BAD_RESPONSE,
            config,
            lastRequest
          );
          responseStream.destroy(err2);
          reject(err2);
        });
        responseStream.on("error", function handleStreamError(err2) {
          if (req.destroyed) return;
          reject(AxiosError_default.from(err2, null, config, lastRequest));
        });
        responseStream.on("end", function handleStreamEnd2() {
          try {
            let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);
            if (responseType !== "arraybuffer") {
              responseData = responseData.toString(responseEncoding);
              if (!responseEncoding || responseEncoding === "utf8") {
                responseData = utils_default.stripBOM(responseData);
              }
            }
            response.data = responseData;
          } catch (err2) {
            return reject(AxiosError_default.from(err2, null, config, response.request, response));
          }
          settle(resolve2, reject, response);
        });
      }
      abortEmitter.once("abort", (err2) => {
        if (!responseStream.destroyed) {
          responseStream.emit("error", err2);
          responseStream.destroy();
        }
      });
    });
    abortEmitter.once("abort", (err2) => {
      if (req.close) {
        req.close();
      } else {
        req.destroy(err2);
      }
    });
    req.on("error", function handleRequestError(err2) {
      reject(AxiosError_default.from(err2, null, config, req));
    });
    req.on("socket", function handleRequestSocket(socket) {
      socket.setKeepAlive(true, 1e3 * 60);
    });
    if (config.timeout) {
      const timeout = parseInt(config.timeout, 10);
      if (Number.isNaN(timeout)) {
        abort(new AxiosError_default(
          "error trying to parse `config.timeout` to int",
          AxiosError_default.ERR_BAD_OPTION_VALUE,
          config,
          req
        ));
        return;
      }
      req.setTimeout(timeout, function handleRequestTimeout2() {
        if (isDone) return;
        let timeoutErrorMessage = config.timeout ? "timeout of " + config.timeout + "ms exceeded" : "timeout exceeded";
        const transitional2 = config.transitional || transitional_default;
        if (config.timeoutErrorMessage) {
          timeoutErrorMessage = config.timeoutErrorMessage;
        }
        abort(new AxiosError_default(
          timeoutErrorMessage,
          transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,
          config,
          req
        ));
      });
    } else {
      req.setTimeout(0);
    }
    if (utils_default.isStream(data)) {
      let ended = false;
      let errored = false;
      data.on("end", () => {
        ended = true;
      });
      data.once("error", (err2) => {
        errored = true;
        req.destroy(err2);
      });
      data.on("close", () => {
        if (!ended && !errored) {
          abort(new CanceledError_default("Request stream has been aborted", config, req));
        }
      });
      data.pipe(req);
    } else {
      data && req.write(data);
      req.end();
    }
  });
};
var isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url2) => {
  url2 = new URL(url2, platform_default.origin);
  return origin2.protocol === url2.protocol && origin2.host === url2.host && (isMSIE || origin2.port === url2.port);
})(
  new URL(platform_default.origin),
  platform_default.navigator && /(msie|trident)/i.test(platform_default.navigator.userAgent)
) : () => true;
var cookies_default = platform_default.hasStandardBrowserEnv ? (
  // Standard browser envs support document.cookie
  {
    write(name2, value, expires, path22, domain, secure, sameSite) {
      if (typeof document === "undefined") return;
      const cookie = [`${name2}=${encodeURIComponent(value)}`];
      if (utils_default.isNumber(expires)) {
        cookie.push(`expires=${new Date(expires).toUTCString()}`);
      }
      if (utils_default.isString(path22)) {
        cookie.push(`path=${path22}`);
      }
      if (utils_default.isString(domain)) {
        cookie.push(`domain=${domain}`);
      }
      if (secure === true) {
        cookie.push("secure");
      }
      if (utils_default.isString(sameSite)) {
        cookie.push(`SameSite=${sameSite}`);
      }
      document.cookie = cookie.join("; ");
    },
    read(name2) {
      if (typeof document === "undefined") return null;
      const match = document.cookie.match(new RegExp("(?:^|; )" + name2 + "=([^;]*)"));
      return match ? decodeURIComponent(match[1]) : null;
    },
    remove(name2) {
      this.write(name2, "", Date.now() - 864e5, "/");
    }
  }
) : (
  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {
    },
    read() {
      return null;
    },
    remove() {
    }
  }
);
var headersToObject = (thing) => thing instanceof AxiosHeaders_default ? { ...thing } : thing;
function mergeConfig(config1, config2) {
  config2 = config2 || {};
  const config = {};
  function getMergedValue(target, source, prop, caseless) {
    if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) {
      return utils_default.merge.call({ caseless }, target, source);
    } else if (utils_default.isPlainObject(source)) {
      return utils_default.merge({}, source);
    } else if (utils_default.isArray(source)) {
      return source.slice();
    }
    return source;
  }
  function mergeDeepProperties(a2, b2, prop, caseless) {
    if (!utils_default.isUndefined(b2)) {
      return getMergedValue(a2, b2, prop, caseless);
    } else if (!utils_default.isUndefined(a2)) {
      return getMergedValue(void 0, a2, prop, caseless);
    }
  }
  function valueFromConfig2(a2, b2) {
    if (!utils_default.isUndefined(b2)) {
      return getMergedValue(void 0, b2);
    }
  }
  function defaultToConfig2(a2, b2) {
    if (!utils_default.isUndefined(b2)) {
      return getMergedValue(void 0, b2);
    } else if (!utils_default.isUndefined(a2)) {
      return getMergedValue(void 0, a2);
    }
  }
  function mergeDirectKeys(a2, b2, prop) {
    if (prop in config2) {
      return getMergedValue(a2, b2);
    } else if (prop in config1) {
      return getMergedValue(void 0, a2);
    }
  }
  const mergeMap = {
    url: valueFromConfig2,
    method: valueFromConfig2,
    data: valueFromConfig2,
    baseURL: defaultToConfig2,
    transformRequest: defaultToConfig2,
    transformResponse: defaultToConfig2,
    paramsSerializer: defaultToConfig2,
    timeout: defaultToConfig2,
    timeoutMessage: defaultToConfig2,
    withCredentials: defaultToConfig2,
    withXSRFToken: defaultToConfig2,
    adapter: defaultToConfig2,
    responseType: defaultToConfig2,
    xsrfCookieName: defaultToConfig2,
    xsrfHeaderName: defaultToConfig2,
    onUploadProgress: defaultToConfig2,
    onDownloadProgress: defaultToConfig2,
    decompress: defaultToConfig2,
    maxContentLength: defaultToConfig2,
    maxBodyLength: defaultToConfig2,
    beforeRedirect: defaultToConfig2,
    transport: defaultToConfig2,
    httpAgent: defaultToConfig2,
    httpsAgent: defaultToConfig2,
    cancelToken: defaultToConfig2,
    socketPath: defaultToConfig2,
    responseEncoding: defaultToConfig2,
    validateStatus: mergeDirectKeys,
    headers: (a2, b2, prop) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop, true)
  };
  utils_default.forEach(
    Object.keys({ ...config1, ...config2 }),
    function computeConfigValue(prop) {
      if (prop === "__proto__" || prop === "constructor" || prop === "prototype")
        return;
      const merge22 = utils_default.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
      const configValue = merge22(config1[prop], config2[prop], prop);
      utils_default.isUndefined(configValue) && merge22 !== mergeDirectKeys || (config[prop] = configValue);
    }
  );
  return config;
}
var resolveConfig_default = (config) => {
  const newConfig = mergeConfig({}, config);
  let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;
  newConfig.headers = headers = AxiosHeaders_default.from(headers);
  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
  if (auth) {
    headers.set(
      "Authorization",
      "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : ""))
    );
  }
  if (utils_default.isFormData(data)) {
    if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) {
      headers.setContentType(void 0);
    } else if (utils_default.isFunction(data.getHeaders)) {
      const formHeaders = data.getHeaders();
      const allowedHeaders = ["content-type", "content-length"];
      Object.entries(formHeaders).forEach(([key, val]) => {
        if (allowedHeaders.includes(key.toLowerCase())) {
          headers.set(key, val);
        }
      });
    }
  }
  if (platform_default.hasStandardBrowserEnv) {
    withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
    if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) {
      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName);
      if (xsrfValue) {
        headers.set(xsrfHeaderName, xsrfValue);
      }
    }
  }
  return newConfig;
};
var isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined";
var xhr_default = isXHRAdapterSupported && function(config) {
  return new Promise(function dispatchXhrRequest(resolve2, reject) {
    const _config = resolveConfig_default(config);
    let requestData = _config.data;
    const requestHeaders = AxiosHeaders_default.from(_config.headers).normalize();
    let { responseType, onUploadProgress, onDownloadProgress } = _config;
    let onCanceled;
    let uploadThrottled, downloadThrottled;
    let flushUpload, flushDownload;
    function done() {
      flushUpload && flushUpload();
      flushDownload && flushDownload();
      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
      _config.signal && _config.signal.removeEventListener("abort", onCanceled);
    }
    let request = new XMLHttpRequest();
    request.open(_config.method.toUpperCase(), _config.url, true);
    request.timeout = _config.timeout;
    function onloadend() {
      if (!request) {
        return;
      }
      const responseHeaders = AxiosHeaders_default.from(
        "getAllResponseHeaders" in request && request.getAllResponseHeaders()
      );
      const responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response;
      const response = {
        data: responseData,
        status: request.status,
        statusText: request.statusText,
        headers: responseHeaders,
        config,
        request
      };
      settle(function _resolve(value) {
        resolve2(value);
        done();
      }, function _reject(err2) {
        reject(err2);
        done();
      }, response);
      request = null;
    }
    if ("onloadend" in request) {
      request.onloadend = onloadend;
    } else {
      request.onreadystatechange = function handleLoad() {
        if (!request || request.readyState !== 4) {
          return;
        }
        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) {
          return;
        }
        setTimeout(onloadend);
      };
    }
    request.onabort = function handleAbort() {
      if (!request) {
        return;
      }
      reject(new AxiosError_default("Request aborted", AxiosError_default.ECONNABORTED, config, request));
      request = null;
    };
    request.onerror = function handleError(event) {
      const msg = event && event.message ? event.message : "Network Error";
      const err2 = new AxiosError_default(msg, AxiosError_default.ERR_NETWORK, config, request);
      err2.event = event || null;
      reject(err2);
      request = null;
    };
    request.ontimeout = function handleTimeout() {
      let timeoutErrorMessage = _config.timeout ? "timeout of " + _config.timeout + "ms exceeded" : "timeout exceeded";
      const transitional2 = _config.transitional || transitional_default;
      if (_config.timeoutErrorMessage) {
        timeoutErrorMessage = _config.timeoutErrorMessage;
      }
      reject(new AxiosError_default(
        timeoutErrorMessage,
        transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,
        config,
        request
      ));
      request = null;
    };
    requestData === void 0 && requestHeaders.setContentType(null);
    if ("setRequestHeader" in request) {
      utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
        request.setRequestHeader(key, val);
      });
    }
    if (!utils_default.isUndefined(_config.withCredentials)) {
      request.withCredentials = !!_config.withCredentials;
    }
    if (responseType && responseType !== "json") {
      request.responseType = _config.responseType;
    }
    if (onDownloadProgress) {
      [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);
      request.addEventListener("progress", downloadThrottled);
    }
    if (onUploadProgress && request.upload) {
      [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);
      request.upload.addEventListener("progress", uploadThrottled);
      request.upload.addEventListener("loadend", flushUpload);
    }
    if (_config.cancelToken || _config.signal) {
      onCanceled = (cancel) => {
        if (!request) {
          return;
        }
        reject(!cancel || cancel.type ? new CanceledError_default(null, config, request) : cancel);
        request.abort();
        request = null;
      };
      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
      if (_config.signal) {
        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled);
      }
    }
    const protocol = parseProtocol(_config.url);
    if (protocol && platform_default.protocols.indexOf(protocol) === -1) {
      reject(new AxiosError_default("Unsupported protocol " + protocol + ":", AxiosError_default.ERR_BAD_REQUEST, config));
      return;
    }
    request.send(requestData || null);
  });
};
var composeSignals = (signals, timeout) => {
  const { length } = signals = signals ? signals.filter(Boolean) : [];
  if (timeout || length) {
    let controller = new AbortController();
    let aborted;
    const onabort = function(reason) {
      if (!aborted) {
        aborted = true;
        unsubscribe();
        const err2 = reason instanceof Error ? reason : this.reason;
        controller.abort(err2 instanceof AxiosError_default ? err2 : new CanceledError_default(err2 instanceof Error ? err2.message : err2));
      }
    };
    let timer2 = timeout && setTimeout(() => {
      timer2 = null;
      onabort(new AxiosError_default(`timeout of ${timeout}ms exceeded`, AxiosError_default.ETIMEDOUT));
    }, timeout);
    const unsubscribe = () => {
      if (signals) {
        timer2 && clearTimeout(timer2);
        timer2 = null;
        signals.forEach((signal2) => {
          signal2.unsubscribe ? signal2.unsubscribe(onabort) : signal2.removeEventListener("abort", onabort);
        });
        signals = null;
      }
    };
    signals.forEach((signal2) => signal2.addEventListener("abort", onabort));
    const { signal } = controller;
    signal.unsubscribe = () => utils_default.asap(unsubscribe);
    return signal;
  }
};
var composeSignals_default = composeSignals;
var streamChunk = function* (chunk2, chunkSize) {
  let len = chunk2.byteLength;
  if (!chunkSize || len < chunkSize) {
    yield chunk2;
    return;
  }
  let pos = 0;
  let end;
  while (pos < len) {
    end = pos + chunkSize;
    yield chunk2.slice(pos, end);
    pos = end;
  }
};
var readBytes = async function* (iterable, chunkSize) {
  for await (const chunk2 of readStream2(iterable)) {
    yield* streamChunk(chunk2, chunkSize);
  }
};
var readStream2 = async function* (stream5) {
  if (stream5[Symbol.asyncIterator]) {
    yield* stream5;
    return;
  }
  const reader = stream5.getReader();
  try {
    for (; ; ) {
      const { done, value } = await reader.read();
      if (done) {
        break;
      }
      yield value;
    }
  } finally {
    await reader.cancel();
  }
};
var trackStream = (stream5, chunkSize, onProgress, onFinish) => {
  const iterator2 = readBytes(stream5, chunkSize);
  let bytes = 0;
  let done;
  let _onFinish = (e2) => {
    if (!done) {
      done = true;
      onFinish && onFinish(e2);
    }
  };
  return new ReadableStream({
    async pull(controller) {
      try {
        const { done: done2, value } = await iterator2.next();
        if (done2) {
          _onFinish();
          controller.close();
          return;
        }
        let len = value.byteLength;
        if (onProgress) {
          let loadedBytes = bytes += len;
          onProgress(loadedBytes);
        }
        controller.enqueue(new Uint8Array(value));
      } catch (err2) {
        _onFinish(err2);
        throw err2;
      }
    },
    cancel(reason) {
      _onFinish(reason);
      return iterator2.return();
    }
  }, {
    highWaterMark: 2
  });
};
var DEFAULT_CHUNK_SIZE = 64 * 1024;
var { isFunction: isFunction4 } = utils_default;
var globalFetchAPI = (({ Request: Request3, Response: Response2 }) => ({
  Request: Request3,
  Response: Response2
}))(utils_default.global);
var {
  ReadableStream: ReadableStream3,
  TextEncoder: TextEncoder2
} = utils_default.global;
var test2 = (fn3, ...args) => {
  try {
    return !!fn3(...args);
  } catch (e2) {
    return false;
  }
};
var factory = (env) => {
  env = utils_default.merge.call({
    skipUndefined: true
  }, globalFetchAPI, env);
  const { fetch: envFetch, Request: Request3, Response: Response2 } = env;
  const isFetchSupported = envFetch ? isFunction4(envFetch) : typeof fetch === "function";
  const isRequestSupported = isFunction4(Request3);
  const isResponseSupported = isFunction4(Response2);
  if (!isFetchSupported) {
    return false;
  }
  const isReadableStreamSupported = isFetchSupported && isFunction4(ReadableStream3);
  const encodeText = isFetchSupported && (typeof TextEncoder2 === "function" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder2()) : async (str) => new Uint8Array(await new Request3(str).arrayBuffer()));
  const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test2(() => {
    let duplexAccessed = false;
    const hasContentType = new Request3(platform_default.origin, {
      body: new ReadableStream3(),
      method: "POST",
      get duplex() {
        duplexAccessed = true;
        return "half";
      }
    }).headers.has("Content-Type");
    return duplexAccessed && !hasContentType;
  });
  const supportsResponseStream = isResponseSupported && isReadableStreamSupported && test2(() => utils_default.isReadableStream(new Response2("").body));
  const resolvers = {
    stream: supportsResponseStream && ((res) => res.body)
  };
  isFetchSupported && (() => {
    ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => {
      !resolvers[type] && (resolvers[type] = (res, config) => {
        let method = res && res[type];
        if (method) {
          return method.call(res);
        }
        throw new AxiosError_default(`Response type '${type}' is not supported`, AxiosError_default.ERR_NOT_SUPPORT, config);
      });
    });
  })();
  const getBodyLength = async (body) => {
    if (body == null) {
      return 0;
    }
    if (utils_default.isBlob(body)) {
      return body.size;
    }
    if (utils_default.isSpecCompliantForm(body)) {
      const _request = new Request3(platform_default.origin, {
        method: "POST",
        body
      });
      return (await _request.arrayBuffer()).byteLength;
    }
    if (utils_default.isArrayBufferView(body) || utils_default.isArrayBuffer(body)) {
      return body.byteLength;
    }
    if (utils_default.isURLSearchParams(body)) {
      body = body + "";
    }
    if (utils_default.isString(body)) {
      return (await encodeText(body)).byteLength;
    }
  };
  const resolveBodyLength = async (headers, body) => {
    const length = utils_default.toFiniteNumber(headers.getContentLength());
    return length == null ? getBodyLength(body) : length;
  };
  return async (config) => {
    let {
      url: url2,
      method,
      data,
      signal,
      cancelToken,
      timeout,
      onDownloadProgress,
      onUploadProgress,
      responseType,
      headers,
      withCredentials = "same-origin",
      fetchOptions
    } = resolveConfig_default(config);
    let _fetch = envFetch || fetch;
    responseType = responseType ? (responseType + "").toLowerCase() : "text";
    let composedSignal = composeSignals_default([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
    let request = null;
    const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
      composedSignal.unsubscribe();
    });
    let requestContentLength;
    try {
      if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {
        let _request = new Request3(url2, {
          method: "POST",
          body: data,
          duplex: "half"
        });
        let contentTypeHeader;
        if (utils_default.isFormData(data) && (contentTypeHeader = _request.headers.get("content-type"))) {
          headers.setContentType(contentTypeHeader);
        }
        if (_request.body) {
          const [onProgress, flush] = progressEventDecorator(
            requestContentLength,
            progressEventReducer(asyncDecorator(onUploadProgress))
          );
          data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
        }
      }
      if (!utils_default.isString(withCredentials)) {
        withCredentials = withCredentials ? "include" : "omit";
      }
      const isCredentialsSupported = isRequestSupported && "credentials" in Request3.prototype;
      const resolvedOptions = {
        ...fetchOptions,
        signal: composedSignal,
        method: method.toUpperCase(),
        headers: headers.normalize().toJSON(),
        body: data,
        duplex: "half",
        credentials: isCredentialsSupported ? withCredentials : void 0
      };
      request = isRequestSupported && new Request3(url2, resolvedOptions);
      let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url2, resolvedOptions));
      const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response");
      if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
        const options = {};
        ["status", "statusText", "headers"].forEach((prop) => {
          options[prop] = response[prop];
        });
        const responseContentLength = utils_default.toFiniteNumber(response.headers.get("content-length"));
        const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
          responseContentLength,
          progressEventReducer(asyncDecorator(onDownloadProgress), true)
        ) || [];
        response = new Response2(
          trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
            flush && flush();
            unsubscribe && unsubscribe();
          }),
          options
        );
      }
      responseType = responseType || "text";
      let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || "text"](response, config);
      !isStreamResponse && unsubscribe && unsubscribe();
      return await new Promise((resolve2, reject) => {
        settle(resolve2, reject, {
          data: responseData,
          headers: AxiosHeaders_default.from(response.headers),
          status: response.status,
          statusText: response.statusText,
          config,
          request
        });
      });
    } catch (err2) {
      unsubscribe && unsubscribe();
      if (err2 && err2.name === "TypeError" && /Load failed|fetch/i.test(err2.message)) {
        throw Object.assign(
          new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request, err2 && err2.response),
          {
            cause: err2.cause || err2
          }
        );
      }
      throw AxiosError_default.from(err2, err2 && err2.code, config, request, err2 && err2.response);
    }
  };
};
var seedCache = /* @__PURE__ */ new Map();
var getFetch = (config) => {
  let env = config && config.env || {};
  const { fetch: fetch2, Request: Request3, Response: Response2 } = env;
  const seeds = [
    Request3,
    Response2,
    fetch2
  ];
  let len = seeds.length, i22 = len, seed, target, map2 = seedCache;
  while (i22--) {
    seed = seeds[i22];
    target = map2.get(seed);
    target === void 0 && map2.set(seed, target = i22 ? /* @__PURE__ */ new Map() : factory(env));
    map2 = target;
  }
  return target;
};
var adapter = getFetch();
var knownAdapters = {
  http: http_default,
  xhr: xhr_default,
  fetch: {
    get: getFetch
  }
};
utils_default.forEach(knownAdapters, (fn3, value) => {
  if (fn3) {
    try {
      Object.defineProperty(fn3, "name", { value });
    } catch (e2) {
    }
    Object.defineProperty(fn3, "adapterName", { value });
  }
});
var renderReason = (reason) => `- ${reason}`;
var isResolvedHandle = (adapter2) => utils_default.isFunction(adapter2) || adapter2 === null || adapter2 === false;
function getAdapter(adapters, config) {
  adapters = utils_default.isArray(adapters) ? adapters : [adapters];
  const { length } = adapters;
  let nameOrAdapter;
  let adapter2;
  const rejectedReasons = {};
  for (let i22 = 0; i22 < length; i22++) {
    nameOrAdapter = adapters[i22];
    let id;
    adapter2 = nameOrAdapter;
    if (!isResolvedHandle(nameOrAdapter)) {
      adapter2 = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
      if (adapter2 === void 0) {
        throw new AxiosError_default(`Unknown adapter '${id}'`);
      }
    }
    if (adapter2 && (utils_default.isFunction(adapter2) || (adapter2 = adapter2.get(config)))) {
      break;
    }
    rejectedReasons[id || "#" + i22] = adapter2;
  }
  if (!adapter2) {
    const reasons = Object.entries(rejectedReasons).map(
      ([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build")
    );
    let s2 = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
    throw new AxiosError_default(
      `There is no suitable adapter to dispatch the request ` + s2,
      "ERR_NOT_SUPPORT"
    );
  }
  return adapter2;
}
var adapters_default = {
  /**
   * Resolve an adapter from a list of adapter names or functions.
   * @type {Function}
   */
  getAdapter,
  /**
   * Exposes all known adapters
   * @type {Object<string, Function|Object>}
   */
  adapters: knownAdapters
};
function throwIfCancellationRequested(config) {
  if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }
  if (config.signal && config.signal.aborted) {
    throw new CanceledError_default(null, config);
  }
}
function dispatchRequest(config) {
  throwIfCancellationRequested(config);
  config.headers = AxiosHeaders_default.from(config.headers);
  config.data = transformData.call(
    config,
    config.transformRequest
  );
  if (["post", "put", "patch"].indexOf(config.method) !== -1) {
    config.headers.setContentType("application/x-www-form-urlencoded", false);
  }
  const adapter2 = adapters_default.getAdapter(config.adapter || defaults_default.adapter, config);
  return adapter2(config).then(function onAdapterResolution(response) {
    throwIfCancellationRequested(config);
    response.data = transformData.call(
      config,
      config.transformResponse,
      response
    );
    response.headers = AxiosHeaders_default.from(response.headers);
    return response;
  }, function onAdapterRejection(reason) {
    if (!isCancel(reason)) {
      throwIfCancellationRequested(config);
      if (reason && reason.response) {
        reason.response.data = transformData.call(
          config,
          config.transformResponse,
          reason.response
        );
        reason.response.headers = AxiosHeaders_default.from(reason.response.headers);
      }
    }
    return Promise.reject(reason);
  });
}
var validators2 = {};
["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i22) => {
  validators2[type] = function validator(thing) {
    return typeof thing === type || "a" + (i22 < 1 ? "n " : " ") + type;
  };
});
var deprecatedWarnings = {};
validators2.transitional = function transitional(validator, version, message) {
  function formatMessage(opt, desc) {
    return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : "");
  }
  return (value, opt, opts) => {
    if (validator === false) {
      throw new AxiosError_default(
        formatMessage(opt, " has been removed" + (version ? " in " + version : "")),
        AxiosError_default.ERR_DEPRECATED
      );
    }
    if (version && !deprecatedWarnings[opt]) {
      deprecatedWarnings[opt] = true;
      console.warn(
        formatMessage(
          opt,
          " has been deprecated since v" + version + " and will be removed in the near future"
        )
      );
    }
    return validator ? validator(value, opt, opts) : true;
  };
};
validators2.spelling = function spelling(correctSpelling) {
  return (value, opt) => {
    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
    return true;
  };
};
function assertOptions(options, schema, allowUnknown) {
  if (typeof options !== "object") {
    throw new AxiosError_default("options must be an object", AxiosError_default.ERR_BAD_OPTION_VALUE);
  }
  const keys = Object.keys(options);
  let i22 = keys.length;
  while (i22-- > 0) {
    const opt = keys[i22];
    const validator = schema[opt];
    if (validator) {
      const value = options[opt];
      const result = value === void 0 || validator(value, opt, options);
      if (result !== true) {
        throw new AxiosError_default("option " + opt + " must be " + result, AxiosError_default.ERR_BAD_OPTION_VALUE);
      }
      continue;
    }
    if (allowUnknown !== true) {
      throw new AxiosError_default("Unknown option " + opt, AxiosError_default.ERR_BAD_OPTION);
    }
  }
}
var validator_default = {
  assertOptions,
  validators: validators2
};
var validators3 = validator_default.validators;
var Axios = class {
  constructor(instanceConfig) {
    this.defaults = instanceConfig || {};
    this.interceptors = {
      request: new InterceptorManager_default(),
      response: new InterceptorManager_default()
    };
  }
  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(configOrUrl, config) {
    try {
      return await this._request(configOrUrl, config);
    } catch (err2) {
      if (err2 instanceof Error) {
        let dummy = {};
        Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
        try {
          if (!err2.stack) {
            err2.stack = stack;
          } else if (stack && !String(err2.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) {
            err2.stack += "\n" + stack;
          }
        } catch (e2) {
        }
      }
      throw err2;
    }
  }
  _request(configOrUrl, config) {
    if (typeof configOrUrl === "string") {
      config = config || {};
      config.url = configOrUrl;
    } else {
      config = configOrUrl || {};
    }
    config = mergeConfig(this.defaults, config);
    const { transitional: transitional2, paramsSerializer, headers } = config;
    if (transitional2 !== void 0) {
      validator_default.assertOptions(transitional2, {
        silentJSONParsing: validators3.transitional(validators3.boolean),
        forcedJSONParsing: validators3.transitional(validators3.boolean),
        clarifyTimeoutError: validators3.transitional(validators3.boolean),
        legacyInterceptorReqResOrdering: validators3.transitional(validators3.boolean)
      }, false);
    }
    if (paramsSerializer != null) {
      if (utils_default.isFunction(paramsSerializer)) {
        config.paramsSerializer = {
          serialize: paramsSerializer
        };
      } else {
        validator_default.assertOptions(paramsSerializer, {
          encode: validators3.function,
          serialize: validators3.function
        }, true);
      }
    }
    if (config.allowAbsoluteUrls !== void 0) {
    } else if (this.defaults.allowAbsoluteUrls !== void 0) {
      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
    } else {
      config.allowAbsoluteUrls = true;
    }
    validator_default.assertOptions(config, {
      baseUrl: validators3.spelling("baseURL"),
      withXsrfToken: validators3.spelling("withXSRFToken")
    }, true);
    config.method = (config.method || this.defaults.method || "get").toLowerCase();
    let contextHeaders = headers && utils_default.merge(
      headers.common,
      headers[config.method]
    );
    headers && utils_default.forEach(
      ["delete", "get", "head", "post", "put", "patch", "common"],
      (method) => {
        delete headers[method];
      }
    );
    config.headers = AxiosHeaders_default.concat(contextHeaders, headers);
    const requestInterceptorChain = [];
    let synchronousRequestInterceptors = true;
    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
      if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) {
        return;
      }
      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
      const transitional3 = config.transitional || transitional_default;
      const legacyInterceptorReqResOrdering = transitional3 && transitional3.legacyInterceptorReqResOrdering;
      if (legacyInterceptorReqResOrdering) {
        requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
      } else {
        requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
      }
    });
    const responseInterceptorChain = [];
    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
    });
    let promise;
    let i22 = 0;
    let len;
    if (!synchronousRequestInterceptors) {
      const chain2 = [dispatchRequest.bind(this), void 0];
      chain2.unshift(...requestInterceptorChain);
      chain2.push(...responseInterceptorChain);
      len = chain2.length;
      promise = Promise.resolve(config);
      while (i22 < len) {
        promise = promise.then(chain2[i22++], chain2[i22++]);
      }
      return promise;
    }
    len = requestInterceptorChain.length;
    let newConfig = config;
    while (i22 < len) {
      const onFulfilled = requestInterceptorChain[i22++];
      const onRejected = requestInterceptorChain[i22++];
      try {
        newConfig = onFulfilled(newConfig);
      } catch (error) {
        onRejected.call(this, error);
        break;
      }
    }
    try {
      promise = dispatchRequest.call(this, newConfig);
    } catch (error) {
      return Promise.reject(error);
    }
    i22 = 0;
    len = responseInterceptorChain.length;
    while (i22 < len) {
      promise = promise.then(responseInterceptorChain[i22++], responseInterceptorChain[i22++]);
    }
    return promise;
  }
  getUri(config) {
    config = mergeConfig(this.defaults, config);
    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
    return buildURL(fullPath, config.params, config.paramsSerializer);
  }
};
utils_default.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) {
  Axios.prototype[method] = function(url2, config) {
    return this.request(mergeConfig(config || {}, {
      method,
      url: url2,
      data: (config || {}).data
    }));
  };
});
utils_default.forEach(["post", "put", "patch"], function forEachMethodWithData(method) {
  function generateHTTPMethod(isForm) {
    return function httpMethod(url2, data, config) {
      return this.request(mergeConfig(config || {}, {
        method,
        headers: isForm ? {
          "Content-Type": "multipart/form-data"
        } : {},
        url: url2,
        data
      }));
    };
  }
  Axios.prototype[method] = generateHTTPMethod();
  Axios.prototype[method + "Form"] = generateHTTPMethod(true);
});
var Axios_default = Axios;
var CancelToken = class _CancelToken {
  constructor(executor) {
    if (typeof executor !== "function") {
      throw new TypeError("executor must be a function.");
    }
    let resolvePromise;
    this.promise = new Promise(function promiseExecutor(resolve2) {
      resolvePromise = resolve2;
    });
    const token2 = this;
    this.promise.then((cancel) => {
      if (!token2._listeners) return;
      let i22 = token2._listeners.length;
      while (i22-- > 0) {
        token2._listeners[i22](cancel);
      }
      token2._listeners = null;
    });
    this.promise.then = (onfulfilled) => {
      let _resolve;
      const promise = new Promise((resolve2) => {
        token2.subscribe(resolve2);
        _resolve = resolve2;
      }).then(onfulfilled);
      promise.cancel = function reject() {
        token2.unsubscribe(_resolve);
      };
      return promise;
    };
    executor(function cancel(message, config, request) {
      if (token2.reason) {
        return;
      }
      token2.reason = new CanceledError_default(message, config, request);
      resolvePromise(token2.reason);
    });
  }
  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }
  /**
   * Subscribe to the cancel signal
   */
  subscribe(listener) {
    if (this.reason) {
      listener(this.reason);
      return;
    }
    if (this._listeners) {
      this._listeners.push(listener);
    } else {
      this._listeners = [listener];
    }
  }
  /**
   * Unsubscribe from the cancel signal
   */
  unsubscribe(listener) {
    if (!this._listeners) {
      return;
    }
    const index = this._listeners.indexOf(listener);
    if (index !== -1) {
      this._listeners.splice(index, 1);
    }
  }
  toAbortSignal() {
    const controller = new AbortController();
    const abort = (err2) => {
      controller.abort(err2);
    };
    this.subscribe(abort);
    controller.signal.unsubscribe = () => this.unsubscribe(abort);
    return controller.signal;
  }
  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let cancel;
    const token2 = new _CancelToken(function executor(c3) {
      cancel = c3;
    });
    return {
      token: token2,
      cancel
    };
  }
};
var CancelToken_default = CancelToken;
function spread(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr);
  };
}
function isAxiosError(payload) {
  return utils_default.isObject(payload) && payload.isAxiosError === true;
}
var HttpStatusCode = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511,
  WebServerIsDown: 521,
  ConnectionTimedOut: 522,
  OriginIsUnreachable: 523,
  TimeoutOccurred: 524,
  SslHandshakeFailed: 525,
  InvalidSslCertificate: 526
};
Object.entries(HttpStatusCode).forEach(([key, value]) => {
  HttpStatusCode[value] = key;
});
var HttpStatusCode_default = HttpStatusCode;
function createInstance(defaultConfig) {
  const context = new Axios_default(defaultConfig);
  const instance = bind(Axios_default.prototype.request, context);
  utils_default.extend(instance, Axios_default.prototype, context, { allOwnKeys: true });
  utils_default.extend(instance, context, null, { allOwnKeys: true });
  instance.create = function create2(instanceConfig) {
    return createInstance(mergeConfig(defaultConfig, instanceConfig));
  };
  return instance;
}
var axios = createInstance(defaults_default);
axios.Axios = Axios_default;
axios.CanceledError = CanceledError_default;
axios.CancelToken = CancelToken_default;
axios.isCancel = isCancel;
axios.VERSION = VERSION;
axios.toFormData = toFormData_default;
axios.AxiosError = AxiosError_default;
axios.Cancel = axios.CanceledError;
axios.all = function all2(promises) {
  return Promise.all(promises);
};
axios.spread = spread;
axios.isAxiosError = isAxiosError;
axios.mergeConfig = mergeConfig;
axios.AxiosHeaders = AxiosHeaders_default;
axios.formToJSON = (thing) => formDataToJSON_default(utils_default.isHTMLForm(thing) ? new FormData(thing) : thing);
axios.getAdapter = adapters_default.getAdapter;
axios.HttpStatusCode = HttpStatusCode_default;
axios.default = axios;
var axios_default = axios;
var {
  Axios: Axios2,
  AxiosError: AxiosError2,
  CanceledError: CanceledError2,
  isCancel: isCancel2,
  CancelToken: CancelToken2,
  VERSION: VERSION2,
  all: all3,
  Cancel,
  isAxiosError: isAxiosError2,
  spread: spread2,
  toFormData: toFormData2,
  AxiosHeaders: AxiosHeaders2,
  HttpStatusCode: HttpStatusCode2,
  formToJSON,
  getAdapter: getAdapter2,
  mergeConfig: mergeConfig2
} = axios_default;
var FileCacheAdapter = class {
  cacheDir;
  prefix;
  defaultTTL;
  constructor(config) {
    this.cacheDir = config?.cacheDir || path.resolve(process.cwd(), ".cache");
    this.prefix = config?.prefix || "";
    this.defaultTTL = config?.defaultTTL || 3600;
    if (!(0, import_node_fs2.existsSync)(this.cacheDir)) {
      fs2.mkdir(this.cacheDir, { recursive: true }).catch(() => {
      });
    }
  }
  sanitize(key) {
    const clean = key.replace(/[^a-z0-9]/gi, "_");
    if (clean.length > 64) {
      return crypto3.createHash("md5").update(key).digest("hex");
    }
    return clean;
  }
  getFilePath(key) {
    const safeKey = this.sanitize(`${this.prefix}${key}`).toLowerCase();
    return path.join(this.cacheDir, `${safeKey}.json`);
  }
  async get(key) {
    const filePath = this.getFilePath(key);
    try {
      if (!(0, import_node_fs2.existsSync)(filePath)) return null;
      const content2 = await fs2.readFile(filePath, "utf8");
      const data = JSON.parse(content2);
      if (data.expiry && Date.now() > data.expiry) {
        await this.del(key);
        return null;
      }
      return data.value;
    } catch (_error) {
      return null;
    }
  }
  async set(key, value, ttl2) {
    const filePath = this.getFilePath(key);
    const effectiveTTL = ttl2 !== void 0 ? ttl2 : this.defaultTTL;
    const data = {
      value,
      expiry: effectiveTTL > 0 ? Date.now() + effectiveTTL * 1e3 : null,
      updatedAt: (/* @__PURE__ */ new Date()).toISOString()
    };
    try {
      await fs2.writeFile(filePath, JSON.stringify(data, null, 2), "utf8");
    } catch (_error) {
    }
  }
  async del(key) {
    const filePath = this.getFilePath(key);
    try {
      if ((0, import_node_fs2.existsSync)(filePath)) {
        await fs2.unlink(filePath);
      }
    } catch (_error) {
    }
  }
};
var AcquisitionService = class {
  cache;
  openRouterKey;
  constructor(openRouterKey) {
    this.openRouterKey = openRouterKey;
    this.cache = new FileCacheAdapter({ prefix: "acq_" });
  }
  async runFullSequence(url2, briefing, comments) {
    console.log(`\u{1F680} Starting Acquisition Sequence for: ${url2}`);
    const crawlData = await this.performCrawl(url2);
    const distilledContext = await this.distillCrawlContext(crawlData);
    const result = await this.getAiEstimation(briefing, distilledContext, comments || null);
    return result;
  }
  async performCrawl(url2) {
    const pages = [];
    const origin2 = new URL(url2).origin;
    const crawler = new CheerioCrawler({
      maxRequestsPerCrawl: 15,
      async requestHandler({ $: $2, request, enqueueLinks: enqueueLinks2 }) {
        const title = $2("title").text();
        const bodyText3 = $2("body").text().replace(/\s+/g, " ").substring(0, 1e4);
        pages.push({
          url: request.url,
          content: `Title: ${title}
Text: ${bodyText3}`
        });
        await enqueueLinks2({
          limit: 10,
          transformRequestFunction: (req) => {
            try {
              const reqUrl = new URL(req.url);
              if (reqUrl.origin !== origin2) return false;
              if (reqUrl.pathname.match(/\.(pdf|zip|jpg|png|svg|webp)$/i)) return false;
              return req;
            } catch (_error) {
              return false;
            }
          }
        });
      }
    });
    await crawler.run([url2]);
    return pages.map((p) => `--- PAGE: ${p.url} ---
${p.content}`).join("\n\n");
  }
  async distillCrawlContext(rawCrawl) {
    const systemPrompt = `
You are a context distiller. Extract the "Company DNA" in 5-8 bullet points (GERMAN).
Focus on: Services, USPs, Target Audience, Tone.
`;
    const resp = await axios_default.post(
      "https://openrouter.ai/api/v1/chat/completions",
      {
        model: "google/gemini-3-flash-preview",
        messages: [
          { role: "system", content: systemPrompt },
          { role: "user", content: `RAW_CRAWL:
${rawCrawl.substring(0, 2e4)}` }
        ]
      },
      {
        headers: { Authorization: `Bearer ${this.openRouterKey}` }
      }
    );
    return resp.data.choices[0].message.content;
  }
  async getAiEstimation(briefing, context, comments) {
    const systemPrompt = `
You are a Digital Architect. Analyze the briefing and crawl context.
Generate a JSON state for a project estimation.
Language: GERMAN.
Format: ROOT LEVEL JSON matching FormState interface.

### PRICING RULES:
- Base: 5440 \u20AC
- Page: 600 \u20AC
- Feature: 1500 \u20AC
- Function/API: 800 \u20AC

Return ONLY the JSON.
`;
    const userPrompt = `BRIEFING: ${briefing}

CONTEXT: ${context}

COMMENTS: ${comments}`;
    const resp = await axios_default.post(
      "https://openrouter.ai/api/v1/chat/completions",
      {
        model: "google/gemini-3-flash-preview",
        messages: [
          { role: "system", content: systemPrompt },
          { role: "user", content: userPrompt }
        ],
        response_format: { type: "json_object" }
      },
      {
        headers: { Authorization: `Bearer ${this.openRouterKey}` }
      }
    );
    let state;
    try {
      state = JSON.parse(resp.data.choices[0].message.content);
    } catch (_error) {
      console.error("Failed to parse AI estimation JSON, returning initial state.");
      state = initialState;
    }
    const finalState = { ...initialState, ...state };
    return {
      state: finalState,
      usage: {
        prompt: resp.data.usage?.prompt_tokens || 0,
        completion: resp.data.usage?.completion_tokens || 0,
        cost: resp.data.usage?.cost || 0
      }
    };
  }
};
var PdfEngine = class {
  constructor() {
  }
  async generateEstimatePdf(state, outputPath) {
    const totals = calculateTotals(state, PRICING);
    await (0, import_renderer13.renderToFile)(
      (0, import_react.createElement)(EstimationPDF, {
        state,
        totalPrice: totals.totalPrice,
        pricing: PRICING
      }),
      outputPath
    );
    return outputPath;
  }
};

// ../../node_modules/.pnpm/@react-email+body@0.0.11_react@19.2.4/node_modules/@react-email/body/dist/index.mjs
var React = __toESM(require("react"), 1);
var import_jsx_runtime13 = require("react/jsx-runtime");
var __defProp3 = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp3 = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp3.call(b2, prop))
      __defNormalProp2(a2, prop, b2[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b2)) {
      if (__propIsEnum.call(b2, prop))
        __defNormalProp2(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps = (a2, b2) => __defProps(a2, __getOwnPropDescs(b2));
var __objRest = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp3.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Body = React.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { children, style } = _b2, props = __objRest(_b2, ["children", "style"]);
    return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("body", __spreadProps(__spreadValues({}, props), { ref, style, children }));
  }
);
Body.displayName = "Body";

// ../../node_modules/.pnpm/@react-email+button@0.0.19_react@19.2.4/node_modules/@react-email/button/dist/index.mjs
var React2 = __toESM(require("react"), 1);
var import_jsx_runtime14 = require("react/jsx-runtime");
var __defProp4 = Object.defineProperty;
var __defProps2 = Object.defineProperties;
var __getOwnPropDescs2 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols2 = Object.getOwnPropertySymbols;
var __hasOwnProp4 = Object.prototype.hasOwnProperty;
var __propIsEnum2 = Object.prototype.propertyIsEnumerable;
var __defNormalProp3 = (obj, key, value) => key in obj ? __defProp4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues2 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp4.call(b2, prop))
      __defNormalProp3(a2, prop, b2[prop]);
  if (__getOwnPropSymbols2)
    for (var prop of __getOwnPropSymbols2(b2)) {
      if (__propIsEnum2.call(b2, prop))
        __defNormalProp3(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps2 = (a2, b2) => __defProps2(a2, __getOwnPropDescs2(b2));
var __objRest2 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp4.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols2)
    for (var prop of __getOwnPropSymbols2(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum2.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
function convertToPx(value) {
  let px = 0;
  if (!value) {
    return px;
  }
  if (typeof value === "number") {
    return value;
  }
  const matches = /^([\d.]+)(px|em|rem|%)$/.exec(value);
  if (matches && matches.length === 3) {
    const numValue = parseFloat(matches[1]);
    const unit = matches[2];
    switch (unit) {
      case "px":
        return numValue;
      case "em":
      case "rem":
        px = numValue * 16;
        return px;
      case "%":
        px = numValue / 100 * 600;
        return px;
      default:
        return numValue;
    }
  } else {
    return 0;
  }
}
function parsePadding({
  padding = "",
  paddingTop,
  paddingRight,
  paddingBottom,
  paddingLeft
}) {
  let pt3 = 0;
  let pr3 = 0;
  let pb = 0;
  let pl = 0;
  if (typeof padding === "number") {
    pt3 = padding;
    pr3 = padding;
    pb = padding;
    pl = padding;
  } else {
    const values = padding.split(/\s+/);
    switch (values.length) {
      case 1:
        pt3 = convertToPx(values[0]);
        pr3 = convertToPx(values[0]);
        pb = convertToPx(values[0]);
        pl = convertToPx(values[0]);
        break;
      case 2:
        pt3 = convertToPx(values[0]);
        pb = convertToPx(values[0]);
        pr3 = convertToPx(values[1]);
        pl = convertToPx(values[1]);
        break;
      case 3:
        pt3 = convertToPx(values[0]);
        pr3 = convertToPx(values[1]);
        pl = convertToPx(values[1]);
        pb = convertToPx(values[2]);
        break;
      case 4:
        pt3 = convertToPx(values[0]);
        pr3 = convertToPx(values[1]);
        pb = convertToPx(values[2]);
        pl = convertToPx(values[3]);
        break;
      default:
        break;
    }
  }
  return {
    pt: paddingTop ? convertToPx(paddingTop) : pt3,
    pr: paddingRight ? convertToPx(paddingRight) : pr3,
    pb: paddingBottom ? convertToPx(paddingBottom) : pb,
    pl: paddingLeft ? convertToPx(paddingLeft) : pl
  };
}
var pxToPt = (px) => typeof px === "number" && !isNaN(Number(px)) ? px * 3 / 4 : null;
var maxFontWidth = 5;
function computeFontWidthAndSpaceCount(expectedWidth) {
  if (expectedWidth === 0) return [0, 0];
  let smallestSpaceCount = 0;
  const computeRequiredFontWidth = () => {
    if (smallestSpaceCount > 0) {
      return expectedWidth / smallestSpaceCount / 2;
    }
    return Infinity;
  };
  while (computeRequiredFontWidth() > maxFontWidth) {
    smallestSpaceCount++;
  }
  return [computeRequiredFontWidth(), smallestSpaceCount];
}
var Button = React2.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { children, style, target = "_blank" } = _b2, props = __objRest2(_b2, ["children", "style", "target"]);
    var _a22, _b22, _c, _d;
    const { pt: pt3, pr: pr3, pb, pl } = parsePadding({
      padding: style == null ? void 0 : style.padding,
      paddingLeft: (_a22 = style == null ? void 0 : style.paddingLeft) != null ? _a22 : style == null ? void 0 : style.paddingInline,
      paddingRight: (_b22 = style == null ? void 0 : style.paddingRight) != null ? _b22 : style == null ? void 0 : style.paddingInline,
      paddingTop: (_c = style == null ? void 0 : style.paddingTop) != null ? _c : style == null ? void 0 : style.paddingBlock,
      paddingBottom: (_d = style == null ? void 0 : style.paddingBottom) != null ? _d : style == null ? void 0 : style.paddingBlock
    });
    const y2 = pt3 + pb;
    const textRaise = pxToPt(y2);
    const [plFontWidth, plSpaceCount] = computeFontWidthAndSpaceCount(pl);
    const [prFontWidth, prSpaceCount] = computeFontWidthAndSpaceCount(pr3);
    return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
      "a",
      __spreadProps2(__spreadValues2({}, props), {
        ref,
        style: buttonStyle(__spreadProps2(__spreadValues2({}, style), { pt: pt3, pr: pr3, pb, pl })),
        target,
        children: [
          /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
            "span",
            {
              dangerouslySetInnerHTML: {
                // The `&#8202;` is as close to `1px` of an empty character as we can get, then, we use the `mso-font-width`
                // to scale it according to what padding the developer wants. `mso-font-width` also does not allow for percentages
                // >= 500% so we need to add extra spaces accordingly.
                //
                // See https://github.com/resend/react-email/issues/1512 for why we do not use letter-spacing instead.
                __html: `<!--[if mso]><i style="mso-font-width:${plFontWidth * 100}%;mso-text-raise:${textRaise}" hidden>${"&#8202;".repeat(
                  plSpaceCount
                )}</i><![endif]-->`
              }
            }
          ),
          /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: buttonTextStyle(pb), children }),
          /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
            "span",
            {
              dangerouslySetInnerHTML: {
                __html: `<!--[if mso]><i style="mso-font-width:${prFontWidth * 100}%" hidden>${"&#8202;".repeat(
                  prSpaceCount
                )}&#8203;</i><![endif]-->`
              }
            }
          )
        ]
      })
    );
  }
);
Button.displayName = "Button";
var buttonStyle = (style) => {
  const _a4 = style || {}, { pt: pt3, pr: pr3, pb, pl } = _a4, rest = __objRest2(_a4, ["pt", "pr", "pb", "pl"]);
  return __spreadProps2(__spreadValues2({
    lineHeight: "100%",
    textDecoration: "none",
    display: "inline-block",
    maxWidth: "100%",
    msoPaddingAlt: "0px"
  }, rest), {
    padding: `${pt3}px ${pr3}px ${pb}px ${pl}px`
  });
};
var buttonTextStyle = (pb) => {
  return {
    maxWidth: "100%",
    display: "inline-block",
    lineHeight: "120%",
    msoPaddingAlt: "0px",
    msoTextRaise: pxToPt(pb || 0)
  };
};

// ../../node_modules/.pnpm/@react-email+container@0.0.15_react@19.2.4/node_modules/@react-email/container/dist/index.mjs
var React3 = __toESM(require("react"), 1);
var import_jsx_runtime15 = require("react/jsx-runtime");
var __defProp5 = Object.defineProperty;
var __defProps3 = Object.defineProperties;
var __getOwnPropDescs3 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols3 = Object.getOwnPropertySymbols;
var __hasOwnProp5 = Object.prototype.hasOwnProperty;
var __propIsEnum3 = Object.prototype.propertyIsEnumerable;
var __defNormalProp4 = (obj, key, value) => key in obj ? __defProp5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues3 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp5.call(b2, prop))
      __defNormalProp4(a2, prop, b2[prop]);
  if (__getOwnPropSymbols3)
    for (var prop of __getOwnPropSymbols3(b2)) {
      if (__propIsEnum3.call(b2, prop))
        __defNormalProp4(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps3 = (a2, b2) => __defProps3(a2, __getOwnPropDescs3(b2));
var __objRest3 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp5.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols3)
    for (var prop of __getOwnPropSymbols3(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum3.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Container = React3.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { children, style } = _b2, props = __objRest3(_b2, ["children", "style"]);
    return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
      "table",
      __spreadProps3(__spreadValues3({
        align: "center",
        width: "100%"
      }, props), {
        border: 0,
        cellPadding: "0",
        cellSpacing: "0",
        ref,
        role: "presentation",
        style: __spreadValues3({ maxWidth: "37.5em" }, style),
        children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tbody", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tr", { style: { width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("td", { children }) }) })
      })
    );
  }
);
Container.displayName = "Container";

// ../../node_modules/.pnpm/@react-email+head@0.0.12_react@19.2.4/node_modules/@react-email/head/dist/index.mjs
var React4 = __toESM(require("react"), 1);
var import_jsx_runtime16 = require("react/jsx-runtime");
var __defProp6 = Object.defineProperty;
var __defProps4 = Object.defineProperties;
var __getOwnPropDescs4 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols4 = Object.getOwnPropertySymbols;
var __hasOwnProp6 = Object.prototype.hasOwnProperty;
var __propIsEnum4 = Object.prototype.propertyIsEnumerable;
var __defNormalProp5 = (obj, key, value) => key in obj ? __defProp6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues4 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp6.call(b2, prop))
      __defNormalProp5(a2, prop, b2[prop]);
  if (__getOwnPropSymbols4)
    for (var prop of __getOwnPropSymbols4(b2)) {
      if (__propIsEnum4.call(b2, prop))
        __defNormalProp5(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps4 = (a2, b2) => __defProps4(a2, __getOwnPropDescs4(b2));
var __objRest4 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp6.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols4)
    for (var prop of __getOwnPropSymbols4(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum4.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Head = React4.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { children } = _b2, props = __objRest4(_b2, ["children"]);
    return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("head", __spreadProps4(__spreadValues4({}, props), { ref, children: [
      /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("meta", { content: "text/html; charset=UTF-8", httpEquiv: "Content-Type" }),
      /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("meta", { name: "x-apple-disable-message-reformatting" }),
      children
    ] }));
  }
);
Head.displayName = "Head";

// ../../node_modules/.pnpm/@react-email+heading@0.0.15_react@19.2.4/node_modules/@react-email/heading/dist/index.mjs
var React5 = __toESM(require("react"), 1);
var import_jsx_runtime17 = require("react/jsx-runtime");
var __defProp7 = Object.defineProperty;
var __defProps5 = Object.defineProperties;
var __getOwnPropDescs5 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols5 = Object.getOwnPropertySymbols;
var __hasOwnProp7 = Object.prototype.hasOwnProperty;
var __propIsEnum5 = Object.prototype.propertyIsEnumerable;
var __defNormalProp6 = (obj, key, value) => key in obj ? __defProp7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues5 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp7.call(b2, prop))
      __defNormalProp6(a2, prop, b2[prop]);
  if (__getOwnPropSymbols5)
    for (var prop of __getOwnPropSymbols5(b2)) {
      if (__propIsEnum5.call(b2, prop))
        __defNormalProp6(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps5 = (a2, b2) => __defProps5(a2, __getOwnPropDescs5(b2));
var __objRest5 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp7.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols5)
    for (var prop of __getOwnPropSymbols5(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum5.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var withMargin = (props) => {
  const nonEmptyStyles = [
    withSpace(props.m, ["margin"]),
    withSpace(props.mx, ["marginLeft", "marginRight"]),
    withSpace(props.my, ["marginTop", "marginBottom"]),
    withSpace(props.mt, ["marginTop"]),
    withSpace(props.mr, ["marginRight"]),
    withSpace(props.mb, ["marginBottom"]),
    withSpace(props.ml, ["marginLeft"])
  ].filter((s2) => Object.keys(s2).length);
  const mergedStyles = nonEmptyStyles.reduce((acc, style) => {
    return __spreadValues5(__spreadValues5({}, acc), style);
  }, {});
  return mergedStyles;
};
var withSpace = (value, properties) => {
  return properties.reduce((styles8, property) => {
    if (!isNaN(parseFloat(value))) {
      return __spreadProps5(__spreadValues5({}, styles8), { [property]: `${value}px` });
    }
    return styles8;
  }, {});
};
var Heading = React5.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { as: Tag2 = "h1", children, style, m: m2, mx, my, mt: mt2, mr: mr3, mb, ml } = _b2, props = __objRest5(_b2, ["as", "children", "style", "m", "mx", "my", "mt", "mr", "mb", "ml"]);
    return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
      Tag2,
      __spreadProps5(__spreadValues5({}, props), {
        ref,
        style: __spreadValues5(__spreadValues5({}, withMargin({ m: m2, mx, my, mt: mt2, mr: mr3, mb, ml })), style),
        children
      })
    );
  }
);
Heading.displayName = "Heading";

// ../../node_modules/.pnpm/@react-email+hr@0.0.11_react@19.2.4/node_modules/@react-email/hr/dist/index.mjs
var React6 = __toESM(require("react"), 1);
var import_jsx_runtime18 = require("react/jsx-runtime");
var __defProp8 = Object.defineProperty;
var __defProps6 = Object.defineProperties;
var __getOwnPropDescs6 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols6 = Object.getOwnPropertySymbols;
var __hasOwnProp8 = Object.prototype.hasOwnProperty;
var __propIsEnum6 = Object.prototype.propertyIsEnumerable;
var __defNormalProp7 = (obj, key, value) => key in obj ? __defProp8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues6 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp8.call(b2, prop))
      __defNormalProp7(a2, prop, b2[prop]);
  if (__getOwnPropSymbols6)
    for (var prop of __getOwnPropSymbols6(b2)) {
      if (__propIsEnum6.call(b2, prop))
        __defNormalProp7(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps6 = (a2, b2) => __defProps6(a2, __getOwnPropDescs6(b2));
var __objRest6 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp8.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols6)
    for (var prop of __getOwnPropSymbols6(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum6.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Hr = React6.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { style } = _b2, props = __objRest6(_b2, ["style"]);
    return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
      "hr",
      __spreadProps6(__spreadValues6({}, props), {
        ref,
        style: __spreadValues6({
          width: "100%",
          border: "none",
          borderTop: "1px solid #eaeaea"
        }, style)
      })
    );
  }
);
Hr.displayName = "Hr";

// ../../node_modules/.pnpm/@react-email+html@0.0.11_react@19.2.4/node_modules/@react-email/html/dist/index.mjs
var React7 = __toESM(require("react"), 1);
var import_jsx_runtime19 = require("react/jsx-runtime");
var __defProp9 = Object.defineProperty;
var __defProps7 = Object.defineProperties;
var __getOwnPropDescs7 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols7 = Object.getOwnPropertySymbols;
var __hasOwnProp9 = Object.prototype.hasOwnProperty;
var __propIsEnum7 = Object.prototype.propertyIsEnumerable;
var __defNormalProp8 = (obj, key, value) => key in obj ? __defProp9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues7 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp9.call(b2, prop))
      __defNormalProp8(a2, prop, b2[prop]);
  if (__getOwnPropSymbols7)
    for (var prop of __getOwnPropSymbols7(b2)) {
      if (__propIsEnum7.call(b2, prop))
        __defNormalProp8(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps7 = (a2, b2) => __defProps7(a2, __getOwnPropDescs7(b2));
var __objRest7 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp9.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols7)
    for (var prop of __getOwnPropSymbols7(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum7.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Html = React7.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { children, lang = "en", dir = "ltr" } = _b2, props = __objRest7(_b2, ["children", "lang", "dir"]);
    return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("html", __spreadProps7(__spreadValues7({}, props), { dir, lang, ref, children }));
  }
);
Html.displayName = "Html";

// ../../node_modules/.pnpm/@react-email+img@0.0.11_react@19.2.4/node_modules/@react-email/img/dist/index.mjs
var React8 = __toESM(require("react"), 1);
var import_jsx_runtime20 = require("react/jsx-runtime");
var __defProp10 = Object.defineProperty;
var __defProps8 = Object.defineProperties;
var __getOwnPropDescs8 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols8 = Object.getOwnPropertySymbols;
var __hasOwnProp10 = Object.prototype.hasOwnProperty;
var __propIsEnum8 = Object.prototype.propertyIsEnumerable;
var __defNormalProp9 = (obj, key, value) => key in obj ? __defProp10(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues8 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp10.call(b2, prop))
      __defNormalProp9(a2, prop, b2[prop]);
  if (__getOwnPropSymbols8)
    for (var prop of __getOwnPropSymbols8(b2)) {
      if (__propIsEnum8.call(b2, prop))
        __defNormalProp9(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps8 = (a2, b2) => __defProps8(a2, __getOwnPropDescs8(b2));
var __objRest8 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp10.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols8)
    for (var prop of __getOwnPropSymbols8(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum8.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Img = React8.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { alt, src, width, height, style } = _b2, props = __objRest8(_b2, ["alt", "src", "width", "height", "style"]);
    return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
      "img",
      __spreadProps8(__spreadValues8({}, props), {
        alt,
        height,
        ref,
        src,
        style: __spreadValues8({
          display: "block",
          outline: "none",
          border: "none",
          textDecoration: "none"
        }, style),
        width
      })
    );
  }
);
Img.displayName = "Img";

// ../../node_modules/.pnpm/@react-email+link@0.0.12_react@19.2.4/node_modules/@react-email/link/dist/index.mjs
var React9 = __toESM(require("react"), 1);
var import_jsx_runtime21 = require("react/jsx-runtime");
var __defProp11 = Object.defineProperty;
var __defProps9 = Object.defineProperties;
var __getOwnPropDescs9 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols9 = Object.getOwnPropertySymbols;
var __hasOwnProp11 = Object.prototype.hasOwnProperty;
var __propIsEnum9 = Object.prototype.propertyIsEnumerable;
var __defNormalProp10 = (obj, key, value) => key in obj ? __defProp11(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues9 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp11.call(b2, prop))
      __defNormalProp10(a2, prop, b2[prop]);
  if (__getOwnPropSymbols9)
    for (var prop of __getOwnPropSymbols9(b2)) {
      if (__propIsEnum9.call(b2, prop))
        __defNormalProp10(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps9 = (a2, b2) => __defProps9(a2, __getOwnPropDescs9(b2));
var __objRest9 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp11.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols9)
    for (var prop of __getOwnPropSymbols9(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum9.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Link = React9.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { target = "_blank", style } = _b2, props = __objRest9(_b2, ["target", "style"]);
    return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
      "a",
      __spreadProps9(__spreadValues9({}, props), {
        ref,
        style: __spreadValues9({
          color: "#067df7",
          textDecorationLine: "none"
        }, style),
        target,
        children: props.children
      })
    );
  }
);
Link.displayName = "Link";

// ../../node_modules/.pnpm/@react-email+preview@0.0.12_react@19.2.4/node_modules/@react-email/preview/dist/index.mjs
var React10 = __toESM(require("react"), 1);
var import_jsx_runtime22 = require("react/jsx-runtime");
var __defProp12 = Object.defineProperty;
var __defProps10 = Object.defineProperties;
var __getOwnPropDescs10 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols10 = Object.getOwnPropertySymbols;
var __hasOwnProp12 = Object.prototype.hasOwnProperty;
var __propIsEnum10 = Object.prototype.propertyIsEnumerable;
var __defNormalProp11 = (obj, key, value) => key in obj ? __defProp12(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues10 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp12.call(b2, prop))
      __defNormalProp11(a2, prop, b2[prop]);
  if (__getOwnPropSymbols10)
    for (var prop of __getOwnPropSymbols10(b2)) {
      if (__propIsEnum10.call(b2, prop))
        __defNormalProp11(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps10 = (a2, b2) => __defProps10(a2, __getOwnPropDescs10(b2));
var __objRest10 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp12.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols10)
    for (var prop of __getOwnPropSymbols10(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum10.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var PREVIEW_MAX_LENGTH = 150;
var Preview = React10.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { children = "" } = _b2, props = __objRest10(_b2, ["children"]);
    const text = (Array.isArray(children) ? children.join("") : children).substring(0, PREVIEW_MAX_LENGTH);
    return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
      "div",
      __spreadProps10(__spreadValues10({
        style: {
          display: "none",
          overflow: "hidden",
          lineHeight: "1px",
          opacity: 0,
          maxHeight: 0,
          maxWidth: 0
        }
      }, props), {
        ref,
        children: [
          text,
          renderWhiteSpace(text)
        ]
      })
    );
  }
);
Preview.displayName = "Preview";
var whiteSpaceCodes = "\xA0\u200C\u200B\u200D\u200E\u200F\uFEFF";
var renderWhiteSpace = (text) => {
  if (text.length >= PREVIEW_MAX_LENGTH) {
    return null;
  }
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { children: whiteSpaceCodes.repeat(PREVIEW_MAX_LENGTH - text.length) });
};

// ../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js
var ElementType;
(function(ElementType2) {
  ElementType2["Root"] = "root";
  ElementType2["Text"] = "text";
  ElementType2["Directive"] = "directive";
  ElementType2["Comment"] = "comment";
  ElementType2["Script"] = "script";
  ElementType2["Style"] = "style";
  ElementType2["Tag"] = "tag";
  ElementType2["CDATA"] = "cdata";
  ElementType2["Doctype"] = "doctype";
})(ElementType || (ElementType = {}));
function isTag(elem) {
  return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style;
}
var Root = ElementType.Root;
var Text = ElementType.Text;
var Directive = ElementType.Directive;
var Comment = ElementType.Comment;
var Script = ElementType.Script;
var Style = ElementType.Style;
var Tag = ElementType.Tag;
var CDATA = ElementType.CDATA;
var Doctype = ElementType.Doctype;

// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js
var Node = class {
  constructor() {
    this.parent = null;
    this.prev = null;
    this.next = null;
    this.startIndex = null;
    this.endIndex = null;
  }
  // Read-write aliases for properties
  /**
   * Same as {@link parent}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get parentNode() {
    return this.parent;
  }
  set parentNode(parent) {
    this.parent = parent;
  }
  /**
   * Same as {@link prev}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get previousSibling() {
    return this.prev;
  }
  set previousSibling(prev) {
    this.prev = prev;
  }
  /**
   * Same as {@link next}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get nextSibling() {
    return this.next;
  }
  set nextSibling(next) {
    this.next = next;
  }
  /**
   * Clone this node, and optionally its children.
   *
   * @param recursive Clone child nodes as well.
   * @returns A clone of the node.
   */
  cloneNode(recursive = false) {
    return cloneNode(this, recursive);
  }
};
var DataNode = class extends Node {
  /**
   * @param data The content of the data node
   */
  constructor(data) {
    super();
    this.data = data;
  }
  /**
   * Same as {@link data}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get nodeValue() {
    return this.data;
  }
  set nodeValue(data) {
    this.data = data;
  }
};
var Text2 = class extends DataNode {
  constructor() {
    super(...arguments);
    this.type = ElementType.Text;
  }
  get nodeType() {
    return 3;
  }
};
var Comment2 = class extends DataNode {
  constructor() {
    super(...arguments);
    this.type = ElementType.Comment;
  }
  get nodeType() {
    return 8;
  }
};
var ProcessingInstruction = class extends DataNode {
  constructor(name2, data) {
    super(data);
    this.name = name2;
    this.type = ElementType.Directive;
  }
  get nodeType() {
    return 1;
  }
};
var NodeWithChildren = class extends Node {
  /**
   * @param children Children of the node. Only certain node types can have children.
   */
  constructor(children) {
    super();
    this.children = children;
  }
  // Aliases
  /** First child of the node. */
  get firstChild() {
    var _a4;
    return (_a4 = this.children[0]) !== null && _a4 !== void 0 ? _a4 : null;
  }
  /** Last child of the node. */
  get lastChild() {
    return this.children.length > 0 ? this.children[this.children.length - 1] : null;
  }
  /**
   * Same as {@link children}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get childNodes() {
    return this.children;
  }
  set childNodes(children) {
    this.children = children;
  }
};
var CDATA2 = class extends NodeWithChildren {
  constructor() {
    super(...arguments);
    this.type = ElementType.CDATA;
  }
  get nodeType() {
    return 4;
  }
};
var Document = class extends NodeWithChildren {
  constructor() {
    super(...arguments);
    this.type = ElementType.Root;
  }
  get nodeType() {
    return 9;
  }
};
var Element = class extends NodeWithChildren {
  /**
   * @param name Name of the tag, eg. `div`, `span`.
   * @param attribs Object mapping attribute names to attribute values.
   * @param children Children of the node.
   */
  constructor(name2, attribs, children = [], type = name2 === "script" ? ElementType.Script : name2 === "style" ? ElementType.Style : ElementType.Tag) {
    super(children);
    this.name = name2;
    this.attribs = attribs;
    this.type = type;
  }
  get nodeType() {
    return 1;
  }
  // DOM Level 1 aliases
  /**
   * Same as {@link name}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get tagName() {
    return this.name;
  }
  set tagName(name2) {
    this.name = name2;
  }
  get attributes() {
    return Object.keys(this.attribs).map((name2) => {
      var _a4, _b2;
      return {
        name: name2,
        value: this.attribs[name2],
        namespace: (_a4 = this["x-attribsNamespace"]) === null || _a4 === void 0 ? void 0 : _a4[name2],
        prefix: (_b2 = this["x-attribsPrefix"]) === null || _b2 === void 0 ? void 0 : _b2[name2]
      };
    });
  }
};
function isTag2(node) {
  return isTag(node);
}
function isCDATA(node) {
  return node.type === ElementType.CDATA;
}
function isText(node) {
  return node.type === ElementType.Text;
}
function isComment(node) {
  return node.type === ElementType.Comment;
}
function isDirective(node) {
  return node.type === ElementType.Directive;
}
function isDocument(node) {
  return node.type === ElementType.Root;
}
function cloneNode(node, recursive = false) {
  let result;
  if (isText(node)) {
    result = new Text2(node.data);
  } else if (isComment(node)) {
    result = new Comment2(node.data);
  } else if (isTag2(node)) {
    const children = recursive ? cloneChildren(node.children) : [];
    const clone = new Element(node.name, { ...node.attribs }, children);
    children.forEach((child) => child.parent = clone);
    if (node.namespace != null) {
      clone.namespace = node.namespace;
    }
    if (node["x-attribsNamespace"]) {
      clone["x-attribsNamespace"] = { ...node["x-attribsNamespace"] };
    }
    if (node["x-attribsPrefix"]) {
      clone["x-attribsPrefix"] = { ...node["x-attribsPrefix"] };
    }
    result = clone;
  } else if (isCDATA(node)) {
    const children = recursive ? cloneChildren(node.children) : [];
    const clone = new CDATA2(children);
    children.forEach((child) => child.parent = clone);
    result = clone;
  } else if (isDocument(node)) {
    const children = recursive ? cloneChildren(node.children) : [];
    const clone = new Document(children);
    children.forEach((child) => child.parent = clone);
    if (node["x-mode"]) {
      clone["x-mode"] = node["x-mode"];
    }
    result = clone;
  } else if (isDirective(node)) {
    const instruction = new ProcessingInstruction(node.name, node.data);
    if (node["x-name"] != null) {
      instruction["x-name"] = node["x-name"];
      instruction["x-publicId"] = node["x-publicId"];
      instruction["x-systemId"] = node["x-systemId"];
    }
    result = instruction;
  } else {
    throw new Error(`Not implemented yet: ${node.type}`);
  }
  result.startIndex = node.startIndex;
  result.endIndex = node.endIndex;
  if (node.sourceCodeLocation != null) {
    result.sourceCodeLocation = node.sourceCodeLocation;
  }
  return result;
}
function cloneChildren(childs) {
  const children = childs.map((child) => cloneNode(child, true));
  for (let i3 = 1; i3 < children.length; i3++) {
    children[i3].prev = children[i3 - 1];
    children[i3 - 1].next = children[i3];
  }
  return children;
}

// ../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js
var defaultOpts = {
  withStartIndices: false,
  withEndIndices: false,
  xmlMode: false
};
var DomHandler = class {
  /**
   * @param callback Called once parsing has completed.
   * @param options Settings for the handler.
   * @param elementCB Callback whenever a tag is closed.
   */
  constructor(callback, options, elementCB) {
    this.dom = [];
    this.root = new Document(this.dom);
    this.done = false;
    this.tagStack = [this.root];
    this.lastNode = null;
    this.parser = null;
    if (typeof options === "function") {
      elementCB = options;
      options = defaultOpts;
    }
    if (typeof callback === "object") {
      options = callback;
      callback = void 0;
    }
    this.callback = callback !== null && callback !== void 0 ? callback : null;
    this.options = options !== null && options !== void 0 ? options : defaultOpts;
    this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
  }
  onparserinit(parser) {
    this.parser = parser;
  }
  // Resets the handler back to starting state
  onreset() {
    this.dom = [];
    this.root = new Document(this.dom);
    this.done = false;
    this.tagStack = [this.root];
    this.lastNode = null;
    this.parser = null;
  }
  // Signals the handler that parsing is done
  onend() {
    if (this.done)
      return;
    this.done = true;
    this.parser = null;
    this.handleCallback(null);
  }
  onerror(error) {
    this.handleCallback(error);
  }
  onclosetag() {
    this.lastNode = null;
    const elem = this.tagStack.pop();
    if (this.options.withEndIndices) {
      elem.endIndex = this.parser.endIndex;
    }
    if (this.elementCB)
      this.elementCB(elem);
  }
  onopentag(name2, attribs) {
    const type = this.options.xmlMode ? ElementType.Tag : void 0;
    const element = new Element(name2, attribs, void 0, type);
    this.addNode(element);
    this.tagStack.push(element);
  }
  ontext(data) {
    const { lastNode } = this;
    if (lastNode && lastNode.type === ElementType.Text) {
      lastNode.data += data;
      if (this.options.withEndIndices) {
        lastNode.endIndex = this.parser.endIndex;
      }
    } else {
      const node = new Text2(data);
      this.addNode(node);
      this.lastNode = node;
    }
  }
  oncomment(data) {
    if (this.lastNode && this.lastNode.type === ElementType.Comment) {
      this.lastNode.data += data;
      return;
    }
    const node = new Comment2(data);
    this.addNode(node);
    this.lastNode = node;
  }
  oncommentend() {
    this.lastNode = null;
  }
  oncdatastart() {
    const text = new Text2("");
    const node = new CDATA2([text]);
    this.addNode(node);
    text.parent = node;
    this.lastNode = text;
  }
  oncdataend() {
    this.lastNode = null;
  }
  onprocessinginstruction(name2, data) {
    const node = new ProcessingInstruction(name2, data);
    this.addNode(node);
  }
  handleCallback(error) {
    if (typeof this.callback === "function") {
      this.callback(error, this.dom);
    } else if (error) {
      throw error;
    }
  }
  addNode(node) {
    const parent = this.tagStack[this.tagStack.length - 1];
    const previousSibling = parent.children[parent.children.length - 1];
    if (this.options.withStartIndices) {
      node.startIndex = this.parser.startIndex;
    }
    if (this.options.withEndIndices) {
      node.endIndex = this.parser.endIndex;
    }
    parent.children.push(node);
    if (previousSibling) {
      node.prev = previousSibling;
      previousSibling.next = node;
    }
    node.parent = parent;
    this.lastNode = null;
  }
};

// ../../node_modules/.pnpm/leac@0.6.0/node_modules/leac/lib/leac.mjs
var e = /\n/g;
function n2(n3) {
  const o3 = [...n3.matchAll(e)].map(((e2) => e2.index || 0));
  o3.unshift(-1);
  const s2 = t(o3, 0, o3.length);
  return (e2) => r(s2, e2);
}
function t(e2, n3, r2) {
  if (r2 - n3 == 1) return { offset: e2[n3], index: n3 + 1 };
  const o3 = Math.ceil((n3 + r2) / 2), s2 = t(e2, n3, o3), l2 = t(e2, o3, r2);
  return { offset: s2.offset, low: s2, high: l2 };
}
function r(e2, n3) {
  return (function(e3) {
    return Object.prototype.hasOwnProperty.call(e3, "index");
  })(e2) ? { line: e2.index, column: n3 - e2.offset } : r(e2.high.offset < n3 ? e2.high : e2.low, n3);
}
function o2(e2, t9 = "", r2 = {}) {
  const o3 = "string" != typeof t9 ? t9 : r2, l2 = "string" == typeof t9 ? t9 : "", c3 = e2.map(s), f = !!o3.lineNumbers;
  return function(e3, t10 = 0) {
    const r3 = f ? n2(e3) : () => ({ line: 0, column: 0 });
    let o4 = t10;
    const s2 = [];
    e: for (; o4 < e3.length; ) {
      let n3 = false;
      for (const t11 of c3) {
        t11.regex.lastIndex = o4;
        const c4 = t11.regex.exec(e3);
        if (c4 && c4[0].length > 0) {
          if (!t11.discard) {
            const e4 = r3(o4), n4 = "string" == typeof t11.replace ? c4[0].replace(new RegExp(t11.regex.source, t11.regex.flags), t11.replace) : c4[0];
            s2.push({ state: l2, name: t11.name, text: n4, offset: o4, len: c4[0].length, line: e4.line, column: e4.column });
          }
          if (o4 = t11.regex.lastIndex, n3 = true, t11.push) {
            const n4 = t11.push(e3, o4);
            s2.push(...n4.tokens), o4 = n4.offset;
          }
          if (t11.pop) break e;
          break;
        }
      }
      if (!n3) break;
    }
    return { tokens: s2, offset: o4, complete: e3.length <= o4 };
  };
}
function s(e2, n3) {
  return { ...e2, regex: l(e2, n3) };
}
function l(e2, n3) {
  if (0 === e2.name.length) throw new Error(`Rule #${n3} has empty name, which is not allowed.`);
  if ((function(e3) {
    return Object.prototype.hasOwnProperty.call(e3, "regex");
  })(e2)) return (function(e3) {
    if (e3.global) throw new Error(`Regular expression /${e3.source}/${e3.flags} contains the global flag, which is not allowed.`);
    return e3.sticky ? e3 : new RegExp(e3.source, e3.flags + "y");
  })(e2.regex);
  if ((function(e3) {
    return Object.prototype.hasOwnProperty.call(e3, "str");
  })(e2)) {
    if (0 === e2.str.length) throw new Error(`Rule #${n3} ("${e2.name}") has empty "str" property, which is not allowed.`);
    return new RegExp(c2(e2.str), "y");
  }
  return new RegExp(c2(e2.name), "y");
}
function c2(e2) {
  return e2.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g, "\\$&");
}

// ../../node_modules/.pnpm/peberminta@0.9.0/node_modules/peberminta/lib/core.mjs
function token(onToken, onEnd) {
  return (data, i3) => {
    let position = i3;
    let value = void 0;
    if (i3 < data.tokens.length) {
      value = onToken(data.tokens[i3], data, i3);
      if (value !== void 0) {
        position++;
      }
    } else {
      onEnd?.(data, i3);
    }
    return value === void 0 ? { matched: false } : {
      matched: true,
      position,
      value
    };
  };
}
function mapInner(r2, f) {
  return r2.matched ? {
    matched: true,
    position: r2.position,
    value: f(r2.value, r2.position)
  } : r2;
}
function mapOuter(r2, f) {
  return r2.matched ? f(r2) : r2;
}
function map(p, mapper) {
  return (data, i3) => mapInner(p(data, i3), (v2, j2) => mapper(v2, data, i3, j2));
}
function option(p, def) {
  return (data, i3) => {
    const r2 = p(data, i3);
    return r2.matched ? r2 : {
      matched: true,
      position: i3,
      value: def
    };
  };
}
function choice(...ps2) {
  return (data, i3) => {
    for (const p of ps2) {
      const result = p(data, i3);
      if (result.matched) {
        return result;
      }
    }
    return { matched: false };
  };
}
function otherwise(pa2, pb) {
  return (data, i3) => {
    const r1 = pa2(data, i3);
    return r1.matched ? r1 : pb(data, i3);
  };
}
function takeWhile(p, test3) {
  return (data, i3) => {
    const values = [];
    let success = true;
    do {
      const r2 = p(data, i3);
      if (r2.matched && test3(r2.value, values.length + 1, data, i3, r2.position)) {
        values.push(r2.value);
        i3 = r2.position;
      } else {
        success = false;
      }
    } while (success);
    return {
      matched: true,
      position: i3,
      value: values
    };
  };
}
function many(p) {
  return takeWhile(p, () => true);
}
function many1(p) {
  return ab(p, many(p), (head, tail) => [head, ...tail]);
}
function ab(pa2, pb, join3) {
  return (data, i3) => mapOuter(pa2(data, i3), (ma2) => mapInner(pb(data, ma2.position), (vb, j2) => join3(ma2.value, vb, data, i3, j2)));
}
function left(pa2, pb) {
  return ab(pa2, pb, (va2) => va2);
}
function right(pa2, pb) {
  return ab(pa2, pb, (va2, vb) => vb);
}
function abc(pa2, pb, pc, join3) {
  return (data, i3) => mapOuter(pa2(data, i3), (ma2) => mapOuter(pb(data, ma2.position), (mb) => mapInner(pc(data, mb.position), (vc, j2) => join3(ma2.value, mb.value, vc, data, i3, j2))));
}
function middle(pa2, pb, pc) {
  return abc(pa2, pb, pc, (ra2, rb) => rb);
}
function all5(...ps2) {
  return (data, i3) => {
    const result = [];
    let position = i3;
    for (const p of ps2) {
      const r1 = p(data, position);
      if (r1.matched) {
        result.push(r1.value);
        position = r1.position;
      } else {
        return { matched: false };
      }
    }
    return {
      matched: true,
      position,
      value: result
    };
  };
}
function flatten(...ps2) {
  return flatten1(all5(...ps2));
}
function flatten1(p) {
  return map(p, (vs2) => vs2.flatMap((v2) => v2));
}
function chainReduce(acc, f) {
  return (data, i3) => {
    let loop = true;
    let acc1 = acc;
    let pos = i3;
    do {
      const r2 = f(acc1, data, pos)(data, pos);
      if (r2.matched) {
        acc1 = r2.value;
        pos = r2.position;
      } else {
        loop = false;
      }
    } while (loop);
    return {
      matched: true,
      position: pos,
      value: acc1
    };
  };
}
function reduceLeft(acc, p, reducer) {
  return chainReduce(acc, (acc2) => map(p, (v2, data, i3, j2) => reducer(acc2, v2, data, i3, j2)));
}
function leftAssoc2(pLeft, pOper, pRight) {
  return chain(pLeft, (v0) => reduceLeft(v0, ab(pOper, pRight, (f, y2) => [f, y2]), (acc, [f, y2]) => f(acc, y2)));
}
function chain(p, f) {
  return (data, i3) => mapOuter(p(data, i3), (m1) => f(m1.value, data, i3, m1.position)(data, m1.position));
}

// ../../node_modules/.pnpm/parseley@0.12.1/node_modules/parseley/lib/parseley.mjs
var ws = `(?:[ \\t\\r\\n\\f]*)`;
var nl = `(?:\\n|\\r\\n|\\r|\\f)`;
var nonascii = `[^\\x00-\\x7F]`;
var unicode = `(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)`;
var escape2 = `(?:\\\\[^\\n\\r\\f0-9a-f])`;
var nmstart = `(?:[_a-z]|${nonascii}|${unicode}|${escape2})`;
var nmchar = `(?:[_a-z0-9-]|${nonascii}|${unicode}|${escape2})`;
var name = `(?:${nmchar}+)`;
var ident = `(?:[-]?${nmstart}${nmchar}*)`;
var string1 = `'([^\\n\\r\\f\\\\']|\\\\${nl}|${nonascii}|${unicode}|${escape2})*'`;
var string2 = `"([^\\n\\r\\f\\\\"]|\\\\${nl}|${nonascii}|${unicode}|${escape2})*"`;
var lexSelector = o2([
  { name: "ws", regex: new RegExp(ws) },
  { name: "hash", regex: new RegExp(`#${name}`, "i") },
  { name: "ident", regex: new RegExp(ident, "i") },
  { name: "str1", regex: new RegExp(string1, "i") },
  { name: "str2", regex: new RegExp(string2, "i") },
  { name: "*" },
  { name: "." },
  { name: "," },
  { name: "[" },
  { name: "]" },
  { name: "=" },
  { name: ">" },
  { name: "|" },
  { name: "+" },
  { name: "~" },
  { name: "^" },
  { name: "$" }
]);
var lexEscapedString = o2([
  { name: "unicode", regex: new RegExp(unicode, "i") },
  { name: "escape", regex: new RegExp(escape2, "i") },
  { name: "any", regex: new RegExp("[\\s\\S]", "i") }
]);
function sumSpec([a0, a1, a2], [b0, b1, b2]) {
  return [a0 + b0, a1 + b1, a2 + b2];
}
function sumAllSpec(ss2) {
  return ss2.reduce(sumSpec, [0, 0, 0]);
}
var unicodeEscapedSequence_ = token((t9) => t9.name === "unicode" ? String.fromCodePoint(parseInt(t9.text.slice(1), 16)) : void 0);
var escapedSequence_ = token((t9) => t9.name === "escape" ? t9.text.slice(1) : void 0);
var anyChar_ = token((t9) => t9.name === "any" ? t9.text : void 0);
var escapedString_ = map(many(choice(unicodeEscapedSequence_, escapedSequence_, anyChar_)), (cs2) => cs2.join(""));
function unescape2(escapedString) {
  const lexerResult = lexEscapedString(escapedString);
  const result = escapedString_({ tokens: lexerResult.tokens, options: void 0 }, 0);
  return result.value;
}
function literal(name2) {
  return token((t9) => t9.name === name2 ? true : void 0);
}
var whitespace_ = token((t9) => t9.name === "ws" ? null : void 0);
var optionalWhitespace_ = option(whitespace_, null);
function optionallySpaced(parser) {
  return middle(optionalWhitespace_, parser, optionalWhitespace_);
}
var identifier_ = token((t9) => t9.name === "ident" ? unescape2(t9.text) : void 0);
var hashId_ = token((t9) => t9.name === "hash" ? unescape2(t9.text.slice(1)) : void 0);
var string_ = token((t9) => t9.name.startsWith("str") ? unescape2(t9.text.slice(1, -1)) : void 0);
var namespace_ = left(option(identifier_, ""), literal("|"));
var qualifiedName_ = otherwise(ab(namespace_, identifier_, (ns2, name2) => ({ name: name2, namespace: ns2 })), map(identifier_, (name2) => ({ name: name2, namespace: null })));
var uniSelector_ = otherwise(ab(namespace_, literal("*"), (ns2) => ({ type: "universal", namespace: ns2, specificity: [0, 0, 0] })), map(literal("*"), () => ({ type: "universal", namespace: null, specificity: [0, 0, 0] })));
var tagSelector_ = map(qualifiedName_, ({ name: name2, namespace }) => ({
  type: "tag",
  name: name2,
  namespace,
  specificity: [0, 0, 1]
}));
var classSelector_ = ab(literal("."), identifier_, (fullstop, name2) => ({
  type: "class",
  name: name2,
  specificity: [0, 1, 0]
}));
var idSelector_ = map(hashId_, (name2) => ({
  type: "id",
  name: name2,
  specificity: [1, 0, 0]
}));
var attrModifier_ = token((t9) => {
  if (t9.name === "ident") {
    if (t9.text === "i" || t9.text === "I") {
      return "i";
    }
    if (t9.text === "s" || t9.text === "S") {
      return "s";
    }
  }
  return void 0;
});
var attrValue_ = otherwise(ab(string_, option(right(optionalWhitespace_, attrModifier_), null), (v2, mod) => ({ value: v2, modifier: mod })), ab(identifier_, option(right(whitespace_, attrModifier_), null), (v2, mod) => ({ value: v2, modifier: mod })));
var attrMatcher_ = choice(map(literal("="), () => "="), ab(literal("~"), literal("="), () => "~="), ab(literal("|"), literal("="), () => "|="), ab(literal("^"), literal("="), () => "^="), ab(literal("$"), literal("="), () => "$="), ab(literal("*"), literal("="), () => "*="));
var attrPresenceSelector_ = abc(literal("["), optionallySpaced(qualifiedName_), literal("]"), (lbr, { name: name2, namespace }) => ({
  type: "attrPresence",
  name: name2,
  namespace,
  specificity: [0, 1, 0]
}));
var attrValueSelector_ = middle(literal("["), abc(optionallySpaced(qualifiedName_), attrMatcher_, optionallySpaced(attrValue_), ({ name: name2, namespace }, matcher, { value, modifier }) => ({
  type: "attrValue",
  name: name2,
  namespace,
  matcher,
  value,
  modifier,
  specificity: [0, 1, 0]
})), literal("]"));
var attrSelector_ = otherwise(attrPresenceSelector_, attrValueSelector_);
var typeSelector_ = otherwise(uniSelector_, tagSelector_);
var subclassSelector_ = choice(idSelector_, classSelector_, attrSelector_);
var compoundSelector_ = map(otherwise(flatten(typeSelector_, many(subclassSelector_)), many1(subclassSelector_)), (ss2) => {
  return {
    type: "compound",
    list: ss2,
    specificity: sumAllSpec(ss2.map((s2) => s2.specificity))
  };
});
var combinator_ = choice(map(literal(">"), () => ">"), map(literal("+"), () => "+"), map(literal("~"), () => "~"), ab(literal("|"), literal("|"), () => "||"));
var combinatorSeparator_ = otherwise(optionallySpaced(combinator_), map(whitespace_, () => " "));
var complexSelector_ = leftAssoc2(compoundSelector_, map(combinatorSeparator_, (c3) => (left2, right2) => ({
  type: "compound",
  list: [...right2.list, { type: "combinator", combinator: c3, left: left2, specificity: left2.specificity }],
  specificity: sumSpec(left2.specificity, right2.specificity)
})), compoundSelector_);
var listSelector_ = leftAssoc2(map(complexSelector_, (s2) => ({ type: "list", list: [s2] })), map(optionallySpaced(literal(",")), () => (acc, next) => ({ type: "list", list: [...acc.list, next] })), complexSelector_);
function parse_(parser, str) {
  if (!(typeof str === "string" || str instanceof String)) {
    throw new Error("Expected a selector string. Actual input is not a string!");
  }
  const lexerResult = lexSelector(str);
  if (!lexerResult.complete) {
    throw new Error(`The input "${str}" was only partially tokenized, stopped at offset ${lexerResult.offset}!
` + prettyPrintPosition(str, lexerResult.offset));
  }
  const result = optionallySpaced(parser)({ tokens: lexerResult.tokens, options: void 0 }, 0);
  if (!result.matched) {
    throw new Error(`No match for "${str}" input!`);
  }
  if (result.position < lexerResult.tokens.length) {
    const token2 = lexerResult.tokens[result.position];
    throw new Error(`The input "${str}" was only partially parsed, stopped at offset ${token2.offset}!
` + prettyPrintPosition(str, token2.offset, token2.len));
  }
  return result.value;
}
function prettyPrintPosition(str, offset, len = 1) {
  return `${str.replace(/(\t)|(\r)|(\n)/g, (m2, t9, r2) => t9 ? "\u2409" : r2 ? "\u240D" : "\u240A")}
${"".padEnd(offset)}${"^".repeat(len)}`;
}
function parse1(str) {
  return parse_(complexSelector_, str);
}
function serialize(selector) {
  if (!selector.type) {
    throw new Error("This is not an AST node.");
  }
  switch (selector.type) {
    case "universal":
      return _serNs(selector.namespace) + "*";
    case "tag":
      return _serNs(selector.namespace) + _serIdent(selector.name);
    case "class":
      return "." + _serIdent(selector.name);
    case "id":
      return "#" + _serIdent(selector.name);
    case "attrPresence":
      return `[${_serNs(selector.namespace)}${_serIdent(selector.name)}]`;
    case "attrValue":
      return `[${_serNs(selector.namespace)}${_serIdent(selector.name)}${selector.matcher}"${_serStr(selector.value)}"${selector.modifier ? selector.modifier : ""}]`;
    case "combinator":
      return serialize(selector.left) + selector.combinator;
    case "compound":
      return selector.list.reduce((acc, node) => {
        if (node.type === "combinator") {
          return serialize(node) + acc;
        } else {
          return acc + serialize(node);
        }
      }, "");
    case "list":
      return selector.list.map(serialize).join(",");
  }
}
function _serNs(ns2) {
  return ns2 || ns2 === "" ? _serIdent(ns2) + "|" : "";
}
function _codePoint(char) {
  return `\\${char.codePointAt(0).toString(16)} `;
}
function _serIdent(str) {
  return str.replace(
    /(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g,
    (m2, d1, d2, hy, safe, nl2, ctrl, other) => d1 ? _codePoint(d1) : d2 ? "-" + _codePoint(d2.slice(1)) : hy ? "\\-" : safe ? safe : nl2 ? "\uFFFD" : ctrl ? _codePoint(ctrl) : "\\" + other
  );
}
function _serStr(str) {
  return str.replace(
    /(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,
    (m2, dq, bs2, nl2, ctrl) => dq ? '\\"' : bs2 ? "\\\\" : nl2 ? "\uFFFD" : _codePoint(ctrl)
  );
}
function normalize(selector) {
  if (!selector.type) {
    throw new Error("This is not an AST node.");
  }
  switch (selector.type) {
    case "compound": {
      selector.list.forEach(normalize);
      selector.list.sort((a2, b2) => _compareArrays(_getSelectorPriority(a2), _getSelectorPriority(b2)));
      break;
    }
    case "combinator": {
      normalize(selector.left);
      break;
    }
    case "list": {
      selector.list.forEach(normalize);
      selector.list.sort((a2, b2) => serialize(a2) < serialize(b2) ? -1 : 1);
      break;
    }
  }
  return selector;
}
function _getSelectorPriority(selector) {
  switch (selector.type) {
    case "universal":
      return [1];
    case "tag":
      return [1];
    case "id":
      return [2];
    case "class":
      return [3, selector.name];
    case "attrPresence":
      return [4, serialize(selector)];
    case "attrValue":
      return [5, serialize(selector)];
    case "combinator":
      return [15, serialize(selector)];
  }
}
function compareSpecificity(a2, b2) {
  return _compareArrays(a2, b2);
}
function _compareArrays(a2, b2) {
  if (!Array.isArray(a2) || !Array.isArray(b2)) {
    throw new Error("Arguments must be arrays.");
  }
  const shorter = a2.length < b2.length ? a2.length : b2.length;
  for (let i3 = 0; i3 < shorter; i3++) {
    if (a2[i3] === b2[i3]) {
      continue;
    }
    return a2[i3] < b2[i3] ? -1 : 1;
  }
  return a2.length - b2.length;
}

// ../../node_modules/.pnpm/selderee@0.11.0/node_modules/selderee/lib/selderee.mjs
var DecisionTree = class {
  constructor(input) {
    this.branches = weave(toAstTerminalPairs(input));
  }
  build(builder) {
    return builder(this.branches);
  }
};
function toAstTerminalPairs(array) {
  const len = array.length;
  const results = new Array(len);
  for (let i3 = 0; i3 < len; i3++) {
    const [selectorString, val] = array[i3];
    const ast = preprocess(parse1(selectorString));
    results[i3] = {
      ast,
      terminal: {
        type: "terminal",
        valueContainer: { index: i3, value: val, specificity: ast.specificity }
      }
    };
  }
  return results;
}
function preprocess(ast) {
  reduceSelectorVariants(ast);
  normalize(ast);
  return ast;
}
function reduceSelectorVariants(ast) {
  const newList = [];
  ast.list.forEach((sel) => {
    switch (sel.type) {
      case "class":
        newList.push({
          matcher: "~=",
          modifier: null,
          name: "class",
          namespace: null,
          specificity: sel.specificity,
          type: "attrValue",
          value: sel.name
        });
        break;
      case "id":
        newList.push({
          matcher: "=",
          modifier: null,
          name: "id",
          namespace: null,
          specificity: sel.specificity,
          type: "attrValue",
          value: sel.name
        });
        break;
      case "combinator":
        reduceSelectorVariants(sel.left);
        newList.push(sel);
        break;
      case "universal":
        break;
      default:
        newList.push(sel);
        break;
    }
  });
  ast.list = newList;
}
function weave(items) {
  const branches = [];
  while (items.length) {
    const topKind = findTopKey(items, (sel) => true, getSelectorKind);
    const { matches, nonmatches, empty } = breakByKind(items, topKind);
    items = nonmatches;
    if (matches.length) {
      branches.push(branchOfKind(topKind, matches));
    }
    if (empty.length) {
      branches.push(...terminate(empty));
    }
  }
  return branches;
}
function terminate(items) {
  const results = [];
  for (const item of items) {
    const terminal = item.terminal;
    if (terminal.type === "terminal") {
      results.push(terminal);
    } else {
      const { matches, rest } = partition(terminal.cont, (node) => node.type === "terminal");
      matches.forEach((node) => results.push(node));
      if (rest.length) {
        terminal.cont = rest;
        results.push(terminal);
      }
    }
  }
  return results;
}
function breakByKind(items, selectedKind) {
  const matches = [];
  const nonmatches = [];
  const empty = [];
  for (const item of items) {
    const simpsels = item.ast.list;
    if (simpsels.length) {
      const isMatch = simpsels.some((node) => getSelectorKind(node) === selectedKind);
      (isMatch ? matches : nonmatches).push(item);
    } else {
      empty.push(item);
    }
  }
  return { matches, nonmatches, empty };
}
function getSelectorKind(sel) {
  switch (sel.type) {
    case "attrPresence":
      return `attrPresence ${sel.name}`;
    case "attrValue":
      return `attrValue ${sel.name}`;
    case "combinator":
      return `combinator ${sel.combinator}`;
    default:
      return sel.type;
  }
}
function branchOfKind(kind, items) {
  if (kind === "tag") {
    return tagNameBranch(items);
  }
  if (kind.startsWith("attrValue ")) {
    return attrValueBranch(kind.substring(10), items);
  }
  if (kind.startsWith("attrPresence ")) {
    return attrPresenceBranch(kind.substring(13), items);
  }
  if (kind === "combinator >") {
    return combinatorBranch(">", items);
  }
  if (kind === "combinator +") {
    return combinatorBranch("+", items);
  }
  throw new Error(`Unsupported selector kind: ${kind}`);
}
function tagNameBranch(items) {
  const groups = spliceAndGroup(items, (x3) => x3.type === "tag", (x3) => x3.name);
  const variants = Object.entries(groups).map(([name2, group]) => ({
    type: "variant",
    value: name2,
    cont: weave(group.items)
  }));
  return {
    type: "tagName",
    variants
  };
}
function attrPresenceBranch(name2, items) {
  for (const item of items) {
    spliceSimpleSelector(item, (x3) => x3.type === "attrPresence" && x3.name === name2);
  }
  return {
    type: "attrPresence",
    name: name2,
    cont: weave(items)
  };
}
function attrValueBranch(name2, items) {
  const groups = spliceAndGroup(items, (x3) => x3.type === "attrValue" && x3.name === name2, (x3) => `${x3.matcher} ${x3.modifier || ""} ${x3.value}`);
  const matchers = [];
  for (const group of Object.values(groups)) {
    const sel = group.oneSimpleSelector;
    const predicate = getAttrPredicate(sel);
    const continuation = weave(group.items);
    matchers.push({
      type: "matcher",
      matcher: sel.matcher,
      modifier: sel.modifier,
      value: sel.value,
      predicate,
      cont: continuation
    });
  }
  return {
    type: "attrValue",
    name: name2,
    matchers
  };
}
function getAttrPredicate(sel) {
  if (sel.modifier === "i") {
    const expected = sel.value.toLowerCase();
    switch (sel.matcher) {
      case "=":
        return (actual) => expected === actual.toLowerCase();
      case "~=":
        return (actual) => actual.toLowerCase().split(/[ \t]+/).includes(expected);
      case "^=":
        return (actual) => actual.toLowerCase().startsWith(expected);
      case "$=":
        return (actual) => actual.toLowerCase().endsWith(expected);
      case "*=":
        return (actual) => actual.toLowerCase().includes(expected);
      case "|=":
        return (actual) => {
          const lower = actual.toLowerCase();
          return expected === lower || lower.startsWith(expected) && lower[expected.length] === "-";
        };
    }
  } else {
    const expected = sel.value;
    switch (sel.matcher) {
      case "=":
        return (actual) => expected === actual;
      case "~=":
        return (actual) => actual.split(/[ \t]+/).includes(expected);
      case "^=":
        return (actual) => actual.startsWith(expected);
      case "$=":
        return (actual) => actual.endsWith(expected);
      case "*=":
        return (actual) => actual.includes(expected);
      case "|=":
        return (actual) => expected === actual || actual.startsWith(expected) && actual[expected.length] === "-";
    }
  }
}
function combinatorBranch(combinator, items) {
  const groups = spliceAndGroup(items, (x3) => x3.type === "combinator" && x3.combinator === combinator, (x3) => serialize(x3.left));
  const leftItems = [];
  for (const group of Object.values(groups)) {
    const rightCont = weave(group.items);
    const leftAst = group.oneSimpleSelector.left;
    leftItems.push({
      ast: leftAst,
      terminal: { type: "popElement", cont: rightCont }
    });
  }
  return {
    type: "pushElement",
    combinator,
    cont: weave(leftItems)
  };
}
function spliceAndGroup(items, predicate, keyCallback) {
  const groups = {};
  while (items.length) {
    const bestKey = findTopKey(items, predicate, keyCallback);
    const bestKeyPredicate = (sel) => predicate(sel) && keyCallback(sel) === bestKey;
    const hasBestKeyPredicate = (item) => item.ast.list.some(bestKeyPredicate);
    const { matches, rest } = partition1(items, hasBestKeyPredicate);
    let oneSimpleSelector = null;
    for (const item of matches) {
      const splicedNode = spliceSimpleSelector(item, bestKeyPredicate);
      if (!oneSimpleSelector) {
        oneSimpleSelector = splicedNode;
      }
    }
    if (oneSimpleSelector == null) {
      throw new Error("No simple selector is found.");
    }
    groups[bestKey] = { oneSimpleSelector, items: matches };
    items = rest;
  }
  return groups;
}
function spliceSimpleSelector(item, predicate) {
  const simpsels = item.ast.list;
  const matches = new Array(simpsels.length);
  let firstIndex = -1;
  for (let i3 = simpsels.length; i3-- > 0; ) {
    if (predicate(simpsels[i3])) {
      matches[i3] = true;
      firstIndex = i3;
    }
  }
  if (firstIndex == -1) {
    throw new Error(`Couldn't find the required simple selector.`);
  }
  const result = simpsels[firstIndex];
  item.ast.list = simpsels.filter((sel, i3) => !matches[i3]);
  return result;
}
function findTopKey(items, predicate, keyCallback) {
  const candidates = {};
  for (const item of items) {
    const candidates1 = {};
    for (const node of item.ast.list.filter(predicate)) {
      candidates1[keyCallback(node)] = true;
    }
    for (const key of Object.keys(candidates1)) {
      if (candidates[key]) {
        candidates[key]++;
      } else {
        candidates[key] = 1;
      }
    }
  }
  let topKind = "";
  let topCounter = 0;
  for (const entry of Object.entries(candidates)) {
    if (entry[1] > topCounter) {
      topKind = entry[0];
      topCounter = entry[1];
    }
  }
  return topKind;
}
function partition(src, predicate) {
  const matches = [];
  const rest = [];
  for (const x3 of src) {
    if (predicate(x3)) {
      matches.push(x3);
    } else {
      rest.push(x3);
    }
  }
  return { matches, rest };
}
function partition1(src, predicate) {
  const matches = [];
  const rest = [];
  for (const x3 of src) {
    if (predicate(x3)) {
      matches.push(x3);
    } else {
      rest.push(x3);
    }
  }
  return { matches, rest };
}
var Picker = class {
  constructor(f) {
    this.f = f;
  }
  pickAll(el) {
    return this.f(el);
  }
  pick1(el, preferFirst = false) {
    const results = this.f(el);
    const len = results.length;
    if (len === 0) {
      return null;
    }
    if (len === 1) {
      return results[0].value;
    }
    const comparator = preferFirst ? comparatorPreferFirst : comparatorPreferLast;
    let result = results[0];
    for (let i3 = 1; i3 < len; i3++) {
      const next = results[i3];
      if (comparator(result, next)) {
        result = next;
      }
    }
    return result.value;
  }
};
function comparatorPreferFirst(acc, next) {
  const diff = compareSpecificity(next.specificity, acc.specificity);
  return diff > 0 || diff === 0 && next.index < acc.index;
}
function comparatorPreferLast(acc, next) {
  const diff = compareSpecificity(next.specificity, acc.specificity);
  return diff > 0 || diff === 0 && next.index > acc.index;
}

// ../../node_modules/.pnpm/@selderee+plugin-htmlparser2@0.11.0/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.mjs
function hp2Builder(nodes) {
  return new Picker(handleArray(nodes));
}
function handleArray(nodes) {
  const matchers = nodes.map(handleNode);
  return (el, ...tail) => matchers.flatMap((m2) => m2(el, ...tail));
}
function handleNode(node) {
  switch (node.type) {
    case "terminal": {
      const result = [node.valueContainer];
      return (el, ...tail) => result;
    }
    case "tagName":
      return handleTagName(node);
    case "attrValue":
      return handleAttrValueName(node);
    case "attrPresence":
      return handleAttrPresenceName(node);
    case "pushElement":
      return handlePushElementNode(node);
    case "popElement":
      return handlePopElementNode(node);
  }
}
function handleTagName(node) {
  const variants = {};
  for (const variant of node.variants) {
    variants[variant.value] = handleArray(variant.cont);
  }
  return (el, ...tail) => {
    const continuation = variants[el.name];
    return continuation ? continuation(el, ...tail) : [];
  };
}
function handleAttrPresenceName(node) {
  const attrName = node.name;
  const continuation = handleArray(node.cont);
  return (el, ...tail) => Object.prototype.hasOwnProperty.call(el.attribs, attrName) ? continuation(el, ...tail) : [];
}
function handleAttrValueName(node) {
  const callbacks = [];
  for (const matcher of node.matchers) {
    const predicate = matcher.predicate;
    const continuation = handleArray(matcher.cont);
    callbacks.push((attr, el, ...tail) => predicate(attr) ? continuation(el, ...tail) : []);
  }
  const attrName = node.name;
  return (el, ...tail) => {
    const attr = el.attribs[attrName];
    return attr || attr === "" ? callbacks.flatMap((cb) => cb(attr, el, ...tail)) : [];
  };
}
function handlePushElementNode(node) {
  const continuation = handleArray(node.cont);
  const leftElementGetter = node.combinator === "+" ? getPrecedingElement : getParentElement;
  return (el, ...tail) => {
    const next = leftElementGetter(el);
    if (next === null) {
      return [];
    }
    return continuation(next, el, ...tail);
  };
}
var getPrecedingElement = (el) => {
  const prev = el.prev;
  if (prev === null) {
    return null;
  }
  return isTag2(prev) ? prev : getPrecedingElement(prev);
};
var getParentElement = (el) => {
  const parent = el.parent;
  return parent && isTag2(parent) ? parent : null;
};
function handlePopElementNode(node) {
  const continuation = handleArray(node.cont);
  return (el, next, ...tail) => continuation(next, ...tail);
}

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.js
var decode_data_html_default = new Uint16Array(
  // prettier-ignore
  '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map((c3) => c3.charCodeAt(0))
);

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.js
var decode_data_xml_default = new Uint16Array(
  // prettier-ignore
  "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map((c3) => c3.charCodeAt(0))
);

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.js
var _a2;
var decodeMap = /* @__PURE__ */ new Map([
  [0, 65533],
  // C1 Unicode control character reference replacements
  [128, 8364],
  [130, 8218],
  [131, 402],
  [132, 8222],
  [133, 8230],
  [134, 8224],
  [135, 8225],
  [136, 710],
  [137, 8240],
  [138, 352],
  [139, 8249],
  [140, 338],
  [142, 381],
  [145, 8216],
  [146, 8217],
  [147, 8220],
  [148, 8221],
  [149, 8226],
  [150, 8211],
  [151, 8212],
  [152, 732],
  [153, 8482],
  [154, 353],
  [155, 8250],
  [156, 339],
  [158, 382],
  [159, 376]
]);
var fromCodePoint = (
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
  (_a2 = String.fromCodePoint) !== null && _a2 !== void 0 ? _a2 : function(codePoint) {
    let output = "";
    if (codePoint > 65535) {
      codePoint -= 65536;
      output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
      codePoint = 56320 | codePoint & 1023;
    }
    output += String.fromCharCode(codePoint);
    return output;
  }
);
function replaceCodePoint(codePoint) {
  var _a4;
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
    return 65533;
  }
  return (_a4 = decodeMap.get(codePoint)) !== null && _a4 !== void 0 ? _a4 : codePoint;
}

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js
var CharCodes;
(function(CharCodes3) {
  CharCodes3[CharCodes3["NUM"] = 35] = "NUM";
  CharCodes3[CharCodes3["SEMI"] = 59] = "SEMI";
  CharCodes3[CharCodes3["EQUALS"] = 61] = "EQUALS";
  CharCodes3[CharCodes3["ZERO"] = 48] = "ZERO";
  CharCodes3[CharCodes3["NINE"] = 57] = "NINE";
  CharCodes3[CharCodes3["LOWER_A"] = 97] = "LOWER_A";
  CharCodes3[CharCodes3["LOWER_F"] = 102] = "LOWER_F";
  CharCodes3[CharCodes3["LOWER_X"] = 120] = "LOWER_X";
  CharCodes3[CharCodes3["LOWER_Z"] = 122] = "LOWER_Z";
  CharCodes3[CharCodes3["UPPER_A"] = 65] = "UPPER_A";
  CharCodes3[CharCodes3["UPPER_F"] = 70] = "UPPER_F";
  CharCodes3[CharCodes3["UPPER_Z"] = 90] = "UPPER_Z";
})(CharCodes || (CharCodes = {}));
var TO_LOWER_BIT = 32;
var BinTrieFlags;
(function(BinTrieFlags2) {
  BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
  BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
  BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE";
})(BinTrieFlags || (BinTrieFlags = {}));
function isNumber3(code) {
  return code >= CharCodes.ZERO && code <= CharCodes.NINE;
}
function isHexadecimalCharacter(code) {
  return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F;
}
function isAsciiAlphaNumeric(code) {
  return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber3(code);
}
function isEntityInAttributeInvalidEnd(code) {
  return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);
}
var EntityDecoderState;
(function(EntityDecoderState2) {
  EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart";
  EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart";
  EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal";
  EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex";
  EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity";
})(EntityDecoderState || (EntityDecoderState = {}));
var DecodingMode;
(function(DecodingMode2) {
  DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy";
  DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict";
  DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute";
})(DecodingMode || (DecodingMode = {}));
var EntityDecoder = class {
  constructor(decodeTree, emitCodePoint, errors) {
    this.decodeTree = decodeTree;
    this.emitCodePoint = emitCodePoint;
    this.errors = errors;
    this.state = EntityDecoderState.EntityStart;
    this.consumed = 1;
    this.result = 0;
    this.treeIndex = 0;
    this.excess = 1;
    this.decodeMode = DecodingMode.Strict;
  }
  /** Resets the instance to make it reusable. */
  startEntity(decodeMode) {
    this.decodeMode = decodeMode;
    this.state = EntityDecoderState.EntityStart;
    this.result = 0;
    this.treeIndex = 0;
    this.excess = 1;
    this.consumed = 1;
  }
  /**
   * Write an entity to the decoder. This can be called multiple times with partial entities.
   * If the entity is incomplete, the decoder will return -1.
   *
   * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
   * entity is incomplete, and resume when the next string is written.
   *
   * @param string The string containing the entity (or a continuation of the entity).
   * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  write(str, offset) {
    switch (this.state) {
      case EntityDecoderState.EntityStart: {
        if (str.charCodeAt(offset) === CharCodes.NUM) {
          this.state = EntityDecoderState.NumericStart;
          this.consumed += 1;
          return this.stateNumericStart(str, offset + 1);
        }
        this.state = EntityDecoderState.NamedEntity;
        return this.stateNamedEntity(str, offset);
      }
      case EntityDecoderState.NumericStart: {
        return this.stateNumericStart(str, offset);
      }
      case EntityDecoderState.NumericDecimal: {
        return this.stateNumericDecimal(str, offset);
      }
      case EntityDecoderState.NumericHex: {
        return this.stateNumericHex(str, offset);
      }
      case EntityDecoderState.NamedEntity: {
        return this.stateNamedEntity(str, offset);
      }
    }
  }
  /**
   * Switches between the numeric decimal and hexadecimal states.
   *
   * Equivalent to the `Numeric character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNumericStart(str, offset) {
    if (offset >= str.length) {
      return -1;
    }
    if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
      this.state = EntityDecoderState.NumericHex;
      this.consumed += 1;
      return this.stateNumericHex(str, offset + 1);
    }
    this.state = EntityDecoderState.NumericDecimal;
    return this.stateNumericDecimal(str, offset);
  }
  addToNumericResult(str, start, end, base) {
    if (start !== end) {
      const digitCount = end - start;
      this.result = this.result * Math.pow(base, digitCount) + parseInt(str.substr(start, digitCount), base);
      this.consumed += digitCount;
    }
  }
  /**
   * Parses a hexadecimal numeric entity.
   *
   * Equivalent to the `Hexademical character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNumericHex(str, offset) {
    const startIdx = offset;
    while (offset < str.length) {
      const char = str.charCodeAt(offset);
      if (isNumber3(char) || isHexadecimalCharacter(char)) {
        offset += 1;
      } else {
        this.addToNumericResult(str, startIdx, offset, 16);
        return this.emitNumericEntity(char, 3);
      }
    }
    this.addToNumericResult(str, startIdx, offset, 16);
    return -1;
  }
  /**
   * Parses a decimal numeric entity.
   *
   * Equivalent to the `Decimal character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNumericDecimal(str, offset) {
    const startIdx = offset;
    while (offset < str.length) {
      const char = str.charCodeAt(offset);
      if (isNumber3(char)) {
        offset += 1;
      } else {
        this.addToNumericResult(str, startIdx, offset, 10);
        return this.emitNumericEntity(char, 2);
      }
    }
    this.addToNumericResult(str, startIdx, offset, 10);
    return -1;
  }
  /**
   * Validate and emit a numeric entity.
   *
   * Implements the logic from the `Hexademical character reference start
   * state` and `Numeric character reference end state` in the HTML spec.
   *
   * @param lastCp The last code point of the entity. Used to see if the
   *               entity was terminated with a semicolon.
   * @param expectedLength The minimum number of characters that should be
   *                       consumed. Used to validate that at least one digit
   *                       was consumed.
   * @returns The number of characters that were consumed.
   */
  emitNumericEntity(lastCp, expectedLength) {
    var _a4;
    if (this.consumed <= expectedLength) {
      (_a4 = this.errors) === null || _a4 === void 0 ? void 0 : _a4.absenceOfDigitsInNumericCharacterReference(this.consumed);
      return 0;
    }
    if (lastCp === CharCodes.SEMI) {
      this.consumed += 1;
    } else if (this.decodeMode === DecodingMode.Strict) {
      return 0;
    }
    this.emitCodePoint(replaceCodePoint(this.result), this.consumed);
    if (this.errors) {
      if (lastCp !== CharCodes.SEMI) {
        this.errors.missingSemicolonAfterCharacterReference();
      }
      this.errors.validateNumericCharacterReference(this.result);
    }
    return this.consumed;
  }
  /**
   * Parses a named entity.
   *
   * Equivalent to the `Named character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNamedEntity(str, offset) {
    const { decodeTree } = this;
    let current = decodeTree[this.treeIndex];
    let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
    for (; offset < str.length; offset++, this.excess++) {
      const char = str.charCodeAt(offset);
      this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
      if (this.treeIndex < 0) {
        return this.result === 0 || // If we are parsing an attribute
        this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity,
        (valueLength === 0 || // And there should be no invalid characters.
        isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity();
      }
      current = decodeTree[this.treeIndex];
      valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
      if (valueLength !== 0) {
        if (char === CharCodes.SEMI) {
          return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
        }
        if (this.decodeMode !== DecodingMode.Strict) {
          this.result = this.treeIndex;
          this.consumed += this.excess;
          this.excess = 0;
        }
      }
    }
    return -1;
  }
  /**
   * Emit a named entity that was not terminated with a semicolon.
   *
   * @returns The number of characters consumed.
   */
  emitNotTerminatedNamedEntity() {
    var _a4;
    const { result, decodeTree } = this;
    const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
    this.emitNamedEntityData(result, valueLength, this.consumed);
    (_a4 = this.errors) === null || _a4 === void 0 ? void 0 : _a4.missingSemicolonAfterCharacterReference();
    return this.consumed;
  }
  /**
   * Emit a named entity.
   *
   * @param result The index of the entity in the decode tree.
   * @param valueLength The number of bytes in the entity.
   * @param consumed The number of characters consumed.
   *
   * @returns The number of characters consumed.
   */
  emitNamedEntityData(result, valueLength, consumed) {
    const { decodeTree } = this;
    this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed);
    if (valueLength === 3) {
      this.emitCodePoint(decodeTree[result + 2], consumed);
    }
    return consumed;
  }
  /**
   * Signal to the parser that the end of the input was reached.
   *
   * Remaining data will be emitted and relevant errors will be produced.
   *
   * @returns The number of characters consumed.
   */
  end() {
    var _a4;
    switch (this.state) {
      case EntityDecoderState.NamedEntity: {
        return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
      }
      // Otherwise, emit a numeric entity if we have one.
      case EntityDecoderState.NumericDecimal: {
        return this.emitNumericEntity(0, 2);
      }
      case EntityDecoderState.NumericHex: {
        return this.emitNumericEntity(0, 3);
      }
      case EntityDecoderState.NumericStart: {
        (_a4 = this.errors) === null || _a4 === void 0 ? void 0 : _a4.absenceOfDigitsInNumericCharacterReference(this.consumed);
        return 0;
      }
      case EntityDecoderState.EntityStart: {
        return 0;
      }
    }
  }
};
function getDecoder(decodeTree) {
  let ret = "";
  const decoder2 = new EntityDecoder(decodeTree, (str) => ret += fromCodePoint(str));
  return function decodeWithTrie(str, decodeMode) {
    let lastIndex = 0;
    let offset = 0;
    while ((offset = str.indexOf("&", offset)) >= 0) {
      ret += str.slice(lastIndex, offset);
      decoder2.startEntity(decodeMode);
      const len = decoder2.write(
        str,
        // Skip the "&"
        offset + 1
      );
      if (len < 0) {
        lastIndex = offset + decoder2.end();
        break;
      }
      lastIndex = offset + len;
      offset = len === 0 ? lastIndex + 1 : lastIndex;
    }
    const result = ret + str.slice(lastIndex);
    ret = "";
    return result;
  };
}
function determineBranch(decodeTree, current, nodeIdx, char) {
  const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
  const jumpOffset = current & BinTrieFlags.JUMP_TABLE;
  if (branchCount === 0) {
    return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
  }
  if (jumpOffset) {
    const value = char - jumpOffset;
    return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1;
  }
  let lo2 = nodeIdx;
  let hi3 = lo2 + branchCount - 1;
  while (lo2 <= hi3) {
    const mid = lo2 + hi3 >>> 1;
    const midVal = decodeTree[mid];
    if (midVal < char) {
      lo2 = mid + 1;
    } else if (midVal > char) {
      hi3 = mid - 1;
    } else {
      return decodeTree[mid + branchCount];
    }
  }
  return -1;
}
var htmlDecoder = getDecoder(decode_data_html_default);
var xmlDecoder = getDecoder(decode_data_xml_default);

// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/esm/Tokenizer.js
var CharCodes2;
(function(CharCodes3) {
  CharCodes3[CharCodes3["Tab"] = 9] = "Tab";
  CharCodes3[CharCodes3["NewLine"] = 10] = "NewLine";
  CharCodes3[CharCodes3["FormFeed"] = 12] = "FormFeed";
  CharCodes3[CharCodes3["CarriageReturn"] = 13] = "CarriageReturn";
  CharCodes3[CharCodes3["Space"] = 32] = "Space";
  CharCodes3[CharCodes3["ExclamationMark"] = 33] = "ExclamationMark";
  CharCodes3[CharCodes3["Number"] = 35] = "Number";
  CharCodes3[CharCodes3["Amp"] = 38] = "Amp";
  CharCodes3[CharCodes3["SingleQuote"] = 39] = "SingleQuote";
  CharCodes3[CharCodes3["DoubleQuote"] = 34] = "DoubleQuote";
  CharCodes3[CharCodes3["Dash"] = 45] = "Dash";
  CharCodes3[CharCodes3["Slash"] = 47] = "Slash";
  CharCodes3[CharCodes3["Zero"] = 48] = "Zero";
  CharCodes3[CharCodes3["Nine"] = 57] = "Nine";
  CharCodes3[CharCodes3["Semi"] = 59] = "Semi";
  CharCodes3[CharCodes3["Lt"] = 60] = "Lt";
  CharCodes3[CharCodes3["Eq"] = 61] = "Eq";
  CharCodes3[CharCodes3["Gt"] = 62] = "Gt";
  CharCodes3[CharCodes3["Questionmark"] = 63] = "Questionmark";
  CharCodes3[CharCodes3["UpperA"] = 65] = "UpperA";
  CharCodes3[CharCodes3["LowerA"] = 97] = "LowerA";
  CharCodes3[CharCodes3["UpperF"] = 70] = "UpperF";
  CharCodes3[CharCodes3["LowerF"] = 102] = "LowerF";
  CharCodes3[CharCodes3["UpperZ"] = 90] = "UpperZ";
  CharCodes3[CharCodes3["LowerZ"] = 122] = "LowerZ";
  CharCodes3[CharCodes3["LowerX"] = 120] = "LowerX";
  CharCodes3[CharCodes3["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
})(CharCodes2 || (CharCodes2 = {}));
var State;
(function(State2) {
  State2[State2["Text"] = 1] = "Text";
  State2[State2["BeforeTagName"] = 2] = "BeforeTagName";
  State2[State2["InTagName"] = 3] = "InTagName";
  State2[State2["InSelfClosingTag"] = 4] = "InSelfClosingTag";
  State2[State2["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
  State2[State2["InClosingTagName"] = 6] = "InClosingTagName";
  State2[State2["AfterClosingTagName"] = 7] = "AfterClosingTagName";
  State2[State2["BeforeAttributeName"] = 8] = "BeforeAttributeName";
  State2[State2["InAttributeName"] = 9] = "InAttributeName";
  State2[State2["AfterAttributeName"] = 10] = "AfterAttributeName";
  State2[State2["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
  State2[State2["InAttributeValueDq"] = 12] = "InAttributeValueDq";
  State2[State2["InAttributeValueSq"] = 13] = "InAttributeValueSq";
  State2[State2["InAttributeValueNq"] = 14] = "InAttributeValueNq";
  State2[State2["BeforeDeclaration"] = 15] = "BeforeDeclaration";
  State2[State2["InDeclaration"] = 16] = "InDeclaration";
  State2[State2["InProcessingInstruction"] = 17] = "InProcessingInstruction";
  State2[State2["BeforeComment"] = 18] = "BeforeComment";
  State2[State2["CDATASequence"] = 19] = "CDATASequence";
  State2[State2["InSpecialComment"] = 20] = "InSpecialComment";
  State2[State2["InCommentLike"] = 21] = "InCommentLike";
  State2[State2["BeforeSpecialS"] = 22] = "BeforeSpecialS";
  State2[State2["SpecialStartSequence"] = 23] = "SpecialStartSequence";
  State2[State2["InSpecialTag"] = 24] = "InSpecialTag";
  State2[State2["BeforeEntity"] = 25] = "BeforeEntity";
  State2[State2["BeforeNumericEntity"] = 26] = "BeforeNumericEntity";
  State2[State2["InNamedEntity"] = 27] = "InNamedEntity";
  State2[State2["InNumericEntity"] = 28] = "InNumericEntity";
  State2[State2["InHexEntity"] = 29] = "InHexEntity";
})(State || (State = {}));
function isWhitespace(c3) {
  return c3 === CharCodes2.Space || c3 === CharCodes2.NewLine || c3 === CharCodes2.Tab || c3 === CharCodes2.FormFeed || c3 === CharCodes2.CarriageReturn;
}
function isEndOfTagSection(c3) {
  return c3 === CharCodes2.Slash || c3 === CharCodes2.Gt || isWhitespace(c3);
}
function isNumber4(c3) {
  return c3 >= CharCodes2.Zero && c3 <= CharCodes2.Nine;
}
function isASCIIAlpha(c3) {
  return c3 >= CharCodes2.LowerA && c3 <= CharCodes2.LowerZ || c3 >= CharCodes2.UpperA && c3 <= CharCodes2.UpperZ;
}
function isHexDigit(c3) {
  return c3 >= CharCodes2.UpperA && c3 <= CharCodes2.UpperF || c3 >= CharCodes2.LowerA && c3 <= CharCodes2.LowerF;
}
var QuoteType;
(function(QuoteType2) {
  QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue";
  QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted";
  QuoteType2[QuoteType2["Single"] = 2] = "Single";
  QuoteType2[QuoteType2["Double"] = 3] = "Double";
})(QuoteType || (QuoteType = {}));
var Sequences = {
  Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
  CdataEnd: new Uint8Array([93, 93, 62]),
  CommentEnd: new Uint8Array([45, 45, 62]),
  ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
  StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
  TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101])
  // `</title`
};
var Tokenizer = class {
  constructor({ xmlMode = false, decodeEntities = true }, cbs) {
    this.cbs = cbs;
    this.state = State.Text;
    this.buffer = "";
    this.sectionStart = 0;
    this.index = 0;
    this.baseState = State.Text;
    this.isSpecial = false;
    this.running = true;
    this.offset = 0;
    this.currentSequence = void 0;
    this.sequenceIndex = 0;
    this.trieIndex = 0;
    this.trieCurrent = 0;
    this.entityResult = 0;
    this.entityExcess = 0;
    this.xmlMode = xmlMode;
    this.decodeEntities = decodeEntities;
    this.entityTrie = xmlMode ? decode_data_xml_default : decode_data_html_default;
  }
  reset() {
    this.state = State.Text;
    this.buffer = "";
    this.sectionStart = 0;
    this.index = 0;
    this.baseState = State.Text;
    this.currentSequence = void 0;
    this.running = true;
    this.offset = 0;
  }
  write(chunk2) {
    this.offset += this.buffer.length;
    this.buffer = chunk2;
    this.parse();
  }
  end() {
    if (this.running)
      this.finish();
  }
  pause() {
    this.running = false;
  }
  resume() {
    this.running = true;
    if (this.index < this.buffer.length + this.offset) {
      this.parse();
    }
  }
  /**
   * The current index within all of the written data.
   */
  getIndex() {
    return this.index;
  }
  /**
   * The start of the current section.
   */
  getSectionStart() {
    return this.sectionStart;
  }
  stateText(c3) {
    if (c3 === CharCodes2.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes2.Lt)) {
      if (this.index > this.sectionStart) {
        this.cbs.ontext(this.sectionStart, this.index);
      }
      this.state = State.BeforeTagName;
      this.sectionStart = this.index;
    } else if (this.decodeEntities && c3 === CharCodes2.Amp) {
      this.state = State.BeforeEntity;
    }
  }
  stateSpecialStartSequence(c3) {
    const isEnd = this.sequenceIndex === this.currentSequence.length;
    const isMatch = isEnd ? (
      // If we are at the end of the sequence, make sure the tag name has ended
      isEndOfTagSection(c3)
    ) : (
      // Otherwise, do a case-insensitive comparison
      (c3 | 32) === this.currentSequence[this.sequenceIndex]
    );
    if (!isMatch) {
      this.isSpecial = false;
    } else if (!isEnd) {
      this.sequenceIndex++;
      return;
    }
    this.sequenceIndex = 0;
    this.state = State.InTagName;
    this.stateInTagName(c3);
  }
  /** Look for an end tag. For <title> tags, also decode entities. */
  stateInSpecialTag(c3) {
    if (this.sequenceIndex === this.currentSequence.length) {
      if (c3 === CharCodes2.Gt || isWhitespace(c3)) {
        const endOfText = this.index - this.currentSequence.length;
        if (this.sectionStart < endOfText) {
          const actualIndex = this.index;
          this.index = endOfText;
          this.cbs.ontext(this.sectionStart, endOfText);
          this.index = actualIndex;
        }
        this.isSpecial = false;
        this.sectionStart = endOfText + 2;
        this.stateInClosingTagName(c3);
        return;
      }
      this.sequenceIndex = 0;
    }
    if ((c3 | 32) === this.currentSequence[this.sequenceIndex]) {
      this.sequenceIndex += 1;
    } else if (this.sequenceIndex === 0) {
      if (this.currentSequence === Sequences.TitleEnd) {
        if (this.decodeEntities && c3 === CharCodes2.Amp) {
          this.state = State.BeforeEntity;
        }
      } else if (this.fastForwardTo(CharCodes2.Lt)) {
        this.sequenceIndex = 1;
      }
    } else {
      this.sequenceIndex = Number(c3 === CharCodes2.Lt);
    }
  }
  stateCDATASequence(c3) {
    if (c3 === Sequences.Cdata[this.sequenceIndex]) {
      if (++this.sequenceIndex === Sequences.Cdata.length) {
        this.state = State.InCommentLike;
        this.currentSequence = Sequences.CdataEnd;
        this.sequenceIndex = 0;
        this.sectionStart = this.index + 1;
      }
    } else {
      this.sequenceIndex = 0;
      this.state = State.InDeclaration;
      this.stateInDeclaration(c3);
    }
  }
  /**
   * When we wait for one specific character, we can speed things up
   * by skipping through the buffer until we find it.
   *
   * @returns Whether the character was found.
   */
  fastForwardTo(c3) {
    while (++this.index < this.buffer.length + this.offset) {
      if (this.buffer.charCodeAt(this.index - this.offset) === c3) {
        return true;
      }
    }
    this.index = this.buffer.length + this.offset - 1;
    return false;
  }
  /**
   * Comments and CDATA end with `-->` and `]]>`.
   *
   * Their common qualities are:
   * - Their end sequences have a distinct character they start with.
   * - That character is then repeated, so we have to check multiple repeats.
   * - All characters but the start character of the sequence can be skipped.
   */
  stateInCommentLike(c3) {
    if (c3 === this.currentSequence[this.sequenceIndex]) {
      if (++this.sequenceIndex === this.currentSequence.length) {
        if (this.currentSequence === Sequences.CdataEnd) {
          this.cbs.oncdata(this.sectionStart, this.index, 2);
        } else {
          this.cbs.oncomment(this.sectionStart, this.index, 2);
        }
        this.sequenceIndex = 0;
        this.sectionStart = this.index + 1;
        this.state = State.Text;
      }
    } else if (this.sequenceIndex === 0) {
      if (this.fastForwardTo(this.currentSequence[0])) {
        this.sequenceIndex = 1;
      }
    } else if (c3 !== this.currentSequence[this.sequenceIndex - 1]) {
      this.sequenceIndex = 0;
    }
  }
  /**
   * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.
   *
   * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).
   * We allow anything that wouldn't end the tag.
   */
  isTagStartChar(c3) {
    return this.xmlMode ? !isEndOfTagSection(c3) : isASCIIAlpha(c3);
  }
  startSpecial(sequence, offset) {
    this.isSpecial = true;
    this.currentSequence = sequence;
    this.sequenceIndex = offset;
    this.state = State.SpecialStartSequence;
  }
  stateBeforeTagName(c3) {
    if (c3 === CharCodes2.ExclamationMark) {
      this.state = State.BeforeDeclaration;
      this.sectionStart = this.index + 1;
    } else if (c3 === CharCodes2.Questionmark) {
      this.state = State.InProcessingInstruction;
      this.sectionStart = this.index + 1;
    } else if (this.isTagStartChar(c3)) {
      const lower = c3 | 32;
      this.sectionStart = this.index;
      if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {
        this.startSpecial(Sequences.TitleEnd, 3);
      } else {
        this.state = !this.xmlMode && lower === Sequences.ScriptEnd[2] ? State.BeforeSpecialS : State.InTagName;
      }
    } else if (c3 === CharCodes2.Slash) {
      this.state = State.BeforeClosingTagName;
    } else {
      this.state = State.Text;
      this.stateText(c3);
    }
  }
  stateInTagName(c3) {
    if (isEndOfTagSection(c3)) {
      this.cbs.onopentagname(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.state = State.BeforeAttributeName;
      this.stateBeforeAttributeName(c3);
    }
  }
  stateBeforeClosingTagName(c3) {
    if (isWhitespace(c3)) {
    } else if (c3 === CharCodes2.Gt) {
      this.state = State.Text;
    } else {
      this.state = this.isTagStartChar(c3) ? State.InClosingTagName : State.InSpecialComment;
      this.sectionStart = this.index;
    }
  }
  stateInClosingTagName(c3) {
    if (c3 === CharCodes2.Gt || isWhitespace(c3)) {
      this.cbs.onclosetag(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.state = State.AfterClosingTagName;
      this.stateAfterClosingTagName(c3);
    }
  }
  stateAfterClosingTagName(c3) {
    if (c3 === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) {
      this.state = State.Text;
      this.baseState = State.Text;
      this.sectionStart = this.index + 1;
    }
  }
  stateBeforeAttributeName(c3) {
    if (c3 === CharCodes2.Gt) {
      this.cbs.onopentagend(this.index);
      if (this.isSpecial) {
        this.state = State.InSpecialTag;
        this.sequenceIndex = 0;
      } else {
        this.state = State.Text;
      }
      this.baseState = this.state;
      this.sectionStart = this.index + 1;
    } else if (c3 === CharCodes2.Slash) {
      this.state = State.InSelfClosingTag;
    } else if (!isWhitespace(c3)) {
      this.state = State.InAttributeName;
      this.sectionStart = this.index;
    }
  }
  stateInSelfClosingTag(c3) {
    if (c3 === CharCodes2.Gt) {
      this.cbs.onselfclosingtag(this.index);
      this.state = State.Text;
      this.baseState = State.Text;
      this.sectionStart = this.index + 1;
      this.isSpecial = false;
    } else if (!isWhitespace(c3)) {
      this.state = State.BeforeAttributeName;
      this.stateBeforeAttributeName(c3);
    }
  }
  stateInAttributeName(c3) {
    if (c3 === CharCodes2.Eq || isEndOfTagSection(c3)) {
      this.cbs.onattribname(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.state = State.AfterAttributeName;
      this.stateAfterAttributeName(c3);
    }
  }
  stateAfterAttributeName(c3) {
    if (c3 === CharCodes2.Eq) {
      this.state = State.BeforeAttributeValue;
    } else if (c3 === CharCodes2.Slash || c3 === CharCodes2.Gt) {
      this.cbs.onattribend(QuoteType.NoValue, this.index);
      this.state = State.BeforeAttributeName;
      this.stateBeforeAttributeName(c3);
    } else if (!isWhitespace(c3)) {
      this.cbs.onattribend(QuoteType.NoValue, this.index);
      this.state = State.InAttributeName;
      this.sectionStart = this.index;
    }
  }
  stateBeforeAttributeValue(c3) {
    if (c3 === CharCodes2.DoubleQuote) {
      this.state = State.InAttributeValueDq;
      this.sectionStart = this.index + 1;
    } else if (c3 === CharCodes2.SingleQuote) {
      this.state = State.InAttributeValueSq;
      this.sectionStart = this.index + 1;
    } else if (!isWhitespace(c3)) {
      this.sectionStart = this.index;
      this.state = State.InAttributeValueNq;
      this.stateInAttributeValueNoQuotes(c3);
    }
  }
  handleInAttributeValue(c3, quote) {
    if (c3 === quote || !this.decodeEntities && this.fastForwardTo(quote)) {
      this.cbs.onattribdata(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.cbs.onattribend(quote === CharCodes2.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index);
      this.state = State.BeforeAttributeName;
    } else if (this.decodeEntities && c3 === CharCodes2.Amp) {
      this.baseState = this.state;
      this.state = State.BeforeEntity;
    }
  }
  stateInAttributeValueDoubleQuotes(c3) {
    this.handleInAttributeValue(c3, CharCodes2.DoubleQuote);
  }
  stateInAttributeValueSingleQuotes(c3) {
    this.handleInAttributeValue(c3, CharCodes2.SingleQuote);
  }
  stateInAttributeValueNoQuotes(c3) {
    if (isWhitespace(c3) || c3 === CharCodes2.Gt) {
      this.cbs.onattribdata(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.cbs.onattribend(QuoteType.Unquoted, this.index);
      this.state = State.BeforeAttributeName;
      this.stateBeforeAttributeName(c3);
    } else if (this.decodeEntities && c3 === CharCodes2.Amp) {
      this.baseState = this.state;
      this.state = State.BeforeEntity;
    }
  }
  stateBeforeDeclaration(c3) {
    if (c3 === CharCodes2.OpeningSquareBracket) {
      this.state = State.CDATASequence;
      this.sequenceIndex = 0;
    } else {
      this.state = c3 === CharCodes2.Dash ? State.BeforeComment : State.InDeclaration;
    }
  }
  stateInDeclaration(c3) {
    if (c3 === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) {
      this.cbs.ondeclaration(this.sectionStart, this.index);
      this.state = State.Text;
      this.sectionStart = this.index + 1;
    }
  }
  stateInProcessingInstruction(c3) {
    if (c3 === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) {
      this.cbs.onprocessinginstruction(this.sectionStart, this.index);
      this.state = State.Text;
      this.sectionStart = this.index + 1;
    }
  }
  stateBeforeComment(c3) {
    if (c3 === CharCodes2.Dash) {
      this.state = State.InCommentLike;
      this.currentSequence = Sequences.CommentEnd;
      this.sequenceIndex = 2;
      this.sectionStart = this.index + 1;
    } else {
      this.state = State.InDeclaration;
    }
  }
  stateInSpecialComment(c3) {
    if (c3 === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) {
      this.cbs.oncomment(this.sectionStart, this.index, 0);
      this.state = State.Text;
      this.sectionStart = this.index + 1;
    }
  }
  stateBeforeSpecialS(c3) {
    const lower = c3 | 32;
    if (lower === Sequences.ScriptEnd[3]) {
      this.startSpecial(Sequences.ScriptEnd, 4);
    } else if (lower === Sequences.StyleEnd[3]) {
      this.startSpecial(Sequences.StyleEnd, 4);
    } else {
      this.state = State.InTagName;
      this.stateInTagName(c3);
    }
  }
  stateBeforeEntity(c3) {
    this.entityExcess = 1;
    this.entityResult = 0;
    if (c3 === CharCodes2.Number) {
      this.state = State.BeforeNumericEntity;
    } else if (c3 === CharCodes2.Amp) {
    } else {
      this.trieIndex = 0;
      this.trieCurrent = this.entityTrie[0];
      this.state = State.InNamedEntity;
      this.stateInNamedEntity(c3);
    }
  }
  stateInNamedEntity(c3) {
    this.entityExcess += 1;
    this.trieIndex = determineBranch(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c3);
    if (this.trieIndex < 0) {
      this.emitNamedEntity();
      this.index--;
      return;
    }
    this.trieCurrent = this.entityTrie[this.trieIndex];
    const masked = this.trieCurrent & BinTrieFlags.VALUE_LENGTH;
    if (masked) {
      const valueLength = (masked >> 14) - 1;
      if (!this.allowLegacyEntity() && c3 !== CharCodes2.Semi) {
        this.trieIndex += valueLength;
      } else {
        const entityStart = this.index - this.entityExcess + 1;
        if (entityStart > this.sectionStart) {
          this.emitPartial(this.sectionStart, entityStart);
        }
        this.entityResult = this.trieIndex;
        this.trieIndex += valueLength;
        this.entityExcess = 0;
        this.sectionStart = this.index + 1;
        if (valueLength === 0) {
          this.emitNamedEntity();
        }
      }
    }
  }
  emitNamedEntity() {
    this.state = this.baseState;
    if (this.entityResult === 0) {
      return;
    }
    const valueLength = (this.entityTrie[this.entityResult] & BinTrieFlags.VALUE_LENGTH) >> 14;
    switch (valueLength) {
      case 1: {
        this.emitCodePoint(this.entityTrie[this.entityResult] & ~BinTrieFlags.VALUE_LENGTH);
        break;
      }
      case 2: {
        this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
        break;
      }
      case 3: {
        this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
        this.emitCodePoint(this.entityTrie[this.entityResult + 2]);
      }
    }
  }
  stateBeforeNumericEntity(c3) {
    if ((c3 | 32) === CharCodes2.LowerX) {
      this.entityExcess++;
      this.state = State.InHexEntity;
    } else {
      this.state = State.InNumericEntity;
      this.stateInNumericEntity(c3);
    }
  }
  emitNumericEntity(strict) {
    const entityStart = this.index - this.entityExcess - 1;
    const numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);
    if (numberStart !== this.index) {
      if (entityStart > this.sectionStart) {
        this.emitPartial(this.sectionStart, entityStart);
      }
      this.sectionStart = this.index + Number(strict);
      this.emitCodePoint(replaceCodePoint(this.entityResult));
    }
    this.state = this.baseState;
  }
  stateInNumericEntity(c3) {
    if (c3 === CharCodes2.Semi) {
      this.emitNumericEntity(true);
    } else if (isNumber4(c3)) {
      this.entityResult = this.entityResult * 10 + (c3 - CharCodes2.Zero);
      this.entityExcess++;
    } else {
      if (this.allowLegacyEntity()) {
        this.emitNumericEntity(false);
      } else {
        this.state = this.baseState;
      }
      this.index--;
    }
  }
  stateInHexEntity(c3) {
    if (c3 === CharCodes2.Semi) {
      this.emitNumericEntity(true);
    } else if (isNumber4(c3)) {
      this.entityResult = this.entityResult * 16 + (c3 - CharCodes2.Zero);
      this.entityExcess++;
    } else if (isHexDigit(c3)) {
      this.entityResult = this.entityResult * 16 + ((c3 | 32) - CharCodes2.LowerA + 10);
      this.entityExcess++;
    } else {
      if (this.allowLegacyEntity()) {
        this.emitNumericEntity(false);
      } else {
        this.state = this.baseState;
      }
      this.index--;
    }
  }
  allowLegacyEntity() {
    return !this.xmlMode && (this.baseState === State.Text || this.baseState === State.InSpecialTag);
  }
  /**
   * Remove data that has already been consumed from the buffer.
   */
  cleanup() {
    if (this.running && this.sectionStart !== this.index) {
      if (this.state === State.Text || this.state === State.InSpecialTag && this.sequenceIndex === 0) {
        this.cbs.ontext(this.sectionStart, this.index);
        this.sectionStart = this.index;
      } else if (this.state === State.InAttributeValueDq || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueNq) {
        this.cbs.onattribdata(this.sectionStart, this.index);
        this.sectionStart = this.index;
      }
    }
  }
  shouldContinue() {
    return this.index < this.buffer.length + this.offset && this.running;
  }
  /**
   * Iterates through the buffer, calling the function corresponding to the current state.
   *
   * States that are more likely to be hit are higher up, as a performance improvement.
   */
  parse() {
    while (this.shouldContinue()) {
      const c3 = this.buffer.charCodeAt(this.index - this.offset);
      switch (this.state) {
        case State.Text: {
          this.stateText(c3);
          break;
        }
        case State.SpecialStartSequence: {
          this.stateSpecialStartSequence(c3);
          break;
        }
        case State.InSpecialTag: {
          this.stateInSpecialTag(c3);
          break;
        }
        case State.CDATASequence: {
          this.stateCDATASequence(c3);
          break;
        }
        case State.InAttributeValueDq: {
          this.stateInAttributeValueDoubleQuotes(c3);
          break;
        }
        case State.InAttributeName: {
          this.stateInAttributeName(c3);
          break;
        }
        case State.InCommentLike: {
          this.stateInCommentLike(c3);
          break;
        }
        case State.InSpecialComment: {
          this.stateInSpecialComment(c3);
          break;
        }
        case State.BeforeAttributeName: {
          this.stateBeforeAttributeName(c3);
          break;
        }
        case State.InTagName: {
          this.stateInTagName(c3);
          break;
        }
        case State.InClosingTagName: {
          this.stateInClosingTagName(c3);
          break;
        }
        case State.BeforeTagName: {
          this.stateBeforeTagName(c3);
          break;
        }
        case State.AfterAttributeName: {
          this.stateAfterAttributeName(c3);
          break;
        }
        case State.InAttributeValueSq: {
          this.stateInAttributeValueSingleQuotes(c3);
          break;
        }
        case State.BeforeAttributeValue: {
          this.stateBeforeAttributeValue(c3);
          break;
        }
        case State.BeforeClosingTagName: {
          this.stateBeforeClosingTagName(c3);
          break;
        }
        case State.AfterClosingTagName: {
          this.stateAfterClosingTagName(c3);
          break;
        }
        case State.BeforeSpecialS: {
          this.stateBeforeSpecialS(c3);
          break;
        }
        case State.InAttributeValueNq: {
          this.stateInAttributeValueNoQuotes(c3);
          break;
        }
        case State.InSelfClosingTag: {
          this.stateInSelfClosingTag(c3);
          break;
        }
        case State.InDeclaration: {
          this.stateInDeclaration(c3);
          break;
        }
        case State.BeforeDeclaration: {
          this.stateBeforeDeclaration(c3);
          break;
        }
        case State.BeforeComment: {
          this.stateBeforeComment(c3);
          break;
        }
        case State.InProcessingInstruction: {
          this.stateInProcessingInstruction(c3);
          break;
        }
        case State.InNamedEntity: {
          this.stateInNamedEntity(c3);
          break;
        }
        case State.BeforeEntity: {
          this.stateBeforeEntity(c3);
          break;
        }
        case State.InHexEntity: {
          this.stateInHexEntity(c3);
          break;
        }
        case State.InNumericEntity: {
          this.stateInNumericEntity(c3);
          break;
        }
        default: {
          this.stateBeforeNumericEntity(c3);
        }
      }
      this.index++;
    }
    this.cleanup();
  }
  finish() {
    if (this.state === State.InNamedEntity) {
      this.emitNamedEntity();
    }
    if (this.sectionStart < this.index) {
      this.handleTrailingData();
    }
    this.cbs.onend();
  }
  /** Handle any trailing data. */
  handleTrailingData() {
    const endIndex = this.buffer.length + this.offset;
    if (this.state === State.InCommentLike) {
      if (this.currentSequence === Sequences.CdataEnd) {
        this.cbs.oncdata(this.sectionStart, endIndex, 0);
      } else {
        this.cbs.oncomment(this.sectionStart, endIndex, 0);
      }
    } else if (this.state === State.InNumericEntity && this.allowLegacyEntity()) {
      this.emitNumericEntity(false);
    } else if (this.state === State.InHexEntity && this.allowLegacyEntity()) {
      this.emitNumericEntity(false);
    } else if (this.state === State.InTagName || this.state === State.BeforeAttributeName || this.state === State.BeforeAttributeValue || this.state === State.AfterAttributeName || this.state === State.InAttributeName || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueDq || this.state === State.InAttributeValueNq || this.state === State.InClosingTagName) {
    } else {
      this.cbs.ontext(this.sectionStart, endIndex);
    }
  }
  emitPartial(start, endIndex) {
    if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
      this.cbs.onattribdata(start, endIndex);
    } else {
      this.cbs.ontext(start, endIndex);
    }
  }
  emitCodePoint(cp) {
    if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
      this.cbs.onattribentity(cp);
    } else {
      this.cbs.ontextentity(cp);
    }
  }
};

// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/esm/Parser.js
var formTags = /* @__PURE__ */ new Set([
  "input",
  "option",
  "optgroup",
  "select",
  "button",
  "datalist",
  "textarea"
]);
var pTag = /* @__PURE__ */ new Set(["p"]);
var tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]);
var ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]);
var rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]);
var openImpliesClose = /* @__PURE__ */ new Map([
  ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
  ["th", /* @__PURE__ */ new Set(["th"])],
  ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
  ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
  ["li", /* @__PURE__ */ new Set(["li"])],
  ["p", pTag],
  ["h1", pTag],
  ["h2", pTag],
  ["h3", pTag],
  ["h4", pTag],
  ["h5", pTag],
  ["h6", pTag],
  ["select", formTags],
  ["input", formTags],
  ["output", formTags],
  ["button", formTags],
  ["datalist", formTags],
  ["textarea", formTags],
  ["option", /* @__PURE__ */ new Set(["option"])],
  ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
  ["dd", ddtTags],
  ["dt", ddtTags],
  ["address", pTag],
  ["article", pTag],
  ["aside", pTag],
  ["blockquote", pTag],
  ["details", pTag],
  ["div", pTag],
  ["dl", pTag],
  ["fieldset", pTag],
  ["figcaption", pTag],
  ["figure", pTag],
  ["footer", pTag],
  ["form", pTag],
  ["header", pTag],
  ["hr", pTag],
  ["main", pTag],
  ["nav", pTag],
  ["ol", pTag],
  ["pre", pTag],
  ["section", pTag],
  ["table", pTag],
  ["ul", pTag],
  ["rt", rtpTags],
  ["rp", rtpTags],
  ["tbody", tableSectionTags],
  ["tfoot", tableSectionTags]
]);
var voidElements = /* @__PURE__ */ new Set([
  "area",
  "base",
  "basefont",
  "br",
  "col",
  "command",
  "embed",
  "frame",
  "hr",
  "img",
  "input",
  "isindex",
  "keygen",
  "link",
  "meta",
  "param",
  "source",
  "track",
  "wbr"
]);
var foreignContextElements = /* @__PURE__ */ new Set(["math", "svg"]);
var htmlIntegrationElements = /* @__PURE__ */ new Set([
  "mi",
  "mo",
  "mn",
  "ms",
  "mtext",
  "annotation-xml",
  "foreignobject",
  "desc",
  "title"
]);
var reNameEnd = /\s|\//;
var Parser = class {
  constructor(cbs, options = {}) {
    var _a4, _b2, _c, _d, _e3;
    this.options = options;
    this.startIndex = 0;
    this.endIndex = 0;
    this.openTagStart = 0;
    this.tagname = "";
    this.attribname = "";
    this.attribvalue = "";
    this.attribs = null;
    this.stack = [];
    this.foreignContext = [];
    this.buffers = [];
    this.bufferOffset = 0;
    this.writeIndex = 0;
    this.ended = false;
    this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
    this.lowerCaseTagNames = (_a4 = options.lowerCaseTags) !== null && _a4 !== void 0 ? _a4 : !options.xmlMode;
    this.lowerCaseAttributeNames = (_b2 = options.lowerCaseAttributeNames) !== null && _b2 !== void 0 ? _b2 : !options.xmlMode;
    this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer)(this.options, this);
    (_e3 = (_d = this.cbs).onparserinit) === null || _e3 === void 0 ? void 0 : _e3.call(_d, this);
  }
  // Tokenizer event handlers
  /** @internal */
  ontext(start, endIndex) {
    var _a4, _b2;
    const data = this.getSlice(start, endIndex);
    this.endIndex = endIndex - 1;
    (_b2 = (_a4 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, data);
    this.startIndex = endIndex;
  }
  /** @internal */
  ontextentity(cp) {
    var _a4, _b2;
    const index = this.tokenizer.getSectionStart();
    this.endIndex = index - 1;
    (_b2 = (_a4 = this.cbs).ontext) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, fromCodePoint(cp));
    this.startIndex = index;
  }
  isVoidElement(name2) {
    return !this.options.xmlMode && voidElements.has(name2);
  }
  /** @internal */
  onopentagname(start, endIndex) {
    this.endIndex = endIndex;
    let name2 = this.getSlice(start, endIndex);
    if (this.lowerCaseTagNames) {
      name2 = name2.toLowerCase();
    }
    this.emitOpenTag(name2);
  }
  emitOpenTag(name2) {
    var _a4, _b2, _c, _d;
    this.openTagStart = this.startIndex;
    this.tagname = name2;
    const impliesClose = !this.options.xmlMode && openImpliesClose.get(name2);
    if (impliesClose) {
      while (this.stack.length > 0 && impliesClose.has(this.stack[this.stack.length - 1])) {
        const element = this.stack.pop();
        (_b2 = (_a4 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, element, true);
      }
    }
    if (!this.isVoidElement(name2)) {
      this.stack.push(name2);
      if (foreignContextElements.has(name2)) {
        this.foreignContext.push(true);
      } else if (htmlIntegrationElements.has(name2)) {
        this.foreignContext.push(false);
      }
    }
    (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name2);
    if (this.cbs.onopentag)
      this.attribs = {};
  }
  endOpenTag(isImplied) {
    var _a4, _b2;
    this.startIndex = this.openTagStart;
    if (this.attribs) {
      (_b2 = (_a4 = this.cbs).onopentag) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, this.tagname, this.attribs, isImplied);
      this.attribs = null;
    }
    if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
      this.cbs.onclosetag(this.tagname, true);
    }
    this.tagname = "";
  }
  /** @internal */
  onopentagend(endIndex) {
    this.endIndex = endIndex;
    this.endOpenTag(false);
    this.startIndex = endIndex + 1;
  }
  /** @internal */
  onclosetag(start, endIndex) {
    var _a4, _b2, _c, _d, _e3, _f;
    this.endIndex = endIndex;
    let name2 = this.getSlice(start, endIndex);
    if (this.lowerCaseTagNames) {
      name2 = name2.toLowerCase();
    }
    if (foreignContextElements.has(name2) || htmlIntegrationElements.has(name2)) {
      this.foreignContext.pop();
    }
    if (!this.isVoidElement(name2)) {
      const pos = this.stack.lastIndexOf(name2);
      if (pos !== -1) {
        if (this.cbs.onclosetag) {
          let count = this.stack.length - pos;
          while (count--) {
            this.cbs.onclosetag(this.stack.pop(), count !== 0);
          }
        } else
          this.stack.length = pos;
      } else if (!this.options.xmlMode && name2 === "p") {
        this.emitOpenTag("p");
        this.closeCurrentTag(true);
      }
    } else if (!this.options.xmlMode && name2 === "br") {
      (_b2 = (_a4 = this.cbs).onopentagname) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, "br");
      (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, "br", {}, true);
      (_f = (_e3 = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e3, "br", false);
    }
    this.startIndex = endIndex + 1;
  }
  /** @internal */
  onselfclosingtag(endIndex) {
    this.endIndex = endIndex;
    if (this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1]) {
      this.closeCurrentTag(false);
      this.startIndex = endIndex + 1;
    } else {
      this.onopentagend(endIndex);
    }
  }
  closeCurrentTag(isOpenImplied) {
    var _a4, _b2;
    const name2 = this.tagname;
    this.endOpenTag(isOpenImplied);
    if (this.stack[this.stack.length - 1] === name2) {
      (_b2 = (_a4 = this.cbs).onclosetag) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, name2, !isOpenImplied);
      this.stack.pop();
    }
  }
  /** @internal */
  onattribname(start, endIndex) {
    this.startIndex = start;
    const name2 = this.getSlice(start, endIndex);
    this.attribname = this.lowerCaseAttributeNames ? name2.toLowerCase() : name2;
  }
  /** @internal */
  onattribdata(start, endIndex) {
    this.attribvalue += this.getSlice(start, endIndex);
  }
  /** @internal */
  onattribentity(cp) {
    this.attribvalue += fromCodePoint(cp);
  }
  /** @internal */
  onattribend(quote, endIndex) {
    var _a4, _b2;
    this.endIndex = endIndex;
    (_b2 = (_a4 = this.cbs).onattribute) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, this.attribname, this.attribvalue, quote === QuoteType.Double ? '"' : quote === QuoteType.Single ? "'" : quote === QuoteType.NoValue ? void 0 : null);
    if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
      this.attribs[this.attribname] = this.attribvalue;
    }
    this.attribvalue = "";
  }
  getInstructionName(value) {
    const index = value.search(reNameEnd);
    let name2 = index < 0 ? value : value.substr(0, index);
    if (this.lowerCaseTagNames) {
      name2 = name2.toLowerCase();
    }
    return name2;
  }
  /** @internal */
  ondeclaration(start, endIndex) {
    this.endIndex = endIndex;
    const value = this.getSlice(start, endIndex);
    if (this.cbs.onprocessinginstruction) {
      const name2 = this.getInstructionName(value);
      this.cbs.onprocessinginstruction(`!${name2}`, `!${value}`);
    }
    this.startIndex = endIndex + 1;
  }
  /** @internal */
  onprocessinginstruction(start, endIndex) {
    this.endIndex = endIndex;
    const value = this.getSlice(start, endIndex);
    if (this.cbs.onprocessinginstruction) {
      const name2 = this.getInstructionName(value);
      this.cbs.onprocessinginstruction(`?${name2}`, `?${value}`);
    }
    this.startIndex = endIndex + 1;
  }
  /** @internal */
  oncomment(start, endIndex, offset) {
    var _a4, _b2, _c, _d;
    this.endIndex = endIndex;
    (_b2 = (_a4 = this.cbs).oncomment) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, this.getSlice(start, endIndex - offset));
    (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
    this.startIndex = endIndex + 1;
  }
  /** @internal */
  oncdata(start, endIndex, offset) {
    var _a4, _b2, _c, _d, _e3, _f, _g, _h, _j, _k;
    this.endIndex = endIndex;
    const value = this.getSlice(start, endIndex - offset);
    if (this.options.xmlMode || this.options.recognizeCDATA) {
      (_b2 = (_a4 = this.cbs).oncdatastart) === null || _b2 === void 0 ? void 0 : _b2.call(_a4);
      (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);
      (_f = (_e3 = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e3);
    } else {
      (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);
      (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
    }
    this.startIndex = endIndex + 1;
  }
  /** @internal */
  onend() {
    var _a4, _b2;
    if (this.cbs.onclosetag) {
      this.endIndex = this.startIndex;
      for (let index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))
        ;
    }
    (_b2 = (_a4 = this.cbs).onend) === null || _b2 === void 0 ? void 0 : _b2.call(_a4);
  }
  /**
   * Resets the parser to a blank state, ready to parse a new HTML document
   */
  reset() {
    var _a4, _b2, _c, _d;
    (_b2 = (_a4 = this.cbs).onreset) === null || _b2 === void 0 ? void 0 : _b2.call(_a4);
    this.tokenizer.reset();
    this.tagname = "";
    this.attribname = "";
    this.attribs = null;
    this.stack.length = 0;
    this.startIndex = 0;
    this.endIndex = 0;
    (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
    this.buffers.length = 0;
    this.bufferOffset = 0;
    this.writeIndex = 0;
    this.ended = false;
  }
  /**
   * Resets the parser, then parses a complete document and
   * pushes it to the handler.
   *
   * @param data Document to parse.
   */
  parseComplete(data) {
    this.reset();
    this.end(data);
  }
  getSlice(start, end) {
    while (start - this.bufferOffset >= this.buffers[0].length) {
      this.shiftBuffer();
    }
    let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);
    while (end - this.bufferOffset > this.buffers[0].length) {
      this.shiftBuffer();
      slice += this.buffers[0].slice(0, end - this.bufferOffset);
    }
    return slice;
  }
  shiftBuffer() {
    this.bufferOffset += this.buffers[0].length;
    this.writeIndex--;
    this.buffers.shift();
  }
  /**
   * Parses a chunk of data and calls the corresponding callbacks.
   *
   * @param chunk Chunk to parse.
   */
  write(chunk2) {
    var _a4, _b2;
    if (this.ended) {
      (_b2 = (_a4 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, new Error(".write() after done!"));
      return;
    }
    this.buffers.push(chunk2);
    if (this.tokenizer.running) {
      this.tokenizer.write(chunk2);
      this.writeIndex++;
    }
  }
  /**
   * Parses the end of the buffer and clears the stack, calls onend.
   *
   * @param chunk Optional final chunk to parse.
   */
  end(chunk2) {
    var _a4, _b2;
    if (this.ended) {
      (_b2 = (_a4 = this.cbs).onerror) === null || _b2 === void 0 ? void 0 : _b2.call(_a4, new Error(".end() after done!"));
      return;
    }
    if (chunk2)
      this.write(chunk2);
    this.ended = true;
    this.tokenizer.end();
  }
  /**
   * Pauses parsing. The parser won't emit events until `resume` is called.
   */
  pause() {
    this.tokenizer.pause();
  }
  /**
   * Resumes parsing after `pause` was called.
   */
  resume() {
    this.tokenizer.resume();
    while (this.tokenizer.running && this.writeIndex < this.buffers.length) {
      this.tokenizer.write(this.buffers[this.writeIndex++]);
    }
    if (this.ended)
      this.tokenizer.end();
  }
  /**
   * Alias of `write`, for backwards compatibility.
   *
   * @param chunk Chunk to parse.
   * @deprecated
   */
  parseChunk(chunk2) {
    this.write(chunk2);
  }
  /**
   * Alias of `end`, for backwards compatibility.
   *
   * @param chunk Optional final chunk to parse.
   * @deprecated
   */
  done(chunk2) {
    this.end(chunk2);
  }
};

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/encode-html.js
function restoreDiff(arr) {
  for (let i3 = 1; i3 < arr.length; i3++) {
    arr[i3][0] += arr[i3 - 1][0] + 1;
  }
  return arr;
}
var encode_html_default = new Map(/* @__PURE__ */ restoreDiff([[9, "&Tab;"], [0, "&NewLine;"], [22, "&excl;"], [0, "&quot;"], [0, "&num;"], [0, "&dollar;"], [0, "&percnt;"], [0, "&amp;"], [0, "&apos;"], [0, "&lpar;"], [0, "&rpar;"], [0, "&ast;"], [0, "&plus;"], [0, "&comma;"], [1, "&period;"], [0, "&sol;"], [10, "&colon;"], [0, "&semi;"], [0, { v: "&lt;", n: 8402, o: "&nvlt;" }], [0, { v: "&equals;", n: 8421, o: "&bne;" }], [0, { v: "&gt;", n: 8402, o: "&nvgt;" }], [0, "&quest;"], [0, "&commat;"], [26, "&lbrack;"], [0, "&bsol;"], [0, "&rbrack;"], [0, "&Hat;"], [0, "&lowbar;"], [0, "&DiacriticalGrave;"], [5, { n: 106, o: "&fjlig;" }], [20, "&lbrace;"], [0, "&verbar;"], [0, "&rbrace;"], [34, "&nbsp;"], [0, "&iexcl;"], [0, "&cent;"], [0, "&pound;"], [0, "&curren;"], [0, "&yen;"], [0, "&brvbar;"], [0, "&sect;"], [0, "&die;"], [0, "&copy;"], [0, "&ordf;"], [0, "&laquo;"], [0, "&not;"], [0, "&shy;"], [0, "&circledR;"], [0, "&macr;"], [0, "&deg;"], [0, "&PlusMinus;"], [0, "&sup2;"], [0, "&sup3;"], [0, "&acute;"], [0, "&micro;"], [0, "&para;"], [0, "&centerdot;"], [0, "&cedil;"], [0, "&sup1;"], [0, "&ordm;"], [0, "&raquo;"], [0, "&frac14;"], [0, "&frac12;"], [0, "&frac34;"], [0, "&iquest;"], [0, "&Agrave;"], [0, "&Aacute;"], [0, "&Acirc;"], [0, "&Atilde;"], [0, "&Auml;"], [0, "&angst;"], [0, "&AElig;"], [0, "&Ccedil;"], [0, "&Egrave;"], [0, "&Eacute;"], [0, "&Ecirc;"], [0, "&Euml;"], [0, "&Igrave;"], [0, "&Iacute;"], [0, "&Icirc;"], [0, "&Iuml;"], [0, "&ETH;"], [0, "&Ntilde;"], [0, "&Ograve;"], [0, "&Oacute;"], [0, "&Ocirc;"], [0, "&Otilde;"], [0, "&Ouml;"], [0, "&times;"], [0, "&Oslash;"], [0, "&Ugrave;"], [0, "&Uacute;"], [0, "&Ucirc;"], [0, "&Uuml;"], [0, "&Yacute;"], [0, "&THORN;"], [0, "&szlig;"], [0, "&agrave;"], [0, "&aacute;"], [0, "&acirc;"], [0, "&atilde;"], [0, "&auml;"], [0, "&aring;"], [0, "&aelig;"], [0, "&ccedil;"], [0, "&egrave;"], [0, "&eacute;"], [0, "&ecirc;"], [0, "&euml;"], [0, "&igrave;"], [0, "&iacute;"], [0, "&icirc;"], [0, "&iuml;"], [0, "&eth;"], [0, "&ntilde;"], [0, "&ograve;"], [0, "&oacute;"], [0, "&ocirc;"], [0, "&otilde;"], [0, "&ouml;"], [0, "&div;"], [0, "&oslash;"], [0, "&ugrave;"], [0, "&uacute;"], [0, "&ucirc;"], [0, "&uuml;"], [0, "&yacute;"], [0, "&thorn;"], [0, "&yuml;"], [0, "&Amacr;"], [0, "&amacr;"], [0, "&Abreve;"], [0, "&abreve;"], [0, "&Aogon;"], [0, "&aogon;"], [0, "&Cacute;"], [0, "&cacute;"], [0, "&Ccirc;"], [0, "&ccirc;"], [0, "&Cdot;"], [0, "&cdot;"], [0, "&Ccaron;"], [0, "&ccaron;"], [0, "&Dcaron;"], [0, "&dcaron;"], [0, "&Dstrok;"], [0, "&dstrok;"], [0, "&Emacr;"], [0, "&emacr;"], [2, "&Edot;"], [0, "&edot;"], [0, "&Eogon;"], [0, "&eogon;"], [0, "&Ecaron;"], [0, "&ecaron;"], [0, "&Gcirc;"], [0, "&gcirc;"], [0, "&Gbreve;"], [0, "&gbreve;"], [0, "&Gdot;"], [0, "&gdot;"], [0, "&Gcedil;"], [1, "&Hcirc;"], [0, "&hcirc;"], [0, "&Hstrok;"], [0, "&hstrok;"], [0, "&Itilde;"], [0, "&itilde;"], [0, "&Imacr;"], [0, "&imacr;"], [2, "&Iogon;"], [0, "&iogon;"], [0, "&Idot;"], [0, "&imath;"], [0, "&IJlig;"], [0, "&ijlig;"], [0, "&Jcirc;"], [0, "&jcirc;"], [0, "&Kcedil;"], [0, "&kcedil;"], [0, "&kgreen;"], [0, "&Lacute;"], [0, "&lacute;"], [0, "&Lcedil;"], [0, "&lcedil;"], [0, "&Lcaron;"], [0, "&lcaron;"], [0, "&Lmidot;"], [0, "&lmidot;"], [0, "&Lstrok;"], [0, "&lstrok;"], [0, "&Nacute;"], [0, "&nacute;"], [0, "&Ncedil;"], [0, "&ncedil;"], [0, "&Ncaron;"], [0, "&ncaron;"], [0, "&napos;"], [0, "&ENG;"], [0, "&eng;"], [0, "&Omacr;"], [0, "&omacr;"], [2, "&Odblac;"], [0, "&odblac;"], [0, "&OElig;"], [0, "&oelig;"], [0, "&Racute;"], [0, "&racute;"], [0, "&Rcedil;"], [0, "&rcedil;"], [0, "&Rcaron;"], [0, "&rcaron;"], [0, "&Sacute;"], [0, "&sacute;"], [0, "&Scirc;"], [0, "&scirc;"], [0, "&Scedil;"], [0, "&scedil;"], [0, "&Scaron;"], [0, "&scaron;"], [0, "&Tcedil;"], [0, "&tcedil;"], [0, "&Tcaron;"], [0, "&tcaron;"], [0, "&Tstrok;"], [0, "&tstrok;"], [0, "&Utilde;"], [0, "&utilde;"], [0, "&Umacr;"], [0, "&umacr;"], [0, "&Ubreve;"], [0, "&ubreve;"], [0, "&Uring;"], [0, "&uring;"], [0, "&Udblac;"], [0, "&udblac;"], [0, "&Uogon;"], [0, "&uogon;"], [0, "&Wcirc;"], [0, "&wcirc;"], [0, "&Ycirc;"], [0, "&ycirc;"], [0, "&Yuml;"], [0, "&Zacute;"], [0, "&zacute;"], [0, "&Zdot;"], [0, "&zdot;"], [0, "&Zcaron;"], [0, "&zcaron;"], [19, "&fnof;"], [34, "&imped;"], [63, "&gacute;"], [65, "&jmath;"], [142, "&circ;"], [0, "&caron;"], [16, "&breve;"], [0, "&DiacriticalDot;"], [0, "&ring;"], [0, "&ogon;"], [0, "&DiacriticalTilde;"], [0, "&dblac;"], [51, "&DownBreve;"], [127, "&Alpha;"], [0, "&Beta;"], [0, "&Gamma;"], [0, "&Delta;"], [0, "&Epsilon;"], [0, "&Zeta;"], [0, "&Eta;"], [0, "&Theta;"], [0, "&Iota;"], [0, "&Kappa;"], [0, "&Lambda;"], [0, "&Mu;"], [0, "&Nu;"], [0, "&Xi;"], [0, "&Omicron;"], [0, "&Pi;"], [0, "&Rho;"], [1, "&Sigma;"], [0, "&Tau;"], [0, "&Upsilon;"], [0, "&Phi;"], [0, "&Chi;"], [0, "&Psi;"], [0, "&ohm;"], [7, "&alpha;"], [0, "&beta;"], [0, "&gamma;"], [0, "&delta;"], [0, "&epsi;"], [0, "&zeta;"], [0, "&eta;"], [0, "&theta;"], [0, "&iota;"], [0, "&kappa;"], [0, "&lambda;"], [0, "&mu;"], [0, "&nu;"], [0, "&xi;"], [0, "&omicron;"], [0, "&pi;"], [0, "&rho;"], [0, "&sigmaf;"], [0, "&sigma;"], [0, "&tau;"], [0, "&upsi;"], [0, "&phi;"], [0, "&chi;"], [0, "&psi;"], [0, "&omega;"], [7, "&thetasym;"], [0, "&Upsi;"], [2, "&phiv;"], [0, "&piv;"], [5, "&Gammad;"], [0, "&digamma;"], [18, "&kappav;"], [0, "&rhov;"], [3, "&epsiv;"], [0, "&backepsilon;"], [10, "&IOcy;"], [0, "&DJcy;"], [0, "&GJcy;"], [0, "&Jukcy;"], [0, "&DScy;"], [0, "&Iukcy;"], [0, "&YIcy;"], [0, "&Jsercy;"], [0, "&LJcy;"], [0, "&NJcy;"], [0, "&TSHcy;"], [0, "&KJcy;"], [1, "&Ubrcy;"], [0, "&DZcy;"], [0, "&Acy;"], [0, "&Bcy;"], [0, "&Vcy;"], [0, "&Gcy;"], [0, "&Dcy;"], [0, "&IEcy;"], [0, "&ZHcy;"], [0, "&Zcy;"], [0, "&Icy;"], [0, "&Jcy;"], [0, "&Kcy;"], [0, "&Lcy;"], [0, "&Mcy;"], [0, "&Ncy;"], [0, "&Ocy;"], [0, "&Pcy;"], [0, "&Rcy;"], [0, "&Scy;"], [0, "&Tcy;"], [0, "&Ucy;"], [0, "&Fcy;"], [0, "&KHcy;"], [0, "&TScy;"], [0, "&CHcy;"], [0, "&SHcy;"], [0, "&SHCHcy;"], [0, "&HARDcy;"], [0, "&Ycy;"], [0, "&SOFTcy;"], [0, "&Ecy;"], [0, "&YUcy;"], [0, "&YAcy;"], [0, "&acy;"], [0, "&bcy;"], [0, "&vcy;"], [0, "&gcy;"], [0, "&dcy;"], [0, "&iecy;"], [0, "&zhcy;"], [0, "&zcy;"], [0, "&icy;"], [0, "&jcy;"], [0, "&kcy;"], [0, "&lcy;"], [0, "&mcy;"], [0, "&ncy;"], [0, "&ocy;"], [0, "&pcy;"], [0, "&rcy;"], [0, "&scy;"], [0, "&tcy;"], [0, "&ucy;"], [0, "&fcy;"], [0, "&khcy;"], [0, "&tscy;"], [0, "&chcy;"], [0, "&shcy;"], [0, "&shchcy;"], [0, "&hardcy;"], [0, "&ycy;"], [0, "&softcy;"], [0, "&ecy;"], [0, "&yucy;"], [0, "&yacy;"], [1, "&iocy;"], [0, "&djcy;"], [0, "&gjcy;"], [0, "&jukcy;"], [0, "&dscy;"], [0, "&iukcy;"], [0, "&yicy;"], [0, "&jsercy;"], [0, "&ljcy;"], [0, "&njcy;"], [0, "&tshcy;"], [0, "&kjcy;"], [1, "&ubrcy;"], [0, "&dzcy;"], [7074, "&ensp;"], [0, "&emsp;"], [0, "&emsp13;"], [0, "&emsp14;"], [1, "&numsp;"], [0, "&puncsp;"], [0, "&ThinSpace;"], [0, "&hairsp;"], [0, "&NegativeMediumSpace;"], [0, "&zwnj;"], [0, "&zwj;"], [0, "&lrm;"], [0, "&rlm;"], [0, "&dash;"], [2, "&ndash;"], [0, "&mdash;"], [0, "&horbar;"], [0, "&Verbar;"], [1, "&lsquo;"], [0, "&CloseCurlyQuote;"], [0, "&lsquor;"], [1, "&ldquo;"], [0, "&CloseCurlyDoubleQuote;"], [0, "&bdquo;"], [1, "&dagger;"], [0, "&Dagger;"], [0, "&bull;"], [2, "&nldr;"], [0, "&hellip;"], [9, "&permil;"], [0, "&pertenk;"], [0, "&prime;"], [0, "&Prime;"], [0, "&tprime;"], [0, "&backprime;"], [3, "&lsaquo;"], [0, "&rsaquo;"], [3, "&oline;"], [2, "&caret;"], [1, "&hybull;"], [0, "&frasl;"], [10, "&bsemi;"], [7, "&qprime;"], [7, { v: "&MediumSpace;", n: 8202, o: "&ThickSpace;" }], [0, "&NoBreak;"], [0, "&af;"], [0, "&InvisibleTimes;"], [0, "&ic;"], [72, "&euro;"], [46, "&tdot;"], [0, "&DotDot;"], [37, "&complexes;"], [2, "&incare;"], [4, "&gscr;"], [0, "&hamilt;"], [0, "&Hfr;"], [0, "&Hopf;"], [0, "&planckh;"], [0, "&hbar;"], [0, "&imagline;"], [0, "&Ifr;"], [0, "&lagran;"], [0, "&ell;"], [1, "&naturals;"], [0, "&numero;"], [0, "&copysr;"], [0, "&weierp;"], [0, "&Popf;"], [0, "&Qopf;"], [0, "&realine;"], [0, "&real;"], [0, "&reals;"], [0, "&rx;"], [3, "&trade;"], [1, "&integers;"], [2, "&mho;"], [0, "&zeetrf;"], [0, "&iiota;"], [2, "&bernou;"], [0, "&Cayleys;"], [1, "&escr;"], [0, "&Escr;"], [0, "&Fouriertrf;"], [1, "&Mellintrf;"], [0, "&order;"], [0, "&alefsym;"], [0, "&beth;"], [0, "&gimel;"], [0, "&daleth;"], [12, "&CapitalDifferentialD;"], [0, "&dd;"], [0, "&ee;"], [0, "&ii;"], [10, "&frac13;"], [0, "&frac23;"], [0, "&frac15;"], [0, "&frac25;"], [0, "&frac35;"], [0, "&frac45;"], [0, "&frac16;"], [0, "&frac56;"], [0, "&frac18;"], [0, "&frac38;"], [0, "&frac58;"], [0, "&frac78;"], [49, "&larr;"], [0, "&ShortUpArrow;"], [0, "&rarr;"], [0, "&darr;"], [0, "&harr;"], [0, "&updownarrow;"], [0, "&nwarr;"], [0, "&nearr;"], [0, "&LowerRightArrow;"], [0, "&LowerLeftArrow;"], [0, "&nlarr;"], [0, "&nrarr;"], [1, { v: "&rarrw;", n: 824, o: "&nrarrw;" }], [0, "&Larr;"], [0, "&Uarr;"], [0, "&Rarr;"], [0, "&Darr;"], [0, "&larrtl;"], [0, "&rarrtl;"], [0, "&LeftTeeArrow;"], [0, "&mapstoup;"], [0, "&map;"], [0, "&DownTeeArrow;"], [1, "&hookleftarrow;"], [0, "&hookrightarrow;"], [0, "&larrlp;"], [0, "&looparrowright;"], [0, "&harrw;"], [0, "&nharr;"], [1, "&lsh;"], [0, "&rsh;"], [0, "&ldsh;"], [0, "&rdsh;"], [1, "&crarr;"], [0, "&cularr;"], [0, "&curarr;"], [2, "&circlearrowleft;"], [0, "&circlearrowright;"], [0, "&leftharpoonup;"], [0, "&DownLeftVector;"], [0, "&RightUpVector;"], [0, "&LeftUpVector;"], [0, "&rharu;"], [0, "&DownRightVector;"], [0, "&dharr;"], [0, "&dharl;"], [0, "&RightArrowLeftArrow;"], [0, "&udarr;"], [0, "&LeftArrowRightArrow;"], [0, "&leftleftarrows;"], [0, "&upuparrows;"], [0, "&rightrightarrows;"], [0, "&ddarr;"], [0, "&leftrightharpoons;"], [0, "&Equilibrium;"], [0, "&nlArr;"], [0, "&nhArr;"], [0, "&nrArr;"], [0, "&DoubleLeftArrow;"], [0, "&DoubleUpArrow;"], [0, "&DoubleRightArrow;"], [0, "&dArr;"], [0, "&DoubleLeftRightArrow;"], [0, "&DoubleUpDownArrow;"], [0, "&nwArr;"], [0, "&neArr;"], [0, "&seArr;"], [0, "&swArr;"], [0, "&lAarr;"], [0, "&rAarr;"], [1, "&zigrarr;"], [6, "&larrb;"], [0, "&rarrb;"], [15, "&DownArrowUpArrow;"], [7, "&loarr;"], [0, "&roarr;"], [0, "&hoarr;"], [0, "&forall;"], [0, "&comp;"], [0, { v: "&part;", n: 824, o: "&npart;" }], [0, "&exist;"], [0, "&nexist;"], [0, "&empty;"], [1, "&Del;"], [0, "&Element;"], [0, "&NotElement;"], [1, "&ni;"], [0, "&notni;"], [2, "&prod;"], [0, "&coprod;"], [0, "&sum;"], [0, "&minus;"], [0, "&MinusPlus;"], [0, "&dotplus;"], [1, "&Backslash;"], [0, "&lowast;"], [0, "&compfn;"], [1, "&radic;"], [2, "&prop;"], [0, "&infin;"], [0, "&angrt;"], [0, { v: "&ang;", n: 8402, o: "&nang;" }], [0, "&angmsd;"], [0, "&angsph;"], [0, "&mid;"], [0, "&nmid;"], [0, "&DoubleVerticalBar;"], [0, "&NotDoubleVerticalBar;"], [0, "&and;"], [0, "&or;"], [0, { v: "&cap;", n: 65024, o: "&caps;" }], [0, { v: "&cup;", n: 65024, o: "&cups;" }], [0, "&int;"], [0, "&Int;"], [0, "&iiint;"], [0, "&conint;"], [0, "&Conint;"], [0, "&Cconint;"], [0, "&cwint;"], [0, "&ClockwiseContourIntegral;"], [0, "&awconint;"], [0, "&there4;"], [0, "&becaus;"], [0, "&ratio;"], [0, "&Colon;"], [0, "&dotminus;"], [1, "&mDDot;"], [0, "&homtht;"], [0, { v: "&sim;", n: 8402, o: "&nvsim;" }], [0, { v: "&backsim;", n: 817, o: "&race;" }], [0, { v: "&ac;", n: 819, o: "&acE;" }], [0, "&acd;"], [0, "&VerticalTilde;"], [0, "&NotTilde;"], [0, { v: "&eqsim;", n: 824, o: "&nesim;" }], [0, "&sime;"], [0, "&NotTildeEqual;"], [0, "&cong;"], [0, "&simne;"], [0, "&ncong;"], [0, "&ap;"], [0, "&nap;"], [0, "&ape;"], [0, { v: "&apid;", n: 824, o: "&napid;" }], [0, "&backcong;"], [0, { v: "&asympeq;", n: 8402, o: "&nvap;" }], [0, { v: "&bump;", n: 824, o: "&nbump;" }], [0, { v: "&bumpe;", n: 824, o: "&nbumpe;" }], [0, { v: "&doteq;", n: 824, o: "&nedot;" }], [0, "&doteqdot;"], [0, "&efDot;"], [0, "&erDot;"], [0, "&Assign;"], [0, "&ecolon;"], [0, "&ecir;"], [0, "&circeq;"], [1, "&wedgeq;"], [0, "&veeeq;"], [1, "&triangleq;"], [2, "&equest;"], [0, "&ne;"], [0, { v: "&Congruent;", n: 8421, o: "&bnequiv;" }], [0, "&nequiv;"], [1, { v: "&le;", n: 8402, o: "&nvle;" }], [0, { v: "&ge;", n: 8402, o: "&nvge;" }], [0, { v: "&lE;", n: 824, o: "&nlE;" }], [0, { v: "&gE;", n: 824, o: "&ngE;" }], [0, { v: "&lnE;", n: 65024, o: "&lvertneqq;" }], [0, { v: "&gnE;", n: 65024, o: "&gvertneqq;" }], [0, { v: "&ll;", n: new Map(/* @__PURE__ */ restoreDiff([[824, "&nLtv;"], [7577, "&nLt;"]])) }], [0, { v: "&gg;", n: new Map(/* @__PURE__ */ restoreDiff([[824, "&nGtv;"], [7577, "&nGt;"]])) }], [0, "&between;"], [0, "&NotCupCap;"], [0, "&nless;"], [0, "&ngt;"], [0, "&nle;"], [0, "&nge;"], [0, "&lesssim;"], [0, "&GreaterTilde;"], [0, "&nlsim;"], [0, "&ngsim;"], [0, "&LessGreater;"], [0, "&gl;"], [0, "&NotLessGreater;"], [0, "&NotGreaterLess;"], [0, "&pr;"], [0, "&sc;"], [0, "&prcue;"], [0, "&sccue;"], [0, "&PrecedesTilde;"], [0, { v: "&scsim;", n: 824, o: "&NotSucceedsTilde;" }], [0, "&NotPrecedes;"], [0, "&NotSucceeds;"], [0, { v: "&sub;", n: 8402, o: "&NotSubset;" }], [0, { v: "&sup;", n: 8402, o: "&NotSuperset;" }], [0, "&nsub;"], [0, "&nsup;"], [0, "&sube;"], [0, "&supe;"], [0, "&NotSubsetEqual;"], [0, "&NotSupersetEqual;"], [0, { v: "&subne;", n: 65024, o: "&varsubsetneq;" }], [0, { v: "&supne;", n: 65024, o: "&varsupsetneq;" }], [1, "&cupdot;"], [0, "&UnionPlus;"], [0, { v: "&sqsub;", n: 824, o: "&NotSquareSubset;" }], [0, { v: "&sqsup;", n: 824, o: "&NotSquareSuperset;" }], [0, "&sqsube;"], [0, "&sqsupe;"], [0, { v: "&sqcap;", n: 65024, o: "&sqcaps;" }], [0, { v: "&sqcup;", n: 65024, o: "&sqcups;" }], [0, "&CirclePlus;"], [0, "&CircleMinus;"], [0, "&CircleTimes;"], [0, "&osol;"], [0, "&CircleDot;"], [0, "&circledcirc;"], [0, "&circledast;"], [1, "&circleddash;"], [0, "&boxplus;"], [0, "&boxminus;"], [0, "&boxtimes;"], [0, "&dotsquare;"], [0, "&RightTee;"], [0, "&dashv;"], [0, "&DownTee;"], [0, "&bot;"], [1, "&models;"], [0, "&DoubleRightTee;"], [0, "&Vdash;"], [0, "&Vvdash;"], [0, "&VDash;"], [0, "&nvdash;"], [0, "&nvDash;"], [0, "&nVdash;"], [0, "&nVDash;"], [0, "&prurel;"], [1, "&LeftTriangle;"], [0, "&RightTriangle;"], [0, { v: "&LeftTriangleEqual;", n: 8402, o: "&nvltrie;" }], [0, { v: "&RightTriangleEqual;", n: 8402, o: "&nvrtrie;" }], [0, "&origof;"], [0, "&imof;"], [0, "&multimap;"], [0, "&hercon;"], [0, "&intcal;"], [0, "&veebar;"], [1, "&barvee;"], [0, "&angrtvb;"], [0, "&lrtri;"], [0, "&bigwedge;"], [0, "&bigvee;"], [0, "&bigcap;"], [0, "&bigcup;"], [0, "&diam;"], [0, "&sdot;"], [0, "&sstarf;"], [0, "&divideontimes;"], [0, "&bowtie;"], [0, "&ltimes;"], [0, "&rtimes;"], [0, "&leftthreetimes;"], [0, "&rightthreetimes;"], [0, "&backsimeq;"], [0, "&curlyvee;"], [0, "&curlywedge;"], [0, "&Sub;"], [0, "&Sup;"], [0, "&Cap;"], [0, "&Cup;"], [0, "&fork;"], [0, "&epar;"], [0, "&lessdot;"], [0, "&gtdot;"], [0, { v: "&Ll;", n: 824, o: "&nLl;" }], [0, { v: "&Gg;", n: 824, o: "&nGg;" }], [0, { v: "&leg;", n: 65024, o: "&lesg;" }], [0, { v: "&gel;", n: 65024, o: "&gesl;" }], [2, "&cuepr;"], [0, "&cuesc;"], [0, "&NotPrecedesSlantEqual;"], [0, "&NotSucceedsSlantEqual;"], [0, "&NotSquareSubsetEqual;"], [0, "&NotSquareSupersetEqual;"], [2, "&lnsim;"], [0, "&gnsim;"], [0, "&precnsim;"], [0, "&scnsim;"], [0, "&nltri;"], [0, "&NotRightTriangle;"], [0, "&nltrie;"], [0, "&NotRightTriangleEqual;"], [0, "&vellip;"], [0, "&ctdot;"], [0, "&utdot;"], [0, "&dtdot;"], [0, "&disin;"], [0, "&isinsv;"], [0, "&isins;"], [0, { v: "&isindot;", n: 824, o: "&notindot;" }], [0, "&notinvc;"], [0, "&notinvb;"], [1, { v: "&isinE;", n: 824, o: "&notinE;" }], [0, "&nisd;"], [0, "&xnis;"], [0, "&nis;"], [0, "&notnivc;"], [0, "&notnivb;"], [6, "&barwed;"], [0, "&Barwed;"], [1, "&lceil;"], [0, "&rceil;"], [0, "&LeftFloor;"], [0, "&rfloor;"], [0, "&drcrop;"], [0, "&dlcrop;"], [0, "&urcrop;"], [0, "&ulcrop;"], [0, "&bnot;"], [1, "&profline;"], [0, "&profsurf;"], [1, "&telrec;"], [0, "&target;"], [5, "&ulcorn;"], [0, "&urcorn;"], [0, "&dlcorn;"], [0, "&drcorn;"], [2, "&frown;"], [0, "&smile;"], [9, "&cylcty;"], [0, "&profalar;"], [7, "&topbot;"], [6, "&ovbar;"], [1, "&solbar;"], [60, "&angzarr;"], [51, "&lmoustache;"], [0, "&rmoustache;"], [2, "&OverBracket;"], [0, "&bbrk;"], [0, "&bbrktbrk;"], [37, "&OverParenthesis;"], [0, "&UnderParenthesis;"], [0, "&OverBrace;"], [0, "&UnderBrace;"], [2, "&trpezium;"], [4, "&elinters;"], [59, "&blank;"], [164, "&circledS;"], [55, "&boxh;"], [1, "&boxv;"], [9, "&boxdr;"], [3, "&boxdl;"], [3, "&boxur;"], [3, "&boxul;"], [3, "&boxvr;"], [7, "&boxvl;"], [7, "&boxhd;"], [7, "&boxhu;"], [7, "&boxvh;"], [19, "&boxH;"], [0, "&boxV;"], [0, "&boxdR;"], [0, "&boxDr;"], [0, "&boxDR;"], [0, "&boxdL;"], [0, "&boxDl;"], [0, "&boxDL;"], [0, "&boxuR;"], [0, "&boxUr;"], [0, "&boxUR;"], [0, "&boxuL;"], [0, "&boxUl;"], [0, "&boxUL;"], [0, "&boxvR;"], [0, "&boxVr;"], [0, "&boxVR;"], [0, "&boxvL;"], [0, "&boxVl;"], [0, "&boxVL;"], [0, "&boxHd;"], [0, "&boxhD;"], [0, "&boxHD;"], [0, "&boxHu;"], [0, "&boxhU;"], [0, "&boxHU;"], [0, "&boxvH;"], [0, "&boxVh;"], [0, "&boxVH;"], [19, "&uhblk;"], [3, "&lhblk;"], [3, "&block;"], [8, "&blk14;"], [0, "&blk12;"], [0, "&blk34;"], [13, "&square;"], [8, "&blacksquare;"], [0, "&EmptyVerySmallSquare;"], [1, "&rect;"], [0, "&marker;"], [2, "&fltns;"], [1, "&bigtriangleup;"], [0, "&blacktriangle;"], [0, "&triangle;"], [2, "&blacktriangleright;"], [0, "&rtri;"], [3, "&bigtriangledown;"], [0, "&blacktriangledown;"], [0, "&dtri;"], [2, "&blacktriangleleft;"], [0, "&ltri;"], [6, "&loz;"], [0, "&cir;"], [32, "&tridot;"], [2, "&bigcirc;"], [8, "&ultri;"], [0, "&urtri;"], [0, "&lltri;"], [0, "&EmptySmallSquare;"], [0, "&FilledSmallSquare;"], [8, "&bigstar;"], [0, "&star;"], [7, "&phone;"], [49, "&female;"], [1, "&male;"], [29, "&spades;"], [2, "&clubs;"], [1, "&hearts;"], [0, "&diamondsuit;"], [3, "&sung;"], [2, "&flat;"], [0, "&natural;"], [0, "&sharp;"], [163, "&check;"], [3, "&cross;"], [8, "&malt;"], [21, "&sext;"], [33, "&VerticalSeparator;"], [25, "&lbbrk;"], [0, "&rbbrk;"], [84, "&bsolhsub;"], [0, "&suphsol;"], [28, "&LeftDoubleBracket;"], [0, "&RightDoubleBracket;"], [0, "&lang;"], [0, "&rang;"], [0, "&Lang;"], [0, "&Rang;"], [0, "&loang;"], [0, "&roang;"], [7, "&longleftarrow;"], [0, "&longrightarrow;"], [0, "&longleftrightarrow;"], [0, "&DoubleLongLeftArrow;"], [0, "&DoubleLongRightArrow;"], [0, "&DoubleLongLeftRightArrow;"], [1, "&longmapsto;"], [2, "&dzigrarr;"], [258, "&nvlArr;"], [0, "&nvrArr;"], [0, "&nvHarr;"], [0, "&Map;"], [6, "&lbarr;"], [0, "&bkarow;"], [0, "&lBarr;"], [0, "&dbkarow;"], [0, "&drbkarow;"], [0, "&DDotrahd;"], [0, "&UpArrowBar;"], [0, "&DownArrowBar;"], [2, "&Rarrtl;"], [2, "&latail;"], [0, "&ratail;"], [0, "&lAtail;"], [0, "&rAtail;"], [0, "&larrfs;"], [0, "&rarrfs;"], [0, "&larrbfs;"], [0, "&rarrbfs;"], [2, "&nwarhk;"], [0, "&nearhk;"], [0, "&hksearow;"], [0, "&hkswarow;"], [0, "&nwnear;"], [0, "&nesear;"], [0, "&seswar;"], [0, "&swnwar;"], [8, { v: "&rarrc;", n: 824, o: "&nrarrc;" }], [1, "&cudarrr;"], [0, "&ldca;"], [0, "&rdca;"], [0, "&cudarrl;"], [0, "&larrpl;"], [2, "&curarrm;"], [0, "&cularrp;"], [7, "&rarrpl;"], [2, "&harrcir;"], [0, "&Uarrocir;"], [0, "&lurdshar;"], [0, "&ldrushar;"], [2, "&LeftRightVector;"], [0, "&RightUpDownVector;"], [0, "&DownLeftRightVector;"], [0, "&LeftUpDownVector;"], [0, "&LeftVectorBar;"], [0, "&RightVectorBar;"], [0, "&RightUpVectorBar;"], [0, "&RightDownVectorBar;"], [0, "&DownLeftVectorBar;"], [0, "&DownRightVectorBar;"], [0, "&LeftUpVectorBar;"], [0, "&LeftDownVectorBar;"], [0, "&LeftTeeVector;"], [0, "&RightTeeVector;"], [0, "&RightUpTeeVector;"], [0, "&RightDownTeeVector;"], [0, "&DownLeftTeeVector;"], [0, "&DownRightTeeVector;"], [0, "&LeftUpTeeVector;"], [0, "&LeftDownTeeVector;"], [0, "&lHar;"], [0, "&uHar;"], [0, "&rHar;"], [0, "&dHar;"], [0, "&luruhar;"], [0, "&ldrdhar;"], [0, "&ruluhar;"], [0, "&rdldhar;"], [0, "&lharul;"], [0, "&llhard;"], [0, "&rharul;"], [0, "&lrhard;"], [0, "&udhar;"], [0, "&duhar;"], [0, "&RoundImplies;"], [0, "&erarr;"], [0, "&simrarr;"], [0, "&larrsim;"], [0, "&rarrsim;"], [0, "&rarrap;"], [0, "&ltlarr;"], [1, "&gtrarr;"], [0, "&subrarr;"], [1, "&suplarr;"], [0, "&lfisht;"], [0, "&rfisht;"], [0, "&ufisht;"], [0, "&dfisht;"], [5, "&lopar;"], [0, "&ropar;"], [4, "&lbrke;"], [0, "&rbrke;"], [0, "&lbrkslu;"], [0, "&rbrksld;"], [0, "&lbrksld;"], [0, "&rbrkslu;"], [0, "&langd;"], [0, "&rangd;"], [0, "&lparlt;"], [0, "&rpargt;"], [0, "&gtlPar;"], [0, "&ltrPar;"], [3, "&vzigzag;"], [1, "&vangrt;"], [0, "&angrtvbd;"], [6, "&ange;"], [0, "&range;"], [0, "&dwangle;"], [0, "&uwangle;"], [0, "&angmsdaa;"], [0, "&angmsdab;"], [0, "&angmsdac;"], [0, "&angmsdad;"], [0, "&angmsdae;"], [0, "&angmsdaf;"], [0, "&angmsdag;"], [0, "&angmsdah;"], [0, "&bemptyv;"], [0, "&demptyv;"], [0, "&cemptyv;"], [0, "&raemptyv;"], [0, "&laemptyv;"], [0, "&ohbar;"], [0, "&omid;"], [0, "&opar;"], [1, "&operp;"], [1, "&olcross;"], [0, "&odsold;"], [1, "&olcir;"], [0, "&ofcir;"], [0, "&olt;"], [0, "&ogt;"], [0, "&cirscir;"], [0, "&cirE;"], [0, "&solb;"], [0, "&bsolb;"], [3, "&boxbox;"], [3, "&trisb;"], [0, "&rtriltri;"], [0, { v: "&LeftTriangleBar;", n: 824, o: "&NotLeftTriangleBar;" }], [0, { v: "&RightTriangleBar;", n: 824, o: "&NotRightTriangleBar;" }], [11, "&iinfin;"], [0, "&infintie;"], [0, "&nvinfin;"], [4, "&eparsl;"], [0, "&smeparsl;"], [0, "&eqvparsl;"], [5, "&blacklozenge;"], [8, "&RuleDelayed;"], [1, "&dsol;"], [9, "&bigodot;"], [0, "&bigoplus;"], [0, "&bigotimes;"], [1, "&biguplus;"], [1, "&bigsqcup;"], [5, "&iiiint;"], [0, "&fpartint;"], [2, "&cirfnint;"], [0, "&awint;"], [0, "&rppolint;"], [0, "&scpolint;"], [0, "&npolint;"], [0, "&pointint;"], [0, "&quatint;"], [0, "&intlarhk;"], [10, "&pluscir;"], [0, "&plusacir;"], [0, "&simplus;"], [0, "&plusdu;"], [0, "&plussim;"], [0, "&plustwo;"], [1, "&mcomma;"], [0, "&minusdu;"], [2, "&loplus;"], [0, "&roplus;"], [0, "&Cross;"], [0, "&timesd;"], [0, "&timesbar;"], [1, "&smashp;"], [0, "&lotimes;"], [0, "&rotimes;"], [0, "&otimesas;"], [0, "&Otimes;"], [0, "&odiv;"], [0, "&triplus;"], [0, "&triminus;"], [0, "&tritime;"], [0, "&intprod;"], [2, "&amalg;"], [0, "&capdot;"], [1, "&ncup;"], [0, "&ncap;"], [0, "&capand;"], [0, "&cupor;"], [0, "&cupcap;"], [0, "&capcup;"], [0, "&cupbrcap;"], [0, "&capbrcup;"], [0, "&cupcup;"], [0, "&capcap;"], [0, "&ccups;"], [0, "&ccaps;"], [2, "&ccupssm;"], [2, "&And;"], [0, "&Or;"], [0, "&andand;"], [0, "&oror;"], [0, "&orslope;"], [0, "&andslope;"], [1, "&andv;"], [0, "&orv;"], [0, "&andd;"], [0, "&ord;"], [1, "&wedbar;"], [6, "&sdote;"], [3, "&simdot;"], [2, { v: "&congdot;", n: 824, o: "&ncongdot;" }], [0, "&easter;"], [0, "&apacir;"], [0, { v: "&apE;", n: 824, o: "&napE;" }], [0, "&eplus;"], [0, "&pluse;"], [0, "&Esim;"], [0, "&Colone;"], [0, "&Equal;"], [1, "&ddotseq;"], [0, "&equivDD;"], [0, "&ltcir;"], [0, "&gtcir;"], [0, "&ltquest;"], [0, "&gtquest;"], [0, { v: "&leqslant;", n: 824, o: "&nleqslant;" }], [0, { v: "&geqslant;", n: 824, o: "&ngeqslant;" }], [0, "&lesdot;"], [0, "&gesdot;"], [0, "&lesdoto;"], [0, "&gesdoto;"], [0, "&lesdotor;"], [0, "&gesdotol;"], [0, "&lap;"], [0, "&gap;"], [0, "&lne;"], [0, "&gne;"], [0, "&lnap;"], [0, "&gnap;"], [0, "&lEg;"], [0, "&gEl;"], [0, "&lsime;"], [0, "&gsime;"], [0, "&lsimg;"], [0, "&gsiml;"], [0, "&lgE;"], [0, "&glE;"], [0, "&lesges;"], [0, "&gesles;"], [0, "&els;"], [0, "&egs;"], [0, "&elsdot;"], [0, "&egsdot;"], [0, "&el;"], [0, "&eg;"], [2, "&siml;"], [0, "&simg;"], [0, "&simlE;"], [0, "&simgE;"], [0, { v: "&LessLess;", n: 824, o: "&NotNestedLessLess;" }], [0, { v: "&GreaterGreater;", n: 824, o: "&NotNestedGreaterGreater;" }], [1, "&glj;"], [0, "&gla;"], [0, "&ltcc;"], [0, "&gtcc;"], [0, "&lescc;"], [0, "&gescc;"], [0, "&smt;"], [0, "&lat;"], [0, { v: "&smte;", n: 65024, o: "&smtes;" }], [0, { v: "&late;", n: 65024, o: "&lates;" }], [0, "&bumpE;"], [0, { v: "&PrecedesEqual;", n: 824, o: "&NotPrecedesEqual;" }], [0, { v: "&sce;", n: 824, o: "&NotSucceedsEqual;" }], [2, "&prE;"], [0, "&scE;"], [0, "&precneqq;"], [0, "&scnE;"], [0, "&prap;"], [0, "&scap;"], [0, "&precnapprox;"], [0, "&scnap;"], [0, "&Pr;"], [0, "&Sc;"], [0, "&subdot;"], [0, "&supdot;"], [0, "&subplus;"], [0, "&supplus;"], [0, "&submult;"], [0, "&supmult;"], [0, "&subedot;"], [0, "&supedot;"], [0, { v: "&subE;", n: 824, o: "&nsubE;" }], [0, { v: "&supE;", n: 824, o: "&nsupE;" }], [0, "&subsim;"], [0, "&supsim;"], [2, { v: "&subnE;", n: 65024, o: "&varsubsetneqq;" }], [0, { v: "&supnE;", n: 65024, o: "&varsupsetneqq;" }], [2, "&csub;"], [0, "&csup;"], [0, "&csube;"], [0, "&csupe;"], [0, "&subsup;"], [0, "&supsub;"], [0, "&subsub;"], [0, "&supsup;"], [0, "&suphsub;"], [0, "&supdsub;"], [0, "&forkv;"], [0, "&topfork;"], [0, "&mlcp;"], [8, "&Dashv;"], [1, "&Vdashl;"], [0, "&Barv;"], [0, "&vBar;"], [0, "&vBarv;"], [1, "&Vbar;"], [0, "&Not;"], [0, "&bNot;"], [0, "&rnmid;"], [0, "&cirmid;"], [0, "&midcir;"], [0, "&topcir;"], [0, "&nhpar;"], [0, "&parsim;"], [9, { v: "&parsl;", n: 8421, o: "&nparsl;" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff([[56476, "&Ascr;"], [1, "&Cscr;"], [0, "&Dscr;"], [2, "&Gscr;"], [2, "&Jscr;"], [0, "&Kscr;"], [2, "&Nscr;"], [0, "&Oscr;"], [0, "&Pscr;"], [0, "&Qscr;"], [1, "&Sscr;"], [0, "&Tscr;"], [0, "&Uscr;"], [0, "&Vscr;"], [0, "&Wscr;"], [0, "&Xscr;"], [0, "&Yscr;"], [0, "&Zscr;"], [0, "&ascr;"], [0, "&bscr;"], [0, "&cscr;"], [0, "&dscr;"], [1, "&fscr;"], [1, "&hscr;"], [0, "&iscr;"], [0, "&jscr;"], [0, "&kscr;"], [0, "&lscr;"], [0, "&mscr;"], [0, "&nscr;"], [1, "&pscr;"], [0, "&qscr;"], [0, "&rscr;"], [0, "&sscr;"], [0, "&tscr;"], [0, "&uscr;"], [0, "&vscr;"], [0, "&wscr;"], [0, "&xscr;"], [0, "&yscr;"], [0, "&zscr;"], [52, "&Afr;"], [0, "&Bfr;"], [1, "&Dfr;"], [0, "&Efr;"], [0, "&Ffr;"], [0, "&Gfr;"], [2, "&Jfr;"], [0, "&Kfr;"], [0, "&Lfr;"], [0, "&Mfr;"], [0, "&Nfr;"], [0, "&Ofr;"], [0, "&Pfr;"], [0, "&Qfr;"], [1, "&Sfr;"], [0, "&Tfr;"], [0, "&Ufr;"], [0, "&Vfr;"], [0, "&Wfr;"], [0, "&Xfr;"], [0, "&Yfr;"], [1, "&afr;"], [0, "&bfr;"], [0, "&cfr;"], [0, "&dfr;"], [0, "&efr;"], [0, "&ffr;"], [0, "&gfr;"], [0, "&hfr;"], [0, "&ifr;"], [0, "&jfr;"], [0, "&kfr;"], [0, "&lfr;"], [0, "&mfr;"], [0, "&nfr;"], [0, "&ofr;"], [0, "&pfr;"], [0, "&qfr;"], [0, "&rfr;"], [0, "&sfr;"], [0, "&tfr;"], [0, "&ufr;"], [0, "&vfr;"], [0, "&wfr;"], [0, "&xfr;"], [0, "&yfr;"], [0, "&zfr;"], [0, "&Aopf;"], [0, "&Bopf;"], [1, "&Dopf;"], [0, "&Eopf;"], [0, "&Fopf;"], [0, "&Gopf;"], [1, "&Iopf;"], [0, "&Jopf;"], [0, "&Kopf;"], [0, "&Lopf;"], [0, "&Mopf;"], [1, "&Oopf;"], [3, "&Sopf;"], [0, "&Topf;"], [0, "&Uopf;"], [0, "&Vopf;"], [0, "&Wopf;"], [0, "&Xopf;"], [0, "&Yopf;"], [1, "&aopf;"], [0, "&bopf;"], [0, "&copf;"], [0, "&dopf;"], [0, "&eopf;"], [0, "&fopf;"], [0, "&gopf;"], [0, "&hopf;"], [0, "&iopf;"], [0, "&jopf;"], [0, "&kopf;"], [0, "&lopf;"], [0, "&mopf;"], [0, "&nopf;"], [0, "&oopf;"], [0, "&popf;"], [0, "&qopf;"], [0, "&ropf;"], [0, "&sopf;"], [0, "&topf;"], [0, "&uopf;"], [0, "&vopf;"], [0, "&wopf;"], [0, "&xopf;"], [0, "&yopf;"], [0, "&zopf;"]])) }], [8906, "&fflig;"], [0, "&filig;"], [0, "&fllig;"], [0, "&ffilig;"], [0, "&ffllig;"]]));

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/escape.js
var xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
var xmlCodeMap = /* @__PURE__ */ new Map([
  [34, "&quot;"],
  [38, "&amp;"],
  [39, "&apos;"],
  [60, "&lt;"],
  [62, "&gt;"]
]);
var getCodePoint = (
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
  String.prototype.codePointAt != null ? (str, index) => str.codePointAt(index) : (
    // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
    (c3, index) => (c3.charCodeAt(index) & 64512) === 55296 ? (c3.charCodeAt(index) - 55296) * 1024 + c3.charCodeAt(index + 1) - 56320 + 65536 : c3.charCodeAt(index)
  )
);
function encodeXML(str) {
  let ret = "";
  let lastIdx = 0;
  let match;
  while ((match = xmlReplacer.exec(str)) !== null) {
    const i3 = match.index;
    const char = str.charCodeAt(i3);
    const next = xmlCodeMap.get(char);
    if (next !== void 0) {
      ret += str.substring(lastIdx, i3) + next;
      lastIdx = i3 + 1;
    } else {
      ret += `${str.substring(lastIdx, i3)}&#x${getCodePoint(str, i3).toString(16)};`;
      lastIdx = xmlReplacer.lastIndex += Number((char & 64512) === 55296);
    }
  }
  return ret + str.substr(lastIdx);
}
function getEscaper(regex, map2) {
  return function escape4(data) {
    let match;
    let lastIdx = 0;
    let result = "";
    while (match = regex.exec(data)) {
      if (lastIdx !== match.index) {
        result += data.substring(lastIdx, match.index);
      }
      result += map2.get(match[0].charCodeAt(0));
      lastIdx = match.index + 1;
    }
    return result + data.substring(lastIdx);
  };
}
var escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
var escapeAttribute = getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([
  [34, "&quot;"],
  [38, "&amp;"],
  [160, "&nbsp;"]
]));
var escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
  [38, "&amp;"],
  [60, "&lt;"],
  [62, "&gt;"],
  [160, "&nbsp;"]
]));

// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/index.js
var EntityLevel;
(function(EntityLevel2) {
  EntityLevel2[EntityLevel2["XML"] = 0] = "XML";
  EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML";
})(EntityLevel || (EntityLevel = {}));
var EncodingMode;
(function(EncodingMode2) {
  EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8";
  EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII";
  EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive";
  EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute";
  EncodingMode2[EncodingMode2["Text"] = 4] = "Text";
})(EncodingMode || (EncodingMode = {}));

// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js
var elementNames = new Map([
  "altGlyph",
  "altGlyphDef",
  "altGlyphItem",
  "animateColor",
  "animateMotion",
  "animateTransform",
  "clipPath",
  "feBlend",
  "feColorMatrix",
  "feComponentTransfer",
  "feComposite",
  "feConvolveMatrix",
  "feDiffuseLighting",
  "feDisplacementMap",
  "feDistantLight",
  "feDropShadow",
  "feFlood",
  "feFuncA",
  "feFuncB",
  "feFuncG",
  "feFuncR",
  "feGaussianBlur",
  "feImage",
  "feMerge",
  "feMergeNode",
  "feMorphology",
  "feOffset",
  "fePointLight",
  "feSpecularLighting",
  "feSpotLight",
  "feTile",
  "feTurbulence",
  "foreignObject",
  "glyphRef",
  "linearGradient",
  "radialGradient",
  "textPath"
].map((val) => [val.toLowerCase(), val]));
var attributeNames = new Map([
  "definitionURL",
  "attributeName",
  "attributeType",
  "baseFrequency",
  "baseProfile",
  "calcMode",
  "clipPathUnits",
  "diffuseConstant",
  "edgeMode",
  "filterUnits",
  "glyphRef",
  "gradientTransform",
  "gradientUnits",
  "kernelMatrix",
  "kernelUnitLength",
  "keyPoints",
  "keySplines",
  "keyTimes",
  "lengthAdjust",
  "limitingConeAngle",
  "markerHeight",
  "markerUnits",
  "markerWidth",
  "maskContentUnits",
  "maskUnits",
  "numOctaves",
  "pathLength",
  "patternContentUnits",
  "patternTransform",
  "patternUnits",
  "pointsAtX",
  "pointsAtY",
  "pointsAtZ",
  "preserveAlpha",
  "preserveAspectRatio",
  "primitiveUnits",
  "refX",
  "refY",
  "repeatCount",
  "repeatDur",
  "requiredExtensions",
  "requiredFeatures",
  "specularConstant",
  "specularExponent",
  "spreadMethod",
  "startOffset",
  "stdDeviation",
  "stitchTiles",
  "surfaceScale",
  "systemLanguage",
  "tableValues",
  "targetX",
  "targetY",
  "textLength",
  "viewBox",
  "viewTarget",
  "xChannelSelector",
  "yChannelSelector",
  "zoomAndPan"
].map((val) => [val.toLowerCase(), val]));

// ../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.js
var unencodedElements = /* @__PURE__ */ new Set([
  "style",
  "script",
  "xmp",
  "iframe",
  "noembed",
  "noframes",
  "plaintext",
  "noscript"
]);
function replaceQuotes(value) {
  return value.replace(/"/g, "&quot;");
}
function formatAttributes(attributes, opts) {
  var _a4;
  if (!attributes)
    return;
  const encode3 = ((_a4 = opts.encodeEntities) !== null && _a4 !== void 0 ? _a4 : opts.decodeEntities) === false ? replaceQuotes : opts.xmlMode || opts.encodeEntities !== "utf8" ? encodeXML : escapeAttribute;
  return Object.keys(attributes).map((key) => {
    var _a5, _b2;
    const value = (_a5 = attributes[key]) !== null && _a5 !== void 0 ? _a5 : "";
    if (opts.xmlMode === "foreign") {
      key = (_b2 = attributeNames.get(key)) !== null && _b2 !== void 0 ? _b2 : key;
    }
    if (!opts.emptyAttrs && !opts.xmlMode && value === "") {
      return key;
    }
    return `${key}="${encode3(value)}"`;
  }).join(" ");
}
var singleTag = /* @__PURE__ */ new Set([
  "area",
  "base",
  "basefont",
  "br",
  "col",
  "command",
  "embed",
  "frame",
  "hr",
  "img",
  "input",
  "isindex",
  "keygen",
  "link",
  "meta",
  "param",
  "source",
  "track",
  "wbr"
]);
function render(node, options = {}) {
  const nodes = "length" in node ? node : [node];
  let output = "";
  for (let i3 = 0; i3 < nodes.length; i3++) {
    output += renderNode(nodes[i3], options);
  }
  return output;
}
function renderNode(node, options) {
  switch (node.type) {
    case Root:
      return render(node.children, options);
    // @ts-expect-error We don't use `Doctype` yet
    case Doctype:
    case Directive:
      return renderDirective(node);
    case Comment:
      return renderComment(node);
    case CDATA:
      return renderCdata(node);
    case Script:
    case Style:
    case Tag:
      return renderTag(node, options);
    case Text:
      return renderText(node, options);
  }
}
var foreignModeIntegrationPoints = /* @__PURE__ */ new Set([
  "mi",
  "mo",
  "mn",
  "ms",
  "mtext",
  "annotation-xml",
  "foreignObject",
  "desc",
  "title"
]);
var foreignElements = /* @__PURE__ */ new Set(["svg", "math"]);
function renderTag(elem, opts) {
  var _a4;
  if (opts.xmlMode === "foreign") {
    elem.name = (_a4 = elementNames.get(elem.name)) !== null && _a4 !== void 0 ? _a4 : elem.name;
    if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) {
      opts = { ...opts, xmlMode: false };
    }
  }
  if (!opts.xmlMode && foreignElements.has(elem.name)) {
    opts = { ...opts, xmlMode: "foreign" };
  }
  let tag = `<${elem.name}`;
  const attribs = formatAttributes(elem.attribs, opts);
  if (attribs) {
    tag += ` ${attribs}`;
  }
  if (elem.children.length === 0 && (opts.xmlMode ? (
    // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
    opts.selfClosingTags !== false
  ) : (
    // User explicitly asked for self-closing tags, even in HTML mode
    opts.selfClosingTags && singleTag.has(elem.name)
  ))) {
    if (!opts.xmlMode)
      tag += " ";
    tag += "/>";
  } else {
    tag += ">";
    if (elem.children.length > 0) {
      tag += render(elem.children, opts);
    }
    if (opts.xmlMode || !singleTag.has(elem.name)) {
      tag += `</${elem.name}>`;
    }
  }
  return tag;
}
function renderDirective(elem) {
  return `<${elem.data}>`;
}
function renderText(elem, opts) {
  var _a4;
  let data = elem.data || "";
  if (((_a4 = opts.encodeEntities) !== null && _a4 !== void 0 ? _a4 : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) {
    data = opts.xmlMode || opts.encodeEntities !== "utf8" ? encodeXML(data) : escapeText(data);
  }
  return data;
}
function renderCdata(elem) {
  return `<![CDATA[${elem.children[0].data}]]>`;
}
function renderComment(elem) {
  return `<!--${elem.data}-->`;
}

// ../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/helpers.js
var DocumentPosition;
(function(DocumentPosition2) {
  DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED";
  DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING";
  DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING";
  DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS";
  DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY";
})(DocumentPosition || (DocumentPosition = {}));

// ../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/esm/index.js
function parseDocument(data, options) {
  const handler = new DomHandler(void 0, options);
  new Parser(handler, options).end(data);
  return handler.root;
}

// ../../node_modules/.pnpm/html-to-text@9.0.5/node_modules/html-to-text/lib/html-to-text.mjs
var import_deepmerge = __toESM(require_cjs12(), 1);
function limitedDepthRecursive(n3, f, g = () => void 0) {
  if (n3 === void 0) {
    const f1 = function(...args) {
      return f(f1, ...args);
    };
    return f1;
  }
  if (n3 >= 0) {
    return function(...args) {
      return f(limitedDepthRecursive(n3 - 1, f, g), ...args);
    };
  }
  return g;
}
function trimCharacter(str, char) {
  let start = 0;
  let end = str.length;
  while (start < end && str[start] === char) {
    ++start;
  }
  while (end > start && str[end - 1] === char) {
    --end;
  }
  return start > 0 || end < str.length ? str.substring(start, end) : str;
}
function trimCharacterEnd(str, char) {
  let end = str.length;
  while (end > 0 && str[end - 1] === char) {
    --end;
  }
  return end < str.length ? str.substring(0, end) : str;
}
function unicodeEscape(str) {
  return str.replace(/[\s\S]/g, (c3) => "\\u" + c3.charCodeAt().toString(16).padStart(4, "0"));
}
function mergeDuplicatesPreferLast(items, getKey) {
  const map2 = /* @__PURE__ */ new Map();
  for (let i3 = items.length; i3-- > 0; ) {
    const item = items[i3];
    const key = getKey(item);
    map2.set(
      key,
      map2.has(key) ? (0, import_deepmerge.default)(item, map2.get(key), { arrayMerge: overwriteMerge$1 }) : item
    );
  }
  return [...map2.values()].reverse();
}
var overwriteMerge$1 = (acc, src, options) => [...src];
function get(obj, path3) {
  for (const key of path3) {
    if (!obj) {
      return void 0;
    }
    obj = obj[key];
  }
  return obj;
}
function numberToLetterSequence(num, baseChar = "a", base = 26) {
  const digits2 = [];
  do {
    num -= 1;
    digits2.push(num % base);
    num = num / base >> 0;
  } while (num > 0);
  const baseCode = baseChar.charCodeAt(0);
  return digits2.reverse().map((n3) => String.fromCharCode(baseCode + n3)).join("");
}
var I = ["I", "X", "C", "M"];
var V = ["V", "L", "D"];
function numberToRoman(num) {
  return [...num + ""].map((n3) => +n3).reverse().map((v2, i3) => v2 % 5 < 4 ? (v2 < 5 ? "" : V[i3]) + I[i3].repeat(v2 % 5) : I[i3] + (v2 < 5 ? V[i3] : I[i3 + 1])).reverse().join("");
}
var InlineTextBuilder = class {
  /**
   * Creates an instance of InlineTextBuilder.
   *
   * If `maxLineLength` is not provided then it is either `options.wordwrap` or unlimited.
   *
   * @param { Options } options           HtmlToText options.
   * @param { number }  [ maxLineLength ] This builder will try to wrap text to fit this line length.
   */
  constructor(options, maxLineLength = void 0) {
    this.lines = [];
    this.nextLineWords = [];
    this.maxLineLength = maxLineLength || options.wordwrap || Number.MAX_VALUE;
    this.nextLineAvailableChars = this.maxLineLength;
    this.wrapCharacters = get(options, ["longWordSplit", "wrapCharacters"]) || [];
    this.forceWrapOnLimit = get(options, ["longWordSplit", "forceWrapOnLimit"]) || false;
    this.stashedSpace = false;
    this.wordBreakOpportunity = false;
  }
  /**
   * Add a new word.
   *
   * @param { string } word A word to add.
   * @param { boolean } [noWrap] Don't wrap text even if the line is too long.
   */
  pushWord(word, noWrap = false) {
    if (this.nextLineAvailableChars <= 0 && !noWrap) {
      this.startNewLine();
    }
    const isLineStart = this.nextLineWords.length === 0;
    const cost = word.length + (isLineStart ? 0 : 1);
    if (cost <= this.nextLineAvailableChars || noWrap) {
      this.nextLineWords.push(word);
      this.nextLineAvailableChars -= cost;
    } else {
      const [first, ...rest] = this.splitLongWord(word);
      if (!isLineStart) {
        this.startNewLine();
      }
      this.nextLineWords.push(first);
      this.nextLineAvailableChars -= first.length;
      for (const part of rest) {
        this.startNewLine();
        this.nextLineWords.push(part);
        this.nextLineAvailableChars -= part.length;
      }
    }
  }
  /**
   * Pop a word from the currently built line.
   * This doesn't affect completed lines.
   *
   * @returns { string }
   */
  popWord() {
    const lastWord = this.nextLineWords.pop();
    if (lastWord !== void 0) {
      const isLineStart = this.nextLineWords.length === 0;
      const cost = lastWord.length + (isLineStart ? 0 : 1);
      this.nextLineAvailableChars += cost;
    }
    return lastWord;
  }
  /**
   * Concat a word to the last word already in the builder.
   * Adds a new word in case there are no words yet in the last line.
   *
   * @param { string } word A word to be concatenated.
   * @param { boolean } [noWrap] Don't wrap text even if the line is too long.
   */
  concatWord(word, noWrap = false) {
    if (this.wordBreakOpportunity && word.length > this.nextLineAvailableChars) {
      this.pushWord(word, noWrap);
      this.wordBreakOpportunity = false;
    } else {
      const lastWord = this.popWord();
      this.pushWord(lastWord ? lastWord.concat(word) : word, noWrap);
    }
  }
  /**
   * Add current line (and more empty lines if provided argument > 1) to the list of complete lines and start a new one.
   *
   * @param { number } n Number of line breaks that will be added to the resulting string.
   */
  startNewLine(n3 = 1) {
    this.lines.push(this.nextLineWords);
    if (n3 > 1) {
      this.lines.push(...Array.from({ length: n3 - 1 }, () => []));
    }
    this.nextLineWords = [];
    this.nextLineAvailableChars = this.maxLineLength;
  }
  /**
   * No words in this builder.
   *
   * @returns { boolean }
   */
  isEmpty() {
    return this.lines.length === 0 && this.nextLineWords.length === 0;
  }
  clear() {
    this.lines.length = 0;
    this.nextLineWords.length = 0;
    this.nextLineAvailableChars = this.maxLineLength;
  }
  /**
   * Join all lines of words inside the InlineTextBuilder into a complete string.
   *
   * @returns { string }
   */
  toString() {
    return [...this.lines, this.nextLineWords].map((words) => words.join(" ")).join("\n");
  }
  /**
   * Split a long word up to fit within the word wrap limit.
   * Use either a character to split looking back from the word wrap limit,
   * or truncate to the word wrap limit.
   *
   * @param   { string }   word Input word.
   * @returns { string[] }      Parts of the word.
   */
  splitLongWord(word) {
    const parts = [];
    let idx = 0;
    while (word.length > this.maxLineLength) {
      const firstLine = word.substring(0, this.maxLineLength);
      const remainingChars = word.substring(this.maxLineLength);
      const splitIndex = firstLine.lastIndexOf(this.wrapCharacters[idx]);
      if (splitIndex > -1) {
        word = firstLine.substring(splitIndex + 1) + remainingChars;
        parts.push(firstLine.substring(0, splitIndex + 1));
      } else {
        idx++;
        if (idx < this.wrapCharacters.length) {
          word = firstLine + remainingChars;
        } else {
          if (this.forceWrapOnLimit) {
            parts.push(firstLine);
            word = remainingChars;
            if (word.length > this.maxLineLength) {
              continue;
            }
          } else {
            word = firstLine + remainingChars;
          }
          break;
        }
      }
    }
    parts.push(word);
    return parts;
  }
};
var StackItem = class {
  constructor(next = null) {
    this.next = next;
  }
  getRoot() {
    return this.next ? this.next : this;
  }
};
var BlockStackItem = class extends StackItem {
  constructor(options, next = null, leadingLineBreaks = 1, maxLineLength = void 0) {
    super(next);
    this.leadingLineBreaks = leadingLineBreaks;
    this.inlineTextBuilder = new InlineTextBuilder(options, maxLineLength);
    this.rawText = "";
    this.stashedLineBreaks = 0;
    this.isPre = next && next.isPre;
    this.isNoWrap = next && next.isNoWrap;
  }
};
var ListStackItem = class extends BlockStackItem {
  constructor(options, next = null, {
    interRowLineBreaks = 1,
    leadingLineBreaks = 2,
    maxLineLength = void 0,
    maxPrefixLength = 0,
    prefixAlign = "left"
  } = {}) {
    super(options, next, leadingLineBreaks, maxLineLength);
    this.maxPrefixLength = maxPrefixLength;
    this.prefixAlign = prefixAlign;
    this.interRowLineBreaks = interRowLineBreaks;
  }
};
var ListItemStackItem = class extends BlockStackItem {
  constructor(options, next = null, {
    leadingLineBreaks = 1,
    maxLineLength = void 0,
    prefix = ""
  } = {}) {
    super(options, next, leadingLineBreaks, maxLineLength);
    this.prefix = prefix;
  }
};
var TableStackItem = class extends StackItem {
  constructor(next = null) {
    super(next);
    this.rows = [];
    this.isPre = next && next.isPre;
    this.isNoWrap = next && next.isNoWrap;
  }
};
var TableRowStackItem = class extends StackItem {
  constructor(next = null) {
    super(next);
    this.cells = [];
    this.isPre = next && next.isPre;
    this.isNoWrap = next && next.isNoWrap;
  }
};
var TableCellStackItem = class extends StackItem {
  constructor(options, next = null, maxColumnWidth = void 0) {
    super(next);
    this.inlineTextBuilder = new InlineTextBuilder(options, maxColumnWidth);
    this.rawText = "";
    this.stashedLineBreaks = 0;
    this.isPre = next && next.isPre;
    this.isNoWrap = next && next.isNoWrap;
  }
};
var TransformerStackItem = class extends StackItem {
  constructor(next = null, transform) {
    super(next);
    this.transform = transform;
  }
};
function charactersToCodes(str) {
  return [...str].map((c3) => "\\u" + c3.charCodeAt(0).toString(16).padStart(4, "0")).join("");
}
var WhitespaceProcessor = class {
  /**
   * Creates an instance of WhitespaceProcessor.
   *
   * @param { Options } options    HtmlToText options.
   * @memberof WhitespaceProcessor
   */
  constructor(options) {
    this.whitespaceChars = options.preserveNewlines ? options.whitespaceCharacters.replace(/\n/g, "") : options.whitespaceCharacters;
    const whitespaceCodes = charactersToCodes(this.whitespaceChars);
    this.leadingWhitespaceRe = new RegExp(`^[${whitespaceCodes}]`);
    this.trailingWhitespaceRe = new RegExp(`[${whitespaceCodes}]$`);
    this.allWhitespaceOrEmptyRe = new RegExp(`^[${whitespaceCodes}]*$`);
    this.newlineOrNonWhitespaceRe = new RegExp(`(\\n|[^\\n${whitespaceCodes}])`, "g");
    this.newlineOrNonNewlineStringRe = new RegExp(`(\\n|[^\\n]+)`, "g");
    if (options.preserveNewlines) {
      const wordOrNewlineRe = new RegExp(`\\n|[^\\n${whitespaceCodes}]+`, "gm");
      this.shrinkWrapAdd = function(text, inlineTextBuilder, transform = ((str) => str), noWrap = false) {
        if (!text) {
          return;
        }
        const previouslyStashedSpace = inlineTextBuilder.stashedSpace;
        let anyMatch = false;
        let m2 = wordOrNewlineRe.exec(text);
        if (m2) {
          anyMatch = true;
          if (m2[0] === "\n") {
            inlineTextBuilder.startNewLine();
          } else if (previouslyStashedSpace || this.testLeadingWhitespace(text)) {
            inlineTextBuilder.pushWord(transform(m2[0]), noWrap);
          } else {
            inlineTextBuilder.concatWord(transform(m2[0]), noWrap);
          }
          while ((m2 = wordOrNewlineRe.exec(text)) !== null) {
            if (m2[0] === "\n") {
              inlineTextBuilder.startNewLine();
            } else {
              inlineTextBuilder.pushWord(transform(m2[0]), noWrap);
            }
          }
        }
        inlineTextBuilder.stashedSpace = previouslyStashedSpace && !anyMatch || this.testTrailingWhitespace(text);
      };
    } else {
      const wordRe = new RegExp(`[^${whitespaceCodes}]+`, "g");
      this.shrinkWrapAdd = function(text, inlineTextBuilder, transform = ((str) => str), noWrap = false) {
        if (!text) {
          return;
        }
        const previouslyStashedSpace = inlineTextBuilder.stashedSpace;
        let anyMatch = false;
        let m2 = wordRe.exec(text);
        if (m2) {
          anyMatch = true;
          if (previouslyStashedSpace || this.testLeadingWhitespace(text)) {
            inlineTextBuilder.pushWord(transform(m2[0]), noWrap);
          } else {
            inlineTextBuilder.concatWord(transform(m2[0]), noWrap);
          }
          while ((m2 = wordRe.exec(text)) !== null) {
            inlineTextBuilder.pushWord(transform(m2[0]), noWrap);
          }
        }
        inlineTextBuilder.stashedSpace = previouslyStashedSpace && !anyMatch || this.testTrailingWhitespace(text);
      };
    }
  }
  /**
   * Add text with only minimal processing.
   * Everything between newlines considered a single word.
   * No whitespace is trimmed.
   * Not affected by preserveNewlines option - `\n` always starts a new line.
   *
   * `noWrap` argument is `true` by default - this won't start a new line
   * even if there is not enough space left in the current line.
   *
   * @param { string }            text              Input text.
   * @param { InlineTextBuilder } inlineTextBuilder A builder to receive processed text.
   * @param { boolean }           [noWrap] Don't wrap text even if the line is too long.
   */
  addLiteral(text, inlineTextBuilder, noWrap = true) {
    if (!text) {
      return;
    }
    const previouslyStashedSpace = inlineTextBuilder.stashedSpace;
    let anyMatch = false;
    let m2 = this.newlineOrNonNewlineStringRe.exec(text);
    if (m2) {
      anyMatch = true;
      if (m2[0] === "\n") {
        inlineTextBuilder.startNewLine();
      } else if (previouslyStashedSpace) {
        inlineTextBuilder.pushWord(m2[0], noWrap);
      } else {
        inlineTextBuilder.concatWord(m2[0], noWrap);
      }
      while ((m2 = this.newlineOrNonNewlineStringRe.exec(text)) !== null) {
        if (m2[0] === "\n") {
          inlineTextBuilder.startNewLine();
        } else {
          inlineTextBuilder.pushWord(m2[0], noWrap);
        }
      }
    }
    inlineTextBuilder.stashedSpace = previouslyStashedSpace && !anyMatch;
  }
  /**
   * Test whether the given text starts with HTML whitespace character.
   *
   * @param   { string }  text  The string to test.
   * @returns { boolean }
   */
  testLeadingWhitespace(text) {
    return this.leadingWhitespaceRe.test(text);
  }
  /**
   * Test whether the given text ends with HTML whitespace character.
   *
   * @param   { string }  text  The string to test.
   * @returns { boolean }
   */
  testTrailingWhitespace(text) {
    return this.trailingWhitespaceRe.test(text);
  }
  /**
   * Test whether the given text contains any non-whitespace characters.
   *
   * @param   { string }  text  The string to test.
   * @returns { boolean }
   */
  testContainsWords(text) {
    return !this.allWhitespaceOrEmptyRe.test(text);
  }
  /**
   * Return the number of newlines if there are no words.
   *
   * If any word is found then return zero regardless of the actual number of newlines.
   *
   * @param   { string }  text  Input string.
   * @returns { number }
   */
  countNewlinesNoWords(text) {
    this.newlineOrNonWhitespaceRe.lastIndex = 0;
    let counter = 0;
    let match;
    while ((match = this.newlineOrNonWhitespaceRe.exec(text)) !== null) {
      if (match[0] === "\n") {
        counter++;
      } else {
        return 0;
      }
    }
    return counter;
  }
};
var BlockTextBuilder = class {
  /**
   * Creates an instance of BlockTextBuilder.
   *
   * @param { Options } options HtmlToText options.
   * @param { import('selderee').Picker<DomNode, TagDefinition> } picker Selectors decision tree picker.
   * @param { any} [metadata] Optional metadata for HTML document, for use in formatters.
   */
  constructor(options, picker, metadata = void 0) {
    this.options = options;
    this.picker = picker;
    this.metadata = metadata;
    this.whitespaceProcessor = new WhitespaceProcessor(options);
    this._stackItem = new BlockStackItem(options);
    this._wordTransformer = void 0;
  }
  /**
   * Put a word-by-word transform function onto the transformations stack.
   *
   * Mainly used for uppercasing. Can be bypassed to add unformatted text such as URLs.
   *
   * Word transformations applied before wrapping.
   *
   * @param { (str: string) => string } wordTransform Word transformation function.
   */
  pushWordTransform(wordTransform) {
    this._wordTransformer = new TransformerStackItem(this._wordTransformer, wordTransform);
  }
  /**
   * Remove a function from the word transformations stack.
   *
   * @returns { (str: string) => string } A function that was removed.
   */
  popWordTransform() {
    if (!this._wordTransformer) {
      return void 0;
    }
    const transform = this._wordTransformer.transform;
    this._wordTransformer = this._wordTransformer.next;
    return transform;
  }
  /**
   * Ignore wordwrap option in followup inline additions and disable automatic wrapping.
   */
  startNoWrap() {
    this._stackItem.isNoWrap = true;
  }
  /**
   * Return automatic wrapping to behavior defined by options.
   */
  stopNoWrap() {
    this._stackItem.isNoWrap = false;
  }
  /** @returns { (str: string) => string } */
  _getCombinedWordTransformer() {
    const wt3 = this._wordTransformer ? ((str) => applyTransformer(str, this._wordTransformer)) : void 0;
    const ce3 = this.options.encodeCharacters;
    return wt3 ? ce3 ? (str) => ce3(wt3(str)) : wt3 : ce3;
  }
  _popStackItem() {
    const item = this._stackItem;
    this._stackItem = item.next;
    return item;
  }
  /**
   * Add a line break into currently built block.
   */
  addLineBreak() {
    if (!(this._stackItem instanceof BlockStackItem || this._stackItem instanceof ListItemStackItem || this._stackItem instanceof TableCellStackItem)) {
      return;
    }
    if (this._stackItem.isPre) {
      this._stackItem.rawText += "\n";
    } else {
      this._stackItem.inlineTextBuilder.startNewLine();
    }
  }
  /**
   * Allow to break line in case directly following text will not fit.
   */
  addWordBreakOpportunity() {
    if (this._stackItem instanceof BlockStackItem || this._stackItem instanceof ListItemStackItem || this._stackItem instanceof TableCellStackItem) {
      this._stackItem.inlineTextBuilder.wordBreakOpportunity = true;
    }
  }
  /**
   * Add a node inline into the currently built block.
   *
   * @param { string } str
   * Text content of a node to add.
   *
   * @param { object } [param1]
   * Object holding the parameters of the operation.
   *
   * @param { boolean } [param1.noWordTransform]
   * Ignore word transformers if there are any.
   * Don't encode characters as well.
   * (Use this for things like URL addresses).
   */
  addInline(str, { noWordTransform = false } = {}) {
    if (!(this._stackItem instanceof BlockStackItem || this._stackItem instanceof ListItemStackItem || this._stackItem instanceof TableCellStackItem)) {
      return;
    }
    if (this._stackItem.isPre) {
      this._stackItem.rawText += str;
      return;
    }
    if (str.length === 0 || // empty string
    this._stackItem.stashedLineBreaks && // stashed linebreaks make whitespace irrelevant
    !this.whitespaceProcessor.testContainsWords(str)) {
      return;
    }
    if (this.options.preserveNewlines) {
      const newlinesNumber = this.whitespaceProcessor.countNewlinesNoWords(str);
      if (newlinesNumber > 0) {
        this._stackItem.inlineTextBuilder.startNewLine(newlinesNumber);
        return;
      }
    }
    if (this._stackItem.stashedLineBreaks) {
      this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks);
    }
    this.whitespaceProcessor.shrinkWrapAdd(
      str,
      this._stackItem.inlineTextBuilder,
      noWordTransform ? void 0 : this._getCombinedWordTransformer(),
      this._stackItem.isNoWrap
    );
    this._stackItem.stashedLineBreaks = 0;
  }
  /**
   * Add a string inline into the currently built block.
   *
   * Use this for markup elements that don't have to adhere
   * to text layout rules.
   *
   * @param { string } str Text to add.
   */
  addLiteral(str) {
    if (!(this._stackItem instanceof BlockStackItem || this._stackItem instanceof ListItemStackItem || this._stackItem instanceof TableCellStackItem)) {
      return;
    }
    if (str.length === 0) {
      return;
    }
    if (this._stackItem.isPre) {
      this._stackItem.rawText += str;
      return;
    }
    if (this._stackItem.stashedLineBreaks) {
      this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks);
    }
    this.whitespaceProcessor.addLiteral(
      str,
      this._stackItem.inlineTextBuilder,
      this._stackItem.isNoWrap
    );
    this._stackItem.stashedLineBreaks = 0;
  }
  /**
   * Start building a new block.
   *
   * @param { object } [param0]
   * Object holding the parameters of the block.
   *
   * @param { number } [param0.leadingLineBreaks]
   * This block should have at least this number of line breaks to separate it from any preceding block.
   *
   * @param { number }  [param0.reservedLineLength]
   * Reserve this number of characters on each line for block markup.
   *
   * @param { boolean } [param0.isPre]
   * Should HTML whitespace be preserved inside this block.
   */
  openBlock({ leadingLineBreaks = 1, reservedLineLength = 0, isPre = false } = {}) {
    const maxLineLength = Math.max(20, this._stackItem.inlineTextBuilder.maxLineLength - reservedLineLength);
    this._stackItem = new BlockStackItem(
      this.options,
      this._stackItem,
      leadingLineBreaks,
      maxLineLength
    );
    if (isPre) {
      this._stackItem.isPre = true;
    }
  }
  /**
   * Finalize currently built block, add it's content to the parent block.
   *
   * @param { object } [param0]
   * Object holding the parameters of the block.
   *
   * @param { number } [param0.trailingLineBreaks]
   * This block should have at least this number of line breaks to separate it from any following block.
   *
   * @param { (str: string) => string } [param0.blockTransform]
   * A function to transform the block text before adding to the parent block.
   * This happens after word wrap and should be used in combination with reserved line length
   * in order to keep line lengths correct.
   * Used for whole block markup.
   */
  closeBlock({ trailingLineBreaks = 1, blockTransform = void 0 } = {}) {
    const block = this._popStackItem();
    const blockText = blockTransform ? blockTransform(getText(block)) : getText(block);
    addText(this._stackItem, blockText, block.leadingLineBreaks, Math.max(block.stashedLineBreaks, trailingLineBreaks));
  }
  /**
   * Start building a new list.
   *
   * @param { object } [param0]
   * Object holding the parameters of the list.
   *
   * @param { number } [param0.maxPrefixLength]
   * Length of the longest list item prefix.
   * If not supplied or too small then list items won't be aligned properly.
   *
   * @param { 'left' | 'right' } [param0.prefixAlign]
   * Specify how prefixes of different lengths have to be aligned
   * within a column.
   *
   * @param { number } [param0.interRowLineBreaks]
   * Minimum number of line breaks between list items.
   *
   * @param { number } [param0.leadingLineBreaks]
   * This list should have at least this number of line breaks to separate it from any preceding block.
   */
  openList({ maxPrefixLength = 0, prefixAlign = "left", interRowLineBreaks = 1, leadingLineBreaks = 2 } = {}) {
    this._stackItem = new ListStackItem(this.options, this._stackItem, {
      interRowLineBreaks,
      leadingLineBreaks,
      maxLineLength: this._stackItem.inlineTextBuilder.maxLineLength,
      maxPrefixLength,
      prefixAlign
    });
  }
  /**
   * Start building a new list item.
   *
   * @param {object} param0
   * Object holding the parameters of the list item.
   *
   * @param { string } [param0.prefix]
   * Prefix for this list item (item number, bullet point, etc).
   */
  openListItem({ prefix = "" } = {}) {
    if (!(this._stackItem instanceof ListStackItem)) {
      throw new Error("Can't add a list item to something that is not a list! Check the formatter.");
    }
    const list = this._stackItem;
    const prefixLength = Math.max(prefix.length, list.maxPrefixLength);
    const maxLineLength = Math.max(20, list.inlineTextBuilder.maxLineLength - prefixLength);
    this._stackItem = new ListItemStackItem(this.options, list, {
      prefix,
      maxLineLength,
      leadingLineBreaks: list.interRowLineBreaks
    });
  }
  /**
   * Finalize currently built list item, add it's content to the parent list.
   */
  closeListItem() {
    const listItem = this._popStackItem();
    const list = listItem.next;
    const prefixLength = Math.max(listItem.prefix.length, list.maxPrefixLength);
    const spacing = "\n" + " ".repeat(prefixLength);
    const prefix = list.prefixAlign === "right" ? listItem.prefix.padStart(prefixLength) : listItem.prefix.padEnd(prefixLength);
    const text = prefix + getText(listItem).replace(/\n/g, spacing);
    addText(
      list,
      text,
      listItem.leadingLineBreaks,
      Math.max(listItem.stashedLineBreaks, list.interRowLineBreaks)
    );
  }
  /**
   * Finalize currently built list, add it's content to the parent block.
   *
   * @param { object } param0
   * Object holding the parameters of the list.
   *
   * @param { number } [param0.trailingLineBreaks]
   * This list should have at least this number of line breaks to separate it from any following block.
   */
  closeList({ trailingLineBreaks = 2 } = {}) {
    const list = this._popStackItem();
    const text = getText(list);
    if (text) {
      addText(this._stackItem, text, list.leadingLineBreaks, trailingLineBreaks);
    }
  }
  /**
   * Start building a table.
   */
  openTable() {
    this._stackItem = new TableStackItem(this._stackItem);
  }
  /**
   * Start building a table row.
   */
  openTableRow() {
    if (!(this._stackItem instanceof TableStackItem)) {
      throw new Error("Can't add a table row to something that is not a table! Check the formatter.");
    }
    this._stackItem = new TableRowStackItem(this._stackItem);
  }
  /**
   * Start building a table cell.
   *
   * @param { object } [param0]
   * Object holding the parameters of the cell.
   *
   * @param { number } [param0.maxColumnWidth]
   * Wrap cell content to this width. Fall back to global wordwrap value if undefined.
   */
  openTableCell({ maxColumnWidth = void 0 } = {}) {
    if (!(this._stackItem instanceof TableRowStackItem)) {
      throw new Error("Can't add a table cell to something that is not a table row! Check the formatter.");
    }
    this._stackItem = new TableCellStackItem(this.options, this._stackItem, maxColumnWidth);
  }
  /**
   * Finalize currently built table cell and add it to parent table row's cells.
   *
   * @param { object } [param0]
   * Object holding the parameters of the cell.
   *
   * @param { number } [param0.colspan] How many columns this cell should occupy.
   * @param { number } [param0.rowspan] How many rows this cell should occupy.
   */
  closeTableCell({ colspan = 1, rowspan = 1 } = {}) {
    const cell = this._popStackItem();
    const text = trimCharacter(getText(cell), "\n");
    cell.next.cells.push({ colspan, rowspan, text });
  }
  /**
   * Finalize currently built table row and add it to parent table's rows.
   */
  closeTableRow() {
    const row = this._popStackItem();
    row.next.rows.push(row.cells);
  }
  /**
   * Finalize currently built table and add the rendered text to the parent block.
   *
   * @param { object } param0
   * Object holding the parameters of the table.
   *
   * @param { TablePrinter } param0.tableToString
   * A function to convert a table of stringified cells into a complete table.
   *
   * @param { number } [param0.leadingLineBreaks]
   * This table should have at least this number of line breaks to separate if from any preceding block.
   *
   * @param { number } [param0.trailingLineBreaks]
   * This table should have at least this number of line breaks to separate it from any following block.
   */
  closeTable({ tableToString: tableToString2, leadingLineBreaks = 2, trailingLineBreaks = 2 }) {
    const table = this._popStackItem();
    const output = tableToString2(table.rows);
    if (output) {
      addText(this._stackItem, output, leadingLineBreaks, trailingLineBreaks);
    }
  }
  /**
   * Return the rendered text content of this builder.
   *
   * @returns { string }
   */
  toString() {
    return getText(this._stackItem.getRoot());
  }
};
function getText(stackItem) {
  if (!(stackItem instanceof BlockStackItem || stackItem instanceof ListItemStackItem || stackItem instanceof TableCellStackItem)) {
    throw new Error("Only blocks, list items and table cells can be requested for text contents.");
  }
  return stackItem.inlineTextBuilder.isEmpty() ? stackItem.rawText : stackItem.rawText + stackItem.inlineTextBuilder.toString();
}
function addText(stackItem, text, leadingLineBreaks, trailingLineBreaks) {
  if (!(stackItem instanceof BlockStackItem || stackItem instanceof ListItemStackItem || stackItem instanceof TableCellStackItem)) {
    throw new Error("Only blocks, list items and table cells can contain text.");
  }
  const parentText = getText(stackItem);
  const lineBreaks = Math.max(stackItem.stashedLineBreaks, leadingLineBreaks);
  stackItem.inlineTextBuilder.clear();
  if (parentText) {
    stackItem.rawText = parentText + "\n".repeat(lineBreaks) + text;
  } else {
    stackItem.rawText = text;
    stackItem.leadingLineBreaks = lineBreaks;
  }
  stackItem.stashedLineBreaks = trailingLineBreaks;
}
function applyTransformer(str, transformer) {
  return transformer ? applyTransformer(transformer.transform(str), transformer.next) : str;
}
function compile$1(options = {}) {
  const selectorsWithoutFormat = options.selectors.filter((s2) => !s2.format);
  if (selectorsWithoutFormat.length) {
    throw new Error(
      "Following selectors have no specified format: " + selectorsWithoutFormat.map((s2) => `\`${s2.selector}\``).join(", ")
    );
  }
  const picker = new DecisionTree(
    options.selectors.map((s2) => [s2.selector, s2])
  ).build(hp2Builder);
  if (typeof options.encodeCharacters !== "function") {
    options.encodeCharacters = makeReplacerFromDict(options.encodeCharacters);
  }
  const baseSelectorsPicker = new DecisionTree(
    options.baseElements.selectors.map((s2, i3) => [s2, i3 + 1])
  ).build(hp2Builder);
  function findBaseElements(dom) {
    return findBases(dom, options, baseSelectorsPicker);
  }
  const limitedWalk = limitedDepthRecursive(
    options.limits.maxDepth,
    recursiveWalk,
    function(dom, builder) {
      builder.addInline(options.limits.ellipsis || "");
    }
  );
  return function(html, metadata = void 0) {
    return process4(html, metadata, options, picker, findBaseElements, limitedWalk);
  };
}
function process4(html, metadata, options, picker, findBaseElements, walk) {
  const maxInputLength = options.limits.maxInputLength;
  if (maxInputLength && html && html.length > maxInputLength) {
    console.warn(
      `Input length ${html.length} is above allowed limit of ${maxInputLength}. Truncating without ellipsis.`
    );
    html = html.substring(0, maxInputLength);
  }
  const document2 = parseDocument(html, { decodeEntities: options.decodeEntities });
  const bases = findBaseElements(document2.children);
  const builder = new BlockTextBuilder(options, picker, metadata);
  walk(bases, builder);
  return builder.toString();
}
function findBases(dom, options, baseSelectorsPicker) {
  const results = [];
  function recursiveWalk2(walk, dom2) {
    dom2 = dom2.slice(0, options.limits.maxChildNodes);
    for (const elem of dom2) {
      if (elem.type !== "tag") {
        continue;
      }
      const pickedSelectorIndex = baseSelectorsPicker.pick1(elem);
      if (pickedSelectorIndex > 0) {
        results.push({ selectorIndex: pickedSelectorIndex, element: elem });
      } else if (elem.children) {
        walk(elem.children);
      }
      if (results.length >= options.limits.maxBaseElements) {
        return;
      }
    }
  }
  const limitedWalk = limitedDepthRecursive(
    options.limits.maxDepth,
    recursiveWalk2
  );
  limitedWalk(dom);
  if (options.baseElements.orderBy !== "occurrence") {
    results.sort((a2, b2) => a2.selectorIndex - b2.selectorIndex);
  }
  return options.baseElements.returnDomByDefault && results.length === 0 ? dom : results.map((x3) => x3.element);
}
function recursiveWalk(walk, dom, builder) {
  if (!dom) {
    return;
  }
  const options = builder.options;
  const tooManyChildNodes = dom.length > options.limits.maxChildNodes;
  if (tooManyChildNodes) {
    dom = dom.slice(0, options.limits.maxChildNodes);
    dom.push({
      data: options.limits.ellipsis,
      type: "text"
    });
  }
  for (const elem of dom) {
    switch (elem.type) {
      case "text": {
        builder.addInline(elem.data);
        break;
      }
      case "tag": {
        const tagDefinition = builder.picker.pick1(elem);
        const format = options.formatters[tagDefinition.format];
        format(elem, walk, builder, tagDefinition.options || {});
        break;
      }
    }
  }
  return;
}
function makeReplacerFromDict(dict) {
  if (!dict || Object.keys(dict).length === 0) {
    return void 0;
  }
  const entries2 = Object.entries(dict).filter(([, v2]) => v2 !== false);
  const regex = new RegExp(
    entries2.map(([c3]) => `(${unicodeEscape([...c3][0])})`).join("|"),
    "g"
  );
  const values = entries2.map(([, v2]) => v2);
  const replacer = (m2, ...cgs) => values[cgs.findIndex((cg) => cg)];
  return (str) => str.replace(regex, replacer);
}
function formatSkip(elem, walk, builder, formatOptions) {
}
function formatInlineString(elem, walk, builder, formatOptions) {
  builder.addLiteral(formatOptions.string || "");
}
function formatBlockString(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks || 2 });
  builder.addLiteral(formatOptions.string || "");
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function formatInline(elem, walk, builder, formatOptions) {
  walk(elem.children, builder);
}
function formatBlock$1(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks || 2 });
  walk(elem.children, builder);
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function renderOpenTag(elem) {
  const attrs = elem.attribs && elem.attribs.length ? " " + Object.entries(elem.attribs).map(([k3, v2]) => v2 === "" ? k3 : `${k3}=${v2.replace(/"/g, "&quot;")}`).join(" ") : "";
  return `<${elem.name}${attrs}>`;
}
function renderCloseTag(elem) {
  return `</${elem.name}>`;
}
function formatInlineTag(elem, walk, builder, formatOptions) {
  builder.startNoWrap();
  builder.addLiteral(renderOpenTag(elem));
  builder.stopNoWrap();
  walk(elem.children, builder);
  builder.startNoWrap();
  builder.addLiteral(renderCloseTag(elem));
  builder.stopNoWrap();
}
function formatBlockTag(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks || 2 });
  builder.startNoWrap();
  builder.addLiteral(renderOpenTag(elem));
  builder.stopNoWrap();
  walk(elem.children, builder);
  builder.startNoWrap();
  builder.addLiteral(renderCloseTag(elem));
  builder.stopNoWrap();
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function formatInlineHtml(elem, walk, builder, formatOptions) {
  builder.startNoWrap();
  builder.addLiteral(
    render(elem, { decodeEntities: builder.options.decodeEntities })
  );
  builder.stopNoWrap();
}
function formatBlockHtml(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks || 2 });
  builder.startNoWrap();
  builder.addLiteral(
    render(elem, { decodeEntities: builder.options.decodeEntities })
  );
  builder.stopNoWrap();
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function formatInlineSurround(elem, walk, builder, formatOptions) {
  builder.addLiteral(formatOptions.prefix || "");
  walk(elem.children, builder);
  builder.addLiteral(formatOptions.suffix || "");
}
var genericFormatters = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  block: formatBlock$1,
  blockHtml: formatBlockHtml,
  blockString: formatBlockString,
  blockTag: formatBlockTag,
  inline: formatInline,
  inlineHtml: formatInlineHtml,
  inlineString: formatInlineString,
  inlineSurround: formatInlineSurround,
  inlineTag: formatInlineTag,
  skip: formatSkip
});
function getRow(matrix, j2) {
  if (!matrix[j2]) {
    matrix[j2] = [];
  }
  return matrix[j2];
}
function findFirstVacantIndex(row, x3 = 0) {
  while (row[x3]) {
    x3++;
  }
  return x3;
}
function transposeInPlace(matrix, maxSize) {
  for (let i3 = 0; i3 < maxSize; i3++) {
    const rowI = getRow(matrix, i3);
    for (let j2 = 0; j2 < i3; j2++) {
      const rowJ = getRow(matrix, j2);
      if (rowI[j2] || rowJ[i3]) {
        const temp = rowI[j2];
        rowI[j2] = rowJ[i3];
        rowJ[i3] = temp;
      }
    }
  }
}
function putCellIntoLayout(cell, layout, baseRow, baseCol) {
  for (let r2 = 0; r2 < cell.rowspan; r2++) {
    const layoutRow = getRow(layout, baseRow + r2);
    for (let c3 = 0; c3 < cell.colspan; c3++) {
      layoutRow[baseCol + c3] = cell;
    }
  }
}
function getOrInitOffset(offsets, index) {
  if (offsets[index] === void 0) {
    offsets[index] = index === 0 ? 0 : 1 + getOrInitOffset(offsets, index - 1);
  }
  return offsets[index];
}
function updateOffset(offsets, base, span, value) {
  offsets[base + span] = Math.max(
    getOrInitOffset(offsets, base + span),
    getOrInitOffset(offsets, base) + value
  );
}
function tableToString(tableRows, rowSpacing, colSpacing) {
  const layout = [];
  let colNumber = 0;
  const rowNumber = tableRows.length;
  const rowOffsets = [0];
  for (let j2 = 0; j2 < rowNumber; j2++) {
    const layoutRow = getRow(layout, j2);
    const cells = tableRows[j2];
    let x3 = 0;
    for (let i3 = 0; i3 < cells.length; i3++) {
      const cell = cells[i3];
      x3 = findFirstVacantIndex(layoutRow, x3);
      putCellIntoLayout(cell, layout, j2, x3);
      x3 += cell.colspan;
      cell.lines = cell.text.split("\n");
      const cellHeight = cell.lines.length;
      updateOffset(rowOffsets, j2, cell.rowspan, cellHeight + rowSpacing);
    }
    colNumber = layoutRow.length > colNumber ? layoutRow.length : colNumber;
  }
  transposeInPlace(layout, rowNumber > colNumber ? rowNumber : colNumber);
  const outputLines = [];
  const colOffsets = [0];
  for (let x3 = 0; x3 < colNumber; x3++) {
    let y2 = 0;
    let cell;
    const rowsInThisColumn = Math.min(rowNumber, layout[x3].length);
    while (y2 < rowsInThisColumn) {
      cell = layout[x3][y2];
      if (cell) {
        if (!cell.rendered) {
          let cellWidth = 0;
          for (let j2 = 0; j2 < cell.lines.length; j2++) {
            const line = cell.lines[j2];
            const lineOffset = rowOffsets[y2] + j2;
            outputLines[lineOffset] = (outputLines[lineOffset] || "").padEnd(colOffsets[x3]) + line;
            cellWidth = line.length > cellWidth ? line.length : cellWidth;
          }
          updateOffset(colOffsets, x3, cell.colspan, cellWidth + colSpacing);
          cell.rendered = true;
        }
        y2 += cell.rowspan;
      } else {
        const lineOffset = rowOffsets[y2];
        outputLines[lineOffset] = outputLines[lineOffset] || "";
        y2++;
      }
    }
  }
  return outputLines.join("\n");
}
function formatLineBreak(elem, walk, builder, formatOptions) {
  builder.addLineBreak();
}
function formatWbr(elem, walk, builder, formatOptions) {
  builder.addWordBreakOpportunity();
}
function formatHorizontalLine(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks || 2 });
  builder.addInline("-".repeat(formatOptions.length || builder.options.wordwrap || 40));
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function formatParagraph(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks || 2 });
  walk(elem.children, builder);
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function formatPre(elem, walk, builder, formatOptions) {
  builder.openBlock({
    isPre: true,
    leadingLineBreaks: formatOptions.leadingLineBreaks || 2
  });
  walk(elem.children, builder);
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function formatHeading(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks || 2 });
  if (formatOptions.uppercase !== false) {
    builder.pushWordTransform((str) => str.toUpperCase());
    walk(elem.children, builder);
    builder.popWordTransform();
  } else {
    walk(elem.children, builder);
  }
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks || 2 });
}
function formatBlockquote(elem, walk, builder, formatOptions) {
  builder.openBlock({
    leadingLineBreaks: formatOptions.leadingLineBreaks || 2,
    reservedLineLength: 2
  });
  walk(elem.children, builder);
  builder.closeBlock({
    trailingLineBreaks: formatOptions.trailingLineBreaks || 2,
    blockTransform: (str) => (formatOptions.trimEmptyLines !== false ? trimCharacter(str, "\n") : str).split("\n").map((line) => "> " + line).join("\n")
  });
}
function withBrackets(str, brackets) {
  if (!brackets) {
    return str;
  }
  const lbr = typeof brackets[0] === "string" ? brackets[0] : "[";
  const rbr = typeof brackets[1] === "string" ? brackets[1] : "]";
  return lbr + str + rbr;
}
function pathRewrite(path3, rewriter, baseUrl, metadata, elem) {
  const modifiedPath = typeof rewriter === "function" ? rewriter(path3, metadata, elem) : path3;
  return modifiedPath[0] === "/" && baseUrl ? trimCharacterEnd(baseUrl, "/") + modifiedPath : modifiedPath;
}
function formatImage(elem, walk, builder, formatOptions) {
  const attribs = elem.attribs || {};
  const alt = attribs.alt ? attribs.alt : "";
  const src = !attribs.src ? "" : pathRewrite(attribs.src, formatOptions.pathRewrite, formatOptions.baseUrl, builder.metadata, elem);
  const text = !src ? alt : !alt ? withBrackets(src, formatOptions.linkBrackets) : alt + " " + withBrackets(src, formatOptions.linkBrackets);
  builder.addInline(text, { noWordTransform: true });
}
function formatAnchor(elem, walk, builder, formatOptions) {
  function getHref() {
    if (formatOptions.ignoreHref) {
      return "";
    }
    if (!elem.attribs || !elem.attribs.href) {
      return "";
    }
    let href2 = elem.attribs.href.replace(/^mailto:/, "");
    if (formatOptions.noAnchorUrl && href2[0] === "#") {
      return "";
    }
    href2 = pathRewrite(href2, formatOptions.pathRewrite, formatOptions.baseUrl, builder.metadata, elem);
    return href2;
  }
  const href = getHref();
  if (!href) {
    walk(elem.children, builder);
  } else {
    let text = "";
    builder.pushWordTransform(
      (str) => {
        if (str) {
          text += str;
        }
        return str;
      }
    );
    walk(elem.children, builder);
    builder.popWordTransform();
    const hideSameLink = formatOptions.hideLinkHrefIfSameAsText && href === text;
    if (!hideSameLink) {
      builder.addInline(
        !text ? href : " " + withBrackets(href, formatOptions.linkBrackets),
        { noWordTransform: true }
      );
    }
  }
}
function formatList(elem, walk, builder, formatOptions, nextPrefixCallback) {
  const isNestedList = get(elem, ["parent", "name"]) === "li";
  let maxPrefixLength = 0;
  const listItems = (elem.children || []).filter((child) => child.type !== "text" || !/^\s*$/.test(child.data)).map(function(child) {
    if (child.name !== "li") {
      return { node: child, prefix: "" };
    }
    const prefix = isNestedList ? nextPrefixCallback().trimStart() : nextPrefixCallback();
    if (prefix.length > maxPrefixLength) {
      maxPrefixLength = prefix.length;
    }
    return { node: child, prefix };
  });
  if (!listItems.length) {
    return;
  }
  builder.openList({
    interRowLineBreaks: 1,
    leadingLineBreaks: isNestedList ? 1 : formatOptions.leadingLineBreaks || 2,
    maxPrefixLength,
    prefixAlign: "left"
  });
  for (const { node, prefix } of listItems) {
    builder.openListItem({ prefix });
    walk([node], builder);
    builder.closeListItem();
  }
  builder.closeList({ trailingLineBreaks: isNestedList ? 1 : formatOptions.trailingLineBreaks || 2 });
}
function formatUnorderedList(elem, walk, builder, formatOptions) {
  const prefix = formatOptions.itemPrefix || " * ";
  return formatList(elem, walk, builder, formatOptions, () => prefix);
}
function formatOrderedList(elem, walk, builder, formatOptions) {
  let nextIndex = Number(elem.attribs.start || "1");
  const indexFunction = getOrderedListIndexFunction(elem.attribs.type);
  const nextPrefixCallback = () => " " + indexFunction(nextIndex++) + ". ";
  return formatList(elem, walk, builder, formatOptions, nextPrefixCallback);
}
function getOrderedListIndexFunction(olType = "1") {
  switch (olType) {
    case "a":
      return (i3) => numberToLetterSequence(i3, "a");
    case "A":
      return (i3) => numberToLetterSequence(i3, "A");
    case "i":
      return (i3) => numberToRoman(i3).toLowerCase();
    case "I":
      return (i3) => numberToRoman(i3);
    case "1":
    default:
      return (i3) => i3.toString();
  }
}
function splitClassesAndIds(selectors) {
  const classes = [];
  const ids = [];
  for (const selector of selectors) {
    if (selector.startsWith(".")) {
      classes.push(selector.substring(1));
    } else if (selector.startsWith("#")) {
      ids.push(selector.substring(1));
    }
  }
  return { classes, ids };
}
function isDataTable(attr, tables) {
  if (tables === true) {
    return true;
  }
  if (!attr) {
    return false;
  }
  const { classes, ids } = splitClassesAndIds(tables);
  const attrClasses = (attr["class"] || "").split(" ");
  const attrIds = (attr["id"] || "").split(" ");
  return attrClasses.some((x3) => classes.includes(x3)) || attrIds.some((x3) => ids.includes(x3));
}
function formatTable(elem, walk, builder, formatOptions) {
  return isDataTable(elem.attribs, builder.options.tables) ? formatDataTable(elem, walk, builder, formatOptions) : formatBlock(elem, walk, builder, formatOptions);
}
function formatBlock(elem, walk, builder, formatOptions) {
  builder.openBlock({ leadingLineBreaks: formatOptions.leadingLineBreaks });
  walk(elem.children, builder);
  builder.closeBlock({ trailingLineBreaks: formatOptions.trailingLineBreaks });
}
function formatDataTable(elem, walk, builder, formatOptions) {
  builder.openTable();
  elem.children.forEach(walkTable);
  builder.closeTable({
    tableToString: (rows) => tableToString(rows, formatOptions.rowSpacing ?? 0, formatOptions.colSpacing ?? 3),
    leadingLineBreaks: formatOptions.leadingLineBreaks,
    trailingLineBreaks: formatOptions.trailingLineBreaks
  });
  function formatCell(cellNode) {
    const colspan = +get(cellNode, ["attribs", "colspan"]) || 1;
    const rowspan = +get(cellNode, ["attribs", "rowspan"]) || 1;
    builder.openTableCell({ maxColumnWidth: formatOptions.maxColumnWidth });
    walk(cellNode.children, builder);
    builder.closeTableCell({ colspan, rowspan });
  }
  function walkTable(elem2) {
    if (elem2.type !== "tag") {
      return;
    }
    const formatHeaderCell = formatOptions.uppercaseHeaderCells !== false ? (cellNode) => {
      builder.pushWordTransform((str) => str.toUpperCase());
      formatCell(cellNode);
      builder.popWordTransform();
    } : formatCell;
    switch (elem2.name) {
      case "thead":
      case "tbody":
      case "tfoot":
      case "center":
        elem2.children.forEach(walkTable);
        return;
      case "tr": {
        builder.openTableRow();
        for (const childOfTr of elem2.children) {
          if (childOfTr.type !== "tag") {
            continue;
          }
          switch (childOfTr.name) {
            case "th": {
              formatHeaderCell(childOfTr);
              break;
            }
            case "td": {
              formatCell(childOfTr);
              break;
            }
          }
        }
        builder.closeTableRow();
        break;
      }
    }
  }
}
var textFormatters = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  anchor: formatAnchor,
  blockquote: formatBlockquote,
  dataTable: formatDataTable,
  heading: formatHeading,
  horizontalLine: formatHorizontalLine,
  image: formatImage,
  lineBreak: formatLineBreak,
  orderedList: formatOrderedList,
  paragraph: formatParagraph,
  pre: formatPre,
  table: formatTable,
  unorderedList: formatUnorderedList,
  wbr: formatWbr
});
var DEFAULT_OPTIONS = {
  baseElements: {
    selectors: ["body"],
    orderBy: "selectors",
    // 'selectors' | 'occurrence'
    returnDomByDefault: true
  },
  decodeEntities: true,
  encodeCharacters: {},
  formatters: {},
  limits: {
    ellipsis: "...",
    maxBaseElements: void 0,
    maxChildNodes: void 0,
    maxDepth: void 0,
    maxInputLength: 1 << 24
    // 16_777_216
  },
  longWordSplit: {
    forceWrapOnLimit: false,
    wrapCharacters: []
  },
  preserveNewlines: false,
  selectors: [
    { selector: "*", format: "inline" },
    {
      selector: "a",
      format: "anchor",
      options: {
        baseUrl: null,
        hideLinkHrefIfSameAsText: false,
        ignoreHref: false,
        linkBrackets: ["[", "]"],
        noAnchorUrl: true
      }
    },
    { selector: "article", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    { selector: "aside", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    {
      selector: "blockquote",
      format: "blockquote",
      options: { leadingLineBreaks: 2, trailingLineBreaks: 2, trimEmptyLines: true }
    },
    { selector: "br", format: "lineBreak" },
    { selector: "div", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    { selector: "footer", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    { selector: "form", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    { selector: "h1", format: "heading", options: { leadingLineBreaks: 3, trailingLineBreaks: 2, uppercase: true } },
    { selector: "h2", format: "heading", options: { leadingLineBreaks: 3, trailingLineBreaks: 2, uppercase: true } },
    { selector: "h3", format: "heading", options: { leadingLineBreaks: 3, trailingLineBreaks: 2, uppercase: true } },
    { selector: "h4", format: "heading", options: { leadingLineBreaks: 2, trailingLineBreaks: 2, uppercase: true } },
    { selector: "h5", format: "heading", options: { leadingLineBreaks: 2, trailingLineBreaks: 2, uppercase: true } },
    { selector: "h6", format: "heading", options: { leadingLineBreaks: 2, trailingLineBreaks: 2, uppercase: true } },
    { selector: "header", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    {
      selector: "hr",
      format: "horizontalLine",
      options: { leadingLineBreaks: 2, length: void 0, trailingLineBreaks: 2 }
    },
    {
      selector: "img",
      format: "image",
      options: { baseUrl: null, linkBrackets: ["[", "]"] }
    },
    { selector: "main", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    { selector: "nav", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    {
      selector: "ol",
      format: "orderedList",
      options: { leadingLineBreaks: 2, trailingLineBreaks: 2 }
    },
    { selector: "p", format: "paragraph", options: { leadingLineBreaks: 2, trailingLineBreaks: 2 } },
    { selector: "pre", format: "pre", options: { leadingLineBreaks: 2, trailingLineBreaks: 2 } },
    { selector: "section", format: "block", options: { leadingLineBreaks: 1, trailingLineBreaks: 1 } },
    {
      selector: "table",
      format: "table",
      options: {
        colSpacing: 3,
        leadingLineBreaks: 2,
        maxColumnWidth: 60,
        rowSpacing: 0,
        trailingLineBreaks: 2,
        uppercaseHeaderCells: true
      }
    },
    {
      selector: "ul",
      format: "unorderedList",
      options: { itemPrefix: " * ", leadingLineBreaks: 2, trailingLineBreaks: 2 }
    },
    { selector: "wbr", format: "wbr" }
  ],
  tables: [],
  // deprecated
  whitespaceCharacters: " 	\r\n\f\u200B",
  wordwrap: 80
};
var concatMerge = (acc, src, options) => [...acc, ...src];
var overwriteMerge = (acc, src, options) => [...src];
var selectorsMerge = (acc, src, options) => acc.some((s2) => typeof s2 === "object") ? concatMerge(acc, src) : overwriteMerge(acc, src);
function compile(options = {}) {
  options = (0, import_deepmerge.default)(
    DEFAULT_OPTIONS,
    options,
    {
      arrayMerge: overwriteMerge,
      customMerge: (key) => key === "selectors" ? selectorsMerge : void 0
    }
  );
  options.formatters = Object.assign({}, genericFormatters, textFormatters, options.formatters);
  options.selectors = mergeDuplicatesPreferLast(options.selectors, ((s2) => s2.selector));
  handleDeprecatedOptions(options);
  return compile$1(options);
}
function convert(html, options = {}, metadata = void 0) {
  return compile(options)(html, metadata);
}
function handleDeprecatedOptions(options) {
  if (options.tags) {
    const tagDefinitions = Object.entries(options.tags).map(
      ([selector, definition]) => ({ ...definition, selector: selector || "*" })
    );
    options.selectors.push(...tagDefinitions);
    options.selectors = mergeDuplicatesPreferLast(options.selectors, ((s2) => s2.selector));
  }
  function set(obj, path3, value) {
    const valueKey = path3.pop();
    for (const key of path3) {
      let nested = obj[key];
      if (!nested) {
        nested = {};
        obj[key] = nested;
      }
      obj = nested;
    }
    obj[valueKey] = value;
  }
  if (options["baseElement"]) {
    const baseElement = options["baseElement"];
    set(
      options,
      ["baseElements", "selectors"],
      Array.isArray(baseElement) ? baseElement : [baseElement]
    );
  }
  if (options["returnDomByDefault"] !== void 0) {
    set(options, ["baseElements", "returnDomByDefault"], options["returnDomByDefault"]);
  }
  for (const definition of options.selectors) {
    if (definition.format === "anchor" && get(definition, ["options", "noLinkBrackets"])) {
      set(definition, ["options", "linkBrackets"], false);
    }
  }
}

// ../../node_modules/.pnpm/@react-email+render@1.0.5_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@react-email/render/dist/node/index.mjs
var import_react2 = require("react");

// ../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs
var ri = Object.defineProperty;
var Xr = (t9) => {
  throw TypeError(t9);
};
var Jr = (t9, e2) => {
  for (var r2 in e2) ri(t9, r2, { get: e2[r2], enumerable: true });
};
var Zr = (t9, e2, r2) => e2.has(t9) || Xr("Cannot " + r2);
var K = (t9, e2, r2) => (Zr(t9, e2, "read from private field"), r2 ? r2.call(t9) : e2.get(t9));
var en = (t9, e2, r2) => e2.has(t9) ? Xr("Cannot add the same private member more than once") : e2 instanceof WeakSet ? e2.add(t9) : e2.set(t9, r2);
var tn = (t9, e2, r2, n3) => (Zr(t9, e2, "write to private field"), n3 ? n3.call(t9, r2) : e2.set(t9, r2), r2);
var Yr = {};
Jr(Yr, { languages: () => As, options: () => vs, parsers: () => Gr, printers: () => Io });
var ni = (t9, e2, r2, n3) => {
  if (!(t9 && e2 == null)) return e2.replaceAll ? e2.replaceAll(r2, n3) : r2.global ? e2.replace(r2, n3) : e2.split(r2).join(n3);
};
var w = ni;
var Ve = "string";
var Ue = "array";
var We = "cursor";
var De = "indent";
var ve = "align";
var ze = "trim";
var ye = "group";
var we = "fill";
var be = "if-break";
var Te = "indent-if-break";
var Ge = "line-suffix";
var Ye = "line-suffix-boundary";
var Q = "line";
var je = "label";
var xe = "break-parent";
var St = /* @__PURE__ */ new Set([We, De, ve, ze, ye, we, be, Te, Ge, Ye, Q, je, xe]);
function si(t9) {
  if (typeof t9 == "string") return Ve;
  if (Array.isArray(t9)) return Ue;
  if (!t9) return;
  let { type: e2 } = t9;
  if (St.has(e2)) return e2;
}
var Ke = si;
var ii = (t9) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(t9);
function ai(t9) {
  let e2 = t9 === null ? "null" : typeof t9;
  if (e2 !== "string" && e2 !== "object") return `Unexpected doc '${e2}', 
Expected it to be 'string' or 'object'.`;
  if (Ke(t9)) throw new Error("doc is valid.");
  let r2 = Object.prototype.toString.call(t9);
  if (r2 !== "[object Object]") return `Unexpected doc '${r2}'.`;
  let n3 = ii([...St].map((s2) => `'${s2}'`));
  return `Unexpected doc.type '${t9.type}'.
Expected it to be ${n3}.`;
}
var or = class extends Error {
  name = "InvalidDocError";
  constructor(e2) {
    super(ai(e2)), this.doc = e2;
  }
};
var ur = or;
var rn = () => {
};
var re = rn;
var _t = rn;
function k(t9) {
  return re(t9), { type: De, contents: t9 };
}
function nn(t9, e2) {
  return re(e2), { type: ve, contents: e2, n: t9 };
}
function _(t9, e2 = {}) {
  return re(t9), _t(e2.expandedStates, true), { type: ye, id: e2.id, contents: t9, break: !!e2.shouldBreak, expandedStates: e2.expandedStates };
}
function sn(t9) {
  return nn(Number.NEGATIVE_INFINITY, t9);
}
function an(t9) {
  return nn({ type: "root" }, t9);
}
function Et(t9) {
  return _t(t9), { type: we, parts: t9 };
}
function le(t9, e2 = "", r2 = {}) {
  return re(t9), e2 !== "" && re(e2), { type: be, breakContents: t9, flatContents: e2, groupId: r2.groupId };
}
function on2(t9, e2) {
  return re(t9), { type: Te, contents: t9, groupId: e2.groupId, negate: e2.negate };
}
var ne = { type: xe };
var oi = { type: Q, hard: true };
var ui = { type: Q, hard: true, literal: true };
var E = { type: Q };
var v = { type: Q, soft: true };
var S = [oi, ne];
var un = [ui, ne];
function q(t9, e2) {
  re(t9), _t(e2);
  let r2 = [];
  for (let n3 = 0; n3 < e2.length; n3++) n3 !== 0 && r2.push(t9), r2.push(e2[n3]);
  return r2;
}
var li = (t9, e2, r2) => {
  if (!(t9 && e2 == null)) return Array.isArray(e2) || typeof e2 == "string" ? e2[r2 < 0 ? e2.length + r2 : r2] : e2.at(r2);
};
var se = li;
function lr(t9, e2) {
  if (typeof t9 == "string") return e2(t9);
  let r2 = /* @__PURE__ */ new Map();
  return n3(t9);
  function n3(i3) {
    if (r2.has(i3)) return r2.get(i3);
    let a2 = s2(i3);
    return r2.set(i3, a2), a2;
  }
  function s2(i3) {
    switch (Ke(i3)) {
      case Ue:
        return e2(i3.map(n3));
      case we:
        return e2({ ...i3, parts: i3.parts.map(n3) });
      case be:
        return e2({ ...i3, breakContents: n3(i3.breakContents), flatContents: n3(i3.flatContents) });
      case ye: {
        let { expandedStates: a2, contents: o3 } = i3;
        return a2 ? (a2 = a2.map(n3), o3 = a2[0]) : o3 = n3(o3), e2({ ...i3, contents: o3, expandedStates: a2 });
      }
      case ve:
      case De:
      case Te:
      case je:
      case Ge:
        return e2({ ...i3, contents: n3(i3.contents) });
      case Ve:
      case We:
      case ze:
      case Ye:
      case Q:
      case xe:
        return e2(i3);
      default:
        throw new ur(i3);
    }
  }
}
function B(t9, e2 = un) {
  return lr(t9, (r2) => typeof r2 == "string" ? q(e2, r2.split(`
`)) : r2);
}
var At = "'";
var ln = '"';
function ci(t9, e2) {
  let r2 = e2 === true || e2 === At ? At : ln, n3 = r2 === At ? ln : At, s2 = 0, i3 = 0;
  for (let a2 of t9) a2 === r2 ? s2++ : a2 === n3 && i3++;
  return s2 > i3 ? n3 : r2;
}
var cn = ci;
function cr(t9) {
  if (typeof t9 != "string") throw new TypeError("Expected a string");
  return t9.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
}
var H;
var pr = class {
  constructor(e2) {
    en(this, H);
    tn(this, H, new Set(e2));
  }
  getLeadingWhitespaceCount(e2) {
    let r2 = K(this, H), n3 = 0;
    for (let s2 = 0; s2 < e2.length && r2.has(e2.charAt(s2)); s2++) n3++;
    return n3;
  }
  getTrailingWhitespaceCount(e2) {
    let r2 = K(this, H), n3 = 0;
    for (let s2 = e2.length - 1; s2 >= 0 && r2.has(e2.charAt(s2)); s2--) n3++;
    return n3;
  }
  getLeadingWhitespace(e2) {
    let r2 = this.getLeadingWhitespaceCount(e2);
    return e2.slice(0, r2);
  }
  getTrailingWhitespace(e2) {
    let r2 = this.getTrailingWhitespaceCount(e2);
    return e2.slice(e2.length - r2);
  }
  hasLeadingWhitespace(e2) {
    return K(this, H).has(e2.charAt(0));
  }
  hasTrailingWhitespace(e2) {
    return K(this, H).has(se(false, e2, -1));
  }
  trimStart(e2) {
    let r2 = this.getLeadingWhitespaceCount(e2);
    return e2.slice(r2);
  }
  trimEnd(e2) {
    let r2 = this.getTrailingWhitespaceCount(e2);
    return e2.slice(0, e2.length - r2);
  }
  trim(e2) {
    return this.trimEnd(this.trimStart(e2));
  }
  split(e2, r2 = false) {
    let n3 = `[${cr([...K(this, H)].join(""))}]+`, s2 = new RegExp(r2 ? `(${n3})` : n3, "u");
    return e2.split(s2);
  }
  hasWhitespaceCharacter(e2) {
    let r2 = K(this, H);
    return Array.prototype.some.call(e2, (n3) => r2.has(n3));
  }
  hasNonWhitespaceCharacter(e2) {
    let r2 = K(this, H);
    return Array.prototype.some.call(e2, (n3) => !r2.has(n3));
  }
  isWhitespaceOnly(e2) {
    let r2 = K(this, H);
    return Array.prototype.every.call(e2, (n3) => r2.has(n3));
  }
};
H = /* @__PURE__ */ new WeakMap();
var pn = pr;
var pi = ["	", `
`, "\f", "\r", " "];
var hi = new pn(pi);
var N = hi;
var hr = class extends Error {
  name = "UnexpectedNodeError";
  constructor(e2, r2, n3 = "type") {
    super(`Unexpected ${r2} node ${n3}: ${JSON.stringify(e2[n3])}.`), this.node = e2;
  }
};
var hn = hr;
function mi(t9) {
  return (t9 == null ? void 0 : t9.type) === "front-matter";
}
var ke = mi;
var fi = /* @__PURE__ */ new Set(["sourceSpan", "startSourceSpan", "endSourceSpan", "nameSpan", "valueSpan", "keySpan", "tagDefinition", "tokens", "valueTokens", "switchValueSourceSpan", "expSourceSpan", "valueSourceSpan"]);
var di = /* @__PURE__ */ new Set(["if", "else if", "for", "switch", "case"]);
function mn(t9, e2) {
  var r2;
  if (t9.type === "text" || t9.type === "comment" || ke(t9) || t9.type === "yaml" || t9.type === "toml") return null;
  if (t9.type === "attribute" && delete e2.value, t9.type === "docType" && delete e2.value, t9.type === "angularControlFlowBlock" && ((r2 = t9.parameters) != null && r2.children)) for (let n3 of e2.parameters.children) di.has(t9.name) ? delete n3.expression : n3.expression = n3.expression.trim();
  t9.type === "angularIcuExpression" && (e2.switchValue = t9.switchValue.trim()), t9.type === "angularLetDeclarationInitializer" && delete e2.value;
}
mn.ignoredProperties = fi;
var fn = mn;
async function gi(t9, e2) {
  if (t9.language === "yaml") {
    let r2 = t9.value.trim(), n3 = r2 ? await e2(r2, { parser: "yaml" }) : "";
    return an([t9.startDelimiter, t9.explicitLanguage, S, n3, n3 ? S : "", t9.endDelimiter]);
  }
}
var dn = gi;
function ce(t9, e2 = true) {
  return [k([v, t9]), e2 ? v : ""];
}
function Y(t9, e2) {
  let r2 = t9.type === "NGRoot" ? t9.node.type === "NGMicrosyntax" && t9.node.body.length === 1 && t9.node.body[0].type === "NGMicrosyntaxExpression" ? t9.node.body[0].expression : t9.node : t9.type === "JsExpressionRoot" ? t9.node : t9;
  return r2 && (r2.type === "ObjectExpression" || r2.type === "ArrayExpression" || (e2.parser === "__vue_expression" || e2.parser === "__vue_ts_expression") && (r2.type === "TemplateLiteral" || r2.type === "StringLiteral"));
}
async function T(t9, e2, r2, n3) {
  r2 = { __isInHtmlAttribute: true, __embeddedInHtml: true, ...r2 };
  let s2 = true;
  n3 && (r2.__onHtmlBindingRoot = (a2, o3) => {
    s2 = n3(a2, o3);
  });
  let i3 = await e2(t9, r2, e2);
  return s2 ? _(i3) : ce(i3);
}
function Ci(t9, e2, r2, n3) {
  let { node: s2 } = r2, i3 = n3.originalText.slice(s2.sourceSpan.start.offset, s2.sourceSpan.end.offset);
  return /^\s*$/u.test(i3) ? "" : T(i3, t9, { parser: "__ng_directive", __isInHtmlAttribute: false }, Y);
}
var gn = Ci;
var Si = (t9) => String(t9).split(/[/\\]/u).pop();
function Cn(t9, e2) {
  if (!e2) return;
  let r2 = Si(e2).toLowerCase();
  return t9.find(({ filenames: n3 }) => n3 == null ? void 0 : n3.some((s2) => s2.toLowerCase() === r2)) ?? t9.find(({ extensions: n3 }) => n3 == null ? void 0 : n3.some((s2) => r2.endsWith(s2)));
}
function _i(t9, e2) {
  if (e2) return t9.find(({ name: r2 }) => r2.toLowerCase() === e2) ?? t9.find(({ aliases: r2 }) => r2 == null ? void 0 : r2.includes(e2)) ?? t9.find(({ extensions: r2 }) => r2 == null ? void 0 : r2.includes(`.${e2}`));
}
function Ei(t9, e2) {
  let r2 = t9.plugins.flatMap((s2) => s2.languages ?? []), n3 = _i(r2, e2.language) ?? Cn(r2, e2.physicalFile) ?? Cn(r2, e2.file) ?? (e2.physicalFile, void 0);
  return n3 == null ? void 0 : n3.parsers[0];
}
var Be = Ei;
var Sn = "inline";
var _n = { area: "none", base: "none", basefont: "none", datalist: "none", head: "none", link: "none", meta: "none", noembed: "none", noframes: "none", param: "block", rp: "none", script: "block", style: "none", template: "inline", title: "none", html: "block", body: "block", address: "block", blockquote: "block", center: "block", dialog: "block", div: "block", figure: "block", figcaption: "block", footer: "block", form: "block", header: "block", hr: "block", legend: "block", listing: "block", main: "block", p: "block", plaintext: "block", pre: "block", search: "block", xmp: "block", slot: "contents", ruby: "ruby", rt: "ruby-text", article: "block", aside: "block", h1: "block", h2: "block", h3: "block", h4: "block", h5: "block", h6: "block", hgroup: "block", nav: "block", section: "block", dir: "block", dd: "block", dl: "block", dt: "block", menu: "block", ol: "block", ul: "block", li: "list-item", table: "table", caption: "table-caption", colgroup: "table-column-group", col: "table-column", thead: "table-header-group", tbody: "table-row-group", tfoot: "table-footer-group", tr: "table-row", td: "table-cell", th: "table-cell", input: "inline-block", button: "inline-block", fieldset: "block", details: "block", summary: "block", marquee: "inline-block", source: "block", track: "block", meter: "inline-block", progress: "inline-block", object: "inline-block", video: "inline-block", audio: "inline-block", select: "inline-block", option: "block", optgroup: "block" };
var En = "normal";
var An = { listing: "pre", plaintext: "pre", pre: "pre", xmp: "pre", nobr: "nowrap", table: "initial", textarea: "pre-wrap" };
function Ai(t9) {
  return t9.type === "element" && !t9.hasExplicitNamespace && !["html", "svg"].includes(t9.namespace);
}
var pe = Ai;
var Di = (t9) => w(false, t9, /^[\t\f\r ]*\n/gu, "");
var mr = (t9) => Di(N.trimEnd(t9));
var Dn = (t9) => {
  let e2 = t9, r2 = N.getLeadingWhitespace(e2);
  r2 && (e2 = e2.slice(r2.length));
  let n3 = N.getTrailingWhitespace(e2);
  return n3 && (e2 = e2.slice(0, -n3.length)), { leadingWhitespace: r2, trailingWhitespace: n3, text: e2 };
};
function Dt(t9, e2) {
  return !!(t9.type === "ieConditionalComment" && t9.lastChild && !t9.lastChild.isSelfClosing && !t9.lastChild.endSourceSpan || t9.type === "ieConditionalComment" && !t9.complete || he(t9) && t9.children.some((r2) => r2.type !== "text" && r2.type !== "interpolation") || wt(t9, e2) && !U(t9) && t9.type !== "interpolation");
}
function me(t9) {
  return t9.type === "attribute" || !t9.parent || !t9.prev ? false : vi(t9.prev);
}
function vi(t9) {
  return t9.type === "comment" && t9.value.trim() === "prettier-ignore";
}
function O(t9) {
  return t9.type === "text" || t9.type === "comment";
}
function U(t9) {
  return t9.type === "element" && (t9.fullName === "script" || t9.fullName === "style" || t9.fullName === "svg:style" || t9.fullName === "svg:script" || pe(t9) && (t9.name === "script" || t9.name === "style"));
}
function vn(t9) {
  return t9.children && !U(t9);
}
function yn(t9) {
  return U(t9) || t9.type === "interpolation" || fr(t9);
}
function fr(t9) {
  return In(t9).startsWith("pre");
}
function wn(t9, e2) {
  var s2, i3;
  let r2 = n3();
  if (r2 && !t9.prev && ((i3 = (s2 = t9.parent) == null ? void 0 : s2.tagDefinition) != null && i3.ignoreFirstLf)) return t9.type === "interpolation";
  return r2;
  function n3() {
    return ke(t9) || t9.type === "angularControlFlowBlock" ? false : (t9.type === "text" || t9.type === "interpolation") && t9.prev && (t9.prev.type === "text" || t9.prev.type === "interpolation") ? true : !t9.parent || t9.parent.cssDisplay === "none" ? false : he(t9.parent) ? true : !(!t9.prev && (t9.parent.type === "root" || he(t9) && t9.parent || U(t9.parent) || Je(t9.parent, e2) || !ki(t9.parent.cssDisplay)) || t9.prev && !Fi(t9.prev.cssDisplay));
  }
}
function bn(t9, e2) {
  return ke(t9) || t9.type === "angularControlFlowBlock" ? false : (t9.type === "text" || t9.type === "interpolation") && t9.next && (t9.next.type === "text" || t9.next.type === "interpolation") ? true : !t9.parent || t9.parent.cssDisplay === "none" ? false : he(t9.parent) ? true : !(!t9.next && (t9.parent.type === "root" || he(t9) && t9.parent || U(t9.parent) || Je(t9.parent, e2) || !Bi(t9.parent.cssDisplay)) || t9.next && !Li(t9.next.cssDisplay));
}
function Tn(t9) {
  return Ni(t9.cssDisplay) && !U(t9);
}
function Qe(t9) {
  return ke(t9) || t9.next && t9.sourceSpan.end && t9.sourceSpan.end.line + 1 < t9.next.sourceSpan.start.line;
}
function xn(t9) {
  return dr(t9) || t9.type === "element" && t9.children.length > 0 && (["body", "script", "style"].includes(t9.name) || t9.children.some((e2) => wi(e2))) || t9.firstChild && t9.firstChild === t9.lastChild && t9.firstChild.type !== "text" && Bn(t9.firstChild) && (!t9.lastChild.isTrailingSpaceSensitive || Ln(t9.lastChild));
}
function dr(t9) {
  return t9.type === "element" && t9.children.length > 0 && (["html", "head", "ul", "ol", "select"].includes(t9.name) || t9.cssDisplay.startsWith("table") && t9.cssDisplay !== "table-cell");
}
function vt(t9) {
  return Fn(t9) || t9.prev && yi(t9.prev) || kn(t9);
}
function yi(t9) {
  return Fn(t9) || t9.type === "element" && t9.fullName === "br" || kn(t9);
}
function kn(t9) {
  return Bn(t9) && Ln(t9);
}
function Bn(t9) {
  return t9.hasLeadingSpaces && (t9.prev ? t9.prev.sourceSpan.end.line < t9.sourceSpan.start.line : t9.parent.type === "root" || t9.parent.startSourceSpan.end.line < t9.sourceSpan.start.line);
}
function Ln(t9) {
  return t9.hasTrailingSpaces && (t9.next ? t9.next.sourceSpan.start.line > t9.sourceSpan.end.line : t9.parent.type === "root" || t9.parent.endSourceSpan && t9.parent.endSourceSpan.start.line > t9.sourceSpan.end.line);
}
function Fn(t9) {
  switch (t9.type) {
    case "ieConditionalComment":
    case "comment":
    case "directive":
      return true;
    case "element":
      return ["script", "select"].includes(t9.name);
  }
  return false;
}
function yt(t9) {
  return t9.lastChild ? yt(t9.lastChild) : t9;
}
function wi(t9) {
  var e2;
  return (e2 = t9.children) == null ? void 0 : e2.some((r2) => r2.type !== "text");
}
function Nn(t9) {
  if (t9) switch (t9) {
    case "module":
    case "text/javascript":
    case "text/babel":
    case "application/javascript":
      return "babel";
    case "application/x-typescript":
      return "typescript";
    case "text/markdown":
      return "markdown";
    case "text/html":
      return "html";
    case "text/x-handlebars-template":
      return "glimmer";
    default:
      if (t9.endsWith("json") || t9.endsWith("importmap") || t9 === "speculationrules") return "json";
  }
}
function bi(t9, e2) {
  let { name: r2, attrMap: n3 } = t9;
  if (r2 !== "script" || Object.prototype.hasOwnProperty.call(n3, "src")) return;
  let { type: s2, lang: i3 } = t9.attrMap;
  return !i3 && !s2 ? "babel" : Be(e2, { language: i3 }) ?? Nn(s2);
}
function Ti(t9, e2) {
  if (!wt(t9, e2)) return;
  let { attrMap: r2 } = t9;
  if (Object.prototype.hasOwnProperty.call(r2, "src")) return;
  let { type: n3, lang: s2 } = r2;
  return Be(e2, { language: s2 }) ?? Nn(n3);
}
function xi(t9, e2) {
  if (t9.name !== "style") return;
  let { lang: r2 } = t9.attrMap;
  return r2 ? Be(e2, { language: r2 }) : "css";
}
function gr(t9, e2) {
  return bi(t9, e2) ?? xi(t9, e2) ?? Ti(t9, e2);
}
function Xe(t9) {
  return t9 === "block" || t9 === "list-item" || t9.startsWith("table");
}
function ki(t9) {
  return !Xe(t9) && t9 !== "inline-block";
}
function Bi(t9) {
  return !Xe(t9) && t9 !== "inline-block";
}
function Li(t9) {
  return !Xe(t9);
}
function Fi(t9) {
  return !Xe(t9);
}
function Ni(t9) {
  return !Xe(t9) && t9 !== "inline-block";
}
function he(t9) {
  return In(t9).startsWith("pre");
}
function Pi(t9, e2) {
  let r2 = t9;
  for (; r2; ) {
    if (e2(r2)) return true;
    r2 = r2.parent;
  }
  return false;
}
function Pn(t9, e2) {
  var n3;
  if (fe(t9, e2)) return "block";
  if (((n3 = t9.prev) == null ? void 0 : n3.type) === "comment") {
    let s2 = t9.prev.value.match(/^\s*display:\s*([a-z]+)\s*$/u);
    if (s2) return s2[1];
  }
  let r2 = false;
  if (t9.type === "element" && t9.namespace === "svg") if (Pi(t9, (s2) => s2.fullName === "svg:foreignObject")) r2 = true;
  else return t9.name === "svg" ? "inline-block" : "block";
  switch (e2.htmlWhitespaceSensitivity) {
    case "strict":
      return "inline";
    case "ignore":
      return "block";
    default:
      return t9.type === "element" && (!t9.namespace || r2 || pe(t9)) && _n[t9.name] || Sn;
  }
}
function In(t9) {
  return t9.type === "element" && (!t9.namespace || pe(t9)) && An[t9.name] || En;
}
function Ii(t9) {
  let e2 = Number.POSITIVE_INFINITY;
  for (let r2 of t9.split(`
`)) {
    if (r2.length === 0) continue;
    let n3 = N.getLeadingWhitespaceCount(r2);
    if (n3 === 0) return 0;
    r2.length !== n3 && n3 < e2 && (e2 = n3);
  }
  return e2 === Number.POSITIVE_INFINITY ? 0 : e2;
}
function Cr(t9, e2 = Ii(t9)) {
  return e2 === 0 ? t9 : t9.split(`
`).map((r2) => r2.slice(e2)).join(`
`);
}
function Sr(t9) {
  return w(false, w(false, t9, "&apos;", "'"), "&quot;", '"');
}
function P(t9) {
  return Sr(t9.value);
}
var Ri = /* @__PURE__ */ new Set(["template", "style", "script"]);
function Je(t9, e2) {
  return fe(t9, e2) && !Ri.has(t9.fullName);
}
function fe(t9, e2) {
  return e2.parser === "vue" && t9.type === "element" && t9.parent.type === "root" && t9.fullName.toLowerCase() !== "html";
}
function wt(t9, e2) {
  return fe(t9, e2) && (Je(t9, e2) || t9.attrMap.lang && t9.attrMap.lang !== "html");
}
function Rn(t9) {
  let e2 = t9.fullName;
  return e2.charAt(0) === "#" || e2 === "slot-scope" || e2 === "v-slot" || e2.startsWith("v-slot:");
}
function On(t9, e2) {
  let r2 = t9.parent;
  if (!fe(r2, e2)) return false;
  let n3 = r2.fullName, s2 = t9.fullName;
  return n3 === "script" && s2 === "setup" || n3 === "style" && s2 === "vars";
}
function bt(t9, e2 = t9.value) {
  return t9.parent.isWhitespaceSensitive ? t9.parent.isIndentationSensitive ? B(e2) : B(Cr(mr(e2)), S) : q(E, N.split(e2));
}
function Tt(t9, e2) {
  return fe(t9, e2) && t9.name === "script";
}
var _r = /\{\{(.+?)\}\}/su;
async function $n(t9, e2) {
  let r2 = [];
  for (let [n3, s2] of t9.split(_r).entries()) if (n3 % 2 === 0) r2.push(B(s2));
  else try {
    r2.push(_(["{{", k([E, await T(s2, e2, { parser: "__ng_interpolation", __isInHtmlInterpolation: true })]), E, "}}"]));
  } catch {
    r2.push("{{", B(s2), "}}");
  }
  return r2;
}
function Er({ parser: t9 }) {
  return (e2, r2, n3) => T(P(n3.node), e2, { parser: t9 }, Y);
}
var Oi = Er({ parser: "__ng_action" });
var $i = Er({ parser: "__ng_binding" });
var Mi = Er({ parser: "__ng_directive" });
function qi(t9, e2) {
  if (e2.parser !== "angular") return;
  let { node: r2 } = t9, n3 = r2.fullName;
  if (n3.startsWith("(") && n3.endsWith(")") || n3.startsWith("on-")) return Oi;
  if (n3.startsWith("[") && n3.endsWith("]") || /^bind(?:on)?-/u.test(n3) || /^ng-(?:if|show|hide|class|style)$/u.test(n3)) return $i;
  if (n3.startsWith("*")) return Mi;
  let s2 = P(r2);
  if (/^i18n(?:-.+)?$/u.test(n3)) return () => ce(Et(bt(r2, s2.trim())), !s2.includes("@@"));
  if (_r.test(s2)) return (i3) => $n(s2, i3);
}
var Mn = qi;
function Hi(t9, e2) {
  let { node: r2 } = t9, n3 = P(r2);
  if (r2.fullName === "class" && !e2.parentParser && !n3.includes("{{")) return () => n3.trim().split(/\s+/u).join(" ");
}
var qn = Hi;
function Hn(t9) {
  return t9 === "	" || t9 === `
` || t9 === "\f" || t9 === "\r" || t9 === " ";
}
var Vi = /^[ \t\n\r\u000c]+/;
var Ui = /^[, \t\n\r\u000c]+/;
var Wi = /^[^ \t\n\r\u000c]+/;
var zi = /[,]+$/;
var Vn = /^\d+$/;
var Gi = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;
function Yi(t9) {
  let e2 = t9.length, r2, n3, s2, i3, a2, o3 = 0, u2;
  function p(C) {
    let A2, D = C.exec(t9.substring(o3));
    if (D) return [A2] = D, o3 += A2.length, A2;
  }
  let l2 = [];
  for (; ; ) {
    if (p(Ui), o3 >= e2) {
      if (l2.length === 0) throw new Error("Must contain one or more image candidate strings.");
      return l2;
    }
    u2 = o3, r2 = p(Wi), n3 = [], r2.slice(-1) === "," ? (r2 = r2.replace(zi, ""), d()) : f();
  }
  function f() {
    for (p(Vi), s2 = "", i3 = "in descriptor"; ; ) {
      if (a2 = t9.charAt(o3), i3 === "in descriptor") if (Hn(a2)) s2 && (n3.push(s2), s2 = "", i3 = "after descriptor");
      else if (a2 === ",") {
        o3 += 1, s2 && n3.push(s2), d();
        return;
      } else if (a2 === "(") s2 += a2, i3 = "in parens";
      else if (a2 === "") {
        s2 && n3.push(s2), d();
        return;
      } else s2 += a2;
      else if (i3 === "in parens") if (a2 === ")") s2 += a2, i3 = "in descriptor";
      else if (a2 === "") {
        n3.push(s2), d();
        return;
      } else s2 += a2;
      else if (i3 === "after descriptor" && !Hn(a2)) if (a2 === "") {
        d();
        return;
      } else i3 = "in descriptor", o3 -= 1;
      o3 += 1;
    }
  }
  function d() {
    let C = false, A2, D, R2, F, c3 = {}, g, y2, M2, x3, V3;
    for (F = 0; F < n3.length; F++) g = n3[F], y2 = g[g.length - 1], M2 = g.substring(0, g.length - 1), x3 = parseInt(M2, 10), V3 = parseFloat(M2), Vn.test(M2) && y2 === "w" ? ((A2 || D) && (C = true), x3 === 0 ? C = true : A2 = x3) : Gi.test(M2) && y2 === "x" ? ((A2 || D || R2) && (C = true), V3 < 0 ? C = true : D = V3) : Vn.test(M2) && y2 === "h" ? ((R2 || D) && (C = true), x3 === 0 ? C = true : R2 = x3) : C = true;
    if (!C) c3.source = { value: r2, startOffset: u2 }, A2 && (c3.width = { value: A2 }), D && (c3.density = { value: D }), R2 && (c3.height = { value: R2 }), l2.push(c3);
    else throw new Error(`Invalid srcset descriptor found in "${t9}" at "${g}".`);
  }
}
var Un = Yi;
function ji(t9) {
  if (t9.node.fullName === "srcset" && (t9.parent.fullName === "img" || t9.parent.fullName === "source")) return () => Qi(P(t9.node));
}
var Wn = { width: "w", height: "h", density: "x" };
var Ki = Object.keys(Wn);
function Qi(t9) {
  let e2 = Un(t9), r2 = Ki.filter((l2) => e2.some((f) => Object.prototype.hasOwnProperty.call(f, l2)));
  if (r2.length > 1) throw new Error("Mixed descriptor in srcset is not supported");
  let [n3] = r2, s2 = Wn[n3], i3 = e2.map((l2) => l2.source.value), a2 = Math.max(...i3.map((l2) => l2.length)), o3 = e2.map((l2) => l2[n3] ? String(l2[n3].value) : ""), u2 = o3.map((l2) => {
    let f = l2.indexOf(".");
    return f === -1 ? l2.length : f;
  }), p = Math.max(...u2);
  return ce(q([",", E], i3.map((l2, f) => {
    let d = [l2], C = o3[f];
    if (C) {
      let A2 = a2 - l2.length + 1, D = p - u2[f], R2 = " ".repeat(A2 + D);
      d.push(le(R2, " "), C + s2);
    }
    return d;
  })));
}
var zn = ji;
function Gn(t9, e2) {
  let { node: r2 } = t9, n3 = P(t9.node).trim();
  if (r2.fullName === "style" && !e2.parentParser && !n3.includes("{{")) return async (s2) => ce(await s2(n3, { parser: "css", __isHTMLStyleAttribute: true }));
}
var Ar = /* @__PURE__ */ new WeakMap();
function Xi(t9, e2) {
  let { root: r2 } = t9;
  return Ar.has(r2) || Ar.set(r2, r2.children.some((n3) => Tt(n3, e2) && ["ts", "typescript"].includes(n3.attrMap.lang))), Ar.get(r2);
}
var Le = Xi;
function Yn(t9, e2, r2) {
  let { node: n3 } = r2, s2 = P(n3);
  return T(`type T<${s2}> = any`, t9, { parser: "babel-ts", __isEmbeddedTypescriptGenericParameters: true }, Y);
}
function jn(t9, e2, { parseWithTs: r2 }) {
  return T(`function _(${t9}) {}`, e2, { parser: r2 ? "babel-ts" : "babel", __isVueBindings: true });
}
async function Kn(t9, e2, r2, n3) {
  let s2 = P(r2.node), { left: i3, operator: a2, right: o3 } = Ji(s2), u2 = Le(r2, n3);
  return [_(await T(`function _(${i3}) {}`, t9, { parser: u2 ? "babel-ts" : "babel", __isVueForBindingLeft: true })), " ", a2, " ", await T(o3, t9, { parser: u2 ? "__ts_expression" : "__js_expression" })];
}
function Ji(t9) {
  let e2 = /(.*?)\s+(in|of)\s+(.*)/su, r2 = /,([^,\]}]*)(?:,([^,\]}]*))?$/u, n3 = /^\(|\)$/gu, s2 = t9.match(e2);
  if (!s2) return;
  let i3 = {};
  if (i3.for = s2[3].trim(), !i3.for) return;
  let a2 = w(false, s2[1].trim(), n3, ""), o3 = a2.match(r2);
  o3 ? (i3.alias = a2.replace(r2, ""), i3.iterator1 = o3[1].trim(), o3[2] && (i3.iterator2 = o3[2].trim())) : i3.alias = a2;
  let u2 = [i3.alias, i3.iterator1, i3.iterator2];
  if (!u2.some((p, l2) => !p && (l2 === 0 || u2.slice(l2 + 1).some(Boolean)))) return { left: u2.filter(Boolean).join(","), operator: s2[2], right: i3.for };
}
function Zi(t9, e2) {
  if (e2.parser !== "vue") return;
  let { node: r2 } = t9, n3 = r2.fullName;
  if (n3 === "v-for") return Kn;
  if (n3 === "generic" && Tt(r2.parent, e2)) return Yn;
  let s2 = P(r2), i3 = Le(t9, e2);
  if (Rn(r2) || On(r2, e2)) return (a2) => jn(s2, a2, { parseWithTs: i3 });
  if (n3.startsWith("@") || n3.startsWith("v-on:")) return (a2) => ea(s2, a2, { parseWithTs: i3 });
  if (n3.startsWith(":") || n3.startsWith("v-bind:")) return (a2) => ta(s2, a2, { parseWithTs: i3 });
  if (n3.startsWith("v-")) return (a2) => Qn(s2, a2, { parseWithTs: i3 });
}
async function ea(t9, e2, { parseWithTs: r2 }) {
  var n3;
  try {
    return await Qn(t9, e2, { parseWithTs: r2 });
  } catch (s2) {
    if (((n3 = s2.cause) == null ? void 0 : n3.code) !== "BABEL_PARSER_SYNTAX_ERROR") throw s2;
  }
  return T(t9, e2, { parser: r2 ? "__vue_ts_event_binding" : "__vue_event_binding" }, Y);
}
function ta(t9, e2, { parseWithTs: r2 }) {
  return T(t9, e2, { parser: r2 ? "__vue_ts_expression" : "__vue_expression" }, Y);
}
function Qn(t9, e2, { parseWithTs: r2 }) {
  return T(t9, e2, { parser: r2 ? "__ts_expression" : "__js_expression" }, Y);
}
var Xn = Zi;
function ra(t9, e2) {
  let { node: r2 } = t9;
  if (r2.value) {
    if (/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/u.test(e2.originalText.slice(r2.valueSpan.start.offset, r2.valueSpan.end.offset)) || e2.parser === "lwc" && r2.value.startsWith("{") && r2.value.endsWith("}")) return [r2.rawName, "=", r2.value];
    for (let n3 of [zn, Gn, qn, Xn, Mn]) {
      let s2 = n3(t9, e2);
      if (s2) return na(s2);
    }
  }
}
function na(t9) {
  return async (e2, r2, n3, s2) => {
    let i3 = await t9(e2, r2, n3, s2);
    if (i3) return i3 = lr(i3, (a2) => typeof a2 == "string" ? w(false, a2, '"', "&quot;") : a2), [n3.node.rawName, '="', _(i3), '"'];
  };
}
var Jn = ra;
var Zn = new Proxy(() => {
}, { get: () => Zn });
var Dr = Zn;
function sa(t9) {
  return Array.isArray(t9) && t9.length > 0;
}
var Fe = sa;
function X(t9) {
  return t9.sourceSpan.start.offset;
}
function J(t9) {
  return t9.sourceSpan.end.offset;
}
function Ze(t9, e2) {
  return [t9.isSelfClosing ? "" : ia(t9, e2), de(t9, e2)];
}
function ia(t9, e2) {
  return t9.lastChild && Se(t9.lastChild) ? "" : [aa(t9, e2), xt(t9, e2)];
}
function de(t9, e2) {
  return (t9.next ? j(t9.next) : Ce(t9.parent)) ? "" : [ge(t9, e2), W(t9, e2)];
}
function aa(t9, e2) {
  return Ce(t9) ? ge(t9.lastChild, e2) : "";
}
function W(t9, e2) {
  return Se(t9) ? xt(t9.parent, e2) : et2(t9) ? kt(t9.next, e2) : "";
}
function xt(t9, e2) {
  if (Dr(!t9.isSelfClosing), ts(t9, e2)) return "";
  switch (t9.type) {
    case "ieConditionalComment":
      return "<!";
    case "element":
      if (t9.hasHtmComponentClosingTag) return "<//";
    default:
      return `</${t9.rawName}`;
  }
}
function ge(t9, e2) {
  if (ts(t9, e2)) return "";
  switch (t9.type) {
    case "ieConditionalComment":
    case "ieConditionalEndComment":
      return "[endif]-->";
    case "ieConditionalStartComment":
      return "]><!-->";
    case "interpolation":
      return "}}";
    case "angularIcuExpression":
      return "}";
    case "element":
      if (t9.isSelfClosing) return "/>";
    default:
      return ">";
  }
}
function ts(t9, e2) {
  return !t9.isSelfClosing && !t9.endSourceSpan && (me(t9) || Dt(t9.parent, e2));
}
function j(t9) {
  return t9.prev && t9.prev.type !== "docType" && t9.type !== "angularControlFlowBlock" && !O(t9.prev) && t9.isLeadingSpaceSensitive && !t9.hasLeadingSpaces;
}
function Ce(t9) {
  var e2;
  return ((e2 = t9.lastChild) == null ? void 0 : e2.isTrailingSpaceSensitive) && !t9.lastChild.hasTrailingSpaces && !O(yt(t9.lastChild)) && !he(t9);
}
function Se(t9) {
  return !t9.next && !t9.hasTrailingSpaces && t9.isTrailingSpaceSensitive && O(yt(t9));
}
function et2(t9) {
  return t9.next && !O(t9.next) && O(t9) && t9.isTrailingSpaceSensitive && !t9.hasTrailingSpaces;
}
function oa(t9) {
  let e2 = t9.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/su);
  return e2 ? e2[1] ? e2[1].split(/\s+/u) : true : false;
}
function tt(t9) {
  return !t9.prev && t9.isLeadingSpaceSensitive && !t9.hasLeadingSpaces;
}
function ua(t9, e2, r2) {
  var f;
  let { node: n3 } = t9;
  if (!Fe(n3.attrs)) return n3.isSelfClosing ? " " : "";
  let s2 = ((f = n3.prev) == null ? void 0 : f.type) === "comment" && oa(n3.prev.value), i3 = typeof s2 == "boolean" ? () => s2 : Array.isArray(s2) ? (d) => s2.includes(d.rawName) : () => false, a2 = t9.map(({ node: d }) => i3(d) ? B(e2.originalText.slice(X(d), J(d))) : r2(), "attrs"), o3 = n3.type === "element" && n3.fullName === "script" && n3.attrs.length === 1 && n3.attrs[0].fullName === "src" && n3.children.length === 0, p = e2.singleAttributePerLine && n3.attrs.length > 1 && !fe(n3, e2) ? S : E, l2 = [k([o3 ? " " : E, q(p, a2)])];
  return n3.firstChild && tt(n3.firstChild) || n3.isSelfClosing && Ce(n3.parent) || o3 ? l2.push(n3.isSelfClosing ? " " : "") : l2.push(e2.bracketSameLine ? n3.isSelfClosing ? " " : "" : n3.isSelfClosing ? E : v), l2;
}
function la(t9) {
  return t9.firstChild && tt(t9.firstChild) ? "" : Bt(t9);
}
function rt(t9, e2, r2) {
  let { node: n3 } = t9;
  return [_e(n3, e2), ua(t9, e2, r2), n3.isSelfClosing ? "" : la(n3)];
}
function _e(t9, e2) {
  return t9.prev && et2(t9.prev) ? "" : [z2(t9, e2), kt(t9, e2)];
}
function z2(t9, e2) {
  return tt(t9) ? Bt(t9.parent) : j(t9) ? ge(t9.prev, e2) : "";
}
var es = "<!doctype";
function kt(t9, e2) {
  switch (t9.type) {
    case "ieConditionalComment":
    case "ieConditionalStartComment":
      return `<!--[if ${t9.condition}`;
    case "ieConditionalEndComment":
      return "<!--<!";
    case "interpolation":
      return "{{";
    case "docType": {
      if (t9.value === "html") {
        let n3 = e2.filepath ?? "";
        if (/\.html?$/u.test(n3)) return es;
      }
      return e2.originalText.slice(X(t9), J(t9)).slice(0, es.length);
    }
    case "angularIcuExpression":
      return "{";
    case "element":
      if (t9.condition) return `<!--[if ${t9.condition}]><!--><${t9.rawName}`;
    default:
      return `<${t9.rawName}`;
  }
}
function Bt(t9) {
  switch (Dr(!t9.isSelfClosing), t9.type) {
    case "ieConditionalComment":
      return "]>";
    case "element":
      if (t9.condition) return "><!--<![endif]-->";
    default:
      return ">";
  }
}
function ca(t9, e2) {
  if (!t9.endSourceSpan) return "";
  let r2 = t9.startSourceSpan.end.offset;
  t9.firstChild && tt(t9.firstChild) && (r2 -= Bt(t9).length);
  let n3 = t9.endSourceSpan.start.offset;
  return t9.lastChild && Se(t9.lastChild) ? n3 += xt(t9, e2).length : Ce(t9) && (n3 -= ge(t9.lastChild, e2).length), e2.originalText.slice(r2, n3);
}
var Lt = ca;
var pa = /* @__PURE__ */ new Set(["if", "else if", "for", "switch", "case"]);
function ha(t9, e2) {
  let { node: r2 } = t9;
  switch (r2.type) {
    case "element":
      if (U(r2) || r2.type === "interpolation") return;
      if (!r2.isSelfClosing && wt(r2, e2)) {
        let n3 = gr(r2, e2);
        return n3 ? async (s2, i3) => {
          let a2 = Lt(r2, e2), o3 = /^\s*$/u.test(a2), u2 = "";
          return o3 || (u2 = await s2(mr(a2), { parser: n3, __embeddedInHtml: true }), o3 = u2 === ""), [z2(r2, e2), _(rt(t9, e2, i3)), o3 ? "" : S, u2, o3 ? "" : S, Ze(r2, e2), W(r2, e2)];
        } : void 0;
      }
      break;
    case "text":
      if (U(r2.parent)) {
        let n3 = gr(r2.parent, e2);
        if (n3) return async (s2) => {
          let i3 = n3 === "markdown" ? Cr(r2.value.replace(/^[^\S\n]*\n/u, "")) : r2.value, a2 = { parser: n3, __embeddedInHtml: true };
          if (e2.parser === "html" && n3 === "babel") {
            let o3 = "script", { attrMap: u2 } = r2.parent;
            u2 && (u2.type === "module" || u2.type === "text/babel" && u2["data-type"] === "module") && (o3 = "module"), a2.__babelSourceType = o3;
          }
          return [ne, z2(r2, e2), await s2(i3, a2), W(r2, e2)];
        };
      } else if (r2.parent.type === "interpolation") return async (n3) => {
        let s2 = { __isInHtmlInterpolation: true, __embeddedInHtml: true };
        return e2.parser === "angular" ? s2.parser = "__ng_interpolation" : e2.parser === "vue" ? s2.parser = Le(t9, e2) ? "__vue_ts_expression" : "__vue_expression" : s2.parser = "__js_expression", [k([E, await n3(r2.value, s2)]), r2.parent.next && j(r2.parent.next) ? " " : E];
      };
      break;
    case "attribute":
      return Jn(t9, e2);
    case "front-matter":
      return (n3) => dn(r2, n3);
    case "angularControlFlowBlockParameters":
      return pa.has(t9.parent.name) ? gn : void 0;
    case "angularLetDeclarationInitializer":
      return (n3) => T(r2.value, n3, { parser: "__ng_binding", __isInHtmlAttribute: false });
  }
}
var rs = ha;
var nt = null;
function st(t9) {
  if (nt !== null && typeof nt.property) {
    let e2 = nt;
    return nt = st.prototype = null, e2;
  }
  return nt = st.prototype = t9 ?? /* @__PURE__ */ Object.create(null), new st();
}
var ma = 10;
for (let t9 = 0; t9 <= ma; t9++) st();
function vr(t9) {
  return st(t9);
}
function fa(t9, e2 = "type") {
  vr(t9);
  function r2(n3) {
    let s2 = n3[e2], i3 = t9[s2];
    if (!Array.isArray(i3)) throw Object.assign(new Error(`Missing visitor keys for '${s2}'.`), { node: n3 });
    return i3;
  }
  return r2;
}
var ns = fa;
var da = { "front-matter": [], root: ["children"], element: ["attrs", "children"], ieConditionalComment: ["children"], ieConditionalStartComment: [], ieConditionalEndComment: [], interpolation: ["children"], text: ["children"], docType: [], comment: [], attribute: [], cdata: [], angularControlFlowBlock: ["children", "parameters"], angularControlFlowBlockParameters: ["children"], angularControlFlowBlockParameter: [], angularLetDeclaration: ["init"], angularLetDeclarationInitializer: [], angularIcuExpression: ["cases"], angularIcuCase: ["expression"] };
var ss = da;
var ga = ns(ss);
var is3 = ga;
function as(t9) {
  return /^\s*<!--\s*@(?:format|prettier)\s*-->/u.test(t9);
}
function os2(t9) {
  return `<!-- @format -->

` + t9;
}
var us = /* @__PURE__ */ new Map([["if", /* @__PURE__ */ new Set(["else if", "else"])], ["else if", /* @__PURE__ */ new Set(["else if", "else"])], ["for", /* @__PURE__ */ new Set(["empty"])], ["defer", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])], ["placeholder", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])], ["error", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])], ["loading", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])]]);
function ls(t9) {
  let e2 = J(t9);
  return t9.type === "element" && !t9.endSourceSpan && Fe(t9.children) ? Math.max(e2, ls(se(false, t9.children, -1))) : e2;
}
function it(t9, e2, r2) {
  let n3 = t9.node;
  if (me(n3)) {
    let s2 = ls(n3);
    return [z2(n3, e2), B(N.trimEnd(e2.originalText.slice(X(n3) + (n3.prev && et2(n3.prev) ? kt(n3).length : 0), s2 - (n3.next && j(n3.next) ? ge(n3, e2).length : 0)))), W(n3, e2)];
  }
  return r2();
}
function Ft(t9, e2) {
  return O(t9) && O(e2) ? t9.isTrailingSpaceSensitive ? t9.hasTrailingSpaces ? vt(e2) ? S : E : "" : vt(e2) ? S : v : et2(t9) && (me(e2) || e2.firstChild || e2.isSelfClosing || e2.type === "element" && e2.attrs.length > 0) || t9.type === "element" && t9.isSelfClosing && j(e2) ? "" : !e2.isLeadingSpaceSensitive || vt(e2) || j(e2) && t9.lastChild && Se(t9.lastChild) && t9.lastChild.lastChild && Se(t9.lastChild.lastChild) ? S : e2.hasLeadingSpaces ? E : v;
}
function Ne(t9, e2, r2) {
  let { node: n3 } = t9;
  if (dr(n3)) return [ne, ...t9.map((i3) => {
    let a2 = i3.node, o3 = a2.prev ? Ft(a2.prev, a2) : "";
    return [o3 ? [o3, Qe(a2.prev) ? S : ""] : "", it(i3, e2, r2)];
  }, "children")];
  let s2 = n3.children.map(() => Symbol(""));
  return t9.map((i3, a2) => {
    let o3 = i3.node;
    if (O(o3)) {
      if (o3.prev && O(o3.prev)) {
        let A2 = Ft(o3.prev, o3);
        if (A2) return Qe(o3.prev) ? [S, S, it(i3, e2, r2)] : [A2, it(i3, e2, r2)];
      }
      return it(i3, e2, r2);
    }
    let u2 = [], p = [], l2 = [], f = [], d = o3.prev ? Ft(o3.prev, o3) : "", C = o3.next ? Ft(o3, o3.next) : "";
    return d && (Qe(o3.prev) ? u2.push(S, S) : d === S ? u2.push(S) : O(o3.prev) ? p.push(d) : p.push(le("", v, { groupId: s2[a2 - 1] }))), C && (Qe(o3) ? O(o3.next) && f.push(S, S) : C === S ? O(o3.next) && f.push(S) : l2.push(C)), [...u2, _([...p, _([it(i3, e2, r2), ...l2], { id: s2[a2] })]), ...f];
  }, "children");
}
function cs(t9, e2, r2) {
  let { node: n3 } = t9, s2 = [];
  Ca(t9) && s2.push("} "), s2.push("@", n3.name), n3.parameters && s2.push(" (", _(r2("parameters")), ")"), s2.push(" {");
  let i3 = ps(n3);
  return n3.children.length > 0 ? (n3.firstChild.hasLeadingSpaces = true, n3.lastChild.hasTrailingSpaces = true, s2.push(k([S, Ne(t9, e2, r2)])), i3 && s2.push(S, "}")) : i3 && s2.push("}"), _(s2, { shouldBreak: true });
}
function ps(t9) {
  var e2, r2;
  return !(((e2 = t9.next) == null ? void 0 : e2.type) === "angularControlFlowBlock" && ((r2 = us.get(t9.name)) != null && r2.has(t9.next.name)));
}
function Ca(t9) {
  let { previous: e2 } = t9;
  return (e2 == null ? void 0 : e2.type) === "angularControlFlowBlock" && !me(e2) && !ps(e2);
}
function hs(t9, e2, r2) {
  return [k([v, q([";", E], t9.map(r2, "children"))]), v];
}
function ms(t9, e2, r2) {
  let { node: n3 } = t9;
  return [_e(n3, e2), _([n3.switchValue.trim(), ", ", n3.clause, n3.cases.length > 0 ? [",", k([E, q(E, t9.map(r2, "cases"))])] : "", v]), de(n3, e2)];
}
function fs3(t9, e2, r2) {
  let { node: n3 } = t9;
  return [n3.value, " {", _([k([v, t9.map(({ node: s2 }) => s2.type === "text" && !N.trim(s2.value) ? "" : r2(), "expression")]), v]), "}"];
}
function ds(t9, e2, r2) {
  let { node: n3 } = t9;
  if (Dt(n3, e2)) return [z2(n3, e2), _(rt(t9, e2, r2)), B(Lt(n3, e2)), ...Ze(n3, e2), W(n3, e2)];
  let s2 = n3.children.length === 1 && (n3.firstChild.type === "interpolation" || n3.firstChild.type === "angularIcuExpression") && n3.firstChild.isLeadingSpaceSensitive && !n3.firstChild.hasLeadingSpaces && n3.lastChild.isTrailingSpaceSensitive && !n3.lastChild.hasTrailingSpaces, i3 = Symbol("element-attr-group-id"), a2 = (l2) => _([_(rt(t9, e2, r2), { id: i3 }), l2, Ze(n3, e2)]), o3 = (l2) => s2 ? on2(l2, { groupId: i3 }) : (U(n3) || Je(n3, e2)) && n3.parent.type === "root" && e2.parser === "vue" && !e2.vueIndentScriptAndStyle ? l2 : k(l2), u2 = () => s2 ? le(v, "", { groupId: i3 }) : n3.firstChild.hasLeadingSpaces && n3.firstChild.isLeadingSpaceSensitive ? E : n3.firstChild.type === "text" && n3.isWhitespaceSensitive && n3.isIndentationSensitive ? sn(v) : v, p = () => (n3.next ? j(n3.next) : Ce(n3.parent)) ? n3.lastChild.hasTrailingSpaces && n3.lastChild.isTrailingSpaceSensitive ? " " : "" : s2 ? le(v, "", { groupId: i3 }) : n3.lastChild.hasTrailingSpaces && n3.lastChild.isTrailingSpaceSensitive ? E : (n3.lastChild.type === "comment" || n3.lastChild.type === "text" && n3.isWhitespaceSensitive && n3.isIndentationSensitive) && new RegExp(`\\n[\\t ]{${e2.tabWidth * (t9.ancestors.length - 1)}}$`, "u").test(n3.lastChild.value) ? "" : v;
  return n3.children.length === 0 ? a2(n3.hasDanglingSpaces && n3.isDanglingSpaceSensitive ? E : "") : a2([xn(n3) ? ne : "", o3([u2(), Ne(t9, e2, r2)]), p()]);
}
function at(t9) {
  return t9 >= 9 && t9 <= 32 || t9 == 160;
}
function Nt(t9) {
  return 48 <= t9 && t9 <= 57;
}
function ot(t9) {
  return t9 >= 97 && t9 <= 122 || t9 >= 65 && t9 <= 90;
}
function gs(t9) {
  return t9 >= 97 && t9 <= 102 || t9 >= 65 && t9 <= 70 || Nt(t9);
}
function Pt(t9) {
  return t9 === 10 || t9 === 13;
}
function yr(t9) {
  return 48 <= t9 && t9 <= 55;
}
function It(t9) {
  return t9 === 39 || t9 === 34 || t9 === 96;
}
var Sa = /-+([a-z0-9])/g;
function Ss(t9) {
  return t9.replace(Sa, (...e2) => e2[1].toUpperCase());
}
var ie = class t2 {
  constructor(e2, r2, n3, s2) {
    this.file = e2, this.offset = r2, this.line = n3, this.col = s2;
  }
  toString() {
    return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;
  }
  moveBy(e2) {
    let r2 = this.file.content, n3 = r2.length, s2 = this.offset, i3 = this.line, a2 = this.col;
    for (; s2 > 0 && e2 < 0; ) if (s2--, e2++, r2.charCodeAt(s2) == 10) {
      i3--;
      let u2 = r2.substring(0, s2 - 1).lastIndexOf(String.fromCharCode(10));
      a2 = u2 > 0 ? s2 - u2 : s2;
    } else a2--;
    for (; s2 < n3 && e2 > 0; ) {
      let o3 = r2.charCodeAt(s2);
      s2++, e2--, o3 == 10 ? (i3++, a2 = 0) : a2++;
    }
    return new t2(this.file, s2, i3, a2);
  }
  getContext(e2, r2) {
    let n3 = this.file.content, s2 = this.offset;
    if (s2 != null) {
      s2 > n3.length - 1 && (s2 = n3.length - 1);
      let i3 = s2, a2 = 0, o3 = 0;
      for (; a2 < e2 && s2 > 0 && (s2--, a2++, !(n3[s2] == `
` && ++o3 == r2)); ) ;
      for (a2 = 0, o3 = 0; a2 < e2 && i3 < n3.length - 1 && (i3++, a2++, !(n3[i3] == `
` && ++o3 == r2)); ) ;
      return { before: n3.substring(s2, this.offset), after: n3.substring(this.offset, i3 + 1) };
    }
    return null;
  }
};
var Ee = class {
  constructor(e2, r2) {
    this.content = e2, this.url = r2;
  }
};
var h2 = class {
  constructor(e2, r2, n3 = e2, s2 = null) {
    this.start = e2, this.end = r2, this.fullStart = n3, this.details = s2;
  }
  toString() {
    return this.start.file.content.substring(this.start.offset, this.end.offset);
  }
};
var Rt;
(function(t9) {
  t9[t9.WARNING = 0] = "WARNING", t9[t9.ERROR = 1] = "ERROR";
})(Rt || (Rt = {}));
var Ie = class {
  constructor(e2, r2, n3 = Rt.ERROR) {
    this.span = e2, this.msg = r2, this.level = n3;
  }
  contextualMessage() {
    let e2 = this.span.start.getContext(100, 3);
    return e2 ? `${this.msg} ("${e2.before}[${Rt[this.level]} ->]${e2.after}")` : this.msg;
  }
  toString() {
    let e2 = this.span.details ? `, ${this.span.details}` : "";
    return `${this.contextualMessage()}: ${this.span.start}${e2}`;
  }
};
var _a3 = [Aa, Da, ya, ba, Ta, Ba, xa, ka, La, wa];
function Ea(t9, e2) {
  for (let r2 of _a3) r2(t9, e2);
  return t9;
}
function Aa(t9) {
  t9.walk((e2) => {
    if (e2.type === "element" && e2.tagDefinition.ignoreFirstLf && e2.children.length > 0 && e2.children[0].type === "text" && e2.children[0].value[0] === `
`) {
      let r2 = e2.children[0];
      r2.value.length === 1 ? e2.removeChild(r2) : r2.value = r2.value.slice(1);
    }
  });
}
function Da(t9) {
  let e2 = (r2) => {
    var n3, s2;
    return r2.type === "element" && ((n3 = r2.prev) == null ? void 0 : n3.type) === "ieConditionalStartComment" && r2.prev.sourceSpan.end.offset === r2.startSourceSpan.start.offset && ((s2 = r2.firstChild) == null ? void 0 : s2.type) === "ieConditionalEndComment" && r2.firstChild.sourceSpan.start.offset === r2.startSourceSpan.end.offset;
  };
  t9.walk((r2) => {
    if (r2.children) for (let n3 = 0; n3 < r2.children.length; n3++) {
      let s2 = r2.children[n3];
      if (!e2(s2)) continue;
      let i3 = s2.prev, a2 = s2.firstChild;
      r2.removeChild(i3), n3--;
      let o3 = new h2(i3.sourceSpan.start, a2.sourceSpan.end), u2 = new h2(o3.start, s2.sourceSpan.end);
      s2.condition = i3.condition, s2.sourceSpan = u2, s2.startSourceSpan = o3, s2.removeChild(a2);
    }
  });
}
function va(t9, e2, r2) {
  t9.walk((n3) => {
    if (n3.children) for (let s2 = 0; s2 < n3.children.length; s2++) {
      let i3 = n3.children[s2];
      if (i3.type !== "text" && !e2(i3)) continue;
      i3.type !== "text" && (i3.type = "text", i3.value = r2(i3));
      let a2 = i3.prev;
      !a2 || a2.type !== "text" || (a2.value += i3.value, a2.sourceSpan = new h2(a2.sourceSpan.start, i3.sourceSpan.end), n3.removeChild(i3), s2--);
    }
  });
}
function ya(t9) {
  return va(t9, (e2) => e2.type === "cdata", (e2) => `<![CDATA[${e2.value}]]>`);
}
function wa(t9) {
  let e2 = (r2) => {
    var n3, s2;
    return r2.type === "element" && r2.attrs.length === 0 && r2.children.length === 1 && r2.firstChild.type === "text" && !N.hasWhitespaceCharacter(r2.children[0].value) && !r2.firstChild.hasLeadingSpaces && !r2.firstChild.hasTrailingSpaces && r2.isLeadingSpaceSensitive && !r2.hasLeadingSpaces && r2.isTrailingSpaceSensitive && !r2.hasTrailingSpaces && ((n3 = r2.prev) == null ? void 0 : n3.type) === "text" && ((s2 = r2.next) == null ? void 0 : s2.type) === "text";
  };
  t9.walk((r2) => {
    if (r2.children) for (let n3 = 0; n3 < r2.children.length; n3++) {
      let s2 = r2.children[n3];
      if (!e2(s2)) continue;
      let i3 = s2.prev, a2 = s2.next;
      i3.value += `<${s2.rawName}>` + s2.firstChild.value + `</${s2.rawName}>` + a2.value, i3.sourceSpan = new h2(i3.sourceSpan.start, a2.sourceSpan.end), i3.isTrailingSpaceSensitive = a2.isTrailingSpaceSensitive, i3.hasTrailingSpaces = a2.hasTrailingSpaces, r2.removeChild(s2), n3--, r2.removeChild(a2);
    }
  });
}
function ba(t9, e2) {
  if (e2.parser === "html") return;
  let r2 = /\{\{(.+?)\}\}/su;
  t9.walk((n3) => {
    if (vn(n3)) for (let s2 of n3.children) {
      if (s2.type !== "text") continue;
      let i3 = s2.sourceSpan.start, a2 = null, o3 = s2.value.split(r2);
      for (let u2 = 0; u2 < o3.length; u2++, i3 = a2) {
        let p = o3[u2];
        if (u2 % 2 === 0) {
          a2 = i3.moveBy(p.length), p.length > 0 && n3.insertChildBefore(s2, { type: "text", value: p, sourceSpan: new h2(i3, a2) });
          continue;
        }
        a2 = i3.moveBy(p.length + 4), n3.insertChildBefore(s2, { type: "interpolation", sourceSpan: new h2(i3, a2), children: p.length === 0 ? [] : [{ type: "text", value: p, sourceSpan: new h2(i3.moveBy(2), a2.moveBy(-2)) }] });
      }
      n3.removeChild(s2);
    }
  });
}
function Ta(t9) {
  t9.walk((e2) => {
    if (!e2.children) return;
    if (e2.children.length === 0 || e2.children.length === 1 && e2.children[0].type === "text" && N.trim(e2.children[0].value).length === 0) {
      e2.hasDanglingSpaces = e2.children.length > 0, e2.children = [];
      return;
    }
    let r2 = yn(e2), n3 = fr(e2);
    if (!r2) for (let s2 = 0; s2 < e2.children.length; s2++) {
      let i3 = e2.children[s2];
      if (i3.type !== "text") continue;
      let { leadingWhitespace: a2, text: o3, trailingWhitespace: u2 } = Dn(i3.value), p = i3.prev, l2 = i3.next;
      o3 ? (i3.value = o3, i3.sourceSpan = new h2(i3.sourceSpan.start.moveBy(a2.length), i3.sourceSpan.end.moveBy(-u2.length)), a2 && (p && (p.hasTrailingSpaces = true), i3.hasLeadingSpaces = true), u2 && (i3.hasTrailingSpaces = true, l2 && (l2.hasLeadingSpaces = true))) : (e2.removeChild(i3), s2--, (a2 || u2) && (p && (p.hasTrailingSpaces = true), l2 && (l2.hasLeadingSpaces = true)));
    }
    e2.isWhitespaceSensitive = r2, e2.isIndentationSensitive = n3;
  });
}
function xa(t9) {
  t9.walk((e2) => {
    e2.isSelfClosing = !e2.children || e2.type === "element" && (e2.tagDefinition.isVoid || e2.endSourceSpan && e2.startSourceSpan.start === e2.endSourceSpan.start && e2.startSourceSpan.end === e2.endSourceSpan.end);
  });
}
function ka(t9, e2) {
  t9.walk((r2) => {
    r2.type === "element" && (r2.hasHtmComponentClosingTag = r2.endSourceSpan && /^<\s*\/\s*\/\s*>$/u.test(e2.originalText.slice(r2.endSourceSpan.start.offset, r2.endSourceSpan.end.offset)));
  });
}
function Ba(t9, e2) {
  t9.walk((r2) => {
    r2.cssDisplay = Pn(r2, e2);
  });
}
function La(t9, e2) {
  t9.walk((r2) => {
    let { children: n3 } = r2;
    if (n3) {
      if (n3.length === 0) {
        r2.isDanglingSpaceSensitive = Tn(r2);
        return;
      }
      for (let s2 of n3) s2.isLeadingSpaceSensitive = wn(s2, e2), s2.isTrailingSpaceSensitive = bn(s2, e2);
      for (let s2 = 0; s2 < n3.length; s2++) {
        let i3 = n3[s2];
        i3.isLeadingSpaceSensitive = (s2 === 0 || i3.prev.isTrailingSpaceSensitive) && i3.isLeadingSpaceSensitive, i3.isTrailingSpaceSensitive = (s2 === n3.length - 1 || i3.next.isLeadingSpaceSensitive) && i3.isTrailingSpaceSensitive;
      }
    }
  });
}
var _s = Ea;
function Fa(t9, e2, r2) {
  let { node: n3 } = t9;
  switch (n3.type) {
    case "front-matter":
      return B(n3.raw);
    case "root":
      return e2.__onHtmlRoot && e2.__onHtmlRoot(n3), [_(Ne(t9, e2, r2)), S];
    case "element":
    case "ieConditionalComment":
      return ds(t9, e2, r2);
    case "angularControlFlowBlock":
      return cs(t9, e2, r2);
    case "angularControlFlowBlockParameters":
      return hs(t9, e2, r2);
    case "angularControlFlowBlockParameter":
      return N.trim(n3.expression);
    case "angularLetDeclaration":
      return _(["@let ", _([n3.id, " =", _(k([E, r2("init")]))]), ";"]);
    case "angularLetDeclarationInitializer":
      return n3.value;
    case "angularIcuExpression":
      return ms(t9, e2, r2);
    case "angularIcuCase":
      return fs3(t9, e2, r2);
    case "ieConditionalStartComment":
    case "ieConditionalEndComment":
      return [_e(n3), de(n3)];
    case "interpolation":
      return [_e(n3, e2), ...t9.map(r2, "children"), de(n3, e2)];
    case "text": {
      if (n3.parent.type === "interpolation") {
        let o3 = /\n[^\S\n]*$/u, u2 = o3.test(n3.value), p = u2 ? n3.value.replace(o3, "") : n3.value;
        return [B(p), u2 ? S : ""];
      }
      let s2 = z2(n3, e2), i3 = bt(n3), a2 = W(n3, e2);
      return i3[0] = [s2, i3[0]], i3.push([i3.pop(), a2]), Et(i3);
    }
    case "docType":
      return [_([_e(n3, e2), " ", w(false, n3.value.replace(/^html\b/iu, "html"), /\s+/gu, " ")]), de(n3, e2)];
    case "comment":
      return [z2(n3, e2), B(e2.originalText.slice(X(n3), J(n3))), W(n3, e2)];
    case "attribute": {
      if (n3.value === null) return n3.rawName;
      let s2 = Sr(n3.value), i3 = cn(s2, '"');
      return [n3.rawName, "=", i3, B(i3 === '"' ? w(false, s2, '"', "&quot;") : w(false, s2, "'", "&apos;")), i3];
    }
    case "cdata":
    default:
      throw new hn(n3, "HTML");
  }
}
var Na = { preprocess: _s, print: Fa, insertPragma: os2, massageAstNode: fn, embed: rs, getVisitorKeys: is3 };
var Es = Na;
var As = [{ linguistLanguageId: 146, name: "Angular", type: "markup", tmScope: "text.html.basic", aceMode: "html", codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", color: "#e34c26", aliases: ["xhtml"], extensions: [".component.html"], parsers: ["angular"], vscodeLanguageIds: ["html"], filenames: [] }, { linguistLanguageId: 146, name: "HTML", type: "markup", tmScope: "text.html.basic", aceMode: "html", codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", color: "#e34c26", aliases: ["xhtml"], extensions: [".html", ".hta", ".htm", ".html.hl", ".inc", ".xht", ".xhtml", ".mjml"], parsers: ["html"], vscodeLanguageIds: ["html"] }, { linguistLanguageId: 146, name: "Lightning Web Components", type: "markup", tmScope: "text.html.basic", aceMode: "html", codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", color: "#e34c26", aliases: ["xhtml"], extensions: [], parsers: ["lwc"], vscodeLanguageIds: ["html"], filenames: [] }, { linguistLanguageId: 391, name: "Vue", type: "markup", color: "#41b883", extensions: [".vue"], tmScope: "text.html.vue", aceMode: "html", parsers: ["vue"], vscodeLanguageIds: ["vue"] }];
var wr = { bracketSpacing: { category: "Common", type: "boolean", default: true, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, singleQuote: { category: "Common", type: "boolean", default: false, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: false, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: false, description: "Enforce single attribute per line in HTML, Vue and JSX." } };
var Ds = "HTML";
var Pa = { bracketSameLine: wr.bracketSameLine, htmlWhitespaceSensitivity: { category: Ds, type: "choice", default: "css", description: "How to handle whitespaces in HTML.", choices: [{ value: "css", description: "Respect the default value of CSS display property." }, { value: "strict", description: "Whitespaces are considered sensitive." }, { value: "ignore", description: "Whitespaces are considered insensitive." }] }, singleAttributePerLine: wr.singleAttributePerLine, vueIndentScriptAndStyle: { category: Ds, type: "boolean", default: false, description: "Indent script and style tags in Vue files." } };
var vs = Pa;
var Gr = {};
Jr(Gr, { angular: () => Fo, html: () => Lo, lwc: () => Po, vue: () => No });
var Cp = new RegExp(`(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`, "g");
var ys;
(function(t9) {
  t9[t9.Emulated = 0] = "Emulated", t9[t9.None = 2] = "None", t9[t9.ShadowDom = 3] = "ShadowDom";
})(ys || (ys = {}));
var ws2;
(function(t9) {
  t9[t9.OnPush = 0] = "OnPush", t9[t9.Default = 1] = "Default";
})(ws2 || (ws2 = {}));
var bs;
(function(t9) {
  t9[t9.None = 0] = "None", t9[t9.SignalBased = 1] = "SignalBased", t9[t9.HasDecoratorInputTransform = 2] = "HasDecoratorInputTransform";
})(bs || (bs = {}));
var br = { name: "custom-elements" };
var Tr = { name: "no-errors-schema" };
var Z;
(function(t9) {
  t9[t9.NONE = 0] = "NONE", t9[t9.HTML = 1] = "HTML", t9[t9.STYLE = 2] = "STYLE", t9[t9.SCRIPT = 3] = "SCRIPT", t9[t9.URL = 4] = "URL", t9[t9.RESOURCE_URL = 5] = "RESOURCE_URL";
})(Z || (Z = {}));
var Ts;
(function(t9) {
  t9[t9.Error = 0] = "Error", t9[t9.Warning = 1] = "Warning", t9[t9.Ignore = 2] = "Ignore";
})(Ts || (Ts = {}));
var I2;
(function(t9) {
  t9[t9.RAW_TEXT = 0] = "RAW_TEXT", t9[t9.ESCAPABLE_RAW_TEXT = 1] = "ESCAPABLE_RAW_TEXT", t9[t9.PARSABLE_DATA = 2] = "PARSABLE_DATA";
})(I2 || (I2 = {}));
function ut(t9, e2 = true) {
  if (t9[0] != ":") return [null, t9];
  let r2 = t9.indexOf(":", 1);
  if (r2 === -1) {
    if (e2) throw new Error(`Unsupported format "${t9}" expecting ":namespace:name"`);
    return [null, t9];
  }
  return [t9.slice(1, r2), t9.slice(r2 + 1)];
}
function xr(t9) {
  return ut(t9)[1] === "ng-container";
}
function kr(t9) {
  return ut(t9)[1] === "ng-content";
}
function Re(t9) {
  return t9 === null ? null : ut(t9)[0];
}
function Oe(t9, e2) {
  return t9 ? `:${t9}:${e2}` : e2;
}
var $t;
function Br() {
  return $t || ($t = {}, Ot(Z.HTML, ["iframe|srcdoc", "*|innerHTML", "*|outerHTML"]), Ot(Z.STYLE, ["*|style"]), Ot(Z.URL, ["*|formAction", "area|href", "area|ping", "audio|src", "a|href", "a|ping", "blockquote|cite", "body|background", "del|cite", "form|action", "img|src", "input|src", "ins|cite", "q|cite", "source|src", "track|src", "video|poster", "video|src"]), Ot(Z.RESOURCE_URL, ["applet|code", "applet|codebase", "base|href", "embed|src", "frame|src", "head|profile", "html|manifest", "iframe|src", "link|href", "media|src", "object|codebase", "object|data", "script|src"])), $t;
}
function Ot(t9, e2) {
  for (let r2 of e2) $t[r2.toLowerCase()] = t9;
}
var Mt = class {
};
var Ia = "boolean";
var Ra = "number";
var Oa = "string";
var $a = "object";
var Ma = ["[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored", "[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,!inert,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy", "abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy", "media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume", ":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex", ":svg:graphics^:svg:|", ":svg:animation^:svg:|*begin,*end,*repeat", ":svg:geometry^:svg:|", ":svg:componentTransferFunction^:svg:|", ":svg:gradient^:svg:|", ":svg:textContent^:svg:graphics|", ":svg:textPositioning^:svg:textContent|", "a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username", "area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username", "audio^media|", "br^[HTMLElement]|clear", "base^[HTMLElement]|href,target", "body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink", "button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value", "canvas^[HTMLElement]|#height,#width", "content^[HTMLElement]|select", "dl^[HTMLElement]|!compact", "data^[HTMLElement]|value", "datalist^[HTMLElement]|", "details^[HTMLElement]|!open", "dialog^[HTMLElement]|!open,returnValue", "dir^[HTMLElement]|!compact", "div^[HTMLElement]|align", "embed^[HTMLElement]|align,height,name,src,type,width", "fieldset^[HTMLElement]|!disabled,name", "font^[HTMLElement]|color,face,size", "form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target", "frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src", "frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows", "hr^[HTMLElement]|align,color,!noShade,size,width", "head^[HTMLElement]|", "h1,h2,h3,h4,h5,h6^[HTMLElement]|align", "html^[HTMLElement]|version", "iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width", "img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width", "input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width", "li^[HTMLElement]|type,#value", "label^[HTMLElement]|htmlFor", "legend^[HTMLElement]|align", "link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type", "map^[HTMLElement]|name", "marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width", "menu^[HTMLElement]|!compact", "meta^[HTMLElement]|content,httpEquiv,media,name,scheme", "meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value", "ins,del^[HTMLElement]|cite,dateTime", "ol^[HTMLElement]|!compact,!reversed,#start,type", "object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width", "optgroup^[HTMLElement]|!disabled,label", "option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value", "output^[HTMLElement]|defaultValue,%htmlFor,name,value", "p^[HTMLElement]|align", "param^[HTMLElement]|name,type,value,valueType", "picture^[HTMLElement]|", "pre^[HTMLElement]|#width", "progress^[HTMLElement]|#max,#value", "q,blockquote,cite^[HTMLElement]|", "script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type", "select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value", "slot^[HTMLElement]|name", "source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width", "span^[HTMLElement]|", "style^[HTMLElement]|!disabled,media,type", "caption^[HTMLElement]|align", "th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width", "col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width", "table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width", "tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign", "tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign", "template^[HTMLElement]|", "textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap", "time^[HTMLElement]|dateTime", "title^[HTMLElement]|text", "track^[HTMLElement]|!default,kind,label,src,srclang", "ul^[HTMLElement]|!compact,type", "unknown^[HTMLElement]|", "video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width", ":svg:a^:svg:graphics|", ":svg:animate^:svg:animation|", ":svg:animateMotion^:svg:animation|", ":svg:animateTransform^:svg:animation|", ":svg:circle^:svg:geometry|", ":svg:clipPath^:svg:graphics|", ":svg:defs^:svg:graphics|", ":svg:desc^:svg:|", ":svg:discard^:svg:|", ":svg:ellipse^:svg:geometry|", ":svg:feBlend^:svg:|", ":svg:feColorMatrix^:svg:|", ":svg:feComponentTransfer^:svg:|", ":svg:feComposite^:svg:|", ":svg:feConvolveMatrix^:svg:|", ":svg:feDiffuseLighting^:svg:|", ":svg:feDisplacementMap^:svg:|", ":svg:feDistantLight^:svg:|", ":svg:feDropShadow^:svg:|", ":svg:feFlood^:svg:|", ":svg:feFuncA^:svg:componentTransferFunction|", ":svg:feFuncB^:svg:componentTransferFunction|", ":svg:feFuncG^:svg:componentTransferFunction|", ":svg:feFuncR^:svg:componentTransferFunction|", ":svg:feGaussianBlur^:svg:|", ":svg:feImage^:svg:|", ":svg:feMerge^:svg:|", ":svg:feMergeNode^:svg:|", ":svg:feMorphology^:svg:|", ":svg:feOffset^:svg:|", ":svg:fePointLight^:svg:|", ":svg:feSpecularLighting^:svg:|", ":svg:feSpotLight^:svg:|", ":svg:feTile^:svg:|", ":svg:feTurbulence^:svg:|", ":svg:filter^:svg:|", ":svg:foreignObject^:svg:graphics|", ":svg:g^:svg:graphics|", ":svg:image^:svg:graphics|decoding", ":svg:line^:svg:geometry|", ":svg:linearGradient^:svg:gradient|", ":svg:mpath^:svg:|", ":svg:marker^:svg:|", ":svg:mask^:svg:|", ":svg:metadata^:svg:|", ":svg:path^:svg:geometry|", ":svg:pattern^:svg:|", ":svg:polygon^:svg:geometry|", ":svg:polyline^:svg:geometry|", ":svg:radialGradient^:svg:gradient|", ":svg:rect^:svg:geometry|", ":svg:svg^:svg:graphics|#currentScale,#zoomAndPan", ":svg:script^:svg:|type", ":svg:set^:svg:animation|", ":svg:stop^:svg:|", ":svg:style^:svg:|!disabled,media,title,type", ":svg:switch^:svg:graphics|", ":svg:symbol^:svg:|", ":svg:tspan^:svg:textPositioning|", ":svg:text^:svg:textPositioning|", ":svg:textPath^:svg:textContent|", ":svg:title^:svg:|", ":svg:use^:svg:graphics|", ":svg:view^:svg:|#zoomAndPan", "data^[HTMLElement]|value", "keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name", "menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default", "summary^[HTMLElement]|", "time^[HTMLElement]|dateTime", ":svg:cursor^:svg:|", ":math:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforeinput,*beforematch,*beforetoggle,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contentvisibilityautostatechange,*contextlost,*contextmenu,*contextrestored,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*scrollend,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex", ":math:math^:math:|", ":math:maction^:math:|", ":math:menclose^:math:|", ":math:merror^:math:|", ":math:mfenced^:math:|", ":math:mfrac^:math:|", ":math:mi^:math:|", ":math:mmultiscripts^:math:|", ":math:mn^:math:|", ":math:mo^:math:|", ":math:mover^:math:|", ":math:mpadded^:math:|", ":math:mphantom^:math:|", ":math:mroot^:math:|", ":math:mrow^:math:|", ":math:ms^:math:|", ":math:mspace^:math:|", ":math:msqrt^:math:|", ":math:mstyle^:math:|", ":math:msub^:math:|", ":math:msubsup^:math:|", ":math:msup^:math:|", ":math:mtable^:math:|", ":math:mtd^:math:|", ":math:mtext^:math:|", ":math:mtr^:math:|", ":math:munder^:math:|", ":math:munderover^:math:|", ":math:semantics^:math:|"];
var xs = new Map(Object.entries({ class: "className", for: "htmlFor", formaction: "formAction", innerHtml: "innerHTML", readonly: "readOnly", tabindex: "tabIndex" }));
var qa = Array.from(xs).reduce((t9, [e2, r2]) => (t9.set(e2, r2), t9), /* @__PURE__ */ new Map());
var qt = class extends Mt {
  constructor() {
    super(), this._schema = /* @__PURE__ */ new Map(), this._eventSchema = /* @__PURE__ */ new Map(), Ma.forEach((e2) => {
      let r2 = /* @__PURE__ */ new Map(), n3 = /* @__PURE__ */ new Set(), [s2, i3] = e2.split("|"), a2 = i3.split(","), [o3, u2] = s2.split("^");
      o3.split(",").forEach((l2) => {
        this._schema.set(l2.toLowerCase(), r2), this._eventSchema.set(l2.toLowerCase(), n3);
      });
      let p = u2 && this._schema.get(u2.toLowerCase());
      if (p) {
        for (let [l2, f] of p) r2.set(l2, f);
        for (let l2 of this._eventSchema.get(u2.toLowerCase())) n3.add(l2);
      }
      a2.forEach((l2) => {
        if (l2.length > 0) switch (l2[0]) {
          case "*":
            n3.add(l2.substring(1));
            break;
          case "!":
            r2.set(l2.substring(1), Ia);
            break;
          case "#":
            r2.set(l2.substring(1), Ra);
            break;
          case "%":
            r2.set(l2.substring(1), $a);
            break;
          default:
            r2.set(l2, Oa);
        }
      });
    });
  }
  hasProperty(e2, r2, n3) {
    if (n3.some((i3) => i3.name === Tr.name)) return true;
    if (e2.indexOf("-") > -1) {
      if (xr(e2) || kr(e2)) return false;
      if (n3.some((i3) => i3.name === br.name)) return true;
    }
    return (this._schema.get(e2.toLowerCase()) || this._schema.get("unknown")).has(r2);
  }
  hasElement(e2, r2) {
    return r2.some((n3) => n3.name === Tr.name) || e2.indexOf("-") > -1 && (xr(e2) || kr(e2) || r2.some((n3) => n3.name === br.name)) ? true : this._schema.has(e2.toLowerCase());
  }
  securityContext(e2, r2, n3) {
    n3 && (r2 = this.getMappedPropName(r2)), e2 = e2.toLowerCase(), r2 = r2.toLowerCase();
    let s2 = Br()[e2 + "|" + r2];
    return s2 || (s2 = Br()["*|" + r2], s2 || Z.NONE);
  }
  getMappedPropName(e2) {
    return xs.get(e2) ?? e2;
  }
  getDefaultComponentElementName() {
    return "ng-component";
  }
  validateProperty(e2) {
    return e2.toLowerCase().startsWith("on") ? { error: true, msg: `Binding to event property '${e2}' is disallowed for security reasons, please use (${e2.slice(2)})=...
If '${e2}' is a directive input, make sure the directive is imported by the current module.` } : { error: false };
  }
  validateAttribute(e2) {
    return e2.toLowerCase().startsWith("on") ? { error: true, msg: `Binding to event attribute '${e2}' is disallowed for security reasons, please use (${e2.slice(2)})=...` } : { error: false };
  }
  allKnownElementNames() {
    return Array.from(this._schema.keys());
  }
  allKnownAttributesOfElement(e2) {
    let r2 = this._schema.get(e2.toLowerCase()) || this._schema.get("unknown");
    return Array.from(r2.keys()).map((n3) => qa.get(n3) ?? n3);
  }
  allKnownEventsOfElement(e2) {
    return Array.from(this._eventSchema.get(e2.toLowerCase()) ?? []);
  }
  normalizeAnimationStyleProperty(e2) {
    return Ss(e2);
  }
  normalizeAnimationStyleValue(e2, r2, n3) {
    let s2 = "", i3 = n3.toString().trim(), a2 = null;
    if (Ha(e2) && n3 !== 0 && n3 !== "0") if (typeof n3 == "number") s2 = "px";
    else {
      let o3 = n3.match(/^[+-]?[\d\.]+([a-z]*)$/);
      o3 && o3[1].length == 0 && (a2 = `Please provide a CSS unit value for ${r2}:${n3}`);
    }
    return { error: a2, value: i3 + s2 };
  }
};
function Ha(t9) {
  switch (t9) {
    case "width":
    case "height":
    case "minWidth":
    case "minHeight":
    case "maxWidth":
    case "maxHeight":
    case "left":
    case "top":
    case "bottom":
    case "right":
    case "fontSize":
    case "outlineWidth":
    case "outlineOffset":
    case "paddingTop":
    case "paddingLeft":
    case "paddingBottom":
    case "paddingRight":
    case "marginTop":
    case "marginLeft":
    case "marginBottom":
    case "marginRight":
    case "borderRadius":
    case "borderWidth":
    case "borderTopWidth":
    case "borderLeftWidth":
    case "borderRightWidth":
    case "borderBottomWidth":
    case "textIndent":
      return true;
    default:
      return false;
  }
}
var m = class {
  constructor({ closedByChildren: e2, implicitNamespacePrefix: r2, contentType: n3 = I2.PARSABLE_DATA, closedByParent: s2 = false, isVoid: i3 = false, ignoreFirstLf: a2 = false, preventNamespaceInheritance: o3 = false, canSelfClose: u2 = false } = {}) {
    this.closedByChildren = {}, this.closedByParent = false, e2 && e2.length > 0 && e2.forEach((p) => this.closedByChildren[p] = true), this.isVoid = i3, this.closedByParent = s2 || i3, this.implicitNamespacePrefix = r2 || null, this.contentType = n3, this.ignoreFirstLf = a2, this.preventNamespaceInheritance = o3, this.canSelfClose = u2 ?? i3;
  }
  isClosedByChild(e2) {
    return this.isVoid || e2.toLowerCase() in this.closedByChildren;
  }
  getContentType(e2) {
    return typeof this.contentType == "object" ? (e2 === void 0 ? void 0 : this.contentType[e2]) ?? this.contentType.default : this.contentType;
  }
};
var ks;
var lt;
function $e(t9) {
  return lt || (ks = new m({ canSelfClose: true }), lt = Object.assign(/* @__PURE__ */ Object.create(null), { base: new m({ isVoid: true }), meta: new m({ isVoid: true }), area: new m({ isVoid: true }), embed: new m({ isVoid: true }), link: new m({ isVoid: true }), img: new m({ isVoid: true }), input: new m({ isVoid: true }), param: new m({ isVoid: true }), hr: new m({ isVoid: true }), br: new m({ isVoid: true }), source: new m({ isVoid: true }), track: new m({ isVoid: true }), wbr: new m({ isVoid: true }), p: new m({ closedByChildren: ["address", "article", "aside", "blockquote", "div", "dl", "fieldset", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "main", "nav", "ol", "p", "pre", "section", "table", "ul"], closedByParent: true }), thead: new m({ closedByChildren: ["tbody", "tfoot"] }), tbody: new m({ closedByChildren: ["tbody", "tfoot"], closedByParent: true }), tfoot: new m({ closedByChildren: ["tbody"], closedByParent: true }), tr: new m({ closedByChildren: ["tr"], closedByParent: true }), td: new m({ closedByChildren: ["td", "th"], closedByParent: true }), th: new m({ closedByChildren: ["td", "th"], closedByParent: true }), col: new m({ isVoid: true }), svg: new m({ implicitNamespacePrefix: "svg" }), foreignObject: new m({ implicitNamespacePrefix: "svg", preventNamespaceInheritance: true }), math: new m({ implicitNamespacePrefix: "math" }), li: new m({ closedByChildren: ["li"], closedByParent: true }), dt: new m({ closedByChildren: ["dt", "dd"] }), dd: new m({ closedByChildren: ["dt", "dd"], closedByParent: true }), rb: new m({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: true }), rt: new m({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: true }), rtc: new m({ closedByChildren: ["rb", "rtc", "rp"], closedByParent: true }), rp: new m({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: true }), optgroup: new m({ closedByChildren: ["optgroup"], closedByParent: true }), option: new m({ closedByChildren: ["option", "optgroup"], closedByParent: true }), pre: new m({ ignoreFirstLf: true }), listing: new m({ ignoreFirstLf: true }), style: new m({ contentType: I2.RAW_TEXT }), script: new m({ contentType: I2.RAW_TEXT }), title: new m({ contentType: { default: I2.ESCAPABLE_RAW_TEXT, svg: I2.PARSABLE_DATA } }), textarea: new m({ contentType: I2.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }) }), new qt().allKnownElementNames().forEach((e2) => {
    !lt[e2] && Re(e2) === null && (lt[e2] = new m({ canSelfClose: false }));
  })), lt[t9] ?? ks;
}
var ae = class {
  constructor(e2, r2) {
    this.sourceSpan = e2, this.i18n = r2;
  }
};
var Ht = class extends ae {
  constructor(e2, r2, n3, s2) {
    super(r2, s2), this.value = e2, this.tokens = n3, this.type = "text";
  }
  visit(e2, r2) {
    return e2.visitText(this, r2);
  }
};
var Vt = class extends ae {
  constructor(e2, r2, n3, s2) {
    super(r2, s2), this.value = e2, this.tokens = n3, this.type = "cdata";
  }
  visit(e2, r2) {
    return e2.visitCdata(this, r2);
  }
};
var Ut = class extends ae {
  constructor(e2, r2, n3, s2, i3, a2) {
    super(s2, a2), this.switchValue = e2, this.type = r2, this.cases = n3, this.switchValueSourceSpan = i3;
  }
  visit(e2, r2) {
    return e2.visitExpansion(this, r2);
  }
};
var Wt = class {
  constructor(e2, r2, n3, s2, i3) {
    this.value = e2, this.expression = r2, this.sourceSpan = n3, this.valueSourceSpan = s2, this.expSourceSpan = i3, this.type = "expansionCase";
  }
  visit(e2, r2) {
    return e2.visitExpansionCase(this, r2);
  }
};
var zt = class extends ae {
  constructor(e2, r2, n3, s2, i3, a2, o3) {
    super(n3, o3), this.name = e2, this.value = r2, this.keySpan = s2, this.valueSpan = i3, this.valueTokens = a2, this.type = "attribute";
  }
  visit(e2, r2) {
    return e2.visitAttribute(this, r2);
  }
  get nameSpan() {
    return this.keySpan;
  }
};
var G = class extends ae {
  constructor(e2, r2, n3, s2, i3, a2 = null, o3 = null, u2) {
    super(s2, u2), this.name = e2, this.attrs = r2, this.children = n3, this.startSourceSpan = i3, this.endSourceSpan = a2, this.nameSpan = o3, this.type = "element";
  }
  visit(e2, r2) {
    return e2.visitElement(this, r2);
  }
};
var Gt = class {
  constructor(e2, r2) {
    this.value = e2, this.sourceSpan = r2, this.type = "comment";
  }
  visit(e2, r2) {
    return e2.visitComment(this, r2);
  }
};
var Yt = class {
  constructor(e2, r2) {
    this.value = e2, this.sourceSpan = r2, this.type = "docType";
  }
  visit(e2, r2) {
    return e2.visitDocType(this, r2);
  }
};
var ee = class extends ae {
  constructor(e2, r2, n3, s2, i3, a2, o3 = null, u2) {
    super(s2, u2), this.name = e2, this.parameters = r2, this.children = n3, this.nameSpan = i3, this.startSourceSpan = a2, this.endSourceSpan = o3, this.type = "block";
  }
  visit(e2, r2) {
    return e2.visitBlock(this, r2);
  }
};
var ct = class {
  constructor(e2, r2) {
    this.expression = e2, this.sourceSpan = r2, this.type = "blockParameter", this.startSourceSpan = null, this.endSourceSpan = null;
  }
  visit(e2, r2) {
    return e2.visitBlockParameter(this, r2);
  }
};
var pt = class {
  constructor(e2, r2, n3, s2, i3) {
    this.name = e2, this.value = r2, this.sourceSpan = n3, this.nameSpan = s2, this.valueSpan = i3, this.type = "letDeclaration", this.startSourceSpan = null, this.endSourceSpan = null;
  }
  visit(e2, r2) {
    return e2.visitLetDeclaration(this, r2);
  }
};
function jt(t9, e2, r2 = null) {
  let n3 = [], s2 = t9.visit ? (i3) => t9.visit(i3, r2) || i3.visit(t9, r2) : (i3) => i3.visit(t9, r2);
  return e2.forEach((i3) => {
    let a2 = s2(i3);
    a2 && n3.push(a2);
  }), n3;
}
var ht = class {
  constructor() {
  }
  visitElement(e2, r2) {
    this.visitChildren(r2, (n3) => {
      n3(e2.attrs), n3(e2.children);
    });
  }
  visitAttribute(e2, r2) {
  }
  visitText(e2, r2) {
  }
  visitCdata(e2, r2) {
  }
  visitComment(e2, r2) {
  }
  visitDocType(e2, r2) {
  }
  visitExpansion(e2, r2) {
    return this.visitChildren(r2, (n3) => {
      n3(e2.cases);
    });
  }
  visitExpansionCase(e2, r2) {
  }
  visitBlock(e2, r2) {
    this.visitChildren(r2, (n3) => {
      n3(e2.parameters), n3(e2.children);
    });
  }
  visitBlockParameter(e2, r2) {
  }
  visitLetDeclaration(e2, r2) {
  }
  visitChildren(e2, r2) {
    let n3 = [], s2 = this;
    function i3(a2) {
      a2 && n3.push(jt(s2, a2, e2));
    }
    return r2(i3), Array.prototype.concat.apply([], n3);
  }
};
var Me = { AElig: "\xC6", AMP: "&", amp: "&", Aacute: "\xC1", Abreve: "\u0102", Acirc: "\xC2", Acy: "\u0410", Afr: "\u{1D504}", Agrave: "\xC0", Alpha: "\u0391", Amacr: "\u0100", And: "\u2A53", Aogon: "\u0104", Aopf: "\u{1D538}", ApplyFunction: "\u2061", af: "\u2061", Aring: "\xC5", angst: "\xC5", Ascr: "\u{1D49C}", Assign: "\u2254", colone: "\u2254", coloneq: "\u2254", Atilde: "\xC3", Auml: "\xC4", Backslash: "\u2216", setminus: "\u2216", setmn: "\u2216", smallsetminus: "\u2216", ssetmn: "\u2216", Barv: "\u2AE7", Barwed: "\u2306", doublebarwedge: "\u2306", Bcy: "\u0411", Because: "\u2235", becaus: "\u2235", because: "\u2235", Bernoullis: "\u212C", Bscr: "\u212C", bernou: "\u212C", Beta: "\u0392", Bfr: "\u{1D505}", Bopf: "\u{1D539}", Breve: "\u02D8", breve: "\u02D8", Bumpeq: "\u224E", HumpDownHump: "\u224E", bump: "\u224E", CHcy: "\u0427", COPY: "\xA9", copy: "\xA9", Cacute: "\u0106", Cap: "\u22D2", CapitalDifferentialD: "\u2145", DD: "\u2145", Cayleys: "\u212D", Cfr: "\u212D", Ccaron: "\u010C", Ccedil: "\xC7", Ccirc: "\u0108", Cconint: "\u2230", Cdot: "\u010A", Cedilla: "\xB8", cedil: "\xB8", CenterDot: "\xB7", centerdot: "\xB7", middot: "\xB7", Chi: "\u03A7", CircleDot: "\u2299", odot: "\u2299", CircleMinus: "\u2296", ominus: "\u2296", CirclePlus: "\u2295", oplus: "\u2295", CircleTimes: "\u2297", otimes: "\u2297", ClockwiseContourIntegral: "\u2232", cwconint: "\u2232", CloseCurlyDoubleQuote: "\u201D", rdquo: "\u201D", rdquor: "\u201D", CloseCurlyQuote: "\u2019", rsquo: "\u2019", rsquor: "\u2019", Colon: "\u2237", Proportion: "\u2237", Colone: "\u2A74", Congruent: "\u2261", equiv: "\u2261", Conint: "\u222F", DoubleContourIntegral: "\u222F", ContourIntegral: "\u222E", conint: "\u222E", oint: "\u222E", Copf: "\u2102", complexes: "\u2102", Coproduct: "\u2210", coprod: "\u2210", CounterClockwiseContourIntegral: "\u2233", awconint: "\u2233", Cross: "\u2A2F", Cscr: "\u{1D49E}", Cup: "\u22D3", CupCap: "\u224D", asympeq: "\u224D", DDotrahd: "\u2911", DJcy: "\u0402", DScy: "\u0405", DZcy: "\u040F", Dagger: "\u2021", ddagger: "\u2021", Darr: "\u21A1", Dashv: "\u2AE4", DoubleLeftTee: "\u2AE4", Dcaron: "\u010E", Dcy: "\u0414", Del: "\u2207", nabla: "\u2207", Delta: "\u0394", Dfr: "\u{1D507}", DiacriticalAcute: "\xB4", acute: "\xB4", DiacriticalDot: "\u02D9", dot: "\u02D9", DiacriticalDoubleAcute: "\u02DD", dblac: "\u02DD", DiacriticalGrave: "`", grave: "`", DiacriticalTilde: "\u02DC", tilde: "\u02DC", Diamond: "\u22C4", diam: "\u22C4", diamond: "\u22C4", DifferentialD: "\u2146", dd: "\u2146", Dopf: "\u{1D53B}", Dot: "\xA8", DoubleDot: "\xA8", die: "\xA8", uml: "\xA8", DotDot: "\u20DC", DotEqual: "\u2250", doteq: "\u2250", esdot: "\u2250", DoubleDownArrow: "\u21D3", Downarrow: "\u21D3", dArr: "\u21D3", DoubleLeftArrow: "\u21D0", Leftarrow: "\u21D0", lArr: "\u21D0", DoubleLeftRightArrow: "\u21D4", Leftrightarrow: "\u21D4", hArr: "\u21D4", iff: "\u21D4", DoubleLongLeftArrow: "\u27F8", Longleftarrow: "\u27F8", xlArr: "\u27F8", DoubleLongLeftRightArrow: "\u27FA", Longleftrightarrow: "\u27FA", xhArr: "\u27FA", DoubleLongRightArrow: "\u27F9", Longrightarrow: "\u27F9", xrArr: "\u27F9", DoubleRightArrow: "\u21D2", Implies: "\u21D2", Rightarrow: "\u21D2", rArr: "\u21D2", DoubleRightTee: "\u22A8", vDash: "\u22A8", DoubleUpArrow: "\u21D1", Uparrow: "\u21D1", uArr: "\u21D1", DoubleUpDownArrow: "\u21D5", Updownarrow: "\u21D5", vArr: "\u21D5", DoubleVerticalBar: "\u2225", par: "\u2225", parallel: "\u2225", shortparallel: "\u2225", spar: "\u2225", DownArrow: "\u2193", ShortDownArrow: "\u2193", darr: "\u2193", downarrow: "\u2193", DownArrowBar: "\u2913", DownArrowUpArrow: "\u21F5", duarr: "\u21F5", DownBreve: "\u0311", DownLeftRightVector: "\u2950", DownLeftTeeVector: "\u295E", DownLeftVector: "\u21BD", leftharpoondown: "\u21BD", lhard: "\u21BD", DownLeftVectorBar: "\u2956", DownRightTeeVector: "\u295F", DownRightVector: "\u21C1", rhard: "\u21C1", rightharpoondown: "\u21C1", DownRightVectorBar: "\u2957", DownTee: "\u22A4", top: "\u22A4", DownTeeArrow: "\u21A7", mapstodown: "\u21A7", Dscr: "\u{1D49F}", Dstrok: "\u0110", ENG: "\u014A", ETH: "\xD0", Eacute: "\xC9", Ecaron: "\u011A", Ecirc: "\xCA", Ecy: "\u042D", Edot: "\u0116", Efr: "\u{1D508}", Egrave: "\xC8", Element: "\u2208", in: "\u2208", isin: "\u2208", isinv: "\u2208", Emacr: "\u0112", EmptySmallSquare: "\u25FB", EmptyVerySmallSquare: "\u25AB", Eogon: "\u0118", Eopf: "\u{1D53C}", Epsilon: "\u0395", Equal: "\u2A75", EqualTilde: "\u2242", eqsim: "\u2242", esim: "\u2242", Equilibrium: "\u21CC", rightleftharpoons: "\u21CC", rlhar: "\u21CC", Escr: "\u2130", expectation: "\u2130", Esim: "\u2A73", Eta: "\u0397", Euml: "\xCB", Exists: "\u2203", exist: "\u2203", ExponentialE: "\u2147", ee: "\u2147", exponentiale: "\u2147", Fcy: "\u0424", Ffr: "\u{1D509}", FilledSmallSquare: "\u25FC", FilledVerySmallSquare: "\u25AA", blacksquare: "\u25AA", squarf: "\u25AA", squf: "\u25AA", Fopf: "\u{1D53D}", ForAll: "\u2200", forall: "\u2200", Fouriertrf: "\u2131", Fscr: "\u2131", GJcy: "\u0403", GT: ">", gt: ">", Gamma: "\u0393", Gammad: "\u03DC", Gbreve: "\u011E", Gcedil: "\u0122", Gcirc: "\u011C", Gcy: "\u0413", Gdot: "\u0120", Gfr: "\u{1D50A}", Gg: "\u22D9", ggg: "\u22D9", Gopf: "\u{1D53E}", GreaterEqual: "\u2265", ge: "\u2265", geq: "\u2265", GreaterEqualLess: "\u22DB", gel: "\u22DB", gtreqless: "\u22DB", GreaterFullEqual: "\u2267", gE: "\u2267", geqq: "\u2267", GreaterGreater: "\u2AA2", GreaterLess: "\u2277", gl: "\u2277", gtrless: "\u2277", GreaterSlantEqual: "\u2A7E", geqslant: "\u2A7E", ges: "\u2A7E", GreaterTilde: "\u2273", gsim: "\u2273", gtrsim: "\u2273", Gscr: "\u{1D4A2}", Gt: "\u226B", NestedGreaterGreater: "\u226B", gg: "\u226B", HARDcy: "\u042A", Hacek: "\u02C7", caron: "\u02C7", Hat: "^", Hcirc: "\u0124", Hfr: "\u210C", Poincareplane: "\u210C", HilbertSpace: "\u210B", Hscr: "\u210B", hamilt: "\u210B", Hopf: "\u210D", quaternions: "\u210D", HorizontalLine: "\u2500", boxh: "\u2500", Hstrok: "\u0126", HumpEqual: "\u224F", bumpe: "\u224F", bumpeq: "\u224F", IEcy: "\u0415", IJlig: "\u0132", IOcy: "\u0401", Iacute: "\xCD", Icirc: "\xCE", Icy: "\u0418", Idot: "\u0130", Ifr: "\u2111", Im: "\u2111", image: "\u2111", imagpart: "\u2111", Igrave: "\xCC", Imacr: "\u012A", ImaginaryI: "\u2148", ii: "\u2148", Int: "\u222C", Integral: "\u222B", int: "\u222B", Intersection: "\u22C2", bigcap: "\u22C2", xcap: "\u22C2", InvisibleComma: "\u2063", ic: "\u2063", InvisibleTimes: "\u2062", it: "\u2062", Iogon: "\u012E", Iopf: "\u{1D540}", Iota: "\u0399", Iscr: "\u2110", imagline: "\u2110", Itilde: "\u0128", Iukcy: "\u0406", Iuml: "\xCF", Jcirc: "\u0134", Jcy: "\u0419", Jfr: "\u{1D50D}", Jopf: "\u{1D541}", Jscr: "\u{1D4A5}", Jsercy: "\u0408", Jukcy: "\u0404", KHcy: "\u0425", KJcy: "\u040C", Kappa: "\u039A", Kcedil: "\u0136", Kcy: "\u041A", Kfr: "\u{1D50E}", Kopf: "\u{1D542}", Kscr: "\u{1D4A6}", LJcy: "\u0409", LT: "<", lt: "<", Lacute: "\u0139", Lambda: "\u039B", Lang: "\u27EA", Laplacetrf: "\u2112", Lscr: "\u2112", lagran: "\u2112", Larr: "\u219E", twoheadleftarrow: "\u219E", Lcaron: "\u013D", Lcedil: "\u013B", Lcy: "\u041B", LeftAngleBracket: "\u27E8", lang: "\u27E8", langle: "\u27E8", LeftArrow: "\u2190", ShortLeftArrow: "\u2190", larr: "\u2190", leftarrow: "\u2190", slarr: "\u2190", LeftArrowBar: "\u21E4", larrb: "\u21E4", LeftArrowRightArrow: "\u21C6", leftrightarrows: "\u21C6", lrarr: "\u21C6", LeftCeiling: "\u2308", lceil: "\u2308", LeftDoubleBracket: "\u27E6", lobrk: "\u27E6", LeftDownTeeVector: "\u2961", LeftDownVector: "\u21C3", dharl: "\u21C3", downharpoonleft: "\u21C3", LeftDownVectorBar: "\u2959", LeftFloor: "\u230A", lfloor: "\u230A", LeftRightArrow: "\u2194", harr: "\u2194", leftrightarrow: "\u2194", LeftRightVector: "\u294E", LeftTee: "\u22A3", dashv: "\u22A3", LeftTeeArrow: "\u21A4", mapstoleft: "\u21A4", LeftTeeVector: "\u295A", LeftTriangle: "\u22B2", vartriangleleft: "\u22B2", vltri: "\u22B2", LeftTriangleBar: "\u29CF", LeftTriangleEqual: "\u22B4", ltrie: "\u22B4", trianglelefteq: "\u22B4", LeftUpDownVector: "\u2951", LeftUpTeeVector: "\u2960", LeftUpVector: "\u21BF", uharl: "\u21BF", upharpoonleft: "\u21BF", LeftUpVectorBar: "\u2958", LeftVector: "\u21BC", leftharpoonup: "\u21BC", lharu: "\u21BC", LeftVectorBar: "\u2952", LessEqualGreater: "\u22DA", leg: "\u22DA", lesseqgtr: "\u22DA", LessFullEqual: "\u2266", lE: "\u2266", leqq: "\u2266", LessGreater: "\u2276", lessgtr: "\u2276", lg: "\u2276", LessLess: "\u2AA1", LessSlantEqual: "\u2A7D", leqslant: "\u2A7D", les: "\u2A7D", LessTilde: "\u2272", lesssim: "\u2272", lsim: "\u2272", Lfr: "\u{1D50F}", Ll: "\u22D8", Lleftarrow: "\u21DA", lAarr: "\u21DA", Lmidot: "\u013F", LongLeftArrow: "\u27F5", longleftarrow: "\u27F5", xlarr: "\u27F5", LongLeftRightArrow: "\u27F7", longleftrightarrow: "\u27F7", xharr: "\u27F7", LongRightArrow: "\u27F6", longrightarrow: "\u27F6", xrarr: "\u27F6", Lopf: "\u{1D543}", LowerLeftArrow: "\u2199", swarr: "\u2199", swarrow: "\u2199", LowerRightArrow: "\u2198", searr: "\u2198", searrow: "\u2198", Lsh: "\u21B0", lsh: "\u21B0", Lstrok: "\u0141", Lt: "\u226A", NestedLessLess: "\u226A", ll: "\u226A", Map: "\u2905", Mcy: "\u041C", MediumSpace: "\u205F", Mellintrf: "\u2133", Mscr: "\u2133", phmmat: "\u2133", Mfr: "\u{1D510}", MinusPlus: "\u2213", mnplus: "\u2213", mp: "\u2213", Mopf: "\u{1D544}", Mu: "\u039C", NJcy: "\u040A", Nacute: "\u0143", Ncaron: "\u0147", Ncedil: "\u0145", Ncy: "\u041D", NegativeMediumSpace: "\u200B", NegativeThickSpace: "\u200B", NegativeThinSpace: "\u200B", NegativeVeryThinSpace: "\u200B", ZeroWidthSpace: "\u200B", NewLine: `
`, Nfr: "\u{1D511}", NoBreak: "\u2060", NonBreakingSpace: "\xA0", nbsp: "\xA0", Nopf: "\u2115", naturals: "\u2115", Not: "\u2AEC", NotCongruent: "\u2262", nequiv: "\u2262", NotCupCap: "\u226D", NotDoubleVerticalBar: "\u2226", npar: "\u2226", nparallel: "\u2226", nshortparallel: "\u2226", nspar: "\u2226", NotElement: "\u2209", notin: "\u2209", notinva: "\u2209", NotEqual: "\u2260", ne: "\u2260", NotEqualTilde: "\u2242\u0338", nesim: "\u2242\u0338", NotExists: "\u2204", nexist: "\u2204", nexists: "\u2204", NotGreater: "\u226F", ngt: "\u226F", ngtr: "\u226F", NotGreaterEqual: "\u2271", nge: "\u2271", ngeq: "\u2271", NotGreaterFullEqual: "\u2267\u0338", ngE: "\u2267\u0338", ngeqq: "\u2267\u0338", NotGreaterGreater: "\u226B\u0338", nGtv: "\u226B\u0338", NotGreaterLess: "\u2279", ntgl: "\u2279", NotGreaterSlantEqual: "\u2A7E\u0338", ngeqslant: "\u2A7E\u0338", nges: "\u2A7E\u0338", NotGreaterTilde: "\u2275", ngsim: "\u2275", NotHumpDownHump: "\u224E\u0338", nbump: "\u224E\u0338", NotHumpEqual: "\u224F\u0338", nbumpe: "\u224F\u0338", NotLeftTriangle: "\u22EA", nltri: "\u22EA", ntriangleleft: "\u22EA", NotLeftTriangleBar: "\u29CF\u0338", NotLeftTriangleEqual: "\u22EC", nltrie: "\u22EC", ntrianglelefteq: "\u22EC", NotLess: "\u226E", nless: "\u226E", nlt: "\u226E", NotLessEqual: "\u2270", nle: "\u2270", nleq: "\u2270", NotLessGreater: "\u2278", ntlg: "\u2278", NotLessLess: "\u226A\u0338", nLtv: "\u226A\u0338", NotLessSlantEqual: "\u2A7D\u0338", nleqslant: "\u2A7D\u0338", nles: "\u2A7D\u0338", NotLessTilde: "\u2274", nlsim: "\u2274", NotNestedGreaterGreater: "\u2AA2\u0338", NotNestedLessLess: "\u2AA1\u0338", NotPrecedes: "\u2280", npr: "\u2280", nprec: "\u2280", NotPrecedesEqual: "\u2AAF\u0338", npre: "\u2AAF\u0338", npreceq: "\u2AAF\u0338", NotPrecedesSlantEqual: "\u22E0", nprcue: "\u22E0", NotReverseElement: "\u220C", notni: "\u220C", notniva: "\u220C", NotRightTriangle: "\u22EB", nrtri: "\u22EB", ntriangleright: "\u22EB", NotRightTriangleBar: "\u29D0\u0338", NotRightTriangleEqual: "\u22ED", nrtrie: "\u22ED", ntrianglerighteq: "\u22ED", NotSquareSubset: "\u228F\u0338", NotSquareSubsetEqual: "\u22E2", nsqsube: "\u22E2", NotSquareSuperset: "\u2290\u0338", NotSquareSupersetEqual: "\u22E3", nsqsupe: "\u22E3", NotSubset: "\u2282\u20D2", nsubset: "\u2282\u20D2", vnsub: "\u2282\u20D2", NotSubsetEqual: "\u2288", nsube: "\u2288", nsubseteq: "\u2288", NotSucceeds: "\u2281", nsc: "\u2281", nsucc: "\u2281", NotSucceedsEqual: "\u2AB0\u0338", nsce: "\u2AB0\u0338", nsucceq: "\u2AB0\u0338", NotSucceedsSlantEqual: "\u22E1", nsccue: "\u22E1", NotSucceedsTilde: "\u227F\u0338", NotSuperset: "\u2283\u20D2", nsupset: "\u2283\u20D2", vnsup: "\u2283\u20D2", NotSupersetEqual: "\u2289", nsupe: "\u2289", nsupseteq: "\u2289", NotTilde: "\u2241", nsim: "\u2241", NotTildeEqual: "\u2244", nsime: "\u2244", nsimeq: "\u2244", NotTildeFullEqual: "\u2247", ncong: "\u2247", NotTildeTilde: "\u2249", nap: "\u2249", napprox: "\u2249", NotVerticalBar: "\u2224", nmid: "\u2224", nshortmid: "\u2224", nsmid: "\u2224", Nscr: "\u{1D4A9}", Ntilde: "\xD1", Nu: "\u039D", OElig: "\u0152", Oacute: "\xD3", Ocirc: "\xD4", Ocy: "\u041E", Odblac: "\u0150", Ofr: "\u{1D512}", Ograve: "\xD2", Omacr: "\u014C", Omega: "\u03A9", ohm: "\u03A9", Omicron: "\u039F", Oopf: "\u{1D546}", OpenCurlyDoubleQuote: "\u201C", ldquo: "\u201C", OpenCurlyQuote: "\u2018", lsquo: "\u2018", Or: "\u2A54", Oscr: "\u{1D4AA}", Oslash: "\xD8", Otilde: "\xD5", Otimes: "\u2A37", Ouml: "\xD6", OverBar: "\u203E", oline: "\u203E", OverBrace: "\u23DE", OverBracket: "\u23B4", tbrk: "\u23B4", OverParenthesis: "\u23DC", PartialD: "\u2202", part: "\u2202", Pcy: "\u041F", Pfr: "\u{1D513}", Phi: "\u03A6", Pi: "\u03A0", PlusMinus: "\xB1", plusmn: "\xB1", pm: "\xB1", Popf: "\u2119", primes: "\u2119", Pr: "\u2ABB", Precedes: "\u227A", pr: "\u227A", prec: "\u227A", PrecedesEqual: "\u2AAF", pre: "\u2AAF", preceq: "\u2AAF", PrecedesSlantEqual: "\u227C", prcue: "\u227C", preccurlyeq: "\u227C", PrecedesTilde: "\u227E", precsim: "\u227E", prsim: "\u227E", Prime: "\u2033", Product: "\u220F", prod: "\u220F", Proportional: "\u221D", prop: "\u221D", propto: "\u221D", varpropto: "\u221D", vprop: "\u221D", Pscr: "\u{1D4AB}", Psi: "\u03A8", QUOT: '"', quot: '"', Qfr: "\u{1D514}", Qopf: "\u211A", rationals: "\u211A", Qscr: "\u{1D4AC}", RBarr: "\u2910", drbkarow: "\u2910", REG: "\xAE", circledR: "\xAE", reg: "\xAE", Racute: "\u0154", Rang: "\u27EB", Rarr: "\u21A0", twoheadrightarrow: "\u21A0", Rarrtl: "\u2916", Rcaron: "\u0158", Rcedil: "\u0156", Rcy: "\u0420", Re: "\u211C", Rfr: "\u211C", real: "\u211C", realpart: "\u211C", ReverseElement: "\u220B", SuchThat: "\u220B", ni: "\u220B", niv: "\u220B", ReverseEquilibrium: "\u21CB", leftrightharpoons: "\u21CB", lrhar: "\u21CB", ReverseUpEquilibrium: "\u296F", duhar: "\u296F", Rho: "\u03A1", RightAngleBracket: "\u27E9", rang: "\u27E9", rangle: "\u27E9", RightArrow: "\u2192", ShortRightArrow: "\u2192", rarr: "\u2192", rightarrow: "\u2192", srarr: "\u2192", RightArrowBar: "\u21E5", rarrb: "\u21E5", RightArrowLeftArrow: "\u21C4", rightleftarrows: "\u21C4", rlarr: "\u21C4", RightCeiling: "\u2309", rceil: "\u2309", RightDoubleBracket: "\u27E7", robrk: "\u27E7", RightDownTeeVector: "\u295D", RightDownVector: "\u21C2", dharr: "\u21C2", downharpoonright: "\u21C2", RightDownVectorBar: "\u2955", RightFloor: "\u230B", rfloor: "\u230B", RightTee: "\u22A2", vdash: "\u22A2", RightTeeArrow: "\u21A6", map: "\u21A6", mapsto: "\u21A6", RightTeeVector: "\u295B", RightTriangle: "\u22B3", vartriangleright: "\u22B3", vrtri: "\u22B3", RightTriangleBar: "\u29D0", RightTriangleEqual: "\u22B5", rtrie: "\u22B5", trianglerighteq: "\u22B5", RightUpDownVector: "\u294F", RightUpTeeVector: "\u295C", RightUpVector: "\u21BE", uharr: "\u21BE", upharpoonright: "\u21BE", RightUpVectorBar: "\u2954", RightVector: "\u21C0", rharu: "\u21C0", rightharpoonup: "\u21C0", RightVectorBar: "\u2953", Ropf: "\u211D", reals: "\u211D", RoundImplies: "\u2970", Rrightarrow: "\u21DB", rAarr: "\u21DB", Rscr: "\u211B", realine: "\u211B", Rsh: "\u21B1", rsh: "\u21B1", RuleDelayed: "\u29F4", SHCHcy: "\u0429", SHcy: "\u0428", SOFTcy: "\u042C", Sacute: "\u015A", Sc: "\u2ABC", Scaron: "\u0160", Scedil: "\u015E", Scirc: "\u015C", Scy: "\u0421", Sfr: "\u{1D516}", ShortUpArrow: "\u2191", UpArrow: "\u2191", uarr: "\u2191", uparrow: "\u2191", Sigma: "\u03A3", SmallCircle: "\u2218", compfn: "\u2218", Sopf: "\u{1D54A}", Sqrt: "\u221A", radic: "\u221A", Square: "\u25A1", squ: "\u25A1", square: "\u25A1", SquareIntersection: "\u2293", sqcap: "\u2293", SquareSubset: "\u228F", sqsub: "\u228F", sqsubset: "\u228F", SquareSubsetEqual: "\u2291", sqsube: "\u2291", sqsubseteq: "\u2291", SquareSuperset: "\u2290", sqsup: "\u2290", sqsupset: "\u2290", SquareSupersetEqual: "\u2292", sqsupe: "\u2292", sqsupseteq: "\u2292", SquareUnion: "\u2294", sqcup: "\u2294", Sscr: "\u{1D4AE}", Star: "\u22C6", sstarf: "\u22C6", Sub: "\u22D0", Subset: "\u22D0", SubsetEqual: "\u2286", sube: "\u2286", subseteq: "\u2286", Succeeds: "\u227B", sc: "\u227B", succ: "\u227B", SucceedsEqual: "\u2AB0", sce: "\u2AB0", succeq: "\u2AB0", SucceedsSlantEqual: "\u227D", sccue: "\u227D", succcurlyeq: "\u227D", SucceedsTilde: "\u227F", scsim: "\u227F", succsim: "\u227F", Sum: "\u2211", sum: "\u2211", Sup: "\u22D1", Supset: "\u22D1", Superset: "\u2283", sup: "\u2283", supset: "\u2283", SupersetEqual: "\u2287", supe: "\u2287", supseteq: "\u2287", THORN: "\xDE", TRADE: "\u2122", trade: "\u2122", TSHcy: "\u040B", TScy: "\u0426", Tab: "	", Tau: "\u03A4", Tcaron: "\u0164", Tcedil: "\u0162", Tcy: "\u0422", Tfr: "\u{1D517}", Therefore: "\u2234", there4: "\u2234", therefore: "\u2234", Theta: "\u0398", ThickSpace: "\u205F\u200A", ThinSpace: "\u2009", thinsp: "\u2009", Tilde: "\u223C", sim: "\u223C", thicksim: "\u223C", thksim: "\u223C", TildeEqual: "\u2243", sime: "\u2243", simeq: "\u2243", TildeFullEqual: "\u2245", cong: "\u2245", TildeTilde: "\u2248", ap: "\u2248", approx: "\u2248", asymp: "\u2248", thickapprox: "\u2248", thkap: "\u2248", Topf: "\u{1D54B}", TripleDot: "\u20DB", tdot: "\u20DB", Tscr: "\u{1D4AF}", Tstrok: "\u0166", Uacute: "\xDA", Uarr: "\u219F", Uarrocir: "\u2949", Ubrcy: "\u040E", Ubreve: "\u016C", Ucirc: "\xDB", Ucy: "\u0423", Udblac: "\u0170", Ufr: "\u{1D518}", Ugrave: "\xD9", Umacr: "\u016A", UnderBar: "_", lowbar: "_", UnderBrace: "\u23DF", UnderBracket: "\u23B5", bbrk: "\u23B5", UnderParenthesis: "\u23DD", Union: "\u22C3", bigcup: "\u22C3", xcup: "\u22C3", UnionPlus: "\u228E", uplus: "\u228E", Uogon: "\u0172", Uopf: "\u{1D54C}", UpArrowBar: "\u2912", UpArrowDownArrow: "\u21C5", udarr: "\u21C5", UpDownArrow: "\u2195", updownarrow: "\u2195", varr: "\u2195", UpEquilibrium: "\u296E", udhar: "\u296E", UpTee: "\u22A5", bot: "\u22A5", bottom: "\u22A5", perp: "\u22A5", UpTeeArrow: "\u21A5", mapstoup: "\u21A5", UpperLeftArrow: "\u2196", nwarr: "\u2196", nwarrow: "\u2196", UpperRightArrow: "\u2197", nearr: "\u2197", nearrow: "\u2197", Upsi: "\u03D2", upsih: "\u03D2", Upsilon: "\u03A5", Uring: "\u016E", Uscr: "\u{1D4B0}", Utilde: "\u0168", Uuml: "\xDC", VDash: "\u22AB", Vbar: "\u2AEB", Vcy: "\u0412", Vdash: "\u22A9", Vdashl: "\u2AE6", Vee: "\u22C1", bigvee: "\u22C1", xvee: "\u22C1", Verbar: "\u2016", Vert: "\u2016", VerticalBar: "\u2223", mid: "\u2223", shortmid: "\u2223", smid: "\u2223", VerticalLine: "|", verbar: "|", vert: "|", VerticalSeparator: "\u2758", VerticalTilde: "\u2240", wr: "\u2240", wreath: "\u2240", VeryThinSpace: "\u200A", hairsp: "\u200A", Vfr: "\u{1D519}", Vopf: "\u{1D54D}", Vscr: "\u{1D4B1}", Vvdash: "\u22AA", Wcirc: "\u0174", Wedge: "\u22C0", bigwedge: "\u22C0", xwedge: "\u22C0", Wfr: "\u{1D51A}", Wopf: "\u{1D54E}", Wscr: "\u{1D4B2}", Xfr: "\u{1D51B}", Xi: "\u039E", Xopf: "\u{1D54F}", Xscr: "\u{1D4B3}", YAcy: "\u042F", YIcy: "\u0407", YUcy: "\u042E", Yacute: "\xDD", Ycirc: "\u0176", Ycy: "\u042B", Yfr: "\u{1D51C}", Yopf: "\u{1D550}", Yscr: "\u{1D4B4}", Yuml: "\u0178", ZHcy: "\u0416", Zacute: "\u0179", Zcaron: "\u017D", Zcy: "\u0417", Zdot: "\u017B", Zeta: "\u0396", Zfr: "\u2128", zeetrf: "\u2128", Zopf: "\u2124", integers: "\u2124", Zscr: "\u{1D4B5}", aacute: "\xE1", abreve: "\u0103", ac: "\u223E", mstpos: "\u223E", acE: "\u223E\u0333", acd: "\u223F", acirc: "\xE2", acy: "\u0430", aelig: "\xE6", afr: "\u{1D51E}", agrave: "\xE0", alefsym: "\u2135", aleph: "\u2135", alpha: "\u03B1", amacr: "\u0101", amalg: "\u2A3F", and: "\u2227", wedge: "\u2227", andand: "\u2A55", andd: "\u2A5C", andslope: "\u2A58", andv: "\u2A5A", ang: "\u2220", angle: "\u2220", ange: "\u29A4", angmsd: "\u2221", measuredangle: "\u2221", angmsdaa: "\u29A8", angmsdab: "\u29A9", angmsdac: "\u29AA", angmsdad: "\u29AB", angmsdae: "\u29AC", angmsdaf: "\u29AD", angmsdag: "\u29AE", angmsdah: "\u29AF", angrt: "\u221F", angrtvb: "\u22BE", angrtvbd: "\u299D", angsph: "\u2222", angzarr: "\u237C", aogon: "\u0105", aopf: "\u{1D552}", apE: "\u2A70", apacir: "\u2A6F", ape: "\u224A", approxeq: "\u224A", apid: "\u224B", apos: "'", aring: "\xE5", ascr: "\u{1D4B6}", ast: "*", midast: "*", atilde: "\xE3", auml: "\xE4", awint: "\u2A11", bNot: "\u2AED", backcong: "\u224C", bcong: "\u224C", backepsilon: "\u03F6", bepsi: "\u03F6", backprime: "\u2035", bprime: "\u2035", backsim: "\u223D", bsim: "\u223D", backsimeq: "\u22CD", bsime: "\u22CD", barvee: "\u22BD", barwed: "\u2305", barwedge: "\u2305", bbrktbrk: "\u23B6", bcy: "\u0431", bdquo: "\u201E", ldquor: "\u201E", bemptyv: "\u29B0", beta: "\u03B2", beth: "\u2136", between: "\u226C", twixt: "\u226C", bfr: "\u{1D51F}", bigcirc: "\u25EF", xcirc: "\u25EF", bigodot: "\u2A00", xodot: "\u2A00", bigoplus: "\u2A01", xoplus: "\u2A01", bigotimes: "\u2A02", xotime: "\u2A02", bigsqcup: "\u2A06", xsqcup: "\u2A06", bigstar: "\u2605", starf: "\u2605", bigtriangledown: "\u25BD", xdtri: "\u25BD", bigtriangleup: "\u25B3", xutri: "\u25B3", biguplus: "\u2A04", xuplus: "\u2A04", bkarow: "\u290D", rbarr: "\u290D", blacklozenge: "\u29EB", lozf: "\u29EB", blacktriangle: "\u25B4", utrif: "\u25B4", blacktriangledown: "\u25BE", dtrif: "\u25BE", blacktriangleleft: "\u25C2", ltrif: "\u25C2", blacktriangleright: "\u25B8", rtrif: "\u25B8", blank: "\u2423", blk12: "\u2592", blk14: "\u2591", blk34: "\u2593", block: "\u2588", bne: "=\u20E5", bnequiv: "\u2261\u20E5", bnot: "\u2310", bopf: "\u{1D553}", bowtie: "\u22C8", boxDL: "\u2557", boxDR: "\u2554", boxDl: "\u2556", boxDr: "\u2553", boxH: "\u2550", boxHD: "\u2566", boxHU: "\u2569", boxHd: "\u2564", boxHu: "\u2567", boxUL: "\u255D", boxUR: "\u255A", boxUl: "\u255C", boxUr: "\u2559", boxV: "\u2551", boxVH: "\u256C", boxVL: "\u2563", boxVR: "\u2560", boxVh: "\u256B", boxVl: "\u2562", boxVr: "\u255F", boxbox: "\u29C9", boxdL: "\u2555", boxdR: "\u2552", boxdl: "\u2510", boxdr: "\u250C", boxhD: "\u2565", boxhU: "\u2568", boxhd: "\u252C", boxhu: "\u2534", boxminus: "\u229F", minusb: "\u229F", boxplus: "\u229E", plusb: "\u229E", boxtimes: "\u22A0", timesb: "\u22A0", boxuL: "\u255B", boxuR: "\u2558", boxul: "\u2518", boxur: "\u2514", boxv: "\u2502", boxvH: "\u256A", boxvL: "\u2561", boxvR: "\u255E", boxvh: "\u253C", boxvl: "\u2524", boxvr: "\u251C", brvbar: "\xA6", bscr: "\u{1D4B7}", bsemi: "\u204F", bsol: "\\", bsolb: "\u29C5", bsolhsub: "\u27C8", bull: "\u2022", bullet: "\u2022", bumpE: "\u2AAE", cacute: "\u0107", cap: "\u2229", capand: "\u2A44", capbrcup: "\u2A49", capcap: "\u2A4B", capcup: "\u2A47", capdot: "\u2A40", caps: "\u2229\uFE00", caret: "\u2041", ccaps: "\u2A4D", ccaron: "\u010D", ccedil: "\xE7", ccirc: "\u0109", ccups: "\u2A4C", ccupssm: "\u2A50", cdot: "\u010B", cemptyv: "\u29B2", cent: "\xA2", cfr: "\u{1D520}", chcy: "\u0447", check: "\u2713", checkmark: "\u2713", chi: "\u03C7", cir: "\u25CB", cirE: "\u29C3", circ: "\u02C6", circeq: "\u2257", cire: "\u2257", circlearrowleft: "\u21BA", olarr: "\u21BA", circlearrowright: "\u21BB", orarr: "\u21BB", circledS: "\u24C8", oS: "\u24C8", circledast: "\u229B", oast: "\u229B", circledcirc: "\u229A", ocir: "\u229A", circleddash: "\u229D", odash: "\u229D", cirfnint: "\u2A10", cirmid: "\u2AEF", cirscir: "\u29C2", clubs: "\u2663", clubsuit: "\u2663", colon: ":", comma: ",", commat: "@", comp: "\u2201", complement: "\u2201", congdot: "\u2A6D", copf: "\u{1D554}", copysr: "\u2117", crarr: "\u21B5", cross: "\u2717", cscr: "\u{1D4B8}", csub: "\u2ACF", csube: "\u2AD1", csup: "\u2AD0", csupe: "\u2AD2", ctdot: "\u22EF", cudarrl: "\u2938", cudarrr: "\u2935", cuepr: "\u22DE", curlyeqprec: "\u22DE", cuesc: "\u22DF", curlyeqsucc: "\u22DF", cularr: "\u21B6", curvearrowleft: "\u21B6", cularrp: "\u293D", cup: "\u222A", cupbrcap: "\u2A48", cupcap: "\u2A46", cupcup: "\u2A4A", cupdot: "\u228D", cupor: "\u2A45", cups: "\u222A\uFE00", curarr: "\u21B7", curvearrowright: "\u21B7", curarrm: "\u293C", curlyvee: "\u22CE", cuvee: "\u22CE", curlywedge: "\u22CF", cuwed: "\u22CF", curren: "\xA4", cwint: "\u2231", cylcty: "\u232D", dHar: "\u2965", dagger: "\u2020", daleth: "\u2138", dash: "\u2010", hyphen: "\u2010", dbkarow: "\u290F", rBarr: "\u290F", dcaron: "\u010F", dcy: "\u0434", ddarr: "\u21CA", downdownarrows: "\u21CA", ddotseq: "\u2A77", eDDot: "\u2A77", deg: "\xB0", delta: "\u03B4", demptyv: "\u29B1", dfisht: "\u297F", dfr: "\u{1D521}", diamondsuit: "\u2666", diams: "\u2666", digamma: "\u03DD", gammad: "\u03DD", disin: "\u22F2", div: "\xF7", divide: "\xF7", divideontimes: "\u22C7", divonx: "\u22C7", djcy: "\u0452", dlcorn: "\u231E", llcorner: "\u231E", dlcrop: "\u230D", dollar: "$", dopf: "\u{1D555}", doteqdot: "\u2251", eDot: "\u2251", dotminus: "\u2238", minusd: "\u2238", dotplus: "\u2214", plusdo: "\u2214", dotsquare: "\u22A1", sdotb: "\u22A1", drcorn: "\u231F", lrcorner: "\u231F", drcrop: "\u230C", dscr: "\u{1D4B9}", dscy: "\u0455", dsol: "\u29F6", dstrok: "\u0111", dtdot: "\u22F1", dtri: "\u25BF", triangledown: "\u25BF", dwangle: "\u29A6", dzcy: "\u045F", dzigrarr: "\u27FF", eacute: "\xE9", easter: "\u2A6E", ecaron: "\u011B", ecir: "\u2256", eqcirc: "\u2256", ecirc: "\xEA", ecolon: "\u2255", eqcolon: "\u2255", ecy: "\u044D", edot: "\u0117", efDot: "\u2252", fallingdotseq: "\u2252", efr: "\u{1D522}", eg: "\u2A9A", egrave: "\xE8", egs: "\u2A96", eqslantgtr: "\u2A96", egsdot: "\u2A98", el: "\u2A99", elinters: "\u23E7", ell: "\u2113", els: "\u2A95", eqslantless: "\u2A95", elsdot: "\u2A97", emacr: "\u0113", empty: "\u2205", emptyset: "\u2205", emptyv: "\u2205", varnothing: "\u2205", emsp13: "\u2004", emsp14: "\u2005", emsp: "\u2003", eng: "\u014B", ensp: "\u2002", eogon: "\u0119", eopf: "\u{1D556}", epar: "\u22D5", eparsl: "\u29E3", eplus: "\u2A71", epsi: "\u03B5", epsilon: "\u03B5", epsiv: "\u03F5", straightepsilon: "\u03F5", varepsilon: "\u03F5", equals: "=", equest: "\u225F", questeq: "\u225F", equivDD: "\u2A78", eqvparsl: "\u29E5", erDot: "\u2253", risingdotseq: "\u2253", erarr: "\u2971", escr: "\u212F", eta: "\u03B7", eth: "\xF0", euml: "\xEB", euro: "\u20AC", excl: "!", fcy: "\u0444", female: "\u2640", ffilig: "\uFB03", fflig: "\uFB00", ffllig: "\uFB04", ffr: "\u{1D523}", filig: "\uFB01", fjlig: "fj", flat: "\u266D", fllig: "\uFB02", fltns: "\u25B1", fnof: "\u0192", fopf: "\u{1D557}", fork: "\u22D4", pitchfork: "\u22D4", forkv: "\u2AD9", fpartint: "\u2A0D", frac12: "\xBD", half: "\xBD", frac13: "\u2153", frac14: "\xBC", frac15: "\u2155", frac16: "\u2159", frac18: "\u215B", frac23: "\u2154", frac25: "\u2156", frac34: "\xBE", frac35: "\u2157", frac38: "\u215C", frac45: "\u2158", frac56: "\u215A", frac58: "\u215D", frac78: "\u215E", frasl: "\u2044", frown: "\u2322", sfrown: "\u2322", fscr: "\u{1D4BB}", gEl: "\u2A8C", gtreqqless: "\u2A8C", gacute: "\u01F5", gamma: "\u03B3", gap: "\u2A86", gtrapprox: "\u2A86", gbreve: "\u011F", gcirc: "\u011D", gcy: "\u0433", gdot: "\u0121", gescc: "\u2AA9", gesdot: "\u2A80", gesdoto: "\u2A82", gesdotol: "\u2A84", gesl: "\u22DB\uFE00", gesles: "\u2A94", gfr: "\u{1D524}", gimel: "\u2137", gjcy: "\u0453", glE: "\u2A92", gla: "\u2AA5", glj: "\u2AA4", gnE: "\u2269", gneqq: "\u2269", gnap: "\u2A8A", gnapprox: "\u2A8A", gne: "\u2A88", gneq: "\u2A88", gnsim: "\u22E7", gopf: "\u{1D558}", gscr: "\u210A", gsime: "\u2A8E", gsiml: "\u2A90", gtcc: "\u2AA7", gtcir: "\u2A7A", gtdot: "\u22D7", gtrdot: "\u22D7", gtlPar: "\u2995", gtquest: "\u2A7C", gtrarr: "\u2978", gvertneqq: "\u2269\uFE00", gvnE: "\u2269\uFE00", hardcy: "\u044A", harrcir: "\u2948", harrw: "\u21AD", leftrightsquigarrow: "\u21AD", hbar: "\u210F", hslash: "\u210F", planck: "\u210F", plankv: "\u210F", hcirc: "\u0125", hearts: "\u2665", heartsuit: "\u2665", hellip: "\u2026", mldr: "\u2026", hercon: "\u22B9", hfr: "\u{1D525}", hksearow: "\u2925", searhk: "\u2925", hkswarow: "\u2926", swarhk: "\u2926", hoarr: "\u21FF", homtht: "\u223B", hookleftarrow: "\u21A9", larrhk: "\u21A9", hookrightarrow: "\u21AA", rarrhk: "\u21AA", hopf: "\u{1D559}", horbar: "\u2015", hscr: "\u{1D4BD}", hstrok: "\u0127", hybull: "\u2043", iacute: "\xED", icirc: "\xEE", icy: "\u0438", iecy: "\u0435", iexcl: "\xA1", ifr: "\u{1D526}", igrave: "\xEC", iiiint: "\u2A0C", qint: "\u2A0C", iiint: "\u222D", tint: "\u222D", iinfin: "\u29DC", iiota: "\u2129", ijlig: "\u0133", imacr: "\u012B", imath: "\u0131", inodot: "\u0131", imof: "\u22B7", imped: "\u01B5", incare: "\u2105", infin: "\u221E", infintie: "\u29DD", intcal: "\u22BA", intercal: "\u22BA", intlarhk: "\u2A17", intprod: "\u2A3C", iprod: "\u2A3C", iocy: "\u0451", iogon: "\u012F", iopf: "\u{1D55A}", iota: "\u03B9", iquest: "\xBF", iscr: "\u{1D4BE}", isinE: "\u22F9", isindot: "\u22F5", isins: "\u22F4", isinsv: "\u22F3", itilde: "\u0129", iukcy: "\u0456", iuml: "\xEF", jcirc: "\u0135", jcy: "\u0439", jfr: "\u{1D527}", jmath: "\u0237", jopf: "\u{1D55B}", jscr: "\u{1D4BF}", jsercy: "\u0458", jukcy: "\u0454", kappa: "\u03BA", kappav: "\u03F0", varkappa: "\u03F0", kcedil: "\u0137", kcy: "\u043A", kfr: "\u{1D528}", kgreen: "\u0138", khcy: "\u0445", kjcy: "\u045C", kopf: "\u{1D55C}", kscr: "\u{1D4C0}", lAtail: "\u291B", lBarr: "\u290E", lEg: "\u2A8B", lesseqqgtr: "\u2A8B", lHar: "\u2962", lacute: "\u013A", laemptyv: "\u29B4", lambda: "\u03BB", langd: "\u2991", lap: "\u2A85", lessapprox: "\u2A85", laquo: "\xAB", larrbfs: "\u291F", larrfs: "\u291D", larrlp: "\u21AB", looparrowleft: "\u21AB", larrpl: "\u2939", larrsim: "\u2973", larrtl: "\u21A2", leftarrowtail: "\u21A2", lat: "\u2AAB", latail: "\u2919", late: "\u2AAD", lates: "\u2AAD\uFE00", lbarr: "\u290C", lbbrk: "\u2772", lbrace: "{", lcub: "{", lbrack: "[", lsqb: "[", lbrke: "\u298B", lbrksld: "\u298F", lbrkslu: "\u298D", lcaron: "\u013E", lcedil: "\u013C", lcy: "\u043B", ldca: "\u2936", ldrdhar: "\u2967", ldrushar: "\u294B", ldsh: "\u21B2", le: "\u2264", leq: "\u2264", leftleftarrows: "\u21C7", llarr: "\u21C7", leftthreetimes: "\u22CB", lthree: "\u22CB", lescc: "\u2AA8", lesdot: "\u2A7F", lesdoto: "\u2A81", lesdotor: "\u2A83", lesg: "\u22DA\uFE00", lesges: "\u2A93", lessdot: "\u22D6", ltdot: "\u22D6", lfisht: "\u297C", lfr: "\u{1D529}", lgE: "\u2A91", lharul: "\u296A", lhblk: "\u2584", ljcy: "\u0459", llhard: "\u296B", lltri: "\u25FA", lmidot: "\u0140", lmoust: "\u23B0", lmoustache: "\u23B0", lnE: "\u2268", lneqq: "\u2268", lnap: "\u2A89", lnapprox: "\u2A89", lne: "\u2A87", lneq: "\u2A87", lnsim: "\u22E6", loang: "\u27EC", loarr: "\u21FD", longmapsto: "\u27FC", xmap: "\u27FC", looparrowright: "\u21AC", rarrlp: "\u21AC", lopar: "\u2985", lopf: "\u{1D55D}", loplus: "\u2A2D", lotimes: "\u2A34", lowast: "\u2217", loz: "\u25CA", lozenge: "\u25CA", lpar: "(", lparlt: "\u2993", lrhard: "\u296D", lrm: "\u200E", lrtri: "\u22BF", lsaquo: "\u2039", lscr: "\u{1D4C1}", lsime: "\u2A8D", lsimg: "\u2A8F", lsquor: "\u201A", sbquo: "\u201A", lstrok: "\u0142", ltcc: "\u2AA6", ltcir: "\u2A79", ltimes: "\u22C9", ltlarr: "\u2976", ltquest: "\u2A7B", ltrPar: "\u2996", ltri: "\u25C3", triangleleft: "\u25C3", lurdshar: "\u294A", luruhar: "\u2966", lvertneqq: "\u2268\uFE00", lvnE: "\u2268\uFE00", mDDot: "\u223A", macr: "\xAF", strns: "\xAF", male: "\u2642", malt: "\u2720", maltese: "\u2720", marker: "\u25AE", mcomma: "\u2A29", mcy: "\u043C", mdash: "\u2014", mfr: "\u{1D52A}", mho: "\u2127", micro: "\xB5", midcir: "\u2AF0", minus: "\u2212", minusdu: "\u2A2A", mlcp: "\u2ADB", models: "\u22A7", mopf: "\u{1D55E}", mscr: "\u{1D4C2}", mu: "\u03BC", multimap: "\u22B8", mumap: "\u22B8", nGg: "\u22D9\u0338", nGt: "\u226B\u20D2", nLeftarrow: "\u21CD", nlArr: "\u21CD", nLeftrightarrow: "\u21CE", nhArr: "\u21CE", nLl: "\u22D8\u0338", nLt: "\u226A\u20D2", nRightarrow: "\u21CF", nrArr: "\u21CF", nVDash: "\u22AF", nVdash: "\u22AE", nacute: "\u0144", nang: "\u2220\u20D2", napE: "\u2A70\u0338", napid: "\u224B\u0338", napos: "\u0149", natur: "\u266E", natural: "\u266E", ncap: "\u2A43", ncaron: "\u0148", ncedil: "\u0146", ncongdot: "\u2A6D\u0338", ncup: "\u2A42", ncy: "\u043D", ndash: "\u2013", neArr: "\u21D7", nearhk: "\u2924", nedot: "\u2250\u0338", nesear: "\u2928", toea: "\u2928", nfr: "\u{1D52B}", nharr: "\u21AE", nleftrightarrow: "\u21AE", nhpar: "\u2AF2", nis: "\u22FC", nisd: "\u22FA", njcy: "\u045A", nlE: "\u2266\u0338", nleqq: "\u2266\u0338", nlarr: "\u219A", nleftarrow: "\u219A", nldr: "\u2025", nopf: "\u{1D55F}", not: "\xAC", notinE: "\u22F9\u0338", notindot: "\u22F5\u0338", notinvb: "\u22F7", notinvc: "\u22F6", notnivb: "\u22FE", notnivc: "\u22FD", nparsl: "\u2AFD\u20E5", npart: "\u2202\u0338", npolint: "\u2A14", nrarr: "\u219B", nrightarrow: "\u219B", nrarrc: "\u2933\u0338", nrarrw: "\u219D\u0338", nscr: "\u{1D4C3}", nsub: "\u2284", nsubE: "\u2AC5\u0338", nsubseteqq: "\u2AC5\u0338", nsup: "\u2285", nsupE: "\u2AC6\u0338", nsupseteqq: "\u2AC6\u0338", ntilde: "\xF1", nu: "\u03BD", num: "#", numero: "\u2116", numsp: "\u2007", nvDash: "\u22AD", nvHarr: "\u2904", nvap: "\u224D\u20D2", nvdash: "\u22AC", nvge: "\u2265\u20D2", nvgt: ">\u20D2", nvinfin: "\u29DE", nvlArr: "\u2902", nvle: "\u2264\u20D2", nvlt: "<\u20D2", nvltrie: "\u22B4\u20D2", nvrArr: "\u2903", nvrtrie: "\u22B5\u20D2", nvsim: "\u223C\u20D2", nwArr: "\u21D6", nwarhk: "\u2923", nwnear: "\u2927", oacute: "\xF3", ocirc: "\xF4", ocy: "\u043E", odblac: "\u0151", odiv: "\u2A38", odsold: "\u29BC", oelig: "\u0153", ofcir: "\u29BF", ofr: "\u{1D52C}", ogon: "\u02DB", ograve: "\xF2", ogt: "\u29C1", ohbar: "\u29B5", olcir: "\u29BE", olcross: "\u29BB", olt: "\u29C0", omacr: "\u014D", omega: "\u03C9", omicron: "\u03BF", omid: "\u29B6", oopf: "\u{1D560}", opar: "\u29B7", operp: "\u29B9", or: "\u2228", vee: "\u2228", ord: "\u2A5D", order: "\u2134", orderof: "\u2134", oscr: "\u2134", ordf: "\xAA", ordm: "\xBA", origof: "\u22B6", oror: "\u2A56", orslope: "\u2A57", orv: "\u2A5B", oslash: "\xF8", osol: "\u2298", otilde: "\xF5", otimesas: "\u2A36", ouml: "\xF6", ovbar: "\u233D", para: "\xB6", parsim: "\u2AF3", parsl: "\u2AFD", pcy: "\u043F", percnt: "%", period: ".", permil: "\u2030", pertenk: "\u2031", pfr: "\u{1D52D}", phi: "\u03C6", phiv: "\u03D5", straightphi: "\u03D5", varphi: "\u03D5", phone: "\u260E", pi: "\u03C0", piv: "\u03D6", varpi: "\u03D6", planckh: "\u210E", plus: "+", plusacir: "\u2A23", pluscir: "\u2A22", plusdu: "\u2A25", pluse: "\u2A72", plussim: "\u2A26", plustwo: "\u2A27", pointint: "\u2A15", popf: "\u{1D561}", pound: "\xA3", prE: "\u2AB3", prap: "\u2AB7", precapprox: "\u2AB7", precnapprox: "\u2AB9", prnap: "\u2AB9", precneqq: "\u2AB5", prnE: "\u2AB5", precnsim: "\u22E8", prnsim: "\u22E8", prime: "\u2032", profalar: "\u232E", profline: "\u2312", profsurf: "\u2313", prurel: "\u22B0", pscr: "\u{1D4C5}", psi: "\u03C8", puncsp: "\u2008", qfr: "\u{1D52E}", qopf: "\u{1D562}", qprime: "\u2057", qscr: "\u{1D4C6}", quatint: "\u2A16", quest: "?", rAtail: "\u291C", rHar: "\u2964", race: "\u223D\u0331", racute: "\u0155", raemptyv: "\u29B3", rangd: "\u2992", range: "\u29A5", raquo: "\xBB", rarrap: "\u2975", rarrbfs: "\u2920", rarrc: "\u2933", rarrfs: "\u291E", rarrpl: "\u2945", rarrsim: "\u2974", rarrtl: "\u21A3", rightarrowtail: "\u21A3", rarrw: "\u219D", rightsquigarrow: "\u219D", ratail: "\u291A", ratio: "\u2236", rbbrk: "\u2773", rbrace: "}", rcub: "}", rbrack: "]", rsqb: "]", rbrke: "\u298C", rbrksld: "\u298E", rbrkslu: "\u2990", rcaron: "\u0159", rcedil: "\u0157", rcy: "\u0440", rdca: "\u2937", rdldhar: "\u2969", rdsh: "\u21B3", rect: "\u25AD", rfisht: "\u297D", rfr: "\u{1D52F}", rharul: "\u296C", rho: "\u03C1", rhov: "\u03F1", varrho: "\u03F1", rightrightarrows: "\u21C9", rrarr: "\u21C9", rightthreetimes: "\u22CC", rthree: "\u22CC", ring: "\u02DA", rlm: "\u200F", rmoust: "\u23B1", rmoustache: "\u23B1", rnmid: "\u2AEE", roang: "\u27ED", roarr: "\u21FE", ropar: "\u2986", ropf: "\u{1D563}", roplus: "\u2A2E", rotimes: "\u2A35", rpar: ")", rpargt: "\u2994", rppolint: "\u2A12", rsaquo: "\u203A", rscr: "\u{1D4C7}", rtimes: "\u22CA", rtri: "\u25B9", triangleright: "\u25B9", rtriltri: "\u29CE", ruluhar: "\u2968", rx: "\u211E", sacute: "\u015B", scE: "\u2AB4", scap: "\u2AB8", succapprox: "\u2AB8", scaron: "\u0161", scedil: "\u015F", scirc: "\u015D", scnE: "\u2AB6", succneqq: "\u2AB6", scnap: "\u2ABA", succnapprox: "\u2ABA", scnsim: "\u22E9", succnsim: "\u22E9", scpolint: "\u2A13", scy: "\u0441", sdot: "\u22C5", sdote: "\u2A66", seArr: "\u21D8", sect: "\xA7", semi: ";", seswar: "\u2929", tosa: "\u2929", sext: "\u2736", sfr: "\u{1D530}", sharp: "\u266F", shchcy: "\u0449", shcy: "\u0448", shy: "\xAD", sigma: "\u03C3", sigmaf: "\u03C2", sigmav: "\u03C2", varsigma: "\u03C2", simdot: "\u2A6A", simg: "\u2A9E", simgE: "\u2AA0", siml: "\u2A9D", simlE: "\u2A9F", simne: "\u2246", simplus: "\u2A24", simrarr: "\u2972", smashp: "\u2A33", smeparsl: "\u29E4", smile: "\u2323", ssmile: "\u2323", smt: "\u2AAA", smte: "\u2AAC", smtes: "\u2AAC\uFE00", softcy: "\u044C", sol: "/", solb: "\u29C4", solbar: "\u233F", sopf: "\u{1D564}", spades: "\u2660", spadesuit: "\u2660", sqcaps: "\u2293\uFE00", sqcups: "\u2294\uFE00", sscr: "\u{1D4C8}", star: "\u2606", sub: "\u2282", subset: "\u2282", subE: "\u2AC5", subseteqq: "\u2AC5", subdot: "\u2ABD", subedot: "\u2AC3", submult: "\u2AC1", subnE: "\u2ACB", subsetneqq: "\u2ACB", subne: "\u228A", subsetneq: "\u228A", subplus: "\u2ABF", subrarr: "\u2979", subsim: "\u2AC7", subsub: "\u2AD5", subsup: "\u2AD3", sung: "\u266A", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", supE: "\u2AC6", supseteqq: "\u2AC6", supdot: "\u2ABE", supdsub: "\u2AD8", supedot: "\u2AC4", suphsol: "\u27C9", suphsub: "\u2AD7", suplarr: "\u297B", supmult: "\u2AC2", supnE: "\u2ACC", supsetneqq: "\u2ACC", supne: "\u228B", supsetneq: "\u228B", supplus: "\u2AC0", supsim: "\u2AC8", supsub: "\u2AD4", supsup: "\u2AD6", swArr: "\u21D9", swnwar: "\u292A", szlig: "\xDF", target: "\u2316", tau: "\u03C4", tcaron: "\u0165", tcedil: "\u0163", tcy: "\u0442", telrec: "\u2315", tfr: "\u{1D531}", theta: "\u03B8", thetasym: "\u03D1", thetav: "\u03D1", vartheta: "\u03D1", thorn: "\xFE", times: "\xD7", timesbar: "\u2A31", timesd: "\u2A30", topbot: "\u2336", topcir: "\u2AF1", topf: "\u{1D565}", topfork: "\u2ADA", tprime: "\u2034", triangle: "\u25B5", utri: "\u25B5", triangleq: "\u225C", trie: "\u225C", tridot: "\u25EC", triminus: "\u2A3A", triplus: "\u2A39", trisb: "\u29CD", tritime: "\u2A3B", trpezium: "\u23E2", tscr: "\u{1D4C9}", tscy: "\u0446", tshcy: "\u045B", tstrok: "\u0167", uHar: "\u2963", uacute: "\xFA", ubrcy: "\u045E", ubreve: "\u016D", ucirc: "\xFB", ucy: "\u0443", udblac: "\u0171", ufisht: "\u297E", ufr: "\u{1D532}", ugrave: "\xF9", uhblk: "\u2580", ulcorn: "\u231C", ulcorner: "\u231C", ulcrop: "\u230F", ultri: "\u25F8", umacr: "\u016B", uogon: "\u0173", uopf: "\u{1D566}", upsi: "\u03C5", upsilon: "\u03C5", upuparrows: "\u21C8", uuarr: "\u21C8", urcorn: "\u231D", urcorner: "\u231D", urcrop: "\u230E", uring: "\u016F", urtri: "\u25F9", uscr: "\u{1D4CA}", utdot: "\u22F0", utilde: "\u0169", uuml: "\xFC", uwangle: "\u29A7", vBar: "\u2AE8", vBarv: "\u2AE9", vangrt: "\u299C", varsubsetneq: "\u228A\uFE00", vsubne: "\u228A\uFE00", varsubsetneqq: "\u2ACB\uFE00", vsubnE: "\u2ACB\uFE00", varsupsetneq: "\u228B\uFE00", vsupne: "\u228B\uFE00", varsupsetneqq: "\u2ACC\uFE00", vsupnE: "\u2ACC\uFE00", vcy: "\u0432", veebar: "\u22BB", veeeq: "\u225A", vellip: "\u22EE", vfr: "\u{1D533}", vopf: "\u{1D567}", vscr: "\u{1D4CB}", vzigzag: "\u299A", wcirc: "\u0175", wedbar: "\u2A5F", wedgeq: "\u2259", weierp: "\u2118", wp: "\u2118", wfr: "\u{1D534}", wopf: "\u{1D568}", wscr: "\u{1D4CC}", xfr: "\u{1D535}", xi: "\u03BE", xnis: "\u22FB", xopf: "\u{1D569}", xscr: "\u{1D4CD}", yacute: "\xFD", yacy: "\u044F", ycirc: "\u0177", ycy: "\u044B", yen: "\xA5", yfr: "\u{1D536}", yicy: "\u0457", yopf: "\u{1D56A}", yscr: "\u{1D4CE}", yucy: "\u044E", yuml: "\xFF", zacute: "\u017A", zcaron: "\u017E", zcy: "\u0437", zdot: "\u017C", zeta: "\u03B6", zfr: "\u{1D537}", zhcy: "\u0436", zigrarr: "\u21DD", zopf: "\u{1D56B}", zscr: "\u{1D4CF}", zwj: "\u200D", zwnj: "\u200C" };
var Ua = "\uE500";
Me.ngsp = Ua;
var Wa = [/@/, /^\s*$/, /[<>]/, /^[{}]$/, /&(#|[a-z])/i, /^\/\//];
function Bs(t9, e2) {
  if (e2 != null && !(Array.isArray(e2) && e2.length == 2)) throw new Error(`Expected '${t9}' to be an array, [start, end].`);
  if (e2 != null) {
    let r2 = e2[0], n3 = e2[1];
    Wa.forEach((s2) => {
      if (s2.test(r2) || s2.test(n3)) throw new Error(`['${r2}', '${n3}'] contains unusable interpolation symbol.`);
    });
  }
}
var Lr = class t3 {
  static fromArray(e2) {
    return e2 ? (Bs("interpolation", e2), new t3(e2[0], e2[1])) : Fr;
  }
  constructor(e2, r2) {
    this.start = e2, this.end = r2;
  }
};
var Fr = new Lr("{{", "}}");
var ft = class extends Ie {
  constructor(e2, r2, n3) {
    super(n3, e2), this.tokenType = r2;
  }
};
var Or = class {
  constructor(e2, r2, n3) {
    this.tokens = e2, this.errors = r2, this.nonNormalizedIcuExpressions = n3;
  }
};
function Us(t9, e2, r2, n3 = {}) {
  let s2 = new $r(new Ee(t9, e2), r2, n3);
  return s2.tokenize(), new Or(Co(s2.tokens), s2.errors, s2.nonNormalizedIcuExpressions);
}
var lo = /\r\n?/g;
function qe(t9) {
  return `Unexpected character "${t9 === 0 ? "EOF" : String.fromCharCode(t9)}"`;
}
function Is(t9) {
  return `Unknown entity "${t9}" - use the "&#<decimal>;" or  "&#x<hex>;" syntax`;
}
function co(t9, e2) {
  return `Unable to parse entity "${e2}" - ${t9} character reference entities must end with ";"`;
}
var Zt;
(function(t9) {
  t9.HEX = "hexadecimal", t9.DEC = "decimal";
})(Zt || (Zt = {}));
var dt = class {
  constructor(e2) {
    this.error = e2;
  }
};
var $r = class {
  constructor(e2, r2, n3) {
    this._getTagContentType = r2, this._currentTokenStart = null, this._currentTokenType = null, this._expansionCaseStack = [], this._inInterpolation = false, this._fullNameStack = [], this.tokens = [], this.errors = [], this.nonNormalizedIcuExpressions = [], this._tokenizeIcu = n3.tokenizeExpansionForms || false, this._interpolationConfig = n3.interpolationConfig || Fr, this._leadingTriviaCodePoints = n3.leadingTriviaChars && n3.leadingTriviaChars.map((i3) => i3.codePointAt(0) || 0), this._canSelfClose = n3.canSelfClose || false, this._allowHtmComponentClosingTags = n3.allowHtmComponentClosingTags || false;
    let s2 = n3.range || { endPos: e2.content.length, startPos: 0, startLine: 0, startCol: 0 };
    this._cursor = n3.escapedString ? new Mr(e2, s2) : new er(e2, s2), this._preserveLineEndings = n3.preserveLineEndings || false, this._i18nNormalizeLineEndingsInICUs = n3.i18nNormalizeLineEndingsInICUs || false, this._tokenizeBlocks = n3.tokenizeBlocks ?? true, this._tokenizeLet = n3.tokenizeLet ?? true;
    try {
      this._cursor.init();
    } catch (i3) {
      this.handleError(i3);
    }
  }
  _processCarriageReturns(e2) {
    return this._preserveLineEndings ? e2 : e2.replace(lo, `
`);
  }
  tokenize() {
    for (; this._cursor.peek() !== 0; ) {
      let e2 = this._cursor.clone();
      try {
        if (this._attemptCharCode(60)) if (this._attemptCharCode(33)) this._attemptStr("[CDATA[") ? this._consumeCdata(e2) : this._attemptStr("--") ? this._consumeComment(e2) : this._attemptStrCaseInsensitive("doctype") ? this._consumeDocType(e2) : this._consumeBogusComment(e2);
        else if (this._attemptCharCode(47)) this._consumeTagClose(e2);
        else {
          let r2 = this._cursor.clone();
          this._attemptCharCode(63) ? (this._cursor = r2, this._consumeBogusComment(e2)) : this._consumeTagOpen(e2);
        }
        else this._tokenizeLet && this._cursor.peek() === 64 && !this._inInterpolation && this._attemptStr("@let") ? this._consumeLetDeclaration(e2) : this._tokenizeBlocks && this._attemptCharCode(64) ? this._consumeBlockStart(e2) : this._tokenizeBlocks && !this._inInterpolation && !this._isInExpansionCase() && !this._isInExpansionForm() && this._attemptCharCode(125) ? this._consumeBlockEnd(e2) : this._tokenizeIcu && this._tokenizeExpansionForm() || this._consumeWithInterpolation(5, 8, () => this._isTextEnd(), () => this._isTagStart());
      } catch (r2) {
        this.handleError(r2);
      }
    }
    this._beginToken(34), this._endToken([]);
  }
  _getBlockName() {
    let e2 = false, r2 = this._cursor.clone();
    return this._attemptCharCodeUntilFn((n3) => at(n3) ? !e2 : $s(n3) ? (e2 = true, false) : true), this._cursor.getChars(r2).trim();
  }
  _consumeBlockStart(e2) {
    this._beginToken(25, e2);
    let r2 = this._endToken([this._getBlockName()]);
    if (this._cursor.peek() === 40) if (this._cursor.advance(), this._consumeBlockParameters(), this._attemptCharCodeUntilFn(b), this._attemptCharCode(41)) this._attemptCharCodeUntilFn(b);
    else {
      r2.type = 29;
      return;
    }
    this._attemptCharCode(123) ? (this._beginToken(26), this._endToken([])) : r2.type = 29;
  }
  _consumeBlockEnd(e2) {
    this._beginToken(27, e2), this._endToken([]);
  }
  _consumeBlockParameters() {
    for (this._attemptCharCodeUntilFn(Ms); this._cursor.peek() !== 41 && this._cursor.peek() !== 0; ) {
      this._beginToken(28);
      let e2 = this._cursor.clone(), r2 = null, n3 = 0;
      for (; this._cursor.peek() !== 59 && this._cursor.peek() !== 0 || r2 !== null; ) {
        let s2 = this._cursor.peek();
        if (s2 === 92) this._cursor.advance();
        else if (s2 === r2) r2 = null;
        else if (r2 === null && It(s2)) r2 = s2;
        else if (s2 === 40 && r2 === null) n3++;
        else if (s2 === 41 && r2 === null) {
          if (n3 === 0) break;
          n3 > 0 && n3--;
        }
        this._cursor.advance();
      }
      this._endToken([this._cursor.getChars(e2)]), this._attemptCharCodeUntilFn(Ms);
    }
  }
  _consumeLetDeclaration(e2) {
    if (this._beginToken(30, e2), at(this._cursor.peek())) this._attemptCharCodeUntilFn(b);
    else {
      let s2 = this._endToken([this._cursor.getChars(e2)]);
      s2.type = 33;
      return;
    }
    let r2 = this._endToken([this._getLetDeclarationName()]);
    if (this._attemptCharCodeUntilFn(b), !this._attemptCharCode(61)) {
      r2.type = 33;
      return;
    }
    this._attemptCharCodeUntilFn((s2) => b(s2) && !Pt(s2)), this._consumeLetDeclarationValue(), this._cursor.peek() === 59 ? (this._beginToken(32), this._endToken([]), this._cursor.advance()) : (r2.type = 33, r2.sourceSpan = this._cursor.getSpan(e2));
  }
  _getLetDeclarationName() {
    let e2 = this._cursor.clone(), r2 = false;
    return this._attemptCharCodeUntilFn((n3) => ot(n3) || n3 === 36 || n3 === 95 || r2 && Nt(n3) ? (r2 = true, false) : true), this._cursor.getChars(e2).trim();
  }
  _consumeLetDeclarationValue() {
    let e2 = this._cursor.clone();
    for (this._beginToken(31, e2); this._cursor.peek() !== 0; ) {
      let r2 = this._cursor.peek();
      if (r2 === 59) break;
      It(r2) && (this._cursor.advance(), this._attemptCharCodeUntilFn((n3) => n3 === 92 ? (this._cursor.advance(), false) : n3 === r2)), this._cursor.advance();
    }
    this._endToken([this._cursor.getChars(e2)]);
  }
  _tokenizeExpansionForm() {
    if (this.isExpansionFormStart()) return this._consumeExpansionFormStart(), true;
    if (fo(this._cursor.peek()) && this._isInExpansionForm()) return this._consumeExpansionCaseStart(), true;
    if (this._cursor.peek() === 125) {
      if (this._isInExpansionCase()) return this._consumeExpansionCaseEnd(), true;
      if (this._isInExpansionForm()) return this._consumeExpansionFormEnd(), true;
    }
    return false;
  }
  _beginToken(e2, r2 = this._cursor.clone()) {
    this._currentTokenStart = r2, this._currentTokenType = e2;
  }
  _endToken(e2, r2) {
    if (this._currentTokenStart === null) throw new ft("Programming error - attempted to end a token when there was no start to the token", this._currentTokenType, this._cursor.getSpan(r2));
    if (this._currentTokenType === null) throw new ft("Programming error - attempted to end a token which has no token type", null, this._cursor.getSpan(this._currentTokenStart));
    let n3 = { type: this._currentTokenType, parts: e2, sourceSpan: (r2 ?? this._cursor).getSpan(this._currentTokenStart, this._leadingTriviaCodePoints) };
    return this.tokens.push(n3), this._currentTokenStart = null, this._currentTokenType = null, n3;
  }
  _createError(e2, r2) {
    this._isInExpansionForm() && (e2 += ` (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.)`);
    let n3 = new ft(e2, this._currentTokenType, r2);
    return this._currentTokenStart = null, this._currentTokenType = null, new dt(n3);
  }
  handleError(e2) {
    if (e2 instanceof gt && (e2 = this._createError(e2.msg, this._cursor.getSpan(e2.cursor))), e2 instanceof dt) this.errors.push(e2.error);
    else throw e2;
  }
  _attemptCharCode(e2) {
    return this._cursor.peek() === e2 ? (this._cursor.advance(), true) : false;
  }
  _attemptCharCodeCaseInsensitive(e2) {
    return go(this._cursor.peek(), e2) ? (this._cursor.advance(), true) : false;
  }
  _requireCharCode(e2) {
    let r2 = this._cursor.clone();
    if (!this._attemptCharCode(e2)) throw this._createError(qe(this._cursor.peek()), this._cursor.getSpan(r2));
  }
  _attemptStr(e2) {
    let r2 = e2.length;
    if (this._cursor.charsLeft() < r2) return false;
    let n3 = this._cursor.clone();
    for (let s2 = 0; s2 < r2; s2++) if (!this._attemptCharCode(e2.charCodeAt(s2))) return this._cursor = n3, false;
    return true;
  }
  _attemptStrCaseInsensitive(e2) {
    for (let r2 = 0; r2 < e2.length; r2++) if (!this._attemptCharCodeCaseInsensitive(e2.charCodeAt(r2))) return false;
    return true;
  }
  _requireStr(e2) {
    let r2 = this._cursor.clone();
    if (!this._attemptStr(e2)) throw this._createError(qe(this._cursor.peek()), this._cursor.getSpan(r2));
  }
  _requireStrCaseInsensitive(e2) {
    let r2 = this._cursor.clone();
    if (!this._attemptStrCaseInsensitive(e2)) throw this._createError(qe(this._cursor.peek()), this._cursor.getSpan(r2));
  }
  _attemptCharCodeUntilFn(e2) {
    for (; !e2(this._cursor.peek()); ) this._cursor.advance();
  }
  _requireCharCodeUntilFn(e2, r2) {
    let n3 = this._cursor.clone();
    if (this._attemptCharCodeUntilFn(e2), this._cursor.diff(n3) < r2) throw this._createError(qe(this._cursor.peek()), this._cursor.getSpan(n3));
  }
  _attemptUntilChar(e2) {
    for (; this._cursor.peek() !== e2; ) this._cursor.advance();
  }
  _readChar() {
    let e2 = String.fromCodePoint(this._cursor.peek());
    return this._cursor.advance(), e2;
  }
  _consumeEntity(e2) {
    this._beginToken(9);
    let r2 = this._cursor.clone();
    if (this._cursor.advance(), this._attemptCharCode(35)) {
      let n3 = this._attemptCharCode(120) || this._attemptCharCode(88), s2 = this._cursor.clone();
      if (this._attemptCharCodeUntilFn(ho), this._cursor.peek() != 59) {
        this._cursor.advance();
        let a2 = n3 ? Zt.HEX : Zt.DEC;
        throw this._createError(co(a2, this._cursor.getChars(r2)), this._cursor.getSpan());
      }
      let i3 = this._cursor.getChars(s2);
      this._cursor.advance();
      try {
        let a2 = parseInt(i3, n3 ? 16 : 10);
        this._endToken([String.fromCharCode(a2), this._cursor.getChars(r2)]);
      } catch {
        throw this._createError(Is(this._cursor.getChars(r2)), this._cursor.getSpan());
      }
    } else {
      let n3 = this._cursor.clone();
      if (this._attemptCharCodeUntilFn(mo), this._cursor.peek() != 59) this._beginToken(e2, r2), this._cursor = n3, this._endToken(["&"]);
      else {
        let s2 = this._cursor.getChars(n3);
        this._cursor.advance();
        let i3 = Me[s2];
        if (!i3) throw this._createError(Is(s2), this._cursor.getSpan(r2));
        this._endToken([i3, `&${s2};`]);
      }
    }
  }
  _consumeRawText(e2, r2) {
    this._beginToken(e2 ? 6 : 7);
    let n3 = [];
    for (; ; ) {
      let s2 = this._cursor.clone(), i3 = r2();
      if (this._cursor = s2, i3) break;
      e2 && this._cursor.peek() === 38 ? (this._endToken([this._processCarriageReturns(n3.join(""))]), n3.length = 0, this._consumeEntity(6), this._beginToken(6)) : n3.push(this._readChar());
    }
    this._endToken([this._processCarriageReturns(n3.join(""))]);
  }
  _consumeComment(e2) {
    this._beginToken(10, e2), this._endToken([]), this._consumeRawText(false, () => this._attemptStr("-->")), this._beginToken(11), this._requireStr("-->"), this._endToken([]);
  }
  _consumeBogusComment(e2) {
    this._beginToken(10, e2), this._endToken([]), this._consumeRawText(false, () => this._cursor.peek() === 62), this._beginToken(11), this._cursor.advance(), this._endToken([]);
  }
  _consumeCdata(e2) {
    this._beginToken(12, e2), this._endToken([]), this._consumeRawText(false, () => this._attemptStr("]]>")), this._beginToken(13), this._requireStr("]]>"), this._endToken([]);
  }
  _consumeDocType(e2) {
    this._beginToken(18, e2), this._endToken([]), this._consumeRawText(false, () => this._cursor.peek() === 62), this._beginToken(19), this._cursor.advance(), this._endToken([]);
  }
  _consumePrefixAndName() {
    let e2 = this._cursor.clone(), r2 = "";
    for (; this._cursor.peek() !== 58 && !po(this._cursor.peek()); ) this._cursor.advance();
    let n3;
    this._cursor.peek() === 58 ? (r2 = this._cursor.getChars(e2), this._cursor.advance(), n3 = this._cursor.clone()) : n3 = e2, this._requireCharCodeUntilFn(Rs, r2 === "" ? 0 : 1);
    let s2 = this._cursor.getChars(n3);
    return [r2, s2];
  }
  _consumeTagOpen(e2) {
    let r2, n3, s2, i3 = [];
    try {
      if (!ot(this._cursor.peek())) throw this._createError(qe(this._cursor.peek()), this._cursor.getSpan(e2));
      for (s2 = this._consumeTagOpenStart(e2), n3 = s2.parts[0], r2 = s2.parts[1], this._attemptCharCodeUntilFn(b); this._cursor.peek() !== 47 && this._cursor.peek() !== 62 && this._cursor.peek() !== 60 && this._cursor.peek() !== 0; ) {
        let [o3, u2] = this._consumeAttributeName();
        if (this._attemptCharCodeUntilFn(b), this._attemptCharCode(61)) {
          this._attemptCharCodeUntilFn(b);
          let p = this._consumeAttributeValue();
          i3.push({ prefix: o3, name: u2, value: p });
        } else i3.push({ prefix: o3, name: u2 });
        this._attemptCharCodeUntilFn(b);
      }
      this._consumeTagOpenEnd();
    } catch (o3) {
      if (o3 instanceof dt) {
        s2 ? s2.type = 4 : (this._beginToken(5, e2), this._endToken(["<"]));
        return;
      }
      throw o3;
    }
    if (this._canSelfClose && this.tokens[this.tokens.length - 1].type === 2) return;
    let a2 = this._getTagContentType(r2, n3, this._fullNameStack.length > 0, i3);
    this._handleFullNameStackForTagOpen(n3, r2), a2 === I2.RAW_TEXT ? this._consumeRawTextWithTagClose(n3, r2, false) : a2 === I2.ESCAPABLE_RAW_TEXT && this._consumeRawTextWithTagClose(n3, r2, true);
  }
  _consumeRawTextWithTagClose(e2, r2, n3) {
    this._consumeRawText(n3, () => !this._attemptCharCode(60) || !this._attemptCharCode(47) || (this._attemptCharCodeUntilFn(b), !this._attemptStrCaseInsensitive(e2 ? `${e2}:${r2}` : r2)) ? false : (this._attemptCharCodeUntilFn(b), this._attemptCharCode(62))), this._beginToken(3), this._requireCharCodeUntilFn((s2) => s2 === 62, 3), this._cursor.advance(), this._endToken([e2, r2]), this._handleFullNameStackForTagClose(e2, r2);
  }
  _consumeTagOpenStart(e2) {
    this._beginToken(0, e2);
    let r2 = this._consumePrefixAndName();
    return this._endToken(r2);
  }
  _consumeAttributeName() {
    let e2 = this._cursor.peek();
    if (e2 === 39 || e2 === 34) throw this._createError(qe(e2), this._cursor.getSpan());
    this._beginToken(14);
    let r2 = this._consumePrefixAndName();
    return this._endToken(r2), r2;
  }
  _consumeAttributeValue() {
    let e2;
    if (this._cursor.peek() === 39 || this._cursor.peek() === 34) {
      let r2 = this._cursor.peek();
      this._consumeQuote(r2);
      let n3 = () => this._cursor.peek() === r2;
      e2 = this._consumeWithInterpolation(16, 17, n3, n3), this._consumeQuote(r2);
    } else {
      let r2 = () => Rs(this._cursor.peek());
      e2 = this._consumeWithInterpolation(16, 17, r2, r2);
    }
    return e2;
  }
  _consumeQuote(e2) {
    this._beginToken(15), this._requireCharCode(e2), this._endToken([String.fromCodePoint(e2)]);
  }
  _consumeTagOpenEnd() {
    let e2 = this._attemptCharCode(47) ? 2 : 1;
    this._beginToken(e2), this._requireCharCode(62), this._endToken([]);
  }
  _consumeTagClose(e2) {
    if (this._beginToken(3, e2), this._attemptCharCodeUntilFn(b), this._allowHtmComponentClosingTags && this._attemptCharCode(47)) this._attemptCharCodeUntilFn(b), this._requireCharCode(62), this._endToken([]);
    else {
      let [r2, n3] = this._consumePrefixAndName();
      this._attemptCharCodeUntilFn(b), this._requireCharCode(62), this._endToken([r2, n3]), this._handleFullNameStackForTagClose(r2, n3);
    }
  }
  _consumeExpansionFormStart() {
    this._beginToken(20), this._requireCharCode(123), this._endToken([]), this._expansionCaseStack.push(20), this._beginToken(7);
    let e2 = this._readUntil(44), r2 = this._processCarriageReturns(e2);
    if (this._i18nNormalizeLineEndingsInICUs) this._endToken([r2]);
    else {
      let s2 = this._endToken([e2]);
      r2 !== e2 && this.nonNormalizedIcuExpressions.push(s2);
    }
    this._requireCharCode(44), this._attemptCharCodeUntilFn(b), this._beginToken(7);
    let n3 = this._readUntil(44);
    this._endToken([n3]), this._requireCharCode(44), this._attemptCharCodeUntilFn(b);
  }
  _consumeExpansionCaseStart() {
    this._beginToken(21);
    let e2 = this._readUntil(123).trim();
    this._endToken([e2]), this._attemptCharCodeUntilFn(b), this._beginToken(22), this._requireCharCode(123), this._endToken([]), this._attemptCharCodeUntilFn(b), this._expansionCaseStack.push(22);
  }
  _consumeExpansionCaseEnd() {
    this._beginToken(23), this._requireCharCode(125), this._endToken([]), this._attemptCharCodeUntilFn(b), this._expansionCaseStack.pop();
  }
  _consumeExpansionFormEnd() {
    this._beginToken(24), this._requireCharCode(125), this._endToken([]), this._expansionCaseStack.pop();
  }
  _consumeWithInterpolation(e2, r2, n3, s2) {
    this._beginToken(e2);
    let i3 = [];
    for (; !n3(); ) {
      let o3 = this._cursor.clone();
      this._interpolationConfig && this._attemptStr(this._interpolationConfig.start) ? (this._endToken([this._processCarriageReturns(i3.join(""))], o3), i3.length = 0, this._consumeInterpolation(r2, o3, s2), this._beginToken(e2)) : this._cursor.peek() === 38 ? (this._endToken([this._processCarriageReturns(i3.join(""))]), i3.length = 0, this._consumeEntity(e2), this._beginToken(e2)) : i3.push(this._readChar());
    }
    this._inInterpolation = false;
    let a2 = this._processCarriageReturns(i3.join(""));
    return this._endToken([a2]), a2;
  }
  _consumeInterpolation(e2, r2, n3) {
    let s2 = [];
    this._beginToken(e2, r2), s2.push(this._interpolationConfig.start);
    let i3 = this._cursor.clone(), a2 = null, o3 = false;
    for (; this._cursor.peek() !== 0 && (n3 === null || !n3()); ) {
      let u2 = this._cursor.clone();
      if (this._isTagStart()) {
        this._cursor = u2, s2.push(this._getProcessedChars(i3, u2)), this._endToken(s2);
        return;
      }
      if (a2 === null) if (this._attemptStr(this._interpolationConfig.end)) {
        s2.push(this._getProcessedChars(i3, u2)), s2.push(this._interpolationConfig.end), this._endToken(s2);
        return;
      } else this._attemptStr("//") && (o3 = true);
      let p = this._cursor.peek();
      this._cursor.advance(), p === 92 ? this._cursor.advance() : p === a2 ? a2 = null : !o3 && a2 === null && It(p) && (a2 = p);
    }
    s2.push(this._getProcessedChars(i3, this._cursor)), this._endToken(s2);
  }
  _getProcessedChars(e2, r2) {
    return this._processCarriageReturns(r2.getChars(e2));
  }
  _isTextEnd() {
    return !!(this._isTagStart() || this._cursor.peek() === 0 || this._tokenizeIcu && !this._inInterpolation && (this.isExpansionFormStart() || this._cursor.peek() === 125 && this._isInExpansionCase()) || this._tokenizeBlocks && !this._inInterpolation && !this._isInExpansion() && (this._isBlockStart() || this._cursor.peek() === 64 || this._cursor.peek() === 125));
  }
  _isTagStart() {
    if (this._cursor.peek() === 60) {
      let e2 = this._cursor.clone();
      e2.advance();
      let r2 = e2.peek();
      if (97 <= r2 && r2 <= 122 || 65 <= r2 && r2 <= 90 || r2 === 47 || r2 === 33) return true;
    }
    return false;
  }
  _isBlockStart() {
    if (this._tokenizeBlocks && this._cursor.peek() === 64) {
      let e2 = this._cursor.clone();
      if (e2.advance(), $s(e2.peek())) return true;
    }
    return false;
  }
  _readUntil(e2) {
    let r2 = this._cursor.clone();
    return this._attemptUntilChar(e2), this._cursor.getChars(r2);
  }
  _isInExpansion() {
    return this._isInExpansionCase() || this._isInExpansionForm();
  }
  _isInExpansionCase() {
    return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === 22;
  }
  _isInExpansionForm() {
    return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === 20;
  }
  isExpansionFormStart() {
    if (this._cursor.peek() !== 123) return false;
    if (this._interpolationConfig) {
      let e2 = this._cursor.clone(), r2 = this._attemptStr(this._interpolationConfig.start);
      return this._cursor = e2, !r2;
    }
    return true;
  }
  _handleFullNameStackForTagOpen(e2, r2) {
    let n3 = Oe(e2, r2);
    (this._fullNameStack.length === 0 || this._fullNameStack[this._fullNameStack.length - 1] === n3) && this._fullNameStack.push(n3);
  }
  _handleFullNameStackForTagClose(e2, r2) {
    let n3 = Oe(e2, r2);
    this._fullNameStack.length !== 0 && this._fullNameStack[this._fullNameStack.length - 1] === n3 && this._fullNameStack.pop();
  }
};
function b(t9) {
  return !at(t9) || t9 === 0;
}
function Rs(t9) {
  return at(t9) || t9 === 62 || t9 === 60 || t9 === 47 || t9 === 39 || t9 === 34 || t9 === 61 || t9 === 0;
}
function po(t9) {
  return (t9 < 97 || 122 < t9) && (t9 < 65 || 90 < t9) && (t9 < 48 || t9 > 57);
}
function ho(t9) {
  return t9 === 59 || t9 === 0 || !gs(t9);
}
function mo(t9) {
  return t9 === 59 || t9 === 0 || !ot(t9);
}
function fo(t9) {
  return t9 !== 125;
}
function go(t9, e2) {
  return Os(t9) === Os(e2);
}
function Os(t9) {
  return t9 >= 97 && t9 <= 122 ? t9 - 97 + 65 : t9;
}
function $s(t9) {
  return ot(t9) || Nt(t9) || t9 === 95;
}
function Ms(t9) {
  return t9 !== 59 && b(t9);
}
function Co(t9) {
  let e2 = [], r2;
  for (let n3 = 0; n3 < t9.length; n3++) {
    let s2 = t9[n3];
    r2 && r2.type === 5 && s2.type === 5 || r2 && r2.type === 16 && s2.type === 16 ? (r2.parts[0] += s2.parts[0], r2.sourceSpan.end = s2.sourceSpan.end) : (r2 = s2, e2.push(r2));
  }
  return e2;
}
var er = class t4 {
  constructor(e2, r2) {
    if (e2 instanceof t4) {
      this.file = e2.file, this.input = e2.input, this.end = e2.end;
      let n3 = e2.state;
      this.state = { peek: n3.peek, offset: n3.offset, line: n3.line, column: n3.column };
    } else {
      if (!r2) throw new Error("Programming error: the range argument must be provided with a file argument.");
      this.file = e2, this.input = e2.content, this.end = r2.endPos, this.state = { peek: -1, offset: r2.startPos, line: r2.startLine, column: r2.startCol };
    }
  }
  clone() {
    return new t4(this);
  }
  peek() {
    return this.state.peek;
  }
  charsLeft() {
    return this.end - this.state.offset;
  }
  diff(e2) {
    return this.state.offset - e2.state.offset;
  }
  advance() {
    this.advanceState(this.state);
  }
  init() {
    this.updatePeek(this.state);
  }
  getSpan(e2, r2) {
    e2 = e2 || this;
    let n3 = e2;
    if (r2) for (; this.diff(e2) > 0 && r2.indexOf(e2.peek()) !== -1; ) n3 === e2 && (e2 = e2.clone()), e2.advance();
    let s2 = this.locationFromCursor(e2), i3 = this.locationFromCursor(this), a2 = n3 !== e2 ? this.locationFromCursor(n3) : s2;
    return new h2(s2, i3, a2);
  }
  getChars(e2) {
    return this.input.substring(e2.state.offset, this.state.offset);
  }
  charAt(e2) {
    return this.input.charCodeAt(e2);
  }
  advanceState(e2) {
    if (e2.offset >= this.end) throw this.state = e2, new gt('Unexpected character "EOF"', this);
    let r2 = this.charAt(e2.offset);
    r2 === 10 ? (e2.line++, e2.column = 0) : Pt(r2) || e2.column++, e2.offset++, this.updatePeek(e2);
  }
  updatePeek(e2) {
    e2.peek = e2.offset >= this.end ? 0 : this.charAt(e2.offset);
  }
  locationFromCursor(e2) {
    return new ie(e2.file, e2.state.offset, e2.state.line, e2.state.column);
  }
};
var Mr = class t5 extends er {
  constructor(e2, r2) {
    e2 instanceof t5 ? (super(e2), this.internalState = { ...e2.internalState }) : (super(e2, r2), this.internalState = this.state);
  }
  advance() {
    this.state = this.internalState, super.advance(), this.processEscapeSequence();
  }
  init() {
    super.init(), this.processEscapeSequence();
  }
  clone() {
    return new t5(this);
  }
  getChars(e2) {
    let r2 = e2.clone(), n3 = "";
    for (; r2.internalState.offset < this.internalState.offset; ) n3 += String.fromCodePoint(r2.peek()), r2.advance();
    return n3;
  }
  processEscapeSequence() {
    let e2 = () => this.internalState.peek;
    if (e2() === 92) if (this.internalState = { ...this.state }, this.advanceState(this.internalState), e2() === 110) this.state.peek = 10;
    else if (e2() === 114) this.state.peek = 13;
    else if (e2() === 118) this.state.peek = 11;
    else if (e2() === 116) this.state.peek = 9;
    else if (e2() === 98) this.state.peek = 8;
    else if (e2() === 102) this.state.peek = 12;
    else if (e2() === 117) if (this.advanceState(this.internalState), e2() === 123) {
      this.advanceState(this.internalState);
      let r2 = this.clone(), n3 = 0;
      for (; e2() !== 125; ) this.advanceState(this.internalState), n3++;
      this.state.peek = this.decodeHexDigits(r2, n3);
    } else {
      let r2 = this.clone();
      this.advanceState(this.internalState), this.advanceState(this.internalState), this.advanceState(this.internalState), this.state.peek = this.decodeHexDigits(r2, 4);
    }
    else if (e2() === 120) {
      this.advanceState(this.internalState);
      let r2 = this.clone();
      this.advanceState(this.internalState), this.state.peek = this.decodeHexDigits(r2, 2);
    } else if (yr(e2())) {
      let r2 = "", n3 = 0, s2 = this.clone();
      for (; yr(e2()) && n3 < 3; ) s2 = this.clone(), r2 += String.fromCodePoint(e2()), this.advanceState(this.internalState), n3++;
      this.state.peek = parseInt(r2, 8), this.internalState = s2.internalState;
    } else Pt(this.internalState.peek) ? (this.advanceState(this.internalState), this.state = this.internalState) : this.state.peek = this.internalState.peek;
  }
  decodeHexDigits(e2, r2) {
    let n3 = this.input.slice(e2.internalState.offset, e2.internalState.offset + r2), s2 = parseInt(n3, 16);
    if (isNaN(s2)) throw e2.state = e2.internalState, new gt("Invalid hexadecimal escape sequence", e2);
    return s2;
  }
};
var gt = class {
  constructor(e2, r2) {
    this.msg = e2, this.cursor = r2;
  }
};
var L = class t6 extends Ie {
  static create(e2, r2, n3) {
    return new t6(e2, r2, n3);
  }
  constructor(e2, r2, n3) {
    super(r2, n3), this.elementName = e2;
  }
};
var Vr = class {
  constructor(e2, r2) {
    this.rootNodes = e2, this.errors = r2;
  }
};
var tr = class {
  constructor(e2) {
    this.getTagDefinition = e2;
  }
  parse(e2, r2, n3, s2 = false, i3) {
    let a2 = (D) => (R2, ...F) => D(R2.toLowerCase(), ...F), o3 = s2 ? this.getTagDefinition : a2(this.getTagDefinition), u2 = (D) => o3(D).getContentType(), p = s2 ? i3 : a2(i3), f = Us(e2, r2, i3 ? (D, R2, F, c3) => {
      let g = p(D, R2, F, c3);
      return g !== void 0 ? g : u2(D);
    } : u2, n3), d = n3 && n3.canSelfClose || false, C = n3 && n3.allowHtmComponentClosingTags || false, A2 = new Ur(f.tokens, o3, d, C, s2);
    return A2.build(), new Vr(A2.rootNodes, f.errors.concat(A2.errors));
  }
};
var Ur = class t7 {
  constructor(e2, r2, n3, s2, i3) {
    this.tokens = e2, this.getTagDefinition = r2, this.canSelfClose = n3, this.allowHtmComponentClosingTags = s2, this.isTagNameCaseSensitive = i3, this._index = -1, this._containerStack = [], this.rootNodes = [], this.errors = [], this._advance();
  }
  build() {
    for (; this._peek.type !== 34; ) this._peek.type === 0 || this._peek.type === 4 ? this._consumeStartTag(this._advance()) : this._peek.type === 3 ? (this._closeVoidElement(), this._consumeEndTag(this._advance())) : this._peek.type === 12 ? (this._closeVoidElement(), this._consumeCdata(this._advance())) : this._peek.type === 10 ? (this._closeVoidElement(), this._consumeComment(this._advance())) : this._peek.type === 5 || this._peek.type === 7 || this._peek.type === 6 ? (this._closeVoidElement(), this._consumeText(this._advance())) : this._peek.type === 20 ? this._consumeExpansion(this._advance()) : this._peek.type === 25 ? (this._closeVoidElement(), this._consumeBlockOpen(this._advance())) : this._peek.type === 27 ? (this._closeVoidElement(), this._consumeBlockClose(this._advance())) : this._peek.type === 29 ? (this._closeVoidElement(), this._consumeIncompleteBlock(this._advance())) : this._peek.type === 30 ? (this._closeVoidElement(), this._consumeLet(this._advance())) : this._peek.type === 18 ? this._consumeDocType(this._advance()) : this._peek.type === 33 ? (this._closeVoidElement(), this._consumeIncompleteLet(this._advance())) : this._advance();
    for (let e2 of this._containerStack) e2 instanceof ee && this.errors.push(L.create(e2.name, e2.sourceSpan, `Unclosed block "${e2.name}"`));
  }
  _advance() {
    let e2 = this._peek;
    return this._index < this.tokens.length - 1 && this._index++, this._peek = this.tokens[this._index], e2;
  }
  _advanceIf(e2) {
    return this._peek.type === e2 ? this._advance() : null;
  }
  _consumeCdata(e2) {
    let r2 = this._advance(), n3 = this._getText(r2), s2 = this._advanceIf(13);
    this._addToParent(new Vt(n3, new h2(e2.sourceSpan.start, (s2 || r2).sourceSpan.end), [r2]));
  }
  _consumeComment(e2) {
    let r2 = this._advanceIf(7), n3 = this._advanceIf(11), s2 = r2 != null ? r2.parts[0].trim() : null, i3 = n3 == null ? e2.sourceSpan : new h2(e2.sourceSpan.start, n3.sourceSpan.end, e2.sourceSpan.fullStart);
    this._addToParent(new Gt(s2, i3));
  }
  _consumeDocType(e2) {
    let r2 = this._advanceIf(7), n3 = this._advanceIf(19), s2 = r2 != null ? r2.parts[0].trim() : null, i3 = new h2(e2.sourceSpan.start, (n3 || r2 || e2).sourceSpan.end);
    this._addToParent(new Yt(s2, i3));
  }
  _consumeExpansion(e2) {
    let r2 = this._advance(), n3 = this._advance(), s2 = [];
    for (; this._peek.type === 21; ) {
      let a2 = this._parseExpansionCase();
      if (!a2) return;
      s2.push(a2);
    }
    if (this._peek.type !== 24) {
      this.errors.push(L.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '}'."));
      return;
    }
    let i3 = new h2(e2.sourceSpan.start, this._peek.sourceSpan.end, e2.sourceSpan.fullStart);
    this._addToParent(new Ut(r2.parts[0], n3.parts[0], s2, i3, r2.sourceSpan)), this._advance();
  }
  _parseExpansionCase() {
    let e2 = this._advance();
    if (this._peek.type !== 22) return this.errors.push(L.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '{'.")), null;
    let r2 = this._advance(), n3 = this._collectExpansionExpTokens(r2);
    if (!n3) return null;
    let s2 = this._advance();
    n3.push({ type: 34, parts: [], sourceSpan: s2.sourceSpan });
    let i3 = new t7(n3, this.getTagDefinition, this.canSelfClose, this.allowHtmComponentClosingTags, this.isTagNameCaseSensitive);
    if (i3.build(), i3.errors.length > 0) return this.errors = this.errors.concat(i3.errors), null;
    let a2 = new h2(e2.sourceSpan.start, s2.sourceSpan.end, e2.sourceSpan.fullStart), o3 = new h2(r2.sourceSpan.start, s2.sourceSpan.end, r2.sourceSpan.fullStart);
    return new Wt(e2.parts[0], i3.rootNodes, a2, e2.sourceSpan, o3);
  }
  _collectExpansionExpTokens(e2) {
    let r2 = [], n3 = [22];
    for (; ; ) {
      if ((this._peek.type === 20 || this._peek.type === 22) && n3.push(this._peek.type), this._peek.type === 23) if (Ws(n3, 22)) {
        if (n3.pop(), n3.length === 0) return r2;
      } else return this.errors.push(L.create(null, e2.sourceSpan, "Invalid ICU message. Missing '}'.")), null;
      if (this._peek.type === 24) if (Ws(n3, 20)) n3.pop();
      else return this.errors.push(L.create(null, e2.sourceSpan, "Invalid ICU message. Missing '}'.")), null;
      if (this._peek.type === 34) return this.errors.push(L.create(null, e2.sourceSpan, "Invalid ICU message. Missing '}'.")), null;
      r2.push(this._advance());
    }
  }
  _getText(e2) {
    let r2 = e2.parts[0];
    if (r2.length > 0 && r2[0] == `
`) {
      let n3 = this._getClosestParentElement();
      n3 != null && n3.children.length == 0 && this.getTagDefinition(n3.name).ignoreFirstLf && (r2 = r2.substring(1));
    }
    return r2;
  }
  _consumeText(e2) {
    let r2 = [e2], n3 = e2.sourceSpan, s2 = e2.parts[0];
    if (s2.length > 0 && s2[0] === `
`) {
      let i3 = this._getContainer();
      i3 != null && i3.children.length === 0 && this.getTagDefinition(i3.name).ignoreFirstLf && (s2 = s2.substring(1), r2[0] = { type: e2.type, sourceSpan: e2.sourceSpan, parts: [s2] });
    }
    for (; this._peek.type === 8 || this._peek.type === 5 || this._peek.type === 9; ) e2 = this._advance(), r2.push(e2), e2.type === 8 ? s2 += e2.parts.join("").replace(/&([^;]+);/g, zs) : e2.type === 9 ? s2 += e2.parts[0] : s2 += e2.parts.join("");
    if (s2.length > 0) {
      let i3 = e2.sourceSpan;
      this._addToParent(new Ht(s2, new h2(n3.start, i3.end, n3.fullStart, n3.details), r2));
    }
  }
  _closeVoidElement() {
    let e2 = this._getContainer();
    e2 instanceof G && this.getTagDefinition(e2.name).isVoid && this._containerStack.pop();
  }
  _consumeStartTag(e2) {
    let [r2, n3] = e2.parts, s2 = [];
    for (; this._peek.type === 14; ) s2.push(this._consumeAttr(this._advance()));
    let i3 = this._getElementFullName(r2, n3, this._getClosestParentElement()), a2 = false;
    if (this._peek.type === 2) {
      this._advance(), a2 = true;
      let C = this.getTagDefinition(i3);
      this.canSelfClose || C.canSelfClose || Re(i3) !== null || C.isVoid || this.errors.push(L.create(i3, e2.sourceSpan, `Only void, custom and foreign elements can be self closed "${e2.parts[1]}"`));
    } else this._peek.type === 1 && (this._advance(), a2 = false);
    let o3 = this._peek.sourceSpan.fullStart, u2 = new h2(e2.sourceSpan.start, o3, e2.sourceSpan.fullStart), p = new h2(e2.sourceSpan.start, o3, e2.sourceSpan.fullStart), l2 = new h2(e2.sourceSpan.start.moveBy(1), e2.sourceSpan.end), f = new G(i3, s2, [], u2, p, void 0, l2), d = this._getContainer();
    this._pushContainer(f, d instanceof G && this.getTagDefinition(d.name).isClosedByChild(f.name)), a2 ? this._popContainer(i3, G, u2) : e2.type === 4 && (this._popContainer(i3, G, null), this.errors.push(L.create(i3, u2, `Opening tag "${i3}" not terminated.`)));
  }
  _pushContainer(e2, r2) {
    r2 && this._containerStack.pop(), this._addToParent(e2), this._containerStack.push(e2);
  }
  _consumeEndTag(e2) {
    let r2 = this.allowHtmComponentClosingTags && e2.parts.length === 0 ? null : this._getElementFullName(e2.parts[0], e2.parts[1], this._getClosestParentElement());
    if (r2 && this.getTagDefinition(r2).isVoid) this.errors.push(L.create(r2, e2.sourceSpan, `Void elements do not have end tags "${e2.parts[1]}"`));
    else if (!this._popContainer(r2, G, e2.sourceSpan)) {
      let n3 = `Unexpected closing tag "${r2}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;
      this.errors.push(L.create(r2, e2.sourceSpan, n3));
    }
  }
  _popContainer(e2, r2, n3) {
    let s2 = false;
    for (let i3 = this._containerStack.length - 1; i3 >= 0; i3--) {
      let a2 = this._containerStack[i3];
      if (Re(a2.name) ? a2.name === e2 : (e2 == null || a2.name.toLowerCase() === e2.toLowerCase()) && a2 instanceof r2) return a2.endSourceSpan = n3, a2.sourceSpan.end = n3 !== null ? n3.end : a2.sourceSpan.end, this._containerStack.splice(i3, this._containerStack.length - i3), !s2;
      (a2 instanceof ee || a2 instanceof G && !this.getTagDefinition(a2.name).closedByParent) && (s2 = true);
    }
    return false;
  }
  _consumeAttr(e2) {
    let r2 = Oe(e2.parts[0], e2.parts[1]), n3 = e2.sourceSpan.end, s2;
    this._peek.type === 15 && (s2 = this._advance());
    let i3 = "", a2 = [], o3, u2;
    if (this._peek.type === 16) for (o3 = this._peek.sourceSpan, u2 = this._peek.sourceSpan.end; this._peek.type === 16 || this._peek.type === 17 || this._peek.type === 9; ) {
      let f = this._advance();
      a2.push(f), f.type === 17 ? i3 += f.parts.join("").replace(/&([^;]+);/g, zs) : f.type === 9 ? i3 += f.parts[0] : i3 += f.parts.join(""), u2 = n3 = f.sourceSpan.end;
    }
    this._peek.type === 15 && (u2 = n3 = this._advance().sourceSpan.end);
    let l2 = o3 && u2 && new h2((s2 == null ? void 0 : s2.sourceSpan.start) ?? o3.start, u2, (s2 == null ? void 0 : s2.sourceSpan.fullStart) ?? o3.fullStart);
    return new zt(r2, i3, new h2(e2.sourceSpan.start, n3, e2.sourceSpan.fullStart), e2.sourceSpan, l2, a2.length > 0 ? a2 : void 0, void 0);
  }
  _consumeBlockOpen(e2) {
    let r2 = [];
    for (; this._peek.type === 28; ) {
      let o3 = this._advance();
      r2.push(new ct(o3.parts[0], o3.sourceSpan));
    }
    this._peek.type === 26 && this._advance();
    let n3 = this._peek.sourceSpan.fullStart, s2 = new h2(e2.sourceSpan.start, n3, e2.sourceSpan.fullStart), i3 = new h2(e2.sourceSpan.start, n3, e2.sourceSpan.fullStart), a2 = new ee(e2.parts[0], r2, [], s2, e2.sourceSpan, i3);
    this._pushContainer(a2, false);
  }
  _consumeBlockClose(e2) {
    this._popContainer(null, ee, e2.sourceSpan) || this.errors.push(L.create(null, e2.sourceSpan, 'Unexpected closing block. The block may have been closed earlier. If you meant to write the } character, you should use the "&#125;" HTML entity instead.'));
  }
  _consumeIncompleteBlock(e2) {
    let r2 = [];
    for (; this._peek.type === 28; ) {
      let o3 = this._advance();
      r2.push(new ct(o3.parts[0], o3.sourceSpan));
    }
    let n3 = this._peek.sourceSpan.fullStart, s2 = new h2(e2.sourceSpan.start, n3, e2.sourceSpan.fullStart), i3 = new h2(e2.sourceSpan.start, n3, e2.sourceSpan.fullStart), a2 = new ee(e2.parts[0], r2, [], s2, e2.sourceSpan, i3);
    this._pushContainer(a2, false), this._popContainer(null, ee, null), this.errors.push(L.create(e2.parts[0], s2, `Incomplete block "${e2.parts[0]}". If you meant to write the @ character, you should use the "&#64;" HTML entity instead.`));
  }
  _consumeLet(e2) {
    let r2 = e2.parts[0], n3, s2;
    if (this._peek.type !== 31) {
      this.errors.push(L.create(e2.parts[0], e2.sourceSpan, `Invalid @let declaration "${r2}". Declaration must have a value.`));
      return;
    } else n3 = this._advance();
    if (this._peek.type !== 32) {
      this.errors.push(L.create(e2.parts[0], e2.sourceSpan, `Unterminated @let declaration "${r2}". Declaration must be terminated with a semicolon.`));
      return;
    } else s2 = this._advance();
    let i3 = s2.sourceSpan.fullStart, a2 = new h2(e2.sourceSpan.start, i3, e2.sourceSpan.fullStart), o3 = e2.sourceSpan.toString().lastIndexOf(r2), u2 = e2.sourceSpan.start.moveBy(o3), p = new h2(u2, e2.sourceSpan.end), l2 = new pt(r2, n3.parts[0], a2, p, n3.sourceSpan);
    this._addToParent(l2);
  }
  _consumeIncompleteLet(e2) {
    let r2 = e2.parts[0] ?? "", n3 = r2 ? ` "${r2}"` : "";
    if (r2.length > 0) {
      let s2 = e2.sourceSpan.toString().lastIndexOf(r2), i3 = e2.sourceSpan.start.moveBy(s2), a2 = new h2(i3, e2.sourceSpan.end), o3 = new h2(e2.sourceSpan.start, e2.sourceSpan.start.moveBy(0)), u2 = new pt(r2, "", e2.sourceSpan, a2, o3);
      this._addToParent(u2);
    }
    this.errors.push(L.create(e2.parts[0], e2.sourceSpan, `Incomplete @let declaration${n3}. @let declarations must be written as \`@let <name> = <value>;\``));
  }
  _getContainer() {
    return this._containerStack.length > 0 ? this._containerStack[this._containerStack.length - 1] : null;
  }
  _getClosestParentElement() {
    for (let e2 = this._containerStack.length - 1; e2 > -1; e2--) if (this._containerStack[e2] instanceof G) return this._containerStack[e2];
    return null;
  }
  _addToParent(e2) {
    let r2 = this._getContainer();
    r2 === null ? this.rootNodes.push(e2) : r2.children.push(e2);
  }
  _getElementFullName(e2, r2, n3) {
    if (e2 === "" && (e2 = this.getTagDefinition(r2).implicitNamespacePrefix || "", e2 === "" && n3 != null)) {
      let s2 = ut(n3.name)[1];
      this.getTagDefinition(s2).preventNamespaceInheritance || (e2 = Re(n3.name));
    }
    return Oe(e2, r2);
  }
};
function Ws(t9, e2) {
  return t9.length > 0 && t9[t9.length - 1] === e2;
}
function zs(t9, e2) {
  return Me[e2] !== void 0 ? Me[e2] || t9 : /^#x[a-f0-9]+$/i.test(e2) ? String.fromCodePoint(parseInt(e2.slice(2), 16)) : /^#\d+$/.test(e2) ? String.fromCodePoint(parseInt(e2.slice(1), 10)) : t9;
}
var rr = class extends tr {
  constructor() {
    super($e);
  }
  parse(e2, r2, n3, s2 = false, i3) {
    return super.parse(e2, r2, n3, s2, i3);
  }
};
var Wr = null;
var So = () => (Wr || (Wr = new rr()), Wr);
function zr(t9, e2 = {}) {
  let { canSelfClose: r2 = false, allowHtmComponentClosingTags: n3 = false, isTagNameCaseSensitive: s2 = false, getTagContentType: i3, tokenizeAngularBlocks: a2 = false, tokenizeAngularLetDeclaration: o3 = false } = e2;
  return So().parse(t9, "angular-html-parser", { tokenizeExpansionForms: a2, interpolationConfig: void 0, canSelfClose: r2, allowHtmComponentClosingTags: n3, tokenizeBlocks: a2, tokenizeLet: o3 }, s2, i3);
}
function _o(t9, e2) {
  let r2 = new SyntaxError(t9 + " (" + e2.loc.start.line + ":" + e2.loc.start.column + ")");
  return Object.assign(r2, e2);
}
var Gs = _o;
var Ct = 3;
function Eo(t9) {
  let e2 = t9.slice(0, Ct);
  if (e2 !== "---" && e2 !== "+++") return;
  let r2 = t9.indexOf(`
`, Ct);
  if (r2 === -1) return;
  let n3 = t9.slice(Ct, r2).trim(), s2 = t9.indexOf(`
${e2}`, r2), i3 = n3;
  if (i3 || (i3 = e2 === "+++" ? "toml" : "yaml"), s2 === -1 && e2 === "---" && i3 === "yaml" && (s2 = t9.indexOf(`
...`, r2)), s2 === -1) return;
  let a2 = s2 + 1 + Ct, o3 = t9.charAt(a2 + 1);
  if (!/\s?/u.test(o3)) return;
  let u2 = t9.slice(0, a2);
  return { type: "front-matter", language: i3, explicitLanguage: n3, value: t9.slice(r2 + 1, s2), startDelimiter: e2, endDelimiter: u2.slice(-Ct), raw: u2 };
}
function Ao(t9) {
  let e2 = Eo(t9);
  if (!e2) return { content: t9 };
  let { raw: r2 } = e2;
  return { frontMatter: e2, content: w(false, r2, /[^\n]/gu, " ") + t9.slice(r2.length) };
}
var Ys = Ao;
var nr = { attrs: true, children: true, cases: true, expression: true };
var js = /* @__PURE__ */ new Set(["parent"]);
var sr = class t8 {
  constructor(e2 = {}) {
    for (let r2 of /* @__PURE__ */ new Set([...js, ...Object.keys(e2)])) this.setProperty(r2, e2[r2]);
  }
  setProperty(e2, r2) {
    if (this[e2] !== r2) {
      if (e2 in nr && (r2 = r2.map((n3) => this.createChild(n3))), !js.has(e2)) {
        this[e2] = r2;
        return;
      }
      Object.defineProperty(this, e2, { value: r2, enumerable: false, configurable: true });
    }
  }
  map(e2) {
    let r2;
    for (let n3 in nr) {
      let s2 = this[n3];
      if (s2) {
        let i3 = Do(s2, (a2) => a2.map(e2));
        r2 !== s2 && (r2 || (r2 = new t8({ parent: this.parent })), r2.setProperty(n3, i3));
      }
    }
    if (r2) for (let n3 in this) n3 in nr || (r2[n3] = this[n3]);
    return e2(r2 || this);
  }
  walk(e2) {
    for (let r2 in nr) {
      let n3 = this[r2];
      if (n3) for (let s2 = 0; s2 < n3.length; s2++) n3[s2].walk(e2);
    }
    e2(this);
  }
  createChild(e2) {
    let r2 = e2 instanceof t8 ? e2.clone() : new t8(e2);
    return r2.setProperty("parent", this), r2;
  }
  insertChildBefore(e2, r2) {
    this.children.splice(this.children.indexOf(e2), 0, this.createChild(r2));
  }
  removeChild(e2) {
    this.children.splice(this.children.indexOf(e2), 1);
  }
  replaceChild(e2, r2) {
    this.children[this.children.indexOf(e2)] = this.createChild(r2);
  }
  clone() {
    return new t8(this);
  }
  get firstChild() {
    var e2;
    return (e2 = this.children) == null ? void 0 : e2[0];
  }
  get lastChild() {
    var e2;
    return (e2 = this.children) == null ? void 0 : e2[this.children.length - 1];
  }
  get prev() {
    var e2, r2;
    return (r2 = (e2 = this.parent) == null ? void 0 : e2.children) == null ? void 0 : r2[this.parent.children.indexOf(this) - 1];
  }
  get next() {
    var e2, r2;
    return (r2 = (e2 = this.parent) == null ? void 0 : e2.children) == null ? void 0 : r2[this.parent.children.indexOf(this) + 1];
  }
  get rawName() {
    return this.hasExplicitNamespace ? this.fullName : this.name;
  }
  get fullName() {
    return this.namespace ? this.namespace + ":" + this.name : this.name;
  }
  get attrMap() {
    return Object.fromEntries(this.attrs.map((e2) => [e2.fullName, e2.value]));
  }
};
function Do(t9, e2) {
  let r2 = t9.map(e2);
  return r2.some((n3, s2) => n3 !== t9[s2]) ? r2 : t9;
}
var vo = [{ regex: /^(\[if([^\]]*)\]>)(.*?)<!\s*\[endif\]$/su, parse: yo }, { regex: /^\[if([^\]]*)\]><!$/u, parse: wo }, { regex: /^<!\s*\[endif\]$/u, parse: bo }];
function Ks(t9, e2) {
  if (t9.value) for (let { regex: r2, parse: n3 } of vo) {
    let s2 = t9.value.match(r2);
    if (s2) return n3(t9, e2, s2);
  }
  return null;
}
function yo(t9, e2, r2) {
  let [, n3, s2, i3] = r2, a2 = 4 + n3.length, o3 = t9.sourceSpan.start.moveBy(a2), u2 = o3.moveBy(i3.length), [p, l2] = (() => {
    try {
      return [true, e2(i3, o3).children];
    } catch {
      return [false, [{ type: "text", value: i3, sourceSpan: new h2(o3, u2) }]];
    }
  })();
  return { type: "ieConditionalComment", complete: p, children: l2, condition: w(false, s2.trim(), /\s+/gu, " "), sourceSpan: t9.sourceSpan, startSourceSpan: new h2(t9.sourceSpan.start, o3), endSourceSpan: new h2(u2, t9.sourceSpan.end) };
}
function wo(t9, e2, r2) {
  let [, n3] = r2;
  return { type: "ieConditionalStartComment", condition: w(false, n3.trim(), /\s+/gu, " "), sourceSpan: t9.sourceSpan };
}
function bo(t9) {
  return { type: "ieConditionalEndComment", sourceSpan: t9.sourceSpan };
}
var ir = /* @__PURE__ */ new Map([["*", /* @__PURE__ */ new Set(["accesskey", "autocapitalize", "autofocus", "class", "contenteditable", "dir", "draggable", "enterkeyhint", "hidden", "id", "inert", "inputmode", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "nonce", "popover", "slot", "spellcheck", "style", "tabindex", "title", "translate", "writingsuggestions"])], ["a", /* @__PURE__ */ new Set(["charset", "coords", "download", "href", "hreflang", "name", "ping", "referrerpolicy", "rel", "rev", "shape", "target", "type"])], ["applet", /* @__PURE__ */ new Set(["align", "alt", "archive", "code", "codebase", "height", "hspace", "name", "object", "vspace", "width"])], ["area", /* @__PURE__ */ new Set(["alt", "coords", "download", "href", "hreflang", "nohref", "ping", "referrerpolicy", "rel", "shape", "target", "type"])], ["audio", /* @__PURE__ */ new Set(["autoplay", "controls", "crossorigin", "loop", "muted", "preload", "src"])], ["base", /* @__PURE__ */ new Set(["href", "target"])], ["basefont", /* @__PURE__ */ new Set(["color", "face", "size"])], ["blockquote", /* @__PURE__ */ new Set(["cite"])], ["body", /* @__PURE__ */ new Set(["alink", "background", "bgcolor", "link", "text", "vlink"])], ["br", /* @__PURE__ */ new Set(["clear"])], ["button", /* @__PURE__ */ new Set(["disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "name", "popovertarget", "popovertargetaction", "type", "value"])], ["canvas", /* @__PURE__ */ new Set(["height", "width"])], ["caption", /* @__PURE__ */ new Set(["align"])], ["col", /* @__PURE__ */ new Set(["align", "char", "charoff", "span", "valign", "width"])], ["colgroup", /* @__PURE__ */ new Set(["align", "char", "charoff", "span", "valign", "width"])], ["data", /* @__PURE__ */ new Set(["value"])], ["del", /* @__PURE__ */ new Set(["cite", "datetime"])], ["details", /* @__PURE__ */ new Set(["name", "open"])], ["dialog", /* @__PURE__ */ new Set(["open"])], ["dir", /* @__PURE__ */ new Set(["compact"])], ["div", /* @__PURE__ */ new Set(["align"])], ["dl", /* @__PURE__ */ new Set(["compact"])], ["embed", /* @__PURE__ */ new Set(["height", "src", "type", "width"])], ["fieldset", /* @__PURE__ */ new Set(["disabled", "form", "name"])], ["font", /* @__PURE__ */ new Set(["color", "face", "size"])], ["form", /* @__PURE__ */ new Set(["accept", "accept-charset", "action", "autocomplete", "enctype", "method", "name", "novalidate", "target"])], ["frame", /* @__PURE__ */ new Set(["frameborder", "longdesc", "marginheight", "marginwidth", "name", "noresize", "scrolling", "src"])], ["frameset", /* @__PURE__ */ new Set(["cols", "rows"])], ["h1", /* @__PURE__ */ new Set(["align"])], ["h2", /* @__PURE__ */ new Set(["align"])], ["h3", /* @__PURE__ */ new Set(["align"])], ["h4", /* @__PURE__ */ new Set(["align"])], ["h5", /* @__PURE__ */ new Set(["align"])], ["h6", /* @__PURE__ */ new Set(["align"])], ["head", /* @__PURE__ */ new Set(["profile"])], ["hr", /* @__PURE__ */ new Set(["align", "noshade", "size", "width"])], ["html", /* @__PURE__ */ new Set(["manifest", "version"])], ["iframe", /* @__PURE__ */ new Set(["align", "allow", "allowfullscreen", "allowpaymentrequest", "allowusermedia", "frameborder", "height", "loading", "longdesc", "marginheight", "marginwidth", "name", "referrerpolicy", "sandbox", "scrolling", "src", "srcdoc", "width"])], ["img", /* @__PURE__ */ new Set(["align", "alt", "border", "crossorigin", "decoding", "fetchpriority", "height", "hspace", "ismap", "loading", "longdesc", "name", "referrerpolicy", "sizes", "src", "srcset", "usemap", "vspace", "width"])], ["input", /* @__PURE__ */ new Set(["accept", "align", "alt", "autocomplete", "checked", "dirname", "disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "height", "ismap", "list", "max", "maxlength", "min", "minlength", "multiple", "name", "pattern", "placeholder", "popovertarget", "popovertargetaction", "readonly", "required", "size", "src", "step", "type", "usemap", "value", "width"])], ["ins", /* @__PURE__ */ new Set(["cite", "datetime"])], ["isindex", /* @__PURE__ */ new Set(["prompt"])], ["label", /* @__PURE__ */ new Set(["for", "form"])], ["legend", /* @__PURE__ */ new Set(["align"])], ["li", /* @__PURE__ */ new Set(["type", "value"])], ["link", /* @__PURE__ */ new Set(["as", "blocking", "charset", "color", "crossorigin", "disabled", "fetchpriority", "href", "hreflang", "imagesizes", "imagesrcset", "integrity", "media", "referrerpolicy", "rel", "rev", "sizes", "target", "type"])], ["map", /* @__PURE__ */ new Set(["name"])], ["menu", /* @__PURE__ */ new Set(["compact"])], ["meta", /* @__PURE__ */ new Set(["charset", "content", "http-equiv", "media", "name", "scheme"])], ["meter", /* @__PURE__ */ new Set(["high", "low", "max", "min", "optimum", "value"])], ["object", /* @__PURE__ */ new Set(["align", "archive", "border", "classid", "codebase", "codetype", "data", "declare", "form", "height", "hspace", "name", "standby", "type", "typemustmatch", "usemap", "vspace", "width"])], ["ol", /* @__PURE__ */ new Set(["compact", "reversed", "start", "type"])], ["optgroup", /* @__PURE__ */ new Set(["disabled", "label"])], ["option", /* @__PURE__ */ new Set(["disabled", "label", "selected", "value"])], ["output", /* @__PURE__ */ new Set(["for", "form", "name"])], ["p", /* @__PURE__ */ new Set(["align"])], ["param", /* @__PURE__ */ new Set(["name", "type", "value", "valuetype"])], ["pre", /* @__PURE__ */ new Set(["width"])], ["progress", /* @__PURE__ */ new Set(["max", "value"])], ["q", /* @__PURE__ */ new Set(["cite"])], ["script", /* @__PURE__ */ new Set(["async", "blocking", "charset", "crossorigin", "defer", "fetchpriority", "integrity", "language", "nomodule", "referrerpolicy", "src", "type"])], ["select", /* @__PURE__ */ new Set(["autocomplete", "disabled", "form", "multiple", "name", "required", "size"])], ["slot", /* @__PURE__ */ new Set(["name"])], ["source", /* @__PURE__ */ new Set(["height", "media", "sizes", "src", "srcset", "type", "width"])], ["style", /* @__PURE__ */ new Set(["blocking", "media", "type"])], ["table", /* @__PURE__ */ new Set(["align", "bgcolor", "border", "cellpadding", "cellspacing", "frame", "rules", "summary", "width"])], ["tbody", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["td", /* @__PURE__ */ new Set(["abbr", "align", "axis", "bgcolor", "char", "charoff", "colspan", "headers", "height", "nowrap", "rowspan", "scope", "valign", "width"])], ["template", /* @__PURE__ */ new Set(["shadowrootclonable", "shadowrootdelegatesfocus", "shadowrootmode"])], ["textarea", /* @__PURE__ */ new Set(["autocomplete", "cols", "dirname", "disabled", "form", "maxlength", "minlength", "name", "placeholder", "readonly", "required", "rows", "wrap"])], ["tfoot", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["th", /* @__PURE__ */ new Set(["abbr", "align", "axis", "bgcolor", "char", "charoff", "colspan", "headers", "height", "nowrap", "rowspan", "scope", "valign", "width"])], ["thead", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["time", /* @__PURE__ */ new Set(["datetime"])], ["tr", /* @__PURE__ */ new Set(["align", "bgcolor", "char", "charoff", "valign"])], ["track", /* @__PURE__ */ new Set(["default", "kind", "label", "src", "srclang"])], ["ul", /* @__PURE__ */ new Set(["compact", "type"])], ["video", /* @__PURE__ */ new Set(["autoplay", "controls", "crossorigin", "height", "loop", "muted", "playsinline", "poster", "preload", "src", "width"])]]);
var Qs = /* @__PURE__ */ new Set(["a", "abbr", "acronym", "address", "applet", "area", "article", "aside", "audio", "b", "base", "basefont", "bdi", "bdo", "bgsound", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "command", "content", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "embed", "fieldset", "figcaption", "figure", "font", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "image", "img", "input", "ins", "isindex", "kbd", "keygen", "label", "legend", "li", "link", "listing", "main", "map", "mark", "marquee", "math", "menu", "menuitem", "meta", "meter", "multicol", "nav", "nextid", "nobr", "noembed", "noframes", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "plaintext", "pre", "progress", "q", "rb", "rbc", "rp", "rt", "rtc", "ruby", "s", "samp", "script", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "svg", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "tt", "u", "ul", "var", "video", "wbr", "xmp"]);
function To(t9) {
  if (t9.type === "block") {
    if (t9.name = w(false, t9.name.toLowerCase(), /\s+/gu, " ").trim(), t9.type = "angularControlFlowBlock", !Fe(t9.parameters)) {
      delete t9.parameters;
      return;
    }
    for (let e2 of t9.parameters) e2.type = "angularControlFlowBlockParameter";
    t9.parameters = { type: "angularControlFlowBlockParameters", children: t9.parameters, sourceSpan: new h2(t9.parameters[0].sourceSpan.start, se(false, t9.parameters, -1).sourceSpan.end) };
  }
}
function xo(t9) {
  t9.type === "letDeclaration" && (t9.type = "angularLetDeclaration", t9.id = t9.name, t9.init = { type: "angularLetDeclarationInitializer", sourceSpan: new h2(t9.valueSpan.start, t9.valueSpan.end), value: t9.value }, delete t9.name, delete t9.value);
}
function ko(t9) {
  (t9.type === "plural" || t9.type === "select") && (t9.clause = t9.type, t9.type = "angularIcuExpression"), t9.type === "expansionCase" && (t9.type = "angularIcuCase");
}
function Js(t9, e2, r2) {
  let { name: n3, canSelfClose: s2 = true, normalizeTagName: i3 = false, normalizeAttributeName: a2 = false, allowHtmComponentClosingTags: o3 = false, isTagNameCaseSensitive: u2 = false, shouldParseAsRawText: p } = e2, { rootNodes: l2, errors: f } = zr(t9, { canSelfClose: s2, allowHtmComponentClosingTags: o3, isTagNameCaseSensitive: u2, getTagContentType: p ? (...c3) => p(...c3) ? I2.RAW_TEXT : void 0 : void 0, tokenizeAngularBlocks: n3 === "angular" ? true : void 0, tokenizeAngularLetDeclaration: n3 === "angular" ? true : void 0 });
  if (n3 === "vue") {
    if (l2.some((x3) => x3.type === "docType" && x3.value === "html" || x3.type === "element" && x3.name.toLowerCase() === "html")) return Js(t9, ei, r2);
    let g, y2 = () => g ?? (g = zr(t9, { canSelfClose: s2, allowHtmComponentClosingTags: o3, isTagNameCaseSensitive: u2 })), M2 = (x3) => y2().rootNodes.find(({ startSourceSpan: V3 }) => V3 && V3.start.offset === x3.startSourceSpan.start.offset) ?? x3;
    for (let [x3, V3] of l2.entries()) {
      let { endSourceSpan: jr2, startSourceSpan: ti2 } = V3;
      if (jr2 === null) f = y2().errors, l2[x3] = M2(V3);
      else if (Bo(V3, r2)) {
        let Kr2 = y2().errors.find((Qr2) => Qr2.span.start.offset > ti2.start.offset && Qr2.span.start.offset < jr2.end.offset);
        Kr2 && Xs(Kr2), l2[x3] = M2(V3);
      }
    }
  }
  f.length > 0 && Xs(f[0]);
  let d = (c3) => {
    let g = c3.name.startsWith(":") ? c3.name.slice(1).split(":")[0] : null, y2 = c3.nameSpan.toString(), M2 = g !== null && y2.startsWith(`${g}:`), x3 = M2 ? y2.slice(g.length + 1) : y2;
    c3.name = x3, c3.namespace = g, c3.hasExplicitNamespace = M2;
  }, C = (c3) => {
    switch (c3.type) {
      case "element":
        d(c3);
        for (let g of c3.attrs) d(g), g.valueSpan ? (g.value = g.valueSpan.toString(), /["']/u.test(g.value[0]) && (g.value = g.value.slice(1, -1))) : g.value = null;
        break;
      case "comment":
        c3.value = c3.sourceSpan.toString().slice(4, -3);
        break;
      case "text":
        c3.value = c3.sourceSpan.toString();
        break;
    }
  }, A2 = (c3, g) => {
    let y2 = c3.toLowerCase();
    return g(y2) ? y2 : c3;
  }, D = (c3) => {
    if (c3.type === "element" && (i3 && (!c3.namespace || c3.namespace === c3.tagDefinition.implicitNamespacePrefix || pe(c3)) && (c3.name = A2(c3.name, (g) => Qs.has(g))), a2)) for (let g of c3.attrs) g.namespace || (g.name = A2(g.name, (y2) => ir.has(c3.name) && (ir.get("*").has(y2) || ir.get(c3.name).has(y2))));
  }, R2 = (c3) => {
    c3.sourceSpan && c3.endSourceSpan && (c3.sourceSpan = new h2(c3.sourceSpan.start, c3.endSourceSpan.end));
  }, F = (c3) => {
    if (c3.type === "element") {
      let g = $e(u2 ? c3.name : c3.name.toLowerCase());
      !c3.namespace || c3.namespace === g.implicitNamespacePrefix || pe(c3) ? c3.tagDefinition = g : c3.tagDefinition = $e("");
    }
  };
  return jt(new class extends ht {
    visitExpansionCase(c3, g) {
      n3 === "angular" && this.visitChildren(g, (y2) => {
        y2(c3.expression);
      });
    }
    visit(c3) {
      C(c3), F(c3), D(c3), R2(c3);
    }
  }(), l2), l2;
}
function Bo(t9, e2) {
  var n3;
  if (t9.type !== "element" || t9.name !== "template") return false;
  let r2 = (n3 = t9.attrs.find((s2) => s2.name === "lang")) == null ? void 0 : n3.value;
  return !r2 || Be(e2, { language: r2 }) === "html";
}
function Xs(t9) {
  let { msg: e2, span: { start: r2, end: n3 } } = t9;
  throw Gs(e2, { loc: { start: { line: r2.line + 1, column: r2.col + 1 }, end: { line: n3.line + 1, column: n3.col + 1 } }, cause: t9 });
}
function Zs(t9, e2, r2 = {}, n3 = true) {
  let { frontMatter: s2, content: i3 } = n3 ? Ys(t9) : { frontMatter: null, content: t9 }, a2 = new Ee(t9, r2.filepath), o3 = new ie(a2, 0, 0, 0), u2 = o3.moveBy(t9.length), p = { type: "root", sourceSpan: new h2(o3, u2), children: Js(i3, e2, r2) };
  if (s2) {
    let d = new ie(a2, 0, 0, 0), C = d.moveBy(s2.raw.length);
    s2.sourceSpan = new h2(d, C), p.children.unshift(s2);
  }
  let l2 = new sr(p), f = (d, C) => {
    let { offset: A2 } = C, D = w(false, t9.slice(0, A2), /[^\n\r]/gu, " "), F = Zs(D + d, e2, r2, false);
    F.sourceSpan = new h2(C, se(false, F.children, -1).sourceSpan.end);
    let c3 = F.children[0];
    return c3.length === A2 ? F.children.shift() : (c3.sourceSpan = new h2(c3.sourceSpan.start.moveBy(A2), c3.sourceSpan.end), c3.value = c3.value.slice(A2)), F;
  };
  return l2.walk((d) => {
    if (d.type === "comment") {
      let C = Ks(d, f);
      C && d.parent.replaceChild(d, C);
    }
    To(d), xo(d), ko(d);
  }), l2;
}
function ar(t9) {
  return { parse: (e2, r2) => Zs(e2, t9, r2), hasPragma: as, astFormat: "html", locStart: X, locEnd: J };
}
var ei = { name: "html", normalizeTagName: true, normalizeAttributeName: true, allowHtmComponentClosingTags: true };
var Lo = ar(ei);
var Fo = ar({ name: "angular" });
var No = ar({ name: "vue", isTagNameCaseSensitive: true, shouldParseAsRawText(t9, e2, r2, n3) {
  return t9.toLowerCase() !== "html" && !r2 && (t9 !== "template" || n3.some(({ name: s2, value: i3 }) => s2 === "lang" && i3 !== "html" && i3 !== "" && i3 !== void 0));
} });
var Po = ar({ name: "lwc", canSelfClose: false });
var Io = { html: Es };
var Nh = Yr;

// ../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs
var yu = Object.create;
var vt2 = Object.defineProperty;
var Au = Object.getOwnPropertyDescriptor;
var vu = Object.getOwnPropertyNames;
var Bu = Object.getPrototypeOf;
var wu = Object.prototype.hasOwnProperty;
var fr2 = (e2) => {
  throw TypeError(e2);
};
var dr2 = (e2, t9) => () => (t9 || e2((t9 = { exports: {} }).exports, t9), t9.exports);
var Bt2 = (e2, t9) => {
  for (var r2 in t9) vt2(e2, r2, { get: t9[r2], enumerable: true });
};
var _u = (e2, t9, r2, n3) => {
  if (t9 && typeof t9 == "object" || typeof t9 == "function") for (let u2 of vu(t9)) !wu.call(e2, u2) && u2 !== r2 && vt2(e2, u2, { get: () => t9[u2], enumerable: !(n3 = Au(t9, u2)) || n3.enumerable });
  return e2;
};
var Me2 = (e2, t9, r2) => (r2 = e2 != null ? yu(Bu(e2)) : {}, _u(t9 || !e2 || !e2.__esModule ? vt2(r2, "default", { value: e2, enumerable: true }) : r2, e2));
var xu = (e2, t9, r2) => t9.has(e2) || fr2("Cannot " + r2);
var pr2 = (e2, t9, r2) => t9.has(e2) ? fr2("Cannot add the same private member more than once") : t9 instanceof WeakSet ? t9.add(e2) : t9.set(e2, r2);
var pe2 = (e2, t9, r2) => (xu(e2, t9, "access private method"), r2);
var st2 = dr2((na2, Fn2) => {
  "use strict";
  var pn2 = new Proxy(String, { get: () => pn2 });
  Fn2.exports = pn2;
});
var Wn2 = dr2((nr2) => {
  "use strict";
  Object.defineProperty(nr2, "__esModule", { value: true });
  function Bi2() {
    return new Proxy({}, { get: () => (e2) => e2 });
  }
  var Hn2 = /\r\n|[\n\r\u2028\u2029]/;
  function wi2(e2, t9, r2) {
    let n3 = Object.assign({ column: 0, line: -1 }, e2.start), u2 = Object.assign({}, n3, e2.end), { linesAbove: i3 = 2, linesBelow: o3 = 3 } = r2 || {}, s2 = n3.line, a2 = n3.column, D = u2.line, l2 = u2.column, p = Math.max(s2 - (i3 + 1), 0), f = Math.min(t9.length, D + o3);
    s2 === -1 && (p = 0), D === -1 && (f = t9.length);
    let d = D - s2, c3 = {};
    if (d) for (let F = 0; F <= d; F++) {
      let m2 = F + s2;
      if (!a2) c3[m2] = true;
      else if (F === 0) {
        let h3 = t9[m2 - 1].length;
        c3[m2] = [a2, h3 - a2 + 1];
      } else if (F === d) c3[m2] = [0, l2];
      else {
        let h3 = t9[m2 - F].length;
        c3[m2] = [0, h3];
      }
    }
    else a2 === l2 ? a2 ? c3[s2] = [a2, 0] : c3[s2] = true : c3[s2] = [a2, l2 - a2];
    return { start: p, end: f, markerLines: c3 };
  }
  function _i2(e2, t9, r2 = {}) {
    let u2 = Bi2(false), i3 = e2.split(Hn2), { start: o3, end: s2, markerLines: a2 } = wi2(t9, i3, r2), D = t9.start && typeof t9.start.column == "number", l2 = String(s2).length, f = e2.split(Hn2, s2).slice(o3, s2).map((d, c3) => {
      let F = o3 + 1 + c3, h3 = ` ${` ${F}`.slice(-l2)} |`, C = a2[F], v2 = !a2[F + 1];
      if (C) {
        let E2 = "";
        if (Array.isArray(C)) {
          let g = d.slice(0, Math.max(C[0] - 1, 0)).replace(/[^\t]/g, " "), j2 = C[1] || 1;
          E2 = [`
 `, u2.gutter(h3.replace(/\d/g, " ")), " ", g, u2.marker("^").repeat(j2)].join(""), v2 && r2.message && (E2 += " " + u2.message(r2.message));
        }
        return [u2.marker(">"), u2.gutter(h3), d.length > 0 ? ` ${d}` : "", E2].join("");
      } else return ` ${u2.gutter(h3)}${d.length > 0 ? ` ${d}` : ""}`;
    }).join(`
`);
    return r2.message && !D && (f = `${" ".repeat(l2 + 1)}${r2.message}
${f}`), f;
  }
  nr2.codeFrameColumns = _i2;
});
var cr2 = {};
Bt2(cr2, { __debug: () => Do2, check: () => so, doc: () => ar2, format: () => gu, formatWithCursor: () => Cu, getSupportInfo: () => ao, util: () => lr2, version: () => lu });
var bu = (e2, t9, r2, n3) => {
  if (!(e2 && t9 == null)) return t9.replaceAll ? t9.replaceAll(r2, n3) : r2.global ? t9.replace(r2, n3) : t9.split(r2).join(n3);
};
var ne2 = bu;
function M() {
}
M.prototype = { diff: function(t9, r2) {
  var n3, u2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, i3 = u2.callback;
  typeof u2 == "function" && (i3 = u2, u2 = {});
  var o3 = this;
  function s2(E2) {
    return E2 = o3.postProcess(E2, u2), i3 ? (setTimeout(function() {
      i3(E2);
    }, 0), true) : E2;
  }
  t9 = this.castInput(t9, u2), r2 = this.castInput(r2, u2), t9 = this.removeEmpty(this.tokenize(t9, u2)), r2 = this.removeEmpty(this.tokenize(r2, u2));
  var a2 = r2.length, D = t9.length, l2 = 1, p = a2 + D;
  u2.maxEditLength != null && (p = Math.min(p, u2.maxEditLength));
  var f = (n3 = u2.timeout) !== null && n3 !== void 0 ? n3 : 1 / 0, d = Date.now() + f, c3 = [{ oldPos: -1, lastComponent: void 0 }], F = this.extractCommon(c3[0], r2, t9, 0, u2);
  if (c3[0].oldPos + 1 >= D && F + 1 >= a2) return s2(Fr2(o3, c3[0].lastComponent, r2, t9, o3.useLongestToken));
  var m2 = -1 / 0, h3 = 1 / 0;
  function C() {
    for (var E2 = Math.max(m2, -l2); E2 <= Math.min(h3, l2); E2 += 2) {
      var g = void 0, j2 = c3[E2 - 1], b2 = c3[E2 + 1];
      j2 && (c3[E2 - 1] = void 0);
      var X2 = false;
      if (b2) {
        var ae2 = b2.oldPos - E2;
        X2 = b2 && 0 <= ae2 && ae2 < a2;
      }
      var $e2 = j2 && j2.oldPos + 1 < D;
      if (!X2 && !$e2) {
        c3[E2] = void 0;
        continue;
      }
      if (!$e2 || X2 && j2.oldPos < b2.oldPos ? g = o3.addToPath(b2, true, false, 0, u2) : g = o3.addToPath(j2, false, true, 1, u2), F = o3.extractCommon(g, r2, t9, E2, u2), g.oldPos + 1 >= D && F + 1 >= a2) return s2(Fr2(o3, g.lastComponent, r2, t9, o3.useLongestToken));
      c3[E2] = g, g.oldPos + 1 >= D && (h3 = Math.min(h3, E2 - 1)), F + 1 >= a2 && (m2 = Math.max(m2, E2 + 1));
    }
    l2++;
  }
  if (i3) (function E2() {
    setTimeout(function() {
      if (l2 > p || Date.now() > d) return i3();
      C() || E2();
    }, 0);
  })();
  else for (; l2 <= p && Date.now() <= d; ) {
    var v2 = C();
    if (v2) return v2;
  }
}, addToPath: function(t9, r2, n3, u2, i3) {
  var o3 = t9.lastComponent;
  return o3 && !i3.oneChangePerToken && o3.added === r2 && o3.removed === n3 ? { oldPos: t9.oldPos + u2, lastComponent: { count: o3.count + 1, added: r2, removed: n3, previousComponent: o3.previousComponent } } : { oldPos: t9.oldPos + u2, lastComponent: { count: 1, added: r2, removed: n3, previousComponent: o3 } };
}, extractCommon: function(t9, r2, n3, u2, i3) {
  for (var o3 = r2.length, s2 = n3.length, a2 = t9.oldPos, D = a2 - u2, l2 = 0; D + 1 < o3 && a2 + 1 < s2 && this.equals(n3[a2 + 1], r2[D + 1], i3); ) D++, a2++, l2++, i3.oneChangePerToken && (t9.lastComponent = { count: 1, previousComponent: t9.lastComponent, added: false, removed: false });
  return l2 && !i3.oneChangePerToken && (t9.lastComponent = { count: l2, previousComponent: t9.lastComponent, added: false, removed: false }), t9.oldPos = a2, D;
}, equals: function(t9, r2, n3) {
  return n3.comparator ? n3.comparator(t9, r2) : t9 === r2 || n3.ignoreCase && t9.toLowerCase() === r2.toLowerCase();
}, removeEmpty: function(t9) {
  for (var r2 = [], n3 = 0; n3 < t9.length; n3++) t9[n3] && r2.push(t9[n3]);
  return r2;
}, castInput: function(t9) {
  return t9;
}, tokenize: function(t9) {
  return Array.from(t9);
}, join: function(t9) {
  return t9.join("");
}, postProcess: function(t9) {
  return t9;
} };
function Fr2(e2, t9, r2, n3, u2) {
  for (var i3 = [], o3; t9; ) i3.push(t9), o3 = t9.previousComponent, delete t9.previousComponent, t9 = o3;
  i3.reverse();
  for (var s2 = 0, a2 = i3.length, D = 0, l2 = 0; s2 < a2; s2++) {
    var p = i3[s2];
    if (p.removed) p.value = e2.join(n3.slice(l2, l2 + p.count)), l2 += p.count;
    else {
      if (!p.added && u2) {
        var f = r2.slice(D, D + p.count);
        f = f.map(function(d, c3) {
          var F = n3[l2 + c3];
          return F.length > d.length ? F : d;
        }), p.value = e2.join(f);
      } else p.value = e2.join(r2.slice(D, D + p.count));
      D += p.count, p.added || (l2 += p.count);
    }
  }
  return i3;
}
var Fo2 = new M();
function mr2(e2, t9) {
  var r2;
  for (r2 = 0; r2 < e2.length && r2 < t9.length; r2++) if (e2[r2] != t9[r2]) return e2.slice(0, r2);
  return e2.slice(0, r2);
}
function hr2(e2, t9) {
  var r2;
  if (!e2 || !t9 || e2[e2.length - 1] != t9[t9.length - 1]) return "";
  for (r2 = 0; r2 < e2.length && r2 < t9.length; r2++) if (e2[e2.length - (r2 + 1)] != t9[t9.length - (r2 + 1)]) return e2.slice(-r2);
  return e2.slice(-r2);
}
function wt2(e2, t9, r2) {
  if (e2.slice(0, t9.length) != t9) throw Error("string ".concat(JSON.stringify(e2), " doesn't start with prefix ").concat(JSON.stringify(t9), "; this is a bug"));
  return r2 + e2.slice(t9.length);
}
function _t2(e2, t9, r2) {
  if (!t9) return e2 + r2;
  if (e2.slice(-t9.length) != t9) throw Error("string ".concat(JSON.stringify(e2), " doesn't end with suffix ").concat(JSON.stringify(t9), "; this is a bug"));
  return e2.slice(0, -t9.length) + r2;
}
function we2(e2, t9) {
  return wt2(e2, t9, "");
}
function Ue2(e2, t9) {
  return _t2(e2, t9, "");
}
function Er2(e2, t9) {
  return t9.slice(0, Nu(e2, t9));
}
function Nu(e2, t9) {
  var r2 = 0;
  e2.length > t9.length && (r2 = e2.length - t9.length);
  var n3 = t9.length;
  e2.length < t9.length && (n3 = e2.length);
  var u2 = Array(n3), i3 = 0;
  u2[0] = 0;
  for (var o3 = 1; o3 < n3; o3++) {
    for (t9[o3] == t9[i3] ? u2[o3] = u2[i3] : u2[o3] = i3; i3 > 0 && t9[o3] != t9[i3]; ) i3 = u2[i3];
    t9[o3] == t9[i3] && i3++;
  }
  i3 = 0;
  for (var s2 = r2; s2 < e2.length; s2++) {
    for (; i3 > 0 && e2[s2] != t9[i3]; ) i3 = u2[i3];
    e2[s2] == t9[i3] && i3++;
  }
  return i3;
}
var Ve2 = "a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
var Ou = new RegExp("[".concat(Ve2, "]+|\\s+|[^").concat(Ve2, "]"), "ug");
var Ge2 = new M();
Ge2.equals = function(e2, t9, r2) {
  return r2.ignoreCase && (e2 = e2.toLowerCase(), t9 = t9.toLowerCase()), e2.trim() === t9.trim();
};
Ge2.tokenize = function(e2) {
  var t9 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, r2;
  if (t9.intlSegmenter) {
    if (t9.intlSegmenter.resolvedOptions().granularity != "word") throw new Error('The segmenter passed must have a granularity of "word"');
    r2 = Array.from(t9.intlSegmenter.segment(e2), function(i3) {
      return i3.segment;
    });
  } else r2 = e2.match(Ou) || [];
  var n3 = [], u2 = null;
  return r2.forEach(function(i3) {
    /\s/.test(i3) ? u2 == null ? n3.push(i3) : n3.push(n3.pop() + i3) : /\s/.test(u2) ? n3[n3.length - 1] == u2 ? n3.push(n3.pop() + i3) : n3.push(u2 + i3) : n3.push(i3), u2 = i3;
  }), n3;
};
Ge2.join = function(e2) {
  return e2.map(function(t9, r2) {
    return r2 == 0 ? t9 : t9.replace(/^\s+/, "");
  }).join("");
};
Ge2.postProcess = function(e2, t9) {
  if (!e2 || t9.oneChangePerToken) return e2;
  var r2 = null, n3 = null, u2 = null;
  return e2.forEach(function(i3) {
    i3.added ? n3 = i3 : i3.removed ? u2 = i3 : ((n3 || u2) && Cr2(r2, u2, n3, i3), r2 = i3, n3 = null, u2 = null);
  }), (n3 || u2) && Cr2(r2, u2, n3, null), e2;
};
function Cr2(e2, t9, r2, n3) {
  if (t9 && r2) {
    var u2 = t9.value.match(/^\s*/)[0], i3 = t9.value.match(/\s*$/)[0], o3 = r2.value.match(/^\s*/)[0], s2 = r2.value.match(/\s*$/)[0];
    if (e2) {
      var a2 = mr2(u2, o3);
      e2.value = _t2(e2.value, o3, a2), t9.value = we2(t9.value, a2), r2.value = we2(r2.value, a2);
    }
    if (n3) {
      var D = hr2(i3, s2);
      n3.value = wt2(n3.value, s2, D), t9.value = Ue2(t9.value, D), r2.value = Ue2(r2.value, D);
    }
  } else if (r2) e2 && (r2.value = r2.value.replace(/^\s*/, "")), n3 && (n3.value = n3.value.replace(/^\s*/, ""));
  else if (e2 && n3) {
    var l2 = n3.value.match(/^\s*/)[0], p = t9.value.match(/^\s*/)[0], f = t9.value.match(/\s*$/)[0], d = mr2(l2, p);
    t9.value = we2(t9.value, d);
    var c3 = hr2(we2(l2, d), f);
    t9.value = Ue2(t9.value, c3), n3.value = wt2(n3.value, l2, c3), e2.value = _t2(e2.value, l2, l2.slice(0, l2.length - c3.length));
  } else if (n3) {
    var F = n3.value.match(/^\s*/)[0], m2 = t9.value.match(/\s*$/)[0], h3 = Er2(m2, F);
    t9.value = Ue2(t9.value, h3);
  } else if (e2) {
    var C = e2.value.match(/\s*$/)[0], v2 = t9.value.match(/^\s*/)[0], E2 = Er2(C, v2);
    t9.value = we2(t9.value, E2);
  }
}
var Su = new M();
Su.tokenize = function(e2) {
  var t9 = new RegExp("(\\r?\\n)|[".concat(Ve2, "]+|[^\\S\\n\\r]+|[^").concat(Ve2, "]"), "ug");
  return e2.match(t9) || [];
};
var Nt2 = new M();
Nt2.tokenize = function(e2, t9) {
  t9.stripTrailingCr && (e2 = e2.replace(/\r\n/g, `
`));
  var r2 = [], n3 = e2.split(/(\n|\r\n)/);
  n3[n3.length - 1] || n3.pop();
  for (var u2 = 0; u2 < n3.length; u2++) {
    var i3 = n3[u2];
    u2 % 2 && !t9.newlineIsToken ? r2[r2.length - 1] += i3 : r2.push(i3);
  }
  return r2;
};
Nt2.equals = function(e2, t9, r2) {
  return r2.ignoreWhitespace ? ((!r2.newlineIsToken || !e2.includes(`
`)) && (e2 = e2.trim()), (!r2.newlineIsToken || !t9.includes(`
`)) && (t9 = t9.trim())) : r2.ignoreNewlineAtEof && !r2.newlineIsToken && (e2.endsWith(`
`) && (e2 = e2.slice(0, -1)), t9.endsWith(`
`) && (t9 = t9.slice(0, -1))), M.prototype.equals.call(this, e2, t9, r2);
};
var Tu = new M();
Tu.tokenize = function(e2) {
  return e2.split(/(\S.+?[.!?])(?=\s+|$)/);
};
var ku = new M();
ku.tokenize = function(e2) {
  return e2.split(/([{}:;,]|\s+)/);
};
function xt2(e2) {
  "@babel/helpers - typeof";
  return xt2 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t9) {
    return typeof t9;
  } : function(t9) {
    return t9 && typeof Symbol == "function" && t9.constructor === Symbol && t9 !== Symbol.prototype ? "symbol" : typeof t9;
  }, xt2(e2);
}
var _e2 = new M();
_e2.useLongestToken = true;
_e2.tokenize = Nt2.tokenize;
_e2.castInput = function(e2, t9) {
  var r2 = t9.undefinedReplacement, n3 = t9.stringifyReplacer, u2 = n3 === void 0 ? function(i3, o3) {
    return typeof o3 > "u" ? r2 : o3;
  } : n3;
  return typeof e2 == "string" ? e2 : JSON.stringify(bt2(e2, null, null, u2), u2, "  ");
};
_e2.equals = function(e2, t9, r2) {
  return M.prototype.equals.call(_e2, e2.replace(/,([\r\n])/g, "$1"), t9.replace(/,([\r\n])/g, "$1"), r2);
};
function bt2(e2, t9, r2, n3, u2) {
  t9 = t9 || [], r2 = r2 || [], n3 && (e2 = n3(u2, e2));
  var i3;
  for (i3 = 0; i3 < t9.length; i3 += 1) if (t9[i3] === e2) return r2[i3];
  var o3;
  if (Object.prototype.toString.call(e2) === "[object Array]") {
    for (t9.push(e2), o3 = new Array(e2.length), r2.push(o3), i3 = 0; i3 < e2.length; i3 += 1) o3[i3] = bt2(e2[i3], t9, r2, n3, u2);
    return t9.pop(), r2.pop(), o3;
  }
  if (e2 && e2.toJSON && (e2 = e2.toJSON()), xt2(e2) === "object" && e2 !== null) {
    t9.push(e2), o3 = {}, r2.push(o3);
    var s2 = [], a2;
    for (a2 in e2) Object.prototype.hasOwnProperty.call(e2, a2) && s2.push(a2);
    for (s2.sort(), i3 = 0; i3 < s2.length; i3 += 1) a2 = s2[i3], o3[a2] = bt2(e2[a2], t9, r2, n3, a2);
    t9.pop(), r2.pop();
  } else o3 = e2;
  return o3;
}
var ze2 = new M();
ze2.tokenize = function(e2) {
  return e2.slice();
};
ze2.join = ze2.removeEmpty = function(e2) {
  return e2;
};
function gr2(e2, t9, r2) {
  return ze2.diff(e2, t9, r2);
}
function yr2(e2) {
  let t9 = e2.indexOf("\r");
  return t9 !== -1 ? e2.charAt(t9 + 1) === `
` ? "crlf" : "cr" : "lf";
}
function xe2(e2) {
  switch (e2) {
    case "cr":
      return "\r";
    case "crlf":
      return `\r
`;
    default:
      return `
`;
  }
}
function Ot2(e2, t9) {
  let r2;
  switch (t9) {
    case `
`:
      r2 = /\n/gu;
      break;
    case "\r":
      r2 = /\r/gu;
      break;
    case `\r
`:
      r2 = /\r\n/gu;
      break;
    default:
      throw new Error(`Unexpected "eol" ${JSON.stringify(t9)}.`);
  }
  let n3 = e2.match(r2);
  return n3 ? n3.length : 0;
}
function Ar2(e2) {
  return ne2(false, e2, /\r\n?/gu, `
`);
}
var U2 = "string";
var H2 = "array";
var V2 = "cursor";
var T2 = "indent";
var k2 = "align";
var L2 = "trim";
var B2 = "group";
var N2 = "fill";
var w2 = "if-break";
var P2 = "indent-if-break";
var I3 = "line-suffix";
var R = "line-suffix-boundary";
var A = "line";
var O2 = "label";
var _2 = "break-parent";
var Ke2 = /* @__PURE__ */ new Set([V2, T2, k2, L2, B2, N2, w2, P2, I3, R, A, O2, _2]);
function Lu(e2) {
  if (typeof e2 == "string") return U2;
  if (Array.isArray(e2)) return H2;
  if (!e2) return;
  let { type: t9 } = e2;
  if (Ke2.has(t9)) return t9;
}
var z3 = Lu;
var Pu = (e2) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e2);
function Iu(e2) {
  let t9 = e2 === null ? "null" : typeof e2;
  if (t9 !== "string" && t9 !== "object") return `Unexpected doc '${t9}', 
Expected it to be 'string' or 'object'.`;
  if (z3(e2)) throw new Error("doc is valid.");
  let r2 = Object.prototype.toString.call(e2);
  if (r2 !== "[object Object]") return `Unexpected doc '${r2}'.`;
  let n3 = Pu([...Ke2].map((u2) => `'${u2}'`));
  return `Unexpected doc.type '${e2.type}'.
Expected it to be ${n3}.`;
}
var St2 = class extends Error {
  name = "InvalidDocError";
  constructor(t9) {
    super(Iu(t9)), this.doc = t9;
  }
};
var Q2 = St2;
var vr2 = {};
function Ru(e2, t9, r2, n3) {
  let u2 = [e2];
  for (; u2.length > 0; ) {
    let i3 = u2.pop();
    if (i3 === vr2) {
      r2(u2.pop());
      continue;
    }
    r2 && u2.push(i3, vr2);
    let o3 = z3(i3);
    if (!o3) throw new Q2(i3);
    if ((t9 == null ? void 0 : t9(i3)) !== false) switch (o3) {
      case H2:
      case N2: {
        let s2 = o3 === H2 ? i3 : i3.parts;
        for (let a2 = s2.length, D = a2 - 1; D >= 0; --D) u2.push(s2[D]);
        break;
      }
      case w2:
        u2.push(i3.flatContents, i3.breakContents);
        break;
      case B2:
        if (n3 && i3.expandedStates) for (let s2 = i3.expandedStates.length, a2 = s2 - 1; a2 >= 0; --a2) u2.push(i3.expandedStates[a2]);
        else u2.push(i3.contents);
        break;
      case k2:
      case T2:
      case P2:
      case O2:
      case I3:
        u2.push(i3.contents);
        break;
      case U2:
      case V2:
      case L2:
      case R:
      case A:
      case _2:
        break;
      default:
        throw new Q2(i3);
    }
  }
}
var be2 = Ru;
var Br2 = () => {
};
var G2 = Br2;
var Je2 = Br2;
function le2(e2) {
  return G2(e2), { type: T2, contents: e2 };
}
function De2(e2, t9) {
  return G2(t9), { type: k2, contents: t9, n: e2 };
}
function Tt2(e2, t9 = {}) {
  return G2(e2), Je2(t9.expandedStates, true), { type: B2, id: t9.id, contents: e2, break: !!t9.shouldBreak, expandedStates: t9.expandedStates };
}
function wr2(e2) {
  return De2(Number.NEGATIVE_INFINITY, e2);
}
function _r2(e2) {
  return De2({ type: "root" }, e2);
}
function xr2(e2) {
  return De2(-1, e2);
}
function br2(e2, t9) {
  return Tt2(e2[0], { ...t9, expandedStates: e2 });
}
function Nr(e2) {
  return Je2(e2), { type: N2, parts: e2 };
}
function Or2(e2, t9 = "", r2 = {}) {
  return G2(e2), t9 !== "" && G2(t9), { type: w2, breakContents: e2, flatContents: t9, groupId: r2.groupId };
}
function Sr2(e2, t9) {
  return G2(e2), { type: P2, contents: e2, groupId: t9.groupId, negate: t9.negate };
}
function Ne2(e2) {
  return G2(e2), { type: I3, contents: e2 };
}
var Tr2 = { type: R };
var Fe2 = { type: _2 };
var kr2 = { type: L2 };
var Oe2 = { type: A, hard: true };
var kt2 = { type: A, hard: true, literal: true };
var qe2 = { type: A };
var Lr2 = { type: A, soft: true };
var K2 = [Oe2, Fe2];
var Xe2 = [kt2, Fe2];
var Z2 = { type: V2 };
function Se2(e2, t9) {
  G2(e2), Je2(t9);
  let r2 = [];
  for (let n3 = 0; n3 < t9.length; n3++) n3 !== 0 && r2.push(e2), r2.push(t9[n3]);
  return r2;
}
function Qe2(e2, t9, r2) {
  G2(e2);
  let n3 = e2;
  if (t9 > 0) {
    for (let u2 = 0; u2 < Math.floor(t9 / r2); ++u2) n3 = le2(n3);
    n3 = De2(t9 % r2, n3), n3 = De2(Number.NEGATIVE_INFINITY, n3);
  }
  return n3;
}
function Pr(e2, t9) {
  return G2(t9), e2 ? { type: O2, label: e2, contents: t9 } : t9;
}
function ee2(e2) {
  var t9;
  if (!e2) return "";
  if (Array.isArray(e2)) {
    let r2 = [];
    for (let n3 of e2) if (Array.isArray(n3)) r2.push(...ee2(n3));
    else {
      let u2 = ee2(n3);
      u2 !== "" && r2.push(u2);
    }
    return r2;
  }
  return e2.type === w2 ? { ...e2, breakContents: ee2(e2.breakContents), flatContents: ee2(e2.flatContents) } : e2.type === B2 ? { ...e2, contents: ee2(e2.contents), expandedStates: (t9 = e2.expandedStates) == null ? void 0 : t9.map(ee2) } : e2.type === N2 ? { type: "fill", parts: e2.parts.map(ee2) } : e2.contents ? { ...e2, contents: ee2(e2.contents) } : e2;
}
function Ir(e2) {
  let t9 = /* @__PURE__ */ Object.create(null), r2 = /* @__PURE__ */ new Set();
  return n3(ee2(e2));
  function n3(i3, o3, s2) {
    var a2, D;
    if (typeof i3 == "string") return JSON.stringify(i3);
    if (Array.isArray(i3)) {
      let l2 = i3.map(n3).filter(Boolean);
      return l2.length === 1 ? l2[0] : `[${l2.join(", ")}]`;
    }
    if (i3.type === A) {
      let l2 = ((a2 = s2 == null ? void 0 : s2[o3 + 1]) == null ? void 0 : a2.type) === _2;
      return i3.literal ? l2 ? "literalline" : "literallineWithoutBreakParent" : i3.hard ? l2 ? "hardline" : "hardlineWithoutBreakParent" : i3.soft ? "softline" : "line";
    }
    if (i3.type === _2) return ((D = s2 == null ? void 0 : s2[o3 - 1]) == null ? void 0 : D.type) === A && s2[o3 - 1].hard ? void 0 : "breakParent";
    if (i3.type === L2) return "trim";
    if (i3.type === T2) return "indent(" + n3(i3.contents) + ")";
    if (i3.type === k2) return i3.n === Number.NEGATIVE_INFINITY ? "dedentToRoot(" + n3(i3.contents) + ")" : i3.n < 0 ? "dedent(" + n3(i3.contents) + ")" : i3.n.type === "root" ? "markAsRoot(" + n3(i3.contents) + ")" : "align(" + JSON.stringify(i3.n) + ", " + n3(i3.contents) + ")";
    if (i3.type === w2) return "ifBreak(" + n3(i3.breakContents) + (i3.flatContents ? ", " + n3(i3.flatContents) : "") + (i3.groupId ? (i3.flatContents ? "" : ', ""') + `, { groupId: ${u2(i3.groupId)} }` : "") + ")";
    if (i3.type === P2) {
      let l2 = [];
      i3.negate && l2.push("negate: true"), i3.groupId && l2.push(`groupId: ${u2(i3.groupId)}`);
      let p = l2.length > 0 ? `, { ${l2.join(", ")} }` : "";
      return `indentIfBreak(${n3(i3.contents)}${p})`;
    }
    if (i3.type === B2) {
      let l2 = [];
      i3.break && i3.break !== "propagated" && l2.push("shouldBreak: true"), i3.id && l2.push(`id: ${u2(i3.id)}`);
      let p = l2.length > 0 ? `, { ${l2.join(", ")} }` : "";
      return i3.expandedStates ? `conditionalGroup([${i3.expandedStates.map((f) => n3(f)).join(",")}]${p})` : `group(${n3(i3.contents)}${p})`;
    }
    if (i3.type === N2) return `fill([${i3.parts.map((l2) => n3(l2)).join(", ")}])`;
    if (i3.type === I3) return "lineSuffix(" + n3(i3.contents) + ")";
    if (i3.type === R) return "lineSuffixBoundary";
    if (i3.type === O2) return `label(${JSON.stringify(i3.label)}, ${n3(i3.contents)})`;
    throw new Error("Unknown doc type " + i3.type);
  }
  function u2(i3) {
    if (typeof i3 != "symbol") return JSON.stringify(String(i3));
    if (i3 in t9) return t9[i3];
    let o3 = i3.description || "symbol";
    for (let s2 = 0; ; s2++) {
      let a2 = o3 + (s2 > 0 ? ` #${s2}` : "");
      if (!r2.has(a2)) return r2.add(a2), t9[i3] = `Symbol.for(${JSON.stringify(a2)})`;
    }
  }
}
var Yu = (e2, t9, r2) => {
  if (!(e2 && t9 == null)) return Array.isArray(t9) || typeof t9 == "string" ? t9[r2 < 0 ? t9.length + r2 : r2] : t9.at(r2);
};
var y = Yu;
var Rr = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
function Yr2(e2) {
  return e2 === 12288 || e2 >= 65281 && e2 <= 65376 || e2 >= 65504 && e2 <= 65510;
}
function jr(e2) {
  return e2 >= 4352 && e2 <= 4447 || e2 === 8986 || e2 === 8987 || e2 === 9001 || e2 === 9002 || e2 >= 9193 && e2 <= 9196 || e2 === 9200 || e2 === 9203 || e2 === 9725 || e2 === 9726 || e2 === 9748 || e2 === 9749 || e2 >= 9776 && e2 <= 9783 || e2 >= 9800 && e2 <= 9811 || e2 === 9855 || e2 >= 9866 && e2 <= 9871 || e2 === 9875 || e2 === 9889 || e2 === 9898 || e2 === 9899 || e2 === 9917 || e2 === 9918 || e2 === 9924 || e2 === 9925 || e2 === 9934 || e2 === 9940 || e2 === 9962 || e2 === 9970 || e2 === 9971 || e2 === 9973 || e2 === 9978 || e2 === 9981 || e2 === 9989 || e2 === 9994 || e2 === 9995 || e2 === 10024 || e2 === 10060 || e2 === 10062 || e2 >= 10067 && e2 <= 10069 || e2 === 10071 || e2 >= 10133 && e2 <= 10135 || e2 === 10160 || e2 === 10175 || e2 === 11035 || e2 === 11036 || e2 === 11088 || e2 === 11093 || e2 >= 11904 && e2 <= 11929 || e2 >= 11931 && e2 <= 12019 || e2 >= 12032 && e2 <= 12245 || e2 >= 12272 && e2 <= 12287 || e2 >= 12289 && e2 <= 12350 || e2 >= 12353 && e2 <= 12438 || e2 >= 12441 && e2 <= 12543 || e2 >= 12549 && e2 <= 12591 || e2 >= 12593 && e2 <= 12686 || e2 >= 12688 && e2 <= 12773 || e2 >= 12783 && e2 <= 12830 || e2 >= 12832 && e2 <= 12871 || e2 >= 12880 && e2 <= 42124 || e2 >= 42128 && e2 <= 42182 || e2 >= 43360 && e2 <= 43388 || e2 >= 44032 && e2 <= 55203 || e2 >= 63744 && e2 <= 64255 || e2 >= 65040 && e2 <= 65049 || e2 >= 65072 && e2 <= 65106 || e2 >= 65108 && e2 <= 65126 || e2 >= 65128 && e2 <= 65131 || e2 >= 94176 && e2 <= 94180 || e2 === 94192 || e2 === 94193 || e2 >= 94208 && e2 <= 100343 || e2 >= 100352 && e2 <= 101589 || e2 >= 101631 && e2 <= 101640 || e2 >= 110576 && e2 <= 110579 || e2 >= 110581 && e2 <= 110587 || e2 === 110589 || e2 === 110590 || e2 >= 110592 && e2 <= 110882 || e2 === 110898 || e2 >= 110928 && e2 <= 110930 || e2 === 110933 || e2 >= 110948 && e2 <= 110951 || e2 >= 110960 && e2 <= 111355 || e2 >= 119552 && e2 <= 119638 || e2 >= 119648 && e2 <= 119670 || e2 === 126980 || e2 === 127183 || e2 === 127374 || e2 >= 127377 && e2 <= 127386 || e2 >= 127488 && e2 <= 127490 || e2 >= 127504 && e2 <= 127547 || e2 >= 127552 && e2 <= 127560 || e2 === 127568 || e2 === 127569 || e2 >= 127584 && e2 <= 127589 || e2 >= 127744 && e2 <= 127776 || e2 >= 127789 && e2 <= 127797 || e2 >= 127799 && e2 <= 127868 || e2 >= 127870 && e2 <= 127891 || e2 >= 127904 && e2 <= 127946 || e2 >= 127951 && e2 <= 127955 || e2 >= 127968 && e2 <= 127984 || e2 === 127988 || e2 >= 127992 && e2 <= 128062 || e2 === 128064 || e2 >= 128066 && e2 <= 128252 || e2 >= 128255 && e2 <= 128317 || e2 >= 128331 && e2 <= 128334 || e2 >= 128336 && e2 <= 128359 || e2 === 128378 || e2 === 128405 || e2 === 128406 || e2 === 128420 || e2 >= 128507 && e2 <= 128591 || e2 >= 128640 && e2 <= 128709 || e2 === 128716 || e2 >= 128720 && e2 <= 128722 || e2 >= 128725 && e2 <= 128727 || e2 >= 128732 && e2 <= 128735 || e2 === 128747 || e2 === 128748 || e2 >= 128756 && e2 <= 128764 || e2 >= 128992 && e2 <= 129003 || e2 === 129008 || e2 >= 129292 && e2 <= 129338 || e2 >= 129340 && e2 <= 129349 || e2 >= 129351 && e2 <= 129535 || e2 >= 129648 && e2 <= 129660 || e2 >= 129664 && e2 <= 129673 || e2 >= 129679 && e2 <= 129734 || e2 >= 129742 && e2 <= 129756 || e2 >= 129759 && e2 <= 129769 || e2 >= 129776 && e2 <= 129784 || e2 >= 131072 && e2 <= 196605 || e2 >= 196608 && e2 <= 262141;
}
var Hr2 = (e2) => !(Yr2(e2) || jr(e2));
var ju = /[^\x20-\x7F]/u;
function Hu(e2) {
  if (!e2) return 0;
  if (!ju.test(e2)) return e2.length;
  e2 = e2.replace(Rr(), "  ");
  let t9 = 0;
  for (let r2 of e2) {
    let n3 = r2.codePointAt(0);
    n3 <= 31 || n3 >= 127 && n3 <= 159 || n3 >= 768 && n3 <= 879 || (t9 += Hr2(n3) ? 1 : 2);
  }
  return t9;
}
var Te2 = Hu;
function Le2(e2, t9) {
  if (typeof e2 == "string") return t9(e2);
  let r2 = /* @__PURE__ */ new Map();
  return n3(e2);
  function n3(i3) {
    if (r2.has(i3)) return r2.get(i3);
    let o3 = u2(i3);
    return r2.set(i3, o3), o3;
  }
  function u2(i3) {
    switch (z3(i3)) {
      case H2:
        return t9(i3.map(n3));
      case N2:
        return t9({ ...i3, parts: i3.parts.map(n3) });
      case w2:
        return t9({ ...i3, breakContents: n3(i3.breakContents), flatContents: n3(i3.flatContents) });
      case B2: {
        let { expandedStates: o3, contents: s2 } = i3;
        return o3 ? (o3 = o3.map(n3), s2 = o3[0]) : s2 = n3(s2), t9({ ...i3, contents: s2, expandedStates: o3 });
      }
      case k2:
      case T2:
      case P2:
      case O2:
      case I3:
        return t9({ ...i3, contents: n3(i3.contents) });
      case U2:
      case V2:
      case L2:
      case R:
      case A:
      case _2:
        return t9(i3);
      default:
        throw new Q2(i3);
    }
  }
}
function Ze2(e2, t9, r2) {
  let n3 = r2, u2 = false;
  function i3(o3) {
    if (u2) return false;
    let s2 = t9(o3);
    s2 !== void 0 && (u2 = true, n3 = s2);
  }
  return be2(e2, i3), n3;
}
function Wu(e2) {
  if (e2.type === B2 && e2.break || e2.type === A && e2.hard || e2.type === _2) return true;
}
function Mr2(e2) {
  return Ze2(e2, Wu, false);
}
function Wr2(e2) {
  if (e2.length > 0) {
    let t9 = y(false, e2, -1);
    !t9.expandedStates && !t9.break && (t9.break = "propagated");
  }
  return null;
}
function Ur2(e2) {
  let t9 = /* @__PURE__ */ new Set(), r2 = [];
  function n3(i3) {
    if (i3.type === _2 && Wr2(r2), i3.type === B2) {
      if (r2.push(i3), t9.has(i3)) return false;
      t9.add(i3);
    }
  }
  function u2(i3) {
    i3.type === B2 && r2.pop().break && Wr2(r2);
  }
  be2(e2, n3, u2, true);
}
function $u(e2) {
  return e2.type === A && !e2.hard ? e2.soft ? "" : " " : e2.type === w2 ? e2.flatContents : e2;
}
function Vr2(e2) {
  return Le2(e2, $u);
}
function $r2(e2) {
  for (e2 = [...e2]; e2.length >= 2 && y(false, e2, -2).type === A && y(false, e2, -1).type === _2; ) e2.length -= 2;
  if (e2.length > 0) {
    let t9 = ke2(y(false, e2, -1));
    e2[e2.length - 1] = t9;
  }
  return e2;
}
function ke2(e2) {
  switch (z3(e2)) {
    case T2:
    case P2:
    case B2:
    case I3:
    case O2: {
      let t9 = ke2(e2.contents);
      return { ...e2, contents: t9 };
    }
    case w2:
      return { ...e2, breakContents: ke2(e2.breakContents), flatContents: ke2(e2.flatContents) };
    case N2:
      return { ...e2, parts: $r2(e2.parts) };
    case H2:
      return $r2(e2);
    case U2:
      return e2.replace(/[\n\r]*$/u, "");
    case k2:
    case V2:
    case L2:
    case R:
    case A:
    case _2:
      break;
    default:
      throw new Q2(e2);
  }
  return e2;
}
function et3(e2) {
  return ke2(Uu(e2));
}
function Mu(e2) {
  switch (z3(e2)) {
    case N2:
      if (e2.parts.every((t9) => t9 === "")) return "";
      break;
    case B2:
      if (!e2.contents && !e2.id && !e2.break && !e2.expandedStates) return "";
      if (e2.contents.type === B2 && e2.contents.id === e2.id && e2.contents.break === e2.break && e2.contents.expandedStates === e2.expandedStates) return e2.contents;
      break;
    case k2:
    case T2:
    case P2:
    case I3:
      if (!e2.contents) return "";
      break;
    case w2:
      if (!e2.flatContents && !e2.breakContents) return "";
      break;
    case H2: {
      let t9 = [];
      for (let r2 of e2) {
        if (!r2) continue;
        let [n3, ...u2] = Array.isArray(r2) ? r2 : [r2];
        typeof n3 == "string" && typeof y(false, t9, -1) == "string" ? t9[t9.length - 1] += n3 : t9.push(n3), t9.push(...u2);
      }
      return t9.length === 0 ? "" : t9.length === 1 ? t9[0] : t9;
    }
    case U2:
    case V2:
    case L2:
    case R:
    case A:
    case O2:
    case _2:
      break;
    default:
      throw new Q2(e2);
  }
  return e2;
}
function Uu(e2) {
  return Le2(e2, (t9) => Mu(t9));
}
function zr2(e2, t9 = Xe2) {
  return Le2(e2, (r2) => typeof r2 == "string" ? Se2(t9, r2.split(`
`)) : r2);
}
function Vu(e2) {
  if (e2.type === A) return true;
}
function Gr2(e2) {
  return Ze2(e2, Vu, false);
}
function me2(e2, t9) {
  return e2.type === O2 ? { ...e2, contents: t9(e2.contents) } : t9(e2);
}
var Y2 = Symbol("MODE_BREAK");
var J2 = Symbol("MODE_FLAT");
var he2 = Symbol("cursor");
var Lt2 = Symbol("DOC_FILL_PRINTED_LENGTH");
function Kr() {
  return { value: "", length: 0, queue: [] };
}
function zu(e2, t9) {
  return Pt2(e2, { type: "indent" }, t9);
}
function Gu(e2, t9, r2) {
  return t9 === Number.NEGATIVE_INFINITY ? e2.root || Kr() : t9 < 0 ? Pt2(e2, { type: "dedent" }, r2) : t9 ? t9.type === "root" ? { ...e2, root: e2 } : Pt2(e2, { type: typeof t9 == "string" ? "stringAlign" : "numberAlign", n: t9 }, r2) : e2;
}
function Pt2(e2, t9, r2) {
  let n3 = t9.type === "dedent" ? e2.queue.slice(0, -1) : [...e2.queue, t9], u2 = "", i3 = 0, o3 = 0, s2 = 0;
  for (let c3 of n3) switch (c3.type) {
    case "indent":
      l2(), r2.useTabs ? a2(1) : D(r2.tabWidth);
      break;
    case "stringAlign":
      l2(), u2 += c3.n, i3 += c3.n.length;
      break;
    case "numberAlign":
      o3 += 1, s2 += c3.n;
      break;
    default:
      throw new Error(`Unexpected type '${c3.type}'`);
  }
  return f(), { ...e2, value: u2, length: i3, queue: n3 };
  function a2(c3) {
    u2 += "	".repeat(c3), i3 += r2.tabWidth * c3;
  }
  function D(c3) {
    u2 += " ".repeat(c3), i3 += c3;
  }
  function l2() {
    r2.useTabs ? p() : f();
  }
  function p() {
    o3 > 0 && a2(o3), d();
  }
  function f() {
    s2 > 0 && D(s2), d();
  }
  function d() {
    o3 = 0, s2 = 0;
  }
}
function It2(e2) {
  let t9 = 0, r2 = 0, n3 = e2.length;
  e: for (; n3--; ) {
    let u2 = e2[n3];
    if (u2 === he2) {
      r2++;
      continue;
    }
    for (let i3 = u2.length - 1; i3 >= 0; i3--) {
      let o3 = u2[i3];
      if (o3 === " " || o3 === "	") t9++;
      else {
        e2[n3] = u2.slice(0, i3 + 1);
        break e;
      }
    }
  }
  if (t9 > 0 || r2 > 0) for (e2.length = n3 + 1; r2-- > 0; ) e2.push(he2);
  return t9;
}
function tt2(e2, t9, r2, n3, u2, i3) {
  if (r2 === Number.POSITIVE_INFINITY) return true;
  let o3 = t9.length, s2 = [e2], a2 = [];
  for (; r2 >= 0; ) {
    if (s2.length === 0) {
      if (o3 === 0) return true;
      s2.push(t9[--o3]);
      continue;
    }
    let { mode: D, doc: l2 } = s2.pop(), p = z3(l2);
    switch (p) {
      case U2:
        a2.push(l2), r2 -= Te2(l2);
        break;
      case H2:
      case N2: {
        let f = p === H2 ? l2 : l2.parts, d = l2[Lt2] ?? 0;
        for (let c3 = f.length - 1; c3 >= d; c3--) s2.push({ mode: D, doc: f[c3] });
        break;
      }
      case T2:
      case k2:
      case P2:
      case O2:
        s2.push({ mode: D, doc: l2.contents });
        break;
      case L2:
        r2 += It2(a2);
        break;
      case B2: {
        if (i3 && l2.break) return false;
        let f = l2.break ? Y2 : D, d = l2.expandedStates && f === Y2 ? y(false, l2.expandedStates, -1) : l2.contents;
        s2.push({ mode: f, doc: d });
        break;
      }
      case w2: {
        let d = (l2.groupId ? u2[l2.groupId] || J2 : D) === Y2 ? l2.breakContents : l2.flatContents;
        d && s2.push({ mode: D, doc: d });
        break;
      }
      case A:
        if (D === Y2 || l2.hard) return true;
        l2.soft || (a2.push(" "), r2--);
        break;
      case I3:
        n3 = true;
        break;
      case R:
        if (n3) return false;
        break;
    }
  }
  return false;
}
function Ee2(e2, t9) {
  let r2 = {}, n3 = t9.printWidth, u2 = xe2(t9.endOfLine), i3 = 0, o3 = [{ ind: Kr(), mode: Y2, doc: e2 }], s2 = [], a2 = false, D = [], l2 = 0;
  for (Ur2(e2); o3.length > 0; ) {
    let { ind: f, mode: d, doc: c3 } = o3.pop();
    switch (z3(c3)) {
      case U2: {
        let F = u2 !== `
` ? ne2(false, c3, `
`, u2) : c3;
        s2.push(F), o3.length > 0 && (i3 += Te2(F));
        break;
      }
      case H2:
        for (let F = c3.length - 1; F >= 0; F--) o3.push({ ind: f, mode: d, doc: c3[F] });
        break;
      case V2:
        if (l2 >= 2) throw new Error("There are too many 'cursor' in doc.");
        s2.push(he2), l2++;
        break;
      case T2:
        o3.push({ ind: zu(f, t9), mode: d, doc: c3.contents });
        break;
      case k2:
        o3.push({ ind: Gu(f, c3.n, t9), mode: d, doc: c3.contents });
        break;
      case L2:
        i3 -= It2(s2);
        break;
      case B2:
        switch (d) {
          case J2:
            if (!a2) {
              o3.push({ ind: f, mode: c3.break ? Y2 : J2, doc: c3.contents });
              break;
            }
          case Y2: {
            a2 = false;
            let F = { ind: f, mode: J2, doc: c3.contents }, m2 = n3 - i3, h3 = D.length > 0;
            if (!c3.break && tt2(F, o3, m2, h3, r2)) o3.push(F);
            else if (c3.expandedStates) {
              let C = y(false, c3.expandedStates, -1);
              if (c3.break) {
                o3.push({ ind: f, mode: Y2, doc: C });
                break;
              } else for (let v2 = 1; v2 < c3.expandedStates.length + 1; v2++) if (v2 >= c3.expandedStates.length) {
                o3.push({ ind: f, mode: Y2, doc: C });
                break;
              } else {
                let E2 = c3.expandedStates[v2], g = { ind: f, mode: J2, doc: E2 };
                if (tt2(g, o3, m2, h3, r2)) {
                  o3.push(g);
                  break;
                }
              }
            } else o3.push({ ind: f, mode: Y2, doc: c3.contents });
            break;
          }
        }
        c3.id && (r2[c3.id] = y(false, o3, -1).mode);
        break;
      case N2: {
        let F = n3 - i3, m2 = c3[Lt2] ?? 0, { parts: h3 } = c3, C = h3.length - m2;
        if (C === 0) break;
        let v2 = h3[m2 + 0], E2 = h3[m2 + 1], g = { ind: f, mode: J2, doc: v2 }, j2 = { ind: f, mode: Y2, doc: v2 }, b2 = tt2(g, [], F, D.length > 0, r2, true);
        if (C === 1) {
          b2 ? o3.push(g) : o3.push(j2);
          break;
        }
        let X2 = { ind: f, mode: J2, doc: E2 }, ae2 = { ind: f, mode: Y2, doc: E2 };
        if (C === 2) {
          b2 ? o3.push(X2, g) : o3.push(ae2, j2);
          break;
        }
        let $e2 = h3[m2 + 2], At2 = { ind: f, mode: d, doc: { ...c3, [Lt2]: m2 + 2 } };
        tt2({ ind: f, mode: J2, doc: [v2, E2, $e2] }, [], F, D.length > 0, r2, true) ? o3.push(At2, X2, g) : b2 ? o3.push(At2, ae2, g) : o3.push(At2, ae2, j2);
        break;
      }
      case w2:
      case P2: {
        let F = c3.groupId ? r2[c3.groupId] : d;
        if (F === Y2) {
          let m2 = c3.type === w2 ? c3.breakContents : c3.negate ? c3.contents : le2(c3.contents);
          m2 && o3.push({ ind: f, mode: d, doc: m2 });
        }
        if (F === J2) {
          let m2 = c3.type === w2 ? c3.flatContents : c3.negate ? le2(c3.contents) : c3.contents;
          m2 && o3.push({ ind: f, mode: d, doc: m2 });
        }
        break;
      }
      case I3:
        D.push({ ind: f, mode: d, doc: c3.contents });
        break;
      case R:
        D.length > 0 && o3.push({ ind: f, mode: d, doc: Oe2 });
        break;
      case A:
        switch (d) {
          case J2:
            if (c3.hard) a2 = true;
            else {
              c3.soft || (s2.push(" "), i3 += 1);
              break;
            }
          case Y2:
            if (D.length > 0) {
              o3.push({ ind: f, mode: d, doc: c3 }, ...D.reverse()), D.length = 0;
              break;
            }
            c3.literal ? f.root ? (s2.push(u2, f.root.value), i3 = f.root.length) : (s2.push(u2), i3 = 0) : (i3 -= It2(s2), s2.push(u2 + f.value), i3 = f.length);
            break;
        }
        break;
      case O2:
        o3.push({ ind: f, mode: d, doc: c3.contents });
        break;
      case _2:
        break;
      default:
        throw new Q2(c3);
    }
    o3.length === 0 && D.length > 0 && (o3.push(...D.reverse()), D.length = 0);
  }
  let p = s2.indexOf(he2);
  if (p !== -1) {
    let f = s2.indexOf(he2, p + 1);
    if (f === -1) return { formatted: s2.filter((m2) => m2 !== he2).join("") };
    let d = s2.slice(0, p).join(""), c3 = s2.slice(p + 1, f).join(""), F = s2.slice(f + 1).join("");
    return { formatted: d + c3 + F, cursorNodeStart: d.length, cursorNodeText: c3 };
  }
  return { formatted: s2.join("") };
}
function Ku(e2, t9, r2 = 0) {
  let n3 = 0;
  for (let u2 = r2; u2 < e2.length; ++u2) e2[u2] === "	" ? n3 = n3 + t9 - n3 % t9 : n3++;
  return n3;
}
var Ce2 = Ku;
var te;
var Yt2;
var rt2;
var Rt2 = class {
  constructor(t9) {
    pr2(this, te);
    this.stack = [t9];
  }
  get key() {
    let { stack: t9, siblings: r2 } = this;
    return y(false, t9, r2 === null ? -2 : -4) ?? null;
  }
  get index() {
    return this.siblings === null ? null : y(false, this.stack, -2);
  }
  get node() {
    return y(false, this.stack, -1);
  }
  get parent() {
    return this.getNode(1);
  }
  get grandparent() {
    return this.getNode(2);
  }
  get isInArray() {
    return this.siblings !== null;
  }
  get siblings() {
    let { stack: t9 } = this, r2 = y(false, t9, -3);
    return Array.isArray(r2) ? r2 : null;
  }
  get next() {
    let { siblings: t9 } = this;
    return t9 === null ? null : t9[this.index + 1];
  }
  get previous() {
    let { siblings: t9 } = this;
    return t9 === null ? null : t9[this.index - 1];
  }
  get isFirst() {
    return this.index === 0;
  }
  get isLast() {
    let { siblings: t9, index: r2 } = this;
    return t9 !== null && r2 === t9.length - 1;
  }
  get isRoot() {
    return this.stack.length === 1;
  }
  get root() {
    return this.stack[0];
  }
  get ancestors() {
    return [...pe2(this, te, rt2).call(this)];
  }
  getName() {
    let { stack: t9 } = this, { length: r2 } = t9;
    return r2 > 1 ? y(false, t9, -2) : null;
  }
  getValue() {
    return y(false, this.stack, -1);
  }
  getNode(t9 = 0) {
    let r2 = pe2(this, te, Yt2).call(this, t9);
    return r2 === -1 ? null : this.stack[r2];
  }
  getParentNode(t9 = 0) {
    return this.getNode(t9 + 1);
  }
  call(t9, ...r2) {
    let { stack: n3 } = this, { length: u2 } = n3, i3 = y(false, n3, -1);
    for (let o3 of r2) i3 = i3[o3], n3.push(o3, i3);
    try {
      return t9(this);
    } finally {
      n3.length = u2;
    }
  }
  callParent(t9, r2 = 0) {
    let n3 = pe2(this, te, Yt2).call(this, r2 + 1), u2 = this.stack.splice(n3 + 1);
    try {
      return t9(this);
    } finally {
      this.stack.push(...u2);
    }
  }
  each(t9, ...r2) {
    let { stack: n3 } = this, { length: u2 } = n3, i3 = y(false, n3, -1);
    for (let o3 of r2) i3 = i3[o3], n3.push(o3, i3);
    try {
      for (let o3 = 0; o3 < i3.length; ++o3) n3.push(o3, i3[o3]), t9(this, o3, i3), n3.length -= 2;
    } finally {
      n3.length = u2;
    }
  }
  map(t9, ...r2) {
    let n3 = [];
    return this.each((u2, i3, o3) => {
      n3[i3] = t9(u2, i3, o3);
    }, ...r2), n3;
  }
  match(...t9) {
    let r2 = this.stack.length - 1, n3 = null, u2 = this.stack[r2--];
    for (let i3 of t9) {
      if (u2 === void 0) return false;
      let o3 = null;
      if (typeof n3 == "number" && (o3 = n3, n3 = this.stack[r2--], u2 = this.stack[r2--]), i3 && !i3(u2, n3, o3)) return false;
      n3 = this.stack[r2--], u2 = this.stack[r2--];
    }
    return true;
  }
  findAncestor(t9) {
    for (let r2 of pe2(this, te, rt2).call(this)) if (t9(r2)) return r2;
  }
  hasAncestor(t9) {
    for (let r2 of pe2(this, te, rt2).call(this)) if (t9(r2)) return true;
    return false;
  }
};
te = /* @__PURE__ */ new WeakSet(), Yt2 = function(t9) {
  let { stack: r2 } = this;
  for (let n3 = r2.length - 1; n3 >= 0; n3 -= 2) if (!Array.isArray(r2[n3]) && --t9 < 0) return n3;
  return -1;
}, rt2 = function* () {
  let { stack: t9 } = this;
  for (let r2 = t9.length - 3; r2 >= 0; r2 -= 2) {
    let n3 = t9[r2];
    Array.isArray(n3) || (yield n3);
  }
};
var Jr2 = Rt2;
var qr = new Proxy(() => {
}, { get: () => qr });
var Pe = qr;
function Ju(e2) {
  return e2 !== null && typeof e2 == "object";
}
var Xr2 = Ju;
function* ge2(e2, t9) {
  let { getVisitorKeys: r2, filter: n3 = () => true } = t9, u2 = (i3) => Xr2(i3) && n3(i3);
  for (let i3 of r2(e2)) {
    let o3 = e2[i3];
    if (Array.isArray(o3)) for (let s2 of o3) u2(s2) && (yield s2);
    else u2(o3) && (yield o3);
  }
}
function* Qr(e2, t9) {
  let r2 = [e2];
  for (let n3 = 0; n3 < r2.length; n3++) {
    let u2 = r2[n3];
    for (let i3 of ge2(u2, t9)) yield i3, r2.push(i3);
  }
}
function Zr2(e2, t9) {
  return ge2(e2, t9).next().done;
}
function ye2(e2) {
  return (t9, r2, n3) => {
    let u2 = !!(n3 != null && n3.backwards);
    if (r2 === false) return false;
    let { length: i3 } = t9, o3 = r2;
    for (; o3 >= 0 && o3 < i3; ) {
      let s2 = t9.charAt(o3);
      if (e2 instanceof RegExp) {
        if (!e2.test(s2)) return o3;
      } else if (!e2.includes(s2)) return o3;
      u2 ? o3-- : o3++;
    }
    return o3 === -1 || o3 === i3 ? o3 : false;
  };
}
var en2 = ye2(/\s/u);
var S2 = ye2(" 	");
var nt2 = ye2(",; 	");
var ut2 = ye2(/[^\n\r]/u);
function qu(e2, t9, r2) {
  let n3 = !!(r2 != null && r2.backwards);
  if (t9 === false) return false;
  let u2 = e2.charAt(t9);
  if (n3) {
    if (e2.charAt(t9 - 1) === "\r" && u2 === `
`) return t9 - 2;
    if (u2 === `
` || u2 === "\r" || u2 === "\u2028" || u2 === "\u2029") return t9 - 1;
  } else {
    if (u2 === "\r" && e2.charAt(t9 + 1) === `
`) return t9 + 2;
    if (u2 === `
` || u2 === "\r" || u2 === "\u2028" || u2 === "\u2029") return t9 + 1;
  }
  return t9;
}
var W2 = qu;
function Xu(e2, t9, r2 = {}) {
  let n3 = S2(e2, r2.backwards ? t9 - 1 : t9, r2), u2 = W2(e2, n3, r2);
  return n3 !== u2;
}
var $ = Xu;
function Qu(e2) {
  return Array.isArray(e2) && e2.length > 0;
}
var jt2 = Qu;
var tn2 = /* @__PURE__ */ new Set(["tokens", "comments", "parent", "enclosingNode", "precedingNode", "followingNode"]);
var Zu = (e2) => Object.keys(e2).filter((t9) => !tn2.has(t9));
function ei2(e2) {
  return e2 ? (t9) => e2(t9, tn2) : Zu;
}
var q2 = ei2;
function ti(e2) {
  let t9 = e2.type || e2.kind || "(unknown type)", r2 = String(e2.name || e2.id && (typeof e2.id == "object" ? e2.id.name : e2.id) || e2.key && (typeof e2.key == "object" ? e2.key.name : e2.key) || e2.value && (typeof e2.value == "object" ? "" : String(e2.value)) || e2.operator || "");
  return r2.length > 20 && (r2 = r2.slice(0, 19) + "\u2026"), t9 + (r2 ? " " + r2 : "");
}
function Ht2(e2, t9) {
  (e2.comments ?? (e2.comments = [])).push(t9), t9.printed = false, t9.nodeDescription = ti(e2);
}
function ue(e2, t9) {
  t9.leading = true, t9.trailing = false, Ht2(e2, t9);
}
function re2(e2, t9, r2) {
  t9.leading = false, t9.trailing = false, r2 && (t9.marker = r2), Ht2(e2, t9);
}
function ie2(e2, t9) {
  t9.leading = false, t9.trailing = true, Ht2(e2, t9);
}
var Wt2 = /* @__PURE__ */ new WeakMap();
function it2(e2, t9) {
  if (Wt2.has(e2)) return Wt2.get(e2);
  let { printer: { getCommentChildNodes: r2, canAttachComment: n3, getVisitorKeys: u2 }, locStart: i3, locEnd: o3 } = t9;
  if (!n3) return [];
  let s2 = ((r2 == null ? void 0 : r2(e2, t9)) ?? [...ge2(e2, { getVisitorKeys: q2(u2) })]).flatMap((a2) => n3(a2) ? [a2] : it2(a2, t9));
  return s2.sort((a2, D) => i3(a2) - i3(D) || o3(a2) - o3(D)), Wt2.set(e2, s2), s2;
}
function nn2(e2, t9, r2, n3) {
  let { locStart: u2, locEnd: i3 } = r2, o3 = u2(t9), s2 = i3(t9), a2 = it2(e2, r2), D, l2, p = 0, f = a2.length;
  for (; p < f; ) {
    let d = p + f >> 1, c3 = a2[d], F = u2(c3), m2 = i3(c3);
    if (F <= o3 && s2 <= m2) return nn2(c3, t9, r2, c3);
    if (m2 <= o3) {
      D = c3, p = d + 1;
      continue;
    }
    if (s2 <= F) {
      l2 = c3, f = d;
      continue;
    }
    throw new Error("Comment location overlaps with node location");
  }
  if ((n3 == null ? void 0 : n3.type) === "TemplateLiteral") {
    let { quasis: d } = n3, c3 = Mt2(d, t9, r2);
    D && Mt2(d, D, r2) !== c3 && (D = null), l2 && Mt2(d, l2, r2) !== c3 && (l2 = null);
  }
  return { enclosingNode: n3, precedingNode: D, followingNode: l2 };
}
var $t2 = () => false;
function un2(e2, t9) {
  let { comments: r2 } = e2;
  if (delete e2.comments, !jt2(r2) || !t9.printer.canAttachComment) return;
  let n3 = [], { locStart: u2, locEnd: i3, printer: { experimentalFeatures: { avoidAstMutation: o3 = false } = {}, handleComments: s2 = {} }, originalText: a2 } = t9, { ownLine: D = $t2, endOfLine: l2 = $t2, remaining: p = $t2 } = s2, f = r2.map((d, c3) => ({ ...nn2(e2, d, t9), comment: d, text: a2, options: t9, ast: e2, isLastComment: r2.length - 1 === c3 }));
  for (let [d, c3] of f.entries()) {
    let { comment: F, precedingNode: m2, enclosingNode: h3, followingNode: C, text: v2, options: E2, ast: g, isLastComment: j2 } = c3;
    if (E2.parser === "json" || E2.parser === "json5" || E2.parser === "jsonc" || E2.parser === "__js_expression" || E2.parser === "__ts_expression" || E2.parser === "__vue_expression" || E2.parser === "__vue_ts_expression") {
      if (u2(F) - u2(g) <= 0) {
        ue(g, F);
        continue;
      }
      if (i3(F) - i3(g) >= 0) {
        ie2(g, F);
        continue;
      }
    }
    let b2;
    if (o3 ? b2 = [c3] : (F.enclosingNode = h3, F.precedingNode = m2, F.followingNode = C, b2 = [F, v2, E2, g, j2]), ri2(v2, E2, f, d)) F.placement = "ownLine", D(...b2) || (C ? ue(C, F) : m2 ? ie2(m2, F) : h3 ? re2(h3, F) : re2(g, F));
    else if (ni2(v2, E2, f, d)) F.placement = "endOfLine", l2(...b2) || (m2 ? ie2(m2, F) : C ? ue(C, F) : h3 ? re2(h3, F) : re2(g, F));
    else if (F.placement = "remaining", !p(...b2)) if (m2 && C) {
      let X2 = n3.length;
      X2 > 0 && n3[X2 - 1].followingNode !== C && rn2(n3, E2), n3.push(c3);
    } else m2 ? ie2(m2, F) : C ? ue(C, F) : h3 ? re2(h3, F) : re2(g, F);
  }
  if (rn2(n3, t9), !o3) for (let d of r2) delete d.precedingNode, delete d.enclosingNode, delete d.followingNode;
}
var on3 = (e2) => !/[\S\n\u2028\u2029]/u.test(e2);
function ri2(e2, t9, r2, n3) {
  let { comment: u2, precedingNode: i3 } = r2[n3], { locStart: o3, locEnd: s2 } = t9, a2 = o3(u2);
  if (i3) for (let D = n3 - 1; D >= 0; D--) {
    let { comment: l2, precedingNode: p } = r2[D];
    if (p !== i3 || !on3(e2.slice(s2(l2), a2))) break;
    a2 = o3(l2);
  }
  return $(e2, a2, { backwards: true });
}
function ni2(e2, t9, r2, n3) {
  let { comment: u2, followingNode: i3 } = r2[n3], { locStart: o3, locEnd: s2 } = t9, a2 = s2(u2);
  if (i3) for (let D = n3 + 1; D < r2.length; D++) {
    let { comment: l2, followingNode: p } = r2[D];
    if (p !== i3 || !on3(e2.slice(a2, o3(l2)))) break;
    a2 = s2(l2);
  }
  return $(e2, a2);
}
function rn2(e2, t9) {
  var s2, a2;
  let r2 = e2.length;
  if (r2 === 0) return;
  let { precedingNode: n3, followingNode: u2 } = e2[0], i3 = t9.locStart(u2), o3;
  for (o3 = r2; o3 > 0; --o3) {
    let { comment: D, precedingNode: l2, followingNode: p } = e2[o3 - 1];
    Pe.strictEqual(l2, n3), Pe.strictEqual(p, u2);
    let f = t9.originalText.slice(t9.locEnd(D), i3);
    if (((a2 = (s2 = t9.printer).isGap) == null ? void 0 : a2.call(s2, f, t9)) ?? /^[\s(]*$/u.test(f)) i3 = t9.locStart(D);
    else break;
  }
  for (let [D, { comment: l2 }] of e2.entries()) D < o3 ? ie2(n3, l2) : ue(u2, l2);
  for (let D of [n3, u2]) D.comments && D.comments.length > 1 && D.comments.sort((l2, p) => t9.locStart(l2) - t9.locStart(p));
  e2.length = 0;
}
function Mt2(e2, t9, r2) {
  let n3 = r2.locStart(t9) - 1;
  for (let u2 = 1; u2 < e2.length; ++u2) if (n3 < r2.locStart(e2[u2])) return u2 - 1;
  return 0;
}
function ui2(e2, t9) {
  let r2 = t9 - 1;
  r2 = S2(e2, r2, { backwards: true }), r2 = W2(e2, r2, { backwards: true }), r2 = S2(e2, r2, { backwards: true });
  let n3 = W2(e2, r2, { backwards: true });
  return r2 !== n3;
}
var Ie2 = ui2;
function sn2(e2, t9) {
  let r2 = e2.node;
  return r2.printed = true, t9.printer.printComment(e2, t9);
}
function ii2(e2, t9) {
  var l2;
  let r2 = e2.node, n3 = [sn2(e2, t9)], { printer: u2, originalText: i3, locStart: o3, locEnd: s2 } = t9;
  if ((l2 = u2.isBlockComment) == null ? void 0 : l2.call(u2, r2)) {
    let p = $(i3, s2(r2)) ? $(i3, o3(r2), { backwards: true }) ? K2 : qe2 : " ";
    n3.push(p);
  } else n3.push(K2);
  let D = W2(i3, S2(i3, s2(r2)));
  return D !== false && $(i3, D) && n3.push(K2), n3;
}
function oi2(e2, t9, r2) {
  var D;
  let n3 = e2.node, u2 = sn2(e2, t9), { printer: i3, originalText: o3, locStart: s2 } = t9, a2 = (D = i3.isBlockComment) == null ? void 0 : D.call(i3, n3);
  if (r2 != null && r2.hasLineSuffix && !(r2 != null && r2.isBlock) || $(o3, s2(n3), { backwards: true })) {
    let l2 = Ie2(o3, s2(n3));
    return { doc: Ne2([K2, l2 ? K2 : "", u2]), isBlock: a2, hasLineSuffix: true };
  }
  return !a2 || r2 != null && r2.hasLineSuffix ? { doc: [Ne2([" ", u2]), Fe2], isBlock: a2, hasLineSuffix: true } : { doc: [" ", u2], isBlock: a2, hasLineSuffix: false };
}
function si2(e2, t9) {
  let r2 = e2.node;
  if (!r2) return {};
  let n3 = t9[Symbol.for("printedComments")];
  if ((r2.comments || []).filter((a2) => !n3.has(a2)).length === 0) return { leading: "", trailing: "" };
  let i3 = [], o3 = [], s2;
  return e2.each(() => {
    let a2 = e2.node;
    if (n3 != null && n3.has(a2)) return;
    let { leading: D, trailing: l2 } = a2;
    D ? i3.push(ii2(e2, t9)) : l2 && (s2 = oi2(e2, t9, s2), o3.push(s2.doc));
  }, "comments"), { leading: i3, trailing: o3 };
}
function an2(e2, t9, r2) {
  let { leading: n3, trailing: u2 } = si2(e2, r2);
  return !n3 && !u2 ? t9 : me2(t9, (i3) => [n3, i3, u2]);
}
function Dn2(e2) {
  let { [Symbol.for("comments")]: t9, [Symbol.for("printedComments")]: r2 } = e2;
  for (let n3 of t9) {
    if (!n3.printed && !r2.has(n3)) throw new Error('Comment "' + n3.value.trim() + '" was not printed. Please report this error!');
    delete n3.printed;
  }
}
function ai2(e2) {
  return () => {
  };
}
var ln2 = ai2;
var Re2 = class extends Error {
  name = "ConfigError";
};
var Ye2 = class extends Error {
  name = "UndefinedParserError";
};
var cn2 = { cursorOffset: { category: "Special", type: "int", default: -1, range: { start: -1, end: 1 / 0, step: 1 }, description: "Print (to stderr) where a cursor at the given position would move to after formatting.", cliCategory: "Editor" }, endOfLine: { category: "Global", type: "choice", default: "lf", description: "Which end of line characters to apply.", choices: [{ value: "lf", description: "Line Feed only (\\n), common on Linux and macOS as well as inside git repos" }, { value: "crlf", description: "Carriage Return + Line Feed characters (\\r\\n), common on Windows" }, { value: "cr", description: "Carriage Return character only (\\r), used very rarely" }, { value: "auto", description: `Maintain existing
(mixed values within one file are normalised by looking at what's used after the first line)` }] }, filepath: { category: "Special", type: "path", description: "Specify the input filepath. This will be used to do parser inference.", cliName: "stdin-filepath", cliCategory: "Other", cliDescription: "Path to the file to pretend that stdin comes from." }, insertPragma: { category: "Special", type: "boolean", default: false, description: "Insert @format pragma into file's first docblock comment.", cliCategory: "Other" }, parser: { category: "Global", type: "choice", default: void 0, description: "Which parser to use.", exception: (e2) => typeof e2 == "string" || typeof e2 == "function", choices: [{ value: "flow", description: "Flow" }, { value: "babel", description: "JavaScript" }, { value: "babel-flow", description: "Flow" }, { value: "babel-ts", description: "TypeScript" }, { value: "typescript", description: "TypeScript" }, { value: "acorn", description: "JavaScript" }, { value: "espree", description: "JavaScript" }, { value: "meriyah", description: "JavaScript" }, { value: "css", description: "CSS" }, { value: "less", description: "Less" }, { value: "scss", description: "SCSS" }, { value: "json", description: "JSON" }, { value: "json5", description: "JSON5" }, { value: "jsonc", description: "JSON with Comments" }, { value: "json-stringify", description: "JSON.stringify" }, { value: "graphql", description: "GraphQL" }, { value: "markdown", description: "Markdown" }, { value: "mdx", description: "MDX" }, { value: "vue", description: "Vue" }, { value: "yaml", description: "YAML" }, { value: "glimmer", description: "Ember / Handlebars" }, { value: "html", description: "HTML" }, { value: "angular", description: "Angular" }, { value: "lwc", description: "Lightning Web Components" }] }, plugins: { type: "path", array: true, default: [{ value: [] }], category: "Global", description: "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.", exception: (e2) => typeof e2 == "string" || typeof e2 == "object", cliName: "plugin", cliCategory: "Config" }, printWidth: { category: "Global", type: "int", default: 80, description: "The line length where Prettier will try wrap.", range: { start: 0, end: 1 / 0, step: 1 } }, rangeEnd: { category: "Special", type: "int", default: 1 / 0, range: { start: 0, end: 1 / 0, step: 1 }, description: `Format code ending at a given character offset (exclusive).
The range will extend forwards to the end of the selected statement.`, cliCategory: "Editor" }, rangeStart: { category: "Special", type: "int", default: 0, range: { start: 0, end: 1 / 0, step: 1 }, description: `Format code starting at a given character offset.
The range will extend backwards to the start of the first line containing the selected statement.`, cliCategory: "Editor" }, requirePragma: { category: "Special", type: "boolean", default: false, description: `Require either '@prettier' or '@format' to be present in the file's first docblock comment
in order for it to be formatted.`, cliCategory: "Other" }, tabWidth: { type: "int", category: "Global", default: 2, description: "Number of spaces per indentation level.", range: { start: 0, end: 1 / 0, step: 1 } }, useTabs: { category: "Global", type: "boolean", default: false, description: "Indent with tabs instead of spaces." }, embeddedLanguageFormatting: { category: "Global", type: "choice", default: "auto", description: "Control how Prettier formats quoted code embedded in the file.", choices: [{ value: "auto", description: "Format embedded code if Prettier can automatically identify it." }, { value: "off", description: "Never automatically format embedded code." }] } };
function ot2({ plugins: e2 = [], showDeprecated: t9 = false } = {}) {
  let r2 = e2.flatMap((u2) => u2.languages ?? []), n3 = [];
  for (let u2 of li2(Object.assign({}, ...e2.map(({ options: i3 }) => i3), cn2))) !t9 && u2.deprecated || (Array.isArray(u2.choices) && (t9 || (u2.choices = u2.choices.filter((i3) => !i3.deprecated)), u2.name === "parser" && (u2.choices = [...u2.choices, ...Di2(u2.choices, r2, e2)])), u2.pluginDefaults = Object.fromEntries(e2.filter((i3) => {
    var o3;
    return ((o3 = i3.defaultOptions) == null ? void 0 : o3[u2.name]) !== void 0;
  }).map((i3) => [i3.name, i3.defaultOptions[u2.name]])), n3.push(u2));
  return { languages: r2, options: n3 };
}
function* Di2(e2, t9, r2) {
  let n3 = new Set(e2.map((u2) => u2.value));
  for (let u2 of t9) if (u2.parsers) {
    for (let i3 of u2.parsers) if (!n3.has(i3)) {
      n3.add(i3);
      let o3 = r2.find((a2) => a2.parsers && Object.prototype.hasOwnProperty.call(a2.parsers, i3)), s2 = u2.name;
      o3 != null && o3.name && (s2 += ` (plugin: ${o3.name})`), yield { value: i3, description: s2 };
    }
  }
}
function li2(e2) {
  let t9 = [];
  for (let [r2, n3] of Object.entries(e2)) {
    let u2 = { name: r2, ...n3 };
    Array.isArray(u2.default) && (u2.default = y(false, u2.default, -1).value), t9.push(u2);
  }
  return t9;
}
var ci2 = (e2) => String(e2).split(/[/\\]/u).pop();
function fn2(e2, t9) {
  if (!t9) return;
  let r2 = ci2(t9).toLowerCase();
  return e2.find(({ filenames: n3 }) => n3 == null ? void 0 : n3.some((u2) => u2.toLowerCase() === r2)) ?? e2.find(({ extensions: n3 }) => n3 == null ? void 0 : n3.some((u2) => r2.endsWith(u2)));
}
function fi2(e2, t9) {
  if (t9) return e2.find(({ name: r2 }) => r2.toLowerCase() === t9) ?? e2.find(({ aliases: r2 }) => r2 == null ? void 0 : r2.includes(t9)) ?? e2.find(({ extensions: r2 }) => r2 == null ? void 0 : r2.includes(`.${t9}`));
}
function di2(e2, t9) {
  let r2 = e2.plugins.flatMap((u2) => u2.languages ?? []), n3 = fi2(r2, t9.language) ?? fn2(r2, t9.physicalFile) ?? fn2(r2, t9.file) ?? (t9.physicalFile, void 0);
  return n3 == null ? void 0 : n3.parsers[0];
}
var dn2 = di2;
var oe = { key: (e2) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e2) ? e2 : JSON.stringify(e2), value(e2) {
  if (e2 === null || typeof e2 != "object") return JSON.stringify(e2);
  if (Array.isArray(e2)) return `[${e2.map((r2) => oe.value(r2)).join(", ")}]`;
  let t9 = Object.keys(e2);
  return t9.length === 0 ? "{}" : `{ ${t9.map((r2) => `${oe.key(r2)}: ${oe.value(e2[r2])}`).join(", ")} }`;
}, pair: ({ key: e2, value: t9 }) => oe.value({ [e2]: t9 }) };
var Ut2 = Me2(st2(), 1);
var mn2 = (e2, t9, { descriptor: r2 }) => {
  let n3 = [`${Ut2.default.yellow(typeof e2 == "string" ? r2.key(e2) : r2.pair(e2))} is deprecated`];
  return t9 && n3.push(`we now treat it as ${Ut2.default.blue(typeof t9 == "string" ? r2.key(t9) : r2.pair(t9))}`), n3.join("; ") + ".";
};
var ce2 = Me2(st2(), 1);
var at2 = Symbol.for("vnopts.VALUE_NOT_EXIST");
var Ae = Symbol.for("vnopts.VALUE_UNCHANGED");
var hn2 = " ".repeat(2);
var Cn2 = (e2, t9, r2) => {
  let { text: n3, list: u2 } = r2.normalizeExpectedResult(r2.schemas[e2].expected(r2)), i3 = [];
  return n3 && i3.push(En2(e2, t9, n3, r2.descriptor)), u2 && i3.push([En2(e2, t9, u2.title, r2.descriptor)].concat(u2.values.map((o3) => gn2(o3, r2.loggerPrintWidth))).join(`
`)), yn2(i3, r2.loggerPrintWidth);
};
function En2(e2, t9, r2, n3) {
  return [`Invalid ${ce2.default.red(n3.key(e2))} value.`, `Expected ${ce2.default.blue(r2)},`, `but received ${t9 === at2 ? ce2.default.gray("nothing") : ce2.default.red(n3.value(t9))}.`].join(" ");
}
function gn2({ text: e2, list: t9 }, r2) {
  let n3 = [];
  return e2 && n3.push(`- ${ce2.default.blue(e2)}`), t9 && n3.push([`- ${ce2.default.blue(t9.title)}:`].concat(t9.values.map((u2) => gn2(u2, r2 - hn2.length).replace(/^|\n/g, `$&${hn2}`))).join(`
`)), yn2(n3, r2);
}
function yn2(e2, t9) {
  if (e2.length === 1) return e2[0];
  let [r2, n3] = e2, [u2, i3] = e2.map((o3) => o3.split(`
`, 1)[0].length);
  return u2 > t9 && u2 > i3 ? n3 : r2;
}
var Gt2 = Me2(st2(), 1);
var Vt2 = [];
var An2 = [];
function zt2(e2, t9) {
  if (e2 === t9) return 0;
  let r2 = e2;
  e2.length > t9.length && (e2 = t9, t9 = r2);
  let n3 = e2.length, u2 = t9.length;
  for (; n3 > 0 && e2.charCodeAt(~-n3) === t9.charCodeAt(~-u2); ) n3--, u2--;
  let i3 = 0;
  for (; i3 < n3 && e2.charCodeAt(i3) === t9.charCodeAt(i3); ) i3++;
  if (n3 -= i3, u2 -= i3, n3 === 0) return u2;
  let o3, s2, a2, D, l2 = 0, p = 0;
  for (; l2 < n3; ) An2[l2] = e2.charCodeAt(i3 + l2), Vt2[l2] = ++l2;
  for (; p < u2; ) for (o3 = t9.charCodeAt(i3 + p), a2 = p++, s2 = p, l2 = 0; l2 < n3; l2++) D = o3 === An2[l2] ? a2 : a2 + 1, a2 = Vt2[l2], s2 = Vt2[l2] = a2 > s2 ? D > s2 ? s2 + 1 : D : D > a2 ? a2 + 1 : D;
  return s2;
}
var Dt2 = (e2, t9, { descriptor: r2, logger: n3, schemas: u2 }) => {
  let i3 = [`Ignored unknown option ${Gt2.default.yellow(r2.pair({ key: e2, value: t9 }))}.`], o3 = Object.keys(u2).sort().find((s2) => zt2(e2, s2) < 3);
  o3 && i3.push(`Did you mean ${Gt2.default.blue(r2.key(o3))}?`), n3.warn(i3.join(" "));
};
var pi2 = ["default", "expected", "validate", "deprecated", "forward", "redirect", "overlap", "preprocess", "postprocess"];
function Fi2(e2, t9) {
  let r2 = new e2(t9), n3 = Object.create(r2);
  for (let u2 of pi2) u2 in t9 && (n3[u2] = mi2(t9[u2], r2, x2.prototype[u2].length));
  return n3;
}
var x2 = class {
  static create(t9) {
    return Fi2(this, t9);
  }
  constructor(t9) {
    this.name = t9.name;
  }
  default(t9) {
  }
  expected(t9) {
    return "nothing";
  }
  validate(t9, r2) {
    return false;
  }
  deprecated(t9, r2) {
    return false;
  }
  forward(t9, r2) {
  }
  redirect(t9, r2) {
  }
  overlap(t9, r2, n3) {
    return t9;
  }
  preprocess(t9, r2) {
    return t9;
  }
  postprocess(t9, r2) {
    return Ae;
  }
};
function mi2(e2, t9, r2) {
  return typeof e2 == "function" ? (...n3) => e2(...n3.slice(0, r2 - 1), t9, ...n3.slice(r2 - 1)) : () => e2;
}
var lt2 = class extends x2 {
  constructor(t9) {
    super(t9), this._sourceName = t9.sourceName;
  }
  expected(t9) {
    return t9.schemas[this._sourceName].expected(t9);
  }
  validate(t9, r2) {
    return r2.schemas[this._sourceName].validate(t9, r2);
  }
  redirect(t9, r2) {
    return this._sourceName;
  }
};
var ct2 = class extends x2 {
  expected() {
    return "anything";
  }
  validate() {
    return true;
  }
};
var ft2 = class extends x2 {
  constructor({ valueSchema: t9, name: r2 = t9.name, ...n3 }) {
    super({ ...n3, name: r2 }), this._valueSchema = t9;
  }
  expected(t9) {
    let { text: r2, list: n3 } = t9.normalizeExpectedResult(this._valueSchema.expected(t9));
    return { text: r2 && `an array of ${r2}`, list: n3 && { title: "an array of the following values", values: [{ list: n3 }] } };
  }
  validate(t9, r2) {
    if (!Array.isArray(t9)) return false;
    let n3 = [];
    for (let u2 of t9) {
      let i3 = r2.normalizeValidateResult(this._valueSchema.validate(u2, r2), u2);
      i3 !== true && n3.push(i3.value);
    }
    return n3.length === 0 ? true : { value: n3 };
  }
  deprecated(t9, r2) {
    let n3 = [];
    for (let u2 of t9) {
      let i3 = r2.normalizeDeprecatedResult(this._valueSchema.deprecated(u2, r2), u2);
      i3 !== false && n3.push(...i3.map(({ value: o3 }) => ({ value: [o3] })));
    }
    return n3;
  }
  forward(t9, r2) {
    let n3 = [];
    for (let u2 of t9) {
      let i3 = r2.normalizeForwardResult(this._valueSchema.forward(u2, r2), u2);
      n3.push(...i3.map(vn2));
    }
    return n3;
  }
  redirect(t9, r2) {
    let n3 = [], u2 = [];
    for (let i3 of t9) {
      let o3 = r2.normalizeRedirectResult(this._valueSchema.redirect(i3, r2), i3);
      "remain" in o3 && n3.push(o3.remain), u2.push(...o3.redirect.map(vn2));
    }
    return n3.length === 0 ? { redirect: u2 } : { redirect: u2, remain: n3 };
  }
  overlap(t9, r2) {
    return t9.concat(r2);
  }
};
function vn2({ from: e2, to: t9 }) {
  return { from: [e2], to: t9 };
}
var dt2 = class extends x2 {
  expected() {
    return "true or false";
  }
  validate(t9) {
    return typeof t9 == "boolean";
  }
};
function wn2(e2, t9) {
  let r2 = /* @__PURE__ */ Object.create(null);
  for (let n3 of e2) {
    let u2 = n3[t9];
    if (r2[u2]) throw new Error(`Duplicate ${t9} ${JSON.stringify(u2)}`);
    r2[u2] = n3;
  }
  return r2;
}
function _n2(e2, t9) {
  let r2 = /* @__PURE__ */ new Map();
  for (let n3 of e2) {
    let u2 = n3[t9];
    if (r2.has(u2)) throw new Error(`Duplicate ${t9} ${JSON.stringify(u2)}`);
    r2.set(u2, n3);
  }
  return r2;
}
function xn2() {
  let e2 = /* @__PURE__ */ Object.create(null);
  return (t9) => {
    let r2 = JSON.stringify(t9);
    return e2[r2] ? true : (e2[r2] = true, false);
  };
}
function bn2(e2, t9) {
  let r2 = [], n3 = [];
  for (let u2 of e2) t9(u2) ? r2.push(u2) : n3.push(u2);
  return [r2, n3];
}
function Nn2(e2) {
  return e2 === Math.floor(e2);
}
function On2(e2, t9) {
  if (e2 === t9) return 0;
  let r2 = typeof e2, n3 = typeof t9, u2 = ["undefined", "object", "boolean", "number", "string"];
  return r2 !== n3 ? u2.indexOf(r2) - u2.indexOf(n3) : r2 !== "string" ? Number(e2) - Number(t9) : e2.localeCompare(t9);
}
function Sn2(e2) {
  return (...t9) => {
    let r2 = e2(...t9);
    return typeof r2 == "string" ? new Error(r2) : r2;
  };
}
function Kt(e2) {
  return e2 === void 0 ? {} : e2;
}
function Jt(e2) {
  if (typeof e2 == "string") return { text: e2 };
  let { text: t9, list: r2 } = e2;
  return hi2((t9 || r2) !== void 0, "Unexpected `expected` result, there should be at least one field."), r2 ? { text: t9, list: { title: r2.title, values: r2.values.map(Jt) } } : { text: t9 };
}
function qt2(e2, t9) {
  return e2 === true ? true : e2 === false ? { value: t9 } : e2;
}
function Xt(e2, t9, r2 = false) {
  return e2 === false ? false : e2 === true ? r2 ? true : [{ value: t9 }] : "value" in e2 ? [e2] : e2.length === 0 ? false : e2;
}
function Bn2(e2, t9) {
  return typeof e2 == "string" || "key" in e2 ? { from: t9, to: e2 } : "from" in e2 ? { from: e2.from, to: e2.to } : { from: t9, to: e2.to };
}
function pt2(e2, t9) {
  return e2 === void 0 ? [] : Array.isArray(e2) ? e2.map((r2) => Bn2(r2, t9)) : [Bn2(e2, t9)];
}
function Qt(e2, t9) {
  let r2 = pt2(typeof e2 == "object" && "redirect" in e2 ? e2.redirect : e2, t9);
  return r2.length === 0 ? { remain: t9, redirect: r2 } : typeof e2 == "object" && "remain" in e2 ? { remain: e2.remain, redirect: r2 } : { redirect: r2 };
}
function hi2(e2, t9) {
  if (!e2) throw new Error(t9);
}
var Ft2 = class extends x2 {
  constructor(t9) {
    super(t9), this._choices = _n2(t9.choices.map((r2) => r2 && typeof r2 == "object" ? r2 : { value: r2 }), "value");
  }
  expected({ descriptor: t9 }) {
    let r2 = Array.from(this._choices.keys()).map((o3) => this._choices.get(o3)).filter(({ hidden: o3 }) => !o3).map((o3) => o3.value).sort(On2).map(t9.value), n3 = r2.slice(0, -2), u2 = r2.slice(-2);
    return { text: n3.concat(u2.join(" or ")).join(", "), list: { title: "one of the following values", values: r2 } };
  }
  validate(t9) {
    return this._choices.has(t9);
  }
  deprecated(t9) {
    let r2 = this._choices.get(t9);
    return r2 && r2.deprecated ? { value: t9 } : false;
  }
  forward(t9) {
    let r2 = this._choices.get(t9);
    return r2 ? r2.forward : void 0;
  }
  redirect(t9) {
    let r2 = this._choices.get(t9);
    return r2 ? r2.redirect : void 0;
  }
};
var mt = class extends x2 {
  expected() {
    return "a number";
  }
  validate(t9, r2) {
    return typeof t9 == "number";
  }
};
var ht2 = class extends mt {
  expected() {
    return "an integer";
  }
  validate(t9, r2) {
    return r2.normalizeValidateResult(super.validate(t9, r2), t9) === true && Nn2(t9);
  }
};
var je2 = class extends x2 {
  expected() {
    return "a string";
  }
  validate(t9) {
    return typeof t9 == "string";
  }
};
var Tn2 = oe;
var kn2 = Dt2;
var Ln2 = Cn2;
var Pn2 = mn2;
var Et2 = class {
  constructor(t9, r2) {
    let { logger: n3 = console, loggerPrintWidth: u2 = 80, descriptor: i3 = Tn2, unknown: o3 = kn2, invalid: s2 = Ln2, deprecated: a2 = Pn2, missing: D = () => false, required: l2 = () => false, preprocess: p = (d) => d, postprocess: f = () => Ae } = r2 || {};
    this._utils = { descriptor: i3, logger: n3 || { warn: () => {
    } }, loggerPrintWidth: u2, schemas: wn2(t9, "name"), normalizeDefaultResult: Kt, normalizeExpectedResult: Jt, normalizeDeprecatedResult: Xt, normalizeForwardResult: pt2, normalizeRedirectResult: Qt, normalizeValidateResult: qt2 }, this._unknownHandler = o3, this._invalidHandler = Sn2(s2), this._deprecatedHandler = a2, this._identifyMissing = (d, c3) => !(d in c3) || D(d, c3), this._identifyRequired = l2, this._preprocess = p, this._postprocess = f, this.cleanHistory();
  }
  cleanHistory() {
    this._hasDeprecationWarned = xn2();
  }
  normalize(t9) {
    let r2 = {}, u2 = [this._preprocess(t9, this._utils)], i3 = () => {
      for (; u2.length !== 0; ) {
        let o3 = u2.shift(), s2 = this._applyNormalization(o3, r2);
        u2.push(...s2);
      }
    };
    i3();
    for (let o3 of Object.keys(this._utils.schemas)) {
      let s2 = this._utils.schemas[o3];
      if (!(o3 in r2)) {
        let a2 = Kt(s2.default(this._utils));
        "value" in a2 && u2.push({ [o3]: a2.value });
      }
    }
    i3();
    for (let o3 of Object.keys(this._utils.schemas)) {
      if (!(o3 in r2)) continue;
      let s2 = this._utils.schemas[o3], a2 = r2[o3], D = s2.postprocess(a2, this._utils);
      D !== Ae && (this._applyValidation(D, o3, s2), r2[o3] = D);
    }
    return this._applyPostprocess(r2), this._applyRequiredCheck(r2), r2;
  }
  _applyNormalization(t9, r2) {
    let n3 = [], { knownKeys: u2, unknownKeys: i3 } = this._partitionOptionKeys(t9);
    for (let o3 of u2) {
      let s2 = this._utils.schemas[o3], a2 = s2.preprocess(t9[o3], this._utils);
      this._applyValidation(a2, o3, s2);
      let D = ({ from: d, to: c3 }) => {
        n3.push(typeof c3 == "string" ? { [c3]: d } : { [c3.key]: c3.value });
      }, l2 = ({ value: d, redirectTo: c3 }) => {
        let F = Xt(s2.deprecated(d, this._utils), a2, true);
        if (F !== false) if (F === true) this._hasDeprecationWarned(o3) || this._utils.logger.warn(this._deprecatedHandler(o3, c3, this._utils));
        else for (let { value: m2 } of F) {
          let h3 = { key: o3, value: m2 };
          if (!this._hasDeprecationWarned(h3)) {
            let C = typeof c3 == "string" ? { key: c3, value: m2 } : c3;
            this._utils.logger.warn(this._deprecatedHandler(h3, C, this._utils));
          }
        }
      };
      pt2(s2.forward(a2, this._utils), a2).forEach(D);
      let f = Qt(s2.redirect(a2, this._utils), a2);
      if (f.redirect.forEach(D), "remain" in f) {
        let d = f.remain;
        r2[o3] = o3 in r2 ? s2.overlap(r2[o3], d, this._utils) : d, l2({ value: d });
      }
      for (let { from: d, to: c3 } of f.redirect) l2({ value: d, redirectTo: c3 });
    }
    for (let o3 of i3) {
      let s2 = t9[o3];
      this._applyUnknownHandler(o3, s2, r2, (a2, D) => {
        n3.push({ [a2]: D });
      });
    }
    return n3;
  }
  _applyRequiredCheck(t9) {
    for (let r2 of Object.keys(this._utils.schemas)) if (this._identifyMissing(r2, t9) && this._identifyRequired(r2)) throw this._invalidHandler(r2, at2, this._utils);
  }
  _partitionOptionKeys(t9) {
    let [r2, n3] = bn2(Object.keys(t9).filter((u2) => !this._identifyMissing(u2, t9)), (u2) => u2 in this._utils.schemas);
    return { knownKeys: r2, unknownKeys: n3 };
  }
  _applyValidation(t9, r2, n3) {
    let u2 = qt2(n3.validate(t9, this._utils), t9);
    if (u2 !== true) throw this._invalidHandler(r2, u2.value, this._utils);
  }
  _applyUnknownHandler(t9, r2, n3, u2) {
    let i3 = this._unknownHandler(t9, r2, this._utils);
    if (i3) for (let o3 of Object.keys(i3)) {
      if (this._identifyMissing(o3, i3)) continue;
      let s2 = i3[o3];
      o3 in this._utils.schemas ? u2(o3, s2) : n3[o3] = s2;
    }
  }
  _applyPostprocess(t9) {
    let r2 = this._postprocess(t9, this._utils);
    if (r2 !== Ae) {
      if (r2.delete) for (let n3 of r2.delete) delete t9[n3];
      if (r2.override) {
        let { knownKeys: n3, unknownKeys: u2 } = this._partitionOptionKeys(r2.override);
        for (let i3 of n3) {
          let o3 = r2.override[i3];
          this._applyValidation(o3, i3, this._utils.schemas[i3]), t9[i3] = o3;
        }
        for (let i3 of u2) {
          let o3 = r2.override[i3];
          this._applyUnknownHandler(i3, o3, t9, (s2, a2) => {
            let D = this._utils.schemas[s2];
            this._applyValidation(a2, s2, D), t9[s2] = a2;
          });
        }
      }
    }
  }
};
var Zt2;
function Ci2(e2, t9, { logger: r2 = false, isCLI: n3 = false, passThrough: u2 = false, FlagSchema: i3, descriptor: o3 } = {}) {
  if (n3) {
    if (!i3) throw new Error("'FlagSchema' option is required.");
    if (!o3) throw new Error("'descriptor' option is required.");
  } else o3 = oe;
  let s2 = u2 ? Array.isArray(u2) ? (f, d) => u2.includes(f) ? { [f]: d } : void 0 : (f, d) => ({ [f]: d }) : (f, d, c3) => {
    let { _: F, ...m2 } = c3.schemas;
    return Dt2(f, d, { ...c3, schemas: m2 });
  }, a2 = gi2(t9, { isCLI: n3, FlagSchema: i3 }), D = new Et2(a2, { logger: r2, unknown: s2, descriptor: o3 }), l2 = r2 !== false;
  l2 && Zt2 && (D._hasDeprecationWarned = Zt2);
  let p = D.normalize(e2);
  return l2 && (Zt2 = D._hasDeprecationWarned), p;
}
function gi2(e2, { isCLI: t9, FlagSchema: r2 }) {
  let n3 = [];
  t9 && n3.push(ct2.create({ name: "_" }));
  for (let u2 of e2) n3.push(yi2(u2, { isCLI: t9, optionInfos: e2, FlagSchema: r2 })), u2.alias && t9 && n3.push(lt2.create({ name: u2.alias, sourceName: u2.name }));
  return n3;
}
function yi2(e2, { isCLI: t9, optionInfos: r2, FlagSchema: n3 }) {
  let { name: u2 } = e2, i3 = { name: u2 }, o3, s2 = {};
  switch (e2.type) {
    case "int":
      o3 = ht2, t9 && (i3.preprocess = Number);
      break;
    case "string":
      o3 = je2;
      break;
    case "choice":
      o3 = Ft2, i3.choices = e2.choices.map((a2) => a2 != null && a2.redirect ? { ...a2, redirect: { to: { key: e2.name, value: a2.redirect } } } : a2);
      break;
    case "boolean":
      o3 = dt2;
      break;
    case "flag":
      o3 = n3, i3.flags = r2.flatMap((a2) => [a2.alias, a2.description && a2.name, a2.oppositeDescription && `no-${a2.name}`].filter(Boolean));
      break;
    case "path":
      o3 = je2;
      break;
    default:
      throw new Error(`Unexpected type ${e2.type}`);
  }
  if (e2.exception ? i3.validate = (a2, D, l2) => e2.exception(a2) || D.validate(a2, l2) : i3.validate = (a2, D, l2) => a2 === void 0 || D.validate(a2, l2), e2.redirect && (s2.redirect = (a2) => a2 ? { to: typeof e2.redirect == "string" ? e2.redirect : { key: e2.redirect.option, value: e2.redirect.value } } : void 0), e2.deprecated && (s2.deprecated = true), t9 && !e2.array) {
    let a2 = i3.preprocess || ((D) => D);
    i3.preprocess = (D, l2, p) => l2.preprocess(a2(Array.isArray(D) ? y(false, D, -1) : D), p);
  }
  return e2.array ? ft2.create({ ...t9 ? { preprocess: (a2) => Array.isArray(a2) ? a2 : [a2] } : {}, ...s2, valueSchema: o3.create(i3) }) : o3.create({ ...i3, ...s2 });
}
var In2 = Ci2;
var Ai2 = (e2, t9, r2) => {
  if (!(e2 && t9 == null)) {
    if (t9.findLast) return t9.findLast(r2);
    for (let n3 = t9.length - 1; n3 >= 0; n3--) {
      let u2 = t9[n3];
      if (r2(u2, n3, t9)) return u2;
    }
  }
};
var er2 = Ai2;
function tr2(e2, t9) {
  if (!t9) throw new Error("parserName is required.");
  let r2 = er2(false, e2, (u2) => u2.parsers && Object.prototype.hasOwnProperty.call(u2.parsers, t9));
  if (r2) return r2;
  let n3 = `Couldn't resolve parser "${t9}".`;
  throw n3 += " Plugins must be explicitly added to the standalone bundle.", new Re2(n3);
}
function Rn2(e2, t9) {
  if (!t9) throw new Error("astFormat is required.");
  let r2 = er2(false, e2, (u2) => u2.printers && Object.prototype.hasOwnProperty.call(u2.printers, t9));
  if (r2) return r2;
  let n3 = `Couldn't find plugin for AST format "${t9}".`;
  throw n3 += " Plugins must be explicitly added to the standalone bundle.", new Re2(n3);
}
function Ct2({ plugins: e2, parser: t9 }) {
  let r2 = tr2(e2, t9);
  return rr2(r2, t9);
}
function rr2(e2, t9) {
  let r2 = e2.parsers[t9];
  return typeof r2 == "function" ? r2() : r2;
}
function Yn2(e2, t9) {
  let r2 = e2.printers[t9];
  return typeof r2 == "function" ? r2() : r2;
}
var jn2 = { astFormat: "estree", printer: {}, originalText: void 0, locStart: null, locEnd: null };
async function vi2(e2, t9 = {}) {
  var p;
  let r2 = { ...e2 };
  if (!r2.parser) if (r2.filepath) {
    if (r2.parser = dn2(r2, { physicalFile: r2.filepath }), !r2.parser) throw new Ye2(`No parser could be inferred for file "${r2.filepath}".`);
  } else throw new Ye2("No parser and no file path given, couldn't infer a parser.");
  let n3 = ot2({ plugins: e2.plugins, showDeprecated: true }).options, u2 = { ...jn2, ...Object.fromEntries(n3.filter((f) => f.default !== void 0).map((f) => [f.name, f.default])) }, i3 = tr2(r2.plugins, r2.parser), o3 = await rr2(i3, r2.parser);
  r2.astFormat = o3.astFormat, r2.locEnd = o3.locEnd, r2.locStart = o3.locStart;
  let s2 = (p = i3.printers) != null && p[o3.astFormat] ? i3 : Rn2(r2.plugins, o3.astFormat), a2 = await Yn2(s2, o3.astFormat);
  r2.printer = a2;
  let D = s2.defaultOptions ? Object.fromEntries(Object.entries(s2.defaultOptions).filter(([, f]) => f !== void 0)) : {}, l2 = { ...u2, ...D };
  for (let [f, d] of Object.entries(l2)) (r2[f] === null || r2[f] === void 0) && (r2[f] = d);
  return r2.parser === "json" && (r2.trailingComma = "none"), In2(r2, n3, { passThrough: Object.keys(jn2), ...t9 });
}
var se2 = vi2;
var $n2 = Me2(Wn2(), 1);
async function xi2(e2, t9) {
  let r2 = await Ct2(t9), n3 = r2.preprocess ? r2.preprocess(e2, t9) : e2;
  t9.originalText = n3;
  let u2;
  try {
    u2 = await r2.parse(n3, t9, t9);
  } catch (i3) {
    bi2(i3, e2);
  }
  return { text: n3, ast: u2 };
}
function bi2(e2, t9) {
  let { loc: r2 } = e2;
  if (r2) {
    let n3 = (0, $n2.codeFrameColumns)(t9, r2, { highlightCode: true });
    throw e2.message += `
` + n3, e2.codeFrame = n3, e2;
  }
  throw e2;
}
var fe2 = xi2;
async function Mn2(e2, t9, r2, n3, u2) {
  let { embeddedLanguageFormatting: i3, printer: { embed: o3, hasPrettierIgnore: s2 = () => false, getVisitorKeys: a2 } } = r2;
  if (!o3 || i3 !== "auto") return;
  if (o3.length > 2) throw new Error("printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed");
  let D = q2(o3.getVisitorKeys ?? a2), l2 = [];
  d();
  let p = e2.stack;
  for (let { print: c3, node: F, pathStack: m2 } of l2) try {
    e2.stack = m2;
    let h3 = await c3(f, t9, e2, r2);
    h3 && u2.set(F, h3);
  } catch (h3) {
    if (globalThis.PRETTIER_DEBUG) throw h3;
  }
  e2.stack = p;
  function f(c3, F) {
    return Ni2(c3, F, r2, n3);
  }
  function d() {
    let { node: c3 } = e2;
    if (c3 === null || typeof c3 != "object" || s2(e2)) return;
    for (let m2 of D(c3)) Array.isArray(c3[m2]) ? e2.each(d, m2) : e2.call(d, m2);
    let F = o3(e2, r2);
    if (F) {
      if (typeof F == "function") {
        l2.push({ print: F, node: c3, pathStack: [...e2.stack] });
        return;
      }
      u2.set(c3, F);
    }
  }
}
async function Ni2(e2, t9, r2, n3) {
  let u2 = await se2({ ...r2, ...t9, parentParser: r2.parser, originalText: e2 }, { passThrough: true }), { ast: i3 } = await fe2(e2, u2), o3 = await n3(i3, u2);
  return et3(o3);
}
function Oi2(e2, t9) {
  let { originalText: r2, [Symbol.for("comments")]: n3, locStart: u2, locEnd: i3, [Symbol.for("printedComments")]: o3 } = t9, { node: s2 } = e2, a2 = u2(s2), D = i3(s2);
  for (let l2 of n3) u2(l2) >= a2 && i3(l2) <= D && o3.add(l2);
  return r2.slice(a2, D);
}
var Un2 = Oi2;
async function He(e2, t9) {
  ({ ast: e2 } = await ur2(e2, t9));
  let r2 = /* @__PURE__ */ new Map(), n3 = new Jr2(e2), u2 = ln2(t9), i3 = /* @__PURE__ */ new Map();
  await Mn2(n3, s2, t9, He, i3);
  let o3 = await Vn2(n3, t9, s2, void 0, i3);
  if (Dn2(t9), t9.nodeAfterCursor && !t9.nodeBeforeCursor) return [Z2, o3];
  if (t9.nodeBeforeCursor && !t9.nodeAfterCursor) return [o3, Z2];
  return o3;
  function s2(D, l2) {
    return D === void 0 || D === n3 ? a2(l2) : Array.isArray(D) ? n3.call(() => a2(l2), ...D) : n3.call(() => a2(l2), D);
  }
  function a2(D) {
    u2(n3);
    let l2 = n3.node;
    if (l2 == null) return "";
    let p = l2 && typeof l2 == "object" && D === void 0;
    if (p && r2.has(l2)) return r2.get(l2);
    let f = Vn2(n3, t9, s2, D, i3);
    return p && r2.set(l2, f), f;
  }
}
function Vn2(e2, t9, r2, n3, u2) {
  var a2;
  let { node: i3 } = e2, { printer: o3 } = t9, s2;
  switch ((a2 = o3.hasPrettierIgnore) != null && a2.call(o3, e2) ? s2 = Un2(e2, t9) : u2.has(i3) ? s2 = u2.get(i3) : s2 = o3.print(e2, t9, r2, n3), i3) {
    case t9.cursorNode:
      s2 = me2(s2, (D) => [Z2, D, Z2]);
      break;
    case t9.nodeBeforeCursor:
      s2 = me2(s2, (D) => [D, Z2]);
      break;
    case t9.nodeAfterCursor:
      s2 = me2(s2, (D) => [Z2, D]);
      break;
  }
  return o3.printComment && (!o3.willPrintOwnComments || !o3.willPrintOwnComments(e2, t9)) && (s2 = an2(e2, s2, t9)), s2;
}
async function ur2(e2, t9) {
  let r2 = e2.comments ?? [];
  t9[Symbol.for("comments")] = r2, t9[Symbol.for("tokens")] = e2.tokens ?? [], t9[Symbol.for("printedComments")] = /* @__PURE__ */ new Set(), un2(e2, t9);
  let { printer: { preprocess: n3 } } = t9;
  return e2 = n3 ? await n3(e2, t9) : e2, { ast: e2, comments: r2 };
}
function Si2(e2, t9) {
  let { cursorOffset: r2, locStart: n3, locEnd: u2 } = t9, i3 = q2(t9.printer.getVisitorKeys), o3 = (d) => n3(d) <= r2 && u2(d) >= r2, s2 = e2, a2 = [e2];
  for (let d of Qr(e2, { getVisitorKeys: i3, filter: o3 })) a2.push(d), s2 = d;
  if (Zr2(s2, { getVisitorKeys: i3 })) return { cursorNode: s2 };
  let D, l2, p = -1, f = Number.POSITIVE_INFINITY;
  for (; a2.length > 0 && (D === void 0 || l2 === void 0); ) {
    s2 = a2.pop();
    let d = D !== void 0, c3 = l2 !== void 0;
    for (let F of ge2(s2, { getVisitorKeys: i3 })) {
      if (!d) {
        let m2 = u2(F);
        m2 <= r2 && m2 > p && (D = F, p = m2);
      }
      if (!c3) {
        let m2 = n3(F);
        m2 >= r2 && m2 < f && (l2 = F, f = m2);
      }
    }
  }
  return { nodeBeforeCursor: D, nodeAfterCursor: l2 };
}
var zn2 = Si2;
function Ti2(e2, t9) {
  let { printer: { massageAstNode: r2, getVisitorKeys: n3 } } = t9;
  if (!r2) return e2;
  let u2 = q2(n3), i3 = r2.ignoredProperties ?? /* @__PURE__ */ new Set();
  return o3(e2);
  function o3(s2, a2) {
    if (!(s2 !== null && typeof s2 == "object")) return s2;
    if (Array.isArray(s2)) return s2.map((f) => o3(f, a2)).filter(Boolean);
    let D = {}, l2 = new Set(u2(s2));
    for (let f in s2) !Object.prototype.hasOwnProperty.call(s2, f) || i3.has(f) || (l2.has(f) ? D[f] = o3(s2[f], s2) : D[f] = s2[f]);
    let p = r2(s2, D, a2);
    if (p !== null) return p ?? D;
  }
}
var Gn2 = Ti2;
var ki2 = (e2, t9, r2) => {
  if (!(e2 && t9 == null)) {
    if (t9.findLastIndex) return t9.findLastIndex(r2);
    for (let n3 = t9.length - 1; n3 >= 0; n3--) {
      let u2 = t9[n3];
      if (r2(u2, n3, t9)) return n3;
    }
    return -1;
  }
};
var Kn2 = ki2;
var Li2 = ({ parser: e2 }) => e2 === "json" || e2 === "json5" || e2 === "jsonc" || e2 === "json-stringify";
function Pi2(e2, t9) {
  let r2 = [e2.node, ...e2.parentNodes], n3 = /* @__PURE__ */ new Set([t9.node, ...t9.parentNodes]);
  return r2.find((u2) => Xn2.has(u2.type) && n3.has(u2));
}
function Jn2(e2) {
  let t9 = Kn2(false, e2, (r2) => r2.type !== "Program" && r2.type !== "File");
  return t9 === -1 ? e2 : e2.slice(0, t9 + 1);
}
function Ii2(e2, t9, { locStart: r2, locEnd: n3 }) {
  let u2 = e2.node, i3 = t9.node;
  if (u2 === i3) return { startNode: u2, endNode: i3 };
  let o3 = r2(e2.node);
  for (let a2 of Jn2(t9.parentNodes)) if (r2(a2) >= o3) i3 = a2;
  else break;
  let s2 = n3(t9.node);
  for (let a2 of Jn2(e2.parentNodes)) {
    if (n3(a2) <= s2) u2 = a2;
    else break;
    if (u2 === i3) break;
  }
  return { startNode: u2, endNode: i3 };
}
function ir2(e2, t9, r2, n3, u2 = [], i3) {
  let { locStart: o3, locEnd: s2 } = r2, a2 = o3(e2), D = s2(e2);
  if (!(t9 > D || t9 < a2 || i3 === "rangeEnd" && t9 === a2 || i3 === "rangeStart" && t9 === D)) {
    for (let l2 of it2(e2, r2)) {
      let p = ir2(l2, t9, r2, n3, [e2, ...u2], i3);
      if (p) return p;
    }
    if (!n3 || n3(e2, u2[0])) return { node: e2, parentNodes: u2 };
  }
}
function Ri2(e2, t9) {
  return t9 !== "DeclareExportDeclaration" && e2 !== "TypeParameterDeclaration" && (e2 === "Directive" || e2 === "TypeAlias" || e2 === "TSExportAssignment" || e2.startsWith("Declare") || e2.startsWith("TSDeclare") || e2.endsWith("Statement") || e2.endsWith("Declaration"));
}
var Xn2 = /* @__PURE__ */ new Set(["JsonRoot", "ObjectExpression", "ArrayExpression", "StringLiteral", "NumericLiteral", "BooleanLiteral", "NullLiteral", "UnaryExpression", "TemplateLiteral"]);
var Yi2 = /* @__PURE__ */ new Set(["OperationDefinition", "FragmentDefinition", "VariableDefinition", "TypeExtensionDefinition", "ObjectTypeDefinition", "FieldDefinition", "DirectiveDefinition", "EnumTypeDefinition", "EnumValueDefinition", "InputValueDefinition", "InputObjectTypeDefinition", "SchemaDefinition", "OperationTypeDefinition", "InterfaceTypeDefinition", "UnionTypeDefinition", "ScalarTypeDefinition"]);
function qn2(e2, t9, r2) {
  if (!t9) return false;
  switch (e2.parser) {
    case "flow":
    case "babel":
    case "babel-flow":
    case "babel-ts":
    case "typescript":
    case "acorn":
    case "espree":
    case "meriyah":
    case "__babel_estree":
      return Ri2(t9.type, r2 == null ? void 0 : r2.type);
    case "json":
    case "json5":
    case "jsonc":
    case "json-stringify":
      return Xn2.has(t9.type);
    case "graphql":
      return Yi2.has(t9.kind);
    case "vue":
      return t9.tag !== "root";
  }
  return false;
}
function Qn2(e2, t9, r2) {
  let { rangeStart: n3, rangeEnd: u2, locStart: i3, locEnd: o3 } = t9;
  Pe.ok(u2 > n3);
  let s2 = e2.slice(n3, u2).search(/\S/u), a2 = s2 === -1;
  if (!a2) for (n3 += s2; u2 > n3 && !/\S/u.test(e2[u2 - 1]); --u2) ;
  let D = ir2(r2, n3, t9, (d, c3) => qn2(t9, d, c3), [], "rangeStart"), l2 = a2 ? D : ir2(r2, u2, t9, (d) => qn2(t9, d), [], "rangeEnd");
  if (!D || !l2) return { rangeStart: 0, rangeEnd: 0 };
  let p, f;
  if (Li2(t9)) {
    let d = Pi2(D, l2);
    p = d, f = d;
  } else ({ startNode: p, endNode: f } = Ii2(D, l2, t9));
  return { rangeStart: Math.min(i3(p), i3(f)), rangeEnd: Math.max(o3(p), o3(f)) };
}
var ru = "\uFEFF";
var Zn2 = Symbol("cursor");
async function nu(e2, t9, r2 = 0) {
  if (!e2 || e2.trim().length === 0) return { formatted: "", cursorOffset: -1, comments: [] };
  let { ast: n3, text: u2 } = await fe2(e2, t9);
  t9.cursorOffset >= 0 && (t9 = { ...t9, ...zn2(n3, t9) });
  let i3 = await He(n3, t9, r2);
  r2 > 0 && (i3 = Qe2([K2, i3], r2, t9.tabWidth));
  let o3 = Ee2(i3, t9);
  if (r2 > 0) {
    let a2 = o3.formatted.trim();
    o3.cursorNodeStart !== void 0 && (o3.cursorNodeStart -= o3.formatted.indexOf(a2), o3.cursorNodeStart < 0 && (o3.cursorNodeStart = 0, o3.cursorNodeText = o3.cursorNodeText.trimStart()), o3.cursorNodeStart + o3.cursorNodeText.length > a2.length && (o3.cursorNodeText = o3.cursorNodeText.trimEnd())), o3.formatted = a2 + xe2(t9.endOfLine);
  }
  let s2 = t9[Symbol.for("comments")];
  if (t9.cursorOffset >= 0) {
    let a2, D, l2, p;
    if ((t9.cursorNode || t9.nodeBeforeCursor || t9.nodeAfterCursor) && o3.cursorNodeText) if (l2 = o3.cursorNodeStart, p = o3.cursorNodeText, t9.cursorNode) a2 = t9.locStart(t9.cursorNode), D = u2.slice(a2, t9.locEnd(t9.cursorNode));
    else {
      if (!t9.nodeBeforeCursor && !t9.nodeAfterCursor) throw new Error("Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor");
      a2 = t9.nodeBeforeCursor ? t9.locEnd(t9.nodeBeforeCursor) : 0;
      let h3 = t9.nodeAfterCursor ? t9.locStart(t9.nodeAfterCursor) : u2.length;
      D = u2.slice(a2, h3);
    }
    else a2 = 0, D = u2, l2 = 0, p = o3.formatted;
    let f = t9.cursorOffset - a2;
    if (D === p) return { formatted: o3.formatted, cursorOffset: l2 + f, comments: s2 };
    let d = D.split("");
    d.splice(f, 0, Zn2);
    let c3 = p.split(""), F = gr2(d, c3), m2 = l2;
    for (let h3 of F) if (h3.removed) {
      if (h3.value.includes(Zn2)) break;
    } else m2 += h3.count;
    return { formatted: o3.formatted, cursorOffset: m2, comments: s2 };
  }
  return { formatted: o3.formatted, cursorOffset: -1, comments: s2 };
}
async function ji2(e2, t9) {
  let { ast: r2, text: n3 } = await fe2(e2, t9), { rangeStart: u2, rangeEnd: i3 } = Qn2(n3, t9, r2), o3 = n3.slice(u2, i3), s2 = Math.min(u2, n3.lastIndexOf(`
`, u2) + 1), a2 = n3.slice(s2, u2).match(/^\s*/u)[0], D = Ce2(a2, t9.tabWidth), l2 = await nu(o3, { ...t9, rangeStart: 0, rangeEnd: Number.POSITIVE_INFINITY, cursorOffset: t9.cursorOffset > u2 && t9.cursorOffset <= i3 ? t9.cursorOffset - u2 : -1, endOfLine: "lf" }, D), p = l2.formatted.trimEnd(), { cursorOffset: f } = t9;
  f > i3 ? f += p.length - o3.length : l2.cursorOffset >= 0 && (f = l2.cursorOffset + u2);
  let d = n3.slice(0, u2) + p + n3.slice(i3);
  if (t9.endOfLine !== "lf") {
    let c3 = xe2(t9.endOfLine);
    f >= 0 && c3 === `\r
` && (f += Ot2(d.slice(0, f), `
`)), d = ne2(false, d, `
`, c3);
  }
  return { formatted: d, cursorOffset: f, comments: l2.comments };
}
function or2(e2, t9, r2) {
  return typeof t9 != "number" || Number.isNaN(t9) || t9 < 0 || t9 > e2.length ? r2 : t9;
}
function eu(e2, t9) {
  let { cursorOffset: r2, rangeStart: n3, rangeEnd: u2 } = t9;
  return r2 = or2(e2, r2, -1), n3 = or2(e2, n3, 0), u2 = or2(e2, u2, e2.length), { ...t9, cursorOffset: r2, rangeStart: n3, rangeEnd: u2 };
}
function uu(e2, t9) {
  let { cursorOffset: r2, rangeStart: n3, rangeEnd: u2, endOfLine: i3 } = eu(e2, t9), o3 = e2.charAt(0) === ru;
  if (o3 && (e2 = e2.slice(1), r2--, n3--, u2--), i3 === "auto" && (i3 = yr2(e2)), e2.includes("\r")) {
    let s2 = (a2) => Ot2(e2.slice(0, Math.max(a2, 0)), `\r
`);
    r2 -= s2(r2), n3 -= s2(n3), u2 -= s2(u2), e2 = Ar2(e2);
  }
  return { hasBOM: o3, text: e2, options: eu(e2, { ...t9, cursorOffset: r2, rangeStart: n3, rangeEnd: u2, endOfLine: i3 }) };
}
async function tu(e2, t9) {
  let r2 = await Ct2(t9);
  return !r2.hasPragma || r2.hasPragma(e2);
}
async function sr2(e2, t9) {
  let { hasBOM: r2, text: n3, options: u2 } = uu(e2, await se2(t9));
  if (u2.rangeStart >= u2.rangeEnd && n3 !== "" || u2.requirePragma && !await tu(n3, u2)) return { formatted: e2, cursorOffset: t9.cursorOffset, comments: [] };
  let i3;
  return u2.rangeStart > 0 || u2.rangeEnd < n3.length ? i3 = await ji2(n3, u2) : (!u2.requirePragma && u2.insertPragma && u2.printer.insertPragma && !await tu(n3, u2) && (n3 = u2.printer.insertPragma(n3)), i3 = await nu(n3, u2)), r2 && (i3.formatted = ru + i3.formatted, i3.cursorOffset >= 0 && i3.cursorOffset++), i3;
}
async function iu(e2, t9, r2) {
  let { text: n3, options: u2 } = uu(e2, await se2(t9)), i3 = await fe2(n3, u2);
  return r2 && (r2.preprocessForPrint && (i3.ast = await ur2(i3.ast, u2)), r2.massage && (i3.ast = Gn2(i3.ast, u2))), i3;
}
async function ou(e2, t9) {
  t9 = await se2(t9);
  let r2 = await He(e2, t9);
  return Ee2(r2, t9);
}
async function su(e2, t9) {
  let r2 = Ir(e2), { formatted: n3 } = await sr2(r2, { ...t9, parser: "__js_expression" });
  return n3;
}
async function au(e2, t9) {
  t9 = await se2(t9);
  let { ast: r2 } = await fe2(e2, t9);
  return He(r2, t9);
}
async function Du(e2, t9) {
  return Ee2(e2, await se2(t9));
}
var ar2 = {};
Bt2(ar2, { builders: () => Wi2, printer: () => $i2, utils: () => Mi2 });
var Wi2 = { join: Se2, line: qe2, softline: Lr2, hardline: K2, literalline: Xe2, group: Tt2, conditionalGroup: br2, fill: Nr, lineSuffix: Ne2, lineSuffixBoundary: Tr2, cursor: Z2, breakParent: Fe2, ifBreak: Or2, trim: kr2, indent: le2, indentIfBreak: Sr2, align: De2, addAlignmentToDoc: Qe2, markAsRoot: _r2, dedentToRoot: wr2, dedent: xr2, hardlineWithoutBreakParent: Oe2, literallineWithoutBreakParent: kt2, label: Pr, concat: (e2) => e2 };
var $i2 = { printDocToString: Ee2 };
var Mi2 = { willBreak: Mr2, traverseDoc: be2, findInDoc: Ze2, mapDoc: Le2, removeLines: Vr2, stripTrailingHardline: et3, replaceEndOfLine: zr2, canBreak: Gr2 };
var lu = "3.4.2";
var lr2 = {};
Bt2(lr2, { addDanglingComment: () => re2, addLeadingComment: () => ue, addTrailingComment: () => ie2, getAlignmentSize: () => Ce2, getIndentSize: () => cu, getMaxContinuousCount: () => fu, getNextNonSpaceNonCommentCharacter: () => du, getNextNonSpaceNonCommentCharacterIndex: () => ro, getPreferredQuote: () => Fu, getStringWidth: () => Te2, hasNewline: () => $, hasNewlineInRange: () => mu, hasSpaces: () => hu, isNextLineEmpty: () => oo, isNextLineEmptyAfterIndex: () => gt2, isPreviousLineEmpty: () => uo, makeString: () => Eu, skip: () => ye2, skipEverythingButNewLine: () => ut2, skipInlineComment: () => ve2, skipNewline: () => W2, skipSpaces: () => S2, skipToLineEnd: () => nt2, skipTrailingComment: () => Be2, skipWhitespace: () => en2 });
function Ui2(e2, t9) {
  if (t9 === false) return false;
  if (e2.charAt(t9) === "/" && e2.charAt(t9 + 1) === "*") {
    for (let r2 = t9 + 2; r2 < e2.length; ++r2) if (e2.charAt(r2) === "*" && e2.charAt(r2 + 1) === "/") return r2 + 2;
  }
  return t9;
}
var ve2 = Ui2;
function Vi2(e2, t9) {
  return t9 === false ? false : e2.charAt(t9) === "/" && e2.charAt(t9 + 1) === "/" ? ut2(e2, t9) : t9;
}
var Be2 = Vi2;
function zi2(e2, t9) {
  let r2 = null, n3 = t9;
  for (; n3 !== r2; ) r2 = n3, n3 = S2(e2, n3), n3 = ve2(e2, n3), n3 = Be2(e2, n3), n3 = W2(e2, n3);
  return n3;
}
var We2 = zi2;
function Gi2(e2, t9) {
  let r2 = null, n3 = t9;
  for (; n3 !== r2; ) r2 = n3, n3 = nt2(e2, n3), n3 = ve2(e2, n3), n3 = S2(e2, n3);
  return n3 = Be2(e2, n3), n3 = W2(e2, n3), n3 !== false && $(e2, n3);
}
var gt2 = Gi2;
function Ki2(e2, t9) {
  let r2 = e2.lastIndexOf(`
`);
  return r2 === -1 ? 0 : Ce2(e2.slice(r2 + 1).match(/^[\t ]*/u)[0], t9);
}
var cu = Ki2;
function Dr2(e2) {
  if (typeof e2 != "string") throw new TypeError("Expected a string");
  return e2.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
}
function Ji2(e2, t9) {
  let r2 = e2.match(new RegExp(`(${Dr2(t9)})+`, "gu"));
  return r2 === null ? 0 : r2.reduce((n3, u2) => Math.max(n3, u2.length / t9.length), 0);
}
var fu = Ji2;
function qi2(e2, t9) {
  let r2 = We2(e2, t9);
  return r2 === false ? "" : e2.charAt(r2);
}
var du = qi2;
var yt2 = "'";
var pu = '"';
function Xi2(e2, t9) {
  let r2 = t9 === true || t9 === yt2 ? yt2 : pu, n3 = r2 === yt2 ? pu : yt2, u2 = 0, i3 = 0;
  for (let o3 of e2) o3 === r2 ? u2++ : o3 === n3 && i3++;
  return u2 > i3 ? n3 : r2;
}
var Fu = Xi2;
function Qi2(e2, t9, r2) {
  for (let n3 = t9; n3 < r2; ++n3) if (e2.charAt(n3) === `
`) return true;
  return false;
}
var mu = Qi2;
function Zi2(e2, t9, r2 = {}) {
  return S2(e2, r2.backwards ? t9 - 1 : t9, r2) !== t9;
}
var hu = Zi2;
function eo(e2, t9, r2) {
  let n3 = t9 === '"' ? "'" : '"', i3 = ne2(false, e2, /\\(.)|(["'])/gsu, (o3, s2, a2) => s2 === n3 ? s2 : a2 === t9 ? "\\" + a2 : a2 || (r2 && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/u.test(s2) ? s2 : "\\" + s2));
  return t9 + i3 + t9;
}
var Eu = eo;
function to(e2, t9, r2) {
  return We2(e2, r2(t9));
}
function ro(e2, t9) {
  return arguments.length === 2 || typeof t9 == "number" ? We2(e2, t9) : to(...arguments);
}
function no(e2, t9, r2) {
  return Ie2(e2, r2(t9));
}
function uo(e2, t9) {
  return arguments.length === 2 || typeof t9 == "number" ? Ie2(e2, t9) : no(...arguments);
}
function io(e2, t9, r2) {
  return gt2(e2, r2(t9));
}
function oo(e2, t9) {
  return arguments.length === 2 || typeof t9 == "number" ? gt2(e2, t9) : io(...arguments);
}
function de2(e2, t9 = 1) {
  return async (...r2) => {
    let n3 = r2[t9] ?? {}, u2 = n3.plugins ?? [];
    return r2[t9] = { ...n3, plugins: Array.isArray(u2) ? u2 : Object.values(u2) }, e2(...r2);
  };
}
var Cu = de2(sr2);
async function gu(e2, t9) {
  let { formatted: r2 } = await Cu(e2, { ...t9, cursorOffset: -1 });
  return r2;
}
async function so(e2, t9) {
  return await gu(e2, t9) === e2;
}
var ao = de2(ot2, 0);
var Do2 = { parse: de2(iu), formatAST: de2(ou), formatDoc: de2(su), printToDoc: de2(au), printDocToString: de2(Du) };

// ../../node_modules/.pnpm/@react-email+render@1.0.5_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@react-email/render/dist/node/index.mjs
var import_node_stream7 = require("node:stream");
var import_jsx_runtime23 = require("react/jsx-runtime");
var import_react3 = require("react");
var import_jsx_runtime24 = require("react/jsx-runtime");
var __defProp13 = Object.defineProperty;
var __defProps11 = Object.defineProperties;
var __getOwnPropDescs11 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols11 = Object.getOwnPropertySymbols;
var __hasOwnProp13 = Object.prototype.hasOwnProperty;
var __propIsEnum11 = Object.prototype.propertyIsEnumerable;
var __defNormalProp12 = (obj, key, value) => key in obj ? __defProp13(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues11 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp13.call(b2, prop))
      __defNormalProp12(a2, prop, b2[prop]);
  if (__getOwnPropSymbols11)
    for (var prop of __getOwnPropSymbols11(b2)) {
      if (__propIsEnum11.call(b2, prop))
        __defNormalProp12(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps11 = (a2, b2) => __defProps11(a2, __getOwnPropDescs11(b2));
var __async = (__this, __arguments, generator2) => {
  return new Promise((resolve2, reject) => {
    var fulfilled = (value) => {
      try {
        step(generator2.next(value));
      } catch (e2) {
        reject(e2);
      }
    };
    var rejected = (value) => {
      try {
        step(generator2.throw(value));
      } catch (e2) {
        reject(e2);
      }
    };
    var step = (x3) => x3.done ? resolve2(x3.value) : Promise.resolve(x3.value).then(fulfilled, rejected);
    step((generator2 = generator2.apply(__this, __arguments)).next());
  });
};
var plainTextSelectors = [
  { selector: "img", format: "skip" },
  { selector: "#__react-email-preview", format: "skip" },
  {
    selector: "a",
    options: { linkBrackets: false }
  }
];
function recursivelyMapDoc(doc, callback) {
  if (Array.isArray(doc)) {
    return doc.map((innerDoc) => recursivelyMapDoc(innerDoc, callback));
  }
  if (typeof doc === "object") {
    if (doc.type === "group") {
      return __spreadProps11(__spreadValues11({}, doc), {
        contents: recursivelyMapDoc(doc.contents, callback),
        expandedStates: recursivelyMapDoc(
          doc.expandedStates,
          callback
        )
      });
    }
    if ("contents" in doc) {
      return __spreadProps11(__spreadValues11({}, doc), {
        contents: recursivelyMapDoc(doc.contents, callback)
      });
    }
    if ("parts" in doc) {
      return __spreadProps11(__spreadValues11({}, doc), {
        parts: recursivelyMapDoc(doc.parts, callback)
      });
    }
    if (doc.type === "if-break") {
      return __spreadProps11(__spreadValues11({}, doc), {
        breakContents: recursivelyMapDoc(doc.breakContents, callback),
        flatContents: recursivelyMapDoc(doc.flatContents, callback)
      });
    }
  }
  return callback(doc);
}
var modifiedHtml = __spreadValues11({}, Nh);
if (modifiedHtml.printers) {
  const previousPrint = modifiedHtml.printers.html.print;
  modifiedHtml.printers.html.print = (path3, options, print, args) => {
    const node = path3.getNode();
    const rawPrintingResult = previousPrint(path3, options, print, args);
    if (node.type === "ieConditionalComment") {
      const printingResult = recursivelyMapDoc(rawPrintingResult, (doc) => {
        if (typeof doc === "object" && doc.type === "line") {
          return doc.soft ? "" : " ";
        }
        return doc;
      });
      return printingResult;
    }
    return rawPrintingResult;
  };
}
var defaults4 = {
  endOfLine: "lf",
  tabWidth: 2,
  plugins: [modifiedHtml],
  bracketSameLine: true,
  parser: "html"
};
var pretty = (str, options = {}) => {
  return gu(str.replaceAll("\0", ""), __spreadValues11(__spreadValues11({}, defaults4), options));
};
var decoder = new TextDecoder("utf-8");
var readStream3 = (stream5) => __async(void 0, null, function* () {
  let result = "";
  if ("pipeTo" in stream5) {
    const writableStream = new WritableStream({
      write(chunk2) {
        result += decoder.decode(chunk2);
      }
    });
    yield stream5.pipeTo(writableStream);
  } else {
    const writable = new import_node_stream7.Writable({
      write(chunk2, _encoding, callback) {
        result += decoder.decode(chunk2);
        callback();
      }
    });
    stream5.pipe(writable);
    yield new Promise((resolve2, reject) => {
      writable.on("error", reject);
      writable.on("close", () => {
        resolve2();
      });
    });
  }
  return result;
});
var render2 = (element, options) => __async(void 0, null, function* () {
  const suspendedElement = /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react2.Suspense, { children: element });
  const reactDOMServer = yield import("react-dom/server");
  let html2;
  if (Object.hasOwn(reactDOMServer, "renderToReadableStream")) {
    html2 = yield readStream3(
      yield reactDOMServer.renderToReadableStream(suspendedElement)
    );
  } else {
    yield new Promise((resolve2, reject) => {
      const stream5 = reactDOMServer.renderToPipeableStream(suspendedElement, {
        onAllReady() {
          return __async(this, null, function* () {
            html2 = yield readStream3(stream5);
            resolve2();
          });
        },
        onError(error) {
          reject(error);
        }
      });
    });
  }
  if (options == null ? void 0 : options.plainText) {
    return convert(html2, __spreadValues11({
      selectors: plainTextSelectors
    }, options.htmlToTextOptions));
  }
  const doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
  const document2 = `${doctype}${html2.replace(/<!DOCTYPE.*?>/, "")}`;
  if (options == null ? void 0 : options.pretty) {
    return pretty(document2);
  }
  return document2;
});

// ../../node_modules/.pnpm/@react-email+section@0.0.16_react@19.2.4/node_modules/@react-email/section/dist/index.mjs
var React11 = __toESM(require("react"), 1);
var import_jsx_runtime25 = require("react/jsx-runtime");
var __defProp14 = Object.defineProperty;
var __defProps12 = Object.defineProperties;
var __getOwnPropDescs12 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols12 = Object.getOwnPropertySymbols;
var __hasOwnProp14 = Object.prototype.hasOwnProperty;
var __propIsEnum12 = Object.prototype.propertyIsEnumerable;
var __defNormalProp13 = (obj, key, value) => key in obj ? __defProp14(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues12 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp14.call(b2, prop))
      __defNormalProp13(a2, prop, b2[prop]);
  if (__getOwnPropSymbols12)
    for (var prop of __getOwnPropSymbols12(b2)) {
      if (__propIsEnum12.call(b2, prop))
        __defNormalProp13(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps12 = (a2, b2) => __defProps12(a2, __getOwnPropDescs12(b2));
var __objRest11 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp14.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols12)
    for (var prop of __getOwnPropSymbols12(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum12.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Section = React11.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { children, style } = _b2, props = __objRest11(_b2, ["children", "style"]);
    return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
      "table",
      __spreadProps12(__spreadValues12({
        align: "center",
        width: "100%",
        border: 0,
        cellPadding: "0",
        cellSpacing: "0",
        role: "presentation"
      }, props), {
        ref,
        style,
        children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("tbody", { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("td", { children }) }) })
      })
    );
  }
);
Section.displayName = "Section";

// ../../node_modules/.pnpm/@react-email+text@0.0.11_react@19.2.4/node_modules/@react-email/text/dist/index.mjs
var React12 = __toESM(require("react"), 1);
var import_jsx_runtime26 = require("react/jsx-runtime");
var __defProp15 = Object.defineProperty;
var __defProps13 = Object.defineProperties;
var __getOwnPropDescs13 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols13 = Object.getOwnPropertySymbols;
var __hasOwnProp15 = Object.prototype.hasOwnProperty;
var __propIsEnum13 = Object.prototype.propertyIsEnumerable;
var __defNormalProp14 = (obj, key, value) => key in obj ? __defProp15(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues13 = (a2, b2) => {
  for (var prop in b2 || (b2 = {}))
    if (__hasOwnProp15.call(b2, prop))
      __defNormalProp14(a2, prop, b2[prop]);
  if (__getOwnPropSymbols13)
    for (var prop of __getOwnPropSymbols13(b2)) {
      if (__propIsEnum13.call(b2, prop))
        __defNormalProp14(a2, prop, b2[prop]);
    }
  return a2;
};
var __spreadProps13 = (a2, b2) => __defProps13(a2, __getOwnPropDescs13(b2));
var __objRest12 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp15.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols13)
    for (var prop of __getOwnPropSymbols13(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum13.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var Text3 = React12.forwardRef(
  (_a4, ref) => {
    var _b2 = _a4, { style } = _b2, props = __objRest12(_b2, ["style"]);
    return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
      "p",
      __spreadProps13(__spreadValues13({}, props), {
        ref,
        style: __spreadValues13({
          fontSize: "14px",
          lineHeight: "24px",
          margin: "16px 0"
        }, style)
      })
    );
  }
);
Text3.displayName = "Text";

// ../mail/dist/chunk-TABTMOG3.js
var import_jsx_runtime27 = require("react/jsx-runtime");
var BaseLayout = ({ preview, children }) => {
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Html, { children: [
    /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Head, {}),
    /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Preview, { children: preview }),
    /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Body, { style: main, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Container, { style: container, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Section, { style: content, children }) }) })
  ] });
};
var main = {
  backgroundColor: "#0a0a0a",
  color: "#ffffff",
  fontFamily: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif'
};
var container = {
  backgroundColor: "#0f0f0f",
  margin: "0 auto",
  padding: "40px 0",
  maxWidth: "600px",
  border: "1px solid #1a1a1a",
  borderRadius: "12px"
};
var content = {
  padding: "0 40px"
};

// ../mail/dist/chunk-IUHI7JAC.js
var import_jsx_runtime28 = require("react/jsx-runtime");
var import_jsx_runtime29 = require("react/jsx-runtime");

// ../mail/dist/chunk-L7POWFIX.js
var import_jsx_runtime30 = require("react/jsx-runtime");
var import_jsx_runtime31 = require("react/jsx-runtime");
var MintelLogo = ({ size = 200 }) => {
  const width = size;
  const height = size * 260 / 545;
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
    Link,
    {
      href: "https://mintel.me",
      style: {
        textDecoration: "none",
        display: "inline-block"
      },
      children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
        Img,
        {
          src: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDU0NSAyNjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0xMjg2LC0xMTUwKSI+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwtMCwtMCwxLDEyODYsMTE1MCkiPgogICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNfSW1hZ2UxIiB4PSI0MS41NjkiIHk9IjMxLjM4NSIgd2lkdGg9IjQ2MnB4IiBoZWlnaHQ9IjE5N3B4Ii8+CiAgICAgICAgPC9nPgogICAgPC9nPgogICAgPGRlZnM+CiAgICAgICAgPGltYWdlIGlkPSJfSW1hZ2UxIiB3aWR0aD0iNDYycHgiIGhlaWdodD0iMTk3cHgiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQU5TVWhFVWdBQUFjNFNBQUFERkNBWUFBQUNYQlJXMEFBQWdBRWxFUVZSNFhMU0JTQlNScGRmZWU0eE9lTXVlemV6NnoxY3VaeXpNeXpNeDU3cnI5ZXY5ZTFlNTVxNU56WXpNeFpPYmRkNWRNdG93MHcwMHcwMHcwMHcwMHV0eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4cDVxNHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4O0VYSVRDT0RFOiAwIgogICAgPC9kZWZzPgo8L3N2Zz4K",
          alt: "Mintel Logo",
          width,
          height
        }
      )
    }
  );
};
var MintelLayout = ({ preview, children }) => {
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(BaseLayout, { preview, children: [
    /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Section, { style: header, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MintelLogo, {}) }),
    /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Hr, { style: hr3 }),
    /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Section, { style: mainContent, children }),
    /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Hr, { style: hr3 }),
    /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Section, { style: footer, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text3, { style: footerText, children: "\xA9 2026 Mintel Infrastructure. Secure Communication Channel." }) })
  ] });
};
var header = {
  marginBottom: "32px"
};
var mainContent = {
  marginBottom: "32px"
};
var hr3 = {
  borderColor: "#222222",
  margin: "20px 0"
};
var footer = {
  marginTop: "32px",
  textAlign: "center"
};
var footerText = {
  fontSize: "12px",
  color: "#444444",
  fontWeight: 700,
  textTransform: "uppercase",
  letterSpacing: "0.1em"
};

// ../mail/dist/chunk-TYGDLNGK.js
var import_jsx_runtime32 = require("react/jsx-runtime");

// ../mail/dist/chunk-TMEW3Q2I.js
var import_jsx_runtime33 = require("react/jsx-runtime");

// ../mail/dist/chunk-W7L436OZ.js
var import_jsx_runtime34 = require("react/jsx-runtime");
var ProjectEstimateTemplate = ({
  companyName
}) => {
  const preview = `Ihre personalisierte Projekt-Sch\xE4tzung: ${companyName}`;
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MintelLayout, { preview, children: [
    /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Heading, { style: h1, children: "Ihre Projekt-Sch\xE4tzung" }),
    /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Text3, { style: intro, children: [
      "Hallo ",
      companyName,
      ",",
      /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("br", {}),
      /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("br", {}),
      "vielen Dank f\xFCr unser Gespr\xE4ch. Wie versprochen sende ich Ihnen hiermit die detaillierte Sch\xE4tzung f\xFCr Ihre neue digitale Webpr\xE4senz."
    ] }),
    /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Section, { style: infoBox, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text3, { style: infoText, children: "Im Anhang finden Sie das PDF-Dokument mit allen Positionen, Umf\xE4ngen und dem strategischen Ausblick." }) }),
    /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text3, { style: bodyText, children: "Ich freue mich auf Ihr Feedback und stehe f\xFCr R\xFCckfragen jederzeit zur Verf\xFCgung." }),
    /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Text3, { style: footerText2, children: [
      "Beste Gr\xFC\xDFe,",
      /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("br", {}),
      /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("strong", { children: "Marc Mintel" })
    ] })
  ] });
};
var h1 = {
  fontSize: "28px",
  fontWeight: "900",
  margin: "0 0 24px",
  color: "#ffffff",
  letterSpacing: "-0.04em"
};
var intro = {
  fontSize: "16px",
  lineHeight: "24px",
  color: "#cccccc",
  margin: "0 0 24px"
};
var infoBox = {
  backgroundColor: "#0f172a",
  padding: "24px",
  borderLeft: "4px solid #ffffff",
  marginBottom: "32px"
};
var infoText = {
  fontSize: "15px",
  color: "#ffffff",
  margin: "0",
  lineHeight: "1.5"
};
var bodyText = {
  fontSize: "16px",
  lineHeight: "24px",
  color: "#888888",
  margin: "0 0 32px"
};
var footerText2 = {
  fontSize: "14px",
  color: "#666666",
  lineHeight: "20px",
  marginTop: "48px"
};

// ../mail/dist/chunk-OM4FD4SE.js
var import_jsx_runtime35 = require("react/jsx-runtime");
var SiteAuditTemplate = ({
  companyName,
  auditHighlights,
  websiteUrl
}) => {
  const preview = `Analyse Ihrer Webpr\xE4senz: ${companyName}`;
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(MintelLayout, { preview, children: [
    /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Heading, { style: h12, children: "Analyse Ihrer Webpr\xE4senz" }),
    /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Text3, { style: intro2, children: [
      "Hallo ",
      companyName,
      ",",
      /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("br", {}),
      /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("br", {}),
      "ich habe mir Ihre aktuelle Website (",
      websiteUrl,
      ") im Detail angeschaut und einige technische sowie strategische Potenziale identifiziert."
    ] }),
    /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Section, { style: auditContainer, children: [
      /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Heading, { as: "h2", style: h22, children: "Audit Highlights" }),
      auditHighlights.map((highlight, i3) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { style: highlightRow, children: [
        /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: bullet }),
        /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text3, { style: highlightText, children: highlight })
      ] }, i3))
    ] }),
    /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text3, { style: bodyText2, children: "In der heutigen digitalen Landschaft ist eine performante und strategisch ausgerichtete Website kein Luxus mehr, sondern das Fundament f\xFCr nachhaltiges Wachstum." }),
    /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Section, { style: ctaSection, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
      Button,
      {
        style: button,
        href: `mailto:marc@mintel.me?subject=Feedback zum Audit: ${companyName}`,
        children: "Audit gemeinsam besprechen"
      }
    ) }),
    /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Text3, { style: footerText3, children: [
      "Beste Gr\xFC\xDFe,",
      /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("br", {}),
      /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("strong", { children: "Marc Mintel" }),
      /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("br", {}),
      "Digitaler Architekt"
    ] })
  ] });
};
var h12 = {
  fontSize: "28px",
  fontWeight: "900",
  margin: "0 0 24px",
  color: "#ffffff",
  letterSpacing: "-0.04em"
};
var h22 = {
  fontSize: "14px",
  fontWeight: "900",
  textTransform: "uppercase",
  color: "#444444",
  margin: "0 0 16px",
  letterSpacing: "0.1em"
};
var intro2 = {
  fontSize: "16px",
  lineHeight: "24px",
  color: "#cccccc",
  margin: "0 0 32px"
};
var auditContainer = {
  backgroundColor: "#151515",
  padding: "32px",
  borderRadius: "8px",
  marginBottom: "32px",
  border: "1px solid #222222"
};
var highlightRow = {
  display: "flex",
  alignItems: "flex-start",
  marginBottom: "12px"
};
var bullet = {
  width: "6px",
  height: "6px",
  backgroundColor: "#4CAF50",
  marginTop: "8px",
  marginRight: "12px",
  flexShrink: 0
};
var highlightText = {
  fontSize: "15px",
  color: "#ffffff",
  margin: "0"
};
var bodyText2 = {
  fontSize: "16px",
  lineHeight: "24px",
  color: "#888888",
  margin: "0 0 32px"
};
var ctaSection = {
  textAlign: "center",
  marginBottom: "48px"
};
var button = {
  backgroundColor: "#ffffff",
  borderRadius: "0",
  color: "#000000",
  fontSize: "14px",
  fontWeight: "bold",
  textDecoration: "none",
  textAlign: "center",
  display: "inline-block",
  padding: "16px 32px",
  textTransform: "uppercase",
  letterSpacing: "0.1em"
};
var footerText3 = {
  fontSize: "14px",
  color: "#666666",
  lineHeight: "20px"
};

// ../mail/dist/index.js
async function render3(template, options) {
  return render2(template, options);
}

// src/index.ts
var import_react4 = require("react");
var path2 = __toESM(require("path"), 1);
var fs4 = __toESM(require("fs"), 1);
var index_default = defineEndpoint((router, { services, env }) => {
  const { ItemsService, MailService } = services;
  router.get("/ping", (req, res) => res.send("pong"));
  router.post("/audit/:id", async (req, res) => {
    const { id } = req.params;
    const leadsService = new ItemsService("leads", { schema: req.schema, accountability: req.accountability });
    try {
      const lead = await leadsService.readOne(id);
      if (!lead) return res.status(404).send({ error: "Lead not found" });
      await leadsService.updateOne(id, { status: "auditing" });
      const acqService = new AcquisitionService(env.OPENROUTER_API_KEY);
      const result = await acqService.runFullSequence(lead.website_url, lead.briefing, lead.comments);
      await leadsService.updateOne(id, {
        status: "audit_ready",
        ai_state: result.state,
        audit_context: JSON.stringify(result.usage)
      });
      res.send({ success: true, result });
    } catch (error) {
      console.error("Audit failed:", error);
      await leadsService.updateOne(id, { status: "new", comments: `Audit failed: ${error.message}` });
      res.status(500).send({ error: error.message });
    }
  });
  router.post("/audit-email/:id", async (req, res) => {
    const { id } = req.params;
    const { ItemsService: ItemsService2, MailService: MailService2 } = services;
    const leadsService = new ItemsService2("leads", { schema: req.schema, accountability: req.accountability });
    const peopleService = new ItemsService2("people", { schema: req.schema, accountability: req.accountability });
    const companiesService = new ItemsService2("companies", { schema: req.schema, accountability: req.accountability });
    const mailService = new MailService2({ schema: req.schema, accountability: req.accountability });
    try {
      const lead = await leadsService.readOne(id, { fields: ["*", "company.*", "contact_person.*"] });
      if (!lead || !lead.ai_state) return res.status(400).send({ error: "Lead or Audit not ready" });
      let recipientEmail = lead.contact_email;
      let companyName = lead.company?.name || lead.company_name;
      if (lead.contact_person) {
        recipientEmail = lead.contact_person.email || recipientEmail;
        if (lead.contact_person.company) {
          const personCompany = await companiesService.readOne(lead.contact_person.company);
          companyName = personCompany?.name || companyName;
        }
      }
      if (!recipientEmail) return res.status(400).send({ error: "No recipient email found" });
      const auditHighlights = [
        `Projekt-Typ: ${lead.ai_state.projectType === "website" ? "Website" : "Web App"}`,
        ...(lead.ai_state.sitemap || []).slice(0, 3).map((item) => `Potenzial in: ${item.category}`)
      ];
      const html = await render3((0, import_react4.createElement)(SiteAuditTemplate, {
        companyName,
        websiteUrl: lead.website_url,
        auditHighlights
      }));
      await mailService.send({
        to: recipientEmail,
        subject: `Analyse Ihrer Webpr\xE4senz: ${companyName}`,
        html
      });
      await leadsService.updateOne(id, {
        status: "contacted",
        last_contacted_at: (/* @__PURE__ */ new Date()).toISOString()
      });
      res.send({ success: true });
    } catch (error) {
      console.error("Audit Email failed:", error);
      res.status(500).send({ error: error.message });
    }
  });
  router.post("/estimate/:id", async (req, res) => {
    const { id } = req.params;
    const leadsService = new ItemsService("leads", { schema: req.schema, accountability: req.accountability });
    try {
      const lead = await leadsService.readOne(id);
      if (!lead || !lead.ai_state) return res.status(400).send({ error: "Lead or AI state not found" });
      const pdfEngine = new PdfEngine();
      const filename = `estimate_${id}_${Date.now()}.pdf`;
      const storageRoot = env.STORAGE_LOCAL_ROOT || "./storage";
      const outputPath = path2.join(storageRoot, filename);
      await pdfEngine.generateEstimatePdf(lead.ai_state, outputPath);
      await leadsService.updateOne(id, {
        audit_pdf_path: filename
      });
      res.send({ success: true, filename });
    } catch (error) {
      console.error("PDF Generation failed:", error);
      res.status(500).send({ error: error.message });
    }
  });
  router.post("/estimate-email/:id", async (req, res) => {
    const { id } = req.params;
    const leadsService = new ItemsService("leads", { schema: req.schema, accountability: req.accountability });
    const peopleService = new ItemsService("people", { schema: req.schema, accountability: req.accountability });
    const companiesService = new ItemsService("companies", { schema: req.schema, accountability: req.accountability });
    const mailService = new MailService({ schema: req.schema, accountability: req.accountability });
    try {
      const lead = await leadsService.readOne(id, { fields: ["*", "company.*", "contact_person.*"] });
      if (!lead || !lead.audit_pdf_path) return res.status(400).send({ error: "PDF not generated" });
      let recipientEmail = lead.contact_email;
      let companyName = lead.company?.name || lead.company_name;
      if (lead.contact_person) {
        recipientEmail = lead.contact_person.email || recipientEmail;
        if (lead.contact_person.company) {
          const personCompany = await companiesService.readOne(lead.contact_person.company);
          companyName = personCompany?.name || companyName;
        }
      }
      if (!recipientEmail) return res.status(400).send({ error: "No recipient email found" });
      const html = await render3((0, import_react4.createElement)(ProjectEstimateTemplate, {
        companyName
      }));
      const storageRoot = env.STORAGE_LOCAL_ROOT || "./storage";
      const attachmentPath = path2.join(storageRoot, lead.audit_pdf_path);
      await mailService.send({
        to: recipientEmail,
        subject: `Ihre Projekt-Sch\xE4tzung: ${companyName}`,
        html,
        attachments: [
          {
            filename: `Angebot_${companyName}.pdf`,
            content: fs4.readFileSync(attachmentPath)
          }
        ]
      });
      await leadsService.updateOne(id, {
        status: "contacted",
        last_contacted_at: (/* @__PURE__ */ new Date()).toISOString()
      });
      res.send({ success: true });
    } catch (error) {
      console.error("Estimate Email failed:", error);
      res.status(500).send({ error: error.message });
    }
  });
});
/*! Bundled license information:

@apify/utilities/cjs/index.cjs:
  (*!
   * This module contains various server utility and helper functions.
   * Note that it automatically exports functions from utilities.client.js
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2015 Apify. All rights reserved.
   *
   *)
  (*!
   * This module contains various client-side utility and helper functions.
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2016 Apify. All rights reserved.
   *
   *)

@sapphire/shapeshift/dist/cjs/index.cjs:
  (**
   * @license MIT
   * @copyright 2020 Colin McDonnell
   * @see https://github.com/colinhacks/zod/blob/master/LICENSE
   *)

mime-db/index.js:
  (*!
   * mime-db
   * Copyright(c) 2014 Jonathan Ong
   * Copyright(c) 2015-2022 Douglas Christopher Wilson
   * MIT Licensed
   *)

mime-types/index.js:
  (*!
   * mime-types
   * Copyright(c) 2014 Jonathan Ong
   * Copyright(c) 2015 Douglas Christopher Wilson
   * MIT Licensed
   *)

content-type/index.js:
  (*!
   * content-type
   * Copyright(c) 2015 Douglas Christopher Wilson
   * MIT Licensed
   *)

@vladfrangu/async_event_emitter/dist/index.cjs:
  (*! Bundled license information:
  
  node-inspect-extracted/dist/inspect.js:
    (*! For license information please see inspect.js.LICENSE.txt *)
  *)

keyv/dist/index.js:
  (* v8 ignore next -- @preserve *)

cacheable-request/dist/index.js:
  (* c8 ignore next -- @preserve *)
  (* v8 ignore next -- @preserve *)

sax/lib/sax.js:
  (*! http://mths.be/fromcodepoint v0.1.0 by @mathias *)

ieee754/index.js:
  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)

@apify/datastructures/cjs/index.cjs:
  (*!
   * This module defines the LinkedList class, which represents a doubly-linked list data structure.
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2014 Apify. All rights reserved.
   *
   *)
  (*!
   * This module defines the ListDictionary class, a data structure
   * that combines a linked list and a dictionary.
   *
   * Author: Jan Curn (jan@apify.com)
   * Copyright(c) 2015 Apify. All rights reserved.
   *
   *)

tough-cookie/dist/index.cjs:
  (*!
   * Copyright (c) 2015-2020, Salesforce.com, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * 3. Neither the name of Salesforce.com nor the names of its contributors may
   * be used to endorse or promote products derived from this software without
   * specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *)
*/
