Files
tvbox-qist/cat/dist/index.js
2024-05-05 13:32:58 +08:00

933 lines
2.5 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var pte = Object.create; var B6 = Object.defineProperty; var fte = Object.getOwnPropertyDescriptor; var dte = Object.getOwnPropertyNames; var hte = Object.getPrototypeOf, mte = Object.prototype.hasOwnProperty; var k = (t, e) => () => (e || t((e = { exports: {} }).exports, e), e.exports), TA = (t, e) => { for (var n in e) B6(t, n, { get: e[n], enumerable: !0 }) }, xA = (t, e, n, r) => { if (e && typeof e == "object" || typeof e == "function") for (let i of dte(e)) !mte.call(t, i) && i !== n && B6(t, i, { get: () => e[i], enumerable: !(r = fte(e, i)) || r.enumerable }); return t }; var Yr = (t, e, n) => (n = t != null ? pte(hte(t)) : {}, xA(e || !t || !t.__esModule ? B6(n, "default", { value: t, enumerable: !0 }) : n, t)), yte = t => xA(B6({}, "__esModule", { value: !0 }), t); var OA = k((BOe, AA) => { "use strict"; function gte(t) { var e = new t, n = e; function r() { var l = e; return l.next ? e = l.next : (e = new t, n = e), l.next = null, l } function i(l) { n.next = l, n = l } return { get: r, release: i } } AA.exports = gte }); var Id = k((HOe, Rd) => { "use strict"; var vte = OA(); function NA(t, e, n) { if (typeof t == "function" && (n = e, e = t, t = null), !(n >= 1)) throw new Error("fastqueue concurrency must be equal to or greater than 1"); var r = vte(_te), i = null, l = null, s = 0, a = null, o = { push: _, drain: Kl, saturated: Kl, pause: c, paused: !1, get concurrency() { return n }, set concurrency(x) { if (!(x >= 1)) throw new Error("fastqueue concurrency must be equal to or greater than 1"); if (n = x, !o.paused) for (; i && s < n;)s++, w() }, running: u, resume: d, idle: y, length: f, getQueue: m, unshift: S, empty: Kl, kill: E, killAndDrain: g, error: v }; return o; function u() { return s } function c() { o.paused = !0 } function f() { for (var x = i, O = 0; x;)x = x.next, O++; return O } function m() { for (var x = i, O = []; x;)O.push(x.value), x = x.next; return O } function d() { if (o.paused) for (o.paused = !1; i && s < n;)s++, w() } function y() { return s === 0 && o.length() === 0 } function _(x, O) { var N = r.get(); N.context = t, N.release = w, N.value = x, N.callback = O || Kl, N.errorHandler = a, s >= n || o.paused ? l ? (l.next = N, l = N) : (i = N, l = N, o.saturated()) : (s++, e.call(t, N.value, N.worked)) } function S(x, O) { var N = r.get(); N.context = t, N.release = w, N.value = x, N.callback = O || Kl, N.errorHandler = a, s >= n || o.paused ? i ? (N.next = i, i = N) : (i = N, l = N, o.saturated()) : (s++, e.call(t, N.value, N.worked)) } function w(x) { x && r.release(x); var O = i; O && s <= n ? o.paused ? s-- : (l === i && (l = null), i = O.next, O.next = null, e.call(t, O.value, O.worked), l === null && o.empty()) : --s === 0 && o.drain() } function E() { i = null, l = null, o.drain = Kl } function g() { i = null, l = null, o.drain(), o.drain = Kl } function v(x) { a = x } } function Kl() { } function _te() { this.value = null, this.callback = Kl, this.next = null, this.release = Kl, this.context = null, this.errorHandler = null; var t = this; this.worked = function (n, r) { var i = t.callback, l = t.errorHandler, s = t.value; t.value = null, t.callback = Kl, t.errorHandler && l(n, s), i.call(t.context, n, r), t.release(t) } } function Ete(t, e, n) { typeof t == "function" && (n = e, e = t, t = null); function r(c, f) { e.call(this, c).then(function (m) { f(null, m) }, f) } var i = NA(t, r, n), l = i.push, s = i.unshift; return i.push = a, i.unshift = o, i.drained = u, i; function a(c) { var f = new Promise(function (m, d) { l(c, function (y, _) { if (y) { d(y); return } m(_) }) }); return f.catch(Kl), f } function o(c) { var f = new Promise(function (m, d) { s(c, function (y, _) { if (y) { d(y); return } m(_) }) }); return f.catch(Kl), f } function u() { if (i.idle()) return new Promise(function (m) { m() }); var c = i.drain, f = new Promise(function (m) { i.drain = function () { c(), m() } }); return f } } Rd.exports = NA; Rd.exports.promise = Ete }); var Dd = k((VOe, CA) => { "use strict"; var { inherits: bte, format: kd } = require("util"); function m3(t, e, n = Error) { if (!t) throw new Error("Avvio error code must not be empty"); if (!e) throw new Error("Avvio base error message must not be empty"); function r(i, l, s) { if (!new.target) return new r(i, l, s); Error.captureStackTrace(this, r), this.code = t, this.message = e, this.name = "AvvioError", i && l && s ? this.message = kd(e, i, l, s) : i && l ? this.message = kd(e, i, l) : i ? this.message = kd(e, i) : this.message = e } return r.prototype[Symbol.toStringTag] = "Error", r.prototype.toString = function () { return `${this.name} [${this.code}]: ${this.message}` }, bte(r, n), r } CA.exports = { createError: m3, AVV_ERR_EXPOSE_ALREADY_DEFINED: m3("AVV_ERR_EXPOSE_ALREADY_DEFINED", "'%s' () is already defined, specify an expose option"), AVV_ERR_CALLBACK_NOT_FN: m3("AVV_ERR_CALLBACK_NOT_FN", "Callback for '%s' hook is not a function. Received: '%s'"), AVV_ERR_PLUGIN_NOT_VALID: m3("AVV_ERR_PLUGIN_NOT_VALID", "Plugin must be a function or a promise. Received: '%s'"), AVV_ERR_ROOT_PLG_BOOTED: m3("AVV_ERR_PLUGIN_NOT_VALID", "Root plugin has already booted"), AVV_ERR_PARENT_PLG_LOADED: m3("AVV_ERR_PARENT_PLG_LOADED", "Impossible to load '%s' plugin because the parent '%s' was already loaded"), AVV_ERR_READY_TIMEOUT: m3("AVV_ERR_READY_TIMEOUT", "Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise") } }); var IA = k((qOe, RA) => {
RA.exports = function t(e, n, r) {
n === void 0 && (n = ""), r || (r = {}); var i = function (o) { var u = { "\u2502": "|", "\u2514": "`", "\u251C": "+", "\u2500": "-", "\u252C": "-" }; return r.unicode === !1 ? u[o] : o }; typeof e == "string" && (e = { label: e }); var l = e.nodes || [], s = (e.label || "").split(`
`), a = `
`+ n + (l.length ? i("\u2502") : " ") + " "; return n + s.join(a) + `
`+ l.map(function (o, u) { var c = u === l.length - 1, f = o.nodes && o.nodes.length, m = n + (c ? " " : i("\u2502")) + " "; return n + i(c ? "\u2514" : "\u251C") + i("\u2500") + i(f ? "\u252C" : "\u2500") + " " + t(o, m, r).slice(n.length + 2) }).join("")
}
}); var jA = k((zOe, FA) => { "use strict"; var wte = IA(), kA = Symbol("avvio.TimeTree.untrackNode"), Pd = Symbol("avvio.TimeTree.trackNode"), DA = Symbol("avvio.TimeTree.getParent"), PA = Symbol("avvio.TimeTree.getNode"), LA = Symbol("avvio.TimeTree.addNode"), Ld = class { constructor() { this.root = null, this.tableId = new Map, this.tableLabel = new Map } [Pd](e) { this.tableId.set(e.id, e), this.tableLabel.has(e.label) ? this.tableLabel.get(e.label).push(e) : this.tableLabel.set(e.label, [e]) } [kA](e) { this.tableId.delete(e.id); let n = this.tableLabel.get(e.label); if (n.id) { this.tableLabel.delete(e.label); return } n.pop(), n.length === 0 && this.tableLabel.delete(e.label) } [DA](e) { if (e === null) return this.root; let n = this.tableLabel.get(e); return n.id ? n : n[n.length - 1] } [PA](e) { return this.tableId.get(e) } [LA](e, n, r) { if (e === null) return this.root = { id: "root", label: n, start: r, nodes: [] }, this[Pd](this.root), this.root.id; let l = this[DA](e), s = `${n}-${Math.random()}`, a = { id: s, parent: e, start: r, label: n, nodes: [] }; return l.nodes.push(a), this[Pd](a), s } start(e, n, r = Date.now()) { return this[LA](e, n, r) } stop(e, n = Date.now()) { let r = this[PA](e); r && (r.stop = n, r.diff = r.stop - r.start || 0, this[kA](r)) } toJSON() { return Object.assign({}, this.root) } prittyPrint() { let e = r => (r.label = `${r.label} ${r.diff} ms`, r.nodes.length > 0 && (r.nodes = r.nodes.map(i => e(i))), r), n = e(this.toJSON()); return wte(n) } }; FA.exports = Ld }); var MA = k((GOe, UA) => { var Mu = 1e3, $u = Mu * 60, Bu = $u * 60, y3 = Bu * 24, Ste = y3 * 7, Tte = y3 * 365.25; UA.exports = function (t, e) { e = e || {}; var n = typeof t; if (n === "string" && t.length > 0) return xte(t); if (n === "number" && isFinite(t)) return e.long ? Ote(t) : Ate(t); throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(t)) }; function xte(t) { if (t = String(t), !(t.length > 100)) { var e = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t); if (e) { var n = parseFloat(e[1]), r = (e[2] || "ms").toLowerCase(); switch (r) { case "years": case "year": case "yrs": case "yr": case "y": return n * Tte; case "weeks": case "week": case "w": return n * Ste; case "days": case "day": case "d": return n * y3; case "hours": case "hour": case "hrs": case "hr": case "h": return n * Bu; case "minutes": case "minute": case "mins": case "min": case "m": return n * $u; case "seconds": case "second": case "secs": case "sec": case "s": return n * Mu; case "milliseconds": case "millisecond": case "msecs": case "msec": case "ms": return n; default: return } } } } function Ate(t) { var e = Math.abs(t); return e >= y3 ? Math.round(t / y3) + "d" : e >= Bu ? Math.round(t / Bu) + "h" : e >= $u ? Math.round(t / $u) + "m" : e >= Mu ? Math.round(t / Mu) + "s" : t + "ms" } function Ote(t) { var e = Math.abs(t); return e >= y3 ? H6(t, e, y3, "day") : e >= Bu ? H6(t, e, Bu, "hour") : e >= $u ? H6(t, e, $u, "minute") : e >= Mu ? H6(t, e, Mu, "second") : t + " ms" } function H6(t, e, n, r) { var i = e >= n * 1.5; return Math.round(t / n) + " " + r + (i ? "s" : "") } }); var Fd = k((JOe, $A) => { function Nte(t) { n.debug = n, n.default = n, n.coerce = o, n.disable = l, n.enable = i, n.enabled = s, n.humanize = MA(), n.destroy = u, Object.keys(t).forEach(c => { n[c] = t[c] }), n.names = [], n.skips = [], n.formatters = {}; function e(c) { let f = 0; for (let m = 0; m < c.length; m++)f = (f << 5) - f + c.charCodeAt(m), f |= 0; return n.colors[Math.abs(f) % n.colors.length] } n.selectColor = e; function n(c) { let f, m = null, d, y; function _(...S) { if (!_.enabled) return; let w = _, E = Number(new Date), g = E - (f || E); w.diff = g, w.prev = f, w.curr = E, f = E, S[0] = n.coerce(S[0]), typeof S[0] != "string" && S.unshift("%O"); let v = 0; S[0] = S[0].replace(/%([a-zA-Z%])/g, (O, N) => { if (O === "%%") return "%"; v++; let R = n.formatters[N]; if (typeof R == "function") { let U = S[v]; O = R.call(w, U), S.splice(v, 1), v-- } return O }), n.formatArgs.call(w, S), (w.log || n.log).apply(w, S) } return _.namespace = c, _.useColors = n.useColors(), _.color = n.selectColor(c), _.extend = r, _.destroy = n.destroy, Object.defineProperty(_, "enabled", { enumerable: !0, configurable: !1, get: () => m !== null ? m : (d !== n.namespaces && (d = n.namespaces, y = n.enabled(c)), y), set: S => { m = S } }), typeof n.init == "function" && n.init(_), _ } function r(c, f) { let m = n(this.namespace + (typeof f > "u" ? ":" : f) + c); return m.log = this.log, m } function i(c) { n.save(c), n.namespaces = c, n.names = [], n.skips = []; let f, m = (typeof c == "string" ? c : "").split(/[\s,]+/), d = m.length; for (f = 0; f < d; f++)m[f] && (c = m[f].replace(/\*/g, ".*?"), c[0] === "-" ? n.skips.push(new RegExp("^" + c.slice(1) + "$")) : n.names.push(new RegExp("^" + c + "$"))) } function l() { let c = [...n.names.map(a), ...n.skips.map(a).map(f => "-" + f)].join(","); return n.enable(""), c } function s(c) { if (c[c.length - 1] === "*") return !0; let f, m; for (f = 0, m = n.skips.length; f < m; f++)if (n.skips[f].test(c)) return !1; for (f = 0, m = n.names.length; f < m; f++)if (n.names[f].test(c)) return !0; return !1 } function a(c) { return c.toString().substring(2, c.toString().length - 2).replace(/\.\*\?$/, "*") } function o(c) { return c instanceof Error ? c.stack || c.message : c } function u() { console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.") } return n.enable(n.load()), n } $A.exports = Nte }); var BA = k((kl, V6) => { kl.formatArgs = Rte; kl.save = Ite; kl.load = kte; kl.useColors = Cte; kl.storage = Dte(); kl.destroy = (() => { let t = !1; return () => { t || (t = !0, console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")) } })(); kl.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 Cte() { return typeof window < "u" && window.process && (window.process.type === "renderer" || window.process.__nwjs) ? !0 : typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/) ? !1 : typeof document < "u" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window < "u" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/) } function Rte(t) { if (t[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + t[0] + (this.useColors ? "%c " : " ") + "+" + V6.exports.humanize(this.diff), !this.useColors) return; let e = "color: " + this.color; t.splice(1, 0, e, "color: inherit"); let n = 0, r = 0; t[0].replace(/%[a-zA-Z%]/g, i => { i !== "%%" && (n++, i === "%c" && (r = n)) }), t.splice(r, 0, e) } kl.log = console.debug || console.log || (() => { }); function Ite(t) { try { t ? kl.storage.setItem("debug", t) : kl.storage.removeItem("debug") } catch { } } function kte() { let t; try { t = kl.storage.getItem("debug") } catch { } return !t && typeof process < "u" && "env" in process && (t = process.env.DEBUG), t } function Dte() { try { return localStorage } catch { } } V6.exports = Fd()(kl); var { formatters: Pte } = V6.exports; Pte.j = function (t) { try { return JSON.stringify(t) } catch (e) { return "[UnexpectedJSONParseError]: " + e.message } } }); var VA = k((KOe, HA) => { "use strict"; HA.exports = (t, e) => { e = e || process.argv; let n = t.startsWith("-") ? "" : t.length === 1 ? "-" : "--", r = e.indexOf(n + t), i = e.indexOf("--"); return r !== -1 && (i === -1 ? !0 : r < i) } }); var zA = k((XOe, qA) => { "use strict"; var Lte = require("os"), ys = VA(), Fi = process.env, Hu; ys("no-color") || ys("no-colors") || ys("color=false") ? Hu = !1 : (ys("color") || ys("colors") || ys("color=true") || ys("color=always")) && (Hu = !0); "FORCE_COLOR" in Fi && (Hu = Fi.FORCE_COLOR.length === 0 || parseInt(Fi.FORCE_COLOR, 10) !== 0); function Fte(t) { return t === 0 ? !1 : { level: t, hasBasic: !0, has256: t >= 2, has16m: t >= 3 } } function jte(t) { if (Hu === !1) return 0; if (ys("color=16m") || ys("color=full") || ys("color=truecolor")) return 3; if (ys("color=256")) return 2; if (t && !t.isTTY && Hu !== !0) return 0; let e = Hu ? 1 : 0; if (process.platform === "win32") { let n = Lte.release().split("."); return Number(process.versions.node.split(".")[0]) >= 8 && Number(n[0]) >= 10 && Number(n[2]) >= 10586 ? Number(n[2]) >= 14931 ? 3 : 2 : 1 } if ("CI" in Fi) return ["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some(n => n in Fi) || Fi.CI_NAME === "codeship" ? 1 : e; if ("TEAMCITY_VERSION" in Fi) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Fi.TEAMCITY_VERSION) ? 1 : 0; if (Fi.COLORTERM === "truecolor") return 3; if ("TERM_PROGRAM" in Fi) { let n = parseInt((Fi.TERM_PROGRAM_VERSION || "").split(".")[0], 10); switch (Fi.TERM_PROGRAM) { case "iTerm.app": return n >= 3 ? 3 : 2; case "Apple_Terminal": return 2 } } return /-256(color)?$/i.test(Fi.TERM) ? 2 : /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Fi.TERM) || "COLORTERM" in Fi ? 1 : (Fi.TERM === "dumb", e) } function jd(t) { let e = jte(t); return Fte(e) } qA.exports = { supportsColor: jd, stdout: jd(process.stdout), stderr: jd(process.stderr) } }); var JA = k((Ti, z6) => {
var Ute = require("tty"), q6 = require("util"); Ti.init = zte; Ti.log = Hte; Ti.formatArgs = $te; Ti.save = Vte; Ti.load = qte; Ti.useColors = Mte; Ti.destroy = q6.deprecate(() => { }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); Ti.colors = [6, 2, 3, 4, 5, 1]; try { let t = zA(); t && (t.stderr || t).level >= 2 && (Ti.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 { } Ti.inspectOpts = Object.keys(process.env).filter(t => /^debug_/i.test(t)).reduce((t, e) => { let n = e.substring(6).toLowerCase().replace(/_([a-z])/g, (i, l) => l.toUpperCase()), r = process.env[e]; return /^(yes|on|true|enabled)$/i.test(r) ? r = !0 : /^(no|off|false|disabled)$/i.test(r) ? r = !1 : r === "null" ? r = null : r = Number(r), t[n] = r, t }, {}); function Mte() { return "colors" in Ti.inspectOpts ? !!Ti.inspectOpts.colors : Ute.isatty(process.stderr.fd) } function $te(t) {
let { namespace: e, useColors: n } = this; if (n) {
let r = this.color, i = "\x1B[3" + (r < 8 ? r : "8;5;" + r), l = ` ${i};1m${e} \x1B[0m`; t[0] = l + t[0].split(`
`).join(`
`+ l), t.push(i + "m+" + z6.exports.humanize(this.diff) + "\x1B[0m")
} else t[0] = Bte() + e + " " + t[0]
} function Bte() { return Ti.inspectOpts.hideDate ? "" : new Date().toISOString() + " " } function Hte(...t) {
return process.stderr.write(q6.format(...t) + `
`)
} function Vte(t) { t ? process.env.DEBUG = t : delete process.env.DEBUG } function qte() { return process.env.DEBUG } function zte(t) { t.inspectOpts = {}; let e = Object.keys(Ti.inspectOpts); for (let n = 0; n < e.length; n++)t.inspectOpts[e[n]] = Ti.inspectOpts[e[n]] } z6.exports = Fd()(Ti); var { formatters: GA } = z6.exports; GA.o = function (t) {
return this.inspectOpts.colors = this.useColors, q6.inspect(t, this.inspectOpts).split(`
`).map(e => e.trim()).join(" ")
}; GA.O = function (t) { return this.inspectOpts.colors = this.useColors, q6.inspect(t, this.inspectOpts) }
}); var G6 = k((WOe, Ud) => { typeof process > "u" || process.type === "renderer" || process.browser === !0 || process.__nwjs ? Ud.exports = BA() : Ud.exports = JA() }); var KA = k((YOe, Bd) => {
"use strict"; var Gte = Id(), Jte = require("events").EventEmitter, Kte = require("util").inherits, pi = G6()("avvio"), { AVV_ERR_READY_TIMEOUT: Xte } = Dd(), Md = Symbol.for("plugin-meta"); function Wte(t, e) {
return t[Md] && t[Md].name ? t[Md].name : typeof e < "u" && typeof e != "function" && e.name ? e.name : t.name ? t.name : t.toString().split(`
`).slice(0, 2).map(n => n.trim()).join(" -- ")
} function Yte() { let t = {}; return t.promise = new Promise((e, n) => { t.resolve = e, t.reject = n }), t } function Vu(t, e, n, r, i) { this.started = !1, this.func = e, this.opts = n, this.onFinish = null, this.parent = t, this.timeout = i === void 0 ? t._timeout : i, this.name = Wte(e, n), this.isAfter = r, this.q = Gte(t, Qte, 1), this.q.pause(), this._error = null, this.loaded = !1, this._promise = null } Kte(Vu, Jte); Vu.prototype.exec = function (t, e) { let n = this.func, r = !1, i = this.name; if (this.parent._error && !this.isAfter) { pi("skipping loading of plugin as parent errored and it is not an after", i), process.nextTick(e); return } if (this.isAfter) this.server = t; else try { this.server = this.parent.override(t, n, this.opts) } catch (o) { return pi("override errored", i), e(o) } this.opts = typeof this.opts == "function" ? this.opts(this.server) : this.opts, pi("exec", i); let l, s = o => { if (r) { pi("loading complete", i); return } this._error = o, pi(o ? "exec errored" : "exec completed", i), r = !0, l && clearTimeout(l), e(o) }; this.timeout > 0 && (pi("setting up timeout", i, this.timeout), l = setTimeout(function () { pi("timed out", i), l = null; let o = new Xte(i); o.fn = n, s(o) }, this.timeout)), this.started = !0, this.emit("start", this.server ? this.server.name : null, this.name, Date.now()); let a = n(this.server, this.opts, s); a && typeof a.then == "function" && (pi("exec: resolving promise", i), a.then(() => process.nextTick(s), o => process.nextTick(s, o))) }; Vu.prototype.loadedSoFar = function () { if (this.loaded) return Promise.resolve(); let t = () => { this.server.after((n, r) => { this._error = n, this.q.pause(), n ? (pi("rejecting promise", this.name, n), this._promise.reject(n)) : (pi("resolving promise", this.name), this._promise.resolve()), this._promise = null, process.nextTick(r, n) }), this.q.resume() }, e; return this._promise ? e = Promise.resolve() : (this._promise = Yte(), e = this._promise.promise, this.server ? t() : this.on("start", t)), e }; Vu.prototype.enqueue = function (t, e) { pi("enqueue", this.name, t.name), this.emit("enqueue", this.server ? this.server.name : null, this.name, Date.now()), this.q.push(t, e) }; Vu.prototype.finish = function (t, e) { pi("finish", this.name, t); let n = () => { this.loaded || (pi("loaded", this.name), this.emit("loaded", this.server ? this.server.name : null, this.name, Date.now()), this.loaded = !0, e(t)) }; if (t) { this._promise && (this._promise.reject(t), this._promise = null), n(); return } let r = () => { if (pi("check", this.name, this.q.length(), this.q.running(), this._promise), this.q.length() === 0 && this.q.running() === 0) if (this._promise) { let i = () => { pi("wrap"), queueMicrotask(r) }; this._promise.resolve(), this._promise.promise.then(i, i), this._promise = null } else n(); else pi("delayed", this.name), this.q.drain = () => { pi("drain", this.name), this.q.drain = Zte, queueMicrotask(r) } }; queueMicrotask(r), this.q.resume() }; function Qte(t, e) { let n = this; process.nextTick($d.bind(n), t, e) } function $d(t, e) { if (typeof t.func.then == "function") { t.func.then(r => { typeof r.default == "function" && (r = r.default), t.func = r, $d.call(this, t, e) }, e); return } let n = this._current[0]; this._current.unshift(t), t.exec(n && n.server || this._server, r => { t.finish(r, i => { this._current.shift(), e(i) }) }) } function Zte() { } Bd.exports = Vu; Bd.exports.loadPlugin = $d
}); var ZA = k((QOe, Gd) => { "use strict"; var XA = Id(), ene = require("events").EventEmitter, tne = require("util").inherits, { AVV_ERR_EXPOSE_ALREADY_DEFINED: Hd, AVV_ERR_CALLBACK_NOT_FN: r4, AVV_ERR_PLUGIN_NOT_VALID: nne, AVV_ERR_ROOT_PLG_BOOTED: rne, AVV_ERR_READY_TIMEOUT: ine } = Dd(), lne = jA(), zd = KA(), qu = G6()("avvio"), J6 = Symbol("kAvvio"), Vd = Symbol("kThenifyDoNotWrap"); function sne(t, e, n) { let r = e.expose || {}, i = r.use || "use", l = r.after || "after", s = r.ready || "ready", a = r.onClose || "onClose", o = r.close || "close"; if (t[i]) throw new Hd(i); if (t[l]) throw new Hd(l); if (t[s]) throw new Hd(s); t[i] = function (u, c) { return n.use(u, c), this }, Object.defineProperty(t, "then", { get: YA.bind(n) }), t[J6] = !0, t[l] = function (u) { return typeof u != "function" ? n._loadRegistered() : (n.after(qd(u, this)), this) }, t[s] = function (u) { if (u && typeof u != "function") throw new r4(s, typeof u); return n.ready(u ? qd(u, this) : void 0) }, t[a] = function (u) { if (typeof u != "function") throw new r4(a, typeof u); return n.onClose(pne(u, this)), this }, t[o] = function (u) { if (u && typeof u != "function") throw new r4(o, typeof u); return u ? (n.close(qd(u, this)), this) : n.close() } } function fi(t, e, n) { if (typeof t == "function" && arguments.length === 1 && (n = t, e = {}, t = null), typeof e == "function" && (n = e, e = {}), e = e || {}, !(this instanceof fi)) { let r = new fi(t, e, n); return t && sne(t, e, r), r } e.autostart !== !1 && (e.autostart = !0), t = t || this, this._timeout = Number(e.timeout) || 0, this._server = t, this._current = [], this._error = null, this._isOnCloseHandlerKey = Symbol("isOnCloseHandler"), this._lastUsed = null, this.setMaxListeners(0), n && this.once("start", n), this.started = !1, this.booted = !1, this.pluginTree = new lne, this._readyQ = XA(this, QA, 1), this._readyQ.pause(), this._readyQ.drain = () => { this.emit("start"), this._readyQ.drain = WA }, this._closeQ = XA(this, cne, 1), this._closeQ.pause(), this._closeQ.drain = () => { this.emit("close"), this._closeQ.drain = WA }, this._doStart = null, this._root = new zd(this, ane.bind(this), e, !1, 0), this._root.once("start", (r, i, l) => { let s = this.pluginTree.start(null, i, l); this._root.once("loaded", (a, o, u) => { this.pluginTree.stop(s, u) }) }), zd.loadPlugin.call(this, this._root, r => { qu("root plugin ready"); try { this.emit("preReady"), this._root = null } catch (i) { r = r || this._error || i } if (r) { if (this._error = r, this._readyQ.length() === 0) throw r } else this.booted = !0; this._readyQ.resume() }) } function ane(t, e, n) { this._doStart = n, e.autostart && this.start() } tne(fi, ene); fi.prototype.start = function () { return this.started = !0, process.nextTick(this._doStart), this }; fi.prototype.override = function (t, e, n) { return t }; function one(t) { if (t && typeof t == "object" && typeof t.default == "function" && (t = t.default), !(t && (typeof t == "function" || typeof t.then == "function"))) throw new nne(typeof t); return t } fi.prototype[J6] = !0; fi.prototype.use = function (t, e) { return this._lastUsed = this._addPlugin(t, e, !1), this }; fi.prototype._loadRegistered = function () { let t = this._current[0]; return !this.started && !this.booted && process.nextTick(() => this._root.q.resume()), t ? t.loadedSoFar() : Promise.resolve() }; Object.defineProperty(fi.prototype, "then", { get: YA }); fi.prototype._addPlugin = function (t, e, n) { if (t = one(t), e = e || {}, this.booted) throw new rne; let r = this._current[0], i = new zd(this, t, e, n); if (i.once("start", (l, s, a) => { let o = this.pluginTree.start(r.name, s, a); i.once("loaded", (u, c, f) => { this.pluginTree.stop(o, f) }) }), r.loaded) throw new Error(i.name, r.name); return r.enqueue(i, l => { l && (this._error = l) }), i }; fi.prototype.after = function (t) { if (!t) return this._loadRegistered(); this._addPlugin(e.bind(this), {}, !0); function e(n, r, i) { QA.call(this, t, i) } return this }; fi.prototype.onClose = function (t) { if (typeof t != "function") throw new Error("not a function"); t[this._isOnCloseHandlerKey] = !0, this._closeQ.unshift(t, e.bind(this)); function e(n) { n && (this._error = n) } return this }; fi.prototype.close = function (t) { let e; if (t) { if (typeof t != "function") throw new r4("close", typeof t) } else e = new Promise(function (n, r) { t = function (i) { if (i) return r(i); n() } }); return this.ready(() => { this._error = null, this._closeQ.push(t), process.nextTick(this._closeQ.resume.bind(this._closeQ)) }), e }; fi.prototype.ready = function (t) { if (t) { if (typeof t != "function") throw new r4("ready", typeof t); this._readyQ.push(t), queueMicrotask(this.start.bind(this)); return } return new Promise((e, n) => { this._readyQ.push(i), this.start(); let r = this._current[0].server; function i(l, s, a) { l ? n(l) : e(r), process.nextTick(a) } }) }; fi.prototype.prettyPrint = function () { return this.pluginTree.prittyPrint() }; fi.prototype.toJSON = function () { return this.pluginTree.toJSON() }; function WA() { } function YA() { if (this.booted) { qu("thenify returning null because we are already booted"); return } if (this[Vd]) { this[Vd] = !1; return } return qu("thenify"), (t, e) => this._loadRegistered().then(() => (this[Vd] = !0, t(this._server)), e) } function QA(t, e) { let n = this._server, r = this._error, i; if (this._error = null, t.length === 0) this._error = r, i = t(), i && !i[J6] && typeof i.then == "function" ? i.then(() => process.nextTick(e), l => process.nextTick(e, l)) : process.nextTick(e); else if (t.length === 1) i = t(r), i && !i[J6] && typeof i.then == "function" ? i.then(() => process.nextTick(e), l => process.nextTick(e, l)) : process.nextTick(e); else if (this._timeout === 0) { let l = s => { this._error = s, e(this._error) }; t.length === 2 ? t(r, l) : t(r, n, l) } else une.call(this, t, r, n, e) } function une(t, e, n, r) { let i = t.name; qu("setting up ready timeout", i, this._timeout); let l = setTimeout(() => { qu("timed out", i), l = null; let a = new ine(i); a.fn = t, this._error = a, r(a) }, this._timeout); t.length === 2 ? t(e, s.bind(this)) : t(e, n, s.bind(this)); function s(a) { l && (clearTimeout(l), this._error = a, r(this._error)) } } function cne(t, e) { let n = this._server, r = t[this._isOnCloseHandlerKey]; if (t.length === 0 || t.length === 1) { let i; r ? i = t(n) : i = t(this._error), i && typeof i.then == "function" ? (qu("resolving close/onClose promise"), i.then(() => process.nextTick(e), l => process.nextTick(e, l))) : process.nextTick(e) } else t.length === 2 ? t(r ? n : this._error, e) : r ? t(n, e) : t(this._error, n, e) } function pne(t, e) { return n.bind(e); function n(r, i) { let l; t.length === 0 ? (l = t(), l && l.then ? l.then(function () { process.nextTick(i) }, i) : process.nextTick(i)) : t.length === 1 ? (l = t(this), l && l.then ? l.then(function () { process.nextTick(i) }, i) : process.nextTick(i)) : t(this, i) } } function qd(t, e) { return n.bind(e); function n(r, i) { let l; t ? t.length === 0 ? (l = t(), l && l.then ? l.then(function () { process.nextTick(i, r) }, i) : process.nextTick(i, r)) : t.length === 1 ? (l = t(r), l && l.then ? l.then(function () { process.nextTick(i) }, i) : process.nextTick(i)) : t.length === 2 ? t(r, i) : t(r, this, i) : process.nextTick(i) } } Gd.exports = fi; Gd.exports.express = function (t) { return fi(t, { expose: { use: "load" } }) } }); var di = k((ZOe, eO) => { "use strict"; var fne = { kAvvioBoot: Symbol("fastify.avvioBoot"), kChildren: Symbol("fastify.children"), kServerBindings: Symbol("fastify.serverBindings"), kBodyLimit: Symbol("fastify.bodyLimit"), kRoutePrefix: Symbol("fastify.routePrefix"), kLogLevel: Symbol("fastify.logLevel"), kLogSerializers: Symbol("fastify.logSerializers"), kHooks: Symbol("fastify.hooks"), kContentTypeParser: Symbol("fastify.contentTypeParser"), kState: Symbol("fastify.state"), kOptions: Symbol("fastify.options"), kDisableRequestLogging: Symbol("fastify.disableRequestLogging"), kPluginNameChain: Symbol("fastify.pluginNameChain"), kRouteContext: Symbol("fastify.context"), kPublicRouteContext: Symbol("fastify.routeOptions"), kGenReqId: Symbol("fastify.genReqId"), kSchemaController: Symbol("fastify.schemaController"), kSchemaHeaders: Symbol("headers-schema"), kSchemaParams: Symbol("params-schema"), kSchemaQuerystring: Symbol("querystring-schema"), kSchemaBody: Symbol("body-schema"), kSchemaResponse: Symbol("response-schema"), kSchemaErrorFormatter: Symbol("fastify.schemaErrorFormatter"), kSchemaVisited: Symbol("fastify.schemas.visited"), kRequest: Symbol("fastify.Request"), kRequestPayloadStream: Symbol("fastify.RequestPayloadStream"), kRequestAcceptVersion: Symbol("fastify.RequestAcceptVersion"), kRequestCacheValidateFns: Symbol("fastify.request.cache.validateFns"), kRequestOriginalUrl: Symbol("fastify.request.originalUrl"), kFourOhFour: Symbol("fastify.404"), kCanSetNotFoundHandler: Symbol("fastify.canSetNotFoundHandler"), kFourOhFourLevelInstance: Symbol("fastify.404LogLevelInstance"), kFourOhFourContext: Symbol("fastify.404ContextKey"), kDefaultJsonParse: Symbol("fastify.defaultJSONParse"), kReply: Symbol("fastify.Reply"), kReplySerializer: Symbol("fastify.reply.serializer"), kReplyIsError: Symbol("fastify.reply.isError"), kReplyHeaders: Symbol("fastify.reply.headers"), kReplyTrailers: Symbol("fastify.reply.trailers"), kReplyHasStatusCode: Symbol("fastify.reply.hasStatusCode"), kReplyHijacked: Symbol("fastify.reply.hijacked"), kReplyStartTime: Symbol("fastify.reply.startTime"), kReplyNextErrorHandler: Symbol("fastify.reply.nextErrorHandler"), kReplyEndTime: Symbol("fastify.reply.endTime"), kReplyErrorHandlerCalled: Symbol("fastify.reply.errorHandlerCalled"), kReplyIsRunningOnErrorHook: Symbol("fastify.reply.isRunningOnErrorHook"), kReplySerializerDefault: Symbol("fastify.replySerializerDefault"), kReplyCacheSerializeFns: Symbol("fastify.reply.cache.serializeFns"), kTestInternals: Symbol("fastify.testInternals"), kErrorHandler: Symbol("fastify.errorHandler"), kChildLoggerFactory: Symbol("fastify.childLoggerFactory"), kHasBeenDecorated: Symbol("fastify.hasBeenDecorated"), kKeepAliveConnections: Symbol("fastify.keepAliveConnections"), kRouteByFastify: Symbol("fastify.routeByFastify") }; eO.exports = fne }); var nO = k((eNe, K6) => { "use strict"; var { format: Jd } = require("node:util"); function dne(t) { return tO({ ...t, name: "DeprecationWarning" }) } function tO({ name: t, code: e, message: n, unlimited: r = !1 } = {}) { if (!t) throw new Error("Warning name must not be empty"); if (!e) throw new Error("Warning code must not be empty"); if (!n) throw new Error("Warning message must not be empty"); if (typeof r != "boolean") throw new Error("Warning opts.unlimited must be a boolean"); e = e.toUpperCase(); let i = { [t]: function (s, a, o) { l.emitted === !0 && l.unlimited !== !0 || (l.emitted = !0, process.emitWarning(l.format(s, a, o), l.name, l.code)) } }; r && (i = { [t]: function (s, a, o) { l.emitted = !0, process.emitWarning(l.format(s, a, o), l.name, l.code) } }); let l = i[t]; return l.emitted = !1, l.message = n, l.unlimited = r, l.code = e, l.format = function (s, a, o) { let u; return s && a && o ? u = Jd(n, s, a, o) : s && a ? u = Jd(n, s, a) : s ? u = Jd(n, s) : u = n, u }, l } var Kd = { createWarning: tO, createDeprecation: dne }; K6.exports = Kd; K6.exports.default = Kd; K6.exports.processWarning = Kd }); var Fa = k((tNe, iO) => { "use strict"; var { createDeprecation: ji, createWarning: rO } = nO(), hne = ji({ code: "FSTDEP005", message: 'You are accessing the deprecated "request.connection" property. Use "request.socket" instead.' }), mne = ji({ code: "FSTDEP006", message: "You are decorating Request/Reply with a reference type. This reference is shared amongst all requests. Use onRequest hook instead. Property: %s" }), yne = ji({ code: "FSTDEP007", message: 'You are trying to set a HEAD route using "exposeHeadRoute" route flag when a sibling route is already set. See documentation for more info.' }), gne = ji({ code: "FSTDEP008", message: 'You are using route constraints via the route { version: "..." } option, use { constraints: { version: "..." } } option instead.' }), vne = ji({ code: "FSTDEP009", message: 'You are using a custom route versioning strategy via the server { versioning: "..." } option, use { constraints: { version: "..." } } option instead.' }), _ne = ji({ code: "FSTDEP010", message: 'Modifying the "reply.sent" property is deprecated. Use the "reply.hijack()" method instead.' }), Ene = ji({ code: "FSTDEP011", message: 'Variadic listen method is deprecated. Please use ".listen(optionsObject)" instead. The variadic signature will be removed in `fastify@5`.' }), bne = ji({ code: "FSTDEP012", message: 'request.context property access is deprecated. Please use "request.routeOptions.config" or "request.routeOptions.schema" instead for accessing Route settings. The "request.context" will be removed in `fastify@5`.' }), wne = ji({ code: "FSTDEP013", message: 'Direct return of "trailers" function is deprecated. Please use "callback" or "async-await" for return value. The support of direct return will removed in `fastify@5`.' }), Sne = ji({ code: "FSTDEP014", message: "You are trying to set/access the default route. This property is deprecated. Please, use setNotFoundHandler if you want to custom a 404 handler or the wildcard (*) to match all routes." }), Tne = ji({ code: "FSTDEP015", message: 'You are accessing the deprecated "request.routeSchema" property. Use "request.routeOptions.schema" instead. Property "req.routeSchema" will be removed in `fastify@5`.' }), xne = ji({ code: "FSTDEP016", message: 'You are accessing the deprecated "request.routeConfig" property. Use "request.routeOptions.config" instead. Property "req.routeConfig" will be removed in `fastify@5`.' }), Ane = ji({ code: "FSTDEP017", message: 'You are accessing the deprecated "request.routerPath" property. Use "request.routeOptions.url" instead. Property "req.routerPath" will be removed in `fastify@5`.' }), One = ji({ code: "FSTDEP018", message: 'You are accessing the deprecated "request.routerMethod" property. Use "request.routeOptions.method" instead. Property "req.routerMethod" will be removed in `fastify@5`.' }), Nne = ji({ code: "FSTDEP019", message: 'reply.context property access is deprecated. Please use "request.routeOptions.config" or "request.routeOptions.schema" instead for accessing Route settings. The "reply.context" will be removed in `fastify@5`.' }), Cne = ji({ code: "FSTDEP020", message: 'You are using the deprecated "reply.getResponseTime()"" method. Use the "request.elapsedTime" property instead. Method "reply.getResponseTime()" will be removed in `fastify@5`.' }), Rne = rO({ name: "FastifyWarning", code: "FSTWRN001", message: "The %s schema for %s: %s is missing. This may indicate the schema is not well specified.", unlimited: !0 }), Ine = rO({ name: "FastifyWarning", code: "FSTWRN002", message: "The %s plugin being registered mixes async and callback styles, which will result in an error in `fastify@5`", unlimited: !0 }); iO.exports = { FSTDEP005: hne, FSTDEP006: mne, FSTDEP007: yne, FSTDEP008: gne, FSTDEP009: vne, FSTDEP010: _ne, FSTDEP011: Ene, FSTDEP012: bne, FSTDEP013: wne, FSTDEP014: Sne, FSTDEP015: Tne, FSTDEP016: xne, FSTDEP017: Ane, FSTDEP018: One, FSTDEP019: Nne, FSTDEP020: Cne, FSTWRN001: Rne, FSTWRN002: Ine } }); var lO = k((nNe, X6) => { "use strict"; var { format: kne } = require("node:util"); function Dne() { return `${this.name} [${this.code}]: ${this.message}` } function Xd(t, e, n = 500, r = Error) { if (!t) throw new Error("Fastify error code must not be empty"); if (!e) throw new Error("Fastify error message must not be empty"); t = t.toUpperCase(), !n && (n = void 0); function i(...l) { if (!new.target) return new i(...l); this.code = t, this.name = "FastifyError", this.statusCode = n; let s = l.length - 1; s !== -1 && l[s] && typeof l[s] == "object" && "cause" in l[s] && (this.cause = l.pop().cause), this.message = kne(e, ...l), Error.stackTraceLimit !== 0 && Error.captureStackTrace(this, i) } return i.prototype = Object.create(r.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }), i.prototype[Symbol.toStringTag] = "Error", i.prototype.toString = Dne, i } X6.exports = Xd; X6.exports.default = Xd; X6.exports.createError = Xd }); var Ui = k((rNe, W6) => { "use strict"; var Ce = lO(), zu = { FST_ERR_NOT_FOUND: Ce("FST_ERR_NOT_FOUND", "Not Found", 404), FST_ERR_OPTIONS_NOT_OBJ: Ce("FST_ERR_OPTIONS_NOT_OBJ", "Options must be an object", 500, TypeError), FST_ERR_QSP_NOT_FN: Ce("FST_ERR_QSP_NOT_FN", "querystringParser option should be a function, instead got '%s'", 500, TypeError), FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN: Ce("FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN", "schemaController.bucket option should be a function, instead got '%s'", 500, TypeError), FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN: Ce("FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN", "schemaErrorFormatter option should be a non async function. Instead got '%s'.", 500, TypeError), FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ: Ce("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ", "ajv.customOptions option should be an object, instead got '%s'", 500, TypeError), FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR: Ce("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR", "ajv.plugins option should be an array, instead got '%s'", 500, TypeError), FST_ERR_VERSION_CONSTRAINT_NOT_STR: Ce("FST_ERR_VERSION_CONSTRAINT_NOT_STR", "Version constraint should be a string.", 500, TypeError), FST_ERR_VALIDATION: Ce("FST_ERR_VALIDATION", "%s", 400), FST_ERR_LISTEN_OPTIONS_INVALID: Ce("FST_ERR_LISTEN_OPTIONS_INVALID", "Invalid listen options: '%s'", 500, TypeError), FST_ERR_CTP_ALREADY_PRESENT: Ce("FST_ERR_CTP_ALREADY_PRESENT", "Content type parser '%s' already present."), FST_ERR_CTP_INVALID_TYPE: Ce("FST_ERR_CTP_INVALID_TYPE", "The content type should be a string or a RegExp", 500, TypeError), FST_ERR_CTP_EMPTY_TYPE: Ce("FST_ERR_CTP_EMPTY_TYPE", "The content type cannot be an empty string", 500, TypeError), FST_ERR_CTP_INVALID_HANDLER: Ce("FST_ERR_CTP_INVALID_HANDLER", "The content type handler should be a function", 500, TypeError), FST_ERR_CTP_INVALID_PARSE_TYPE: Ce("FST_ERR_CTP_INVALID_PARSE_TYPE", "The body parser can only parse your data as 'string' or 'buffer', you asked '%s' which is not supported.", 500, TypeError), FST_ERR_CTP_BODY_TOO_LARGE: Ce("FST_ERR_CTP_BODY_TOO_LARGE", "Request body is too large", 413, RangeError), FST_ERR_CTP_INVALID_MEDIA_TYPE: Ce("FST_ERR_CTP_INVALID_MEDIA_TYPE", "Unsupported Media Type: %s", 415), FST_ERR_CTP_INVALID_CONTENT_LENGTH: Ce("FST_ERR_CTP_INVALID_CONTENT_LENGTH", "Request body size did not match Content-Length", 400, RangeError), FST_ERR_CTP_EMPTY_JSON_BODY: Ce("FST_ERR_CTP_EMPTY_JSON_BODY", "Body cannot be empty when content-type is set to 'application/json'", 400), FST_ERR_CTP_INSTANCE_ALREADY_STARTED: Ce("FST_ERR_CTP_INSTANCE_ALREADY_STARTED", 'Cannot call "%s" when fastify instance is already started!', 400), FST_ERR_DEC_ALREADY_PRESENT: Ce("FST_ERR_DEC_ALREADY_PRESENT", "The decorator '%s' has already been added!"), FST_ERR_DEC_DEPENDENCY_INVALID_TYPE: Ce("FST_ERR_DEC_DEPENDENCY_INVALID_TYPE", "The dependencies of decorator '%s' must be of type Array.", 500, TypeError), FST_ERR_DEC_MISSING_DEPENDENCY: Ce("FST_ERR_DEC_MISSING_DEPENDENCY", "The decorator is missing dependency '%s'."), FST_ERR_DEC_AFTER_START: Ce("FST_ERR_DEC_AFTER_START", "The decorator '%s' has been added after start!"), FST_ERR_HOOK_INVALID_TYPE: Ce("FST_ERR_HOOK_INVALID_TYPE", "The hook name must be a string", 500, TypeError), FST_ERR_HOOK_INVALID_HANDLER: Ce("FST_ERR_HOOK_INVALID_HANDLER", "%s hook should be a function, instead got %s", 500, TypeError), FST_ERR_HOOK_INVALID_ASYNC_HANDLER: Ce("FST_ERR_HOOK_INVALID_ASYNC_HANDLER", "Async function has too many arguments. Async hooks should not use the 'done' argument.", 500, TypeError), FST_ERR_HOOK_NOT_SUPPORTED: Ce("FST_ERR_HOOK_NOT_SUPPORTED", "%s hook not supported!", 500, TypeError), FST_ERR_MISSING_MIDDLEWARE: Ce("FST_ERR_MISSING_MIDDLEWARE", "You must register a plugin for handling middlewares, visit fastify.dev/docs/latest/Reference/Middleware/ for more info.", 500), FST_ERR_HOOK_TIMEOUT: Ce("FST_ERR_HOOK_TIMEOUT", "A callback for '%s' hook timed out. You may have forgotten to call 'done' function or to resolve a Promise"), FST_ERR_LOG_INVALID_DESTINATION: Ce("FST_ERR_LOG_INVALID_DESTINATION", "Cannot specify both logger.stream and logger.file options"), FST_ERR_LOG_INVALID_LOGGER: Ce("FST_ERR_LOG_INVALID_LOGGER", "Invalid logger object provided. The logger instance should have these functions(s): '%s'.", 500, TypeError), FST_ERR_REP_INVALID_PAYLOAD_TYPE: Ce("FST_ERR_REP_INVALID_PAYLOAD_TYPE", "Attempted to send payload of invalid type '%s'. Expected a string or Buffer.", 500, TypeError), FST_ERR_REP_RESPONSE_BODY_CONSUMED: Ce("FST_ERR_REP_RESPONSE_BODY_CONSUMED", "Response.body is already consumed."), FST_ERR_REP_ALREADY_SENT: Ce("FST_ERR_REP_ALREADY_SENT", 'Reply was already sent, did you forget to "return reply" in "%s" (%s)?'), FST_ERR_REP_SENT_VALUE: Ce("FST_ERR_REP_SENT_VALUE", "The only possible value for reply.sent is true.", 500, TypeError), FST_ERR_SEND_INSIDE_ONERR: Ce("FST_ERR_SEND_INSIDE_ONERR", "You cannot use `send` inside the `onError` hook"), FST_ERR_SEND_UNDEFINED_ERR: Ce("FST_ERR_SEND_UNDEFINED_ERR", "Undefined error has occurred"), FST_ERR_BAD_STATUS_CODE: Ce("FST_ERR_BAD_STATUS_CODE", "Called reply with an invalid status code: %s"), FST_ERR_BAD_TRAILER_NAME: Ce("FST_ERR_BAD_TRAILER_NAME", "Called reply.trailer with an invalid header name: %s"), FST_ERR_BAD_TRAILER_VALUE: Ce("FST_ERR_BAD_TRAILER_VALUE", "Called reply.trailer('%s', fn) with an invalid type: %s. Expected a function."), FST_ERR_FAILED_ERROR_SERIALIZATION: Ce("FST_ERR_FAILED_ERROR_SERIALIZATION", "Failed to serialize an error. Error: %s. Original error: %s"), FST_ERR_MISSING_SERIALIZATION_FN: Ce("FST_ERR_MISSING_SERIALIZATION_FN", 'Missing serialization function. Key "%s"'), FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN: Ce("FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN", 'Missing serialization function. Key "%s:%s"'), FST_ERR_REQ_INVALID_VALIDATION_INVOCATION: Ce("FST_ERR_REQ_INVALID_VALIDATION_INVOCATION", 'Invalid validation invocation. Missing validation function for HTTP part "%s" nor schema provided.'), FST_ERR_SCH_MISSING_ID: Ce("FST_ERR_SCH_MISSING_ID", "Missing schema $id property"), FST_ERR_SCH_ALREADY_PRESENT: Ce("FST_ERR_SCH_ALREADY_PRESENT", "Schema with id '%s' already declared!"), FST_ERR_SCH_CONTENT_MISSING_SCHEMA: Ce("FST_ERR_SCH_CONTENT_MISSING_SCHEMA", "Schema is missing for the content type '%s'"), FST_ERR_SCH_DUPLICATE: Ce("FST_ERR_SCH_DUPLICATE", "Schema with '%s' already present!"), FST_ERR_SCH_VALIDATION_BUILD: Ce("FST_ERR_SCH_VALIDATION_BUILD", "Failed building the validation schema for %s: %s, due to error %s"), FST_ERR_SCH_SERIALIZATION_BUILD: Ce("FST_ERR_SCH_SERIALIZATION_BUILD", "Failed building the serialization schema for %s: %s, due to error %s"), FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX: Ce("FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX", 'response schemas should be nested under a valid status code, e.g { 2xx: { type: "object" } }'), FST_ERR_HTTP2_INVALID_VERSION: Ce("FST_ERR_HTTP2_INVALID_VERSION", "HTTP2 is available only from node >= 8.8.1"), FST_ERR_INIT_OPTS_INVALID: Ce("FST_ERR_INIT_OPTS_INVALID", "Invalid initialization options: '%s'"), FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE: Ce("FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE", "Cannot set forceCloseConnections to 'idle' as your HTTP server does not support closeIdleConnections method"), FST_ERR_DUPLICATED_ROUTE: Ce("FST_ERR_DUPLICATED_ROUTE", "Method '%s' already declared for route '%s'"), FST_ERR_BAD_URL: Ce("FST_ERR_BAD_URL", "'%s' is not a valid url component", 400, URIError), FST_ERR_ASYNC_CONSTRAINT: Ce("FST_ERR_ASYNC_CONSTRAINT", "Unexpected error from async constraint", 500), FST_ERR_DEFAULT_ROUTE_INVALID_TYPE: Ce("FST_ERR_DEFAULT_ROUTE_INVALID_TYPE", "The defaultRoute type should be a function", 500, TypeError), FST_ERR_INVALID_URL: Ce("FST_ERR_INVALID_URL", "URL must be a string. Received '%s'", 400, TypeError), FST_ERR_ROUTE_OPTIONS_NOT_OBJ: Ce("FST_ERR_ROUTE_OPTIONS_NOT_OBJ", 'Options for "%s:%s" route must be an object', 500, TypeError), FST_ERR_ROUTE_DUPLICATED_HANDLER: Ce("FST_ERR_ROUTE_DUPLICATED_HANDLER", 'Duplicate handler for "%s:%s" route is not allowed!', 500), FST_ERR_ROUTE_HANDLER_NOT_FN: Ce("FST_ERR_ROUTE_HANDLER_NOT_FN", "Error Handler for %s:%s route, if defined, must be a function", 500, TypeError), FST_ERR_ROUTE_MISSING_HANDLER: Ce("FST_ERR_ROUTE_MISSING_HANDLER", 'Missing handler function for "%s:%s" route.', 500), FST_ERR_ROUTE_METHOD_INVALID: Ce("FST_ERR_ROUTE_METHOD_INVALID", "Provided method is invalid!", 500, TypeError), FST_ERR_ROUTE_METHOD_NOT_SUPPORTED: Ce("FST_ERR_ROUTE_METHOD_NOT_SUPPORTED", "%s method is not supported.", 500), FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED: Ce("FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED", "Body validation schema for %s:%s route is not supported!", 500), FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT: Ce("FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT", "'bodyLimit' option must be an integer > 0. Got '%s'", 500, TypeError), FST_ERR_ROUTE_REWRITE_NOT_STR: Ce("FST_ERR_ROUTE_REWRITE_NOT_STR", 'Rewrite url for "%s" needs to be of type "string" but received "%s"', 500, TypeError), FST_ERR_REOPENED_CLOSE_SERVER: Ce("FST_ERR_REOPENED_CLOSE_SERVER", "Fastify has already been closed and cannot be reopened"), FST_ERR_REOPENED_SERVER: Ce("FST_ERR_REOPENED_SERVER", "Fastify is already listening"), FST_ERR_INSTANCE_ALREADY_LISTENING: Ce("FST_ERR_INSTANCE_ALREADY_LISTENING", "Fastify instance is already listening. %s"), FST_ERR_PLUGIN_VERSION_MISMATCH: Ce("FST_ERR_PLUGIN_VERSION_MISMATCH", "fastify-plugin: %s - expected '%s' fastify version, '%s' is installed"), FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE: Ce("FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE", "The decorator '%s'%s is not present in %s"), FST_ERR_PLUGIN_CALLBACK_NOT_FN: Ce("FST_ERR_PLUGIN_CALLBACK_NOT_FN", "fastify-plugin: %s", 500, TypeError), FST_ERR_PLUGIN_NOT_VALID: Ce("FST_ERR_PLUGIN_NOT_VALID", "fastify-plugin: %s"), FST_ERR_ROOT_PLG_BOOTED: Ce("FST_ERR_ROOT_PLG_BOOTED", "fastify-plugin: %s"), FST_ERR_PARENT_PLUGIN_BOOTED: Ce("FST_ERR_PARENT_PLUGIN_BOOTED", "fastify-plugin: %s"), FST_ERR_PLUGIN_TIMEOUT: Ce("FST_ERR_PLUGIN_TIMEOUT", "fastify-plugin: %s") }; function Pne(t, e) { return e.cause = t, e } W6.exports = zu; W6.exports.appendStackTrace = Pne; W6.exports.AVVIO_ERRORS_MAP = { AVV_ERR_CALLBACK_NOT_FN: zu.FST_ERR_PLUGIN_CALLBACK_NOT_FN, AVV_ERR_PLUGIN_NOT_VALID: zu.FST_ERR_PLUGIN_NOT_VALID, AVV_ERR_ROOT_PLG_BOOTED: zu.FST_ERR_ROOT_PLG_BOOTED, AVV_ERR_PARENT_PLG_LOADED: zu.FST_ERR_PARENT_PLUGIN_BOOTED, AVV_ERR_READY_TIMEOUT: zu.FST_ERR_PLUGIN_TIMEOUT } }); var m2 = k((iNe, hO) => { "use strict"; var Lne = ["onRoute", "onRegister", "onReady", "onListen", "preClose", "onClose"], uO = ["onTimeout", "onRequest", "preParsing", "preValidation", "preSerialization", "preHandler", "onSend", "onResponse", "onError", "onRequestAbort"], Fne = uO.concat(Lne), { FST_ERR_HOOK_INVALID_TYPE: jne, FST_ERR_HOOK_INVALID_HANDLER: Une, FST_ERR_SEND_UNDEFINED_ERR: Y6, FST_ERR_HOOK_TIMEOUT: Mne, FST_ERR_HOOK_NOT_SUPPORTED: $ne, AVVIO_ERRORS_MAP: sO, appendStackTrace: aO } = Ui(), { kChildren: i4, kHooks: cO, kRequestPayloadStream: oO } = di(); function l4() { this.onRequest = [], this.preParsing = [], this.preValidation = [], this.preSerialization = [], this.preHandler = [], this.onResponse = [], this.onSend = [], this.onError = [], this.onRoute = [], this.onRegister = [], this.onReady = [], this.onListen = [], this.onTimeout = [], this.onRequestAbort = [], this.preClose = [] } l4.prototype = Object.create(null); l4.prototype.validate = function (t, e) { if (typeof t != "string") throw new jne; if (Array.isArray(this[t]) === !1) throw new $ne(t); if (typeof e != "function") throw new Une(t, Object.prototype.toString.call(e)) }; l4.prototype.add = function (t, e) { this.validate(t, e), this[t].push(e) }; function Bne(t) { let e = new l4; return e.onRequest = t.onRequest.slice(), e.preParsing = t.preParsing.slice(), e.preValidation = t.preValidation.slice(), e.preSerialization = t.preSerialization.slice(), e.preHandler = t.preHandler.slice(), e.onSend = t.onSend.slice(), e.onResponse = t.onResponse.slice(), e.onError = t.onError.slice(), e.onRoute = t.onRoute.slice(), e.onRegister = t.onRegister.slice(), e.onTimeout = t.onTimeout.slice(), e.onRequestAbort = t.onRequestAbort.slice(), e.onReady = [], e.onListen = [], e.preClose = [], e } function pO(t, e, n, r) { let i = n[cO][t], l = 0, s = 0; o(); function a(c) { if (c) { c.code === "AVV_ERR_READY_TIMEOUT" ? c = aO(c, new Mne(t)) : c = sO[c.code] != null ? aO(c, new sO[c.code](c.message)) : c, r(c); return } r() } function o(c) { if (c) { a(c); return } if (l === i.length && s === n[i4].length) { l === 0 && s === 0 ? a() : e(function (m, d) { a(m), d(m) }); return } if (l === i.length && s < n[i4].length) { let f = n[i4][s++]; pO(t, e, f, o); return } e(u(i[l++], n)), o() } function u(c, f) { return function (m, d) { if (m) { d(m); return } if (c.length === 1) { try { c.call(f, d) } catch (y) { d(y) } return } try { let y = c.call(f); if (y && typeof y.then == "function") { y.then(d, d); return } } catch (y) { m = y } d(m) } } } function fO(t) { let e = t[cO].onListen, n = e.length, r = 0, i = 0; l(); function l(a) { if (a && t.log.error(a), r === n) { for (; i < t[i4].length;) { let o = t[i4][i++]; fO(o) } return } s(e[r++], t, l) } async function s(a, o, u) { if (a.length === 1) { try { a.call(o, u) } catch (c) { u(c) } return } try { let c = a.call(o); if (c && typeof c.then == "function") { c.then(u, u); return } u() } catch (c) { u(c) } } } function Gu(t) { return function (n, r, i, l) { let s = 0; function a(c) { if (c || s === n.length) { l(c, r, i); return } let f; try { f = t(n[s++], r, i, a) } catch (m) { l(m, r, i); return } f && typeof f.then == "function" && f.then(o, u) } function o() { a() } function u(c) { c || (c = new Y6), l(c, r, i) } a() } } function Hne(t, e, n, r) { return t(e, n, r) } var Vne = Gu(Hne), qne = Gu(s4), zne = Gu(s4), Gne = Gu(s4), Jne = Gu(s4); function dO(t, e, n, r, i) { let l = 0; function s(u, c) { if (u) { i(u, e, n, r); return } if (c !== void 0 && (r = c), l === t.length) { i(null, e, n, r); return } let f; try { f = t[l++](e, n, r, s) } catch (m) { i(m, e, n); return } f && typeof f.then == "function" && f.then(a, o) } function a(u) { s(null, u) } function o(u) { u || (u = new Y6), i(u, e, n, r) } s() } var Kne = dO; function Xne(t, e, n, r) { let i = 0; function l(o, u) { if (n.sent) return; if (u !== void 0 && (e[oO] = u), o || i === t.length) { r(o, e, n); return } let c; try { c = t[i++](e, n, e[oO], l) } catch (f) { r(f, e, n); return } c && typeof c.then == "function" && c.then(s, a) } function s(o) { l(null, o) } function a(o) { o || (o = new Y6), r(o, e, n) } l() } function Wne(t, e, n) { let r = 0; function i(a) { if (a || r === t.length) { n(a, e); return } let o; try { o = t[r++](e, i) } catch (u) { n(u, e); return } o && typeof o.then == "function" && o.then(l, s) } function l() { i() } function s(a) { a || (a = new Y6), n(a, e) } i() } function s4(t, e, n, r) { if (n.sent !== !0) return t(e, n, r) } hO.exports = { Hooks: l4, buildHooks: Bne, hookRunnerGenerator: Gu, preParsingHookRunner: Xne, onResponseHookRunner: Vne, onSendHookRunner: dO, preSerializationHookRunner: Kne, onRequestAbortHookRunner: Wne, hookIterator: s4, hookRunnerApplication: pO, onListenHookRunner: fO, preHandlerHookRunner: zne, preValidationHookRunner: qne, onRequestHookRunner: Jne, onTimeoutHookRunner: Gne, lifecycleHooks: uO, supportedHooks: Fne } }); var TO = k((lNe, Yd) => { "use strict"; var Yne = require("node:http"), Qne = require("node:https"), Zne = require("node:dns"), { FSTDEP011: mO } = Fa(), { kState: Mi, kOptions: ere, kServerBindings: tre } = di(), { onListenHookRunner: Q6 } = m2(), { FST_ERR_HTTP2_INVALID_VERSION: nre, FST_ERR_REOPENED_CLOSE_SERVER: vO, FST_ERR_REOPENED_SERVER: _O, FST_ERR_LISTEN_OPTIONS_INVALID: rre } = Ui(); Yd.exports.createServer = ire; Yd.exports.compileValidateHTTPVersion = sre; function EO(t) { return `Server listening at ${t}` } function ire(t, e) { let n = wO(t, e); function r(i, ...l) { let s = l.slice(-1).pop(), a = Object.prototype.toString.call(arguments[0]); if (arguments.length === 0) i = Wd([]); else if (arguments.length > 0 && a !== "[object Object]" && a !== "[object Function]") mO(), i = Wd(Array.from(arguments)), s = i.cb; else if (l.length > 1) { mO(); let u = i.path ? [i.path] : [i.port ?? 0, i.host ?? "localhost"]; Object.assign(i, Wd([...u, ...l])) } else i.cb = s; if (i.signal) { if (typeof i.signal.on != "function" && typeof i.signal.addEventListener != "function") throw new rre("Invalid options.signal"); if (i.signal.aborted) this.close(); else { let u = () => { this.close() }; i.signal.addEventListener("abort", u, { once: !0 }) } } let o; if (i.path == null ? o = i.host ?? "localhost" : o = i.host, Object.prototype.hasOwnProperty.call(i, "host") === !1 && (i.host = o), o === "localhost" ? i.cb = (u, c) => { if (u) { s(u, c); return } yO.call(this, n, e, t, i, () => { this[Mi].listening = !0, s(null, c), Q6(this) }) } : i.cb = (u, c) => { if (u) { s(u, c); return } this[Mi].listening = !0, s(null, c), Q6(this) }, s === void 0) return lre.call(this, n, i).then(c => new Promise((f, m) => { o === "localhost" ? yO.call(this, n, e, t, i, () => { this[Mi].listening = !0, f(c), Q6(this) }) : (f(c), Q6(this)) })); this.ready(bO.call(this, n, i)) } return { server: n, listen: r } } function yO(t, e, n, r, i) { this[Mi].listening = !1, Zne.lookup(r.host, { all: !0 }, (l, s) => { if (l) { i(); return } let a = t.listening && n.serverFactory, o = 0, u = 0; if (!a) { let f = t.address(); for (let m of s) if (m.address !== f.address) { o++; let d = Object.assign({}, r, { host: m.address, port: f.port, cb: S => { u++, S || this[tre].push(y), u === o && i() } }), y = wO(n, e), _ = () => { y.close(() => { }), n.forceCloseConnections === "idle" ? y.closeIdleConnections() : typeof y.closeAllConnections == "function" && n.forceCloseConnections && y.closeAllConnections() }; y.on("upgrade", t.emit.bind(t, "upgrade")), t.on("unref", _), t.on("close", _), t.on("error", _), this[Mi].listening = !1, bO.call(this, y, d)() } } if (o === 0) { i(); return } let c = t.unref; t.unref = function () { c.call(t), t.emit("unref") } }) } function bO(t, e) { let n = r => { if (t.removeListener("error", n), r) this[Mi].listening = !1, e.cb(r, null); else { let i = SO.call(this, t, e.listenTextResolver || EO); e.cb(null, i) } }; return r => { if (r != null) return e.cb(r); if (this[Mi].listening && this[Mi].closing) return e.cb(new vO, null); if (this[Mi].listening) return e.cb(new _O, null); t.once("error", n), this[Mi].closing || (t.listen(e, n), this[Mi].listening = !0) } } function lre(t, e) { return this[Mi].listening && this[Mi].closing ? Promise.reject(new vO) : this[Mi].listening ? Promise.reject(new _O) : this.ready().then(() => { let n, r = new Promise((l, s) => { n = a => { this[Mi].listening = !1, s(a) }, t.once("error", n) }), i = new Promise((l, s) => { t.listen(e, () => { t.removeListener("error", n), l(SO.call(this, t, e.listenTextResolver || EO)) }), this[Mi].listening = !0 }); return Promise.race([r, i]) }) } function sre(t) { let e = !1, n = new Map; return t.serverFactory && (e = !0), t.http2 ? (n.set("2.0", !0), t.https && t.https.allowHTTP1 === !0 && (n.set("1.1", !0), n.set("1.0", !0))) : (n.set("1.1", !0), n.set("1.0", !0)), function (i) { return e || n.has(i) } } function wO(t, e) { let n = null, r = t.https === !0 ? {} : t.https; return t.serverFactory ? n = t.serverFactory(e, t) : t.http2 ? (typeof r == "object" ? n = gO().createSecureServer(r, e) : n = gO().createServer(e), n.on("session", ore(t.http2SessionTimeout))) : (r ? n = Qne.createServer(r, e) : n = Yne.createServer(t.http, e), n.keepAliveTimeout = t.keepAliveTimeout, n.requestTimeout = t.requestTimeout, t.maxRequestsPerSocket > 0 && (n.maxRequestsPerSocket = t.maxRequestsPerSocket)), t.serverFactory || n.setTimeout(t.connectionTimeout), n } function Wd(t) { if (t.length === 0) return { port: 0, host: "localhost" }; let n = { cb: typeof t[t.length - 1] == "function" ? t.pop() : void 0 }, r = t[0], i = t.length, l = t[i - 1]; return typeof r == "string" && isNaN(r) ? (n.path = r, n.backlog = i > 1 ? l : void 0) : (n.port = i >= 1 && Number.isInteger(r) ? r : are(r), n.host = i >= 2 && t[1] ? t[1] : "localhost", n.backlog = i >= 3 ? t[2] : void 0), n } function are(t) { let e = Number(t); return e >= 0 && !Number.isNaN(e) && Number.isInteger(e) ? e : 0 } function SO(t, e) { let n = t.address(), r = typeof n == "string"; r || (n.address.indexOf(":") === -1 ? n = n.address + ":" + n.port : n = "[" + n.address + "]:" + n.port), n = (r ? "" : "http" + (this[ere].https ? "s" : "") + "://") + n; let i = e(n); return this.log.info(i), n } function gO() { try { return require("node:http2") } catch { throw new nre } } function ore(t) { return function (e) { e.setTimeout(t, ure) } } function ure() { this.close() } }); var th = k((sNe, AO) => { "use strict"; var { kSchemaHeaders: t8, kSchemaParams: Qd, kSchemaQuerystring: Zd, kSchemaBody: eh, kSchemaResponse: xO } = di(), cre = /^[1-5]{1}[0-9]{2}$|^[1-5]xx$|^default$/, { FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX: pre } = Ui(), { FSTWRN001: Z6 } = Fa(); function fre(t, e) { if (!t.schema || !t.schema.response) return; let { method: n, url: r } = t.config || {}; t[xO] = Object.keys(t.schema.response).reduce(function (i, l) { let s = t.schema.response[l]; if (l = l.toLowerCase(), !cre.exec(l)) throw new pre; if (s.content) { let a = {}; for (let o of Object.keys(s.content)) { let u = s.content[o].schema; a[o] = e({ schema: u, url: r, method: n, httpStatus: l, contentType: o }) } i[l] = a } else i[l] = e({ schema: s, url: r, method: n, httpStatus: l }); return i }, {}) } function dre(t, e, n) { let { schema: r } = t; if (!r) return; let { method: i, url: l } = t.config || {}, s = r.headers; if (s && (n || Object.getPrototypeOf(s) !== Object.prototype)) t[t8] = e({ schema: s, method: i, url: l, httpPart: "headers" }); else if (s) { let a = {}; Object.keys(s).forEach(o => { a[o] = s[o] }), a.required instanceof Array && (a.required = a.required.map(o => o.toLowerCase())), s.properties && (a.properties = {}, Object.keys(s.properties).forEach(o => { a.properties[o.toLowerCase()] = s.properties[o] })), t[t8] = e({ schema: a, method: i, url: l, httpPart: "headers" }) } else Object.prototype.hasOwnProperty.call(r, "headers") && Z6("headers", i, l); r.body ? t[eh] = e({ schema: r.body, method: i, url: l, httpPart: "body" }) : Object.prototype.hasOwnProperty.call(r, "body") && Z6("body", i, l), r.querystring ? t[Zd] = e({ schema: r.querystring, method: i, url: l, httpPart: "querystring" }) : Object.prototype.hasOwnProperty.call(r, "querystring") && Z6("querystring", i, l), r.params ? t[Qd] = e({ schema: r.params, method: i, url: l, httpPart: "params" }) : Object.prototype.hasOwnProperty.call(r, "params") && Z6("params", i, l) } function e8(t, e, n) { let r = e[n] === void 0, i = t && t(r ? null : e[n]); if (i?.then) return i.then(s => l(s)).catch(s => s); return l(i); function l(s) { return s === !1 ? t.errors : s && s.error ? s.error : (s && s.value && (e[n] = s.value), !1) } } function n8(t, e, n) { let r = n === void 0; if (r || !n.skipParams) { let l = e8(t[Qd], e, "params"); if (l) return typeof l.then != "function" ? y2(l, "params", t.schemaErrorFormatter) : hre(l, t, e) } if (r || !n.skipBody) { let l = e8(t[eh], e, "body"); if (l) return typeof l.then != "function" ? y2(l, "body", t.schemaErrorFormatter) : mre(l, t, e) } if (r || !n.skipQuery) { let l = e8(t[Zd], e, "query"); if (l) return typeof l.then != "function" ? y2(l, "querystring", t.schemaErrorFormatter) : yre(l, t, e) } let i = e8(t[t8], e, "headers"); return i ? typeof i.then != "function" ? y2(i, "headers", t.schemaErrorFormatter) : gre(i, t, e) : !1 } function hre(t, e, n) { return t.then(r => r ? y2(r, "params", e.schemaErrorFormatter) : n8(e, n, { skipParams: !0 })) } function mre(t, e, n) { return t.then(r => r ? y2(r, "body", e.schemaErrorFormatter) : n8(e, n, { skipParams: !0, skipBody: !0 })) } function yre(t, e, n) { return t.then(r => r ? y2(r, "querystring", e.schemaErrorFormatter) : n8(e, n, { skipParams: !0, skipBody: !0, skipQuery: !0 })) } function gre(t, e, n) { return t.then(r => r ? y2(r, "headers", e.schemaErrorFormatter) : !1) } function y2(t, e, n) { if (t instanceof Error) return t.statusCode = t.statusCode || 400, t.code = t.code || "FST_ERR_VALIDATION", t.validationContext = t.validationContext || e, t; let r = n(t, e); return r.statusCode = r.statusCode || 400, r.code = r.code || "FST_ERR_VALIDATION", r.validation = t, r.validationContext = e, r } AO.exports = { symbols: { bodySchema: eh, querystringSchema: Zd, responseSchema: xO, paramsSchema: Qd, headersSchema: t8 }, compileSchemasForValidation: dre, compileSchemasForSerialization: fre, validate: n8 } }); var nh = k((aNe, NO) => { "use strict"; var { kReplyIsError: OO, kReplyHijacked: vre } = di(); function _re(t, e) { t.then(function (n) { if (e[vre] !== !0 && (n !== void 0 || e.sent === !1 && e.raw.headersSent === !1 && e.request.raw.aborted === !1)) try { e.send(n) } catch (r) { e[OO] = !0, e.send(r) } }, function (n) { if (e.sent === !0) { e.log.error({ err: n }, "Promise errored, but reply.sent = true was set"); return } e[OO] = !0; try { e.send(n) } catch (r) { e.send(r) } }) } NO.exports = _re }); var sh = k((oNe, lh) => { "use strict"; var { validate: Ere } = th(), { preValidationHookRunner: bre, preHandlerHookRunner: wre } = m2(), Sre = nh(), { kReplyIsError: r8, kRouteContext: v2 } = di(); function Tre(t, e, n) { if (n.sent === !0) return; if (t != null) { n[r8] = !0, n.send(t); return } let r = e.raw.method, i = e.headers, l = e[v2]; if (r === "GET" || r === "HEAD") { g2(e, n); return } let s = i["content-type"]; if (r === "POST" || r === "PUT" || r === "PATCH" || r === "TRACE" || r === "SEARCH") { s === void 0 ? i["transfer-encoding"] === void 0 && (i["content-length"] === "0" || i["content-length"] === void 0) ? g2(e, n) : l.contentTypeParser.run("", g2, e, n) : l.contentTypeParser.run(s, g2, e, n); return } if (r === "OPTIONS" || r === "DELETE") { s !== void 0 && (i["transfer-encoding"] !== void 0 || i["content-length"] !== void 0) ? l.contentTypeParser.run(s, g2, e, n) : g2(e, n); return } g2(e, n) } function g2(t, e) { try { t[v2].preValidation !== null ? bre(t[v2].preValidation, t, e, rh) : rh(null, t, e) } catch (n) { rh(n, t, e) } } function rh(t, e, n) { if (n.sent === !0) return; if (t != null) { n[r8] = !0, n.send(t); return } let r = Ere(n[v2], e); if (r && typeof r.then == "function" || !1) { let l = CO.bind(null, e, n); r.then(l, l) } else CO(e, n, r) } function CO(t, e, n) { if (n) { if (e[v2].attachValidation === !1) { e.send(n); return } e.request.validationError = n } t[v2].preHandler !== null ? wre(t[v2].preHandler, t, e, ih) : ih(null, t, e) } function ih(t, e, n) { if (n.sent) return; if (t != null) { n[r8] = !0, n.send(t); return } let r; try { r = e[v2].handler(e, n) } catch (i) { n[r8] = !0, n.send(i); return } r !== void 0 && (r !== null && typeof r.then == "function" ? Sre(r, n) : n.send(r)) } lh.exports = Tre; lh.exports[Symbol.for("internals")] = { handler: g2, preHandlerCallback: ih } }); var IO = k((uNe, RO) => { "use strict"; function Ju() { } var xre = { fatal: Ju, error: Ju, warn: Ju, info: Ju, debug: Ju, trace: Ju }; Object.defineProperty(RO, "exports", { get() { return Object.create(xre) } }) }); var oh = k((cNe, PO) => {
"use strict"; var a4 = t => t && typeof t.message == "string", ah = t => { if (!t) return; let e = t.cause; if (typeof e == "function") { let n = t.cause(); return a4(n) ? n : void 0 } else return a4(e) ? e : void 0 }, kO = (t, e) => {
if (!a4(t)) return ""; let n = t.stack || ""; if (e.has(t)) return n + `
causes have become circular...`; let r = ah(t); return r ? (e.add(t), n + `
caused by: `+ kO(r, e)) : n
}, Are = t => kO(t, new Set), DO = (t, e, n) => { if (!a4(t)) return ""; let r = n ? "" : t.message || ""; if (e.has(t)) return r + ": ..."; let i = ah(t); if (i) { e.add(t); let l = typeof t.cause == "function"; return r + (l ? "" : ": ") + DO(i, e, l) } else return r }, Ore = t => DO(t, new Set); PO.exports = { isErrorLike: a4, getErrorCause: ah, stackWithCauses: Are, messageWithCauses: Ore }
}); var uh = k((pNe, FO) => { "use strict"; var Nre = Symbol("circular-ref-tag"), i8 = Symbol("pino-raw-err-ref"), LO = Object.create({}, { type: { enumerable: !0, writable: !0, value: void 0 }, message: { enumerable: !0, writable: !0, value: void 0 }, stack: { enumerable: !0, writable: !0, value: void 0 }, aggregateErrors: { enumerable: !0, writable: !0, value: void 0 }, raw: { enumerable: !1, get: function () { return this[i8] }, set: function (t) { this[i8] = t } } }); Object.defineProperty(LO, i8, { writable: !0, value: {} }); FO.exports = { pinoErrProto: LO, pinoErrorSymbols: { seen: Nre, rawSymbol: i8 } } }); var MO = k((fNe, UO) => { "use strict"; UO.exports = ph; var { messageWithCauses: Cre, stackWithCauses: Rre, isErrorLike: jO } = oh(), { pinoErrProto: Ire, pinoErrorSymbols: kre } = uh(), { seen: ch } = kre, { toString: Dre } = Object.prototype; function ph(t) { if (!jO(t)) return t; t[ch] = void 0; let e = Object.create(Ire); e.type = Dre.call(t.constructor) === "[object Function]" ? t.constructor.name : t.name, e.message = Cre(t), e.stack = Rre(t), Array.isArray(t.errors) && (e.aggregateErrors = t.errors.map(n => ph(n))); for (let n in t) if (e[n] === void 0) { let r = t[n]; jO(r) ? n !== "cause" && !Object.prototype.hasOwnProperty.call(r, ch) && (e[n] = ph(r)) : e[n] = r } return delete t[ch], e.raw = t, e } }); var BO = k((dNe, $O) => { "use strict"; $O.exports = s8; var { isErrorLike: fh } = oh(), { pinoErrProto: Pre, pinoErrorSymbols: Lre } = uh(), { seen: l8 } = Lre, { toString: Fre } = Object.prototype; function s8(t) { if (!fh(t)) return t; t[l8] = void 0; let e = Object.create(Pre); e.type = Fre.call(t.constructor) === "[object Function]" ? t.constructor.name : t.name, e.message = t.message, e.stack = t.stack, Array.isArray(t.errors) && (e.aggregateErrors = t.errors.map(n => s8(n))), fh(t.cause) && !Object.prototype.hasOwnProperty.call(t.cause, l8) && (e.cause = s8(t.cause)); for (let n in t) if (e[n] === void 0) { let r = t[n]; fh(r) ? Object.prototype.hasOwnProperty.call(r, l8) || (e[n] = s8(r)) : e[n] = r } return delete t[l8], e.raw = t, e } }); var zO = k((hNe, qO) => { "use strict"; qO.exports = { mapHttpRequest: jre, reqSerializer: VO }; var dh = Symbol("pino-raw-req-ref"), HO = Object.create({}, { id: { enumerable: !0, writable: !0, value: "" }, method: { enumerable: !0, writable: !0, value: "" }, url: { enumerable: !0, writable: !0, value: "" }, query: { enumerable: !0, writable: !0, value: "" }, params: { enumerable: !0, writable: !0, value: "" }, headers: { enumerable: !0, writable: !0, value: {} }, remoteAddress: { enumerable: !0, writable: !0, value: "" }, remotePort: { enumerable: !0, writable: !0, value: "" }, raw: { enumerable: !1, get: function () { return this[dh] }, set: function (t) { this[dh] = t } } }); Object.defineProperty(HO, dh, { writable: !0, value: {} }); function VO(t) { let e = t.info || t.socket, n = Object.create(HO); if (n.id = typeof t.id == "function" ? t.id() : t.id || (t.info ? t.info.id : void 0), n.method = t.method, t.originalUrl) n.url = t.originalUrl; else { let r = t.path; n.url = typeof r == "string" ? r : t.url ? t.url.path || t.url : void 0 } return t.query && (n.query = t.query), t.params && (n.params = t.params), n.headers = t.headers, n.remoteAddress = e && e.remoteAddress, n.remotePort = e && e.remotePort, n.raw = t.raw || t, n } function jre(t) { return { req: VO(t) } } }); var XO = k((mNe, KO) => { "use strict"; KO.exports = { mapHttpResponse: Ure, resSerializer: JO }; var hh = Symbol("pino-raw-res-ref"), GO = Object.create({}, { statusCode: { enumerable: !0, writable: !0, value: 0 }, headers: { enumerable: !0, writable: !0, value: "" }, raw: { enumerable: !1, get: function () { return this[hh] }, set: function (t) { this[hh] = t } } }); Object.defineProperty(GO, hh, { writable: !0, value: {} }); function JO(t) { let e = Object.create(GO); return e.statusCode = t.headersSent ? t.statusCode : null, e.headers = t.getHeaders ? t.getHeaders() : t._headers, e.raw = t, e } function Ure(t) { return { res: JO(t) } } }); var yh = k((yNe, WO) => { "use strict"; var mh = MO(), Mre = BO(), a8 = zO(), o8 = XO(); WO.exports = { err: mh, errWithCause: Mre, mapHttpRequest: a8.mapHttpRequest, mapHttpResponse: o8.mapHttpResponse, req: a8.reqSerializer, res: o8.resSerializer, wrapErrorSerializer: function (e) { return e === mh ? e : function (r) { return e(mh(r)) } }, wrapRequestSerializer: function (e) { return e === a8.reqSerializer ? e : function (r) { return e(a8.reqSerializer(r)) } }, wrapResponseSerializer: function (e) { return e === o8.resSerializer ? e : function (r) { return e(o8.resSerializer(r)) } } } }); var gh = k((gNe, YO) => { "use strict"; function $re(t, e) { return e } YO.exports = function () { let e = Error.prepareStackTrace; Error.prepareStackTrace = $re; let n = new Error().stack; if (Error.prepareStackTrace = e, !Array.isArray(n)) return; let r = n.slice(2), i = []; for (let l of r) l && i.push(l.getFileName()); return i } }); var ZO = k((vNe, QO) => {
"use strict"; QO.exports = Bre; function Bre(t = {}) {
let { ERR_PATHS_MUST_BE_STRINGS: e = () => "fast-redact - Paths must be (non-empty) strings", ERR_INVALID_PATH: n = r => `fast-redact \u2013 Invalid path (${r})` } = t; return function ({ paths: i }) {
i.forEach(l => {
if (typeof l != "string") throw Error(e()); try {
if (//.test(l)) throw Error(); let s = (l[0] === "[" ? "" : ".") + l.replace(/^\*/, "\u3007").replace(/\.\*/g, ".\u3007").replace(/\[\*\]/g, "[\u3007]"); if (/\n|\r|;/.test(s) || /\/\*/.test(s)) throw Error(); Function(`
'use strict'
const o = new Proxy({}, { get: () => o, set: () => { throw Error() } });
const \u3007 = null;
o${s}
if ([o${s}].length !== 1) throw Error()`)()
} catch { throw Error(n(l)) }
})
}
}
}); var u8 = k((_Ne, eN) => { "use strict"; eN.exports = /[^.[\]]+|\[((?:.)*?)\]/g }); var nN = k((ENe, tN) => { "use strict"; var Hre = u8(); tN.exports = Vre; function Vre({ paths: t }) { let e = []; var n = 0; let r = t.reduce(function (i, l, s) { var a = l.match(Hre).map(c => c.replace(/'|"|`/g, "")); let o = l[0] === "["; a = a.map(c => c[0] === "[" ? c.substr(1, c.length - 2) : c); let u = a.indexOf("*"); if (u > -1) { let c = a.slice(0, u), f = c.join("."), m = a.slice(u + 1, a.length), d = m.length > 0; n++, e.push({ before: c, beforeStr: f, after: m, nested: d }) } else i[l] = { path: a, val: void 0, precensored: !1, circle: "", escPath: JSON.stringify(l), leadingBracket: o }; return i }, {}); return { wildcards: e, wcLen: n, secret: r } } }); var iN = k((bNe, rN) => {
"use strict"; var qre = u8(); rN.exports = zre; function zre({ secret: t, serialize: e, wcLen: n, strict: r, isCensorFct: i, censorFctTakesPath: l }, s) {
let a = Function("o", `
if (typeof o !== 'object' || o == null) {
${Xre(r, e)}
}
const { censor, secret } = this
${Gre(t, i, l)}
this.compileRestore()
${Jre(n > 0, i, l)}
${Kre(e)}
`).bind(s); return e === !1 && (a.restore = o => s.restore(o)), a
} function Gre(t, e, n) {
return Object.keys(t).map(r => {
let { escPath: i, leadingBracket: l, path: s } = t[r], a = l ? 1 : 0, o = l ? "" : ".", u = []; for (var c; (c = qre.exec(r)) !== null;) { let [, y] = c, { index: _, input: S } = c; _ > a && u.push(S.substring(0, _ - (y ? 0 : 1))) } var f = u.map(y => `o${o}${y}`).join(" && "); f.length === 0 ? f += `o${o}${r} != null` : f += ` && o${o}${r} != null`; let m = `
switch (true) {
${u.reverse().map(y => `
case o${o}${y} === censor:
secret[${i}].circle = ${JSON.stringify(y)}
break
`).join(`
`)}
}
`, d = n ? `val, ${JSON.stringify(s)}` : "val"; return `
if (${f}) {
const val = o${o}${r}
if (val === censor) {
secret[${i}].precensored = true
} else {
secret[${i}].val = val
o${o}${r} = ${e ? `censor(${d})` : "censor"}
${m}
}
}
`}).join(`
`)
} function Jre(t, e, n) {
return t === !0 ? `
{
const { wildcards, wcLen, groupRedact, nestedRedact } = this
for (var i = 0; i < wcLen; i++) {
const { before, beforeStr, after, nested } = wildcards[i]
if (nested === true) {
secret[beforeStr] = secret[beforeStr] || []
nestedRedact(secret[beforeStr], o, before, after, censor, ${e}, ${n})
} else secret[beforeStr] = groupRedact(o, before, censor, ${e}, ${n})
}
}
`: ""
} function Kre(t) {
return t === !1 ? "return o" : `
var s = this.serialize(o)
this.restore(o)
return s
`} function Xre(t, e) { return t === !0 ? "throw Error('fast-redact: primitives cannot be redacted')" : e === !1 ? "return o" : "return this.serialize(o)" }
}); var _h = k((wNe, aN) => { "use strict"; aN.exports = { groupRedact: Yre, groupRestore: Wre, nestedRedact: Zre, nestedRestore: Qre }; function Wre({ keys: t, values: e, target: n }) { if (n == null) return; let r = t.length; for (var i = 0; i < r; i++) { let l = t[i]; n[l] = e[i] } } function Yre(t, e, n, r, i) { let l = lN(t, e); if (l == null) return { keys: null, values: null, target: null, flat: !0 }; let s = Object.keys(l), a = s.length, o = e.length, u = i ? [...e] : void 0, c = new Array(a); for (var f = 0; f < a; f++) { let m = s[f]; c[f] = l[m], i ? (u[o] = m, l[m] = n(l[m], u)) : r ? l[m] = n(l[m]) : l[m] = n } return { keys: s, values: c, target: l, flat: !0 } } function Qre(t) { for (let e = 0; e < t.length; e++) { let { target: n, path: r, value: i } = t[e], l = n; for (let s = r.length - 1; s > 0; s--)l = l[r[s]]; l[r[0]] = i } } function Zre(t, e, n, r, i, l, s) { let a = lN(e, n); if (a == null) return; let o = Object.keys(a), u = o.length; for (var c = 0; c < u; c++) { let f = o[c]; eie(t, a, f, n, r, i, l, s) } return t } function vh(t, e) { return t != null ? "hasOwn" in Object ? Object.hasOwn(t, e) : Object.prototype.hasOwnProperty.call(t, e) : !1 } function eie(t, e, n, r, i, l, s, a) { let o = i.length, u = o - 1, c = n; var f = -1, m, d, y, _ = null, S = null, w, E, g = !1, v = 0, x = 0, O = tie(); if (y = m = e[n], typeof m == "object") { for (; m != null && ++f < o && (x += 1, n = i[f], _ = y, !(n !== "*" && !S && !(typeof m == "object" && n in m)));)if (!(n === "*" && (S === "*" && (g = !0), S = n, f !== u))) { if (S) { let R = Object.keys(m); for (var N = 0; N < R.length; N++) { let U = R[N]; if (E = m[U], w = n === "*", g) O = ja(O, U, x), v = f, y = sN(E, v - 1, n, r, i, l, s, a, c, m, d, y, w, U, f, u, O, t, e[c], x + 1); else if (w || typeof E == "object" && E !== null && n in E) { if (w ? y = E : y = E[n], d = f !== u ? y : s ? a ? l(y, [...r, c, ...i]) : l(y) : l, w) { let F = o4(ja(O, U, x), y, e[c]); t.push(F), m[U] = d } else if (E[n] !== d) if (d === void 0 && l !== void 0 || vh(E, n) && d === y) O = ja(O, U, x); else { O = ja(O, U, x); let F = o4(ja(O, n, x + 1), y, e[c]); t.push(F), E[n] = d } } } S = null } else { if (y = m[n], O = ja(O, n, x), d = f !== u ? y : s ? a ? l(y, [...r, c, ...i]) : l(y) : l, !(vh(m, n) && d === y || d === void 0 && l !== void 0)) { let R = o4(O, y, e[c]); t.push(R), m[n] = d } m = m[n] } if (typeof m != "object") break } } } function lN(t, e) { for (var n = -1, r = e.length, i = t; i != null && ++n < r;)i = i[e[n]]; return i } function sN(t, e, n, r, i, l, s, a, o, u, c, f, m, d, y, _, S, w, E, g) { if (e === 0 && (m || typeof t == "object" && t !== null && n in t)) { if (m ? f = t : f = t[n], c = y !== _ ? f : s ? a ? l(f, [...r, o, ...i]) : l(f) : l, m) { let v = o4(S, f, E); w.push(v), u[d] = c } else if (t[n] !== c) { if (!(c === void 0 && l !== void 0 || vh(t, n) && c === f)) { let v = o4(ja(S, n, g + 1), f, E); w.push(v), t[n] = c } } } for (let v in t) typeof t[v] == "object" && (S = ja(S, v, g), sN(t[v], e - 1, n, r, i, l, s, a, o, u, c, f, m, d, y, _, S, w, E, g + 1)) } function tie() { return { parent: null, key: null, children: [], depth: 0 } } function ja(t, e, n) { if (t.depth === n) return ja(t.parent, e, n); var r = { parent: t, key: e, depth: n, children: [] }; return t.children.push(r), r } function o4(t, e, n) { let r = t, i = []; do i.push(r.key), r = r.parent; while (r.parent != null); return { path: i, value: e, target: n } } }); var uN = k((SNe, oN) => {
"use strict"; var { groupRestore: nie, nestedRestore: rie } = _h(); oN.exports = iie; function iie({ secret: t, wcLen: e }) { return function () { if (this.restore) return; let r = Object.keys(t), i = lie(t, r), l = e > 0, s = l ? { secret: t, groupRestore: nie, nestedRestore: rie } : { secret: t }; this.restore = Function("o", sie(i, r, l)).bind(s) } } function lie(t, e) {
return e.map(n => {
let { circle: r, escPath: i, leadingBracket: l } = t[n], a = r ? `o.${r} = secret[${i}].val` : `o${l ? "" : "."}${n} = secret[${i}].val`, o = `secret[${i}].val = undefined`; return `
if (secret[${i}].val !== undefined) {
try { ${a} } catch (e) {}
${o}
}
`}).join("")
} function sie(t, e, n) {
return `
const secret = this.secret
${n === !0 ? `
const keys = Object.keys(secret)
const len = keys.length
for (var i = len - 1; i >= ${e.length}; i--) {
const k = keys[i]
const o = secret[k]
if (o.flat === true) this.groupRestore(o)
else this.nestedRestore(o)
secret[k] = null
}
`: ""}
${t}
return o
`}
}); var pN = k((TNe, cN) => { "use strict"; cN.exports = aie; function aie(t) { let { secret: e, censor: n, compileRestore: r, serialize: i, groupRedact: l, nestedRedact: s, wildcards: a, wcLen: o } = t, u = [{ secret: e, censor: n, compileRestore: r }]; return i !== !1 && u.push({ serialize: i }), o > 0 && u.push({ groupRedact: l, nestedRedact: s, wildcards: a, wcLen: o }), Object.assign(...u) } }); var hN = k((xNe, dN) => { "use strict"; var fN = ZO(), oie = nN(), uie = iN(), cie = uN(), { groupRedact: pie, nestedRedact: fie } = _h(), die = pN(), hie = u8(), mie = fN(), Eh = t => t; Eh.restore = Eh; var yie = "[REDACTED]"; bh.rx = hie; bh.validator = fN; dN.exports = bh; function bh(t = {}) { let e = Array.from(new Set(t.paths || [])), n = "serialize" in t && (t.serialize === !1 || typeof t.serialize == "function") ? t.serialize : JSON.stringify, r = t.remove; if (r === !0 && n !== JSON.stringify) throw Error("fast-redact \u2013 remove option may only be set when serializer is JSON.stringify"); let i = r === !0 ? void 0 : "censor" in t ? t.censor : yie, l = typeof i == "function", s = l && i.length > 1; if (e.length === 0) return n || Eh; mie({ paths: e, serialize: n, censor: i }); let { wildcards: a, wcLen: o, secret: u } = oie({ paths: e, censor: i }), c = cie({ secret: u, wcLen: o }), f = "strict" in t ? t.strict : !0; return uie({ secret: u, wcLen: o, serialize: n, strict: f, isCensorFct: l, censorFctTakesPath: s }, die({ secret: u, censor: i, compileRestore: c, serialize: n, groupRedact: pie, nestedRedact: fie, wildcards: a, wcLen: o })) } }); var Ku = k((ANe, mN) => { "use strict"; var gie = Symbol("pino.setLevel"), vie = Symbol("pino.getLevel"), _ie = Symbol("pino.levelVal"), Eie = Symbol("pino.levelComp"), bie = Symbol("pino.useLevelLabels"), wie = Symbol("pino.useOnlyCustomLevels"), Sie = Symbol("pino.mixin"), Tie = Symbol("pino.lsCache"), xie = Symbol("pino.chindings"), Aie = Symbol("pino.asJson"), Oie = Symbol("pino.write"), Nie = Symbol("pino.redactFmt"), Cie = Symbol("pino.time"), Rie = Symbol("pino.timeSliceIndex"), Iie = Symbol("pino.stream"), kie = Symbol("pino.stringify"), Die = Symbol("pino.stringifySafe"), Pie = Symbol("pino.stringifiers"), Lie = Symbol("pino.end"), Fie = Symbol("pino.formatOpts"), jie = Symbol("pino.messageKey"), Uie = Symbol("pino.errorKey"), Mie = Symbol("pino.nestedKey"), $ie = Symbol("pino.nestedKeyStr"), Bie = Symbol("pino.mixinMergeStrategy"), Hie = Symbol("pino.msgPrefix"), Vie = Symbol("pino.wildcardFirst"), qie = Symbol.for("pino.serializers"), zie = Symbol.for("pino.formatters"), Gie = Symbol.for("pino.hooks"), Jie = Symbol.for("pino.metadata"); mN.exports = { setLevelSym: gie, getLevelSym: vie, levelValSym: _ie, levelCompSym: Eie, useLevelLabelsSym: bie, mixinSym: Sie, lsCacheSym: Tie, chindingsSym: xie, asJsonSym: Aie, writeSym: Oie, serializersSym: qie, redactFmtSym: Nie, timeSym: Cie, timeSliceIndexSym: Rie, streamSym: Iie, stringifySym: kie, stringifySafeSym: Die, stringifiersSym: Pie, endSym: Lie, formatOptsSym: Fie, messageKeySym: jie, errorKeySym: Uie, nestedKeySym: Mie, wildcardFirstSym: Vie, needsMetadataGsym: Jie, useOnlyCustomLevelsSym: wie, formattersSym: zie, hooksSym: Gie, nestedKeyStrSym: $ie, mixinMergeStrategySym: Bie, msgPrefixSym: Hie } }); var Th = k((ONe, _N) => { "use strict"; var Sh = hN(), { redactFmtSym: Kie, wildcardFirstSym: c8 } = Ku(), { rx: wh, validator: Xie } = Sh, yN = Xie({ ERR_PATHS_MUST_BE_STRINGS: () => "pino \u2013 redacted paths must be strings", ERR_INVALID_PATH: t => `pino \u2013 redact paths array contains an invalid path (${t})` }), gN = "[Redacted]", vN = !1; function Wie(t, e) { let { paths: n, censor: r } = Yie(t), i = n.reduce((a, o) => { wh.lastIndex = 0; let u = wh.exec(o), c = wh.exec(o), f = u[1] !== void 0 ? u[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/, "$1") : u[0]; if (f === "*" && (f = c8), c === null) return a[f] = null, a; if (a[f] === null) return a; let { index: m } = c, d = `${o.substr(m, o.length - 1)}`; return a[f] = a[f] || [], f !== c8 && a[f].length === 0 && a[f].push(...a[c8] || []), f === c8 && Object.keys(a).forEach(function (y) { a[y] && a[y].push(d) }), a[f].push(d), a }, {}), l = { [Kie]: Sh({ paths: n, censor: r, serialize: e, strict: vN }) }, s = (...a) => e(typeof r == "function" ? r(...a) : r); return [...Object.keys(i), ...Object.getOwnPropertySymbols(i)].reduce((a, o) => { if (i[o] === null) a[o] = u => s(u, [o]); else { let u = typeof r == "function" ? (c, f) => r(c, [o, ...f]) : r; a[o] = Sh({ paths: i[o], censor: u, serialize: e, strict: vN }) } return a }, l) } function Yie(t) { if (Array.isArray(t)) return t = { paths: t, censor: gN }, yN(t), t; let { paths: e, censor: n = gN, remove: r } = t; if (Array.isArray(e) === !1) throw Error("pino \u2013 redact must contain an array of strings"); return r === !0 && (n = void 0), yN({ paths: e, censor: n }), { paths: e, censor: n } } _N.exports = Wie }); var bN = k((NNe, EN) => { "use strict"; var Qie = () => "", Zie = () => `,"time":${Date.now()}`, ele = () => `,"time":${Math.round(Date.now() / 1e3)}`, tle = () => `,"time":"${new Date(Date.now()).toISOString()}"`; EN.exports = { nullTime: Qie, epochTime: Zie, unixTime: ele, isoTime: tle } }); var SN = k((CNe, wN) => { "use strict"; function nle(t) { try { return JSON.stringify(t) } catch { return '"[Circular]"' } } wN.exports = rle; function rle(t, e, n) { var r = n && n.stringify || nle, i = 1; if (typeof t == "object" && t !== null) { var l = e.length + i; if (l === 1) return t; var s = new Array(l); s[0] = r(t); for (var a = 1; a < l; a++)s[a] = r(e[a]); return s.join(" ") } if (typeof t != "string") return t; var o = e.length; if (o === 0) return t; for (var u = "", c = 1 - i, f = -1, m = t && t.length || 0, d = 0; d < m;) { if (t.charCodeAt(d) === 37 && d + 1 < m) { switch (f = f > -1 ? f : 0, t.charCodeAt(d + 1)) { case 100: case 102: if (c >= o || e[c] == null) break; f < d && (u += t.slice(f, d)), u += Number(e[c]), f = d + 2, d++; break; case 105: if (c >= o || e[c] == null) break; f < d && (u += t.slice(f, d)), u += Math.floor(Number(e[c])), f = d + 2, d++; break; case 79: case 111: case 106: if (c >= o || e[c] === void 0) break; f < d && (u += t.slice(f, d)); var y = typeof e[c]; if (y === "string") { u += "'" + e[c] + "'", f = d + 2, d++; break } if (y === "function") { u += e[c].name || "<anonymous>", f = d + 2, d++; break } u += r(e[c]), f = d + 2, d++; break; case 115: if (c >= o) break; f < d && (u += t.slice(f, d)), u += String(e[c]), f = d + 2, d++; break; case 37: f < d && (u += t.slice(f, d)), u += "%", f = d + 2, d++, c--; break }++c } ++d } return f === -1 ? t : (f < m && (u += t.slice(f)), u) } }); var Ah = k((RNe, xh) => { "use strict"; if (typeof SharedArrayBuffer < "u" && typeof Atomics < "u") { let e = function (n) { if ((n > 0 && n < 1 / 0) === !1) throw typeof n != "number" && typeof n != "bigint" ? TypeError("sleep: ms must be a number") : RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity"); Atomics.wait(t, 0, 0, Number(n)) }, t = new Int32Array(new SharedArrayBuffer(4)); xh.exports = e } else { let t = function (e) { if ((e > 0 && e < 1 / 0) === !1) throw typeof e != "number" && typeof e != "bigint" ? TypeError("sleep: ms must be a number") : RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity"); let r = Date.now() + Number(e); for (; r > Date.now();); }; xh.exports = t } }); var IN = k((INe, RN) => { "use strict"; var Lr = require("fs"), ile = require("events"), lle = require("util").inherits, TN = require("path"), Nh = Ah(), p8 = 100, f8 = Buffer.allocUnsafe(0), sle = 16 * 1024, xN = "buffer", AN = "utf8"; function ON(t, e) { e._opening = !0, e._writing = !0, e._asyncDrainScheduled = !1; function n(l, s) { if (l) { e._reopening = !1, e._writing = !1, e._opening = !1, e.sync ? process.nextTick(() => { e.listenerCount("error") > 0 && e.emit("error", l) }) : e.emit("error", l); return } e.fd = s, e.file = t, e._reopening = !1, e._opening = !1, e._writing = !1, e.sync ? process.nextTick(() => e.emit("ready")) : e.emit("ready"), !(e._reopening || e.destroyed) && (!e._writing && e._len > e.minLength || e._flushPending) && e._actualWrite() } let r = e.append ? "a" : "w", i = e.mode; if (e.sync) try { e.mkdir && Lr.mkdirSync(TN.dirname(t), { recursive: !0 }); let l = Lr.openSync(t, r, i); n(null, l) } catch (l) { throw n(l), l } else e.mkdir ? Lr.mkdir(TN.dirname(t), { recursive: !0 }, l => { if (l) return n(l); Lr.open(t, r, i, n) }) : Lr.open(t, r, i, n) } function gs(t) { if (!(this instanceof gs)) return new gs(t); let { fd: e, dest: n, minLength: r, maxLength: i, maxWrite: l, sync: s, append: a = !0, mkdir: o, retryEAGAIN: u, fsync: c, contentMode: f, mode: m } = t || {}; e = e || n, this._len = 0, this.fd = -1, this._bufs = [], this._lens = [], this._writing = !1, this._ending = !1, this._reopening = !1, this._asyncDrainScheduled = !1, this._flushPending = !1, this._hwm = Math.max(r || 0, 16387), this.file = null, this.destroyed = !1, this.minLength = r || 0, this.maxLength = i || 0, this.maxWrite = l || sle, this.sync = s || !1, this.writable = !0, this._fsync = c || !1, this.append = a || !1, this.mode = m, this.retryEAGAIN = u || (() => !0), this.mkdir = o || !1; let d, y; if (f === xN) this._writingBuf = f8, this.write = ule, this.flush = ple, this.flushSync = dle, this._actualWrite = mle, d = () => Lr.writeSync(this.fd, this._writingBuf), y = () => Lr.write(this.fd, this._writingBuf, this.release); else if (f === void 0 || f === AN) this._writingBuf = "", this.write = ole, this.flush = cle, this.flushSync = fle, this._actualWrite = hle, d = () => Lr.writeSync(this.fd, this._writingBuf, "utf8"), y = () => Lr.write(this.fd, this._writingBuf, "utf8", this.release); else throw new Error(`SonicBoom supports "${AN}" and "${xN}", but passed ${f}`); if (typeof e == "number") this.fd = e, process.nextTick(() => this.emit("ready")); else if (typeof e == "string") ON(e, this); else throw new Error("SonicBoom supports only file descriptors and files"); if (this.minLength >= this.maxWrite) throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`); this.release = (_, S) => { if (_) { if ((_.code === "EAGAIN" || _.code === "EBUSY") && this.retryEAGAIN(_, this._writingBuf.length, this._len - this._writingBuf.length)) if (this.sync) try { Nh(p8), this.release(void 0, 0) } catch (g) { this.release(g) } else setTimeout(y, p8); else this._writing = !1, this.emit("error", _); return } this.emit("write", S); let w = Oh(this._writingBuf, this._len, S); if (this._len = w.len, this._writingBuf = w.writingBuf, this._writingBuf.length) { if (!this.sync) { y(); return } try { do { let g = d(), v = Oh(this._writingBuf, this._len, g); this._len = v.len, this._writingBuf = v.writingBuf } while (this._writingBuf.length) } catch (g) { this.release(g); return } } this._fsync && Lr.fsyncSync(this.fd); let E = this._len; this._reopening ? (this._writing = !1, this._reopening = !1, this.reopen()) : E > this.minLength ? this._actualWrite() : this._ending ? E > 0 ? this._actualWrite() : (this._writing = !1, d8(this)) : (this._writing = !1, this.sync ? this._asyncDrainScheduled || (this._asyncDrainScheduled = !0, process.nextTick(ale, this)) : this.emit("drain")) }, this.on("newListener", function (_) { _ === "drain" && (this._asyncDrainScheduled = !1) }) } function Oh(t, e, n) { return typeof t == "string" && Buffer.byteLength(t) !== n && (n = Buffer.from(t).subarray(0, n).toString().length), e = Math.max(e - n, 0), t = t.slice(n), { writingBuf: t, len: e } } function ale(t) { t.listenerCount("drain") > 0 && (t._asyncDrainScheduled = !1, t.emit("drain")) } lle(gs, ile); function NN(t, e) { return t.length === 0 ? f8 : t.length === 1 ? t[0] : Buffer.concat(t, e) } function ole(t) { if (this.destroyed) throw new Error("SonicBoom destroyed"); let e = this._len + t.length, n = this._bufs; return this.maxLength && e > this.maxLength ? (this.emit("drop", t), this._len < this._hwm) : (n.length === 0 || n[n.length - 1].length + t.length > this.maxWrite ? n.push("" + t) : n[n.length - 1] += t, this._len = e, !this._writing && this._len >= this.minLength && this._actualWrite(), this._len < this._hwm) } function ule(t) { if (this.destroyed) throw new Error("SonicBoom destroyed"); let e = this._len + t.length, n = this._bufs, r = this._lens; return this.maxLength && e > this.maxLength ? (this.emit("drop", t), this._len < this._hwm) : (n.length === 0 || r[r.length - 1] + t.length > this.maxWrite ? (n.push([t]), r.push(t.length)) : (n[n.length - 1].push(t), r[r.length - 1] += t.length), this._len = e, !this._writing && this._len >= this.minLength && this._actualWrite(), this._len < this._hwm) } function CN(t) { this._flushPending = !0; let e = () => { this._fsync ? (this._flushPending = !1, t()) : Lr.fsync(this.fd, r => { this._flushPending = !1, t(r) }), this.off("error", n) }, n = r => { this._flushPending = !1, t(r), this.off("drain", e) }; this.once("drain", e), this.once("error", n) } function cle(t) { if (t != null && typeof t != "function") throw new Error("flush cb must be a function"); if (this.destroyed) { let e = new Error("SonicBoom destroyed"); if (t) { t(e); return } throw e } if (this.minLength <= 0) { t?.(); return } t && CN.call(this, t), !this._writing && (this._bufs.length === 0 && this._bufs.push(""), this._actualWrite()) } function ple(t) { if (t != null && typeof t != "function") throw new Error("flush cb must be a function"); if (this.destroyed) { let e = new Error("SonicBoom destroyed"); if (t) { t(e); return } throw e } if (this.minLength <= 0) { t?.(); return } t && CN.call(this, t), !this._writing && (this._bufs.length === 0 && (this._bufs.push([]), this._lens.push(0)), this._actualWrite()) } gs.prototype.reopen = function (t) { if (this.destroyed) throw new Error("SonicBoom destroyed"); if (this._opening) { this.once("ready", () => { this.reopen(t) }); return } if (this._ending) return; if (!this.file) throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom"); if (this._reopening = !0, this._writing) return; let e = this.fd; this.once("ready", () => { e !== this.fd && Lr.close(e, n => { if (n) return this.emit("error", n) }) }), ON(t || this.file, this) }; gs.prototype.end = function () { if (this.destroyed) throw new Error("SonicBoom destroyed"); if (this._opening) { this.once("ready", () => { this.end() }); return } this._ending || (this._ending = !0, !this._writing && (this._len > 0 && this.fd >= 0 ? this._actualWrite() : d8(this))) }; function fle() { if (this.destroyed) throw new Error("SonicBoom destroyed"); if (this.fd < 0) throw new Error("sonic boom is not ready yet"); !this._writing && this._writingBuf.length > 0 && (this._bufs.unshift(this._writingBuf), this._writingBuf = ""); let t = ""; for (; this._bufs.length || t;) { t.length <= 0 && (t = this._bufs[0]); try { let e = Lr.writeSync(this.fd, t, "utf8"), n = Oh(t, this._len, e); t = n.writingBuf, this._len = n.len, t.length <= 0 && this._bufs.shift() } catch (e) { if ((e.code === "EAGAIN" || e.code === "EBUSY") && !this.retryEAGAIN(e, t.length, this._len - t.length)) throw e; Nh(p8) } } try { Lr.fsyncSync(this.fd) } catch { } } function dle() { if (this.destroyed) throw new Error("SonicBoom destroyed"); if (this.fd < 0) throw new Error("sonic boom is not ready yet"); !this._writing && this._writingBuf.length > 0 && (this._bufs.unshift([this._writingBuf]), this._writingBuf = f8); let t = f8; for (; this._bufs.length || t.length;) { t.length <= 0 && (t = NN(this._bufs[0], this._lens[0])); try { let e = Lr.writeSync(this.fd, t); t = t.subarray(e), this._len = Math.max(this._len - e, 0), t.length <= 0 && (this._bufs.shift(), this._lens.shift()) } catch (e) { if ((e.code === "EAGAIN" || e.code === "EBUSY") && !this.retryEAGAIN(e, t.length, this._len - t.length)) throw e; Nh(p8) } } } gs.prototype.destroy = function () { this.destroyed || d8(this) }; function hle() { let t = this.release; if (this._writing = !0, this._writingBuf = this._writingBuf || this._bufs.shift() || "", this.sync) try { let e = Lr.writeSync(this.fd, this._writingBuf, "utf8"); t(null, e) } catch (e) { t(e) } else Lr.write(this.fd, this._writingBuf, "utf8", t) } function mle() { let t = this.release; if (this._writing = !0, this._writingBuf = this._writingBuf.length ? this._writingBuf : NN(this._bufs.shift(), this._lens.shift()), this.sync) try { let e = Lr.writeSync(this.fd, this._writingBuf); t(null, e) } catch (e) { t(e) } else Lr.write(this.fd, this._writingBuf, t) } function d8(t) { if (t.fd === -1) { t.once("ready", d8.bind(null, t)); return } t.destroyed = !0, t._bufs = [], t._lens = [], Lr.fsync(t.fd, e); function e() { t.fd !== 1 && t.fd !== 2 ? Lr.close(t.fd, n) : n() } function n(r) { if (r) { t.emit("error", r); return } t._ending && !t._writing && t.emit("finish"), t.emit("close") } } gs.SonicBoom = gs; gs.default = gs; RN.exports = gs }); var Ch = k((kNe, FN) => { "use strict"; var vs = { exit: [], beforeExit: [] }, kN = { exit: vle, beforeExit: _le }, Xu; function yle() { Xu === void 0 && (Xu = new FinalizationRegistry(Ele)) } function gle(t) { vs[t].length > 0 || process.on(t, kN[t]) } function DN(t) { vs[t].length > 0 || (process.removeListener(t, kN[t]), vs.exit.length === 0 && vs.beforeExit.length === 0 && (Xu = void 0)) } function vle() { PN("exit") } function _le() { PN("beforeExit") } function PN(t) { for (let e of vs[t]) { let n = e.deref(), r = e.fn; n !== void 0 && r(n, t) } vs[t] = [] } function Ele(t) { for (let e of ["exit", "beforeExit"]) { let n = vs[e].indexOf(t); vs[e].splice(n, n + 1), DN(e) } } function LN(t, e, n) { if (e === void 0) throw new Error("the object can't be undefined"); gle(t); let r = new WeakRef(e); r.fn = n, yle(), Xu.register(e, r), vs[t].push(r) } function ble(t, e) { LN("exit", t, e) } function wle(t, e) { LN("beforeExit", t, e) } function Sle(t) { if (Xu !== void 0) { Xu.unregister(t); for (let e of ["exit", "beforeExit"]) vs[e] = vs[e].filter(n => { let r = n.deref(); return r && r !== t }), DN(e) } } FN.exports = { register: ble, registerBeforeExit: wle, unregister: Sle } }); var jN = k((DNe, Tle) => { Tle.exports = { name: "thread-stream", version: "2.4.1", description: "A streaming way to send data to a Node.js Worker Thread", main: "index.js", types: "index.d.ts", dependencies: { "real-require": "^0.2.0" }, devDependencies: { "@types/node": "^20.1.0", "@types/tap": "^15.0.0", desm: "^1.3.0", fastbench: "^1.0.1", husky: "^8.0.1", "pino-elasticsearch": "^6.0.0", "sonic-boom": "^3.0.0", standard: "^17.0.0", tap: "^16.2.0", "ts-node": "^10.8.0", typescript: "^4.7.2", "why-is-node-running": "^2.2.2" }, scripts: { test: "standard && npm run transpile && tap test/*.test.*js && tap --ts test/*.test.*ts", "test:ci": "standard && npm run transpile && npm run test:ci:js && npm run test:ci:ts", "test:ci:js": 'tap --no-check-coverage --coverage-report=lcovonly "test/**/*.test.*js"', "test:ci:ts": 'tap --ts --no-check-coverage --coverage-report=lcovonly "test/**/*.test.*ts"', "test:yarn": 'npm run transpile && tap "test/**/*.test.js" --no-check-coverage', transpile: "sh ./test/ts/transpile.sh", prepare: "husky install" }, standard: { ignore: ["test/ts/**/*"] }, repository: { type: "git", url: "git+https://github.com/mcollina/thread-stream.git" }, keywords: ["worker", "thread", "threads", "stream"], author: "Matteo Collina <hello@matteocollina.com>", license: "MIT", bugs: { url: "https://github.com/mcollina/thread-stream/issues" }, homepage: "https://github.com/mcollina/thread-stream#readme" } }); var MN = k((PNe, UN) => { "use strict"; function xle(t, e, n, r, i) { let l = Date.now() + r, s = Atomics.load(t, e); if (s === n) { i(null, "ok"); return } let a = s, o = u => { Date.now() > l ? i(null, "timed-out") : setTimeout(() => { a = s, s = Atomics.load(t, e), s === a ? o(u >= 1e3 ? 1e3 : u * 2) : s === n ? i(null, "ok") : i(null, "not-equal") }, u) }; o(1) } function Ale(t, e, n, r, i) { let l = Date.now() + r, s = Atomics.load(t, e); if (s !== n) { i(null, "ok"); return } let a = o => { Date.now() > l ? i(null, "timed-out") : setTimeout(() => { s = Atomics.load(t, e), s !== n ? i(null, "ok") : a(o >= 1e3 ? 1e3 : o * 2) }, o) }; a(1) } UN.exports = { wait: xle, waitDiff: Ale } }); var BN = k((LNe, $N) => { "use strict"; $N.exports = { WRITE_INDEX: 4, READ_INDEX: 8 } }); var GN = k((FNe, zN) => { "use strict"; var { version: Ole } = jN(), { EventEmitter: Nle } = require("events"), { Worker: Cle } = require("worker_threads"), { join: Rle } = require("path"), { pathToFileURL: Ile } = require("url"), { wait: kle } = MN(), { WRITE_INDEX: dl, READ_INDEX: Js } = BN(), Dle = require("buffer"), Ple = require("assert"), ye = Symbol("kImpl"), Lle = Dle.constants.MAX_STRING_LENGTH, u4 = class { constructor(e) { this._value = e } deref() { return this._value } }, m8 = class { register() { } unregister() { } }, Fle = process.env.NODE_V8_COVERAGE ? m8 : global.FinalizationRegistry || m8, jle = process.env.NODE_V8_COVERAGE ? u4 : global.WeakRef || u4, HN = new Fle(t => { t.exited || t.terminate() }); function Ule(t, e) { let { filename: n, workerData: r } = e, l = ("__bundlerPathsOverrides" in globalThis ? globalThis.__bundlerPathsOverrides : {})["thread-stream-worker"] || Rle(__dirname, "lib", "worker.js"), s = new Cle(l, { ...e.workerOpts, trackUnmanagedFds: !1, workerData: { filename: n.indexOf("file://") === 0 ? n : Ile(n).href, dataBuf: t[ye].dataBuf, stateBuf: t[ye].stateBuf, workerData: { $context: { threadStreamVersion: Ole }, ...r } } }); return s.stream = new u4(t), s.on("message", Mle), s.on("exit", qN), HN.register(t, s), s } function VN(t) { Ple(!t[ye].sync), t[ye].needDrain && (t[ye].needDrain = !1, t.emit("drain")) } function h8(t) { let e = Atomics.load(t[ye].state, dl), n = t[ye].data.length - e; if (n > 0) { if (t[ye].buf.length === 0) { t[ye].flushing = !1, t[ye].ending ? Ph(t) : t[ye].needDrain && process.nextTick(VN, t); return } let r = t[ye].buf.slice(0, n), i = Buffer.byteLength(r); i <= n ? (t[ye].buf = t[ye].buf.slice(n), y8(t, r, h8.bind(null, t))) : t.flush(() => { if (!t.destroyed) { for (Atomics.store(t[ye].state, Js, 0), Atomics.store(t[ye].state, dl, 0); i > t[ye].data.length;)n = n / 2, r = t[ye].buf.slice(0, n), i = Buffer.byteLength(r); t[ye].buf = t[ye].buf.slice(n), y8(t, r, h8.bind(null, t)) } }) } else if (n === 0) { if (e === 0 && t[ye].buf.length === 0) return; t.flush(() => { Atomics.store(t[ye].state, Js, 0), Atomics.store(t[ye].state, dl, 0), h8(t) }) } else Ks(t, new Error("overwritten")) } function Mle(t) { let e = this.stream.deref(); if (e === void 0) { this.exited = !0, this.terminate(); return } switch (t.code) { case "READY": this.stream = new jle(e), e.flush(() => { e[ye].ready = !0, e.emit("ready") }); break; case "ERROR": Ks(e, t.err); break; case "EVENT": Array.isArray(t.args) ? e.emit(t.name, ...t.args) : e.emit(t.name, t.args); break; case "WARNING": process.emitWarning(t.err); break; default: Ks(e, new Error("this should not happen: " + t.code)) } } function qN(t) { let e = this.stream.deref(); e !== void 0 && (HN.unregister(e), e.worker.exited = !0, e.worker.off("exit", qN), Ks(e, t !== 0 ? new Error("the worker thread exited") : null)) } var Ih = class extends Nle { constructor(e = {}) { if (super(), e.bufferSize < 4) throw new Error("bufferSize must at least fit a 4-byte utf-8 char"); this[ye] = {}, this[ye].stateBuf = new SharedArrayBuffer(128), this[ye].state = new Int32Array(this[ye].stateBuf), this[ye].dataBuf = new SharedArrayBuffer(e.bufferSize || 4 * 1024 * 1024), this[ye].data = Buffer.from(this[ye].dataBuf), this[ye].sync = e.sync || !1, this[ye].ending = !1, this[ye].ended = !1, this[ye].needDrain = !1, this[ye].destroyed = !1, this[ye].flushing = !1, this[ye].ready = !1, this[ye].finished = !1, this[ye].errored = null, this[ye].closed = !1, this[ye].buf = "", this.worker = Ule(this, e) } write(e) { if (this[ye].destroyed) return kh(this, new Error("the worker has exited")), !1; if (this[ye].ending) return kh(this, new Error("the worker is ending")), !1; if (this[ye].flushing && this[ye].buf.length + e.length >= Lle) try { Rh(this), this[ye].flushing = !0 } catch (n) { return Ks(this, n), !1 } if (this[ye].buf += e, this[ye].sync) try { return Rh(this), !0 } catch (n) { return Ks(this, n), !1 } return this[ye].flushing || (this[ye].flushing = !0, setImmediate(h8, this)), this[ye].needDrain = this[ye].data.length - this[ye].buf.length - Atomics.load(this[ye].state, dl) <= 0, !this[ye].needDrain } end() { this[ye].destroyed || (this[ye].ending = !0, Ph(this)) } flush(e) { if (this[ye].destroyed) { typeof e == "function" && process.nextTick(e, new Error("the worker has exited")); return } let n = Atomics.load(this[ye].state, dl); kle(this[ye].state, Js, n, 1 / 0, (r, i) => { if (r) { Ks(this, r), process.nextTick(e, r); return } if (i === "not-equal") { this.flush(e); return } process.nextTick(e) }) } flushSync() { this[ye].destroyed || (Rh(this), Dh(this)) } unref() { this.worker.unref() } ref() { this.worker.ref() } get ready() { return this[ye].ready } get destroyed() { return this[ye].destroyed } get closed() { return this[ye].closed } get writable() { return !this[ye].destroyed && !this[ye].ending } get writableEnded() { return this[ye].ending } get writableFinished() { return this[ye].finished } get writableNeedDrain() { return this[ye].needDrain } get writableObjectMode() { return !1 } get writableErrored() { return this[ye].errored } }; function kh(t, e) { setImmediate(() => { t.emit("error", e) }) } function Ks(t, e) { t[ye].destroyed || (t[ye].destroyed = !0, e && (t[ye].errored = e, kh(t, e)), t.worker.exited ? setImmediate(() => { t[ye].closed = !0, t.emit("close") }) : t.worker.terminate().catch(() => { }).then(() => { t[ye].closed = !0, t.emit("close") })) } function y8(t, e, n) { let r = Atomics.load(t[ye].state, dl), i = Buffer.byteLength(e); return t[ye].data.write(e, r), Atomics.store(t[ye].state, dl, r + i), Atomics.notify(t[ye].state, dl), n(), !0 } function Ph(t) { if (!(t[ye].ended || !t[ye].ending || t[ye].flushing)) { t[ye].ended = !0; try { t.flushSync(); let e = Atomics.load(t[ye].state, Js); Atomics.store(t[ye].state, dl, -1), Atomics.notify(t[ye].state, dl); let n = 0; for (; e !== -1;) { if (Atomics.wait(t[ye].state, Js, e, 1e3), e = Atomics.load(t[ye].state, Js), e === -2) { Ks(t, new Error("end() failed")); return } if (++n === 10) { Ks(t, new Error("end() took too long (10s)")); return } } process.nextTick(() => { t[ye].finished = !0, t.emit("finish") }) } catch (e) { Ks(t, e) } } } function Rh(t) { let e = () => { t[ye].ending ? Ph(t) : t[ye].needDrain && process.nextTick(VN, t) }; for (t[ye].flushing = !1; t[ye].buf.length !== 0;) { let n = Atomics.load(t[ye].state, dl), r = t[ye].data.length - n; if (r === 0) { Dh(t), Atomics.store(t[ye].state, Js, 0), Atomics.store(t[ye].state, dl, 0); continue } else if (r < 0) throw new Error("overwritten"); let i = t[ye].buf.slice(0, r), l = Buffer.byteLength(i); if (l <= r) t[ye].buf = t[ye].buf.slice(r), y8(t, i, e); else { for (Dh(t), Atomics.store(t[ye].state, Js, 0), Atomics.store(t[ye].state, dl, 0); l > t[ye].buf.length;)r = r / 2, i = t[ye].buf.slice(0, r), l = Buffer.byteLength(i); t[ye].buf = t[ye].buf.slice(r), y8(t, i, e) } } } function Dh(t) { if (t[ye].flushing) throw new Error("unable to flush while flushing"); let e = Atomics.load(t[ye].state, dl), n = 0; for (; ;) { let r = Atomics.load(t[ye].state, Js); if (r === -2) throw Error("_flushSync failed"); if (r !== e) Atomics.wait(t[ye].state, Js, r, 1e3); else break; if (++n === 10) throw new Error("_flushSync took too long (10s)") } } zN.exports = Ih }); var jh = k((jNe, JN) => { "use strict"; var { createRequire: $le } = require("module"), Ble = gh(), { join: Lh, isAbsolute: Hle, sep: Vle } = require("path"), qle = Ah(), Fh = Ch(), zle = GN(); function Gle(t) { Fh.register(t, Kle), Fh.registerBeforeExit(t, Xle), t.on("close", function () { Fh.unregister(t) }) } function Jle(t, e, n) { let r = new zle({ filename: t, workerData: e, workerOpts: n }); r.on("ready", i), r.on("close", function () { process.removeListener("exit", l) }), process.on("exit", l); function i() { process.removeListener("exit", l), r.unref(), n.autoEnd !== !1 && Gle(r) } function l() { r.closed || (r.flushSync(), qle(100), r.end()) } return r } function Kle(t) { t.ref(), t.flushSync(), t.end(), t.once("close", function () { t.unref() }) } function Xle(t) { t.flushSync() } function Wle(t) { let { pipeline: e, targets: n, levels: r, dedupe: i, options: l = {}, worker: s = {}, caller: a = Ble() } = t, o = typeof a == "string" ? [a] : a, u = "__bundlerPathsOverrides" in globalThis ? globalThis.__bundlerPathsOverrides : {}, c = t.target; if (c && n) throw new Error("only one of target or targets can be specified"); return n ? (c = u["pino-worker"] || Lh(__dirname, "worker.js"), l.targets = n.map(m => ({ ...m, target: f(m.target) }))) : e && (c = u["pino-pipeline-worker"] || Lh(__dirname, "worker-pipeline.js"), l.targets = e.map(m => ({ ...m, target: f(m.target) }))), r && (l.levels = r), i && (l.dedupe = i), Jle(f(c), l, s); function f(m) { if (m = u[m] || m, Hle(m) || m.indexOf("file://") === 0) return m; if (m === "pino/file") return Lh(__dirname, "..", "file.js"); let d; for (let y of o) try { let _ = y === "node:repl" ? process.cwd() + Vle : y; d = $le(_).resolve(m); break } catch { continue } if (!d) throw new Error(`unable to determine transport target for "${m}"`); return d } } JN.exports = Wle }); var _8 = k((UNe, iC) => { "use strict"; var KN = SN(), { mapHttpRequest: Yle, mapHttpResponse: Qle } = yh(), Mh = IN(), XN = Ch(), { lsCacheSym: Zle, chindingsSym: QN, writeSym: WN, serializersSym: ZN, formatOptsSym: YN, endSym: ese, stringifiersSym: eC, stringifySym: tC, stringifySafeSym: $h, wildcardFirstSym: nC, nestedKeySym: tse, formattersSym: rC, messageKeySym: nse, errorKeySym: rse, nestedKeyStrSym: ise, msgPrefixSym: g8 } = Ku(), { isMainThread: lse } = require("worker_threads"), sse = jh(); function Wu() { } function ase(t, e) { if (!e) return n; return function (...i) { e.call(this, i, n, t) }; function n(r, ...i) { if (typeof r == "object") { let l = r; r !== null && (r.method && r.headers && r.socket ? r = Yle(r) : typeof r.setHeader == "function" && (r = Qle(r))); let s; l === null && i.length === 0 ? s = [null] : (l = i.shift(), s = i), typeof this[g8] == "string" && l !== void 0 && l !== null && (l = this[g8] + l), this[WN](r, KN(l, s, this[YN]), t) } else { let l = r === void 0 ? i.shift() : r; typeof this[g8] == "string" && l !== void 0 && l !== null && (l = this[g8] + l), this[WN](null, KN(l, i, this[YN]), t) } } } function Uh(t) { let e = "", n = 0, r = !1, i = 255, l = t.length; if (l > 100) return JSON.stringify(t); for (var s = 0; s < l && i >= 32; s++)i = t.charCodeAt(s), (i === 34 || i === 92) && (e += t.slice(n, s) + "\\", n = s, r = !0); return r ? e += t.slice(n) : e = t, i < 32 ? JSON.stringify(t) : '"' + e + '"' } function ose(t, e, n, r) { let i = this[tC], l = this[$h], s = this[eC], a = this[ese], o = this[QN], u = this[ZN], c = this[rC], f = this[nse], m = this[rse], d = this[Zle][n] + r; d = d + o; let y; c.log && (t = c.log(t)); let _ = s[nC], S = ""; for (let E in t) if (y = t[E], Object.prototype.hasOwnProperty.call(t, E) && y !== void 0) { u[E] ? y = u[E](y) : E === m && u.err && (y = u.err(y)); let g = s[E] || _; switch (typeof y) { case "undefined": case "function": continue; case "number": Number.isFinite(y) === !1 && (y = null); case "boolean": g && (y = g(y)); break; case "string": y = (g || Uh)(y); break; default: y = (g || i)(y, l) }if (y === void 0) continue; let v = Uh(E); S += "," + v + ":" + y } let w = ""; if (e !== void 0) { y = u[f] ? u[f](e) : e; let E = s[f] || _; switch (typeof y) { case "function": break; case "number": Number.isFinite(y) === !1 && (y = null); case "boolean": E && (y = E(y)), w = ',"' + f + '":' + y; break; case "string": y = (E || Uh)(y), w = ',"' + f + '":' + y; break; default: y = (E || i)(y, l), w = ',"' + f + '":' + y } } return this[tse] && S ? d + this[ise] + S.slice(1) + "}" + w + a : d + S + w + a } function use(t, e) { let n, r = t[QN], i = t[tC], l = t[$h], s = t[eC], a = s[nC], o = t[ZN], u = t[rC].bindings; e = u(e); for (let c in e) if (n = e[c], (c !== "level" && c !== "serializers" && c !== "formatters" && c !== "customLevels" && e.hasOwnProperty(c) && n !== void 0) === !0) { if (n = o[c] ? o[c](n) : n, n = (s[c] || a || i)(n, l), n === void 0) continue; r += ',"' + c + '":' + n } return r } function cse(t) { return t.write !== t.constructor.prototype.write } var pse = process.env.NODE_V8_COVERAGE || process.env.V8_COVERAGE; function v8(t) { let e = new Mh(t); return e.on("error", n), !pse && !t.sync && lse && (XN.register(e, fse), e.on("close", function () { XN.unregister(e) })), e; function n(r) { if (r.code === "EPIPE") { e.write = Wu, e.end = Wu, e.flushSync = Wu, e.destroy = Wu; return } e.removeListener("error", n), e.emit("error", r) } } function fse(t, e) { t.destroyed || (e === "beforeExit" ? (t.flush(), t.on("drain", function () { t.end() })) : t.flushSync()) } function dse(t) { return function (n, r, i = {}, l) { if (typeof i == "string") l = v8({ dest: i }), i = {}; else if (typeof l == "string") { if (i && i.transport) throw Error("only one of option.transport or stream can be specified"); l = v8({ dest: l }) } else if (i instanceof Mh || i.writable || i._writableState) l = i, i = {}; else if (i.transport) { if (i.transport instanceof Mh || i.transport.writable || i.transport._writableState) throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)"); if (i.transport.targets && i.transport.targets.length && i.formatters && typeof i.formatters.level == "function") throw Error("option.transport.targets do not allow custom level formatters"); let o; i.customLevels && (o = i.useOnlyCustomLevels ? i.customLevels : Object.assign({}, i.levels, i.customLevels)), l = sse({ caller: r, ...i.transport, levels: o }) } if (i = Object.assign({}, t, i), i.serializers = Object.assign({}, t.serializers, i.serializers), i.formatters = Object.assign({}, t.formatters, i.formatters), i.prettyPrint) throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)"); let { enabled: s, onChild: a } = i; return s === !1 && (i.level = "silent"), a || (i.onChild = Wu), l || (cse(process.stdout) ? l = process.stdout : l = v8({ fd: process.stdout.fd || 1 })), { opts: i, stream: l } } } function hse(t, e) { try { return JSON.stringify(t) } catch { try { return (e || this[$h])(t) } catch { return '"[unable to serialize, circular reference is too complex to analyze]"' } } } function mse(t, e, n) { return { level: t, bindings: e, log: n } } function yse(t) { let e = Number(t); return typeof t == "string" && Number.isFinite(e) ? e : t === void 0 ? 1 : t } iC.exports = { noop: Wu, buildSafeSonicBoom: v8, asChindings: use, asJson: ose, genLog: ase, createArgsNormalizer: dse, stringify: hse, buildFormatters: mse, normalizeDestFileDescriptor: yse } }); var E8 = k((MNe, lC) => { var gse = { trace: 10, debug: 20, info: 30, warn: 40, error: 50, fatal: 60 }, vse = { ASC: "ASC", DESC: "DESC" }; lC.exports = { DEFAULT_LEVELS: gse, SORTING_ORDER: vse } }); var Vh = k(($Ne, oC) => { "use strict"; var { lsCacheSym: _se, levelValSym: Bh, useOnlyCustomLevelsSym: Ese, streamSym: bse, formattersSym: wse, hooksSym: Sse, levelCompSym: Tse } = Ku(), { noop: xse, genLog: g3 } = _8(), { DEFAULT_LEVELS: Xs, SORTING_ORDER: sC } = E8(), aC = { fatal: t => { let e = g3(Xs.fatal, t); return function (...n) { let r = this[bse]; if (e.call(this, ...n), typeof r.flushSync == "function") try { r.flushSync() } catch { } } }, error: t => g3(Xs.error, t), warn: t => g3(Xs.warn, t), info: t => g3(Xs.info, t), debug: t => g3(Xs.debug, t), trace: t => g3(Xs.trace, t) }, Hh = Object.keys(Xs).reduce((t, e) => (t[Xs[e]] = e, t), {}), Ase = Object.keys(Hh).reduce((t, e) => (t[e] = '{"level":' + Number(e), t), {}); function Ose(t) { let e = t[wse].level, { labels: n } = t.levels, r = {}; for (let i in n) { let l = e(n[i], Number(i)); r[i] = JSON.stringify(l).slice(0, -1) } return t[_se] = r, t } function Nse(t, e) { if (e) return !1; switch (t) { case "fatal": case "error": case "warn": case "info": case "debug": case "trace": return !0; default: return !1 } } function Cse(t) { let { labels: e, values: n } = this.levels; if (typeof t == "number") { if (e[t] === void 0) throw Error("unknown level value" + t); t = e[t] } if (n[t] === void 0) throw Error("unknown level " + t); let r = this[Bh], i = this[Bh] = n[t], l = this[Ese], s = this[Sse].logMethod; for (let a in n) { if (i > n[a]) { this[a] = xse; continue } this[a] = Nse(a, l) ? aC[a](s) : g3(n[a], s) } this.emit("level-change", t, i, e[r], r, this) } function Rse(t) { let { levels: e, levelVal: n } = this; return e && e.labels ? e.labels[n] : "" } function Ise(t) { let { values: e } = this.levels, n = e[t]; return n !== void 0 && this[Tse](n, this[Bh]) } function kse(t, e, n) { return t === sC.DESC ? e <= n : e >= n } function Dse(t) { return typeof t == "string" ? kse.bind(null, t) : t } function Pse(t = null, e = !1) { let n = t ? Object.keys(t).reduce((l, s) => (l[t[s]] = s, l), {}) : null, r = Object.assign(Object.create(Object.prototype, { Infinity: { value: "silent" } }), e ? null : Hh, n), i = Object.assign(Object.create(Object.prototype, { silent: { value: 1 / 0 } }), e ? null : Xs, t); return { labels: r, values: i } } function Lse(t, e, n) { if (typeof t == "number") { if (![].concat(Object.keys(e || {}).map(l => e[l]), n ? [] : Object.keys(Hh).map(l => +l), 1 / 0).includes(t)) throw Error(`default level:${t} must be included in custom levels`); return } let r = Object.assign(Object.create(Object.prototype, { silent: { value: 1 / 0 } }), n ? null : Xs, e); if (!(t in r)) throw Error(`default level:${t} must be included in custom levels`) } function Fse(t, e) { let { labels: n, values: r } = t; for (let i in e) { if (i in r) throw Error("levels cannot be overridden"); if (e[i] in n) throw Error("pre-existing level values cannot be used for new levels") } } function jse(t) { if (typeof t != "function" && !(typeof t == "string" && Object.values(sC).includes(t))) throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type') } oC.exports = { initialLsCache: Ase, genLsCache: Ose, levelMethods: aC, getLevel: Rse, setLevel: Cse, isLevelEnabled: Ise, mappings: Pse, assertNoLevelCollisions: Fse, assertDefaultLevelFound: Lse, genLevelComparison: Dse, assertLevelComparison: jse } }); var qh = k((BNe, uC) => { "use strict"; uC.exports = { version: "8.18.0" } }); var EC = k((VNe, _C) => { "use strict"; var { EventEmitter: Use } = require("events"), { lsCacheSym: Mse, levelValSym: $se, setLevelSym: Gh, getLevelSym: cC, chindingsSym: Jh, parsedChindingsSym: Bse, mixinSym: Hse, asJsonSym: mC, writeSym: Vse, mixinMergeStrategySym: qse, timeSym: zse, timeSliceIndexSym: Gse, streamSym: yC, serializersSym: v3, formattersSym: zh, errorKeySym: Jse, messageKeySym: Kse, useOnlyCustomLevelsSym: Xse, needsMetadataGsym: Wse, redactFmtSym: Yse, stringifySym: Qse, formatOptsSym: Zse, stringifiersSym: eae, msgPrefixSym: pC } = Ku(), { getLevel: tae, setLevel: nae, isLevelEnabled: rae, mappings: iae, initialLsCache: lae, genLsCache: sae, assertNoLevelCollisions: aae } = Vh(), { asChindings: gC, asJson: oae, buildFormatters: fC, stringify: dC } = _8(), { version: uae } = qh(), cae = Th(), pae = class { }, vC = { constructor: pae, child: fae, bindings: dae, setBindings: hae, flush: vae, isLevelEnabled: rae, version: uae, get level() { return this[cC]() }, set level(t) { this[Gh](t) }, get levelVal() { return this[$se] }, set levelVal(t) { throw Error("levelVal is read-only") }, [Mse]: lae, [Vse]: yae, [mC]: oae, [cC]: tae, [Gh]: nae }; Object.setPrototypeOf(vC, Use.prototype); _C.exports = function () { return Object.create(vC) }; var hC = t => t; function fae(t, e) { if (!t) throw Error("missing bindings for child Pino"); e = e || {}; let n = this[v3], r = this[zh], i = Object.create(this); if (e.hasOwnProperty("serializers") === !0) { i[v3] = Object.create(null); for (let c in n) i[v3][c] = n[c]; let o = Object.getOwnPropertySymbols(n); for (var l = 0; l < o.length; l++) { let c = o[l]; i[v3][c] = n[c] } for (let c in e.serializers) i[v3][c] = e.serializers[c]; let u = Object.getOwnPropertySymbols(e.serializers); for (var s = 0; s < u.length; s++) { let c = u[s]; i[v3][c] = e.serializers[c] } } else i[v3] = n; if (e.hasOwnProperty("formatters")) { let { level: o, bindings: u, log: c } = e.formatters; i[zh] = fC(o || r.level, u || hC, c || r.log) } else i[zh] = fC(r.level, hC, r.log); if (e.hasOwnProperty("customLevels") === !0 && (aae(this.levels, e.customLevels), i.levels = iae(e.customLevels, i[Xse]), sae(i)), typeof e.redact == "object" && e.redact !== null || Array.isArray(e.redact)) { i.redact = e.redact; let o = cae(i.redact, dC), u = { stringify: o[Yse] }; i[Qse] = dC, i[eae] = o, i[Zse] = u } typeof e.msgPrefix == "string" && (i[pC] = (this[pC] || "") + e.msgPrefix), i[Jh] = gC(i, t); let a = e.level || this.level; return i[Gh](a), this.onChild(i), i } function dae() { let e = `{${this[Jh].substr(1)}}`, n = JSON.parse(e); return delete n.pid, delete n.hostname, n } function hae(t) { let e = gC(this, t); this[Jh] = e, delete this[Bse] } function mae(t, e) { return Object.assign(e, t) } function yae(t, e, n) { let r = this[zse](), i = this[Hse], l = this[Jse], s = this[Kse], a = this[qse] || mae, o; t == null ? o = {} : t instanceof Error ? (o = { [l]: t }, e === void 0 && (e = t.message)) : (o = t, e === void 0 && t[s] === void 0 && t[l] && (e = t[l].message)), i && (o = a(o, i(o, n, this))); let u = this[mC](o, e, n, r), c = this[yC]; c[Wse] === !0 && (c.lastLevel = n, c.lastObj = o, c.lastMsg = e, c.lastTime = r.slice(this[Gse]), c.lastLogger = this), c.write(u) } function gae() { } function vae(t) { if (t != null && typeof t != "function") throw Error("callback must be a function"); let e = this[yC]; typeof e.flush == "function" ? e.flush(t || gae) : t && t() } }); var xC = k((Yh, TC) => {
"use strict"; var { hasOwnProperty: b8 } = Object.prototype, E3 = Wh(); E3.configure = Wh; E3.stringify = E3; E3.default = E3; Yh.stringify = E3; Yh.configure = Wh; TC.exports = E3; var _ae = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/; function _2(t) { return t.length < 5e3 && !_ae.test(t) ? `"${t}"` : JSON.stringify(t) } function Kh(t) { if (t.length > 200) return t.sort(); for (let e = 1; e < t.length; e++) { let n = t[e], r = e; for (; r !== 0 && t[r - 1] > n;)t[r] = t[r - 1], r--; t[r] = n } return t } var Eae = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)), Symbol.toStringTag).get; function Xh(t) { return Eae.call(t) !== void 0 && t.length !== 0 } function bC(t, e, n) { t.length < n && (n = t.length); let r = e === "," ? "" : " ", i = `"0":${r}${t[0]}`; for (let l = 1; l < n; l++)i += `${e}"${l}":${r}${t[l]}`; return i } function bae(t) { if (b8.call(t, "circularValue")) { let e = t.circularValue; if (typeof e == "string") return `"${e}"`; if (e == null) return e; if (e === Error || e === TypeError) return { toString() { throw new TypeError("Converting circular structure to JSON") } }; throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined') } return '"[Circular]"' } function wC(t, e) { let n; if (b8.call(t, e) && (n = t[e], typeof n != "boolean")) throw new TypeError(`The "${e}" argument must be of type boolean`); return n === void 0 ? !0 : n } function SC(t, e) { let n; if (b8.call(t, e)) { if (n = t[e], typeof n != "number") throw new TypeError(`The "${e}" argument must be of type number`); if (!Number.isInteger(n)) throw new TypeError(`The "${e}" argument must be an integer`); if (n < 1) throw new RangeError(`The "${e}" argument must be >= 1`) } return n === void 0 ? 1 / 0 : n } function _3(t) { return t === 1 ? "1 item" : `${t} items` } function wae(t) { let e = new Set; for (let n of t) (typeof n == "string" || typeof n == "number") && e.add(String(n)); return e } function Sae(t) { if (b8.call(t, "strict")) { let e = t.strict; if (typeof e != "boolean") throw new TypeError('The "strict" argument must be of type boolean'); if (e) return n => { let r = `Object can not safely be stringified. Received type ${typeof n}`; throw typeof n != "function" && (r += ` (${n.toString()})`), new Error(r) } } } function Wh(t) {
t = { ...t }; let e = Sae(t); e && (t.bigint === void 0 && (t.bigint = !1), "circularValue" in t || (t.circularValue = Error)); let n = bae(t), r = wC(t, "bigint"), i = wC(t, "deterministic"), l = SC(t, "maximumDepth"), s = SC(t, "maximumBreadth"); function a(m, d, y, _, S, w) {
let E = d[m]; switch (typeof E == "object" && E !== null && typeof E.toJSON == "function" && (E = E.toJSON(m)), E = _.call(d, m, E), typeof E) {
case "string": return _2(E); case "object": {
if (E === null) return "null"; if (y.indexOf(E) !== -1) return n; let g = "", v = ",", x = w; if (Array.isArray(E)) {
if (E.length === 0) return "[]"; if (l < y.length + 1) return '"[Array]"'; y.push(E), S !== "" && (w += S, g += `
${w}`, v = `,
${w}`); let te = Math.min(E.length, s), Q = 0; for (; Q < te - 1; Q++) { let ce = a(String(Q), E, y, _, S, w); g += ce !== void 0 ? ce : "null", g += v } let W = a(String(Q), E, y, _, S, w); if (g += W !== void 0 ? W : "null", E.length - 1 > s) { let ce = E.length - s - 1; g += `${v}"... ${_3(ce)} not stringified"` } return S !== "" && (g += `
${x}`), y.pop(), `[${g}]`
} let O = Object.keys(E), N = O.length; if (N === 0) return "{}"; if (l < y.length + 1) return '"[Object]"'; let R = "", U = ""; S !== "" && (w += S, v = `,
${w}`, R = " "); let F = Math.min(N, s); i && !Xh(E) && (O = Kh(O)), y.push(E); for (let te = 0; te < F; te++) { let Q = O[te], W = a(Q, E, y, _, S, w); W !== void 0 && (g += `${U}${_2(Q)}:${R}${W}`, U = v) } if (N > s) { let te = N - s; g += `${U}"...":${R}"${_3(te)} not stringified"`, U = v } return S !== "" && U.length > 1 && (g = `
${w}${g}
${x}`), y.pop(), `{${g}}`
} case "number": return isFinite(E) ? String(E) : e ? e(E) : "null"; case "boolean": return E === !0 ? "true" : "false"; case "undefined": return; case "bigint": if (r) return String(E); default: return e ? e(E) : void 0
}
} function o(m, d, y, _, S, w) {
switch (typeof d == "object" && d !== null && typeof d.toJSON == "function" && (d = d.toJSON(m)), typeof d) {
case "string": return _2(d); case "object": {
if (d === null) return "null"; if (y.indexOf(d) !== -1) return n; let E = w, g = "", v = ","; if (Array.isArray(d)) {
if (d.length === 0) return "[]"; if (l < y.length + 1) return '"[Array]"'; y.push(d), S !== "" && (w += S, g += `
${w}`, v = `,
${w}`); let N = Math.min(d.length, s), R = 0; for (; R < N - 1; R++) { let F = o(String(R), d[R], y, _, S, w); g += F !== void 0 ? F : "null", g += v } let U = o(String(R), d[R], y, _, S, w); if (g += U !== void 0 ? U : "null", d.length - 1 > s) { let F = d.length - s - 1; g += `${v}"... ${_3(F)} not stringified"` } return S !== "" && (g += `
${E}`), y.pop(), `[${g}]`
} y.push(d); let x = ""; S !== "" && (w += S, v = `,
${w}`, x = " "); let O = ""; for (let N of _) { let R = o(N, d[N], y, _, S, w); R !== void 0 && (g += `${O}${_2(N)}:${x}${R}`, O = v) } return S !== "" && O.length > 1 && (g = `
${w}${g}
${E}`), y.pop(), `{${g}}`
} case "number": return isFinite(d) ? String(d) : e ? e(d) : "null"; case "boolean": return d === !0 ? "true" : "false"; case "undefined": return; case "bigint": if (r) return String(d); default: return e ? e(d) : void 0
}
} function u(m, d, y, _, S) {
switch (typeof d) {
case "string": return _2(d); case "object": {
if (d === null) return "null"; if (typeof d.toJSON == "function") { if (d = d.toJSON(m), typeof d != "object") return u(m, d, y, _, S); if (d === null) return "null" } if (y.indexOf(d) !== -1) return n; let w = S; if (Array.isArray(d)) {
if (d.length === 0) return "[]"; if (l < y.length + 1) return '"[Array]"'; y.push(d), S += _; let R = `
${S}`, U = `,
${S}`, F = Math.min(d.length, s), te = 0; for (; te < F - 1; te++) { let W = u(String(te), d[te], y, _, S); R += W !== void 0 ? W : "null", R += U } let Q = u(String(te), d[te], y, _, S); if (R += Q !== void 0 ? Q : "null", d.length - 1 > s) { let W = d.length - s - 1; R += `${U}"... ${_3(W)} not stringified"` } return R += `
${w}`, y.pop(), `[${R}]`
} let E = Object.keys(d), g = E.length; if (g === 0) return "{}"; if (l < y.length + 1) return '"[Object]"'; S += _; let v = `,
${S}`, x = "", O = "", N = Math.min(g, s); Xh(d) && (x += bC(d, v, s), E = E.slice(d.length), N -= d.length, O = v), i && (E = Kh(E)), y.push(d); for (let R = 0; R < N; R++) { let U = E[R], F = u(U, d[U], y, _, S); F !== void 0 && (x += `${O}${_2(U)}: ${F}`, O = v) } if (g > s) { let R = g - s; x += `${O}"...": "${_3(R)} not stringified"`, O = v } return O !== "" && (x = `
${S}${x}
${w}`), y.pop(), `{${x}}`
} case "number": return isFinite(d) ? String(d) : e ? e(d) : "null"; case "boolean": return d === !0 ? "true" : "false"; case "undefined": return; case "bigint": if (r) return String(d); default: return e ? e(d) : void 0
}
} function c(m, d, y) { switch (typeof d) { case "string": return _2(d); case "object": { if (d === null) return "null"; if (typeof d.toJSON == "function") { if (d = d.toJSON(m), typeof d != "object") return c(m, d, y); if (d === null) return "null" } if (y.indexOf(d) !== -1) return n; let _ = ""; if (Array.isArray(d)) { if (d.length === 0) return "[]"; if (l < y.length + 1) return '"[Array]"'; y.push(d); let v = Math.min(d.length, s), x = 0; for (; x < v - 1; x++) { let N = c(String(x), d[x], y); _ += N !== void 0 ? N : "null", _ += "," } let O = c(String(x), d[x], y); if (_ += O !== void 0 ? O : "null", d.length - 1 > s) { let N = d.length - s - 1; _ += `,"... ${_3(N)} not stringified"` } return y.pop(), `[${_}]` } let S = Object.keys(d), w = S.length; if (w === 0) return "{}"; if (l < y.length + 1) return '"[Object]"'; let E = "", g = Math.min(w, s); Xh(d) && (_ += bC(d, ",", s), S = S.slice(d.length), g -= d.length, E = ","), i && (S = Kh(S)), y.push(d); for (let v = 0; v < g; v++) { let x = S[v], O = c(x, d[x], y); O !== void 0 && (_ += `${E}${_2(x)}:${O}`, E = ",") } if (w > s) { let v = w - s; _ += `${E}"...":"${_3(v)} not stringified"` } return y.pop(), `{${_}}` } case "number": return isFinite(d) ? String(d) : e ? e(d) : "null"; case "boolean": return d === !0 ? "true" : "false"; case "undefined": return; case "bigint": if (r) return String(d); default: return e ? e(d) : void 0 } } function f(m, d, y) { if (arguments.length > 1) { let _ = ""; if (typeof y == "number" ? _ = " ".repeat(Math.min(y, 10)) : typeof y == "string" && (_ = y.slice(0, 10)), d != null) { if (typeof d == "function") return a("", { "": m }, [], d, _, ""); if (Array.isArray(d)) return o("", m, [], wae(d), _, "") } if (_.length !== 0) return u("", m, [], _, "") } return c("", m, []) } return f
}
}); var NC = k((qNe, OC) => { "use strict"; var Qh = Symbol.for("pino.metadata"), { DEFAULT_LEVELS: AC } = E8(), Tae = AC.info; function xae(t, e) { let n = 0; t = t || [], e = e || { dedupe: !1 }; let r = Object.create(AC); r.silent = 1 / 0, e.levels && typeof e.levels == "object" && Object.keys(e.levels).forEach(c => { r[c] = e.levels[c] }); let i = { write: l, add: a, flushSync: s, end: o, minLevel: 0, streams: [], clone: u, [Qh]: !0, streamLevels: r }; return Array.isArray(t) ? t.forEach(a, i) : a.call(i, t), t = null, i; function l(c) { let f, m = this.lastLevel, { streams: d } = this, y = 0, _; for (let S = Oae(d.length, e.dedupe); Cae(S, d.length, e.dedupe); S = Nae(S, e.dedupe))if (f = d[S], f.level <= m) { if (y !== 0 && y !== f.level) break; if (_ = f.stream, _[Qh]) { let { lastTime: w, lastMsg: E, lastObj: g, lastLogger: v } = this; _.lastLevel = m, _.lastTime = w, _.lastMsg = E, _.lastObj = g, _.lastLogger = v } _.write(c), e.dedupe && (y = f.level) } else if (!e.dedupe) break } function s() { for (let { stream: c } of this.streams) typeof c.flushSync == "function" && c.flushSync() } function a(c) { if (!c) return i; let f = typeof c.write == "function" || c.stream, m = c.write ? c : c.stream; if (!f) throw Error("stream object needs to implement either StreamEntry or DestinationStream interface"); let { streams: d, streamLevels: y } = this, _; typeof c.levelVal == "number" ? _ = c.levelVal : typeof c.level == "string" ? _ = y[c.level] : typeof c.level == "number" ? _ = c.level : _ = Tae; let S = { stream: m, level: _, levelVal: void 0, id: n++ }; return d.unshift(S), d.sort(Aae), this.minLevel = d[0].level, i } function o() { for (let { stream: c } of this.streams) typeof c.flushSync == "function" && c.flushSync(), c.end() } function u(c) { let f = new Array(this.streams.length); for (let m = 0; m < f.length; m++)f[m] = { level: c, stream: this.streams[m].stream }; return { write: l, add: a, minLevel: c, streams: f, clone: u, flushSync: s, [Qh]: !0 } } } function Aae(t, e) { return t.level - e.level } function Oae(t, e) { return e ? t - 1 : 0 } function Nae(t, e) { return e ? t - 1 : t + 1 } function Cae(t, e, n) { return n ? t >= 0 : t < e } OC.exports = xae }); var BC = k((zNe, Xl) => {
"use strict"; var Rae = require("os"), FC = yh(), Iae = gh(), kae = Th(), jC = bN(), Dae = EC(), UC = Ku(), { configure: Pae } = xC(), { assertDefaultLevelFound: Lae, mappings: MC, genLsCache: Fae, genLevelComparison: jae, assertLevelComparison: Uae } = Vh(), { DEFAULT_LEVELS: Mae, SORTING_ORDER: $ae } = E8(), { createArgsNormalizer: Bae, asChindings: Hae, buildSafeSonicBoom: CC, buildFormatters: Vae, stringify: Zh, normalizeDestFileDescriptor: RC, noop: qae } = _8(), { version: zae } = qh(), { chindingsSym: IC, redactFmtSym: Gae, serializersSym: kC, timeSym: Jae, timeSliceIndexSym: Kae, streamSym: Xae, stringifySym: DC, stringifySafeSym: em, stringifiersSym: PC, setLevelSym: Wae, endSym: Yae, formatOptsSym: Qae, messageKeySym: Zae, errorKeySym: e2e, nestedKeySym: t2e, mixinSym: n2e, levelCompSym: r2e, useOnlyCustomLevelsSym: i2e, formattersSym: LC, hooksSym: l2e, nestedKeyStrSym: s2e, mixinMergeStrategySym: a2e, msgPrefixSym: o2e } = UC, { epochTime: $C, nullTime: u2e } = jC, { pid: c2e } = process, p2e = Rae.hostname(), f2e = FC.err, d2e = { level: "info", levelComparison: $ae.ASC, levels: Mae, messageKey: "msg", errorKey: "err", nestedKey: null, enabled: !0, base: { pid: c2e, hostname: p2e }, serializers: Object.assign(Object.create(null), { err: f2e }), formatters: Object.assign(Object.create(null), { bindings(t) { return t }, level(t, e) { return { level: e } } }), hooks: { logMethod: void 0 }, timestamp: $C, name: void 0, redact: null, customLevels: null, useOnlyCustomLevels: !1, depthLimit: 5, edgeLimit: 100 }, h2e = Bae(d2e), m2e = Object.assign(Object.create(null), FC); function tm(...t) {
let e = {}, { opts: n, stream: r } = h2e(e, Iae(), ...t), { redact: i, crlf: l, serializers: s, timestamp: a, messageKey: o, errorKey: u, nestedKey: c, base: f, name: m, level: d, customLevels: y, levelComparison: _, mixin: S, mixinMergeStrategy: w, useOnlyCustomLevels: E, formatters: g, hooks: v, depthLimit: x, edgeLimit: O, onChild: N, msgPrefix: R } = n, U = Pae({ maximumDepth: x, maximumBreadth: O }), F = Vae(g.level, g.bindings, g.log), te = Zh.bind({ [em]: U }), Q = i ? kae(i, te) : {}, W = i ? { stringify: Q[Gae] } : { stringify: te }, ce = "}" + (l ? `\r
`: `
`), we = Hae.bind(null, { [IC]: "", [kC]: s, [PC]: Q, [DC]: Zh, [em]: U, [LC]: F }), se = ""; f !== null && (m === void 0 ? se = we(f) : se = we(Object.assign({}, f, { name: m }))); let ee = a instanceof Function ? a : a ? $C : u2e, me = ee().indexOf(":") + 1; if (E && !y) throw Error("customLevels is required if useOnlyCustomLevels is set true"); if (S && typeof S != "function") throw Error(`Unknown mixin type "${typeof S}" - expected "function"`); if (R && typeof R != "string") throw Error(`Unknown msgPrefix type "${typeof R}" - expected "string"`); Lae(d, y, E); let P = MC(y, E); Uae(_); let G = jae(_); return Object.assign(e, { levels: P, [r2e]: G, [i2e]: E, [Xae]: r, [Jae]: ee, [Kae]: me, [DC]: Zh, [em]: U, [PC]: Q, [Yae]: ce, [Qae]: W, [Zae]: o, [e2e]: u, [t2e]: c, [s2e]: c ? `,${JSON.stringify(c)}:{` : "", [kC]: s, [n2e]: S, [a2e]: w, [IC]: se, [LC]: F, [l2e]: v, silent: qae, onChild: N, [o2e]: R }), Object.setPrototypeOf(e, Dae()), Fae(e), e[Wae](d), e
} Xl.exports = tm; Xl.exports.destination = (t = process.stdout.fd) => typeof t == "object" ? (t.dest = RC(t.dest || process.stdout.fd), CC(t)) : CC({ dest: RC(t), minLength: 0 }); Xl.exports.transport = jh(); Xl.exports.multistream = NC(); Xl.exports.levels = MC(); Xl.exports.stdSerializers = m2e; Xl.exports.stdTimeFunctions = Object.assign({}, jC); Xl.exports.symbols = UC; Xl.exports.version = zae; Xl.exports.default = tm; Xl.exports.pino = tm
}); var c4 = k((GNe, GC) => { "use strict"; var y2e = IO(), w8 = BC(), { serializersSym: HC } = w8.symbols, { FST_ERR_LOG_INVALID_DESTINATION: g2e, FST_ERR_LOG_INVALID_LOGGER: v2e } = Ui(); function VC(t) { if (t.stream && t.file) throw new g2e; t.file && (t.stream = w8.destination(t.file), delete t.file); let e = t.logger, n = t.genReqId, r = null; return e ? (t.logger = void 0, t.genReqId = void 0, e[HC] && (t.serializers = Object.assign({}, t.serializers, e[HC])), r = e.child({}, t), t.logger = e, t.genReqId = n) : r = w8(t, t.stream), r } var nm = { req: function (e) { return { method: e.method, url: e.url, version: e.headers && e.headers["accept-version"], hostname: e.hostname, remoteAddress: e.ip, remotePort: e.socket ? e.socket.remotePort : void 0 } }, err: w8.stdSerializers.err, res: function (e) { return { statusCode: e.statusCode } } }; function _2e() { let t = process.hrtime(); return t[0] * 1e3 + t[1] / 1e6 } function E2e(t) { if (!t.logger) { let r = y2e; return r.child = () => r, { logger: r, hasLogger: !1 } } if (qC(t.logger)) return { logger: VC({ logger: t.logger, serializers: Object.assign({}, nm, t.logger.serializers) }), hasLogger: !0 }; let e = {}; return Object.prototype.toString.call(t.logger) === "[object Object]" && Reflect.ownKeys(t.logger).forEach(r => { Object.defineProperty(e, r, { value: t.logger[r], writable: !0, enumerable: !0, configurable: !0 }) }), e.level = e.level || "info", e.serializers = Object.assign({}, nm, e.serializers), t.logger = e, { logger: VC(t.logger), hasLogger: !0 } } function qC(t, e) { let n = ["info", "error", "debug", "fatal", "warn", "trace", "child"], r = t ? n.filter(i => !t[i] || typeof t[i] != "function") : n; if (r.length) { if (r.length === n.length && !e) return !1; throw v2e(r.join(",")) } else return !0 } function b2e(t, e, n, r, i) { let l = { [t.requestIdLogLabel]: r }, s = t.childLoggerFactory.call(t.server, e, l, i || {}, n); return t.childLoggerFactory !== zC && qC(s, !0), s } function zC(t, e, n) { return t.child(e, n) } GC.exports = { createLogger: E2e, createChildLogger: b2e, defaultChildLoggerFactory: zC, serializers: nm, now: _2e } }); var p4 = k((JNe, JC) => { "use strict"; JC.exports = w2e; function Yu(t) { return t instanceof Buffer ? Buffer.from(t) : new t.constructor(t.buffer.slice(), t.byteOffset, t.length) } function w2e(t) { if (t = t || {}, t.circles) return S2e(t); return t.proto ? r : n; function e(i, l) { for (var s = Object.keys(i), a = new Array(s.length), o = 0; o < s.length; o++) { var u = s[o], c = i[u]; typeof c != "object" || c === null ? a[u] = c : c instanceof Date ? a[u] = new Date(c) : ArrayBuffer.isView(c) ? a[u] = Yu(c) : a[u] = l(c) } return a } function n(i) { if (typeof i != "object" || i === null) return i; if (i instanceof Date) return new Date(i); if (Array.isArray(i)) return e(i, n); if (i instanceof Map) return new Map(e(Array.from(i), n)); if (i instanceof Set) return new Set(e(Array.from(i), n)); var l = {}; for (var s in i) if (Object.hasOwnProperty.call(i, s) !== !1) { var a = i[s]; typeof a != "object" || a === null ? l[s] = a : a instanceof Date ? l[s] = new Date(a) : a instanceof Map ? l[s] = new Map(e(Array.from(a), n)) : a instanceof Set ? l[s] = new Set(e(Array.from(a), n)) : ArrayBuffer.isView(a) ? l[s] = Yu(a) : l[s] = n(a) } return l } function r(i) { if (typeof i != "object" || i === null) return i; if (i instanceof Date) return new Date(i); if (Array.isArray(i)) return e(i, r); if (i instanceof Map) return new Map(e(Array.from(i), r)); if (i instanceof Set) return new Set(e(Array.from(i), r)); var l = {}; for (var s in i) { var a = i[s]; typeof a != "object" || a === null ? l[s] = a : a instanceof Date ? l[s] = new Date(a) : a instanceof Map ? l[s] = new Map(e(Array.from(a), r)) : a instanceof Set ? l[s] = new Set(e(Array.from(a), r)) : ArrayBuffer.isView(a) ? l[s] = Yu(a) : l[s] = r(a) } return l } } function S2e(t) { var e = [], n = []; return t.proto ? l : i; function r(s, a) { for (var o = Object.keys(s), u = new Array(o.length), c = 0; c < o.length; c++) { var f = o[c], m = s[f]; if (typeof m != "object" || m === null) u[f] = m; else if (m instanceof Date) u[f] = new Date(m); else if (ArrayBuffer.isView(m)) u[f] = Yu(m); else { var d = e.indexOf(m); d !== -1 ? u[f] = n[d] : u[f] = a(m) } } return u } function i(s) { if (typeof s != "object" || s === null) return s; if (s instanceof Date) return new Date(s); if (Array.isArray(s)) return r(s, i); if (s instanceof Map) return new Map(r(Array.from(s), i)); if (s instanceof Set) return new Set(r(Array.from(s), i)); var a = {}; e.push(s), n.push(a); for (var o in s) if (Object.hasOwnProperty.call(s, o) !== !1) { var u = s[o]; if (typeof u != "object" || u === null) a[o] = u; else if (u instanceof Date) a[o] = new Date(u); else if (u instanceof Map) a[o] = new Map(r(Array.from(u), i)); else if (u instanceof Set) a[o] = new Set(r(Array.from(u), i)); else if (ArrayBuffer.isView(u)) a[o] = Yu(u); else { var c = e.indexOf(u); c !== -1 ? a[o] = n[c] : a[o] = i(u) } } return e.pop(), n.pop(), a } function l(s) { if (typeof s != "object" || s === null) return s; if (s instanceof Date) return new Date(s); if (Array.isArray(s)) return r(s, l); if (s instanceof Map) return new Map(r(Array.from(s), l)); if (s instanceof Set) return new Set(r(Array.from(s), l)); var a = {}; e.push(s), n.push(a); for (var o in s) { var u = s[o]; if (typeof u != "object" || u === null) a[o] = u; else if (u instanceof Date) a[o] = new Date(u); else if (u instanceof Map) a[o] = new Map(r(Array.from(u), l)); else if (u instanceof Set) a[o] = new Set(r(Array.from(u), l)); else if (ArrayBuffer.isView(u)) a[o] = Yu(u); else { var c = e.indexOf(u); c !== -1 ? a[o] = n[c] : a[o] = l(u) } } return e.pop(), n.pop(), a } } }); var f4 = k((KNe, YC) => { "use strict"; var T2e = p4()({ circles: !1, proto: !0 }), { kSchemaVisited: KC, kSchemaResponse: x2e } = di(), im = Symbol.for("fluent-schema-object"), { FST_ERR_SCH_MISSING_ID: A2e, FST_ERR_SCH_ALREADY_PRESENT: O2e, FST_ERR_SCH_DUPLICATE: N2e, FST_ERR_SCH_CONTENT_MISSING_SCHEMA: C2e } = Ui(), WC = ["params", "body", "querystring", "query", "headers"]; function S8(t) { this.store = t || {} } S8.prototype.add = function (t) { let e = T2e(t.isFluentSchema || t.isFluentJSONSchema || t[im] ? t.valueOf() : t), n = e.$id; if (!n) throw new A2e; if (this.store[n]) throw new O2e(n); this.store[n] = e }; S8.prototype.getSchemas = function () { return Object.assign({}, this.store) }; S8.prototype.getSchema = function (t) { return this.store[t] }; function XC(t) { return typeof t == "object" && Object.getPrototypeOf(t) !== Object.prototype } function R2e(t, e) { if (t[KC]) return t; if (t.query) { if (t.querystring) throw new N2e("querystring"); t.querystring = t.query } I2e(t); for (let n of WC) { let r = t[n]; r && !XC(r) && (t[n] = rm(r, e.jsonShorthand)) } if (t.response) { let n = Object.keys(t.response); for (let r of n) { if (XC(t.response[r])) continue; let i = t.response[r].content, l = !1; if (i) { let s = Object.keys(i); for (let a = 0; a < s.length; a++) { let o = s[a]; if (!i[o].schema) { if (s.length === 1) break; throw new C2e(o) } t.response[r].content[o].schema = rm(i[o].schema, e.jsonShorthand), a === s.length - 1 && (l = !0) } } l || (t.response[r] = rm(t.response[r], e.jsonShorthand)) } } return t[KC] = !0, t } function I2e(t) { for (let e of WC) t[e] && (t[e].isFluentSchema || t[e][im]) && (t[e] = t[e].valueOf()); if (t.response) { let e = Object.keys(t.response); for (let n of e) (t.response[n].isFluentSchema || t.response[n][im]) && (t.response[n] = t.response[n].valueOf()) } } function rm(t, e) { return !e || t.$ref || t.oneOf || t.allOf || t.anyOf || t.$merge || t.$patch ? t : !t.type && !t.properties ? { type: "object", properties: t } : t } function k2e(t, e, n) { let r = t[x2e]; if (!r) return !1; if (r[e]) { if (r[e].constructor === Object && n) { let l = n.split(";", 1)[0]; return r[e][l] ? r[e][l] : !1 } return r[e] } let i = (e + "")[0] + "xx"; if (r[i]) { if (r[i].constructor === Object && n) { let l = n.split(";", 1)[0]; return r[i][l] ? r[i][l] : !1 } return r[i] } if (r.default) { if (r.default.constructor === Object && n) { let l = n.split(";", 1)[0]; return r.default[l] ? r.default[l] : !1 } return r.default } return !1 } YC.exports = { buildSchemas(t) { return new S8(t) }, getSchemaSerializer: k2e, normalizeSchema: R2e } }); var lm = k((XNe, ZC) => { "use strict"; var D2e = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/; ZC.exports = class QC { constructor(e) { switch (e && e.rounding) { case "floor": this.parseInteger = Math.floor; break; case "ceil": this.parseInteger = Math.ceil; break; case "round": this.parseInteger = Math.round; break; case "trunc": default: this.parseInteger = Math.trunc; break }this._options = e } asInteger(e) { if (typeof e == "number") { if (e === 1 / 0 || e === -1 / 0) throw new Error(`The value "${e}" cannot be converted to an integer.`); if (Number.isInteger(e)) return "" + e; if (Number.isNaN(e)) throw new Error(`The value "${e}" cannot be converted to an integer.`); return this.parseInteger(e) } else { if (e === null) return "0"; if (typeof e == "bigint") return e.toString(); { let n = this.parseInteger(e); if (Number.isFinite(n)) return "" + n; throw new Error(`The value "${e}" cannot be converted to an integer.`) } } } asNumber(e) { let n = Number(e); if (Number.isNaN(n)) throw new Error(`The value "${e}" cannot be converted to a number.`); return Number.isFinite(n) ? "" + n : "null" } asBoolean(e) { return e && "true" || "false" } asDateTime(e) { if (e === null) return '""'; if (e instanceof Date) return '"' + e.toISOString() + '"'; if (typeof e == "string") return '"' + e + '"'; throw new Error(`The value "${e}" cannot be converted to a date-time.`) } asDate(e) { if (e === null) return '""'; if (e instanceof Date) return '"' + new Date(e.getTime() - e.getTimezoneOffset() * 6e4).toISOString().slice(0, 10) + '"'; if (typeof e == "string") return '"' + e + '"'; throw new Error(`The value "${e}" cannot be converted to a date.`) } asTime(e) { if (e === null) return '""'; if (e instanceof Date) return '"' + new Date(e.getTime() - e.getTimezoneOffset() * 6e4).toISOString().slice(11, 19) + '"'; if (typeof e == "string") return '"' + e + '"'; throw new Error(`The value "${e}" cannot be converted to a time.`) } asString(e) { if (typeof e != "string") { if (e === null) return '""'; if (e instanceof Date) return '"' + e.toISOString() + '"'; e instanceof RegExp ? e = e.source : e = e.toString() } return e.length < 42 ? this.asStringSmall(e) : D2e.test(e) === !1 ? '"' + e + '"' : JSON.stringify(e) } asStringSmall(e) { let n = e.length, r = "", i = -1, l = 255; for (var s = 0; s < n; s++) { if (l = e.charCodeAt(s), l < 32 || l >= 55296 && l <= 57343) return JSON.stringify(e); (l === 34 || l === 92) && (i === -1 && (i = 0), r += e.slice(i, s) + "\\", i = s) } return i === -1 && '"' + e + '"' || '"' + r + e.slice(i) + '"' } getState() { return this._options } static restoreFromState(e) { return new QC(e) } } }); var Qu = k(tn => { "use strict"; Object.defineProperty(tn, "__esModule", { value: !0 }); tn.regexpCode = tn.getEsmExportName = tn.getProperty = tn.safeStringify = tn.stringify = tn.strConcat = tn.addCodeArg = tn.str = tn._ = tn.nil = tn._Code = tn.Name = tn.IDENTIFIER = tn._CodeOrName = void 0; var d4 = class { }; tn._CodeOrName = d4; tn.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i; var b3 = class extends d4 { constructor(e) { if (super(), !tn.IDENTIFIER.test(e)) throw new Error("CodeGen: name must be a valid identifier"); this.str = e } toString() { return this.str } emptyStr() { return !1 } get names() { return { [this.str]: 1 } } }; tn.Name = b3; var Wl = class extends d4 { constructor(e) { super(), this._items = typeof e == "string" ? [e] : e } toString() { return this.str } emptyStr() { if (this._items.length > 1) return !1; let e = this._items[0]; return e === "" || e === '""' } get str() { var e; return (e = this._str) !== null && e !== void 0 ? e : this._str = this._items.reduce((n, r) => `${n}${r}`, "") } get names() { var e; return (e = this._names) !== null && e !== void 0 ? e : this._names = this._items.reduce((n, r) => (r instanceof b3 && (n[r.str] = (n[r.str] || 0) + 1), n), {}) } }; tn._Code = Wl; tn.nil = new Wl(""); function eR(t, ...e) { let n = [t[0]], r = 0; for (; r < e.length;)am(n, e[r]), n.push(t[++r]); return new Wl(n) } tn._ = eR; var sm = new Wl("+"); function tR(t, ...e) { let n = [h4(t[0])], r = 0; for (; r < e.length;)n.push(sm), am(n, e[r]), n.push(sm, h4(t[++r])); return P2e(n), new Wl(n) } tn.str = tR; function am(t, e) { e instanceof Wl ? t.push(...e._items) : e instanceof b3 ? t.push(e) : t.push(j2e(e)) } tn.addCodeArg = am; function P2e(t) { let e = 1; for (; e < t.length - 1;) { if (t[e] === sm) { let n = L2e(t[e - 1], t[e + 1]); if (n !== void 0) { t.splice(e - 1, 3, n); continue } t[e++] = "+" } e++ } } function L2e(t, e) { if (e === '""') return t; if (t === '""') return e; if (typeof t == "string") return e instanceof b3 || t[t.length - 1] !== '"' ? void 0 : typeof e != "string" ? `${t.slice(0, -1)}${e}"` : e[0] === '"' ? t.slice(0, -1) + e.slice(1) : void 0; if (typeof e == "string" && e[0] === '"' && !(t instanceof b3)) return `"${t}${e.slice(1)}` } function F2e(t, e) { return e.emptyStr() ? t : t.emptyStr() ? e : tR`${t}${e}` } tn.strConcat = F2e; function j2e(t) { return typeof t == "number" || typeof t == "boolean" || t === null ? t : h4(Array.isArray(t) ? t.join(",") : t) } function U2e(t) { return new Wl(h4(t)) } tn.stringify = U2e; function h4(t) { return JSON.stringify(t).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029") } tn.safeStringify = h4; function M2e(t) { return typeof t == "string" && tn.IDENTIFIER.test(t) ? new Wl(`.${t}`) : eR`[${t}]` } tn.getProperty = M2e; function $2e(t) { if (typeof t == "string" && tn.IDENTIFIER.test(t)) return new Wl(`${t}`); throw new Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`) } tn.getEsmExportName = $2e; function B2e(t) { return new Wl(t.toString()) } tn.regexpCode = B2e }); var A8 = k(Zi => { "use strict"; Object.defineProperty(Zi, "__esModule", { value: !0 }); Zi.ValueScope = Zi.ValueScopeName = Zi.Scope = Zi.varKinds = Zi.UsedValueState = void 0; var hl = Qu(), om = class extends Error { constructor(e) { super(`CodeGen: "code" for ${e} not defined`), this.value = e.value } }, um; (function (t) { t[t.Started = 0] = "Started", t[t.Completed = 1] = "Completed" })(um = Zi.UsedValueState || (Zi.UsedValueState = {})); Zi.varKinds = { const: new hl.Name("const"), let: new hl.Name("let"), var: new hl.Name("var") }; var T8 = class { constructor({ prefixes: e, parent: n } = {}) { this._names = {}, this._prefixes = e, this._parent = n } toName(e) { return e instanceof hl.Name ? e : this.name(e) } name(e) { return new hl.Name(this._newName(e)) } _newName(e) { let n = this._names[e] || this._nameGroup(e); return `${e}${n.index++}` } _nameGroup(e) { var n, r; if (!((r = (n = this._parent) === null || n === void 0 ? void 0 : n._prefixes) === null || r === void 0) && r.has(e) || this._prefixes && !this._prefixes.has(e)) throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`); return this._names[e] = { prefix: e, index: 0 } } }; Zi.Scope = T8; var x8 = class extends hl.Name { constructor(e, n) { super(n), this.prefix = e } setValue(e, { property: n, itemIndex: r }) { this.value = e, this.scopePath = (0, hl._)`.${new hl.Name(n)}[${r}]` } }; Zi.ValueScopeName = x8; var H2e = (0, hl._)`\n`, cm = class extends T8 { constructor(e) { super(e), this._values = {}, this._scope = e.scope, this.opts = { ...e, _n: e.lines ? H2e : hl.nil } } get() { return this._scope } name(e) { return new x8(e, this._newName(e)) } value(e, n) { var r; if (n.ref === void 0) throw new Error("CodeGen: ref must be passed in value"); let i = this.toName(e), { prefix: l } = i, s = (r = n.key) !== null && r !== void 0 ? r : n.ref, a = this._values[l]; if (a) { let c = a.get(s); if (c) return c } else a = this._values[l] = new Map; a.set(s, i); let o = this._scope[l] || (this._scope[l] = []), u = o.length; return o[u] = n.ref, i.setValue(n, { property: l, itemIndex: u }), i } getValue(e, n) { let r = this._values[e]; if (r) return r.get(n) } scopeRefs(e, n = this._values) { return this._reduceValues(n, r => { if (r.scopePath === void 0) throw new Error(`CodeGen: name "${r}" has no value`); return (0, hl._)`${e}${r.scopePath}` }) } scopeCode(e = this._values, n, r) { return this._reduceValues(e, i => { if (i.value === void 0) throw new Error(`CodeGen: name "${i}" has no value`); return i.value.code }, n, r) } _reduceValues(e, n, r = {}, i) { let l = hl.nil; for (let s in e) { let a = e[s]; if (!a) continue; let o = r[s] = r[s] || new Map; a.forEach(u => { if (o.has(u)) return; o.set(u, um.Started); let c = n(u); if (c) { let f = this.opts.es5 ? Zi.varKinds.var : Zi.varKinds.const; l = (0, hl._)`${l}${f} ${u} = ${c};${this.opts._n}` } else if (c = i?.(u)) l = (0, hl._)`${l}${c}${this.opts._n}`; else throw new om(u); o.set(u, um.Completed) }) } return l } }; Zi.ValueScope = cm }); var st = k(It => {
"use strict"; Object.defineProperty(It, "__esModule", { value: !0 }); It.or = It.and = It.not = It.CodeGen = It.operators = It.varKinds = It.ValueScopeName = It.ValueScope = It.Scope = It.Name = It.regexpCode = It.stringify = It.getProperty = It.nil = It.strConcat = It.str = It._ = void 0; var Kt = Qu(), _s = A8(), E2 = Qu(); Object.defineProperty(It, "_", { enumerable: !0, get: function () { return E2._ } }); Object.defineProperty(It, "str", { enumerable: !0, get: function () { return E2.str } }); Object.defineProperty(It, "strConcat", { enumerable: !0, get: function () { return E2.strConcat } }); Object.defineProperty(It, "nil", { enumerable: !0, get: function () { return E2.nil } }); Object.defineProperty(It, "getProperty", { enumerable: !0, get: function () { return E2.getProperty } }); Object.defineProperty(It, "stringify", { enumerable: !0, get: function () { return E2.stringify } }); Object.defineProperty(It, "regexpCode", { enumerable: !0, get: function () { return E2.regexpCode } }); Object.defineProperty(It, "Name", { enumerable: !0, get: function () { return E2.Name } }); var R8 = A8(); Object.defineProperty(It, "Scope", { enumerable: !0, get: function () { return R8.Scope } }); Object.defineProperty(It, "ValueScope", { enumerable: !0, get: function () { return R8.ValueScope } }); Object.defineProperty(It, "ValueScopeName", { enumerable: !0, get: function () { return R8.ValueScopeName } }); Object.defineProperty(It, "varKinds", { enumerable: !0, get: function () { return R8.varKinds } }); It.operators = { GT: new Kt._Code(">"), GTE: new Kt._Code(">="), LT: new Kt._Code("<"), LTE: new Kt._Code("<="), EQ: new Kt._Code("==="), NEQ: new Kt._Code("!=="), NOT: new Kt._Code("!"), OR: new Kt._Code("||"), AND: new Kt._Code("&&"), ADD: new Kt._Code("+") }; var Ua = class { optimizeNodes() { return this } optimizeNames(e, n) { return this } }, pm = class extends Ua { constructor(e, n, r) { super(), this.varKind = e, this.name = n, this.rhs = r } render({ es5: e, _n: n }) { let r = e ? _s.varKinds.var : this.varKind, i = this.rhs === void 0 ? "" : ` = ${this.rhs}`; return `${r} ${this.name}${i};` + n } optimizeNames(e, n) { if (e[this.name.str]) return this.rhs && (this.rhs = e1(this.rhs, e, n)), this } get names() { return this.rhs instanceof Kt._CodeOrName ? this.rhs.names : {} } }, O8 = class extends Ua { constructor(e, n, r) { super(), this.lhs = e, this.rhs = n, this.sideEffects = r } render({ _n: e }) { return `${this.lhs} = ${this.rhs};` + e } optimizeNames(e, n) { if (!(this.lhs instanceof Kt.Name && !e[this.lhs.str] && !this.sideEffects)) return this.rhs = e1(this.rhs, e, n), this } get names() { let e = this.lhs instanceof Kt.Name ? {} : { ...this.lhs.names }; return C8(e, this.rhs) } }, fm = class extends O8 { constructor(e, n, r, i) { super(e, r, i), this.op = n } render({ _n: e }) { return `${this.lhs} ${this.op}= ${this.rhs};` + e } }, dm = class extends Ua { constructor(e) { super(), this.label = e, this.names = {} } render({ _n: e }) { return `${this.label}:` + e } }, hm = class extends Ua { constructor(e) { super(), this.label = e, this.names = {} } render({ _n: e }) { return `break${this.label ? ` ${this.label}` : ""};` + e } }, mm = class extends Ua { constructor(e) { super(), this.error = e } render({ _n: e }) { return `throw ${this.error};` + e } get names() { return this.error.names } }, ym = class extends Ua { constructor(e) { super(), this.code = e } render({ _n: e }) { return `${this.code};` + e } optimizeNodes() { return `${this.code}` ? this : void 0 } optimizeNames(e, n) { return this.code = e1(this.code, e, n), this } get names() { return this.code instanceof Kt._CodeOrName ? this.code.names : {} } }, m4 = class extends Ua { constructor(e = []) { super(), this.nodes = e } render(e) { return this.nodes.reduce((n, r) => n + r.render(e), "") } optimizeNodes() { let { nodes: e } = this, n = e.length; for (; n--;) { let r = e[n].optimizeNodes(); Array.isArray(r) ? e.splice(n, 1, ...r) : r ? e[n] = r : e.splice(n, 1) } return e.length > 0 ? this : void 0 } optimizeNames(e, n) { let { nodes: r } = this, i = r.length; for (; i--;) { let l = r[i]; l.optimizeNames(e, n) || (V2e(e, l.names), r.splice(i, 1)) } return r.length > 0 ? this : void 0 } get names() { return this.nodes.reduce((e, n) => T3(e, n.names), {}) } }, Ma = class extends m4 { render(e) { return "{" + e._n + super.render(e) + "}" + e._n } }, gm = class extends m4 { }, Zu = class extends Ma { }; Zu.kind = "else"; var w3 = class t extends Ma { constructor(e, n) { super(n), this.condition = e } render(e) { let n = `if(${this.condition})` + super.render(e); return this.else && (n += "else " + this.else.render(e)), n } optimizeNodes() { super.optimizeNodes(); let e = this.condition; if (e === !0) return this.nodes; let n = this.else; if (n) { let r = n.optimizeNodes(); n = this.else = Array.isArray(r) ? new Zu(r) : r } if (n) return e === !1 ? n instanceof t ? n : n.nodes : this.nodes.length ? this : new t(nR(e), n instanceof t ? [n] : n.nodes); if (!(e === !1 || !this.nodes.length)) return this } optimizeNames(e, n) { var r; if (this.else = (r = this.else) === null || r === void 0 ? void 0 : r.optimizeNames(e, n), !!(super.optimizeNames(e, n) || this.else)) return this.condition = e1(this.condition, e, n), this } get names() { let e = super.names; return C8(e, this.condition), this.else && T3(e, this.else.names), e } }; w3.kind = "if"; var S3 = class extends Ma { }; S3.kind = "for"; var vm = class extends S3 { constructor(e) { super(), this.iteration = e } render(e) { return `for(${this.iteration})` + super.render(e) } optimizeNames(e, n) { if (super.optimizeNames(e, n)) return this.iteration = e1(this.iteration, e, n), this } get names() { return T3(super.names, this.iteration.names) } }, _m = class extends S3 { constructor(e, n, r, i) { super(), this.varKind = e, this.name = n, this.from = r, this.to = i } render(e) { let n = e.es5 ? _s.varKinds.var : this.varKind, { name: r, from: i, to: l } = this; return `for(${n} ${r}=${i}; ${r}<${l}; ${r}++)` + super.render(e) } get names() { let e = C8(super.names, this.from); return C8(e, this.to) } }, N8 = class extends S3 { constructor(e, n, r, i) { super(), this.loop = e, this.varKind = n, this.name = r, this.iterable = i } render(e) { return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(e) } optimizeNames(e, n) { if (super.optimizeNames(e, n)) return this.iterable = e1(this.iterable, e, n), this } get names() { return T3(super.names, this.iterable.names) } }, y4 = class extends Ma { constructor(e, n, r) { super(), this.name = e, this.args = n, this.async = r } render(e) { return `${this.async ? "async " : ""}function ${this.name}(${this.args})` + super.render(e) } }; y4.kind = "func"; var g4 = class extends m4 { render(e) { return "return " + super.render(e) } }; g4.kind = "return"; var Em = class extends Ma { render(e) { let n = "try" + super.render(e); return this.catch && (n += this.catch.render(e)), this.finally && (n += this.finally.render(e)), n } optimizeNodes() { var e, n; return super.optimizeNodes(), (e = this.catch) === null || e === void 0 || e.optimizeNodes(), (n = this.finally) === null || n === void 0 || n.optimizeNodes(), this } optimizeNames(e, n) { var r, i; return super.optimizeNames(e, n), (r = this.catch) === null || r === void 0 || r.optimizeNames(e, n), (i = this.finally) === null || i === void 0 || i.optimizeNames(e, n), this } get names() { let e = super.names; return this.catch && T3(e, this.catch.names), this.finally && T3(e, this.finally.names), e } }, v4 = class extends Ma { constructor(e) { super(), this.error = e } render(e) { return `catch(${this.error})` + super.render(e) } }; v4.kind = "catch"; var _4 = class extends Ma { render(e) { return "finally" + super.render(e) } }; _4.kind = "finally"; var bm = class {
constructor(e, n = {}) {
this._values = {}, this._blockStarts = [], this._constants = {}, this.opts = {
...n, _n: n.lines ? `
`: ""
}, this._extScope = e, this._scope = new _s.Scope({ parent: e }), this._nodes = [new gm]
} toString() { return this._root.render(this.opts) } name(e) { return this._scope.name(e) } scopeName(e) { return this._extScope.name(e) } scopeValue(e, n) { let r = this._extScope.value(e, n); return (this._values[r.prefix] || (this._values[r.prefix] = new Set)).add(r), r } getScopeValue(e, n) { return this._extScope.getValue(e, n) } scopeRefs(e) { return this._extScope.scopeRefs(e, this._values) } scopeCode() { return this._extScope.scopeCode(this._values) } _def(e, n, r, i) { let l = this._scope.toName(n); return r !== void 0 && i && (this._constants[l.str] = r), this._leafNode(new pm(e, l, r)), l } const(e, n, r) { return this._def(_s.varKinds.const, e, n, r) } let(e, n, r) { return this._def(_s.varKinds.let, e, n, r) } var(e, n, r) { return this._def(_s.varKinds.var, e, n, r) } assign(e, n, r) { return this._leafNode(new O8(e, n, r)) } add(e, n) { return this._leafNode(new fm(e, It.operators.ADD, n)) } code(e) { return typeof e == "function" ? e() : e !== Kt.nil && this._leafNode(new ym(e)), this } object(...e) { let n = ["{"]; for (let [r, i] of e) n.length > 1 && n.push(","), n.push(r), (r !== i || this.opts.es5) && (n.push(":"), (0, Kt.addCodeArg)(n, i)); return n.push("}"), new Kt._Code(n) } if(e, n, r) { if (this._blockNode(new w3(e)), n && r) this.code(n).else().code(r).endIf(); else if (n) this.code(n).endIf(); else if (r) throw new Error('CodeGen: "else" body without "then" body'); return this } elseIf(e) { return this._elseNode(new w3(e)) } else() { return this._elseNode(new Zu) } endIf() { return this._endBlockNode(w3, Zu) } _for(e, n) { return this._blockNode(e), n && this.code(n).endFor(), this } for(e, n) { return this._for(new vm(e), n) } forRange(e, n, r, i, l = this.opts.es5 ? _s.varKinds.var : _s.varKinds.let) { let s = this._scope.toName(e); return this._for(new _m(l, s, n, r), () => i(s)) } forOf(e, n, r, i = _s.varKinds.const) { let l = this._scope.toName(e); if (this.opts.es5) { let s = n instanceof Kt.Name ? n : this.var("_arr", n); return this.forRange("_i", 0, (0, Kt._)`${s}.length`, a => { this.var(l, (0, Kt._)`${s}[${a}]`), r(l) }) } return this._for(new N8("of", i, l, n), () => r(l)) } forIn(e, n, r, i = this.opts.es5 ? _s.varKinds.var : _s.varKinds.const) { if (this.opts.ownProperties) return this.forOf(e, (0, Kt._)`Object.keys(${n})`, r); let l = this._scope.toName(e); return this._for(new N8("in", i, l, n), () => r(l)) } endFor() { return this._endBlockNode(S3) } label(e) { return this._leafNode(new dm(e)) } break(e) { return this._leafNode(new hm(e)) } return(e) { let n = new g4; if (this._blockNode(n), this.code(e), n.nodes.length !== 1) throw new Error('CodeGen: "return" should have one node'); return this._endBlockNode(g4) } try(e, n, r) { if (!n && !r) throw new Error('CodeGen: "try" without "catch" and "finally"'); let i = new Em; if (this._blockNode(i), this.code(e), n) { let l = this.name("e"); this._currNode = i.catch = new v4(l), n(l) } return r && (this._currNode = i.finally = new _4, this.code(r)), this._endBlockNode(v4, _4) } throw(e) { return this._leafNode(new mm(e)) } block(e, n) { return this._blockStarts.push(this._nodes.length), e && this.code(e).endBlock(n), this } endBlock(e) { let n = this._blockStarts.pop(); if (n === void 0) throw new Error("CodeGen: not in self-balancing block"); let r = this._nodes.length - n; if (r < 0 || e !== void 0 && r !== e) throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`); return this._nodes.length = n, this } func(e, n = Kt.nil, r, i) { return this._blockNode(new y4(e, n, r)), i && this.code(i).endFunc(), this } endFunc() { return this._endBlockNode(y4) } optimize(e = 1) { for (; e-- > 0;)this._root.optimizeNodes(), this._root.optimizeNames(this._root.names, this._constants) } _leafNode(e) { return this._currNode.nodes.push(e), this } _blockNode(e) { this._currNode.nodes.push(e), this._nodes.push(e) } _endBlockNode(e, n) { let r = this._currNode; if (r instanceof e || n && r instanceof n) return this._nodes.pop(), this; throw new Error(`CodeGen: not in block "${n ? `${e.kind}/${n.kind}` : e.kind}"`) } _elseNode(e) { let n = this._currNode; if (!(n instanceof w3)) throw new Error('CodeGen: "else" without "if"'); return this._currNode = n.else = e, this } get _root() { return this._nodes[0] } get _currNode() { let e = this._nodes; return e[e.length - 1] } set _currNode(e) { let n = this._nodes; n[n.length - 1] = e }
}; It.CodeGen = bm; function T3(t, e) { for (let n in e) t[n] = (t[n] || 0) + (e[n] || 0); return t } function C8(t, e) { return e instanceof Kt._CodeOrName ? T3(t, e.names) : t } function e1(t, e, n) { if (t instanceof Kt.Name) return r(t); if (!i(t)) return t; return new Kt._Code(t._items.reduce((l, s) => (s instanceof Kt.Name && (s = r(s)), s instanceof Kt._Code ? l.push(...s._items) : l.push(s), l), [])); function r(l) { let s = n[l.str]; return s === void 0 || e[l.str] !== 1 ? l : (delete e[l.str], s) } function i(l) { return l instanceof Kt._Code && l._items.some(s => s instanceof Kt.Name && e[s.str] === 1 && n[s.str] !== void 0) } } function V2e(t, e) { for (let n in e) t[n] = (t[n] || 0) - (e[n] || 0) } function nR(t) { return typeof t == "boolean" || typeof t == "number" || t === null ? !t : (0, Kt._)`!${wm(t)}` } It.not = nR; var q2e = rR(It.operators.AND); function z2e(...t) { return t.reduce(q2e) } It.and = z2e; var G2e = rR(It.operators.OR); function J2e(...t) { return t.reduce(G2e) } It.or = J2e; function rR(t) { return (e, n) => e === Kt.nil ? n : n === Kt.nil ? e : (0, Kt._)`${wm(e)} ${t} ${wm(n)}` } function wm(t) { return t instanceof Kt.Name ? t : (0, Kt._)`(${t})` }
}); var Nt = k(kt => { "use strict"; Object.defineProperty(kt, "__esModule", { value: !0 }); kt.checkStrictMode = kt.getErrorPath = kt.Type = kt.useFunc = kt.setEvaluated = kt.evaluatedPropsToName = kt.mergeEvaluated = kt.eachItem = kt.unescapeJsonPointer = kt.escapeJsonPointer = kt.escapeFragment = kt.unescapeFragment = kt.schemaRefOrVal = kt.schemaHasRulesButRef = kt.schemaHasRules = kt.checkUnknownRules = kt.alwaysValidSchema = kt.toHash = void 0; var tr = st(), K2e = Qu(); function X2e(t) { let e = {}; for (let n of t) e[n] = !0; return e } kt.toHash = X2e; function W2e(t, e) { return typeof e == "boolean" ? e : Object.keys(e).length === 0 ? !0 : (sR(t, e), !aR(e, t.self.RULES.all)) } kt.alwaysValidSchema = W2e; function sR(t, e = t.schema) { let { opts: n, self: r } = t; if (!n.strictSchema || typeof e == "boolean") return; let i = r.RULES.keywords; for (let l in e) i[l] || pR(t, `unknown keyword: "${l}"`) } kt.checkUnknownRules = sR; function aR(t, e) { if (typeof t == "boolean") return !t; for (let n in t) if (e[n]) return !0; return !1 } kt.schemaHasRules = aR; function Y2e(t, e) { if (typeof t == "boolean") return !t; for (let n in t) if (n !== "$ref" && e.all[n]) return !0; return !1 } kt.schemaHasRulesButRef = Y2e; function Q2e({ topSchemaRef: t, schemaPath: e }, n, r, i) { if (!i) { if (typeof n == "number" || typeof n == "boolean") return n; if (typeof n == "string") return (0, tr._)`${n}` } return (0, tr._)`${t}${e}${(0, tr.getProperty)(r)}` } kt.schemaRefOrVal = Q2e; function Z2e(t) { return oR(decodeURIComponent(t)) } kt.unescapeFragment = Z2e; function eoe(t) { return encodeURIComponent(Sm(t)) } kt.escapeFragment = eoe; function Sm(t) { return typeof t == "number" ? `${t}` : t.replace(/~/g, "~0").replace(/\//g, "~1") } kt.escapeJsonPointer = Sm; function oR(t) { return t.replace(/~1/g, "/").replace(/~0/g, "~") } kt.unescapeJsonPointer = oR; function toe(t, e) { if (Array.isArray(t)) for (let n of t) e(n); else e(t) } kt.eachItem = toe; function iR({ mergeNames: t, mergeToName: e, mergeValues: n, resultToName: r }) { return (i, l, s, a) => { let o = s === void 0 ? l : s instanceof tr.Name ? (l instanceof tr.Name ? t(i, l, s) : e(i, l, s), s) : l instanceof tr.Name ? (e(i, s, l), l) : n(l, s); return a === tr.Name && !(o instanceof tr.Name) ? r(i, o) : o } } kt.mergeEvaluated = { props: iR({ mergeNames: (t, e, n) => t.if((0, tr._)`${n} !== true && ${e} !== undefined`, () => { t.if((0, tr._)`${e} === true`, () => t.assign(n, !0), () => t.assign(n, (0, tr._)`${n} || {}`).code((0, tr._)`Object.assign(${n}, ${e})`)) }), mergeToName: (t, e, n) => t.if((0, tr._)`${n} !== true`, () => { e === !0 ? t.assign(n, !0) : (t.assign(n, (0, tr._)`${n} || {}`), Tm(t, n, e)) }), mergeValues: (t, e) => t === !0 ? !0 : { ...t, ...e }, resultToName: uR }), items: iR({ mergeNames: (t, e, n) => t.if((0, tr._)`${n} !== true && ${e} !== undefined`, () => t.assign(n, (0, tr._)`${e} === true ? true : ${n} > ${e} ? ${n} : ${e}`)), mergeToName: (t, e, n) => t.if((0, tr._)`${n} !== true`, () => t.assign(n, e === !0 ? !0 : (0, tr._)`${n} > ${e} ? ${n} : ${e}`)), mergeValues: (t, e) => t === !0 ? !0 : Math.max(t, e), resultToName: (t, e) => t.var("items", e) }) }; function uR(t, e) { if (e === !0) return t.var("props", !0); let n = t.var("props", (0, tr._)`{}`); return e !== void 0 && Tm(t, n, e), n } kt.evaluatedPropsToName = uR; function Tm(t, e, n) { Object.keys(n).forEach(r => t.assign((0, tr._)`${e}${(0, tr.getProperty)(r)}`, !0)) } kt.setEvaluated = Tm; var lR = {}; function noe(t, e) { return t.scopeValue("func", { ref: e, code: lR[e.code] || (lR[e.code] = new K2e._Code(e.code)) }) } kt.useFunc = noe; var cR; (function (t) { t[t.Num = 0] = "Num", t[t.Str = 1] = "Str" })(cR = kt.Type || (kt.Type = {})); function roe(t, e, n) { if (t instanceof tr.Name) { let r = e === cR.Num; return n ? r ? (0, tr._)`"[" + ${t} + "]"` : (0, tr._)`"['" + ${t} + "']"` : r ? (0, tr._)`"/" + ${t}` : (0, tr._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")` } return n ? (0, tr.getProperty)(t).toString() : "/" + Sm(t) } kt.getErrorPath = roe; function pR(t, e, n = t.opts.strictSchema) { if (n) { if (e = `strict mode: ${e}`, n === !0) throw new Error(e); t.self.logger.warn(e) } } kt.checkStrictMode = pR }); var Yl = k(xm => { "use strict"; Object.defineProperty(xm, "__esModule", { value: !0 }); var $i = st(), ioe = { data: new $i.Name("data"), valCxt: new $i.Name("valCxt"), instancePath: new $i.Name("instancePath"), parentData: new $i.Name("parentData"), parentDataProperty: new $i.Name("parentDataProperty"), rootData: new $i.Name("rootData"), dynamicAnchors: new $i.Name("dynamicAnchors"), vErrors: new $i.Name("vErrors"), errors: new $i.Name("errors"), this: new $i.Name("this"), self: new $i.Name("self"), scope: new $i.Name("scope"), json: new $i.Name("json"), jsonPos: new $i.Name("jsonPos"), jsonLen: new $i.Name("jsonLen"), jsonPart: new $i.Name("jsonPart") }; xm.default = ioe }); var E4 = k(Bi => { "use strict"; Object.defineProperty(Bi, "__esModule", { value: !0 }); Bi.extendErrors = Bi.resetErrorsCount = Bi.reportExtraError = Bi.reportError = Bi.keyword$DataError = Bi.keywordError = void 0; var Yt = st(), I8 = Nt(), el = Yl(); Bi.keywordError = { message: ({ keyword: t }) => (0, Yt.str)`must pass "${t}" keyword validation` }; Bi.keyword$DataError = { message: ({ keyword: t, schemaType: e }) => e ? (0, Yt.str)`"${t}" keyword must be ${e} ($data)` : (0, Yt.str)`"${t}" keyword is invalid ($data)` }; function loe(t, e = Bi.keywordError, n, r) { let { it: i } = t, { gen: l, compositeRule: s, allErrors: a } = i, o = hR(t, e, n); r ?? (s || a) ? fR(l, o) : dR(i, (0, Yt._)`[${o}]`) } Bi.reportError = loe; function soe(t, e = Bi.keywordError, n) { let { it: r } = t, { gen: i, compositeRule: l, allErrors: s } = r, a = hR(t, e, n); fR(i, a), l || s || dR(r, el.default.vErrors) } Bi.reportExtraError = soe; function aoe(t, e) { t.assign(el.default.errors, e), t.if((0, Yt._)`${el.default.vErrors} !== null`, () => t.if(e, () => t.assign((0, Yt._)`${el.default.vErrors}.length`, e), () => t.assign(el.default.vErrors, null))) } Bi.resetErrorsCount = aoe; function ooe({ gen: t, keyword: e, schemaValue: n, data: r, errsCount: i, it: l }) { if (i === void 0) throw new Error("ajv implementation error"); let s = t.name("err"); t.forRange("i", i, el.default.errors, a => { t.const(s, (0, Yt._)`${el.default.vErrors}[${a}]`), t.if((0, Yt._)`${s}.instancePath === undefined`, () => t.assign((0, Yt._)`${s}.instancePath`, (0, Yt.strConcat)(el.default.instancePath, l.errorPath))), t.assign((0, Yt._)`${s}.schemaPath`, (0, Yt.str)`${l.errSchemaPath}/${e}`), l.opts.verbose && (t.assign((0, Yt._)`${s}.schema`, n), t.assign((0, Yt._)`${s}.data`, r)) }) } Bi.extendErrors = ooe; function fR(t, e) { let n = t.const("err", e); t.if((0, Yt._)`${el.default.vErrors} === null`, () => t.assign(el.default.vErrors, (0, Yt._)`[${n}]`), (0, Yt._)`${el.default.vErrors}.push(${n})`), t.code((0, Yt._)`${el.default.errors}++`) } function dR(t, e) { let { gen: n, validateName: r, schemaEnv: i } = t; i.$async ? n.throw((0, Yt._)`new ${t.ValidationError}(${e})`) : (n.assign((0, Yt._)`${r}.errors`, e), n.return(!1)) } var x3 = { keyword: new Yt.Name("keyword"), schemaPath: new Yt.Name("schemaPath"), params: new Yt.Name("params"), propertyName: new Yt.Name("propertyName"), message: new Yt.Name("message"), schema: new Yt.Name("schema"), parentSchema: new Yt.Name("parentSchema") }; function hR(t, e, n) { let { createErrors: r } = t.it; return r === !1 ? (0, Yt._)`{}` : uoe(t, e, n) } function uoe(t, e, n = {}) { let { gen: r, it: i } = t, l = [coe(i, n), poe(t, n)]; return foe(t, e, l), r.object(...l) } function coe({ errorPath: t }, { instancePath: e }) { let n = e ? (0, Yt.str)`${t}${(0, I8.getErrorPath)(e, I8.Type.Str)}` : t; return [el.default.instancePath, (0, Yt.strConcat)(el.default.instancePath, n)] } function poe({ keyword: t, it: { errSchemaPath: e } }, { schemaPath: n, parentSchema: r }) { let i = r ? e : (0, Yt.str)`${e}/${t}`; return n && (i = (0, Yt.str)`${i}${(0, I8.getErrorPath)(n, I8.Type.Str)}`), [x3.schemaPath, i] } function foe(t, { params: e, message: n }, r) { let { keyword: i, data: l, schemaValue: s, it: a } = t, { opts: o, propertyName: u, topSchemaRef: c, schemaPath: f } = a; r.push([x3.keyword, i], [x3.params, typeof e == "function" ? e(t) : e || (0, Yt._)`{}`]), o.messages && r.push([x3.message, typeof n == "function" ? n(t) : n]), o.verbose && r.push([x3.schema, s], [x3.parentSchema, (0, Yt._)`${c}${f}`], [el.default.data, l]), u && r.push([x3.propertyName, u]) } }); var yR = k(t1 => { "use strict"; Object.defineProperty(t1, "__esModule", { value: !0 }); t1.boolOrEmptySchema = t1.topBoolOrEmptySchema = void 0; var doe = E4(), hoe = st(), moe = Yl(), yoe = { message: "boolean schema is false" }; function goe(t) { let { gen: e, schema: n, validateName: r } = t; n === !1 ? mR(t, !1) : typeof n == "object" && n.$async === !0 ? e.return(moe.default.data) : (e.assign((0, hoe._)`${r}.errors`, null), e.return(!0)) } t1.topBoolOrEmptySchema = goe; function voe(t, e) { let { gen: n, schema: r } = t; r === !1 ? (n.var(e, !1), mR(t)) : n.var(e, !0) } t1.boolOrEmptySchema = voe; function mR(t, e) { let { gen: n, data: r } = t, i = { gen: n, keyword: "false schema", data: r, schema: !1, schemaCode: !1, schemaValue: !1, params: {}, it: t }; (0, doe.reportError)(i, yoe, void 0, e) } }); var Am = k(n1 => { "use strict"; Object.defineProperty(n1, "__esModule", { value: !0 }); n1.getRules = n1.isJSONType = void 0; var _oe = ["string", "number", "integer", "boolean", "null", "object", "array"], Eoe = new Set(_oe); function boe(t) { return typeof t == "string" && Eoe.has(t) } n1.isJSONType = boe; function woe() { let t = { number: { type: "number", rules: [] }, string: { type: "string", rules: [] }, array: { type: "array", rules: [] }, object: { type: "object", rules: [] } }; return { types: { ...t, integer: !0, boolean: !0, null: !0 }, rules: [{ rules: [] }, t.number, t.string, t.array, t.object], post: { rules: [] }, all: {}, keywords: {} } } n1.getRules = woe }); var Om = k(b2 => { "use strict"; Object.defineProperty(b2, "__esModule", { value: !0 }); b2.shouldUseRule = b2.shouldUseGroup = b2.schemaHasRulesForType = void 0; function Soe({ schema: t, self: e }, n) { let r = e.RULES.types[n]; return r && r !== !0 && gR(t, r) } b2.schemaHasRulesForType = Soe; function gR(t, e) { return e.rules.some(n => vR(t, n)) } b2.shouldUseGroup = gR; function vR(t, e) { var n; return t[e.keyword] !== void 0 || ((n = e.definition.implements) === null || n === void 0 ? void 0 : n.some(r => t[r] !== void 0)) } b2.shouldUseRule = vR }); var w4 = k(xi => {
"use strict"; Object.defineProperty(xi, "__esModule", { value: !0 }); xi.reportTypeError = xi.checkDataTypes = xi.checkDataType = xi.coerceAndCheckDataType = xi.getJSONTypes = xi.getSchemaTypes = xi.DataType = void 0; var Toe = Am(), xoe = Om(), Aoe = E4(), Ot = st(), _R = Nt(), b4; (function (t) { t[t.Correct = 0] = "Correct", t[t.Wrong = 1] = "Wrong" })(b4 = xi.DataType || (xi.DataType = {})); function Ooe(t) { let e = ER(t.type); if (e.includes("null")) { if (t.nullable === !1) throw new Error("type: null contradicts nullable: false") } else { if (!e.length && t.nullable !== void 0) throw new Error('"nullable" cannot be used without "type"'); t.nullable === !0 && e.push("null") } return e } xi.getSchemaTypes = Ooe; function ER(t) { let e = Array.isArray(t) ? t : t ? [t] : []; if (e.every(Toe.isJSONType)) return e; throw new Error("type must be JSONType or JSONType[]: " + e.join(",")) } xi.getJSONTypes = ER; function Noe(t, e) { let { gen: n, data: r, opts: i } = t, l = Coe(e, i.coerceTypes), s = e.length > 0 && !(l.length === 0 && e.length === 1 && (0, xoe.schemaHasRulesForType)(t, e[0])); if (s) { let a = Cm(e, r, i.strictNumbers, b4.Wrong); n.if(a, () => { l.length ? Roe(t, e, l) : Rm(t) }) } return s } xi.coerceAndCheckDataType = Noe; var bR = new Set(["string", "number", "integer", "boolean", "null"]); function Coe(t, e) { return e ? t.filter(n => bR.has(n) || e === "array" && n === "array") : [] } function Roe(t, e, n) {
let { gen: r, data: i, opts: l } = t, s = r.let("dataType", (0, Ot._)`typeof ${i}`), a = r.let("coerced", (0, Ot._)`undefined`); l.coerceTypes === "array" && r.if((0, Ot._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`, () => r.assign(i, (0, Ot._)`${i}[0]`).assign(s, (0, Ot._)`typeof ${i}`).if(Cm(e, i, l.strictNumbers), () => r.assign(a, i))), r.if((0, Ot._)`${a} !== undefined`); for (let u of n) (bR.has(u) || u === "array" && l.coerceTypes === "array") && o(u); r.else(), Rm(t), r.endIf(), r.if((0, Ot._)`${a} !== undefined`, () => { r.assign(i, a), Ioe(t, a) }); function o(u) {
switch (u) {
case "string": r.elseIf((0, Ot._)`${s} == "number" || ${s} == "boolean"`).assign(a, (0, Ot._)`"" + ${i}`).elseIf((0, Ot._)`${i} === null`).assign(a, (0, Ot._)`""`); return; case "number": r.elseIf((0, Ot._)`${s} == "boolean" || ${i} === null
|| (${s} == "string" && ${i} && ${i} == +${i})`).assign(a, (0, Ot._)`+${i}`); return; case "integer": r.elseIf((0, Ot._)`${s} === "boolean" || ${i} === null
|| (${s} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(a, (0, Ot._)`+${i}`); return; case "boolean": r.elseIf((0, Ot._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(a, !1).elseIf((0, Ot._)`${i} === "true" || ${i} === 1`).assign(a, !0); return; case "null": r.elseIf((0, Ot._)`${i} === "" || ${i} === 0 || ${i} === false`), r.assign(a, null); return; case "array": r.elseIf((0, Ot._)`${s} === "string" || ${s} === "number"
|| ${s} === "boolean" || ${i} === null`).assign(a, (0, Ot._)`[${i}]`)
}
}
} function Ioe({ gen: t, parentData: e, parentDataProperty: n }, r) { t.if((0, Ot._)`${e} !== undefined`, () => t.assign((0, Ot._)`${e}[${n}]`, r)) } function Nm(t, e, n, r = b4.Correct) { let i = r === b4.Correct ? Ot.operators.EQ : Ot.operators.NEQ, l; switch (t) { case "null": return (0, Ot._)`${e} ${i} null`; case "array": l = (0, Ot._)`Array.isArray(${e})`; break; case "object": l = (0, Ot._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`; break; case "integer": l = s((0, Ot._)`!(${e} % 1) && !isNaN(${e})`); break; case "number": l = s(); break; default: return (0, Ot._)`typeof ${e} ${i} ${t}` }return r === b4.Correct ? l : (0, Ot.not)(l); function s(a = Ot.nil) { return (0, Ot.and)((0, Ot._)`typeof ${e} == "number"`, a, n ? (0, Ot._)`isFinite(${e})` : Ot.nil) } } xi.checkDataType = Nm; function Cm(t, e, n, r) { if (t.length === 1) return Nm(t[0], e, n, r); let i, l = (0, _R.toHash)(t); if (l.array && l.object) { let s = (0, Ot._)`typeof ${e} != "object"`; i = l.null ? s : (0, Ot._)`!${e} || ${s}`, delete l.null, delete l.array, delete l.object } else i = Ot.nil; l.number && delete l.integer; for (let s in l) i = (0, Ot.and)(i, Nm(s, e, n, r)); return i } xi.checkDataTypes = Cm; var koe = { message: ({ schema: t }) => `must be ${t}`, params: ({ schema: t, schemaValue: e }) => typeof t == "string" ? (0, Ot._)`{type: ${t}}` : (0, Ot._)`{type: ${e}}` }; function Rm(t) { let e = Doe(t); (0, Aoe.reportError)(e, koe) } xi.reportTypeError = Rm; function Doe(t) { let { gen: e, data: n, schema: r } = t, i = (0, _R.schemaRefOrVal)(t, r, "type"); return { gen: e, keyword: "type", data: n, schema: r.type, schemaCode: i, schemaValue: i, parentSchema: r, params: {}, it: t } }
}); var SR = k(k8 => { "use strict"; Object.defineProperty(k8, "__esModule", { value: !0 }); k8.assignDefaults = void 0; var r1 = st(), Poe = Nt(); function Loe(t, e) { let { properties: n, items: r } = t.schema; if (e === "object" && n) for (let i in n) wR(t, i, n[i].default); else e === "array" && Array.isArray(r) && r.forEach((i, l) => wR(t, l, i.default)) } k8.assignDefaults = Loe; function wR(t, e, n) { let { gen: r, compositeRule: i, data: l, opts: s } = t; if (n === void 0) return; let a = (0, r1._)`${l}${(0, r1.getProperty)(e)}`; if (i) { (0, Poe.checkStrictMode)(t, `default is ignored for: ${a}`); return } let o = (0, r1._)`${a} === undefined`; s.useDefaults === "empty" && (o = (0, r1._)`${o} || ${a} === null || ${a} === ""`), r.if(o, (0, r1._)`${a} = ${(0, r1.stringify)(n)}`) } }); var Ai = k(Wn => { "use strict"; Object.defineProperty(Wn, "__esModule", { value: !0 }); Wn.validateUnion = Wn.validateArray = Wn.usePattern = Wn.callValidateCode = Wn.schemaProperties = Wn.allSchemaProperties = Wn.noPropertyInData = Wn.propertyInData = Wn.isOwnProperty = Wn.hasPropFunc = Wn.reportMissingProp = Wn.checkMissingProp = Wn.checkReportMissingProp = void 0; var pr = st(), Im = Nt(), w2 = Yl(), Foe = Nt(); function joe(t, e) { let { gen: n, data: r, it: i } = t; n.if(Dm(n, r, e, i.opts.ownProperties), () => { t.setParams({ missingProperty: (0, pr._)`${e}` }, !0), t.error() }) } Wn.checkReportMissingProp = joe; function Uoe({ gen: t, data: e, it: { opts: n } }, r, i) { return (0, pr.or)(...r.map(l => (0, pr.and)(Dm(t, e, l, n.ownProperties), (0, pr._)`${i} = ${l}`))) } Wn.checkMissingProp = Uoe; function Moe(t, e) { t.setParams({ missingProperty: e }, !0), t.error() } Wn.reportMissingProp = Moe; function TR(t) { return t.scopeValue("func", { ref: Object.prototype.hasOwnProperty, code: (0, pr._)`Object.prototype.hasOwnProperty` }) } Wn.hasPropFunc = TR; function km(t, e, n) { return (0, pr._)`${TR(t)}.call(${e}, ${n})` } Wn.isOwnProperty = km; function $oe(t, e, n, r) { let i = (0, pr._)`${e}${(0, pr.getProperty)(n)} !== undefined`; return r ? (0, pr._)`${i} && ${km(t, e, n)}` : i } Wn.propertyInData = $oe; function Dm(t, e, n, r) { let i = (0, pr._)`${e}${(0, pr.getProperty)(n)} === undefined`; return r ? (0, pr.or)(i, (0, pr.not)(km(t, e, n))) : i } Wn.noPropertyInData = Dm; function xR(t) { return t ? Object.keys(t).filter(e => e !== "__proto__") : [] } Wn.allSchemaProperties = xR; function Boe(t, e) { return xR(e).filter(n => !(0, Im.alwaysValidSchema)(t, e[n])) } Wn.schemaProperties = Boe; function Hoe({ schemaCode: t, data: e, it: { gen: n, topSchemaRef: r, schemaPath: i, errorPath: l }, it: s }, a, o, u) { let c = u ? (0, pr._)`${t}, ${e}, ${r}${i}` : e, f = [[w2.default.instancePath, (0, pr.strConcat)(w2.default.instancePath, l)], [w2.default.parentData, s.parentData], [w2.default.parentDataProperty, s.parentDataProperty], [w2.default.rootData, w2.default.rootData]]; s.opts.dynamicRef && f.push([w2.default.dynamicAnchors, w2.default.dynamicAnchors]); let m = (0, pr._)`${c}, ${n.object(...f)}`; return o !== pr.nil ? (0, pr._)`${a}.call(${o}, ${m})` : (0, pr._)`${a}(${m})` } Wn.callValidateCode = Hoe; var Voe = (0, pr._)`new RegExp`; function qoe({ gen: t, it: { opts: e } }, n) { let r = e.unicodeRegExp ? "u" : "", { regExp: i } = e.code, l = i(n, r); return t.scopeValue("pattern", { key: l.toString(), ref: l, code: (0, pr._)`${i.code === "new RegExp" ? Voe : (0, Foe.useFunc)(t, i)}(${n}, ${r})` }) } Wn.usePattern = qoe; function zoe(t) { let { gen: e, data: n, keyword: r, it: i } = t, l = e.name("valid"); if (i.allErrors) { let a = e.let("valid", !0); return s(() => e.assign(a, !1)), a } return e.var(l, !0), s(() => e.break()), l; function s(a) { let o = e.const("len", (0, pr._)`${n}.length`); e.forRange("i", 0, o, u => { t.subschema({ keyword: r, dataProp: u, dataPropType: Im.Type.Num }, l), e.if((0, pr.not)(l), a) }) } } Wn.validateArray = zoe; function Goe(t) { let { gen: e, schema: n, keyword: r, it: i } = t; if (!Array.isArray(n)) throw new Error("ajv implementation error"); if (n.some(o => (0, Im.alwaysValidSchema)(i, o)) && !i.opts.unevaluated) return; let s = e.let("valid", !1), a = e.name("_valid"); e.block(() => n.forEach((o, u) => { let c = t.subschema({ keyword: r, schemaProp: u, compositeRule: !0 }, a); e.assign(s, (0, pr._)`${s} || ${a}`), t.mergeValidEvaluated(c, a) || e.if((0, pr.not)(s)) })), t.result(s, () => t.reset(), () => t.error(!0)) } Wn.validateUnion = Goe }); var NR = k(Ws => { "use strict"; Object.defineProperty(Ws, "__esModule", { value: !0 }); Ws.validateKeywordUsage = Ws.validSchemaType = Ws.funcKeywordCode = Ws.macroKeywordCode = void 0; var tl = st(), A3 = Yl(), Joe = Ai(), Koe = E4(); function Xoe(t, e) { let { gen: n, keyword: r, schema: i, parentSchema: l, it: s } = t, a = e.macro.call(s.self, i, l, s), o = OR(n, r, a); s.opts.validateSchema !== !1 && s.self.validateSchema(a, !0); let u = n.name("valid"); t.subschema({ schema: a, schemaPath: tl.nil, errSchemaPath: `${s.errSchemaPath}/${r}`, topSchemaRef: o, compositeRule: !0 }, u), t.pass(u, () => t.error(!0)) } Ws.macroKeywordCode = Xoe; function Woe(t, e) { var n; let { gen: r, keyword: i, schema: l, parentSchema: s, $data: a, it: o } = t; Qoe(o, e); let u = !a && e.compile ? e.compile.call(o.self, l, s, o) : e.validate, c = OR(r, i, u), f = r.let("valid"); t.block$data(f, m), t.ok((n = e.valid) !== null && n !== void 0 ? n : f); function m() { if (e.errors === !1) _(), e.modifying && AR(t), S(() => t.error()); else { let w = e.async ? d() : y(); e.modifying && AR(t), S(() => Yoe(t, w)) } } function d() { let w = r.let("ruleErrs", null); return r.try(() => _((0, tl._)`await `), E => r.assign(f, !1).if((0, tl._)`${E} instanceof ${o.ValidationError}`, () => r.assign(w, (0, tl._)`${E}.errors`), () => r.throw(E))), w } function y() { let w = (0, tl._)`${c}.errors`; return r.assign(w, null), _(tl.nil), w } function _(w = e.async ? (0, tl._)`await ` : tl.nil) { let E = o.opts.passContext ? A3.default.this : A3.default.self, g = !("compile" in e && !a || e.schema === !1); r.assign(f, (0, tl._)`${w}${(0, Joe.callValidateCode)(t, c, E, g)}`, e.modifying) } function S(w) { var E; r.if((0, tl.not)((E = e.valid) !== null && E !== void 0 ? E : f), w) } } Ws.funcKeywordCode = Woe; function AR(t) { let { gen: e, data: n, it: r } = t; e.if(r.parentData, () => e.assign(n, (0, tl._)`${r.parentData}[${r.parentDataProperty}]`)) } function Yoe(t, e) { let { gen: n } = t; n.if((0, tl._)`Array.isArray(${e})`, () => { n.assign(A3.default.vErrors, (0, tl._)`${A3.default.vErrors} === null ? ${e} : ${A3.default.vErrors}.concat(${e})`).assign(A3.default.errors, (0, tl._)`${A3.default.vErrors}.length`), (0, Koe.extendErrors)(t) }, () => t.error()) } function Qoe({ schemaEnv: t }, e) { if (e.async && !t.$async) throw new Error("async keyword in sync schema") } function OR(t, e, n) { if (n === void 0) throw new Error(`keyword "${e}" failed to compile`); return t.scopeValue("keyword", typeof n == "function" ? { ref: n } : { ref: n, code: (0, tl.stringify)(n) }) } function Zoe(t, e, n = !1) { return !e.length || e.some(r => r === "array" ? Array.isArray(t) : r === "object" ? t && typeof t == "object" && !Array.isArray(t) : typeof t == r || n && typeof t > "u") } Ws.validSchemaType = Zoe; function e3e({ schema: t, opts: e, self: n, errSchemaPath: r }, i, l) { if (Array.isArray(i.keyword) ? !i.keyword.includes(l) : i.keyword !== l) throw new Error("ajv implementation error"); let s = i.dependencies; if (s?.some(a => !Object.prototype.hasOwnProperty.call(t, a))) throw new Error(`parent schema must have dependencies of ${l}: ${s.join(",")}`); if (i.validateSchema && !i.validateSchema(t[l])) { let o = `keyword "${l}" value is invalid at path "${r}": ` + n.errorsText(i.validateSchema.errors); if (e.validateSchema === "log") n.logger.error(o); else throw new Error(o) } } Ws.validateKeywordUsage = e3e }); var RR = k(S2 => { "use strict"; Object.defineProperty(S2, "__esModule", { value: !0 }); S2.extendSubschemaMode = S2.extendSubschemaData = S2.getSubschema = void 0; var Ys = st(), CR = Nt(); function t3e(t, { keyword: e, schemaProp: n, schema: r, schemaPath: i, errSchemaPath: l, topSchemaRef: s }) { if (e !== void 0 && r !== void 0) throw new Error('both "keyword" and "schema" passed, only one allowed'); if (e !== void 0) { let a = t.schema[e]; return n === void 0 ? { schema: a, schemaPath: (0, Ys._)`${t.schemaPath}${(0, Ys.getProperty)(e)}`, errSchemaPath: `${t.errSchemaPath}/${e}` } : { schema: a[n], schemaPath: (0, Ys._)`${t.schemaPath}${(0, Ys.getProperty)(e)}${(0, Ys.getProperty)(n)}`, errSchemaPath: `${t.errSchemaPath}/${e}/${(0, CR.escapeFragment)(n)}` } } if (r !== void 0) { if (i === void 0 || l === void 0 || s === void 0) throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"'); return { schema: r, schemaPath: i, topSchemaRef: s, errSchemaPath: l } } throw new Error('either "keyword" or "schema" must be passed') } S2.getSubschema = t3e; function n3e(t, e, { dataProp: n, dataPropType: r, data: i, dataTypes: l, propertyName: s }) { if (i !== void 0 && n !== void 0) throw new Error('both "data" and "dataProp" passed, only one allowed'); let { gen: a } = e; if (n !== void 0) { let { errorPath: u, dataPathArr: c, opts: f } = e, m = a.let("data", (0, Ys._)`${e.data}${(0, Ys.getProperty)(n)}`, !0); o(m), t.errorPath = (0, Ys.str)`${u}${(0, CR.getErrorPath)(n, r, f.jsPropertySyntax)}`, t.parentDataProperty = (0, Ys._)`${n}`, t.dataPathArr = [...c, t.parentDataProperty] } if (i !== void 0) { let u = i instanceof Ys.Name ? i : a.let("data", i, !0); o(u), s !== void 0 && (t.propertyName = s) } l && (t.dataTypes = l); function o(u) { t.data = u, t.dataLevel = e.dataLevel + 1, t.dataTypes = [], e.definedProperties = new Set, t.parentData = e.data, t.dataNames = [...e.dataNames, u] } } S2.extendSubschemaData = n3e; function r3e(t, { jtdDiscriminator: e, jtdMetadata: n, compositeRule: r, createErrors: i, allErrors: l }) { r !== void 0 && (t.compositeRule = r), i !== void 0 && (t.createErrors = i), l !== void 0 && (t.allErrors = l), t.jtdDiscriminator = e, t.jtdMetadata = n } S2.extendSubschemaMode = r3e }); var i1 = k((cCe, IR) => { "use strict"; IR.exports = function t(e, n) { if (e === n) return !0; if (e && n && typeof e == "object" && typeof n == "object") { if (e.constructor !== n.constructor) return !1; var r, i, l; if (Array.isArray(e)) { if (r = e.length, r != n.length) return !1; for (i = r; i-- !== 0;)if (!t(e[i], n[i])) return !1; return !0 } if (e.constructor === RegExp) return e.source === n.source && e.flags === n.flags; if (e.valueOf !== Object.prototype.valueOf) return e.valueOf() === n.valueOf(); if (e.toString !== Object.prototype.toString) return e.toString() === n.toString(); if (l = Object.keys(e), r = l.length, r !== Object.keys(n).length) return !1; for (i = r; i-- !== 0;)if (!Object.prototype.hasOwnProperty.call(n, l[i])) return !1; for (i = r; i-- !== 0;) { var s = l[i]; if (!t(e[s], n[s])) return !1 } return !0 } return e !== e && n !== n } }); var DR = k((pCe, kR) => { "use strict"; var T2 = kR.exports = function (t, e, n) { typeof e == "function" && (n = e, e = {}), n = e.cb || n; var r = typeof n == "function" ? n : n.pre || function () { }, i = n.post || function () { }; D8(e, r, i, t, "", t) }; T2.keywords = { additionalItems: !0, items: !0, contains: !0, additionalProperties: !0, propertyNames: !0, not: !0, if: !0, then: !0, else: !0 }; T2.arrayKeywords = { items: !0, allOf: !0, anyOf: !0, oneOf: !0 }; T2.propsKeywords = { $defs: !0, definitions: !0, properties: !0, patternProperties: !0, dependencies: !0 }; T2.skipKeywords = { default: !0, enum: !0, const: !0, required: !0, maximum: !0, minimum: !0, exclusiveMaximum: !0, exclusiveMinimum: !0, multipleOf: !0, maxLength: !0, minLength: !0, pattern: !0, format: !0, maxItems: !0, minItems: !0, uniqueItems: !0, maxProperties: !0, minProperties: !0 }; function D8(t, e, n, r, i, l, s, a, o, u) { if (r && typeof r == "object" && !Array.isArray(r)) { e(r, i, l, s, a, o, u); for (var c in r) { var f = r[c]; if (Array.isArray(f)) { if (c in T2.arrayKeywords) for (var m = 0; m < f.length; m++)D8(t, e, n, f[m], i + "/" + c + "/" + m, l, i, c, r, m) } else if (c in T2.propsKeywords) { if (f && typeof f == "object") for (var d in f) D8(t, e, n, f[d], i + "/" + c + "/" + i3e(d), l, i, c, r, d) } else (c in T2.keywords || t.allKeys && !(c in T2.skipKeywords)) && D8(t, e, n, f, i + "/" + c, l, i, c, r) } n(r, i, l, s, a, o, u) } } function i3e(t) { return t.replace(/~/g, "~0").replace(/\//g, "~1") } }); var S4 = k(ml => { "use strict"; Object.defineProperty(ml, "__esModule", { value: !0 }); ml.getSchemaRefs = ml.resolveUrl = ml.normalizeId = ml._getFullPath = ml.getFullPath = ml.inlineRef = void 0; var l3e = Nt(), s3e = i1(), a3e = DR(), o3e = new Set(["type", "format", "pattern", "maxLength", "minLength", "maxProperties", "minProperties", "maxItems", "minItems", "maximum", "minimum", "uniqueItems", "multipleOf", "required", "enum", "const"]); function u3e(t, e = !0) { return typeof t == "boolean" ? !0 : e === !0 ? !Pm(t) : e ? PR(t) <= e : !1 } ml.inlineRef = u3e; var c3e = new Set(["$ref", "$recursiveRef", "$recursiveAnchor", "$dynamicRef", "$dynamicAnchor"]); function Pm(t) { for (let e in t) { if (c3e.has(e)) return !0; let n = t[e]; if (Array.isArray(n) && n.some(Pm) || typeof n == "object" && Pm(n)) return !0 } return !1 } function PR(t) { let e = 0; for (let n in t) { if (n === "$ref") return 1 / 0; if (e++, !o3e.has(n) && (typeof t[n] == "object" && (0, l3e.eachItem)(t[n], r => e += PR(r)), e === 1 / 0)) return 1 / 0 } return e } function LR(t, e = "", n) { n !== !1 && (e = l1(e)); let r = t.parse(e); return FR(t, r) } ml.getFullPath = LR; function FR(t, e) { return t.serialize(e).split("#")[0] + "#" } ml._getFullPath = FR; var p3e = /#\/?$/; function l1(t) { return t ? t.replace(p3e, "") : "" } ml.normalizeId = l1; function f3e(t, e, n) { return n = l1(n), t.resolve(e, n) } ml.resolveUrl = f3e; var d3e = /^[a-z_][-a-z0-9._]*$/i; function h3e(t, e) { if (typeof t == "boolean") return {}; let { schemaId: n, uriResolver: r } = this.opts, i = l1(t[n] || e), l = { "": i }, s = LR(r, i, !1), a = {}, o = new Set; return a3e(t, { allKeys: !0 }, (f, m, d, y) => { if (y === void 0) return; let _ = s + m, S = l[y]; typeof f[n] == "string" && (S = w.call(this, f[n])), E.call(this, f.$anchor), E.call(this, f.$dynamicAnchor), l[m] = S; function w(g) { let v = this.opts.uriResolver.resolve; if (g = l1(S ? v(S, g) : g), o.has(g)) throw c(g); o.add(g); let x = this.refs[g]; return typeof x == "string" && (x = this.refs[x]), typeof x == "object" ? u(f, x.schema, g) : g !== l1(_) && (g[0] === "#" ? (u(f, a[g], g), a[g] = f) : this.refs[g] = _), g } function E(g) { if (typeof g == "string") { if (!d3e.test(g)) throw new Error(`invalid anchor "${g}"`); w.call(this, `#${g}`) } } }), a; function u(f, m, d) { if (m !== void 0 && !s3e(f, m)) throw c(d) } function c(f) { return new Error(`reference "${f}" resolves to more than one schema`) } } ml.getSchemaRefs = h3e }); var s1 = k(x2 => { "use strict"; Object.defineProperty(x2, "__esModule", { value: !0 }); x2.getData = x2.KeywordCxt = x2.validateFunctionCode = void 0; var BR = yR(), jR = w4(), Fm = Om(), P8 = w4(), m3e = SR(), x4 = NR(), Lm = RR(), et = st(), dt = Yl(), y3e = S4(), $a = Nt(), T4 = E4(); function g3e(t) { if (qR(t) && (zR(t), VR(t))) { E3e(t); return } HR(t, () => (0, BR.topBoolOrEmptySchema)(t)) } x2.validateFunctionCode = g3e; function HR({ gen: t, validateName: e, schema: n, schemaEnv: r, opts: i }, l) { i.code.es5 ? t.func(e, (0, et._)`${dt.default.data}, ${dt.default.valCxt}`, r.$async, () => { t.code((0, et._)`"use strict"; ${UR(n, i)}`), _3e(t, i), t.code(l) }) : t.func(e, (0, et._)`${dt.default.data}, ${v3e(i)}`, r.$async, () => t.code(UR(n, i)).code(l)) } function v3e(t) { return (0, et._)`{${dt.default.instancePath}="", ${dt.default.parentData}, ${dt.default.parentDataProperty}, ${dt.default.rootData}=${dt.default.data}${t.dynamicRef ? (0, et._)`, ${dt.default.dynamicAnchors}={}` : et.nil}}={}` } function _3e(t, e) { t.if(dt.default.valCxt, () => { t.var(dt.default.instancePath, (0, et._)`${dt.default.valCxt}.${dt.default.instancePath}`), t.var(dt.default.parentData, (0, et._)`${dt.default.valCxt}.${dt.default.parentData}`), t.var(dt.default.parentDataProperty, (0, et._)`${dt.default.valCxt}.${dt.default.parentDataProperty}`), t.var(dt.default.rootData, (0, et._)`${dt.default.valCxt}.${dt.default.rootData}`), e.dynamicRef && t.var(dt.default.dynamicAnchors, (0, et._)`${dt.default.valCxt}.${dt.default.dynamicAnchors}`) }, () => { t.var(dt.default.instancePath, (0, et._)`""`), t.var(dt.default.parentData, (0, et._)`undefined`), t.var(dt.default.parentDataProperty, (0, et._)`undefined`), t.var(dt.default.rootData, dt.default.data), e.dynamicRef && t.var(dt.default.dynamicAnchors, (0, et._)`{}`) }) } function E3e(t) { let { schema: e, opts: n, gen: r } = t; HR(t, () => { n.$comment && e.$comment && JR(t), x3e(t), r.let(dt.default.vErrors, null), r.let(dt.default.errors, 0), n.unevaluated && b3e(t), GR(t), N3e(t) }) } function b3e(t) { let { gen: e, validateName: n } = t; t.evaluated = e.const("evaluated", (0, et._)`${n}.evaluated`), e.if((0, et._)`${t.evaluated}.dynamicProps`, () => e.assign((0, et._)`${t.evaluated}.props`, (0, et._)`undefined`)), e.if((0, et._)`${t.evaluated}.dynamicItems`, () => e.assign((0, et._)`${t.evaluated}.items`, (0, et._)`undefined`)) } function UR(t, e) { let n = typeof t == "object" && t[e.schemaId]; return n && (e.code.source || e.code.process) ? (0, et._)`/*# sourceURL=${n} */` : et.nil } function w3e(t, e) { if (qR(t) && (zR(t), VR(t))) { S3e(t, e); return } (0, BR.boolOrEmptySchema)(t, e) } function VR({ schema: t, self: e }) { if (typeof t == "boolean") return !t; for (let n in t) if (e.RULES.all[n]) return !0; return !1 } function qR(t) { return typeof t.schema != "boolean" } function S3e(t, e) { let { schema: n, gen: r, opts: i } = t; i.$comment && n.$comment && JR(t), A3e(t), O3e(t); let l = r.const("_errs", dt.default.errors); GR(t, l), r.var(e, (0, et._)`${l} === ${dt.default.errors}`) } function zR(t) { (0, $a.checkUnknownRules)(t), T3e(t) } function GR(t, e) { if (t.opts.jtd) return MR(t, [], !1, e); let n = (0, jR.getSchemaTypes)(t.schema), r = (0, jR.coerceAndCheckDataType)(t, n); MR(t, n, !r, e) } function T3e(t) { let { schema: e, errSchemaPath: n, opts: r, self: i } = t; e.$ref && r.ignoreKeywordsWithRef && (0, $a.schemaHasRulesButRef)(e, i.RULES) && i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`) } function x3e(t) { let { schema: e, opts: n } = t; e.default !== void 0 && n.useDefaults && n.strictSchema && (0, $a.checkStrictMode)(t, "default is ignored in the schema root") } function A3e(t) { let e = t.schema[t.opts.schemaId]; e && (t.baseId = (0, y3e.resolveUrl)(t.opts.uriResolver, t.baseId, e)) } function O3e(t) { if (t.schema.$async && !t.schemaEnv.$async) throw new Error("async schema in sync schema") } function JR({ gen: t, schemaEnv: e, schema: n, errSchemaPath: r, opts: i }) { let l = n.$comment; if (i.$comment === !0) t.code((0, et._)`${dt.default.self}.logger.log(${l})`); else if (typeof i.$comment == "function") { let s = (0, et.str)`${r}/$comment`, a = t.scopeValue("root", { ref: e.root }); t.code((0, et._)`${dt.default.self}.opts.$comment(${l}, ${s}, ${a}.schema)`) } } function N3e(t) { let { gen: e, schemaEnv: n, validateName: r, ValidationError: i, opts: l } = t; n.$async ? e.if((0, et._)`${dt.default.errors} === 0`, () => e.return(dt.default.data), () => e.throw((0, et._)`new ${i}(${dt.default.vErrors})`)) : (e.assign((0, et._)`${r}.errors`, dt.default.vErrors), l.unevaluated && C3e(t), e.return((0, et._)`${dt.default.errors} === 0`)) } function C3e({ gen: t, evaluated: e, props: n, items: r }) { n instanceof et.Name && t.assign((0, et._)`${e}.props`, n), r instanceof et.Name && t.assign((0, et._)`${e}.items`, r) } function MR(t, e, n, r) { let { gen: i, schema: l, data: s, allErrors: a, opts: o, self: u } = t, { RULES: c } = u; if (l.$ref && (o.ignoreKeywordsWithRef || !(0, $a.schemaHasRulesButRef)(l, c))) { i.block(() => XR(t, "$ref", c.all.$ref.definition)); return } o.jtd || R3e(t, e), i.block(() => { for (let m of c.rules) f(m); f(c.post) }); function f(m) { (0, Fm.shouldUseGroup)(l, m) && (m.type ? (i.if((0, P8.checkDataType)(m.type, s, o.strictNumbers)), $R(t, m), e.length === 1 && e[0] === m.type && n && (i.else(), (0, P8.reportTypeError)(t)), i.endIf()) : $R(t, m), a || i.if((0, et._)`${dt.default.errors} === ${r || 0}`)) } } function $R(t, e) { let { gen: n, schema: r, opts: { useDefaults: i } } = t; i && (0, m3e.assignDefaults)(t, e.type), n.block(() => { for (let l of e.rules) (0, Fm.shouldUseRule)(r, l) && XR(t, l.keyword, l.definition, e.type) }) } function R3e(t, e) { t.schemaEnv.meta || !t.opts.strictTypes || (I3e(t, e), t.opts.allowUnionTypes || k3e(t, e), D3e(t, t.dataTypes)) } function I3e(t, e) { if (e.length) { if (!t.dataTypes.length) { t.dataTypes = e; return } e.forEach(n => { KR(t.dataTypes, n) || jm(t, `type "${n}" not allowed by context "${t.dataTypes.join(",")}"`) }), L3e(t, e) } } function k3e(t, e) { e.length > 1 && !(e.length === 2 && e.includes("null")) && jm(t, "use allowUnionTypes to allow union type keyword") } function D3e(t, e) { let n = t.self.RULES.all; for (let r in n) { let i = n[r]; if (typeof i == "object" && (0, Fm.shouldUseRule)(t.schema, i)) { let { type: l } = i.definition; l.length && !l.some(s => P3e(e, s)) && jm(t, `missing type "${l.join(",")}" for keyword "${r}"`) } } } function P3e(t, e) { return t.includes(e) || e === "number" && t.includes("integer") } function KR(t, e) { return t.includes(e) || e === "integer" && t.includes("number") } function L3e(t, e) { let n = []; for (let r of t.dataTypes) KR(e, r) ? n.push(r) : e.includes("integer") && r === "number" && n.push("integer"); t.dataTypes = n } function jm(t, e) { let n = t.schemaEnv.baseId + t.errSchemaPath; e += ` at "${n}" (strictTypes)`, (0, $a.checkStrictMode)(t, e, t.opts.strictTypes) } var L8 = class { constructor(e, n, r) { if ((0, x4.validateKeywordUsage)(e, n, r), this.gen = e.gen, this.allErrors = e.allErrors, this.keyword = r, this.data = e.data, this.schema = e.schema[r], this.$data = n.$data && e.opts.$data && this.schema && this.schema.$data, this.schemaValue = (0, $a.schemaRefOrVal)(e, this.schema, r, this.$data), this.schemaType = n.schemaType, this.parentSchema = e.schema, this.params = {}, this.it = e, this.def = n, this.$data) this.schemaCode = e.gen.const("vSchema", WR(this.$data, e)); else if (this.schemaCode = this.schemaValue, !(0, x4.validSchemaType)(this.schema, n.schemaType, n.allowUndefined)) throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`); ("code" in n ? n.trackErrors : n.errors !== !1) && (this.errsCount = e.gen.const("_errs", dt.default.errors)) } result(e, n, r) { this.failResult((0, et.not)(e), n, r) } failResult(e, n, r) { this.gen.if(e), r ? r() : this.error(), n ? (this.gen.else(), n(), this.allErrors && this.gen.endIf()) : this.allErrors ? this.gen.endIf() : this.gen.else() } pass(e, n) { this.failResult((0, et.not)(e), void 0, n) } fail(e) { if (e === void 0) { this.error(), this.allErrors || this.gen.if(!1); return } this.gen.if(e), this.error(), this.allErrors ? this.gen.endIf() : this.gen.else() } fail$data(e) { if (!this.$data) return this.fail(e); let { schemaCode: n } = this; this.fail((0, et._)`${n} !== undefined && (${(0, et.or)(this.invalid$data(), e)})`) } error(e, n, r) { if (n) { this.setParams(n), this._error(e, r), this.setParams({}); return } this._error(e, r) } _error(e, n) { (e ? T4.reportExtraError : T4.reportError)(this, this.def.error, n) } $dataError() { (0, T4.reportError)(this, this.def.$dataError || T4.keyword$DataError) } reset() { if (this.errsCount === void 0) throw new Error('add "trackErrors" to keyword definition'); (0, T4.resetErrorsCount)(this.gen, this.errsCount) } ok(e) { this.allErrors || this.gen.if(e) } setParams(e, n) { n ? Object.assign(this.params, e) : this.params = e } block$data(e, n, r = et.nil) { this.gen.block(() => { this.check$data(e, r), n() }) } check$data(e = et.nil, n = et.nil) { if (!this.$data) return; let { gen: r, schemaCode: i, schemaType: l, def: s } = this; r.if((0, et.or)((0, et._)`${i} === undefined`, n)), e !== et.nil && r.assign(e, !0), (l.length || s.validateSchema) && (r.elseIf(this.invalid$data()), this.$dataError(), e !== et.nil && r.assign(e, !1)), r.else() } invalid$data() { let { gen: e, schemaCode: n, schemaType: r, def: i, it: l } = this; return (0, et.or)(s(), a()); function s() { if (r.length) { if (!(n instanceof et.Name)) throw new Error("ajv implementation error"); let o = Array.isArray(r) ? r : [r]; return (0, et._)`${(0, P8.checkDataTypes)(o, n, l.opts.strictNumbers, P8.DataType.Wrong)}` } return et.nil } function a() { if (i.validateSchema) { let o = e.scopeValue("validate$data", { ref: i.validateSchema }); return (0, et._)`!${o}(${n})` } return et.nil } } subschema(e, n) { let r = (0, Lm.getSubschema)(this.it, e); (0, Lm.extendSubschemaData)(r, this.it, e), (0, Lm.extendSubschemaMode)(r, e); let i = { ...this.it, ...r, items: void 0, props: void 0 }; return w3e(i, n), i } mergeEvaluated(e, n) { let { it: r, gen: i } = this; r.opts.unevaluated && (r.props !== !0 && e.props !== void 0 && (r.props = $a.mergeEvaluated.props(i, e.props, r.props, n)), r.items !== !0 && e.items !== void 0 && (r.items = $a.mergeEvaluated.items(i, e.items, r.items, n))) } mergeValidEvaluated(e, n) { let { it: r, gen: i } = this; if (r.opts.unevaluated && (r.props !== !0 || r.items !== !0)) return i.if(n, () => this.mergeEvaluated(e, et.Name)), !0 } }; x2.KeywordCxt = L8; function XR(t, e, n, r) { let i = new L8(t, n, e); "code" in n ? n.code(i, r) : i.$data && n.validate ? (0, x4.funcKeywordCode)(i, n) : "macro" in n ? (0, x4.macroKeywordCode)(i, n) : (n.compile || n.validate) && (0, x4.funcKeywordCode)(i, n) } var F3e = /^\/(?:[^~]|~0|~1)*$/, j3e = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/; function WR(t, { dataLevel: e, dataNames: n, dataPathArr: r }) { let i, l; if (t === "") return dt.default.rootData; if (t[0] === "/") { if (!F3e.test(t)) throw new Error(`Invalid JSON-pointer: ${t}`); i = t, l = dt.default.rootData } else { let u = j3e.exec(t); if (!u) throw new Error(`Invalid JSON-pointer: ${t}`); let c = +u[1]; if (i = u[2], i === "#") { if (c >= e) throw new Error(o("property/index", c)); return r[e - c] } if (c > e) throw new Error(o("data", c)); if (l = n[e - c], !i) return l } let s = l, a = i.split("/"); for (let u of a) u && (l = (0, et._)`${l}${(0, et.getProperty)((0, $a.unescapeJsonPointer)(u))}`, s = (0, et._)`${s} && ${l}`); return s; function o(u, c) { return `Cannot access ${u} ${c} levels up, current level is ${e}` } } x2.getData = WR }); var A4 = k(Mm => { "use strict"; Object.defineProperty(Mm, "__esModule", { value: !0 }); var Um = class extends Error { constructor(e) { super("validation failed"), this.errors = e, this.ajv = this.validation = !0 } }; Mm.default = Um }); var A2 = k(Hm => { "use strict"; Object.defineProperty(Hm, "__esModule", { value: !0 }); var $m = S4(), Bm = class extends Error { constructor(e, n, r, i) { super(i || `can't resolve reference ${r} from id ${n}`), this.missingRef = (0, $m.resolveUrl)(e, n, r), this.missingSchema = (0, $m.normalizeId)((0, $m.getFullPath)(e, this.missingRef)) } }; Hm.default = Bm }); var N3 = k(Ql => { "use strict"; Object.defineProperty(Ql, "__esModule", { value: !0 }); Ql.resolveSchema = Ql.getCompilingSchema = Ql.resolveRef = Ql.compileSchema = Ql.SchemaEnv = void 0; var Es = st(), U3e = A4(), O3 = Yl(), bs = S4(), YR = Nt(), M3e = s1(), a1 = class { constructor(e) { var n; this.refs = {}, this.dynamicAnchors = {}; let r; typeof e.schema == "object" && (r = e.schema), this.schema = e.schema, this.schemaId = e.schemaId, this.root = e.root || this, this.baseId = (n = e.baseId) !== null && n !== void 0 ? n : (0, bs.normalizeId)(r?.[e.schemaId || "$id"]), this.schemaPath = e.schemaPath, this.localRefs = e.localRefs, this.meta = e.meta, this.$async = r?.$async, this.refs = {} } }; Ql.SchemaEnv = a1; function qm(t) { let e = QR.call(this, t); if (e) return e; let n = (0, bs.getFullPath)(this.opts.uriResolver, t.root.baseId), { es5: r, lines: i } = this.opts.code, { ownProperties: l } = this.opts, s = new Es.CodeGen(this.scope, { es5: r, lines: i, ownProperties: l }), a; t.$async && (a = s.scopeValue("Error", { ref: U3e.default, code: (0, Es._)`require("ajv/dist/runtime/validation_error").default` })); let o = s.scopeName("validate"); t.validateName = o; let u = { gen: s, allErrors: this.opts.allErrors, data: O3.default.data, parentData: O3.default.parentData, parentDataProperty: O3.default.parentDataProperty, dataNames: [O3.default.data], dataPathArr: [Es.nil], dataLevel: 0, dataTypes: [], definedProperties: new Set, topSchemaRef: s.scopeValue("schema", this.opts.code.source === !0 ? { ref: t.schema, code: (0, Es.stringify)(t.schema) } : { ref: t.schema }), validateName: o, ValidationError: a, schema: t.schema, schemaEnv: t, rootId: n, baseId: t.baseId || n, schemaPath: Es.nil, errSchemaPath: t.schemaPath || (this.opts.jtd ? "" : "#"), errorPath: (0, Es._)`""`, opts: this.opts, self: this }, c; try { this._compilations.add(t), (0, M3e.validateFunctionCode)(u), s.optimize(this.opts.code.optimize); let f = s.toString(); c = `${s.scopeRefs(O3.default.scope)}return ${f}`, this.opts.code.process && (c = this.opts.code.process(c, t)); let d = new Function(`${O3.default.self}`, `${O3.default.scope}`, c)(this, this.scope.get()); if (this.scope.value(o, { ref: d }), d.errors = null, d.schema = t.schema, d.schemaEnv = t, t.$async && (d.$async = !0), this.opts.code.source === !0 && (d.source = { validateName: o, validateCode: f, scopeValues: s._values }), this.opts.unevaluated) { let { props: y, items: _ } = u; d.evaluated = { props: y instanceof Es.Name ? void 0 : y, items: _ instanceof Es.Name ? void 0 : _, dynamicProps: y instanceof Es.Name, dynamicItems: _ instanceof Es.Name }, d.source && (d.source.evaluated = (0, Es.stringify)(d.evaluated)) } return t.validate = d, t } catch (f) { throw delete t.validate, delete t.validateName, c && this.logger.error("Error compiling schema, function code:", c), f } finally { this._compilations.delete(t) } } Ql.compileSchema = qm; function $3e(t, e, n) { var r; n = (0, bs.resolveUrl)(this.opts.uriResolver, e, n); let i = t.refs[n]; if (i) return i; let l = V3e.call(this, t, n); if (l === void 0) { let s = (r = t.localRefs) === null || r === void 0 ? void 0 : r[n], { schemaId: a } = this.opts; s && (l = new a1({ schema: s, schemaId: a, root: t, baseId: e })) } if (l !== void 0) return t.refs[n] = B3e.call(this, l) } Ql.resolveRef = $3e; function B3e(t) { return (0, bs.inlineRef)(t.schema, this.opts.inlineRefs) ? t.schema : t.validate ? t : qm.call(this, t) } function QR(t) { for (let e of this._compilations) if (H3e(e, t)) return e } Ql.getCompilingSchema = QR; function H3e(t, e) { return t.schema === e.schema && t.root === e.root && t.baseId === e.baseId } function V3e(t, e) { let n; for (; typeof (n = this.refs[e]) == "string";)e = n; return n || this.schemas[e] || F8.call(this, t, e) } function F8(t, e) { let n = this.opts.uriResolver.parse(e), r = (0, bs._getFullPath)(this.opts.uriResolver, n), i = (0, bs.getFullPath)(this.opts.uriResolver, t.baseId, void 0); if (Object.keys(t.schema).length > 0 && r === i) return Vm.call(this, n, t); let l = (0, bs.normalizeId)(r), s = this.refs[l] || this.schemas[l]; if (typeof s == "string") { let a = F8.call(this, t, s); return typeof a?.schema != "object" ? void 0 : Vm.call(this, n, a) } if (typeof s?.schema == "object") { if (s.validate || qm.call(this, s), l === (0, bs.normalizeId)(e)) { let { schema: a } = s, { schemaId: o } = this.opts, u = a[o]; return u && (i = (0, bs.resolveUrl)(this.opts.uriResolver, i, u)), new a1({ schema: a, schemaId: o, root: t, baseId: i }) } return Vm.call(this, n, s) } } Ql.resolveSchema = F8; var q3e = new Set(["properties", "patternProperties", "enum", "dependencies", "definitions"]); function Vm(t, { baseId: e, schema: n, root: r }) { var i; if (((i = t.fragment) === null || i === void 0 ? void 0 : i[0]) !== "/") return; for (let a of t.fragment.slice(1).split("/")) { if (typeof n == "boolean") return; let o = n[(0, YR.unescapeFragment)(a)]; if (o === void 0) return; n = o; let u = typeof n == "object" && n[this.opts.schemaId]; !q3e.has(a) && u && (e = (0, bs.resolveUrl)(this.opts.uriResolver, e, u)) } let l; if (typeof n != "boolean" && n.$ref && !(0, YR.schemaHasRulesButRef)(n, this.RULES)) { let a = (0, bs.resolveUrl)(this.opts.uriResolver, e, n.$ref); l = F8.call(this, r, a) } let { schemaId: s } = this.opts; if (l = l || new a1({ schema: n, schemaId: s, root: r, baseId: e }), l.schema !== l.root.schema) return l } }); var ZR = k((gCe, z3e) => { z3e.exports = { $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#", description: "Meta-schema for $data reference (JSON AnySchema extension proposal)", type: "object", required: ["$data"], properties: { $data: { type: "string", anyOf: [{ format: "relative-json-pointer" }, { format: "json-pointer" }] } }, additionalProperties: !1 } }); var tI = k((j8, eI) => { (function (t, e) { typeof j8 == "object" && typeof eI < "u" ? e(j8) : typeof define == "function" && define.amd ? define(["exports"], e) : e(t.URI = t.URI || {}) })(j8, function (t) { "use strict"; function e() { for (var J = arguments.length, M = Array(J), Y = 0; Y < J; Y++)M[Y] = arguments[Y]; if (M.length > 1) { M[0] = M[0].slice(0, -1); for (var le = M.length - 1, ae = 1; ae < le; ++ae)M[ae] = M[ae].slice(1, -1); return M[le] = M[le].slice(1), M.join("") } else return M[0] } function n(J) { return "(?:" + J + ")" } function r(J) { return J === void 0 ? "undefined" : J === null ? "null" : Object.prototype.toString.call(J).split(" ").pop().split("]").shift().toLowerCase() } function i(J) { return J.toUpperCase() } function l(J) { return J != null ? J instanceof Array ? J : typeof J.length != "number" || J.split || J.setInterval || J.call ? [J] : Array.prototype.slice.call(J) : [] } function s(J, M) { var Y = J; if (M) for (var le in M) Y[le] = M[le]; return Y } function a(J) { var M = "[A-Za-z]", Y = "[\\x0D]", le = "[0-9]", ae = "[\\x22]", je = e(le, "[A-Fa-f]"), bt = "[\\x0A]", Gt = "[\\x20]", sn = n(n("%[EFef]" + je + "%" + je + je + "%" + je + je) + "|" + n("%[89A-Fa-f]" + je + "%" + je + je) + "|" + n("%" + je + je)), Tr = "[\\:\\/\\?\\#\\[\\]\\@]", Ze = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", ut = e(Tr, Ze), xr = J ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", sr = J ? "[\\uE000-\\uF8FF]" : "[]", Xt = e(M, le, "[\\-\\.\\_\\~]", xr), fn = n(M + e(M, le, "[\\+\\-\\.]") + "*"), en = n(n(sn + "|" + e(Xt, Ze, "[\\:]")) + "*"), cr = n(n("25[0-5]") + "|" + n("2[0-4]" + le) + "|" + n("1" + le + le) + "|" + n("[1-9]" + le) + "|" + le), kr = n(n("25[0-5]") + "|" + n("2[0-4]" + le) + "|" + n("1" + le + le) + "|" + n("0?[1-9]" + le) + "|0?0?" + le), Xi = n(kr + "\\." + kr + "\\." + kr + "\\." + kr), cn = n(je + "{1,4}"), ki = n(n(cn + "\\:" + cn) + "|" + Xi), Wi = n(n(cn + "\\:") + "{6}" + ki), Cl = n("\\:\\:" + n(cn + "\\:") + "{5}" + ki), Fs = n(n(cn) + "?\\:\\:" + n(cn + "\\:") + "{4}" + ki), $l = n(n(n(cn + "\\:") + "{0,1}" + cn) + "?\\:\\:" + n(cn + "\\:") + "{3}" + ki), o2 = n(n(n(cn + "\\:") + "{0,2}" + cn) + "?\\:\\:" + n(cn + "\\:") + "{2}" + ki), oi = n(n(n(cn + "\\:") + "{0,3}" + cn) + "?\\:\\:" + cn + "\\:" + ki), Tu = n(n(n(cn + "\\:") + "{0,4}" + cn) + "?\\:\\:" + ki), Kr = n(n(n(cn + "\\:") + "{0,5}" + cn) + "?\\:\\:" + cn), wa = n(n(n(cn + "\\:") + "{0,6}" + cn) + "?\\:\\:"), ui = n([Wi, Cl, Fs, $l, o2, oi, Tu, Kr, wa].join("|")), cs = n(n(Xt + "|" + sn) + "+"), e3 = n(ui + "\\%25" + cs), an = n(ui + n("\\%25|\\%(?!" + je + "{2})") + cs), Us = n("[vV]" + je + "+\\." + e(Xt, Ze, "[\\:]") + "+"), B0 = n("\\[" + n(an + "|" + ui + "|" + Us) + "\\]"), Y5 = n(n(sn + "|" + e(Xt, Ze)) + "*"), Sa = n(B0 + "|" + Xi + "(?!" + Y5 + ")|" + Y5), t3 = n(le + "*"), H0 = n(n(en + "@") + "?" + Sa + n("\\:" + t3) + "?"), Ms = n(sn + "|" + e(Xt, Ze, "[\\:\\@]")), u2 = n(Ms + "*"), Q5 = n(Ms + "+"), Z5 = n(n(sn + "|" + e(Xt, Ze, "[\\@]")) + "+"), Bl = n(n("\\/" + u2) + "*"), $s = n("\\/" + n(Q5 + Bl) + "?"), n3 = n(Z5 + Bl), r3 = n(Q5 + Bl), Bs = "(?!" + Ms + ")", e6 = n(Bl + "|" + $s + "|" + n3 + "|" + r3 + "|" + Bs), Ta = n(n(Ms + "|" + e("[\\/\\?]", sr)) + "*"), Xr = n(n(Ms + "|[\\/\\?]") + "*"), xu = n(n("\\/\\/" + H0 + Bl) + "|" + $s + "|" + r3 + "|" + Bs), i3 = n(fn + "\\:" + xu + n("\\?" + Ta) + "?" + n("\\#" + Xr) + "?"), t6 = n(n("\\/\\/" + H0 + Bl) + "|" + $s + "|" + n3 + "|" + Bs), n6 = n(t6 + n("\\?" + Ta) + "?" + n("\\#" + Xr) + "?"), DT = n(i3 + "|" + n6), PT = n(fn + "\\:" + xu + n("\\?" + Ta) + "?"), LT = "^(" + fn + ")\\:" + n(n("\\/\\/(" + n("(" + en + ")@") + "?(" + Sa + ")" + n("\\:(" + t3 + ")") + "?)") + "?(" + Bl + "|" + $s + "|" + r3 + "|" + Bs + ")") + n("\\?(" + Ta + ")") + "?" + n("\\#(" + Xr + ")") + "?$", l3 = "^(){0}" + n(n("\\/\\/(" + n("(" + en + ")@") + "?(" + Sa + ")" + n("\\:(" + t3 + ")") + "?)") + "?(" + Bl + "|" + $s + "|" + n3 + "|" + Bs + ")") + n("\\?(" + Ta + ")") + "?" + n("\\#(" + Xr + ")") + "?$", r6 = "^(" + fn + ")\\:" + n(n("\\/\\/(" + n("(" + en + ")@") + "?(" + Sa + ")" + n("\\:(" + t3 + ")") + "?)") + "?(" + Bl + "|" + $s + "|" + r3 + "|" + Bs + ")") + n("\\?(" + Ta + ")") + "?$", If = "^" + n("\\#(" + Xr + ")") + "?$", xa = "^" + n("(" + en + ")@") + "?(" + Sa + ")" + n("\\:(" + t3 + ")") + "?$"; return { NOT_SCHEME: new RegExp(e("[^]", M, le, "[\\+\\-\\.]"), "g"), NOT_USERINFO: new RegExp(e("[^\\%\\:]", Xt, Ze), "g"), NOT_HOST: new RegExp(e("[^\\%\\[\\]\\:]", Xt, Ze), "g"), NOT_PATH: new RegExp(e("[^\\%\\/\\:\\@]", Xt, Ze), "g"), NOT_PATH_NOSCHEME: new RegExp(e("[^\\%\\/\\@]", Xt, Ze), "g"), NOT_QUERY: new RegExp(e("[^\\%]", Xt, Ze, "[\\:\\@\\/\\?]", sr), "g"), NOT_FRAGMENT: new RegExp(e("[^\\%]", Xt, Ze, "[\\:\\@\\/\\?]"), "g"), ESCAPE: new RegExp(e("[^]", Xt, Ze), "g"), UNRESERVED: new RegExp(Xt, "g"), OTHER_CHARS: new RegExp(e("[^\\%]", Xt, ut), "g"), PCT_ENCODED: new RegExp(sn, "g"), IPV4ADDRESS: new RegExp("^(" + Xi + ")$"), IPV6ADDRESS: new RegExp("^\\[?(" + ui + ")" + n(n("\\%25|\\%(?!" + je + "{2})") + "(" + cs + ")") + "?\\]?$") } } var o = a(!1), u = a(!0), c = function () { function J(M, Y) { var le = [], ae = !0, je = !1, bt = void 0; try { for (var Gt = M[Symbol.iterator](), sn; !(ae = (sn = Gt.next()).done) && (le.push(sn.value), !(Y && le.length === Y)); ae = !0); } catch (Tr) { je = !0, bt = Tr } finally { try { !ae && Gt.return && Gt.return() } finally { if (je) throw bt } } return le } return function (M, Y) { if (Array.isArray(M)) return M; if (Symbol.iterator in Object(M)) return J(M, Y); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }(), f = function (J) { if (Array.isArray(J)) { for (var M = 0, Y = Array(J.length); M < J.length; M++)Y[M] = J[M]; return Y } else return Array.from(J) }, m = 2147483647, d = 36, y = 1, _ = 26, S = 38, w = 700, E = 72, g = 128, v = "-", x = /^xn--/, O = /[^\0-\x7E]/, N = /[\x2E\u3002\uFF0E\uFF61]/g, R = { overflow: "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, U = d - y, F = Math.floor, te = String.fromCharCode; function Q(J) { throw new RangeError(R[J]) } function W(J, M) { for (var Y = [], le = J.length; le--;)Y[le] = M(J[le]); return Y } function ce(J, M) { var Y = J.split("@"), le = ""; Y.length > 1 && (le = Y[0] + "@", J = Y[1]), J = J.replace(N, "."); var ae = J.split("."), je = W(ae, M).join("."); return le + je } function we(J) { for (var M = [], Y = 0, le = J.length; Y < le;) { var ae = J.charCodeAt(Y++); if (ae >= 55296 && ae <= 56319 && Y < le) { var je = J.charCodeAt(Y++); (je & 64512) == 56320 ? M.push(((ae & 1023) << 10) + (je & 1023) + 65536) : (M.push(ae), Y--) } else M.push(ae) } return M } var se = function (M) { return String.fromCodePoint.apply(String, f(M)) }, ee = function (M) { return M - 48 < 10 ? M - 22 : M - 65 < 26 ? M - 65 : M - 97 < 26 ? M - 97 : d }, me = function (M, Y) { return M + 22 + 75 * (M < 26) - ((Y != 0) << 5) }, P = function (M, Y, le) { var ae = 0; for (M = le ? F(M / w) : M >> 1, M += F(M / Y); M > U * _ >> 1; ae += d)M = F(M / U); return F(ae + (U + 1) * M / (M + S)) }, G = function (M) { var Y = [], le = M.length, ae = 0, je = g, bt = E, Gt = M.lastIndexOf(v); Gt < 0 && (Gt = 0); for (var sn = 0; sn < Gt; ++sn)M.charCodeAt(sn) >= 128 && Q("not-basic"), Y.push(M.charCodeAt(sn)); for (var Tr = Gt > 0 ? Gt + 1 : 0; Tr < le;) { for (var Ze = ae, ut = 1, xr = d; ; xr += d) { Tr >= le && Q("invalid-input"); var sr = ee(M.charCodeAt(Tr++)); (sr >= d || sr > F((m - ae) / ut)) && Q("overflow"), ae += sr * ut; var Xt = xr <= bt ? y : xr >= bt + _ ? _ : xr - bt; if (sr < Xt) break; var fn = d - Xt; ut > F(m / fn) && Q("overflow"), ut *= fn } var en = Y.length + 1; bt = P(ae - Ze, en, Ze == 0), F(ae / en) > m - je && Q("overflow"), je += F(ae / en), ae %= en, Y.splice(ae++, 0, je) } return String.fromCodePoint.apply(String, Y) }, V = function (M) { var Y = []; M = we(M); var le = M.length, ae = g, je = 0, bt = E, Gt = !0, sn = !1, Tr = void 0; try { for (var Ze = M[Symbol.iterator](), ut; !(Gt = (ut = Ze.next()).done); Gt = !0) { var xr = ut.value; xr < 128 && Y.push(te(xr)) } } catch (an) { sn = !0, Tr = an } finally { try { !Gt && Ze.return && Ze.return() } finally { if (sn) throw Tr } } var sr = Y.length, Xt = sr; for (sr && Y.push(v); Xt < le;) { var fn = m, en = !0, cr = !1, kr = void 0; try { for (var Xi = M[Symbol.iterator](), cn; !(en = (cn = Xi.next()).done); en = !0) { var ki = cn.value; ki >= ae && ki < fn && (fn = ki) } } catch (an) { cr = !0, kr = an } finally { try { !en && Xi.return && Xi.return() } finally { if (cr) throw kr } } var Wi = Xt + 1; fn - ae > F((m - je) / Wi) && Q("overflow"), je += (fn - ae) * Wi, ae = fn; var Cl = !0, Fs = !1, $l = void 0; try { for (var o2 = M[Symbol.iterator](), oi; !(Cl = (oi = o2.next()).done); Cl = !0) { var Tu = oi.value; if (Tu < ae && ++je > m && Q("overflow"), Tu == ae) { for (var Kr = je, wa = d; ; wa += d) { var ui = wa <= bt ? y : wa >= bt + _ ? _ : wa - bt; if (Kr < ui) break; var cs = Kr - ui, e3 = d - ui; Y.push(te(me(ui + cs % e3, 0))), Kr = F(cs / e3) } Y.push(te(me(Kr, 0))), bt = P(je, Wi, Xt == sr), je = 0, ++Xt } } } catch (an) { Fs = !0, $l = an } finally { try { !Cl && o2.return && o2.return() } finally { if (Fs) throw $l } } ++je, ++ae } return Y.join("") }, q = function (M) { return ce(M, function (Y) { return x.test(Y) ? G(Y.slice(4).toLowerCase()) : Y }) }, Zn = function (M) { return ce(M, function (Y) { return O.test(Y) ? "xn--" + V(Y) : Y }) }, Tt = { version: "2.1.0", ucs2: { decode: we, encode: se }, decode: G, encode: V, toASCII: Zn, toUnicode: q }, Qe = {}; function pt(J) { var M = J.charCodeAt(0), Y = void 0; return M < 16 ? Y = "%0" + M.toString(16).toUpperCase() : M < 128 ? Y = "%" + M.toString(16).toUpperCase() : M < 2048 ? Y = "%" + (M >> 6 | 192).toString(16).toUpperCase() + "%" + (M & 63 | 128).toString(16).toUpperCase() : Y = "%" + (M >> 12 | 224).toString(16).toUpperCase() + "%" + (M >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (M & 63 | 128).toString(16).toUpperCase(), Y } function ze(J) { for (var M = "", Y = 0, le = J.length; Y < le;) { var ae = parseInt(J.substr(Y + 1, 2), 16); if (ae < 128) M += String.fromCharCode(ae), Y += 3; else if (ae >= 194 && ae < 224) { if (le - Y >= 6) { var je = parseInt(J.substr(Y + 4, 2), 16); M += String.fromCharCode((ae & 31) << 6 | je & 63) } else M += J.substr(Y, 6); Y += 6 } else if (ae >= 224) { if (le - Y >= 9) { var bt = parseInt(J.substr(Y + 4, 2), 16), Gt = parseInt(J.substr(Y + 7, 2), 16); M += String.fromCharCode((ae & 15) << 12 | (bt & 63) << 6 | Gt & 63) } else M += J.substr(Y, 9); Y += 9 } else M += J.substr(Y, 3), Y += 3 } return M } function Ue(J, M) { function Y(le) { var ae = ze(le); return ae.match(M.UNRESERVED) ? ae : le } return J.scheme && (J.scheme = String(J.scheme).replace(M.PCT_ENCODED, Y).toLowerCase().replace(M.NOT_SCHEME, "")), J.userinfo !== void 0 && (J.userinfo = String(J.userinfo).replace(M.PCT_ENCODED, Y).replace(M.NOT_USERINFO, pt).replace(M.PCT_ENCODED, i)), J.host !== void 0 && (J.host = String(J.host).replace(M.PCT_ENCODED, Y).toLowerCase().replace(M.NOT_HOST, pt).replace(M.PCT_ENCODED, i)), J.path !== void 0 && (J.path = String(J.path).replace(M.PCT_ENCODED, Y).replace(J.scheme ? M.NOT_PATH : M.NOT_PATH_NOSCHEME, pt).replace(M.PCT_ENCODED, i)), J.query !== void 0 && (J.query = String(J.query).replace(M.PCT_ENCODED, Y).replace(M.NOT_QUERY, pt).replace(M.PCT_ENCODED, i)), J.fragment !== void 0 && (J.fragment = String(J.fragment).replace(M.PCT_ENCODED, Y).replace(M.NOT_FRAGMENT, pt).replace(M.PCT_ENCODED, i)), J } function $t(J) { return J.replace(/^0*(.*)/, "$1") || "0" } function gt(J, M) { var Y = J.match(M.IPV4ADDRESS) || [], le = c(Y, 2), ae = le[1]; return ae ? ae.split(".").map($t).join(".") : J } function Et(J, M) { var Y = J.match(M.IPV6ADDRESS) || [], le = c(Y, 3), ae = le[1], je = le[2]; if (ae) { for (var bt = ae.toLowerCase().split("::").reverse(), Gt = c(bt, 2), sn = Gt[0], Tr = Gt[1], Ze = Tr ? Tr.split(":").map($t) : [], ut = sn.split(":").map($t), xr = M.IPV4ADDRESS.test(ut[ut.length - 1]), sr = xr ? 7 : 8, Xt = ut.length - sr, fn = Array(sr), en = 0; en < sr; ++en)fn[en] = Ze[en] || ut[Xt + en] || ""; xr && (fn[sr - 1] = gt(fn[sr - 1], M)); var cr = fn.reduce(function (Wi, Cl, Fs) { if (!Cl || Cl === "0") { var $l = Wi[Wi.length - 1]; $l && $l.index + $l.length === Fs ? $l.length++ : Wi.push({ index: Fs, length: 1 }) } return Wi }, []), kr = cr.sort(function (Wi, Cl) { return Cl.length - Wi.length })[0], Xi = void 0; if (kr && kr.length > 1) { var cn = fn.slice(0, kr.index), ki = fn.slice(kr.index + kr.length); Xi = cn.join(":") + "::" + ki.join(":") } else Xi = fn.join(":"); return je && (Xi += "%" + je), Xi } else return J } var ie = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i, ve = "".match(/(){0}/)[1] === void 0; function Se(J) { var M = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, Y = {}, le = M.iri !== !1 ? u : o; M.reference === "suffix" && (J = (M.scheme ? M.scheme + ":" : "") + "//" + J); var ae = J.match(ie); if (ae) { ve ? (Y.scheme = ae[1], Y.userinfo = ae[3], Y.host = ae[4], Y.port = parseInt(ae[5], 10), Y.path = ae[6] || "", Y.query = ae[7], Y.fragment = ae[8], isNaN(Y.port) && (Y.port = ae[5])) : (Y.scheme = ae[1] || void 0, Y.userinfo = J.indexOf("@") !== -1 ? ae[3] : void 0, Y.host = J.indexOf("//") !== -1 ? ae[4] : void 0, Y.port = parseInt(ae[5], 10), Y.path = ae[6] || "", Y.query = J.indexOf("?") !== -1 ? ae[7] : void 0, Y.fragment = J.indexOf("#") !== -1 ? ae[8] : void 0, isNaN(Y.port) && (Y.port = J.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? ae[4] : void 0)), Y.host && (Y.host = Et(gt(Y.host, le), le)), Y.scheme === void 0 && Y.userinfo === void 0 && Y.host === void 0 && Y.port === void 0 && !Y.path && Y.query === void 0 ? Y.reference = "same-document" : Y.scheme === void 0 ? Y.reference = "relative" : Y.fragment === void 0 ? Y.reference = "absolute" : Y.reference = "uri", M.reference && M.reference !== "suffix" && M.reference !== Y.reference && (Y.error = Y.error || "URI is not a " + M.reference + " reference."); var je = Qe[(M.scheme || Y.scheme || "").toLowerCase()]; if (!M.unicodeSupport && (!je || !je.unicodeSupport)) { if (Y.host && (M.domainHost || je && je.domainHost)) try { Y.host = Tt.toASCII(Y.host.replace(le.PCT_ENCODED, ze).toLowerCase()) } catch (bt) { Y.error = Y.error || "Host's domain name can not be converted to ASCII via punycode: " + bt } Ue(Y, o) } else Ue(Y, le); je && je.parse && je.parse(Y, M) } else Y.error = Y.error || "URI can not be parsed."; return Y } function Xe(J, M) { var Y = M.iri !== !1 ? u : o, le = []; return J.userinfo !== void 0 && (le.push(J.userinfo), le.push("@")), J.host !== void 0 && le.push(Et(gt(String(J.host), Y), Y).replace(Y.IPV6ADDRESS, function (ae, je, bt) { return "[" + je + (bt ? "%25" + bt : "") + "]" })), (typeof J.port == "number" || typeof J.port == "string") && (le.push(":"), le.push(String(J.port))), le.length ? le.join("") : void 0 } var ft = /^\.\.?\//, Pe = /^\/\.(\/|$)/, Lt = /^\/\.\.(\/|$)/, wr = /^\/?(?:.|\n)*?(?=\/|$)/; function Ft(J) { for (var M = []; J.length;)if (J.match(ft)) J = J.replace(ft, ""); else if (J.match(Pe)) J = J.replace(Pe, "/"); else if (J.match(Lt)) J = J.replace(Lt, "/"), M.pop(); else if (J === "." || J === "..") J = ""; else { var Y = J.match(wr); if (Y) { var le = Y[0]; J = J.slice(le.length), M.push(le) } else throw new Error("Unexpected dot segment condition") } return M.join("") } function Zt(J) { var M = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, Y = M.iri ? u : o, le = [], ae = Qe[(M.scheme || J.scheme || "").toLowerCase()]; if (ae && ae.serialize && ae.serialize(J, M), J.host && !Y.IPV6ADDRESS.test(J.host)) { if (M.domainHost || ae && ae.domainHost) try { J.host = M.iri ? Tt.toUnicode(J.host) : Tt.toASCII(J.host.replace(Y.PCT_ENCODED, ze).toLowerCase()) } catch (Gt) { J.error = J.error || "Host's domain name can not be converted to " + (M.iri ? "Unicode" : "ASCII") + " via punycode: " + Gt } } Ue(J, Y), M.reference !== "suffix" && J.scheme && (le.push(J.scheme), le.push(":")); var je = Xe(J, M); if (je !== void 0 && (M.reference !== "suffix" && le.push("//"), le.push(je), J.path && J.path.charAt(0) !== "/" && le.push("/")), J.path !== void 0) { var bt = J.path; !M.absolutePath && (!ae || !ae.absolutePath) && (bt = Ft(bt)), je === void 0 && (bt = bt.replace(/^\/\//, "/%2F")), le.push(bt) } return J.query !== void 0 && (le.push("?"), le.push(J.query)), J.fragment !== void 0 && (le.push("#"), le.push(J.fragment)), le.join("") } function ol(J, M) { var Y = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, le = arguments[3], ae = {}; return le || (J = Se(Zt(J, Y), Y), M = Se(Zt(M, Y), Y)), Y = Y || {}, !Y.tolerant && M.scheme ? (ae.scheme = M.scheme, ae.userinfo = M.userinfo, ae.host = M.host, ae.port = M.port, ae.path = Ft(M.path || ""), ae.query = M.query) : (M.userinfo !== void 0 || M.host !== void 0 || M.port !== void 0 ? (ae.userinfo = M.userinfo, ae.host = M.host, ae.port = M.port, ae.path = Ft(M.path || ""), ae.query = M.query) : (M.path ? (M.path.charAt(0) === "/" ? ae.path = Ft(M.path) : ((J.userinfo !== void 0 || J.host !== void 0 || J.port !== void 0) && !J.path ? ae.path = "/" + M.path : J.path ? ae.path = J.path.slice(0, J.path.lastIndexOf("/") + 1) + M.path : ae.path = M.path, ae.path = Ft(ae.path)), ae.query = M.query) : (ae.path = J.path, M.query !== void 0 ? ae.query = M.query : ae.query = J.query), ae.userinfo = J.userinfo, ae.host = J.host, ae.port = J.port), ae.scheme = J.scheme), ae.fragment = M.fragment, ae } function dr(J, M, Y) { var le = s({ scheme: "null" }, Y); return Zt(ol(Se(J, le), Se(M, le), le, !0), le) } function si(J, M) { return typeof J == "string" ? J = Zt(Se(J, M), M) : r(J) === "object" && (J = Se(Zt(J, M), M)), J } function Sr(J, M, Y) { return typeof J == "string" ? J = Zt(Se(J, Y), Y) : r(J) === "object" && (J = Zt(J, Y)), typeof M == "string" ? M = Zt(Se(M, Y), Y) : r(M) === "object" && (M = Zt(M, Y)), J === M } function bi(J, M) { return J && J.toString().replace(!M || !M.iri ? o.ESCAPE : u.ESCAPE, pt) } function Ri(J, M) { return J && J.toString().replace(!M || !M.iri ? o.PCT_ENCODED : u.PCT_ENCODED, ze) } var Ul = { scheme: "http", domainHost: !0, parse: function (M, Y) { return M.host || (M.error = M.error || "HTTP URIs must have a host."), M }, serialize: function (M, Y) { var le = String(M.scheme).toLowerCase() === "https"; return (M.port === (le ? 443 : 80) || M.port === "") && (M.port = void 0), M.path || (M.path = "/"), M } }, Rr = { scheme: "https", domainHost: Ul.domainHost, parse: Ul.parse, serialize: Ul.serialize }; function wu(J) { return typeof J.secure == "boolean" ? J.secure : String(J.scheme).toLowerCase() === "wss" } var Ds = { scheme: "ws", domainHost: !0, parse: function (M, Y) { var le = M; return le.secure = wu(le), le.resourceName = (le.path || "/") + (le.query ? "?" + le.query : ""), le.path = void 0, le.query = void 0, le }, serialize: function (M, Y) { if ((M.port === (wu(M) ? 443 : 80) || M.port === "") && (M.port = void 0), typeof M.secure == "boolean" && (M.scheme = M.secure ? "wss" : "ws", M.secure = void 0), M.resourceName) { var le = M.resourceName.split("?"), ae = c(le, 2), je = ae[0], bt = ae[1]; M.path = je && je !== "/" ? je : void 0, M.query = bt, M.resourceName = void 0 } return M.fragment = void 0, M } }, er = { scheme: "wss", domainHost: Ds.domainHost, parse: Ds.parse, serialize: Ds.serialize }, Ki = {}, Rf = !0, ai = "[A-Za-z0-9\\-\\.\\_\\~" + (Rf ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]", Hr = "[0-9A-Fa-f]", Su = n(n("%[EFef]" + Hr + "%" + Hr + Hr + "%" + Hr + Hr) + "|" + n("%[89A-Fa-f]" + Hr + "%" + Hr + Hr) + "|" + n("%" + Hr + Hr)), Jr = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]", Ea = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]", Ps = e(Ea, '[\\"\\\\]'), yr = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]", Ir = new RegExp(ai, "g"), ba = new RegExp(Su, "g"), Ii = new RegExp(e("[^]", Jr, "[\\.]", '[\\"]', Ps), "g"), wi = new RegExp(e("[^]", ai, yr), "g"), os = wi; function Nl(J) { var M = ze(J); return M.match(Ir) ? M : J } var us = { scheme: "mailto", parse: function (M, Y) { var le = M, ae = le.to = le.path ? le.path.split(",") : []; if (le.path = void 0, le.query) { for (var je = !1, bt = {}, Gt = le.query.split("&"), sn = 0, Tr = Gt.length; sn < Tr; ++sn) { var Ze = Gt[sn].split("="); switch (Ze[0]) { case "to": for (var ut = Ze[1].split(","), xr = 0, sr = ut.length; xr < sr; ++xr)ae.push(ut[xr]); break; case "subject": le.subject = Ri(Ze[1], Y); break; case "body": le.body = Ri(Ze[1], Y); break; default: je = !0, bt[Ri(Ze[0], Y)] = Ri(Ze[1], Y); break } } je && (le.headers = bt) } le.query = void 0; for (var Xt = 0, fn = ae.length; Xt < fn; ++Xt) { var en = ae[Xt].split("@"); if (en[0] = Ri(en[0]), Y.unicodeSupport) en[1] = Ri(en[1], Y).toLowerCase(); else try { en[1] = Tt.toASCII(Ri(en[1], Y).toLowerCase()) } catch (cr) { le.error = le.error || "Email address's domain name can not be converted to ASCII via punycode: " + cr } ae[Xt] = en.join("@") } return le }, serialize: function (M, Y) { var le = M, ae = l(M.to); if (ae) { for (var je = 0, bt = ae.length; je < bt; ++je) { var Gt = String(ae[je]), sn = Gt.lastIndexOf("@"), Tr = Gt.slice(0, sn).replace(ba, Nl).replace(ba, i).replace(Ii, pt), Ze = Gt.slice(sn + 1); try { Ze = Y.iri ? Tt.toUnicode(Ze) : Tt.toASCII(Ri(Ze, Y).toLowerCase()) } catch (Xt) { le.error = le.error || "Email address's domain name can not be converted to " + (Y.iri ? "Unicode" : "ASCII") + " via punycode: " + Xt } ae[je] = Tr + "@" + Ze } le.path = ae.join(",") } var ut = M.headers = M.headers || {}; M.subject && (ut.subject = M.subject), M.body && (ut.body = M.body); var xr = []; for (var sr in ut) ut[sr] !== Ki[sr] && xr.push(sr.replace(ba, Nl).replace(ba, i).replace(wi, pt) + "=" + ut[sr].replace(ba, Nl).replace(ba, i).replace(os, pt)); return xr.length && (le.query = xr.join("&")), le } }, Ls = /^([^\:]+)\:(.*)/, Ml = { scheme: "urn", parse: function (M, Y) { var le = M.path && M.path.match(Ls), ae = M; if (le) { var je = Y.scheme || ae.scheme || "urn", bt = le[1].toLowerCase(), Gt = le[2], sn = je + ":" + (Y.nid || bt), Tr = Qe[sn]; ae.nid = bt, ae.nss = Gt, ae.path = void 0, Tr && (ae = Tr.parse(ae, Y)) } else ae.error = ae.error || "URN can not be parsed."; return ae }, serialize: function (M, Y) { var le = Y.scheme || M.scheme || "urn", ae = M.nid, je = le + ":" + (Y.nid || ae), bt = Qe[je]; bt && (M = bt.serialize(M, Y)); var Gt = M, sn = M.nss; return Gt.path = (ae || Y.nid) + ":" + sn, Gt } }, W5 = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/, Zo = { scheme: "urn:uuid", parse: function (M, Y) { var le = M; return le.uuid = le.nss, le.nss = void 0, !Y.tolerant && (!le.uuid || !le.uuid.match(W5)) && (le.error = le.error || "UUID is not valid."), le }, serialize: function (M, Y) { var le = M; return le.nss = (M.uuid || "").toLowerCase(), le } }; Qe[Ul.scheme] = Ul, Qe[Rr.scheme] = Rr, Qe[Ds.scheme] = Ds, Qe[er.scheme] = er, Qe[us.scheme] = us, Qe[Ml.scheme] = Ml, Qe[Zo.scheme] = Zo, t.SCHEMES = Qe, t.pctEncChar = pt, t.pctDecChars = ze, t.parse = Se, t.removeDotSegments = Ft, t.serialize = Zt, t.resolveComponents = ol, t.resolve = dr, t.normalize = si, t.equal = Sr, t.escapeComponent = bi, t.unescapeComponent = Ri, Object.defineProperty(t, "__esModule", { value: !0 }) }) }); var rI = k(zm => { "use strict"; Object.defineProperty(zm, "__esModule", { value: !0 }); var nI = tI(); nI.code = 'require("ajv/dist/runtime/uri").default'; zm.default = nI }); var Km = k(Oi => { "use strict"; Object.defineProperty(Oi, "__esModule", { value: !0 }); Oi.CodeGen = Oi.Name = Oi.nil = Oi.stringify = Oi.str = Oi._ = Oi.KeywordCxt = void 0; var G3e = s1(); Object.defineProperty(Oi, "KeywordCxt", { enumerable: !0, get: function () { return G3e.KeywordCxt } }); var o1 = st(); Object.defineProperty(Oi, "_", { enumerable: !0, get: function () { return o1._ } }); Object.defineProperty(Oi, "str", { enumerable: !0, get: function () { return o1.str } }); Object.defineProperty(Oi, "stringify", { enumerable: !0, get: function () { return o1.stringify } }); Object.defineProperty(Oi, "nil", { enumerable: !0, get: function () { return o1.nil } }); Object.defineProperty(Oi, "Name", { enumerable: !0, get: function () { return o1.Name } }); Object.defineProperty(Oi, "CodeGen", { enumerable: !0, get: function () { return o1.CodeGen } }); var J3e = A4(), oI = A2(), K3e = Am(), O4 = N3(), X3e = st(), N4 = S4(), U8 = w4(), Jm = Nt(), iI = ZR(), W3e = rI(), uI = (t, e) => new RegExp(t, e); uI.code = "new RegExp"; var Y3e = ["removeAdditional", "useDefaults", "coerceTypes"], Q3e = new Set(["validate", "serialize", "parse", "wrapper", "root", "schema", "keyword", "pattern", "formats", "validate$data", "func", "obj", "Error"]), Z3e = { errorDataPath: "", format: "`validateFormats: false` can be used instead.", nullable: '"nullable" keyword is supported by default.', jsonPointers: "Deprecated jsPropertySyntax can be used instead.", extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.", missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.", processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`", sourceCode: "Use option `code: {source: true}`", strictDefaults: "It is default now, see option `strict`.", strictKeywords: "It is default now, see option `strict`.", uniqueItems: '"uniqueItems" keyword is always validated.', unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).", cache: "Map is used as cache, schema object as key.", serialize: "Map is used as cache, schema object as key.", ajvErrors: "It is default now." }, eue = { ignoreKeywordsWithRef: "", jsPropertySyntax: "", unicode: '"minLength"/"maxLength" account for unicode characters by default.' }, lI = 200; function tue(t) { var e, n, r, i, l, s, a, o, u, c, f, m, d, y, _, S, w, E, g, v, x, O, N, R, U; let F = t.strict, te = (e = t.code) === null || e === void 0 ? void 0 : e.optimize, Q = te === !0 || te === void 0 ? 1 : te || 0, W = (r = (n = t.code) === null || n === void 0 ? void 0 : n.regExp) !== null && r !== void 0 ? r : uI, ce = (i = t.uriResolver) !== null && i !== void 0 ? i : W3e.default; return { strictSchema: (s = (l = t.strictSchema) !== null && l !== void 0 ? l : F) !== null && s !== void 0 ? s : !0, strictNumbers: (o = (a = t.strictNumbers) !== null && a !== void 0 ? a : F) !== null && o !== void 0 ? o : !0, strictTypes: (c = (u = t.strictTypes) !== null && u !== void 0 ? u : F) !== null && c !== void 0 ? c : "log", strictTuples: (m = (f = t.strictTuples) !== null && f !== void 0 ? f : F) !== null && m !== void 0 ? m : "log", strictRequired: (y = (d = t.strictRequired) !== null && d !== void 0 ? d : F) !== null && y !== void 0 ? y : !1, code: t.code ? { ...t.code, optimize: Q, regExp: W } : { optimize: Q, regExp: W }, loopRequired: (_ = t.loopRequired) !== null && _ !== void 0 ? _ : lI, loopEnum: (S = t.loopEnum) !== null && S !== void 0 ? S : lI, meta: (w = t.meta) !== null && w !== void 0 ? w : !0, messages: (E = t.messages) !== null && E !== void 0 ? E : !0, inlineRefs: (g = t.inlineRefs) !== null && g !== void 0 ? g : !0, schemaId: (v = t.schemaId) !== null && v !== void 0 ? v : "$id", addUsedSchema: (x = t.addUsedSchema) !== null && x !== void 0 ? x : !0, validateSchema: (O = t.validateSchema) !== null && O !== void 0 ? O : !0, validateFormats: (N = t.validateFormats) !== null && N !== void 0 ? N : !0, unicodeRegExp: (R = t.unicodeRegExp) !== null && R !== void 0 ? R : !0, int32range: (U = t.int32range) !== null && U !== void 0 ? U : !0, uriResolver: ce } } var C4 = class { constructor(e = {}) { this.schemas = {}, this.refs = {}, this.formats = {}, this._compilations = new Set, this._loading = {}, this._cache = new Map, e = this.opts = { ...e, ...tue(e) }; let { es5: n, lines: r } = this.opts.code; this.scope = new X3e.ValueScope({ scope: {}, prefixes: Q3e, es5: n, lines: r }), this.logger = aue(e.logger); let i = e.validateFormats; e.validateFormats = !1, this.RULES = (0, K3e.getRules)(), sI.call(this, Z3e, e, "NOT SUPPORTED"), sI.call(this, eue, e, "DEPRECATED", "warn"), this._metaOpts = lue.call(this), e.formats && rue.call(this), this._addVocabularies(), this._addDefaultMetaSchema(), e.keywords && iue.call(this, e.keywords), typeof e.meta == "object" && this.addMetaSchema(e.meta), nue.call(this), e.validateFormats = i } _addVocabularies() { this.addKeyword("$async") } _addDefaultMetaSchema() { let { $data: e, meta: n, schemaId: r } = this.opts, i = iI; r === "id" && (i = { ...iI }, i.id = i.$id, delete i.$id), n && e && this.addMetaSchema(i, i[r], !1) } defaultMeta() { let { meta: e, schemaId: n } = this.opts; return this.opts.defaultMeta = typeof e == "object" ? e[n] || e : void 0 } validate(e, n) { let r; if (typeof e == "string") { if (r = this.getSchema(e), !r) throw new Error(`no schema with key or ref "${e}"`) } else r = this.compile(e); let i = r(n); return "$async" in r || (this.errors = r.errors), i } compile(e, n) { let r = this._addSchema(e, n); return r.validate || this._compileSchemaEnv(r) } compileAsync(e, n) { if (typeof this.opts.loadSchema != "function") throw new Error("options.loadSchema should be a function"); let { loadSchema: r } = this.opts; return i.call(this, e, n); async function i(c, f) { await l.call(this, c.$schema); let m = this._addSchema(c, f); return m.validate || s.call(this, m) } async function l(c) { c && !this.getSchema(c) && await i.call(this, { $ref: c }, !0) } async function s(c) { try { return this._compileSchemaEnv(c) } catch (f) { if (!(f instanceof oI.default)) throw f; return a.call(this, f), await o.call(this, f.missingSchema), s.call(this, c) } } function a({ missingSchema: c, missingRef: f }) { if (this.refs[c]) throw new Error(`AnySchema ${c} is loaded but ${f} cannot be resolved`) } async function o(c) { let f = await u.call(this, c); this.refs[c] || await l.call(this, f.$schema), this.refs[c] || this.addSchema(f, c, n) } async function u(c) { let f = this._loading[c]; if (f) return f; try { return await (this._loading[c] = r(c)) } finally { delete this._loading[c] } } } addSchema(e, n, r, i = this.opts.validateSchema) { if (Array.isArray(e)) { for (let s of e) this.addSchema(s, void 0, r, i); return this } let l; if (typeof e == "object") { let { schemaId: s } = this.opts; if (l = e[s], l !== void 0 && typeof l != "string") throw new Error(`schema ${s} must be string`) } return n = (0, N4.normalizeId)(n || l), this._checkUnique(n), this.schemas[n] = this._addSchema(e, r, n, i, !0), this } addMetaSchema(e, n, r = this.opts.validateSchema) { return this.addSchema(e, n, !0, r), this } validateSchema(e, n) { if (typeof e == "boolean") return !0; let r; if (r = e.$schema, r !== void 0 && typeof r != "string") throw new Error("$schema must be a string"); if (r = r || this.opts.defaultMeta || this.defaultMeta(), !r) return this.logger.warn("meta-schema not available"), this.errors = null, !0; let i = this.validate(r, e); if (!i && n) { let l = "schema is invalid: " + this.errorsText(); if (this.opts.validateSchema === "log") this.logger.error(l); else throw new Error(l) } return i } getSchema(e) { let n; for (; typeof (n = aI.call(this, e)) == "string";)e = n; if (n === void 0) { let { schemaId: r } = this.opts, i = new O4.SchemaEnv({ schema: {}, schemaId: r }); if (n = O4.resolveSchema.call(this, i, e), !n) return; this.refs[e] = n } return n.validate || this._compileSchemaEnv(n) } removeSchema(e) { if (e instanceof RegExp) return this._removeAllSchemas(this.schemas, e), this._removeAllSchemas(this.refs, e), this; switch (typeof e) { case "undefined": return this._removeAllSchemas(this.schemas), this._removeAllSchemas(this.refs), this._cache.clear(), this; case "string": { let n = aI.call(this, e); return typeof n == "object" && this._cache.delete(n.schema), delete this.schemas[e], delete this.refs[e], this } case "object": { let n = e; this._cache.delete(n); let r = e[this.opts.schemaId]; return r && (r = (0, N4.normalizeId)(r), delete this.schemas[r], delete this.refs[r]), this } default: throw new Error("ajv.removeSchema: invalid parameter") } } addVocabulary(e) { for (let n of e) this.addKeyword(n); return this } addKeyword(e, n) { let r; if (typeof e == "string") r = e, typeof n == "object" && (this.logger.warn("these parameters are deprecated, see docs for addKeyword"), n.keyword = r); else if (typeof e == "object" && n === void 0) { if (n = e, r = n.keyword, Array.isArray(r) && !r.length) throw new Error("addKeywords: keyword must be string or non-empty array") } else throw new Error("invalid addKeywords parameters"); if (uue.call(this, r, n), !n) return (0, Jm.eachItem)(r, l => Gm.call(this, l)), this; pue.call(this, n); let i = { ...n, type: (0, U8.getJSONTypes)(n.type), schemaType: (0, U8.getJSONTypes)(n.schemaType) }; return (0, Jm.eachItem)(r, i.type.length === 0 ? l => Gm.call(this, l, i) : l => i.type.forEach(s => Gm.call(this, l, i, s))), this } getKeyword(e) { let n = this.RULES.all[e]; return typeof n == "object" ? n.definition : !!n } removeKeyword(e) { let { RULES: n } = this; delete n.keywords[e], delete n.all[e]; for (let r of n.rules) { let i = r.rules.findIndex(l => l.keyword === e); i >= 0 && r.rules.splice(i, 1) } return this } addFormat(e, n) { return typeof n == "string" && (n = new RegExp(n)), this.formats[e] = n, this } errorsText(e = this.errors, { separator: n = ", ", dataVar: r = "data" } = {}) { return !e || e.length === 0 ? "No errors" : e.map(i => `${r}${i.instancePath} ${i.message}`).reduce((i, l) => i + n + l) } $dataMetaSchema(e, n) { let r = this.RULES.all; e = JSON.parse(JSON.stringify(e)); for (let i of n) { let l = i.split("/").slice(1), s = e; for (let a of l) s = s[a]; for (let a in r) { let o = r[a]; if (typeof o != "object") continue; let { $data: u } = o.definition, c = s[a]; u && c && (s[a] = cI(c)) } } return e } _removeAllSchemas(e, n) { for (let r in e) { let i = e[r]; (!n || n.test(r)) && (typeof i == "string" ? delete e[r] : i && !i.meta && (this._cache.delete(i.schema), delete e[r])) } } _addSchema(e, n, r, i = this.opts.validateSchema, l = this.opts.addUsedSchema) { let s, { schemaId: a } = this.opts; if (typeof e == "object") s = e[a]; else { if (this.opts.jtd) throw new Error("schema must be object"); if (typeof e != "boolean") throw new Error("schema must be object or boolean") } let o = this._cache.get(e); if (o !== void 0) return o; r = (0, N4.normalizeId)(s || r); let u = N4.getSchemaRefs.call(this, e, r); return o = new O4.SchemaEnv({ schema: e, schemaId: a, meta: n, baseId: r, localRefs: u }), this._cache.set(o.schema, o), l && !r.startsWith("#") && (r && this._checkUnique(r), this.refs[r] = o), i && this.validateSchema(e, !0), o } _checkUnique(e) { if (this.schemas[e] || this.refs[e]) throw new Error(`schema with key or id "${e}" already exists`) } _compileSchemaEnv(e) { if (e.meta ? this._compileMetaSchema(e) : O4.compileSchema.call(this, e), !e.validate) throw new Error("ajv implementation error"); return e.validate } _compileMetaSchema(e) { let n = this.opts; this.opts = this._metaOpts; try { O4.compileSchema.call(this, e) } finally { this.opts = n } } }; Oi.default = C4; C4.ValidationError = J3e.default; C4.MissingRefError = oI.default; function sI(t, e, n, r = "error") { for (let i in t) { let l = i; l in e && this.logger[r](`${n}: option ${i}. ${t[l]}`) } } function aI(t) { return t = (0, N4.normalizeId)(t), this.schemas[t] || this.refs[t] } function nue() { let t = this.opts.schemas; if (t) if (Array.isArray(t)) this.addSchema(t); else for (let e in t) this.addSchema(t[e], e) } function rue() { for (let t in this.opts.formats) { let e = this.opts.formats[t]; e && this.addFormat(t, e) } } function iue(t) { if (Array.isArray(t)) { this.addVocabulary(t); return } this.logger.warn("keywords option as map is deprecated, pass array"); for (let e in t) { let n = t[e]; n.keyword || (n.keyword = e), this.addKeyword(n) } } function lue() { let t = { ...this.opts }; for (let e of Y3e) delete t[e]; return t } var sue = { log() { }, warn() { }, error() { } }; function aue(t) { if (t === !1) return sue; if (t === void 0) return console; if (t.log && t.warn && t.error) return t; throw new Error("logger must implement log, warn and error methods") } var oue = /^[a-z_$][a-z0-9_$:-]*$/i; function uue(t, e) { let { RULES: n } = this; if ((0, Jm.eachItem)(t, r => { if (n.keywords[r]) throw new Error(`Keyword ${r} is already defined`); if (!oue.test(r)) throw new Error(`Keyword ${r} has invalid name`) }), !!e && e.$data && !("code" in e || "validate" in e)) throw new Error('$data keyword must have "code" or "validate" function') } function Gm(t, e, n) { var r; let i = e?.post; if (n && i) throw new Error('keyword with "post" flag cannot have "type"'); let { RULES: l } = this, s = i ? l.post : l.rules.find(({ type: o }) => o === n); if (s || (s = { type: n, rules: [] }, l.rules.push(s)), l.keywords[t] = !0, !e) return; let a = { keyword: t, definition: { ...e, type: (0, U8.getJSONTypes)(e.type), schemaType: (0, U8.getJSONTypes)(e.schemaType) } }; e.before ? cue.call(this, s, a, e.before) : s.rules.push(a), l.all[t] = a, (r = e.implements) === null || r === void 0 || r.forEach(o => this.addKeyword(o)) } function cue(t, e, n) { let r = t.rules.findIndex(i => i.keyword === n); r >= 0 ? t.rules.splice(r, 0, e) : (t.rules.push(e), this.logger.warn(`rule ${n} is not defined`)) } function pue(t) { let { metaSchema: e } = t; e !== void 0 && (t.$data && this.opts.$data && (e = cI(e)), t.validateSchema = this.compile(e, !0)) } var fue = { $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#" }; function cI(t) { return { anyOf: [t, fue] } } }); var pI = k(Xm => { "use strict"; Object.defineProperty(Xm, "__esModule", { value: !0 }); var due = { keyword: "id", code() { throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID') } }; Xm.default = due }); var Wm = k(C3 => { "use strict"; Object.defineProperty(C3, "__esModule", { value: !0 }); C3.callRef = C3.getValidate = void 0; var hue = A2(), fI = Ai(), yl = st(), u1 = Yl(), dI = N3(), M8 = Nt(), mue = { keyword: "$ref", schemaType: "string", code(t) { let { gen: e, schema: n, it: r } = t, { baseId: i, schemaEnv: l, validateName: s, opts: a, self: o } = r, { root: u } = l; if ((n === "#" || n === "#/") && i === u.baseId) return f(); let c = dI.resolveRef.call(o, u, i, n); if (c === void 0) throw new hue.default(r.opts.uriResolver, i, n); if (c instanceof dI.SchemaEnv) return m(c); return d(c); function f() { if (l === u) return $8(t, s, l, l.$async); let y = e.scopeValue("root", { ref: u }); return $8(t, (0, yl._)`${y}.validate`, u, u.$async) } function m(y) { let _ = hI(t, y); $8(t, _, y, y.$async) } function d(y) { let _ = e.scopeValue("schema", a.code.source === !0 ? { ref: y, code: (0, yl.stringify)(y) } : { ref: y }), S = e.name("valid"), w = t.subschema({ schema: y, dataTypes: [], schemaPath: yl.nil, topSchemaRef: _, errSchemaPath: n }, S); t.mergeEvaluated(w), t.ok(S) } } }; function hI(t, e) { let { gen: n } = t; return e.validate ? n.scopeValue("validate", { ref: e.validate }) : (0, yl._)`${n.scopeValue("wrapper", { ref: e })}.validate` } C3.getValidate = hI; function $8(t, e, n, r) { let { gen: i, it: l } = t, { allErrors: s, schemaEnv: a, opts: o } = l, u = o.passContext ? u1.default.this : yl.nil; r ? c() : f(); function c() { if (!a.$async) throw new Error("async schema referenced by sync schema"); let y = i.let("valid"); i.try(() => { i.code((0, yl._)`await ${(0, fI.callValidateCode)(t, e, u)}`), d(e), s || i.assign(y, !0) }, _ => { i.if((0, yl._)`!(${_} instanceof ${l.ValidationError})`, () => i.throw(_)), m(_), s || i.assign(y, !1) }), t.ok(y) } function f() { t.result((0, fI.callValidateCode)(t, e, u), () => d(e), () => m(e)) } function m(y) { let _ = (0, yl._)`${y}.errors`; i.assign(u1.default.vErrors, (0, yl._)`${u1.default.vErrors} === null ? ${_} : ${u1.default.vErrors}.concat(${_})`), i.assign(u1.default.errors, (0, yl._)`${u1.default.vErrors}.length`) } function d(y) { var _; if (!l.opts.unevaluated) return; let S = (_ = n?.validate) === null || _ === void 0 ? void 0 : _.evaluated; if (l.props !== !0) if (S && !S.dynamicProps) S.props !== void 0 && (l.props = M8.mergeEvaluated.props(i, S.props, l.props)); else { let w = i.var("props", (0, yl._)`${y}.evaluated.props`); l.props = M8.mergeEvaluated.props(i, w, l.props, yl.Name) } if (l.items !== !0) if (S && !S.dynamicItems) S.items !== void 0 && (l.items = M8.mergeEvaluated.items(i, S.items, l.items)); else { let w = i.var("items", (0, yl._)`${y}.evaluated.items`); l.items = M8.mergeEvaluated.items(i, w, l.items, yl.Name) } } } C3.callRef = $8; C3.default = mue }); var mI = k(Ym => { "use strict"; Object.defineProperty(Ym, "__esModule", { value: !0 }); var yue = pI(), gue = Wm(), vue = ["$schema", "$id", "$defs", "$vocabulary", { keyword: "$comment" }, "definitions", yue.default, gue.default]; Ym.default = vue }); var yI = k(Qm => { "use strict"; Object.defineProperty(Qm, "__esModule", { value: !0 }); var B8 = st(), O2 = B8.operators, H8 = { maximum: { okStr: "<=", ok: O2.LTE, fail: O2.GT }, minimum: { okStr: ">=", ok: O2.GTE, fail: O2.LT }, exclusiveMaximum: { okStr: "<", ok: O2.LT, fail: O2.GTE }, exclusiveMinimum: { okStr: ">", ok: O2.GT, fail: O2.LTE } }, _ue = { message: ({ keyword: t, schemaCode: e }) => (0, B8.str)`must be ${H8[t].okStr} ${e}`, params: ({ keyword: t, schemaCode: e }) => (0, B8._)`{comparison: ${H8[t].okStr}, limit: ${e}}` }, Eue = { keyword: Object.keys(H8), type: "number", schemaType: "number", $data: !0, error: _ue, code(t) { let { keyword: e, data: n, schemaCode: r } = t; t.fail$data((0, B8._)`${n} ${H8[e].fail} ${r} || isNaN(${n})`) } }; Qm.default = Eue }); var gI = k(Zm => { "use strict"; Object.defineProperty(Zm, "__esModule", { value: !0 }); var R4 = st(), bue = { message: ({ schemaCode: t }) => (0, R4.str)`must be multiple of ${t}`, params: ({ schemaCode: t }) => (0, R4._)`{multipleOf: ${t}}` }, wue = { keyword: "multipleOf", type: "number", schemaType: "number", $data: !0, error: bue, code(t) { let { gen: e, data: n, schemaCode: r, it: i } = t, l = i.opts.multipleOfPrecision, s = e.let("res"), a = l ? (0, R4._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${l}` : (0, R4._)`${s} !== parseInt(${s})`; t.fail$data((0, R4._)`(${r} === 0 || (${s} = ${n}/${r}, ${a}))`) } }; Zm.default = wue }); var _I = k(ey => { "use strict"; Object.defineProperty(ey, "__esModule", { value: !0 }); function vI(t) { let e = t.length, n = 0, r = 0, i; for (; r < e;)n++, i = t.charCodeAt(r++), i >= 55296 && i <= 56319 && r < e && (i = t.charCodeAt(r), (i & 64512) === 56320 && r++); return n } ey.default = vI; vI.code = 'require("ajv/dist/runtime/ucs2length").default' }); var EI = k(ty => { "use strict"; Object.defineProperty(ty, "__esModule", { value: !0 }); var R3 = st(), Sue = Nt(), Tue = _I(), xue = { message({ keyword: t, schemaCode: e }) { let n = t === "maxLength" ? "more" : "fewer"; return (0, R3.str)`must NOT have ${n} than ${e} characters` }, params: ({ schemaCode: t }) => (0, R3._)`{limit: ${t}}` }, Aue = { keyword: ["maxLength", "minLength"], type: "string", schemaType: "number", $data: !0, error: xue, code(t) { let { keyword: e, data: n, schemaCode: r, it: i } = t, l = e === "maxLength" ? R3.operators.GT : R3.operators.LT, s = i.opts.unicode === !1 ? (0, R3._)`${n}.length` : (0, R3._)`${(0, Sue.useFunc)(t.gen, Tue.default)}(${n})`; t.fail$data((0, R3._)`${s} ${l} ${r}`) } }; ty.default = Aue }); var bI = k(ny => { "use strict"; Object.defineProperty(ny, "__esModule", { value: !0 }); var Oue = Ai(), V8 = st(), Nue = { message: ({ schemaCode: t }) => (0, V8.str)`must match pattern "${t}"`, params: ({ schemaCode: t }) => (0, V8._)`{pattern: ${t}}` }, Cue = { keyword: "pattern", type: "string", schemaType: "string", $data: !0, error: Nue, code(t) { let { data: e, $data: n, schema: r, schemaCode: i, it: l } = t, s = l.opts.unicodeRegExp ? "u" : "", a = n ? (0, V8._)`(new RegExp(${i}, ${s}))` : (0, Oue.usePattern)(t, r); t.fail$data((0, V8._)`!${a}.test(${e})`) } }; ny.default = Cue }); var wI = k(ry => { "use strict"; Object.defineProperty(ry, "__esModule", { value: !0 }); var I4 = st(), Rue = { message({ keyword: t, schemaCode: e }) { let n = t === "maxProperties" ? "more" : "fewer"; return (0, I4.str)`must NOT have ${n} than ${e} properties` }, params: ({ schemaCode: t }) => (0, I4._)`{limit: ${t}}` }, Iue = { keyword: ["maxProperties", "minProperties"], type: "object", schemaType: "number", $data: !0, error: Rue, code(t) { let { keyword: e, data: n, schemaCode: r } = t, i = e === "maxProperties" ? I4.operators.GT : I4.operators.LT; t.fail$data((0, I4._)`Object.keys(${n}).length ${i} ${r}`) } }; ry.default = Iue }); var SI = k(iy => { "use strict"; Object.defineProperty(iy, "__esModule", { value: !0 }); var k4 = Ai(), D4 = st(), kue = Nt(), Due = { message: ({ params: { missingProperty: t } }) => (0, D4.str)`must have required property '${t}'`, params: ({ params: { missingProperty: t } }) => (0, D4._)`{missingProperty: ${t}}` }, Pue = { keyword: "required", type: "object", schemaType: "array", $data: !0, error: Due, code(t) { let { gen: e, schema: n, schemaCode: r, data: i, $data: l, it: s } = t, { opts: a } = s; if (!l && n.length === 0) return; let o = n.length >= a.loopRequired; if (s.allErrors ? u() : c(), a.strictRequired) { let d = t.parentSchema.properties, { definedProperties: y } = t.it; for (let _ of n) if (d?.[_] === void 0 && !y.has(_)) { let S = s.schemaEnv.baseId + s.errSchemaPath, w = `required property "${_}" is not defined at "${S}" (strictRequired)`; (0, kue.checkStrictMode)(s, w, s.opts.strictRequired) } } function u() { if (o || l) t.block$data(D4.nil, f); else for (let d of n) (0, k4.checkReportMissingProp)(t, d) } function c() { let d = e.let("missing"); if (o || l) { let y = e.let("valid", !0); t.block$data(y, () => m(d, y)), t.ok(y) } else e.if((0, k4.checkMissingProp)(t, n, d)), (0, k4.reportMissingProp)(t, d), e.else() } function f() { e.forOf("prop", r, d => { t.setParams({ missingProperty: d }), e.if((0, k4.noPropertyInData)(e, i, d, a.ownProperties), () => t.error()) }) } function m(d, y) { t.setParams({ missingProperty: d }), e.forOf(d, r, () => { e.assign(y, (0, k4.propertyInData)(e, i, d, a.ownProperties)), e.if((0, D4.not)(y), () => { t.error(), e.break() }) }, D4.nil) } } }; iy.default = Pue }); var TI = k(ly => { "use strict"; Object.defineProperty(ly, "__esModule", { value: !0 }); var P4 = st(), Lue = { message({ keyword: t, schemaCode: e }) { let n = t === "maxItems" ? "more" : "fewer"; return (0, P4.str)`must NOT have ${n} than ${e} items` }, params: ({ schemaCode: t }) => (0, P4._)`{limit: ${t}}` }, Fue = { keyword: ["maxItems", "minItems"], type: "array", schemaType: "number", $data: !0, error: Lue, code(t) { let { keyword: e, data: n, schemaCode: r } = t, i = e === "maxItems" ? P4.operators.GT : P4.operators.LT; t.fail$data((0, P4._)`${n}.length ${i} ${r}`) } }; ly.default = Fue }); var L4 = k(sy => { "use strict"; Object.defineProperty(sy, "__esModule", { value: !0 }); var xI = i1(); xI.code = 'require("ajv/dist/runtime/equal").default'; sy.default = xI }); var AI = k(oy => { "use strict"; Object.defineProperty(oy, "__esModule", { value: !0 }); var ay = w4(), Ni = st(), jue = Nt(), Uue = L4(), Mue = { message: ({ params: { i: t, j: e } }) => (0, Ni.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`, params: ({ params: { i: t, j: e } }) => (0, Ni._)`{i: ${t}, j: ${e}}` }, $ue = { keyword: "uniqueItems", type: "array", schemaType: "boolean", $data: !0, error: Mue, code(t) { let { gen: e, data: n, $data: r, schema: i, parentSchema: l, schemaCode: s, it: a } = t; if (!r && !i) return; let o = e.let("valid"), u = l.items ? (0, ay.getSchemaTypes)(l.items) : []; t.block$data(o, c, (0, Ni._)`${s} === false`), t.ok(o); function c() { let y = e.let("i", (0, Ni._)`${n}.length`), _ = e.let("j"); t.setParams({ i: y, j: _ }), e.assign(o, !0), e.if((0, Ni._)`${y} > 1`, () => (f() ? m : d)(y, _)) } function f() { return u.length > 0 && !u.some(y => y === "object" || y === "array") } function m(y, _) { let S = e.name("item"), w = (0, ay.checkDataTypes)(u, S, a.opts.strictNumbers, ay.DataType.Wrong), E = e.const("indices", (0, Ni._)`{}`); e.for((0, Ni._)`;${y}--;`, () => { e.let(S, (0, Ni._)`${n}[${y}]`), e.if(w, (0, Ni._)`continue`), u.length > 1 && e.if((0, Ni._)`typeof ${S} == "string"`, (0, Ni._)`${S} += "_"`), e.if((0, Ni._)`typeof ${E}[${S}] == "number"`, () => { e.assign(_, (0, Ni._)`${E}[${S}]`), t.error(), e.assign(o, !1).break() }).code((0, Ni._)`${E}[${S}] = ${y}`) }) } function d(y, _) { let S = (0, jue.useFunc)(e, Uue.default), w = e.name("outer"); e.label(w).for((0, Ni._)`;${y}--;`, () => e.for((0, Ni._)`${_} = ${y}; ${_}--;`, () => e.if((0, Ni._)`${S}(${n}[${y}], ${n}[${_}])`, () => { t.error(), e.assign(o, !1).break(w) }))) } } }; oy.default = $ue }); var OI = k(cy => { "use strict"; Object.defineProperty(cy, "__esModule", { value: !0 }); var uy = st(), Bue = Nt(), Hue = L4(), Vue = { message: "must be equal to constant", params: ({ schemaCode: t }) => (0, uy._)`{allowedValue: ${t}}` }, que = { keyword: "const", $data: !0, error: Vue, code(t) { let { gen: e, data: n, $data: r, schemaCode: i, schema: l } = t; r || l && typeof l == "object" ? t.fail$data((0, uy._)`!${(0, Bue.useFunc)(e, Hue.default)}(${n}, ${i})`) : t.fail((0, uy._)`${l} !== ${n}`) } }; cy.default = que }); var NI = k(py => { "use strict"; Object.defineProperty(py, "__esModule", { value: !0 }); var F4 = st(), zue = Nt(), Gue = L4(), Jue = { message: "must be equal to one of the allowed values", params: ({ schemaCode: t }) => (0, F4._)`{allowedValues: ${t}}` }, Kue = { keyword: "enum", schemaType: "array", $data: !0, error: Jue, code(t) { let { gen: e, data: n, $data: r, schema: i, schemaCode: l, it: s } = t; if (!r && i.length === 0) throw new Error("enum must have non-empty array"); let a = i.length >= s.opts.loopEnum, o, u = () => o ?? (o = (0, zue.useFunc)(e, Gue.default)), c; if (a || r) c = e.let("valid"), t.block$data(c, f); else { if (!Array.isArray(i)) throw new Error("ajv implementation error"); let d = e.const("vSchema", l); c = (0, F4.or)(...i.map((y, _) => m(d, _))) } t.pass(c); function f() { e.assign(c, !1), e.forOf("v", l, d => e.if((0, F4._)`${u()}(${n}, ${d})`, () => e.assign(c, !0).break())) } function m(d, y) { let _ = i[y]; return typeof _ == "object" && _ !== null ? (0, F4._)`${u()}(${n}, ${d}[${y}])` : (0, F4._)`${n} === ${_}` } } }; py.default = Kue }); var CI = k(fy => { "use strict"; Object.defineProperty(fy, "__esModule", { value: !0 }); var Xue = yI(), Wue = gI(), Yue = EI(), Que = bI(), Zue = wI(), e1e = SI(), t1e = TI(), n1e = AI(), r1e = OI(), i1e = NI(), l1e = [Xue.default, Wue.default, Yue.default, Que.default, Zue.default, e1e.default, t1e.default, n1e.default, { keyword: "type", schemaType: ["string", "array"] }, { keyword: "nullable", schemaType: "boolean" }, r1e.default, i1e.default]; fy.default = l1e }); var hy = k(j4 => { "use strict"; Object.defineProperty(j4, "__esModule", { value: !0 }); j4.validateAdditionalItems = void 0; var I3 = st(), dy = Nt(), s1e = { message: ({ params: { len: t } }) => (0, I3.str)`must NOT have more than ${t} items`, params: ({ params: { len: t } }) => (0, I3._)`{limit: ${t}}` }, a1e = { keyword: "additionalItems", type: "array", schemaType: ["boolean", "object"], before: "uniqueItems", error: s1e, code(t) { let { parentSchema: e, it: n } = t, { items: r } = e; if (!Array.isArray(r)) { (0, dy.checkStrictMode)(n, '"additionalItems" is ignored when "items" is not an array of schemas'); return } RI(t, r) } }; function RI(t, e) { let { gen: n, schema: r, data: i, keyword: l, it: s } = t; s.items = !0; let a = n.const("len", (0, I3._)`${i}.length`); if (r === !1) t.setParams({ len: e.length }), t.pass((0, I3._)`${a} <= ${e.length}`); else if (typeof r == "object" && !(0, dy.alwaysValidSchema)(s, r)) { let u = n.var("valid", (0, I3._)`${a} <= ${e.length}`); n.if((0, I3.not)(u), () => o(u)), t.ok(u) } function o(u) { n.forRange("i", e.length, a, c => { t.subschema({ keyword: l, dataProp: c, dataPropType: dy.Type.Num }, u), s.allErrors || n.if((0, I3.not)(u), () => n.break()) }) } } j4.validateAdditionalItems = RI; j4.default = a1e }); var my = k(U4 => { "use strict"; Object.defineProperty(U4, "__esModule", { value: !0 }); U4.validateTuple = void 0; var II = st(), q8 = Nt(), o1e = Ai(), u1e = { keyword: "items", type: "array", schemaType: ["object", "array", "boolean"], before: "uniqueItems", code(t) { let { schema: e, it: n } = t; if (Array.isArray(e)) return kI(t, "additionalItems", e); n.items = !0, !(0, q8.alwaysValidSchema)(n, e) && t.ok((0, o1e.validateArray)(t)) } }; function kI(t, e, n = t.schema) { let { gen: r, parentSchema: i, data: l, keyword: s, it: a } = t; c(i), a.opts.unevaluated && n.length && a.items !== !0 && (a.items = q8.mergeEvaluated.items(r, n.length, a.items)); let o = r.name("valid"), u = r.const("len", (0, II._)`${l}.length`); n.forEach((f, m) => { (0, q8.alwaysValidSchema)(a, f) || (r.if((0, II._)`${u} > ${m}`, () => t.subschema({ keyword: s, schemaProp: m, dataProp: m }, o)), t.ok(o)) }); function c(f) { let { opts: m, errSchemaPath: d } = a, y = n.length, _ = y === f.minItems && (y === f.maxItems || f[e] === !1); if (m.strictTuples && !_) { let S = `"${s}" is ${y}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`; (0, q8.checkStrictMode)(a, S, m.strictTuples) } } } U4.validateTuple = kI; U4.default = u1e }); var DI = k(yy => { "use strict"; Object.defineProperty(yy, "__esModule", { value: !0 }); var c1e = my(), p1e = { keyword: "prefixItems", type: "array", schemaType: ["array"], before: "uniqueItems", code: t => (0, c1e.validateTuple)(t, "items") }; yy.default = p1e }); var LI = k(gy => { "use strict"; Object.defineProperty(gy, "__esModule", { value: !0 }); var PI = st(), f1e = Nt(), d1e = Ai(), h1e = hy(), m1e = { message: ({ params: { len: t } }) => (0, PI.str)`must NOT have more than ${t} items`, params: ({ params: { len: t } }) => (0, PI._)`{limit: ${t}}` }, y1e = { keyword: "items", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", error: m1e, code(t) { let { schema: e, parentSchema: n, it: r } = t, { prefixItems: i } = n; r.items = !0, !(0, f1e.alwaysValidSchema)(r, e) && (i ? (0, h1e.validateAdditionalItems)(t, i) : t.ok((0, d1e.validateArray)(t))) } }; gy.default = y1e }); var FI = k(vy => { "use strict"; Object.defineProperty(vy, "__esModule", { value: !0 }); var Zl = st(), z8 = Nt(), g1e = { message: ({ params: { min: t, max: e } }) => e === void 0 ? (0, Zl.str)`must contain at least ${t} valid item(s)` : (0, Zl.str)`must contain at least ${t} and no more than ${e} valid item(s)`, params: ({ params: { min: t, max: e } }) => e === void 0 ? (0, Zl._)`{minContains: ${t}}` : (0, Zl._)`{minContains: ${t}, maxContains: ${e}}` }, v1e = { keyword: "contains", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", trackErrors: !0, error: g1e, code(t) { let { gen: e, schema: n, parentSchema: r, data: i, it: l } = t, s, a, { minContains: o, maxContains: u } = r; l.opts.next ? (s = o === void 0 ? 1 : o, a = u) : s = 1; let c = e.const("len", (0, Zl._)`${i}.length`); if (t.setParams({ min: s, max: a }), a === void 0 && s === 0) { (0, z8.checkStrictMode)(l, '"minContains" == 0 without "maxContains": "contains" keyword ignored'); return } if (a !== void 0 && s > a) { (0, z8.checkStrictMode)(l, '"minContains" > "maxContains" is always invalid'), t.fail(); return } if ((0, z8.alwaysValidSchema)(l, n)) { let _ = (0, Zl._)`${c} >= ${s}`; a !== void 0 && (_ = (0, Zl._)`${_} && ${c} <= ${a}`), t.pass(_); return } l.items = !0; let f = e.name("valid"); a === void 0 && s === 1 ? d(f, () => e.if(f, () => e.break())) : s === 0 ? (e.let(f, !0), a !== void 0 && e.if((0, Zl._)`${i}.length > 0`, m)) : (e.let(f, !1), m()), t.result(f, () => t.reset()); function m() { let _ = e.name("_valid"), S = e.let("count", 0); d(_, () => e.if(_, () => y(S))) } function d(_, S) { e.forRange("i", 0, c, w => { t.subschema({ keyword: "contains", dataProp: w, dataPropType: z8.Type.Num, compositeRule: !0 }, _), S() }) } function y(_) { e.code((0, Zl._)`${_}++`), a === void 0 ? e.if((0, Zl._)`${_} >= ${s}`, () => e.assign(f, !0).break()) : (e.if((0, Zl._)`${_} > ${a}`, () => e.assign(f, !1).break()), s === 1 ? e.assign(f, !0) : e.if((0, Zl._)`${_} >= ${s}`, () => e.assign(f, !0))) } } }; vy.default = v1e }); var MI = k(Qs => {
"use strict"; Object.defineProperty(Qs, "__esModule", { value: !0 }); Qs.validateSchemaDeps = Qs.validatePropertyDeps = Qs.error = void 0; var _y = st(), _1e = Nt(), M4 = Ai(); Qs.error = {
message: ({ params: { property: t, depsCount: e, deps: n } }) => { let r = e === 1 ? "property" : "properties"; return (0, _y.str)`must have ${r} ${n} when property ${t} is present` }, params: ({ params: { property: t, depsCount: e, deps: n, missingProperty: r } }) => (0, _y._)`{property: ${t},
missingProperty: ${r},
depsCount: ${e},
deps: ${n}}`
}; var E1e = { keyword: "dependencies", type: "object", schemaType: "object", error: Qs.error, code(t) { let [e, n] = b1e(t); jI(t, e), UI(t, n) } }; function b1e({ schema: t }) { let e = {}, n = {}; for (let r in t) { if (r === "__proto__") continue; let i = Array.isArray(t[r]) ? e : n; i[r] = t[r] } return [e, n] } function jI(t, e = t.schema) { let { gen: n, data: r, it: i } = t; if (Object.keys(e).length === 0) return; let l = n.let("missing"); for (let s in e) { let a = e[s]; if (a.length === 0) continue; let o = (0, M4.propertyInData)(n, r, s, i.opts.ownProperties); t.setParams({ property: s, depsCount: a.length, deps: a.join(", ") }), i.allErrors ? n.if(o, () => { for (let u of a) (0, M4.checkReportMissingProp)(t, u) }) : (n.if((0, _y._)`${o} && (${(0, M4.checkMissingProp)(t, a, l)})`), (0, M4.reportMissingProp)(t, l), n.else()) } } Qs.validatePropertyDeps = jI; function UI(t, e = t.schema) { let { gen: n, data: r, keyword: i, it: l } = t, s = n.name("valid"); for (let a in e) (0, _1e.alwaysValidSchema)(l, e[a]) || (n.if((0, M4.propertyInData)(n, r, a, l.opts.ownProperties), () => { let o = t.subschema({ keyword: i, schemaProp: a }, s); t.mergeValidEvaluated(o, s) }, () => n.var(s, !0)), t.ok(s)) } Qs.validateSchemaDeps = UI; Qs.default = E1e
}); var BI = k(Ey => { "use strict"; Object.defineProperty(Ey, "__esModule", { value: !0 }); var $I = st(), w1e = Nt(), S1e = { message: "property name must be valid", params: ({ params: t }) => (0, $I._)`{propertyName: ${t.propertyName}}` }, T1e = { keyword: "propertyNames", type: "object", schemaType: ["object", "boolean"], error: S1e, code(t) { let { gen: e, schema: n, data: r, it: i } = t; if ((0, w1e.alwaysValidSchema)(i, n)) return; let l = e.name("valid"); e.forIn("key", r, s => { t.setParams({ propertyName: s }), t.subschema({ keyword: "propertyNames", data: s, dataTypes: ["string"], propertyName: s, compositeRule: !0 }, l), e.if((0, $I.not)(l), () => { t.error(!0), i.allErrors || e.break() }) }), t.ok(l) } }; Ey.default = T1e }); var wy = k(by => { "use strict"; Object.defineProperty(by, "__esModule", { value: !0 }); var G8 = Ai(), ws = st(), x1e = Yl(), J8 = Nt(), A1e = { message: "must NOT have additional properties", params: ({ params: t }) => (0, ws._)`{additionalProperty: ${t.additionalProperty}}` }, O1e = { keyword: "additionalProperties", type: ["object"], schemaType: ["boolean", "object"], allowUndefined: !0, trackErrors: !0, error: A1e, code(t) { let { gen: e, schema: n, parentSchema: r, data: i, errsCount: l, it: s } = t; if (!l) throw new Error("ajv implementation error"); let { allErrors: a, opts: o } = s; if (s.props = !0, o.removeAdditional !== "all" && (0, J8.alwaysValidSchema)(s, n)) return; let u = (0, G8.allSchemaProperties)(r.properties), c = (0, G8.allSchemaProperties)(r.patternProperties); f(), t.ok((0, ws._)`${l} === ${x1e.default.errors}`); function f() { e.forIn("key", i, S => { !u.length && !c.length ? y(S) : e.if(m(S), () => y(S)) }) } function m(S) { let w; if (u.length > 8) { let E = (0, J8.schemaRefOrVal)(s, r.properties, "properties"); w = (0, G8.isOwnProperty)(e, E, S) } else u.length ? w = (0, ws.or)(...u.map(E => (0, ws._)`${S} === ${E}`)) : w = ws.nil; return c.length && (w = (0, ws.or)(w, ...c.map(E => (0, ws._)`${(0, G8.usePattern)(t, E)}.test(${S})`))), (0, ws.not)(w) } function d(S) { e.code((0, ws._)`delete ${i}[${S}]`) } function y(S) { if (o.removeAdditional === "all" || o.removeAdditional && n === !1) { d(S); return } if (n === !1) { t.setParams({ additionalProperty: S }), t.error(), a || e.break(); return } if (typeof n == "object" && !(0, J8.alwaysValidSchema)(s, n)) { let w = e.name("valid"); o.removeAdditional === "failing" ? (_(S, w, !1), e.if((0, ws.not)(w), () => { t.reset(), d(S) })) : (_(S, w), a || e.if((0, ws.not)(w), () => e.break())) } } function _(S, w, E) { let g = { keyword: "additionalProperties", dataProp: S, dataPropType: J8.Type.Str }; E === !1 && Object.assign(g, { compositeRule: !0, createErrors: !1, allErrors: !1 }), t.subschema(g, w) } } }; by.default = O1e }); var qI = k(Ty => { "use strict"; Object.defineProperty(Ty, "__esModule", { value: !0 }); var N1e = s1(), HI = Ai(), Sy = Nt(), VI = wy(), C1e = { keyword: "properties", type: "object", schemaType: "object", code(t) { let { gen: e, schema: n, parentSchema: r, data: i, it: l } = t; l.opts.removeAdditional === "all" && r.additionalProperties === void 0 && VI.default.code(new N1e.KeywordCxt(l, VI.default, "additionalProperties")); let s = (0, HI.allSchemaProperties)(n); for (let f of s) l.definedProperties.add(f); l.opts.unevaluated && s.length && l.props !== !0 && (l.props = Sy.mergeEvaluated.props(e, (0, Sy.toHash)(s), l.props)); let a = s.filter(f => !(0, Sy.alwaysValidSchema)(l, n[f])); if (a.length === 0) return; let o = e.name("valid"); for (let f of a) u(f) ? c(f) : (e.if((0, HI.propertyInData)(e, i, f, l.opts.ownProperties)), c(f), l.allErrors || e.else().var(o, !0), e.endIf()), t.it.definedProperties.add(f), t.ok(o); function u(f) { return l.opts.useDefaults && !l.compositeRule && n[f].default !== void 0 } function c(f) { t.subschema({ keyword: "properties", schemaProp: f, dataProp: f }, o) } } }; Ty.default = C1e }); var KI = k(xy => { "use strict"; Object.defineProperty(xy, "__esModule", { value: !0 }); var zI = Ai(), K8 = st(), GI = Nt(), JI = Nt(), R1e = { keyword: "patternProperties", type: "object", schemaType: "object", code(t) { let { gen: e, schema: n, data: r, parentSchema: i, it: l } = t, { opts: s } = l, a = (0, zI.allSchemaProperties)(n), o = a.filter(_ => (0, GI.alwaysValidSchema)(l, n[_])); if (a.length === 0 || o.length === a.length && (!l.opts.unevaluated || l.props === !0)) return; let u = s.strictSchema && !s.allowMatchingProperties && i.properties, c = e.name("valid"); l.props !== !0 && !(l.props instanceof K8.Name) && (l.props = (0, JI.evaluatedPropsToName)(e, l.props)); let { props: f } = l; m(); function m() { for (let _ of a) u && d(_), l.allErrors ? y(_) : (e.var(c, !0), y(_), e.if(c)) } function d(_) { for (let S in u) new RegExp(_).test(S) && (0, GI.checkStrictMode)(l, `property ${S} matches pattern ${_} (use allowMatchingProperties)`) } function y(_) { e.forIn("key", r, S => { e.if((0, K8._)`${(0, zI.usePattern)(t, _)}.test(${S})`, () => { let w = o.includes(_); w || t.subschema({ keyword: "patternProperties", schemaProp: _, dataProp: S, dataPropType: JI.Type.Str }, c), l.opts.unevaluated && f !== !0 ? e.assign((0, K8._)`${f}[${S}]`, !0) : !w && !l.allErrors && e.if((0, K8.not)(c), () => e.break()) }) }) } } }; xy.default = R1e }); var XI = k(Ay => { "use strict"; Object.defineProperty(Ay, "__esModule", { value: !0 }); var I1e = Nt(), k1e = { keyword: "not", schemaType: ["object", "boolean"], trackErrors: !0, code(t) { let { gen: e, schema: n, it: r } = t; if ((0, I1e.alwaysValidSchema)(r, n)) { t.fail(); return } let i = e.name("valid"); t.subschema({ keyword: "not", compositeRule: !0, createErrors: !1, allErrors: !1 }, i), t.failResult(i, () => t.reset(), () => t.error()) }, error: { message: "must NOT be valid" } }; Ay.default = k1e }); var WI = k(Oy => { "use strict"; Object.defineProperty(Oy, "__esModule", { value: !0 }); var D1e = Ai(), P1e = { keyword: "anyOf", schemaType: "array", trackErrors: !0, code: D1e.validateUnion, error: { message: "must match a schema in anyOf" } }; Oy.default = P1e }); var YI = k(Ny => { "use strict"; Object.defineProperty(Ny, "__esModule", { value: !0 }); var X8 = st(), L1e = Nt(), F1e = { message: "must match exactly one schema in oneOf", params: ({ params: t }) => (0, X8._)`{passingSchemas: ${t.passing}}` }, j1e = { keyword: "oneOf", schemaType: "array", trackErrors: !0, error: F1e, code(t) { let { gen: e, schema: n, parentSchema: r, it: i } = t; if (!Array.isArray(n)) throw new Error("ajv implementation error"); if (i.opts.discriminator && r.discriminator) return; let l = n, s = e.let("valid", !1), a = e.let("passing", null), o = e.name("_valid"); t.setParams({ passing: a }), e.block(u), t.result(s, () => t.reset(), () => t.error(!0)); function u() { l.forEach((c, f) => { let m; (0, L1e.alwaysValidSchema)(i, c) ? e.var(o, !0) : m = t.subschema({ keyword: "oneOf", schemaProp: f, compositeRule: !0 }, o), f > 0 && e.if((0, X8._)`${o} && ${s}`).assign(s, !1).assign(a, (0, X8._)`[${a}, ${f}]`).else(), e.if(o, () => { e.assign(s, !0), e.assign(a, f), m && t.mergeEvaluated(m, X8.Name) }) }) } } }; Ny.default = j1e }); var QI = k(Cy => { "use strict"; Object.defineProperty(Cy, "__esModule", { value: !0 }); var U1e = Nt(), M1e = { keyword: "allOf", schemaType: "array", code(t) { let { gen: e, schema: n, it: r } = t; if (!Array.isArray(n)) throw new Error("ajv implementation error"); let i = e.name("valid"); n.forEach((l, s) => { if ((0, U1e.alwaysValidSchema)(r, l)) return; let a = t.subschema({ keyword: "allOf", schemaProp: s }, i); t.ok(i), t.mergeEvaluated(a) }) } }; Cy.default = M1e }); var tk = k(Ry => { "use strict"; Object.defineProperty(Ry, "__esModule", { value: !0 }); var W8 = st(), ek = Nt(), $1e = { message: ({ params: t }) => (0, W8.str)`must match "${t.ifClause}" schema`, params: ({ params: t }) => (0, W8._)`{failingKeyword: ${t.ifClause}}` }, B1e = { keyword: "if", schemaType: ["object", "boolean"], trackErrors: !0, error: $1e, code(t) { let { gen: e, parentSchema: n, it: r } = t; n.then === void 0 && n.else === void 0 && (0, ek.checkStrictMode)(r, '"if" without "then" and "else" is ignored'); let i = ZI(r, "then"), l = ZI(r, "else"); if (!i && !l) return; let s = e.let("valid", !0), a = e.name("_valid"); if (o(), t.reset(), i && l) { let c = e.let("ifClause"); t.setParams({ ifClause: c }), e.if(a, u("then", c), u("else", c)) } else i ? e.if(a, u("then")) : e.if((0, W8.not)(a), u("else")); t.pass(s, () => t.error(!0)); function o() { let c = t.subschema({ keyword: "if", compositeRule: !0, createErrors: !1, allErrors: !1 }, a); t.mergeEvaluated(c) } function u(c, f) { return () => { let m = t.subschema({ keyword: c }, a); e.assign(s, a), t.mergeValidEvaluated(m, s), f ? e.assign(f, (0, W8._)`${c}`) : t.setParams({ ifClause: c }) } } } }; function ZI(t, e) { let n = t.schema[e]; return n !== void 0 && !(0, ek.alwaysValidSchema)(t, n) } Ry.default = B1e }); var nk = k(Iy => { "use strict"; Object.defineProperty(Iy, "__esModule", { value: !0 }); var H1e = Nt(), V1e = { keyword: ["then", "else"], schemaType: ["object", "boolean"], code({ keyword: t, parentSchema: e, it: n }) { e.if === void 0 && (0, H1e.checkStrictMode)(n, `"${t}" without "if" is ignored`) } }; Iy.default = V1e }); var rk = k(ky => { "use strict"; Object.defineProperty(ky, "__esModule", { value: !0 }); var q1e = hy(), z1e = DI(), G1e = my(), J1e = LI(), K1e = FI(), X1e = MI(), W1e = BI(), Y1e = wy(), Q1e = qI(), Z1e = KI(), e0e = XI(), t0e = WI(), n0e = YI(), r0e = QI(), i0e = tk(), l0e = nk(); function s0e(t = !1) { let e = [e0e.default, t0e.default, n0e.default, r0e.default, i0e.default, l0e.default, W1e.default, Y1e.default, X1e.default, Q1e.default, Z1e.default]; return t ? e.push(z1e.default, J1e.default) : e.push(q1e.default, G1e.default), e.push(K1e.default), e } ky.default = s0e }); var ik = k(Dy => { "use strict"; Object.defineProperty(Dy, "__esModule", { value: !0 }); var Fr = st(), a0e = { message: ({ schemaCode: t }) => (0, Fr.str)`must match format "${t}"`, params: ({ schemaCode: t }) => (0, Fr._)`{format: ${t}}` }, o0e = { keyword: "format", type: ["number", "string"], schemaType: "string", $data: !0, error: a0e, code(t, e) { let { gen: n, data: r, $data: i, schema: l, schemaCode: s, it: a } = t, { opts: o, errSchemaPath: u, schemaEnv: c, self: f } = a; if (!o.validateFormats) return; i ? m() : d(); function m() { let y = n.scopeValue("formats", { ref: f.formats, code: o.code.formats }), _ = n.const("fDef", (0, Fr._)`${y}[${s}]`), S = n.let("fType"), w = n.let("format"); n.if((0, Fr._)`typeof ${_} == "object" && !(${_} instanceof RegExp)`, () => n.assign(S, (0, Fr._)`${_}.type || "string"`).assign(w, (0, Fr._)`${_}.validate`), () => n.assign(S, (0, Fr._)`"string"`).assign(w, _)), t.fail$data((0, Fr.or)(E(), g())); function E() { return o.strictSchema === !1 ? Fr.nil : (0, Fr._)`${s} && !${w}` } function g() { let v = c.$async ? (0, Fr._)`(${_}.async ? await ${w}(${r}) : ${w}(${r}))` : (0, Fr._)`${w}(${r})`, x = (0, Fr._)`(typeof ${w} == "function" ? ${v} : ${w}.test(${r}))`; return (0, Fr._)`${w} && ${w} !== true && ${S} === ${e} && !${x}` } } function d() { let y = f.formats[l]; if (!y) { E(); return } if (y === !0) return; let [_, S, w] = g(y); _ === e && t.pass(v()); function E() { if (o.strictSchema === !1) { f.logger.warn(x()); return } throw new Error(x()); function x() { return `unknown format "${l}" ignored in schema at path "${u}"` } } function g(x) { let O = x instanceof RegExp ? (0, Fr.regexpCode)(x) : o.code.formats ? (0, Fr._)`${o.code.formats}${(0, Fr.getProperty)(l)}` : void 0, N = n.scopeValue("formats", { key: l, ref: x, code: O }); return typeof x == "object" && !(x instanceof RegExp) ? [x.type || "string", x.validate, (0, Fr._)`${N}.validate`] : ["string", x, N] } function v() { if (typeof y == "object" && !(y instanceof RegExp) && y.async) { if (!c.$async) throw new Error("async format in sync schema"); return (0, Fr._)`await ${w}(${r})` } return typeof S == "function" ? (0, Fr._)`${w}(${r})` : (0, Fr._)`${w}.test(${r})` } } } }; Dy.default = o0e }); var lk = k(Py => { "use strict"; Object.defineProperty(Py, "__esModule", { value: !0 }); var u0e = ik(), c0e = [u0e.default]; Py.default = c0e }); var sk = k(c1 => { "use strict"; Object.defineProperty(c1, "__esModule", { value: !0 }); c1.contentVocabulary = c1.metadataVocabulary = void 0; c1.metadataVocabulary = ["title", "description", "default", "deprecated", "readOnly", "writeOnly", "examples"]; c1.contentVocabulary = ["contentMediaType", "contentEncoding", "contentSchema"] }); var ok = k(Ly => { "use strict"; Object.defineProperty(Ly, "__esModule", { value: !0 }); var p0e = mI(), f0e = CI(), d0e = rk(), h0e = lk(), ak = sk(), m0e = [p0e.default, f0e.default, (0, d0e.default)(), h0e.default, ak.metadataVocabulary, ak.contentVocabulary]; Ly.default = m0e }); var Fy = k($4 => { "use strict"; Object.defineProperty($4, "__esModule", { value: !0 }); $4.DiscrError = void 0; var y0e; (function (t) { t.Tag = "tag", t.Mapping = "mapping" })(y0e = $4.DiscrError || ($4.DiscrError = {})) }); var ck = k(Uy => { "use strict"; Object.defineProperty(Uy, "__esModule", { value: !0 }); var p1 = st(), jy = Fy(), uk = N3(), g0e = Nt(), v0e = { message: ({ params: { discrError: t, tagName: e } }) => t === jy.DiscrError.Tag ? `tag "${e}" must be string` : `value of tag "${e}" must be in oneOf`, params: ({ params: { discrError: t, tag: e, tagName: n } }) => (0, p1._)`{error: ${t}, tag: ${n}, tagValue: ${e}}` }, _0e = { keyword: "discriminator", type: "object", schemaType: "object", error: v0e, code(t) { let { gen: e, data: n, schema: r, parentSchema: i, it: l } = t, { oneOf: s } = i; if (!l.opts.discriminator) throw new Error("discriminator: requires discriminator option"); let a = r.propertyName; if (typeof a != "string") throw new Error("discriminator: requires propertyName"); if (r.mapping) throw new Error("discriminator: mapping is not supported"); if (!s) throw new Error("discriminator: requires oneOf keyword"); let o = e.let("valid", !1), u = e.const("tag", (0, p1._)`${n}${(0, p1.getProperty)(a)}`); e.if((0, p1._)`typeof ${u} == "string"`, () => c(), () => t.error(!1, { discrError: jy.DiscrError.Tag, tag: u, tagName: a })), t.ok(o); function c() { let d = m(); e.if(!1); for (let y in d) e.elseIf((0, p1._)`${u} === ${y}`), e.assign(o, f(d[y])); e.else(), t.error(!1, { discrError: jy.DiscrError.Mapping, tag: u, tagName: a }), e.endIf() } function f(d) { let y = e.name("valid"), _ = t.subschema({ keyword: "oneOf", schemaProp: d }, y); return t.mergeEvaluated(_, p1.Name), y } function m() { var d; let y = {}, _ = w(i), S = !0; for (let v = 0; v < s.length; v++) { let x = s[v]; x?.$ref && !(0, g0e.schemaHasRulesButRef)(x, l.self.RULES) && (x = uk.resolveRef.call(l.self, l.schemaEnv.root, l.baseId, x?.$ref), x instanceof uk.SchemaEnv && (x = x.schema)); let O = (d = x?.properties) === null || d === void 0 ? void 0 : d[a]; if (typeof O != "object") throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${a}"`); S = S && (_ || w(x)), E(O, v) } if (!S) throw new Error(`discriminator: "${a}" must be required`); return y; function w({ required: v }) { return Array.isArray(v) && v.includes(a) } function E(v, x) { if (v.const) g(v.const, x); else if (v.enum) for (let O of v.enum) g(O, x); else throw new Error(`discriminator: "properties/${a}" must have "const" or "enum"`) } function g(v, x) { if (typeof v != "string" || v in y) throw new Error(`discriminator: "${a}" values must be unique strings`); y[v] = x } } } }; Uy.default = _0e }); var pk = k((lRe, E0e) => { E0e.exports = { $schema: "http://json-schema.org/draft-07/schema#", $id: "http://json-schema.org/draft-07/schema#", title: "Core schema meta-schema", definitions: { schemaArray: { type: "array", minItems: 1, items: { $ref: "#" } }, nonNegativeInteger: { type: "integer", minimum: 0 }, nonNegativeIntegerDefault0: { allOf: [{ $ref: "#/definitions/nonNegativeInteger" }, { default: 0 }] }, simpleTypes: { enum: ["array", "boolean", "integer", "null", "number", "object", "string"] }, stringArray: { type: "array", items: { type: "string" }, uniqueItems: !0, default: [] } }, type: ["object", "boolean"], properties: { $id: { type: "string", format: "uri-reference" }, $schema: { type: "string", format: "uri" }, $ref: { type: "string", format: "uri-reference" }, $comment: { type: "string" }, title: { type: "string" }, description: { type: "string" }, default: !0, readOnly: { type: "boolean", default: !1 }, examples: { type: "array", items: !0 }, multipleOf: { type: "number", exclusiveMinimum: 0 }, maximum: { type: "number" }, exclusiveMaximum: { type: "number" }, minimum: { type: "number" }, exclusiveMinimum: { type: "number" }, maxLength: { $ref: "#/definitions/nonNegativeInteger" }, minLength: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, pattern: { type: "string", format: "regex" }, additionalItems: { $ref: "#" }, items: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/schemaArray" }], default: !0 }, maxItems: { $ref: "#/definitions/nonNegativeInteger" }, minItems: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, uniqueItems: { type: "boolean", default: !1 }, contains: { $ref: "#" }, maxProperties: { $ref: "#/definitions/nonNegativeInteger" }, minProperties: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, required: { $ref: "#/definitions/stringArray" }, additionalProperties: { $ref: "#" }, definitions: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, properties: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, patternProperties: { type: "object", additionalProperties: { $ref: "#" }, propertyNames: { format: "regex" }, default: {} }, dependencies: { type: "object", additionalProperties: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/stringArray" }] } }, propertyNames: { $ref: "#" }, const: !0, enum: { type: "array", items: !0, minItems: 1, uniqueItems: !0 }, type: { anyOf: [{ $ref: "#/definitions/simpleTypes" }, { type: "array", items: { $ref: "#/definitions/simpleTypes" }, minItems: 1, uniqueItems: !0 }] }, format: { type: "string" }, contentMediaType: { type: "string" }, contentEncoding: { type: "string" }, if: { $ref: "#" }, then: { $ref: "#" }, else: { $ref: "#" }, allOf: { $ref: "#/definitions/schemaArray" }, anyOf: { $ref: "#/definitions/schemaArray" }, oneOf: { $ref: "#/definitions/schemaArray" }, not: { $ref: "#" } }, default: !0 } }); var Z8 = k((vr, dk) => { "use strict"; Object.defineProperty(vr, "__esModule", { value: !0 }); vr.MissingRefError = vr.ValidationError = vr.CodeGen = vr.Name = vr.nil = vr.stringify = vr.str = vr._ = vr.KeywordCxt = void 0; var b0e = Km(), w0e = ok(), S0e = ck(), fk = pk(), T0e = ["/properties"], Y8 = "http://json-schema.org/draft-07/schema", Q8 = class extends b0e.default { _addVocabularies() { super._addVocabularies(), w0e.default.forEach(e => this.addVocabulary(e)), this.opts.discriminator && this.addKeyword(S0e.default) } _addDefaultMetaSchema() { if (super._addDefaultMetaSchema(), !this.opts.meta) return; let e = this.opts.$data ? this.$dataMetaSchema(fk, T0e) : fk; this.addMetaSchema(e, Y8, !1), this.refs["http://json-schema.org/schema"] = Y8 } defaultMeta() { return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(Y8) ? Y8 : void 0) } }; dk.exports = vr = Q8; Object.defineProperty(vr, "__esModule", { value: !0 }); vr.default = Q8; var x0e = s1(); Object.defineProperty(vr, "KeywordCxt", { enumerable: !0, get: function () { return x0e.KeywordCxt } }); var f1 = st(); Object.defineProperty(vr, "_", { enumerable: !0, get: function () { return f1._ } }); Object.defineProperty(vr, "str", { enumerable: !0, get: function () { return f1.str } }); Object.defineProperty(vr, "stringify", { enumerable: !0, get: function () { return f1.stringify } }); Object.defineProperty(vr, "nil", { enumerable: !0, get: function () { return f1.nil } }); Object.defineProperty(vr, "Name", { enumerable: !0, get: function () { return f1.Name } }); Object.defineProperty(vr, "CodeGen", { enumerable: !0, get: function () { return f1.CodeGen } }); var A0e = A4(); Object.defineProperty(vr, "ValidationError", { enumerable: !0, get: function () { return A0e.default } }); var O0e = A2(); Object.defineProperty(vr, "MissingRefError", { enumerable: !0, get: function () { return O0e.default } }) }); var mk = k((sRe, hk) => { "use strict"; var N0e = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, a: 10, A: 10, b: 11, B: 11, c: 12, C: 12, d: 13, D: 13, e: 14, E: 14, f: 15, F: 15 }; hk.exports = { HEX: N0e } }); var Sk = k((aRe, wk) => { "use strict"; var { HEX: C0e } = mk(); function _k(t) { if (bk(t, ".") < 3) return { host: t, isIPV4: !1 }; let e = t.match(/^(\b[01]?\d{1,2}|\b2[0-4]\d|\b25[0-5])(\.([01]?\d{1,2}|2[0-4]\d|25[0-5])){3}$/u) || [], [n] = e; return n ? { host: I0e(n, "."), isIPV4: !0 } : { host: t, isIPV4: !1 } } function My(t) { let e = "", n = !0; for (let r of t) { if (r !== "0" && n === !0 && (n = !1), C0e[r] === void 0) return; n || (e += r) } return e } function R0e(t) { let e = 0, n = { error: !1, address: "", zone: "" }, r = [], i = [], l = !1, s = !1, a = !1; function o() { if (i.length) { if (l === !1) { let u = My(i.join("")); if (u !== void 0) r.push(u); else return n.error = !0, !1 } i.length = 0 } return !0 } for (let u = 0; u < t.length; u++) { let c = t[u]; if (!(c === "[" || c === "]")) if (c === ":") { if (s === !0 && (a = !0), !o()) break; if (e++, r.push(":"), e > 7) { n.error = !0; break } u - 1 >= 0 && t[u - 1] === ":" && (s = !0); continue } else if (c === "%") { if (!o()) break; l = !0 } else { i.push(c); continue } } return i.length && (l ? n.zone = i.join("") : a ? r.push(i.join("")) : r.push(My(i.join("")))), n.address = r.join(""), n } function Ek(t, e = {}) { if (bk(t, ":") < 2) return { host: t, isIPV6: !1 }; let n = R0e(t); if (n.error) return { host: t, isIPV6: !1 }; { let r = n.address, i = n.address; return n.zone && (r += "%" + n.zone, i += "%25" + n.zone), { host: r, escapedHost: i, isIPV6: !0 } } } function I0e(t, e) { let n = "", r = !0, i = t.length; for (let l = 0; l < i; l++) { let s = t[l]; s === "0" && r ? (l + 1 <= i && t[l + 1] === e || l + 1 === i) && (n += s, r = !1) : (s === e ? r = !0 : r = !1, n += s) } return n } function bk(t, e) { let n = 0; for (let r = 0; r < t.length; r++)t[r] === e && n++; return n } var yk = /^\.\.?\//u, gk = /^\/\.(?:\/|$)/u, vk = /^\/\.\.(?:\/|$)/u, k0e = /^\/?(?:.|\n)*?(?=\/|$)/u; function D0e(t) { let e = []; for (; t.length;)if (t.match(yk)) t = t.replace(yk, ""); else if (t.match(gk)) t = t.replace(gk, "/"); else if (t.match(vk)) t = t.replace(vk, "/"), e.pop(); else if (t === "." || t === "..") t = ""; else { let n = t.match(k0e); if (n) { let r = n[0]; t = t.slice(r.length), e.push(r) } else throw new Error("Unexpected dot segment condition") } return e.join("") } function P0e(t, e) { let n = e !== !0 ? escape : unescape; return t.scheme !== void 0 && (t.scheme = n(t.scheme)), t.userinfo !== void 0 && (t.userinfo = n(t.userinfo)), t.host !== void 0 && (t.host = n(t.host)), t.path !== void 0 && (t.path = n(t.path)), t.query !== void 0 && (t.query = n(t.query)), t.fragment !== void 0 && (t.fragment = n(t.fragment)), t } function L0e(t, e) { let n = []; if (t.userinfo !== void 0 && (n.push(t.userinfo), n.push("@")), t.host !== void 0) { let r = unescape(t.host), i = _k(r); if (i.isIPV4) r = i.host; else { let l = Ek(i.host, { isIPV4: !1 }); l.isIPV6 === !0 ? r = `[${l.escapedHost}]` : r = t.host } n.push(r) } return (typeof t.port == "number" || typeof t.port == "string") && (n.push(":"), n.push(String(t.port))), n.length ? n.join("") : void 0 } wk.exports = { recomposeAuthority: L0e, normalizeComponentEncoding: P0e, removeDotSegments: D0e, normalizeIPv4: _k, normalizeIPv6: Ek, stringToHexStripped: My } }); var Ck = k((oRe, Nk) => { "use strict"; var F0e = /^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu, j0e = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu; function Tk(t) { return typeof t.secure == "boolean" ? t.secure : String(t.scheme).toLowerCase() === "wss" } function xk(t) { return t.host || (t.error = t.error || "HTTP URIs must have a host."), t } function Ak(t) { let e = String(t.scheme).toLowerCase() === "https"; return (t.port === (e ? 443 : 80) || t.port === "") && (t.port = void 0), t.path || (t.path = "/"), t } function U0e(t) { return t.secure = Tk(t), t.resourceName = (t.path || "/") + (t.query ? "?" + t.query : ""), t.path = void 0, t.query = void 0, t } function M0e(t) { if ((t.port === (Tk(t) ? 443 : 80) || t.port === "") && (t.port = void 0), typeof t.secure == "boolean" && (t.scheme = t.secure ? "wss" : "ws", t.secure = void 0), t.resourceName) { let [e, n] = t.resourceName.split("?"); t.path = e && e !== "/" ? e : void 0, t.query = n, t.resourceName = void 0 } return t.fragment = void 0, t } function $0e(t, e) { if (!t.path) return t.error = "URN can not be parsed", t; let n = t.path.match(j0e); if (n) { let r = e.scheme || t.scheme || "urn"; t.nid = n[1].toLowerCase(), t.nss = n[2]; let i = `${r}:${e.nid || t.nid}`, l = $y[i]; t.path = void 0, l && (t = l.parse(t, e)) } else t.error = t.error || "URN can not be parsed."; return t } function B0e(t, e) { let n = e.scheme || t.scheme || "urn", r = t.nid.toLowerCase(), i = `${n}:${e.nid || r}`, l = $y[i]; l && (t = l.serialize(t, e)); let s = t, a = t.nss; return s.path = `${r || e.nid}:${a}`, e.skipEscape = !0, s } function H0e(t, e) { let n = t; return n.uuid = n.nss, n.nss = void 0, !e.tolerant && (!n.uuid || !F0e.test(n.uuid)) && (n.error = n.error || "UUID is not valid."), n } function V0e(t) { let e = t; return e.nss = (t.uuid || "").toLowerCase(), e } var Ok = { scheme: "http", domainHost: !0, parse: xk, serialize: Ak }, q0e = { scheme: "https", domainHost: Ok.domainHost, parse: xk, serialize: Ak }, e9 = { scheme: "ws", domainHost: !0, parse: U0e, serialize: M0e }, z0e = { scheme: "wss", domainHost: e9.domainHost, parse: e9.parse, serialize: e9.serialize }, G0e = { scheme: "urn", parse: $0e, serialize: B0e, skipNormalize: !0 }, J0e = { scheme: "urn:uuid", parse: H0e, serialize: V0e, skipNormalize: !0 }, $y = { http: Ok, https: q0e, ws: e9, wss: z0e, urn: G0e, "urn:uuid": J0e }; Nk.exports = $y }); var Hy = k((uRe, n9) => { "use strict"; var K0e = require("node:url"), { normalizeIPv6: X0e, normalizeIPv4: W0e, removeDotSegments: B4, recomposeAuthority: Y0e, normalizeComponentEncoding: t9 } = Sk(), Rk = Ck(); function Q0e(t, e) { return typeof t == "string" ? t = Zs(Ba(t, e), e) : typeof t == "object" && (t = Ba(Zs(t, e), e)), t } function Z0e(t, e, n) { let r = Object.assign({ scheme: "null" }, n), i = Ik(Ba(t, r), Ba(e, r), r, !0); return Zs(i, { ...r, skipEscape: !0 }) } function Ik(t, e, n, r) { let i = {}; return r || (t = Ba(Zs(t, n), n), e = Ba(Zs(e, n), n)), n = n || {}, !n.tolerant && e.scheme ? (i.scheme = e.scheme, i.userinfo = e.userinfo, i.host = e.host, i.port = e.port, i.path = B4(e.path || ""), i.query = e.query) : (e.userinfo !== void 0 || e.host !== void 0 || e.port !== void 0 ? (i.userinfo = e.userinfo, i.host = e.host, i.port = e.port, i.path = B4(e.path || ""), i.query = e.query) : (e.path ? (e.path.charAt(0) === "/" ? i.path = B4(e.path) : ((t.userinfo !== void 0 || t.host !== void 0 || t.port !== void 0) && !t.path ? i.path = "/" + e.path : t.path ? i.path = t.path.slice(0, t.path.lastIndexOf("/") + 1) + e.path : i.path = e.path, i.path = B4(i.path)), i.query = e.query) : (i.path = t.path, e.query !== void 0 ? i.query = e.query : i.query = t.query), i.userinfo = t.userinfo, i.host = t.host, i.port = t.port), i.scheme = t.scheme), i.fragment = e.fragment, i } function e4e(t, e, n) { return typeof t == "string" ? (t = unescape(t), t = Zs(t9(Ba(t, n), !0), { ...n, skipEscape: !0 })) : typeof t == "object" && (t = Zs(t9(t, !0), { ...n, skipEscape: !0 })), typeof e == "string" ? (e = unescape(e), e = Zs(t9(Ba(e, n), !0), { ...n, skipEscape: !0 })) : typeof e == "object" && (e = Zs(t9(e, !0), { ...n, skipEscape: !0 })), t.toLowerCase() === e.toLowerCase() } function Zs(t, e) { let n = { host: t.host, scheme: t.scheme, userinfo: t.userinfo, port: t.port, path: t.path, query: t.query, nid: t.nid, nss: t.nss, uuid: t.uuid, fragment: t.fragment, reference: t.reference, resourceName: t.resourceName, secure: t.secure, error: "" }, r = Object.assign({}, e), i = [], l = Rk[(r.scheme || n.scheme || "").toLowerCase()]; l && l.serialize && l.serialize(n, r), n.path !== void 0 && (r.skipEscape ? n.path = unescape(n.path) : (n.path = escape(n.path), n.scheme !== void 0 && (n.path = n.path.split("%3A").join(":")))), r.reference !== "suffix" && n.scheme && (i.push(n.scheme), i.push(":")); let s = Y0e(n, r); if (s !== void 0 && (r.reference !== "suffix" && i.push("//"), i.push(s), n.path && n.path.charAt(0) !== "/" && i.push("/")), n.path !== void 0) { let a = n.path; !r.absolutePath && (!l || !l.absolutePath) && (a = B4(a)), s === void 0 && (a = a.replace(/^\/\//u, "/%2F")), i.push(a) } return n.query !== void 0 && (i.push("?"), i.push(n.query)), n.fragment !== void 0 && (i.push("#"), i.push(n.fragment)), i.join("") } var t4e = Array.from({ length: 127 }, (t, e) => /[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(e))); function n4e(t) { let e = 0; for (let n = 0, r = t.length; n < r; ++n)if (e = t.charCodeAt(n), e > 126 || t4e[e]) return !0; return !1 } var r4e = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u; function Ba(t, e) { let n = Object.assign({}, e), r = { scheme: void 0, userinfo: void 0, host: "", port: void 0, path: "", query: void 0, fragment: void 0 }, i = t.indexOf("%") !== -1; n.reference === "suffix" && (t = (n.scheme ? n.scheme + ":" : "") + "//" + t); let l = t.match(r4e); if (l) { if (r.scheme = l[1], r.userinfo = l[3], r.host = l[4], r.port = parseInt(l[5], 10), r.path = l[6] || "", r.query = l[7], r.fragment = l[8], isNaN(r.port) && (r.port = l[5]), r.host) { let a = W0e(r.host); a.isIPV4 === !1 ? r.host = X0e(a.host, { isIPV4: !1 }).host.toLowerCase() : r.host = a.host } r.scheme === void 0 && r.userinfo === void 0 && r.host === void 0 && r.port === void 0 && !r.path && r.query === void 0 ? r.reference = "same-document" : r.scheme === void 0 ? r.reference = "relative" : r.fragment === void 0 ? r.reference = "absolute" : r.reference = "uri", n.reference && n.reference !== "suffix" && n.reference !== r.reference && (r.error = r.error || "URI is not a " + n.reference + " reference."); let s = Rk[(n.scheme || r.scheme || "").toLowerCase()]; if (!n.unicodeSupport && (!s || !s.unicodeSupport) && r.host && (n.domainHost || s && s.domainHost) && n4e(r.host)) try { r.host = K0e.domainToASCII(r.host.toLowerCase()) } catch (a) { r.error = r.error || "Host's domain name can not be converted to ASCII: " + a } (!s || s && !s.skipNormalize) && (i && r.scheme !== void 0 && (r.scheme = unescape(r.scheme)), i && r.userinfo !== void 0 && (r.userinfo = unescape(r.userinfo)), i && r.host !== void 0 && (r.host = unescape(r.host)), r.path !== void 0 && r.path.length && (r.path = encodeURI(r.path)), r.fragment !== void 0 && r.fragment.length && (r.fragment = encodeURI(decodeURI(r.fragment)))), s && s.parse && s.parse(r, n) } else r.error = r.error || "URI can not be parsed."; return r } var By = { normalize: Q0e, resolve: Z0e, resolveComponents: Ik, equal: e4e, serialize: Zs, parse: Ba }; n9.exports = By; n9.exports.default = By; n9.exports.fastUri = By }); var r9 = k(ea => { "use strict"; Object.defineProperty(ea, "__esModule", { value: !0 }); ea.formatNames = ea.fastFormats = ea.fullFormats = void 0; function d1(t, e) { return { validate: t, compare: e } } ea.fullFormats = { date: d1(Pk, zy), time: d1(Lk, Gy), "date-time": d1(a4e, Fk), duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/, uri: c4e, "uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, "uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i, url: /^(?:https?|ftp):\/\/(?:\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\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu, email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i, ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i, regex: g4e, uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i, "json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/, "json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i, "relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/, byte: p4e, int32: { type: "number", validate: h4e }, int64: { type: "number", validate: m4e }, float: { type: "number", validate: Dk }, double: { type: "number", validate: Dk }, password: !0, binary: !0 }; ea.fastFormats = { ...ea.fullFormats, date: d1(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, zy), time: d1(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, Gy), "date-time": d1(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, Fk), uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i, "uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i }; ea.formatNames = Object.keys(ea.fullFormats); function i4e(t) { return t % 4 === 0 && (t % 100 !== 0 || t % 400 === 0) } var l4e = /^(\d\d\d\d)-(\d\d)-(\d\d)$/, s4e = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function Pk(t) { let e = l4e.exec(t); if (!e) return !1; let n = +e[1], r = +e[2], i = +e[3]; return r >= 1 && r <= 12 && i >= 1 && i <= (r === 2 && i4e(n) ? 29 : s4e[r]) } function zy(t, e) { if (t && e) return t > e ? 1 : t < e ? -1 : 0 } var Vy = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i; function Lk(t, e) { let n = Vy.exec(t); if (!n) return !1; let r = +n[1], i = +n[2], l = +n[3], s = n[5]; return (r <= 23 && i <= 59 && l <= 59 || r === 23 && i === 59 && l === 60) && (!e || s !== "") } function Gy(t, e) { if (!(t && e)) return; let n = Vy.exec(t), r = Vy.exec(e); if (n && r) return t = n[1] + n[2] + n[3] + (n[4] || ""), e = r[1] + r[2] + r[3] + (r[4] || ""), t > e ? 1 : t < e ? -1 : 0 } var qy = /t|\s/i; function a4e(t) { let e = t.split(qy); return e.length === 2 && Pk(e[0]) && Lk(e[1], !0) } function Fk(t, e) { if (!(t && e)) return; let [n, r] = t.split(qy), [i, l] = e.split(qy), s = zy(n, i); if (s !== void 0) return s || Gy(r, l) } var o4e = /\/|:/, u4e = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; function c4e(t) { return o4e.test(t) && u4e.test(t) } var kk = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm; function p4e(t) { return kk.lastIndex = 0, kk.test(t) } var f4e = -(2 ** 31), d4e = 2 ** 31 - 1; function h4e(t) { return Number.isInteger(t) && t <= d4e && t >= f4e } function m4e(t) { return Number.isInteger(t) } function Dk() { return !0 } var y4e = /[^\\]\\Z/; function g4e(t) { if (y4e.test(t)) return !1; try { return new RegExp(t), !0 } catch { return !1 } } }); var jk = k(h1 => { "use strict"; Object.defineProperty(h1, "__esModule", { value: !0 }); h1.formatLimitDefinition = void 0; var v4e = Z8(), Ss = st(), N2 = Ss.operators, i9 = { formatMaximum: { okStr: "<=", ok: N2.LTE, fail: N2.GT }, formatMinimum: { okStr: ">=", ok: N2.GTE, fail: N2.LT }, formatExclusiveMaximum: { okStr: "<", ok: N2.LT, fail: N2.GTE }, formatExclusiveMinimum: { okStr: ">", ok: N2.GT, fail: N2.LTE } }, _4e = { message: ({ keyword: t, schemaCode: e }) => Ss.str`should be ${i9[t].okStr} ${e}`, params: ({ keyword: t, schemaCode: e }) => Ss._`{comparison: ${i9[t].okStr}, limit: ${e}}` }; h1.formatLimitDefinition = { keyword: Object.keys(i9), type: "string", schemaType: "string", $data: !0, error: _4e, code(t) { let { gen: e, data: n, schemaCode: r, keyword: i, it: l } = t, { opts: s, self: a } = l; if (!s.validateFormats) return; let o = new v4e.KeywordCxt(l, a.RULES.all.format.definition, "format"); o.$data ? u() : c(); function u() { let m = e.scopeValue("formats", { ref: a.formats, code: s.code.formats }), d = e.const("fmt", Ss._`${m}[${o.schemaCode}]`); t.fail$data(Ss.or(Ss._`typeof ${d} != "object"`, Ss._`${d} instanceof RegExp`, Ss._`typeof ${d}.compare != "function"`, f(d))) } function c() { let m = o.schema, d = a.formats[m]; if (!d || d === !0) return; if (typeof d != "object" || d instanceof RegExp || typeof d.compare != "function") throw new Error(`"${i}": format "${m}" does not define "compare" function`); let y = e.scopeValue("formats", { key: m, ref: d, code: s.code.formats ? Ss._`${s.code.formats}${Ss.getProperty(m)}` : void 0 }); t.fail$data(f(y)) } function f(m) { return Ss._`${m}.compare(${n}, ${r}) ${i9[i].fail} 0` } }, dependencies: ["format"] }; var E4e = t => (t.addKeyword(h1.formatLimitDefinition), t); h1.default = E4e }); var Xy = k((H4, $k) => { "use strict"; Object.defineProperty(H4, "__esModule", { value: !0 }); var m1 = r9(), b4e = jk(), Jy = st(), Uk = new Jy.Name("fullFormats"), w4e = new Jy.Name("fastFormats"), Ky = (t, e = { keywords: !0 }) => { if (Array.isArray(e)) return Mk(t, e, m1.fullFormats, Uk), t; let [n, r] = e.mode === "fast" ? [m1.fastFormats, w4e] : [m1.fullFormats, Uk], i = e.formats || m1.formatNames; return Mk(t, i, n, r), e.keywords && b4e.default(t), t }; Ky.get = (t, e = "full") => { let r = (e === "fast" ? m1.fastFormats : m1.fullFormats)[t]; if (!r) throw new Error(`Unknown format "${t}"`); return r }; function Mk(t, e, n, r) { var i, l; (i = (l = t.opts.code).formats) !== null && i !== void 0 || (l.formats = Jy._`require("ajv-formats/dist/formats").${r}`); for (let s of e) t.addFormat(s, n[s]) } $k.exports = H4 = Ky; Object.defineProperty(H4, "__esModule", { value: !0 }); H4.default = Ky }); var Yy = k((fRe, Bk) => { "use strict"; var S4e = Z8(), T4e = Hy(), x4e = Xy(), A4e = p4()({ proto: !0 }), Wy = class t { constructor(e) { this.ajv = new S4e({ ...e, strictSchema: !1, validateSchema: !1, allowUnionTypes: !0, uriResolver: T4e }), x4e(this.ajv), this.ajv.addKeyword({ keyword: "fjs_type", type: "object", errors: !1, validate: (n, r) => r instanceof Date }), this._ajvSchemas = {}, this._ajvOptions = e || {} } addSchema(e, n) { let r = e.$id || n; if (e.$id !== void 0 && e.$id[0] === "#" && (r = n + e.$id), this.ajv.refs[r] === void 0 && this.ajv.schemas[r] === void 0) { let i = A4e(e); this.convertSchemaToAjvFormat(i), this.ajv.addSchema(i, r), this._ajvSchemas[r] = e } } validate(e, n) { return this.ajv.validate(e, n) } convertSchemaToAjvFormat(e) { if (e !== null) { e.type === "string" ? (e.fjs_type = "string", e.type = ["string", "object"]) : Array.isArray(e.type) && e.type.includes("string") && !e.type.includes("object") && (e.fjs_type = "string", e.type.push("object")); for (let n in e) typeof e[n] == "object" && this.convertSchemaToAjvFormat(e[n]) } } getState() { return { ajvOptions: this._ajvOptions, ajvSchemas: this._ajvSchemas } } static restoreFromState(e) { let n = new t(e.ajvOptions); for (let [r, i] of Object.entries(e.ajvSchemas)) n.ajv.addSchema(i, r); return n } }; Bk.exports = Wy }); var Zy = k((dRe, Qy) => {
"use strict"; function O4e(t, e, n, r) {
let i = ""; return e.validatorSchemasIds.size > 0 ? (i += `const validatorState = ${JSON.stringify(r.getState())}
`, i += `const validator = Validator.restoreFromState(validatorState)
`) : i += `const validator = null
`, `
'use strict'
const { dependencies } = require('fast-json-stringify/lib/standalone')
const { Serializer, Validator } = dependencies
const serializerState = ${JSON.stringify(n.getState())}
const serializer = Serializer.restoreFromState(serializerState)
${i}
module.exports = ${t.toString()}(validator, serializer)`
} Qy.exports = O4e; Qy.exports.dependencies = { Serializer: lm(), Validator: Yy() }
}); var Vk = k((mRe, Hk) => { "use strict"; var { dependencies: N4e } = Zy(), { Serializer: C4e, Validator: hRe } = N4e, R4e = { mode: "standalone" }, I4e = C4e.restoreFromState(R4e), k4e = null; Hk.exports = function (e, n) { function r(l) { let s = l && typeof l.toJSON == "function" ? l.toJSON() : l; if (s === null) return "{}"; let a = !1, o = "{"; return s.statusCode !== void 0 && (!a && (a = !0) || (o += ","), o += '"statusCode":', o += n.asNumber(s.statusCode)), s.code !== void 0 && (!a && (a = !0) || (o += ","), o += '"code":', o += n.asString(s.code)), s.error !== void 0 && (!a && (a = !0) || (o += ","), o += '"error":', o += n.asString(s.error)), s.message !== void 0 && (!a && (a = !0) || (o += ","), o += '"message":', o += n.asString(s.message)), o + "}" } return r }(k4e, I4e) }); var V4 = k((yRe, Jk) => { "use strict"; var qk = require("node:http").STATUS_CODES, D4e = nh(), { kReplyHeaders: k3, kReplyNextErrorHandler: l9, kReplyIsRunningOnErrorHook: P4e, kReplyHasStatusCode: L4e, kRouteContext: Gk } = di(), { FST_ERR_REP_INVALID_PAYLOAD_TYPE: F4e, FST_ERR_FAILED_ERROR_SERIALIZATION: j4e } = Ui(), { getSchemaSerializer: U4e } = f4(), eg = Vk(), M4e = { func: B4e, toJSON() { return this.func.name.toString() + "()" } }; function $4e(t, e, n) { t[P4e] = !1; let r = t[Gk]; if (t[l9] === !1) { zk(e, t, function (a, o) { try { a.raw.writeHead(a.raw.statusCode, a[k3]) } catch (u) { a.log.warn({ req: a.request, res: a, err: u }, u && u.message), a.raw.writeHead(a.raw.statusCode) } a.raw.end(o) }); return } let i = t[l9] || r.errorHandler; t[l9] = Object.getPrototypeOf(i), delete t[k3]["content-type"], delete t[k3]["content-length"]; let l = i.func; if (!l) { t[l9] = !1, zk(e, t, n); return } let s = l(e, t.request, t); s !== void 0 && (s !== null && typeof s.then == "function" ? D4e(s, t) : t.send(s)) } function B4e(t, e, n) { if (V4e(t, n), !n[L4e] || n.statusCode === 200) { let r = t.statusCode || t.status; n.code(r >= 400 ? r : 500) } n.statusCode < 500 ? n.log.info({ res: n, err: t }, t && t.message) : n.log.error({ req: e, res: n, err: t }, t && t.message), n.send(t) } function zk(t, e, n) { let r = e.raw, i = e.statusCode; e[k3]["content-type"] = e[k3]["content-type"] ?? "application/json; charset=utf-8"; let l; try { let s = U4e(e[Gk], i, e[k3]["content-type"]); l = s === !1 ? eg({ error: qk[i + ""], code: t.code, message: t.message, statusCode: i }) : s(Object.create(t, { error: { value: qk[i + ""] }, message: { value: t.message }, statusCode: { value: i } })) } catch (s) { e.log.error({ err: s, statusCode: r.statusCode }, "The serializer for the given status code failed"), e.code(500), l = eg(new j4e(s.message, t.message)) } typeof l != "string" && !Buffer.isBuffer(l) && (l = eg(new F4e(typeof l))), e[k3]["content-length"] = "" + Buffer.byteLength(l), n(e, l) } function H4e(t = M4e, e) { if (!e) return t; let n = Object.create(t); return n.func = e, n } function V4e(t, e) { let n = e.raw, r = n.statusCode; r = r >= 400 ? r : 500, t != null && (t.headers !== void 0 && e.headers(t.headers), t.status >= 400 ? r = t.status : t.statusCode >= 400 && (r = t.statusCode)), n.statusCode = r } Jk.exports = { buildErrorHandler: H4e, handleError: $4e } }); var p9 = k((gRe, c9) => { "use strict"; var ig = require("node:stream").finished, q4e = require("node:stream").Readable, { kFourOhFourContext: Kk, kPublicRouteContext: Xk, kReplyErrorHandlerCalled: rD, kReplyHijacked: q4, kReplyStartTime: z4, kReplyEndTime: sg, kReplySerializer: Ha, kReplySerializerDefault: a9, kReplyIsError: o9, kReplyHeaders: ar, kReplyTrailers: hi, kReplyHasStatusCode: ag, kReplyIsRunningOnErrorHook: og, kReplyNextErrorHandler: z4e, kDisableRequestLogging: iD, kSchemaResponse: u9, kReplyCacheSerializeFns: C2, kSchemaController: tg, kOptions: G4e, kRouteContext: jt } = di(), { onSendHookRunner: lD, onResponseHookRunner: J4e, preHandlerHookRunner: K4e, preSerializationHookRunner: X4e } = m2(), Wk = sh()[Symbol.for("internals")], W4e = c4(), lg = W4e.now, { handleError: Yk } = V4(), { getSchemaSerializer: Y4e } = f4(), ng = { JSON: "application/json; charset=utf-8", PLAIN: "text/plain; charset=utf-8", OCTET: "application/octet-stream" }, { FST_ERR_REP_INVALID_PAYLOAD_TYPE: Q4e, FST_ERR_REP_RESPONSE_BODY_CONSUMED: Z4e, FST_ERR_REP_ALREADY_SENT: sD, FST_ERR_REP_SENT_VALUE: ece, FST_ERR_SEND_INSIDE_ONERR: tce, FST_ERR_BAD_STATUS_CODE: nce, FST_ERR_BAD_TRAILER_NAME: rce, FST_ERR_BAD_TRAILER_VALUE: ice, FST_ERR_MISSING_SERIALIZATION_FN: lce, FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN: sce } = Ui(), { FSTDEP010: ace, FSTDEP013: oce, FSTDEP019: uce, FSTDEP020: cce } = Fa(), aD = Object.prototype.toString; function nr(t, e, n) { this.raw = t, this[Ha] = null, this[rD] = !1, this[o9] = !1, this[og] = !1, this.request = e, this[ar] = {}, this[hi] = null, this[ag] = !1, this[z4] = void 0, this.log = n } nr.props = []; Object.defineProperties(nr.prototype, { [jt]: { get() { return this.request[jt] } }, context: { get() { return uce(), this.request[jt] } }, elapsedTime: { get() { return this[z4] === void 0 ? 0 : (this[sg] || lg()) - this[z4] } }, server: { get() { return this.request[jt].server } }, sent: { enumerable: !0, get() { return (this[q4] || this.raw.writableEnded) === !0 }, set(t) { if (ace(), t !== !0) throw new ece; if (this.sent && this[q4]) throw new sD(this.request.url, this.request.method); this[q4] = !0 } }, statusCode: { get() { return this.raw.statusCode }, set(t) { this.code(t) } }, [Xk]: { get() { return this.request[Xk] } } }); nr.prototype.hijack = function () { return this[q4] = !0, this }; nr.prototype.send = function (t) { if (this[og] === !0) throw new tce; if (this.sent) return this.log.warn({ err: new sD(this.request.url, this.request.method) }), this; if (t instanceof Error || this[o9] === !0) return this[o9] = !1, G4(this, t, D3), this; if (t === void 0) return D3(this, t), this; let e = this.getHeader("content-type"), n = e !== void 0; if (t !== null) { if (typeof t.pipe == "function" || typeof t.getReader == "function" || aD.call(t) === "[object Response]") return D3(this, t), this; if (t?.buffer instanceof ArrayBuffer) { n === !1 && (this[ar]["content-type"] = ng.OCTET); let r = Buffer.isBuffer(t) ? t : Buffer.from(t.buffer, t.byteOffset, t.byteLength); return D3(this, r), this } if (n === !1 && typeof t == "string") return this[ar]["content-type"] = ng.PLAIN, D3(this, t), this } if (this[Ha] !== null) { if (typeof t != "string") return Qk(this, t), this; t = this[Ha](t) } else if (n === !1 || e.indexOf("json") > -1) { if (n === !1) this[ar]["content-type"] = ng.JSON; else if (e.indexOf("charset") === -1) { let r = e.trim(); r.endsWith(";") ? this[ar]["content-type"] = `${r} charset=utf-8` : this[ar]["content-type"] = `${r}; charset=utf-8` } if (typeof t != "string") return Qk(this, t), this } return D3(this, t), this }; nr.prototype.getHeader = function (t) { t = t.toLowerCase(); let e = this.raw, n = this[ar][t]; return n === void 0 && e.hasHeader(t) && (n = e.getHeader(t)), n }; nr.prototype.getHeaders = function () { return { ...this.raw.getHeaders(), ...this[ar] } }; nr.prototype.hasHeader = function (t) { return t = t.toLowerCase(), this[ar][t] !== void 0 || this.raw.hasHeader(t) }; nr.prototype.removeHeader = function (t) { return delete this[ar][t.toLowerCase()], this }; nr.prototype.header = function (t, e = "") { return t = t.toLowerCase(), this[ar][t] && t === "set-cookie" ? (typeof this[ar][t] == "string" && (this[ar][t] = [this[ar][t]]), Array.isArray(e) ? Array.prototype.push.apply(this[ar][t], e) : this[ar][t].push(e)) : this[ar][t] = e, this }; nr.prototype.headers = function (t) { let e = Object.keys(t); for (var n = 0; n !== e.length; ++n) { let r = e[n]; this.header(r, t[r]) } return this }; var pce = new Set(["transfer-encoding", "content-length", "host", "cache-control", "max-forwards", "te", "authorization", "set-cookie", "content-encoding", "content-type", "content-range", "trailer"]); nr.prototype.trailer = function (t, e) { if (t = t.toLowerCase(), pce.has(t)) throw new rce(t); if (typeof e != "function") throw new ice(t, typeof e); return this[hi] === null && (this[hi] = {}), this[hi][t] = e, this }; nr.prototype.hasTrailer = function (t) { return this[hi]?.[t.toLowerCase()] !== void 0 }; nr.prototype.removeTrailer = function (t) { return this[hi] === null ? this : (this[hi][t.toLowerCase()] = void 0, this) }; nr.prototype.code = function (t) { let e = Number(t); if (isNaN(e) || e < 100 || e > 599) throw new nce(t || String(t)); return this.raw.statusCode = e, this[ag] = !0, this }; nr.prototype.status = nr.prototype.code; nr.prototype.getSerializationFunction = function (t, e) { let n; return typeof t == "string" || typeof t == "number" ? typeof e == "string" ? n = this[jt][u9]?.[t]?.[e] : n = this[jt][u9]?.[t] : typeof t == "object" && (n = this[jt][C2]?.get(t)), n }; nr.prototype.compileSerializationSchema = function (t, e = null, n = null) { let { request: r } = this, { method: i, url: l } = r; if (this[jt][C2]?.has(t)) return this[jt][C2].get(t); let a = (this[jt].serializerCompiler || this.server[tg].serializerCompiler || this.server[tg].setupSerializer(this.server[G4e]) || this.server[tg].serializerCompiler)({ schema: t, method: i, url: l, httpStatus: e, contentType: n }); return this[jt][C2] == null && (this[jt][C2] = new WeakMap), this[jt][C2].set(t, a), a }; nr.prototype.serializeInput = function (t, e, n, r) { let i = n, l; if (n = typeof e == "string" || typeof e == "number" ? e : n, r = n && i !== n ? i : r, n != null) { if (r != null ? l = this[jt][u9]?.[n]?.[r] : l = this[jt][u9]?.[n], l == null) throw r ? new sce(n, r) : new lce(n) } else this[jt][C2]?.has(e) ? l = this[jt][C2].get(e) : l = this.compileSerializationSchema(e, n, r); return l(t) }; nr.prototype.serialize = function (t) { return this[Ha] !== null ? this[Ha](t) : this[jt] && this[jt][a9] ? this[jt][a9](t, this.raw.statusCode) : cD(this[jt], t, this.raw.statusCode) }; nr.prototype.serializer = function (t) { return this[Ha] = t, this }; nr.prototype.type = function (t) { return this[ar]["content-type"] = t, this }; nr.prototype.redirect = function (t, e) { return typeof t == "string" && (e = t, t = this[ag] ? this.raw.statusCode : 302), this.header("location", e).code(t).send() }; nr.prototype.callNotFound = function () { return gce(this), this }; nr.prototype.getResponseTime = function () { return cce(), this.elapsedTime }; nr.prototype.then = function (t, e) { if (this.sent) { t(); return } ig(this.raw, n => { n && n.code !== "ERR_STREAM_PREMATURE_CLOSE" ? e ? e(n) : this.log && this.log.warn("unhandled rejection on reply.then") : t() }) }; function Qk(t, e) { t[jt].preSerialization !== null ? X4e(t[jt].preSerialization, t.request, t, e, Zk) : Zk(null, t.request, t, e) } function Zk(t, e, n, r) { if (t != null) { G4(n, t); return } try { n[Ha] !== null ? r = n[Ha](r) : n[jt] && n[jt][a9] ? r = n[jt][a9](r, n.raw.statusCode) : r = cD(n[jt], r, n.raw.statusCode, n[ar]["content-type"]) } catch (i) { fce(i, n), G4(n, i); return } D3(n, r) } function fce(t, e) { t.serialization = e[jt].config } function D3(t, e) { t[jt].onSend !== null ? lD(t[jt].onSend, t.request, t, e, dce) : oD(t, e) } function dce(t, e, n, r) { t != null ? G4(n, t) : oD(n, r) } function rg(t, e) { let n = t.raw; try { n.writeHead(e, t[ar]) } catch (r) { throw r.code === "ERR_HTTP_HEADERS_SENT" && t.log.warn(`Reply was already sent, did you forget to "return reply" in the "${t.request.raw.url}" (${t.request.raw.method}) route?`), r } } function oD(t, e) { let n = t.raw, r = t.request; if (t[hi] !== null) { let s = Object.keys(t[hi]), a = ""; for (let o of s) typeof t[hi][o] == "function" && (a += " ", a += o); t.header("Transfer-Encoding", "chunked"), t.header("Trailer", a.trim()) } let i = aD.call(e) === "[object Response]"; i && typeof e.status == "number" && t.code(e.status); let l = n.statusCode; if (e == null) { l >= 200 && l !== 204 && l !== 304 && r.method !== "HEAD" && t[hi] === null && (t[ar]["content-length"] = "0"), rg(t, l), s9(e, n, t); return } if (l >= 100 && l < 200 || l === 204) { t.removeHeader("content-type"), t.removeHeader("content-length"), rg(t, l), s9(void 0, n, t), typeof e.resume == "function" && (e.on("error", pD), e.resume()); return } if (typeof e.pipe == "function") { uD(e, n, t); return } if (typeof e.getReader == "function") { tD(e, n, t); return } if (i) { if (typeof e.headers == "object" && typeof e.headers.forEach == "function") for (let [s, a] of e.headers) t.header(s, a); if (e.body != null) { if (e.bodyUsed) throw new Z4e; tD(e.body, n, t) } return } if (typeof e != "string" && !Buffer.isBuffer(e)) throw new Q4e(typeof e); if (t[hi] === null) { let s = t[ar]["content-length"]; (!s || r.raw.method !== "HEAD" && Number(s) !== Buffer.byteLength(e)) && (t[ar]["content-length"] = "" + Buffer.byteLength(e)) } rg(t, l), n.write(e), s9(e, n, t) } function eD(t, e, n) { e.code === "ERR_STREAM_PREMATURE_CLOSE" ? t[iD] || t.info({ res: n }, "stream closed prematurely") : t.warn({ err: e }, "response terminated with an error with headers already sent") } function tD(t, e, n) { let r = q4e.fromWeb(t); uD(r, e, n) } function uD(t, e, n) { let r = !0, i = !1; if (hce(t, e, n), ig(t, { readable: !0, writable: !1 }, function (l) { r = !1, l != null && (e.headersSent || n.request.raw.aborted === !0 ? (i || (i = !0, eD(n.log, l, e)), e.destroy()) : G4(n, l)) }), ig(e, function (l) { r && (l != null && e.headersSent && !i && (i = !0, eD(n.log, l, e)), typeof t.destroy == "function" ? t.destroy() : typeof t.close == "function" ? t.close(pD) : typeof t.abort == "function" ? t.abort() : n.log.warn("stream payload does not end properly")) }), e.headersSent) n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode"); else for (let l in n[ar]) e.setHeader(l, n[ar][l]); t.pipe(e) } function s9(t, e, n) { if (n[hi] === null) { e.end(null, null, null); return } let r = Object.keys(n[hi]), i = {}, l = 0, s = !0; function a() { l === 0 && (e.addTrailers(i), e.end(null, null, null)) } for (let o of r) { let u = function (f, m) { l++, f ? n.log.debug(f) : i[o] = m, process.nextTick(a) }; if (typeof n[hi][o] != "function") continue; s = !1, l--; let c = n[hi][o](n, t, u); typeof c == "object" && typeof c.then == "function" ? c.then(f => u(null, f), u) : c != null && (oce(), u(null, c)) } s && e.end(null, null, null) } function hce(t, e, n) { n[hi] !== null && t.on("end", () => s9(null, e, n)) } function G4(t, e, n) { t[jt].onError !== null && !t[z4e] ? (t[og] = !0, lD(t[jt].onError, t.request, t, e, () => Yk(t, e, n))) : Yk(t, e, n) } function mce(t) { t[z4] = lg(); let e = n => { t[sg] = lg(), t.raw.removeListener("finish", e), t.raw.removeListener("error", e); let r = t[jt]; r && r.onResponse !== null ? J4e(r.onResponse, t.request, t, nD) : nD(n, t.request, t) }; t.raw.on("finish", e), t.raw.on("error", e) } function nD(t, e, n) { if (n.log[iD]) return; let r = n.elapsedTime; if (t != null) { n.log.error({ res: n, err: t, responseTime: r }, "request errored"); return } n.log.info({ res: n, responseTime: r }, "request completed") } function yce(t) { let e = t.props.slice(); function n(r, i, l) { this.raw = r, this[o9] = !1, this[rD] = !1, this[q4] = !1, this[Ha] = null, this.request = i, this[ar] = {}, this[hi] = null, this[z4] = void 0, this[sg] = void 0, this.log = l; for (var s, a = 0; a < e.length; a++)s = e[a], this[s.key] = s.value } return Object.setPrototypeOf(n.prototype, t.prototype), Object.setPrototypeOf(n, t), n.parent = t, n.props = e, n } function gce(t) { if (t[jt][Kk] === null) { t.log.warn("Trying to send a NotFound error inside a 404 handler. Sending basic 404 response."), t.code(404).send("404 Not Found"); return } t.request[jt] = t[jt][Kk], t[jt].preHandler !== null ? K4e(t[jt].preHandler, t.request, t, Wk.preHandlerCallback) : Wk.preHandlerCallback(null, t.request, t) } function cD(t, e, n, r) { let i = Y4e(t, n, r); return i ? i(e) : JSON.stringify(e) } function pD() { } c9.exports = nr; c9.exports.buildReply = yce; c9.exports.setupResponseListeners = mce }); var dD = k((vRe, fD) => { "use strict"; fD.exports = vce; function vce(t) { if (!t) throw new TypeError("argument req is required"); var e = Ece(t.headers["x-forwarded-for"] || ""), n = _ce(t), r = [n].concat(e); return r } function _ce(t) { return t.socket ? t.socket.remoteAddress : t.connection.remoteAddress } function Ece(t) { for (var e = t.length, n = [], r = t.length, i = t.length - 1; i >= 0; i--)switch (t.charCodeAt(i)) { case 32: r === e && (r = e = i); break; case 44: r !== e && n.push(t.substring(r, e)), r = e = i; break; default: r = i; break }return r !== e && n.push(t.substring(r, e)), n } }); var mD = k((hD, J4) => { (function () { var t, e, n, r, i, l, s, a, o; e = {}, a = this, typeof J4 < "u" && J4 !== null && J4.exports ? J4.exports = e : a.ipaddr = e, s = function (u, c, f, m) { var d, y; if (u.length !== c.length) throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); for (d = 0; m > 0;) { if (y = f - m, y < 0 && (y = 0), u[d] >> y !== c[d] >> y) return !1; m -= f, d += 1 } return !0 }, e.subnetMatch = function (u, c, f) { var m, d, y, _, S; f == null && (f = "unicast"); for (y in c) for (_ = c[y], _[0] && !(_[0] instanceof Array) && (_ = [_]), m = 0, d = _.length; m < d; m++)if (S = _[m], u.kind() === S[0].kind() && u.match.apply(u, S)) return y; return f }, e.IPv4 = function () { function u(c) { var f, m, d; if (c.length !== 4) throw new Error("ipaddr: ipv4 octet count should be 4"); for (f = 0, m = c.length; f < m; f++)if (d = c[f], !(0 <= d && d <= 255)) throw new Error("ipaddr: ipv4 octet should fit in 8 bits"); this.octets = c } return u.prototype.kind = function () { return "ipv4" }, u.prototype.toString = function () { return this.octets.join(".") }, u.prototype.toNormalizedString = function () { return this.toString() }, u.prototype.toByteArray = function () { return this.octets.slice(0) }, u.prototype.match = function (c, f) { var m; if (f === void 0 && (m = c, c = m[0], f = m[1]), c.kind() !== "ipv4") throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); return s(this.octets, c.octets, 8, f) }, u.prototype.SpecialRanges = { unspecified: [[new u([0, 0, 0, 0]), 8]], broadcast: [[new u([255, 255, 255, 255]), 32]], multicast: [[new u([224, 0, 0, 0]), 4]], linkLocal: [[new u([169, 254, 0, 0]), 16]], loopback: [[new u([127, 0, 0, 0]), 8]], carrierGradeNat: [[new u([100, 64, 0, 0]), 10]], private: [[new u([10, 0, 0, 0]), 8], [new u([172, 16, 0, 0]), 12], [new u([192, 168, 0, 0]), 16]], reserved: [[new u([192, 0, 0, 0]), 24], [new u([192, 0, 2, 0]), 24], [new u([192, 88, 99, 0]), 24], [new u([198, 51, 100, 0]), 24], [new u([203, 0, 113, 0]), 24], [new u([240, 0, 0, 0]), 4]] }, u.prototype.range = function () { return e.subnetMatch(this, this.SpecialRanges) }, u.prototype.toIPv4MappedAddress = function () { return e.IPv6.parse("::ffff:" + this.toString()) }, u.prototype.prefixLengthFromSubnetMask = function () { var c, f, m, d, y, _, S; for (S = { 0: 8, 128: 7, 192: 6, 224: 5, 240: 4, 248: 3, 252: 2, 254: 1, 255: 0 }, c = 0, y = !1, f = m = 3; m >= 0; f = m += -1)if (d = this.octets[f], d in S) { if (_ = S[d], y && _ !== 0) return null; _ !== 8 && (y = !0), c += _ } else return null; return 32 - c }, u }(), n = "(0?\\d+|0x[a-f0-9]+)", r = { fourOctet: new RegExp("^" + n + "\\." + n + "\\." + n + "\\." + n + "$", "i"), longValue: new RegExp("^" + n + "$", "i") }, e.IPv4.parser = function (u) { var c, f, m, d, y; if (f = function (_) { return _[0] === "0" && _[1] !== "x" ? parseInt(_, 8) : parseInt(_) }, c = u.match(r.fourOctet)) return function () { var _, S, w, E; for (w = c.slice(1, 6), E = [], _ = 0, S = w.length; _ < S; _++)m = w[_], E.push(f(m)); return E }(); if (c = u.match(r.longValue)) { if (y = f(c[1]), y > 4294967295 || y < 0) throw new Error("ipaddr: address outside defined range"); return function () { var _, S; for (S = [], d = _ = 0; _ <= 24; d = _ += 8)S.push(y >> d & 255); return S }().reverse() } else return null }, e.IPv6 = function () { function u(c, f) { var m, d, y, _, S, w; if (c.length === 16) for (this.parts = [], m = d = 0; d <= 14; m = d += 2)this.parts.push(c[m] << 8 | c[m + 1]); else if (c.length === 8) this.parts = c; else throw new Error("ipaddr: ipv6 part count should be 8 or 16"); for (w = this.parts, y = 0, _ = w.length; y < _; y++)if (S = w[y], !(0 <= S && S <= 65535)) throw new Error("ipaddr: ipv6 part should fit in 16 bits"); f && (this.zoneId = f) } return u.prototype.kind = function () { return "ipv6" }, u.prototype.toString = function () { return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::") }, u.prototype.toRFC5952String = function () { var c, f, m, d, y; for (d = /((^|:)(0(:|$)){2,})/g, y = this.toNormalizedString(), c = 0, f = -1; m = d.exec(y);)m[0].length > f && (c = m.index, f = m[0].length); return f < 0 ? y : y.substring(0, c) + "::" + y.substring(c + f) }, u.prototype.toByteArray = function () { var c, f, m, d, y; for (c = [], y = this.parts, f = 0, m = y.length; f < m; f++)d = y[f], c.push(d >> 8), c.push(d & 255); return c }, u.prototype.toNormalizedString = function () { var c, f, m; return c = function () { var d, y, _, S; for (_ = this.parts, S = [], d = 0, y = _.length; d < y; d++)f = _[d], S.push(f.toString(16)); return S }.call(this).join(":"), m = "", this.zoneId && (m = "%" + this.zoneId), c + m }, u.prototype.toFixedLengthString = function () { var c, f, m; return c = function () { var d, y, _, S; for (_ = this.parts, S = [], d = 0, y = _.length; d < y; d++)f = _[d], S.push(f.toString(16).padStart(4, "0")); return S }.call(this).join(":"), m = "", this.zoneId && (m = "%" + this.zoneId), c + m }, u.prototype.match = function (c, f) { var m; if (f === void 0 && (m = c, c = m[0], f = m[1]), c.kind() !== "ipv6") throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); return s(this.parts, c.parts, 16, f) }, u.prototype.SpecialRanges = { unspecified: [new u([0, 0, 0, 0, 0, 0, 0, 0]), 128], linkLocal: [new u([65152, 0, 0, 0, 0, 0, 0, 0]), 10], multicast: [new u([65280, 0, 0, 0, 0, 0, 0, 0]), 8], loopback: [new u([0, 0, 0, 0, 0, 0, 0, 1]), 128], uniqueLocal: [new u([64512, 0, 0, 0, 0, 0, 0, 0]), 7], ipv4Mapped: [new u([0, 0, 0, 0, 0, 65535, 0, 0]), 96], rfc6145: [new u([0, 0, 0, 0, 65535, 0, 0, 0]), 96], rfc6052: [new u([100, 65435, 0, 0, 0, 0, 0, 0]), 96], "6to4": [new u([8194, 0, 0, 0, 0, 0, 0, 0]), 16], teredo: [new u([8193, 0, 0, 0, 0, 0, 0, 0]), 32], reserved: [[new u([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]] }, u.prototype.range = function () { return e.subnetMatch(this, this.SpecialRanges) }, u.prototype.isIPv4MappedAddress = function () { return this.range() === "ipv4Mapped" }, u.prototype.toIPv4Address = function () { var c, f, m; if (!this.isIPv4MappedAddress()) throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); return m = this.parts.slice(-2), c = m[0], f = m[1], new e.IPv4([c >> 8, c & 255, f >> 8, f & 255]) }, u.prototype.prefixLengthFromSubnetMask = function () { var c, f, m, d, y, _, S; for (S = { 0: 16, 32768: 15, 49152: 14, 57344: 13, 61440: 12, 63488: 11, 64512: 10, 65024: 9, 65280: 8, 65408: 7, 65472: 6, 65504: 5, 65520: 4, 65528: 3, 65532: 2, 65534: 1, 65535: 0 }, c = 0, y = !1, f = m = 7; m >= 0; f = m += -1)if (d = this.parts[f], d in S) { if (_ = S[d], y && _ !== 0) return null; _ !== 16 && (y = !0), c += _ } else return null; return 128 - c }, u }(), i = "(?:[0-9a-f]+::?)+", o = "%[0-9a-z]{1,}", l = { zoneIndex: new RegExp(o, "i"), native: new RegExp("^(::)?(" + i + ")?([0-9a-f]+)?(::)?(" + o + ")?$", "i"), transitional: new RegExp("^((?:" + i + ")|(?:::)(?:" + i + ")?)" + (n + "\\." + n + "\\." + n + "\\." + n) + ("(" + o + ")?$"), "i") }, t = function (u, c) { var f, m, d, y, _, S; if (u.indexOf("::") !== u.lastIndexOf("::")) return null; for (S = (u.match(l.zoneIndex) || [])[0], S && (S = S.substring(1), u = u.replace(/%.+$/, "")), f = 0, m = -1; (m = u.indexOf(":", m + 1)) >= 0;)f++; if (u.substr(0, 2) === "::" && f--, u.substr(-2, 2) === "::" && f--, f > c) return null; for (_ = c - f, y = ":"; _--;)y += "0:"; return u = u.replace("::", y), u[0] === ":" && (u = u.slice(1)), u[u.length - 1] === ":" && (u = u.slice(0, -1)), c = function () { var w, E, g, v; for (g = u.split(":"), v = [], w = 0, E = g.length; w < E; w++)d = g[w], v.push(parseInt(d, 16)); return v }(), { parts: c, zoneId: S } }, e.IPv6.parser = function (u) { var c, f, m, d, y, _, S; if (l.native.test(u)) return t(u, 8); if ((d = u.match(l.transitional)) && (S = d[6] || "", c = t(d[1].slice(0, -1) + S, 6), c.parts)) { for (_ = [parseInt(d[2]), parseInt(d[3]), parseInt(d[4]), parseInt(d[5])], f = 0, m = _.length; f < m; f++)if (y = _[f], !(0 <= y && y <= 255)) return null; return c.parts.push(_[0] << 8 | _[1]), c.parts.push(_[2] << 8 | _[3]), { parts: c.parts, zoneId: c.zoneId } } return null }, e.IPv4.isIPv4 = e.IPv6.isIPv6 = function (u) { return this.parser(u) !== null }, e.IPv4.isValid = function (u) { var c; try { return new this(this.parser(u)), !0 } catch (f) { return c = f, !1 } }, e.IPv4.isValidFourPartDecimal = function (u) { return !!(e.IPv4.isValid(u) && u.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) }, e.IPv6.isValid = function (u) { var c, f; if (typeof u == "string" && u.indexOf(":") === -1) return !1; try { return c = this.parser(u), new this(c.parts, c.zoneId), !0 } catch (m) { return f = m, !1 } }, e.IPv4.parse = function (u) { var c; if (c = this.parser(u), c === null) throw new Error("ipaddr: string is not formatted like ip address"); return new this(c) }, e.IPv6.parse = function (u) { var c; if (c = this.parser(u), c.parts === null) throw new Error("ipaddr: string is not formatted like ip address"); return new this(c.parts, c.zoneId) }, e.IPv4.parseCIDR = function (u) { var c, f, m; if ((f = u.match(/^(.+)\/(\d+)$/)) && (c = parseInt(f[2]), c >= 0 && c <= 32)) return m = [this.parse(f[1]), c], Object.defineProperty(m, "toString", { value: function () { return this.join("/") } }), m; throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range") }, e.IPv4.subnetMaskFromPrefixLength = function (u) { var c, f, m; if (u = parseInt(u), u < 0 || u > 32) throw new Error("ipaddr: invalid IPv4 prefix length"); for (m = [0, 0, 0, 0], f = 0, c = Math.floor(u / 8); f < c;)m[f] = 255, f++; return c < 4 && (m[c] = Math.pow(2, u % 8) - 1 << 8 - u % 8), new this(m) }, e.IPv4.broadcastAddressFromCIDR = function (u) { var c, f, m, d, y, _; try { for (c = this.parseCIDR(u), d = c[0].toByteArray(), _ = this.subnetMaskFromPrefixLength(c[1]).toByteArray(), y = [], m = 0; m < 4;)y.push(parseInt(d[m], 10) | parseInt(_[m], 10) ^ 255), m++; return new this(y) } catch (S) { throw f = S, new Error("ipaddr: the address does not have IPv4 CIDR format") } }, e.IPv4.networkAddressFromCIDR = function (u) { var c, f, m, d, y, _; try { for (c = this.parseCIDR(u), d = c[0].toByteArray(), _ = this.subnetMaskFromPrefixLength(c[1]).toByteArray(), y = [], m = 0; m < 4;)y.push(parseInt(d[m], 10) & parseInt(_[m], 10)), m++; return new this(y) } catch (S) { throw f = S, new Error("ipaddr: the address does not have IPv4 CIDR format") } }, e.IPv6.parseCIDR = function (u) { var c, f, m; if ((f = u.match(/^(.+)\/(\d+)$/)) && (c = parseInt(f[2]), c >= 0 && c <= 128)) return m = [this.parse(f[1]), c], Object.defineProperty(m, "toString", { value: function () { return this.join("/") } }), m; throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range") }, e.isValid = function (u) { return e.IPv6.isValid(u) || e.IPv4.isValid(u) }, e.parse = function (u) { if (e.IPv6.isValid(u)) return e.IPv6.parse(u); if (e.IPv4.isValid(u)) return e.IPv4.parse(u); throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format") }, e.parseCIDR = function (u) { var c; try { return e.IPv6.parseCIDR(u) } catch (f) { c = f; try { return e.IPv4.parseCIDR(u) } catch (m) { throw c = m, new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format") } } }, e.fromByteArray = function (u) { var c; if (c = u.length, c === 4) return new e.IPv4(u); if (c === 16) return new e.IPv6(u); throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address") }, e.process = function (u) { var c; return c = this.parse(u), c.kind() === "ipv6" && c.isIPv4MappedAddress() ? c.toIPv4Address() : c } }).call(hD) }); var ED = k((_Re, h9) => { "use strict"; h9.exports = Oce; h9.exports.all = vD; h9.exports.compile = _D; var bce = dD(), gD = mD(), wce = /^[0-9]+$/, f9 = gD.isValid, d9 = gD.parse, yD = { linklocal: ["169.254.0.0/16", "fe80::/10"], loopback: ["127.0.0.1/8", "::1/128"], uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"] }; function vD(t, e) { var n = bce(t); if (!e) return n; typeof e != "function" && (e = _D(e)); for (var r = 0; r < n.length - 1; r++)e(n[r], r) || (n.length = r + 1); return n } function _D(t) { if (!t) throw new TypeError("argument is required"); var e; if (typeof t == "string") e = [t]; else if (Array.isArray(t)) e = t.slice(); else throw new TypeError("unsupported trust argument"); for (var n = 0; n < e.length; n++)t = e[n], Object.prototype.hasOwnProperty.call(yD, t) && (t = yD[t], e.splice.apply(e, [n, 1].concat(t)), n += t.length - 1); return Tce(Sce(e)) } function Sce(t) { for (var e = new Array(t.length), n = 0; n < t.length; n++)e[n] = xce(t[n]); return e } function Tce(t) { var e = t.length; return e === 0 ? Nce : e === 1 ? Rce(t[0]) : Cce(t) } function xce(t) { var e = t.lastIndexOf("/"), n = e !== -1 ? t.substring(0, e) : t; if (!f9(n)) throw new TypeError("invalid IP address: " + n); var r = d9(n); e === -1 && r.kind() === "ipv6" && r.isIPv4MappedAddress() && (r = r.toIPv4Address()); var i = r.kind() === "ipv6" ? 128 : 32, l = e !== -1 ? t.substring(e + 1, t.length) : null; if (l === null ? l = i : wce.test(l) ? l = parseInt(l, 10) : r.kind() === "ipv4" && f9(l) ? l = Ace(l) : l = null, l <= 0 || l > i) throw new TypeError("invalid range on address: " + t); return [r, l] } function Ace(t) { var e = d9(t), n = e.kind(); return n === "ipv4" ? e.prefixLengthFromSubnetMask() : null } function Oce(t, e) { if (!t) throw new TypeError("req argument is required"); if (!e) throw new TypeError("trust argument is required"); var n = vD(t, e), r = n[n.length - 1]; return r } function Nce() { return !1 } function Cce(t) { return function (n) { if (!f9(n)) return !1; for (var r = d9(n), i, l = r.kind(), s = 0; s < t.length; s++) { var a = t[s], o = a[0], u = o.kind(), c = a[1], f = r; if (l !== u) { if (u === "ipv4" && !r.isIPv4MappedAddress()) continue; i || (i = u === "ipv4" ? r.toIPv4Address() : r.toIPv4MappedAddress()), f = i } if (f.match(o, c)) return !0 } return !1 } } function Rce(t) { var e = t[0], n = e.kind(), r = n === "ipv4", i = t[1]; return function (s) { if (!f9(s)) return !1; var a = d9(s), o = a.kind(); if (o !== n) { if (r && !a.isIPv4MappedAddress()) return !1; a = r ? a.toIPv4Address() : a.toIPv4MappedAddress() } return a.match(e, i) } } }); var K4 = k((ERe, bD) => { var Ice = "2.0.0", kce = Number.MAX_SAFE_INTEGER || 9007199254740991, Dce = 16, Pce = 250, Lce = ["major", "premajor", "minor", "preminor", "patch", "prepatch", "prerelease"]; bD.exports = { MAX_LENGTH: 256, MAX_SAFE_COMPONENT_LENGTH: Dce, MAX_SAFE_BUILD_LENGTH: Pce, MAX_SAFE_INTEGER: kce, RELEASE_TYPES: Lce, SEMVER_SPEC_VERSION: Ice, FLAG_INCLUDE_PRERELEASE: 1, FLAG_LOOSE: 2 } }); var X4 = k((bRe, wD) => { var Fce = typeof process == "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...t) => console.error("SEMVER", ...t) : () => { }; wD.exports = Fce }); var y1 = k((Va, SD) => { var { MAX_SAFE_COMPONENT_LENGTH: ug, MAX_SAFE_BUILD_LENGTH: jce, MAX_LENGTH: Uce } = K4(), Mce = X4(); Va = SD.exports = {}; var $ce = Va.re = [], Bce = Va.safeRe = [], Je = Va.src = [], Ke = Va.t = {}, Hce = 0, cg = "[a-zA-Z0-9-]", Vce = [["\\s", 1], ["\\d", Uce], [cg, jce]], qce = t => { for (let [e, n] of Vce) t = t.split(`${e}*`).join(`${e}{0,${n}}`).split(`${e}+`).join(`${e}{1,${n}}`); return t }, Ct = (t, e, n) => { let r = qce(e), i = Hce++; Mce(t, i, e), Ke[t] = i, Je[i] = e, $ce[i] = new RegExp(e, n ? "g" : void 0), Bce[i] = new RegExp(r, n ? "g" : void 0) }; Ct("NUMERICIDENTIFIER", "0|[1-9]\\d*"); Ct("NUMERICIDENTIFIERLOOSE", "\\d+"); Ct("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${cg}*`); Ct("MAINVERSION", `(${Je[Ke.NUMERICIDENTIFIER]})\\.(${Je[Ke.NUMERICIDENTIFIER]})\\.(${Je[Ke.NUMERICIDENTIFIER]})`); Ct("MAINVERSIONLOOSE", `(${Je[Ke.NUMERICIDENTIFIERLOOSE]})\\.(${Je[Ke.NUMERICIDENTIFIERLOOSE]})\\.(${Je[Ke.NUMERICIDENTIFIERLOOSE]})`); Ct("PRERELEASEIDENTIFIER", `(?:${Je[Ke.NUMERICIDENTIFIER]}|${Je[Ke.NONNUMERICIDENTIFIER]})`); Ct("PRERELEASEIDENTIFIERLOOSE", `(?:${Je[Ke.NUMERICIDENTIFIERLOOSE]}|${Je[Ke.NONNUMERICIDENTIFIER]})`); Ct("PRERELEASE", `(?:-(${Je[Ke.PRERELEASEIDENTIFIER]}(?:\\.${Je[Ke.PRERELEASEIDENTIFIER]})*))`); Ct("PRERELEASELOOSE", `(?:-?(${Je[Ke.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Je[Ke.PRERELEASEIDENTIFIERLOOSE]})*))`); Ct("BUILDIDENTIFIER", `${cg}+`); Ct("BUILD", `(?:\\+(${Je[Ke.BUILDIDENTIFIER]}(?:\\.${Je[Ke.BUILDIDENTIFIER]})*))`); Ct("FULLPLAIN", `v?${Je[Ke.MAINVERSION]}${Je[Ke.PRERELEASE]}?${Je[Ke.BUILD]}?`); Ct("FULL", `^${Je[Ke.FULLPLAIN]}$`); Ct("LOOSEPLAIN", `[v=\\s]*${Je[Ke.MAINVERSIONLOOSE]}${Je[Ke.PRERELEASELOOSE]}?${Je[Ke.BUILD]}?`); Ct("LOOSE", `^${Je[Ke.LOOSEPLAIN]}$`); Ct("GTLT", "((?:<|>)?=?)"); Ct("XRANGEIDENTIFIERLOOSE", `${Je[Ke.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); Ct("XRANGEIDENTIFIER", `${Je[Ke.NUMERICIDENTIFIER]}|x|X|\\*`); Ct("XRANGEPLAIN", `[v=\\s]*(${Je[Ke.XRANGEIDENTIFIER]})(?:\\.(${Je[Ke.XRANGEIDENTIFIER]})(?:\\.(${Je[Ke.XRANGEIDENTIFIER]})(?:${Je[Ke.PRERELEASE]})?${Je[Ke.BUILD]}?)?)?`); Ct("XRANGEPLAINLOOSE", `[v=\\s]*(${Je[Ke.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Je[Ke.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Je[Ke.XRANGEIDENTIFIERLOOSE]})(?:${Je[Ke.PRERELEASELOOSE]})?${Je[Ke.BUILD]}?)?)?`); Ct("XRANGE", `^${Je[Ke.GTLT]}\\s*${Je[Ke.XRANGEPLAIN]}$`); Ct("XRANGELOOSE", `^${Je[Ke.GTLT]}\\s*${Je[Ke.XRANGEPLAINLOOSE]}$`); Ct("COERCE", `(^|[^\\d])(\\d{1,${ug}})(?:\\.(\\d{1,${ug}}))?(?:\\.(\\d{1,${ug}}))?(?:$|[^\\d])`); Ct("COERCERTL", Je[Ke.COERCE], !0); Ct("LONETILDE", "(?:~>?)"); Ct("TILDETRIM", `(\\s*)${Je[Ke.LONETILDE]}\\s+`, !0); Va.tildeTrimReplace = "$1~"; Ct("TILDE", `^${Je[Ke.LONETILDE]}${Je[Ke.XRANGEPLAIN]}$`); Ct("TILDELOOSE", `^${Je[Ke.LONETILDE]}${Je[Ke.XRANGEPLAINLOOSE]}$`); Ct("LONECARET", "(?:\\^)"); Ct("CARETTRIM", `(\\s*)${Je[Ke.LONECARET]}\\s+`, !0); Va.caretTrimReplace = "$1^"; Ct("CARET", `^${Je[Ke.LONECARET]}${Je[Ke.XRANGEPLAIN]}$`); Ct("CARETLOOSE", `^${Je[Ke.LONECARET]}${Je[Ke.XRANGEPLAINLOOSE]}$`); Ct("COMPARATORLOOSE", `^${Je[Ke.GTLT]}\\s*(${Je[Ke.LOOSEPLAIN]})$|^$`); Ct("COMPARATOR", `^${Je[Ke.GTLT]}\\s*(${Je[Ke.FULLPLAIN]})$|^$`); Ct("COMPARATORTRIM", `(\\s*)${Je[Ke.GTLT]}\\s*(${Je[Ke.LOOSEPLAIN]}|${Je[Ke.XRANGEPLAIN]})`, !0); Va.comparatorTrimReplace = "$1$2$3"; Ct("HYPHENRANGE", `^\\s*(${Je[Ke.XRANGEPLAIN]})\\s+-\\s+(${Je[Ke.XRANGEPLAIN]})\\s*$`); Ct("HYPHENRANGELOOSE", `^\\s*(${Je[Ke.XRANGEPLAINLOOSE]})\\s+-\\s+(${Je[Ke.XRANGEPLAINLOOSE]})\\s*$`); Ct("STAR", "(<|>)?=?\\s*\\*"); Ct("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); Ct("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$") }); var m9 = k((wRe, TD) => { var zce = Object.freeze({ loose: !0 }), Gce = Object.freeze({}), Jce = t => t ? typeof t != "object" ? zce : t : Gce; TD.exports = Jce }); var pg = k((SRe, OD) => { var xD = /^[0-9]+$/, AD = (t, e) => { let n = xD.test(t), r = xD.test(e); return n && r && (t = +t, e = +e), t === e ? 0 : n && !r ? -1 : r && !n ? 1 : t < e ? -1 : 1 }, Kce = (t, e) => AD(e, t); OD.exports = { compareIdentifiers: AD, rcompareIdentifiers: Kce } }); var Hi = k((TRe, ID) => { var y9 = X4(), { MAX_LENGTH: ND, MAX_SAFE_INTEGER: g9 } = K4(), { safeRe: CD, t: RD } = y1(), Xce = m9(), { compareIdentifiers: g1 } = pg(), fg = class t { constructor(e, n) { if (n = Xce(n), e instanceof t) { if (e.loose === !!n.loose && e.includePrerelease === !!n.includePrerelease) return e; e = e.version } else if (typeof e != "string") throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`); if (e.length > ND) throw new TypeError(`version is longer than ${ND} characters`); y9("SemVer", e, n), this.options = n, this.loose = !!n.loose, this.includePrerelease = !!n.includePrerelease; let r = e.trim().match(n.loose ? CD[RD.LOOSE] : CD[RD.FULL]); if (!r) throw new TypeError(`Invalid Version: ${e}`); if (this.raw = e, this.major = +r[1], this.minor = +r[2], this.patch = +r[3], this.major > g9 || this.major < 0) throw new TypeError("Invalid major version"); if (this.minor > g9 || this.minor < 0) throw new TypeError("Invalid minor version"); if (this.patch > g9 || this.patch < 0) throw new TypeError("Invalid patch version"); r[4] ? this.prerelease = r[4].split(".").map(i => { if (/^[0-9]+$/.test(i)) { let l = +i; if (l >= 0 && l < g9) return l } return i }) : this.prerelease = [], this.build = r[5] ? r[5].split(".") : [], this.format() } format() { return this.version = `${this.major}.${this.minor}.${this.patch}`, this.prerelease.length && (this.version += `-${this.prerelease.join(".")}`), this.version } toString() { return this.version } compare(e) { if (y9("SemVer.compare", this.version, this.options, e), !(e instanceof t)) { if (typeof e == "string" && e === this.version) return 0; e = new t(e, this.options) } return e.version === this.version ? 0 : this.compareMain(e) || this.comparePre(e) } compareMain(e) { return e instanceof t || (e = new t(e, this.options)), g1(this.major, e.major) || g1(this.minor, e.minor) || g1(this.patch, e.patch) } comparePre(e) { if (e instanceof t || (e = new t(e, this.options)), this.prerelease.length && !e.prerelease.length) return -1; if (!this.prerelease.length && e.prerelease.length) return 1; if (!this.prerelease.length && !e.prerelease.length) return 0; let n = 0; do { let r = this.prerelease[n], i = e.prerelease[n]; if (y9("prerelease compare", n, r, i), r === void 0 && i === void 0) return 0; if (i === void 0) return 1; if (r === void 0) return -1; if (r === i) continue; return g1(r, i) } while (++n) } compareBuild(e) { e instanceof t || (e = new t(e, this.options)); let n = 0; do { let r = this.build[n], i = e.build[n]; if (y9("prerelease compare", n, r, i), r === void 0 && i === void 0) return 0; if (i === void 0) return 1; if (r === void 0) return -1; if (r === i) continue; return g1(r, i) } while (++n) } inc(e, n, r) { switch (e) { case "premajor": this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc("pre", n, r); break; case "preminor": this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc("pre", n, r); break; case "prepatch": this.prerelease.length = 0, this.inc("patch", n, r), this.inc("pre", n, r); break; case "prerelease": this.prerelease.length === 0 && this.inc("patch", n, r), this.inc("pre", n, r); break; case "major": (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = []; break; case "minor": (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = []; break; case "patch": this.prerelease.length === 0 && this.patch++, this.prerelease = []; break; case "pre": { let i = Number(r) ? 1 : 0; if (!n && r === !1) throw new Error("invalid increment argument: identifier is empty"); if (this.prerelease.length === 0) this.prerelease = [i]; else { let l = this.prerelease.length; for (; --l >= 0;)typeof this.prerelease[l] == "number" && (this.prerelease[l]++, l = -2); if (l === -1) { if (n === this.prerelease.join(".") && r === !1) throw new Error("invalid increment argument: identifier already exists"); this.prerelease.push(i) } } if (n) { let l = [n, i]; r === !1 && (l = [n]), g1(this.prerelease[0], n) === 0 ? isNaN(this.prerelease[1]) && (this.prerelease = l) : this.prerelease = l } break } default: throw new Error(`invalid increment argument: ${e}`) }return this.raw = this.format(), this.build.length && (this.raw += `+${this.build.join(".")}`), this } }; ID.exports = fg }); var P3 = k((xRe, DD) => { var kD = Hi(), Wce = (t, e, n = !1) => { if (t instanceof kD) return t; try { return new kD(t, e) } catch (r) { if (!n) return null; throw r } }; DD.exports = Wce }); var LD = k((ARe, PD) => { var Yce = P3(), Qce = (t, e) => { let n = Yce(t, e); return n ? n.version : null }; PD.exports = Qce }); var jD = k((ORe, FD) => { var Zce = P3(), e5e = (t, e) => { let n = Zce(t.trim().replace(/^[=v]+/, ""), e); return n ? n.version : null }; FD.exports = e5e }); var $D = k((NRe, MD) => { var UD = Hi(), t5e = (t, e, n, r, i) => { typeof n == "string" && (i = r, r = n, n = void 0); try { return new UD(t instanceof UD ? t.version : t, n).inc(e, r, i).version } catch { return null } }; MD.exports = t5e }); var VD = k((CRe, HD) => { var BD = P3(), n5e = (t, e) => { let n = BD(t, null, !0), r = BD(e, null, !0), i = n.compare(r); if (i === 0) return null; let l = i > 0, s = l ? n : r, a = l ? r : n, o = !!s.prerelease.length; if (!!a.prerelease.length && !o) return !a.patch && !a.minor ? "major" : s.patch ? "patch" : s.minor ? "minor" : "major"; let c = o ? "pre" : ""; return n.major !== r.major ? c + "major" : n.minor !== r.minor ? c + "minor" : n.patch !== r.patch ? c + "patch" : "prerelease" }; HD.exports = n5e }); var zD = k((RRe, qD) => { var r5e = Hi(), i5e = (t, e) => new r5e(t, e).major; qD.exports = i5e }); var JD = k((IRe, GD) => { var l5e = Hi(), s5e = (t, e) => new l5e(t, e).minor; GD.exports = s5e }); var XD = k((kRe, KD) => { var a5e = Hi(), o5e = (t, e) => new a5e(t, e).patch; KD.exports = o5e }); var YD = k((DRe, WD) => { var u5e = P3(), c5e = (t, e) => { let n = u5e(t, e); return n && n.prerelease.length ? n.prerelease : null }; WD.exports = c5e }); var es = k((PRe, ZD) => { var QD = Hi(), p5e = (t, e, n) => new QD(t, n).compare(new QD(e, n)); ZD.exports = p5e }); var tP = k((LRe, eP) => { var f5e = es(), d5e = (t, e, n) => f5e(e, t, n); eP.exports = d5e }); var rP = k((FRe, nP) => { var h5e = es(), m5e = (t, e) => h5e(t, e, !0); nP.exports = m5e }); var v9 = k((jRe, lP) => { var iP = Hi(), y5e = (t, e, n) => { let r = new iP(t, n), i = new iP(e, n); return r.compare(i) || r.compareBuild(i) }; lP.exports = y5e }); var aP = k((URe, sP) => { var g5e = v9(), v5e = (t, e) => t.sort((n, r) => g5e(n, r, e)); sP.exports = v5e }); var uP = k((MRe, oP) => { var _5e = v9(), E5e = (t, e) => t.sort((n, r) => _5e(r, n, e)); oP.exports = E5e }); var W4 = k(($Re, cP) => { var b5e = es(), w5e = (t, e, n) => b5e(t, e, n) > 0; cP.exports = w5e }); var _9 = k((BRe, pP) => { var S5e = es(), T5e = (t, e, n) => S5e(t, e, n) < 0; pP.exports = T5e }); var dg = k((HRe, fP) => { var x5e = es(), A5e = (t, e, n) => x5e(t, e, n) === 0; fP.exports = A5e }); var hg = k((VRe, dP) => { var O5e = es(), N5e = (t, e, n) => O5e(t, e, n) !== 0; dP.exports = N5e }); var E9 = k((qRe, hP) => { var C5e = es(), R5e = (t, e, n) => C5e(t, e, n) >= 0; hP.exports = R5e }); var b9 = k((zRe, mP) => { var I5e = es(), k5e = (t, e, n) => I5e(t, e, n) <= 0; mP.exports = k5e }); var mg = k((GRe, yP) => { var D5e = dg(), P5e = hg(), L5e = W4(), F5e = E9(), j5e = _9(), U5e = b9(), M5e = (t, e, n, r) => { switch (e) { case "===": return typeof t == "object" && (t = t.version), typeof n == "object" && (n = n.version), t === n; case "!==": return typeof t == "object" && (t = t.version), typeof n == "object" && (n = n.version), t !== n; case "": case "=": case "==": return D5e(t, n, r); case "!=": return P5e(t, n, r); case ">": return L5e(t, n, r); case ">=": return F5e(t, n, r); case "<": return j5e(t, n, r); case "<=": return U5e(t, n, r); default: throw new TypeError(`Invalid operator: ${e}`) } }; yP.exports = M5e }); var vP = k((JRe, gP) => { var $5e = Hi(), B5e = P3(), { safeRe: w9, t: S9 } = y1(), H5e = (t, e) => { if (t instanceof $5e) return t; if (typeof t == "number" && (t = String(t)), typeof t != "string") return null; e = e || {}; let n = null; if (!e.rtl) n = t.match(w9[S9.COERCE]); else { let r; for (; (r = w9[S9.COERCERTL].exec(t)) && (!n || n.index + n[0].length !== t.length);)(!n || r.index + r[0].length !== n.index + n[0].length) && (n = r), w9[S9.COERCERTL].lastIndex = r.index + r[1].length + r[2].length; w9[S9.COERCERTL].lastIndex = -1 } return n === null ? null : B5e(`${n[2]}.${n[3] || "0"}.${n[4] || "0"}`, e) }; gP.exports = H5e }); var EP = k((KRe, _P) => { "use strict"; _P.exports = function (t) { t.prototype[Symbol.iterator] = function* () { for (let e = this.head; e; e = e.next)yield e.value } } }); var wP = k((XRe, bP) => { "use strict"; bP.exports = on; on.Node = L3; on.create = on; function on(t) { var e = this; if (e instanceof on || (e = new on), e.tail = null, e.head = null, e.length = 0, t && typeof t.forEach == "function") t.forEach(function (i) { e.push(i) }); else if (arguments.length > 0) for (var n = 0, r = arguments.length; n < r; n++)e.push(arguments[n]); return e } on.prototype.removeNode = function (t) { if (t.list !== this) throw new Error("removing node which does not belong to this list"); var e = t.next, n = t.prev; return e && (e.prev = n), n && (n.next = e), t === this.head && (this.head = e), t === this.tail && (this.tail = n), t.list.length--, t.next = null, t.prev = null, t.list = null, e }; on.prototype.unshiftNode = function (t) { if (t !== this.head) { t.list && t.list.removeNode(t); var e = this.head; t.list = this, t.next = e, e && (e.prev = t), this.head = t, this.tail || (this.tail = t), this.length++ } }; on.prototype.pushNode = function (t) { if (t !== this.tail) { t.list && t.list.removeNode(t); var e = this.tail; t.list = this, t.prev = e, e && (e.next = t), this.tail = t, this.head || (this.head = t), this.length++ } }; on.prototype.push = function () { for (var t = 0, e = arguments.length; t < e; t++)q5e(this, arguments[t]); return this.length }; on.prototype.unshift = function () { for (var t = 0, e = arguments.length; t < e; t++)z5e(this, arguments[t]); return this.length }; on.prototype.pop = function () { if (this.tail) { var t = this.tail.value; return this.tail = this.tail.prev, this.tail ? this.tail.next = null : this.head = null, this.length--, t } }; on.prototype.shift = function () { if (this.head) { var t = this.head.value; return this.head = this.head.next, this.head ? this.head.prev = null : this.tail = null, this.length--, t } }; on.prototype.forEach = function (t, e) { e = e || this; for (var n = this.head, r = 0; n !== null; r++)t.call(e, n.value, r, this), n = n.next }; on.prototype.forEachReverse = function (t, e) { e = e || this; for (var n = this.tail, r = this.length - 1; n !== null; r--)t.call(e, n.value, r, this), n = n.prev }; on.prototype.get = function (t) { for (var e = 0, n = this.head; n !== null && e < t; e++)n = n.next; if (e === t && n !== null) return n.value }; on.prototype.getReverse = function (t) { for (var e = 0, n = this.tail; n !== null && e < t; e++)n = n.prev; if (e === t && n !== null) return n.value }; on.prototype.map = function (t, e) { e = e || this; for (var n = new on, r = this.head; r !== null;)n.push(t.call(e, r.value, this)), r = r.next; return n }; on.prototype.mapReverse = function (t, e) { e = e || this; for (var n = new on, r = this.tail; r !== null;)n.push(t.call(e, r.value, this)), r = r.prev; return n }; on.prototype.reduce = function (t, e) { var n, r = this.head; if (arguments.length > 1) n = e; else if (this.head) r = this.head.next, n = this.head.value; else throw new TypeError("Reduce of empty list with no initial value"); for (var i = 0; r !== null; i++)n = t(n, r.value, i), r = r.next; return n }; on.prototype.reduceReverse = function (t, e) { var n, r = this.tail; if (arguments.length > 1) n = e; else if (this.tail) r = this.tail.prev, n = this.tail.value; else throw new TypeError("Reduce of empty list with no initial value"); for (var i = this.length - 1; r !== null; i--)n = t(n, r.value, i), r = r.prev; return n }; on.prototype.toArray = function () { for (var t = new Array(this.length), e = 0, n = this.head; n !== null; e++)t[e] = n.value, n = n.next; return t }; on.prototype.toArrayReverse = function () { for (var t = new Array(this.length), e = 0, n = this.tail; n !== null; e++)t[e] = n.value, n = n.prev; return t }; on.prototype.slice = function (t, e) { e = e || this.length, e < 0 && (e += this.length), t = t || 0, t < 0 && (t += this.length); var n = new on; if (e < t || e < 0) return n; t < 0 && (t = 0), e > this.length && (e = this.length); for (var r = 0, i = this.head; i !== null && r < t; r++)i = i.next; for (; i !== null && r < e; r++, i = i.next)n.push(i.value); return n }; on.prototype.sliceReverse = function (t, e) { e = e || this.length, e < 0 && (e += this.length), t = t || 0, t < 0 && (t += this.length); var n = new on; if (e < t || e < 0) return n; t < 0 && (t = 0), e > this.length && (e = this.length); for (var r = this.length, i = this.tail; i !== null && r > e; r--)i = i.prev; for (; i !== null && r > t; r--, i = i.prev)n.push(i.value); return n }; on.prototype.splice = function (t, e, ...n) { t > this.length && (t = this.length - 1), t < 0 && (t = this.length + t); for (var r = 0, i = this.head; i !== null && r < t; r++)i = i.next; for (var l = [], r = 0; i && r < e; r++)l.push(i.value), i = this.removeNode(i); i === null && (i = this.tail), i !== this.head && i !== this.tail && (i = i.prev); for (var r = 0; r < n.length; r++)i = V5e(this, i, n[r]); return l }; on.prototype.reverse = function () { for (var t = this.head, e = this.tail, n = t; n !== null; n = n.prev) { var r = n.prev; n.prev = n.next, n.next = r } return this.head = e, this.tail = t, this }; function V5e(t, e, n) { var r = e === t.head ? new L3(n, null, e, t) : new L3(n, e, e.next, t); return r.next === null && (t.tail = r), r.prev === null && (t.head = r), t.length++, r } function q5e(t, e) { t.tail = new L3(e, t.tail, null, t), t.head || (t.head = t.tail), t.length++ } function z5e(t, e) { t.head = new L3(e, null, t.head, t), t.tail || (t.tail = t.head), t.length++ } function L3(t, e, n, r) { if (!(this instanceof L3)) return new L3(t, e, n, r); this.list = r, this.value = t, e ? (e.next = this, this.prev = e) : this.prev = null, n ? (n.prev = this, this.next = n) : this.next = null } try { EP()(on) } catch { } }); var OP = k((WRe, AP) => { "use strict"; var G5e = wP(), F3 = Symbol("max"), za = Symbol("length"), v1 = Symbol("lengthCalculator"), Q4 = Symbol("allowStale"), j3 = Symbol("maxAge"), qa = Symbol("dispose"), SP = Symbol("noDisposeOnSet"), mi = Symbol("lruList"), Ts = Symbol("cache"), xP = Symbol("updateAgeOnGet"), yg = () => 1, vg = class { constructor(e) { if (typeof e == "number" && (e = { max: e }), e || (e = {}), e.max && (typeof e.max != "number" || e.max < 0)) throw new TypeError("max must be a non-negative number"); let n = this[F3] = e.max || 1 / 0, r = e.length || yg; if (this[v1] = typeof r != "function" ? yg : r, this[Q4] = e.stale || !1, e.maxAge && typeof e.maxAge != "number") throw new TypeError("maxAge must be a number"); this[j3] = e.maxAge || 0, this[qa] = e.dispose, this[SP] = e.noDisposeOnSet || !1, this[xP] = e.updateAgeOnGet || !1, this.reset() } set max(e) { if (typeof e != "number" || e < 0) throw new TypeError("max must be a non-negative number"); this[F3] = e || 1 / 0, Y4(this) } get max() { return this[F3] } set allowStale(e) { this[Q4] = !!e } get allowStale() { return this[Q4] } set maxAge(e) { if (typeof e != "number") throw new TypeError("maxAge must be a non-negative number"); this[j3] = e, Y4(this) } get maxAge() { return this[j3] } set lengthCalculator(e) { typeof e != "function" && (e = yg), e !== this[v1] && (this[v1] = e, this[za] = 0, this[mi].forEach(n => { n.length = this[v1](n.value, n.key), this[za] += n.length })), Y4(this) } get lengthCalculator() { return this[v1] } get length() { return this[za] } get itemCount() { return this[mi].length } rforEach(e, n) { n = n || this; for (let r = this[mi].tail; r !== null;) { let i = r.prev; TP(this, e, r, n), r = i } } forEach(e, n) { n = n || this; for (let r = this[mi].head; r !== null;) { let i = r.next; TP(this, e, r, n), r = i } } keys() { return this[mi].toArray().map(e => e.key) } values() { return this[mi].toArray().map(e => e.value) } reset() { this[qa] && this[mi] && this[mi].length && this[mi].forEach(e => this[qa](e.key, e.value)), this[Ts] = new Map, this[mi] = new G5e, this[za] = 0 } dump() { return this[mi].map(e => T9(this, e) ? !1 : { k: e.key, v: e.value, e: e.now + (e.maxAge || 0) }).toArray().filter(e => e) } dumpLru() { return this[mi] } set(e, n, r) { if (r = r || this[j3], r && typeof r != "number") throw new TypeError("maxAge must be a number"); let i = r ? Date.now() : 0, l = this[v1](n, e); if (this[Ts].has(e)) { if (l > this[F3]) return _1(this, this[Ts].get(e)), !1; let o = this[Ts].get(e).value; return this[qa] && (this[SP] || this[qa](e, o.value)), o.now = i, o.maxAge = r, o.value = n, this[za] += l - o.length, o.length = l, this.get(e), Y4(this), !0 } let s = new _g(e, n, l, i, r); return s.length > this[F3] ? (this[qa] && this[qa](e, n), !1) : (this[za] += s.length, this[mi].unshift(s), this[Ts].set(e, this[mi].head), Y4(this), !0) } has(e) { if (!this[Ts].has(e)) return !1; let n = this[Ts].get(e).value; return !T9(this, n) } get(e) { return gg(this, e, !0) } peek(e) { return gg(this, e, !1) } pop() { let e = this[mi].tail; return e ? (_1(this, e), e.value) : null } del(e) { _1(this, this[Ts].get(e)) } load(e) { this.reset(); let n = Date.now(); for (let r = e.length - 1; r >= 0; r--) { let i = e[r], l = i.e || 0; if (l === 0) this.set(i.k, i.v); else { let s = l - n; s > 0 && this.set(i.k, i.v, s) } } } prune() { this[Ts].forEach((e, n) => gg(this, n, !1)) } }, gg = (t, e, n) => { let r = t[Ts].get(e); if (r) { let i = r.value; if (T9(t, i)) { if (_1(t, r), !t[Q4]) return } else n && (t[xP] && (r.value.now = Date.now()), t[mi].unshiftNode(r)); return i.value } }, T9 = (t, e) => { if (!e || !e.maxAge && !t[j3]) return !1; let n = Date.now() - e.now; return e.maxAge ? n > e.maxAge : t[j3] && n > t[j3] }, Y4 = t => { if (t[za] > t[F3]) for (let e = t[mi].tail; t[za] > t[F3] && e !== null;) { let n = e.prev; _1(t, e), e = n } }, _1 = (t, e) => { if (e) { let n = e.value; t[qa] && t[qa](n.key, n.value), t[za] -= n.length, t[Ts].delete(n.key), t[mi].removeNode(e) } }, _g = class { constructor(e, n, r, i, l) { this.key = e, this.value = n, this.length = r, this.now = i, this.maxAge = l || 0 } }, TP = (t, e, n, r) => { let i = n.value; T9(t, i) && (_1(t, n), t[Q4] || (i = void 0)), i && e.call(r, i.value, i.key, t) }; AP.exports = vg }); var ts = k((YRe, IP) => { var Eg = class t { constructor(e, n) { if (n = K5e(n), e instanceof t) return e.loose === !!n.loose && e.includePrerelease === !!n.includePrerelease ? e : new t(e.raw, n); if (e instanceof bg) return this.raw = e.value, this.set = [[e]], this.format(), this; if (this.options = n, this.loose = !!n.loose, this.includePrerelease = !!n.includePrerelease, this.raw = e.trim().split(/\s+/).join(" "), this.set = this.raw.split("||").map(r => this.parseRange(r.trim())).filter(r => r.length), !this.set.length) throw new TypeError(`Invalid SemVer Range: ${this.raw}`); if (this.set.length > 1) { let r = this.set[0]; if (this.set = this.set.filter(i => !CP(i[0])), this.set.length === 0) this.set = [r]; else if (this.set.length > 1) { for (let i of this.set) if (i.length === 1 && t6e(i[0])) { this.set = [i]; break } } } this.format() } format() { return this.range = this.set.map(e => e.join(" ").trim()).join("||").trim(), this.range } toString() { return this.range } parseRange(e) { let r = ((this.options.includePrerelease && Z5e) | (this.options.loose && e6e)) + ":" + e, i = NP.get(r); if (i) return i; let l = this.options.loose, s = l ? gl[nl.HYPHENRANGELOOSE] : gl[nl.HYPHENRANGE]; e = e.replace(s, p6e(this.options.includePrerelease)), fr("hyphen replace", e), e = e.replace(gl[nl.COMPARATORTRIM], W5e), fr("comparator trim", e), e = e.replace(gl[nl.TILDETRIM], Y5e), fr("tilde trim", e), e = e.replace(gl[nl.CARETTRIM], Q5e), fr("caret trim", e); let a = e.split(" ").map(f => n6e(f, this.options)).join(" ").split(/\s+/).map(f => c6e(f, this.options)); l && (a = a.filter(f => (fr("loose invalid filter", f, this.options), !!f.match(gl[nl.COMPARATORLOOSE])))), fr("range list", a); let o = new Map, u = a.map(f => new bg(f, this.options)); for (let f of u) { if (CP(f)) return [f]; o.set(f.value, f) } o.size > 1 && o.has("") && o.delete(""); let c = [...o.values()]; return NP.set(r, c), c } intersects(e, n) { if (!(e instanceof t)) throw new TypeError("a Range is required"); return this.set.some(r => RP(r, n) && e.set.some(i => RP(i, n) && r.every(l => i.every(s => l.intersects(s, n))))) } test(e) { if (!e) return !1; if (typeof e == "string") try { e = new X5e(e, this.options) } catch { return !1 } for (let n = 0; n < this.set.length; n++)if (f6e(this.set[n], e, this.options)) return !0; return !1 } }; IP.exports = Eg; var J5e = OP(), NP = new J5e({ max: 1e3 }), K5e = m9(), bg = Z4(), fr = X4(), X5e = Hi(), { safeRe: gl, t: nl, comparatorTrimReplace: W5e, tildeTrimReplace: Y5e, caretTrimReplace: Q5e } = y1(), { FLAG_INCLUDE_PRERELEASE: Z5e, FLAG_LOOSE: e6e } = K4(), CP = t => t.value === "<0.0.0-0", t6e = t => t.value === "", RP = (t, e) => { let n = !0, r = t.slice(), i = r.pop(); for (; n && r.length;)n = r.every(l => i.intersects(l, e)), i = r.pop(); return n }, n6e = (t, e) => (fr("comp", t, e), t = l6e(t, e), fr("caret", t), t = r6e(t, e), fr("tildes", t), t = a6e(t, e), fr("xrange", t), t = u6e(t, e), fr("stars", t), t), rl = t => !t || t.toLowerCase() === "x" || t === "*", r6e = (t, e) => t.trim().split(/\s+/).map(n => i6e(n, e)).join(" "), i6e = (t, e) => { let n = e.loose ? gl[nl.TILDELOOSE] : gl[nl.TILDE]; return t.replace(n, (r, i, l, s, a) => { fr("tilde", t, r, i, l, s, a); let o; return rl(i) ? o = "" : rl(l) ? o = `>=${i}.0.0 <${+i + 1}.0.0-0` : rl(s) ? o = `>=${i}.${l}.0 <${i}.${+l + 1}.0-0` : a ? (fr("replaceTilde pr", a), o = `>=${i}.${l}.${s}-${a} <${i}.${+l + 1}.0-0`) : o = `>=${i}.${l}.${s} <${i}.${+l + 1}.0-0`, fr("tilde return", o), o }) }, l6e = (t, e) => t.trim().split(/\s+/).map(n => s6e(n, e)).join(" "), s6e = (t, e) => { fr("caret", t, e); let n = e.loose ? gl[nl.CARETLOOSE] : gl[nl.CARET], r = e.includePrerelease ? "-0" : ""; return t.replace(n, (i, l, s, a, o) => { fr("caret", t, i, l, s, a, o); let u; return rl(l) ? u = "" : rl(s) ? u = `>=${l}.0.0${r} <${+l + 1}.0.0-0` : rl(a) ? l === "0" ? u = `>=${l}.${s}.0${r} <${l}.${+s + 1}.0-0` : u = `>=${l}.${s}.0${r} <${+l + 1}.0.0-0` : o ? (fr("replaceCaret pr", o), l === "0" ? s === "0" ? u = `>=${l}.${s}.${a}-${o} <${l}.${s}.${+a + 1}-0` : u = `>=${l}.${s}.${a}-${o} <${l}.${+s + 1}.0-0` : u = `>=${l}.${s}.${a}-${o} <${+l + 1}.0.0-0`) : (fr("no pr"), l === "0" ? s === "0" ? u = `>=${l}.${s}.${a}${r} <${l}.${s}.${+a + 1}-0` : u = `>=${l}.${s}.${a}${r} <${l}.${+s + 1}.0-0` : u = `>=${l}.${s}.${a} <${+l + 1}.0.0-0`), fr("caret return", u), u }) }, a6e = (t, e) => (fr("replaceXRanges", t, e), t.split(/\s+/).map(n => o6e(n, e)).join(" ")), o6e = (t, e) => { t = t.trim(); let n = e.loose ? gl[nl.XRANGELOOSE] : gl[nl.XRANGE]; return t.replace(n, (r, i, l, s, a, o) => { fr("xRange", t, r, i, l, s, a, o); let u = rl(l), c = u || rl(s), f = c || rl(a), m = f; return i === "=" && m && (i = ""), o = e.includePrerelease ? "-0" : "", u ? i === ">" || i === "<" ? r = "<0.0.0-0" : r = "*" : i && m ? (c && (s = 0), a = 0, i === ">" ? (i = ">=", c ? (l = +l + 1, s = 0, a = 0) : (s = +s + 1, a = 0)) : i === "<=" && (i = "<", c ? l = +l + 1 : s = +s + 1), i === "<" && (o = "-0"), r = `${i + l}.${s}.${a}${o}`) : c ? r = `>=${l}.0.0${o} <${+l + 1}.0.0-0` : f && (r = `>=${l}.${s}.0${o} <${l}.${+s + 1}.0-0`), fr("xRange return", r), r }) }, u6e = (t, e) => (fr("replaceStars", t, e), t.trim().replace(gl[nl.STAR], "")), c6e = (t, e) => (fr("replaceGTE0", t, e), t.trim().replace(gl[e.includePrerelease ? nl.GTE0PRE : nl.GTE0], "")), p6e = t => (e, n, r, i, l, s, a, o, u, c, f, m, d) => (rl(r) ? n = "" : rl(i) ? n = `>=${r}.0.0${t ? "-0" : ""}` : rl(l) ? n = `>=${r}.${i}.0${t ? "-0" : ""}` : s ? n = `>=${n}` : n = `>=${n}${t ? "-0" : ""}`, rl(u) ? o = "" : rl(c) ? o = `<${+u + 1}.0.0-0` : rl(f) ? o = `<${u}.${+c + 1}.0-0` : m ? o = `<=${u}.${c}.${f}-${m}` : t ? o = `<${u}.${c}.${+f + 1}-0` : o = `<=${o}`, `${n} ${o}`.trim()), f6e = (t, e, n) => { for (let r = 0; r < t.length; r++)if (!t[r].test(e)) return !1; if (e.prerelease.length && !n.includePrerelease) { for (let r = 0; r < t.length; r++)if (fr(t[r].semver), t[r].semver !== bg.ANY && t[r].semver.prerelease.length > 0) { let i = t[r].semver; if (i.major === e.major && i.minor === e.minor && i.patch === e.patch) return !0 } return !1 } return !0 } }); var Z4 = k((QRe, jP) => { var ec = Symbol("SemVer ANY"), Tg = class t { static get ANY() { return ec } constructor(e, n) { if (n = kP(n), e instanceof t) { if (e.loose === !!n.loose) return e; e = e.value } e = e.trim().split(/\s+/).join(" "), Sg("comparator", e, n), this.options = n, this.loose = !!n.loose, this.parse(e), this.semver === ec ? this.value = "" : this.value = this.operator + this.semver.version, Sg("comp", this) } parse(e) { let n = this.options.loose ? DP[PP.COMPARATORLOOSE] : DP[PP.COMPARATOR], r = e.match(n); if (!r) throw new TypeError(`Invalid comparator: ${e}`); this.operator = r[1] !== void 0 ? r[1] : "", this.operator === "=" && (this.operator = ""), r[2] ? this.semver = new LP(r[2], this.options.loose) : this.semver = ec } toString() { return this.value } test(e) { if (Sg("Comparator.test", e, this.options.loose), this.semver === ec || e === ec) return !0; if (typeof e == "string") try { e = new LP(e, this.options) } catch { return !1 } return wg(e, this.operator, this.semver, this.options) } intersects(e, n) { if (!(e instanceof t)) throw new TypeError("a Comparator is required"); return this.operator === "" ? this.value === "" ? !0 : new FP(e.value, n).test(this.value) : e.operator === "" ? e.value === "" ? !0 : new FP(this.value, n).test(e.semver) : (n = kP(n), n.includePrerelease && (this.value === "<0.0.0-0" || e.value === "<0.0.0-0") || !n.includePrerelease && (this.value.startsWith("<0.0.0") || e.value.startsWith("<0.0.0")) ? !1 : !!(this.operator.startsWith(">") && e.operator.startsWith(">") || this.operator.startsWith("<") && e.operator.startsWith("<") || this.semver.version === e.semver.version && this.operator.includes("=") && e.operator.includes("=") || wg(this.semver, "<", e.semver, n) && this.operator.startsWith(">") && e.operator.startsWith("<") || wg(this.semver, ">", e.semver, n) && this.operator.startsWith("<") && e.operator.startsWith(">"))) } }; jP.exports = Tg; var kP = m9(), { safeRe: DP, t: PP } = y1(), wg = mg(), Sg = X4(), LP = Hi(), FP = ts() }); var tc = k((ZRe, UP) => { var d6e = ts(), h6e = (t, e, n) => { try { e = new d6e(e, n) } catch { return !1 } return e.test(t) }; UP.exports = h6e }); var $P = k((eIe, MP) => { var m6e = ts(), y6e = (t, e) => new m6e(t, e).set.map(n => n.map(r => r.value).join(" ").trim().split(" ")); MP.exports = y6e }); var HP = k((tIe, BP) => { var g6e = Hi(), v6e = ts(), _6e = (t, e, n) => { let r = null, i = null, l = null; try { l = new v6e(e, n) } catch { return null } return t.forEach(s => { l.test(s) && (!r || i.compare(s) === -1) && (r = s, i = new g6e(r, n)) }), r }; BP.exports = _6e }); var qP = k((nIe, VP) => { var E6e = Hi(), b6e = ts(), w6e = (t, e, n) => { let r = null, i = null, l = null; try { l = new b6e(e, n) } catch { return null } return t.forEach(s => { l.test(s) && (!r || i.compare(s) === 1) && (r = s, i = new E6e(r, n)) }), r }; VP.exports = w6e }); var JP = k((rIe, GP) => { var xg = Hi(), S6e = ts(), zP = W4(), T6e = (t, e) => { t = new S6e(t, e); let n = new xg("0.0.0"); if (t.test(n) || (n = new xg("0.0.0-0"), t.test(n))) return n; n = null; for (let r = 0; r < t.set.length; ++r) { let i = t.set[r], l = null; i.forEach(s => { let a = new xg(s.semver.version); switch (s.operator) { case ">": a.prerelease.length === 0 ? a.patch++ : a.prerelease.push(0), a.raw = a.format(); case "": case ">=": (!l || zP(a, l)) && (l = a); break; case "<": case "<=": break; default: throw new Error(`Unexpected operation: ${s.operator}`) } }), l && (!n || zP(n, l)) && (n = l) } return n && t.test(n) ? n : null }; GP.exports = T6e }); var XP = k((iIe, KP) => { var x6e = ts(), A6e = (t, e) => { try { return new x6e(t, e).range || "*" } catch { return null } }; KP.exports = A6e }); var x9 = k((lIe, ZP) => { var O6e = Hi(), QP = Z4(), { ANY: N6e } = QP, C6e = ts(), R6e = tc(), WP = W4(), YP = _9(), I6e = b9(), k6e = E9(), D6e = (t, e, n, r) => { t = new O6e(t, r), e = new C6e(e, r); let i, l, s, a, o; switch (n) { case ">": i = WP, l = I6e, s = YP, a = ">", o = ">="; break; case "<": i = YP, l = k6e, s = WP, a = "<", o = "<="; break; default: throw new TypeError('Must provide a hilo val of "<" or ">"') }if (R6e(t, e, r)) return !1; for (let u = 0; u < e.set.length; ++u) { let c = e.set[u], f = null, m = null; if (c.forEach(d => { d.semver === N6e && (d = new QP(">=0.0.0")), f = f || d, m = m || d, i(d.semver, f.semver, r) ? f = d : s(d.semver, m.semver, r) && (m = d) }), f.operator === a || f.operator === o || (!m.operator || m.operator === a) && l(t, m.semver)) return !1; if (m.operator === o && s(t, m.semver)) return !1 } return !0 }; ZP.exports = D6e }); var tL = k((sIe, eL) => { var P6e = x9(), L6e = (t, e, n) => P6e(t, e, ">", n); eL.exports = L6e }); var rL = k((aIe, nL) => { var F6e = x9(), j6e = (t, e, n) => F6e(t, e, "<", n); nL.exports = j6e }); var sL = k((oIe, lL) => { var iL = ts(), U6e = (t, e, n) => (t = new iL(t, n), e = new iL(e, n), t.intersects(e, n)); lL.exports = U6e }); var oL = k((uIe, aL) => { var M6e = tc(), $6e = es(); aL.exports = (t, e, n) => { let r = [], i = null, l = null, s = t.sort((c, f) => $6e(c, f, n)); for (let c of s) M6e(c, e, n) ? (l = c, i || (i = c)) : (l && r.push([i, l]), l = null, i = null); i && r.push([i, null]); let a = []; for (let [c, f] of r) c === f ? a.push(c) : !f && c === s[0] ? a.push("*") : f ? c === s[0] ? a.push(`<=${f}`) : a.push(`${c} - ${f}`) : a.push(`>=${c}`); let o = a.join(" || "), u = typeof e.raw == "string" ? e.raw : String(e); return o.length < u.length ? o : e } }); var hL = k((cIe, dL) => { var uL = ts(), Og = Z4(), { ANY: Ag } = Og, nc = tc(), Ng = es(), B6e = (t, e, n = {}) => { if (t === e) return !0; t = new uL(t, n), e = new uL(e, n); let r = !1; e: for (let i of t.set) { for (let l of e.set) { let s = V6e(i, l, n); if (r = r || s !== null, s) continue e } if (r) return !1 } return !0 }, H6e = [new Og(">=0.0.0-0")], cL = [new Og(">=0.0.0")], V6e = (t, e, n) => { if (t === e) return !0; if (t.length === 1 && t[0].semver === Ag) { if (e.length === 1 && e[0].semver === Ag) return !0; n.includePrerelease ? t = H6e : t = cL } if (e.length === 1 && e[0].semver === Ag) { if (n.includePrerelease) return !0; e = cL } let r = new Set, i, l; for (let d of t) d.operator === ">" || d.operator === ">=" ? i = pL(i, d, n) : d.operator === "<" || d.operator === "<=" ? l = fL(l, d, n) : r.add(d.semver); if (r.size > 1) return null; let s; if (i && l) { if (s = Ng(i.semver, l.semver, n), s > 0) return null; if (s === 0 && (i.operator !== ">=" || l.operator !== "<=")) return null } for (let d of r) { if (i && !nc(d, String(i), n) || l && !nc(d, String(l), n)) return null; for (let y of e) if (!nc(d, String(y), n)) return !1; return !0 } let a, o, u, c, f = l && !n.includePrerelease && l.semver.prerelease.length ? l.semver : !1, m = i && !n.includePrerelease && i.semver.prerelease.length ? i.semver : !1; f && f.prerelease.length === 1 && l.operator === "<" && f.prerelease[0] === 0 && (f = !1); for (let d of e) { if (c = c || d.operator === ">" || d.operator === ">=", u = u || d.operator === "<" || d.operator === "<=", i) { if (m && d.semver.prerelease && d.semver.prerelease.length && d.semver.major === m.major && d.semver.minor === m.minor && d.semver.patch === m.patch && (m = !1), d.operator === ">" || d.operator === ">=") { if (a = pL(i, d, n), a === d && a !== i) return !1 } else if (i.operator === ">=" && !nc(i.semver, String(d), n)) return !1 } if (l) { if (f && d.semver.prerelease && d.semver.prerelease.length && d.semver.major === f.major && d.semver.minor === f.minor && d.semver.patch === f.patch && (f = !1), d.operator === "<" || d.operator === "<=") { if (o = fL(l, d, n), o === d && o !== l) return !1 } else if (l.operator === "<=" && !nc(l.semver, String(d), n)) return !1 } if (!d.operator && (l || i) && s !== 0) return !1 } return !(i && u && !l && s !== 0 || l && c && !i && s !== 0 || m || f) }, pL = (t, e, n) => { if (!t) return e; let r = Ng(t.semver, e.semver, n); return r > 0 ? t : r < 0 || e.operator === ">" && t.operator === ">=" ? e : t }, fL = (t, e, n) => { if (!t) return e; let r = Ng(t.semver, e.semver, n); return r < 0 ? t : r > 0 || e.operator === "<" && t.operator === "<=" ? e : t }; dL.exports = B6e }); var Rg = k((pIe, gL) => { var Cg = y1(), mL = K4(), q6e = Hi(), yL = pg(), z6e = P3(), G6e = LD(), J6e = jD(), K6e = $D(), X6e = VD(), W6e = zD(), Y6e = JD(), Q6e = XD(), Z6e = YD(), e8e = es(), t8e = tP(), n8e = rP(), r8e = v9(), i8e = aP(), l8e = uP(), s8e = W4(), a8e = _9(), o8e = dg(), u8e = hg(), c8e = E9(), p8e = b9(), f8e = mg(), d8e = vP(), h8e = Z4(), m8e = ts(), y8e = tc(), g8e = $P(), v8e = HP(), _8e = qP(), E8e = JP(), b8e = XP(), w8e = x9(), S8e = tL(), T8e = rL(), x8e = sL(), A8e = oL(), O8e = hL(); gL.exports = { parse: z6e, valid: G6e, clean: J6e, inc: K6e, diff: X6e, major: W6e, minor: Y6e, patch: Q6e, prerelease: Z6e, compare: e8e, rcompare: t8e, compareLoose: n8e, compareBuild: r8e, sort: i8e, rsort: l8e, gt: s8e, lt: a8e, eq: o8e, neq: u8e, gte: c8e, lte: p8e, cmp: f8e, coerce: d8e, Comparator: h8e, Range: m8e, satisfies: y8e, toComparators: g8e, maxSatisfying: v8e, minSatisfying: _8e, minVersion: E8e, validRange: b8e, outside: w8e, gtr: S8e, ltr: T8e, intersects: x8e, simplifyRange: A8e, subset: O8e, SemVer: q6e, re: Cg.re, src: Cg.src, tokens: Cg.t, SEMVER_SPEC_VERSION: mL.SEMVER_SPEC_VERSION, RELEASE_TYPES: mL.RELEASE_TYPES, compareIdentifiers: yL.compareIdentifiers, rcompareIdentifiers: yL.rcompareIdentifiers } }); var O9 = k((fIe, Pg) => { "use strict"; var A9 = ED(), N8e = Rg(), { FSTDEP005: C8e, FSTDEP012: R8e, FSTDEP015: I8e, FSTDEP016: k8e, FSTDEP017: D8e, FSTDEP018: P8e } = Fa(), { kHasBeenDecorated: L8e, kSchemaBody: F8e, kSchemaHeaders: j8e, kSchemaParams: U8e, kSchemaQuerystring: vL, kSchemaController: Ig, kOptions: M8e, kRequestCacheValidateFns: R2, kRouteContext: jr, kPublicRouteContext: _L, kRequestOriginalUrl: kg } = di(), { FST_ERR_REQ_INVALID_VALIDATION_INVOCATION: $8e } = Ui(), EL = { body: F8e, headers: j8e, params: U8e, querystring: vL, query: vL }; function Dg(t, e, n, r, i, l) { this.id = t, this[jr] = l, this.params = e, this.raw = n, this.query = r, this.log = i, this.body = void 0 } Dg.props = []; function B8e(t) { if (typeof t == "function") return t; if (t === !0) return function () { return !0 }; if (typeof t == "number") return function (e, n) { return n < t }; if (typeof t == "string") { let e = t.split(",").map(n => n.trim()); return A9.compile(e) } return A9.compile(t) } function H8e(t, e) { return e ? V8e(t, e) : wL(t) } function wL(t) { let e = t.props.slice(); function n(r, i, l, s, a, o) { this.id = r, this[jr] = o, this.params = i, this.raw = l, this.query = s, this.log = a, this.body = void 0; for (var u, c = 0; c < e.length; c++)u = e[c], this[u.key] = u.value } return Object.setPrototypeOf(n.prototype, t.prototype), Object.setPrototypeOf(n, t), n.props = e, n.parent = t, n } function bL(t) { let e = t.lastIndexOf(","); return e === -1 ? t.trim() : t.slice(e + 1).trim() } function V8e(t, e) { let n = wL(t), r = B8e(e); return n[L8e] = !0, Object.defineProperties(n.prototype, { ip: { get() { return A9(this.raw, r) } }, ips: { get() { return A9.all(this.raw, r) } }, hostname: { get() { return this.ip !== void 0 && this.headers["x-forwarded-host"] ? bL(this.headers["x-forwarded-host"]) : this.headers.host || this.headers[":authority"] } }, protocol: { get() { if (this.headers["x-forwarded-proto"]) return bL(this.headers["x-forwarded-proto"]); if (this.socket) return this.socket.encrypted ? "https" : "http" } } }), n } Object.defineProperties(Dg.prototype, { server: { get() { return this[jr].server } }, url: { get() { return this.raw.url } }, originalUrl: { get() { return this[kg] || (this[kg] = this.raw.originalUrl || this.raw.url), this[kg] } }, method: { get() { return this.raw.method } }, context: { get() { return R8e(), this[jr] } }, routerPath: { get() { return D8e(), this[jr].config?.url } }, routeOptions: { get() { let t = this[jr], e = t._parserOptions.limit, n = t.server.initialConfig.bodyLimit, r = t.server.hasConstraintStrategy("version") ? this.raw.headers["accept-version"] : void 0, i = { method: t.config?.method, url: t.config?.url, bodyLimit: e || n, attachValidation: t.attachValidation, logLevel: t.logLevel, exposeHeadRoute: t.exposeHeadRoute, prefixTrailingSlash: t.prefixTrailingSlash, handler: t.handler, version: r }; return Object.defineProperties(i, { config: { get: () => t.config }, schema: { get: () => t.schema } }), Object.freeze(i) } }, routerMethod: { get() { return P8e(), this[jr].config?.method } }, routeConfig: { get() { return k8e(), this[jr][_L]?.config } }, routeSchema: { get() { return I8e(), this[jr][_L].schema } }, is404: { get() { return this[jr].config?.url === void 0 } }, connection: { get() { return N8e.gte(process.versions.node, "13.0.0") && C8e(), this.raw.connection } }, socket: { get() { return this.raw.socket } }, ip: { get() { if (this.socket) return this.socket.remoteAddress } }, hostname: { get() { return this.raw.headers.host || this.raw.headers[":authority"] } }, protocol: { get() { if (this.socket) return this.socket.encrypted ? "https" : "http" } }, headers: { get() { return this.additionalHeaders ? Object.assign({}, this.raw.headers, this.additionalHeaders) : this.raw.headers }, set(t) { this.additionalHeaders = t } }, getValidationFunction: { value: function (t) { if (typeof t == "string") { let e = EL[t]; return this[jr][e] } else if (typeof t == "object") return this[jr][R2]?.get(t) } }, compileValidationSchema: { value: function (t, e = null) { let { method: n, url: r } = this; if (this[jr][R2]?.has(t)) return this[jr][R2].get(t); let l = (this[jr].validatorCompiler || this.server[Ig].validatorCompiler || this.server[Ig].setupValidator(this.server[M8e]) || this.server[Ig].validatorCompiler)({ schema: t, method: n, url: r, httpPart: e }); return this[jr][R2] == null && (this[jr][R2] = new WeakMap), this[jr][R2].set(t, l), l } }, validateInput: { value: function (t, e, n) { n = typeof e == "string" ? e : n; let r = n != null && typeof n == "string" && EL[n], i; if (r && (i = this[jr][r]), i == null && (e == null || typeof e != "object" || Array.isArray(e))) throw new $8e(n); return i == null && (this[jr][R2]?.has(e) ? i = this[jr][R2].get(e) : i = this.compileValidationSchema(e, n)), i(t) } } }); Pg.exports = Dg; Pg.exports.buildRequest = H8e }); var N9 = k((dIe, SL) => { "use strict"; var { kFourOhFourContext: q8e, kReplySerializerDefault: z8e, kSchemaErrorFormatter: G8e, kErrorHandler: J8e, kChildLoggerFactory: K8e, kOptions: X8e, kReply: W8e, kRequest: Y8e, kBodyLimit: Q8e, kLogLevel: Z8e, kContentTypeParser: e9e, kRouteByFastify: t9e, kRequestCacheValidateFns: n9e, kReplyCacheSerializeFns: r9e, kPublicRouteContext: i9e } = di(); function l9e({ schema: t, handler: e, config: n, requestIdLogLabel: r, childLoggerFactory: i, errorHandler: l, bodyLimit: s, logLevel: a, logSerializers: o, attachValidation: u, validatorCompiler: c, serializerCompiler: f, replySerializer: m, schemaErrorFormatter: d, exposeHeadRoute: y, prefixTrailingSlash: _, server: S, isFastify: w }) { this.schema = t, this.handler = e, this.Reply = S[W8e], this.Request = S[Y8e], this.contentTypeParser = S[e9e], this.onRequest = null, this.onSend = null, this.onError = null, this.onTimeout = null, this.preHandler = null, this.onResponse = null, this.preSerialization = null, this.onRequestAbort = null, this.config = n, this.errorHandler = l || S[J8e], this.requestIdLogLabel = r || S[X8e].requestIdLogLabel, this.childLoggerFactory = i || S[K8e], this._middie = null, this._parserOptions = { limit: s || S[Q8e] }, this.exposeHeadRoute = y, this.prefixTrailingSlash = _, this.logLevel = a || S[Z8e], this.logSerializers = o, this[q8e] = null, this.attachValidation = u, this[z8e] = m, this.schemaErrorFormatter = d || S[G8e] || a9e, this[t9e] = w, this[n9e] = null, this[r9e] = null, this.validatorCompiler = c || null, this.serializerCompiler = f || null, this[i9e] = s9e(this), this.server = S } function s9e(t) { return Object.create(null, { schema: { enumerable: !0, get() { return t.schema } }, config: { enumerable: !0, get() { return t.config } } }) } function a9e(t, e) { let n = "", r = ", "; for (var i = 0; i !== t.length; ++i) { let l = t[i]; n += e + (l.instancePath || "") + " " + l.message + r } return new Error(n.slice(0, -r.length)) } SL.exports = l9e }); var Lg = k((hIe, TL) => { "use strict"; TL.exports = { supportedMethods: ["DELETE", "GET", "HEAD", "PATCH", "POST", "PUT", "OPTIONS", "PROPFIND", "PROPPATCH", "MKCOL", "COPY", "MOVE", "LOCK", "UNLOCK", "TRACE", "SEARCH"] } }); var $g = k((mIe, NL) => { "use strict"; var { kReply: Fg, kRequest: jg, kState: o9e, kHasBeenDecorated: u9e } = di(), { FST_ERR_DEC_ALREADY_PRESENT: xL, FST_ERR_DEC_MISSING_DEPENDENCY: c9e, FST_ERR_DEC_AFTER_START: p9e, FST_ERR_DEC_DEPENDENCY_INVALID_TYPE: f9e } = Ui(), { FSTDEP006: d9e } = Fa(); function h9e(t, e, n, r) { if (Object.prototype.hasOwnProperty.call(t, e)) throw new xL(e); Ug(t, e, r), n && (typeof n.getter == "function" || typeof n.setter == "function") ? Object.defineProperty(t, e, { get: n.getter, set: n.setter }) : t[e] = n } function AL(t, e, n, r) { let i = t.prototype; if (Object.prototype.hasOwnProperty.call(i, e) || R9(t, e)) throw new xL(e); t[u9e] = !0, Ug(t, e, r), n && (typeof n.getter == "function" || typeof n.setter == "function") ? Object.defineProperty(i, e, { get: n.getter, set: n.setter }) : typeof n == "function" ? i[e] = n : t.props.push({ key: e, value: n }) } function OL(t, e) { typeof e == "object" && e && !(typeof e.getter == "function" || typeof e.setter == "function") && d9e(t) } function m9e(t, e, n) { return Mg(this, t), h9e(this, t, e, n), this } function C9(t, e) { return e ? e in t || t.prototype && e in t.prototype || R9(t, e) : t in this } function R9(t, e) { return t.props ? t.props.find(({ key: n }) => n === e) : !1 } function y9e(t) { return t && R9(this[jg], t) ? !0 : C9(this[jg].prototype, t) } function g9e(t) { return t && R9(this[Fg], t) ? !0 : C9(this[Fg].prototype, t) } function Ug(t, e, n) { if (n != null) { if (!Array.isArray(n)) throw new f9e(e); for (var r = 0; r !== n.length; ++r)if (!C9(t, n[r])) throw new c9e(n[r]) } } function v9e(t, e, n) { return Mg(this, t), OL(t, e), AL(this[Fg], t, e, n), this } function _9e(t, e, n) { return Mg(this, t), OL(t, e), AL(this[jg], t, e, n), this } function Mg(t, e) { if (t[o9e].started) throw new p9e(e) } NL.exports = { add: m9e, exist: C9, existRequest: y9e, existReply: g9e, dependencies: Ug, decorateReply: v9e, decorateRequest: _9e } }); var RL = k(ta => { "use strict"; var Bg = class { constructor(e = 1e3, n = 0) { if (isNaN(e) || e < 0) throw new Error("Invalid max value"); if (isNaN(n) || n < 0) throw new Error("Invalid ttl value"); this.first = null, this.items = new Map, this.last = null, this.max = e, this.ttl = n } get size() { return this.items.size } clear() { this.items = new Map, this.first = null, this.last = null } delete(e) { if (this.items.has(e)) { let n = this.items.get(e); this.items.delete(e), n.prev !== null && (n.prev.next = n.next), n.next !== null && (n.next.prev = n.prev), this.first === n && (this.first = n.next), this.last === n && (this.last = n.prev) } } deleteMany(e) { for (var n = 0; n < e.length; n++)this.delete(e[n]) } evict() { if (this.size > 0) { let e = this.first; this.items.delete(e.key), this.size === 0 ? (this.first = null, this.last = null) : (this.first = e.next, this.first.prev = null) } } expiresAt(e) { if (this.items.has(e)) return this.items.get(e).expiry } get(e) { if (this.items.has(e)) { let n = this.items.get(e); if (this.ttl > 0 && n.expiry <= Date.now()) { this.delete(e); return } return n.value } } getMany(e) { let n = []; for (var r = 0; r < e.length; r++)n.push(this.get(e[r])); return n } keys() { return this.items.keys() } set(e, n) { if (this.items.has(e)) { let i = this.items.get(e); i.value = n, i.expiry = this.ttl > 0 ? Date.now() + this.ttl : this.ttl; return } this.max > 0 && this.size === this.max && this.evict(); let r = { expiry: this.ttl > 0 ? Date.now() + this.ttl : this.ttl, key: e, prev: this.last, next: null, value: n }; this.items.set(e, r), this.size === 1 ? this.first = r : this.last.next = r, this.last = r } }, Hg = class { constructor(e = 1e3, n = 0) { if (isNaN(e) || e < 0) throw new Error("Invalid max value"); if (isNaN(n) || n < 0) throw new Error("Invalid ttl value"); this.first = null, this.items = new Map, this.last = null, this.max = e, this.ttl = n } get size() { return this.items.size } bumpLru(e) { if (this.last === e) return; let n = this.last, r = e.next, i = e.prev; this.first === e && (this.first = r), e.next = null, e.prev = n, n.next = e, i !== null && (i.next = r), r !== null && (r.prev = i), this.last = e } clear() { this.items = new Map, this.first = null, this.last = null } delete(e) { if (this.items.has(e)) { let n = this.items.get(e); this.items.delete(e), n.prev !== null && (n.prev.next = n.next), n.next !== null && (n.next.prev = n.prev), this.first === n && (this.first = n.next), this.last === n && (this.last = n.prev) } } deleteMany(e) { for (var n = 0; n < e.length; n++)this.delete(e[n]) } evict() { if (this.size > 0) { let e = this.first; this.items.delete(e.key), this.size === 0 ? (this.first = null, this.last = null) : (this.first = e.next, this.first.prev = null) } } expiresAt(e) { if (this.items.has(e)) return this.items.get(e).expiry } get(e) { if (this.items.has(e)) { let n = this.items.get(e); if (this.ttl > 0 && n.expiry <= Date.now()) { this.delete(e); return } return this.bumpLru(n), n.value } } getMany(e) { let n = []; for (var r = 0; r < e.length; r++)n.push(this.get(e[r])); return n } keys() { return this.items.keys() } set(e, n) { if (this.items.has(e)) { let i = this.items.get(e); i.value = n, i.expiry = this.ttl > 0 ? Date.now() + this.ttl : this.ttl, this.last !== i && this.bumpLru(i); return } this.max > 0 && this.size === this.max && this.evict(); let r = { expiry: this.ttl > 0 ? Date.now() + this.ttl : this.ttl, key: e, prev: this.last, next: null, value: n }; this.items.set(e, r), this.size === 1 ? this.first = r : this.last.next = r, this.last = r } }, rc = class { constructor(e = 1e3, n = 0) { if (isNaN(e) || e < 0) throw new Error("Invalid max value"); if (isNaN(n) || n < 0) throw new Error("Invalid ttl value"); this.first = null, this.items = Object.create(null), this.last = null, this.size = 0, this.max = e, this.ttl = n } bumpLru(e) { if (this.last === e) return; let n = this.last, r = e.next, i = e.prev; this.first === e && (this.first = r), e.next = null, e.prev = n, n.next = e, i !== null && (i.next = r), r !== null && (r.prev = i), this.last = e } clear() { this.items = Object.create(null), this.first = null, this.last = null, this.size = 0 } delete(e) { if (Object.prototype.hasOwnProperty.call(this.items, e)) { let n = this.items[e]; delete this.items[e], this.size--, n.prev !== null && (n.prev.next = n.next), n.next !== null && (n.next.prev = n.prev), this.first === n && (this.first = n.next), this.last === n && (this.last = n.prev) } } deleteMany(e) { for (var n = 0; n < e.length; n++)this.delete(e[n]) } evict() { if (this.size > 0) { let e = this.first; delete this.items[e.key], --this.size === 0 ? (this.first = null, this.last = null) : (this.first = e.next, this.first.prev = null) } } expiresAt(e) { if (Object.prototype.hasOwnProperty.call(this.items, e)) return this.items[e].expiry } get(e) { if (Object.prototype.hasOwnProperty.call(this.items, e)) { let n = this.items[e]; if (this.ttl > 0 && n.expiry <= Date.now()) { this.delete(e); return } return this.bumpLru(n), n.value } } getMany(e) { let n = []; for (var r = 0; r < e.length; r++)n.push(this.get(e[r])); return n } keys() { return Object.keys(this.items) } set(e, n) { if (Object.prototype.hasOwnProperty.call(this.items, e)) { let i = this.items[e]; i.value = n, i.expiry = this.ttl > 0 ? Date.now() + this.ttl : this.ttl, this.last !== i && this.bumpLru(i); return } this.max > 0 && this.size === this.max && this.evict(); let r = { expiry: this.ttl > 0 ? Date.now() + this.ttl : this.ttl, key: e, prev: this.last, next: null, value: n }; this.items[e] = r, ++this.size === 1 ? this.first = r : this.last.next = r, this.last = r } }, I9 = class { constructor() { this.records = {} } initForCache(e, n) { this.records[e] = { [n]: { cacheSize: 0, hits: 0, falsyHits: 0, emptyHits: 0, misses: 0, expirations: 0, evictions: 0, invalidateOne: 0, invalidateAll: 0, sets: 0 } } } resetForCache(e) { for (let n of Object.keys(this.records[e])) this.records[e][n] = { cacheSize: 0, hits: 0, falsyHits: 0, emptyHits: 0, misses: 0, expirations: 0, evictions: 0, invalidateOne: 0, invalidateAll: 0, sets: 0 } } getStatistics() { return this.records } }; function CL(t) { return `${t.getFullYear()}-${(t.getMonth() + 1).toString().padStart(2, "0")}-${t.getDate().toString().padStart(2, "0")}` } var Vg = class { constructor(e, n, r) { this.cacheId = e, this.statisticTtlInHours = n, this.collectionStart = new Date, this.currentTimeStamp = CL(this.collectionStart), this.records = r || new I9, this.records.initForCache(this.cacheId, this.currentTimeStamp) } get currentRecord() { return this.records.records[this.cacheId][this.currentTimeStamp] || (this.records.records[this.cacheId][this.currentTimeStamp] = { cacheSize: 0, hits: 0, falsyHits: 0, emptyHits: 0, misses: 0, expirations: 0, evictions: 0, sets: 0, invalidateOne: 0, invalidateAll: 0 }), this.records.records[this.cacheId][this.currentTimeStamp] } hoursPassed() { return (Date.now() - this.collectionStart) / 1e3 / 60 / 60 } addHit() { this.archiveIfNeeded(), this.currentRecord.hits++ } addFalsyHit() { this.archiveIfNeeded(), this.currentRecord.falsyHits++ } addEmptyHit() { this.archiveIfNeeded(), this.currentRecord.emptyHits++ } addMiss() { this.archiveIfNeeded(), this.currentRecord.misses++ } addEviction() { this.archiveIfNeeded(), this.currentRecord.evictions++ } setCacheSize(e) { this.archiveIfNeeded(), this.currentRecord.cacheSize = e } addExpiration() { this.archiveIfNeeded(), this.currentRecord.expirations++ } addSet() { this.archiveIfNeeded(), this.currentRecord.sets++ } addInvalidateOne() { this.archiveIfNeeded(), this.currentRecord.invalidateOne++ } addInvalidateAll() { this.archiveIfNeeded(), this.currentRecord.invalidateAll++ } getStatistics() { return this.records.getStatistics() } archiveIfNeeded() { this.hoursPassed() >= this.statisticTtlInHours && (this.collectionStart = new Date, this.currentTimeStamp = CL(this.collectionStart), this.records.initForCache(this.cacheId, this.currentTimeStamp)) } }, k9 = class extends rc { constructor(e, n, r, i, l) { if (super(e || 1e3, n || 0), !r) throw new Error("Cache id is mandatory"); this.hitStatistics = new Vg(r, l !== void 0 ? l : 24, i) } getStatistics() { return this.hitStatistics.getStatistics() } set(e, n) { super.set(e, n), this.hitStatistics.addSet(), this.hitStatistics.setCacheSize(this.size) } evict() { super.evict(), this.hitStatistics.addEviction(), this.hitStatistics.setCacheSize(this.size) } delete(e, n = !1) { super.delete(e), n || this.hitStatistics.addInvalidateOne(), this.hitStatistics.setCacheSize(this.size) } clear() { super.clear(), this.hitStatistics.addInvalidateAll(), this.hitStatistics.setCacheSize(this.size) } get(e) { if (Object.prototype.hasOwnProperty.call(this.items, e)) { let n = this.items[e]; if (this.ttl > 0 && n.expiry <= Date.now()) { this.delete(e, !0), this.hitStatistics.addExpiration(); return } return this.bumpLru(n), n.value || this.hitStatistics.addFalsyHit(), (n.value === void 0 || n.value === null || n.value === "") && this.hitStatistics.addEmptyHit(), this.hitStatistics.addHit(), n.value } this.hitStatistics.addMiss() } }, D9 = class { constructor(e = 1e3, n = 0) { if (isNaN(e) || e < 0) throw new Error("Invalid max value"); if (isNaN(n) || n < 0) throw new Error("Invalid ttl value"); this.first = null, this.items = Object.create(null), this.last = null, this.size = 0, this.max = e, this.ttl = n } clear() { this.items = Object.create(null), this.first = null, this.last = null, this.size = 0 } delete(e) { if (Object.prototype.hasOwnProperty.call(this.items, e)) { let n = this.items[e]; delete this.items[e], this.size--, n.prev !== null && (n.prev.next = n.next), n.next !== null && (n.next.prev = n.prev), this.first === n && (this.first = n.next), this.last === n && (this.last = n.prev) } } deleteMany(e) { for (var n = 0; n < e.length; n++)this.delete(e[n]) } evict() { if (this.size > 0) { let e = this.first; delete this.items[e.key], --this.size === 0 ? (this.first = null, this.last = null) : (this.first = e.next, this.first.prev = null) } } expiresAt(e) { if (Object.prototype.hasOwnProperty.call(this.items, e)) return this.items[e].expiry } get(e) { if (Object.prototype.hasOwnProperty.call(this.items, e)) { let n = this.items[e]; if (this.ttl > 0 && n.expiry <= Date.now()) { this.delete(e); return } return n.value } } getMany(e) { let n = []; for (var r = 0; r < e.length; r++)n.push(this.get(e[r])); return n } keys() { return Object.keys(this.items) } set(e, n) { if (Object.prototype.hasOwnProperty.call(this.items, e)) { let i = this.items[e]; i.value = n, i.expiry = this.ttl > 0 ? Date.now() + this.ttl : this.ttl; return } this.max > 0 && this.size === this.max && this.evict(); let r = { expiry: this.ttl > 0 ? Date.now() + this.ttl : this.ttl, key: e, prev: this.last, next: null, value: n }; this.items[e] = r, ++this.size === 1 ? this.first = r : this.last.next = r, this.last = r } }; ta.Fifo = D9; ta.FifoMap = Bg; ta.FifoObject = D9; ta.HitStatisticsRecord = I9; ta.Lru = rc; ta.LruHitStatistics = k9; ta.LruMap = Hg; ta.LruObject = rc; ta.LruObjectHitStatistics = k9 }); var PL = k((gIe, ic) => { "use strict"; var F9 = function () { }; F9.prototype = Object.create(null); var P9 = /; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu, L9 = /\\([\v\u0020-\u00ff])/gu, IL = /^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u, U3 = { type: "", parameters: new F9 }; Object.freeze(U3.parameters); Object.freeze(U3); function kL(t) { if (typeof t != "string") throw new TypeError("argument header is required and must be a string"); let e = t.indexOf(";"), n = e !== -1 ? t.slice(0, e).trim() : t.trim(); if (IL.test(n) === !1) throw new TypeError("invalid media type"); let r = { type: n.toLowerCase(), parameters: new F9 }; if (e === -1) return r; let i, l, s; for (P9.lastIndex = e; l = P9.exec(t);) { if (l.index !== e) throw new TypeError("invalid parameter format"); e += l[0].length, i = l[1].toLowerCase(), s = l[2], s[0] === '"' && (s = s.slice(1, s.length - 1), L9.test(s) && (s = s.replace(L9, "$1"))), r.parameters[i] = s } if (e !== t.length) throw new TypeError("invalid parameter format"); return r } function DL(t) { if (typeof t != "string") return U3; let e = t.indexOf(";"), n = e !== -1 ? t.slice(0, e).trim() : t.trim(); if (IL.test(n) === !1) return U3; let r = { type: n.toLowerCase(), parameters: new F9 }; if (e === -1) return r; let i, l, s; for (P9.lastIndex = e; l = P9.exec(t);) { if (l.index !== e) return U3; e += l[0].length, i = l[1].toLowerCase(), s = l[2], s[0] === '"' && (s = s.slice(1, s.length - 1), L9.test(s) && (s = s.replace(L9, "$1"))), r.parameters[i] = s } return e !== t.length ? U3 : r } ic.exports.default = { parse: kL, safeParse: DL }; ic.exports.parse = kL; ic.exports.safeParse = DL; ic.exports.defaultContentType = U3 }); var ML = k((vIe, E1) => { "use strict"; var E9e = typeof Buffer < "u", LL = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/, FL = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/; function jL(t, e, n) { n == null && e !== null && typeof e == "object" && (n = e, e = void 0), E9e && Buffer.isBuffer(t) && (t = t.toString()), t && t.charCodeAt(0) === 65279 && (t = t.slice(1)); let r = JSON.parse(t, e); if (r === null || typeof r != "object") return r; let i = n && n.protoAction || "error", l = n && n.constructorAction || "error"; if (i === "ignore" && l === "ignore") return r; if (i !== "ignore" && l !== "ignore") { if (LL.test(t) === !1 && FL.test(t) === !1) return r } else if (i !== "ignore" && l === "ignore") { if (LL.test(t) === !1) return r } else if (FL.test(t) === !1) return r; return UL(r, { protoAction: i, constructorAction: l, safe: n && n.safe }) } function UL(t, { protoAction: e = "error", constructorAction: n = "error", safe: r } = {}) { let i = [t]; for (; i.length;) { let l = i; i = []; for (let s of l) { if (e !== "ignore" && Object.prototype.hasOwnProperty.call(s, "__proto__")) { if (r === !0) return null; if (e === "error") throw new SyntaxError("Object contains forbidden prototype property"); delete s.__proto__ } if (n !== "ignore" && Object.prototype.hasOwnProperty.call(s, "constructor") && Object.prototype.hasOwnProperty.call(s.constructor, "prototype")) { if (r === !0) return null; if (n === "error") throw new SyntaxError("Object contains forbidden prototype property"); delete s.constructor } for (let a in s) { let o = s[a]; o && typeof o == "object" && i.push(o) } } } return t } function qg(t, e, n) { let r = Error.stackTraceLimit; Error.stackTraceLimit = 0; try { return jL(t, e, n) } finally { Error.stackTraceLimit = r } } function b9e(t, e) { let n = Error.stackTraceLimit; Error.stackTraceLimit = 0; try { return jL(t, e, { safe: !0 }) } catch { return null } finally { Error.stackTraceLimit = n } } E1.exports = qg; E1.exports.default = qg; E1.exports.parse = qg; E1.exports.safeParse = b9e; E1.exports.scan = UL }); var Xg = k((_Ie, sc) => { "use strict"; var { AsyncResource: w9e } = require("node:async_hooks"), { Fifo: BL } = RL(), { safeParse: HL, defaultContentType: S9e } = PL(), T9e = ML(), { kDefaultJsonParse: lc, kContentTypeParser: b1, kBodyLimit: x9e, kRequestPayloadStream: VL, kState: Gg, kTestInternals: A9e, kReplyIsError: qL, kRouteContext: O9e } = di(), { FST_ERR_CTP_INVALID_TYPE: zL, FST_ERR_CTP_EMPTY_TYPE: N9e, FST_ERR_CTP_ALREADY_PRESENT: C9e, FST_ERR_CTP_INVALID_HANDLER: R9e, FST_ERR_CTP_INVALID_PARSE_TYPE: I9e, FST_ERR_CTP_BODY_TOO_LARGE: $L, FST_ERR_CTP_INVALID_MEDIA_TYPE: k9e, FST_ERR_CTP_INVALID_CONTENT_LENGTH: D9e, FST_ERR_CTP_EMPTY_JSON_BODY: P9e, FST_ERR_CTP_INSTANCE_ALREADY_STARTED: Jg } = Ui(); function Ga(t, e, n) { this[lc] = JL(e, n), this.customParsers = new Map, this.customParsers.set("application/json", new zg(!0, !1, t, this[lc])), this.customParsers.set("text/plain", new zg(!0, !1, t, Kg)), this.parserList = [new j9("application/json"), new j9("text/plain")], this.parserRegExpList = [], this.cache = new BL(100) } Ga.prototype.add = function (t, e, n) { let r = typeof t == "string"; if (!r && !(t instanceof RegExp)) throw new zL; if (r && t.length === 0) throw new N9e; if (typeof n != "function") throw new R9e; if (this.existingParser(t)) throw new C9e(t); if (e.parseAs !== void 0 && e.parseAs !== "string" && e.parseAs !== "buffer") throw new I9e(e.parseAs); let i = new zg(e.parseAs === "string", e.parseAs === "buffer", e.bodyLimit, n); r && t === "*" ? this.customParsers.set("", i) : (r ? this.parserList.unshift(new j9(t)) : (t.isEssence = t.source.indexOf(";") === -1, this.parserRegExpList.unshift(t)), this.customParsers.set(t.toString(), i)) }; Ga.prototype.hasParser = function (t) { return this.customParsers.has(typeof t == "string" ? t : t.toString()) }; Ga.prototype.existingParser = function (t) { return t === "application/json" && this.customParsers.has(t) ? this.customParsers.get(t).fn !== this[lc] : t === "text/plain" && this.customParsers.has(t) ? this.customParsers.get(t).fn !== Kg : this.hasParser(t) }; Ga.prototype.getParser = function (t) { if (this.hasParser(t)) return this.customParsers.get(t); let e = this.cache.get(t); if (e !== void 0) return e; let n = HL(t); if (n === S9e) return this.customParsers.get(""); for (var r = 0; r !== this.parserList.length; ++r) { let l = this.parserList[r]; if ($9e(n, l)) { let s = this.customParsers.get(l.name); return this.cache.set(t, s), s } } for (var i = 0; i !== this.parserRegExpList.length; ++i) { let l = this.parserRegExpList[i]; if (B9e(t, n.type, l)) { let s = this.customParsers.get(l.toString()); return this.cache.set(t, s), s } } return this.customParsers.get("") }; Ga.prototype.removeAll = function () { this.customParsers = new Map, this.parserRegExpList = [], this.parserList = [], this.cache = new BL(100) }; Ga.prototype.remove = function (t) { if (!(typeof t == "string" || t instanceof RegExp)) throw new zL; let e = this.customParsers.delete(t.toString()), n = typeof t == "string" ? this.parserList : this.parserRegExpList, r = n.findIndex(i => i.toString() === t.toString()); return r > -1 && n.splice(r, 1), e || r > -1 }; Ga.prototype.run = function (t, e, n, r) { let i = this.getParser(t); if (i === void 0) { n.is404 ? e(n, r) : r.send(new k9e(t || void 0)); return } let l = new w9e("content-type-parser:run", n); if (i.asString === !0 || i.asBuffer === !0) GL(n, r, r[O9e]._parserOptions, i, s); else { let a = i.fn(n, n[VL], s); a && typeof a.then == "function" && a.then(o => s(null, o), s) } function s(a, o) { l.runInAsyncScope(() => { l.emitDestroy(), a ? (r[qL] = !0, r.send(a)) : (n.body = o, e(n, r)) }) } }; function GL(t, e, n, r, i) { let l = r.asString, s = n.limit === null ? r.bodyLimit : n.limit, a = t.headers["content-length"] === void 0 ? NaN : Number(t.headers["content-length"]); if (a > s) { e.header("connection", "close"), e.send(new $L); return } let o = 0, u = l === !0 ? "" : [], c = t[VL] || t.raw; l === !0 && c.setEncoding("utf8"), c.on("data", f), c.on("end", m), c.on("error", m), c.resume(); function f(d) { o += d.length; let { receivedEncodedLength: y = 0 } = c; if (o > s || y > s) { c.removeListener("data", f), c.removeListener("end", m), c.removeListener("error", m), e.send(new $L); return } l === !0 ? u += d : u.push(d) } function m(d) { if (c.removeListener("data", f), c.removeListener("end", m), c.removeListener("error", m), d !== void 0) { typeof d.statusCode == "number" && d.statusCode >= 400 || (d.statusCode = 400), e[qL] = !0, e.code(d.statusCode).send(d); return } if (l === !0 && (o = Buffer.byteLength(u)), !Number.isNaN(a) && (c.receivedEncodedLength || o) !== a) { e.header("connection", "close"), e.send(new D9e); return } l === !1 && (u = Buffer.concat(u)); let y = r.fn(t, u, i); y && typeof y.then == "function" && y.then(_ => i(null, _), i) } } function JL(t, e) { return n; function n(r, i, l) { if (i === "" || i == null || Buffer.isBuffer(i) && i.length === 0) return l(new P9e, void 0); let s; try { s = T9e.parse(i, { protoAction: t, constructorAction: e }) } catch (a) { return a.statusCode = 400, l(a, void 0) } l(null, s) } } function Kg(t, e, n) { n(null, e) } function zg(t, e, n, r) { this.asString = t, this.asBuffer = e, this.bodyLimit = n, this.fn = r } function L9e(t) { let e = new Ga; return e[lc] = t[lc], e.customParsers = new Map(t.customParsers.entries()), e.parserList = t.parserList.slice(), e.parserRegExpList = t.parserRegExpList.slice(), e } function F9e(t, e, n) { if (this[Gg].started) throw new Jg("addContentTypeParser"); return typeof e == "function" && (n = e, e = {}), e || (e = {}), e.bodyLimit || (e.bodyLimit = this[x9e]), Array.isArray(t) ? t.forEach(r => this[b1].add(r, e, n)) : this[b1].add(t, e, n), this } function j9e(t) { return this[b1].hasParser(t) } function U9e(t) { if (this[Gg].started) throw new Jg("removeContentTypeParser"); if (Array.isArray(t)) for (let e of t) this[b1].remove(e); else this[b1].remove(t) } function M9e() { if (this[Gg].started) throw new Jg("removeAllContentTypeParsers"); this[b1].removeAll() } function $9e(t, e) { if (e.isEssence) return t.type.indexOf(e) !== -1; if (t.type.indexOf(e.type) === -1) return !1; for (let n of e.parameterKeys) if (!(n in t.parameters) || t.parameters[n] !== e.parameters[n]) return !1; return !0 } function B9e(t, e, n) { return n.isEssence ? n.test(e) : n.test(t) } function j9(t) { this.name = t; let e = HL(t); if (this.isEssence = t.indexOf(";") === -1, this.isEssence === !1 && e.type === "") { let n = t.split(";", 1)[0]; this.type = n === "" ? t : n } else this.type = e.type; this.parameters = e.parameters, this.parameterKeys = Object.keys(e.parameters) } j9.prototype.toString = function () { return this.name }; sc.exports = Ga; sc.exports.helpers = { buildContentTypeParser: L9e, addContentTypeParser: F9e, hasContentTypeParser: j9e, removeContentTypeParser: U9e, removeAllContentTypeParsers: M9e }; sc.exports.defaultParsers = { getDefaultJsonParser: JL, defaultTextParser: Kg }; sc.exports[A9e] = { rawBody: GL } }); var KL = k((EIe, U9) => { "use strict"; var H9e = Object.getPrototypeOf({}); function Wg(t) { function e(w) { return w !== "constructor" && w !== "prototype" && w !== "__proto__" } function n(w) { let E = 0, g = w.length, v = new Array(g); for (E = 0; E < g; ++E)v[E] = d(w[E]); return v } function r(w) { let E = {}; if (o && Object.getPrototypeOf(w) !== H9e) return o(w); let g = a(w), v, x, O; for (v = 0, x = g.length; v < x; ++v)e(O = g[v]) && (E[O] = d(w[O])); return E } function i(w, E) { let g = w.length, v = E.length, x = 0, O = new Array(g + v); for (x = 0; x < g; ++x)O[x] = d(w[x]); for (x = 0; x < v; ++x)O[x + g] = d(E[x]); return O } let l = Object.prototype.propertyIsEnumerable; function s(w) { let E = Object.keys(w), g = Object.getOwnPropertySymbols(w); for (let v = 0, x = g.length; v < x; ++v)l.call(w, g[v]) && E.push(g[v]); return E } let a = t && t.symbols ? s : Object.keys, o = typeof t?.cloneProtoObject == "function" ? t.cloneProtoObject : void 0; function u(w) { return typeof w == "object" && w !== null && !(w instanceof RegExp) && !(w instanceof Date) } function c(w) { return typeof w != "object" || w === null } let f = typeof Buffer < "u" ? w => typeof w != "object" || w === null || w instanceof RegExp || w instanceof Date || w instanceof Buffer : w => typeof w != "object" || w === null || w instanceof RegExp || w instanceof Date, m = t && typeof t.mergeArray == "function" ? t.mergeArray({ clone: d, deepmerge: _, getKeys: a, isMergeableObject: u }) : i; function d(w) { return u(w) ? Array.isArray(w) ? n(w) : r(w) : w } function y(w, E) { let g = {}, v = a(w), x = a(E), O, N, R; for (O = 0, N = v.length; O < N; ++O)e(R = v[O]) && x.indexOf(R) === -1 && (g[R] = d(w[R])); for (O = 0, N = x.length; O < N; ++O)e(R = x[O]) && (R in w && (v.indexOf(R) !== -1 && (g[R] = _(w[R], E[R])), !0) || (g[R] = d(E[R]))); return g } function _(w, E) { let g = Array.isArray(E), v = Array.isArray(w); return c(E) ? E : f(w) ? d(E) : g && v ? m(w, E) : g !== v ? d(E) : y(w, E) } function S() { switch (arguments.length) { case 0: return {}; case 1: return d(arguments[0]); case 2: return _(arguments[0], arguments[1]) }let w; for (let E = 0, g = arguments.length; E < g; ++E)w = _(w, arguments[E]); return w } return t && t.all ? S : _ } U9.exports = Wg; U9.exports.default = Wg; U9.exports.deepmerge = Wg }); var QL = k((bIe, YL) => { "use strict"; var XL = i1(), V9e = Symbol.for("json-schema-ref"), Yg = class { #e; #t; #r; #i; #l; constructor(e = {}) { this.#e = {}, this.#t = {}, this.#r = e.insertRefSymbol ?? !1, this.#i = e.allowEqualDuplicates ?? !0, this.#l = e.cloneSchemaWithoutRefs ?? !1 } addSchema(e, n) { e.$id !== void 0 && e.$id.charAt(0) !== "#" ? n = e.$id : this.#u(e, n), this.#a(e, n) } getSchema(e, n = "#") { let r = this.#e[e]; if (r === void 0) throw new Error(`Cannot resolve ref "${e}${n}". Schema with id "${e}" is not found.`); return r.anchors[n] !== void 0 ? r.anchors[n] : WL(r.schema, n) } hasSchema(e) { return this.#e[e] !== void 0 } getSchemaRefs(e) { let n = this.#e[e]; if (n === void 0) throw new Error(`Schema with id "${e}" is not found.`); return n.refs } getSchemaDependencies(e, n = {}) { let r = this.#e[e]; for (let i of r.refs) { let l = i.schemaId; n[l] === void 0 && (n[l] = this.getSchema(l), this.getSchemaDependencies(l, n)) } return n } derefSchema(e) { if (this.#t[e] !== void 0) return; let n = this.#e[e]; if (n === void 0) throw new Error(`Schema with id "${e}" is not found.`); !this.#l && n.refs.length === 0 && (this.#t[e] = { schema: n.schema, anchors: n.anchors }); let r = []; this.#n(n.schema, e, r); let i = this.getSchemaDependencies(e); for (let l in i) { let s = i[l]; this.#n(s, l, r) } for (let l of r) { let { refSchemaId: s, refJsonPointer: a } = this.#s(l.ref, l.sourceSchemaId), o = this.getDerefSchema(s, a); if (o === null) throw new Error(`Cannot resolve ref "${l.ref}". Ref "${a}" is not found in schema "${s}".`); l.targetSchema = o, l.targetSchemaId = s } for (let l of r) this.#o(l, r) } getDerefSchema(e, n = "#") { let r = this.#t[e]; return r === void 0 && (this.derefSchema(e), r = this.#t[e]), r.anchors[n] !== void 0 ? r.anchors[n] : WL(r.schema, n) } #s(e, n) { let r = e.indexOf("#"); return r === -1 ? { refSchemaId: e, refJsonPointer: "#" } : r === 0 ? { refSchemaId: n, refJsonPointer: e } : { refSchemaId: e.slice(0, r), refJsonPointer: e.slice(r) } } #a(e, n) { let r = e.$id; r !== void 0 && typeof r == "string" && (r.charAt(0) === "#" ? this.#c(e, n, r) : (this.#u(e, r), n = r)); let i = e.$ref; if (i !== void 0 && typeof i == "string") { let { refSchemaId: l, refJsonPointer: s } = this.#s(i, n); this.#e[n].refs.push({ schemaId: l, jsonPointer: s }) } for (let l in e) typeof e[l] == "object" && e[l] !== null && this.#a(e[l], n) } #n(e, n, r = []) { let i = Array.isArray(e) ? [...e] : { ...e }, l = i.$id; l !== void 0 && typeof l == "string" && (l.charAt(0) === "#" ? this.#f(i, n, l) : (this.#p(i, l), n = l)), i.$ref !== void 0 && r.push({ ref: i.$ref, sourceSchemaId: n, sourceSchema: i }); for (let s in i) { let a = i[s]; typeof a == "object" && a !== null && (i[s] = this.#n(a, n, r)) } return i } #o(e, n) { let { sourceSchema: r, targetSchema: i } = e; if (r.$ref) { if (this.#r && (r[V9e] = r.$ref), delete r.$ref, i.$ref) { let l = n.find(s => s.sourceSchema === i); this.#o(l, n) } for (let l in i) if (l !== "$id") { if (r[l] !== void 0) { if (XL(r[l], i[l])) continue; throw new Error(`Cannot resolve ref "${e.ref}". Property "${l}" is already exist in schema "${e.sourceSchemaId}".`) } r[l] = i[l] } e.isResolved = !0 } } #u(e, n) { let r = this.#e[n]; if (r !== void 0) { if (this.#i && XL(e, r.schema)) return; throw new Error(`There is already another schema with id "${n}".`) } this.#e[n] = { schema: e, anchors: {}, refs: [] } } #c(e, n, r) { let { anchors: i } = this.#e[n]; if (i[r] !== void 0) throw new Error(`There is already another anchor "${r}" in a schema "${n}".`); i[r] = e } #p(e, n) { this.#t[n] === void 0 && (this.#t[n] = { schema: e, anchors: {} }) } #f(e, n, r) { let { anchors: i } = this.#t[n]; i[r] = e } }; function WL(t, e) { let n = e.split("/"), r = t; for (let i of n) if (!(i === "" || i === "#")) { if (typeof r != "object" || r === null) return null; r = r[i] } return r ?? null } YL.exports = { RefResolver: Yg } }); var rF = k((wIe, Zg) => { "use strict"; Zg.exports = Oe; Zg.exports.default = Oe; var q9e = { $schema: "http://json-schema.org/draft-07/schema#", $id: "http://json-schema.org/draft-07/schema#", title: "Core schema meta-schema", definitions: { schemaArray: { type: "array", minItems: 1, items: { $ref: "#" } }, nonNegativeInteger: { type: "integer", minimum: 0 }, nonNegativeIntegerDefault0: { allOf: [{ $ref: "#/definitions/nonNegativeInteger" }, { default: 0 }] }, simpleTypes: { enum: ["array", "boolean", "integer", "null", "number", "object", "string"] }, stringArray: { type: "array", items: { type: "string" }, uniqueItems: !0, default: [] } }, type: ["object", "boolean"], properties: { $id: { type: "string", format: "uri-reference" }, $schema: { type: "string", format: "uri" }, $ref: { type: "string", format: "uri-reference" }, $comment: { type: "string" }, title: { type: "string" }, description: { type: "string" }, default: !0, readOnly: { type: "boolean", default: !1 }, examples: { type: "array", items: !0 }, multipleOf: { type: "number", exclusiveMinimum: 0 }, maximum: { type: "number" }, exclusiveMaximum: { type: "number" }, minimum: { type: "number" }, exclusiveMinimum: { type: "number" }, maxLength: { $ref: "#/definitions/nonNegativeInteger" }, minLength: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, pattern: { type: "string", format: "regex" }, additionalItems: { $ref: "#" }, items: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/schemaArray" }], default: !0 }, maxItems: { $ref: "#/definitions/nonNegativeInteger" }, minItems: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, uniqueItems: { type: "boolean", default: !1 }, contains: { $ref: "#" }, maxProperties: { $ref: "#/definitions/nonNegativeInteger" }, minProperties: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, required: { $ref: "#/definitions/stringArray" }, additionalProperties: { $ref: "#" }, definitions: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, properties: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, patternProperties: { type: "object", additionalProperties: { $ref: "#" }, propertyNames: { format: "regex" }, default: {} }, dependencies: { type: "object", additionalProperties: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/stringArray" }] } }, propertyNames: { $ref: "#" }, const: !0, enum: { type: "array", items: !0, minItems: 1, uniqueItems: !0 }, type: { anyOf: [{ $ref: "#/definitions/simpleTypes" }, { type: "array", items: { $ref: "#/definitions/simpleTypes" }, minItems: 1, uniqueItems: !0 }] }, format: { type: "string" }, contentMediaType: { type: "string" }, contentEncoding: { type: "string" }, if: { $ref: "#" }, then: { $ref: "#" }, else: { $ref: "#" }, allOf: { $ref: "#/definitions/schemaArray" }, anyOf: { $ref: "#/definitions/schemaArray" }, oneOf: { $ref: "#/definitions/schemaArray" }, not: { $ref: "#" } }, default: !0 }, ZL = { enum: ["array", "boolean", "integer", "null", "number", "object", "string"] }, eF = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, z9e = r9().fullFormats.uri, tF = r9().fullFormats.regex; function ns(t, { instancePath: e = "", parentData: n, parentDataProperty: r, rootData: i = t } = {}) { let l = null, s = 0, a = s; return typeof t == "number" && !(t % 1) && !isNaN(t) && isFinite(t) ? s === a && typeof t == "number" && isFinite(t) && (t < 0 || isNaN(t)) ? (ns.errors = [{ instancePath: e, schemaPath: "#/definitions/nonNegativeInteger/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" }], !1) : (ns.errors = l, s === 0) : (ns.errors = [{ instancePath: e, schemaPath: "#/definitions/nonNegativeInteger/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1) } var Qg = { validate: Oe }; function il(t, { instancePath: e = "", parentData: n, parentDataProperty: r, rootData: i = t } = {}) { let l = null, s = 0; if (s === 0) if (Array.isArray(t)) { if (t.length < 1) return il.errors = [{ instancePath: e, schemaPath: "#/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" }], !1; { var a = !0; let o = t.length; for (let u = 0; u < o; u++) { let c = s; Qg.validate(t[u], { instancePath: e + "/" + u, parentData: t, parentDataProperty: u, rootData: i }) || (l = l === null ? Qg.validate.errors : l.concat(Qg.validate.errors), s = l.length); var a = c === s; if (!a) break } } } else return il.errors = [{ instancePath: e, schemaPath: "#/type", keyword: "type", params: { type: "array" }, message: "must be array" }], !1; return il.errors = l, s === 0 } var nF = L4().default; function Oe(t, { instancePath: e = "", parentData: n, parentDataProperty: r, rootData: i = t } = {}) { let l = null, s = 0; if (!(t && typeof t == "object" && !Array.isArray(t)) && typeof t != "boolean") return Oe.errors = [{ instancePath: e, schemaPath: "#/type", keyword: "type", params: { type: q9e.type }, message: "must be object,boolean" }], !1; if (s === 0 && t && typeof t == "object" && !Array.isArray(t)) { if (t.$id !== void 0) { let g = t.$id, v = s; if (s === v && s === v) if (typeof g == "string") { if (!eF.test(g)) return Oe.errors = [{ instancePath: e + "/$id", schemaPath: "#/properties/%24id/format", keyword: "format", params: { format: "uri-reference" }, message: 'must match format "uri-reference"' }], !1 } else return Oe.errors = [{ instancePath: e + "/$id", schemaPath: "#/properties/%24id/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = v === s } else var a = !0; if (a) { if (t.$schema !== void 0) { let g = t.$schema, v = s; if (s === v && s === v) if (typeof g == "string") { if (!z9e(g)) return Oe.errors = [{ instancePath: e + "/$schema", schemaPath: "#/properties/%24schema/format", keyword: "format", params: { format: "uri" }, message: 'must match format "uri"' }], !1 } else return Oe.errors = [{ instancePath: e + "/$schema", schemaPath: "#/properties/%24schema/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = v === s } else var a = !0; if (a) { if (t.$ref !== void 0) { let g = t.$ref, v = s; if (s === v && s === v) if (typeof g == "string") { if (!eF.test(g)) return Oe.errors = [{ instancePath: e + "/$ref", schemaPath: "#/properties/%24ref/format", keyword: "format", params: { format: "uri-reference" }, message: 'must match format "uri-reference"' }], !1 } else return Oe.errors = [{ instancePath: e + "/$ref", schemaPath: "#/properties/%24ref/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = v === s } else var a = !0; if (a) { if (t.$comment !== void 0) { let g = s; if (typeof t.$comment != "string") return Oe.errors = [{ instancePath: e + "/$comment", schemaPath: "#/properties/%24comment/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = g === s } else var a = !0; if (a) { if (t.title !== void 0) { let g = s; if (typeof t.title != "string") return Oe.errors = [{ instancePath: e + "/title", schemaPath: "#/properties/title/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = g === s } else var a = !0; if (a) { if (t.description !== void 0) { let g = s; if (typeof t.description != "string") return Oe.errors = [{ instancePath: e + "/description", schemaPath: "#/properties/description/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = g === s } else var a = !0; if (a) { if (t.readOnly !== void 0) { let g = s; if (typeof t.readOnly != "boolean") return Oe.errors = [{ instancePath: e + "/readOnly", schemaPath: "#/properties/readOnly/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; var a = g === s } else var a = !0; if (a) { if (t.examples !== void 0) { let g = s; if (s === g && !Array.isArray(t.examples)) return Oe.errors = [{ instancePath: e + "/examples", schemaPath: "#/properties/examples/type", keyword: "type", params: { type: "array" }, message: "must be array" }], !1; var a = g === s } else var a = !0; if (a) { if (t.multipleOf !== void 0) { let g = t.multipleOf, v = s; if (s === v) if (typeof g == "number" && isFinite(g)) { if (g <= 0 || isNaN(g)) return Oe.errors = [{ instancePath: e + "/multipleOf", schemaPath: "#/properties/multipleOf/exclusiveMinimum", keyword: "exclusiveMinimum", params: { comparison: ">", limit: 0 }, message: "must be > 0" }], !1 } else return Oe.errors = [{ instancePath: e + "/multipleOf", schemaPath: "#/properties/multipleOf/type", keyword: "type", params: { type: "number" }, message: "must be number" }], !1; var a = v === s } else var a = !0; if (a) { if (t.maximum !== void 0) { let g = t.maximum, v = s; if (!(typeof g == "number" && isFinite(g))) return Oe.errors = [{ instancePath: e + "/maximum", schemaPath: "#/properties/maximum/type", keyword: "type", params: { type: "number" }, message: "must be number" }], !1; var a = v === s } else var a = !0; if (a) { if (t.exclusiveMaximum !== void 0) { let g = t.exclusiveMaximum, v = s; if (!(typeof g == "number" && isFinite(g))) return Oe.errors = [{ instancePath: e + "/exclusiveMaximum", schemaPath: "#/properties/exclusiveMaximum/type", keyword: "type", params: { type: "number" }, message: "must be number" }], !1; var a = v === s } else var a = !0; if (a) { if (t.minimum !== void 0) { let g = t.minimum, v = s; if (!(typeof g == "number" && isFinite(g))) return Oe.errors = [{ instancePath: e + "/minimum", schemaPath: "#/properties/minimum/type", keyword: "type", params: { type: "number" }, message: "must be number" }], !1; var a = v === s } else var a = !0; if (a) { if (t.exclusiveMinimum !== void 0) { let g = t.exclusiveMinimum, v = s; if (!(typeof g == "number" && isFinite(g))) return Oe.errors = [{ instancePath: e + "/exclusiveMinimum", schemaPath: "#/properties/exclusiveMinimum/type", keyword: "type", params: { type: "number" }, message: "must be number" }], !1; var a = v === s } else var a = !0; if (a) { if (t.maxLength !== void 0) { let g = t.maxLength, v = s, x = s; if (!(typeof g == "number" && !(g % 1) && !isNaN(g) && isFinite(g))) return Oe.errors = [{ instancePath: e + "/maxLength", schemaPath: "#/definitions/nonNegativeInteger/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; if (s === x && typeof g == "number" && isFinite(g) && (g < 0 || isNaN(g))) return Oe.errors = [{ instancePath: e + "/maxLength", schemaPath: "#/definitions/nonNegativeInteger/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" }], !1; var a = v === s } else var a = !0; if (a) { if (t.minLength !== void 0) { let g = s; ns(t.minLength, { instancePath: e + "/minLength", parentData: t, parentDataProperty: "minLength", rootData: i }) || (l = l === null ? ns.errors : l.concat(ns.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.pattern !== void 0) { let g = t.pattern, v = s; if (s === v && s === v) if (typeof g == "string") { if (!tF(g)) return Oe.errors = [{ instancePath: e + "/pattern", schemaPath: "#/properties/pattern/format", keyword: "format", params: { format: "regex" }, message: 'must match format "regex"' }], !1 } else return Oe.errors = [{ instancePath: e + "/pattern", schemaPath: "#/properties/pattern/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = v === s } else var a = !0; if (a) { if (t.additionalItems !== void 0) { let g = s; Oe(t.additionalItems, { instancePath: e + "/additionalItems", parentData: t, parentDataProperty: "additionalItems", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.items !== void 0) { let g = t.items, v = s, x = s, O = !1, N = s; Oe(g, { instancePath: e + "/items", parentData: t, parentDataProperty: "items", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var o = N === s; if (O = O || o, !O) { let U = s; il(g, { instancePath: e + "/items", parentData: t, parentDataProperty: "items", rootData: i }) || (l = l === null ? il.errors : l.concat(il.errors), s = l.length); var o = U === s; O = O || o } if (O) s = x, l !== null && (x ? l.length = x : l = null); else { let U = { instancePath: e + "/items", schemaPath: "#/properties/items/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf" }; return l === null ? l = [U] : l.push(U), s++, Oe.errors = l, !1 } var a = v === s } else var a = !0; if (a) { if (t.maxItems !== void 0) { let g = t.maxItems, v = s, x = s; if (!(typeof g == "number" && !(g % 1) && !isNaN(g) && isFinite(g))) return Oe.errors = [{ instancePath: e + "/maxItems", schemaPath: "#/definitions/nonNegativeInteger/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; if (s === x && typeof g == "number" && isFinite(g) && (g < 0 || isNaN(g))) return Oe.errors = [{ instancePath: e + "/maxItems", schemaPath: "#/definitions/nonNegativeInteger/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" }], !1; var a = v === s } else var a = !0; if (a) { if (t.minItems !== void 0) { let g = s; ns(t.minItems, { instancePath: e + "/minItems", parentData: t, parentDataProperty: "minItems", rootData: i }) || (l = l === null ? ns.errors : l.concat(ns.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.uniqueItems !== void 0) { let g = s; if (typeof t.uniqueItems != "boolean") return Oe.errors = [{ instancePath: e + "/uniqueItems", schemaPath: "#/properties/uniqueItems/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; var a = g === s } else var a = !0; if (a) { if (t.contains !== void 0) { let g = s; Oe(t.contains, { instancePath: e + "/contains", parentData: t, parentDataProperty: "contains", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.maxProperties !== void 0) { let g = t.maxProperties, v = s, x = s; if (!(typeof g == "number" && !(g % 1) && !isNaN(g) && isFinite(g))) return Oe.errors = [{ instancePath: e + "/maxProperties", schemaPath: "#/definitions/nonNegativeInteger/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; if (s === x && typeof g == "number" && isFinite(g) && (g < 0 || isNaN(g))) return Oe.errors = [{ instancePath: e + "/maxProperties", schemaPath: "#/definitions/nonNegativeInteger/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" }], !1; var a = v === s } else var a = !0; if (a) { if (t.minProperties !== void 0) { let g = s; ns(t.minProperties, { instancePath: e + "/minProperties", parentData: t, parentDataProperty: "minProperties", rootData: i }) || (l = l === null ? ns.errors : l.concat(ns.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.required !== void 0) { let g = t.required, v = s; if (s === s) if (Array.isArray(g)) { var u = !0; let N = g.length; for (let R = 0; R < N; R++) { let U = s; if (typeof g[R] != "string") return Oe.errors = [{ instancePath: e + "/required/" + R, schemaPath: "#/definitions/stringArray/items/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var u = U === s; if (!u) break } if (u) { let R = g.length, U; if (R > 1) { let F = {}; for (; R--;) { let te = g[R]; if (typeof te == "string") { if (typeof F[te] == "number") { return U = F[te], Oe.errors = [{ instancePath: e + "/required", schemaPath: "#/definitions/stringArray/uniqueItems", keyword: "uniqueItems", params: { i: R, j: U }, message: "must NOT have duplicate items (items ## " + U + " and " + R + " are identical)" }], !1; break } F[te] = R } } } } } else return Oe.errors = [{ instancePath: e + "/required", schemaPath: "#/definitions/stringArray/type", keyword: "type", params: { type: "array" }, message: "must be array" }], !1; var a = v === s } else var a = !0; if (a) { if (t.additionalProperties !== void 0) { let g = s; Oe(t.additionalProperties, { instancePath: e + "/additionalProperties", parentData: t, parentDataProperty: "additionalProperties", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.definitions !== void 0) { let g = t.definitions, v = s; if (s === v) if (g && typeof g == "object" && !Array.isArray(g)) for (let O in g) { let N = s; Oe(g[O], { instancePath: e + "/definitions/" + O.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: g, parentDataProperty: O, rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var c = N === s; if (!c) break } else return Oe.errors = [{ instancePath: e + "/definitions", schemaPath: "#/properties/definitions/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var a = v === s } else var a = !0; if (a) { if (t.properties !== void 0) { let g = t.properties, v = s; if (s === v) if (g && typeof g == "object" && !Array.isArray(g)) for (let O in g) { let N = s; Oe(g[O], { instancePath: e + "/properties/" + O.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: g, parentDataProperty: O, rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var f = N === s; if (!f) break } else return Oe.errors = [{ instancePath: e + "/properties", schemaPath: "#/properties/properties/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var a = v === s } else var a = !0; if (a) { if (t.patternProperties !== void 0) { let g = t.patternProperties, v = s; if (s === v) if (g && typeof g == "object" && !Array.isArray(g)) { for (let O in g) { let N = s; if (s === N && typeof O == "string" && !tF(O)) { let R = { instancePath: e + "/patternProperties", schemaPath: "#/properties/patternProperties/propertyNames/format", keyword: "format", params: { format: "regex" }, message: 'must match format "regex"', propertyName: O }; l === null ? l = [R] : l.push(R), s++ } var m = N === s; if (!m) { let R = { instancePath: e + "/patternProperties", schemaPath: "#/properties/patternProperties/propertyNames", keyword: "propertyNames", params: { propertyName: O }, message: "property name must be valid" }; return l === null ? l = [R] : l.push(R), s++, Oe.errors = l, !1; break } } if (m) for (let O in g) { let N = s; Oe(g[O], { instancePath: e + "/patternProperties/" + O.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: g, parentDataProperty: O, rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var d = N === s; if (!d) break } } else return Oe.errors = [{ instancePath: e + "/patternProperties", schemaPath: "#/properties/patternProperties/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var a = v === s } else var a = !0; if (a) { if (t.dependencies !== void 0) { let g = t.dependencies, v = s; if (s === v) if (g && typeof g == "object" && !Array.isArray(g)) for (let O in g) { let N = g[O], R = s, U = s, F = !1, te = s; Oe(N, { instancePath: e + "/dependencies/" + O.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: g, parentDataProperty: O, rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var y = te === s; if (F = F || y, !F) { let Q = s; if (s === s) if (Array.isArray(N)) { var _ = !0; let we = N.length; for (let se = 0; se < we; se++) { let ee = s; if (typeof N[se] != "string") { let P = { instancePath: e + "/dependencies/" + O.replace(/~/g, "~0").replace(/\//g, "~1") + "/" + se, schemaPath: "#/definitions/stringArray/items/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [P] : l.push(P), s++ } var _ = ee === s; if (!_) break } if (_) { let se = N.length, ee; if (se > 1) { let me = {}; for (; se--;) { let P = N[se]; if (typeof P == "string") { if (typeof me[P] == "number") { ee = me[P]; let G = { instancePath: e + "/dependencies/" + O.replace(/~/g, "~0").replace(/\//g, "~1"), schemaPath: "#/definitions/stringArray/uniqueItems", keyword: "uniqueItems", params: { i: se, j: ee }, message: "must NOT have duplicate items (items ## " + ee + " and " + se + " are identical)" }; l === null ? l = [G] : l.push(G), s++; break } me[P] = se } } } } } else { let we = { instancePath: e + "/dependencies/" + O.replace(/~/g, "~0").replace(/\//g, "~1"), schemaPath: "#/definitions/stringArray/type", keyword: "type", params: { type: "array" }, message: "must be array" }; l === null ? l = [we] : l.push(we), s++ } var y = Q === s; F = F || y } if (F) s = U, l !== null && (U ? l.length = U : l = null); else { let Q = { instancePath: e + "/dependencies/" + O.replace(/~/g, "~0").replace(/\//g, "~1"), schemaPath: "#/properties/dependencies/additionalProperties/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf" }; return l === null ? l = [Q] : l.push(Q), s++, Oe.errors = l, !1 } var S = R === s; if (!S) break } else return Oe.errors = [{ instancePath: e + "/dependencies", schemaPath: "#/properties/dependencies/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var a = v === s } else var a = !0; if (a) { if (t.propertyNames !== void 0) { let g = s; Oe(t.propertyNames, { instancePath: e + "/propertyNames", parentData: t, parentDataProperty: "propertyNames", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.enum !== void 0) { let g = t.enum, v = s; if (s === v) if (Array.isArray(g)) { if (g.length < 1) return Oe.errors = [{ instancePath: e + "/enum", schemaPath: "#/properties/enum/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" }], !1; { let O = g.length, N; if (O > 1) { e: for (; O--;)for (N = O; N--;)if (nF(g[O], g[N])) { return Oe.errors = [{ instancePath: e + "/enum", schemaPath: "#/properties/enum/uniqueItems", keyword: "uniqueItems", params: { i: O, j: N }, message: "must NOT have duplicate items (items ## " + N + " and " + O + " are identical)" }], !1; break e } } } } else return Oe.errors = [{ instancePath: e + "/enum", schemaPath: "#/properties/enum/type", keyword: "type", params: { type: "array" }, message: "must be array" }], !1; var a = v === s } else var a = !0; if (a) { if (t.type !== void 0) { let g = t.type, v = s, x = s, O = !1, N = s; if (!(g === "array" || g === "boolean" || g === "integer" || g === "null" || g === "number" || g === "object" || g === "string")) { let U = { instancePath: e + "/type", schemaPath: "#/definitions/simpleTypes/enum", keyword: "enum", params: { allowedValues: ZL.enum }, message: "must be equal to one of the allowed values" }; l === null ? l = [U] : l.push(U), s++ } var w = N === s; if (O = O || w, !O) { let U = s; if (s === U) if (Array.isArray(g)) if (g.length < 1) { let te = { instancePath: e + "/type", schemaPath: "#/properties/type/anyOf/1/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" }; l === null ? l = [te] : l.push(te), s++ } else { var E = !0; let te = g.length; for (let Q = 0; Q < te; Q++) { let W = g[Q], ce = s; if (!(W === "array" || W === "boolean" || W === "integer" || W === "null" || W === "number" || W === "object" || W === "string")) { let se = { instancePath: e + "/type/" + Q, schemaPath: "#/definitions/simpleTypes/enum", keyword: "enum", params: { allowedValues: ZL.enum }, message: "must be equal to one of the allowed values" }; l === null ? l = [se] : l.push(se), s++ } var E = ce === s; if (!E) break } if (E) { let Q = g.length, W; if (Q > 1) { e: for (; Q--;)for (W = Q; W--;)if (nF(g[Q], g[W])) { let ce = { instancePath: e + "/type", schemaPath: "#/properties/type/anyOf/1/uniqueItems", keyword: "uniqueItems", params: { i: Q, j: W }, message: "must NOT have duplicate items (items ## " + W + " and " + Q + " are identical)" }; l === null ? l = [ce] : l.push(ce), s++; break e } } } } else { let te = { instancePath: e + "/type", schemaPath: "#/properties/type/anyOf/1/type", keyword: "type", params: { type: "array" }, message: "must be array" }; l === null ? l = [te] : l.push(te), s++ } var w = U === s; O = O || w } if (O) s = x, l !== null && (x ? l.length = x : l = null); else { let U = { instancePath: e + "/type", schemaPath: "#/properties/type/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf" }; return l === null ? l = [U] : l.push(U), s++, Oe.errors = l, !1 } var a = v === s } else var a = !0; if (a) { if (t.format !== void 0) { let g = s; if (typeof t.format != "string") return Oe.errors = [{ instancePath: e + "/format", schemaPath: "#/properties/format/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = g === s } else var a = !0; if (a) { if (t.contentMediaType !== void 0) { let g = s; if (typeof t.contentMediaType != "string") return Oe.errors = [{ instancePath: e + "/contentMediaType", schemaPath: "#/properties/contentMediaType/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = g === s } else var a = !0; if (a) { if (t.contentEncoding !== void 0) { let g = s; if (typeof t.contentEncoding != "string") return Oe.errors = [{ instancePath: e + "/contentEncoding", schemaPath: "#/properties/contentEncoding/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; var a = g === s } else var a = !0; if (a) { if (t.if !== void 0) { let g = s; Oe(t.if, { instancePath: e + "/if", parentData: t, parentDataProperty: "if", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.then !== void 0) { let g = s; Oe(t.then, { instancePath: e + "/then", parentData: t, parentDataProperty: "then", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.else !== void 0) { let g = s; Oe(t.else, { instancePath: e + "/else", parentData: t, parentDataProperty: "else", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.allOf !== void 0) { let g = s; il(t.allOf, { instancePath: e + "/allOf", parentData: t, parentDataProperty: "allOf", rootData: i }) || (l = l === null ? il.errors : l.concat(il.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.anyOf !== void 0) { let g = s; il(t.anyOf, { instancePath: e + "/anyOf", parentData: t, parentDataProperty: "anyOf", rootData: i }) || (l = l === null ? il.errors : l.concat(il.errors), s = l.length); var a = g === s } else var a = !0; if (a) { if (t.oneOf !== void 0) { let g = s; il(t.oneOf, { instancePath: e + "/oneOf", parentData: t, parentDataProperty: "oneOf", rootData: i }) || (l = l === null ? il.errors : l.concat(il.errors), s = l.length); var a = g === s } else var a = !0; if (a) if (t.not !== void 0) { let g = s; Oe(t.not, { instancePath: e + "/not", parentData: t, parentDataProperty: "not", rootData: i }) || (l = l === null ? Oe.errors : l.concat(Oe.errors), s = l.length); var a = g === s } else var a = !0 } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } return Oe.errors = l, s === 0 } }); var lF = k((SIe, iF) => { "use strict"; var ev = class t { constructor(e, n, r = "#") { this.schema = e, this.schemaId = n, this.jsonPointer = r, this.mergedSchemaId = null } getPropertyLocation(e) { let n = new t(this.schema[e], this.schemaId, this.jsonPointer + "/" + e); return this.mergedSchemaId !== null && n.addMergedSchema(this.schema[e], this.mergedSchemaId, this.jsonPointer + "/" + e), n } getSchemaId() { return this.mergedSchemaId || this.schemaId } getOriginSchemaId() { return this.schemaId } getSchemaRef() { return this.getSchemaId() + this.jsonPointer } addMergedSchema(e, n, r = "#") { this.schema = e, this.mergedSchemaId = n, this.jsonPointer = r } }; iF.exports = ev }); var vF = k((TIe, T1) => {
"use strict"; var tv = KL()(), G9e = p4()({ proto: !0 }), { RefResolver: J9e } = QL(), sF = rF(), K9e = lm(), X9e = Yy(), oF = lF(), W9e = /'/g, M9 = 2e4, uF = "default", Y9e = ["floor", "ceil", "round", "trunc"], cF = ["default", "json-stringify"], w1 = "!addComma && (addComma = true) || (json += ',')", pF = 0; function nv(t, e) { if (!sF(t)) { e ? e = `"${e}" ` : e = ""; let n = sF.errors[0], r = new Error(`${e}schema is invalid: data${n.instancePath} ${n.message}`); throw r.errors = nv.errors, r } } function S1(t, e, n) { let r = n.indexOf("#"); r === -1 && (r = n.length); let i = n.slice(0, r) || e.getOriginSchemaId(), l = n.slice(r) || "#", s = t.refResolver.getSchema(i, l); if (s === null) throw new Error(`Cannot find reference "${n}"`); let a = new oF(s, i, l); return s.$ref !== void 0 ? S1(t, a, s.$ref) : a } function aF(t, e) { return t.$id && t.$id.charAt(0) !== "#" ? t.$id : e } function rv(t, e) {
nv(t), e = e || {}; let n = { functions: [], functionsCounter: 0, functionsNamesBySchema: new Map, options: e, wrapObjects: !0, refResolver: new J9e, rootSchemaId: t.$id || `__fjs_root_${pF++}`, validatorSchemasIds: new Set }, r = aF(t, n.rootSchemaId); if (n.refResolver.hasSchema(r) || n.refResolver.addSchema(t, n.rootSchemaId), e.schema) for (let c in e.schema) { let f = e.schema[c], m = aF(f, c); n.refResolver.hasSchema(m) || (nv(f, c), n.refResolver.addSchema(f, c)) } if (e.rounding && !Y9e.includes(e.rounding)) throw new Error(`Unsupported integer rounding method ${e.rounding}`); if (e.largeArrayMechanism) if (cF.includes(e.largeArrayMechanism)) uF = e.largeArrayMechanism; else throw new Error(`Unsupported large array mechanism ${e.largeArrayMechanism}`); if (e.largeArraySize) if (typeof e.largeArraySize == "string" && Number.isFinite(Number.parseInt(e.largeArraySize, 10))) M9 = Number.parseInt(e.largeArraySize, 10); else if (typeof e.largeArraySize == "number" && Number.isInteger(e.largeArraySize)) M9 = e.largeArraySize; else if (typeof e.largeArraySize == "bigint") M9 = Number(e.largeArraySize); else throw new Error(`Unsupported large array size. Expected integer-like, got ${typeof e.largeArraySize} with value ${e.largeArraySize}`); let i = new oF(t, n.rootSchemaId), l = na(n, i, "input"), s; l === "json += anonymous0(input)" ? s = `
${n.functions.join(`
`)}
const main = anonymous0
return main
`: s = `
function main (input) {
let json = ''
${l}
return json
}
${n.functions.join(`
`)}
return main
`; let a = new K9e(e), o = new X9e(e.ajv); for (let c of n.validatorSchemasIds) { let f = n.refResolver.getSchema(c); o.addSchema(f, c); let m = n.refResolver.getSchemaDependencies(c); for (let [d, y] of Object.entries(m)) o.addSchema(y, d) } if (e.debugMode && (e.mode = "debug"), e.mode === "debug") return {
validator: o, serializer: a, code: `validator
serializer
${s}`, ajv: o.ajv
}; let u = new Function("validator", "serializer", s); return e.mode === "standalone" ? Zy()(u, n, a, o) : u(o, a)
} var Q9e = ["properties", "required", "additionalProperties", "patternProperties", "maxProperties", "minProperties", "dependencies"], Z9e = ["items", "additionalItems", "maxItems", "minItems", "uniqueItems", "contains"], e7e = ["maxLength", "minLength", "pattern"], t7e = ["multipleOf", "maximum", "exclusiveMaximum", "minimum", "exclusiveMinimum"]; function fF(t) { for (var e of Q9e) if (e in t) return "object"; for (var e of Z9e) if (e in t) return "array"; for (var e of e7e) if (e in t) return "string"; for (var e of t7e) if (e in t) return "number"; return t.type } function n7e(t, e) {
let n = e.schema, r = Object.keys(n.properties || {}), i = `
const propertiesKeys = ${JSON.stringify(r)}
for (const [key, value] of Object.entries(obj)) {
if (
propertiesKeys.includes(key) ||
value === undefined ||
typeof value === 'function' ||
typeof value === 'symbol'
) continue
`, l = e.getPropertyLocation("patternProperties"), s = l.schema; if (s !== void 0) for (let u in s) {
let c = l.getPropertyLocation(u); i += `
if (/${u.replace(/\\*\//g, "\\/")}/.test(key)) {
${w1}
json += serializer.asString(key) + ':'
${na(t, c, "value")}
continue
}
`} let o = e.getPropertyLocation("additionalProperties").schema; if (o !== void 0) if (o === !0) i += `
${w1}
json += serializer.asString(key) + ':' + JSON.stringify(value)
`; else {
let u = e.getPropertyLocation("additionalProperties"); i += `
${w1}
json += serializer.asString(key) + ':'
${na(t, u, "value")}
`} return i += `
}
`, i
} function r7e(t, e) {
let n = "", r = e.schema, i = r.required || [], l = e.getPropertyLocation("properties"), s = [], a = []; if (r.properties) for (let u of Object.keys(r.properties)) {
if (i.indexOf(u) === -1) continue; let c = l.getPropertyLocation(u); c.schema.$ref && (c = S1(t, e, c.schema.$ref)); let f = JSON.stringify(u); c.schema.default === void 0 && (n += `if (obj[${f}] === undefined) throw new Error('${f} is required!')
`, a.push(u)), s.push(u)
} for (let u of i) s.indexOf(u) === -1 && (n += `if (obj['${u}'] === undefined) throw new Error('"${u}" is required!')
`); n += `
let addComma = false
let json = '${t.wrapObjects ? "{" : ""}'
`; let o = t.wrapObjects; if (t.wrapObjects = !0, r.properties) for (let u of Object.keys(r.properties)) {
let c = l.getPropertyLocation(u); c.schema.$ref && (c = S1(t, e, c.schema.$ref)); let f = JSON.stringify(u); if (a.indexOf(u) !== -1) n += `
${w1}
json += ${JSON.stringify(f + ":")}
${na(t, c, `obj[${f}]`)}
`; else {
n += `
if (obj[${f}] !== undefined) {
${w1}
json += ${JSON.stringify(f + ":")}
${na(t, c, `obj[${f}]`)}
}
`; let m = c.schema.default; m !== void 0 && (n += `
else {
${w1}
json += ${JSON.stringify(f + ":" + JSON.stringify(m))}
}
`)
}
} return (r.patternProperties || r.additionalProperties) && (n += n7e(t, e)), t.wrapObjects = o, n += `
return json${t.wrapObjects ? " + '}'" : ""}
`, n
} function dF(t, e, n, r) { let i = e.getPropertyLocation("allOf"); for (let l = 0; l < n.allOf.length; l++) { let s = n.allOf[l]; if (s.$ref) { let o = i.getPropertyLocation(l); s = S1(t, o, s.$ref).schema } let a = s.type; if (a === void 0 && (a = fF(s)), a !== void 0) { if (r.type !== void 0 && r.type !== a) throw new Error("allOf schemas have different type values"); r.type = a } if (s.format !== void 0) { if (r.format !== void 0 && r.format !== s.format) throw new Error("allOf schemas have different format values"); r.format = s.format } if (s.nullable !== void 0) { if (r.nullable !== void 0 && r.nullable !== s.nullable) throw new Error("allOf schemas have different nullable values"); r.nullable = s.nullable } s.properties !== void 0 && (r.properties === void 0 && (r.properties = {}), Object.assign(r.properties, s.properties)), s.additionalProperties !== void 0 && (r.additionalProperties === void 0 && (r.additionalProperties = {}), Object.assign(r.additionalProperties, s.additionalProperties)), s.patternProperties !== void 0 && (r.patternProperties === void 0 && (r.patternProperties = {}), Object.assign(r.patternProperties, s.patternProperties)), s.required !== void 0 && (r.required === void 0 && (r.required = []), r.required.push(...s.required)), s.oneOf !== void 0 && (r.oneOf === void 0 && (r.oneOf = []), r.oneOf.push(...s.oneOf)), s.anyOf !== void 0 && (r.anyOf === void 0 && (r.anyOf = []), r.anyOf.push(...s.anyOf)), s.allOf !== void 0 && dF(t, e, s, r) } delete r.allOf, r.$id = `__fjs_merged_${pF++}`, t.refResolver.addSchema(r), e.addMergedSchema(r, r.$id) } function i7e(t, e, n) {
t.validatorSchemasIds.add(e.getSchemaId()); let r = tv({}, e.schema), i = r.then, l = r.else || { additionalProperties: !0 }; delete r.if, delete r.then, delete r.else; let a = e.getPropertyLocation("if").getSchemaRef(), o = e.getPropertyLocation("then"); o.schema = tv(r, i); let u = e.getPropertyLocation("else"); return u.schema = tv(r, l), `
if (validator.validate("${a}", ${n})) {
${na(t, o, n)}
} else {
${na(t, u, n)}
}
`} function l7e(t) {
return `(${t} && typeof ${t}.toJSON === 'function')
? ${t}.toJSON()
: ${t}
`} function hF(t, e) {
let n = e.schema; if (t.functionsNamesBySchema.has(n)) return t.functionsNamesBySchema.get(n); let r = yF(t); t.functionsNamesBySchema.set(n, r); let i = e.getSchemaRef(); i.startsWith(t.rootSchemaId) && (i = i.replace(t.rootSchemaId, "")); let l = `
`, s = n.nullable === !0; return l += `
// ${i}
function ${r} (input) {
const obj = ${l7e("input")}
${s ? "" : "if (obj === null) return '{}'"}
${r7e(t, e)}
}
`, t.functions.push(l), r
} function s7e(t, e) {
let n = e.schema, r = e.getPropertyLocation("items"); r.schema = r.schema || {}, r.schema.$ref && (r = S1(t, r, r.schema.$ref)); let i = r.schema; if (t.functionsNamesBySchema.has(n)) return t.functionsNamesBySchema.get(n); let l = yF(t); t.functionsNamesBySchema.set(n, l); let s = e.getSchemaRef(); s.startsWith(t.rootSchemaId) && (s = s.replace(t.rootSchemaId, "")); let a = `
function ${l} (obj) {
// ${s}
`, o = n.nullable === !0; if (a += `
${o ? "" : "if (obj === null) return '[]'"}
if (!Array.isArray(obj)) {
throw new TypeError(\`The value of '${s}' does not match schema definition.\`)
}
const arrayLength = obj.length
`, !n.additionalItems && Array.isArray(i) && (a += `
if (arrayLength > ${i.length}) {
throw new Error(\`Item at ${i.length} does not match schema definition.\`)
}
`), uF === "json-stringify" && (a += `if (arrayLength && arrayLength >= ${M9}) return JSON.stringify(obj)
`), a += `
let jsonOutput = ''
`, Array.isArray(i)) {
for (let u = 0; u < i.length; u++) {
let c = i[u], f = na(t, r.getPropertyLocation(u), `obj[${u}]`); a += `
if (${u} < arrayLength) {
if (${mF(c.type, `[${u}]`)}) {
let json = ''
${f}
jsonOutput += json
if (${u} < arrayLength - 1) {
jsonOutput += ','
}
} else {
throw new Error(\`Item at ${u} does not match schema definition.\`)
}
}
`} n.additionalItems && (a += `
for (let i = ${i.length}; i < arrayLength; i++) {
jsonOutput += JSON.stringify(obj[i])
if (i < arrayLength - 1) {
jsonOutput += ','
}
}`)
} else {
let u = na(t, r, "obj[i]"); a += `
for (let i = 0; i < arrayLength; i++) {
let json = ''
${u}
jsonOutput += json
if (i < arrayLength - 1) {
jsonOutput += ','
}
}`} return a += "\n return `[${jsonOutput}]`\n }", t.functions.push(a), l
} function mF(t, e) {
let n; switch (t) {
case "null": n = `obj${e} === null`; break; case "string": n = `typeof obj${e} === 'string' ||
obj${e} === null ||
obj${e} instanceof Date ||
obj${e} instanceof RegExp ||
(
typeof obj${e} === "object" &&
typeof obj${e}.toString === "function" &&
obj${e}.toString !== Object.prototype.toString
)`; break; case "integer": n = `Number.isInteger(obj${e})`; break; case "number": n = `Number.isFinite(obj${e})`; break; case "boolean": n = `typeof obj${e} === 'boolean'`; break; case "object": n = `obj${e} && typeof obj${e} === 'object' && obj${e}.constructor === Object`; break; case "array": n = `Array.isArray(obj${e})`; break; default: Array.isArray(t) && (n = `(${t.map(i => mF(i, e)).join(" || ")})`)
}return n
} function yF(t) { return "anonymous" + t.functionsCounter++ } function a7e(t, e, n) {
let i = e.schema.type.sort(a => a === "null" ? -1 : 1), l = ""; i.forEach((a, o) => {
e.schema = { ...e.schema, type: a }; let u = gF(t, e, n), c = o === 0 ? "if" : "else if"; switch (a) {
case "null": l += `
${c} (${n} === null)
${u}
`; break; case "string": {
l += `
${c}(
typeof ${n} === "string" ||
${n} === null ||
${n} instanceof Date ||
${n} instanceof RegExp ||
(
typeof ${n} === "object" &&
typeof ${n}.toString === "function" &&
${n}.toString !== Object.prototype.toString
)
)
${u}
`; break
} case "array": {
l += `
${c}(Array.isArray(${n}))
${u}
`; break
} case "integer": {
l += `
${c}(Number.isInteger(${n}) || ${n} === null)
${u}
`; break
} default: {
l += `
${c}(typeof ${n} === "${a}" || ${n} === null)
${u}
`; break
}
}
}); let s = e.getSchemaRef(); return s.startsWith(t.rootSchemaId) && (s = s.replace(t.rootSchemaId, "")), l += `
else throw new TypeError(\`The value of '${s}' does not match schema definition.\`)
`, l
} function gF(t, e, n) { let r = e.schema; switch (r.type) { case "null": return "json += 'null'"; case "string": return r.format === "date-time" ? `json += serializer.asDateTime(${n})` : r.format === "date" ? `json += serializer.asDate(${n})` : r.format === "time" ? `json += serializer.asTime(${n})` : `json += serializer.asString(${n})`; case "integer": return `json += serializer.asInteger(${n})`; case "number": return `json += serializer.asNumber(${n})`; case "boolean": return `json += serializer.asBoolean(${n})`; case "object": return `json += ${hF(t, e)}(${n})`; case "array": return `json += ${s7e(t, e)}(${n})`; case void 0: return `json += JSON.stringify(${n})`; default: throw new Error(`${r.type} unsupported`) } } function o7e(t, e) {
let n = t.schema, r = n.type, i = Array.isArray(r) && r.includes("null"), l = ""; return i && (l += `
if (${e} === null) {
json += 'null'
} else {
`), l += `json += '${JSON.stringify(n.const).replace(W9e, "\\'")}'`, i && (l += `
}
`), l
} function na(t, e, n) {
let r = e.schema; if (typeof r == "boolean") return `json += JSON.stringify(${n})`; if (r.$ref && (e = S1(t, e, r.$ref), r = e.schema), r.type === void 0) { let a = fF(r); a && (r.type = a) } if (r.if && r.then) return i7e(t, e, n); r.allOf && (dF(t, e, r, G9e(r)), r = e.schema); let i = r.type, l = ""; if ((i === void 0 || i === "object") && (r.anyOf || r.oneOf)) {
if (t.validatorSchemasIds.add(e.getSchemaId()), r.type === "object") {
t.wrapObjects = !1; let c = hF(t, e); l += `
json += '{'
json += ${c}(${n})
json += ','
`} let a = r.anyOf ? "anyOf" : "oneOf", o = e.getPropertyLocation(a); for (let c = 0; c < e.schema[a].length; c++) {
let f = o.getPropertyLocation(c), m = f.getSchemaRef(), d = na(t, f, n); l += `
${c === 0 ? "if" : "else if"}(validator.validate("${m}", ${n}))
${d}
`} let u = e.getSchemaRef(); return u.startsWith(t.rootSchemaId) && (u = u.replace(t.rootSchemaId, "")), l += `
else throw new TypeError(\`The value of '${u}' does not match schema definition.\`)
`, r.type === "object" && (l += `
json += '}'
`, t.wrapObjects = !0), l
} let s = r.nullable === !0; return s && (l += `
if (${n} === null) {
json += 'null'
} else {
`), r.const !== void 0 ? l += o7e(e, n) : Array.isArray(i) ? l += a7e(t, e, n) : l += gF(t, e, n), s && (l += `
}
`), l
} T1.exports = rv; T1.exports.default = rv; T1.exports.build = rv; T1.exports.validLargeArrayMechanisms = cF; T1.exports.restore = function ({ code: t, validator: e, serializer: n }) { return Function.apply(null, ["validator", "serializer", t]).apply(null, [e, n]) }
}); var EF = k((xIe, iv) => { "use strict"; var u7e = lv(); function _F(t = { readMode: !0 }) { if (t.readMode === !0 && typeof t.restoreFunction != "function") throw new Error("You must provide a function for the restoreFunction-option when readMode ON"); if (t.readMode !== !0 && typeof t.storeFunction != "function") throw new Error("You must provide a function for the storeFunction-option when readMode OFF"); if (t.readMode === !0) return function () { return function (r) { return t.restoreFunction(r) } }; let e = u7e(); return function (r, i = {}) { i.mode = "standalone"; let l = e(r, i); return function (s) { let a = l(s); return t.storeFunction(s, a), new Function(a) } } } iv.exports = _F; iv.exports.default = _F }); var lv = k((AIe, ac) => { "use strict"; var c7e = vF(); function sv() { return function (e, n) { let r = Object.assign({}, n, { schema: e }); return p7e.bind(null, r) } } function p7e(t, { schema: e }) { return t.schema && e.$id && t.schema[e.$id] && (t.schema = { ...t.schema }, delete t.schema[e.$id]), c7e(e, t) } ac.exports = sv; ac.exports.default = sv; ac.exports.SerializerSelector = sv; ac.exports.StandaloneSerializer = EF() }); var Ja = k(oc => { "use strict"; Object.defineProperty(oc, "__esModule", { value: !0 }); oc.checkMetadata = void 0; var f7e = Nt(), d7e = { keyword: "metadata", schemaType: "object", code(t) { bF(t); let { gen: e, schema: n, it: r } = t; if ((0, f7e.alwaysValidSchema)(r, n)) return; let i = e.name("valid"); t.subschema({ keyword: "metadata", jtdMetadata: !0 }, i), t.ok(i) } }; function bF({ it: t, keyword: e }, n) { if (t.jtdMetadata !== n) throw new Error(`JTD: "${e}" cannot be used in this schema location`) } oc.checkMetadata = bF; oc.default = d7e }); var $9 = k(cc => { "use strict"; Object.defineProperty(cc, "__esModule", { value: !0 }); cc.hasRef = void 0; var wF = N3(), uc = st(), h7e = A2(), SF = Yl(), TF = Wm(), m7e = Ja(), y7e = { keyword: "ref", schemaType: "string", code(t) { (0, m7e.checkMetadata)(t); let { gen: e, data: n, schema: r, parentSchema: i, it: l } = t, { schemaEnv: { root: s } } = l, a = e.name("valid"); i.nullable ? (e.var(a, (0, uc._)`${n} === null`), e.if((0, uc.not)(a), o)) : (e.var(a, !1), o()), t.ok(a); function o() { var f; let m = (f = s.schema.definitions) === null || f === void 0 ? void 0 : f[r]; if (!m) throw new h7e.default(l.opts.uriResolver, "", r, `No definition ${r}`); av(m) || !l.opts.inlineRefs ? u(m) : c(m) } function u(f) { let m = wF.compileSchema.call(l.self, new wF.SchemaEnv({ schema: f, root: s, schemaPath: `/definitions/${r}` })), d = (0, TF.getValidate)(t, m), y = e.const("_errs", SF.default.errors); (0, TF.callRef)(t, d, m, m.$async), e.assign(a, (0, uc._)`${y} === ${SF.default.errors}`) } function c(f) { let m = e.scopeValue("schema", l.opts.code.source === !0 ? { ref: f, code: (0, uc.stringify)(f) } : { ref: f }); t.subschema({ schema: f, dataTypes: [], schemaPath: uc.nil, topSchemaRef: m, errSchemaPath: `/definitions/${r}` }, a) } } }; function av(t) { for (let e in t) { let n; if (e === "ref" || typeof (n = t[e]) == "object" && av(n)) return !0 } return !1 } cc.hasRef = av; cc.default = y7e }); var uv = k(ov => { "use strict"; Object.defineProperty(ov, "__esModule", { value: !0 }); var g7e = /t|\s/i, v7e = /^(\d\d\d\d)-(\d\d)-(\d\d)$/, _7e = /^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i, E7e = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function AF(t, e) { let n = t.split(g7e); return n.length === 2 && xF(n[0]) && b7e(n[1]) || e && n.length === 1 && xF(n[0]) } ov.default = AF; function xF(t) { let e = v7e.exec(t); if (!e) return !1; let n = +e[1], r = +e[2], i = +e[3]; return r >= 1 && r <= 12 && i >= 1 && (i <= E7e[r] || r === 2 && i === 29 && (n % 100 === 0 ? n % 400 === 0 : n % 4 === 0)) } function b7e(t) { let e = _7e.exec(t); if (!e) return !1; let n = +e[1], r = +e[2], i = +e[3], l = +(e[4] || 0), s = +(e[5] || 0); return n <= 23 && r <= 59 && i <= 59 || n - l === 23 && r - s === 59 && i === 60 } AF.code = 'require("ajv/dist/runtime/timestamp").default' }); var x1 = k(I2 => { "use strict"; Object.defineProperty(I2, "__esModule", { value: !0 }); I2.typeErrorParams = I2.typeErrorMessage = I2.typeError = void 0; var w7e = st(); function S7e(t) { return { message: e => OF(e, t), params: e => NF(e, t) } } I2.typeError = S7e; function OF({ parentSchema: t }, e) { return t?.nullable ? `must be ${e} or null` : `must be ${e}` } I2.typeErrorMessage = OF; function NF({ parentSchema: t }, e) { return (0, w7e._)`{type: ${e}, nullable: ${!!t?.nullable}}` } I2.typeErrorParams = NF }); var cv = k(A1 => { "use strict"; Object.defineProperty(A1, "__esModule", { value: !0 }); A1.intRange = void 0; var Dl = st(), T7e = uv(), x7e = Nt(), A7e = Ja(), CF = x1(); A1.intRange = { int8: [-128, 127, 3], uint8: [0, 255, 3], int16: [-32768, 32767, 5], uint16: [0, 65535, 5], int32: [-2147483648, 2147483647, 10], uint32: [0, 4294967295, 10] }; var O7e = { message: t => (0, CF.typeErrorMessage)(t, t.schema), params: t => (0, CF.typeErrorParams)(t, t.schema) }; function N7e(t) { let { gen: e, data: n, it: r } = t, { timestamp: i, allowDate: l } = r.opts; if (i === "date") return (0, Dl._)`${n} instanceof Date `; let s = (0, x7e.useFunc)(e, T7e.default), a = l ? (0, Dl._)`, true` : Dl.nil, o = (0, Dl._)`typeof ${n} == "string" && ${s}(${n}${a})`; return i === "string" ? o : (0, Dl.or)((0, Dl._)`${n} instanceof Date`, o) } var C7e = { keyword: "type", schemaType: "string", error: O7e, code(t) { (0, A7e.checkMetadata)(t); let { data: e, schema: n, parentSchema: r, it: i } = t, l; switch (n) { case "boolean": case "string": l = (0, Dl._)`typeof ${e} == ${n}`; break; case "timestamp": { l = N7e(t); break } case "float32": case "float64": l = (0, Dl._)`typeof ${e} == "number"`; break; default: { let s = n; if (l = (0, Dl._)`typeof ${e} == "number" && isFinite(${e}) && !(${e} % 1)`, !i.opts.int32range && (s === "int32" || s === "uint32")) s === "uint32" && (l = (0, Dl._)`${l} && ${e} >= 0`); else { let [a, o] = A1.intRange[s]; l = (0, Dl._)`${l} && ${e} >= ${a} && ${e} <= ${o}` } } }t.pass(r.nullable ? (0, Dl.or)((0, Dl._)`${e} === null`, l) : l) } }; A1.default = C7e }); var N1 = k(O1 => { "use strict"; Object.defineProperty(O1, "__esModule", { value: !0 }); O1.checkNullableObject = O1.checkNullable = void 0; var B9 = st(); function RF({ gen: t, data: e, parentSchema: n }, r = B9.nil) { let i = t.name("valid"); return n.nullable ? (t.let(i, (0, B9._)`${e} === null`), r = (0, B9.not)(i)) : t.let(i, !1), [i, r] } O1.checkNullable = RF; function R7e(t, e) { let [n, r] = RF(t, e); return [n, (0, B9._)`${r} && typeof ${t.data} == "object" && !Array.isArray(${t.data})`] } O1.checkNullableObject = R7e }); var IF = k(pv => { "use strict"; Object.defineProperty(pv, "__esModule", { value: !0 }); var k2 = st(), I7e = Ja(), k7e = N1(), D7e = { message: "must be equal to one of the allowed values", params: ({ schemaCode: t }) => (0, k2._)`{allowedValues: ${t}}` }, P7e = { keyword: "enum", schemaType: "array", error: D7e, code(t) { (0, I7e.checkMetadata)(t); let { gen: e, data: n, schema: r, schemaValue: i, parentSchema: l, it: s } = t; if (r.length === 0) throw new Error("enum must have non-empty array"); if (r.length !== new Set(r).size) throw new Error("enum items must be unique"); let a, o = (0, k2._)`typeof ${n} == "string"`; if (r.length >= s.opts.loopEnum) { let c;[a, c] = (0, k7e.checkNullable)(t, o), e.if(c, u) } else { if (!Array.isArray(r)) throw new Error("ajv implementation error"); a = (0, k2.and)(o, (0, k2.or)(...r.map(c => (0, k2._)`${n} === ${c}`))), l.nullable && (a = (0, k2.or)((0, k2._)`${n} === null`, a)) } t.pass(a); function u() { e.forOf("v", i, c => e.if((0, k2._)`${a} = ${n} === ${c}`, () => e.break())) } } }; pv.default = P7e }); var DF = k(fv => { "use strict"; Object.defineProperty(fv, "__esModule", { value: !0 }); var L7e = Nt(), F7e = Ai(), kF = st(), j7e = Ja(), U7e = N1(), M7e = x1(), $7e = { keyword: "elements", schemaType: "object", error: (0, M7e.typeError)("array"), code(t) { (0, j7e.checkMetadata)(t); let { gen: e, data: n, schema: r, it: i } = t; if ((0, L7e.alwaysValidSchema)(i, r)) return; let [l] = (0, U7e.checkNullable)(t); e.if((0, kF.not)(l), () => e.if((0, kF._)`Array.isArray(${n})`, () => e.assign(l, (0, F7e.validateArray)(t)), () => t.error())), t.ok(l) } }; fv.default = $7e }); var hv = k(D2 => { "use strict"; Object.defineProperty(D2, "__esModule", { value: !0 }); D2.validateProperties = D2.error = void 0; var dv = Ai(), PF = Nt(), Ka = st(), B7e = Ja(), H7e = N1(), LF = x1(), C1; (function (t) { t.Additional = "additional", t.Missing = "missing" })(C1 || (C1 = {})); D2.error = { message: t => { let { params: e } = t; return e.propError ? e.propError === C1.Additional ? "must NOT have additional properties" : `must have property '${e.missingProperty}'` : (0, LF.typeErrorMessage)(t, "object") }, params: t => { let { params: e } = t; return e.propError ? e.propError === C1.Additional ? (0, Ka._)`{error: ${e.propError}, additionalProperty: ${e.additionalProperty}}` : (0, Ka._)`{error: ${e.propError}, missingProperty: ${e.missingProperty}}` : (0, LF.typeErrorParams)(t, "object") } }; var V7e = { keyword: "properties", schemaType: "object", error: D2.error, code: FF }; function FF(t) { (0, B7e.checkMetadata)(t); let { gen: e, data: n, parentSchema: r, it: i } = t, { additionalProperties: l, nullable: s } = r; if (i.jtdDiscriminator && s) throw new Error("JTD: nullable inside discriminator mapping"); if (d()) throw new Error("JTD: properties and optionalProperties have common members"); let [a, o] = y("properties"), [u, c] = y("optionalProperties"); if (o.length === 0 && c.length === 0 && l) return; let [f, m] = i.jtdDiscriminator === void 0 ? (0, H7e.checkNullableObject)(t, n) : [e.let("valid", !1), !0]; e.if(m, () => e.assign(f, !0).block(() => { _(o, "properties", !0), _(c, "optionalProperties"), l || w() })), t.pass(f); function d() { let g = r.properties, v = r.optionalProperties; if (!(g && v)) return !1; for (let x in g) if (Object.prototype.hasOwnProperty.call(v, x)) return !0; return !1 } function y(g) { let v = r[g], x = v ? (0, dv.allSchemaProperties)(v) : []; if (i.jtdDiscriminator && x.some(N => N === i.jtdDiscriminator)) throw new Error(`JTD: discriminator tag used in ${g}`); let O = x.filter(N => !(0, PF.alwaysValidSchema)(i, v[N])); return [x, O] } function _(g, v, x) { let O = e.var("valid"); for (let R of g) e.if((0, dv.propertyInData)(e, n, R, i.opts.ownProperties), () => S(R, v, O), () => N(R)), t.ok(O); function N(R) { x ? (e.assign(O, !1), t.error(!1, { propError: C1.Missing, missingProperty: R }, { schemaPath: R })) : e.assign(O, !0) } } function S(g, v, x) { t.subschema({ keyword: v, schemaProp: g, dataProp: g }, x) } function w() { e.forIn("key", n, g => { let v = E(g, a, "properties", i.jtdDiscriminator), x = E(g, u, "optionalProperties"), O = v === !0 ? x : x === !0 ? v : (0, Ka.and)(v, x); e.if(O, () => { i.opts.removeAdditional ? e.code((0, Ka._)`delete ${n}[${g}]`) : (t.error(!1, { propError: C1.Additional, additionalProperty: g }, { instancePath: g, parentSchema: !0 }), i.opts.allErrors || e.break()) }) }) } function E(g, v, x, O) { let N; if (v.length > 8) { let R = (0, PF.schemaRefOrVal)(i, r[x], x); N = (0, Ka.not)((0, dv.isOwnProperty)(e, R, g)), O !== void 0 && (N = (0, Ka.and)(N, (0, Ka._)`${g} !== ${O}`)) } else if (v.length || O !== void 0) { let R = O === void 0 ? v : [O].concat(v); N = (0, Ka.and)(...R.map(U => (0, Ka._)`${g} !== ${U}`)) } else N = !0; return N } } D2.validateProperties = FF; D2.default = V7e }); var UF = k(mv => { "use strict"; Object.defineProperty(mv, "__esModule", { value: !0 }); var jF = hv(), q7e = { keyword: "optionalProperties", schemaType: "object", error: jF.error, code(t) { t.parentSchema.properties || (0, jF.validateProperties)(t) } }; mv.default = q7e }); var $F = k(yv => { "use strict"; Object.defineProperty(yv, "__esModule", { value: !0 }); var M3 = st(), z7e = Ja(), G7e = N1(), MF = x1(), H9 = Fy(), J7e = { message: t => { let { schema: e, params: n } = t; return n.discrError ? n.discrError === H9.DiscrError.Tag ? `tag "${e}" must be string` : `value of tag "${e}" must be in mapping` : (0, MF.typeErrorMessage)(t, "object") }, params: t => { let { schema: e, params: n } = t; return n.discrError ? (0, M3._)`{error: ${n.discrError}, tag: ${e}, tagValue: ${n.tag}}` : (0, MF.typeErrorParams)(t, "object") } }, K7e = { keyword: "discriminator", schemaType: "string", implements: ["mapping"], error: J7e, code(t) { (0, z7e.checkMetadata)(t); let { gen: e, data: n, schema: r, parentSchema: i } = t, [l, s] = (0, G7e.checkNullableObject)(t, n); e.if(s), a(), e.elseIf((0, M3.not)(l)), t.error(), e.endIf(), t.ok(l); function a() { let c = e.const("tag", (0, M3._)`${n}${(0, M3.getProperty)(r)}`); e.if((0, M3._)`${c} === undefined`), t.error(!1, { discrError: H9.DiscrError.Tag, tag: c }), e.elseIf((0, M3._)`typeof ${c} == "string"`), o(c), e.else(), t.error(!1, { discrError: H9.DiscrError.Tag, tag: c }, { instancePath: r }), e.endIf() } function o(c) { e.if(!1); for (let f in i.mapping) e.elseIf((0, M3._)`${c} === ${f}`), e.assign(l, u(f)); e.else(), t.error(!1, { discrError: H9.DiscrError.Mapping, tag: c }, { instancePath: r, schemaPath: "mapping", parentSchema: !0 }), e.endIf() } function u(c) { let f = e.name("valid"); return t.subschema({ keyword: "mapping", schemaProp: c, jtdDiscriminator: r }, f), f } } }; yv.default = K7e }); var HF = k(gv => { "use strict"; Object.defineProperty(gv, "__esModule", { value: !0 }); var BF = Nt(), V9 = st(), X7e = Ja(), W7e = N1(), Y7e = x1(), Q7e = { keyword: "values", schemaType: "object", error: (0, Y7e.typeError)("object"), code(t) { (0, X7e.checkMetadata)(t); let { gen: e, data: n, schema: r, it: i } = t, [l, s] = (0, W7e.checkNullableObject)(t, n); (0, BF.alwaysValidSchema)(i, r) ? e.if((0, V9.not)((0, V9.or)(s, l)), () => t.error()) : (e.if(s), e.assign(l, a()), e.elseIf((0, V9.not)(l)), t.error(), e.endIf()), t.ok(l); function a() { let o = e.name("valid"); if (i.allErrors) { let c = e.let("valid", !0); return u(() => e.assign(c, !1)), c } return e.var(o, !0), u(() => e.break()), o; function u(c) { e.forIn("key", n, f => { t.subschema({ keyword: "values", dataProp: f, dataPropType: BF.Type.Str }, o), e.if((0, V9.not)(o), c) }) } } } }; gv.default = Q7e }); var VF = k(vv => { "use strict"; Object.defineProperty(vv, "__esModule", { value: !0 }); var Z7e = Ai(), epe = { keyword: "union", schemaType: "array", trackErrors: !0, code: Z7e.validateUnion, error: { message: "must match a schema in union" } }; vv.default = epe }); var qF = k(_v => { "use strict"; Object.defineProperty(_v, "__esModule", { value: !0 }); var tpe = $9(), npe = cv(), rpe = IF(), ipe = DF(), lpe = hv(), spe = UF(), ape = $F(), ope = HF(), upe = VF(), cpe = Ja(), ppe = ["definitions", tpe.default, npe.default, rpe.default, ipe.default, lpe.default, spe.default, ape.default, ope.default, upe.default, cpe.default, { keyword: "additionalProperties", schemaType: "boolean" }, { keyword: "nullable", schemaType: "boolean" }]; _v.default = ppe }); var KF = k(Ev => { "use strict"; Object.defineProperty(Ev, "__esModule", { value: !0 }); var Xa = t => { let e = { nullable: { type: "boolean" }, metadata: { optionalProperties: { union: { elements: { ref: "schema" } } }, additionalProperties: !0 } }; return t && (e.definitions = { values: { ref: "schema" } }), e }, fpe = t => ({ optionalProperties: Xa(t) }), dpe = t => ({ properties: { ref: { type: "string" } }, optionalProperties: Xa(t) }), hpe = t => ({ properties: { type: { enum: ["boolean", "timestamp", "string", "float32", "float64", "int8", "uint8", "int16", "uint16", "int32", "uint32"] } }, optionalProperties: Xa(t) }), mpe = t => ({ properties: { enum: { elements: { type: "string" } } }, optionalProperties: Xa(t) }), ype = t => ({ properties: { elements: { ref: "schema" } }, optionalProperties: Xa(t) }), GF = t => ({ properties: { properties: { values: { ref: "schema" } } }, optionalProperties: { optionalProperties: { values: { ref: "schema" } }, additionalProperties: { type: "boolean" }, ...Xa(t) } }), JF = t => ({ properties: { optionalProperties: { values: { ref: "schema" } } }, optionalProperties: { additionalProperties: { type: "boolean" }, ...Xa(t) } }), gpe = t => ({ properties: { discriminator: { type: "string" }, mapping: { values: { metadata: { union: [GF(!1), JF(!1)] } } } }, optionalProperties: Xa(t) }), vpe = t => ({ properties: { values: { ref: "schema" } }, optionalProperties: Xa(t) }), zF = t => ({ metadata: { union: [fpe, dpe, hpe, mpe, ype, GF, JF, gpe, vpe].map(e => e(t)) } }), _pe = { definitions: { schema: zF(!1) }, ...zF(!0) }; Ev.default = _pe }); var bv = k(q9 => { "use strict"; Object.defineProperty(q9, "__esModule", { value: !0 }); q9.jtdForms = void 0; q9.jtdForms = ["elements", "values", "discriminator", "properties", "optionalProperties", "enum", "type", "ref"] }); var WF = k(Sv => { "use strict"; Object.defineProperty(Sv, "__esModule", { value: !0 }); var wv = /[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, Epe = { "\b": "\\b", " ": "\\t", "\n": "\\n", "\f": "\\f", "\r": "\\r", '"': '\\"', "\\": "\\\\" }; function XF(t) { return wv.lastIndex = 0, '"' + (wv.test(t) ? t.replace(wv, e => { let n = Epe[e]; return typeof n == "string" ? n : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) }) : t) + '"' } Sv.default = XF; XF.code = 'require("ajv/dist/runtime/quote").default' }); var nj = k(xv => { "use strict"; Object.defineProperty(xv, "__esModule", { value: !0 }); var bpe = bv(), QF = N3(), qt = st(), wpe = A2(), or = Yl(), Spe = Ai(), Tpe = $9(), xpe = Nt(), Ape = WF(), Ope = { elements: Cpe, values: Rpe, discriminator: Ipe, properties: YF, optionalProperties: YF, enum: pc, type: kpe, ref: Ppe }; function ZF(t, e) { let n = QF.getCompilingSchema.call(this, t); if (n) return n; let { es5: r, lines: i } = this.opts.code, { ownProperties: l } = this.opts, s = new qt.CodeGen(this.scope, { es5: r, lines: i, ownProperties: l }), a = s.scopeName("serialize"), o = { self: this, gen: s, schema: t.schema, schemaEnv: t, definitions: e, data: or.default.data }, u; try { this._compilations.add(t), t.serializeName = a, s.func(a, or.default.data, !1, () => { s.let(or.default.json, (0, qt.str)``), fc(o), s.return(or.default.json) }), s.optimize(this.opts.code.optimize); let c = s.toString(); u = `${s.scopeRefs(or.default.scope)}return ${c}`; let m = new Function(`${or.default.scope}`, u)(this.scope.get()); this.scope.value(a, { ref: m }), t.serialize = m } catch (c) { throw u && this.logger.error("Error compiling serializer, function code:", u), delete t.serialize, delete t.serializeName, c } finally { this._compilations.delete(t) } return t } xv.default = ZF; function fc(t) { let e; for (let n of bpe.jtdForms) if (n in t.schema) { e = n; break } Npe(t, e ? Ope[e] : Fpe) } function Npe(t, e) { let { gen: n, schema: r, data: i } = t; if (!r.nullable) return e(t); n.if((0, qt._)`${i} === undefined || ${i} === null`, () => n.add(or.default.json, (0, qt._)`"null"`), () => e(t)) } function Cpe(t) { let { gen: e, schema: n, data: r } = t; e.add(or.default.json, (0, qt.str)`[`); let i = e.let("first", !0); e.forOf("el", r, l => { Tv(t, i), fc({ ...t, schema: n.elements, data: l }) }), e.add(or.default.json, (0, qt.str)`]`) } function Rpe(t) { let { gen: e, schema: n, data: r } = t; e.add(or.default.json, (0, qt.str)`{`); let i = e.let("first", !0); e.forIn("key", r, l => ej(t, l, n.values, i)), e.add(or.default.json, (0, qt.str)`}`) } function ej(t, e, n, r) { let { gen: i, data: l } = t; Tv(t, r), pc({ ...t, data: e }), i.add(or.default.json, (0, qt.str)`:`); let s = i.const("value", (0, qt._)`${l}${(0, qt.getProperty)(e)}`); fc({ ...t, schema: n, data: s }) } function Ipe(t) { let { gen: e, schema: n, data: r } = t, { discriminator: i } = n; e.add(or.default.json, (0, qt.str)`{${JSON.stringify(i)}:`); let l = e.const("tag", (0, qt._)`${r}${(0, qt.getProperty)(i)}`); pc({ ...t, data: l }), e.if(!1); for (let s in n.mapping) { e.elseIf((0, qt._)`${l} === ${s}`); let a = n.mapping[s]; tj({ ...t, schema: a }, i) } e.endIf(), e.add(or.default.json, (0, qt.str)`}`) } function YF(t) { let { gen: e } = t; e.add(or.default.json, (0, qt.str)`{`), tj(t), e.add(or.default.json, (0, qt.str)`}`) } function tj(t, e) { let { gen: n, schema: r, data: i } = t, { properties: l, optionalProperties: s } = r, a = m(l), o = m(s), u = d(a.concat(o)), c = !e, f; for (let w of a) c ? c = !1 : n.add(or.default.json, (0, qt.str)`,`), _(w, l[w], y(w)); c && (f = n.let("first", !0)); for (let w of o) { let E = y(w); n.if((0, qt.and)((0, qt._)`${E} !== undefined`, (0, Spe.isOwnProperty)(n, i, w)), () => { Tv(t, f), _(w, s[w], E) }) } r.additionalProperties && n.forIn("key", i, w => n.if(S(w, u), () => ej(t, w, {}, f))); function m(w) { return w ? Object.keys(w) : [] } function d(w) { if (e && w.push(e), new Set(w).size !== w.length) throw new Error("JTD: properties/optionalProperties/disciminator overlap"); return w } function y(w) { return n.const("value", (0, qt._)`${i}${(0, qt.getProperty)(w)}`) } function _(w, E, g) { n.add(or.default.json, (0, qt.str)`${JSON.stringify(w)}:`), fc({ ...t, schema: E, data: g }) } function S(w, E) { return E.length ? (0, qt.and)(...E.map(g => (0, qt._)`${w} !== ${g}`)) : !0 } } function kpe(t) { let { gen: e, schema: n, data: r } = t; switch (n.type) { case "boolean": e.add(or.default.json, (0, qt._)`${r} ? "true" : "false"`); break; case "string": pc(t); break; case "timestamp": e.if((0, qt._)`${r} instanceof Date`, () => e.add(or.default.json, (0, qt._)`'"' + ${r}.toISOString() + '"'`), () => pc(t)); break; default: Dpe(t) } } function pc({ gen: t, data: e }) { t.add(or.default.json, (0, qt._)`${(0, xpe.useFunc)(t, Ape.default)}(${e})`) } function Dpe({ gen: t, data: e }) { t.add(or.default.json, (0, qt._)`"" + ${e}`) } function Ppe(t) { let { gen: e, self: n, data: r, definitions: i, schema: l, schemaEnv: s } = t, { ref: a } = l, o = i[a]; if (!o) throw new wpe.default(n.opts.uriResolver, "", a, `No definition ${a}`); if (!(0, Tpe.hasRef)(o)) return fc({ ...t, schema: o }); let { root: u } = s, c = ZF.call(n, new QF.SchemaEnv({ schema: o, root: u }), i); e.add(or.default.json, (0, qt._)`${Lpe(e, c)}(${r})`) } function Lpe(t, e) { return e.serialize ? t.scopeValue("serialize", { ref: e.serialize }) : (0, qt._)`${t.scopeValue("wrapper", { ref: e })}.serialize` } function Fpe({ gen: t, data: e }) { t.add(or.default.json, (0, qt._)`JSON.stringify(${e})`) } function Tv({ gen: t }, e) { e ? t.if(e, () => t.assign(e, !1), () => t.add(or.default.json, (0, qt.str)`,`)) : t.add(or.default.json, (0, qt.str)`,`) } }); var ij = k(L2 => {
"use strict"; Object.defineProperty(L2, "__esModule", { value: !0 }); L2.parseJsonString = L2.parseJsonNumber = L2.parseJson = void 0; var jpe = /position\s(\d+)$/; function Wa(t, e) { let n; Wa.message = void 0; let r; e && (t = t.slice(e)); try { return Wa.position = e + t.length, JSON.parse(t) } catch (i) { if (r = jpe.exec(i.message), !r) { Wa.message = "unexpected end"; return } n = +r[1]; let l = t[n]; t = t.slice(0, n), Wa.position = e + n; try { return JSON.parse(t) } catch { Wa.message = `unexpected token ${l}`; return } } } L2.parseJson = Wa; Wa.message = void 0; Wa.position = 0; Wa.code = 'require("ajv/dist/runtime/parseJson").parseJson'; function Ya(t, e, n) { let r = "", i; if (Ya.message = void 0, t[e] === "-" && (r += "-", e++), t[e] === "0") r += "0", e++; else if (!l(n)) { s(); return } if (n) return Ya.position = e, +r; if (t[e] === "." && (r += ".", e++, !l())) { s(); return } if (i = t[e], (i === "e" || i === "E") && (r += "e", e++, i = t[e], (i === "+" || i === "-") && (r += i, e++), !l())) { s(); return } return Ya.position = e, +r; function l(a) { let o = !1; for (; i = t[e], i >= "0" && i <= "9" && (a === void 0 || a-- > 0);)o = !0, r += i, e++; return o } function s() { Ya.position = e, Ya.message = e < t.length ? `unexpected token ${t[e]}` : "unexpected end" } } L2.parseJsonNumber = Ya; Ya.message = void 0; Ya.position = 0; Ya.code = 'require("ajv/dist/runtime/parseJson").parseJsonNumber'; var rj = {
b: "\b", f: "\f", n: `
`, r: "\r", t: " ", '"': '"', "/": "/", "\\": "\\"
}, Upe = 97, Mpe = 48; function P2(t, e) { let n = "", r; for (P2.message = void 0; r = t[e++], r !== '"';)if (r === "\\") if (r = t[e], r in rj) n += rj[r], e++; else if (r === "u") { e++; let l = 4, s = 0; for (; l--;) { if (s <<= 4, r = t[e], r === void 0) { i("unexpected end"); return } if (r = r.toLowerCase(), r >= "a" && r <= "f") s += r.charCodeAt(0) - Upe + 10; else if (r >= "0" && r <= "9") s += r.charCodeAt(0) - Mpe; else { i(`unexpected token ${r}`); return } e++ } n += String.fromCharCode(s) } else { i(`unexpected token ${r}`); return } else if (r === void 0) { i("unexpected end"); return } else if (r.charCodeAt(0) >= 32) n += r; else { i(`unexpected token ${r}`); return } return P2.position = e, n; function i(l) { P2.position = e, P2.message = l } } L2.parseJsonString = P2; P2.message = void 0; P2.position = 0; P2.code = 'require("ajv/dist/runtime/parseJson").parseJsonString'
}); var mj = k(Dv => { "use strict"; Object.defineProperty(Dv, "__esModule", { value: !0 }); var $pe = bv(), oj = N3(), tt = st(), Bpe = A2(), Ht = Yl(), Hpe = Ai(), Vpe = $9(), qpe = cv(), Nv = ij(), uj = Nt(), zpe = uv(), Gpe = { elements: Wpe, values: Ype, discriminator: Zpe, properties: lj, optionalProperties: lj, enum: tfe, type: efe, ref: nfe }; function cj(t, e) { let n = oj.getCompilingSchema.call(this, t); if (n) return n; let { es5: r, lines: i } = this.opts.code, { ownProperties: l } = this.opts, s = new tt.CodeGen(this.scope, { es5: r, lines: i, ownProperties: l }), a = s.scopeName("parse"), o = { self: this, gen: s, schema: t.schema, schemaEnv: t, definitions: e, data: Ht.default.data, parseName: a, char: s.name("c") }, u; try { this._compilations.add(t), t.parseName = a, Jpe(o), s.optimize(this.opts.code.optimize); let c = s.toString(); u = `${s.scopeRefs(Ht.default.scope)}return ${c}`; let m = new Function(`${Ht.default.scope}`, u)(this.scope.get()); this.scope.value(a, { ref: m }), t.parse = m } catch (c) { throw u && this.logger.error("Error compiling parser, function code:", u), delete t.parse, delete t.parseName, c } finally { this._compilations.delete(t) } return t } Dv.default = cj; var Ov = (0, tt._)`undefined`; function Jpe(t) { let { gen: e, parseName: n, char: r } = t; e.func(n, (0, tt._)`${Ht.default.json}, ${Ht.default.jsonPos}, ${Ht.default.jsonPart}`, !1, () => { e.let(Ht.default.data), e.let(r), e.assign((0, tt._)`${n}.message`, Ov), e.assign((0, tt._)`${n}.position`, Ov), e.assign(Ht.default.jsonPos, (0, tt._)`${Ht.default.jsonPos} || 0`), e.const(Ht.default.jsonLen, (0, tt._)`${Ht.default.json}.length`), z9(t), kv(t), e.if(Ht.default.jsonPart, () => { e.assign((0, tt._)`${n}.position`, Ht.default.jsonPos), e.return(Ht.default.data) }), e.if((0, tt._)`${Ht.default.jsonPos} === ${Ht.default.jsonLen}`, () => e.return(Ht.default.data)), R1(t) }) } function z9(t) { let e; for (let n of $pe.jtdForms) if (n in t.schema) { e = n; break } e ? Xpe(t, Gpe[e]) : Rv(t) } var Kpe = aj(!0, aj(!1, R1)); function Xpe(t, e) { let { gen: n, schema: r, data: i } = t; if (!r.nullable) return e(t); dc(t, "null", e, () => n.assign(i, null)) } function Wpe(t) { let { gen: e, schema: n, data: r } = t; ra(t, "["); let i = e.let("i", 0); e.assign(r, (0, tt._)`[]`), Cv(t, "]", () => { let l = e.let("el"); z9({ ...t, schema: n.elements, data: l }), e.assign((0, tt._)`${r}[${i}++]`, l) }) } function Ype(t) { let { gen: e, schema: n, data: r } = t; ra(t, "{"), e.assign(r, (0, tt._)`{}`), Cv(t, "}", () => Qpe(t, n.values)) } function Cv(t, e, n) { pj(t, e, n), ra(t, e) } function pj(t, e, n) { let { gen: r } = t; r.for((0, tt._)`;${Ht.default.jsonPos}<${Ht.default.jsonLen} && ${G9(1)}!==${e};`, () => { n(), dc(t, ",", () => r.break(), i) }); function i() { dc(t, e, () => { }, R1) } } function Qpe(t, e) { let { gen: n } = t, r = n.let("key"); $3({ ...t, data: r }), ra(t, ":"), dj(t, r, e) } function Zpe(t) { let { gen: e, data: n, schema: r } = t, { discriminator: i, mapping: l } = r; ra(t, "{"), e.assign(n, (0, tt._)`{}`); let s = e.const("pos", Ht.default.jsonPos), a = e.let("value"), o = e.let("tag"); pj(t, "}", () => { let u = e.let("key"); $3({ ...t, data: u }), ra(t, ":"), e.if((0, tt._)`${u} === ${i}`, () => { $3({ ...t, data: o }), e.assign((0, tt._)`${n}[${u}]`, o), e.break() }, () => Rv({ ...t, data: a })) }), e.assign(Ht.default.jsonPos, s), e.if((0, tt._)`${o} === undefined`), Qa(t, (0, tt.str)`discriminator tag not found`); for (let u in l) e.elseIf((0, tt._)`${o} === ${u}`), fj({ ...t, schema: l[u] }, i); e.else(), Qa(t, (0, tt.str)`discriminator value not in schema`), e.endIf() } function lj(t) { let { gen: e, data: n } = t; ra(t, "{"), e.assign(n, (0, tt._)`{}`), fj(t) } function fj(t, e) { let { gen: n, schema: r, data: i } = t, { properties: l, optionalProperties: s, additionalProperties: a } = r; if (Cv(t, "}", () => { let o = n.let("key"); if ($3({ ...t, data: o }), ra(t, ":"), n.if(!1), sj(t, o, l), sj(t, o, s), e) { n.elseIf((0, tt._)`${o} === ${e}`); let u = n.let("tag"); $3({ ...t, data: u }) } n.else(), a ? Rv({ ...t, data: (0, tt._)`${i}[${o}]` }) : Qa(t, (0, tt.str)`property ${o} not allowed`), n.endIf() }), l) { let o = (0, Hpe.hasPropFunc)(n), u = (0, tt.and)(...Object.keys(l).map(c => (0, tt._)`${o}.call(${i}, ${c})`)); n.if((0, tt.not)(u), () => Qa(t, (0, tt.str)`missing required properties`)) } } function sj(t, e, n = {}) { let { gen: r } = t; for (let i in n) r.elseIf((0, tt._)`${e} === ${i}`), dj(t, e, n[i]) } function dj(t, e, n) { z9({ ...t, schema: n, data: (0, tt._)`${t.data}[${e}]` }) } function efe(t) { let { gen: e, schema: n, data: r, self: i } = t; switch (n.type) { case "boolean": Kpe(t); break; case "string": $3(t); break; case "timestamp": { $3(t); let l = (0, uj.useFunc)(e, zpe.default), { allowDate: s, parseDate: a } = i.opts, o = s ? (0, tt._)`!${l}(${r}, true)` : (0, tt._)`!${l}(${r})`, u = a ? (0, tt.or)(o, (0, tt._)`(${r} = new Date(${r}), false)`, (0, tt._)`isNaN(${r}.valueOf())`) : o; e.if(u, () => Qa(t, (0, tt.str)`invalid timestamp`)); break } case "float32": case "float64": Av(t); break; default: { let l = n.type; if (!i.opts.int32range && (l === "int32" || l === "uint32")) Av(t, 16), l === "uint32" && e.if((0, tt._)`${r} < 0`, () => Qa(t, (0, tt.str)`integer out of range`)); else { let [s, a, o] = qpe.intRange[l]; Av(t, o), e.if((0, tt._)`${r} < ${s} || ${r} > ${a}`, () => Qa(t, (0, tt.str)`integer out of range`)) } } } } function $3(t) { ra(t, '"'), Iv(t, Nv.parseJsonString) } function tfe(t) { let { gen: e, data: n, schema: r } = t, i = r.enum; ra(t, '"'), e.if(!1); for (let l of i) { let s = JSON.stringify(l).slice(1); e.elseIf((0, tt._)`${G9(s.length)} === ${s}`), e.assign(n, (0, tt.str)`${l}`), e.add(Ht.default.jsonPos, s.length) } e.else(), R1(t), e.endIf() } function Av(t, e) { let { gen: n } = t; kv(t), n.if((0, tt._)`"-0123456789".indexOf(${G9(1)}) < 0`, () => R1(t), () => Iv(t, Nv.parseJsonNumber, e)) } function aj(t, e) { return n => { let { gen: r, data: i } = n; dc(n, `${t}`, () => e(n), () => r.assign(i, t)) } } function nfe(t) { let { gen: e, self: n, definitions: r, schema: i, schemaEnv: l } = t, { ref: s } = i, a = r[s]; if (!a) throw new Bpe.default(n.opts.uriResolver, "", s, `No definition ${s}`); if (!(0, Vpe.hasRef)(a)) return z9({ ...t, schema: a }); let { root: o } = l, u = cj.call(n, new oj.SchemaEnv({ schema: a, root: o }), r); hj(t, rfe(e, u), !0) } function rfe(t, e) { return e.parse ? t.scopeValue("parse", { ref: e.parse }) : (0, tt._)`${t.scopeValue("wrapper", { ref: e })}.parse` } function Rv(t) { Iv(t, Nv.parseJson) } function Iv(t, e, n) { hj(t, (0, uj.useFunc)(t.gen, e), n) } function hj(t, e, n) { let { gen: r, data: i } = t; r.assign(i, (0, tt._)`${e}(${Ht.default.json}, ${Ht.default.jsonPos}${n ? (0, tt._)`, ${n}` : tt.nil})`), r.assign(Ht.default.jsonPos, (0, tt._)`${e}.position`), r.if((0, tt._)`${i} === undefined`, () => Qa(t, (0, tt._)`${e}.message`)) } function ra(t, e) { dc(t, e, R1) } function dc(t, e, n, r) { let { gen: i } = t, l = e.length; kv(t), i.if((0, tt._)`${G9(l)} === ${e}`, () => { i.add(Ht.default.jsonPos, l), r?.(t) }, () => n(t)) } function kv({ gen: t, char: e }) { t.code((0, tt._)`while((${e}=${Ht.default.json}[${Ht.default.jsonPos}],${e}===" "||${e}==="\\n"||${e}==="\\r"||${e}==="\\t"))${Ht.default.jsonPos}++;`) } function G9(t) { return t === 1 ? (0, tt._)`${Ht.default.json}[${Ht.default.jsonPos}]` : (0, tt._)`${Ht.default.json}.slice(${Ht.default.jsonPos}, ${Ht.default.jsonPos}+${t})` } function R1(t) { Qa(t, (0, tt._)`"unexpected token " + ${Ht.default.json}[${Ht.default.jsonPos}]`) } function Qa({ gen: t, parseName: e }, n) { t.assign((0, tt._)`${e}.message`, n), t.assign((0, tt._)`${e}.position`, Ht.default.jsonPos), t.return(Ov) } }); var Lv = k((_r, yj) => { "use strict"; Object.defineProperty(_r, "__esModule", { value: !0 }); _r.MissingRefError = _r.ValidationError = _r.CodeGen = _r.Name = _r.nil = _r.stringify = _r.str = _r._ = _r.KeywordCxt = void 0; var ife = Km(), lfe = qF(), sfe = KF(), afe = nj(), ofe = mj(), Pv = "JTD-meta-schema", J9 = class extends ife.default { constructor(e = {}) { super({ ...e, jtd: !0 }) } _addVocabularies() { super._addVocabularies(), this.addVocabulary(lfe.default) } _addDefaultMetaSchema() { super._addDefaultMetaSchema(), this.opts.meta && this.addMetaSchema(sfe.default, Pv, !1) } defaultMeta() { return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(Pv) ? Pv : void 0) } compileSerializer(e) { let n = this._addSchema(e); return n.serialize || this._compileSerializer(n) } compileParser(e) { let n = this._addSchema(e); return n.parse || this._compileParser(n) } _compileSerializer(e) { if (afe.default.call(this, e, e.schema.definitions || {}), !e.serialize) throw new Error("ajv implementation error"); return e.serialize } _compileParser(e) { if (ofe.default.call(this, e, e.schema.definitions || {}), !e.parse) throw new Error("ajv implementation error"); return e.parse } }; yj.exports = _r = J9; Object.defineProperty(_r, "__esModule", { value: !0 }); _r.default = J9; var ufe = s1(); Object.defineProperty(_r, "KeywordCxt", { enumerable: !0, get: function () { return ufe.KeywordCxt } }); var I1 = st(); Object.defineProperty(_r, "_", { enumerable: !0, get: function () { return I1._ } }); Object.defineProperty(_r, "str", { enumerable: !0, get: function () { return I1.str } }); Object.defineProperty(_r, "stringify", { enumerable: !0, get: function () { return I1.stringify } }); Object.defineProperty(_r, "nil", { enumerable: !0, get: function () { return I1.nil } }); Object.defineProperty(_r, "Name", { enumerable: !0, get: function () { return I1.Name } }); Object.defineProperty(_r, "CodeGen", { enumerable: !0, get: function () { return I1.CodeGen } }); var cfe = A4(); Object.defineProperty(_r, "ValidationError", { enumerable: !0, get: function () { return cfe.default } }); var pfe = A2(); Object.defineProperty(_r, "MissingRefError", { enumerable: !0, get: function () { return pfe.default } }) }); var Fv = k((JIe, gj) => { "use strict"; var ffe = Hy(); gj.exports = Object.freeze({ coerceTypes: "array", useDefaults: !0, removeAdditional: !0, uriResolver: ffe, addUsedSchema: !1, allErrors: !1 }) }); var Ej = k((KIe, _j) => { "use strict"; var dfe = Z8().default, hfe = Lv(), vj = Fv(), jv = class { constructor(e, n) { n.mode === "JTD" ? this.ajv = new hfe(Object.assign({}, vj, n.customOptions)) : this.ajv = new dfe(Object.assign({}, vj, n.customOptions)); let r = !0; if (n.plugins && n.plugins.length > 0) for (let l of n.plugins) Array.isArray(l) ? (r = r && l[0].name !== "formatsPlugin", l[0](this.ajv, l[1])) : (r = r && l.name !== "formatsPlugin", l(this.ajv)); r && Xy()(this.ajv); let i = Object.values(e); for (let l of i) this.ajv.addSchema(l) } buildValidatorFunction({ schema: e }) { if (e.$id) { let n = this.ajv.getSchema(e.$id); if (n) return n } return this.ajv.compile(e) } }; _j.exports = jv }); var wj = k((XIe, bj) => { "use strict"; var mfe = Lv(), yfe = Fv(), Uv = class { constructor(e, n) { this.ajv = new mfe(Object.assign({}, yfe, n)) } buildSerializerFunction({ schema: e }) { return this.ajv.compileSerializer(e) } }; bj.exports = Uv }); var xj = k((mc, Tj) => { "use strict"; Object.defineProperty(mc, "__esModule", { value: !0 }); var hc = A8(), xs = Qu(); function Sj(t, e) { if (!t.opts.code.source) throw new Error("moduleCode: ajv instance must have code.source option"); let { _n: n } = t.scope.opts; return typeof e == "function" ? i(e.source) : e !== void 0 ? l(e, r) : l(t.schemas, a => a.meta ? void 0 : t.compile(a.schema)); function r(a) { let o = t.getSchema(a); if (!o) throw new Error(`moduleCode: no schema with id ${a}`); return o } function i(a) { let o = {}, u = a?.validateName, c = s(o, a); return t.opts.code.esm ? `"use strict";${n}export const validate = ${u};${n}export default ${u};${n}${c}` : `"use strict";${n}module.exports = ${u};${n}module.exports.default = ${u};${n}${c}` } function l(a, o) { var u; let c = {}, f = (0, xs._)`"use strict";`; for (let m in a) { let d = o(a[m]); if (d) { let y = s(c, d.source), _ = t.opts.code.esm ? (0, xs._)`export const ${(0, xs.getEsmExportName)(m)}` : (0, xs._)`exports${(0, xs.getProperty)(m)}`; f = (0, xs._)`${f}${n}${_} = ${(u = d.source) === null || u === void 0 ? void 0 : u.validateName};${n}${y}` } } return `${f}` } function s(a, o) { if (!o) throw new Error('moduleCode: function does not have "source" property'); if (m(o.validateName) === hc.UsedValueState.Completed) return xs.nil; d(o.validateName, hc.UsedValueState.Started); let u = t.scope.scopeCode(o.scopeValues, a, f), c = new xs._Code(`${u}${n}${o.validateCode}`); return o.evaluated ? (0, xs._)`${c}${o.validateName}.evaluated = ${o.evaluated};${n}` : c; function f(y) { var _; let S = (_ = y.value) === null || _ === void 0 ? void 0 : _.ref; if (y.prefix === "validate" && typeof S == "function") return s(a, S.source); if ((y.prefix === "root" || y.prefix === "wrapper") && typeof S == "object") { let { validate: w, validateName: E } = S; if (!E) throw new Error("ajv internal error"); let g = t.opts.code.es5 ? hc.varKinds.var : hc.varKinds.const, v = (0, xs._)`${g} ${y} = {validate: ${E}};`; if (m(E) === hc.UsedValueState.Started) return v; let x = s(a, w?.source); return (0, xs._)`${v}${n}${x}` } } function m(y) { var _; return (_ = a[y.prefix]) === null || _ === void 0 ? void 0 : _.get(y) } function d(y, _) { let { prefix: S } = y; (a[S] = a[S] || new Map).set(y, _) } } } Tj.exports = mc = Sj; Object.defineProperty(mc, "__esModule", { value: !0 }); mc.default = Sj }); var Nj = k((WIe, Oj) => { "use strict"; var Aj = Mv(), gfe = xj().default; function vfe(t = { readMode: !0 }) { if (t.readMode === !0 && !t.restoreFunction) throw new Error("You must provide a restoreFunction options when readMode ON"); if (t.readMode !== !0 && !t.storeFunction) throw new Error("You must provide a storeFunction options when readMode OFF"); if (t.readMode === !0) return function () { return function (r) { return t.restoreFunction(r) } }; let e = Aj(); return function (r, i = {}) { (!i.customOptions || !i.customOptions.code) && (i.customOptions = Object.assign({}, i.customOptions, { code: { source: !0 } })); let l = e(r, i); return function (s) { let a = l(s), o = gfe(l[Aj.AjvReference].ajv, a); return t.storeFunction(s, o), a } } } Oj.exports = vfe }); var Mv = k((YIe, k1) => { "use strict"; var Rj = Symbol.for("fastify.ajv-compiler.reference"), _fe = Ej(), Efe = wj(); function $v(t) { let e = new Map, n = new Map; return t && t.jtdSerializer === !0 ? function (i, l) { let s = Cj({}, l); if (n.has(s)) return n.get(s); let a = new Efe(i, l), o = a.buildSerializerFunction.bind(a); return n.set(s, o), o } : function (i, l) { let s = Cj(i, l.customOptions); if (e.has(s)) return e.get(s); let a = new _fe(i, l), o = a.buildValidatorFunction.bind(a); return e.set(s, o), l.customOptions.code !== void 0 && (o[Rj] = a), o } } function Cj(t, e) { let n = JSON.stringify(t), r = JSON.stringify(e); return `${n}${r}` } k1.exports = $v; k1.exports.default = $v; k1.exports.AjvCompiler = $v; k1.exports.AjvReference = Rj; k1.exports.StandaloneValidator = Nj() }); var Bv = k((QIe, Ij) => { "use strict"; var { buildSchemas: bfe } = f4(), wfe = lv(), Sfe = Mv(); function Tfe(t, e) { if (t) return new D1(t, e); let n = Object.assign({ buildValidator: null, buildSerializer: null }, e?.compilersFactory); n.buildValidator || (n.buildValidator = Sfe()), n.buildSerializer || (n.buildSerializer = wfe()); let r = { bucket: e && e.bucket || bfe, compilersFactory: n, isCustomValidatorCompiler: typeof e?.compilersFactory?.buildValidator == "function", isCustomSerializerCompiler: typeof e?.compilersFactory?.buildValidator == "function" }; return new D1(void 0, r) } var D1 = class { constructor(e, n) { this.opts = n || e?.opts, this.addedSchemas = !1, this.compilersFactory = this.opts.compilersFactory, e ? (this.schemaBucket = this.opts.bucket(e.getSchemas()), this.validatorCompiler = e.getValidatorCompiler(), this.serializerCompiler = e.getSerializerCompiler(), this.isCustomValidatorCompiler = e.isCustomValidatorCompiler, this.isCustomSerializerCompiler = e.isCustomSerializerCompiler, this.parent = e) : (this.schemaBucket = this.opts.bucket(), this.isCustomValidatorCompiler = this.opts.isCustomValidatorCompiler || !1, this.isCustomSerializerCompiler = this.opts.isCustomSerializerCompiler || !1) } add(e) { return this.addedSchemas = !0, this.schemaBucket.add(e) } getSchema(e) { return this.schemaBucket.getSchema(e) } getSchemas() { return this.schemaBucket.getSchemas() } setValidatorCompiler(e) { this.compilersFactory = Object.assign({}, this.compilersFactory, { buildValidator: () => e }), this.validatorCompiler = e, this.isCustomValidatorCompiler = !0 } setSerializerCompiler(e) { this.compilersFactory = Object.assign({}, this.compilersFactory, { buildSerializer: () => e }), this.serializerCompiler = e, this.isCustomSerializerCompiler = !0 } getValidatorCompiler() { return this.validatorCompiler || this.parent && this.parent.getValidatorCompiler() } getSerializerCompiler() { return this.serializerCompiler || this.parent && this.parent.getSerializerCompiler() } getSerializerBuilder() { return this.compilersFactory.buildSerializer || this.parent && this.parent.getSerializerBuilder() } getValidatorBuilder() { return this.compilersFactory.buildValidator || this.parent && this.parent.getValidatorBuilder() } setupValidator(e) { this.validatorCompiler !== void 0 && !this.addedSchemas || (this.validatorCompiler = this.getValidatorBuilder()(this.schemaBucket.getSchemas(), e.ajv)) } setupSerializer(e) { this.serializerCompiler !== void 0 && !this.addedSchemas || (this.serializerCompiler = this.getSerializerBuilder()(this.schemaBucket.getSchemas(), e.serializerOpts)) } }; D1.buildSchemaController = Tfe; Ij.exports = D1 }); var Jv = k((ZIe, Gv) => {
"use strict"; var Hv = Rg(), qv = require("node:assert"), zv = Symbol.for("registered-plugin"), { kTestInternals: xfe } = di(), { exist: Afe, existReply: Ofe, existRequest: Nfe } = $g(), { FST_ERR_PLUGIN_VERSION_MISMATCH: Cfe, FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE: Rfe } = Ui(), { FSTWRN002: Ife } = Fa(); function yc(t) { return t[Symbol.for("plugin-meta")] } function kj(t) { let e = Dj(t); if (e) return e; let n = require.cache; if (n) { let r = Object.keys(n); for (let i = 0; i < r.length; i++) { let l = r[i]; if (n[l].exports === t) return l } } return t.name ? t.name : null } function kfe(t) {
return t.toString().split(`
`).slice(0, 2).map(e => e.trim()).join(" -- ")
} function Dj(t) { return t[Symbol.for("fastify.display-name")] } function Pj(t) { return !!t[Symbol.for("skip-override")] } function Lj(t) { let e = yc(t); if (!e) return; let n = e.dependencies; n && (qv(Array.isArray(n), "The dependencies should be an array of strings"), n.forEach(r => { qv(this[zv].indexOf(r) > -1, `The dependency '${r}' of plugin '${e.name}' is not registered`) })) } function Fj(t) { let e = yc(t); if (!e) return; let { decorators: n, name: r } = e; n && (n.fastify && Vv(this, "Fastify", n.fastify, r), n.reply && Vv(this, "Reply", n.reply, r), n.request && Vv(this, "Request", n.request, r)) } var Dfe = { Fastify: Afe, Request: Nfe, Reply: Ofe }; function Vv(t, e, n, r) { qv(Array.isArray(n), "The decorators should be an array of strings"), n.forEach(i => { let l = typeof r == "string" ? ` required by '${r}'` : ""; if (!Dfe[e].call(t, i)) throw new Rfe(i, l, e) }) } function Pfe(t) { let e = yc(t); if (!e) return; let n = e.fastify, r = /-rc.+$/.test(this.version); if (!(r === !0 && Hv.gt(this.version, Hv.coerce(n)) === !0) && n && Hv.satisfies(this.version, n, { includePrerelease: r }) === !1) throw new Cfe(e.name, n, this.version) } function Lfe(t) { let e = yc(t); if (!e) return; let n = e.name; if (n) return this[zv].push(n), n } function Ffe(t, e) { t.constructor.name === "AsyncFunction" && t.length === 3 && Ife(e || "anonymous") } function jfe(t) { let e = Lfe.call(this, t) || kj(t); return Ffe.call(this, t, e), Pfe.call(this, t), Fj.call(this, t), Lj.call(this, t), Pj(t) } Gv.exports = { getPluginName: kj, getFuncPreview: kfe, kRegisteredPlugins: zv, getDisplayName: Dj, registerPlugin: jfe }; Gv.exports[xfe] = { shouldSkipOverride: Pj, getMeta: yc, checkDecorators: Fj, checkDependencies: Lj }
}); var K9 = k((eke, jj) => { "use strict"; function Ufe(t, e) { let n = e || $fe(); return t ? Bfe(t, n) : n } function Mfe(t, e) { return t.genReqId(e) } function $fe() { let e = 0; return function () { return e = e + 1 & 2147483647, `req-${e.toString(36)}` } } function Bfe(t, e) { return function (n) { return n.headers[t] || e(n) } } jj.exports = { getGenReqId: Mfe, reqIdGenFactory: Ufe } }); var Bj = k((tke, $j) => { "use strict"; var Uj = 12, Hfe = 0, Kv = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 7, 10, 9, 9, 9, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 24, 36, 48, 60, 72, 84, 96, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 63, 63, 63, 0, 31, 15, 15, 15, 7, 7, 7]; function Vfe(t) { var e = t.indexOf("%"); if (e === -1) return t; for (var n = t.length, r = "", i = 0, l = 0, s = e, a = Uj; e > -1 && e < n;) { var o = Mj(t[e + 1], 4), u = Mj(t[e + 2], 0), c = o | u, f = Kv[c]; if (a = Kv[256 + a + f], l = l << 6 | c & Kv[364 + f], a === Uj) r += t.slice(i, s), r += l <= 65535 ? String.fromCharCode(l) : String.fromCharCode(55232 + (l >> 10), 56320 + (l & 1023)), l = 0, i = e + 3, e = s = t.indexOf("%", i); else { if (a === Hfe) return null; if (e += 3, e < n && t.charCodeAt(e) === 37) continue; return null } } return r + t.slice(i) } var qfe = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, a: 10, A: 10, b: 11, B: 11, c: 12, C: 12, d: 13, D: 13, e: 14, E: 14, f: 15, F: 15 }; function Mj(t, e) { var n = qfe[t]; return n === void 0 ? 255 : n << e } $j.exports = Vfe }); var Gj = k((nke, zj) => { "use strict"; var Hj = Bj(), Vj = /\+/g, qj = function () { }; qj.prototype = Object.create(null); function zfe(t) { let e = new qj; if (typeof t != "string") return e; let n = t.length, r = "", i = "", l = -1, s = -1, a = !1, o = !1, u = !1, c = !1, f = !1, m = 0; for (let d = 0; d < n + 1; d++)if (m = d !== n ? t.charCodeAt(d) : 38, m === 38) { if (f = s > l, f || (s = d), r = t.slice(l + 1, s), f || r.length > 0) { u && (r = r.replace(Vj, " ")), a && (r = Hj(r) || r), f && (i = t.slice(s + 1, d), c && (i = i.replace(Vj, " ")), o && (i = Hj(i) || i)); let y = e[r]; y === void 0 ? e[r] = i : y.pop ? y.push(i) : e[r] = [y, i] } i = "", l = d, s = d, a = !1, o = !1, u = !1, c = !1 } else m === 61 ? s <= l ? s = d : o = !0 : m === 43 ? s > l ? c = !0 : u = !0 : m === 37 && (s > l ? o = !0 : a = !0); return e } zj.exports = zfe }); var Kj = k((rke, Jj) => { var ia = Array.from({ length: 256 }, (t, e) => "%" + ((e < 16 ? "0" : "") + e.toString(16)).toUpperCase()), Gfe = new Int8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0]); function Jfe(t) { let e = t.length; if (e === 0) return ""; let n = "", r = 0, i = 0; e: for (; i < e; i++) { let l = t.charCodeAt(i); for (; l < 128;) { if (Gfe[l] !== 1 && (r < i && (n += t.slice(r, i)), r = i + 1, n += ia[l]), ++i === e) break e; l = t.charCodeAt(i) } if (r < i && (n += t.slice(r, i)), l < 2048) { r = i + 1, n += ia[192 | l >> 6] + ia[128 | l & 63]; continue } if (l < 55296 || l >= 57344) { r = i + 1, n += ia[224 | l >> 12] + ia[128 | l >> 6 & 63] + ia[128 | l & 63]; continue } if (++i, i >= e) throw new Error("URI malformed"); let s = t.charCodeAt(i) & 1023; r = i + 1, l = 65536 + ((l & 1023) << 10 | s), n += ia[240 | l >> 18] + ia[128 | l >> 12 & 63] + ia[128 | l >> 6 & 63] + ia[128 | l & 63] } return r === 0 ? t : r < e ? n + t.slice(r) : n } Jj.exports = { encodeString: Jfe } }); var Yj = k((ike, Wj) => { "use strict"; var { encodeString: Xv } = Kj(); function Xj(t) { let e = typeof t; return e === "string" ? Xv(t) : e === "bigint" ? t.toString() : e === "boolean" ? t ? "true" : "false" : e === "number" && Number.isFinite(t) ? t < 1e21 ? "" + t : Xv("" + t) : "" } function Kfe(t) { let e = ""; if (t === null || typeof t != "object") return e; let n = "&", r = Object.keys(t), i = r.length, l = 0; for (let s = 0; s < i; s++) { let a = r[s], o = t[a], u = Xv(a) + "="; if (s && (e += n), Array.isArray(o)) { l = o.length; for (let c = 0; c < l; c++)c && (e += n), e += u, e += Xj(o[c]) } else e += u, e += Xj(o) } return e } Wj.exports = Kfe }); var tU = k((lke, gc) => { "use strict"; var Qj = Gj(), Zj = Yj(), eU = { parse: Qj, stringify: Zj }; gc.exports = eU; gc.exports.default = eU; gc.exports.parse = Qj; gc.exports.stringify = Zj }); var vc = k((ske, nU) => { nU.exports = { ROOT: 0, GROUP: 1, POSITION: 2, SET: 3, RANGE: 4, REPETITION: 5, REFERENCE: 6, CHAR: 7 } }); var Yv = k(F2 => { var hn = vc(), Wv = () => [{ type: hn.RANGE, from: 48, to: 57 }], rU = () => [{ type: hn.CHAR, value: 95 }, { type: hn.RANGE, from: 97, to: 122 }, { type: hn.RANGE, from: 65, to: 90 }].concat(Wv()), iU = () => [{ type: hn.CHAR, value: 9 }, { type: hn.CHAR, value: 10 }, { type: hn.CHAR, value: 11 }, { type: hn.CHAR, value: 12 }, { type: hn.CHAR, value: 13 }, { type: hn.CHAR, value: 32 }, { type: hn.CHAR, value: 160 }, { type: hn.CHAR, value: 5760 }, { type: hn.RANGE, from: 8192, to: 8202 }, { type: hn.CHAR, value: 8232 }, { type: hn.CHAR, value: 8233 }, { type: hn.CHAR, value: 8239 }, { type: hn.CHAR, value: 8287 }, { type: hn.CHAR, value: 12288 }, { type: hn.CHAR, value: 65279 }], Xfe = () => [{ type: hn.CHAR, value: 10 }, { type: hn.CHAR, value: 13 }, { type: hn.CHAR, value: 8232 }, { type: hn.CHAR, value: 8233 }]; F2.words = () => ({ type: hn.SET, set: rU(), not: !1 }); F2.notWords = () => ({ type: hn.SET, set: rU(), not: !0 }); F2.ints = () => ({ type: hn.SET, set: Wv(), not: !1 }); F2.notInts = () => ({ type: hn.SET, set: Wv(), not: !0 }); F2.whitespace = () => ({ type: hn.SET, set: iU(), not: !1 }); F2.notWhitespace = () => ({ type: hn.SET, set: iU(), not: !0 }); F2.anyChar = () => ({ type: hn.SET, set: Xfe(), not: !0 }) }); var sU = k(_c => { var lU = vc(), P1 = Yv(), Wfe = "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?", Yfe = { 0: 0, t: 9, n: 10, v: 11, f: 12, r: 13 }; _c.strToChars = function (t) { var e = /(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|(0?[0-7]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g; return t = t.replace(e, function (n, r, i, l, s, a, o, u) { if (i) return n; var c = r ? 8 : l ? parseInt(l, 16) : s ? parseInt(s, 16) : a ? parseInt(a, 8) : o ? Wfe.indexOf(o) : Yfe[u], f = String.fromCharCode(c); return /[[\]{}^$.|?*+()]/.test(f) && (f = "\\" + f), f }), t }; _c.tokenizeClass = (t, e) => { for (var n = [], r = /\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(?:\\)?([^\]]))|(\])|(?:\\)?([^])/g, i, l; (i = r.exec(t)) != null;)if (i[1]) n.push(P1.words()); else if (i[2]) n.push(P1.ints()); else if (i[3]) n.push(P1.whitespace()); else if (i[4]) n.push(P1.notWords()); else if (i[5]) n.push(P1.notInts()); else if (i[6]) n.push(P1.notWhitespace()); else if (i[7]) n.push({ type: lU.RANGE, from: (i[8] || i[9]).charCodeAt(0), to: i[10].charCodeAt(0) }); else if (l = i[12]) n.push({ type: lU.CHAR, value: l.charCodeAt(0) }); else return [n, r.lastIndex]; _c.error(e, "Unterminated character class") }; _c.error = (t, e) => { throw new SyntaxError("Invalid regular expression: /" + t + "/: " + e) } }); var aU = k(Ec => { var X9 = vc(); Ec.wordBoundary = () => ({ type: X9.POSITION, value: "b" }); Ec.nonWordBoundary = () => ({ type: X9.POSITION, value: "B" }); Ec.begin = () => ({ type: X9.POSITION, value: "^" }); Ec.end = () => ({ type: X9.POSITION, value: "$" }) }); var oU = k((cke, Qv) => { var L1 = sU(), rs = vc(), B3 = Yv(), W9 = aU(); Qv.exports = t => { var e = 0, n, r, i = { type: rs.ROOT, stack: [] }, l = i, s = i.stack, a = [], o = w => { L1.error(t, `Nothing to repeat at column ${w - 1}`) }, u = L1.strToChars(t); for (n = u.length; e < n;)switch (r = u[e++], r) { case "\\": switch (r = u[e++], r) { case "b": s.push(W9.wordBoundary()); break; case "B": s.push(W9.nonWordBoundary()); break; case "w": s.push(B3.words()); break; case "W": s.push(B3.notWords()); break; case "d": s.push(B3.ints()); break; case "D": s.push(B3.notInts()); break; case "s": s.push(B3.whitespace()); break; case "S": s.push(B3.notWhitespace()); break; default: /\d/.test(r) ? s.push({ type: rs.REFERENCE, value: parseInt(r, 10) }) : s.push({ type: rs.CHAR, value: r.charCodeAt(0) }) }break; case "^": s.push(W9.begin()); break; case "$": s.push(W9.end()); break; case "[": var c; u[e] === "^" ? (c = !0, e++) : c = !1; var f = L1.tokenizeClass(u.slice(e), t); e += f[1], s.push({ type: rs.SET, set: f[0], not: c }); break; case ".": s.push(B3.anyChar()); break; case "(": var m = { type: rs.GROUP, stack: [], remember: !0 }; r = u[e], r === "?" && (r = u[e + 1], e += 2, r === "=" ? m.followedBy = !0 : r === "!" ? m.notFollowedBy = !0 : r !== ":" && L1.error(t, `Invalid group, character '${r}' after '?' at column ${e - 1}`), m.remember = !1), s.push(m), a.push(l), l = m, s = m.stack; break; case ")": a.length === 0 && L1.error(t, `Unmatched ) at column ${e - 1}`), l = a.pop(), s = l.options ? l.options[l.options.length - 1] : l.stack; break; case "|": l.options || (l.options = [l.stack], delete l.stack); var d = []; l.options.push(d), s = d; break; case "{": var y = /^(\d+)(,(\d+)?)?\}/.exec(u.slice(e)), _, S; y !== null ? (s.length === 0 && o(e), _ = parseInt(y[1], 10), S = y[2] ? y[3] ? parseInt(y[3], 10) : 1 / 0 : _, e += y[0].length, s.push({ type: rs.REPETITION, min: _, max: S, value: s.pop() })) : s.push({ type: rs.CHAR, value: 123 }); break; case "?": s.length === 0 && o(e), s.push({ type: rs.REPETITION, min: 0, max: 1, value: s.pop() }); break; case "+": s.length === 0 && o(e), s.push({ type: rs.REPETITION, min: 1, max: 1 / 0, value: s.pop() }); break; case "*": s.length === 0 && o(e), s.push({ type: rs.REPETITION, min: 0, max: 1 / 0, value: s.pop() }); break; default: s.push({ type: rs.CHAR, value: r.charCodeAt(0) }) }return a.length !== 0 && L1.error(t, "Unterminated group"), i }; Qv.exports.types = rs }); var pU = k((pke, cU) => { "use strict"; var uU = oU(), Qfe = uU.types; cU.exports = function (t, e) { e || (e = {}); var n = e.limit === void 0 ? 25 : e.limit; Zfe(t) ? t = t.source : typeof t != "string" && (t = String(t)); try { t = uU(t) } catch { return !1 } var r = 0; return function i(l, s) { var a, o, u; if (l.type === Qfe.REPETITION && (s++, r++, s > 1 || r > n)) return !1; if (l.options) { for (a = 0, u = l.options.length; a < u; a++)if (o = i({ stack: l.options[a] }, s), !o) return !1 } var c = l.stack || l.value && l.value.stack; if (!c) return !0; for (a = 0; a < c.length; a++)if (o = i(c[a], s), !o) return !1; return !0 }(t, 0) }; function Zfe(t) { return {}.toString.call(t) === "[object RegExp]" } }); var Y9 = k((fke, fU) => { "use strict"; fU.exports = { name: "__fmw_internal_strategy_merged_tree_http_method__", storage: function () { let t = {}; return { get: e => t[e] || null, set: (e, n) => { t[e] = n } } }, deriveConstraint: t => t.method, mustMatchWhenDerived: !0 } }); var _U = k((dke, vU) => {
"use strict"; var dU = i1(), hU = Y9(), mU = Symbol("treeData"); function yU(t, e = "") {
let n = "", r = Object.keys(t); for (let i = 0; i < r.length; i++) {
let l = r[i], s = t[l], a = i === r.length - 1, o = a ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ", u = a ? " " : "\u2502 ", f = (s[mU] || "").split(`
`).join(`
`+ e + u); n += e + o + l + f + `
`, n += yU(s, e + u)
} return n
} function ede(t) { let e = t.name || ""; return e = e.replace("bound", "").trim(), e = (e || "anonymous") + "()", e } function gU(t) { return Array.isArray(t) ? t.map(e => gU(e)) : typeof t == "symbol" ? t.toString() : typeof t == "function" ? ede(t) : t } function tde(t, e) { if (!e.includeMeta) return {}; let n = e.buildPrettyMeta(t), r = {}, i = e.includeMeta; Array.isArray(i) || (i = Reflect.ownKeys(n)); for (let l of i) { if (!Object.prototype.hasOwnProperty.call(n, l)) continue; let s = l.toString(), a = n[l]; if (a != null) { let o = JSON.stringify(gU(a)); r[s] = o } } return r } function nde(t) {
let e = ""; for (let [n, r] of Object.entries(t)) e += `
\u2022 (${n}) ${r}`; return e
} function rde(t) { let e = { ...t.opts.constraints }, n = e[hU.name]; return delete e[hU.name], { ...t, method: n, opts: { constraints: e } } } function ide(t) { let e = ` (${t.method})`, n = t.opts.constraints || {}; return Object.keys(n).length !== 0 && (e += " " + JSON.stringify(n)), e += nde(t.metaData), e } function lde(t) { return t.reduce((e, n) => { for (let r of e) if (dU(n.opts.constraints, r.opts.constraints) && dU(n.metaData, r.metaData)) return r.method += ", " + n.method, e; return e.push(n), e }, []) } function sde(t, e, n) {
let r = t.routes; return n.method === void 0 && (r = r.map(rde)), r = r.map(i => (i.metaData = tde(i, n), i)), n.method === void 0 && (r = lde(r)), r.map(ide).join(`
${e}`)
} function Q9(t, e, n, r) { if ((t.isLeafNode || r.commonPrefix !== !1) && (n = n || "(empty root node)", e = e[n] = {}, t.isLeafNode && (e[mU] = sde(t, n, r)), n = ""), t.staticChildren) for (let i of Object.values(t.staticChildren)) Q9(i, e, n + i.prefix, r); if (t.parametricChildren) for (let i of Object.values(t.parametricChildren)) { let l = Array.from(i.nodePaths).join("|"); Q9(i, e, n + l, r) } t.wildcardChild && Q9(t.wildcardChild, e, "*", r) } function ade(t, e) { let n = {}; return Q9(t, n, t.prefix, e), yU(n) } vU.exports = { prettyPrintTree: ade }
}); var bU = k((hke, EU) => {
"use strict"; var ode = Y9(), Zv = class {
constructor() { this.unconstrainedHandler = null, this.constraints = [], this.handlers = [], this.constrainedHandlerStores = null } getMatchingHandler(e) { return e === void 0 ? this.unconstrainedHandler : this._getHandlerMatchingConstraints(e) } addHandler(e, n) { let r = n.params, i = n.opts.constraints || {}, l = { params: r, constraints: i, handler: n.handler, store: n.store || null, _createParamsObject: this._compileCreateParamsObject(r) }, s = Object.keys(i); s.length === 0 && (this.unconstrainedHandler = l); for (let o of s) this.constraints.includes(o) || (o === "version" ? this.constraints.unshift(o) : this.constraints.push(o)); let a = s.includes(ode.name); if (!a && this.handlers.length >= 32) throw new Error("find-my-way supports a maximum of 32 route handlers per node when there are constraints, limit reached"); this.handlers.push(l), this.handlers.sort((o, u) => Object.keys(o.constraints).length - Object.keys(u.constraints).length), a || this._compileGetHandlerMatchingConstraints(e, i) } _compileCreateParamsObject(e) { let n = []; for (let r = 0; r < e.length; r++)n.push(`'${e[r]}': paramsArray[${r}]`); return new Function("paramsArray", `return {${n.join(",")}}`) } _getHandlerMatchingConstraints() { return null } _buildConstraintStore(e, n) { for (let r = 0; r < this.handlers.length; r++) { let l = this.handlers[r].constraints[n]; if (l !== void 0) { let s = e.get(l) || 0; s |= 1 << r, e.set(l, s) } } } _constrainedIndexBitmask(e) { let n = 0; for (let r = 0; r < this.handlers.length; r++)this.handlers[r].constraints[e] !== void 0 && (n |= 1 << r); return ~n } _compileGetHandlerMatchingConstraints(e) {
this.constrainedHandlerStores = {}; for (let r of this.constraints) { let i = e.newStoreForConstraint(r); this.constrainedHandlerStores[r] = i, this._buildConstraintStore(i, r) } let n = []; n.push(`
let candidates = ${(1 << this.handlers.length) - 1}
let mask, matches
`); for (let r of this.constraints) {
n.push(`
mask = ${this._constrainedIndexBitmask(r)}
value = derivedConstraints.${r}
`); let l = e.strategies[r].mustMatchWhenDerived ? "matches" : "(matches | mask)"; n.push(`
if (value === undefined) {
candidates &= mask
} else {
matches = this.constrainedHandlerStores.${r}.get(value) || 0
candidates &= ${l}
}
if (candidates === 0) return null;
`)
} for (let r in e.strategies) e.strategies[r].mustMatchWhenDerived && !this.constraints.includes(r) && n.push(`if (derivedConstraints.${r} !== undefined) return null`); n.push("return this.handlers[Math.floor(Math.log2(candidates))]"), this._getHandlerMatchingConstraints = new Function("derivedConstraints", n.join(`
`))
}
}; EU.exports = Zv
}); var SU = k((mke, wU) => { "use strict"; var ude = bU(), i7 = { STATIC: 0, PARAMETRIC: 1, WILDCARD: 2 }, Z9 = class { constructor() { this.isLeafNode = !1, this.routes = null, this.handlerStorage = null } addRoute(e, n) { this.routes === null && (this.routes = []), this.handlerStorage === null && (this.handlerStorage = new ude), this.isLeafNode = !0, this.routes.push(e), this.handlerStorage.addHandler(n, e) } }, e7 = class extends Z9 { constructor() { super(), this.staticChildren = {} } findStaticMatchingChild(e, n) { let r = this.staticChildren[e.charAt(n)]; return r === void 0 || !r.matchPrefix(e, n) ? null : r } getStaticChild(e, n = 0) { if (e.length === n) return this; let r = this.findStaticMatchingChild(e, n); return r ? r.getStaticChild(e, n + r.prefix.length) : null } createStaticChild(e) { if (e.length === 0) return this; let n = this.staticChildren[e.charAt(0)]; if (n) { let i = 1; for (; i < n.prefix.length; i++)if (e.charCodeAt(i) !== n.prefix.charCodeAt(i)) { n = n.split(this, i); break } return n.createStaticChild(e.slice(i)) } let r = e.charAt(0); return this.staticChildren[r] = new t7(e), this.staticChildren[r] } }, t7 = class t extends e7 { constructor(e) { super(), this.prefix = e, this.wildcardChild = null, this.parametricChildren = [], this.kind = i7.STATIC, this._compilePrefixMatch() } getParametricChild(e) { let n = e && e.source, r = this.parametricChildren.find(i => (i.regex && i.regex.source) === n); return r || null } createParametricChild(e, n, r) { let i = this.getParametricChild(e); return i ? (i.nodePaths.add(r), i) : (i = new n7(e, n, r), this.parametricChildren.push(i), this.parametricChildren.sort((l, s) => l.isRegex ? s.isRegex ? l.staticSuffix === null ? 1 : s.staticSuffix === null ? -1 : s.staticSuffix.endsWith(l.staticSuffix) ? 1 : l.staticSuffix.endsWith(s.staticSuffix) ? -1 : 0 : -1 : 1), i) } getWildcardChild() { return this.wildcardChild ? this.wildcardChild : null } createWildcardChild() { return this.wildcardChild = this.getWildcardChild() || new r7, this.wildcardChild } split(e, n) { let r = this.prefix.slice(0, n), i = this.prefix.slice(n); this.prefix = i, this._compilePrefixMatch(); let l = new t(r); return l.staticChildren[i.charAt(0)] = this, e.staticChildren[r.charAt(0)] = l, l } getNextNode(e, n, r, i) { let l = this.findStaticMatchingChild(e, n), s = 0; if (l === null) { if (this.parametricChildren.length === 0) return this.wildcardChild; l = this.parametricChildren[0], s = 1 } this.wildcardChild !== null && r.push({ paramsCount: i, brotherPathIndex: n, brotherNode: this.wildcardChild }); for (let a = this.parametricChildren.length - 1; a >= s; a--)r.push({ paramsCount: i, brotherPathIndex: n, brotherNode: this.parametricChildren[a] }); return l } _compilePrefixMatch() { if (this.prefix.length === 1) { this.matchPrefix = () => !0; return } let e = []; for (let n = 1; n < this.prefix.length; n++) { let r = this.prefix.charCodeAt(n); e.push(`path.charCodeAt(i + ${n}) === ${r}`) } this.matchPrefix = new Function("path", "i", `return ${e.join(" && ")}`) } }, n7 = class extends e7 { constructor(e, n, r) { super(), this.isRegex = !!e, this.regex = e || null, this.staticSuffix = n || null, this.kind = i7.PARAMETRIC, this.nodePaths = new Set([r]) } getNextNode(e, n) { return this.findStaticMatchingChild(e, n) } }, r7 = class extends Z9 { constructor() { super(), this.kind = i7.WILDCARD } getNextNode() { return null } }; wU.exports = { StaticNode: t7, ParametricNode: n7, WildcardNode: r7, NODE_TYPES: i7 } }); var xU = k((yke, TU) => { "use strict"; var cde = require("assert"); function bc() { if (!(this instanceof bc)) return new bc; this.store = {}, this.maxMajor = 0, this.maxMinors = {}, this.maxPatches = {} } bc.prototype.set = function (t, e) { if (typeof t != "string") throw new TypeError("Version should be a string"); let [n, r, i] = t.split("."); return n = Number(n) || 0, r = Number(r) || 0, i = Number(i) || 0, n >= this.maxMajor && (this.maxMajor = n, this.store.x = e, this.store["*"] = e, this.store["x.x"] = e, this.store["x.x.x"] = e), r >= (this.maxMinors[n] || 0) && (this.maxMinors[n] = r, this.store[`${n}.x`] = e, this.store[`${n}.x.x`] = e), i >= (this.store[`${n}.${r}`] || 0) && (this.maxPatches[`${n}.${r}`] = i, this.store[`${n}.${r}.x`] = e), this.store[`${n}.${r}.${i}`] = e, this }; bc.prototype.get = function (t) { return this.store[t] }; TU.exports = { name: "version", mustMatchWhenDerived: !0, storage: bc, validate(t) { cde(typeof t == "string", "Version should be a string") } } }); var OU = k((gke, AU) => { "use strict"; var pde = require("assert"); function fde() { let t = {}, e = []; return { get: n => { let r = t[n]; if (r) return r; for (let i of e) if (i.host.test(n)) return i.value }, set: (n, r) => { n instanceof RegExp ? e.push({ host: n, value: r }) : t[n] = r } } } AU.exports = { name: "host", mustMatchWhenDerived: !1, storage: fde, validate(t) { pde(typeof t == "string" || Object.prototype.toString.call(t) === "[object RegExp]", "Host should be a string or a RegExp") } } }); var CU = k((vke, NU) => {
"use strict"; var dde = xU(), hde = OU(), e_ = require("assert"), t_ = class {
constructor(e) { if (this.strategies = { version: dde, host: hde }, this.strategiesInUse = new Set, this.asyncStrategiesInUse = new Set, e) for (let n of Object.values(e)) this.addConstraintStrategy(n) } isStrategyUsed(e) { return this.strategiesInUse.has(e) || this.asyncStrategiesInUse.has(e) } hasConstraintStrategy(e) { let n = this.strategies[e]; return n !== void 0 ? n.isCustom || this.isStrategyUsed(e) : !1 } addConstraintStrategy(e) { if (e_(typeof e.name == "string" && e.name !== "", "strategy.name is required."), e_(e.storage && typeof e.storage == "function", "strategy.storage function is required."), e_(e.deriveConstraint && typeof e.deriveConstraint == "function", "strategy.deriveConstraint function is required."), this.strategies[e.name] && this.strategies[e.name].isCustom) throw new Error(`There already exists a custom constraint with the name ${e.name}.`); if (this.isStrategyUsed(e.name)) throw new Error(`There already exists a route with ${e.name} constraint.`); e.isCustom = !0, e.isAsync = e.deriveConstraint.length === 3, this.strategies[e.name] = e, e.mustMatchWhenDerived && this.noteUsage({ [e.name]: e }) } deriveConstraints(e, n, r) { let i = this.deriveSyncConstraints(e, n); if (r === void 0) return i; this.deriveAsyncConstraints(i, e, n, r) } deriveSyncConstraints(e, n) { } noteUsage(e) { if (e) { let n = this.strategiesInUse.size; for (let r in e) this.strategies[r].isAsync ? this.asyncStrategiesInUse.add(r) : this.strategiesInUse.add(r); n !== this.strategiesInUse.size && this._buildDeriveConstraints() } } newStoreForConstraint(e) { if (!this.strategies[e]) throw new Error(`No strategy registered for constraint key ${e}`); return this.strategies[e].storage() } validateConstraints(e) { for (let n in e) { let r = e[n]; if (typeof r > "u") throw new Error("Can't pass an undefined constraint value, must pass null or no key at all"); let i = this.strategies[n]; if (!i) throw new Error(`No strategy registered for constraint key ${n}`); i.validate && i.validate(r) } } deriveAsyncConstraints(e, n, r, i) { let l = this.asyncStrategiesInUse.size; if (l === 0) { i(null, e); return } e = e || {}; for (let s of this.asyncStrategiesInUse) this.strategies[s].deriveConstraint(n, r, (o, u) => { if (o !== null) { i(o); return } e[s] = u, --l === 0 && i(null, e) }) } _buildDeriveConstraints() {
if (this.strategiesInUse.size === 0) return; let e = ["return {"]; for (let n of this.strategiesInUse) { let r = this.strategies[n]; if (r.isCustom) e.push(` ${r.name}: this.strategies.${n}.deriveConstraint(req, ctx),`); else if (n === "version") e.push(" version: req.headers['accept-version'],"); else if (n === "host") e.push(" host: req.headers.host || req.headers[':authority'],"); else throw new Error("unknown non-custom strategy for compiling constraint derivation function") } e.push("}"), this.deriveSyncConstraints = new Function("req", "ctx", e.join(`
`)).bind(this)
}
}; NU.exports = t_
}); var IU = k((_ke, RU) => { "use strict"; var mde = ["ACL", "BIND", "CHECKOUT", "CONNECT", "COPY", "DELETE", "GET", "HEAD", "LINK", "LOCK", "M-SEARCH", "MERGE", "MKACTIVITY", "MKCALENDAR", "MKCOL", "MOVE", "NOTIFY", "OPTIONS", "PATCH", "POST", "PROPFIND", "PROPPATCH", "PURGE", "PUT", "REBIND", "REPORT", "SEARCH", "SOURCE", "SUBSCRIBE", "TRACE", "UNBIND", "UNLINK", "UNLOCK", "UNSUBSCRIBE"]; RU.exports = mde }); var PU = k((Eke, DU) => { "use strict"; function kU(t, e) { return t === 50 ? e === 53 ? "%" : e === 51 ? "#" : e === 52 ? "$" : e === 54 ? "&" : e === 66 || e === 98 ? "+" : e === 67 || e === 99 ? "," : e === 70 || e === 102 ? "/" : null : t === 51 ? e === 65 || e === 97 ? ":" : e === 66 || e === 98 ? ";" : e === 68 || e === 100 ? "=" : e === 70 || e === 102 ? "?" : null : t === 52 && e === 48 ? "@" : null } function yde(t, e) { let n = !1, r = !1, i = ""; for (let s = 1; s < t.length; s++) { let a = t.charCodeAt(s); if (a === 37) { let o = t.charCodeAt(s + 1), u = t.charCodeAt(s + 2); kU(o, u) === null ? n = !0 : (r = !0, o === 50 && u === 53 && (n = !0, t = t.slice(0, s + 1) + "25" + t.slice(s + 1), s += 2), s += 2) } else if (a === 63 || a === 35 || a === 59 && e) { i = t.slice(s + 1), t = t.slice(0, s); break } } return { path: n ? decodeURI(t) : t, querystring: i, shouldDecodeParam: r } } function gde(t) { let e = t.indexOf("%"); if (e === -1) return t; let n = "", r = e; for (let i = e; i < t.length; i++)if (t.charCodeAt(i) === 37) { let l = t.charCodeAt(i + 1), s = t.charCodeAt(i + 2), a = kU(l, s); n += t.slice(r, i) + a, r = i + 3 } return t.slice(0, e) + n + t.slice(r) } DU.exports = { safeDecodeURI: yde, safeDecodeURIComponent: gde } }); var a_ = k((bke, BU) => { "use strict"; var Ur = require("assert"), vde = tU(), l7 = pU(), i_ = i1(), { prettyPrintTree: _de } = _U(), { StaticNode: LU, NODE_TYPES: n_ } = SU(), Ede = CU(), F1 = IU(), r_ = Y9(), { safeDecodeURI: bde, safeDecodeURIComponent: FU } = PU(), jU = /^https?:\/\/.*?\//, H3 = /(\/:[^/()]*?)\?(\/?)/; if (!l7(jU)) throw new Error("the FULL_PATH_REGEXP is not safe, update this module"); if (!l7(H3)) throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module"); function Er(t) { if (!(this instanceof Er)) return new Er(t); t = t || {}, this._opts = t, t.defaultRoute ? (Ur(typeof t.defaultRoute == "function", "The default route must be a function"), this.defaultRoute = t.defaultRoute) : this.defaultRoute = null, t.onBadUrl ? (Ur(typeof t.onBadUrl == "function", "The bad url handler must be a function"), this.onBadUrl = t.onBadUrl) : this.onBadUrl = null, t.buildPrettyMeta ? (Ur(typeof t.buildPrettyMeta == "function", "buildPrettyMeta must be a function"), this.buildPrettyMeta = t.buildPrettyMeta) : this.buildPrettyMeta = wde, t.querystringParser ? (Ur(typeof t.querystringParser == "function", "querystringParser must be a function"), this.querystringParser = t.querystringParser) : this.querystringParser = e => e === "" ? {} : vde.parse(e), this.caseSensitive = t.caseSensitive === void 0 ? !0 : t.caseSensitive, this.ignoreTrailingSlash = t.ignoreTrailingSlash || !1, this.ignoreDuplicateSlashes = t.ignoreDuplicateSlashes || !1, this.maxParamLength = t.maxParamLength || 100, this.allowUnsafeRegex = t.allowUnsafeRegex || !1, this.constrainer = new Ede(t.constraints), this.useSemicolonDelimiter = t.useSemicolonDelimiter || !1, this.routes = [], this.trees = {} } Er.prototype.on = function (e, n, r, i, l) { typeof r == "function" && (i !== void 0 && (l = i), i = r, r = {}), Ur(typeof n == "string", "Path should be a string"), Ur(n.length > 0, "The path could not be empty"), Ur(n[0] === "/" || n[0] === "*", "The first character of a path should be `/` or `*`"), Ur(typeof i == "function", "Handler should be a function"); let s = n.match(H3); if (s) { Ur(n.length === s.index + s[0].length, "Optional Parameter needs to be the last parameter of the path"); let u = n.replace(H3, "$1$2"), c = n.replace(H3, "$2"); this.on(e, u, r, i, l), this.on(e, c, r, i, l); return } let a = n; this.ignoreDuplicateSlashes && (n = l_(n)), this.ignoreTrailingSlash && (n = s_(n)); let o = Array.isArray(e) ? e : [e]; for (let u of o) Ur(typeof u == "string", "Method should be a string"), Ur(F1.includes(u), `Method '${u}' is not an http method.`), this._on(u, n, r, i, l, a) }; Er.prototype._on = function (e, n, r, i, l) { let s = {}; r.constraints !== void 0 && (Ur(typeof r.constraints == "object" && r.constraints !== null, "Constraints should be an object"), Object.keys(r.constraints).length !== 0 && (s = r.constraints)), this.constrainer.validateConstraints(s), this.constrainer.noteUsage(s), this.trees[e] === void 0 && (this.trees[e] = new LU("/")); let a = n; if (a === "*" && this.trees[e].prefix.length !== 0) { let m = this.trees[e]; this.trees[e] = new LU(""), this.trees[e].staticChildren["/"] = m } let o = this.trees[e], u = o.prefix.length, c = []; for (let m = 0; m <= a.length; m++) { if (a.charCodeAt(m) === 58 && a.charCodeAt(m + 1) === 58) { m++; continue } let d = a.charCodeAt(m) === 58 && a.charCodeAt(m + 1) !== 58, y = a.charCodeAt(m) === 42; if (d || y || m === a.length && m !== u) { let _ = a.slice(u, m); this.caseSensitive || (_ = _.toLowerCase()), _ = _.split("::").join(":"), _ = _.split("%").join("%25"), o = o.createStaticChild(_) } if (d) { let _ = !1, S = [], w = m + 1; for (let E = w; ; E++) { let g = a.charCodeAt(E), v = g === 40, x = g === 45 || g === 46, O = g === 47 || E === a.length; if (v || x || O) { let N = a.slice(w, E); if (c.push(N), _ = _ || v || x, v) { let F = $U(a, E), te = a.slice(E, F + 1); this.allowUnsafeRegex || Ur(l7(new RegExp(te)), `The regex '${te}' is not safe!`), S.push(MU(te)), E = F + 1 } else S.push("(.*?)"); let R = E; for (; E < a.length; E++) { let F = a.charCodeAt(E); if (F === 47) break; if (F === 58) if (a.charCodeAt(E + 1) === 58) E++; else break } let U = a.slice(R, E); if (U && (U = U.split("::").join(":"), U = U.split("%").join("%25"), S.push(UU(U))), w = E + 1, O || a.charCodeAt(E) === 47 || E === a.length) { let F = _ ? "()" + U : U, te = a.slice(m, E); a = a.slice(0, m + 1) + F + a.slice(E), m += F.length; let Q = _ ? new RegExp("^" + S.join("") + "$") : null; o = o.createParametricChild(Q, U || null, te), u = m + 1; break } } } } else if (y && (c.push("*"), o = o.createWildcardChild(), u = m + 1, m !== a.length - 1)) throw new Error("Wildcard must be the last character in the route") } this.caseSensitive || (a = a.toLowerCase()), a === "*" && (a = "/*"); for (let m of this.routes) { let d = m.opts.constraints || {}; if (m.method === e && m.pattern === a && i_(d, s)) throw new Error(`Method '${e}' already declared for route '${a}' with constraints '${JSON.stringify(s)}'`) } let f = { method: e, path: n, pattern: a, params: c, opts: r, handler: i, store: l }; this.routes.push(f), o.addRoute(f, this.constrainer) }; Er.prototype.hasRoute = function (e, n, r) { return this.findRoute(e, n, r) !== null }; Er.prototype.findRoute = function (e, n, r = {}) { if (this.trees[e] === void 0) return null; let i = n, l = this.trees[e], s = l.prefix.length, a = []; for (let o = 0; o <= i.length; o++) { if (i.charCodeAt(o) === 58 && i.charCodeAt(o + 1) === 58) { o++; continue } let u = i.charCodeAt(o) === 58 && i.charCodeAt(o + 1) !== 58, c = i.charCodeAt(o) === 42; if (u || c || o === i.length && o !== s) { let f = i.slice(s, o); if (this.caseSensitive || (f = f.toLowerCase()), f = f.split("::").join(":"), f = f.split("%").join("%25"), l = l.getStaticChild(f), l === null) return null } if (u) { let f = !1, m = [], d = o + 1; for (let y = d; ; y++) { let _ = i.charCodeAt(y), S = _ === 40, w = _ === 45 || _ === 46, E = _ === 47 || y === i.length; if (S || w || E) { let g = i.slice(d, y); if (a.push(g), f = f || S || w, S) { let O = $U(i, y), N = i.slice(y, O + 1); this.allowUnsafeRegex || Ur(l7(new RegExp(N)), `The regex '${N}' is not safe!`), m.push(MU(N)), y = O + 1 } else m.push("(.*?)"); let v = y; for (; y < i.length; y++) { let O = i.charCodeAt(y); if (O === 47) break; if (O === 58) if (i.charCodeAt(y + 1) === 58) y++; else break } let x = i.slice(v, y); if (x && (x = x.split("::").join(":"), x = x.split("%").join("%25"), m.push(UU(x))), d = y + 1, E || i.charCodeAt(y) === 47 || y === i.length) { let O = f ? "()" + x : x, N = i.slice(o, y); i = i.slice(0, o + 1) + O + i.slice(y), o += O.length; let R = f ? new RegExp("^" + m.join("") + "$") : null; if (l = l.getParametricChild(R, x || null, N), l === null) return null; s = o + 1; break } } } } else if (c) { if (a.push("*"), l = l.getWildcardChild(), l === null) return null; if (s = o + 1, o !== i.length - 1) throw new Error("Wildcard must be the last character in the route") } } this.caseSensitive || (i = i.toLowerCase()), i === "*" && (i = "/*"); for (let o of this.routes) { let u = o.opts.constraints || {}; if (o.method === e && o.pattern === i && i_(u, r)) return { handler: o.handler, store: o.store, params: o.params || [] } } return null }; Er.prototype.hasConstraintStrategy = function (t) { return this.constrainer.hasConstraintStrategy(t) }; Er.prototype.addConstraintStrategy = function (t) { this.constrainer.addConstraintStrategy(t), this._rebuild(this.routes) }; Er.prototype.reset = function () { this.trees = {}, this.routes = [] }; Er.prototype.off = function (e, n, r) { Ur(typeof n == "string", "Path should be a string"), Ur(n.length > 0, "The path could not be empty"), Ur(n[0] === "/" || n[0] === "*", "The first character of a path should be `/` or `*`"), Ur(typeof r > "u" || typeof r == "object" && !Array.isArray(r) && r !== null, "Constraints should be an object or undefined."); let i = n.match(H3); if (i) { Ur(n.length === i.index + i[0].length, "Optional Parameter needs to be the last parameter of the path"); let s = n.replace(H3, "$1$2"), a = n.replace(H3, "$2"); this.off(e, s, r), this.off(e, a, r); return } this.ignoreDuplicateSlashes && (n = l_(n)), this.ignoreTrailingSlash && (n = s_(n)); let l = Array.isArray(e) ? e : [e]; for (let s of l) this._off(s, n, r) }; Er.prototype._off = function (e, n, r) { Ur(typeof e == "string", "Method should be a string"), Ur(F1.includes(e), `Method '${e}' is not an http method.`); function i(o) { return e !== o.method || n !== o.path } function l(o) { return i(o) || !i_(r, o.opts.constraints || {}) } let s = r ? l : i, a = this.routes.filter(s); this._rebuild(a) }; Er.prototype.lookup = function (e, n, r, i) { if (typeof r == "function" && (i = r, r = void 0), i === void 0) { let l = this.constrainer.deriveConstraints(e, r), s = this.find(e.method, e.url, l); return this.callHandler(s, e, n, r) } this.constrainer.deriveConstraints(e, r, (l, s) => { if (l !== null) { i(l); return } try { let a = this.find(e.method, e.url, s), o = this.callHandler(a, e, n, r); i(null, o) } catch (a) { i(a) } }) }; Er.prototype.callHandler = function (e, n, r, i) { return e === null ? this._defaultRoute(n, r, i) : i === void 0 ? e.handler(n, r, e.params, e.store, e.searchParams) : e.handler.call(i, n, r, e.params, e.store, e.searchParams) }; Er.prototype.find = function (e, n, r) { let i = this.trees[e]; if (i === void 0) return null; n.charCodeAt(0) !== 47 && (n = n.replace(jU, "/")), this.ignoreDuplicateSlashes && (n = l_(n)); let l, s, a; try { l = bde(n, this.useSemicolonDelimiter), n = l.path, s = l.querystring, a = l.shouldDecodeParam } catch { return this._onBadUrl(n) } this.ignoreTrailingSlash && (n = s_(n)); let o = n; this.caseSensitive === !1 && (n = n.toLowerCase()); let u = this.maxParamLength, c = i.prefix.length, f = [], m = n.length, d = []; for (; ;) { if (c === m && i.isLeafNode) { let _ = i.handlerStorage.getMatchingHandler(r); if (_ !== null) return { handler: _.handler, store: _.store, params: _._createParamsObject(f), searchParams: this.querystringParser(s) } } let y = i.getNextNode(n, c, d, f.length); if (y === null) { if (d.length === 0) return null; let _ = d.pop(); c = _.brotherPathIndex, f.splice(_.paramsCount), y = _.brotherNode } if (i = y, i.kind === n_.STATIC) { c += i.prefix.length; continue } if (i.kind === n_.WILDCARD) { let _ = o.slice(c); a && (_ = FU(_)), f.push(_), c = m; continue } if (i.kind === n_.PARAMETRIC) { let _ = o.indexOf("/", c); _ === -1 && (_ = m); let S = o.slice(c, _); if (a && (S = FU(S)), i.isRegex) { let w = i.regex.exec(S); if (w === null) continue; for (let E = 1; E < w.length; E++) { let g = w[E]; if (g.length > u) return null; f.push(g) } } else { if (S.length > u) return null; f.push(S) } c = _ } } }; Er.prototype._rebuild = function (t) { this.reset(); for (let e of t) { let { method: n, path: r, opts: i, handler: l, store: s } = e; this._on(n, r, i, l, s) } }; Er.prototype._defaultRoute = function (t, e, n) { if (this.defaultRoute !== null) return n === void 0 ? this.defaultRoute(t, e) : this.defaultRoute.call(n, t, e); e.statusCode = 404, e.end() }; Er.prototype._onBadUrl = function (t) { if (this.onBadUrl === null) return null; let e = this.onBadUrl; return { handler: (n, r, i) => e(t, n, r), params: {}, store: null } }; Er.prototype.prettyPrint = function (t = {}) { let e = t.method; t.buildPrettyMeta = this.buildPrettyMeta.bind(this); let n = null; if (e === void 0) { let { version: r, host: i, ...l } = this.constrainer.strategies; l[r_.name] = r_; let s = new Er({ ...this._opts, constraints: l }), a = this.routes.map(o => { let u = { ...o.opts.constraints, [r_.name]: o.method }; return { ...o, method: "MERGED", opts: { constraints: u } } }); s._rebuild(a), n = s.trees.MERGED } else n = this.trees[e]; return n == null ? "(empty tree)" : _de(n, t) }; for (let t in F1) { if (!F1.hasOwnProperty(t)) continue; let e = F1[t], n = e.toLowerCase(); if (Er.prototype[n]) throw new Error("Method already exists: " + n); Er.prototype[n] = function (r, i, l) { return this.on(e, r, i, l) } } Er.prototype.all = function (t, e, n) { this.on(F1, t, e, n) }; BU.exports = Er; function UU(t) { return t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") } function l_(t) { return t.replace(/\/\/+/g, "/") } function s_(t) { return t.length > 1 && t.charCodeAt(t.length - 1) === 47 ? t.slice(0, -1) : t } function MU(t) { return t.charCodeAt(1) === 94 && (t = t.slice(0, 1) + t.slice(2)), t.charCodeAt(t.length - 2) === 36 && (t = t.slice(0, t.length - 2) + t.slice(t.length - 1)), t } function $U(t, e) { let n = 1; for (; e < t.length;) { if (e++, t[e] === "\\") { e++; continue } if (t[e] === ")" ? n-- : t[e] === "(" && n++, !n) return e } throw new TypeError('Invalid regexp expression in "' + t + '"') } function wde(t) { return t ? t.store ? Object.assign({}, t.store) : {} : {} } }); var VU = k((wke, HU) => { "use strict"; function o_(t, e, n, r) { if (n === void 0) return e.header("content-length", "0"), r(null, null); if (typeof n.resume == "function") return n.on("error", l => { e.log.error({ err: l }, "Error on Stream found for HEAD route") }), n.resume(), r(null, null); let i = "" + Buffer.byteLength(n); e.header("content-length", i), r(null, null) } function Sde(t) { return t == null ? o_ : Array.isArray(t) ? [...t, o_] : [t, o_] } HU.exports = { parseHeadOnSendHandlers: Sde } }); var sM = k((Ske, lM) => { "use strict"; var Tde = a_(), xde = N9(), qU = sh(), { onRequestAbortHookRunner: Ade, lifecycleHooks: zU, preParsingHookRunner: Ode, onTimeoutHookRunner: Nde, onRequestHookRunner: Cde } = m2(), { supportedMethods: Rde } = Lg(), { normalizeSchema: Ide } = f4(), { parseHeadOnSendHandlers: kde } = VU(), { FSTDEP007: Dde, FSTDEP008: Pde, FSTDEP014: GU } = Fa(), { compileSchemasForValidation: Lde, compileSchemasForSerialization: Fde } = th(), { FST_ERR_SCH_VALIDATION_BUILD: jde, FST_ERR_SCH_SERIALIZATION_BUILD: Ude, FST_ERR_DEFAULT_ROUTE_INVALID_TYPE: Mde, FST_ERR_DUPLICATED_ROUTE: $de, FST_ERR_INVALID_URL: Bde, FST_ERR_HOOK_INVALID_HANDLER: JU, FST_ERR_ROUTE_OPTIONS_NOT_OBJ: Hde, FST_ERR_ROUTE_DUPLICATED_HANDLER: Vde, FST_ERR_ROUTE_HANDLER_NOT_FN: KU, FST_ERR_ROUTE_MISSING_HANDLER: qde, FST_ERR_ROUTE_METHOD_NOT_SUPPORTED: zde, FST_ERR_ROUTE_METHOD_INVALID: Gde, FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED: Jde, FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT: Kde, FST_ERR_HOOK_INVALID_ASYNC_HANDLER: u_ } = Ui(), { kRoutePrefix: Xde, kLogLevel: Wde, kLogSerializers: XU, kHooks: WU, kSchemaController: Yde, kOptions: YU, kReplySerializerDefault: c_, kReplyIsError: Qde, kRequestPayloadStream: Zde, kDisableRequestLogging: ehe, kSchemaErrorFormatter: the, kErrorHandler: QU, kHasBeenDecorated: ZU, kRequestAcceptVersion: p_, kRouteByFastify: f_, kRouteContext: eM } = di(), { buildErrorHandler: nhe } = V4(), { createChildLogger: rhe } = c4(), { getGenReqId: ihe } = K9(); function lhe(t) { let e = Tde(t.config), n, r, i, l, s, a, o, u, c, f, m, d, y, _ = !1; return { setup(R, U) { n = U.avvio, r = U.fourOhFour, i = U.logger, l = U.hasLogger, s = U.setupResponseListeners, a = U.throwIfAlreadyStarted, d = U.validateHTTPVersion, m = R.exposeHeadRoutes, o = R.disableRequestLogging, u = R.ignoreTrailingSlash, c = R.ignoreDuplicateSlashes, f = Object.prototype.hasOwnProperty.call(R, "return503OnClosing") ? R.return503OnClosing : !0, y = U.keepAliveConnections }, routing: e.lookup.bind(e), route: O, hasRoute: v, prepareRoute: g, getDefaultRoute: function () { return GU(), e.defaultRoute }, setDefaultRoute: function (R) { if (GU(), typeof R != "function") throw new Mde; e.defaultRoute = R }, routeHandler: N, closeRoutes: () => { _ = !0 }, printRoutes: e.prettyPrint.bind(e), addConstraintStrategy: S, hasConstraintStrategy: w, isAsyncConstraint: E, findRoute: x }; function S(R) { return a("Cannot add constraint strategy!"), e.addConstraintStrategy(R) } function w(R) { return e.hasConstraintStrategy(R) } function E() { return e.constrainer.asyncStrategiesInUse.size > 0 } function g({ method: R, url: U, options: F, handler: te, isFastify: Q }) { if (typeof U != "string") throw new Bde(typeof U); if (!te && typeof F == "function") te = F, F = {}; else if (te && typeof te == "function") { if (Object.prototype.toString.call(F) !== "[object Object]") throw new Hde(R, U); if (F.handler) throw typeof F.handler == "function" ? new Vde(R, U) : new KU(R, U) } return F = Object.assign({}, F, { method: R, url: U, path: U, handler: te || F && F.handler }), O.call(this, { options: F, isFastify: Q }) } function v({ options: R }) { return x(R) !== null } function x(R) { let U = e.find(R.method, R.url || "", R.constraints); return U ? { handler: U.handler, params: U.params, searchParams: U.searchParams } : null } function O({ options: R, isFastify: U }) { let F = { ...R }, { exposeHeadRoute: te } = F, W = te != null ? te : m, ce = F.method === "GET" || Array.isArray(F.method) && F.method.includes("GET"), we = F.method === "HEAD" || Array.isArray(F.method) && F.method.includes("HEAD"), se = W && ce ? { ...R } : null; a("Cannot add route!"); let ee = F.url || F.path || ""; if (Array.isArray(F.method)) for (var me = 0; me < F.method.length; ++me)F.method[me] = tM(F.method[me]), nM(F.method[me], ee, F.schema); else F.method = tM(F.method), nM(F.method, ee, F.schema); if (!F.handler) throw new qde(F.method, ee); if (F.errorHandler !== void 0 && typeof F.errorHandler != "function") throw new KU(F.method, ee); iM(F.bodyLimit); let P = this[Xde]; if (ee === "/" && P.length > 0 && F.method !== "HEAD") switch (F.prefixTrailingSlash) { case "slash": G.call(this, { path: ee, isFastify: U }); break; case "no-slash": G.call(this, { path: "", isFastify: U }); break; case "both": default: G.call(this, { path: "", isFastify: U }), u !== !0 && (c !== !0 || !P.endsWith("/")) && G.call(this, { path: ee, prefixing: !0, isFastify: U }) } else ee[0] === "/" && P.endsWith("/") ? G.call(this, { path: ee.slice(1), isFastify: U }) : G.call(this, { path: ee, isFastify: U }); return this; function G({ path: V, prefixing: q = !1, isFastify: Zn = !1 }) { let Tt = P + V; if (F.url = Tt, F.path = Tt, F.routePath = V, F.prefix = P, F.logLevel = F.logLevel || this[Wde], (this[XU] || F.logSerializers) && (F.logSerializers = Object.assign(Object.create(this[XU]), F.logSerializers)), F.attachValidation == null && (F.attachValidation = !1), q === !1) for (let gt of this[WU].onRoute) gt.call(this, F); for (let gt of zU) if (F && gt in F) { if (Array.isArray(F[gt])) for (let Et of F[gt]) { if (typeof Et != "function") throw new JU(gt, Object.prototype.toString.call(Et)); if (gt === "onSend" || gt === "preSerialization" || gt === "onError" || gt === "preParsing") { if (Et.constructor.name === "AsyncFunction" && Et.length === 4) throw new u_ } else if (gt === "onRequestAbort") { if (Et.constructor.name === "AsyncFunction" && Et.length !== 1) throw new u_ } else if (Et.constructor.name === "AsyncFunction" && Et.length === 3) throw new u_ } else if (F[gt] !== void 0 && typeof F[gt] != "function") throw new JU(gt, Object.prototype.toString.call(F[gt])) } let Qe = F.constraints || {}, pt = { ...F.config, url: Tt, method: F.method }, ze = new xde({ schema: F.schema, handler: F.handler.bind(this), config: pt, errorHandler: F.errorHandler, childLoggerFactory: F.childLoggerFactory, bodyLimit: F.bodyLimit, logLevel: F.logLevel, logSerializers: F.logSerializers, attachValidation: F.attachValidation, schemaErrorFormatter: F.schemaErrorFormatter, replySerializer: this[c_], validatorCompiler: F.validatorCompiler, serializerCompiler: F.serializerCompiler, exposeHeadRoute: W, prefixTrailingSlash: F.prefixTrailingSlash || "both", server: this, isFastify: Zn }); F.version && (Pde(), Qe.version = F.version); let Ue = e.findRoute("HEAD", F.url, Qe), $t = Ue !== null; we && $t && !ze[f_] && Ue.store[f_] && e.off("HEAD", F.url, Qe); try { e.on(F.method, F.url, { constraints: Qe }, N, ze) } catch (gt) { if (!ze[f_]) throw gt.message.includes(`Method '${F.method}' already declared for route '${F.url}'`) ? new $de(F.method, F.url) : gt } if (this.after((gt, Et) => { ze.errorHandler = F.errorHandler ? nhe(this[QU], F.errorHandler) : this[QU], ze._parserOptions.limit = F.bodyLimit || null, ze.logLevel = F.logLevel, ze.logSerializers = F.logSerializers, ze.attachValidation = F.attachValidation, ze[c_] = this[c_], ze.schemaErrorFormatter = F.schemaErrorFormatter || this[the] || ze.schemaErrorFormatter, n.once("preReady", () => { for (let ie of zU) { let ve = this[WU][ie].concat(F[ie] || []).map(Se => Se.bind(this)); ze[ie] = ve.length ? ve : null } for (; !ze.Request[ZU] && ze.Request.parent;)ze.Request = ze.Request.parent; for (; !ze.Reply[ZU] && ze.Reply.parent;)ze.Reply = ze.Reply.parent; if (r.setContext(this, ze), F.schema) { ze.schema = Ide(ze.schema, this.initialConfig); let ie = this[Yde]; !F.validatorCompiler && (F.schema.body || F.schema.headers || F.schema.querystring || F.schema.params) && ie.setupValidator(this[YU]); try { let ve = typeof F?.validatorCompiler == "function" || ie.isCustomValidatorCompiler; Lde(ze, F.validatorCompiler || ie.validatorCompiler, ve) } catch (ve) { throw new jde(F.method, Tt, ve.message) } F.schema.response && !F.serializerCompiler && ie.setupSerializer(this[YU]); try { Fde(ze, F.serializerCompiler || ie.serializerCompiler) } catch (ve) { throw new Ude(F.method, Tt, ve.message) } } }), Et(gt) }), W && ce && !we && !$t) { let gt = kde(se.onSend); g.call(this, { method: "HEAD", url: V, options: { ...se, onSend: gt }, isFastify: !0 }) } else $t && te && Dde() } } function N(R, U, F, te, Q) { let W = ihe(te.server, R), ce = { level: te.logLevel }; te.logSerializers && (ce.serializers = te.logSerializers); let we = rhe(te, i, R, W, ce); if (we[ehe] = o, !d(R.httpVersion)) { we.info({ res: { statusCode: 505 } }, "request aborted - invalid HTTP version"); let P = '{"error":"HTTP Version Not Supported","message":"HTTP Version Not Supported","statusCode":505}', G = { "Content-Type": "application/json", "Content-Length": P.length }; U.writeHead(505, G), U.end(P); return } if (_ === !0 && (R.httpVersionMajor !== 2 && U.setHeader("Connection", "close"), f)) { let P = { "Content-Type": "application/json", "Content-Length": "80" }; U.writeHead(503, P), U.end('{"error":"Service Unavailable","message":"Service Unavailable","statusCode":503}'), we.info({ res: { statusCode: 503 } }, "request aborted - refusing to accept new requests as server is closing"); return } String.prototype.toLowerCase.call(R.headers.connection || "") === "keep-alive" && y.has(R.socket) === !1 && (y.add(R.socket), R.socket.on("close", ohe.bind({ keepAliveConnections: y, socket: R.socket }))), R.headers[p_] !== void 0 && (R.headers["accept-version"] = R.headers[p_], R.headers[p_] = void 0); let ee = new te.Request(W, F, R, Q, we, te), me = new te.Reply(U, ee, we); o === !1 && we.info({ req: ee }, "incoming request"), (l === !0 || te.onResponse !== null) && s(me), te.onRequest !== null ? Cde(te.onRequest, ee, me, rM) : rM(null, ee, me), te.onRequestAbort !== null && R.on("close", () => { R.aborted && Ade(te.onRequestAbort, ee, she.bind(null, me)) }), te.onTimeout !== null && (ee.raw.socket._meta || ee.raw.socket.on("timeout", ahe), ee.raw.socket._meta = { context: te, request: ee, reply: me }) } } function she(t, e) { e && t.log.error({ err: e }, "onRequestAborted hook failed") } function ahe() { let { context: t, request: e, reply: n } = this._meta; Nde(t.onTimeout, e, n, uhe) } function tM(t) { if (typeof t != "string") throw new Gde; if (t = t.toUpperCase(), Rde.indexOf(t) === -1) throw new zde(t); return t } function nM(t, e, n) { if ((t === "GET" || t === "HEAD") && n && n.body) throw new Jde(t, e) } function iM(t) { if (t !== void 0 && (!Number.isInteger(t) || t <= 0)) throw new Kde(t) } function rM(t, e, n) { if (n.sent !== !0) { if (t != null) { n[Qde] = !0, n.send(t); return } e[Zde] = e.raw, e[eM].preParsing !== null ? Ode(e[eM].preParsing, e, n, qU) : qU(null, e, n) } } function ohe() { this.keepAliveConnections.delete(this.socket) } function uhe() { } lM.exports = { buildRouting: lhe, validateBodyLimitOption: iM } }); var dM = k((Tke, fM) => { "use strict"; var che = a_(), aM = p9(), oM = O9(), phe = N9(), { kRoutePrefix: fhe, kCanSetNotFoundHandler: wc, kFourOhFourLevelInstance: Sc, kFourOhFourContext: la, kHooks: dhe, kErrorHandler: uM } = di(), { lifecycleHooks: hhe } = m2(), { buildErrorHandler: mhe } = V4(), { FST_ERR_NOT_FOUND: yhe } = Ui(), { createChildLogger: cM } = c4(), { getGenReqId: pM } = K9(); function ghe(t) { let { logger: e } = t, n = che({ onBadUrl: s(), defaultRoute: c }), r = null; return { router: n, setNotFoundHandler: o, setContext: a, arrange404: i }; function i(f) { f[Sc] = f, f[wc] = !0, n.onBadUrl = n.onBadUrl.bind(f), n.defaultRoute = n.defaultRoute.bind(f) } function l(f, m) { let { url: d, method: y } = f.raw, _ = `Route ${y}:${d} not found`; f.log.info(_), m.code(404).send({ message: _, error: "Not Found", statusCode: 404 }) } function s() { return function (m, d, y) { let _ = this[Sc][la], S = pM(_.server, d), w = cM(_, e, d, S), E = new oM(S, null, d, null, w, _), g = new aM(y, E, w); r(E, g) } } function a(f, m) { let d = Object.assign({}, f[la]); d.onSend = m.onSend, m[la] = d } function o(f, m, d, y) { this[wc] === void 0 && (this[wc] = !0), this[la] === void 0 && (this[la] = null); let _ = this, S = this[fhe] || "/"; if (this[wc] === !1) throw new Error(`Not found handler already set for Fastify instance with prefix: '${S}'`); typeof f == "object" && (f.preHandler && (Array.isArray(f.preHandler) ? f.preHandler = f.preHandler.map(w => w.bind(_)) : f.preHandler = f.preHandler.bind(_)), f.preValidation && (Array.isArray(f.preValidation) ? f.preValidation = f.preValidation.map(w => w.bind(_)) : f.preValidation = f.preValidation.bind(_))), typeof f == "function" && (m = f, f = void 0), f = f || {}, m ? (this[Sc][wc] = !1, m = m.bind(this), r = m) : (m = l, r = l), this.after((w, E) => { u.call(this, S, f, m, d, y), E(w) }) } function u(f, m, d, y, _) { let S = new phe({ schema: m.schema, handler: d, config: m.config || {}, server: this }); if (y.once("preReady", () => { let w = this[la]; for (let E of hhe) { let g = this[dhe][E].concat(m[E] || []).map(v => v.bind(this)); w[E] = g.length ? g : null } w.errorHandler = m.errorHandler ? mhe(this[uM], m.errorHandler) : this[uM] }), this[la] !== null && f === "/") { Object.assign(this[la], S); return } this[Sc][la] = S, n.all(f + (f.endsWith("/") ? "*" : "/*"), _, S), n.all(f, _, S) } function c(f, m) { let d = this[Sc][la], y = pM(d.server, f), _ = cM(d, e, f, y); _.info({ req: f }, "incoming request"); let S = new oM(y, null, f, null, _, d), w = new aM(m, S, _); S.log.warn("the default handler for 404 did not catch this, this is likely a fastify bug, please report it"), S.log.warn(n.prettyPrint()), w.code(404).send(new yhe) } } fM.exports = ghe }); var mM = k((xke, s7) => { "use strict"; s7.exports = nn; s7.exports.default = nn; var hM = { type: "object", additionalProperties: !1, properties: { connectionTimeout: { type: "integer", default: 0 }, keepAliveTimeout: { type: "integer", default: 72e3 }, forceCloseConnections: { oneOf: [{ type: "string", pattern: "idle" }, { type: "boolean" }] }, maxRequestsPerSocket: { type: "integer", default: 0, nullable: !0 }, requestTimeout: { type: "integer", default: 0 }, bodyLimit: { type: "integer", default: 1048576 }, caseSensitive: { type: "boolean", default: !0 }, allowUnsafeRegex: { type: "boolean", default: !1 }, http2: { type: "boolean" }, https: { if: { not: { oneOf: [{ type: "boolean" }, { type: "null" }, { type: "object", additionalProperties: !1, required: ["allowHTTP1"], properties: { allowHTTP1: { type: "boolean" } } }] } }, then: { setDefaultValue: !0 } }, ignoreTrailingSlash: { type: "boolean", default: !1 }, ignoreDuplicateSlashes: { type: "boolean", default: !1 }, disableRequestLogging: { type: "boolean", default: !1 }, jsonShorthand: { type: "boolean", default: !0 }, maxParamLength: { type: "integer", default: 100 }, onProtoPoisoning: { type: "string", default: "error" }, onConstructorPoisoning: { type: "string", default: "error" }, pluginTimeout: { type: "integer", default: 1e4 }, requestIdHeader: { anyOf: [{ enum: [!1] }, { type: "string" }], default: "request-id" }, requestIdLogLabel: { type: "string", default: "reqId" }, http2SessionTimeout: { type: "integer", default: 72e3 }, exposeHeadRoutes: { type: "boolean", default: !0 }, useSemicolonDelimiter: { type: "boolean", default: !0 }, versioning: { type: "object", additionalProperties: !0, required: ["storage", "deriveVersion"], properties: { storage: {}, deriveVersion: {} } }, constraints: { type: "object", additionalProperties: { type: "object", required: ["name", "storage", "validate", "deriveConstraint"], additionalProperties: !0, properties: { name: { type: "string" }, storage: {}, validate: {}, deriveConstraint: {} } } } } }, vhe = Object.prototype.hasOwnProperty, _he = new RegExp("idle", "u"); function nn(t, { instancePath: e = "", parentData: n, parentDataProperty: r, rootData: i = t } = {}) { let l = null, s = 0; if (s === 0) if (t && typeof t == "object" && !Array.isArray(t)) { t.connectionTimeout === void 0 && (t.connectionTimeout = 0), t.keepAliveTimeout === void 0 && (t.keepAliveTimeout = 72e3), t.maxRequestsPerSocket === void 0 && (t.maxRequestsPerSocket = 0), t.requestTimeout === void 0 && (t.requestTimeout = 0), t.bodyLimit === void 0 && (t.bodyLimit = 1048576), t.caseSensitive === void 0 && (t.caseSensitive = !0), t.allowUnsafeRegex === void 0 && (t.allowUnsafeRegex = !1), t.ignoreTrailingSlash === void 0 && (t.ignoreTrailingSlash = !1), t.ignoreDuplicateSlashes === void 0 && (t.ignoreDuplicateSlashes = !1), t.disableRequestLogging === void 0 && (t.disableRequestLogging = !1), t.jsonShorthand === void 0 && (t.jsonShorthand = !0), t.maxParamLength === void 0 && (t.maxParamLength = 100), t.onProtoPoisoning === void 0 && (t.onProtoPoisoning = "error"), t.onConstructorPoisoning === void 0 && (t.onConstructorPoisoning = "error"), t.pluginTimeout === void 0 && (t.pluginTimeout = 1e4), t.requestIdHeader === void 0 && (t.requestIdHeader = "request-id"), t.requestIdLogLabel === void 0 && (t.requestIdLogLabel = "reqId"), t.http2SessionTimeout === void 0 && (t.http2SessionTimeout = 72e3), t.exposeHeadRoutes === void 0 && (t.exposeHeadRoutes = !0), t.useSemicolonDelimiter === void 0 && (t.useSemicolonDelimiter = !0); let y = s; for (let _ in t) vhe.call(hM.properties, _) || delete t[_]; if (y === s) { let _ = t.connectionTimeout, S = s; if (!(typeof _ == "number" && !(_ % 1) && !isNaN(_) && isFinite(_))) { let w = typeof _, E; if (E === void 0) if (w === "boolean" || _ === null || w === "string" && _ && _ == +_ && !(_ % 1)) E = +_; else return nn.errors = [{ instancePath: e + "/connectionTimeout", schemaPath: "#/properties/connectionTimeout/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; E !== void 0 && (_ = E, t !== void 0 && (t.connectionTimeout = E)) } var a = S === s; if (a) { let w = t.keepAliveTimeout, E = s; if (!(typeof w == "number" && !(w % 1) && !isNaN(w) && isFinite(w))) { let v = typeof w, x; if (x === void 0) if (v === "boolean" || w === null || v === "string" && w && w == +w && !(w % 1)) x = +w; else return nn.errors = [{ instancePath: e + "/keepAliveTimeout", schemaPath: "#/properties/keepAliveTimeout/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; x !== void 0 && (w = x, t !== void 0 && (t.keepAliveTimeout = x)) } var a = E === s; if (a) { if (t.forceCloseConnections !== void 0) { let v = t.forceCloseConnections, x = s, O = s, N = !1, R = null, U = s; if (typeof v != "string") { let Q = typeof v, W; if (W === void 0) if (Q == "number" || Q == "boolean") W = "" + v; else if (v === null) W = ""; else { let ce = { instancePath: e + "/forceCloseConnections", schemaPath: "#/properties/forceCloseConnections/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [ce] : l.push(ce), s++ } W !== void 0 && (v = W, t !== void 0 && (t.forceCloseConnections = W)) } if (s === U && typeof v == "string" && !_he.test(v)) { let Q = { instancePath: e + "/forceCloseConnections", schemaPath: "#/properties/forceCloseConnections/oneOf/0/pattern", keyword: "pattern", params: { pattern: "idle" }, message: 'must match pattern "idle"' }; l === null ? l = [Q] : l.push(Q), s++ } var o = U === s; o && (N = !0, R = 0); let F = s; if (typeof v != "boolean") { let Q; if (Q === void 0) if (v === "false" || v === 0 || v === null) Q = !1; else if (v === "true" || v === 1) Q = !0; else { let W = { instancePath: e + "/forceCloseConnections", schemaPath: "#/properties/forceCloseConnections/oneOf/1/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }; l === null ? l = [W] : l.push(W), s++ } Q !== void 0 && (v = Q, t !== void 0 && (t.forceCloseConnections = Q)) } var o = F === s; if (o && N ? (N = !1, R = [R, 1]) : o && (N = !0, R = 1), N) s = O, l !== null && (O ? l.length = O : l = null); else { let Q = { instancePath: e + "/forceCloseConnections", schemaPath: "#/properties/forceCloseConnections/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" }; return l === null ? l = [Q] : l.push(Q), s++, nn.errors = l, !1 } var a = x === s } else var a = !0; if (a) { let v = t.maxRequestsPerSocket, x = s; if (!(typeof v == "number" && !(v % 1) && !isNaN(v) && isFinite(v)) && v !== null) { let N = typeof v, R; if (R === void 0) if (N === "boolean" || v === null || N === "string" && v && v == +v && !(v % 1)) R = +v; else if (v === "" || v === 0 || v === !1) R = null; else return nn.errors = [{ instancePath: e + "/maxRequestsPerSocket", schemaPath: "#/properties/maxRequestsPerSocket/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; R !== void 0 && (v = R, t !== void 0 && (t.maxRequestsPerSocket = R)) } var a = x === s; if (a) { let N = t.requestTimeout, R = s; if (!(typeof N == "number" && !(N % 1) && !isNaN(N) && isFinite(N))) { let F = typeof N, te; if (te === void 0) if (F === "boolean" || N === null || F === "string" && N && N == +N && !(N % 1)) te = +N; else return nn.errors = [{ instancePath: e + "/requestTimeout", schemaPath: "#/properties/requestTimeout/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; te !== void 0 && (N = te, t !== void 0 && (t.requestTimeout = te)) } var a = R === s; if (a) { let F = t.bodyLimit, te = s; if (!(typeof F == "number" && !(F % 1) && !isNaN(F) && isFinite(F))) { let W = typeof F, ce; if (ce === void 0) if (W === "boolean" || F === null || W === "string" && F && F == +F && !(F % 1)) ce = +F; else return nn.errors = [{ instancePath: e + "/bodyLimit", schemaPath: "#/properties/bodyLimit/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; ce !== void 0 && (F = ce, t !== void 0 && (t.bodyLimit = ce)) } var a = te === s; if (a) { let W = t.caseSensitive, ce = s; if (typeof W != "boolean") { let se; if (se === void 0) if (W === "false" || W === 0 || W === null) se = !1; else if (W === "true" || W === 1) se = !0; else return nn.errors = [{ instancePath: e + "/caseSensitive", schemaPath: "#/properties/caseSensitive/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; se !== void 0 && (W = se, t !== void 0 && (t.caseSensitive = se)) } var a = ce === s; if (a) { let se = t.allowUnsafeRegex, ee = s; if (typeof se != "boolean") { let P; if (P === void 0) if (se === "false" || se === 0 || se === null) P = !1; else if (se === "true" || se === 1) P = !0; else return nn.errors = [{ instancePath: e + "/allowUnsafeRegex", schemaPath: "#/properties/allowUnsafeRegex/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; P !== void 0 && (se = P, t !== void 0 && (t.allowUnsafeRegex = P)) } var a = ee === s; if (a) { if (t.http2 !== void 0) { let P = t.http2, G = s; if (typeof P != "boolean") { let q; if (q === void 0) if (P === "false" || P === 0 || P === null) q = !1; else if (P === "true" || P === 1) q = !0; else return nn.errors = [{ instancePath: e + "/http2", schemaPath: "#/properties/http2/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; q !== void 0 && (P = q, t !== void 0 && (t.http2 = q)) } var a = G === s } else var a = !0; if (a) { if (t.https !== void 0) { let P = t.https, G = s, V = s, q = !0, Zn = s, Tt = s, Qe = s, pt = s, ze = !1, Ue = null, $t = s; if (typeof P != "boolean") { let ie; if (ie === void 0) if (P === "false" || P === 0 || P === null) ie = !1; else if (P === "true" || P === 1) ie = !0; else { let ve = {}; l === null ? l = [ve] : l.push(ve), s++ } ie !== void 0 && (P = ie, t !== void 0 && (t.https = ie)) } var u = $t === s; u && (ze = !0, Ue = 0); let gt = s; if (P !== null) { let ie; if (ie === void 0) if (P === "" || P === 0 || P === !1) ie = null; else { let ve = {}; l === null ? l = [ve] : l.push(ve), s++ } ie !== void 0 && (P = ie, t !== void 0 && (t.https = ie)) } var u = gt === s; if (u && ze) ze = !1, Ue = [Ue, 1]; else { u && (ze = !0, Ue = 1); let ie = s; if (s === ie) if (P && typeof P == "object" && !Array.isArray(P)) { let Se; if (P.allowHTTP1 === void 0 && (Se = "allowHTTP1")) { let Xe = {}; l === null ? l = [Xe] : l.push(Xe), s++ } else { let Xe = s; for (let ft in P) ft !== "allowHTTP1" && delete P[ft]; if (Xe === s && P.allowHTTP1 !== void 0) { let ft = P.allowHTTP1; if (typeof ft != "boolean") { let Pe; if (Pe === void 0) if (ft === "false" || ft === 0 || ft === null) Pe = !1; else if (ft === "true" || ft === 1) Pe = !0; else { let Lt = {}; l === null ? l = [Lt] : l.push(Lt), s++ } Pe !== void 0 && (ft = Pe, P !== void 0 && (P.allowHTTP1 = Pe)) } } } } else { let Se = {}; l === null ? l = [Se] : l.push(Se), s++ } var u = ie === s; u && ze ? (ze = !1, Ue = [Ue, 2]) : u && (ze = !0, Ue = 2) } if (ze) s = pt, l !== null && (pt ? l.length = pt : l = null); else { let ie = {}; l === null ? l = [ie] : l.push(ie), s++ } var c = Qe === s; if (c) { let ie = {}; l === null ? l = [ie] : l.push(ie), s++ } else s = Tt, l !== null && (Tt ? l.length = Tt : l = null); var f = Zn === s; if (s = V, l !== null && (V ? l.length = V : l = null), f) { let ie = s; t.https = !0; var f = ie === s; q = f } if (!q) { let ie = { instancePath: e + "/https", schemaPath: "#/properties/https/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' }; return l === null ? l = [ie] : l.push(ie), s++, nn.errors = l, !1 } var a = G === s } else var a = !0; if (a) { let P = t.ignoreTrailingSlash, G = s; if (typeof P != "boolean") { let q; if (q === void 0) if (P === "false" || P === 0 || P === null) q = !1; else if (P === "true" || P === 1) q = !0; else return nn.errors = [{ instancePath: e + "/ignoreTrailingSlash", schemaPath: "#/properties/ignoreTrailingSlash/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; q !== void 0 && (P = q, t !== void 0 && (t.ignoreTrailingSlash = q)) } var a = G === s; if (a) { let q = t.ignoreDuplicateSlashes, Zn = s; if (typeof q != "boolean") { let Qe; if (Qe === void 0) if (q === "false" || q === 0 || q === null) Qe = !1; else if (q === "true" || q === 1) Qe = !0; else return nn.errors = [{ instancePath: e + "/ignoreDuplicateSlashes", schemaPath: "#/properties/ignoreDuplicateSlashes/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; Qe !== void 0 && (q = Qe, t !== void 0 && (t.ignoreDuplicateSlashes = Qe)) } var a = Zn === s; if (a) { let Qe = t.disableRequestLogging, pt = s; if (typeof Qe != "boolean") { let Ue; if (Ue === void 0) if (Qe === "false" || Qe === 0 || Qe === null) Ue = !1; else if (Qe === "true" || Qe === 1) Ue = !0; else return nn.errors = [{ instancePath: e + "/disableRequestLogging", schemaPath: "#/properties/disableRequestLogging/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; Ue !== void 0 && (Qe = Ue, t !== void 0 && (t.disableRequestLogging = Ue)) } var a = pt === s; if (a) { let Ue = t.jsonShorthand, $t = s; if (typeof Ue != "boolean") { let Et; if (Et === void 0) if (Ue === "false" || Ue === 0 || Ue === null) Et = !1; else if (Ue === "true" || Ue === 1) Et = !0; else return nn.errors = [{ instancePath: e + "/jsonShorthand", schemaPath: "#/properties/jsonShorthand/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; Et !== void 0 && (Ue = Et, t !== void 0 && (t.jsonShorthand = Et)) } var a = $t === s; if (a) { let Et = t.maxParamLength, ie = s; if (!(typeof Et == "number" && !(Et % 1) && !isNaN(Et) && isFinite(Et))) { let Se = typeof Et, Xe; if (Xe === void 0) if (Se === "boolean" || Et === null || Se === "string" && Et && Et == +Et && !(Et % 1)) Xe = +Et; else return nn.errors = [{ instancePath: e + "/maxParamLength", schemaPath: "#/properties/maxParamLength/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; Xe !== void 0 && (Et = Xe, t !== void 0 && (t.maxParamLength = Xe)) } var a = ie === s; if (a) { let Se = t.onProtoPoisoning, Xe = s; if (typeof Se != "string") { let Pe = typeof Se, Lt; if (Lt === void 0) if (Pe == "number" || Pe == "boolean") Lt = "" + Se; else if (Se === null) Lt = ""; else return nn.errors = [{ instancePath: e + "/onProtoPoisoning", schemaPath: "#/properties/onProtoPoisoning/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; Lt !== void 0 && (Se = Lt, t !== void 0 && (t.onProtoPoisoning = Lt)) } var a = Xe === s; if (a) { let Pe = t.onConstructorPoisoning, Lt = s; if (typeof Pe != "string") { let Ft = typeof Pe, Zt; if (Zt === void 0) if (Ft == "number" || Ft == "boolean") Zt = "" + Pe; else if (Pe === null) Zt = ""; else return nn.errors = [{ instancePath: e + "/onConstructorPoisoning", schemaPath: "#/properties/onConstructorPoisoning/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; Zt !== void 0 && (Pe = Zt, t !== void 0 && (t.onConstructorPoisoning = Zt)) } var a = Lt === s; if (a) { let Ft = t.pluginTimeout, Zt = s; if (!(typeof Ft == "number" && !(Ft % 1) && !isNaN(Ft) && isFinite(Ft))) { let dr = typeof Ft, si; if (si === void 0) if (dr === "boolean" || Ft === null || dr === "string" && Ft && Ft == +Ft && !(Ft % 1)) si = +Ft; else return nn.errors = [{ instancePath: e + "/pluginTimeout", schemaPath: "#/properties/pluginTimeout/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; si !== void 0 && (Ft = si, t !== void 0 && (t.pluginTimeout = si)) } var a = Zt === s; if (a) { let dr = t.requestIdHeader, si = s, Sr = s, bi = !1, Ri = s; if (dr !== !1) { let Rr = { instancePath: e + "/requestIdHeader", schemaPath: "#/properties/requestIdHeader/anyOf/0/enum", keyword: "enum", params: { allowedValues: hM.properties.requestIdHeader.anyOf[0].enum }, message: "must be equal to one of the allowed values" }; l === null ? l = [Rr] : l.push(Rr), s++ } var m = Ri === s; if (bi = bi || m, !bi) { let Rr = s; if (typeof dr != "string") { let Ds = typeof dr, er; if (er === void 0) if (Ds == "number" || Ds == "boolean") er = "" + dr; else if (dr === null) er = ""; else { let Ki = { instancePath: e + "/requestIdHeader", schemaPath: "#/properties/requestIdHeader/anyOf/1/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [Ki] : l.push(Ki), s++ } er !== void 0 && (dr = er, t !== void 0 && (t.requestIdHeader = er)) } var m = Rr === s; bi = bi || m } if (bi) s = Sr, l !== null && (Sr ? l.length = Sr : l = null); else { let Rr = { instancePath: e + "/requestIdHeader", schemaPath: "#/properties/requestIdHeader/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf" }; return l === null ? l = [Rr] : l.push(Rr), s++, nn.errors = l, !1 } var a = si === s; if (a) { let Rr = t.requestIdLogLabel, wu = s; if (typeof Rr != "string") { let er = typeof Rr, Ki; if (Ki === void 0) if (er == "number" || er == "boolean") Ki = "" + Rr; else if (Rr === null) Ki = ""; else return nn.errors = [{ instancePath: e + "/requestIdLogLabel", schemaPath: "#/properties/requestIdLogLabel/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; Ki !== void 0 && (Rr = Ki, t !== void 0 && (t.requestIdLogLabel = Ki)) } var a = wu === s; if (a) { let er = t.http2SessionTimeout, Ki = s; if (!(typeof er == "number" && !(er % 1) && !isNaN(er) && isFinite(er))) { let ai = typeof er, Hr; if (Hr === void 0) if (ai === "boolean" || er === null || ai === "string" && er && er == +er && !(er % 1)) Hr = +er; else return nn.errors = [{ instancePath: e + "/http2SessionTimeout", schemaPath: "#/properties/http2SessionTimeout/type", keyword: "type", params: { type: "integer" }, message: "must be integer" }], !1; Hr !== void 0 && (er = Hr, t !== void 0 && (t.http2SessionTimeout = Hr)) } var a = Ki === s; if (a) { let ai = t.exposeHeadRoutes, Hr = s; if (typeof ai != "boolean") { let Jr; if (Jr === void 0) if (ai === "false" || ai === 0 || ai === null) Jr = !1; else if (ai === "true" || ai === 1) Jr = !0; else return nn.errors = [{ instancePath: e + "/exposeHeadRoutes", schemaPath: "#/properties/exposeHeadRoutes/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; Jr !== void 0 && (ai = Jr, t !== void 0 && (t.exposeHeadRoutes = Jr)) } var a = Hr === s; if (a) { let Jr = t.useSemicolonDelimiter, Ea = s; if (typeof Jr != "boolean") { let yr; if (yr === void 0) if (Jr === "false" || Jr === 0 || Jr === null) yr = !1; else if (Jr === "true" || Jr === 1) yr = !0; else return nn.errors = [{ instancePath: e + "/useSemicolonDelimiter", schemaPath: "#/properties/useSemicolonDelimiter/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; yr !== void 0 && (Jr = yr, t !== void 0 && (t.useSemicolonDelimiter = yr)) } var a = Ea === s; if (a) { if (t.versioning !== void 0) { let yr = t.versioning, Ir = s; if (s === Ir) if (yr && typeof yr == "object" && !Array.isArray(yr)) { let Ii; if (yr.storage === void 0 && (Ii = "storage") || yr.deriveVersion === void 0 && (Ii = "deriveVersion")) return nn.errors = [{ instancePath: e + "/versioning", schemaPath: "#/properties/versioning/required", keyword: "required", params: { missingProperty: Ii }, message: "must have required property '" + Ii + "'" }], !1 } else return nn.errors = [{ instancePath: e + "/versioning", schemaPath: "#/properties/versioning/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var a = Ir === s } else var a = !0; if (a) if (t.constraints !== void 0) { let yr = t.constraints, Ir = s; if (s === Ir) if (yr && typeof yr == "object" && !Array.isArray(yr)) for (let Ii in yr) { let wi = yr[Ii], os = s; if (s === os) if (wi && typeof wi == "object" && !Array.isArray(wi)) { let Nl; if (wi.name === void 0 && (Nl = "name") || wi.storage === void 0 && (Nl = "storage") || wi.validate === void 0 && (Nl = "validate") || wi.deriveConstraint === void 0 && (Nl = "deriveConstraint")) return nn.errors = [{ instancePath: e + "/constraints/" + Ii.replace(/~/g, "~0").replace(/\//g, "~1"), schemaPath: "#/properties/constraints/additionalProperties/required", keyword: "required", params: { missingProperty: Nl }, message: "must have required property '" + Nl + "'" }], !1; if (wi.name !== void 0) { let us = wi.name; if (typeof us != "string") { let Ls = typeof us, Ml; if (Ml === void 0) if (Ls == "number" || Ls == "boolean") Ml = "" + us; else if (us === null) Ml = ""; else return nn.errors = [{ instancePath: e + "/constraints/" + Ii.replace(/~/g, "~0").replace(/\//g, "~1") + "/name", schemaPath: "#/properties/constraints/additionalProperties/properties/name/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; Ml !== void 0 && (us = Ml, wi !== void 0 && (wi.name = Ml)) } } } else return nn.errors = [{ instancePath: e + "/constraints/" + Ii.replace(/~/g, "~0").replace(/\//g, "~1"), schemaPath: "#/properties/constraints/additionalProperties/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var d = os === s; if (!d) break } else return nn.errors = [{ instancePath: e + "/constraints", schemaPath: "#/properties/constraints/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var a = Ir === s } else var a = !0 } } } } } } } } } } } } } } } } } } } } } } } } } else return nn.errors = [{ instancePath: e, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; return nn.errors = l, s === 0 } s7.exports.defaultInitOptions = { connectionTimeout: 0, keepAliveTimeout: 72e3, maxRequestsPerSocket: 0, requestTimeout: 0, bodyLimit: 1048576, caseSensitive: !0, allowUnsafeRegex: !1, disableRequestLogging: !1, jsonShorthand: !0, ignoreTrailingSlash: !1, ignoreDuplicateSlashes: !1, maxParamLength: 100, onProtoPoisoning: "error", onConstructorPoisoning: "error", pluginTimeout: 1e4, requestIdHeader: "request-id", requestIdLogLabel: "reqId", http2SessionTimeout: 72e3, exposeHeadRoutes: !0, useSemicolonDelimiter: !0 } }); var yM = k((Ake, o7) => { "use strict"; var a7 = mM(), Ehe = p4()({ circles: !0, proto: !1 }), { FST_ERR_INIT_OPTS_INVALID: bhe } = Ui(); function whe(t) { let e = Ehe(t); if (!a7(e)) { let n = new bhe(JSON.stringify(a7.errors.map(r => r.message))); throw n.errors = a7.errors, n } return d_(e) } function d_(t) { let e = Object.getOwnPropertyNames(t); for (let n of e) { let r = t[n]; ArrayBuffer.isView(r) && !(r instanceof DataView) || (t[n] = r && typeof r == "object" ? d_(r) : r) } return Object.freeze(t) } o7.exports = whe; o7.exports.defaultInitOptions = a7.defaultInitOptions; o7.exports.utils = { deepFreezeObject: d_ } }); var xM = k((Oke, TM) => { "use strict"; var { kAvvioBoot: She, kChildren: gM, kRoutePrefix: vM, kLogLevel: _M, kLogSerializers: h_, kHooks: m_, kSchemaController: j1, kContentTypeParser: EM, kReply: bM, kRequest: wM, kFourOhFour: The, kPluginNameChain: SM } = di(), xhe = p9(), Ahe = O9(), Ohe = Bv(), Nhe = Xg(), { buildHooks: Che } = m2(), Tc = Jv(); TM.exports = function (e, n, r) { let i = Tc.registerPlugin.call(e, n), l = Tc.getPluginName(n) || Tc.getFuncPreview(n); if (i) return e[SM].push(l), e; let s = Object.create(e); e[gM].push(s), s.ready = e[She].bind(s), s[gM] = [], s[bM] = xhe.buildReply(s[bM]), s[wM] = Ahe.buildRequest(s[wM]), s[EM] = Nhe.helpers.buildContentTypeParser(s[EM]), s[m_] = Che(s[m_]), s[vM] = Rhe(s[vM], r.prefix), s[_M] = r.logLevel || s[_M], s[j1] = Ohe.buildSchemaController(e[j1]), s.getSchema = s[j1].getSchema.bind(s[j1]), s.getSchemas = s[j1].getSchemas.bind(s[j1]), s[Tc.kRegisteredPlugins] = Object.create(s[Tc.kRegisteredPlugins]), s[SM] = [l], (s[h_] || r.logSerializers) && (s[h_] = Object.assign(Object.create(s[h_]), r.logSerializers)), r.prefix && s[The].arrange404(s); for (let a of s[m_].onRegister) a.call(this, s, r); return s }; function Rhe(t, e) { return e ? (t.endsWith("/") && e[0] === "/" ? e = e.slice(1) : e[0] !== "/" && (e = "/" + e), t + e) : t } }); var OM = k((Nke, AM) => { "use strict"; AM.exports = function () { return { [Symbol.iterator]: function* () { }, add() { }, delete() { }, has() { return !0 } } } }); var NM = k(y_ => { "use strict"; y_.parse = khe; y_.serialize = Dhe; var Ihe = Object.prototype.toString, u7 = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; function khe(t, e) { if (typeof t != "string") throw new TypeError("argument str must be a string"); for (var n = {}, r = e || {}, i = r.decode || Phe, l = 0; l < t.length;) { var s = t.indexOf("=", l); if (s === -1) break; var a = t.indexOf(";", l); if (a === -1) a = t.length; else if (a < s) { l = t.lastIndexOf(";", s - 1) + 1; continue } var o = t.slice(l, s).trim(); if (n[o] === void 0) { var u = t.slice(s + 1, a).trim(); u.charCodeAt(0) === 34 && (u = u.slice(1, -1)), n[o] = jhe(u, i) } l = a + 1 } return n } function Dhe(t, e, n) { var r = n || {}, i = r.encode || Lhe; if (typeof i != "function") throw new TypeError("option encode is invalid"); if (!u7.test(t)) throw new TypeError("argument name is invalid"); var l = i(e); if (l && !u7.test(l)) throw new TypeError("argument val is invalid"); var s = t + "=" + l; if (r.maxAge != null) { var a = r.maxAge - 0; if (isNaN(a) || !isFinite(a)) throw new TypeError("option maxAge is invalid"); s += "; Max-Age=" + Math.floor(a) } if (r.domain) { if (!u7.test(r.domain)) throw new TypeError("option domain is invalid"); s += "; Domain=" + r.domain } if (r.path) { if (!u7.test(r.path)) throw new TypeError("option path is invalid"); s += "; Path=" + r.path } if (r.expires) { var o = r.expires; if (!Fhe(o) || isNaN(o.valueOf())) throw new TypeError("option expires is invalid"); s += "; Expires=" + o.toUTCString() } if (r.httpOnly && (s += "; HttpOnly"), r.secure && (s += "; Secure"), r.priority) { var u = typeof r.priority == "string" ? r.priority.toLowerCase() : r.priority; switch (u) { case "low": s += "; Priority=Low"; break; case "medium": s += "; Priority=Medium"; break; case "high": s += "; Priority=High"; break; default: throw new TypeError("option priority is invalid") } } if (r.sameSite) { var c = typeof r.sameSite == "string" ? r.sameSite.toLowerCase() : r.sameSite; switch (c) { case !0: s += "; SameSite=Strict"; break; case "lax": s += "; SameSite=Lax"; break; case "strict": s += "; SameSite=Strict"; break; case "none": s += "; SameSite=None"; break; default: throw new TypeError("option sameSite is invalid") } } return s } function Phe(t) { return t.indexOf("%") !== -1 ? decodeURIComponent(t) : t } function Lhe(t) { return encodeURIComponent(t) } function Fhe(t) { return Ihe.call(t) === "[object Date]" || t instanceof Date } function jhe(t, e) { try { return e(t) } catch { return t } } }); var CM = k((Rke, c7) => { "use strict"; var { format: g_ } = require("node:util"); function v_() { let t = {}, e = new Map, n = Object.create(null); function r(s, a, o, { unlimited: u = !1 } = {}) { if (!s) throw new Error("Warning name must not be empty"); if (!a) throw new Error("Warning code must not be empty"); if (!o) throw new Error("Warning message must not be empty"); if (typeof u != "boolean") throw new Error("Warning opts.unlimited must be a boolean"); if (a = a.toUpperCase(), t[a] !== void 0) throw new Error(`The code '${a}' already exist`); function c(f, m, d) { let y; return f && m && d ? y = g_(o, f, m, d) : f && m ? y = g_(o, f, m) : f ? y = g_(o, f) : y = o, { code: a, name: s, message: y } } return Object.assign(n, { unlimited: u }), e.set(a, u), t[a] = c, t[a] } function i(s, a, o = {}) { return r("DeprecationWarning", s, a, o) } function l(s, a, o, u) { if (e.get(s) === !0 && n.unlimited === !1) return; if (t[s] === void 0) throw new Error(`The code '${s}' does not exist`); e.set(s, !0); let c = t[s](a, o, u); process.emitWarning(c.message, c.name, c.code) } return { create: r, createDeprecation: i, emit: l, emitted: e } } c7.exports = v_; c7.exports.default = v_; c7.exports.processWarning = v_ }); var kM = k((Ike, IM) => { "use strict"; var { URL: RM } = require("node:url"), __ = "http://localhost"; IM.exports = function (e, n) { (typeof e == "string" || Object.prototype.toString.call(e) === "[object String]") && e.startsWith("//") && (e = __ + e); let r = typeof e == "object" ? Object.assign(new RM(__), e) : new RM(e, __); if (typeof n == "string") { n = new URLSearchParams(n); for (let i of n.keys()) { r.searchParams.delete(i); for (let l of n.getAll(i)) r.searchParams.append(i, l) } } else { let i = Object.assign({}, e.query, n); for (let l in i) { let s = i[l]; if (Array.isArray(s)) { r.searchParams.delete(l); for (let a of s) r.searchParams.append(l, a) } else r.searchParams.set(l, s) } } return r } }); var FM = k((kke, p7) => { "use strict"; var { Readable: DM, addAbortSignal: Uhe } = require("node:stream"), b_ = require("node:util"), Mhe = NM(), $he = require("node:assert"), PM = CM()(), Bhe = kM(), { EventEmitter: Hhe } = require("node:events"); PM.create("FastifyDeprecationLightMyRequest", "FST_LIGHTMYREQUEST_DEP01", 'You are accessing "request.connection", use "request.socket" instead.'); function Vhe(t) { return t.port ? t.host : t.hostname + (t.protocol === "https:" ? ":443" : ":80") } var E_ = class extends Hhe { constructor(e) { super(), this.remoteAddress = e } }; function LM(t) { return new e(this); function e(n) { sa.call(n, { ...t, Request: void 0 }), Object.assign(this, n); for (let r of Object.keys(sa.prototype)) this.constructor.prototype[r] = sa.prototype[r]; return b_.inherits(this.constructor, t.Request), this } } function sa(t) { DM.call(this, { autoDestroy: !1 }); let e = Bhe(t.url || t.path, t.query); this.url = e.pathname + e.search, this.aborted = !1, this.httpVersionMajor = 1, this.httpVersionMinor = 1, this.httpVersion = "1.1", this.method = t.method ? t.method.toUpperCase() : "GET", this.headers = {}, this.rawHeaders = []; let n = t.headers || {}; for (let s in n) { let a = s.toLowerCase(); if ((a === "user-agent" || a === "content-type") && n[s] === void 0) { this.headers[a] = void 0; continue } let o = n[s]; $he(o !== void 0, 'invalid value "undefined" for header ' + s), this.headers[a] = "" + o } if ("user-agent" in this.headers || (this.headers["user-agent"] = "lightMyRequest"), this.headers.host = this.headers.host || t.authority || Vhe(e), t.cookies) { let { cookies: s } = t, a = Object.keys(s).map(o => Mhe.serialize(o, s[o])); this.headers.cookie && a.unshift(this.headers.cookie), this.headers.cookie = a.join("; ") } this.socket = new E_(t.remoteAddress || "127.0.0.1"), Object.defineProperty(this, "connection", { get() { return PM.emit("FST_LIGHTMYREQUEST_DEP01"), this.socket }, configurable: !0 }); let r = t.payload || t.body || null, i = r && typeof r.resume == "function"; r && typeof r != "string" && !i && !Buffer.isBuffer(r) && (r = JSON.stringify(r), "content-type" in this.headers || (this.headers["content-type"] = "application/json")), r && !i && !Object.prototype.hasOwnProperty.call(this.headers, "content-length") && (this.headers["content-length"] = (Buffer.isBuffer(r) ? r.length : Buffer.byteLength(r)).toString()); for (let s of Object.keys(this.headers)) this.rawHeaders.push(s, this.headers[s]); this._lightMyRequest = { payload: r, isDone: !1, simulate: t.simulate || {} }; let l = t.signal; return l && Uhe(l, this), this } b_.inherits(sa, DM); b_.inherits(LM, sa); sa.prototype.prepare = function (t) { let e = this._lightMyRequest.payload; if (!e || typeof e.resume != "function") return t(); let n = []; e.on("data", r => n.push(Buffer.from(r))), e.on("end", () => { let r = Buffer.concat(n); return this.headers["content-length"] = this.headers["content-length"] || "" + r.length, this._lightMyRequest.payload = r, t() }), e.resume() }; sa.prototype._read = function (t) { setImmediate(() => { if (this._lightMyRequest.isDone) { this._lightMyRequest.simulate.end !== !1 && this.push(null); return } this._lightMyRequest.isDone = !0, this._lightMyRequest.payload && (this._lightMyRequest.simulate.split ? (this.push(this._lightMyRequest.payload.slice(0, 1)), this.push(this._lightMyRequest.payload.slice(1))) : this.push(this._lightMyRequest.payload)), this._lightMyRequest.simulate.error && this.emit("error", new Error("Simulated")), this._lightMyRequest.simulate.close && this.emit("close"), this._lightMyRequest.simulate.end !== !1 && this.push(null) }) }; sa.prototype.destroy = function (t) { this.destroyed || this._lightMyRequest.isDone || (this.destroyed = !0, t && (this._error = !0, process.nextTick(() => this.emit("error", t))), process.nextTick(() => this.emit("close"))) }; p7.exports = sa; p7.exports.Request = sa; p7.exports.CustomRequest = LM }); var UM = k((Dke, xc) => { "use strict"; var U1 = { decodeValues: !0, map: !1, silent: !1 }; function w_(t) { return typeof t == "string" && !!t.trim() } function S_(t, e) { var n = t.split(";").filter(w_), r = n.shift(), i = qhe(r), l = i.name, s = i.value; e = e ? Object.assign({}, U1, e) : U1; try { s = e.decodeValues ? decodeURIComponent(s) : s } catch (o) { console.error("set-cookie-parser encountered an error while decoding a cookie with value '" + s + "'. Set options.decodeValues to false to disable this feature.", o) } var a = { name: l, value: s }; return n.forEach(function (o) { var u = o.split("="), c = u.shift().trimLeft().toLowerCase(), f = u.join("="); c === "expires" ? a.expires = new Date(f) : c === "max-age" ? a.maxAge = parseInt(f, 10) : c === "secure" ? a.secure = !0 : c === "httponly" ? a.httpOnly = !0 : c === "samesite" ? a.sameSite = f : a[c] = f }), a } function qhe(t) { var e = "", n = "", r = t.split("="); return r.length > 1 ? (e = r.shift(), n = r.join("=")) : n = t, { name: e, value: n } } function jM(t, e) { if (e = e ? Object.assign({}, U1, e) : U1, !t) return e.map ? {} : []; if (t.headers) if (typeof t.headers.getSetCookie == "function") t = t.headers.getSetCookie(); else if (t.headers["set-cookie"]) t = t.headers["set-cookie"]; else { var n = t.headers[Object.keys(t.headers).find(function (i) { return i.toLowerCase() === "set-cookie" })]; !n && t.headers.cookie && !e.silent && console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."), t = n } if (Array.isArray(t) || (t = [t]), e = e ? Object.assign({}, U1, e) : U1, e.map) { var r = {}; return t.filter(w_).reduce(function (i, l) { var s = S_(l, e); return i[s.name] = s, i }, r) } else return t.filter(w_).map(function (i) { return S_(i, e) }) } function zhe(t) { if (Array.isArray(t)) return t; if (typeof t != "string") return []; var e = [], n = 0, r, i, l, s, a; function o() { for (; n < t.length && /\s/.test(t.charAt(n));)n += 1; return n < t.length } function u() { return i = t.charAt(n), i !== "=" && i !== ";" && i !== "," } for (; n < t.length;) { for (r = n, a = !1; o();)if (i = t.charAt(n), i === ",") { for (l = n, n += 1, o(), s = n; n < t.length && u();)n += 1; n < t.length && t.charAt(n) === "=" ? (a = !0, n = s, e.push(t.substring(r, l)), r = n) : n = l + 1 } else n += 1; (!a || n >= t.length) && e.push(t.substring(r, t.length)) } return e } xc.exports = jM; xc.exports.parse = jM; xc.exports.parseString = S_; xc.exports.splitCookiesString = zhe }); var BM = k((Pke, $M) => { "use strict"; var Ac = require("node:http"), { Writable: Ghe } = require("node:stream"), Jhe = require("node:util"), Khe = UM(); function j2(t, e, n) { Ac.ServerResponse.call(this, t), this._lightMyRequest = { headers: null, trailers: {}, payloadChunks: [] }, this.setHeader("foo", "bar"), this.removeHeader("foo"), this.assignSocket(Whe()), this._promiseCallback = typeof n == "function"; let r = !1, i = s => { if (r = !0, this._promiseCallback) return process.nextTick(() => e(s)); process.nextTick(() => e(null, s)) }, l = s => { if (!r) { if (r = !0, this._promiseCallback) return process.nextTick(() => n(s)); process.nextTick(() => e(s, null)) } }; this.once("finish", () => { let s = Xhe(this); s.raw.req = t, i(s) }), this.connection.once("error", l), this.once("error", l), this.once("close", l) } Jhe.inherits(j2, Ac.ServerResponse); j2.prototype.setTimeout = function (t, e) { return this.timeoutHandle = setTimeout(() => { this.emit("timeout") }, t), this.on("timeout", e), this }; j2.prototype.writeHead = function () { let t = Ac.ServerResponse.prototype.writeHead.apply(this, arguments); return MM(this), t }; j2.prototype.write = function (t, e, n) { return this.timeoutHandle && clearTimeout(this.timeoutHandle), Ac.ServerResponse.prototype.write.call(this, t, e, n), this._lightMyRequest.payloadChunks.push(Buffer.from(t, e)), !0 }; j2.prototype.end = function (t, e, n) { t && this.write(t, e), Ac.ServerResponse.prototype.end.call(this, n), this.emit("finish"), this.destroy() }; j2.prototype.destroy = function (t) { this.destroyed || (this.destroyed = !0, t && process.nextTick(() => this.emit("error", t)), process.nextTick(() => this.emit("close"))) }; j2.prototype.addTrailers = function (t) { for (let e in t) this._lightMyRequest.trailers[e.toLowerCase().trim()] = t[e].toString().trim() }; function Xhe(t) { t._lightMyRequest.headers === null && MM(t), Yhe(t); let e = { raw: { res: t }, headers: t._lightMyRequest.headers, statusCode: t.statusCode, statusMessage: t.statusMessage, trailers: {}, get cookies() { return Khe.parse(this) } }, n = Buffer.concat(t._lightMyRequest.payloadChunks); return e.rawPayload = n, e.payload = n.toString(), e.body = e.payload, e.trailers = t._lightMyRequest.trailers, e.json = function () { return JSON.parse(e.payload) }, e } function Whe() { return new Ghe({ write(t, e, n) { setImmediate(n) } }) } function Yhe(t) { let e = t._lightMyRequest.headers; for (let n of Object.keys(e)) { let r = e[n]; Array.isArray(r) ? e[n] = r.map(i => "" + i) : e[n] = "" + r } } function MM(t) { t._lightMyRequest.headers = Object.assign({}, t.getHeaders()), ["Date", "Connection", "Transfer-Encoding"].forEach(e => { let n = new RegExp("\\r\\n" + e + ": ([^\\r]*)\\r\\n"), r = t._header.match(n); r && (t._lightMyRequest.headers[e.toLowerCase()] = r[1]) }) } $M.exports = j2 }); var HM = k((Lke, T_) => { "use strict"; T_.exports = qr; T_.exports.default = qr; var Qhe = { type: "object", properties: { url: { oneOf: [{ type: "string" }, { type: "object", properties: { protocol: { type: "string" }, hostname: { type: "string" }, pathname: { type: "string" } }, additionalProperties: !0, required: ["pathname"] }] }, path: { oneOf: [{ type: "string" }, { type: "object", properties: { protocol: { type: "string" }, hostname: { type: "string" }, pathname: { type: "string" } }, additionalProperties: !0, required: ["pathname"] }] }, cookies: { type: "object", additionalProperties: !0 }, headers: { type: "object", additionalProperties: !0 }, query: { anyOf: [{ type: "object", additionalProperties: !0 }, { type: "string" }] }, simulate: { type: "object", properties: { end: { type: "boolean" }, split: { type: "boolean" }, error: { type: "boolean" }, close: { type: "boolean" } } }, authority: { type: "string" }, remoteAddress: { type: "string" }, method: { type: "string", enum: ["ACL", "BIND", "CHECKOUT", "CONNECT", "COPY", "DELETE", "GET", "HEAD", "LINK", "LOCK", "M-SEARCH", "MERGE", "MKACTIVITY", "MKCALENDAR", "MKCOL", "MOVE", "NOTIFY", "OPTIONS", "PATCH", "POST", "PROPFIND", "PROPPATCH", "PURGE", "PUT", "REBIND", "REPORT", "SEARCH", "SOURCE", "SUBSCRIBE", "TRACE", "UNBIND", "UNLINK", "UNLOCK", "UNSUBSCRIBE", "acl", "bind", "checkout", "connect", "copy", "delete", "get", "head", "link", "lock", "m-search", "merge", "mkactivity", "mkcalendar", "mkcol", "move", "notify", "options", "patch", "post", "propfind", "proppatch", "purge", "put", "rebind", "report", "search", "source", "subscribe", "trace", "unbind", "unlink", "unlock", "unsubscribe"] }, validate: { type: "boolean" } }, additionalProperties: !0, oneOf: [{ required: ["url"] }, { required: ["path"] }] }; function qr(t, { instancePath: e = "", parentData: n, parentDataProperty: r, rootData: i = t } = {}) { let l = null, s = 0, a = s, o = !1, u = null, c = s; if (t && typeof t == "object" && !Array.isArray(t)) { let v; if (t.url === void 0 && (v = "url")) { let x = { instancePath: e, schemaPath: "#/oneOf/0/required", keyword: "required", params: { missingProperty: v }, message: "must have required property '" + v + "'" }; l === null ? l = [x] : l.push(x), s++ } } var m = c === s; m && (o = !0, u = 0); let f = s; if (t && typeof t == "object" && !Array.isArray(t)) { let v; if (t.path === void 0 && (v = "path")) { let x = { instancePath: e, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: v }, message: "must have required property '" + v + "'" }; l === null ? l = [x] : l.push(x), s++ } } var m = f === s; if (m && o ? (o = !1, u = [u, 1]) : m && (o = !0, u = 1), o) s = a, l !== null && (a ? l.length = a : l = null); else { let v = { instancePath: e, schemaPath: "#/oneOf", keyword: "oneOf", params: { passingSchemas: u }, message: "must match exactly one schema in oneOf" }; return l === null ? l = [v] : l.push(v), s++, qr.errors = l, !1 } if (s === 0) if (t && typeof t == "object" && !Array.isArray(t)) { if (t.url !== void 0) { let v = t.url, x = s, O = s, N = !1, R = null, U = s; if (typeof v != "string") { let te = typeof v, Q; if (Q === void 0) if (te == "number" || te == "boolean") Q = "" + v; else if (v === null) Q = ""; else { let W = { instancePath: e + "/url", schemaPath: "#/properties/url/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [W] : l.push(W), s++ } Q !== void 0 && (v = Q, t !== void 0 && (t.url = Q)) } var y = U === s; y && (N = !0, R = 0); let F = s; if (s === F) if (v && typeof v == "object" && !Array.isArray(v)) { let te; if (v.pathname === void 0 && (te = "pathname")) { let Q = { instancePath: e + "/url", schemaPath: "#/properties/url/oneOf/1/required", keyword: "required", params: { missingProperty: te }, message: "must have required property '" + te + "'" }; l === null ? l = [Q] : l.push(Q), s++ } else { if (v.protocol !== void 0) { let Q = v.protocol, W = s; if (typeof Q != "string") { let ce = typeof Q, we; if (we === void 0) if (ce == "number" || ce == "boolean") we = "" + Q; else if (Q === null) we = ""; else { let se = { instancePath: e + "/url/protocol", schemaPath: "#/properties/url/oneOf/1/properties/protocol/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [se] : l.push(se), s++ } we !== void 0 && (Q = we, v !== void 0 && (v.protocol = we)) } var d = W === s } else var d = !0; if (d) { if (v.hostname !== void 0) { let Q = v.hostname, W = s; if (typeof Q != "string") { let we = typeof Q, se; if (se === void 0) if (we == "number" || we == "boolean") se = "" + Q; else if (Q === null) se = ""; else { let ee = { instancePath: e + "/url/hostname", schemaPath: "#/properties/url/oneOf/1/properties/hostname/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [ee] : l.push(ee), s++ } se !== void 0 && (Q = se, v !== void 0 && (v.hostname = se)) } var d = W === s } else var d = !0; if (d) if (v.pathname !== void 0) { let Q = v.pathname, W = s; if (typeof Q != "string") { let we = typeof Q, se; if (se === void 0) if (we == "number" || we == "boolean") se = "" + Q; else if (Q === null) se = ""; else { let ee = { instancePath: e + "/url/pathname", schemaPath: "#/properties/url/oneOf/1/properties/pathname/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [ee] : l.push(ee), s++ } se !== void 0 && (Q = se, v !== void 0 && (v.pathname = se)) } var d = W === s } else var d = !0 } } } else { let te = { instancePath: e + "/url", schemaPath: "#/properties/url/oneOf/1/type", keyword: "type", params: { type: "object" }, message: "must be object" }; l === null ? l = [te] : l.push(te), s++ } var y = F === s; if (y && N ? (N = !1, R = [R, 1]) : y && (N = !0, R = 1), N) s = O, l !== null && (O ? l.length = O : l = null); else { let te = { instancePath: e + "/url", schemaPath: "#/properties/url/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" }; return l === null ? l = [te] : l.push(te), s++, qr.errors = l, !1 } var _ = x === s } else var _ = !0; if (_) { if (t.path !== void 0) { let v = t.path, x = s, O = s, N = !1, R = null, U = s; if (typeof v != "string") { let Q = typeof v, W; if (W === void 0) if (Q == "number" || Q == "boolean") W = "" + v; else if (v === null) W = ""; else { let ce = { instancePath: e + "/path", schemaPath: "#/properties/path/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [ce] : l.push(ce), s++ } W !== void 0 && (v = W, t !== void 0 && (t.path = W)) } var w = U === s; w && (N = !0, R = 0); let F = s; if (s === F) if (v && typeof v == "object" && !Array.isArray(v)) { let Q; if (v.pathname === void 0 && (Q = "pathname")) { let W = { instancePath: e + "/path", schemaPath: "#/properties/path/oneOf/1/required", keyword: "required", params: { missingProperty: Q }, message: "must have required property '" + Q + "'" }; l === null ? l = [W] : l.push(W), s++ } else { if (v.protocol !== void 0) { let W = v.protocol, ce = s; if (typeof W != "string") { let we = typeof W, se; if (se === void 0) if (we == "number" || we == "boolean") se = "" + W; else if (W === null) se = ""; else { let ee = { instancePath: e + "/path/protocol", schemaPath: "#/properties/path/oneOf/1/properties/protocol/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [ee] : l.push(ee), s++ } se !== void 0 && (W = se, v !== void 0 && (v.protocol = se)) } var S = ce === s } else var S = !0; if (S) { if (v.hostname !== void 0) { let W = v.hostname, ce = s; if (typeof W != "string") { let se = typeof W, ee; if (ee === void 0) if (se == "number" || se == "boolean") ee = "" + W; else if (W === null) ee = ""; else { let me = { instancePath: e + "/path/hostname", schemaPath: "#/properties/path/oneOf/1/properties/hostname/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [me] : l.push(me), s++ } ee !== void 0 && (W = ee, v !== void 0 && (v.hostname = ee)) } var S = ce === s } else var S = !0; if (S) if (v.pathname !== void 0) { let W = v.pathname, ce = s; if (typeof W != "string") { let se = typeof W, ee; if (ee === void 0) if (se == "number" || se == "boolean") ee = "" + W; else if (W === null) ee = ""; else { let me = { instancePath: e + "/path/pathname", schemaPath: "#/properties/path/oneOf/1/properties/pathname/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [me] : l.push(me), s++ } ee !== void 0 && (W = ee, v !== void 0 && (v.pathname = ee)) } var S = ce === s } else var S = !0 } } } else { let Q = { instancePath: e + "/path", schemaPath: "#/properties/path/oneOf/1/type", keyword: "type", params: { type: "object" }, message: "must be object" }; l === null ? l = [Q] : l.push(Q), s++ } var w = F === s; if (w && N ? (N = !1, R = [R, 1]) : w && (N = !0, R = 1), N) s = O, l !== null && (O ? l.length = O : l = null); else { let Q = { instancePath: e + "/path", schemaPath: "#/properties/path/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" }; return l === null ? l = [Q] : l.push(Q), s++, qr.errors = l, !1 } var _ = x === s } else var _ = !0; if (_) { if (t.cookies !== void 0) { let v = t.cookies, x = s; if (s === x && !(v && typeof v == "object" && !Array.isArray(v))) return qr.errors = [{ instancePath: e + "/cookies", schemaPath: "#/properties/cookies/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var _ = x === s } else var _ = !0; if (_) { if (t.headers !== void 0) { let v = t.headers, x = s; if (s === x && !(v && typeof v == "object" && !Array.isArray(v))) return qr.errors = [{ instancePath: e + "/headers", schemaPath: "#/properties/headers/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var _ = x === s } else var _ = !0; if (_) { if (t.query !== void 0) { let v = t.query, x = s, O = s, N = !1, R = s; if (s === R && !(v && typeof v == "object" && !Array.isArray(v))) { let F = { instancePath: e + "/query", schemaPath: "#/properties/query/anyOf/0/type", keyword: "type", params: { type: "object" }, message: "must be object" }; l === null ? l = [F] : l.push(F), s++ } var E = R === s; if (N = N || E, !N) { let F = s; if (typeof v != "string") { let Q = typeof v, W; if (W === void 0) if (Q == "number" || Q == "boolean") W = "" + v; else if (v === null) W = ""; else { let ce = { instancePath: e + "/query", schemaPath: "#/properties/query/anyOf/1/type", keyword: "type", params: { type: "string" }, message: "must be string" }; l === null ? l = [ce] : l.push(ce), s++ } W !== void 0 && (v = W, t !== void 0 && (t.query = W)) } var E = F === s; N = N || E } if (N) s = O, l !== null && (O ? l.length = O : l = null); else { let F = { instancePath: e + "/query", schemaPath: "#/properties/query/anyOf", keyword: "anyOf", params: {}, message: "must match a schema in anyOf" }; return l === null ? l = [F] : l.push(F), s++, qr.errors = l, !1 } var _ = x === s } else var _ = !0; if (_) { if (t.simulate !== void 0) { let v = t.simulate, x = s; if (s === x) if (v && typeof v == "object" && !Array.isArray(v)) { if (v.end !== void 0) { let N = v.end, R = s; if (typeof N != "boolean") { let U; if (U === void 0) if (N === "false" || N === 0 || N === null) U = !1; else if (N === "true" || N === 1) U = !0; else return qr.errors = [{ instancePath: e + "/simulate/end", schemaPath: "#/properties/simulate/properties/end/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; U !== void 0 && (N = U, v !== void 0 && (v.end = U)) } var g = R === s } else var g = !0; if (g) { if (v.split !== void 0) { let N = v.split, R = s; if (typeof N != "boolean") { let F; if (F === void 0) if (N === "false" || N === 0 || N === null) F = !1; else if (N === "true" || N === 1) F = !0; else return qr.errors = [{ instancePath: e + "/simulate/split", schemaPath: "#/properties/simulate/properties/split/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; F !== void 0 && (N = F, v !== void 0 && (v.split = F)) } var g = R === s } else var g = !0; if (g) { if (v.error !== void 0) { let N = v.error, R = s; if (typeof N != "boolean") { let F; if (F === void 0) if (N === "false" || N === 0 || N === null) F = !1; else if (N === "true" || N === 1) F = !0; else return qr.errors = [{ instancePath: e + "/simulate/error", schemaPath: "#/properties/simulate/properties/error/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; F !== void 0 && (N = F, v !== void 0 && (v.error = F)) } var g = R === s } else var g = !0; if (g) if (v.close !== void 0) { let N = v.close, R = s; if (typeof N != "boolean") { let F; if (F === void 0) if (N === "false" || N === 0 || N === null) F = !1; else if (N === "true" || N === 1) F = !0; else return qr.errors = [{ instancePath: e + "/simulate/close", schemaPath: "#/properties/simulate/properties/close/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; F !== void 0 && (N = F, v !== void 0 && (v.close = F)) } var g = R === s } else var g = !0 } } } else return qr.errors = [{ instancePath: e + "/simulate", schemaPath: "#/properties/simulate/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; var _ = x === s } else var _ = !0; if (_) { if (t.authority !== void 0) { let v = t.authority, x = s; if (typeof v != "string") { let N = typeof v, R; if (R === void 0) if (N == "number" || N == "boolean") R = "" + v; else if (v === null) R = ""; else return qr.errors = [{ instancePath: e + "/authority", schemaPath: "#/properties/authority/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; R !== void 0 && (v = R, t !== void 0 && (t.authority = R)) } var _ = x === s } else var _ = !0; if (_) { if (t.remoteAddress !== void 0) { let v = t.remoteAddress, x = s; if (typeof v != "string") { let N = typeof v, R; if (R === void 0) if (N == "number" || N == "boolean") R = "" + v; else if (v === null) R = ""; else return qr.errors = [{ instancePath: e + "/remoteAddress", schemaPath: "#/properties/remoteAddress/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; R !== void 0 && (v = R, t !== void 0 && (t.remoteAddress = R)) } var _ = x === s } else var _ = !0; if (_) { if (t.method !== void 0) { let v = t.method, x = s; if (typeof v != "string") { let N = typeof v, R; if (R === void 0) if (N == "number" || N == "boolean") R = "" + v; else if (v === null) R = ""; else return qr.errors = [{ instancePath: e + "/method", schemaPath: "#/properties/method/type", keyword: "type", params: { type: "string" }, message: "must be string" }], !1; R !== void 0 && (v = R, t !== void 0 && (t.method = R)) } if (!(v === "ACL" || v === "BIND" || v === "CHECKOUT" || v === "CONNECT" || v === "COPY" || v === "DELETE" || v === "GET" || v === "HEAD" || v === "LINK" || v === "LOCK" || v === "M-SEARCH" || v === "MERGE" || v === "MKACTIVITY" || v === "MKCALENDAR" || v === "MKCOL" || v === "MOVE" || v === "NOTIFY" || v === "OPTIONS" || v === "PATCH" || v === "POST" || v === "PROPFIND" || v === "PROPPATCH" || v === "PURGE" || v === "PUT" || v === "REBIND" || v === "REPORT" || v === "SEARCH" || v === "SOURCE" || v === "SUBSCRIBE" || v === "TRACE" || v === "UNBIND" || v === "UNLINK" || v === "UNLOCK" || v === "UNSUBSCRIBE" || v === "acl" || v === "bind" || v === "checkout" || v === "connect" || v === "copy" || v === "delete" || v === "get" || v === "head" || v === "link" || v === "lock" || v === "m-search" || v === "merge" || v === "mkactivity" || v === "mkcalendar" || v === "mkcol" || v === "move" || v === "notify" || v === "options" || v === "patch" || v === "post" || v === "propfind" || v === "proppatch" || v === "purge" || v === "put" || v === "rebind" || v === "report" || v === "search" || v === "source" || v === "subscribe" || v === "trace" || v === "unbind" || v === "unlink" || v === "unlock" || v === "unsubscribe")) return qr.errors = [{ instancePath: e + "/method", schemaPath: "#/properties/method/enum", keyword: "enum", params: { allowedValues: Qhe.properties.method.enum }, message: "must be equal to one of the allowed values" }], !1; var _ = x === s } else var _ = !0; if (_) if (t.validate !== void 0) { let v = t.validate, x = s; if (typeof v != "boolean") { let N; if (N === void 0) if (v === "false" || v === 0 || v === null) N = !1; else if (v === "true" || v === 1) N = !0; else return qr.errors = [{ instancePath: e + "/validate", schemaPath: "#/properties/validate/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" }], !1; N !== void 0 && (v = N, t !== void 0 && (t.validate = N)) } var _ = x === s } else var _ = !0 } } } } } } } } } else return qr.errors = [{ instancePath: e, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" }], !1; return qr.errors = l, s === 0 } }); var zM = k((Fke, Nc) => { "use strict"; var Zhe = require("node:assert"), x_ = FM(), f7 = BM(), h7 = "The dispatch function has already been invoked", VM = HM(); function A_(t, e, n) { return typeof n > "u" ? new Oc(t, e) : d7(t, e, n) } function qM(t, e, n, r) { return n.once("error", function (i) { this.destroyed && r.destroy(i) }), n.once("close", function () { this.destroyed && !this._error && r.destroy() }), n.prepare(() => t.call(e, n, r)) } function d7(t, e, n) { if (e = typeof e == "string" ? { url: e } : e, e.validate !== !1 && (Zhe(typeof t == "function", "dispatchFunc should be a function"), !VM(e))) throw new Error(VM.errors.map(s => s.message)); let r = e.server || {}, i = e.Request ? x_.CustomRequest : x_; if (t.request && t.request.app === t && (Object.setPrototypeOf(Object.getPrototypeOf(t.request), i.prototype), Object.setPrototypeOf(Object.getPrototypeOf(t.response), f7.prototype)), typeof n == "function") { let l = new i(e), s = new f7(l, n); return qM(t, r, l, s) } else return new Promise((l, s) => { let a = new i(e), o = new f7(a, l, s); qM(t, r, a, o) }) } function Oc(t, e) { typeof e == "string" ? this.option = { url: e } : this.option = Object.assign({}, e), this.dispatch = t, this._hasInvoked = !1, this._promise = null, this.option.autoStart !== !1 && process.nextTick(() => { this._hasInvoked || this.end() }) } var eme = ["delete", "get", "head", "options", "patch", "post", "put", "trace"]; eme.forEach(t => { Oc.prototype[t] = function (e) { if (this._hasInvoked === !0 || this._promise) throw new Error(h7); return this.option.url = e, this.option.method = t.toUpperCase(), this } }); var tme = ["body", "cookies", "headers", "payload", "query"]; tme.forEach(t => { Oc.prototype[t] = function (e) { if (this._hasInvoked === !0 || this._promise) throw new Error(h7); return this.option[t] = e, this } }); Oc.prototype.end = function (t) { if (this._hasInvoked === !0 || this._promise) throw new Error(h7); if (this._hasInvoked = !0, typeof t == "function") d7(this.dispatch, this.option, t); else return this._promise = d7(this.dispatch, this.option), this._promise }; Object.getOwnPropertyNames(Promise.prototype).forEach(t => { t !== "constructor" && (Oc.prototype[t] = function (...e) { if (!this._promise) { if (this._hasInvoked === !0) throw new Error(h7); this._hasInvoked = !0, this._promise = d7(this.dispatch, this.option) } return this._promise[t](...e) }) }); function nme(t) { return t instanceof x_ || t instanceof f7 || t && t.constructor && t.constructor.name === "_CustomLMRRequest" } Nc.exports = A_; Nc.exports.default = A_; Nc.exports.inject = A_; Nc.exports.isInjection = nme }); var s$ = k((jke, v7) => {
"use strict"; var rme = "4.26.0", ime = ZA(), O_ = require("node:http"), Cc, { kAvvioBoot: Rc, kChildren: N_, kServerBindings: GM, kBodyLimit: lme, kRoutePrefix: JM, kLogLevel: sme, kLogSerializers: ame, kHooks: C_, kSchemaController: U2, kRequestAcceptVersion: ome, kReplySerializerDefault: KM, kContentTypeParser: ume, kReply: cme, kRequest: pme, kFourOhFour: fme, kState: Mr, kOptions: R_, kPluginNameChain: Ic, kSchemaErrorFormatter: I_, kErrorHandler: m7, kKeepAliveConnections: k_, kChildLoggerFactory: D_, kGenReqId: P_ } = di(), { createServer: dme, compileValidateHTTPVersion: hme } = TO(), kc = p9(), y7 = O9(), mme = N9(), { supportedMethods: yme } = Lg(), M1 = $g(), V3 = Xg(), XM = Bv(), { Hooks: gme, hookRunnerApplication: WM, supportedHooks: L_ } = m2(), { createLogger: vme, createChildLogger: YM, defaultChildLoggerFactory: _me } = c4(), QM = Jv(), { getGenReqId: ZM, reqIdGenFactory: e$ } = K9(), { buildRouting: Eme, validateBodyLimitOption: bme } = sM(), wme = dM(), l$ = yM(), Sme = xM(), { FSTDEP009: Tme } = Fa(), xme = OM(), { appendStackTrace: Ame, AVVIO_ERRORS_MAP: t$, ...q3 } = Ui(), { defaultInitOptions: vl } = l$, { FST_ERR_ASYNC_CONSTRAINT: Ome, FST_ERR_BAD_URL: Nme, FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE: Cme, FST_ERR_OPTIONS_NOT_OBJ: Rme, FST_ERR_QSP_NOT_FN: Ime, FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN: kme, FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ: Dme, FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR: Pme, FST_ERR_VERSION_CONSTRAINT_NOT_STR: Lme, FST_ERR_INSTANCE_ALREADY_LISTENING: Fme, FST_ERR_REOPENED_CLOSE_SERVER: jme, FST_ERR_ROUTE_REWRITE_NOT_STR: Ume, FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN: n$ } = q3, { buildErrorHandler: r$ } = V4(); function Mme(t) { let e = {}; return ["errorHandler", "logLevel", "logSerializers"].concat(L_).forEach(r => { e[r] = t.store[r] }), Object.assign({}, e) } function g7(t) {
if (t = t || {}, typeof t != "object") throw new Rme; if (t.querystringParser && typeof t.querystringParser != "function") throw new Ime(typeof t.querystringParser); if (t.schemaController && t.schemaController.bucket && typeof t.schemaController.bucket != "function") throw new kme(typeof t.schemaController.bucket); bme(t.bodyLimit); let e = t.requestIdHeader === !1 ? !1 : (t.requestIdHeader || vl.requestIdHeader).toLowerCase(), n = e$(e, t.genReqId), r = t.requestIdLogLabel || "reqId", i = t.bodyLimit || vl.bodyLimit, l = t.disableRequestLogging || !1, s = Object.assign({ customOptions: {}, plugins: [] }, t.ajv), a = t.frameworkErrors; if (!s.customOptions || Object.prototype.toString.call(s.customOptions) !== "[object Object]") throw new Dme(typeof s.customOptions); if (!s.plugins || !Array.isArray(s.plugins)) throw new Pme(typeof s.plugins); let { logger: o, hasLogger: u } = vme(t); t.connectionTimeout = t.connectionTimeout || vl.connectionTimeout, t.keepAliveTimeout = t.keepAliveTimeout || vl.keepAliveTimeout, t.maxRequestsPerSocket = t.maxRequestsPerSocket || vl.maxRequestsPerSocket, t.requestTimeout = t.requestTimeout || vl.requestTimeout, t.logger = o, t.requestIdHeader = e, t.requestIdLogLabel = r, t.disableRequestLogging = l, t.ajv = s, t.clientErrorHandler = t.clientErrorHandler || ee; let c = l$(t); t.exposeHeadRoutes = c.exposeHeadRoutes; let f = t.constraints; t.versioning && (Tme(), f = { ...f, version: { name: "version", mustMatchWhenDerived: !0, storage: t.versioning.storage, deriveConstraint: t.versioning.deriveVersion, validate(ie) { if (typeof ie != "string") throw new Lme } } }); let m = Eme({ config: { defaultRoute: me, onBadUrl: P, constraints: f, ignoreTrailingSlash: t.ignoreTrailingSlash || vl.ignoreTrailingSlash, ignoreDuplicateSlashes: t.ignoreDuplicateSlashes || vl.ignoreDuplicateSlashes, maxParamLength: t.maxParamLength || vl.maxParamLength, caseSensitive: t.caseSensitive, allowUnsafeRegex: t.allowUnsafeRegex || vl.allowUnsafeRegex, buildPrettyMeta: Mme, querystringParser: t.querystringParser, useSemicolonDelimiter: t.useSemicolonDelimiter ?? vl.useSemicolonDelimiter } }), d = wme(t), y = gt(m, t); t.http2SessionTimeout = c.http2SessionTimeout; let { server: _, listen: S } = dme(t, y), w = typeof _.closeAllConnections == "function", E = typeof _.closeIdleConnections == "function", g = t.forceCloseConnections; if (g === "idle" && !E) throw new Cme; typeof g != "boolean" && (g = E ? "idle" : !1); let v = !w && g === !0 ? new Set : xme(), x = kc.setupResponseListeners, O = XM.buildSchemaController(null, t.schemaController), N = { [Mr]: { listening: !1, closing: !1, started: !1, ready: !1, booting: !1, readyPromise: null }, [k_]: v, [R_]: t, [N_]: [], [GM]: [], [lme]: i, [JM]: "", [sme]: "", [ame]: null, [C_]: new gme, [U2]: O, [I_]: null, [m7]: r$(), [D_]: _me, [KM]: null, [ume]: new V3(i, t.onProtoPoisoning || vl.onProtoPoisoning, t.onConstructorPoisoning || vl.onConstructorPoisoning), [cme]: kc.buildReply(kc), [pme]: y7.buildRequest(y7, t.trustProxy), [fme]: d, [QM.kRegisteredPlugins]: [], [Ic]: ["fastify"], [Rc]: null, [P_]: n, routing: y, getDefaultRoute: m.getDefaultRoute.bind(m), setDefaultRoute: m.setDefaultRoute.bind(m), delete: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: "DELETE", url: ve, options: Se, handler: Xe }) }, get: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: "GET", url: ve, options: Se, handler: Xe }) }, head: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: "HEAD", url: ve, options: Se, handler: Xe }) }, patch: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: "PATCH", url: ve, options: Se, handler: Xe }) }, post: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: "POST", url: ve, options: Se, handler: Xe }) }, put: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: "PUT", url: ve, options: Se, handler: Xe }) }, options: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: "OPTIONS", url: ve, options: Se, handler: Xe }) }, all: function (ve, Se, Xe) { return m.prepareRoute.call(this, { method: yme, url: ve, options: Se, handler: Xe }) }, route: function (ve) { return m.route.call(this, { options: ve }) }, hasRoute: function (ve) { return m.hasRoute.call(this, { options: ve }) }, findRoute: function (ve) { return m.findRoute(ve) }, log: o, withTypeProvider: ce, addHook: we, addSchema: se, getSchema: O.getSchema.bind(O), getSchemas: O.getSchemas.bind(O), setValidatorCompiler: q, setSerializerCompiler: Tt, setSchemaController: Qe, setReplySerializer: pt, setSchemaErrorFormatter: Zn, setGenReqId: Et, addContentTypeParser: V3.helpers.addContentTypeParser, hasContentTypeParser: V3.helpers.hasContentTypeParser, getDefaultJsonParser: V3.defaultParsers.getDefaultJsonParser, defaultTextParser: V3.defaultParsers.defaultTextParser, removeContentTypeParser: V3.helpers.removeContentTypeParser, removeAllContentTypeParsers: V3.helpers.removeAllContentTypeParsers, register: null, after: null, ready: null, onClose: null, close: null, printPlugins: null, hasPlugin: function (ie) { return this[QM.kRegisteredPlugins].includes(ie) || this[Ic].includes(ie) }, listen: S, server: _, addresses: function () { let ie = this[GM].map(ve => ve.address()); return ie.push(this.server.address()), ie.filter(ve => ve) }, decorate: M1.add, hasDecorator: M1.exist, decorateReply: M1.decorateReply, decorateRequest: M1.decorateRequest, hasRequestDecorator: M1.existRequest, hasReplyDecorator: M1.existReply, inject: Q, printRoutes: $t, setNotFoundHandler: V, setErrorHandler: ze, setChildLoggerFactory: Ue, initialConfig: c, addConstraintStrategy: m.addConstraintStrategy.bind(m), hasConstraintStrategy: m.hasConstraintStrategy.bind(m) }; Object.defineProperties(N, { listeningOrigin: { get() { let ie = this.addresses().slice(-1).pop(); if (typeof ie == "string") return ie; let ve = ie.family === "IPv6" ? `[${ie.address}]` : ie.address; return `${this[R_].https ? "https" : "http"}://${ve}:${ie.port}` } }, pluginName: { configurable: !0, get() { return this[Ic].length > 1 ? this[Ic].join(" -> ") : this[Ic][0] } }, prefix: { configurable: !0, get() { return this[JM] } }, validatorCompiler: { configurable: !0, get() { return this[U2].getValidatorCompiler() } }, serializerCompiler: { configurable: !0, get() { return this[U2].getSerializerCompiler() } }, childLoggerFactory: { configurable: !0, get() { return this[D_] } }, version: { configurable: !0, get() { return rme } }, errorHandler: { configurable: !0, get() { return this[m7].func } }, genReqId: { configurable: !0, get() { return this[P_] } } }), t.schemaErrorFormatter && (i$(t.schemaErrorFormatter), N[I_] = t.schemaErrorFormatter.bind(N)); let R = Number(t.pluginTimeout), U = ime(N, { autostart: !1, timeout: isNaN(R) === !1 ? R : vl.pluginTimeout, expose: { use: "register" } }); U.override = Sme, U.on("start", () => N[Mr].started = !0), N[Rc] = N.ready, N.ready = W, N.printPlugins = U.prettyPrint.bind(U), U.once("preReady", () => { N.onClose((ie, ve) => { N[Mr].closing = !0, m.closeRoutes(), WM("preClose", N[Rc], N, function () { if (N[Mr].listening) { if (g === "idle") ie.server.closeIdleConnections(); else if (w && g) ie.server.closeAllConnections(); else if (g === !0) for (let Se of N[k_]) Se.destroy(), N[k_].delete(Se) } !t.serverFactory || N[Mr].listening ? ie.server.close(function (Se) { Se && Se.code !== "ERR_SERVER_NOT_RUNNING" ? ve(null) : ve() }) : process.nextTick(ve, null) }) }) }); let F = new mme({ server: N, config: {} }); N.setNotFoundHandler(), d.arrange404(N), m.setup(t, { avvio: U, fourOhFour: d, logger: o, hasLogger: u, setupResponseListeners: x, throwIfAlreadyStarted: te, validateHTTPVersion: hme(t), keepAliveConnections: v }), _.on("clientError", t.clientErrorHandler.bind(N)); try { let ve = require("node:diagnostics_channel").channel("fastify.initialization"); ve.hasSubscribers && ve.publish({ fastify: N }) } catch { } return "asyncDispose" in Symbol && (N[Symbol.asyncDispose] = function () { return N.close() }), N; function te(ie) { if (N[Mr].started) throw new Fme(ie) } function Q(ie, ve) { if (Cc === void 0 && (Cc = zM()), N[Mr].started) { if (N[Mr].closing) { let Se = new jme; if (ve) { ve(Se); return } else return Promise.reject(Se) } return Cc(y, ie, ve) } if (ve) this.ready(Se => { Se ? ve(Se, null) : Cc(y, ie, ve) }); else return Cc((Se, Xe) => { this.ready(function (ft) { if (ft) { Xe.emit("error", ft); return } y(Se, Xe) }) }, ie) } function W(ie) { if (this[Mr].readyPromise !== null) { if (ie != null) { this[Mr].readyPromise.then(() => ie(null, N), ie); return } return this[Mr].readyPromise } let ve, Se; if (process.nextTick(Xe), this[Mr].readyPromise = new Promise(function (Pe, Lt) { ve = Pe, Se = Lt }), ie) this[Mr].readyPromise.then(() => ie(null, N), ie); else return this[Mr].readyPromise; function Xe() { N[Rc]((Pe, Lt) => { Pe || N[Mr].started || N[Mr].ready || N[Mr].booting ? ft(Pe) : (N[Mr].booting = !0, WM("onReady", N[Rc], N, ft)), Lt() }) } function ft(Pe) { if (Pe = Pe != null && t$[Pe.code] != null ? Ame(Pe, new t$[Pe.code](Pe.message)) : Pe, Pe) return Se(Pe); ve(N), N[Mr].booting = !1, N[Mr].ready = !0, N[Mr].promise = null } } function ce() { return this } function we(ie, ve) { if (te('Cannot call "addHook"!'), ve == null) throw new q3.FST_ERR_HOOK_INVALID_HANDLER(ie, ve); if (ie === "onSend" || ie === "preSerialization" || ie === "onError" || ie === "preParsing") { if (ve.constructor.name === "AsyncFunction" && ve.length === 4) throw new q3.FST_ERR_HOOK_INVALID_ASYNC_HANDLER } else if (ie === "onReady" || ie === "onListen") { if (ve.constructor.name === "AsyncFunction" && ve.length !== 0) throw new q3.FST_ERR_HOOK_INVALID_ASYNC_HANDLER } else if (ie === "onRequestAbort") { if (ve.constructor.name === "AsyncFunction" && ve.length !== 1) throw new q3.FST_ERR_HOOK_INVALID_ASYNC_HANDLER } else if (ve.constructor.name === "AsyncFunction" && ve.length === 3) throw new q3.FST_ERR_HOOK_INVALID_ASYNC_HANDLER; return ie === "onClose" ? this.onClose(ve) : ie === "onReady" || ie === "onListen" || ie === "onRoute" ? this[C_].add(ie, ve) : this.after((Xe, ft) => { Se.call(this, ie, ve), ft(Xe) }), this; function Se(Xe, ft) { this[C_].add(Xe, ft), this[N_].forEach(Pe => Se.call(Pe, Xe, ft)) } } function se(ie) { return te('Cannot call "addSchema"!'), this[U2].add(ie), this[N_].forEach(ve => ve.addSchema(ie)), this } function ee(ie, ve) {
if (ie.code === "ECONNRESET" || ve.destroyed) return; let Se, Xe, ft, Pe; ie.code === "ERR_HTTP_REQUEST_TIMEOUT" ? (Xe = "408", ft = O_.STATUS_CODES[Xe], Se = `{"error":"${ft}","message":"Client Timeout","statusCode":408}`, Pe = "timeout") : ie.code === "HPE_HEADER_OVERFLOW" ? (Xe = "431", ft = O_.STATUS_CODES[Xe], Se = `{"error":"${ft}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`, Pe = "header_overflow") : (Xe = "400", ft = O_.STATUS_CODES[Xe], Se = `{"error":"${ft}","message":"Client Error","statusCode":400}`, Pe = "error"), this.log.trace({ err: ie }, `client ${Pe}`), ve.writable && ve.write(`HTTP/1.1 ${Xe} ${ft}\r
Content-Length: ${Se.length}\r
Content-Type: application/json\r
\r
${Se}`), ve.destroy(ie)
} function me(ie, ve) { ie.headers["accept-version"] !== void 0 && (ie.headers[ome] = ie.headers["accept-version"], ie.headers["accept-version"] = void 0), d.router.lookup(ie, ve) } function P(ie, ve, Se) { if (a) { let ft = ZM(F.server, ve), Pe = YM(F, o, ve, ft), Lt = new y7(ft, null, ve, null, Pe, F), wr = new kc(Se, Lt, Pe); return l === !1 && Pe.info({ req: Lt }, "incoming request"), a(new Nme(ie), Lt, wr) } let Xe = `{"error":"Bad Request","code":"FST_ERR_BAD_URL","message":"'${ie}' is not a valid url component","statusCode":400}`; Se.writeHead(400, { "Content-Type": "application/json", "Content-Length": Xe.length }), Se.end(Xe) } function G(ie, ve, Se) { if (ie !== !1) return function (ft) { if (ft) { if (a) { let Lt = ZM(F.server, ve), wr = YM(F, o, ve, Lt), Ft = new y7(Lt, null, ve, null, wr, F), Zt = new kc(Se, Ft, wr); return l === !1 && wr.info({ req: Ft }, "incoming request"), a(new Ome, Ft, Zt) } let Pe = '{"error":"Internal Server Error","message":"Unexpected error from async constraint","statusCode":500}'; Se.writeHead(500, { "Content-Type": "application/json", "Content-Length": Pe.length }), Se.end(Pe) } } } function V(ie, ve) { return te('Cannot call "setNotFoundHandler"!'), d.setNotFoundHandler.call(this, ie, ve, U, m.routeHandler), this } function q(ie) { return te('Cannot call "setValidatorCompiler"!'), this[U2].setValidatorCompiler(ie), this } function Zn(ie) { return te('Cannot call "setSchemaErrorFormatter"!'), i$(ie), this[I_] = ie.bind(this), this } function Tt(ie) { return te('Cannot call "setSerializerCompiler"!'), this[U2].setSerializerCompiler(ie), this } function Qe(ie) { te('Cannot call "setSchemaController"!'); let ve = this[U2], Se = XM.buildSchemaController(ve, Object.assign({}, ve.opts, ie)); return this[U2] = Se, this.getSchema = Se.getSchema.bind(Se), this.getSchemas = Se.getSchemas.bind(Se), this } function pt(ie) { return te('Cannot call "setReplySerializer"!'), this[KM] = ie, this } function ze(ie) { return te('Cannot call "setErrorHandler"!'), this[m7] = r$(this[m7], ie.bind(this)), this } function Ue(ie) { return te('Cannot call "setChildLoggerFactory"!'), this[D_] = ie, this } function $t(ie = {}) { return ie.includeMeta = ie.includeHooks ? ie.includeMeta ? L_.concat(ie.includeMeta) : L_ : ie.includeMeta, m.printRoutes(ie) } function gt(ie, { rewriteUrl: ve, logger: Se }) { let Xe; return function (Pe, Lt) { if (Xe === void 0 && (Xe = ie.isAsyncConstraint()), ve) { Pe.originalUrl = Pe.url; let wr = ve.call(N, Pe); if (typeof wr == "string") Pe.url = wr; else { let Ft = new Ume(Pe.url, typeof wr); Pe.destroy(Ft) } } ie.routing(Pe, Lt, G(Xe, Pe, Lt)) } } function Et(ie) { return te('Cannot call "setGenReqId"!'), this[P_] = e$(this[R_].requestIdHeader, ie), this }
} g7.errorCodes = q3; function i$(t) { if (typeof t != "function") throw new n$(typeof t); if (t.constructor.name === "AsyncFunction") throw new n$("AsyncFunction") } v7.exports = g7; v7.exports.fastify = g7; v7.exports.default = g7
}); var kq = k((wPe, Iq) => { "use strict"; Iq.exports = Error }); var Pq = k((SPe, Dq) => { "use strict"; Dq.exports = EvalError }); var Fq = k((TPe, Lq) => { "use strict"; Lq.exports = RangeError }); var Uq = k((xPe, jq) => { "use strict"; jq.exports = ReferenceError }); var Tb = k((APe, Mq) => { "use strict"; Mq.exports = SyntaxError }); var _0 = k((OPe, $q) => { "use strict"; $q.exports = TypeError }); var Hq = k((NPe, Bq) => { "use strict"; Bq.exports = URIError }); var qq = k((CPe, Vq) => { "use strict"; Vq.exports = function () { if (typeof Symbol != "function" || typeof Object.getOwnPropertySymbols != "function") return !1; if (typeof Symbol.iterator == "symbol") return !0; var e = {}, n = Symbol("test"), r = Object(n); if (typeof n == "string" || Object.prototype.toString.call(n) !== "[object Symbol]" || Object.prototype.toString.call(r) !== "[object Symbol]") return !1; var i = 42; e[n] = i; for (n in e) return !1; if (typeof Object.keys == "function" && Object.keys(e).length !== 0 || typeof Object.getOwnPropertyNames == "function" && Object.getOwnPropertyNames(e).length !== 0) return !1; var l = Object.getOwnPropertySymbols(e); if (l.length !== 1 || l[0] !== n || !Object.prototype.propertyIsEnumerable.call(e, n)) return !1; if (typeof Object.getOwnPropertyDescriptor == "function") { var s = Object.getOwnPropertyDescriptor(e, n); if (s.value !== i || s.enumerable !== !0) return !1 } return !0 } }); var Jq = k((RPe, Gq) => { "use strict"; var zq = typeof Symbol < "u" && Symbol, MEe = qq(); Gq.exports = function () { return typeof zq != "function" || typeof Symbol != "function" || typeof zq("foo") != "symbol" || typeof Symbol("bar") != "symbol" ? !1 : MEe() } }); var Xq = k((IPe, Kq) => { "use strict"; var xb = { __proto__: null, foo: {} }, $Ee = Object; Kq.exports = function () { return { __proto__: xb }.foo === xb.foo && !(xb instanceof $Ee) } }); var Qq = k((kPe, Yq) => { "use strict"; var BEe = "Function.prototype.bind called on incompatible ", HEe = Object.prototype.toString, VEe = Math.max, qEe = "[object Function]", Wq = function (e, n) { for (var r = [], i = 0; i < e.length; i += 1)r[i] = e[i]; for (var l = 0; l < n.length; l += 1)r[l + e.length] = n[l]; return r }, zEe = function (e, n) { for (var r = [], i = n || 0, l = 0; i < e.length; i += 1, l += 1)r[l] = e[i]; return r }, GEe = function (t, e) { for (var n = "", r = 0; r < t.length; r += 1)n += t[r], r + 1 < t.length && (n += e); return n }; Yq.exports = function (e) { var n = this; if (typeof n != "function" || HEe.apply(n) !== qEe) throw new TypeError(BEe + n); for (var r = zEe(arguments, 1), i, l = function () { if (this instanceof i) { var c = n.apply(this, Wq(r, arguments)); return Object(c) === c ? c : this } return n.apply(e, Wq(r, arguments)) }, s = VEe(0, n.length - r.length), a = [], o = 0; o < s; o++)a[o] = "$" + o; if (i = Function("binder", "return function (" + GEe(a, ",") + "){ return binder.apply(this,arguments); }")(l), n.prototype) { var u = function () { }; u.prototype = n.prototype, i.prototype = new u, u.prototype = null } return i } }); var Bp = k((DPe, Zq) => { "use strict"; var JEe = Qq(); Zq.exports = Function.prototype.bind || JEe }); var tz = k((PPe, ez) => { "use strict"; var KEe = Function.prototype.call, XEe = Object.prototype.hasOwnProperty, WEe = Bp(); ez.exports = WEe.call(KEe, XEe) }); var fu = k((LPe, sz) => { "use strict"; var zt, YEe = kq(), QEe = Pq(), ZEe = Fq(), ebe = Uq(), S0 = Tb(), w0 = _0(), tbe = Hq(), lz = Function, Ab = function (t) { try { return lz('"use strict"; return (' + t + ").constructor;")() } catch { } }, cu = Object.getOwnPropertyDescriptor; if (cu) try { cu({}, "") } catch { cu = null } var Ob = function () { throw new w0 }, nbe = cu ? function () { try { return arguments.callee, Ob } catch { try { return cu(arguments, "callee").get } catch { return Ob } } }() : Ob, E0 = Jq()(), rbe = Xq()(), _i = Object.getPrototypeOf || (rbe ? function (t) { return t.__proto__ } : null), b0 = {}, ibe = typeof Uint8Array > "u" || !_i ? zt : _i(Uint8Array), pu = { __proto__: null, "%AggregateError%": typeof AggregateError > "u" ? zt : AggregateError, "%Array%": Array, "%ArrayBuffer%": typeof ArrayBuffer > "u" ? zt : ArrayBuffer, "%ArrayIteratorPrototype%": E0 && _i ? _i([][Symbol.iterator]()) : zt, "%AsyncFromSyncIteratorPrototype%": zt, "%AsyncFunction%": b0, "%AsyncGenerator%": b0, "%AsyncGeneratorFunction%": b0, "%AsyncIteratorPrototype%": b0, "%Atomics%": typeof Atomics > "u" ? zt : Atomics, "%BigInt%": typeof BigInt > "u" ? zt : BigInt, "%BigInt64Array%": typeof BigInt64Array > "u" ? zt : BigInt64Array, "%BigUint64Array%": typeof BigUint64Array > "u" ? zt : BigUint64Array, "%Boolean%": Boolean, "%DataView%": typeof DataView > "u" ? zt : DataView, "%Date%": Date, "%decodeURI%": decodeURI, "%decodeURIComponent%": decodeURIComponent, "%encodeURI%": encodeURI, "%encodeURIComponent%": encodeURIComponent, "%Error%": YEe, "%eval%": eval, "%EvalError%": QEe, "%Float32Array%": typeof Float32Array > "u" ? zt : Float32Array, "%Float64Array%": typeof Float64Array > "u" ? zt : Float64Array, "%FinalizationRegistry%": typeof FinalizationRegistry > "u" ? zt : FinalizationRegistry, "%Function%": lz, "%GeneratorFunction%": b0, "%Int8Array%": typeof Int8Array > "u" ? zt : Int8Array, "%Int16Array%": typeof Int16Array > "u" ? zt : Int16Array, "%Int32Array%": typeof Int32Array > "u" ? zt : Int32Array, "%isFinite%": isFinite, "%isNaN%": isNaN, "%IteratorPrototype%": E0 && _i ? _i(_i([][Symbol.iterator]())) : zt, "%JSON%": typeof JSON == "object" ? JSON : zt, "%Map%": typeof Map > "u" ? zt : Map, "%MapIteratorPrototype%": typeof Map > "u" || !E0 || !_i ? zt : _i(new Map()[Symbol.iterator]()), "%Math%": Math, "%Number%": Number, "%Object%": Object, "%parseFloat%": parseFloat, "%parseInt%": parseInt, "%Promise%": typeof Promise > "u" ? zt : Promise, "%Proxy%": typeof Proxy > "u" ? zt : Proxy, "%RangeError%": ZEe, "%ReferenceError%": ebe, "%Reflect%": typeof Reflect > "u" ? zt : Reflect, "%RegExp%": RegExp, "%Set%": typeof Set > "u" ? zt : Set, "%SetIteratorPrototype%": typeof Set > "u" || !E0 || !_i ? zt : _i(new Set()[Symbol.iterator]()), "%SharedArrayBuffer%": typeof SharedArrayBuffer > "u" ? zt : SharedArrayBuffer, "%String%": String, "%StringIteratorPrototype%": E0 && _i ? _i(""[Symbol.iterator]()) : zt, "%Symbol%": E0 ? Symbol : zt, "%SyntaxError%": S0, "%ThrowTypeError%": nbe, "%TypedArray%": ibe, "%TypeError%": w0, "%Uint8Array%": typeof Uint8Array > "u" ? zt : Uint8Array, "%Uint8ClampedArray%": typeof Uint8ClampedArray > "u" ? zt : Uint8ClampedArray, "%Uint16Array%": typeof Uint16Array > "u" ? zt : Uint16Array, "%Uint32Array%": typeof Uint32Array > "u" ? zt : Uint32Array, "%URIError%": tbe, "%WeakMap%": typeof WeakMap > "u" ? zt : WeakMap, "%WeakRef%": typeof WeakRef > "u" ? zt : WeakRef, "%WeakSet%": typeof WeakSet > "u" ? zt : WeakSet }; if (_i) try { null.error } catch (t) { nz = _i(_i(t)), pu["%Error.prototype%"] = nz } var nz, lbe = function t(e) { var n; if (e === "%AsyncFunction%") n = Ab("async function () {}"); else if (e === "%GeneratorFunction%") n = Ab("function* () {}"); else if (e === "%AsyncGeneratorFunction%") n = Ab("async function* () {}"); else if (e === "%AsyncGenerator%") { var r = t("%AsyncGeneratorFunction%"); r && (n = r.prototype) } else if (e === "%AsyncIteratorPrototype%") { var i = t("%AsyncGenerator%"); i && _i && (n = _i(i.prototype)) } return pu[e] = n, n }, rz = { __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"] }, A5 = Bp(), Hp = tz(), sbe = A5.call(Function.call, Array.prototype.concat), abe = A5.call(Function.apply, Array.prototype.splice), iz = A5.call(Function.call, String.prototype.replace), Vp = A5.call(Function.call, String.prototype.slice), obe = A5.call(Function.call, RegExp.prototype.exec), ube = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g, cbe = /\\(\\)?/g, pbe = function (e) { var n = Vp(e, 0, 1), r = Vp(e, -1); if (n === "%" && r !== "%") throw new S0("invalid intrinsic syntax, expected closing `%`"); if (r === "%" && n !== "%") throw new S0("invalid intrinsic syntax, expected opening `%`"); var i = []; return iz(e, ube, function (l, s, a, o) { i[i.length] = a ? iz(o, cbe, "$1") : s || l }), i }, fbe = function (e, n) { var r = e, i; if (Hp(rz, r) && (i = rz[r], r = "%" + i[0] + "%"), Hp(pu, r)) { var l = pu[r]; if (l === b0 && (l = lbe(r)), typeof l > "u" && !n) throw new w0("intrinsic " + e + " exists, but is not available. Please file an issue!"); return { alias: i, name: r, value: l } } throw new S0("intrinsic " + e + " does not exist!") }; sz.exports = function (e, n) { if (typeof e != "string" || e.length === 0) throw new w0("intrinsic name must be a non-empty string"); if (arguments.length > 1 && typeof n != "boolean") throw new w0('"allowMissing" argument must be a boolean'); if (obe(/^%?[^%]*%?$/, e) === null) throw new S0("`%` may not be present anywhere but at the beginning and end of the intrinsic name"); var r = pbe(e), i = r.length > 0 ? r[0] : "", l = fbe("%" + i + "%", n), s = l.name, a = l.value, o = !1, u = l.alias; u && (i = u[0], abe(r, sbe([0, 1], u))); for (var c = 1, f = !0; c < r.length; c += 1) { var m = r[c], d = Vp(m, 0, 1), y = Vp(m, -1); if ((d === '"' || d === "'" || d === "`" || y === '"' || y === "'" || y === "`") && d !== y) throw new S0("property names with quotes must have matching quotes"); if ((m === "constructor" || !f) && (o = !0), i += "." + m, s = "%" + i + "%", Hp(pu, s)) a = pu[s]; else if (a != null) { if (!(m in a)) { if (!n) throw new w0("base intrinsic for " + e + " exists, but the property is not available."); return } if (cu && c + 1 >= r.length) { var _ = cu(a, m); f = !!_, f && "get" in _ && !("originalValue" in _.get) ? a = _.get : a = a[m] } else f = Hp(a, m), a = a[m]; f && !o && (pu[s] = a) } } return a } }); var zp = k((FPe, az) => { "use strict"; var dbe = fu(), qp = dbe("%Object.defineProperty%", !0) || !1; if (qp) try { qp({}, "a", { value: 1 }) } catch { qp = !1 } az.exports = qp }); var Nb = k((jPe, oz) => { "use strict"; var hbe = fu(), Gp = hbe("%Object.getOwnPropertyDescriptor%", !0); if (Gp) try { Gp([], "length") } catch { Gp = null } oz.exports = Gp }); var fz = k((UPe, pz) => { "use strict"; var uz = zp(), mbe = Tb(), T0 = _0(), cz = Nb(); pz.exports = function (e, n, r) { if (!e || typeof e != "object" && typeof e != "function") throw new T0("`obj` must be an object or a function`"); if (typeof n != "string" && typeof n != "symbol") throw new T0("`property` must be a string or a symbol`"); if (arguments.length > 3 && typeof arguments[3] != "boolean" && arguments[3] !== null) throw new T0("`nonEnumerable`, if provided, must be a boolean or null"); if (arguments.length > 4 && typeof arguments[4] != "boolean" && arguments[4] !== null) throw new T0("`nonWritable`, if provided, must be a boolean or null"); if (arguments.length > 5 && typeof arguments[5] != "boolean" && arguments[5] !== null) throw new T0("`nonConfigurable`, if provided, must be a boolean or null"); if (arguments.length > 6 && typeof arguments[6] != "boolean") throw new T0("`loose`, if provided, must be a boolean"); var i = arguments.length > 3 ? arguments[3] : null, l = arguments.length > 4 ? arguments[4] : null, s = arguments.length > 5 ? arguments[5] : null, a = arguments.length > 6 ? arguments[6] : !1, o = !!cz && cz(e, n); if (uz) uz(e, n, { configurable: s === null && o ? o.configurable : !s, enumerable: i === null && o ? o.enumerable : !i, value: r, writable: l === null && o ? o.writable : !l }); else if (a || !i && !l && !s) e[n] = r; else throw new mbe("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.") } }); var mz = k((MPe, hz) => { "use strict"; var Cb = zp(), dz = function () { return !!Cb }; dz.hasArrayLengthDefineBug = function () { if (!Cb) return null; try { return Cb([], "length", { value: 1 }).length !== 1 } catch { return !0 } }; hz.exports = dz }); var Ez = k(($Pe, _z) => { "use strict"; var ybe = fu(), yz = fz(), gbe = mz()(), gz = Nb(), vz = _0(), vbe = ybe("%Math.floor%"); _z.exports = function (e, n) { if (typeof e != "function") throw new vz("`fn` is not a function"); if (typeof n != "number" || n < 0 || n > 4294967295 || vbe(n) !== n) throw new vz("`length` must be a positive 32-bit integer"); var r = arguments.length > 2 && !!arguments[2], i = !0, l = !0; if ("length" in e && gz) { var s = gz(e, "length"); s && !s.configurable && (i = !1), s && !s.writable && (l = !1) } return (i || l || !r) && (gbe ? yz(e, "length", n, !0, !0) : yz(e, "length", n)), e } }); var Az = k((BPe, Jp) => { "use strict"; var Rb = Bp(), Kp = fu(), _be = Ez(), Ebe = _0(), Sz = Kp("%Function.prototype.apply%"), Tz = Kp("%Function.prototype.call%"), xz = Kp("%Reflect.apply%", !0) || Rb.call(Tz, Sz), bz = zp(), bbe = Kp("%Math.max%"); Jp.exports = function (e) { if (typeof e != "function") throw new Ebe("a function is required"); var n = xz(Rb, Tz, arguments); return _be(n, 1 + bbe(0, e.length - (arguments.length - 1)), !0) }; var wz = function () { return xz(Rb, Sz, arguments) }; bz ? bz(Jp.exports, "apply", { value: wz }) : Jp.exports.apply = wz }); var Rz = k((HPe, Cz) => { "use strict"; var Oz = fu(), Nz = Az(), wbe = Nz(Oz("String.prototype.indexOf")); Cz.exports = function (e, n) { var r = Oz(e, !!n); return typeof r == "function" && wbe(e, ".prototype.") > -1 ? Nz(r) : r } }); var kz = k((VPe, Iz) => { Iz.exports = require("util").inspect }); var Qz = k((qPe, Yz) => {
var $b = typeof Map == "function" && Map.prototype, Ib = Object.getOwnPropertyDescriptor && $b ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null, Wp = $b && Ib && typeof Ib.get == "function" ? Ib.get : null, Dz = $b && Map.prototype.forEach, Bb = typeof Set == "function" && Set.prototype, kb = Object.getOwnPropertyDescriptor && Bb ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null, Yp = Bb && kb && typeof kb.get == "function" ? kb.get : null, Pz = Bb && Set.prototype.forEach, Sbe = typeof WeakMap == "function" && WeakMap.prototype, N5 = Sbe ? WeakMap.prototype.has : null, Tbe = typeof WeakSet == "function" && WeakSet.prototype, C5 = Tbe ? WeakSet.prototype.has : null, xbe = typeof WeakRef == "function" && WeakRef.prototype, Lz = xbe ? WeakRef.prototype.deref : null, Abe = Boolean.prototype.valueOf, Obe = Object.prototype.toString, Nbe = Function.prototype.toString, Cbe = String.prototype.match, Hb = String.prototype.slice, no = String.prototype.replace, Rbe = String.prototype.toUpperCase, Fz = String.prototype.toLowerCase, zz = RegExp.prototype.test, jz = Array.prototype.concat, ya = Array.prototype.join, Ibe = Array.prototype.slice, Uz = Math.floor, Lb = typeof BigInt == "function" ? BigInt.prototype.valueOf : null, Db = Object.getOwnPropertySymbols, Fb = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Symbol.prototype.toString : null, x0 = typeof Symbol == "function" && typeof Symbol.iterator == "object", zi = typeof Symbol == "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === x0 || !0) ? Symbol.toStringTag : null, Gz = Object.prototype.propertyIsEnumerable, Mz = (typeof Reflect == "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function (t) { return t.__proto__ } : null); function $z(t, e) { if (t === 1 / 0 || t === -1 / 0 || t !== t || t && t > -1e3 && t < 1e3 || zz.call(/e/, e)) return e; var n = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; if (typeof t == "number") { var r = t < 0 ? -Uz(-t) : Uz(t); if (r !== t) { var i = String(r), l = Hb.call(e, i.length + 1); return no.call(i, n, "$&_") + "." + no.call(no.call(l, /([0-9]{3})/g, "$&_"), /_$/, "") } } return no.call(e, n, "$&_") } var jb = kz(), Bz = jb.custom, Hz = Kz(Bz) ? Bz : null; Yz.exports = function t(e, n, r, i) { var l = n || {}; if (to(l, "quoteStyle") && l.quoteStyle !== "single" && l.quoteStyle !== "double") throw new TypeError('option "quoteStyle" must be "single" or "double"'); if (to(l, "maxStringLength") && (typeof l.maxStringLength == "number" ? l.maxStringLength < 0 && l.maxStringLength !== 1 / 0 : l.maxStringLength !== null)) throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); var s = to(l, "customInspect") ? l.customInspect : !0; if (typeof s != "boolean" && s !== "symbol") throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"); if (to(l, "indent") && l.indent !== null && l.indent !== " " && !(parseInt(l.indent, 10) === l.indent && l.indent > 0)) throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); if (to(l, "numericSeparator") && typeof l.numericSeparator != "boolean") throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); var a = l.numericSeparator; if (typeof e > "u") return "undefined"; if (e === null) return "null"; if (typeof e == "boolean") return e ? "true" : "false"; if (typeof e == "string") return Wz(e, l); if (typeof e == "number") { if (e === 0) return 1 / 0 / e > 0 ? "0" : "-0"; var o = String(e); return a ? $z(e, o) : o } if (typeof e == "bigint") { var u = String(e) + "n"; return a ? $z(e, u) : u } var c = typeof l.depth > "u" ? 5 : l.depth; if (typeof r > "u" && (r = 0), r >= c && c > 0 && typeof e == "object") return Ub(e) ? "[Array]" : "[Object]"; var f = Xbe(l, r); if (typeof i > "u") i = []; else if (Xz(i, e) >= 0) return "[Circular]"; function m(W, ce, we) { if (ce && (i = Ibe.call(i), i.push(ce)), we) { var se = { depth: l.depth }; return to(l, "quoteStyle") && (se.quoteStyle = l.quoteStyle), t(W, se, r + 1, i) } return t(W, l, r + 1, i) } if (typeof e == "function" && !Vz(e)) { var d = $be(e), y = Xp(e, m); return "[Function" + (d ? ": " + d : " (anonymous)") + "]" + (y.length > 0 ? " { " + ya.call(y, ", ") + " }" : "") } if (Kz(e)) { var _ = x0 ? no.call(String(e), /^(Symbol\(.*\))_[^)]*$/, "$1") : Fb.call(e); return typeof e == "object" && !x0 ? O5(_) : _ } if (Gbe(e)) { for (var S = "<" + Fz.call(String(e.nodeName)), w = e.attributes || [], E = 0; E < w.length; E++)S += " " + w[E].name + "=" + Jz(kbe(w[E].value), "double", l); return S += ">", e.childNodes && e.childNodes.length && (S += "..."), S += "</" + Fz.call(String(e.nodeName)) + ">", S } if (Ub(e)) { if (e.length === 0) return "[]"; var g = Xp(e, m); return f && !Kbe(g) ? "[" + Mb(g, f) + "]" : "[ " + ya.call(g, ", ") + " ]" } if (Pbe(e)) { var v = Xp(e, m); return !("cause" in Error.prototype) && "cause" in e && !Gz.call(e, "cause") ? "{ [" + String(e) + "] " + ya.call(jz.call("[cause]: " + m(e.cause), v), ", ") + " }" : v.length === 0 ? "[" + String(e) + "]" : "{ [" + String(e) + "] " + ya.call(v, ", ") + " }" } if (typeof e == "object" && s) { if (Hz && typeof e[Hz] == "function" && jb) return jb(e, { depth: c - r }); if (s !== "symbol" && typeof e.inspect == "function") return e.inspect() } if (Bbe(e)) { var x = []; return Dz && Dz.call(e, function (W, ce) { x.push(m(ce, e, !0) + " => " + m(W, e)) }), qz("Map", Wp.call(e), x, f) } if (qbe(e)) { var O = []; return Pz && Pz.call(e, function (W) { O.push(m(W, e)) }), qz("Set", Yp.call(e), O, f) } if (Hbe(e)) return Pb("WeakMap"); if (zbe(e)) return Pb("WeakSet"); if (Vbe(e)) return Pb("WeakRef"); if (Fbe(e)) return O5(m(Number(e))); if (Ube(e)) return O5(m(Lb.call(e))); if (jbe(e)) return O5(Abe.call(e)); if (Lbe(e)) return O5(m(String(e))); if (typeof window < "u" && e === window) return "{ [object Window] }"; if (e === global) return "{ [object globalThis] }"; if (!Dbe(e) && !Vz(e)) { var N = Xp(e, m), R = Mz ? Mz(e) === Object.prototype : e instanceof Object || e.constructor === Object, U = e instanceof Object ? "" : "null prototype", F = !R && zi && Object(e) === e && zi in e ? Hb.call(ro(e), 8, -1) : U ? "Object" : "", te = R || typeof e.constructor != "function" ? "" : e.constructor.name ? e.constructor.name + " " : "", Q = te + (F || U ? "[" + ya.call(jz.call([], F || [], U || []), ": ") + "] " : ""); return N.length === 0 ? Q + "{}" : f ? Q + "{" + Mb(N, f) + "}" : Q + "{ " + ya.call(N, ", ") + " }" } return String(e) }; function Jz(t, e, n) { var r = (n.quoteStyle || e) === "double" ? '"' : "'"; return r + t + r } function kbe(t) { return no.call(String(t), /"/g, "&quot;") } function Ub(t) { return ro(t) === "[object Array]" && (!zi || !(typeof t == "object" && zi in t)) } function Dbe(t) { return ro(t) === "[object Date]" && (!zi || !(typeof t == "object" && zi in t)) } function Vz(t) { return ro(t) === "[object RegExp]" && (!zi || !(typeof t == "object" && zi in t)) } function Pbe(t) { return ro(t) === "[object Error]" && (!zi || !(typeof t == "object" && zi in t)) } function Lbe(t) { return ro(t) === "[object String]" && (!zi || !(typeof t == "object" && zi in t)) } function Fbe(t) { return ro(t) === "[object Number]" && (!zi || !(typeof t == "object" && zi in t)) } function jbe(t) { return ro(t) === "[object Boolean]" && (!zi || !(typeof t == "object" && zi in t)) } function Kz(t) { if (x0) return t && typeof t == "object" && t instanceof Symbol; if (typeof t == "symbol") return !0; if (!t || typeof t != "object" || !Fb) return !1; try { return Fb.call(t), !0 } catch { } return !1 } function Ube(t) { if (!t || typeof t != "object" || !Lb) return !1; try { return Lb.call(t), !0 } catch { } return !1 } var Mbe = Object.prototype.hasOwnProperty || function (t) { return t in this }; function to(t, e) { return Mbe.call(t, e) } function ro(t) { return Obe.call(t) } function $be(t) { if (t.name) return t.name; var e = Cbe.call(Nbe.call(t), /^function\s*([\w$]+)/); return e ? e[1] : null } function Xz(t, e) { if (t.indexOf) return t.indexOf(e); for (var n = 0, r = t.length; n < r; n++)if (t[n] === e) return n; return -1 } function Bbe(t) { if (!Wp || !t || typeof t != "object") return !1; try { Wp.call(t); try { Yp.call(t) } catch { return !0 } return t instanceof Map } catch { } return !1 } function Hbe(t) { if (!N5 || !t || typeof t != "object") return !1; try { N5.call(t, N5); try { C5.call(t, C5) } catch { return !0 } return t instanceof WeakMap } catch { } return !1 } function Vbe(t) { if (!Lz || !t || typeof t != "object") return !1; try { return Lz.call(t), !0 } catch { } return !1 } function qbe(t) { if (!Yp || !t || typeof t != "object") return !1; try { Yp.call(t); try { Wp.call(t) } catch { return !0 } return t instanceof Set } catch { } return !1 } function zbe(t) { if (!C5 || !t || typeof t != "object") return !1; try { C5.call(t, C5); try { N5.call(t, N5) } catch { return !0 } return t instanceof WeakSet } catch { } return !1 } function Gbe(t) { return !t || typeof t != "object" ? !1 : typeof HTMLElement < "u" && t instanceof HTMLElement ? !0 : typeof t.nodeName == "string" && typeof t.getAttribute == "function" } function Wz(t, e) { if (t.length > e.maxStringLength) { var n = t.length - e.maxStringLength, r = "... " + n + " more character" + (n > 1 ? "s" : ""); return Wz(Hb.call(t, 0, e.maxStringLength), e) + r } var i = no.call(no.call(t, /(['\\])/g, "\\$1"), /[\x00-\x1f]/g, Jbe); return Jz(i, "single", e) } function Jbe(t) { var e = t.charCodeAt(0), n = { 8: "b", 9: "t", 10: "n", 12: "f", 13: "r" }[e]; return n ? "\\" + n : "\\x" + (e < 16 ? "0" : "") + Rbe.call(e.toString(16)) } function O5(t) { return "Object(" + t + ")" } function Pb(t) { return t + " { ? }" } function qz(t, e, n, r) { var i = r ? Mb(n, r) : ya.call(n, ", "); return t + " (" + e + ") {" + i + "}" } function Kbe(t) {
for (var e = 0; e < t.length; e++)if (Xz(t[e], `
`) >= 0) return !1; return !0
} function Xbe(t, e) { var n; if (t.indent === " ") n = " "; else if (typeof t.indent == "number" && t.indent > 0) n = ya.call(Array(t.indent + 1), " "); else return null; return { base: n, prev: ya.call(Array(e + 1), n) } } function Mb(t, e) {
if (t.length === 0) return ""; var n = `
`+ e.prev + e.base; return n + ya.call(t, "," + n) + `
`+ e.prev
} function Xp(t, e) { var n = Ub(t), r = []; if (n) { r.length = t.length; for (var i = 0; i < t.length; i++)r[i] = to(t, i) ? e(t[i], t) : "" } var l = typeof Db == "function" ? Db(t) : [], s; if (x0) { s = {}; for (var a = 0; a < l.length; a++)s["$" + l[a]] = l[a] } for (var o in t) to(t, o) && (n && String(Number(o)) === o && o < t.length || x0 && s["$" + o] instanceof Symbol || (zz.call(/[^\w$]/, o) ? r.push(e(o, t) + ": " + e(t[o], t)) : r.push(o + ": " + e(t[o], t)))); if (typeof Db == "function") for (var u = 0; u < l.length; u++)Gz.call(t, l[u]) && r.push("[" + e(l[u]) + "]: " + e(t[l[u]], t)); return r }
}); var tG = k((zPe, eG) => { "use strict"; var Zz = fu(), A0 = Rz(), Wbe = Qz(), Ybe = _0(), Qp = Zz("%WeakMap%", !0), Zp = Zz("%Map%", !0), Qbe = A0("WeakMap.prototype.get", !0), Zbe = A0("WeakMap.prototype.set", !0), ewe = A0("WeakMap.prototype.has", !0), twe = A0("Map.prototype.get", !0), nwe = A0("Map.prototype.set", !0), rwe = A0("Map.prototype.has", !0), Vb = function (t, e) { for (var n = t, r; (r = n.next) !== null; n = r)if (r.key === e) return n.next = r.next, r.next = t.next, t.next = r, r }, iwe = function (t, e) { var n = Vb(t, e); return n && n.value }, lwe = function (t, e, n) { var r = Vb(t, e); r ? r.value = n : t.next = { key: e, next: t.next, value: n } }, swe = function (t, e) { return !!Vb(t, e) }; eG.exports = function () { var e, n, r, i = { assert: function (l) { if (!i.has(l)) throw new Ybe("Side channel does not contain " + Wbe(l)) }, get: function (l) { if (Qp && l && (typeof l == "object" || typeof l == "function")) { if (e) return Qbe(e, l) } else if (Zp) { if (n) return twe(n, l) } else if (r) return iwe(r, l) }, has: function (l) { if (Qp && l && (typeof l == "object" || typeof l == "function")) { if (e) return ewe(e, l) } else if (Zp) { if (n) return rwe(n, l) } else if (r) return swe(r, l); return !1 }, set: function (l, s) { Qp && l && (typeof l == "object" || typeof l == "function") ? (e || (e = new Qp), Zbe(e, l, s)) : Zp ? (n || (n = new Zp), nwe(n, l, s)) : (r || (r = { key: {}, next: null }), lwe(r, l, s)) } }; return i } }); var ef = k((GPe, nG) => { "use strict"; var awe = String.prototype.replace, owe = /%20/g, qb = { RFC1738: "RFC1738", RFC3986: "RFC3986" }; nG.exports = { default: qb.RFC3986, formatters: { RFC1738: function (t) { return awe.call(t, owe, "+") }, RFC3986: function (t) { return String(t) } }, RFC1738: qb.RFC1738, RFC3986: qb.RFC3986 } }); var Jb = k((JPe, iG) => { "use strict"; var uwe = ef(), zb = Object.prototype.hasOwnProperty, du = Array.isArray, ga = function () { for (var t = [], e = 0; e < 256; ++e)t.push("%" + ((e < 16 ? "0" : "") + e.toString(16)).toUpperCase()); return t }(), cwe = function (e) { for (; e.length > 1;) { var n = e.pop(), r = n.obj[n.prop]; if (du(r)) { for (var i = [], l = 0; l < r.length; ++l)typeof r[l] < "u" && i.push(r[l]); n.obj[n.prop] = i } } }, rG = function (e, n) { for (var r = n && n.plainObjects ? Object.create(null) : {}, i = 0; i < e.length; ++i)typeof e[i] < "u" && (r[i] = e[i]); return r }, pwe = function t(e, n, r) { if (!n) return e; if (typeof n != "object") { if (du(e)) e.push(n); else if (e && typeof e == "object") (r && (r.plainObjects || r.allowPrototypes) || !zb.call(Object.prototype, n)) && (e[n] = !0); else return [e, n]; return e } if (!e || typeof e != "object") return [e].concat(n); var i = e; return du(e) && !du(n) && (i = rG(e, r)), du(e) && du(n) ? (n.forEach(function (l, s) { if (zb.call(e, s)) { var a = e[s]; a && typeof a == "object" && l && typeof l == "object" ? e[s] = t(a, l, r) : e.push(l) } else e[s] = l }), e) : Object.keys(n).reduce(function (l, s) { var a = n[s]; return zb.call(l, s) ? l[s] = t(l[s], a, r) : l[s] = a, l }, i) }, fwe = function (e, n) { return Object.keys(n).reduce(function (r, i) { return r[i] = n[i], r }, e) }, dwe = function (t, e, n) { var r = t.replace(/\+/g, " "); if (n === "iso-8859-1") return r.replace(/%[0-9a-f]{2}/gi, unescape); try { return decodeURIComponent(r) } catch { return r } }, Gb = 1024, hwe = function (e, n, r, i, l) { if (e.length === 0) return e; var s = e; if (typeof e == "symbol" ? s = Symbol.prototype.toString.call(e) : typeof e != "string" && (s = String(e)), r === "iso-8859-1") return escape(s).replace(/%u[0-9a-f]{4}/gi, function (d) { return "%26%23" + parseInt(d.slice(2), 16) + "%3B" }); for (var a = "", o = 0; o < s.length; o += Gb) { for (var u = s.length >= Gb ? s.slice(o, o + Gb) : s, c = [], f = 0; f < u.length; ++f) { var m = u.charCodeAt(f); if (m === 45 || m === 46 || m === 95 || m === 126 || m >= 48 && m <= 57 || m >= 65 && m <= 90 || m >= 97 && m <= 122 || l === uwe.RFC1738 && (m === 40 || m === 41)) { c[c.length] = u.charAt(f); continue } if (m < 128) { c[c.length] = ga[m]; continue } if (m < 2048) { c[c.length] = ga[192 | m >> 6] + ga[128 | m & 63]; continue } if (m < 55296 || m >= 57344) { c[c.length] = ga[224 | m >> 12] + ga[128 | m >> 6 & 63] + ga[128 | m & 63]; continue } f += 1, m = 65536 + ((m & 1023) << 10 | u.charCodeAt(f) & 1023), c[c.length] = ga[240 | m >> 18] + ga[128 | m >> 12 & 63] + ga[128 | m >> 6 & 63] + ga[128 | m & 63] } a += c.join("") } return a }, mwe = function (e) { for (var n = [{ obj: { o: e }, prop: "o" }], r = [], i = 0; i < n.length; ++i)for (var l = n[i], s = l.obj[l.prop], a = Object.keys(s), o = 0; o < a.length; ++o) { var u = a[o], c = s[u]; typeof c == "object" && c !== null && r.indexOf(c) === -1 && (n.push({ obj: s, prop: u }), r.push(c)) } return cwe(n), e }, ywe = function (e) { return Object.prototype.toString.call(e) === "[object RegExp]" }, gwe = function (e) { return !e || typeof e != "object" ? !1 : !!(e.constructor && e.constructor.isBuffer && e.constructor.isBuffer(e)) }, vwe = function (e, n) { return [].concat(e, n) }, _we = function (e, n) { if (du(e)) { for (var r = [], i = 0; i < e.length; i += 1)r.push(n(e[i])); return r } return n(e) }; iG.exports = { arrayToObject: rG, assign: fwe, combine: vwe, compact: mwe, decode: dwe, encode: hwe, isBuffer: gwe, isRegExp: ywe, maybeMap: _we, merge: pwe } }); var cG = k((KPe, uG) => { "use strict"; var sG = tG(), tf = Jb(), R5 = ef(), Ewe = Object.prototype.hasOwnProperty, aG = { brackets: function (e) { return e + "[]" }, comma: "comma", indices: function (e, n) { return e + "[" + n + "]" }, repeat: function (e) { return e } }, va = Array.isArray, bwe = Array.prototype.push, oG = function (t, e) { bwe.apply(t, va(e) ? e : [e]) }, wwe = Date.prototype.toISOString, lG = R5.default, ri = { addQueryPrefix: !1, allowDots: !1, allowEmptyArrays: !1, arrayFormat: "indices", charset: "utf-8", charsetSentinel: !1, delimiter: "&", encode: !0, encodeDotInKeys: !1, encoder: tf.encode, encodeValuesOnly: !1, format: lG, formatter: R5.formatters[lG], indices: !1, serializeDate: function (e) { return wwe.call(e) }, skipNulls: !1, strictNullHandling: !1 }, Swe = function (e) { return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || typeof e == "symbol" || typeof e == "bigint" }, Kb = {}, Twe = function t(e, n, r, i, l, s, a, o, u, c, f, m, d, y, _, S, w, E) { for (var g = e, v = E, x = 0, O = !1; (v = v.get(Kb)) !== void 0 && !O;) { var N = v.get(e); if (x += 1, typeof N < "u") { if (N === x) throw new RangeError("Cyclic object value"); O = !0 } typeof v.get(Kb) > "u" && (x = 0) } if (typeof c == "function" ? g = c(n, g) : g instanceof Date ? g = d(g) : r === "comma" && va(g) && (g = tf.maybeMap(g, function (G) { return G instanceof Date ? d(G) : G })), g === null) { if (s) return u && !S ? u(n, ri.encoder, w, "key", y) : n; g = "" } if (Swe(g) || tf.isBuffer(g)) { if (u) { var R = S ? n : u(n, ri.encoder, w, "key", y); return [_(R) + "=" + _(u(g, ri.encoder, w, "value", y))] } return [_(n) + "=" + _(String(g))] } var U = []; if (typeof g > "u") return U; var F; if (r === "comma" && va(g)) S && u && (g = tf.maybeMap(g, u)), F = [{ value: g.length > 0 ? g.join(",") || null : void 0 }]; else if (va(c)) F = c; else { var te = Object.keys(g); F = f ? te.sort(f) : te } var Q = o ? n.replace(/\./g, "%2E") : n, W = i && va(g) && g.length === 1 ? Q + "[]" : Q; if (l && va(g) && g.length === 0) return W + "[]"; for (var ce = 0; ce < F.length; ++ce) { var we = F[ce], se = typeof we == "object" && typeof we.value < "u" ? we.value : g[we]; if (!(a && se === null)) { var ee = m && o ? we.replace(/\./g, "%2E") : we, me = va(g) ? typeof r == "function" ? r(W, ee) : W : W + (m ? "." + ee : "[" + ee + "]"); E.set(e, x); var P = sG(); P.set(Kb, E), oG(U, t(se, me, r, i, l, s, a, o, r === "comma" && S && va(g) ? null : u, c, f, m, d, y, _, S, w, P)) } } return U }, xwe = function (e) { if (!e) return ri; if (typeof e.allowEmptyArrays < "u" && typeof e.allowEmptyArrays != "boolean") throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); if (typeof e.encodeDotInKeys < "u" && typeof e.encodeDotInKeys != "boolean") throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided"); if (e.encoder !== null && typeof e.encoder < "u" && typeof e.encoder != "function") throw new TypeError("Encoder has to be a function."); var n = e.charset || ri.charset; if (typeof e.charset < "u" && e.charset !== "utf-8" && e.charset !== "iso-8859-1") throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); var r = R5.default; if (typeof e.format < "u") { if (!Ewe.call(R5.formatters, e.format)) throw new TypeError("Unknown format option provided."); r = e.format } var i = R5.formatters[r], l = ri.filter; (typeof e.filter == "function" || va(e.filter)) && (l = e.filter); var s; if (e.arrayFormat in aG ? s = e.arrayFormat : "indices" in e ? s = e.indices ? "indices" : "repeat" : s = ri.arrayFormat, "commaRoundTrip" in e && typeof e.commaRoundTrip != "boolean") throw new TypeError("`commaRoundTrip` must be a boolean, or absent"); var a = typeof e.allowDots > "u" ? e.encodeDotInKeys === !0 ? !0 : ri.allowDots : !!e.allowDots; return { addQueryPrefix: typeof e.addQueryPrefix == "boolean" ? e.addQueryPrefix : ri.addQueryPrefix, allowDots: a, allowEmptyArrays: typeof e.allowEmptyArrays == "boolean" ? !!e.allowEmptyArrays : ri.allowEmptyArrays, arrayFormat: s, charset: n, charsetSentinel: typeof e.charsetSentinel == "boolean" ? e.charsetSentinel : ri.charsetSentinel, commaRoundTrip: e.commaRoundTrip, delimiter: typeof e.delimiter > "u" ? ri.delimiter : e.delimiter, encode: typeof e.encode == "boolean" ? e.encode : ri.encode, encodeDotInKeys: typeof e.encodeDotInKeys == "boolean" ? e.encodeDotInKeys : ri.encodeDotInKeys, encoder: typeof e.encoder == "function" ? e.encoder : ri.encoder, encodeValuesOnly: typeof e.encodeValuesOnly == "boolean" ? e.encodeValuesOnly : ri.encodeValuesOnly, filter: l, format: r, formatter: i, serializeDate: typeof e.serializeDate == "function" ? e.serializeDate : ri.serializeDate, skipNulls: typeof e.skipNulls == "boolean" ? e.skipNulls : ri.skipNulls, sort: typeof e.sort == "function" ? e.sort : null, strictNullHandling: typeof e.strictNullHandling == "boolean" ? e.strictNullHandling : ri.strictNullHandling } }; uG.exports = function (t, e) { var n = t, r = xwe(e), i, l; typeof r.filter == "function" ? (l = r.filter, n = l("", n)) : va(r.filter) && (l = r.filter, i = l); var s = []; if (typeof n != "object" || n === null) return ""; var a = aG[r.arrayFormat], o = a === "comma" && r.commaRoundTrip; i || (i = Object.keys(n)), r.sort && i.sort(r.sort); for (var u = sG(), c = 0; c < i.length; ++c) { var f = i[c]; r.skipNulls && n[f] === null || oG(s, Twe(n[f], f, a, o, r.allowEmptyArrays, r.strictNullHandling, r.skipNulls, r.encodeDotInKeys, r.encode ? r.encoder : null, r.filter, r.sort, r.allowDots, r.serializeDate, r.format, r.formatter, r.encodeValuesOnly, r.charset, u)) } var m = s.join(r.delimiter), d = r.addQueryPrefix === !0 ? "?" : ""; return r.charsetSentinel && (r.charset === "iso-8859-1" ? d += "utf8=%26%2310003%3B&" : d += "utf8=%E2%9C%93&"), m.length > 0 ? d + m : "" } }); var dG = k((XPe, fG) => { "use strict"; var O0 = Jb(), Xb = Object.prototype.hasOwnProperty, Awe = Array.isArray, Br = { allowDots: !1, allowEmptyArrays: !1, allowPrototypes: !1, allowSparse: !1, arrayLimit: 20, charset: "utf-8", charsetSentinel: !1, comma: !1, decodeDotInKeys: !1, decoder: O0.decode, delimiter: "&", depth: 5, duplicates: "combine", ignoreQueryPrefix: !1, interpretNumericEntities: !1, parameterLimit: 1e3, parseArrays: !0, plainObjects: !1, strictNullHandling: !1 }, Owe = function (t) { return t.replace(/&#(\d+);/g, function (e, n) { return String.fromCharCode(parseInt(n, 10)) }) }, pG = function (t, e) { return t && typeof t == "string" && e.comma && t.indexOf(",") > -1 ? t.split(",") : t }, Nwe = "utf8=%26%2310003%3B", Cwe = "utf8=%E2%9C%93", Rwe = function (e, n) { var r = { __proto__: null }, i = n.ignoreQueryPrefix ? e.replace(/^\?/, "") : e, l = n.parameterLimit === 1 / 0 ? void 0 : n.parameterLimit, s = i.split(n.delimiter, l), a = -1, o, u = n.charset; if (n.charsetSentinel) for (o = 0; o < s.length; ++o)s[o].indexOf("utf8=") === 0 && (s[o] === Cwe ? u = "utf-8" : s[o] === Nwe && (u = "iso-8859-1"), a = o, o = s.length); for (o = 0; o < s.length; ++o)if (o !== a) { var c = s[o], f = c.indexOf("]="), m = f === -1 ? c.indexOf("=") : f + 1, d, y; m === -1 ? (d = n.decoder(c, Br.decoder, u, "key"), y = n.strictNullHandling ? null : "") : (d = n.decoder(c.slice(0, m), Br.decoder, u, "key"), y = O0.maybeMap(pG(c.slice(m + 1), n), function (S) { return n.decoder(S, Br.decoder, u, "value") })), y && n.interpretNumericEntities && u === "iso-8859-1" && (y = Owe(y)), c.indexOf("[]=") > -1 && (y = Awe(y) ? [y] : y); var _ = Xb.call(r, d); _ && n.duplicates === "combine" ? r[d] = O0.combine(r[d], y) : (!_ || n.duplicates === "last") && (r[d] = y) } return r }, Iwe = function (t, e, n, r) { for (var i = r ? e : pG(e, n), l = t.length - 1; l >= 0; --l) { var s, a = t[l]; if (a === "[]" && n.parseArrays) s = n.allowEmptyArrays && i === "" ? [] : [].concat(i); else { s = n.plainObjects ? Object.create(null) : {}; var o = a.charAt(0) === "[" && a.charAt(a.length - 1) === "]" ? a.slice(1, -1) : a, u = n.decodeDotInKeys ? o.replace(/%2E/g, ".") : o, c = parseInt(u, 10); !n.parseArrays && u === "" ? s = { 0: i } : !isNaN(c) && a !== u && String(c) === u && c >= 0 && n.parseArrays && c <= n.arrayLimit ? (s = [], s[c] = i) : u !== "__proto__" && (s[u] = i) } i = s } return i }, kwe = function (e, n, r, i) { if (e) { var l = r.allowDots ? e.replace(/\.([^.[]+)/g, "[$1]") : e, s = /(\[[^[\]]*])/, a = /(\[[^[\]]*])/g, o = r.depth > 0 && s.exec(l), u = o ? l.slice(0, o.index) : l, c = []; if (u) { if (!r.plainObjects && Xb.call(Object.prototype, u) && !r.allowPrototypes) return; c.push(u) } for (var f = 0; r.depth > 0 && (o = a.exec(l)) !== null && f < r.depth;) { if (f += 1, !r.plainObjects && Xb.call(Object.prototype, o[1].slice(1, -1)) && !r.allowPrototypes) return; c.push(o[1]) } return o && c.push("[" + l.slice(o.index) + "]"), Iwe(c, n, r, i) } }, Dwe = function (e) { if (!e) return Br; if (typeof e.allowEmptyArrays < "u" && typeof e.allowEmptyArrays != "boolean") throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); if (typeof e.decodeDotInKeys < "u" && typeof e.decodeDotInKeys != "boolean") throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided"); if (e.decoder !== null && typeof e.decoder < "u" && typeof e.decoder != "function") throw new TypeError("Decoder has to be a function."); if (typeof e.charset < "u" && e.charset !== "utf-8" && e.charset !== "iso-8859-1") throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); var n = typeof e.charset > "u" ? Br.charset : e.charset, r = typeof e.duplicates > "u" ? Br.duplicates : e.duplicates; if (r !== "combine" && r !== "first" && r !== "last") throw new TypeError("The duplicates option must be either combine, first, or last"); var i = typeof e.allowDots > "u" ? e.decodeDotInKeys === !0 ? !0 : Br.allowDots : !!e.allowDots; return { allowDots: i, allowEmptyArrays: typeof e.allowEmptyArrays == "boolean" ? !!e.allowEmptyArrays : Br.allowEmptyArrays, allowPrototypes: typeof e.allowPrototypes == "boolean" ? e.allowPrototypes : Br.allowPrototypes, allowSparse: typeof e.allowSparse == "boolean" ? e.allowSparse : Br.allowSparse, arrayLimit: typeof e.arrayLimit == "number" ? e.arrayLimit : Br.arrayLimit, charset: n, charsetSentinel: typeof e.charsetSentinel == "boolean" ? e.charsetSentinel : Br.charsetSentinel, comma: typeof e.comma == "boolean" ? e.comma : Br.comma, decodeDotInKeys: typeof e.decodeDotInKeys == "boolean" ? e.decodeDotInKeys : Br.decodeDotInKeys, decoder: typeof e.decoder == "function" ? e.decoder : Br.decoder, delimiter: typeof e.delimiter == "string" || O0.isRegExp(e.delimiter) ? e.delimiter : Br.delimiter, depth: typeof e.depth == "number" || e.depth === !1 ? +e.depth : Br.depth, duplicates: r, ignoreQueryPrefix: e.ignoreQueryPrefix === !0, interpretNumericEntities: typeof e.interpretNumericEntities == "boolean" ? e.interpretNumericEntities : Br.interpretNumericEntities, parameterLimit: typeof e.parameterLimit == "number" ? e.parameterLimit : Br.parameterLimit, parseArrays: e.parseArrays !== !1, plainObjects: typeof e.plainObjects == "boolean" ? e.plainObjects : Br.plainObjects, strictNullHandling: typeof e.strictNullHandling == "boolean" ? e.strictNullHandling : Br.strictNullHandling } }; fG.exports = function (t, e) { var n = Dwe(e); if (t === "" || t === null || typeof t > "u") return n.plainObjects ? Object.create(null) : {}; for (var r = typeof t == "string" ? Rwe(t, n) : t, i = n.plainObjects ? Object.create(null) : {}, l = Object.keys(r), s = 0; s < l.length; ++s) { var a = l[s], o = kwe(a, r[a], n, typeof t == "string"); i = O0.merge(i, o, n) } return n.allowSparse === !0 ? i : O0.compact(i) } }); var mG = k((WPe, hG) => { "use strict"; var Pwe = cG(), Lwe = dG(), Fwe = ef(); hG.exports = { formats: Fwe, parse: Lwe, stringify: Pwe } }); var CG = k((nLe, NG) => { var OG = require("stream").Stream, gSe = require("util"); NG.exports = Is; function Is() { this.source = null, this.dataSize = 0, this.maxDataSize = 1024 * 1024, this.pauseStream = !0, this._maxDataSizeExceeded = !1, this._released = !1, this._bufferedEvents = [] } gSe.inherits(Is, OG); Is.create = function (t, e) { var n = new this; e = e || {}; for (var r in e) n[r] = e[r]; n.source = t; var i = t.emit; return t.emit = function () { return n._handleEmit(arguments), i.apply(t, arguments) }, t.on("error", function () { }), n.pauseStream && t.pause(), n }; Object.defineProperty(Is.prototype, "readable", { configurable: !0, enumerable: !0, get: function () { return this.source.readable } }); Is.prototype.setEncoding = function () { return this.source.setEncoding.apply(this.source, arguments) }; Is.prototype.resume = function () { this._released || this.release(), this.source.resume() }; Is.prototype.pause = function () { this.source.pause() }; Is.prototype.release = function () { this._released = !0, this._bufferedEvents.forEach(function (t) { this.emit.apply(this, t) }.bind(this)), this._bufferedEvents = [] }; Is.prototype.pipe = function () { var t = OG.prototype.pipe.apply(this, arguments); return this.resume(), t }; Is.prototype._handleEmit = function (t) { if (this._released) { this.emit.apply(this, t); return } t[0] === "data" && (this.dataSize += t[1].length, this._checkIfMaxDataSizeExceeded()), this._bufferedEvents.push(t) }; Is.prototype._checkIfMaxDataSizeExceeded = function () { if (!this._maxDataSizeExceeded && !(this.dataSize <= this.maxDataSize)) { this._maxDataSizeExceeded = !0; var t = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded."; this.emit("error", new Error(t)) } } }); var DG = k((rLe, kG) => { var vSe = require("util"), IG = require("stream").Stream, RG = CG(); kG.exports = Cr; function Cr() { this.writable = !1, this.readable = !0, this.dataSize = 0, this.maxDataSize = 2 * 1024 * 1024, this.pauseStreams = !0, this._released = !1, this._streams = [], this._currentStream = null, this._insideLoop = !1, this._pendingNext = !1 } vSe.inherits(Cr, IG); Cr.create = function (t) { var e = new this; t = t || {}; for (var n in t) e[n] = t[n]; return e }; Cr.isStreamLike = function (t) { return typeof t != "function" && typeof t != "string" && typeof t != "boolean" && typeof t != "number" && !Buffer.isBuffer(t) }; Cr.prototype.append = function (t) { var e = Cr.isStreamLike(t); if (e) { if (!(t instanceof RG)) { var n = RG.create(t, { maxDataSize: 1 / 0, pauseStream: this.pauseStreams }); t.on("data", this._checkDataSize.bind(this)), t = n } this._handleErrors(t), this.pauseStreams && t.pause() } return this._streams.push(t), this }; Cr.prototype.pipe = function (t, e) { return IG.prototype.pipe.call(this, t, e), this.resume(), t }; Cr.prototype._getNext = function () { if (this._currentStream = null, this._insideLoop) { this._pendingNext = !0; return } this._insideLoop = !0; try { do this._pendingNext = !1, this._realGetNext(); while (this._pendingNext) } finally { this._insideLoop = !1 } }; Cr.prototype._realGetNext = function () { var t = this._streams.shift(); if (typeof t > "u") { this.end(); return } if (typeof t != "function") { this._pipeNext(t); return } var e = t; e(function (n) { var r = Cr.isStreamLike(n); r && (n.on("data", this._checkDataSize.bind(this)), this._handleErrors(n)), this._pipeNext(n) }.bind(this)) }; Cr.prototype._pipeNext = function (t) { this._currentStream = t; var e = Cr.isStreamLike(t); if (e) { t.on("end", this._getNext.bind(this)), t.pipe(this, { end: !1 }); return } var n = t; this.write(n), this._getNext() }; Cr.prototype._handleErrors = function (t) { var e = this; t.on("error", function (n) { e._emitError(n) }) }; Cr.prototype.write = function (t) { this.emit("data", t) }; Cr.prototype.pause = function () { this.pauseStreams && (this.pauseStreams && this._currentStream && typeof this._currentStream.pause == "function" && this._currentStream.pause(), this.emit("pause")) }; Cr.prototype.resume = function () { this._released || (this._released = !0, this.writable = !0, this._getNext()), this.pauseStreams && this._currentStream && typeof this._currentStream.resume == "function" && this._currentStream.resume(), this.emit("resume") }; Cr.prototype.end = function () { this._reset(), this.emit("end") }; Cr.prototype.destroy = function () { this._reset(), this.emit("close") }; Cr.prototype._reset = function () { this.writable = !1, this._streams = [], this._currentStream = null }; Cr.prototype._checkDataSize = function () { if (this._updateDataSize(), !(this.dataSize <= this.maxDataSize)) { var t = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded."; this._emitError(new Error(t)) } }; Cr.prototype._updateDataSize = function () { this.dataSize = 0; var t = this; this._streams.forEach(function (e) { e.dataSize && (t.dataSize += e.dataSize) }), this._currentStream && this._currentStream.dataSize && (this.dataSize += this._currentStream.dataSize) }; Cr.prototype._emitError = function (t) { this._reset(), this.emit("error", t) } }); var PG = k((iLe, _Se) => { _Se.exports = { "application/1d-interleaved-parityfec": { source: "iana" }, "application/3gpdash-qoe-report+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/3gpp-ims+xml": { source: "iana", compressible: !0 }, "application/3gpphal+json": { source: "iana", compressible: !0 }, "application/3gpphalforms+json": { source: "iana", compressible: !0 }, "application/a2l": { source: "iana" }, "application/ace+cbor": { source: "iana" }, "application/activemessage": { source: "iana" }, "application/activity+json": { source: "iana", compressible: !0 }, "application/alto-costmap+json": { source: "iana", compressible: !0 }, "application/alto-costmapfilter+json": { source: "iana", compressible: !0 }, "application/alto-directory+json": { source: "iana", compressible: !0 }, "application/alto-endpointcost+json": { source: "iana", compressible: !0 }, "application/alto-endpointcostparams+json": { source: "iana", compressible: !0 }, "application/alto-endpointprop+json": { source: "iana", compressible: !0 }, "application/alto-endpointpropparams+json": { source: "iana", compressible: !0 }, "application/alto-error+json": { source: "iana", compressible: !0 }, "application/alto-networkmap+json": { source: "iana", compressible: !0 }, "application/alto-networkmapfilter+json": { source: "iana", compressible: !0 }, "application/alto-updatestreamcontrol+json": { source: "iana", compressible: !0 }, "application/alto-updatestreamparams+json": { source: "iana", compressible: !0 }, "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: !0, extensions: ["atom"] }, "application/atomcat+xml": { source: "iana", compressible: !0, extensions: ["atomcat"] }, "application/atomdeleted+xml": { source: "iana", compressible: !0, extensions: ["atomdeleted"] }, "application/atomicmail": { source: "iana" }, "application/atomsvc+xml": { source: "iana", compressible: !0, extensions: ["atomsvc"] }, "application/atsc-dwd+xml": { source: "iana", compressible: !0, extensions: ["dwd"] }, "application/atsc-dynamic-event-message": { source: "iana" }, "application/atsc-held+xml": { source: "iana", compressible: !0, extensions: ["held"] }, "application/atsc-rdt+json": { source: "iana", compressible: !0 }, "application/atsc-rsat+xml": { source: "iana", compressible: !0, extensions: ["rsat"] }, "application/atxml": { source: "iana" }, "application/auth-policy+xml": { source: "iana", compressible: !0 }, "application/bacnet-xdd+zip": { source: "iana", compressible: !1 }, "application/batch-smtp": { source: "iana" }, "application/bdoc": { compressible: !1, extensions: ["bdoc"] }, "application/beep+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/calendar+json": { source: "iana", compressible: !0 }, "application/calendar+xml": { source: "iana", compressible: !0, extensions: ["xcs"] }, "application/call-completion": { source: "iana" }, "application/cals-1840": { source: "iana" }, "application/captive+json": { source: "iana", compressible: !0 }, "application/cbor": { source: "iana" }, "application/cbor-seq": { source: "iana" }, "application/cccex": { source: "iana" }, "application/ccmp+xml": { source: "iana", compressible: !0 }, "application/ccxml+xml": { source: "iana", compressible: !0, extensions: ["ccxml"] }, "application/cdfx+xml": { source: "iana", compressible: !0, 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: !0 }, "application/cellml+xml": { source: "iana", compressible: !0 }, "application/cfw": { source: "iana" }, "application/city+json": { source: "iana", compressible: !0 }, "application/clr": { source: "iana" }, "application/clue+xml": { source: "iana", compressible: !0 }, "application/clue_info+xml": { source: "iana", compressible: !0 }, "application/cms": { source: "iana" }, "application/cnrp+xml": { source: "iana", compressible: !0 }, "application/coap-group+json": { source: "iana", compressible: !0 }, "application/coap-payload": { source: "iana" }, "application/commonground": { source: "iana" }, "application/conference-info+xml": { source: "iana", compressible: !0 }, "application/cose": { source: "iana" }, "application/cose-key": { source: "iana" }, "application/cose-key-set": { source: "iana" }, "application/cpl+xml": { source: "iana", compressible: !0, extensions: ["cpl"] }, "application/csrattrs": { source: "iana" }, "application/csta+xml": { source: "iana", compressible: !0 }, "application/cstadata+xml": { source: "iana", compressible: !0 }, "application/csvm+json": { source: "iana", compressible: !0 }, "application/cu-seeme": { source: "apache", extensions: ["cu"] }, "application/cwt": { source: "iana" }, "application/cybercash": { source: "iana" }, "application/dart": { compressible: !0 }, "application/dash+xml": { source: "iana", compressible: !0, extensions: ["mpd"] }, "application/dash-patch+xml": { source: "iana", compressible: !0, extensions: ["mpp"] }, "application/dashdelta": { source: "iana" }, "application/davmount+xml": { source: "iana", compressible: !0, extensions: ["davmount"] }, "application/dca-rft": { source: "iana" }, "application/dcd": { source: "iana" }, "application/dec-dx": { source: "iana" }, "application/dialog-info+xml": { source: "iana", compressible: !0 }, "application/dicom": { source: "iana" }, "application/dicom+json": { source: "iana", compressible: !0 }, "application/dicom+xml": { source: "iana", compressible: !0 }, "application/dii": { source: "iana" }, "application/dit": { source: "iana" }, "application/dns": { source: "iana" }, "application/dns+json": { source: "iana", compressible: !0 }, "application/dns-message": { source: "iana" }, "application/docbook+xml": { source: "apache", compressible: !0, extensions: ["dbk"] }, "application/dots+cbor": { source: "iana" }, "application/dskpp+xml": { source: "iana", compressible: !0 }, "application/dssc+der": { source: "iana", extensions: ["dssc"] }, "application/dssc+xml": { source: "iana", compressible: !0, extensions: ["xdssc"] }, "application/dvcs": { source: "iana" }, "application/ecmascript": { source: "iana", compressible: !0, extensions: ["es", "ecma"] }, "application/edi-consent": { source: "iana" }, "application/edi-x12": { source: "iana", compressible: !1 }, "application/edifact": { source: "iana", compressible: !1 }, "application/efi": { source: "iana" }, "application/elm+json": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/elm+xml": { source: "iana", compressible: !0 }, "application/emergencycalldata.cap+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/emergencycalldata.comment+xml": { source: "iana", compressible: !0 }, "application/emergencycalldata.control+xml": { source: "iana", compressible: !0 }, "application/emergencycalldata.deviceinfo+xml": { source: "iana", compressible: !0 }, "application/emergencycalldata.ecall.msd": { source: "iana" }, "application/emergencycalldata.providerinfo+xml": { source: "iana", compressible: !0 }, "application/emergencycalldata.serviceinfo+xml": { source: "iana", compressible: !0 }, "application/emergencycalldata.subscriberinfo+xml": { source: "iana", compressible: !0 }, "application/emergencycalldata.veds+xml": { source: "iana", compressible: !0 }, "application/emma+xml": { source: "iana", compressible: !0, extensions: ["emma"] }, "application/emotionml+xml": { source: "iana", compressible: !0, extensions: ["emotionml"] }, "application/encaprtp": { source: "iana" }, "application/epp+xml": { source: "iana", compressible: !0 }, "application/epub+zip": { source: "iana", compressible: !1, extensions: ["epub"] }, "application/eshop": { source: "iana" }, "application/exi": { source: "iana", extensions: ["exi"] }, "application/expect-ct-report+json": { source: "iana", compressible: !0 }, "application/express": { source: "iana", extensions: ["exp"] }, "application/fastinfoset": { source: "iana" }, "application/fastsoap": { source: "iana" }, "application/fdt+xml": { source: "iana", compressible: !0, extensions: ["fdt"] }, "application/fhir+json": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/fhir+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/fido.trusted-apps+json": { compressible: !0 }, "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: !1 }, "application/framework-attributes+xml": { source: "iana", compressible: !0 }, "application/geo+json": { source: "iana", compressible: !0, extensions: ["geojson"] }, "application/geo+json-seq": { source: "iana" }, "application/geopackage+sqlite3": { source: "iana" }, "application/geoxacml+xml": { source: "iana", compressible: !0 }, "application/gltf-buffer": { source: "iana" }, "application/gml+xml": { source: "iana", compressible: !0, extensions: ["gml"] }, "application/gpx+xml": { source: "apache", compressible: !0, extensions: ["gpx"] }, "application/gxf": { source: "apache", extensions: ["gxf"] }, "application/gzip": { source: "iana", compressible: !1, extensions: ["gz"] }, "application/h224": { source: "iana" }, "application/held+xml": { source: "iana", compressible: !0 }, "application/hjson": { extensions: ["hjson"] }, "application/http": { source: "iana" }, "application/hyperstudio": { source: "iana", extensions: ["stk"] }, "application/ibe-key-request+xml": { source: "iana", compressible: !0 }, "application/ibe-pkg-reply+xml": { source: "iana", compressible: !0 }, "application/ibe-pp-data": { source: "iana" }, "application/iges": { source: "iana" }, "application/im-iscomposing+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "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: !0, 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: !0, extensions: ["its"] }, "application/java-archive": { source: "apache", compressible: !1, extensions: ["jar", "war", "ear"] }, "application/java-serialized-object": { source: "apache", compressible: !1, extensions: ["ser"] }, "application/java-vm": { source: "apache", compressible: !1, extensions: ["class"] }, "application/javascript": { source: "iana", charset: "UTF-8", compressible: !0, extensions: ["js", "mjs"] }, "application/jf2feed+json": { source: "iana", compressible: !0 }, "application/jose": { source: "iana" }, "application/jose+json": { source: "iana", compressible: !0 }, "application/jrd+json": { source: "iana", compressible: !0 }, "application/jscalendar+json": { source: "iana", compressible: !0 }, "application/json": { source: "iana", charset: "UTF-8", compressible: !0, extensions: ["json", "map"] }, "application/json-patch+json": { source: "iana", compressible: !0 }, "application/json-seq": { source: "iana" }, "application/json5": { extensions: ["json5"] }, "application/jsonml+json": { source: "apache", compressible: !0, extensions: ["jsonml"] }, "application/jwk+json": { source: "iana", compressible: !0 }, "application/jwk-set+json": { source: "iana", compressible: !0 }, "application/jwt": { source: "iana" }, "application/kpml-request+xml": { source: "iana", compressible: !0 }, "application/kpml-response+xml": { source: "iana", compressible: !0 }, "application/ld+json": { source: "iana", compressible: !0, extensions: ["jsonld"] }, "application/lgr+xml": { source: "iana", compressible: !0, extensions: ["lgr"] }, "application/link-format": { source: "iana" }, "application/load-control+xml": { source: "iana", compressible: !0 }, "application/lost+xml": { source: "iana", compressible: !0, extensions: ["lostxml"] }, "application/lostsync+xml": { source: "iana", compressible: !0 }, "application/lpf+zip": { source: "iana", compressible: !1 }, "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: !0, extensions: ["mads"] }, "application/manifest+json": { source: "iana", charset: "UTF-8", compressible: !0, extensions: ["webmanifest"] }, "application/marc": { source: "iana", extensions: ["mrc"] }, "application/marcxml+xml": { source: "iana", compressible: !0, extensions: ["mrcx"] }, "application/mathematica": { source: "iana", extensions: ["ma", "nb", "mb"] }, "application/mathml+xml": { source: "iana", compressible: !0, extensions: ["mathml"] }, "application/mathml-content+xml": { source: "iana", compressible: !0 }, "application/mathml-presentation+xml": { source: "iana", compressible: !0 }, "application/mbms-associated-procedure-description+xml": { source: "iana", compressible: !0 }, "application/mbms-deregister+xml": { source: "iana", compressible: !0 }, "application/mbms-envelope+xml": { source: "iana", compressible: !0 }, "application/mbms-msk+xml": { source: "iana", compressible: !0 }, "application/mbms-msk-response+xml": { source: "iana", compressible: !0 }, "application/mbms-protection-description+xml": { source: "iana", compressible: !0 }, "application/mbms-reception-report+xml": { source: "iana", compressible: !0 }, "application/mbms-register+xml": { source: "iana", compressible: !0 }, "application/mbms-register-response+xml": { source: "iana", compressible: !0 }, "application/mbms-schedule+xml": { source: "iana", compressible: !0 }, "application/mbms-user-service-description+xml": { source: "iana", compressible: !0 }, "application/mbox": { source: "iana", extensions: ["mbox"] }, "application/media-policy-dataset+xml": { source: "iana", compressible: !0, extensions: ["mpf"] }, "application/media_control+xml": { source: "iana", compressible: !0 }, "application/mediaservercontrol+xml": { source: "iana", compressible: !0, extensions: ["mscml"] }, "application/merge-patch+json": { source: "iana", compressible: !0 }, "application/metalink+xml": { source: "apache", compressible: !0, extensions: ["metalink"] }, "application/metalink4+xml": { source: "iana", compressible: !0, extensions: ["meta4"] }, "application/mets+xml": { source: "iana", compressible: !0, 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: !0, extensions: ["maei"] }, "application/mmt-usd+xml": { source: "iana", compressible: !0, extensions: ["musd"] }, "application/mods+xml": { source: "iana", compressible: !0, 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: !0 }, "application/mrb-publish+xml": { source: "iana", compressible: !0 }, "application/msc-ivr+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/msc-mixer+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/msword": { source: "iana", compressible: !1, extensions: ["doc", "dot"] }, "application/mud+json": { source: "iana", compressible: !0 }, "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: !0 }, "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: !1, 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: !0 }, "application/odx": { source: "iana" }, "application/oebps-package+xml": { source: "iana", compressible: !0, extensions: ["opf"] }, "application/ogg": { source: "iana", compressible: !1, extensions: ["ogx"] }, "application/omdoc+xml": { source: "apache", compressible: !0, extensions: ["omdoc"] }, "application/onenote": { source: "apache", extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"] }, "application/opc-nodeset+xml": { source: "iana", compressible: !0 }, "application/oscore": { source: "iana" }, "application/oxps": { source: "iana", extensions: ["oxps"] }, "application/p21": { source: "iana" }, "application/p21+zip": { source: "iana", compressible: !1 }, "application/p2p-overlay+xml": { source: "iana", compressible: !0, extensions: ["relo"] }, "application/parityfec": { source: "iana" }, "application/passport": { source: "iana" }, "application/patch-ops-error+xml": { source: "iana", compressible: !0, extensions: ["xer"] }, "application/pdf": { source: "iana", compressible: !1, extensions: ["pdf"] }, "application/pdx": { source: "iana" }, "application/pem-certificate-chain": { source: "iana" }, "application/pgp-encrypted": { source: "iana", compressible: !1, 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: !0 }, "application/pidf-diff+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "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: !0, extensions: ["pls"] }, "application/poc-settings+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/postscript": { source: "iana", compressible: !0, extensions: ["ai", "eps", "ps"] }, "application/ppsp-tracker+json": { source: "iana", compressible: !0 }, "application/problem+json": { source: "iana", compressible: !0 }, "application/problem+xml": { source: "iana", compressible: !0 }, "application/provenance+xml": { source: "iana", compressible: !0, 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: !1 }, "application/prs.nprend": { source: "iana" }, "application/prs.plucker": { source: "iana" }, "application/prs.rdf-xml-crypt": { source: "iana" }, "application/prs.xsf+xml": { source: "iana", compressible: !0 }, "application/pskc+xml": { source: "iana", compressible: !0, extensions: ["pskcxml"] }, "application/pvd+json": { source: "iana", compressible: !0 }, "application/qsig": { source: "iana" }, "application/raml+yaml": { compressible: !0, extensions: ["raml"] }, "application/raptorfec": { source: "iana" }, "application/rdap+json": { source: "iana", compressible: !0 }, "application/rdf+xml": { source: "iana", compressible: !0, extensions: ["rdf", "owl"] }, "application/reginfo+xml": { source: "iana", compressible: !0, extensions: ["rif"] }, "application/relax-ng-compact-syntax": { source: "iana", extensions: ["rnc"] }, "application/remote-printing": { source: "iana" }, "application/reputon+json": { source: "iana", compressible: !0 }, "application/resource-lists+xml": { source: "iana", compressible: !0, extensions: ["rl"] }, "application/resource-lists-diff+xml": { source: "iana", compressible: !0, extensions: ["rld"] }, "application/rfc+xml": { source: "iana", compressible: !0 }, "application/riscos": { source: "iana" }, "application/rlmi+xml": { source: "iana", compressible: !0 }, "application/rls-services+xml": { source: "iana", compressible: !0, extensions: ["rs"] }, "application/route-apd+xml": { source: "iana", compressible: !0, extensions: ["rapd"] }, "application/route-s-tsid+xml": { source: "iana", compressible: !0, extensions: ["sls"] }, "application/route-usd+xml": { source: "iana", compressible: !0, 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: !0, extensions: ["rsd"] }, "application/rss+xml": { source: "apache", compressible: !0, extensions: ["rss"] }, "application/rtf": { source: "iana", compressible: !0, extensions: ["rtf"] }, "application/rtploopback": { source: "iana" }, "application/rtx": { source: "iana" }, "application/samlassertion+xml": { source: "iana", compressible: !0 }, "application/samlmetadata+xml": { source: "iana", compressible: !0 }, "application/sarif+json": { source: "iana", compressible: !0 }, "application/sarif-external-properties+json": { source: "iana", compressible: !0 }, "application/sbe": { source: "iana" }, "application/sbml+xml": { source: "iana", compressible: !0, extensions: ["sbml"] }, "application/scaip+xml": { source: "iana", compressible: !0 }, "application/scim+json": { source: "iana", compressible: !0 }, "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: !0 }, "application/senml+xml": { source: "iana", compressible: !0, extensions: ["senmlx"] }, "application/senml-etch+cbor": { source: "iana" }, "application/senml-etch+json": { source: "iana", compressible: !0 }, "application/senml-exi": { source: "iana" }, "application/sensml+cbor": { source: "iana" }, "application/sensml+json": { source: "iana", compressible: !0 }, "application/sensml+xml": { source: "iana", compressible: !0, extensions: ["sensmlx"] }, "application/sensml-exi": { source: "iana" }, "application/sep+xml": { source: "iana", compressible: !0 }, "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: !0, extensions: ["shf"] }, "application/sieve": { source: "iana", extensions: ["siv", "sieve"] }, "application/simple-filter+xml": { source: "iana", compressible: !0 }, "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: !0, extensions: ["smi", "smil"] }, "application/smpte336m": { source: "iana" }, "application/soap+fastinfoset": { source: "iana" }, "application/soap+xml": { source: "iana", compressible: !0 }, "application/sparql-query": { source: "iana", extensions: ["rq"] }, "application/sparql-results+xml": { source: "iana", compressible: !0, extensions: ["srx"] }, "application/spdx+json": { source: "iana", compressible: !0 }, "application/spirits-event+xml": { source: "iana", compressible: !0 }, "application/sql": { source: "iana" }, "application/srgs": { source: "iana", extensions: ["gram"] }, "application/srgs+xml": { source: "iana", compressible: !0, extensions: ["grxml"] }, "application/sru+xml": { source: "iana", compressible: !0, extensions: ["sru"] }, "application/ssdl+xml": { source: "apache", compressible: !0, extensions: ["ssdl"] }, "application/ssml+xml": { source: "iana", compressible: !0, extensions: ["ssml"] }, "application/stix+json": { source: "iana", compressible: !0 }, "application/swid+xml": { source: "iana", compressible: !0, 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: !0 }, "application/taxii+json": { source: "iana", compressible: !0 }, "application/td+json": { source: "iana", compressible: !0 }, "application/tei+xml": { source: "iana", compressible: !0, extensions: ["tei", "teicorpus"] }, "application/tetra_isi": { source: "iana" }, "application/thraud+xml": { source: "iana", compressible: !0, 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: !0 }, "application/tnauthlist": { source: "iana" }, "application/token-introspection+jwt": { source: "iana" }, "application/toml": { compressible: !0, extensions: ["toml"] }, "application/trickle-ice-sdpfrag": { source: "iana" }, "application/trig": { source: "iana", extensions: ["trig"] }, "application/ttml+xml": { source: "iana", compressible: !0, extensions: ["ttml"] }, "application/tve-trigger": { source: "iana" }, "application/tzif": { source: "iana" }, "application/tzif-leap": { source: "iana" }, "application/ubjson": { compressible: !1, extensions: ["ubj"] }, "application/ulpfec": { source: "iana" }, "application/urc-grpsheet+xml": { source: "iana", compressible: !0 }, "application/urc-ressheet+xml": { source: "iana", compressible: !0, extensions: ["rsheet"] }, "application/urc-targetdesc+xml": { source: "iana", compressible: !0, extensions: ["td"] }, "application/urc-uisocketdesc+xml": { source: "iana", compressible: !0 }, "application/vcard+json": { source: "iana", compressible: !0 }, "application/vcard+xml": { source: "iana", compressible: !0 }, "application/vemmi": { source: "iana" }, "application/vividence.scriptfile": { source: "apache" }, "application/vnd.1000minds.decision-model+xml": { source: "iana", compressible: !0, extensions: ["1km"] }, "application/vnd.3gpp-prose+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp-prose-pc3ch+xml": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.3gpp.bsf+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.gmop+xml": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.3gpp.mcdata-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcdata-payload": { source: "iana" }, "application/vnd.3gpp.mcdata-service-config+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcdata-signalling": { source: "iana" }, "application/vnd.3gpp.mcdata-ue-config+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcdata-user-profile+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-affiliation-command+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-floor-request+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-location-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-service-config+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-signed+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-ue-config+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-ue-init-config+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcptt-user-profile+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-affiliation-command+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-affiliation-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-location-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-service-config+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-transmission-request+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-ue-config+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mcvideo-user-profile+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.mid-call+xml": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.3gpp.srvcc-ext+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.srvcc-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.state-and-event-info+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp.ussd+xml": { source: "iana", compressible: !0 }, "application/vnd.3gpp2.bcmcsinfo+xml": { source: "iana", compressible: !0 }, "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: !1, 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: !0, 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: !0 }, "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: !0 }, "application/vnd.android.ota": { source: "iana" }, "application/vnd.android.package-archive": { source: "apache", compressible: !1, 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: !0 }, "application/vnd.aplextor.warrp+json": { source: "iana", compressible: !0 }, "application/vnd.apothekende.reservation+json": { source: "iana", compressible: !0 }, "application/vnd.apple.installer+xml": { source: "iana", compressible: !0, 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: !1, extensions: ["pkpass"] }, "application/vnd.arastra.swi": { source: "iana" }, "application/vnd.aristanetworks.swi": { source: "iana", extensions: ["swi"] }, "application/vnd.artisan+json": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.avistar+xml": { source: "iana", compressible: !0 }, "application/vnd.balsamiq.bmml+xml": { source: "iana", compressible: !0, 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: !0 }, "application/vnd.bekitzur-stech+json": { source: "iana", compressible: !0 }, "application/vnd.bint.med-content": { source: "iana" }, "application/vnd.biopax.rdf+xml": { source: "iana", compressible: !0 }, "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: !0 }, "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: !0 }, "application/vnd.cendio.thinlinc.clientconf": { source: "iana" }, "application/vnd.century-systems.tcp_stream": { source: "iana" }, "application/vnd.chemdraw+xml": { source: "iana", compressible: !0, 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: !0, 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: !0 }, "application/vnd.collection.doc+json": { source: "iana", compressible: !0 }, "application/vnd.collection.next+json": { source: "iana", compressible: !0 }, "application/vnd.comicbook+zip": { source: "iana", compressible: !1 }, "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: !0 }, "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: !0, extensions: ["wbs"] }, "application/vnd.cryptii.pipe+json": { source: "iana", compressible: !0 }, "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: !0 }, "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: !0 }, "application/vnd.cybank": { source: "iana" }, "application/vnd.cyclonedx+json": { source: "iana", compressible: !0 }, "application/vnd.cyclonedx+xml": { source: "iana", compressible: !0 }, "application/vnd.d2l.coursepackage1p0+zip": { source: "iana", compressible: !1 }, "application/vnd.d3m-dataset": { source: "iana" }, "application/vnd.d3m-problem": { source: "iana" }, "application/vnd.dart": { source: "iana", compressible: !0, extensions: ["dart"] }, "application/vnd.data-vision.rdz": { source: "iana", extensions: ["rdz"] }, "application/vnd.datapackage+json": { source: "iana", compressible: !0 }, "application/vnd.dataresource+json": { source: "iana", compressible: !0 }, "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: !0, 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: !0 }, "application/vnd.dna": { source: "iana", extensions: ["dna"] }, "application/vnd.document+json": { source: "iana", compressible: !0 }, "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: !0 }, "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: !0 }, "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: !0 }, "application/vnd.dvb.notif-container+xml": { source: "iana", compressible: !0 }, "application/vnd.dvb.notif-generic+xml": { source: "iana", compressible: !0 }, "application/vnd.dvb.notif-ia-msglist+xml": { source: "iana", compressible: !0 }, "application/vnd.dvb.notif-ia-registration-request+xml": { source: "iana", compressible: !0 }, "application/vnd.dvb.notif-ia-registration-response+xml": { source: "iana", compressible: !0 }, "application/vnd.dvb.notif-init+xml": { source: "iana", compressible: !0 }, "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: !0 }, "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: !0 }, "application/vnd.enliven": { source: "iana", extensions: ["nml"] }, "application/vnd.enphase.envoy": { source: "iana" }, "application/vnd.eprints.data+xml": { source: "iana", compressible: !0 }, "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: !1 }, "application/vnd.eszigno3+xml": { source: "iana", compressible: !0, extensions: ["es3", "et3"] }, "application/vnd.etsi.aoc+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.asic-e+zip": { source: "iana", compressible: !1 }, "application/vnd.etsi.asic-s+zip": { source: "iana", compressible: !1 }, "application/vnd.etsi.cug+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvcommand+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvdiscovery+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvprofile+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvsad-bc+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvsad-cod+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvsad-npvr+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvservice+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvsync+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.iptvueprofile+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.mcid+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.mheg5": { source: "iana" }, "application/vnd.etsi.overload-control-policy-dataset+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.pstn+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.sci+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.simservs+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.timestamp-token": { source: "iana" }, "application/vnd.etsi.tsl+xml": { source: "iana", compressible: !0 }, "application/vnd.etsi.tsl.der": { source: "iana" }, "application/vnd.eu.kasparian.car+json": { source: "iana", compressible: !0 }, "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: !1 }, "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: !1 }, "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: !1 }, "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: !0 }, "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: !0 }, "application/vnd.fuzzysheet": { source: "iana", extensions: ["fzs"] }, "application/vnd.genomatix.tuxedo": { source: "iana", extensions: ["txd"] }, "application/vnd.gentics.grd+json": { source: "iana", compressible: !0 }, "application/vnd.geo+json": { source: "iana", compressible: !0 }, "application/vnd.geocube+xml": { source: "iana", compressible: !0 }, "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: !1, extensions: ["gdoc"] }, "application/vnd.google-apps.presentation": { compressible: !1, extensions: ["gslides"] }, "application/vnd.google-apps.spreadsheet": { compressible: !1, extensions: ["gsheet"] }, "application/vnd.google-earth.kml+xml": { source: "iana", compressible: !0, extensions: ["kml"] }, "application/vnd.google-earth.kmz": { source: "iana", compressible: !1, extensions: ["kmz"] }, "application/vnd.gov.sk.e-form+xml": { source: "iana", compressible: !0 }, "application/vnd.gov.sk.e-form+zip": { source: "iana", compressible: !1 }, "application/vnd.gov.sk.xmldatacontainer+xml": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.hal+xml": { source: "iana", compressible: !0, extensions: ["hal"] }, "application/vnd.handheld-entertainment+xml": { source: "iana", compressible: !0, extensions: ["zmm"] }, "application/vnd.hbci": { source: "iana", extensions: ["hbci"] }, "application/vnd.hc+json": { source: "iana", compressible: !0 }, "application/vnd.hcl-bireports": { source: "iana" }, "application/vnd.hdt": { source: "iana" }, "application/vnd.heroku+json": { source: "iana", compressible: !0 }, "application/vnd.hhe.lesson-player": { source: "iana", extensions: ["les"] }, "application/vnd.hl7cda+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/vnd.hl7v2+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "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: !0 }, "application/vnd.hyper-item+json": { source: "iana", compressible: !0 }, "application/vnd.hyperdrive+json": { source: "iana", compressible: !0 }, "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: !1 }, "application/vnd.imagemeter.image+zip": { source: "iana", compressible: !1 }, "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: !0 }, "application/vnd.ims.lti.v2.toolconsumerprofile+json": { source: "iana", compressible: !0 }, "application/vnd.ims.lti.v2.toolproxy+json": { source: "iana", compressible: !0 }, "application/vnd.ims.lti.v2.toolproxy.id+json": { source: "iana", compressible: !0 }, "application/vnd.ims.lti.v2.toolsettings+json": { source: "iana", compressible: !0 }, "application/vnd.ims.lti.v2.toolsettings.simple+json": { source: "iana", compressible: !0 }, "application/vnd.informedcontrol.rms+xml": { source: "iana", compressible: !0 }, "application/vnd.informix-visionary": { source: "iana" }, "application/vnd.infotech.project": { source: "iana" }, "application/vnd.infotech.project+xml": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.iptc.g2.conceptitem+xml": { source: "iana", compressible: !0 }, "application/vnd.iptc.g2.knowledgeitem+xml": { source: "iana", compressible: !0 }, "application/vnd.iptc.g2.newsitem+xml": { source: "iana", compressible: !0 }, "application/vnd.iptc.g2.newsmessage+xml": { source: "iana", compressible: !0 }, "application/vnd.iptc.g2.packageitem+xml": { source: "iana", compressible: !0 }, "application/vnd.iptc.g2.planningitem+xml": { source: "iana", compressible: !0 }, "application/vnd.ipunplugged.rcprofile": { source: "iana", extensions: ["rcprofile"] }, "application/vnd.irepository.package+xml": { source: "iana", compressible: !0, 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: !1 }, "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: !0 }, "application/vnd.las.las+xml": { source: "iana", compressible: !0, extensions: ["lasxml"] }, "application/vnd.laszip": { source: "iana" }, "application/vnd.leap+json": { source: "iana", compressible: !0 }, "application/vnd.liberty-request+xml": { source: "iana", compressible: !0 }, "application/vnd.llamagraphics.life-balance.desktop": { source: "iana", extensions: ["lbd"] }, "application/vnd.llamagraphics.life-balance.exchange+xml": { source: "iana", compressible: !0, extensions: ["lbe"] }, "application/vnd.logipipe.circuit+zip": { source: "iana", compressible: !1 }, "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: !0 }, "application/vnd.marlin.drm.conftoken+xml": { source: "iana", compressible: !0 }, "application/vnd.marlin.drm.license+xml": { source: "iana", compressible: !0 }, "application/vnd.marlin.drm.mdcf": { source: "iana" }, "application/vnd.mason+json": { source: "iana", compressible: !0 }, "application/vnd.maxar.archive.3tz+zip": { source: "iana", compressible: !1 }, "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: !0 }, "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: !0 }, "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: !0, 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: !1, 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: !0, 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: !0 }, "application/vnd.ms-officetheme": { source: "iana", extensions: ["thmx"] }, "application/vnd.ms-opentype": { source: "apache", compressible: !0 }, "application/vnd.ms-outlook": { compressible: !1, 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: !0 }, "application/vnd.ms-powerpoint": { source: "iana", compressible: !1, 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: !0 }, "application/vnd.ms-printing.printticket+xml": { source: "apache", compressible: !0 }, "application/vnd.ms-printschematicket+xml": { source: "iana", compressible: !0 }, "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: !1, 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: !0 }, "application/vnd.ncd.control": { source: "iana" }, "application/vnd.ncd.reference": { source: "iana" }, "application/vnd.nearst.inv+json": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.nokia.iptv.config+xml": { source: "iana", compressible: !0 }, "application/vnd.nokia.isds-radio-presets": { source: "iana" }, "application/vnd.nokia.landmark+wbxml": { source: "iana" }, "application/vnd.nokia.landmark+xml": { source: "iana", compressible: !0 }, "application/vnd.nokia.landmarkcollection+xml": { source: "iana", compressible: !0 }, "application/vnd.nokia.n-gage.ac+xml": { source: "iana", compressible: !0, 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: !0 }, "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: !1, 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: !1, extensions: ["odp"] }, "application/vnd.oasis.opendocument.presentation-template": { source: "iana", extensions: ["otp"] }, "application/vnd.oasis.opendocument.spreadsheet": { source: "iana", compressible: !1, extensions: ["ods"] }, "application/vnd.oasis.opendocument.spreadsheet-template": { source: "iana", extensions: ["ots"] }, "application/vnd.oasis.opendocument.text": { source: "iana", compressible: !1, 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: !0 }, "application/vnd.oftn.l10n+json": { source: "iana", compressible: !0 }, "application/vnd.oipf.contentaccessdownload+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.contentaccessstreaming+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.cspg-hexbinary": { source: "iana" }, "application/vnd.oipf.dae.svg+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.dae.xhtml+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.mippvcontrolmessage+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.pae.gem": { source: "iana" }, "application/vnd.oipf.spdiscovery+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.spdlist+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.ueprofile+xml": { source: "iana", compressible: !0 }, "application/vnd.oipf.userprofile+xml": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.oma.bcast.drm-trigger+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.bcast.imd+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.bcast.ltkm": { source: "iana" }, "application/vnd.oma.bcast.notification+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.bcast.provisioningtrigger": { source: "iana" }, "application/vnd.oma.bcast.sgboot": { source: "iana" }, "application/vnd.oma.bcast.sgdd+xml": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.oma.bcast.sprov+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.bcast.stkm": { source: "iana" }, "application/vnd.oma.cab-address-book+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.cab-feature-handler+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.cab-pcc+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.cab-subs-invite+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.cab-user-prefs+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.dcd": { source: "iana" }, "application/vnd.oma.dcdc": { source: "iana" }, "application/vnd.oma.dd2+xml": { source: "iana", compressible: !0, extensions: ["dd2"] }, "application/vnd.oma.drm.risd+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.group-usage-list+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.lwm2m+cbor": { source: "iana" }, "application/vnd.oma.lwm2m+json": { source: "iana", compressible: !0 }, "application/vnd.oma.lwm2m+tlv": { source: "iana" }, "application/vnd.oma.pal+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.poc.detailed-progress-report+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.poc.final-report+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.poc.groups+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.poc.invocation-descriptor+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.poc.optimized-progress-report+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.push": { source: "iana" }, "application/vnd.oma.scidm.messages+xml": { source: "iana", compressible: !0 }, "application/vnd.oma.xcap-directory+xml": { source: "iana", compressible: !0 }, "application/vnd.omads-email+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/vnd.omads-file+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/vnd.omads-folder+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "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: !0, 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: !0, extensions: ["osm"] }, "application/vnd.opentimestamps.ots": { source: "iana" }, "application/vnd.openxmlformats-officedocument.custom-properties+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.drawing+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.extended-properties+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.presentation": { source: "iana", compressible: !1, extensions: ["pptx"] }, "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.slide": { source: "iana", extensions: ["sldx"] }, "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { source: "iana", extensions: ["ppsx"] }, "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.template": { source: "iana", extensions: ["potx"] }, "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { source: "iana", compressible: !1, extensions: ["xlsx"] }, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { source: "iana", extensions: ["xltx"] }, "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.theme+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.themeoverride+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.vmldrawing": { source: "iana" }, "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { source: "iana", compressible: !1, extensions: ["docx"] }, "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { source: "iana", extensions: ["dotx"] }, "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-package.core-properties+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { source: "iana", compressible: !0 }, "application/vnd.openxmlformats-package.relationships+xml": { source: "iana", compressible: !0 }, "application/vnd.oracle.resource+json": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.oxli.countgraph": { source: "iana" }, "application/vnd.pagerduty+json": { source: "iana", compressible: !0 }, "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: !0 }, "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: !0 }, "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: !0 }, "application/vnd.radisys.msml+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-audit+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-audit-conf+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-audit-conn+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-audit-dialog+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-audit-stream+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-conf+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-dialog+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-dialog-base+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-dialog-fax-detect+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-dialog-group+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-dialog-speech+xml": { source: "iana", compressible: !0 }, "application/vnd.radisys.msml-dialog-transform+xml": { source: "iana", compressible: !0 }, "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: !0, extensions: ["musicxml"] }, "application/vnd.renlearn.rlprint": { source: "iana" }, "application/vnd.resilient.logic": { source: "iana" }, "application/vnd.restful+json": { source: "iana", compressible: !0 }, "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: !0, 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: !0 }, "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: !0 }, "application/vnd.shopkick+json": { source: "iana", compressible: !0 }, "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: !0 }, "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: !0, extensions: ["fo"] }, "application/vnd.software602.filler.form-xml-zip": { source: "iana" }, "application/vnd.solent.sdkm+xml": { source: "iana", compressible: !0, 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: !0, 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: !0 }, "application/vnd.syft+json": { source: "iana", compressible: !0 }, "application/vnd.symbian.install": { source: "apache", extensions: ["sis", "sisx"] }, "application/vnd.syncml+xml": { source: "iana", charset: "UTF-8", compressible: !0, 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: !0, 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: !0, extensions: ["ddf"] }, "application/vnd.syncml.dmtnds+wbxml": { source: "iana" }, "application/vnd.syncml.dmtnds+xml": { source: "iana", charset: "UTF-8", compressible: !0 }, "application/vnd.syncml.ds.notification": { source: "iana" }, "application/vnd.tableschema+json": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.tmd.mediaflex.api+xml": { source: "iana", compressible: !0 }, "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: !0, 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: !0 }, "application/vnd.verimatrix.vcas": { source: "iana" }, "application/vnd.veritone.aion+json": { source: "iana", compressible: !0 }, "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: !0 }, "application/vnd.wv.ssp+xml": { source: "iana", compressible: !0 }, "application/vnd.xacml+json": { source: "iana", compressible: !0 }, "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: !0 }, "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: !0, 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: !0, extensions: ["zaz"] }, "application/voicexml+xml": { source: "iana", compressible: !0, extensions: ["vxml"] }, "application/voucher-cms+json": { source: "iana", compressible: !0 }, "application/vq-rtcpxr": { source: "iana" }, "application/wasm": { source: "iana", compressible: !0, extensions: ["wasm"] }, "application/watcherinfo+xml": { source: "iana", compressible: !0, extensions: ["wif"] }, "application/webpush-options+json": { source: "iana", compressible: !0 }, "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: !0, extensions: ["wsdl"] }, "application/wspolicy+xml": { source: "iana", compressible: !0, extensions: ["wspolicy"] }, "application/x-7z-compressed": { source: "apache", compressible: !1, 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: !1, 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: !1, extensions: ["bdoc"] }, "application/x-bittorrent": { source: "apache", extensions: ["torrent"] }, "application/x-blorb": { source: "apache", extensions: ["blb", "blorb"] }, "application/x-bzip": { source: "apache", compressible: !1, extensions: ["bz"] }, "application/x-bzip2": { source: "apache", compressible: !1, 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: !1 }, "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: !0, extensions: ["ncx"] }, "application/x-dtbook+xml": { source: "apache", compressible: !0, extensions: ["dtb"] }, "application/x-dtbresource+xml": { source: "apache", compressible: !0, extensions: ["res"] }, "application/x-dvi": { source: "apache", compressible: !1, 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: !0, 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: !1, extensions: ["jnlp"] }, "application/x-javascript": { compressible: !0 }, "application/x-keepass2": { extensions: ["kdbx"] }, "application/x-latex": { source: "apache", compressible: !1, 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: !1 }, "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: !0, 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: !1, 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: !1, 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: !0, extensions: ["sh"] }, "application/x-shar": { source: "apache", extensions: ["shar"] }, "application/x-shockwave-flash": { source: "apache", compressible: !1, extensions: ["swf"] }, "application/x-silverlight-app": { source: "apache", extensions: ["xap"] }, "application/x-sql": { source: "apache", extensions: ["sql"] }, "application/x-stuffit": { source: "apache", compressible: !1, 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: !0, 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: !0, extensions: ["hdd"] }, "application/x-virtualbox-ova": { compressible: !0, extensions: ["ova"] }, "application/x-virtualbox-ovf": { compressible: !0, extensions: ["ovf"] }, "application/x-virtualbox-vbox": { compressible: !0, extensions: ["vbox"] }, "application/x-virtualbox-vbox-extpack": { compressible: !1, extensions: ["vbox-extpack"] }, "application/x-virtualbox-vdi": { compressible: !0, extensions: ["vdi"] }, "application/x-virtualbox-vhd": { compressible: !0, extensions: ["vhd"] }, "application/x-virtualbox-vmdk": { compressible: !0, extensions: ["vmdk"] }, "application/x-wais-source": { source: "apache", extensions: ["src"] }, "application/x-web-app-manifest+json": { compressible: !0, extensions: ["webapp"] }, "application/x-www-form-urlencoded": { source: "iana", compressible: !0 }, "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: !0, extensions: ["xlf"] }, "application/x-xpinstall": { source: "apache", compressible: !1, 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: !0 }, "application/xaml+xml": { source: "apache", compressible: !0, extensions: ["xaml"] }, "application/xcap-att+xml": { source: "iana", compressible: !0, extensions: ["xav"] }, "application/xcap-caps+xml": { source: "iana", compressible: !0, extensions: ["xca"] }, "application/xcap-diff+xml": { source: "iana", compressible: !0, extensions: ["xdf"] }, "application/xcap-el+xml": { source: "iana", compressible: !0, extensions: ["xel"] }, "application/xcap-error+xml": { source: "iana", compressible: !0 }, "application/xcap-ns+xml": { source: "iana", compressible: !0, extensions: ["xns"] }, "application/xcon-conference-info+xml": { source: "iana", compressible: !0 }, "application/xcon-conference-info-diff+xml": { source: "iana", compressible: !0 }, "application/xenc+xml": { source: "iana", compressible: !0, extensions: ["xenc"] }, "application/xhtml+xml": { source: "iana", compressible: !0, extensions: ["xhtml", "xht"] }, "application/xhtml-voice+xml": { source: "apache", compressible: !0 }, "application/xliff+xml": { source: "iana", compressible: !0, extensions: ["xlf"] }, "application/xml": { source: "iana", compressible: !0, extensions: ["xml", "xsl", "xsd", "rng"] }, "application/xml-dtd": { source: "iana", compressible: !0, extensions: ["dtd"] }, "application/xml-external-parsed-entity": { source: "iana" }, "application/xml-patch+xml": { source: "iana", compressible: !0 }, "application/xmpp+xml": { source: "iana", compressible: !0 }, "application/xop+xml": { source: "iana", compressible: !0, extensions: ["xop"] }, "application/xproc+xml": { source: "apache", compressible: !0, extensions: ["xpl"] }, "application/xslt+xml": { source: "iana", compressible: !0, extensions: ["xsl", "xslt"] }, "application/xspf+xml": { source: "apache", compressible: !0, extensions: ["xspf"] }, "application/xv+xml": { source: "iana", compressible: !0, extensions: ["mxml", "xhvml", "xvml", "xvm"] }, "application/yang": { source: "iana", extensions: ["yang"] }, "application/yang-data+json": { source: "iana", compressible: !0 }, "application/yang-data+xml": { source: "iana", compressible: !0 }, "application/yang-patch+json": { source: "iana", compressible: !0 }, "application/yang-patch+xml": { source: "iana", compressible: !0 }, "application/yin+xml": { source: "iana", compressible: !0, extensions: ["yin"] }, "application/zip": { source: "iana", compressible: !1, 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: !1, 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: !1, 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: !1 }, "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: !1, extensions: ["mp3"] }, "audio/mp4": { source: "iana", compressible: !1, extensions: ["m4a", "mp4a"] }, "audio/mp4a-latm": { source: "iana" }, "audio/mpa": { source: "iana" }, "audio/mpa-robust": { source: "iana" }, "audio/mpeg": { source: "iana", compressible: !1, extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] }, "audio/mpeg4-generic": { source: "iana" }, "audio/musepack": { source: "apache" }, "audio/ogg": { source: "iana", compressible: !1, 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: !1 }, "audio/vnd.sealedmedia.softseal.mpeg": { source: "iana" }, "audio/vnd.vmx.cvsd": { source: "iana" }, "audio/vnd.wave": { compressible: !1 }, "audio/vorbis": { source: "iana", compressible: !1 }, "audio/vorbis-config": { source: "iana" }, "audio/wav": { compressible: !1, extensions: ["wav"] }, "audio/wave": { compressible: !1, extensions: ["wav"] }, "audio/webm": { source: "apache", compressible: !1, extensions: ["weba"] }, "audio/x-aac": { source: "apache", compressible: !1, extensions: ["aac"] }, "audio/x-aiff": { source: "apache", extensions: ["aif", "aiff", "aifc"] }, "audio/x-caf": { source: "apache", compressible: !1, 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: !0, extensions: ["otf"] }, "font/sfnt": { source: "iana" }, "font/ttf": { source: "iana", compressible: !0, extensions: ["ttf"] }, "font/woff": { source: "iana", extensions: ["woff"] }, "font/woff2": { source: "iana", extensions: ["woff2"] }, "image/aces": { source: "iana", extensions: ["exr"] }, "image/apng": { compressible: !1, extensions: ["apng"] }, "image/avci": { source: "iana", extensions: ["avci"] }, "image/avcs": { source: "iana", extensions: ["avcs"] }, "image/avif": { source: "iana", compressible: !1, extensions: ["avif"] }, "image/bmp": { source: "iana", compressible: !0, 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: !1, 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: !1, extensions: ["jp2", "jpg2"] }, "image/jpeg": { source: "iana", compressible: !1, extensions: ["jpeg", "jpg", "jpe"] }, "image/jph": { source: "iana", extensions: ["jph"] }, "image/jphc": { source: "iana", extensions: ["jhc"] }, "image/jpm": { source: "iana", compressible: !1, extensions: ["jpm"] }, "image/jpx": { source: "iana", compressible: !1, 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: !1 }, "image/png": { source: "iana", compressible: !1, 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: !0, extensions: ["svg", "svgz"] }, "image/t38": { source: "iana", extensions: ["t38"] }, "image/tiff": { source: "iana", compressible: !1, extensions: ["tif", "tiff"] }, "image/tiff-fx": { source: "iana", extensions: ["tfx"] }, "image/vnd.adobe.photoshop": { source: "iana", compressible: !0, 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: !0, extensions: ["ico"] }, "image/vnd.mix": { source: "iana" }, "image/vnd.mozilla.apng": { source: "iana" }, "image/vnd.ms-dds": { compressible: !0, 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: !0, extensions: ["ico"] }, "image/x-jng": { source: "nginx", extensions: ["jng"] }, "image/x-mrsid-image": { source: "apache", extensions: ["sid"] }, "image/x-ms-bmp": { source: "nginx", compressible: !0, 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: !1 }, "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: !1 }, "message/imdn+xml": { source: "iana", compressible: !0 }, "message/news": { source: "iana" }, "message/partial": { source: "iana", compressible: !1 }, "message/rfc822": { source: "iana", compressible: !0, 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: !0, extensions: ["gltf"] }, "model/gltf-binary": { source: "iana", compressible: !0, extensions: ["glb"] }, "model/iges": { source: "iana", compressible: !1, extensions: ["igs", "iges"] }, "model/mesh": { source: "iana", compressible: !1, 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: !0, extensions: ["stpx"] }, "model/step+zip": { source: "iana", compressible: !1, extensions: ["stpz"] }, "model/step-xml+zip": { source: "iana", compressible: !1, extensions: ["stpxz"] }, "model/stl": { source: "iana", extensions: ["stl"] }, "model/vnd.collada+xml": { source: "iana", compressible: !0, 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: !0 }, "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: !1, extensions: ["usdz"] }, "model/vnd.valve.source.compiled-map": { source: "iana", extensions: ["bsp"] }, "model/vnd.vtu": { source: "iana", extensions: ["vtu"] }, "model/vrml": { source: "iana", compressible: !1, extensions: ["wrl", "vrml"] }, "model/x3d+binary": { source: "apache", compressible: !1, extensions: ["x3db", "x3dbz"] }, "model/x3d+fastinfoset": { source: "iana", extensions: ["x3db"] }, "model/x3d+vrml": { source: "apache", compressible: !1, extensions: ["x3dv", "x3dvz"] }, "model/x3d+xml": { source: "iana", compressible: !0, extensions: ["x3d", "x3dz"] }, "model/x3d-vrml": { source: "iana", extensions: ["x3dv"] }, "multipart/alternative": { source: "iana", compressible: !1 }, "multipart/appledouble": { source: "iana" }, "multipart/byteranges": { source: "iana" }, "multipart/digest": { source: "iana" }, "multipart/encrypted": { source: "iana", compressible: !1 }, "multipart/form-data": { source: "iana", compressible: !1 }, "multipart/header-set": { source: "iana" }, "multipart/mixed": { source: "iana" }, "multipart/multilingual": { source: "iana" }, "multipart/parallel": { source: "iana" }, "multipart/related": { source: "iana", compressible: !1 }, "multipart/report": { source: "iana" }, "multipart/signed": { source: "iana", compressible: !1 }, "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: !0, extensions: ["appcache", "manifest"] }, "text/calendar": { source: "iana", extensions: ["ics", "ifb"] }, "text/calender": { compressible: !0 }, "text/cmd": { compressible: !0 }, "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: !0, extensions: ["css"] }, "text/csv": { source: "iana", compressible: !0, 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: !0, extensions: ["html", "htm", "shtml"] }, "text/jade": { extensions: ["jade"] }, "text/javascript": { source: "iana", compressible: !0 }, "text/jcr-cnd": { source: "iana" }, "text/jsx": { compressible: !0, extensions: ["jsx"] }, "text/less": { compressible: !0, extensions: ["less"] }, "text/markdown": { source: "iana", compressible: !0, extensions: ["markdown", "md"] }, "text/mathml": { source: "nginx", extensions: ["mml"] }, "text/mdx": { compressible: !0, extensions: ["mdx"] }, "text/mizar": { source: "iana" }, "text/n3": { source: "iana", charset: "UTF-8", compressible: !0, extensions: ["n3"] }, "text/parameters": { source: "iana", charset: "UTF-8" }, "text/parityfec": { source: "iana" }, "text/plain": { source: "iana", compressible: !0, 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: !0, extensions: ["rtx"] }, "text/rtf": { source: "iana", compressible: !0, 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: !0, 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: !0, extensions: ["uri", "uris", "urls"] }, "text/vcard": { source: "iana", compressible: !0, 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: !0, 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: !0 }, "text/x-handlebars-template": { extensions: ["hbs"] }, "text/x-java-source": { source: "apache", extensions: ["java"] }, "text/x-jquery-tmpl": { compressible: !0 }, "text/x-lua": { extensions: ["lua"] }, "text/x-markdown": { compressible: !0, extensions: ["mkd"] }, "text/x-nfo": { source: "apache", extensions: ["nfo"] }, "text/x-opml": { source: "apache", extensions: ["opml"] }, "text/x-org": { compressible: !0, extensions: ["org"] }, "text/x-pascal": { source: "apache", extensions: ["p", "pas"] }, "text/x-processing": { compressible: !0, 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: !0, 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: !0, extensions: ["xml"] }, "text/xml-external-parsed-entity": { source: "iana" }, "text/yaml": { compressible: !0, 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: !1, extensions: ["mp4", "mp4v", "mpg4"] }, "video/mp4v-es": { source: "iana" }, "video/mpeg": { source: "iana", compressible: !1, extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] }, "video/mpeg4-generic": { source: "iana" }, "video/mpv": { source: "iana" }, "video/nv": { source: "iana" }, "video/ogg": { source: "iana", compressible: !1, extensions: ["ogv"] }, "video/parityfec": { source: "iana" }, "video/pointer": { source: "iana" }, "video/quicktime": { source: "iana", compressible: !1, 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: !1, extensions: ["webm"] }, "video/x-f4v": { source: "apache", extensions: ["f4v"] }, "video/x-fli": { source: "apache", extensions: ["fli"] }, "video/x-flv": { source: "apache", compressible: !1, extensions: ["flv"] }, "video/x-m4v": { source: "apache", extensions: ["m4v"] }, "video/x-matroska": { source: "apache", compressible: !1, 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: !1, 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: !0 }, "x-shader/x-vertex": { compressible: !0 } } }); var FG = k((lLe, LG) => { LG.exports = PG() }); var MG = k(Al => { "use strict"; var af = FG(), ESe = require("path").extname, jG = /^\s*([^;\s]*)(?:;|\s|$)/, bSe = /^text\//i; Al.charset = UG; Al.charsets = { lookup: UG }; Al.contentType = wSe; Al.extension = SSe; Al.extensions = Object.create(null); Al.lookup = TSe; Al.types = Object.create(null); xSe(Al.extensions, Al.types); function UG(t) { if (!t || typeof t != "string") return !1; var e = jG.exec(t), n = e && af[e[1].toLowerCase()]; return n && n.charset ? n.charset : e && bSe.test(e[1]) ? "UTF-8" : !1 } function wSe(t) { if (!t || typeof t != "string") return !1; var e = t.indexOf("/") === -1 ? Al.lookup(t) : t; if (!e) return !1; if (e.indexOf("charset") === -1) { var n = Al.charset(e); n && (e += "; charset=" + n.toLowerCase()) } return e } function SSe(t) { if (!t || typeof t != "string") return !1; var e = jG.exec(t), n = e && Al.extensions[e[1].toLowerCase()]; return !n || !n.length ? !1 : n[0] } function TSe(t) { if (!t || typeof t != "string") return !1; var e = ESe("x." + t).toLowerCase().substr(1); return e && Al.types[e] || !1 } function xSe(t, e) { var n = ["nginx", "apache", void 0, "iana"]; Object.keys(af).forEach(function (i) { var l = af[i], s = l.extensions; if (!(!s || !s.length)) { t[i] = s; for (var a = 0; a < s.length; a++) { var o = s[a]; if (e[o]) { var u = n.indexOf(af[e[o]].source), c = n.indexOf(l.source); if (e[o] !== "application/octet-stream" && (u > c || u === c && e[o].substr(0, 12) === "application/")) continue } e[o] = i } } }) } }); var BG = k((aLe, $G) => { $G.exports = ASe; function ASe(t) { var e = typeof setImmediate == "function" ? setImmediate : typeof process == "object" && typeof process.nextTick == "function" ? process.nextTick : null; e ? e(t) : setTimeout(t, 0) } }); var Zb = k((oLe, VG) => { var HG = BG(); VG.exports = OSe; function OSe(t) { var e = !1; return HG(function () { e = !0 }), function (r, i) { e ? t(r, i) : HG(function () { t(r, i) }) } } }); var ew = k((uLe, qG) => { qG.exports = NSe; function NSe(t) { Object.keys(t.jobs).forEach(CSe.bind(t)), t.jobs = {} } function CSe(t) { typeof this.jobs[t] == "function" && this.jobs[t]() } }); var tw = k((cLe, GG) => { var zG = Zb(), RSe = ew(); GG.exports = ISe; function ISe(t, e, n, r) { var i = n.keyedList ? n.keyedList[n.index] : n.index; n.jobs[i] = kSe(e, i, t[i], function (l, s) { i in n.jobs && (delete n.jobs[i], l ? RSe(n) : n.results[i] = s, r(l, n.results)) }) } function kSe(t, e, n, r) { var i; return t.length == 2 ? i = t(n, zG(r)) : i = t(n, e, zG(r)), i } }); var nw = k((pLe, JG) => { JG.exports = DSe; function DSe(t, e) { var n = !Array.isArray(t), r = { index: 0, keyedList: n || e ? Object.keys(t) : null, jobs: {}, results: n ? {} : [], size: n ? Object.keys(t).length : t.length }; return e && r.keyedList.sort(n ? e : function (i, l) { return e(t[i], t[l]) }), r } }); var rw = k((fLe, KG) => { var PSe = ew(), LSe = Zb(); KG.exports = FSe; function FSe(t) { Object.keys(this.jobs).length && (this.index = this.size, PSe(this), LSe(t)(null, this.results)) } }); var WG = k((dLe, XG) => { var jSe = tw(), USe = nw(), MSe = rw(); XG.exports = $Se; function $Se(t, e, n) { for (var r = USe(t); r.index < (r.keyedList || t).length;)jSe(t, e, r, function (i, l) { if (i) { n(i, l); return } if (Object.keys(r.jobs).length === 0) { n(null, r.results); return } }), r.index++; return MSe.bind(r, n) } }); var iw = k((hLe, of) => { var YG = tw(), BSe = nw(), HSe = rw(); of.exports = VSe; of.exports.ascending = QG; of.exports.descending = qSe; function VSe(t, e, n, r) { var i = BSe(t, n); return YG(t, e, i, function l(s, a) { if (s) { r(s, a); return } if (i.index++, i.index < (i.keyedList || t).length) { YG(t, e, i, l); return } r(null, i.results) }), HSe.bind(i, r) } function QG(t, e) { return t < e ? -1 : t > e ? 1 : 0 } function qSe(t, e) { return -1 * QG(t, e) } }); var eJ = k((mLe, ZG) => { var zSe = iw(); ZG.exports = GSe; function GSe(t, e, n) { return zSe(t, e, null, n) } }); var nJ = k((yLe, tJ) => { tJ.exports = { parallel: WG(), serial: eJ(), serialOrdered: iw() } }); var iJ = k((gLe, rJ) => { rJ.exports = function (t, e) { return Object.keys(e).forEach(function (n) { t[n] = t[n] || e[n] }), t } }); var aJ = k((vLe, sJ) => {
var ow = DG(), lJ = require("util"), lw = require("path"), JSe = require("http"), KSe = require("https"), XSe = require("url").parse, WSe = require("fs"), YSe = require("stream").Stream, sw = MG(), QSe = nJ(), aw = iJ(); sJ.exports = ln; lJ.inherits(ln, ow); function ln(t) { if (!(this instanceof ln)) return new ln(t); this._overheadLength = 0, this._valueLength = 0, this._valuesToMeasure = [], ow.call(this), t = t || {}; for (var e in t) this[e] = t[e] } ln.LINE_BREAK = `\r
`; ln.DEFAULT_CONTENT_TYPE = "application/octet-stream"; ln.prototype.append = function (t, e, n) { n = n || {}, typeof n == "string" && (n = { filename: n }); var r = ow.prototype.append.bind(this); if (typeof e == "number" && (e = "" + e), lJ.isArray(e)) { this._error(new Error("Arrays are not supported.")); return } var i = this._multiPartHeader(t, e, n), l = this._multiPartFooter(); r(i), r(e), r(l), this._trackLength(i, e, n) }; ln.prototype._trackLength = function (t, e, n) { var r = 0; n.knownLength != null ? r += +n.knownLength : Buffer.isBuffer(e) ? r = e.length : typeof e == "string" && (r = Buffer.byteLength(e)), this._valueLength += r, this._overheadLength += Buffer.byteLength(t) + ln.LINE_BREAK.length, !(!e || !e.path && !(e.readable && e.hasOwnProperty("httpVersion")) && !(e instanceof YSe)) && (n.knownLength || this._valuesToMeasure.push(e)) }; ln.prototype._lengthRetriever = function (t, e) { t.hasOwnProperty("fd") ? t.end != null && t.end != 1 / 0 && t.start != null ? e(null, t.end + 1 - (t.start ? t.start : 0)) : WSe.stat(t.path, function (n, r) { var i; if (n) { e(n); return } i = r.size - (t.start ? t.start : 0), e(null, i) }) : t.hasOwnProperty("httpVersion") ? e(null, +t.headers["content-length"]) : t.hasOwnProperty("httpModule") ? (t.on("response", function (n) { t.pause(), e(null, +n.headers["content-length"]) }), t.resume()) : e("Unknown stream") }; ln.prototype._multiPartHeader = function (t, e, n) { if (typeof n.header == "string") return n.header; var r = this._getContentDisposition(e, n), i = this._getContentType(e, n), l = "", s = { "Content-Disposition": ["form-data", 'name="' + t + '"'].concat(r || []), "Content-Type": [].concat(i || []) }; typeof n.header == "object" && aw(s, n.header); var a; for (var o in s) s.hasOwnProperty(o) && (a = s[o], a != null && (Array.isArray(a) || (a = [a]), a.length && (l += o + ": " + a.join("; ") + ln.LINE_BREAK))); return "--" + this.getBoundary() + ln.LINE_BREAK + l + ln.LINE_BREAK }; ln.prototype._getContentDisposition = function (t, e) { var n, r; return typeof e.filepath == "string" ? n = lw.normalize(e.filepath).replace(/\\/g, "/") : e.filename || t.name || t.path ? n = lw.basename(e.filename || t.name || t.path) : t.readable && t.hasOwnProperty("httpVersion") && (n = lw.basename(t.client._httpMessage.path || "")), n && (r = 'filename="' + n + '"'), r }; ln.prototype._getContentType = function (t, e) { var n = e.contentType; return !n && t.name && (n = sw.lookup(t.name)), !n && t.path && (n = sw.lookup(t.path)), !n && t.readable && t.hasOwnProperty("httpVersion") && (n = t.headers["content-type"]), !n && (e.filepath || e.filename) && (n = sw.lookup(e.filepath || e.filename)), !n && typeof t == "object" && (n = ln.DEFAULT_CONTENT_TYPE), n }; ln.prototype._multiPartFooter = function () { return function (t) { var e = ln.LINE_BREAK, n = this._streams.length === 0; n && (e += this._lastBoundary()), t(e) }.bind(this) }; ln.prototype._lastBoundary = function () { return "--" + this.getBoundary() + "--" + ln.LINE_BREAK }; ln.prototype.getHeaders = function (t) { var e, n = { "content-type": "multipart/form-data; boundary=" + this.getBoundary() }; for (e in t) t.hasOwnProperty(e) && (n[e.toLowerCase()] = t[e]); return n }; ln.prototype.setBoundary = function (t) { this._boundary = t }; ln.prototype.getBoundary = function () { return this._boundary || this._generateBoundary(), this._boundary }; ln.prototype.getBuffer = function () { for (var t = new Buffer.alloc(0), e = this.getBoundary(), n = 0, r = this._streams.length; n < r; n++)typeof this._streams[n] != "function" && (Buffer.isBuffer(this._streams[n]) ? t = Buffer.concat([t, this._streams[n]]) : t = Buffer.concat([t, Buffer.from(this._streams[n])]), (typeof this._streams[n] != "string" || this._streams[n].substring(2, e.length + 2) !== e) && (t = Buffer.concat([t, Buffer.from(ln.LINE_BREAK)]))); return Buffer.concat([t, Buffer.from(this._lastBoundary())]) }; ln.prototype._generateBoundary = function () { for (var t = "--------------------------", e = 0; e < 24; e++)t += Math.floor(Math.random() * 10).toString(16); this._boundary = t }; ln.prototype.getLengthSync = function () { var t = this._overheadLength + this._valueLength; return this._streams.length && (t += this._lastBoundary().length), this.hasKnownLength() || this._error(new Error("Cannot calculate proper length in synchronous way.")), t }; ln.prototype.hasKnownLength = function () { var t = !0; return this._valuesToMeasure.length && (t = !1), t }; ln.prototype.getLength = function (t) { var e = this._overheadLength + this._valueLength; if (this._streams.length && (e += this._lastBoundary().length), !this._valuesToMeasure.length) { process.nextTick(t.bind(this, null, e)); return } QSe.parallel(this._valuesToMeasure, this._lengthRetriever, function (n, r) { if (n) { t(n); return } r.forEach(function (i) { e += i }), t(null, e) }) }; ln.prototype.submit = function (t, e) { var n, r, i = { method: "post" }; return typeof t == "string" ? (t = XSe(t), r = aw({ port: t.port, path: t.pathname, host: t.hostname, protocol: t.protocol }, i)) : (r = aw(t, i), r.port || (r.port = r.protocol == "https:" ? 443 : 80)), r.headers = this.getHeaders(t.headers), r.protocol == "https:" ? n = KSe.request(r) : n = JSe.request(r), this.getLength(function (l, s) { if (l && l !== "Unknown stream") { this._error(l); return } if (s && n.setHeader("Content-Length", s), this.pipe(n), e) { var a, o = function (u, c) { return n.removeListener("error", o), n.removeListener("response", a), e.call(this, u, c) }; a = o.bind(this, null), n.on("error", o), n.on("response", a) } }.bind(this)), n }; ln.prototype._error = function (t) { this.error || (this.error = t, this.pause(), this.emit("error", t)) }; ln.prototype.toString = function () { return "[object FormData]" }
}); var SJ = k(wJ => { "use strict"; var hTe = require("url").parse, mTe = { ftp: 21, gopher: 70, http: 80, https: 443, ws: 80, wss: 443 }, yTe = String.prototype.endsWith || function (t) { return t.length <= this.length && this.indexOf(t, this.length - t.length) !== -1 }; function gTe(t) { var e = typeof t == "string" ? hTe(t) : t || {}, n = e.protocol, r = e.host, i = e.port; if (typeof r != "string" || !r || typeof n != "string" || (n = n.split(":", 1)[0], r = r.replace(/:\d*$/, ""), i = parseInt(i) || mTe[n] || 0, !vTe(r, i))) return ""; var l = D0("npm_config_" + n + "_proxy") || D0(n + "_proxy") || D0("npm_config_proxy") || D0("all_proxy"); return l && l.indexOf("://") === -1 && (l = n + "://" + l), l } function vTe(t, e) { var n = (D0("npm_config_no_proxy") || D0("no_proxy")).toLowerCase(); return n ? n === "*" ? !1 : n.split(/[,\s]/).every(function (r) { if (!r) return !0; var i = r.match(/^(.+):(\d+)$/), l = i ? i[1] : r, s = i ? parseInt(i[2]) : 0; return s && s !== e ? !0 : /^[.*]/.test(l) ? (l.charAt(0) === "*" && (l = l.slice(1)), !yTe.call(t, l)) : t !== l }) : !0 } function D0(t) { return process.env[t.toLowerCase()] || process.env[t.toUpperCase()] || "" } wJ.getProxyForUrl = gTe }); var xJ = k((_Fe, TJ) => { var j5; TJ.exports = function () { if (!j5) { try { j5 = G6()("follow-redirects") } catch { } typeof j5 != "function" && (j5 = function () { }) } j5.apply(null, arguments) } }); var RJ = k((EFe, Cw) => { var $5 = require("url"), U5 = $5.URL, _Te = require("http"), ETe = require("https"), ww = require("stream").Writable, Sw = require("assert"), AJ = xJ(), Tw = !1; try { Sw(new U5) } catch (t) { Tw = t.code === "ERR_INVALID_URL" } var bTe = ["auth", "host", "hostname", "href", "path", "pathname", "port", "protocol", "query", "search", "hash"], xw = ["abort", "aborted", "connect", "error", "socket", "timeout"], Aw = Object.create(null); xw.forEach(function (t) { Aw[t] = function (e, n, r) { this._redirectable.emit(t, e, n, r) } }); var _w = B5("ERR_INVALID_URL", "Invalid URL", TypeError), Ew = B5("ERR_FR_REDIRECTION_FAILURE", "Redirected request failed"), wTe = B5("ERR_FR_TOO_MANY_REDIRECTS", "Maximum number of redirects exceeded", Ew), STe = B5("ERR_FR_MAX_BODY_LENGTH_EXCEEDED", "Request body larger than maxBodyLength limit"), TTe = B5("ERR_STREAM_WRITE_AFTER_END", "write after end"), xTe = ww.prototype.destroy || NJ; function Ol(t, e) { ww.call(this), this._sanitizeOptions(t), this._options = t, this._ended = !1, this._ending = !1, this._redirectCount = 0, this._redirects = [], this._requestBodyLength = 0, this._requestBodyBuffers = [], e && this.on("response", e); var n = this; this._onNativeResponse = function (r) { try { n._processResponse(r) } catch (i) { n.emit("error", i instanceof Ew ? i : new Ew({ cause: i })) } }, this._performRequest() } Ol.prototype = Object.create(ww.prototype); Ol.prototype.abort = function () { Nw(this._currentRequest), this._currentRequest.abort(), this.emit("abort") }; Ol.prototype.destroy = function (t) { return Nw(this._currentRequest, t), xTe.call(this, t), this }; Ol.prototype.write = function (t, e, n) { if (this._ending) throw new TTe; if (!yu(t) && !NTe(t)) throw new TypeError("data should be a string, Buffer or Uint8Array"); if (M5(e) && (n = e, e = null), t.length === 0) { n && n(); return } this._requestBodyLength + t.length <= this._options.maxBodyLength ? (this._requestBodyLength += t.length, this._requestBodyBuffers.push({ data: t, encoding: e }), this._currentRequest.write(t, e, n)) : (this.emit("error", new STe), this.abort()) }; Ol.prototype.end = function (t, e, n) { if (M5(t) ? (n = t, t = e = null) : M5(e) && (n = e, e = null), !t) this._ended = this._ending = !0, this._currentRequest.end(null, null, n); else { var r = this, i = this._currentRequest; this.write(t, e, function () { r._ended = !0, i.end(null, null, n) }), this._ending = !0 } }; Ol.prototype.setHeader = function (t, e) { this._options.headers[t] = e, this._currentRequest.setHeader(t, e) }; Ol.prototype.removeHeader = function (t) { delete this._options.headers[t], this._currentRequest.removeHeader(t) }; Ol.prototype.setTimeout = function (t, e) { var n = this; function r(s) { s.setTimeout(t), s.removeListener("timeout", s.destroy), s.addListener("timeout", s.destroy) } function i(s) { n._timeout && clearTimeout(n._timeout), n._timeout = setTimeout(function () { n.emit("timeout"), l() }, t), r(s) } function l() { n._timeout && (clearTimeout(n._timeout), n._timeout = null), n.removeListener("abort", l), n.removeListener("error", l), n.removeListener("response", l), n.removeListener("close", l), e && n.removeListener("timeout", e), n.socket || n._currentRequest.removeListener("socket", i) } return e && this.on("timeout", e), this.socket ? i(this.socket) : this._currentRequest.once("socket", i), this.on("socket", r), this.on("abort", l), this.on("error", l), this.on("response", l), this.on("close", l), this };["flushHeaders", "getHeader", "setNoDelay", "setSocketKeepAlive"].forEach(function (t) { Ol.prototype[t] = function (e, n) { return this._currentRequest[t](e, n) } });["aborted", "connection", "socket"].forEach(function (t) { Object.defineProperty(Ol.prototype, t, { get: function () { return this._currentRequest[t] } }) }); Ol.prototype._sanitizeOptions = function (t) { if (t.headers || (t.headers = {}), t.host && (t.hostname || (t.hostname = t.host), delete t.host), !t.pathname && t.path) { var e = t.path.indexOf("?"); e < 0 ? t.pathname = t.path : (t.pathname = t.path.substring(0, e), t.search = t.path.substring(e)) } }; Ol.prototype._performRequest = function () { var t = this._options.protocol, e = this._options.nativeProtocols[t]; if (!e) throw new TypeError("Unsupported protocol " + t); if (this._options.agents) { var n = t.slice(0, -1); this._options.agent = this._options.agents[n] } var r = this._currentRequest = e.request(this._options, this._onNativeResponse); r._redirectable = this; for (var i of xw) r.on(i, Aw[i]); if (this._currentUrl = /^\//.test(this._options.path) ? $5.format(this._options) : this._options.path, this._isRedirect) { var l = 0, s = this, a = this._requestBodyBuffers; (function o(u) { if (r === s._currentRequest) if (u) s.emit("error", u); else if (l < a.length) { var c = a[l++]; r.finished || r.write(c.data, c.encoding, o) } else s._ended && r.end() })() } }; Ol.prototype._processResponse = function (t) { var e = t.statusCode; this._options.trackRedirects && this._redirects.push({ url: this._currentUrl, headers: t.headers, statusCode: e }); var n = t.headers.location; if (!n || this._options.followRedirects === !1 || e < 300 || e >= 400) { t.responseUrl = this._currentUrl, t.redirects = this._redirects, this.emit("response", t), this._requestBodyBuffers = []; return } if (Nw(this._currentRequest), t.destroy(), ++this._redirectCount > this._options.maxRedirects) throw new wTe; var r, i = this._options.beforeRedirect; i && (r = Object.assign({ Host: t.req.getHeader("host") }, this._options.headers)); var l = this._options.method; ((e === 301 || e === 302) && this._options.method === "POST" || e === 303 && !/^(?:GET|HEAD)$/.test(this._options.method)) && (this._options.method = "GET", this._requestBodyBuffers = [], vw(/^content-/i, this._options.headers)); var s = vw(/^host$/i, this._options.headers), a = Ow(this._currentUrl), o = s || a.host, u = /^\w+:/.test(n) ? this._currentUrl : $5.format(Object.assign(a, { host: o })), c = ATe(n, u); if (AJ("redirecting to", c.href), this._isRedirect = !0, bw(c, this._options), (c.protocol !== a.protocol && c.protocol !== "https:" || c.host !== o && !OTe(c.host, o)) && vw(/^(?:authorization|cookie)$/i, this._options.headers), M5(i)) { var f = { headers: t.headers, statusCode: e }, m = { url: u, method: l, headers: r }; i(this._options, f, m), this._sanitizeOptions(this._options) } this._performRequest() }; function OJ(t) { var e = { maxRedirects: 21, maxBodyLength: 10485760 }, n = {}; return Object.keys(t).forEach(function (r) { var i = r + ":", l = n[i] = t[r], s = e[r] = Object.create(l); function a(u, c, f) { return CTe(u) ? u = bw(u) : yu(u) ? u = bw(Ow(u)) : (f = c, c = CJ(u), u = { protocol: i }), M5(c) && (f = c, c = null), c = Object.assign({ maxRedirects: e.maxRedirects, maxBodyLength: e.maxBodyLength }, u, c), c.nativeProtocols = n, !yu(c.host) && !yu(c.hostname) && (c.hostname = "::1"), Sw.equal(c.protocol, i, "protocol mismatch"), AJ("options", c), new Ol(c, f) } function o(u, c, f) { var m = s.request(u, c, f); return m.end(), m } Object.defineProperties(s, { request: { value: a, configurable: !0, enumerable: !0, writable: !0 }, get: { value: o, configurable: !0, enumerable: !0, writable: !0 } }) }), e } function NJ() { } function Ow(t) { var e; if (Tw) e = new U5(t); else if (e = CJ($5.parse(t)), !yu(e.protocol)) throw new _w({ input: t }); return e } function ATe(t, e) { return Tw ? new U5(t, e) : Ow($5.resolve(e, t)) } function CJ(t) { if (/^\[/.test(t.hostname) && !/^\[[:0-9a-f]+\]$/i.test(t.hostname)) throw new _w({ input: t.href || t }); if (/^\[/.test(t.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(t.host)) throw new _w({ input: t.href || t }); return t } function bw(t, e) { var n = e || {}; for (var r of bTe) n[r] = t[r]; return n.hostname.startsWith("[") && (n.hostname = n.hostname.slice(1, -1)), n.port !== "" && (n.port = Number(n.port)), n.path = n.search ? n.pathname + n.search : n.pathname, n } function vw(t, e) { var n; for (var r in e) t.test(r) && (n = e[r], delete e[r]); return n === null || typeof n > "u" ? void 0 : String(n).trim() } function B5(t, e, n) { function r(i) { Error.captureStackTrace(this, this.constructor), Object.assign(this, i || {}), this.code = t, this.message = this.cause ? e + ": " + this.cause.message : e } return r.prototype = new (n || Error), Object.defineProperties(r.prototype, { constructor: { value: r, enumerable: !1 }, name: { value: "Error [" + t + "]", enumerable: !1 } }), r } function Nw(t, e) { for (var n of xw) t.removeListener(n, Aw[n]); t.on("error", NJ), t.destroy(e) } function OTe(t, e) { Sw(yu(t) && yu(e)); var n = t.length - e.length - 1; return n > 0 && t[n] === "." && t.endsWith(e) } function yu(t) { return typeof t == "string" || t instanceof String } function M5(t) { return typeof t == "function" } function NTe(t) { return typeof t == "object" && "length" in t } function CTe(t) { return U5 && t instanceof U5 } Cw.exports = OJ({ http: _Te, https: ETe }); Cw.exports.wrap = OJ }); var fK = k(F0 => {
"use strict"; var jUe = require("net"), WTe = require("tls"), Hw = require("http"), uK = require("https"), YTe = require("events"), UUe = require("assert"), QTe = require("util"); F0.httpOverHttp = ZTe; F0.httpsOverHttp = exe; F0.httpOverHttps = txe; F0.httpsOverHttps = nxe; function ZTe(t) { var e = new a2(t); return e.request = Hw.request, e } function exe(t) { var e = new a2(t); return e.request = Hw.request, e.createSocket = cK, e.defaultPort = 443, e } function txe(t) { var e = new a2(t); return e.request = uK.request, e } function nxe(t) { var e = new a2(t); return e.request = uK.request, e.createSocket = cK, e.defaultPort = 443, e } function a2(t) { var e = this; e.options = t || {}, e.proxyOptions = e.options.proxy || {}, e.maxSockets = e.options.maxSockets || Hw.Agent.defaultMaxSockets, e.requests = [], e.sockets = [], e.on("free", function (r, i, l, s) { for (var a = pK(i, l, s), o = 0, u = e.requests.length; o < u; ++o) { var c = e.requests[o]; if (c.host === a.host && c.port === a.port) { e.requests.splice(o, 1), c.request.onSocket(r); return } } r.destroy(), e.removeSocket(r) }) } QTe.inherits(a2, YTe.EventEmitter); a2.prototype.addRequest = function (e, n, r, i) { var l = this, s = Vw({ request: e }, l.options, pK(n, r, i)); if (l.sockets.length >= this.maxSockets) { l.requests.push(s); return } l.createSocket(s, function (a) { a.on("free", o), a.on("close", u), a.on("agentRemove", u), e.onSocket(a); function o() { l.emit("free", a, s) } function u(c) { l.removeSocket(a), a.removeListener("free", o), a.removeListener("close", u), a.removeListener("agentRemove", u) } }) }; a2.prototype.createSocket = function (e, n) {
var r = this, i = {}; r.sockets.push(i); var l = Vw({}, r.proxyOptions, { method: "CONNECT", path: e.host + ":" + e.port, agent: !1, headers: { host: e.host + ":" + e.port } }); e.localAddress && (l.localAddress = e.localAddress), l.proxyAuth && (l.headers = l.headers || {}, l.headers["Proxy-Authorization"] = "Basic " + new Buffer(l.proxyAuth).toString("base64")), oo("making CONNECT request"); var s = r.request(l); s.useChunkedEncodingByDefault = !1, s.once("response", a), s.once("upgrade", o), s.once("connect", u), s.once("error", c), s.end(); function a(f) { f.upgrade = !0 } function o(f, m, d) { process.nextTick(function () { u(f, m, d) }) } function u(f, m, d) { if (s.removeAllListeners(), m.removeAllListeners(), f.statusCode !== 200) { oo("tunneling socket could not be established, statusCode=%d", f.statusCode), m.destroy(); var y = new Error("tunneling socket could not be established, statusCode=" + f.statusCode); y.code = "ECONNRESET", e.request.emit("error", y), r.removeSocket(i); return } if (d.length > 0) { oo("got illegal response body from proxy"), m.destroy(); var y = new Error("got illegal response body from proxy"); y.code = "ECONNRESET", e.request.emit("error", y), r.removeSocket(i); return } return oo("tunneling connection has established"), r.sockets[r.sockets.indexOf(i)] = m, n(m) } function c(f) {
s.removeAllListeners(), oo(`tunneling socket could not be established, cause=%s
`, f.message, f.stack); var m = new Error("tunneling socket could not be established, cause=" + f.message); m.code = "ECONNRESET", e.request.emit("error", m), r.removeSocket(i)
}
}; a2.prototype.removeSocket = function (e) { var n = this.sockets.indexOf(e); if (n !== -1) { this.sockets.splice(n, 1); var r = this.requests.shift(); r && this.createSocket(r, function (i) { r.request.onSocket(i) }) } }; function cK(t, e) { var n = this; a2.prototype.createSocket.call(n, t, function (r) { var i = t.request.getHeader("host"), l = Vw({}, n.options, { socket: r, servername: i ? i.replace(/:.*$/, "") : t.host }), s = WTe.connect(0, l); n.sockets[n.sockets.indexOf(r)] = s, e(s) }) } function pK(t, e, n) { return typeof t == "string" ? { host: t, port: e, localAddress: n } : t } function Vw(t) { for (var e = 1, n = arguments.length; e < n; ++e) { var r = arguments[e]; if (typeof r == "object") for (var i = Object.keys(r), l = 0, s = i.length; l < s; ++l) { var a = i[l]; r[a] !== void 0 && (t[a] = r[a]) } } return t } var oo; process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? oo = function () { var t = Array.prototype.slice.call(arguments); typeof t[0] == "string" ? t[0] = "TUNNEL: " + t[0] : t.unshift("TUNNEL:"), console.error.apply(console, t) } : oo = function () { }; F0.debug = oo
}); var hK = k(($Ue, dK) => { dK.exports = fK() }); var gZ = k(bu => { "use strict"; Object.defineProperty(bu, "__esModule", { value: !0 }); bu.removeTrailingChar = bu.merge = void 0; var wOe = (...t) => { let e = {}; return t.forEach(function (n) { var r; for (r in n) r in e && e[r] === null ? e[r] = n[r] : r in e && Array.isArray(e[r]) ? e[r] = e[r].concat(n[r]) : r in e && typeof e[r] == "object" ? e[r] = (0, bu.merge)(e[r], n[r]) : e[r] = n[r] }), e }; bu.merge = wOe; var SOe = (t, e) => t.length > 1 && t.endsWith(e) ? t.substring(0, t.length - 1) : t; bu.removeTrailingChar = SOe }); var U0 = k(Qo => {
"use strict"; Object.defineProperty(Qo, "__esModule", { value: !0 }); Qo.DataError = Qo.DatabaseError = Qo.NestedError = void 0; var X5 = class extends Error {
inner; id; constructor(e, n, r) { super(e), this.inner = r, this.id = n, this.name = this.constructor.name } toString() {
let e = this.name + ": " + this.message; return this.inner ? e + `:
`+ this.inner : e
}
}; Qo.NestedError = X5; var mT = class extends X5 { }; Qo.DatabaseError = mT; var yT = class extends X5 { }; Qo.DataError = yT
}); var bT = k(al => { "use strict"; Object.defineProperty(al, "__esModule", { value: !0 }); al.getArrayIndicies = al.validateArrayIndex = al.validateArrayIndicies = al.isInt = al.ArrayInfo = al.arrayRegex = void 0; var Sf = U0(), TOe = () => /^([\.0-9a-zA-Z_$\-][0-9a-zA-Z_\-$\.]*)\[((?!(\]|\[)).*|)\]$/gm; al.arrayRegex = TOe; var gT = {}, vT = class t { property; index = 0; append = !1; indicies = []; constructor(e, n) { this.property = e; let r = n[0] ?? 0; if (this.append = r === "" || n[n.length - 1] === "", this.indicies = n, _T(r)) this.index = parseInt(r); else if (!this.append) throw new Sf.DataError("Only numerical values accepted for array index", 200) } static processArray(e) { if (typeof e > "u") return null; if (gT[e]) return gT[e]; let r = (0, al.arrayRegex)().exec(e.trim()); if (r != null) { let i = r[1], l = "[" + r[2].toString() + "]", s = ET(l); return vZ(s), gT[e] = new t(i, s) } return null } getIndex(e, n) { if (this.append) return -1; let r = this.index; if (r == -1) { let i = n ? e : e[this.property]; return i.length === 0 ? 0 : i.length - 1 } return r } getData(e) { if (this.append) throw new Sf.DataError("Can't get data when appending", 100); let { index: n, dataForProperty: r } = this.getArrayDataAndIndexFromProperty(e); return r[n] } setData(e, n) { if (this.append) { let r = e[this.property]; this.indicies.forEach(i => { i !== "" && (i = +i, i === -1 && (i = r.length - 1), r = r[+i]) }), r.push(n) } else { let { index: r, dataForProperty: i } = this.getArrayDataAndIndexFromProperty(e); r === -1 ? i.push(n) : i[r] = n } } delete(e) { if (this.append) throw new Sf.DataError("Can't delete an appended data", 10); let { index: n, dataForProperty: r } = this.getArrayDataAndIndexFromProperty(e); r.splice(n, 1) } isValid(e) { let { index: n, dataForProperty: r } = this.getArrayDataAndIndexFromProperty(e); return r.hasOwnProperty(n) } getArrayDataAndIndexFromProperty(e) { let n = 0, r = e instanceof Array ? e : e[this.property] ?? e; if (this.indicies.length > 0) { n = +this.indicies[this.indicies.length - 1]; for (let i = 0; i < this.indicies.length - 1; i++) { let l = +this.indicies[i]; l === -1 && (l = r.length - 1), r = r[l] } n === -1 && (n = r.length - 1) } return { index: n, dataForProperty: r } } isMultiDimensional() { return this.indicies.length > 1 } }; al.ArrayInfo = vT; function _T(t) { return !isNaN(t) && Number(t) == t && !isNaN(parseInt(t, 10)) } al.isInt = _T; function vZ(t) { let e = t.filter(n => n === ""); if (e.length > 1) throw Error("Only one append index is supported for nested arrays"); if (e.length === 1 && t[t.length - 1] !== "") throw Error("Append index must be at the end of the nested array") } al.validateArrayIndicies = vZ; function _Z(t) { if (t.length !== 0 && !_T(t)) throw new Sf.DataError("Only numerical values accepted for array index", 200) } al.validateArrayIndex = _Z; function ET(t) { if (t.length === 0) return []; if (t.charAt(0) !== "[") throw new Error("Invalid array syntax detected"); let e = t.substring(1, t.indexOf("]")); _Z(e); let n = e.length + 2; return [e, ...ET(t.substring(n))] } al.getArrayIndicies = ET }); var wZ = k(Tf => { "use strict"; Object.defineProperty(Tf, "__esModule", { value: !0 }); Tf.DBParentData = void 0; var EZ = bT(), bZ = U0(), wT = class { parent; data; db; dataPath; constructor(e, n, r, i) { this.parent = i, this.data = e, this.db = n, this.dataPath = r } checkArray(e = !1) { let n = EZ.ArrayInfo.processArray(this.parent); if (n && (!n.append || e) && !n.isValid(this.data)) throw new bZ.DataError("DataPath: /" + this.dataPath + ". Can't find index " + n.index + " in array " + n.property, 10); return n } getData() { if (this.parent === void 0) return this.data; let e = this.checkArray(); return e ? e.getData(this.data) : this.data[this.parent] } setData(e) { if (this.parent === void 0) { this.db.resetData(e); return } let n = EZ.ArrayInfo.processArray(this.parent); if (n) { if (!this.data.hasOwnProperty(n.property)) this.data[n.property] = []; else if (!Array.isArray(this.data[n.property])) throw new bZ.DataError("DataPath: /" + this.dataPath + ". " + n.property + " is not an array.", 11); n.setData(this.data, e) } else this.data[this.parent] = e } delete() { if (this.parent === void 0) { this.db.resetData({}); return } let e = this.checkArray(!0); e ? e.delete(this.data) : delete this.data[this.parent] } }; Tf.DBParentData = wT }); var TZ = k((rze, SZ) => { SZ.exports = function () { "use strict"; function t() { this.readers = 0, this.queue = [] } function e(l, s, a) { var o; typeof l != "function" ? (i.hasOwnProperty(l) || (i[l] = new t), o = i[l]) : (a = s, s = l, o = r), a || (a = {}); var u = null; a.hasOwnProperty("scope") && (u = a.scope); var c = function () { var d = !1; return function () { d || (d = !0, o.readers--, o.queue.length && o.queue[0]()) } }(); if (o.readers < 0 || o.queue.length) { var f = !1; if (o.queue.push(function () { !f && o.readers >= 0 && (f = !0, o.queue.shift(), o.readers++, s.call(u, c), o.queue.length && o.queue[0]()) }), a.hasOwnProperty("timeout")) { var m = null; a.hasOwnProperty("timeoutCallback") && (m = a.timeoutCallback), setTimeout(function () { f || (f = !0, o.queue.shift(), m && m.call(a.scope)) }, a.timeout) } } else o.readers++, s.call(a.scope, c) } function n(l, s, a) { var o; typeof l != "function" ? (i.hasOwnProperty(l) || (i[l] = new t), o = i[l]) : (a = s, s = l, o = r), a || (a = {}); var u = null; a.hasOwnProperty("scope") && (u = a.scope); var c = function () { var d = !1; return function () { d || (d = !0, o.readers = 0, o.queue.length && o.queue[0]()) } }(); if (o.readers || o.queue.length) { var f = !1; if (o.queue.push(function () { f || o.readers || (f = !0, o.queue.shift(), o.readers = -1, s.call(a.scope, c)) }), a.hasOwnProperty("timeout")) { var m = null; a.hasOwnProperty("timeoutCallback") && (m = a.timeoutCallback), setTimeout(function () { f || (f = !0, o.queue.shift(), m && m.call(u)) }, a.timeout) } } else o.readers = -1, s.call(a.scope, c) } var r = new t, i = {}; this.readLock = e, this.writeLock = n, this.async = { readLock: function (l, s, a) { typeof l != "function" ? e(l, function (o) { s.call(this, null, o) }, a) : (s = l, a = s, e(function (o) { s.call(this, null, o) }, a)) }, writeLock: function (l, s, a) { typeof l != "function" ? n(l, function (o) { s.call(this, null, o) }, a) : (s = l, a = s, n(function (o) { s.call(this, null, o) }, a)) } } } }); var xZ = k(xf => { "use strict"; Object.defineProperty(xf, "__esModule", { value: !0 }); xf.TimeoutError = void 0; var xOe = U0(), ST = class extends xOe.NestedError { }; xf.TimeoutError = ST }); var NZ = k(M0 => { "use strict"; Object.defineProperty(M0, "__esModule", { value: !0 }); M0.writeLockAsync = M0.readLockAsync = void 0; var AOe = TZ(), AZ = xZ(), OZ = new AOe, OOe = (t, e = null) => { let n = {}; return e != null && (n = { timeout: e }), new Promise((r, i) => { OZ.readLock(async l => { try { let s = await t(); r(s) } catch (s) { i(s) } finally { l() } }, { ...n, timeoutCallback() { i(new AZ.TimeoutError("Timeout", 100)) } }) }) }; M0.readLockAsync = OOe; var NOe = (t, e = null) => { let n = {}; return e != null && (n = { timeout: e }), new Promise((r, i) => { OZ.writeLock(async l => { try { let s = await t(); r(s) } catch (s) { i(s) } finally { l() } }, { ...n, timeoutCallback() { i(new AZ.TimeoutError("Timeout", 100)) } }) }) }; M0.writeLockAsync = NOe }); var xT = k(Af => { "use strict"; Object.defineProperty(Af, "__esModule", { value: !0 }); Af.JsonAdapter = void 0; var TT = class { adapter; humanReadable; dateRegex = new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}", "m"); constructor(e, n = !1) { this.adapter = e, this.humanReadable = n } replacer(e, n) { return n } reviver(e, n) { return typeof n == "string" && this.dateRegex.exec(n) != null ? new Date(n) : n } async readAsync() { let e = await this.adapter.readAsync(); return e == null ? (await this.writeAsync({}), {}) : JSON.parse(e, this.reviver.bind(this)) } writeAsync(e) { let n = ""; return this.humanReadable ? n = JSON.stringify(e, this.replacer.bind(this), 4) : n = JSON.stringify(e, this.replacer.bind(this)), this.adapter.writeAsync(n) } }; Af.JsonAdapter = TT }); var OT = k(Nf => { "use strict"; Object.defineProperty(Nf, "__esModule", { value: !0 }); Nf.FileAdapter = void 0; var Of = require("fs/promises"), COe = require("path"), AT = class { filename; fsync; constructor(e, n) { this.filename = e, this.fsync = n } async readAsync() { try { return await (0, Of.readFile)(this.filename, { encoding: "utf-8" }) } catch (e) { if (e.code === "ENOENT") return null; throw e } } async writeAsync(e) { let n = null; try { n = await (0, Of.open)(this.filename, "w") } catch (r) { if (r.code !== "ENOENT") throw r; let i = COe.dirname(this.filename); await (0, Of.mkdir)(i, { recursive: !0 }), n = await (0, Of.open)(this.filename, "w") } try { await n.writeFile(e, { encoding: "utf-8" }), this.fsync && await n.sync() } finally { await n.close() } } }; Nf.FileAdapter = AT }); var CZ = k($0 => { "use strict"; Object.defineProperty($0, "__esModule", { value: !0 }); $0.ConfigWithAdapter = $0.Config = void 0; var ROe = require("path"), IOe = xT(), kOe = OT(), NT = class { adapter; filename; saveOnPush; separator; constructor(e, n = !0, r = !1, i = "/", l = !1) { this.filename = e, ROe.extname(e) === "" && (this.filename += ".json"), this.saveOnPush = n, this.separator = i, this.adapter = new IOe.JsonAdapter(new kOe.FileAdapter(this.filename, l), r) } }; $0.Config = NT; var CT = class { adapter; saveOnPush; separator; constructor(e, n = !0, r = "/") { this.adapter = e, this.saveOnPush = n, this.separator = r } }; $0.ConfigWithAdapter = CT }); var DZ = k(Ji => { "use strict"; Object.defineProperty(Ji, "__esModule", { value: !0 }); Ji.JsonDB = Ji.FileAdapter = Ji.JsonAdapter = Ji.DataError = Ji.DatabaseError = Ji.ConfigWithAdapter = Ji.Config = void 0; var RZ = gZ(), Gi = U0(), DOe = wZ(), POe = bT(), RT = NZ(), IZ = CZ(); Object.defineProperty(Ji, "Config", { enumerable: !0, get: function () { return IZ.Config } }); Object.defineProperty(Ji, "ConfigWithAdapter", { enumerable: !0, get: function () { return IZ.ConfigWithAdapter } }); var kZ = U0(); Object.defineProperty(Ji, "DatabaseError", { enumerable: !0, get: function () { return kZ.DatabaseError } }); Object.defineProperty(Ji, "DataError", { enumerable: !0, get: function () { return kZ.DataError } }); var LOe = xT(); Object.defineProperty(Ji, "JsonAdapter", { enumerable: !0, get: function () { return LOe.JsonAdapter } }); var FOe = OT(); Object.defineProperty(Ji, "FileAdapter", { enumerable: !0, get: function () { return FOe.FileAdapter } }); var IT = class { loaded = !1; data = {}; config; constructor(e) { this.config = e } processDataPath(e) { if (e === void 0 || !e.trim()) throw new Gi.DataError("The Data Path can't be empty", 6); if (e == this.config.separator) return []; e = (0, RZ.removeTrailingChar)(e, this.config.separator); let n = e.split(this.config.separator); return n.shift(), n } async retrieveData(e, n = !1) { await this.load(); let r = this, i = (l, s) => { let a = e[s]; function o(c = !1) { if (l.hasOwnProperty(a)) l = l[a]; else if (n) c ? l[a] = [] : l[a] = {}, l = l[a]; else throw new Gi.DataError(`Can't find dataPath: ${r.config.separator}${e.join(r.config.separator)}. Stopped at ${a}`, 5) } let u = POe.ArrayInfo.processArray(a); if (u) { if (a = u.property, o(!0), !Array.isArray(l)) throw new Gi.DataError(`DataPath: ${r.config.separator}${e.join(r.config.separator)}. ${a} is not an array.`, 11); let c = u.getIndex(l, !0); if (!u.append && l.hasOwnProperty(c)) l = u.getData(l); else if (n) u.append ? (l.push({}), l = l[l.length - 1]) : (l[c] = {}, l = l[c]); else throw new Gi.DataError(`DataPath: ${r.config.separator}${e.join(r.config.separator)}. . Can't find index ${u.index} in array ${a}`, 10) } else o(); return e.length == ++s ? l : i(l, s) }; return e.length === 0 ? this.data : i(this.data, 0) } async getParentData(e, n) { let r = this.processDataPath(e), i = r.pop(); return new DOe.DBParentData(await this.retrieveData(r, n), this, e, i) } getData(e) { return (0, RT.readLockAsync)(async () => { let n = this.processDataPath(e); return this.retrieveData(n, !1) }) } getObject(e) { return this.getData(e) } async getObjectDefault(e, n) { try { return await this.getData(e) } catch (r) { if (!(r instanceof Gi.DataError) || r.id != 5) throw r; return n } } async exists(e) { try { return await this.getData(e), !0 } catch (n) { if (n instanceof Gi.DataError) return !1; throw n } } async count(e) { let n = await this.getData(e); if (!Array.isArray(n)) throw new Gi.DataError(`DataPath: ${e} is not an array.`, 11); let r = this.processDataPath(e); return (await this.retrieveData(r, !1)).length } async getIndex(e, n, r = "id") { return (await this.getArrayData(e)).map(function (l) { return l[r] }).indexOf(n) } async getIndexValue(e, n) { return (await this.getArrayData(e)).indexOf(n) } async getArrayData(e) { let n = await this.getData(e); if (!Array.isArray(n)) throw new Gi.DataError(`DataPath: ${e} is not an array.`, 11); let r = this.processDataPath(e); return this.retrieveData(r, !1) } async filter(e, n) { let r = await this.getData(e); if (Array.isArray(r)) return r.filter(n); if (r instanceof Object) { let l = Object.entries(r).filter(s => n(s[1], s[0])); return !l || l.length < 1 ? void 0 : l.map(s => s[1]) } throw new Gi.DataError("The entry at the path (" + e + ") needs to be either an Object or an Array", 12) } async find(e, n) { let r = await this.getData(e); if (Array.isArray(r)) return r.find(n); if (r instanceof Object) { let l = Object.entries(r).find(s => n(s[1], s[0])); return !l || l.length < 2 ? void 0 : l[1] } throw new Gi.DataError("The entry at the path (" + e + ") needs to be either an Object or an Array", 12) } async push(e, n, r = !0) { return (0, RT.writeLockAsync)(async () => { let i = await this.getParentData(e, !0), l = n; if (!r) { if (Array.isArray(n)) { let s = i.getData(); if (s === void 0) s = []; else if (!Array.isArray(s)) throw new Gi.DataError("Can't merge another type of data with an Array", 3); l = s.concat(n) } else if (n === Object(n)) { if (Array.isArray(i.getData())) throw new Gi.DataError("Can't merge an Array with an Object", 4); l = (0, RZ.merge)(i.getData(), n) } } i.setData(l), this.config.saveOnPush && await this.save() }) } async delete(e) { await (0, RT.writeLockAsync)(async () => { (await this.getParentData(e, !0)).delete(), this.config.saveOnPush && await this.save() }) } resetData(e) { this.data = e } async reload() { this.loaded = !1, await this.load() } async load() { if (!this.loaded) try { this.data = await this.config.adapter.readAsync(), this.loaded = !0 } catch (e) { throw new Gi.DatabaseError("Can't Load Database", 1, e) } } async save(e) { if (e = e || !1, !e && !this.loaded) throw new Gi.DatabaseError("DataBase not loaded. Can't write", 7); try { await this.config.adapter.writeAsync(this.data) } catch (n) { throw new Gi.DatabaseError("Can't save the database", 2, n) } } async fromPath(e, n = "id") { let [, ...r] = e.split("/"), i = r.reduce((s, a, o) => { if (o % 2 === 0) s[`${a}`] = ""; else { let c = Object.keys(s); s[`${c[c.length - 1]}`] = `${a}` } return s }, {}), l = []; for await (let s of Object.keys(i)) { l.push(`/${s}`); let a = i[s]; try { let o = await this.getIndex(l.join(""), a, n); l.push(`[${o}]`) } catch (o) { throw new Gi.DataError(`DataPath: ${l.join("")}/${a} not found.`, 13, o) } } return l.join("") } }; Ji.JsonDB = IT }); var MOe = {}; TA(MOe, { start: () => jOe, stop: () => UOe }); module.exports = yte(MOe); var PZ = Yr(s$(), 1); var $me = ["DEBUG", "INFO", "WARNING", "ERROR"], Bme = "log", aa = class { constructor(e, n = "DEBUG") { this.app_name = e, this.level = n, this.level_index = $me.indexOf(n) } format(e, n) { let r = 80; switch (e) { case "INFO": r = r + 1; break; case "WARNING": r = r - 2; break; default: break }return n.length < r && ((r - n.length) % 2 === 0 ? n = "#".repeat(Math.floor((r - n.length) / 2)) + n + "#".repeat(Math.floor((r - n.length) / 2)) : n = "#".repeat(Math.floor((r - n.length) / 2)) + n + "#".repeat(Math.floor((r - n.length) / 2) + 1)), n } getTime() { let e = new Date; return e.toLocaleDateString().replace(/\//g, "-") + " " + e.toTimeString().substr(0, 8) + "," + e.getMilliseconds().toString() } formatMessage(e, n, r) { return r && (n = this.format(e, n)), `${this.getTime()} - ${this.app_name} - ${e}: ${n}` } async log(e) { console.debug(e), await local.set(Bme, this.getTime(), e) } async info(e, n = !1) { this.level_index <= 1 && await this.log(this.formatMessage("INFO", e, n)) } async warning(e, n = !1) { this.level_index <= 2 && await this.log(this.formatMessage("WARNING", e, n)) } async error(e, n = !1) { this.level_index <= 3 && await this.log(this.formatMessage("ERROR", e, n)) } async debug(e, n = !1) { this.level_index <= 0 && await this.log(this.formatMessage("DEBUG", e, n)) } }; var pn, is, nE = function () { return (nE = Object.assign || function (t) { for (var e, n = 1, r = arguments.length; n < r; n++)for (var i in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); return t }).apply(this, arguments) }, DE = { xml: !1, decodeEntities: !0 }, a$ = { _useHtmlParser2: !0, xmlMode: !0 }; function rE(t) { return t != null && t.xml ? typeof t.xml == "boolean" ? a$ : nE(nE({}, a$), t.xml) : t ?? void 0 } (function (t) { t.Root = "root", t.Text = "text", t.Directive = "directive", t.Comment = "comment", t.Script = "script", t.Style = "style", t.Tag = "tag", t.CDATA = "cdata", t.Doctype = "doctype" })(pn = pn || {}); var Hme = pn.Root, Vme = pn.Text, qme = pn.Directive, zme = pn.Comment, Gme = pn.Script, Jme = pn.Style, Kme = pn.Tag, Xme = pn.CDATA, Wme = pn.Doctype, L7 = class { constructor() { this.parent = null, this.prev = null, this.next = null, this.startIndex = null, this.endIndex = null } get parentNode() { return this.parent } set parentNode(e) { this.parent = e } get previousSibling() { return this.prev } set previousSibling(e) { this.prev = e } get nextSibling() { return this.next } set nextSibling(e) { this.next = e } cloneNode(e = !1) { return U7(this, e) } }, e5 = class extends L7 { constructor(e) { super(), this.data = e } get nodeValue() { return this.data } set nodeValue(e) { this.data = e } }, tu = class extends e5 { constructor() { super(...arguments), this.type = pn.Text } get nodeType() { return 3 } }, t5 = class extends e5 { constructor() { super(...arguments), this.type = pn.Comment } get nodeType() { return 8 } }, n5 = class extends e5 { constructor(e, n) { super(n), this.name = e, this.type = pn.Directive } get nodeType() { return 1 } }, r5 = class extends L7 { constructor(e) { super(), this.children = e } get firstChild() { var e; return (e = this.children[0]) != null ? e : null } get lastChild() { return 0 < this.children.length ? this.children[this.children.length - 1] : null } get childNodes() { return this.children } set childNodes(e) { this.children = e } }, F7 = class extends r5 { constructor() { super(...arguments), this.type = pn.CDATA } get nodeType() { return 4 } }, i2 = class extends r5 { constructor() { super(...arguments), this.type = pn.Root } get nodeType() { return 9 } }, i5 = class extends r5 { constructor(e, n, r = [], i = e === "script" ? pn.Script : e === "style" ? pn.Style : pn.Tag) { super(r), this.name = e, this.attribs = n, this.type = i } get nodeType() { return 1 } get tagName() { return this.name } set tagName(e) { this.name = e } get attributes() { return Object.keys(this.attribs).map(e => { var n; return { name: e, value: this.attribs[e], namespace: (n = this["x-attribsNamespace"]) == null ? void 0 : n[e], prefix: (n = this["x-attribsPrefix"]) == null ? void 0 : n[e] } }) } }; function yt(t) { return t.type === pn.Tag || t.type === pn.Script || t.type === pn.Style } function j7(t) { return t.type === pn.CDATA } function da(t) { return t.type === pn.Text } function W7(t) { return t.type === pn.Comment } function iE(t) { return t.type === pn.Directive } function nu(t) { return t.type === pn.Root } function gi(t) { return Object.prototype.hasOwnProperty.call(t, "children") } function U7(t, e = !1) { let n; if (da(t)) n = new tu(t.data); else if (W7(t)) n = new t5(t.data); else if (yt(t)) { let r = e ? F_(t.children) : [], i = new i5(t.name, { ...t.attribs }, r); r.forEach(l => l.parent = i), t.namespace != null && (i.namespace = t.namespace), t["x-attribsNamespace"] && (i["x-attribsNamespace"] = { ...t["x-attribsNamespace"] }), t["x-attribsPrefix"] && (i["x-attribsPrefix"] = { ...t["x-attribsPrefix"] }), n = i } else if (j7(t)) { let r = e ? F_(t.children) : [], i = new F7(r); r.forEach(l => l.parent = i), n = i } else if (nu(t)) { let r = e ? F_(t.children) : [], i = new i2(r); r.forEach(l => l.parent = i), t["x-mode"] && (i["x-mode"] = t["x-mode"]), n = i } else { if (!iE(t)) throw new Error("Not implemented yet: " + t.type); { let r = new n5(t.name, t.data); t["x-name"] != null && (r["x-name"] = t["x-name"], r["x-publicId"] = t["x-publicId"], r["x-systemId"] = t["x-systemId"]), n = r } } return n.startIndex = t.startIndex, n.endIndex = t.endIndex, t.sourceCodeLocation != null && (n.sourceCodeLocation = t.sourceCodeLocation), n } function F_(t) { var e = t.map(n => U7(n, !0)); for (let n = 1; n < e.length; n++)e[n].prev = e[n - 1], e[n - 1].next = e[n]; return e } var o$ = { withStartIndices: !1, withEndIndices: !1, xmlMode: !1 }, lE = class { constructor(e, n, r) { this.dom = [], this.root = new i2(this.dom), this.done = !1, this.tagStack = [this.root], this.lastNode = null, this.parser = null, typeof n == "function" && (r = n, n = o$), typeof e == "object" && (n = e, e = void 0), this.callback = e ?? null, this.options = n ?? o$, this.elementCB = r ?? null } onparserinit(e) { this.parser = e } onreset() { this.dom = [], this.root = new i2(this.dom), this.done = !1, this.tagStack = [this.root], this.lastNode = null, this.parser = null } onend() { this.done || (this.done = !0, this.parser = null, this.handleCallback(null)) } onerror(e) { this.handleCallback(e) } onclosetag() { this.lastNode = null; var e = this.tagStack.pop(); this.options.withEndIndices && (e.endIndex = this.parser.endIndex), this.elementCB && this.elementCB(e) } onopentag(i, n) { var r = this.options.xmlMode ? pn.Tag : void 0, i = new i5(i, n, void 0, r); this.addNode(i), this.tagStack.push(i) } ontext(e) { var n = this.lastNode; if (n && n.type === pn.Text) n.data += e, this.options.withEndIndices && (n.endIndex = this.parser.endIndex); else { let r = new tu(e); this.addNode(r), this.lastNode = r } } oncomment(e) { this.lastNode && this.lastNode.type === pn.Comment ? this.lastNode.data += e : (e = new t5(e), this.addNode(e), this.lastNode = e) } oncommentend() { this.lastNode = null } oncdatastart() { var e = new tu(""), n = new F7([e]); this.addNode(n), e.parent = n, this.lastNode = e } oncdataend() { this.lastNode = null } onprocessinginstruction(e, n) { e = new n5(e, n), this.addNode(e) } handleCallback(e) { if (typeof this.callback == "function") this.callback(e, this.dom); else if (e) throw e } addNode(e) { var n = this.tagStack[this.tagStack.length - 1], r = n.children[n.children.length - 1]; this.options.withStartIndices && (e.startIndex = this.parser.startIndex), this.options.withEndIndices && (e.endIndex = this.parser.endIndex), n.children.push(e), r && ((e.prev = r).next = e), e.parent = n, this.lastNode = null } }, u$ = /["&'<>$\x80-\uFFFF]/g, Yme = new Map([[34, "&quot;"], [38, "&amp;"], [39, "&apos;"], [60, "&lt;"], [62, "&gt;"]]), Qme = String.prototype.codePointAt != null ? (t, e) => t.codePointAt(e) : (t, e) => (64512 & t.charCodeAt(e)) == 55296 ? 1024 * (t.charCodeAt(e) - 55296) + t.charCodeAt(e + 1) - 56320 + 65536 : t.charCodeAt(e); function c$(t) { let e, n = "", r = 0; for (; (e = u$.exec(t)) !== null;) { var i = e.index, l = t.charCodeAt(i), s = Yme.get(l); r = s !== void 0 ? (n += t.substring(r, i) + s, i + 1) : (n += `${t.substring(r, i)}&#x${Qme(t, i).toString(16)};`, u$.lastIndex += +((64512 & l) == 55296)) } return n + t.substr(r) } function CB(t, e) { return function (n) { let r, i = 0, l = ""; for (; r = t.exec(n);)i !== r.index && (l += n.substring(i, r.index)), l += e.get(r[0].charCodeAt(0)), i = r.index + 1; return l + n.substring(i) } } var Zme = CB(/["&\u00A0]/g, new Map([[34, "&quot;"], [38, "&amp;"], [160, "&nbsp;"]])), eye = CB(/[&<>\u00A0]/g, new Map([[38, "&amp;"], [60, "&lt;"], [62, "&gt;"], [160, "&nbsp;"]])), tye = 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(t => [t.toLowerCase(), t])), nye = 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(t => [t.toLowerCase(), t])), rye = new Set(["style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript"]); function iye(t) { return t.replace(/"/g, "&quot;") } var p$ = new Set(["area", "base", "basefont", "br", "col", "command", "embed", "frame", "hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source", "track", "wbr"]); function M7(t, e = {}) { var n = "length" in t ? t : [t]; let r = ""; for (let i = 0; i < n.length; i++)r += lye(n[i], e); return r } function lye(t, e) { switch (t.type) { case Hme: return M7(t.children, e); case Wme: case qme: return `<${t.data}>`; case zme: return `<!--${t.data}-->`; case Xme: return `<![CDATA[${t.children[0].data}]]>`; case Gme: case Jme: case Kme: return function (n, r) { !(r = r.xmlMode === "foreign" && (n.name = (l = tye.get(n.name)) != null ? l : n.name, n.parent) && sye.has(n.parent.name) ? { ...r, xmlMode: !1 } : r).xmlMode && aye.has(n.name) && (r = { ...r, xmlMode: "foreign" }); let i = "<" + n.name; var l = function (s, a) { var o; if (s) { let u = ((o = a.encodeEntities) != null ? o : a.decodeEntities) === !1 ? iye : a.xmlMode || a.encodeEntities !== "utf8" ? c$ : Zme; return Object.keys(s).map(c => { var f, m = (m = s[c]) != null ? m : ""; return a.xmlMode === "foreign" && (c = (f = nye.get(c)) != null ? f : c), a.emptyAttrs || a.xmlMode || m !== "" ? `${c}="${u(m)}"` : c }).join(" ") } }(n.attribs, r); return l && (i += " " + l), n.children.length === 0 && (r.xmlMode ? r.selfClosingTags !== !1 : r.selfClosingTags && p$.has(n.name)) ? (r.xmlMode || (i += " "), i += "/>") : (i += ">", 0 < n.children.length && (i += M7(n.children, r)), !r.xmlMode && p$.has(n.name) || (i += `</${n.name}>`)), i }(t, e); case Vme: return function (n, r) { var i, l = n.data || ""; return ((i = r.encodeEntities) != null ? i : r.decodeEntities) === !1 || !r.xmlMode && n.parent && rye.has(n.parent.name) ? l : (r.xmlMode || r.encodeEntities !== "utf8" ? c$ : eye)(l) }(t, e) } } var sye = new Set(["mi", "mo", "mn", "ms", "mtext", "annotation-xml", "foreignObject", "desc", "title"]), aye = new Set(["svg", "math"]); function f$(t, e) { return M7(t, e) } function i0(t) { return Array.isArray(t) ? t.map(i0).join("") : gi(t) && !W7(t) ? i0(t.children) : da(t) ? t.data : "" } function $7(t) { return Array.isArray(t) ? t.map($7).join("") : gi(t) && (t.type === pn.Tag || j7(t)) ? $7(t.children) : da(t) ? t.data : "" } function Y7(t) { return gi(t) ? t.children : [] } function RB(t) { return t.parent || null } function IB(t) { var e = RB(t); if (e != null) return Y7(e); var n = [t]; let { prev: r, next: i } = t; for (; r != null;)n.unshift(r), { prev: r } = r; for (; i != null;)n.push(i), { next: i } = i; return n } function PE(t) { let e = t.next; for (; e !== null && !yt(e);)({ next: e } = e); return e } function LE(t) { let e = t.prev; for (; e !== null && !yt(e);)({ prev: e } = e); return e } function J3(t) { var e, n; t.prev && (t.prev.next = t.next), t.next && (t.next.prev = t.prev), t.parent && 0 <= (n = (e = t.parent.children).lastIndexOf(t)) && e.splice(n, 1), t.next = null, t.prev = null, t.parent = null } function O7(t, e, n = !0, r = 1 / 0) { return FE(t, Array.isArray(e) ? e : [e], n, r) } function FE(t, e, n, r) { for (var i = [], l = [e], s = [0]; ;)if (s[0] >= l[0].length) { if (s.length === 1) return i; l.shift(), s.shift() } else { let a = l[0][s[0]++]; if (t(a) && (i.push(a), --r <= 0)) return i; n && gi(a) && 0 < a.children.length && (s.unshift(0), l.unshift(a.children)) } } function sE(t, e, n = !0) { let r = null; for (let l = 0; l < e.length && !r; l++) { var i = e[l]; yt(i) && (t(i) ? r = i : n && 0 < i.children.length && (r = sE(t, i.children, !0))) } return r } var B7 = { tag_name: t => typeof t == "function" ? e => yt(e) && t(e.name) : t === "*" ? yt : e => yt(e) && e.name === t, tag_type: t => typeof t == "function" ? e => t(e.type) : e => e.type === t, tag_contains: t => typeof t == "function" ? e => da(e) && t(e.data) : e => da(e) && e.data === t }; function kB(t, e) { return typeof e == "function" ? n => yt(n) && e(n.attribs[t]) : n => yt(n) && n.attribs[t] === e } function oye(t, e) { return n => t(n) || e(n) } function d$(t) { var e = Object.keys(t).map(n => { var r = t[n]; return Object.prototype.hasOwnProperty.call(B7, n) ? B7[n](r) : kB(n, r) }); return e.length === 0 ? null : e.reduce(oye) } function Q1(t, e, n = !0, r = 1 / 0) { return O7(B7.tag_name(t), e, n, r) } function DB(t, e) { var n = [], r = []; if (t === e) return 0; let i = gi(t) ? t : t.parent; for (; i;)n.unshift(i), i = i.parent; for (i = gi(e) ? e : e.parent; i;)r.unshift(i), i = i.parent; var l, s, a, o, u = Math.min(n.length, r.length); let c = 0; for (; c < u && n[c] === r[c];)c++; return c === 0 ? is.DISCONNECTED : (s = (l = n[c - 1]).children, a = n[c], o = r[c], s.indexOf(a) > s.indexOf(o) ? l === e ? is.FOLLOWING | is.CONTAINED_BY : is.FOLLOWING : l === t ? is.PRECEDING | is.CONTAINS : is.PRECEDING) } function l0(t) { return (t = t.filter((e, n, r) => !r.includes(e, n + 1))).sort((e, n) => (e = DB(e, n)) & is.PRECEDING ? -1 : e & is.FOLLOWING ? 1 : 0), t } (function (t) { t[t.DISCONNECTED = 1] = "DISCONNECTED", t[t.PRECEDING = 2] = "PRECEDING", t[t.FOLLOWING = 4] = "FOLLOWING", t[t.CONTAINS = 8] = "CONTAINS", t[t.CONTAINED_BY = 16] = "CONTAINED_BY" })(is = is || {}); var uye = ["url", "type", "lang"], cye = ["fileSize", "bitrate", "framerate", "samplingrate", "channels", "duration", "height", "width"]; function h$(t) { return Q1("media:content", t).map(e => { var n = e.attribs, r = { medium: n.medium, isDefault: !!n.isDefault }; for (let i of uye) n[i] && (r[i] = n[i]); for (let i of cye) n[i] && (r[i] = parseInt(n[i], 10)); return n.expression && (r.expression = n.expression), r }) } function _7(t, e) { return Q1(t, e, !0, 1)[0] } function M2(t, e, n = !1) { return i0(Q1(t, e, n, 1)).trim() } function _l(t, e, n, r, i = !1) { (n = M2(n, r, i)) && (t[e] = n) } function pye(t) { return t === "rss" || t === "feed" || t === "rdf:RDF" } var Q7 = Object.freeze({
__proto__: null, isTag: yt, isCDATA: j7, isText: da, isComment: W7, isDocument: nu, hasChildren: gi, getOuterHTML: f$, getInnerHTML: function (t, e) { return gi(t) ? t.children.map(n => f$(n, e)).join("") : "" }, getText: function t(e) {
return Array.isArray(e) ? e.map(t).join("") : yt(e) ? e.name === "br" ? `
`: t(e.children) : j7(e) ? t(e.children) : da(e) ? e.data : ""
}, textContent: i0, innerText: $7, getChildren: Y7, getParent: RB, getSiblings: IB, getAttributeValue: function (t, e) { return (t = t.attribs) == null ? void 0 : t[e] }, hasAttrib: function (t, e) { return t.attribs != null && Object.prototype.hasOwnProperty.call(t.attribs, e) && t.attribs[e] != null }, getName: function (t) { return t.name }, nextElementSibling: PE, prevElementSibling: LE, removeElement: J3, replaceElement: function (t, e) { let n = e.prev = t.prev; n && (n.next = e); var r = e.next = t.next; if (r && (r.prev = e), r = e.parent = t.parent) { let i = r.children; i[i.lastIndexOf(t)] = e, t.parent = null } }, appendChild: function (t, e) { J3(e), e.next = null, 1 < (e.parent = t).children.push(e) ? ((t = t.children[t.children.length - 2]).next = e).prev = t : e.prev = null }, append: function (t, e) { J3(e); var n = t.parent, r = t.next; if (e.next = r, ((e.prev = t).next = e).parent = n, r) { if (r.prev = e, n) { let i = n.children; i.splice(i.lastIndexOf(r), 0, e) } } else n && n.children.push(e) }, prependChild: function (t, e) { J3(e), e.parent = t, e.prev = null, t.children.unshift(e) !== 1 ? ((t = t.children[1]).prev = e).next = t : e.next = null }, prepend: function (t, e) { J3(e); var n, r = t.parent; r && (n = r.children).splice(n.indexOf(t), 0, e), t.prev && (t.prev.next = e), e.parent = r, e.prev = t.prev, (e.next = t).prev = e }, filter: O7, find: FE, findOneChild: function (t, e) { return e.find(t) }, findOne: sE, existsOne: function t(e, n) { return n.some(r => yt(r) && (e(r) || t(e, r.children))) }, findAll: function (t, e) { for (var n = [], r = [e], i = [0]; ;)if (i[0] >= r[0].length) { if (r.length === 1) return n; r.shift(), i.shift() } else { let l = r[0][i[0]++]; yt(l) && (t(l) && n.push(l), 0 < l.children.length) && (i.unshift(0), r.unshift(l.children)) } }, testElement: function (t, e) { return !(t = d$(t)) || t(e) }, getElements: function (t, e, n, r = 1 / 0) { return (t = d$(t)) ? O7(t, e, n, r) : [] }, getElementById: function (t, e, n = !0) { return Array.isArray(e) || (e = [e]), sE(kB("id", t), e, n) }, getElementsByTagName: Q1, getElementsByTagType: function (t, e, n = !0, r = 1 / 0) { return O7(B7.tag_type(t), e, n, r) }, removeSubsets: function (t) { let e = t.length; for (; 0 <= --e;) { var n = t[e]; if (0 < e && 0 <= t.lastIndexOf(n, e - 1)) t.splice(e, 1); else for (let r = n.parent; r; r = r.parent)if (t.includes(r)) { t.splice(e, 1); break } } return t }, get DocumentPosition() { return is }, compareDocumentPosition: DB, uniqueSort: l0, getFeed: function (t) { return (t = _7(pye, t)) ? (t.name === "feed" ? function (e) { var n = { type: "atom", items: Q1("entry", e = e.children).map(i => { var l = { media: h$(i = i.children) }, s = (_l(l, "id", "id", i), _l(l, "title", "title", i), (s = _7("link", i)) == null ? void 0 : s.attribs.href); return s && (l.link = s), (s = M2("summary", i) || M2("content", i)) && (l.description = s), (s = M2("updated", i)) && (l.pubDate = new Date(s)), l }) }, r = (_l(n, "id", "id", e), _l(n, "title", "title", e), (r = _7("link", e)) == null ? void 0 : r.attribs.href); return r && (n.link = r), _l(n, "description", "subtitle", e), (r = M2("updated", e)) && (n.updated = new Date(r)), _l(n, "author", "email", e, !0), n } : function (r) { var n = (n = (n = _7("channel", r.children)) == null ? void 0 : n.children) != null ? n : [], r = { type: r.name.substr(0, 3), id: "", items: Q1("item", r.children).map(l => { var s = { media: h$(l = l.children) }; return _l(s, "id", "guid", l), _l(s, "title", "title", l), _l(s, "link", "link", l), _l(s, "description", "description", l), (l = M2("pubDate", l) || M2("dc:date", l)) && (s.pubDate = new Date(l)), s }) }, i = (_l(r, "title", "title", n), _l(r, "link", "link", n), _l(r, "description", "description", n), M2("lastBuildDate", n)); return i && (r.updated = new Date(i)), _l(r, "author", "managingEditor", n, !0), r })(t) : null }
}), Z1 = function () { return (Z1 = Object.assign || function (t) { for (var e, n = 1, r = arguments.length; n < r; n++)for (var i in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); return t }).apply(this, arguments) }; function PB(t, e, n) { return t ? t(e ?? t._root.children, null, void 0, n).toString() : "" } function fye(t, e) { return PB(this, function (n) { return !(typeof n != "object" || n == null || "length" in n || "type" in n) }(t) ? void (e = t) : t, Z1(Z1(Z1({}, DE), this == null ? void 0 : this._options), rE(e ?? {}))) } function dye(t) { return PB(this, t, Z1(Z1({}, this._options), { xmlMode: !0 })) } function l5(t) { for (var e = t || (this ? this.root() : []), n = "", r = 0; r < e.length; r++)n += i0(e[r]); return n } function hye(t, e, n) { return n === void 0 && (n = typeof e == "boolean" && e), t && typeof t == "string" ? (typeof e == "boolean" && (n = e), e = this.load(t, DE, !1), n || e("script").remove(), e.root()[0].children.slice()) : null } function mye() { return this(this._root) } function LB(t, e) { if (e !== t) { for (var n = e; n && n !== n.parent;)if ((n = n.parent) === t) return !0 } return !1 } function yye(t, e) { if (m$(t) && m$(e)) { for (var n = t.length, r = +e.length, i = 0; i < r; i++)t[n++] = e[i]; return t.length = n, t } } function m$(t) { if (!Array.isArray(t)) { if (typeof t != "object" || !Object.prototype.hasOwnProperty.call(t, "length") || typeof t.length != "number" || t.length < 0) return !1; for (var e = 0; e < t.length; e++)if (!(e in t)) return !1 } return !0 } var K3, gye = Object.freeze({ __proto__: null, html: fye, xml: dye, text: l5, parseHTML: hye, root: mye, contains: LB, merge: yye }); function fa(t) { return t.cheerio != null } function Nr(t, e) { for (var n = t.length, r = 0; r < n; r++)e(t[r], r); return t } function j_(e) { var e = "length" in e ? Array.prototype.map.call(e, function (r) { return U7(r, !0) }) : [U7(e, !0)], n = new i2(e); return e.forEach(function (r) { r.parent = n }), e } function aE(t) { var e, n = t.indexOf("<"); return !(n < 0 || n > t.length - 3) && ((e = t.charCodeAt(n + 1)) >= K3.LowerA && e <= K3.LowerZ || e >= K3.UpperA && e <= K3.UpperZ || e === K3.Exclamation) && t.includes(">", n + 2) } (function (t) { t[t.LowerA = 97] = "LowerA", t[t.LowerZ = 122] = "LowerZ", t[t.UpperA = 65] = "UpperA", t[t.UpperZ = 90] = "UpperZ", t[t.Exclamation = 33] = "Exclamation" })(K3 = K3 || {}); var e0 = Object.prototype.hasOwnProperty, Hc = /\s+/, U_ = "data-", y$ = { null: null, true: !0, false: !1 }, jE = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, vye = /^{[^]*}$|^\[[^]*]$/; function H7(t, e, n) { if (t && yt(t)) return t.attribs == null && (t.attribs = {}), e ? e0.call(t.attribs, e) ? !n && jE.test(e) ? e : t.attribs[e] : t.name === "option" && e === "value" ? l5(t.children) : t.name !== "input" || t.attribs.type !== "radio" && t.attribs.type !== "checkbox" || e !== "value" ? void 0 : "on" : t.attribs } function V1(t, e, n) { n === null ? FB(t, e) : t.attribs[e] = "".concat(n) } function g$(t, e, n) { return e in t ? t[e] : !n && jE.test(e) ? H7(t, e, !1) !== void 0 : H7(t, e, n) } function M_(t, e, n, r) { e in t ? t[e] = n : V1(t, e, !r && jE.test(e) ? n ? "" : null : "".concat(n)) } function v$(t, e, n) { t.data == null && (t.data = {}), typeof e == "object" ? Object.assign(t.data, e) : typeof e == "string" && n !== void 0 && (t.data[e] = n) } function _$(t, e) { for (var n, r, i = e == null ? (n = Object.keys(t.attribs).filter(function (o) { return o.startsWith(U_) })).map(function (o) { return o.slice(U_.length).replace(/[_.-](\w|$)/g, function (u, c) { return c.toUpperCase() }) }) : (n = [U_ + e.replace(/[A-Z]/g, "-$&").toLowerCase()], [e]), l = 0; l < n.length; ++l) { var s = n[l], a = i[l]; if (e0.call(t.attribs, s) && !e0.call(t.data, a)) { if (r = t.attribs[s], e0.call(y$, r)) r = y$[r]; else if (r === String(Number(r))) r = Number(r); else if (vye.test(r)) try { r = JSON.parse(r) } catch { } t.data[a] = r } } return e == null ? t.data : r } function FB(t, e) { t.attribs && e0.call(t.attribs, e) && delete t.attribs[e] } function E7(t) { return t ? t.trim().split(Hc) : [] } var at, Qr, _ye = Object.freeze({ __proto__: null, attr: function (t, e) { if (typeof t != "object" && e === void 0) return 1 < arguments.length ? this : H7(this[0], t, this.options.xmlMode); if (typeof e != "function") return Nr(this, function (n) { yt(n) && (typeof t == "object" ? Object.keys(t).forEach(function (r) { var i = t[r]; V1(n, r, i) }) : V1(n, t, e)) }); if (typeof t != "string") throw new Error("Bad combination of arguments."); return Nr(this, function (n, r) { yt(n) && V1(n, t, e.call(n, r, n.attribs[t])) }) }, prop: function (t, e) { var n = this; if (typeof t == "string" && e === void 0) { var r = this[0]; if (!r || !yt(r)) return; switch (t) { case "style": var i = this.css(), l = Object.keys(i); return l.forEach(function (s, a) { i[a] = s }), i.length = l.length, i; case "tagName": case "nodeName": return r.name.toUpperCase(); case "href": case "src": return l = (l = r.attribs) == null ? void 0 : l[t], typeof URL > "u" || (t !== "href" || r.tagName !== "a" && r.name !== "link") && (t !== "src" || r.tagName !== "img" && r.tagName !== "iframe" && r.tagName !== "audio" && r.tagName !== "video" && r.tagName !== "source") || l === void 0 || !this.options.baseURI ? l : new URL(l, this.options.baseURI).href; case "innerText": return $7(r); case "textContent": return i0(r); case "outerHTML": return this.clone().wrap("<container />").parent().html(); case "innerHTML": return this.html(); default: return g$(r, t, this.options.xmlMode) } } if (typeof t == "object" || e !== void 0) { if (typeof e != "function") return Nr(this, function (s) { yt(s) && (typeof t == "object" ? Object.keys(t).forEach(function (a) { var o = t[a]; M_(s, a, o, n.options.xmlMode) }) : M_(s, t, e, n.options.xmlMode)) }); if (typeof t == "object") throw new Error("Bad combination of arguments."); return Nr(this, function (s, a) { yt(s) && M_(s, t, e.call(s, a, g$(s, t, n.options.xmlMode)), n.options.xmlMode) }) } }, data: function (t, e) { var n = this[0]; if (n && yt(n)) return n.data == null && (n.data = {}), t ? typeof t == "object" || e !== void 0 ? (Nr(this, function (r) { yt(r) && (typeof t == "object" ? v$(r, t) : v$(r, t, e)) }), this) : e0.call(n.data, t) ? n.data[t] : _$(n, t) : _$(n) }, val: function (t) { var e = arguments.length === 0, n = this[0]; if (!n || !yt(n)) return e ? void 0 : this; switch (n.name) { case "textarea": return this.text(t); case "select": var r = this.find("option:selected"); if (e) return this.attr("multiple") ? r.toArray().map(function (s) { return l5(s.children) }) : r.attr("value"); if (this.attr("multiple") != null || typeof t != "object") { this.find("option").removeAttr("selected"); for (var i = typeof t != "object" ? [t] : t, l = 0; l < i.length; l++)this.find('option[value="'.concat(i[l], '"]')).attr("selected", "") } return this; case "input": case "option": return e ? this.attr("value") : this.attr("value", t) } }, removeAttr: function (t) { for (var e = E7(t), n = this, r = 0; r < e.length; r++)(function (i) { Nr(n, function (l) { yt(l) && FB(l, e[i]) }) })(r); return this }, hasClass: function (t) { return this.toArray().some(function (e) { var n = yt(e) && e.attribs.class, r = -1; if (n && t.length) for (; -1 < (r = n.indexOf(t, r + 1));) { var i = r + t.length; if ((r === 0 || Hc.test(n[r - 1])) && (i === n.length || Hc.test(n[i]))) return !0 } return !1 }) }, addClass: function t(e) { if (typeof e == "function") return Nr(this, function (c, f) { var m; yt(c) && (m = c.attribs.class || "", t.call([c], e.call(c, f, m))) }); if (e && typeof e == "string") for (var n = e.split(Hc), r = this.length, i = 0; i < r; i++) { var l = this[i]; if (yt(l)) { var s = H7(l, "class", !1); if (s) { for (var a = " ".concat(s, " "), o = 0; o < n.length; o++) { var u = "".concat(n[o], " "); a.includes(" ".concat(u)) || (a += u) } V1(l, "class", a.trim()) } else V1(l, "class", n.join(" ").trim()) } } return this }, removeClass: function t(e) { var n, r, i; return typeof e == "function" ? Nr(this, function (l, s) { yt(l) && t.call([l], e.call(l, s, l.attribs.class || "")) }) : (n = E7(e), r = n.length, i = arguments.length === 0, Nr(this, function (l) { if (yt(l)) if (i) l.attribs.class = ""; else { for (var s = E7(l.attribs.class), a = !1, o = 0; o < r; o++) { var u = s.indexOf(n[o]); 0 <= u && (s.splice(u, 1), a = !0, o--) } a && (l.attribs.class = s.join(" ")) } })) }, toggleClass: function t(e, n) { if (typeof e == "function") return Nr(this, function (m, d) { yt(m) && t.call([m], e.call(m, d, m.attribs.class || "", n), n) }); if (e && typeof e == "string") for (var r = e.split(Hc), i = r.length, l = typeof n == "boolean" ? n ? 1 : -1 : 0, s = this.length, a = 0; a < s; a++) { var o = this[a]; if (yt(o)) { for (var u = E7(o.attribs.class), c = 0; c < i; c++) { var f = u.indexOf(r[c]); 0 <= l && f < 0 ? u.push(r[c]) : l <= 0 && 0 <= f && u.splice(f, 1) } o.attribs.class = u.join(" ") } } return this } }); (function (t) { t.Attribute = "attribute", t.Pseudo = "pseudo", t.PseudoElement = "pseudo-element", t.Tag = "tag", t.Universal = "universal", t.Adjacent = "adjacent", t.Child = "child", t.Descendant = "descendant", t.Parent = "parent", t.Sibling = "sibling", t.ColumnCombinator = "column-combinator" })(at = at || {}), function (t) { t.Any = "any", t.Element = "element", t.End = "end", t.Equals = "equals", t.Exists = "exists", t.Hyphen = "hyphen", t.Not = "not", t.Start = "start" }(Qr = Qr || {}); var E$ = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/, Eye = /\\([\da-f]{1,6}\s?|(\s)|.)/gi, bye = new Map([[126, Qr.Element], [94, Qr.Start], [36, Qr.End], [42, Qr.Any], [33, Qr.Not], [124, Qr.Hyphen]]), wye = new Set(["has", "not", "matches", "is", "where", "host", "host-context"]); function Xc(t) { switch (t.type) { case at.Adjacent: case at.Child: case at.Descendant: case at.Parent: case at.Sibling: case at.ColumnCombinator: return !0; default: return !1 } } var Sye = new Set(["contains", "icontains"]); function Tye(t, e, n) { var r = parseInt(e, 16) - 65536; return r != r || n ? e : r < 0 ? String.fromCharCode(65536 + r) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) } function Dc(t) { return t.replace(Eye, Tye) } function $_(t) { return t === 39 || t === 34 } function b$(t) { return t === 32 || t === 9 || t === 10 || t === 12 || t === 13 } function Z7(t) { var e = [], n = jB(e, "" + t, 0); if (n < t.length) throw new Error("Unmatched selector: " + t.slice(n)); return e } function jB(t, e, n) { let r = []; function i(d) { var y = e.slice(n + d).match(E$); if (y) return [y] = y, n += d + y.length, Dc(y); throw new Error("Expected name, found " + e.slice(n)) } function l(d) { for (n += d; n < e.length && b$(e.charCodeAt(n));)n++ } function s() { var d = n += 1; let y = 1; for (; 0 < y && n < e.length; n++)e.charCodeAt(n) !== 40 || a(n) ? e.charCodeAt(n) !== 41 || a(n) || y-- : y++; if (y) throw new Error("Parenthesis not matched"); return Dc(e.slice(d, n - 1)) } function a(d) { let y = 0; for (; e.charCodeAt(--d) === 92;)y++; return (1 & y) == 1 } function o() { if (0 < r.length && Xc(r[r.length - 1])) throw new Error("Did not expect successive traversals.") } function u(d) { 0 < r.length && r[r.length - 1].type === at.Descendant ? r[r.length - 1].type = d : (o(), r.push({ type: d })) } function c(d, y) { r.push({ type: at.Attribute, name: d, action: y, value: i(1), namespace: null, ignoreCase: "quirks" }) } function f() { if (r.length && r[r.length - 1].type === at.Descendant && r.pop(), r.length === 0) throw new Error("Empty sub-selector"); t.push(r) } if (l(0), e.length !== n) { e: for (; n < e.length;) { let d = e.charCodeAt(n); switch (d) { case 32: case 9: case 10: case 12: case 13: r.length !== 0 && r[0].type === at.Descendant || (o(), r.push({ type: at.Descendant })), l(1); break; case 62: u(at.Child), l(1); break; case 60: u(at.Parent), l(1); break; case 126: u(at.Sibling), l(1); break; case 43: u(at.Adjacent), l(1); break; case 46: c("class", Qr.Element); break; case 35: c("id", Qr.Equals); break; case 91: { let y, _ = (l(1), null), S = (e.charCodeAt(n) === 124 ? y = i(1) : e.startsWith("*|", n) ? (_ = "*", y = i(2)) : (y = i(0), e.charCodeAt(n) === 124 && e.charCodeAt(n + 1) !== 61 && (_ = y, y = i(1))), l(0), Qr.Exists), w = bye.get(e.charCodeAt(n)); if (w) { if (S = w, e.charCodeAt(n + 1) !== 61) throw new Error("Expected `=`"); l(2) } else e.charCodeAt(n) === 61 && (S = Qr.Equals, l(1)); let E = "", g = null; if (S !== "exists") { if ($_(e.charCodeAt(n))) { let x = e.charCodeAt(n), O = n + 1; for (; O < e.length && (e.charCodeAt(O) !== x || a(O));)O += 1; if (e.charCodeAt(O) !== x) throw new Error("Attribute value didn't end"); E = Dc(e.slice(n + 1, O)), n = O + 1 } else { let x = n; for (; n < e.length && (!b$(e.charCodeAt(n)) && e.charCodeAt(n) !== 93 || a(n));)n += 1; E = Dc(e.slice(x, n)) } l(0); let v = 32 | e.charCodeAt(n); v == 115 ? (g = !1, l(1)) : v == 105 && (g = !0, l(1)) } if (e.charCodeAt(n) !== 93) throw new Error("Attribute selector didn't terminate"); n += 1; var m = { type: at.Attribute, name: y, action: S, value: E, namespace: _, ignoreCase: g }; r.push(m); break } case 58: { if (e.charCodeAt(n + 1) === 58) { r.push({ type: at.PseudoElement, name: i(2).toLowerCase(), data: e.charCodeAt(n) === 40 ? s() : null }); continue } let y = i(1).toLowerCase(), _ = null; if (e.charCodeAt(n) === 40) if (wye.has(y)) { if ($_(e.charCodeAt(n + 1))) throw new Error(`Pseudo-selector ${y} cannot be quoted`); if (_ = [], n = jB(_, e, n + 1), e.charCodeAt(n) !== 41) throw new Error(`Missing closing parenthesis in :${y} (${e})`); n += 1 } else { if (_ = s(), Sye.has(y)) { let S = _.charCodeAt(0); S === _.charCodeAt(_.length - 1) && $_(S) && (_ = _.slice(1, -1)) } _ = Dc(_) } r.push({ type: at.Pseudo, name: y, data: _ }); break } case 44: f(), r = [], l(1); break; default: if (e.startsWith("/*", n)) { let y = e.indexOf("*/", n + 2); if (y < 0) throw new Error("Comment was not terminated"); n = y + 2, r.length === 0 && l(0) } else { let y, _ = null; if (d === 42) n += 1, y = "*"; else if (d === 124) { if (y = "", e.charCodeAt(n + 1) === 124) { u(at.ColumnCombinator), l(2); break } } else { if (!E$.test(e.slice(n))) break e; y = i(0) } e.charCodeAt(n) === 124 && e.charCodeAt(n + 1) !== 124 && (_ = y, e.charCodeAt(n + 1) === 42 ? (y = "*", n += 2) : y = i(1)), r.push(y === "*" ? { type: at.Universal, namespace: _ } : { type: at.Tag, name: y, namespace: _ }) } } } f() } return n } var w$, Pt = { trueFunc: function () { return !0 }, falseFunc: function () { return !1 } }, oE = Pt.trueFunc, UB = new Map([[at.Universal, 50], [at.Tag, 30], [at.Attribute, 1], [at.Pseudo, 0]]); function uE(t) { return !UB.has(t.type) } var xye = new Map([[Qr.Exists, 10], [Qr.Equals, 8], [Qr.Not, 7], [Qr.Start, 6], [Qr.End, 6], [Qr.Any, 5]]); function Aye(t) { var e = t.map(MB); for (let r = 1; r < t.length; r++) { var n = e[r]; if (!(n < 0)) for (let i = r - 1; 0 <= i && n < e[i]; i--) { let l = t[i + 1]; t[i + 1] = t[i], t[i] = l, e[i + 1] = e[i], e[i] = n } } } function MB(t) { var e; let n = (e = UB.get(t.type)) != null ? e : -1; return t.type === at.Attribute ? (n = (e = xye.get(t.action)) != null ? e : 4, t.action === Qr.Equals && t.name === "id" && (n = 9), t.ignoreCase && (n >>= 1)) : t.type === at.Pseudo && (t.data ? t.name === "has" || t.name === "contains" ? n = 0 : Array.isArray(t.data) ? (n = Math.min(...t.data.map(r => Math.min(...r.map(MB))))) < 0 && (n = 0) : n = 2 : n = 3), n } var Oye = /[-[\]{}()*+?.,\\^$|#\s]/g; function S$(t) { return t.replace(Oye, "\\$&") } var Nye = 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 z3(t, e) { return typeof t.ignoreCase == "boolean" ? t.ignoreCase : t.ignoreCase === "quirks" ? !!e.quirksMode : !e.xmlMode && Nye.has(t.name) } var Cye = { equals(t, e, n) { let r = n.adapter, i = e.name, l = e.value; return z3(e, n) ? (l = l.toLowerCase(), s => { var a = r.getAttributeValue(s, i); return a != null && a.length === l.length && a.toLowerCase() === l && t(s) }) : s => r.getAttributeValue(s, i) === l && t(s) }, hyphen(t, e, n) { let r = n.adapter, i = e.name, l = e.value, s = l.length; return z3(e, n) ? (l = l.toLowerCase(), function (a) { var o = r.getAttributeValue(a, i); return o != null && (o.length === s || o.charAt(s) === "-") && o.substr(0, s).toLowerCase() === l && t(a) }) : function (a) { var o = r.getAttributeValue(a, i); return o != null && (o.length === s || o.charAt(s) === "-") && o.substr(0, s) === l && t(a) } }, element(t, e, n) { let r = n.adapter, { name: i, value: l } = e; if (/\s/.test(l)) return Pt.falseFunc; let s = new RegExp(`(?:^|\\s)${S$(l)}(?:$|\\s)`, z3(e, n) ? "i" : ""); return function (a) { var o = r.getAttributeValue(a, i); return o != null && o.length >= l.length && s.test(o) && t(a) } }, exists: (t, { name: e }, { adapter: n }) => r => n.hasAttrib(r, e) && t(r), start(t, e, n) { let r = n.adapter, i = e.name, l = e.value, s = l.length; return s === 0 ? Pt.falseFunc : z3(e, n) ? (l = l.toLowerCase(), a => { var o = r.getAttributeValue(a, i); return o != null && o.length >= s && o.substr(0, s).toLowerCase() === l && t(a) }) : a => { var o; return !((o = r.getAttributeValue(a, i)) == null || !o.startsWith(l)) && t(a) } }, end(t, e, n) { let r = n.adapter, i = e.name, l = e.value, s = -l.length; return s == 0 ? Pt.falseFunc : z3(e, n) ? (l = l.toLowerCase(), a => { var o; return ((o = r.getAttributeValue(a, i)) == null ? void 0 : o.substr(s).toLowerCase()) === l && t(a) }) : a => { var o; return !((o = r.getAttributeValue(a, i)) == null || !o.endsWith(l)) && t(a) } }, any(t, e, n) { let r = n.adapter, { name: i, value: l } = e; if (l === "") return Pt.falseFunc; if (z3(e, n)) { let s = new RegExp(S$(l), "i"); return function (a) { var o = r.getAttributeValue(a, i); return o != null && o.length >= l.length && s.test(o) && t(a) } } return s => { var a; return !((a = r.getAttributeValue(s, i)) == null || !a.includes(l)) && t(s) } }, not(t, e, n) { let r = n.adapter, i = e.name, l = e.value; return l === "" ? s => !!r.getAttributeValue(s, i) && t(s) : z3(e, n) ? (l = l.toLowerCase(), s => { var a = r.getAttributeValue(s, i); return (a == null || a.length !== l.length || a.toLowerCase() !== l) && t(s) }) : s => r.getAttributeValue(s, i) !== l && t(s) } }, Rye = new Set([9, 10, 12, 13, 32]), T$ = 48, Iye = 57; function b7(t) { return function (e) { let n = e[0], r = e[1] - 1; if (r < 0 && n <= 0) return Pt.falseFunc; if (n === -1) return s => s <= r; if (n === 0) return s => s === r; if (n === 1) return r < 0 ? Pt.trueFunc : s => s >= r; let i = Math.abs(n), l = (r % i + i) % i; return 1 < n ? s => s >= r && s % i == l : s => s <= r && s % i == l }(function (e) { if ((e = e.trim().toLowerCase()) === "even") return [2, 0]; if (e === "odd") return [2, 1]; let n = 0, r = 0, i = s(), l = a(); if (n < e.length && e.charAt(n) === "n" && (n++, r = i * (l ?? 1), o(), n < e.length ? (i = s(), o(), l = a()) : i = l = 0), l === null || n < e.length) throw new Error(`n-th rule couldn't be parsed ('${e}')`); return [r, i * l]; function s() { return e.charAt(n) === "-" ? (n++, -1) : (e.charAt(n) === "+" && n++, 1) } function a() { var u = n; let c = 0; for (; n < e.length && e.charCodeAt(n) >= T$ && e.charCodeAt(n) <= Iye;)c = 10 * c + (e.charCodeAt(n) - T$), n++; return n === u ? null : c } function o() { for (; n < e.length && Rye.has(e.charCodeAt(n));)n++ } }(t)) } function w7(t, e) { return n => { var r = e.getParent(n); return r != null && e.isTag(r) && t(n) } } var cE = { contains: (t, e, { adapter: n }) => function (r) { return t(r) && n.getText(r).includes(e) }, icontains(t, e, { adapter: n }) { let r = e.toLowerCase(); return function (i) { return t(i) && n.getText(i).toLowerCase().includes(r) } }, "nth-child"(t, e, { adapter: n, equals: r }) { let i = b7(e); return i === Pt.falseFunc ? Pt.falseFunc : i === Pt.trueFunc ? w7(t, n) : function (l) { var s = n.getSiblings(l); let a = 0; for (let o = 0; o < s.length && !r(l, s[o]); o++)n.isTag(s[o]) && a++; return i(a) && t(l) } }, "nth-last-child"(t, e, { adapter: n, equals: r }) { let i = b7(e); return i === Pt.falseFunc ? Pt.falseFunc : i === Pt.trueFunc ? w7(t, n) : function (l) { var s = n.getSiblings(l); let a = 0; for (let o = s.length - 1; 0 <= o && !r(l, s[o]); o--)n.isTag(s[o]) && a++; return i(a) && t(l) } }, "nth-of-type"(t, e, { adapter: n, equals: r }) { let i = b7(e); return i === Pt.falseFunc ? Pt.falseFunc : i === Pt.trueFunc ? w7(t, n) : function (l) { var s = n.getSiblings(l); let a = 0; for (let o = 0; o < s.length; o++) { let u = s[o]; if (r(l, u)) break; n.isTag(u) && n.getName(u) === n.getName(l) && a++ } return i(a) && t(l) } }, "nth-last-of-type"(t, e, { adapter: n, equals: r }) { let i = b7(e); return i === Pt.falseFunc ? Pt.falseFunc : i === Pt.trueFunc ? w7(t, n) : function (l) { var s = n.getSiblings(l); let a = 0; for (let o = s.length - 1; 0 <= o; o--) { let u = s[o]; if (r(l, u)) break; n.isTag(u) && n.getName(u) === n.getName(l) && a++ } return i(a) && t(l) } }, root: (t, e, { adapter: n }) => r => { var i = n.getParent(r); return (i == null || !n.isTag(i)) && t(r) }, scope(t, e, n, r) { let i = n.equals; return r && r.length !== 0 ? r.length === 1 ? l => i(r[0], l) && t(l) : l => r.includes(l) && t(l) : cE.root(t, e, n) }, hover: B_("isHovered"), visited: B_("isVisited"), active: B_("isActive") }; function B_(t) { return function (e, n, { adapter: r }) { let i = r[t]; return typeof i != "function" ? Pt.falseFunc : function (l) { return i(l) && e(l) } } } var x$ = { empty: (t, { adapter: e }) => !e.getChildren(t).some(n => e.isTag(n) || e.getText(n) !== ""), "first-child"(t, { adapter: e, equals: n }) { var r; return e.prevElementSibling ? e.prevElementSibling(t) == null : (r = e.getSiblings(t).find(i => e.isTag(i))) != null && n(t, r) }, "last-child"(t, { adapter: e, equals: n }) { var r = e.getSiblings(t); for (let i = r.length - 1; 0 <= i; i--) { if (n(t, r[i])) return !0; if (e.isTag(r[i])) break } return !1 }, "first-of-type"(t, { adapter: e, equals: n }) { var r = e.getSiblings(t), i = e.getName(t); for (let s = 0; s < r.length; s++) { var l = r[s]; if (n(t, l)) return !0; if (e.isTag(l) && e.getName(l) === i) break } return !1 }, "last-of-type"(t, { adapter: e, equals: n }) { var r = e.getSiblings(t), i = e.getName(t); for (let s = r.length - 1; 0 <= s; s--) { var l = r[s]; if (n(t, l)) return !0; if (e.isTag(l) && e.getName(l) === i) break } return !1 }, "only-of-type"(t, { adapter: e, equals: n }) { let r = e.getName(t); return e.getSiblings(t).every(i => n(t, i) || !e.isTag(i) || e.getName(i) !== r) }, "only-child": (t, { adapter: e, equals: n }) => e.getSiblings(t).every(r => n(t, r) || !e.isTag(r)) }; function A$(t, e, n, r) { if (n === null) { if (t.length > r) throw new Error(`Pseudo-class :${e} requires an argument`) } else if (t.length === r) throw new Error(`Pseudo-class :${e} doesn't have any arguments`) } var kye = {
"any-link": ":is(a, area, link)[href]", link: ":any-link:not(:visited)", disabled: `:is(
:is(button, input, select, textarea, optgroup, option)[disabled],
optgroup[disabled] > option,
fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)
)`, 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])", 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])"
}, $B = {}; function BB(t, e) { var n = e.getSiblings(t); return n.length <= 1 || (t = n.indexOf(t)) < 0 || t === n.length - 1 ? [] : n.slice(t + 1).filter(e.isTag) } function pE(t) { return { xmlMode: !!t.xmlMode, lowerCaseAttributeNames: !!t.lowerCaseAttributeNames, lowerCaseTags: !!t.lowerCaseTags, quirksMode: !!t.quirksMode, cacheResults: !!t.cacheResults, pseudos: t.pseudos, adapter: t.adapter, equals: t.equals } } var H_ = (t, e, n, r, i) => { let l = i(e, pE(n), r); return l === Pt.trueFunc ? t : l === Pt.falseFunc ? Pt.falseFunc : s => l(s) && t(s) }, V_ = { is: H_, matches: H_, where: H_, not(t, e, n, r, i) { let l = i(e, pE(n), r); return l === Pt.falseFunc ? t : l === Pt.trueFunc ? Pt.falseFunc : s => !l(s) && t(s) }, has(t, e, n, r, i) { let l = n.adapter, s = pE(n), a = (s.relativeSelector = !0, e.some(c => c.some(uE)) ? [$B] : void 0), o = i(e, s, a); if (o === Pt.falseFunc) return Pt.falseFunc; let u = function (c, f) { return c === Pt.falseFunc ? Pt.falseFunc : m => f.isTag(m) && c(m) }(o, l); if (a && o !== Pt.trueFunc) { let { shouldTestNextSiblings: c = !1 } = o; return d => { if (!t(d)) return !1; a[0] = d; var m = l.getChildren(d), d = c ? [...m, ...BB(d, l)] : m; return l.existsOne(u, d) } } return c => t(c) && l.existsOne(u, l.getChildren(c)) } }; function q_(t, e) { return (t = e.getParent(t)) && e.isTag(t) ? t : null } function Dye(t, e, n, r, i) { let { adapter: l, equals: s } = n; switch (e.type) { case at.PseudoElement: throw new Error("Pseudo-elements are not supported by css-select"); case at.ColumnCombinator: throw new Error("Column combinators are not yet supported by css-select"); case at.Attribute: if (e.namespace != null) throw new Error("Namespaced attributes are not yet supported by css-select"); return n.xmlMode && !n.lowerCaseAttributeNames || (e.name = e.name.toLowerCase()), Cye[e.action](t, e, n); case at.Pseudo: return function (a, o, u, c, f) { let { name: m, data: d } = o; if (Array.isArray(d)) { if (m in V_) return V_[m](a, d, u, c, f); throw new Error(`Unknown pseudo-class :${m}(${d})`) } let y = (o = u.pseudos) == null ? void 0 : o[m], _ = typeof y == "string" ? y : kye[m]; if (typeof _ == "string") { if (d != null) throw new Error(`Pseudo ${m} doesn't have any arguments`); let S = Z7(_); return V_.is(a, S, u, c, f) } if (typeof y == "function") return A$(y, m, d, 1), S => y(S, d) && a(S); if (m in cE) return cE[m](a, d, u, c); if (m in x$) { let S = x$[m]; return A$(S, m, d, 2), w => S(w, u, d) && a(w) } throw new Error("Unknown pseudo-class :" + m) }(t, e, n, r, i); case at.Tag: { if (e.namespace != null) throw new Error("Namespaced tag names are not yet supported by css-select"); let a = e.name; return n.xmlMode && !n.lowerCaseTags || (a = a.toLowerCase()), function (o) { return l.getName(o) === a && t(o) } } case at.Descendant: { if (n.cacheResults === !1 || typeof WeakSet > "u") return function (o) { let u = o; for (; u = q_(u, l);)if (t(u)) return !0; return !1 }; let a = new WeakSet; return function (o) { let u = o; for (; u = q_(u, l);)if (!a.has(u)) { if (l.isTag(u) && t(u)) return !0; a.add(u) } return !1 } } case "_flexibleDescendant": return function (a) { let o = a; do if (t(o)) return !0; while (o = q_(o, l)); return !1 }; case at.Parent: return function (a) { return l.getChildren(a).some(o => l.isTag(o) && t(o)) }; case at.Child: return function (a) { return (a = l.getParent(a)) != null && l.isTag(a) && t(a) }; case at.Sibling: return function (a) { var o = l.getSiblings(a); for (let c = 0; c < o.length; c++) { var u = o[c]; if (s(a, u)) break; if (l.isTag(u) && t(u)) return !0 } return !1 }; case at.Adjacent: return l.prevElementSibling ? function (a) { return (a = l.prevElementSibling(a)) != null && t(a) } : function (a) { var o = l.getSiblings(a); let u; for (let f = 0; f < o.length; f++) { var c = o[f]; if (s(a, c)) break; l.isTag(c) && (u = c) } return !!u && t(u) }; case at.Universal: if (e.namespace != null && e.namespace !== "*") throw new Error("Namespaced universal selectors are not yet supported by css-select"); return t } } function HB(t) { return t.type === at.Pseudo && (t.name === "scope" || Array.isArray(t.data) && t.data.some(e => e.some(HB))) } var Pye = { type: at.Descendant }, Lye = { type: "_flexibleDescendant" }, Fye = { type: at.Pseudo, name: "scope", data: null }; function VB(t, e, n) { t.forEach(Aye), n = (s = e.context) != null ? s : n; let r = Array.isArray(n), i = n && (Array.isArray(n) ? n : [n]); if (e.relativeSelector !== !1) (function (a, { adapter: o }, u) { var c = !(u == null || !u.every(f => { var m = o.isTag(f) && o.getParent(f); return f === $B || m && o.isTag(m) })); for (let f of a) { if (!(0 < f.length && uE(f[0]) && f[0].type !== at.Descendant)) { if (!c || f.some(HB)) continue; f.unshift(Pye) } f.unshift(Fye) } })(t, e, i); else if (t.some(a => 0 < a.length && uE(a[0]))) throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled"); let l = !1; var s = t.map(a => { if (2 <= a.length) { let [o, u] = a; o.type === at.Pseudo && o.name === "scope" && (r && u.type === at.Descendant ? a[1] = Lye : u.type !== at.Adjacent && u.type !== at.Sibling || (l = !0)) } return function (o, u, c) { return o.reduce((f, m) => f === Pt.falseFunc ? Pt.falseFunc : Dye(f, m, u, c, VB), (o = u.rootFunc) != null ? o : Pt.trueFunc) }(a, e, i) }).reduce(jye, Pt.falseFunc); return s.shouldTestNextSiblings = l, s } function jye(t, e) { return e === Pt.falseFunc || t === Pt.trueFunc ? t : t === Pt.falseFunc || e === Pt.trueFunc ? e : function (n) { return t(n) || e(n) } } var qB = (t, e) => t === e, Uye = { adapter: Q7, equals: qB }, UE = (w$ = VB, function (t, e, n) { return e = function (r) { var i; return (r = r ?? Uye).adapter == null && (r.adapter = Q7), r.equals == null && (r.equals = (i = (i = r.adapter) == null ? void 0 : i.equals) != null ? i : qB), r }(e), w$(t, e, n) }); function zB(t, e, n = !1) { return n && (t = function (r, i) { let l = Array.isArray(r) ? r.slice(0) : [r], s = l.length; for (let a = 0; a < s; a++) { let o = BB(l[a], i); l.push(...o) } return l }(t, e)), Array.isArray(t) ? e.removeSubsets(t) : e.getChildren(t) } var Mye = new Set(["first", "last", "eq", "gt", "nth", "lt", "even", "odd"]); function V7(t) { return t.type === "pseudo" && (!!Mye.has(t.name) || !(t.name !== "not" || !Array.isArray(t.data)) && t.data.some(e => e.some(V7))) } function ME(t) { var e = [], n = []; for (let r of t) (r.some(V7) ? e : n).push(r); return [n, e] } var $ye = { type: at.Universal, namespace: null }, Bye = { type: at.Pseudo, name: "scope", data: null }; function GB(t, e, n = {}) { return JB([t], e, n) } function JB(t, e, n = {}) { var r; return typeof e == "function" ? t.some(e) : ([e, r] = ME(Z7(e)), 0 < e.length && t.some(UE(e, n)) || r.some(i => 0 < WB(i, t, n).length)) } function KB(t, e, n = {}) { return XB(Z7(t), e, n) } function XB(t, e, n) { if (e.length === 0) return []; let [r, i] = ME(t), l; if (r.length) { let a = dE(e, r, n); if (i.length === 0) return a; a.length && (l = new Set(a)) } for (let a = 0; a < i.length && l?.size !== e.length; a++) { let o = i[a]; if ((l ? e.filter(c => yt(c) && !l.has(c)) : e).length === 0) break; var s = WB(o, e, n); if (s.length) if (l) s.forEach(c => l.add(c)); else { if (a === i.length - 1) return s; l = new Set(s) } } return l !== void 0 ? l.size === e.length ? e : e.filter(a => l.has(a)) : [] } function WB(t, e, n) { var r, i; return t.some(Xc) ? (r = (r = n.root) != null ? r : function (l) { for (; l.parent;)l = l.parent; return l }(e[0]), i = { ...n, context: e, relativeSelector: !1 }, t.push(Bye), q7(r, t, i, !0, e.length)) : q7(e, t, n, !1, e.length) } function q7(t, e, n, r, i) { var l = e.findIndex(V7), s = e.slice(0, l), a = e[l], o = e.length - 1 === l ? i : 1 / 0; if ((o = function (c, f, m) { var d = f != null ? parseInt(f, 10) : NaN; switch (c) { case "first": return 1; case "nth": case "eq": return isFinite(d) ? 0 <= d ? d + 1 : 1 / 0 : 0; case "lt": return isFinite(d) ? 0 <= d ? Math.min(d, m) : 1 / 0 : 0; case "gt": return isFinite(d) ? 1 / 0 : 0; case "odd": return 2 * m; case "even": return 2 * m - 1; case "last": case "not": return 1 / 0 } }(a.name, a.data, o)) === 0) return []; r = (s.length !== 0 || Array.isArray(t) ? s.length === 0 ? (Array.isArray(t) ? t : [t]).filter(yt) : r || s.some(Xc) ? fE(t, [s], n, o) : dE(t, [s], n) : Y7(t).filter(yt)).slice(0, o); let u = function (c, f, m, d) { var y = typeof m == "string" ? parseInt(m, 10) : NaN; switch (c) { case "first": case "lt": return f; case "last": return 0 < f.length ? [f[f.length - 1]] : f; case "nth": case "eq": return isFinite(y) && Math.abs(y) < f.length ? [y < 0 ? f[f.length + y] : f[y]] : []; case "gt": return isFinite(y) ? f.slice(y + 1) : []; case "even": return f.filter((_, S) => S % 2 == 0); case "odd": return f.filter((_, S) => S % 2 == 1); case "not": { let _ = new Set(XB(m, f, d)); return f.filter(S => !_.has(S)) } } }(a.name, r, a.data, n); if (u.length === 0 || e.length === l + 1) return u; if (t = (s = e.slice(l + 1)).some(Xc)) { if (Xc(s[0])) { let c = s[0].type; c !== at.Sibling && c !== at.Adjacent || (u = zB(u, Q7, !0)), s.unshift($ye) } n = { ...n, relativeSelector: !1, rootFunc: c => u.includes(c) } } else n.rootFunc && n.rootFunc !== oE && (n = { ...n, rootFunc: oE }); return s.some(V7) ? q7(u, s, n, !1, i) : t ? fE(u, [s], n, i) : dE(u, [s], n) } function fE(t, e, n, r) { return YB(t, UE(e, n, t), r) } function YB(t, e, n = 1 / 0) { return FE(r => yt(r) && e(r), zB(t, Q7, e.shouldTestNextSiblings), !0, n) } function dE(t, e, n) { return (t = (Array.isArray(t) ? t : [t]).filter(yt)).length === 0 || (e = UE(e, n)) === oE ? t : t.filter(e) } var hE = function (t, e, n) { if (n || arguments.length === 2) for (var r, i = 0, l = e.length; i < l; i++)!r && i in e || ((r = r || Array.prototype.slice.call(e, 0, i))[i] = e[i]); return t.concat(r || Array.prototype.slice.call(e)) }, Hye = /^\s*[~+]/; function $E(t) { return function (e) { for (var n = [], r = 1; r < arguments.length; r++)n[r - 1] = arguments[r]; return function (i) { var l = t(e, this); return i && (l = mE(l, i, this.options.xmlMode, (i = this._root) == null ? void 0 : i[0])), this._make(1 < this.length && 1 < l.length ? n.reduce(function (s, a) { return a(s) }, l) : l) } } } var u5 = $E(function (t, e) { for (var n, r = [], i = 0; i < e.length; i++) { var l = t(e[i]); r.push(l) } return (n = new Array).concat.apply(n, r) }), BE = $E(function (t, e) { for (var n = [], r = 0; r < e.length; r++) { var i = t(e[r]); i !== null && n.push(i) } return n }); function HE(t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; var r = null, i = $E(function (l, s) { var a = []; return Nr(s, function (o) { for (var u; (u = l(o)) && (r == null || !r(u, a.length)); o = u)a.push(u) }), a }).apply(void 0, hE([t], e, !1)); return function (l, o) { var a = this, o = (r = typeof l == "string" ? function (u) { return GB(u, l, a.options) } : l ? Wc(l) : null, i.call(this, o)); return r = null, o } } function a0(t) { return Array.from(new Set(t)) } var Vye = BE(function (t) { return (t = t.parent) && !nu(t) ? t : null }, a0), qye = u5(function (t) { for (var e = []; t.parent && !nu(t.parent);)e.push(t.parent), t = t.parent; return e }, l0, function (t) { return t.reverse() }), zye = HE(function (t) { return (t = t.parent) && !nu(t) ? t : null }, l0, function (t) { return t.reverse() }), Gye = BE(function (t) { return PE(t) }), Jye = u5(function (t) { for (var e = []; t.next;)yt(t = t.next) && e.push(t); return e }, a0), Kye = HE(function (t) { return PE(t) }, a0), Xye = BE(function (t) { return LE(t) }), Wye = u5(function (t) { for (var e = []; t.prev;)yt(t = t.prev) && e.push(t); return e }, a0), Yye = HE(function (t) { return LE(t) }, a0), Qye = u5(function (t) { return IB(t).filter(function (e) { return yt(e) && e !== t }) }, l0), Zye = u5(function (t) { return Y7(t).filter(yt) }, a0); function Wc(t) { return typeof t == "function" ? function (e, n) { return t.call(e, n, e) } : fa(t) ? function (e) { return Array.prototype.includes.call(t, e) } : function (e) { return t === e } } function mE(t, e, n, r) { return typeof e == "string" ? KB(e, t, { xmlMode: n, root: r }) : t.filter(Wc(e)) } var ege = Object.freeze({ __proto__: null, find: function (t) { var e, n, r; return t ? (e = this.toArray(), typeof t != "string" ? (n = fa(t) ? t.toArray() : [t], this._make(n.filter(function (i) { return e.some(function (l) { return LB(l, i) }) }))) : (n = Hye.test(t) ? e : this.children().toArray(), r = { context: e, root: (r = this._root) == null ? void 0 : r[0], xmlMode: this.options.xmlMode, lowerCaseTags: this.options.lowerCaseTags, lowerCaseAttributeNames: this.options.lowerCaseAttributeNames, pseudos: this.options.pseudos, quirksMode: this.options.quirksMode }, this._make(function (i, l, s) { var a; return typeof i == "function" ? YB(l, i) : ([i, a] = ME(Z7(i)), a = a.map(o => q7(l, o, s, !0, 1 / 0)), i.length && a.push(fE(l, i, s, 1 / 0)), a.length === 0 ? [] : a.length === 1 ? a[0] : l0(a.reduce((o, u) => [...o, ...u]))) }(t, n, r)))) : this._make([]) }, parent: Vye, parents: qye, parentsUntil: zye, closest: function (t) { var e, n, r, i = []; return t && (n = { xmlMode: this.options.xmlMode, root: (e = this._root) == null ? void 0 : e[0] }, r = typeof t == "string" ? function (l) { return GB(l, t, n) } : Wc(t), Nr(this, function (l) { for (; l && yt(l);) { if (r(l, 0)) { i.includes(l) || i.push(l); break } l = l.parent } })), this._make(i) }, next: Gye, nextAll: Jye, nextUntil: Kye, prev: Xye, prevAll: Wye, prevUntil: Yye, siblings: Qye, children: Zye, contents: function () { var t = this.toArray().reduce(function (e, n) { return gi(n) ? e.concat(n.children) : e }, []); return this._make(t) }, each: function (t) { for (var e = 0, n = this.length; e < n && t.call(this[e], e, this[e]) !== !1;)++e; return this }, map: function (t) { for (var e = [], n = 0; n < this.length; n++) { var r = this[n]; (r = t.call(r, n, r)) != null && (e = e.concat(r)) } return this._make(e) }, filter: function (t) { return this._make(mE(this.toArray(), t, this.options.xmlMode, (t = this._root) == null ? void 0 : t[0])) }, filterArray: mE, is: function (t) { var e = this.toArray(); return typeof t == "string" ? JB(e.filter(yt), t, this.options) : !!t && e.some(Wc(t)) }, not: function (t) { var e, n, r = this.toArray(), r = typeof t == "string" ? (e = new Set(KB(t, r, this.options)), r.filter(function (i) { return !e.has(i) })) : (n = Wc(t), r.filter(function (i, l) { return !n(i, l) })); return this._make(r) }, has: function (t) { var e = this; return this.filter(typeof t == "string" ? ":has(".concat(t, ")") : function (n, r) { return 0 < e._make(r).find(t).length }) }, first: function () { return 1 < this.length ? this._make(this[0]) : this }, last: function () { return 0 < this.length ? this._make(this[this.length - 1]) : this }, eq: function (t) { return (t = +t) == 0 && this.length <= 1 ? this : (t < 0 && (t = this.length + t), this._make((t = this[t]) != null ? t : [])) }, get: function (t) { return t == null ? this.toArray() : this[t < 0 ? this.length + t : t] }, toArray: function () { return Array.prototype.slice.call(this) }, index: function (n) { var e, n = n == null ? (e = this.parent().children(), this[0]) : typeof n == "string" ? (e = this._make(n), this[0]) : (e = this, fa(n) ? n[0] : n); return Array.prototype.indexOf.call(e, n) }, slice: function (t, e) { return this._make(Array.prototype.slice.call(this, t, e)) }, end: function () { var t; return (t = this.prevObject) != null ? t : this._make([]) }, add: function (t, e) { return t = this._make(t, e), e = l0(hE(hE([], this.get(), !0), t.get(), !0)), this._make(e) }, addBack: function (t) { return this.prevObject ? this.add(t ? this.prevObject.filter(t) : this.prevObject) : this } }); function Q3(t, e) { var n = Array.isArray(t) ? t : [t]; e ? e.children = n : e = null; for (var r = 0; r < n.length; r++) { var i = n[r]; i.parent && i.parent.children !== n && J3(i), e ? (i.prev = n[r - 1] || null, i.next = n[r + 1] || null) : i.prev = i.next = null, i.parent = e } return e } var tge = function (t, e, n) { if (n || arguments.length === 2) for (var r, i = 0, l = e.length; i < l; i++)!r && i in e || ((r = r || Array.prototype.slice.call(e, 0, i))[i] = e[i]); return t.concat(r || Array.prototype.slice.call(e)) }; function QB(t) { return function () { for (var e = this, n = [], r = 0; r < arguments.length; r++)n[r] = arguments[r]; var i = this.length - 1; return Nr(this, function (l, s) { var a; gi(l) && (a = typeof n[0] == "function" ? n[0].call(l, s, e._render(l.children)) : n, a = e._makeDomArray(a, s < i), t(a, l.children, l)) }) } } function J2(t, e, n, r, i) { for (var l = tge([e, n], r, !0), s = e === 0 ? null : t[e - 1], a = e + n >= t.length ? null : t[e + n], o = 0; o < r.length; ++o) { var u, c = r[o], f = c.parent; f && -1 < (u = f.children.indexOf(c)) && (f.children.splice(u, 1), i === f) && u < e && l[0]--, c.parent = i, c.prev && (c.prev.next = (f = c.next) != null ? f : null), c.next && (c.next.prev = (u = c.prev) != null ? u : null), c.prev = o === 0 ? s : r[o - 1], c.next = o === r.length - 1 ? a : r[o + 1] } return s && (s.next = r[0]), a && (a.prev = r[r.length - 1]), t.splice.apply(t, l) } var nge = QB(function (t, e, n) { J2(e, e.length, 0, t, n) }), rge = QB(function (t, e, n) { J2(e, 0, 0, t, n) }); function ZB(t) { return function (e) { for (var n = this.length - 1, r = this.parents().last(), i = 0; i < this.length; i++) { var l = this[i], s = typeof e == "function" ? e.call(l, i, l) : typeof e != "string" || aE(e) ? e : r.find(e).clone(); if ((s = this._makeDomArray(s, i < n)[0]) && gi(s)) { for (var a = s, o = 0; o < a.children.length;) { var u = a.children[o]; yt(u) ? (a = u, o = 0) : o++ } t(l, a, [s]) } } return this } } var ige = ZB(function (t, e, n) { var r, i, l = t.parent; l && (i = (r = l.children).indexOf(t), Q3([t], e), J2(r, i, 0, n, l)) }), lge = ZB(function (t, e, n) { gi(t) && (Q3(t.children, e), Q3(n, t)) }), sge = Object.freeze({ __proto__: null, _makeDomArray: function (t, e) { var n = this; return t == null ? [] : fa(t) ? e ? j_(t.get()) : t.get() : Array.isArray(t) ? t.reduce(function (r, i) { return r.concat(n._makeDomArray(i, e)) }, []) : typeof t == "string" ? this._parse(t, this.options, !1, null).children : e ? j_([t]) : [t] }, appendTo: function (t) { return (fa(t) ? t : this._make(t)).append(this), this }, prependTo: function (t) { return (fa(t) ? t : this._make(t)).prepend(this), this }, append: nge, prepend: rge, wrap: ige, wrapInner: lge, unwrap: function (t) { var e = this; return this.parent(t).not("body").each(function (n, r) { e._make(r).replaceWith(r.children) }), this }, wrapAll: function (t) { var e = this[0]; if (e) { for (var n = this._make(typeof t == "function" ? t.call(e, 0, e) : t).insertBefore(e), r = void 0, i = 0; i < n.length; i++)n[i].type === "tag" && (r = n[i]); for (var l = 0; r && l < r.children.length;) { var s = r.children[l]; s.type === "tag" ? (r = s, l = 0) : l++ } r && this._make(r).append(this) } return this }, after: function () { for (var t = this, e = [], n = 0; n < arguments.length; n++)e[n] = arguments[n]; var r = this.length - 1; return Nr(this, function (i, l) { var s, a, o = i.parent; gi(i) && o && ((a = (s = o.children).indexOf(i)) < 0 || (i = typeof e[0] == "function" ? e[0].call(i, l, t._render(i.children)) : e, J2(s, a + 1, 0, t._makeDomArray(i, l < r), o))) }) }, insertAfter: function (t) { var e = this, n = (typeof t == "string" && (t = this._make(t)), this.remove(), []); return this._makeDomArray(t).forEach(function (r) { var i, l = e.clone().toArray(), s = r.parent; !s || (r = (i = s.children).indexOf(r)) < 0 || (J2(i, r + 1, 0, l, s), n.push.apply(n, l)) }), this._make(n) }, before: function () { for (var t = this, e = [], n = 0; n < arguments.length; n++)e[n] = arguments[n]; var r = this.length - 1; return Nr(this, function (i, l) { var s, a, o = i.parent; gi(i) && o && ((a = (s = o.children).indexOf(i)) < 0 || (i = typeof e[0] == "function" ? e[0].call(i, l, t._render(i.children)) : e, J2(s, a, 0, t._makeDomArray(i, l < r), o))) }) }, insertBefore: function (n) { var e = this, n = this._make(n), r = (this.remove(), []); return Nr(n, function (i) { var l, s = e.clone().toArray(), a = i.parent; !a || (i = (l = a.children).indexOf(i)) < 0 || (J2(l, i, 0, s, a), r.push.apply(r, s)) }), this._make(r) }, remove: function (t) { return Nr(t ? this.filter(t) : this, function (e) { J3(e), e.prev = e.next = e.parent = null }), this }, replaceWith: function (t) { var e = this; return Nr(this, function (n, r) { var i, l, s = n.parent; s && (i = s.children, r = typeof t == "function" ? t.call(n, r, n) : t, Q3(r = e._makeDomArray(r), null), l = i.indexOf(n), J2(i, l, 1, r, s), r.includes(n) || (n.parent = n.prev = n.next = null)) }) }, empty: function () { return Nr(this, function (t) { gi(t) && (t.children.forEach(function (e) { e.next = e.prev = e.parent = null }), t.children.length = 0) }) }, html: function (t) { var e, n = this; return t === void 0 ? (e = this[0]) && gi(e) ? this._render(e.children) : null : Nr(this, function (r) { gi(r) && (r.children.forEach(function (i) { i.next = i.prev = i.parent = null }), Q3(fa(t) ? t.toArray() : n._parse("".concat(t), n.options, !1, r).children, r)) }) }, toString: function () { return this._render(this) }, text: function (t) { var e = this; return t === void 0 ? l5(this) : Nr(this, typeof t == "function" ? function (n, r) { return e._make(n).text(t.call(n, r, l5([n]))) } : function (n) { gi(n) && (n.children.forEach(function (r) { r.next = r.prev = r.parent = null }), Q3(new tu("".concat(t)), n)) }) }, clone: function () { return this._make(j_(this.get())) } }); function eH(t, e, n, r) { var i, l; typeof e == "string" ? (i = tH(t), (r = typeof n == "function" ? n.call(t, r, i[e]) : n) === "" ? delete i[e] : r != null && (i[e] = r), t.attribs.style = (l = i, Object.keys(l).reduce(function (s, a) { return "".concat(s).concat(s ? " " : "").concat(a, ": ").concat(l[a], ";") }, ""))) : typeof e == "object" && Object.keys(e).forEach(function (s, a) { eH(t, s, e[s], a) }) } function tH(t, e) { var n, r; if (t && yt(t)) return n = function (i) { if (!(i = (i || "").trim())) return {}; for (var l, s = {}, a = 0, o = i.split(";"); a < o.length; a++) { var u, c = o[a], f = c.indexOf(":"); f < 1 || f === c.length - 1 ? 0 < (u = c.trimEnd()).length && l !== void 0 && (s[l] += ";".concat(u)) : s[l = c.slice(0, f).trim()] = c.slice(f + 1).trim() } return s }(t.attribs.style), typeof e == "string" ? n[e] : Array.isArray(e) ? (r = {}, e.forEach(function (i) { n[i] != null && (r[i] = n[i]) }), r) : n } var VE, D, ue, rn, age = Object.freeze({ __proto__: null, css: function (t, e) { return t != null && e != null || typeof t == "object" && !Array.isArray(t) ? Nr(this, function (n, r) { yt(n) && eH(n, t, e, r) }) : this.length !== 0 ? tH(this[0], t) : void 0 } }), O$ = "input,select,textarea,keygen", oge = /%20/g, N$ = /\r?\n/g, uge = Object.freeze({
__proto__: null, serialize: function () { return this.serializeArray().map(function (t) { return "".concat(encodeURIComponent(t.name), "=").concat(encodeURIComponent(t.value)) }).join("&").replace(oge, "+") }, serializeArray: function () {
var t = this; return this.map(function (e, n) { var r = t._make(n); return (yt(n) && n.name === "form" ? r.find(O$) : r.filter(O$)).toArray() }).filter('[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))').map(function (e, i) {
var r = (i = t._make(i)).attr("name"), i = (i = i.val()) != null ? i : ""; return Array.isArray(i) ? i.map(function (l) {
return {
name: r, value: l.replace(N$, `\r
`)
}
}) : {
name: r, value: i.replace(N$, `\r
`)
}
}).toArray()
}
}), Vc = function (t, e, n) { if (this.length = 0, this.options = n, this._root = e, t) { for (var r = 0; r < t.length; r++)this[r] = t[r]; this.length = t.length } }, VE = (Vc.prototype.cheerio = "[cheerio object]", Vc.prototype.splice = Array.prototype.splice, Vc.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator], Object.assign(Vc.prototype, _ye, ege, sge, age, uge), function (t, e) { return (VE = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? function (n, r) { n.__proto__ = r } : function (n, r) { for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (n[i] = r[i]) }))(t, e) }), cge = function (t, e) { if (typeof e != "function" && e !== null) throw new TypeError("Class extends value " + String(e) + " is not a constructor or null"); function n() { this.constructor = t } VE(t, e), t.prototype = e === null ? Object.create(e) : (n.prototype = e.prototype, new n) }, qc = function () { return (qc = Object.assign || function (t) { for (var e, n = 1, r = arguments.length; n < r; n++)for (var i in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); return t }).apply(this, arguments) }, pge = 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]), mr = "\uFFFD", C$ = (function (t) { t[t.EOF = -1] = "EOF", t[t.NULL = 0] = "NULL", t[t.TABULATION = 9] = "TABULATION", t[t.CARRIAGE_RETURN = 13] = "CARRIAGE_RETURN", t[t.LINE_FEED = 10] = "LINE_FEED", t[t.FORM_FEED = 12] = "FORM_FEED", t[t.SPACE = 32] = "SPACE", t[t.EXCLAMATION_MARK = 33] = "EXCLAMATION_MARK", t[t.QUOTATION_MARK = 34] = "QUOTATION_MARK", t[t.NUMBER_SIGN = 35] = "NUMBER_SIGN", t[t.AMPERSAND = 38] = "AMPERSAND", t[t.APOSTROPHE = 39] = "APOSTROPHE", t[t.HYPHEN_MINUS = 45] = "HYPHEN_MINUS", t[t.SOLIDUS = 47] = "SOLIDUS", t[t.DIGIT_0 = 48] = "DIGIT_0", t[t.DIGIT_9 = 57] = "DIGIT_9", t[t.SEMICOLON = 59] = "SEMICOLON", t[t.LESS_THAN_SIGN = 60] = "LESS_THAN_SIGN", t[t.EQUALS_SIGN = 61] = "EQUALS_SIGN", t[t.GREATER_THAN_SIGN = 62] = "GREATER_THAN_SIGN", t[t.QUESTION_MARK = 63] = "QUESTION_MARK", t[t.LATIN_CAPITAL_A = 65] = "LATIN_CAPITAL_A", t[t.LATIN_CAPITAL_F = 70] = "LATIN_CAPITAL_F", t[t.LATIN_CAPITAL_X = 88] = "LATIN_CAPITAL_X", t[t.LATIN_CAPITAL_Z = 90] = "LATIN_CAPITAL_Z", t[t.RIGHT_SQUARE_BRACKET = 93] = "RIGHT_SQUARE_BRACKET", t[t.GRAVE_ACCENT = 96] = "GRAVE_ACCENT", t[t.LATIN_SMALL_A = 97] = "LATIN_SMALL_A", t[t.LATIN_SMALL_F = 102] = "LATIN_SMALL_F", t[t.LATIN_SMALL_X = 120] = "LATIN_SMALL_X", t[t.LATIN_SMALL_Z = 122] = "LATIN_SMALL_Z", t[t.REPLACEMENT_CHARACTER = 65533] = "REPLACEMENT_CHARACTER" }(D = D || {}), "--"), R$ = "[CDATA[", I$ = "doctype", $1 = "script", fge = "public", dge = "system"; function nH(t) { return 55296 <= t && t <= 57343 } function rH(t) { return t !== 32 && t !== 10 && t !== 13 && t !== 9 && t !== 12 && 1 <= t && t <= 31 || 127 <= t && t <= 159 } function iH(t) { return 64976 <= t && t <= 65007 || pge.has(t) } (function (t) { t.controlCharacterInInputStream = "control-character-in-input-stream", t.noncharacterInInputStream = "noncharacter-in-input-stream", t.surrogateInInputStream = "surrogate-in-input-stream", t.nonVoidHtmlElementStartTagWithTrailingSolidus = "non-void-html-element-start-tag-with-trailing-solidus", t.endTagWithAttributes = "end-tag-with-attributes", t.endTagWithTrailingSolidus = "end-tag-with-trailing-solidus", t.unexpectedSolidusInTag = "unexpected-solidus-in-tag", t.unexpectedNullCharacter = "unexpected-null-character", t.unexpectedQuestionMarkInsteadOfTagName = "unexpected-question-mark-instead-of-tag-name", t.invalidFirstCharacterOfTagName = "invalid-first-character-of-tag-name", t.unexpectedEqualsSignBeforeAttributeName = "unexpected-equals-sign-before-attribute-name", t.missingEndTagName = "missing-end-tag-name", t.unexpectedCharacterInAttributeName = "unexpected-character-in-attribute-name", t.unknownNamedCharacterReference = "unknown-named-character-reference", t.missingSemicolonAfterCharacterReference = "missing-semicolon-after-character-reference", t.unexpectedCharacterAfterDoctypeSystemIdentifier = "unexpected-character-after-doctype-system-identifier", t.unexpectedCharacterInUnquotedAttributeValue = "unexpected-character-in-unquoted-attribute-value", t.eofBeforeTagName = "eof-before-tag-name", t.eofInTag = "eof-in-tag", t.missingAttributeValue = "missing-attribute-value", t.missingWhitespaceBetweenAttributes = "missing-whitespace-between-attributes", t.missingWhitespaceAfterDoctypePublicKeyword = "missing-whitespace-after-doctype-public-keyword", t.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers = "missing-whitespace-between-doctype-public-and-system-identifiers", t.missingWhitespaceAfterDoctypeSystemKeyword = "missing-whitespace-after-doctype-system-keyword", t.missingQuoteBeforeDoctypePublicIdentifier = "missing-quote-before-doctype-public-identifier", t.missingQuoteBeforeDoctypeSystemIdentifier = "missing-quote-before-doctype-system-identifier", t.missingDoctypePublicIdentifier = "missing-doctype-public-identifier", t.missingDoctypeSystemIdentifier = "missing-doctype-system-identifier", t.abruptDoctypePublicIdentifier = "abrupt-doctype-public-identifier", t.abruptDoctypeSystemIdentifier = "abrupt-doctype-system-identifier", t.cdataInHtmlContent = "cdata-in-html-content", t.incorrectlyOpenedComment = "incorrectly-opened-comment", t.eofInScriptHtmlCommentLikeText = "eof-in-script-html-comment-like-text", t.eofInDoctype = "eof-in-doctype", t.nestedComment = "nested-comment", t.abruptClosingOfEmptyComment = "abrupt-closing-of-empty-comment", t.eofInComment = "eof-in-comment", t.incorrectlyClosedComment = "incorrectly-closed-comment", t.eofInCdata = "eof-in-cdata", t.absenceOfDigitsInNumericCharacterReference = "absence-of-digits-in-numeric-character-reference", t.nullCharacterReference = "null-character-reference", t.surrogateCharacterReference = "surrogate-character-reference", t.characterReferenceOutsideUnicodeRange = "character-reference-outside-unicode-range", t.controlCharacterReference = "control-character-reference", t.noncharacterCharacterReference = "noncharacter-character-reference", t.missingWhitespaceBeforeDoctypeName = "missing-whitespace-before-doctype-name", t.missingDoctypeName = "missing-doctype-name", t.invalidCharacterSequenceAfterDoctypeName = "invalid-character-sequence-after-doctype-name", t.duplicateAttribute = "duplicate-attribute", t.nonConformingDoctype = "non-conforming-doctype", t.missingDoctype = "missing-doctype", t.misplacedDoctype = "misplaced-doctype", t.endTagWithoutMatchingOpenElement = "end-tag-without-matching-open-element", t.closingOfElementWithOpenChildElements = "closing-of-element-with-open-child-elements", t.disallowedContentInNoscriptInHead = "disallowed-content-in-noscript-in-head", t.openElementsLeftAfterEof = "open-elements-left-after-eof", t.abandonedHeadElementChild = "abandoned-head-element-child", t.misplacedStartTagForHeadElement = "misplaced-start-tag-for-head-element", t.nestedNoscriptInHead = "nested-noscript-in-head", t.eofInElementThatCanContainOnlyText = "eof-in-element-that-can-contain-only-text" })(ue = ue || {}); var yE = class { constructor(e) { this.handler = e, this.html = "", this.pos = -1, this.lastGapPos = -2, this.gapStack = [], this.skipNextNewLine = !1, this.lastChunkWritten = !1, this.endOfChunkHit = !1, this.bufferWaterline = 65536, this.isEol = !1, this.lineStartPos = 0, this.droppedBufferSize = 0, this.line = 1, this.lastErrOffset = -1 } get col() { return this.pos - this.lineStartPos + +(this.lastGapPos !== this.pos) } get offset() { return this.droppedBufferSize + this.pos } getError(e) { var { line: n, col: r, offset: i } = this; return { code: e, startLine: n, endLine: n, startCol: r, endCol: r, startOffset: i, endOffset: i } } _err(e) { this.handler.onParseError && this.lastErrOffset !== this.offset && (this.lastErrOffset = this.offset, this.handler.onParseError(this.getError(e))) } _addGap() { this.gapStack.push(this.lastGapPos), this.lastGapPos = this.pos } _processSurrogate(e) { if (this.pos !== this.html.length - 1) { var n = this.html.charCodeAt(this.pos + 1); if (56320 <= n && n <= 57343) return this.pos++, this._addGap(), 1024 * (e - 55296) + 9216 + n } else if (!this.lastChunkWritten) return this.endOfChunkHit = !0, D.EOF; return this._err(ue.surrogateInInputStream), e } willDropParsedChunk() { return this.pos > this.bufferWaterline } dropParsedChunk() { 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(e, n) { 0 < this.html.length ? this.html += e : this.html = e, this.endOfChunkHit = !1, this.lastChunkWritten = n } insertHtmlAtCurrentPos(e) { this.html = this.html.substring(0, this.pos + 1) + e + this.html.substring(this.pos + 1), this.endOfChunkHit = !1 } startsWith(e, n) { if (this.pos + e.length > this.html.length) return this.endOfChunkHit = !this.lastChunkWritten, !1; if (n) return this.html.startsWith(e, this.pos); for (let r = 0; r < e.length; r++)if ((32 | this.html.charCodeAt(this.pos + r)) !== e.charCodeAt(r)) return !1; return !0 } peek(e) { return (e = this.pos + e) >= this.html.length ? (this.endOfChunkHit = !this.lastChunkWritten, D.EOF) : (e = this.html.charCodeAt(e)) === D.CARRIAGE_RETURN ? D.LINE_FEED : e } advance() { if (this.pos++, this.isEol && (this.isEol = !1, this.line++, this.lineStartPos = this.pos), this.pos >= this.html.length) return this.endOfChunkHit = !this.lastChunkWritten, D.EOF; let e = this.html.charCodeAt(this.pos); return e === D.CARRIAGE_RETURN ? (this.isEol = !0, this.skipNextNewLine = !0, D.LINE_FEED) : e === D.LINE_FEED && (this.isEol = !0, this.skipNextNewLine) ? (this.line--, this.skipNextNewLine = !1, this._addGap(), this.advance()) : (this.skipNextNewLine = !1, nH(e) && (e = this._processSurrogate(e)), this.handler.onParseError === null || 31 < e && e < 127 || e === D.LINE_FEED || e === D.CARRIAGE_RETURN || 159 < e && e < 64976 || this._checkForProblematicCharacters(e), e) } _checkForProblematicCharacters(e) { rH(e) ? this._err(ue.controlCharacterInInputStream) : iH(e) && this._err(ue.noncharacterInInputStream) } retreat(e) { for (this.pos -= e; this.pos < this.lastGapPos;)this.lastGapPos = this.gapStack.pop(), this.pos--; this.isEol = !1 } }; function lH(t, e) { for (let n = t.attrs.length - 1; 0 <= n; n--)if (t.attrs[n].name === e) return t.attrs[n].value; return null } (function (t) { t[t.CHARACTER = 0] = "CHARACTER", t[t.NULL_CHARACTER = 1] = "NULL_CHARACTER", t[t.WHITESPACE_CHARACTER = 2] = "WHITESPACE_CHARACTER", t[t.START_TAG = 3] = "START_TAG", t[t.END_TAG = 4] = "END_TAG", t[t.COMMENT = 5] = "COMMENT", t[t.DOCTYPE = 6] = "DOCTYPE", t[t.EOF = 7] = "EOF", t[t.HIBERNATION = 8] = "HIBERNATION" })(rn = rn || {}); var Ci = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; function hge() { throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs") } function c5(t) { return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t } function ht(t, e) { return t(e = { exports: {} }, e.exports), e.exports } var sH = ht(function (t, e) { Object.defineProperty(e, "__esModule", { value: !0 }), e.default = new Uint16Array('\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 (n) { return n.charCodeAt(0) })) }), aH = (c5(sH), ht(function (t, e) { Object.defineProperty(e, "__esModule", { value: !0 }), e.default = new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function (n) { return n.charCodeAt(0) })) })), N7 = (c5(aH), ht(function (t, e) { Object.defineProperty(e, "__esModule", { value: !0 }), e.replaceCodePoint = e.fromCodePoint = void 0; var n, r = new Map([[0, 65533], [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]]); function i(l) { var s; return 55296 <= l && l <= 57343 || 1114111 < l ? 65533 : (s = r.get(l)) != null ? s : l } e.fromCodePoint = (n = String.fromCodePoint) != null ? n : function (l) { var s = ""; return 65535 < l && (l -= 65536, s += String.fromCharCode(l >>> 10 & 1023 | 55296), l = 56320 | 1023 & l), s + String.fromCharCode(l) }, e.replaceCodePoint = i, e.default = function (l) { return (0, e.fromCodePoint)(i(l)) } })), mge = (c5(N7), N7.replaceCodePoint, N7.fromCodePoint, sH), yge = aH, k$ = N7, wl = ht(function (t, e) { var n = Ci && Ci.__createBinding || (Object.create ? function (g, v, x, O) { O === void 0 && (O = x); var N = Object.getOwnPropertyDescriptor(v, x); N && !("get" in N ? !v.__esModule : N.writable || N.configurable) || (N = { enumerable: !0, get: function () { return v[x] } }), Object.defineProperty(g, O, N) } : function (g, v, x, O) { g[O = O === void 0 ? x : O] = v[x] }), r = Ci && Ci.__setModuleDefault || (Object.create ? function (g, v) { Object.defineProperty(g, "default", { enumerable: !0, value: v }) } : function (g, v) { g.default = v }), i = Ci && Ci.__importStar || function (g) { if (g && g.__esModule) return g; var v = {}; if (g != null) for (var x in g) x !== "default" && Object.prototype.hasOwnProperty.call(g, x) && n(v, g, x); return r(v, g), v }, s = Ci && Ci.__importDefault || function (g) { return g && g.__esModule ? g : { default: g } }, l = (Object.defineProperty(e, "__esModule", { value: !0 }), e.decodeXML = e.decodeHTMLStrict = e.decodeHTMLAttribute = e.decodeHTML = e.determineBranch = e.EntityDecoder = e.DecodingMode = e.BinTrieFlags = e.fromCodePoint = e.replaceCodePoint = e.decodeCodePoint = e.xmlDecodeTree = e.htmlDecodeTree = void 0, s(mge)), s = (e.htmlDecodeTree = l.default, s(yge)), a = (e.xmlDecodeTree = s.default, i(k$)); e.decodeCodePoint = a.default; var o, u, c, f, m = k$; function d(g) { return g >= o.ZERO && g <= o.NINE } Object.defineProperty(e, "replaceCodePoint", { enumerable: !0, get: function () { return m.replaceCodePoint } }), Object.defineProperty(e, "fromCodePoint", { enumerable: !0, get: function () { return m.fromCodePoint } }), function (g) { g[g.NUM = 35] = "NUM", g[g.SEMI = 59] = "SEMI", g[g.EQUALS = 61] = "EQUALS", g[g.ZERO = 48] = "ZERO", g[g.NINE = 57] = "NINE", g[g.LOWER_A = 97] = "LOWER_A", g[g.LOWER_F = 102] = "LOWER_F", g[g.LOWER_X = 120] = "LOWER_X", g[g.LOWER_Z = 122] = "LOWER_Z", g[g.UPPER_A = 65] = "UPPER_A", g[g.UPPER_F = 70] = "UPPER_F", g[g.UPPER_Z = 90] = "UPPER_Z" }(o = {}), function (g) { g[g.VALUE_LENGTH = 49152] = "VALUE_LENGTH", g[g.BRANCH_LENGTH = 16256] = "BRANCH_LENGTH", g[g.JUMP_TABLE = 127] = "JUMP_TABLE" }(u = e.BinTrieFlags || (e.BinTrieFlags = {})), function (g) { g[g.EntityStart = 0] = "EntityStart", g[g.NumericStart = 1] = "NumericStart", g[g.NumericDecimal = 2] = "NumericDecimal", g[g.NumericHex = 3] = "NumericHex", g[g.NamedEntity = 4] = "NamedEntity" }(c = {}), function (g) { g[g.Legacy = 0] = "Legacy", g[g.Strict = 1] = "Strict", g[g.Attribute = 2] = "Attribute" }(f = e.DecodingMode || (e.DecodingMode = {})); var y = function () { function g(v, x, O) { this.decodeTree = v, this.emitCodePoint = x, this.errors = O, this.state = c.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = f.Strict } return g.prototype.startEntity = function (v) { this.decodeMode = v, this.state = c.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1 }, g.prototype.write = function (v, x) { switch (this.state) { case c.EntityStart: return v.charCodeAt(x) === o.NUM ? (this.state = c.NumericStart, this.consumed += 1, this.stateNumericStart(v, x + 1)) : (this.state = c.NamedEntity, this.stateNamedEntity(v, x)); case c.NumericStart: return this.stateNumericStart(v, x); case c.NumericDecimal: return this.stateNumericDecimal(v, x); case c.NumericHex: return this.stateNumericHex(v, x); case c.NamedEntity: return this.stateNamedEntity(v, x) } }, g.prototype.stateNumericStart = function (v, x) { return x >= v.length ? -1 : (32 | v.charCodeAt(x)) === o.LOWER_X ? (this.state = c.NumericHex, this.consumed += 1, this.stateNumericHex(v, x + 1)) : (this.state = c.NumericDecimal, this.stateNumericDecimal(v, x)) }, g.prototype.addToNumericResult = function (v, x, O, N) { x !== O && (O -= x, this.result = this.result * Math.pow(N, O) + parseInt(v.substr(x, O), N), this.consumed += O) }, g.prototype.stateNumericHex = function (v, x) { for (var O = x; x < v.length;) { var N = v.charCodeAt(x); if (!(d(N) || N >= o.UPPER_A && N <= o.UPPER_F || o.LOWER_A <= N && N <= o.LOWER_F)) return this.addToNumericResult(v, O, x, 16), this.emitNumericEntity(N, 3); x += 1 } return this.addToNumericResult(v, O, x, 16), -1 }, g.prototype.stateNumericDecimal = function (v, x) { for (var O = x; x < v.length;) { var N = v.charCodeAt(x); if (!d(N)) return this.addToNumericResult(v, O, x, 10), this.emitNumericEntity(N, 2); x += 1 } return this.addToNumericResult(v, O, x, 10), -1 }, g.prototype.emitNumericEntity = function (v, x) { if (this.consumed <= x) return (x = this.errors) != null && x.absenceOfDigitsInNumericCharacterReference(this.consumed), 0; if (v === o.SEMI) this.consumed += 1; else if (this.decodeMode === f.Strict) return 0; return this.emitCodePoint((0, a.replaceCodePoint)(this.result), this.consumed), this.errors && (v !== o.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed }, g.prototype.stateNamedEntity = function (v, x) { for (var O = this.decodeTree, N = O[this.treeIndex], R = (N & u.VALUE_LENGTH) >> 14; x < v.length; x++, this.excess++) { var U = v.charCodeAt(x); if (this.treeIndex = S(O, N, this.treeIndex + Math.max(1, R), U), this.treeIndex < 0) return this.result === 0 || this.decodeMode === f.Attribute && (R === 0 || U === o.EQUALS || function (F) { return o.UPPER_A <= F && F <= o.UPPER_Z || o.LOWER_A <= F && F <= o.LOWER_Z || d(F) }(U)) ? 0 : this.emitNotTerminatedNamedEntity(); if ((R = ((N = O[this.treeIndex]) & u.VALUE_LENGTH) >> 14) != 0) { if (U === o.SEMI) return this.emitNamedEntityData(this.treeIndex, R, this.consumed + this.excess); this.decodeMode !== f.Strict && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0) } } return -1 }, g.prototype.emitNotTerminatedNamedEntity = function () { var v = this.result, x = (this.decodeTree[v] & u.VALUE_LENGTH) >> 14; return this.emitNamedEntityData(v, x, this.consumed), (v = this.errors) != null && v.missingSemicolonAfterCharacterReference(), this.consumed }, g.prototype.emitNamedEntityData = function (v, x, O) { var N = this.decodeTree; return this.emitCodePoint(x === 1 ? N[v] & ~u.VALUE_LENGTH : N[v + 1], O), x === 3 && this.emitCodePoint(N[v + 2], O), O }, g.prototype.end = function () { var v; switch (this.state) { case c.NamedEntity: return this.result === 0 || this.decodeMode === f.Attribute && this.result !== this.treeIndex ? 0 : this.emitNotTerminatedNamedEntity(); case c.NumericDecimal: return this.emitNumericEntity(0, 2); case c.NumericHex: return this.emitNumericEntity(0, 3); case c.NumericStart: return (v = this.errors) != null && v.absenceOfDigitsInNumericCharacterReference(this.consumed), 0; case c.EntityStart: return 0 } }, g }(); function _(g) { var v = "", x = new y(g, function (O) { return v += (0, a.fromCodePoint)(O) }); return function (O, N) { for (var R = 0, U = 0; 0 <= (U = O.indexOf("&", U));) { v += O.slice(R, U), x.startEntity(N); var F = x.write(O, U + 1); if (F < 0) { R = U + x.end(); break } R = U + F, U = F === 0 ? R + 1 : R } var te = v + O.slice(R); return v = "", te } } function S(g, R, x, O) { var N = (R & u.BRANCH_LENGTH) >> 7, R = R & u.JUMP_TABLE; if (N == 0) return R != 0 && O === R ? x : -1; if (R) return (R = O - R) < 0 || N <= R ? -1 : g[x + R] - 1; for (var U = x, F = U + N - 1; U <= F;) { var te = U + F >>> 1, Q = g[te]; if (Q < O) U = 1 + te; else { if (!(O < Q)) return g[te + N]; F = te - 1 } } return -1 } e.EntityDecoder = y, e.determineBranch = S; var w = _(l.default), E = _(s.default); e.decodeHTML = function (g, v) { return v === void 0 && (v = f.Legacy), w(g, v) }, e.decodeHTMLAttribute = function (g) { return w(g, f.Attribute) }, e.decodeHTMLStrict = function (g) { return w(g, f.Strict) }, e.decodeXML = function (g) { return E(g, f.Strict) } }), oH = (c5(wl), wl.decodeXML, wl.decodeHTMLStrict, wl.decodeHTMLAttribute, wl.decodeHTML, wl.determineBranch), Yc = (wl.EntityDecoder, wl.DecodingMode, wl.BinTrieFlags), D$ = wl.fromCodePoint, gge = wl.replaceCodePoint; wl.decodeCodePoint; var de, Z3, Pl, ne, T, j, ua, H, vge = wl.xmlDecodeTree, $2 = wl.htmlDecodeTree; (function (t) { t.HTML = "http://www.w3.org/1999/xhtml", t.MATHML = "http://www.w3.org/1998/Math/MathML", t.SVG = "http://www.w3.org/2000/svg", t.XLINK = "http://www.w3.org/1999/xlink", t.XML = "http://www.w3.org/XML/1998/namespace", t.XMLNS = "http://www.w3.org/2000/xmlns/" })(de = de || {}), function (t) { t.TYPE = "type", t.ACTION = "action", t.ENCODING = "encoding", t.PROMPT = "prompt", t.NAME = "name", t.COLOR = "color", t.FACE = "face", t.SIZE = "size" }(Z3 = Z3 || {}), function (t) { t.NO_QUIRKS = "no-quirks", t.QUIRKS = "quirks", t.LIMITED_QUIRKS = "limited-quirks" }(Pl = Pl || {}), function (t) { t.A = "a", t.ADDRESS = "address", t.ANNOTATION_XML = "annotation-xml", t.APPLET = "applet", t.AREA = "area", t.ARTICLE = "article", t.ASIDE = "aside", t.B = "b", t.BASE = "base", t.BASEFONT = "basefont", t.BGSOUND = "bgsound", t.BIG = "big", t.BLOCKQUOTE = "blockquote", t.BODY = "body", t.BR = "br", t.BUTTON = "button", t.CAPTION = "caption", t.CENTER = "center", t.CODE = "code", t.COL = "col", t.COLGROUP = "colgroup", t.DD = "dd", t.DESC = "desc", t.DETAILS = "details", t.DIALOG = "dialog", t.DIR = "dir", t.DIV = "div", t.DL = "dl", t.DT = "dt", t.EM = "em", t.EMBED = "embed", t.FIELDSET = "fieldset", t.FIGCAPTION = "figcaption", t.FIGURE = "figure", t.FONT = "font", t.FOOTER = "footer", t.FOREIGN_OBJECT = "foreignObject", t.FORM = "form", t.FRAME = "frame", t.FRAMESET = "frameset", t.H1 = "h1", t.H2 = "h2", t.H3 = "h3", t.H4 = "h4", t.H5 = "h5", t.H6 = "h6", t.HEAD = "head", t.HEADER = "header", t.HGROUP = "hgroup", t.HR = "hr", t.HTML = "html", t.I = "i", t.IMG = "img", t.IMAGE = "image", t.INPUT = "input", t.IFRAME = "iframe", t.KEYGEN = "keygen", t.LABEL = "label", t.LI = "li", t.LINK = "link", t.LISTING = "listing", t.MAIN = "main", t.MALIGNMARK = "malignmark", t.MARQUEE = "marquee", t.MATH = "math", t.MENU = "menu", t.META = "meta", t.MGLYPH = "mglyph", t.MI = "mi", t.MO = "mo", t.MN = "mn", t.MS = "ms", t.MTEXT = "mtext", t.NAV = "nav", t.NOBR = "nobr", t.NOFRAMES = "noframes", t.NOEMBED = "noembed", t.NOSCRIPT = "noscript", t.OBJECT = "object", t.OL = "ol", t.OPTGROUP = "optgroup", t.OPTION = "option", t.P = "p", t.PARAM = "param", t.PLAINTEXT = "plaintext", t.PRE = "pre", t.RB = "rb", t.RP = "rp", t.RT = "rt", t.RTC = "rtc", t.RUBY = "ruby", t.S = "s", t.SCRIPT = "script", t.SECTION = "section", t.SELECT = "select", t.SOURCE = "source", t.SMALL = "small", t.SPAN = "span", t.STRIKE = "strike", t.STRONG = "strong", t.STYLE = "style", t.SUB = "sub", t.SUMMARY = "summary", t.SUP = "sup", t.TABLE = "table", t.TBODY = "tbody", t.TEMPLATE = "template", t.TEXTAREA = "textarea", t.TFOOT = "tfoot", t.TD = "td", t.TH = "th", t.THEAD = "thead", t.TITLE = "title", t.TR = "tr", t.TRACK = "track", t.TT = "tt", t.U = "u", t.UL = "ul", t.SVG = "svg", t.VAR = "var", t.WBR = "wbr", t.XMP = "xmp" }(ne = ne || {}), function (t) { t[t.UNKNOWN = 0] = "UNKNOWN", t[t.A = 1] = "A", t[t.ADDRESS = 2] = "ADDRESS", t[t.ANNOTATION_XML = 3] = "ANNOTATION_XML", t[t.APPLET = 4] = "APPLET", t[t.AREA = 5] = "AREA", t[t.ARTICLE = 6] = "ARTICLE", t[t.ASIDE = 7] = "ASIDE", t[t.B = 8] = "B", t[t.BASE = 9] = "BASE", t[t.BASEFONT = 10] = "BASEFONT", t[t.BGSOUND = 11] = "BGSOUND", t[t.BIG = 12] = "BIG", t[t.BLOCKQUOTE = 13] = "BLOCKQUOTE", t[t.BODY = 14] = "BODY", t[t.BR = 15] = "BR", t[t.BUTTON = 16] = "BUTTON", t[t.CAPTION = 17] = "CAPTION", t[t.CENTER = 18] = "CENTER", t[t.CODE = 19] = "CODE", t[t.COL = 20] = "COL", t[t.COLGROUP = 21] = "COLGROUP", t[t.DD = 22] = "DD", t[t.DESC = 23] = "DESC", t[t.DETAILS = 24] = "DETAILS", t[t.DIALOG = 25] = "DIALOG", t[t.DIR = 26] = "DIR", t[t.DIV = 27] = "DIV", t[t.DL = 28] = "DL", t[t.DT = 29] = "DT", t[t.EM = 30] = "EM", t[t.EMBED = 31] = "EMBED", t[t.FIELDSET = 32] = "FIELDSET", t[t.FIGCAPTION = 33] = "FIGCAPTION", t[t.FIGURE = 34] = "FIGURE", t[t.FONT = 35] = "FONT", t[t.FOOTER = 36] = "FOOTER", t[t.FOREIGN_OBJECT = 37] = "FOREIGN_OBJECT", t[t.FORM = 38] = "FORM", t[t.FRAME = 39] = "FRAME", t[t.FRAMESET = 40] = "FRAMESET", t[t.H1 = 41] = "H1", t[t.H2 = 42] = "H2", t[t.H3 = 43] = "H3", t[t.H4 = 44] = "H4", t[t.H5 = 45] = "H5", t[t.H6 = 46] = "H6", t[t.HEAD = 47] = "HEAD", t[t.HEADER = 48] = "HEADER", t[t.HGROUP = 49] = "HGROUP", t[t.HR = 50] = "HR", t[t.HTML = 51] = "HTML", t[t.I = 52] = "I", t[t.IMG = 53] = "IMG", t[t.IMAGE = 54] = "IMAGE", t[t.INPUT = 55] = "INPUT", t[t.IFRAME = 56] = "IFRAME", t[t.KEYGEN = 57] = "KEYGEN", t[t.LABEL = 58] = "LABEL", t[t.LI = 59] = "LI", t[t.LINK = 60] = "LINK", t[t.LISTING = 61] = "LISTING", t[t.MAIN = 62] = "MAIN", t[t.MALIGNMARK = 63] = "MALIGNMARK", t[t.MARQUEE = 64] = "MARQUEE", t[t.MATH = 65] = "MATH", t[t.MENU = 66] = "MENU", t[t.META = 67] = "META", t[t.MGLYPH = 68] = "MGLYPH", t[t.MI = 69] = "MI", t[t.MO = 70] = "MO", t[t.MN = 71] = "MN", t[t.MS = 72] = "MS", t[t.MTEXT = 73] = "MTEXT", t[t.NAV = 74] = "NAV", t[t.NOBR = 75] = "NOBR", t[t.NOFRAMES = 76] = "NOFRAMES", t[t.NOEMBED = 77] = "NOEMBED", t[t.NOSCRIPT = 78] = "NOSCRIPT", t[t.OBJECT = 79] = "OBJECT", t[t.OL = 80] = "OL", t[t.OPTGROUP = 81] = "OPTGROUP", t[t.OPTION = 82] = "OPTION", t[t.P = 83] = "P", t[t.PARAM = 84] = "PARAM", t[t.PLAINTEXT = 85] = "PLAINTEXT", t[t.PRE = 86] = "PRE", t[t.RB = 87] = "RB", t[t.RP = 88] = "RP", t[t.RT = 89] = "RT", t[t.RTC = 90] = "RTC", t[t.RUBY = 91] = "RUBY", t[t.S = 92] = "S", t[t.SCRIPT = 93] = "SCRIPT", t[t.SECTION = 94] = "SECTION", t[t.SELECT = 95] = "SELECT", t[t.SOURCE = 96] = "SOURCE", t[t.SMALL = 97] = "SMALL", t[t.SPAN = 98] = "SPAN", t[t.STRIKE = 99] = "STRIKE", t[t.STRONG = 100] = "STRONG", t[t.STYLE = 101] = "STYLE", t[t.SUB = 102] = "SUB", t[t.SUMMARY = 103] = "SUMMARY", t[t.SUP = 104] = "SUP", t[t.TABLE = 105] = "TABLE", t[t.TBODY = 106] = "TBODY", t[t.TEMPLATE = 107] = "TEMPLATE", t[t.TEXTAREA = 108] = "TEXTAREA", t[t.TFOOT = 109] = "TFOOT", t[t.TD = 110] = "TD", t[t.TH = 111] = "TH", t[t.THEAD = 112] = "THEAD", t[t.TITLE = 113] = "TITLE", t[t.TR = 114] = "TR", t[t.TRACK = 115] = "TRACK", t[t.TT = 116] = "TT", t[t.U = 117] = "U", t[t.UL = 118] = "UL", t[t.SVG = 119] = "SVG", t[t.VAR = 120] = "VAR", t[t.WBR = 121] = "WBR", t[t.XMP = 122] = "XMP" }(T = T || {}); var _ge = new Map([[ne.A, T.A], [ne.ADDRESS, T.ADDRESS], [ne.ANNOTATION_XML, T.ANNOTATION_XML], [ne.APPLET, T.APPLET], [ne.AREA, T.AREA], [ne.ARTICLE, T.ARTICLE], [ne.ASIDE, T.ASIDE], [ne.B, T.B], [ne.BASE, T.BASE], [ne.BASEFONT, T.BASEFONT], [ne.BGSOUND, T.BGSOUND], [ne.BIG, T.BIG], [ne.BLOCKQUOTE, T.BLOCKQUOTE], [ne.BODY, T.BODY], [ne.BR, T.BR], [ne.BUTTON, T.BUTTON], [ne.CAPTION, T.CAPTION], [ne.CENTER, T.CENTER], [ne.CODE, T.CODE], [ne.COL, T.COL], [ne.COLGROUP, T.COLGROUP], [ne.DD, T.DD], [ne.DESC, T.DESC], [ne.DETAILS, T.DETAILS], [ne.DIALOG, T.DIALOG], [ne.DIR, T.DIR], [ne.DIV, T.DIV], [ne.DL, T.DL], [ne.DT, T.DT], [ne.EM, T.EM], [ne.EMBED, T.EMBED], [ne.FIELDSET, T.FIELDSET], [ne.FIGCAPTION, T.FIGCAPTION], [ne.FIGURE, T.FIGURE], [ne.FONT, T.FONT], [ne.FOOTER, T.FOOTER], [ne.FOREIGN_OBJECT, T.FOREIGN_OBJECT], [ne.FORM, T.FORM], [ne.FRAME, T.FRAME], [ne.FRAMESET, T.FRAMESET], [ne.H1, T.H1], [ne.H2, T.H2], [ne.H3, T.H3], [ne.H4, T.H4], [ne.H5, T.H5], [ne.H6, T.H6], [ne.HEAD, T.HEAD], [ne.HEADER, T.HEADER], [ne.HGROUP, T.HGROUP], [ne.HR, T.HR], [ne.HTML, T.HTML], [ne.I, T.I], [ne.IMG, T.IMG], [ne.IMAGE, T.IMAGE], [ne.INPUT, T.INPUT], [ne.IFRAME, T.IFRAME], [ne.KEYGEN, T.KEYGEN], [ne.LABEL, T.LABEL], [ne.LI, T.LI], [ne.LINK, T.LINK], [ne.LISTING, T.LISTING], [ne.MAIN, T.MAIN], [ne.MALIGNMARK, T.MALIGNMARK], [ne.MARQUEE, T.MARQUEE], [ne.MATH, T.MATH], [ne.MENU, T.MENU], [ne.META, T.META], [ne.MGLYPH, T.MGLYPH], [ne.MI, T.MI], [ne.MO, T.MO], [ne.MN, T.MN], [ne.MS, T.MS], [ne.MTEXT, T.MTEXT], [ne.NAV, T.NAV], [ne.NOBR, T.NOBR], [ne.NOFRAMES, T.NOFRAMES], [ne.NOEMBED, T.NOEMBED], [ne.NOSCRIPT, T.NOSCRIPT], [ne.OBJECT, T.OBJECT], [ne.OL, T.OL], [ne.OPTGROUP, T.OPTGROUP], [ne.OPTION, T.OPTION], [ne.P, T.P], [ne.PARAM, T.PARAM], [ne.PLAINTEXT, T.PLAINTEXT], [ne.PRE, T.PRE], [ne.RB, T.RB], [ne.RP, T.RP], [ne.RT, T.RT], [ne.RTC, T.RTC], [ne.RUBY, T.RUBY], [ne.S, T.S], [ne.SCRIPT, T.SCRIPT], [ne.SECTION, T.SECTION], [ne.SELECT, T.SELECT], [ne.SOURCE, T.SOURCE], [ne.SMALL, T.SMALL], [ne.SPAN, T.SPAN], [ne.STRIKE, T.STRIKE], [ne.STRONG, T.STRONG], [ne.STYLE, T.STYLE], [ne.SUB, T.SUB], [ne.SUMMARY, T.SUMMARY], [ne.SUP, T.SUP], [ne.TABLE, T.TABLE], [ne.TBODY, T.TBODY], [ne.TEMPLATE, T.TEMPLATE], [ne.TEXTAREA, T.TEXTAREA], [ne.TFOOT, T.TFOOT], [ne.TD, T.TD], [ne.TH, T.TH], [ne.THEAD, T.THEAD], [ne.TITLE, T.TITLE], [ne.TR, T.TR], [ne.TRACK, T.TRACK], [ne.TT, T.TT], [ne.U, T.U], [ne.UL, T.UL], [ne.SVG, T.SVG], [ne.VAR, T.VAR], [ne.WBR, T.WBR], [ne.XMP, T.XMP]]); function z7(t) { return (t = _ge.get(t)) != null ? t : T.UNKNOWN } var be = T, Ege = { [de.HTML]: new Set([be.ADDRESS, be.APPLET, be.AREA, be.ARTICLE, be.ASIDE, be.BASE, be.BASEFONT, be.BGSOUND, be.BLOCKQUOTE, be.BODY, be.BR, be.BUTTON, be.CAPTION, be.CENTER, be.COL, be.COLGROUP, be.DD, be.DETAILS, be.DIR, be.DIV, be.DL, be.DT, be.EMBED, be.FIELDSET, be.FIGCAPTION, be.FIGURE, be.FOOTER, be.FORM, be.FRAME, be.FRAMESET, be.H1, be.H2, be.H3, be.H4, be.H5, be.H6, be.HEAD, be.HEADER, be.HGROUP, be.HR, be.HTML, be.IFRAME, be.IMG, be.INPUT, be.LI, be.LINK, be.LISTING, be.MAIN, be.MARQUEE, be.MENU, be.META, be.NAV, be.NOEMBED, be.NOFRAMES, be.NOSCRIPT, be.OBJECT, be.OL, be.P, be.PARAM, be.PLAINTEXT, be.PRE, be.SCRIPT, be.SECTION, be.SELECT, be.SOURCE, be.STYLE, be.SUMMARY, be.TABLE, be.TBODY, be.TD, be.TEMPLATE, be.TEXTAREA, be.TFOOT, be.TH, be.THEAD, be.TITLE, be.TR, be.TRACK, be.UL, be.WBR, be.XMP]), [de.MATHML]: new Set([be.MI, be.MO, be.MN, be.MS, be.MTEXT, be.ANNOTATION_XML]), [de.SVG]: new Set([be.TITLE, be.FOREIGN_OBJECT, be.DESC]), [de.XLINK]: new Set, [de.XML]: new Set, [de.XMLNS]: new Set }; function uH(t) { return t === be.H1 || t === be.H2 || t === be.H3 || t === be.H4 || t === be.H5 || t === be.H6 } var bge = new Set([ne.STYLE, ne.SCRIPT, ne.XMP, ne.IFRAME, ne.NOEMBED, ne.NOFRAMES, ne.PLAINTEXT]), wge = new Map([[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]]), Sl = (function (t) { t[t.DATA = 0] = "DATA", t[t.RCDATA = 1] = "RCDATA", t[t.RAWTEXT = 2] = "RAWTEXT", t[t.SCRIPT_DATA = 3] = "SCRIPT_DATA", t[t.PLAINTEXT = 4] = "PLAINTEXT", t[t.TAG_OPEN = 5] = "TAG_OPEN", t[t.END_TAG_OPEN = 6] = "END_TAG_OPEN", t[t.TAG_NAME = 7] = "TAG_NAME", t[t.RCDATA_LESS_THAN_SIGN = 8] = "RCDATA_LESS_THAN_SIGN", t[t.RCDATA_END_TAG_OPEN = 9] = "RCDATA_END_TAG_OPEN", t[t.RCDATA_END_TAG_NAME = 10] = "RCDATA_END_TAG_NAME", t[t.RAWTEXT_LESS_THAN_SIGN = 11] = "RAWTEXT_LESS_THAN_SIGN", t[t.RAWTEXT_END_TAG_OPEN = 12] = "RAWTEXT_END_TAG_OPEN", t[t.RAWTEXT_END_TAG_NAME = 13] = "RAWTEXT_END_TAG_NAME", t[t.SCRIPT_DATA_LESS_THAN_SIGN = 14] = "SCRIPT_DATA_LESS_THAN_SIGN", t[t.SCRIPT_DATA_END_TAG_OPEN = 15] = "SCRIPT_DATA_END_TAG_OPEN", t[t.SCRIPT_DATA_END_TAG_NAME = 16] = "SCRIPT_DATA_END_TAG_NAME", t[t.SCRIPT_DATA_ESCAPE_START = 17] = "SCRIPT_DATA_ESCAPE_START", t[t.SCRIPT_DATA_ESCAPE_START_DASH = 18] = "SCRIPT_DATA_ESCAPE_START_DASH", t[t.SCRIPT_DATA_ESCAPED = 19] = "SCRIPT_DATA_ESCAPED", t[t.SCRIPT_DATA_ESCAPED_DASH = 20] = "SCRIPT_DATA_ESCAPED_DASH", t[t.SCRIPT_DATA_ESCAPED_DASH_DASH = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH", t[t.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN", t[t.SCRIPT_DATA_ESCAPED_END_TAG_OPEN = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN", t[t.SCRIPT_DATA_ESCAPED_END_TAG_NAME = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME", t[t.SCRIPT_DATA_DOUBLE_ESCAPE_START = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START", t[t.SCRIPT_DATA_DOUBLE_ESCAPED = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED", t[t.SCRIPT_DATA_DOUBLE_ESCAPED_DASH = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH", t[t.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH", t[t.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN", t[t.SCRIPT_DATA_DOUBLE_ESCAPE_END = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END", t[t.BEFORE_ATTRIBUTE_NAME = 31] = "BEFORE_ATTRIBUTE_NAME", t[t.ATTRIBUTE_NAME = 32] = "ATTRIBUTE_NAME", t[t.AFTER_ATTRIBUTE_NAME = 33] = "AFTER_ATTRIBUTE_NAME", t[t.BEFORE_ATTRIBUTE_VALUE = 34] = "BEFORE_ATTRIBUTE_VALUE", t[t.ATTRIBUTE_VALUE_DOUBLE_QUOTED = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED", t[t.ATTRIBUTE_VALUE_SINGLE_QUOTED = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED", t[t.ATTRIBUTE_VALUE_UNQUOTED = 37] = "ATTRIBUTE_VALUE_UNQUOTED", t[t.AFTER_ATTRIBUTE_VALUE_QUOTED = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED", t[t.SELF_CLOSING_START_TAG = 39] = "SELF_CLOSING_START_TAG", t[t.BOGUS_COMMENT = 40] = "BOGUS_COMMENT", t[t.MARKUP_DECLARATION_OPEN = 41] = "MARKUP_DECLARATION_OPEN", t[t.COMMENT_START = 42] = "COMMENT_START", t[t.COMMENT_START_DASH = 43] = "COMMENT_START_DASH", t[t.COMMENT = 44] = "COMMENT", t[t.COMMENT_LESS_THAN_SIGN = 45] = "COMMENT_LESS_THAN_SIGN", t[t.COMMENT_LESS_THAN_SIGN_BANG = 46] = "COMMENT_LESS_THAN_SIGN_BANG", t[t.COMMENT_LESS_THAN_SIGN_BANG_DASH = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH", t[t.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH", t[t.COMMENT_END_DASH = 49] = "COMMENT_END_DASH", t[t.COMMENT_END = 50] = "COMMENT_END", t[t.COMMENT_END_BANG = 51] = "COMMENT_END_BANG", t[t.DOCTYPE = 52] = "DOCTYPE", t[t.BEFORE_DOCTYPE_NAME = 53] = "BEFORE_DOCTYPE_NAME", t[t.DOCTYPE_NAME = 54] = "DOCTYPE_NAME", t[t.AFTER_DOCTYPE_NAME = 55] = "AFTER_DOCTYPE_NAME", t[t.AFTER_DOCTYPE_PUBLIC_KEYWORD = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD", t[t.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER", t[t.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED", t[t.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED", t[t.AFTER_DOCTYPE_PUBLIC_IDENTIFIER = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER", t[t.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS", t[t.AFTER_DOCTYPE_SYSTEM_KEYWORD = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD", t[t.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER", t[t.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED", t[t.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED", t[t.AFTER_DOCTYPE_SYSTEM_IDENTIFIER = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER", t[t.BOGUS_DOCTYPE = 67] = "BOGUS_DOCTYPE", t[t.CDATA_SECTION = 68] = "CDATA_SECTION", t[t.CDATA_SECTION_BRACKET = 69] = "CDATA_SECTION_BRACKET", t[t.CDATA_SECTION_END = 70] = "CDATA_SECTION_END", t[t.CHARACTER_REFERENCE = 71] = "CHARACTER_REFERENCE", t[t.NAMED_CHARACTER_REFERENCE = 72] = "NAMED_CHARACTER_REFERENCE", t[t.AMBIGUOUS_AMPERSAND = 73] = "AMBIGUOUS_AMPERSAND", t[t.NUMERIC_CHARACTER_REFERENCE = 74] = "NUMERIC_CHARACTER_REFERENCE", t[t.HEXADEMICAL_CHARACTER_REFERENCE_START = 75] = "HEXADEMICAL_CHARACTER_REFERENCE_START", t[t.HEXADEMICAL_CHARACTER_REFERENCE = 76] = "HEXADEMICAL_CHARACTER_REFERENCE", t[t.DECIMAL_CHARACTER_REFERENCE = 77] = "DECIMAL_CHARACTER_REFERENCE", t[t.NUMERIC_CHARACTER_REFERENCE_END = 78] = "NUMERIC_CHARACTER_REFERENCE_END" }(j = j || {}), { DATA: j.DATA, RCDATA: j.RCDATA, RAWTEXT: j.RAWTEXT, SCRIPT_DATA: j.SCRIPT_DATA, PLAINTEXT: j.PLAINTEXT, CDATA_SECTION: j.CDATA_SECTION }); function zc(t) { return t >= D.DIGIT_0 && t <= D.DIGIT_9 } function Gc(t) { return t >= D.LATIN_CAPITAL_A && t <= D.LATIN_CAPITAL_Z } function B2(t) { return function (e) { return e >= D.LATIN_SMALL_A && e <= D.LATIN_SMALL_Z }(t) || Gc(t) } function z_(t) { return B2(t) || zc(t) } function P$(t) { return t >= D.LATIN_CAPITAL_A && t <= D.LATIN_CAPITAL_F } function L$(t) { return t >= D.LATIN_SMALL_A && t <= D.LATIN_SMALL_F } function S7(t) { return t + 32 } function cH(t) { return t === D.SPACE || t === D.LINE_FEED || t === D.TABULATION || t === D.FORM_FEED } function F$(t) { return cH(t) || t === D.SOLIDUS || t === D.GREATER_THAN_SIGN } var gE = class { constructor(e, n) { this.options = e, this.handler = n, this.paused = !1, this.inLoop = !1, this.inForeignNode = !1, this.lastStartTagName = "", this.active = !1, this.state = j.DATA, this.returnState = j.DATA, this.charRefCode = -1, this.consumedAfterSnapshot = -1, this.currentCharacterToken = null, this.currentToken = null, this.currentAttr = { name: "", value: "" }, this.preprocessor = new yE(n), this.currentLocation = this.getCurrentLocation(-1) } _err(e) { var n, r; (r = (n = this.handler).onParseError) != null && r.call(n, this.preprocessor.getError(e)) } getCurrentLocation(e) { return this.options.sourceCodeLocationInfo ? { startLine: this.preprocessor.line, startCol: this.preprocessor.col - e, startOffset: this.preprocessor.offset - e, endLine: -1, endCol: -1, endOffset: -1 } : null } _runParsingLoop() { if (!this.inLoop) { for (this.inLoop = !0; this.active && !this.paused;) { this.consumedAfterSnapshot = 0; var e = this._consume(); this._ensureHibernation() || this._callState(e) } this.inLoop = !1 } } pause() { this.paused = !0 } resume(e) { if (!this.paused) throw new Error("Parser was already resumed"); this.paused = !1, this.inLoop || (this._runParsingLoop(), this.paused) || e == null || e() } write(e, n, r) { this.active = !0, this.preprocessor.write(e, n), this._runParsingLoop(), this.paused || r == null || r() } insertHtmlAtCurrentPos(e) { this.active = !0, this.preprocessor.insertHtmlAtCurrentPos(e), this._runParsingLoop() } _ensureHibernation() { return !(!this.preprocessor.endOfChunkHit || (this._unconsume(this.consumedAfterSnapshot), this.active = !1)) } _consume() { return this.consumedAfterSnapshot++, this.preprocessor.advance() } _unconsume(e) { this.consumedAfterSnapshot -= e, this.preprocessor.retreat(e) } _reconsumeInState(e, n) { this.state = e, this._callState(n) } _advanceBy(e) { this.consumedAfterSnapshot += e; for (let n = 0; n < e; n++)this.preprocessor.advance() } _consumeSequenceIfMatch(e, n) { return !!this.preprocessor.startsWith(e, n) && (this._advanceBy(e.length - 1), !0) } _createStartTagToken() { this.currentToken = { type: rn.START_TAG, tagName: "", tagID: T.UNKNOWN, selfClosing: !1, ackSelfClosing: !1, attrs: [], location: this.getCurrentLocation(1) } } _createEndTagToken() { this.currentToken = { type: rn.END_TAG, tagName: "", tagID: T.UNKNOWN, selfClosing: !1, ackSelfClosing: !1, attrs: [], location: this.getCurrentLocation(2) } } _createCommentToken(e) { this.currentToken = { type: rn.COMMENT, data: "", location: this.getCurrentLocation(e) } } _createDoctypeToken(e) { this.currentToken = { type: rn.DOCTYPE, name: e, forceQuirks: !1, publicId: null, systemId: null, location: this.currentLocation } } _createCharacterToken(e, n) { this.currentCharacterToken = { type: e, chars: n, location: this.currentLocation } } _createAttr(e) { this.currentAttr = { name: e, value: "" }, this.currentLocation = this.getCurrentLocation(0) } _leaveAttrName() { var e, n = this.currentToken; lH(n, this.currentAttr.name) === null ? (n.attrs.push(this.currentAttr), n.location && this.currentLocation && (((e = (n = n.location).attrs) != null ? e : n.attrs = Object.create(null))[this.currentAttr.name] = this.currentLocation, this._leaveAttrValue())) : this._err(ue.duplicateAttribute) } _leaveAttrValue() { this.currentLocation && (this.currentLocation.endLine = this.preprocessor.line, this.currentLocation.endCol = this.preprocessor.col, this.currentLocation.endOffset = this.preprocessor.offset) } prepareToken(e) { this._emitCurrentCharacterToken(e.location), this.currentToken = null, e.location && (e.location.endLine = this.preprocessor.line, e.location.endCol = this.preprocessor.col + 1, e.location.endOffset = this.preprocessor.offset + 1), this.currentLocation = this.getCurrentLocation(-1) } emitCurrentTagToken() { var e = this.currentToken; this.prepareToken(e), e.tagID = z7(e.tagName), e.type === rn.START_TAG ? (this.lastStartTagName = e.tagName, this.handler.onStartTag(e)) : (0 < e.attrs.length && this._err(ue.endTagWithAttributes), e.selfClosing && this._err(ue.endTagWithTrailingSolidus), this.handler.onEndTag(e)), this.preprocessor.dropParsedChunk() } emitCurrentComment(e) { this.prepareToken(e), this.handler.onComment(e), this.preprocessor.dropParsedChunk() } emitCurrentDoctype(e) { this.prepareToken(e), this.handler.onDoctype(e), this.preprocessor.dropParsedChunk() } _emitCurrentCharacterToken(e) { if (this.currentCharacterToken) { switch (e && this.currentCharacterToken.location && (this.currentCharacterToken.location.endLine = e.startLine, this.currentCharacterToken.location.endCol = e.startCol, this.currentCharacterToken.location.endOffset = e.startOffset), this.currentCharacterToken.type) { case rn.CHARACTER: this.handler.onCharacter(this.currentCharacterToken); break; case rn.NULL_CHARACTER: this.handler.onNullCharacter(this.currentCharacterToken); break; case rn.WHITESPACE_CHARACTER: this.handler.onWhitespaceCharacter(this.currentCharacterToken) }this.currentCharacterToken = null } } _emitEOFToken() { var e = this.getCurrentLocation(0); e && (e.endLine = e.startLine, e.endCol = e.startCol, e.endOffset = e.startOffset), this._emitCurrentCharacterToken(e), this.handler.onEof({ type: rn.EOF, location: e }), this.active = !1 } _appendCharToCurrentCharacterToken(e, n) { if (this.currentCharacterToken) { if (this.currentCharacterToken.type === e) return void (this.currentCharacterToken.chars += n); this.currentLocation = this.getCurrentLocation(0), this._emitCurrentCharacterToken(this.currentLocation), this.preprocessor.dropParsedChunk() } this._createCharacterToken(e, n) } _emitCodePoint(e) { var n = cH(e) ? rn.WHITESPACE_CHARACTER : e === D.NULL ? rn.NULL_CHARACTER : rn.CHARACTER; this._appendCharToCurrentCharacterToken(n, String.fromCodePoint(e)) } _emitChars(e) { this._appendCharToCurrentCharacterToken(rn.CHARACTER, e) } _matchNamedCharacterReference(e) { let n = null, r = 0, i = !1; for (let s = 0, a = $2[0]; 0 <= s && !((s = oH($2, a, s + 1, e)) < 0); e = this._consume()) { r += 1; var l = (a = $2[s]) & Yc.VALUE_LENGTH; if (l) { let o = (l >> 14) - 1; if (e !== D.SEMICOLON && this._isCharacterReferenceInAttribute() && ((l = this.preprocessor.peek(1)) === D.EQUALS_SIGN || z_(l)) ? (n = [D.AMPERSAND], s += o) : (n = o == 0 ? [$2[s] & ~Yc.VALUE_LENGTH] : o == 1 ? [$2[++s]] : [$2[++s], $2[++s]], r = 0, i = e !== D.SEMICOLON), o == 0) { this._consume(); break } } } return this._unconsume(r), i && !this.preprocessor.endOfChunkHit && this._err(ue.missingSemicolonAfterCharacterReference), this._unconsume(1), n } _isCharacterReferenceInAttribute() { return this.returnState === j.ATTRIBUTE_VALUE_DOUBLE_QUOTED || this.returnState === j.ATTRIBUTE_VALUE_SINGLE_QUOTED || this.returnState === j.ATTRIBUTE_VALUE_UNQUOTED } _flushCodePointConsumedAsCharacterReference(e) { this._isCharacterReferenceInAttribute() ? this.currentAttr.value += String.fromCodePoint(e) : this._emitCodePoint(e) } _callState(e) { switch (this.state) { case j.DATA: this._stateData(e); break; case j.RCDATA: this._stateRcdata(e); break; case j.RAWTEXT: this._stateRawtext(e); break; case j.SCRIPT_DATA: this._stateScriptData(e); break; case j.PLAINTEXT: this._statePlaintext(e); break; case j.TAG_OPEN: this._stateTagOpen(e); break; case j.END_TAG_OPEN: this._stateEndTagOpen(e); break; case j.TAG_NAME: this._stateTagName(e); break; case j.RCDATA_LESS_THAN_SIGN: this._stateRcdataLessThanSign(e); break; case j.RCDATA_END_TAG_OPEN: this._stateRcdataEndTagOpen(e); break; case j.RCDATA_END_TAG_NAME: this._stateRcdataEndTagName(e); break; case j.RAWTEXT_LESS_THAN_SIGN: this._stateRawtextLessThanSign(e); break; case j.RAWTEXT_END_TAG_OPEN: this._stateRawtextEndTagOpen(e); break; case j.RAWTEXT_END_TAG_NAME: this._stateRawtextEndTagName(e); break; case j.SCRIPT_DATA_LESS_THAN_SIGN: this._stateScriptDataLessThanSign(e); break; case j.SCRIPT_DATA_END_TAG_OPEN: this._stateScriptDataEndTagOpen(e); break; case j.SCRIPT_DATA_END_TAG_NAME: this._stateScriptDataEndTagName(e); break; case j.SCRIPT_DATA_ESCAPE_START: this._stateScriptDataEscapeStart(e); break; case j.SCRIPT_DATA_ESCAPE_START_DASH: this._stateScriptDataEscapeStartDash(e); break; case j.SCRIPT_DATA_ESCAPED: this._stateScriptDataEscaped(e); break; case j.SCRIPT_DATA_ESCAPED_DASH: this._stateScriptDataEscapedDash(e); break; case j.SCRIPT_DATA_ESCAPED_DASH_DASH: this._stateScriptDataEscapedDashDash(e); break; case j.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: this._stateScriptDataEscapedLessThanSign(e); break; case j.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: this._stateScriptDataEscapedEndTagOpen(e); break; case j.SCRIPT_DATA_ESCAPED_END_TAG_NAME: this._stateScriptDataEscapedEndTagName(e); break; case j.SCRIPT_DATA_DOUBLE_ESCAPE_START: this._stateScriptDataDoubleEscapeStart(e); break; case j.SCRIPT_DATA_DOUBLE_ESCAPED: this._stateScriptDataDoubleEscaped(e); break; case j.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: this._stateScriptDataDoubleEscapedDash(e); break; case j.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: this._stateScriptDataDoubleEscapedDashDash(e); break; case j.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: this._stateScriptDataDoubleEscapedLessThanSign(e); break; case j.SCRIPT_DATA_DOUBLE_ESCAPE_END: this._stateScriptDataDoubleEscapeEnd(e); break; case j.BEFORE_ATTRIBUTE_NAME: this._stateBeforeAttributeName(e); break; case j.ATTRIBUTE_NAME: this._stateAttributeName(e); break; case j.AFTER_ATTRIBUTE_NAME: this._stateAfterAttributeName(e); break; case j.BEFORE_ATTRIBUTE_VALUE: this._stateBeforeAttributeValue(e); break; case j.ATTRIBUTE_VALUE_DOUBLE_QUOTED: this._stateAttributeValueDoubleQuoted(e); break; case j.ATTRIBUTE_VALUE_SINGLE_QUOTED: this._stateAttributeValueSingleQuoted(e); break; case j.ATTRIBUTE_VALUE_UNQUOTED: this._stateAttributeValueUnquoted(e); break; case j.AFTER_ATTRIBUTE_VALUE_QUOTED: this._stateAfterAttributeValueQuoted(e); break; case j.SELF_CLOSING_START_TAG: this._stateSelfClosingStartTag(e); break; case j.BOGUS_COMMENT: this._stateBogusComment(e); break; case j.MARKUP_DECLARATION_OPEN: this._stateMarkupDeclarationOpen(e); break; case j.COMMENT_START: this._stateCommentStart(e); break; case j.COMMENT_START_DASH: this._stateCommentStartDash(e); break; case j.COMMENT: this._stateComment(e); break; case j.COMMENT_LESS_THAN_SIGN: this._stateCommentLessThanSign(e); break; case j.COMMENT_LESS_THAN_SIGN_BANG: this._stateCommentLessThanSignBang(e); break; case j.COMMENT_LESS_THAN_SIGN_BANG_DASH: this._stateCommentLessThanSignBangDash(e); break; case j.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: this._stateCommentLessThanSignBangDashDash(e); break; case j.COMMENT_END_DASH: this._stateCommentEndDash(e); break; case j.COMMENT_END: this._stateCommentEnd(e); break; case j.COMMENT_END_BANG: this._stateCommentEndBang(e); break; case j.DOCTYPE: this._stateDoctype(e); break; case j.BEFORE_DOCTYPE_NAME: this._stateBeforeDoctypeName(e); break; case j.DOCTYPE_NAME: this._stateDoctypeName(e); break; case j.AFTER_DOCTYPE_NAME: this._stateAfterDoctypeName(e); break; case j.AFTER_DOCTYPE_PUBLIC_KEYWORD: this._stateAfterDoctypePublicKeyword(e); break; case j.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: this._stateBeforeDoctypePublicIdentifier(e); break; case j.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: this._stateDoctypePublicIdentifierDoubleQuoted(e); break; case j.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: this._stateDoctypePublicIdentifierSingleQuoted(e); break; case j.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: this._stateAfterDoctypePublicIdentifier(e); break; case j.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: this._stateBetweenDoctypePublicAndSystemIdentifiers(e); break; case j.AFTER_DOCTYPE_SYSTEM_KEYWORD: this._stateAfterDoctypeSystemKeyword(e); break; case j.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: this._stateBeforeDoctypeSystemIdentifier(e); break; case j.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: this._stateDoctypeSystemIdentifierDoubleQuoted(e); break; case j.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: this._stateDoctypeSystemIdentifierSingleQuoted(e); break; case j.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: this._stateAfterDoctypeSystemIdentifier(e); break; case j.BOGUS_DOCTYPE: this._stateBogusDoctype(e); break; case j.CDATA_SECTION: this._stateCdataSection(e); break; case j.CDATA_SECTION_BRACKET: this._stateCdataSectionBracket(e); break; case j.CDATA_SECTION_END: this._stateCdataSectionEnd(e); break; case j.CHARACTER_REFERENCE: this._stateCharacterReference(e); break; case j.NAMED_CHARACTER_REFERENCE: this._stateNamedCharacterReference(e); break; case j.AMBIGUOUS_AMPERSAND: this._stateAmbiguousAmpersand(e); break; case j.NUMERIC_CHARACTER_REFERENCE: this._stateNumericCharacterReference(e); break; case j.HEXADEMICAL_CHARACTER_REFERENCE_START: this._stateHexademicalCharacterReferenceStart(e); break; case j.HEXADEMICAL_CHARACTER_REFERENCE: this._stateHexademicalCharacterReference(e); break; case j.DECIMAL_CHARACTER_REFERENCE: this._stateDecimalCharacterReference(e); break; case j.NUMERIC_CHARACTER_REFERENCE_END: this._stateNumericCharacterReferenceEnd(e); break; default: throw new Error("Unknown state") } } _stateData(e) { switch (e) { case D.LESS_THAN_SIGN: this.state = j.TAG_OPEN; break; case D.AMPERSAND: this.returnState = j.DATA, this.state = j.CHARACTER_REFERENCE; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this._emitCodePoint(e); break; case D.EOF: this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _stateRcdata(e) { switch (e) { case D.AMPERSAND: this.returnState = j.RCDATA, this.state = j.CHARACTER_REFERENCE; break; case D.LESS_THAN_SIGN: this.state = j.RCDATA_LESS_THAN_SIGN; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this._emitChars(mr); break; case D.EOF: this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _stateRawtext(e) { switch (e) { case D.LESS_THAN_SIGN: this.state = j.RAWTEXT_LESS_THAN_SIGN; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this._emitChars(mr); break; case D.EOF: this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _stateScriptData(e) { switch (e) { case D.LESS_THAN_SIGN: this.state = j.SCRIPT_DATA_LESS_THAN_SIGN; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this._emitChars(mr); break; case D.EOF: this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _statePlaintext(e) { switch (e) { case D.NULL: this._err(ue.unexpectedNullCharacter), this._emitChars(mr); break; case D.EOF: this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _stateTagOpen(e) { if (B2(e)) this._createStartTagToken(), this.state = j.TAG_NAME, this._stateTagName(e); else switch (e) { case D.EXCLAMATION_MARK: this.state = j.MARKUP_DECLARATION_OPEN; break; case D.SOLIDUS: this.state = j.END_TAG_OPEN; break; case D.QUESTION_MARK: this._err(ue.unexpectedQuestionMarkInsteadOfTagName), this._createCommentToken(1), this.state = j.BOGUS_COMMENT, this._stateBogusComment(e); break; case D.EOF: this._err(ue.eofBeforeTagName), this._emitChars("<"), this._emitEOFToken(); break; default: this._err(ue.invalidFirstCharacterOfTagName), this._emitChars("<"), this.state = j.DATA, this._stateData(e) } } _stateEndTagOpen(e) { if (B2(e)) this._createEndTagToken(), this.state = j.TAG_NAME, this._stateTagName(e); else switch (e) { case D.GREATER_THAN_SIGN: this._err(ue.missingEndTagName), this.state = j.DATA; break; case D.EOF: this._err(ue.eofBeforeTagName), this._emitChars("</"), this._emitEOFToken(); break; default: this._err(ue.invalidFirstCharacterOfTagName), this._createCommentToken(2), this.state = j.BOGUS_COMMENT, this._stateBogusComment(e) } } _stateTagName(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this.state = j.BEFORE_ATTRIBUTE_NAME; break; case D.SOLIDUS: this.state = j.SELF_CLOSING_START_TAG; break; case D.GREATER_THAN_SIGN: this.state = j.DATA, this.emitCurrentTagToken(); break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.tagName += mr; break; case D.EOF: this._err(ue.eofInTag), this._emitEOFToken(); break; default: n.tagName += String.fromCodePoint(Gc(e) ? S7(e) : e) } } _stateRcdataLessThanSign(e) { e === D.SOLIDUS ? this.state = j.RCDATA_END_TAG_OPEN : (this._emitChars("<"), this.state = j.RCDATA, this._stateRcdata(e)) } _stateRcdataEndTagOpen(e) { B2(e) ? (this.state = j.RCDATA_END_TAG_NAME, this._stateRcdataEndTagName(e)) : (this._emitChars("</"), this.state = j.RCDATA, this._stateRcdata(e)) } handleSpecialEndTag(e) { if (!this.preprocessor.startsWith(this.lastStartTagName, !1)) return !this._ensureHibernation(); switch (this._createEndTagToken(), this.currentToken.tagName = this.lastStartTagName, this.preprocessor.peek(this.lastStartTagName.length)) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: return this._advanceBy(this.lastStartTagName.length), this.state = j.BEFORE_ATTRIBUTE_NAME, !1; case D.SOLIDUS: return this._advanceBy(this.lastStartTagName.length), this.state = j.SELF_CLOSING_START_TAG, !1; case D.GREATER_THAN_SIGN: return this._advanceBy(this.lastStartTagName.length), this.emitCurrentTagToken(), this.state = j.DATA, !1; default: return !this._ensureHibernation() } } _stateRcdataEndTagName(e) { this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = j.RCDATA, this._stateRcdata(e)) } _stateRawtextLessThanSign(e) { e === D.SOLIDUS ? this.state = j.RAWTEXT_END_TAG_OPEN : (this._emitChars("<"), this.state = j.RAWTEXT, this._stateRawtext(e)) } _stateRawtextEndTagOpen(e) { B2(e) ? (this.state = j.RAWTEXT_END_TAG_NAME, this._stateRawtextEndTagName(e)) : (this._emitChars("</"), this.state = j.RAWTEXT, this._stateRawtext(e)) } _stateRawtextEndTagName(e) { this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = j.RAWTEXT, this._stateRawtext(e)) } _stateScriptDataLessThanSign(e) { switch (e) { case D.SOLIDUS: this.state = j.SCRIPT_DATA_END_TAG_OPEN; break; case D.EXCLAMATION_MARK: this.state = j.SCRIPT_DATA_ESCAPE_START, this._emitChars("<!"); break; default: this._emitChars("<"), this.state = j.SCRIPT_DATA, this._stateScriptData(e) } } _stateScriptDataEndTagOpen(e) { B2(e) ? (this.state = j.SCRIPT_DATA_END_TAG_NAME, this._stateScriptDataEndTagName(e)) : (this._emitChars("</"), this.state = j.SCRIPT_DATA, this._stateScriptData(e)) } _stateScriptDataEndTagName(e) { this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = j.SCRIPT_DATA, this._stateScriptData(e)) } _stateScriptDataEscapeStart(e) { e === D.HYPHEN_MINUS ? (this.state = j.SCRIPT_DATA_ESCAPE_START_DASH, this._emitChars("-")) : (this.state = j.SCRIPT_DATA, this._stateScriptData(e)) } _stateScriptDataEscapeStartDash(e) { e === D.HYPHEN_MINUS ? (this.state = j.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-")) : (this.state = j.SCRIPT_DATA, this._stateScriptData(e)) } _stateScriptDataEscaped(e) { switch (e) { case D.HYPHEN_MINUS: this.state = j.SCRIPT_DATA_ESCAPED_DASH, this._emitChars("-"); break; case D.LESS_THAN_SIGN: this.state = j.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this._emitChars(mr); break; case D.EOF: this._err(ue.eofInScriptHtmlCommentLikeText), this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _stateScriptDataEscapedDash(e) { switch (e) { case D.HYPHEN_MINUS: this.state = j.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-"); break; case D.LESS_THAN_SIGN: this.state = j.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.state = j.SCRIPT_DATA_ESCAPED, this._emitChars(mr); break; case D.EOF: this._err(ue.eofInScriptHtmlCommentLikeText), this._emitEOFToken(); break; default: this.state = j.SCRIPT_DATA_ESCAPED, this._emitCodePoint(e) } } _stateScriptDataEscapedDashDash(e) { switch (e) { case D.HYPHEN_MINUS: this._emitChars("-"); break; case D.LESS_THAN_SIGN: this.state = j.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN; break; case D.GREATER_THAN_SIGN: this.state = j.SCRIPT_DATA, this._emitChars(">"); break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.state = j.SCRIPT_DATA_ESCAPED, this._emitChars(mr); break; case D.EOF: this._err(ue.eofInScriptHtmlCommentLikeText), this._emitEOFToken(); break; default: this.state = j.SCRIPT_DATA_ESCAPED, this._emitCodePoint(e) } } _stateScriptDataEscapedLessThanSign(e) { e === D.SOLIDUS ? this.state = j.SCRIPT_DATA_ESCAPED_END_TAG_OPEN : B2(e) ? (this._emitChars("<"), this.state = j.SCRIPT_DATA_DOUBLE_ESCAPE_START, this._stateScriptDataDoubleEscapeStart(e)) : (this._emitChars("<"), this.state = j.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e)) } _stateScriptDataEscapedEndTagOpen(e) { B2(e) ? (this.state = j.SCRIPT_DATA_ESCAPED_END_TAG_NAME, this._stateScriptDataEscapedEndTagName(e)) : (this._emitChars("</"), this.state = j.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e)) } _stateScriptDataEscapedEndTagName(e) { this.handleSpecialEndTag(e) && (this._emitChars("</"), this.state = j.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e)) } _stateScriptDataDoubleEscapeStart(e) { if (this.preprocessor.startsWith($1, !1) && F$(this.preprocessor.peek($1.length))) { this._emitCodePoint(e); for (let n = 0; n < $1.length; n++)this._emitCodePoint(this._consume()); this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED } else this._ensureHibernation() || (this.state = j.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(e)) } _stateScriptDataDoubleEscaped(e) { switch (e) { case D.HYPHEN_MINUS: this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED_DASH, this._emitChars("-"); break; case D.LESS_THAN_SIGN: this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<"); break; case D.NULL: this._err(ue.unexpectedNullCharacter), this._emitChars(mr); break; case D.EOF: this._err(ue.eofInScriptHtmlCommentLikeText), this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _stateScriptDataDoubleEscapedDash(e) { switch (e) { case D.HYPHEN_MINUS: this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH, this._emitChars("-"); break; case D.LESS_THAN_SIGN: this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<"); break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars(mr); break; case D.EOF: this._err(ue.eofInScriptHtmlCommentLikeText), this._emitEOFToken(); break; default: this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(e) } } _stateScriptDataDoubleEscapedDashDash(e) { switch (e) { case D.HYPHEN_MINUS: this._emitChars("-"); break; case D.LESS_THAN_SIGN: this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<"); break; case D.GREATER_THAN_SIGN: this.state = j.SCRIPT_DATA, this._emitChars(">"); break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars(mr); break; case D.EOF: this._err(ue.eofInScriptHtmlCommentLikeText), this._emitEOFToken(); break; default: this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(e) } } _stateScriptDataDoubleEscapedLessThanSign(e) { e === D.SOLIDUS ? (this.state = j.SCRIPT_DATA_DOUBLE_ESCAPE_END, this._emitChars("/")) : (this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(e)) } _stateScriptDataDoubleEscapeEnd(e) { if (this.preprocessor.startsWith($1, !1) && F$(this.preprocessor.peek($1.length))) { this._emitCodePoint(e); for (let n = 0; n < $1.length; n++)this._emitCodePoint(this._consume()); this.state = j.SCRIPT_DATA_ESCAPED } else this._ensureHibernation() || (this.state = j.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(e)) } _stateBeforeAttributeName(e) { switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.SOLIDUS: case D.GREATER_THAN_SIGN: case D.EOF: this.state = j.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(e); break; case D.EQUALS_SIGN: this._err(ue.unexpectedEqualsSignBeforeAttributeName), this._createAttr("="), this.state = j.ATTRIBUTE_NAME; break; default: this._createAttr(""), this.state = j.ATTRIBUTE_NAME, this._stateAttributeName(e) } } _stateAttributeName(e) { switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: case D.SOLIDUS: case D.GREATER_THAN_SIGN: case D.EOF: this._leaveAttrName(), this.state = j.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(e); break; case D.EQUALS_SIGN: this._leaveAttrName(), this.state = j.BEFORE_ATTRIBUTE_VALUE; break; case D.QUOTATION_MARK: case D.APOSTROPHE: case D.LESS_THAN_SIGN: this._err(ue.unexpectedCharacterInAttributeName), this.currentAttr.name += String.fromCodePoint(e); break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.currentAttr.name += mr; break; default: this.currentAttr.name += String.fromCodePoint(Gc(e) ? S7(e) : e) } } _stateAfterAttributeName(e) { switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.SOLIDUS: this.state = j.SELF_CLOSING_START_TAG; break; case D.EQUALS_SIGN: this.state = j.BEFORE_ATTRIBUTE_VALUE; break; case D.GREATER_THAN_SIGN: this.state = j.DATA, this.emitCurrentTagToken(); break; case D.EOF: this._err(ue.eofInTag), this._emitEOFToken(); break; default: this._createAttr(""), this.state = j.ATTRIBUTE_NAME, this._stateAttributeName(e) } } _stateBeforeAttributeValue(e) { switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.QUOTATION_MARK: this.state = j.ATTRIBUTE_VALUE_DOUBLE_QUOTED; break; case D.APOSTROPHE: this.state = j.ATTRIBUTE_VALUE_SINGLE_QUOTED; break; case D.GREATER_THAN_SIGN: this._err(ue.missingAttributeValue), this.state = j.DATA, this.emitCurrentTagToken(); break; default: this.state = j.ATTRIBUTE_VALUE_UNQUOTED, this._stateAttributeValueUnquoted(e) } } _stateAttributeValueDoubleQuoted(e) { switch (e) { case D.QUOTATION_MARK: this.state = j.AFTER_ATTRIBUTE_VALUE_QUOTED; break; case D.AMPERSAND: this.returnState = j.ATTRIBUTE_VALUE_DOUBLE_QUOTED, this.state = j.CHARACTER_REFERENCE; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.currentAttr.value += mr; break; case D.EOF: this._err(ue.eofInTag), this._emitEOFToken(); break; default: this.currentAttr.value += String.fromCodePoint(e) } } _stateAttributeValueSingleQuoted(e) { switch (e) { case D.APOSTROPHE: this.state = j.AFTER_ATTRIBUTE_VALUE_QUOTED; break; case D.AMPERSAND: this.returnState = j.ATTRIBUTE_VALUE_SINGLE_QUOTED, this.state = j.CHARACTER_REFERENCE; break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.currentAttr.value += mr; break; case D.EOF: this._err(ue.eofInTag), this._emitEOFToken(); break; default: this.currentAttr.value += String.fromCodePoint(e) } } _stateAttributeValueUnquoted(e) { switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this._leaveAttrValue(), this.state = j.BEFORE_ATTRIBUTE_NAME; break; case D.AMPERSAND: this.returnState = j.ATTRIBUTE_VALUE_UNQUOTED, this.state = j.CHARACTER_REFERENCE; break; case D.GREATER_THAN_SIGN: this._leaveAttrValue(), this.state = j.DATA, this.emitCurrentTagToken(); break; case D.NULL: this._err(ue.unexpectedNullCharacter), this.currentAttr.value += mr; break; case D.QUOTATION_MARK: case D.APOSTROPHE: case D.LESS_THAN_SIGN: case D.EQUALS_SIGN: case D.GRAVE_ACCENT: this._err(ue.unexpectedCharacterInUnquotedAttributeValue), this.currentAttr.value += String.fromCodePoint(e); break; case D.EOF: this._err(ue.eofInTag), this._emitEOFToken(); break; default: this.currentAttr.value += String.fromCodePoint(e) } } _stateAfterAttributeValueQuoted(e) { switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this._leaveAttrValue(), this.state = j.BEFORE_ATTRIBUTE_NAME; break; case D.SOLIDUS: this._leaveAttrValue(), this.state = j.SELF_CLOSING_START_TAG; break; case D.GREATER_THAN_SIGN: this._leaveAttrValue(), this.state = j.DATA, this.emitCurrentTagToken(); break; case D.EOF: this._err(ue.eofInTag), this._emitEOFToken(); break; default: this._err(ue.missingWhitespaceBetweenAttributes), this.state = j.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(e) } } _stateSelfClosingStartTag(e) { switch (e) { case D.GREATER_THAN_SIGN: this.currentToken.selfClosing = !0, this.state = j.DATA, this.emitCurrentTagToken(); break; case D.EOF: this._err(ue.eofInTag), this._emitEOFToken(); break; default: this._err(ue.unexpectedSolidusInTag), this.state = j.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(e) } } _stateBogusComment(e) { var n = this.currentToken; switch (e) { case D.GREATER_THAN_SIGN: this.state = j.DATA, this.emitCurrentComment(n); break; case D.EOF: this.emitCurrentComment(n), this._emitEOFToken(); break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.data += mr; break; default: n.data += String.fromCodePoint(e) } } _stateMarkupDeclarationOpen(e) { this._consumeSequenceIfMatch(C$, !0) ? (this._createCommentToken(C$.length + 1), this.state = j.COMMENT_START) : this._consumeSequenceIfMatch(I$, !1) ? (this.currentLocation = this.getCurrentLocation(I$.length + 1), this.state = j.DOCTYPE) : this._consumeSequenceIfMatch(R$, !0) ? this.inForeignNode ? this.state = j.CDATA_SECTION : (this._err(ue.cdataInHtmlContent), this._createCommentToken(R$.length + 1), this.currentToken.data = "[CDATA[", this.state = j.BOGUS_COMMENT) : this._ensureHibernation() || (this._err(ue.incorrectlyOpenedComment), this._createCommentToken(2), this.state = j.BOGUS_COMMENT, this._stateBogusComment(e)) } _stateCommentStart(e) { switch (e) { case D.HYPHEN_MINUS: this.state = j.COMMENT_START_DASH; break; case D.GREATER_THAN_SIGN: { this._err(ue.abruptClosingOfEmptyComment), this.state = j.DATA; let n = this.currentToken; this.emitCurrentComment(n); break } default: this.state = j.COMMENT, this._stateComment(e) } } _stateCommentStartDash(e) { var n = this.currentToken; switch (e) { case D.HYPHEN_MINUS: this.state = j.COMMENT_END; break; case D.GREATER_THAN_SIGN: this._err(ue.abruptClosingOfEmptyComment), this.state = j.DATA, this.emitCurrentComment(n); break; case D.EOF: this._err(ue.eofInComment), this.emitCurrentComment(n), this._emitEOFToken(); break; default: n.data += "-", this.state = j.COMMENT, this._stateComment(e) } } _stateComment(e) { var n = this.currentToken; switch (e) { case D.HYPHEN_MINUS: this.state = j.COMMENT_END_DASH; break; case D.LESS_THAN_SIGN: n.data += "<", this.state = j.COMMENT_LESS_THAN_SIGN; break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.data += mr; break; case D.EOF: this._err(ue.eofInComment), this.emitCurrentComment(n), this._emitEOFToken(); break; default: n.data += String.fromCodePoint(e) } } _stateCommentLessThanSign(e) { var n = this.currentToken; switch (e) { case D.EXCLAMATION_MARK: n.data += "!", this.state = j.COMMENT_LESS_THAN_SIGN_BANG; break; case D.LESS_THAN_SIGN: n.data += "<"; break; default: this.state = j.COMMENT, this._stateComment(e) } } _stateCommentLessThanSignBang(e) { e === D.HYPHEN_MINUS ? this.state = j.COMMENT_LESS_THAN_SIGN_BANG_DASH : (this.state = j.COMMENT, this._stateComment(e)) } _stateCommentLessThanSignBangDash(e) { e === D.HYPHEN_MINUS ? this.state = j.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH : (this.state = j.COMMENT_END_DASH, this._stateCommentEndDash(e)) } _stateCommentLessThanSignBangDashDash(e) { e !== D.GREATER_THAN_SIGN && e !== D.EOF && this._err(ue.nestedComment), this.state = j.COMMENT_END, this._stateCommentEnd(e) } _stateCommentEndDash(e) { var n = this.currentToken; switch (e) { case D.HYPHEN_MINUS: this.state = j.COMMENT_END; break; case D.EOF: this._err(ue.eofInComment), this.emitCurrentComment(n), this._emitEOFToken(); break; default: n.data += "-", this.state = j.COMMENT, this._stateComment(e) } } _stateCommentEnd(e) { var n = this.currentToken; switch (e) { case D.GREATER_THAN_SIGN: this.state = j.DATA, this.emitCurrentComment(n); break; case D.EXCLAMATION_MARK: this.state = j.COMMENT_END_BANG; break; case D.HYPHEN_MINUS: n.data += "-"; break; case D.EOF: this._err(ue.eofInComment), this.emitCurrentComment(n), this._emitEOFToken(); break; default: n.data += "--", this.state = j.COMMENT, this._stateComment(e) } } _stateCommentEndBang(e) { var n = this.currentToken; switch (e) { case D.HYPHEN_MINUS: n.data += "--!", this.state = j.COMMENT_END_DASH; break; case D.GREATER_THAN_SIGN: this._err(ue.incorrectlyClosedComment), this.state = j.DATA, this.emitCurrentComment(n); break; case D.EOF: this._err(ue.eofInComment), this.emitCurrentComment(n), this._emitEOFToken(); break; default: n.data += "--!", this.state = j.COMMENT, this._stateComment(e) } } _stateDoctype(e) { switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this.state = j.BEFORE_DOCTYPE_NAME; break; case D.GREATER_THAN_SIGN: this.state = j.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(e); break; case D.EOF: { this._err(ue.eofInDoctype), this._createDoctypeToken(null); let n = this.currentToken; n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break } default: this._err(ue.missingWhitespaceBeforeDoctypeName), this.state = j.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(e) } } _stateBeforeDoctypeName(e) { if (Gc(e)) this._createDoctypeToken(String.fromCharCode(S7(e))), this.state = j.DOCTYPE_NAME; else switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.NULL: this._err(ue.unexpectedNullCharacter), this._createDoctypeToken(mr), this.state = j.DOCTYPE_NAME; break; case D.GREATER_THAN_SIGN: { this._err(ue.missingDoctypeName), this._createDoctypeToken(null); let n = this.currentToken; n.forceQuirks = !0, this.emitCurrentDoctype(n), this.state = j.DATA; break } case D.EOF: { this._err(ue.eofInDoctype), this._createDoctypeToken(null); let n = this.currentToken; n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break } default: this._createDoctypeToken(String.fromCodePoint(e)), this.state = j.DOCTYPE_NAME } } _stateDoctypeName(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this.state = j.AFTER_DOCTYPE_NAME; break; case D.GREATER_THAN_SIGN: this.state = j.DATA, this.emitCurrentDoctype(n); break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.name += mr; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: n.name += String.fromCodePoint(Gc(e) ? S7(e) : e) } } _stateAfterDoctypeName(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.GREATER_THAN_SIGN: this.state = j.DATA, this.emitCurrentDoctype(n); break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._consumeSequenceIfMatch(fge, !1) ? this.state = j.AFTER_DOCTYPE_PUBLIC_KEYWORD : this._consumeSequenceIfMatch(dge, !1) ? this.state = j.AFTER_DOCTYPE_SYSTEM_KEYWORD : this._ensureHibernation() || (this._err(ue.invalidCharacterSequenceAfterDoctypeName), n.forceQuirks = !0, this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e)) } } _stateAfterDoctypePublicKeyword(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this.state = j.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER; break; case D.QUOTATION_MARK: this._err(ue.missingWhitespaceAfterDoctypePublicKeyword), n.publicId = "", this.state = j.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED; break; case D.APOSTROPHE: this._err(ue.missingWhitespaceAfterDoctypePublicKeyword), n.publicId = "", this.state = j.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED; break; case D.GREATER_THAN_SIGN: this._err(ue.missingDoctypePublicIdentifier), n.forceQuirks = !0, this.state = j.DATA, this.emitCurrentDoctype(n); break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._err(ue.missingQuoteBeforeDoctypePublicIdentifier), n.forceQuirks = !0, this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e) } } _stateBeforeDoctypePublicIdentifier(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.QUOTATION_MARK: n.publicId = "", this.state = j.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED; break; case D.APOSTROPHE: n.publicId = "", this.state = j.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED; break; case D.GREATER_THAN_SIGN: this._err(ue.missingDoctypePublicIdentifier), n.forceQuirks = !0, this.state = j.DATA, this.emitCurrentDoctype(n); break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._err(ue.missingQuoteBeforeDoctypePublicIdentifier), n.forceQuirks = !0, this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e) } } _stateDoctypePublicIdentifierDoubleQuoted(e) { var n = this.currentToken; switch (e) { case D.QUOTATION_MARK: this.state = j.AFTER_DOCTYPE_PUBLIC_IDENTIFIER; break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.publicId += mr; break; case D.GREATER_THAN_SIGN: this._err(ue.abruptDoctypePublicIdentifier), n.forceQuirks = !0, this.emitCurrentDoctype(n), this.state = j.DATA; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: n.publicId += String.fromCodePoint(e) } } _stateDoctypePublicIdentifierSingleQuoted(e) { var n = this.currentToken; switch (e) { case D.APOSTROPHE: this.state = j.AFTER_DOCTYPE_PUBLIC_IDENTIFIER; break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.publicId += mr; break; case D.GREATER_THAN_SIGN: this._err(ue.abruptDoctypePublicIdentifier), n.forceQuirks = !0, this.emitCurrentDoctype(n), this.state = j.DATA; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: n.publicId += String.fromCodePoint(e) } } _stateAfterDoctypePublicIdentifier(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this.state = j.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS; break; case D.GREATER_THAN_SIGN: this.state = j.DATA, this.emitCurrentDoctype(n); break; case D.QUOTATION_MARK: this._err(ue.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; case D.APOSTROPHE: this._err(ue.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._err(ue.missingQuoteBeforeDoctypeSystemIdentifier), n.forceQuirks = !0, this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e) } } _stateBetweenDoctypePublicAndSystemIdentifiers(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.GREATER_THAN_SIGN: this.emitCurrentDoctype(n), this.state = j.DATA; break; case D.QUOTATION_MARK: n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; case D.APOSTROPHE: n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._err(ue.missingQuoteBeforeDoctypeSystemIdentifier), n.forceQuirks = !0, this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e) } } _stateAfterDoctypeSystemKeyword(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: this.state = j.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER; break; case D.QUOTATION_MARK: this._err(ue.missingWhitespaceAfterDoctypeSystemKeyword), n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; case D.APOSTROPHE: this._err(ue.missingWhitespaceAfterDoctypeSystemKeyword), n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; case D.GREATER_THAN_SIGN: this._err(ue.missingDoctypeSystemIdentifier), n.forceQuirks = !0, this.state = j.DATA, this.emitCurrentDoctype(n); break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._err(ue.missingQuoteBeforeDoctypeSystemIdentifier), n.forceQuirks = !0, this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e) } } _stateBeforeDoctypeSystemIdentifier(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.QUOTATION_MARK: n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; case D.APOSTROPHE: n.systemId = "", this.state = j.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; case D.GREATER_THAN_SIGN: this._err(ue.missingDoctypeSystemIdentifier), n.forceQuirks = !0, this.state = j.DATA, this.emitCurrentDoctype(n); break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._err(ue.missingQuoteBeforeDoctypeSystemIdentifier), n.forceQuirks = !0, this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e) } } _stateDoctypeSystemIdentifierDoubleQuoted(e) { var n = this.currentToken; switch (e) { case D.QUOTATION_MARK: this.state = j.AFTER_DOCTYPE_SYSTEM_IDENTIFIER; break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.systemId += mr; break; case D.GREATER_THAN_SIGN: this._err(ue.abruptDoctypeSystemIdentifier), n.forceQuirks = !0, this.emitCurrentDoctype(n), this.state = j.DATA; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: n.systemId += String.fromCodePoint(e) } } _stateDoctypeSystemIdentifierSingleQuoted(e) { var n = this.currentToken; switch (e) { case D.APOSTROPHE: this.state = j.AFTER_DOCTYPE_SYSTEM_IDENTIFIER; break; case D.NULL: this._err(ue.unexpectedNullCharacter), n.systemId += mr; break; case D.GREATER_THAN_SIGN: this._err(ue.abruptDoctypeSystemIdentifier), n.forceQuirks = !0, this.emitCurrentDoctype(n), this.state = j.DATA; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: n.systemId += String.fromCodePoint(e) } } _stateAfterDoctypeSystemIdentifier(e) { var n = this.currentToken; switch (e) { case D.SPACE: case D.LINE_FEED: case D.TABULATION: case D.FORM_FEED: break; case D.GREATER_THAN_SIGN: this.emitCurrentDoctype(n), this.state = j.DATA; break; case D.EOF: this._err(ue.eofInDoctype), n.forceQuirks = !0, this.emitCurrentDoctype(n), this._emitEOFToken(); break; default: this._err(ue.unexpectedCharacterAfterDoctypeSystemIdentifier), this.state = j.BOGUS_DOCTYPE, this._stateBogusDoctype(e) } } _stateBogusDoctype(e) { var n = this.currentToken; switch (e) { case D.GREATER_THAN_SIGN: this.emitCurrentDoctype(n), this.state = j.DATA; break; case D.NULL: this._err(ue.unexpectedNullCharacter); break; case D.EOF: this.emitCurrentDoctype(n), this._emitEOFToken() } } _stateCdataSection(e) { switch (e) { case D.RIGHT_SQUARE_BRACKET: this.state = j.CDATA_SECTION_BRACKET; break; case D.EOF: this._err(ue.eofInCdata), this._emitEOFToken(); break; default: this._emitCodePoint(e) } } _stateCdataSectionBracket(e) { e === D.RIGHT_SQUARE_BRACKET ? this.state = j.CDATA_SECTION_END : (this._emitChars("]"), this.state = j.CDATA_SECTION, this._stateCdataSection(e)) } _stateCdataSectionEnd(e) { switch (e) { case D.GREATER_THAN_SIGN: this.state = j.DATA; break; case D.RIGHT_SQUARE_BRACKET: this._emitChars("]"); break; default: this._emitChars("]]"), this.state = j.CDATA_SECTION, this._stateCdataSection(e) } } _stateCharacterReference(e) { e === D.NUMBER_SIGN ? this.state = j.NUMERIC_CHARACTER_REFERENCE : z_(e) ? (this.state = j.NAMED_CHARACTER_REFERENCE, this._stateNamedCharacterReference(e)) : (this._flushCodePointConsumedAsCharacterReference(D.AMPERSAND), this._reconsumeInState(this.returnState, e)) } _stateNamedCharacterReference(e) { var n = this._matchNamedCharacterReference(e); if (!this._ensureHibernation()) if (n) { for (let r = 0; r < n.length; r++)this._flushCodePointConsumedAsCharacterReference(n[r]); this.state = this.returnState } else this._flushCodePointConsumedAsCharacterReference(D.AMPERSAND), this.state = j.AMBIGUOUS_AMPERSAND } _stateAmbiguousAmpersand(e) { z_(e) ? this._flushCodePointConsumedAsCharacterReference(e) : (e === D.SEMICOLON && this._err(ue.unknownNamedCharacterReference), this._reconsumeInState(this.returnState, e)) } _stateNumericCharacterReference(e) { this.charRefCode = 0, e === D.LATIN_SMALL_X || e === D.LATIN_CAPITAL_X ? this.state = j.HEXADEMICAL_CHARACTER_REFERENCE_START : zc(e) ? (this.state = j.DECIMAL_CHARACTER_REFERENCE, this._stateDecimalCharacterReference(e)) : (this._err(ue.absenceOfDigitsInNumericCharacterReference), this._flushCodePointConsumedAsCharacterReference(D.AMPERSAND), this._flushCodePointConsumedAsCharacterReference(D.NUMBER_SIGN), this._reconsumeInState(this.returnState, e)) } _stateHexademicalCharacterReferenceStart(e) { (function (n) { return zc(n) || P$(n) || L$(n) })(e) ? (this.state = j.HEXADEMICAL_CHARACTER_REFERENCE, this._stateHexademicalCharacterReference(e)) : (this._err(ue.absenceOfDigitsInNumericCharacterReference), this._flushCodePointConsumedAsCharacterReference(D.AMPERSAND), this._flushCodePointConsumedAsCharacterReference(D.NUMBER_SIGN), this._unconsume(2), this.state = this.returnState) } _stateHexademicalCharacterReference(e) { P$(e) ? this.charRefCode = 16 * this.charRefCode + e - 55 : L$(e) ? this.charRefCode = 16 * this.charRefCode + e - 87 : zc(e) ? this.charRefCode = 16 * this.charRefCode + e - 48 : e === D.SEMICOLON ? this.state = j.NUMERIC_CHARACTER_REFERENCE_END : (this._err(ue.missingSemicolonAfterCharacterReference), this.state = j.NUMERIC_CHARACTER_REFERENCE_END, this._stateNumericCharacterReferenceEnd(e)) } _stateDecimalCharacterReference(e) { zc(e) ? this.charRefCode = 10 * this.charRefCode + e - 48 : e === D.SEMICOLON ? this.state = j.NUMERIC_CHARACTER_REFERENCE_END : (this._err(ue.missingSemicolonAfterCharacterReference), this.state = j.NUMERIC_CHARACTER_REFERENCE_END, this._stateNumericCharacterReferenceEnd(e)) } _stateNumericCharacterReferenceEnd(e) { if (this.charRefCode === D.NULL) this._err(ue.nullCharacterReference), this.charRefCode = D.REPLACEMENT_CHARACTER; else if (1114111 < this.charRefCode) this._err(ue.characterReferenceOutsideUnicodeRange), this.charRefCode = D.REPLACEMENT_CHARACTER; else if (nH(this.charRefCode)) this._err(ue.surrogateCharacterReference), this.charRefCode = D.REPLACEMENT_CHARACTER; else if (iH(this.charRefCode)) this._err(ue.noncharacterCharacterReference); else if (rH(this.charRefCode) || this.charRefCode === D.CARRIAGE_RETURN) { this._err(ue.controlCharacterReference); let n = wge.get(this.charRefCode); n !== void 0 && (this.charRefCode = n) } this._flushCodePointConsumedAsCharacterReference(this.charRefCode), this._reconsumeInState(this.returnState, e) } }, pH = new Set([T.DD, T.DT, T.LI, T.OPTGROUP, T.OPTION, T.P, T.RB, T.RP, T.RT, T.RTC]), j$ = new Set([...pH, T.CAPTION, T.COLGROUP, T.TBODY, T.TD, T.TFOOT, T.TH, T.THEAD, T.TR]), T7 = new Map([[T.APPLET, de.HTML], [T.CAPTION, de.HTML], [T.HTML, de.HTML], [T.MARQUEE, de.HTML], [T.OBJECT, de.HTML], [T.TABLE, de.HTML], [T.TD, de.HTML], [T.TEMPLATE, de.HTML], [T.TH, de.HTML], [T.ANNOTATION_XML, de.MATHML], [T.MI, de.MATHML], [T.MN, de.MATHML], [T.MO, de.MATHML], [T.MS, de.MATHML], [T.MTEXT, de.MATHML], [T.DESC, de.SVG], [T.FOREIGN_OBJECT, de.SVG], [T.TITLE, de.SVG]]), Sge = [T.H1, T.H2, T.H3, T.H4, T.H5, T.H6], Tge = [T.TR, T.TEMPLATE, T.HTML], xge = [T.TBODY, T.TFOOT, T.THEAD, T.TEMPLATE, T.HTML], Age = [T.TABLE, T.TEMPLATE, T.HTML], Oge = [T.TD, T.TH], vE = class { get currentTmplContentOrNode() { return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current } constructor(e, n, r) { this.treeAdapter = n, this.handler = r, this.items = [], this.tagIDs = [], this.stackTop = -1, this.tmplCount = 0, this.currentTagId = T.UNKNOWN, this.current = e } _indexOf(e) { return this.items.lastIndexOf(e, this.stackTop) } _isInTemplate() { return this.currentTagId === T.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === de.HTML } _updateCurrentElement() { this.current = this.items[this.stackTop], this.currentTagId = this.tagIDs[this.stackTop] } push(e, n) { this.stackTop++, this.items[this.stackTop] = e, this.current = e, this.tagIDs[this.stackTop] = n, this.currentTagId = n, this._isInTemplate() && this.tmplCount++, this.handler.onItemPush(e, n, !0) } pop() { var e = this.current; 0 < this.tmplCount && this._isInTemplate() && this.tmplCount--, this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(e, !0) } replace(e, n) { e = this._indexOf(e), this.items[e] = n, e === this.stackTop && (this.current = n) } insertAfter(e, n, r) { e = this._indexOf(e) + 1, this.items.splice(e, 0, n), this.tagIDs.splice(e, 0, r), this.stackTop++, e === this.stackTop && this._updateCurrentElement(), this.handler.onItemPush(this.current, this.currentTagId, e === this.stackTop) } popUntilTagNamePopped(e) { let n = this.stackTop + 1; for (; 0 < (n = this.tagIDs.lastIndexOf(e, n - 1)) && this.treeAdapter.getNamespaceURI(this.items[n]) !== de.HTML;); this.shortenToLength(n < 0 ? 0 : n) } shortenToLength(e) { for (; this.stackTop >= e;) { var n = this.current; 0 < this.tmplCount && this._isInTemplate() && --this.tmplCount, this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(n, this.stackTop < e) } } popUntilElementPopped(e) { e = this._indexOf(e), this.shortenToLength(e < 0 ? 0 : e) } popUntilPopped(e, n) { e = this._indexOfTagNames(e, n), this.shortenToLength(e < 0 ? 0 : e) } popUntilNumberedHeaderPopped() { this.popUntilPopped(Sge, de.HTML) } popUntilTableCellPopped() { this.popUntilPopped(Oge, de.HTML) } popAllUpToHtmlElement() { this.tmplCount = 0, this.shortenToLength(1) } _indexOfTagNames(e, n) { for (let r = this.stackTop; 0 <= r; r--)if (e.includes(this.tagIDs[r]) && this.treeAdapter.getNamespaceURI(this.items[r]) === n) return r; return -1 } clearBackTo(e, n) { e = this._indexOfTagNames(e, n), this.shortenToLength(e + 1) } clearBackToTableContext() { this.clearBackTo(Age, de.HTML) } clearBackToTableBodyContext() { this.clearBackTo(xge, de.HTML) } clearBackToTableRowContext() { this.clearBackTo(Tge, de.HTML) } remove(e) { var n = this._indexOf(e); 0 <= n && (n === this.stackTop ? this.pop() : (this.items.splice(n, 1), this.tagIDs.splice(n, 1), this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(e, !1))) } tryPeekProperlyNestedBodyElement() { return 1 <= this.stackTop && this.tagIDs[1] === T.BODY ? this.items[1] : null } contains(e) { return -1 < this._indexOf(e) } getCommonAncestor(e) { return 0 <= (e = this._indexOf(e) - 1) ? this.items[e] : null } isRootHtmlElementCurrent() { return this.stackTop === 0 && this.tagIDs[0] === T.HTML } hasInScope(e) { for (let i = this.stackTop; 0 <= i; i--) { var n = this.tagIDs[i], r = this.treeAdapter.getNamespaceURI(this.items[i]); if (n === e && r === de.HTML) return !0; if (T7.get(n) === r) return !1 } return !0 } hasNumberedHeaderInScope() { for (let r = this.stackTop; 0 <= r; r--) { var e = this.tagIDs[r], n = this.treeAdapter.getNamespaceURI(this.items[r]); if (uH(e) && n === de.HTML) return !0; if (T7.get(e) === n) return !1 } return !0 } hasInListItemScope(e) { for (let i = this.stackTop; 0 <= i; i--) { var n = this.tagIDs[i], r = this.treeAdapter.getNamespaceURI(this.items[i]); if (n === e && r === de.HTML) return !0; if ((n === T.UL || n === T.OL) && r === de.HTML || T7.get(n) === r) return !1 } return !0 } hasInButtonScope(e) { for (let i = this.stackTop; 0 <= i; i--) { var n = this.tagIDs[i], r = this.treeAdapter.getNamespaceURI(this.items[i]); if (n === e && r === de.HTML) return !0; if (n === T.BUTTON && r === de.HTML || T7.get(n) === r) return !1 } return !0 } hasInTableScope(e) { for (let r = this.stackTop; 0 <= r; r--) { var n = this.tagIDs[r]; if (this.treeAdapter.getNamespaceURI(this.items[r]) === de.HTML) { if (n === e) return !0; if (n === T.TABLE || n === T.TEMPLATE || n === T.HTML) return !1 } } return !0 } hasTableBodyContextInTableScope() { for (let n = this.stackTop; 0 <= n; n--) { var e = this.tagIDs[n]; if (this.treeAdapter.getNamespaceURI(this.items[n]) === de.HTML) { if (e === T.TBODY || e === T.THEAD || e === T.TFOOT) return !0; if (e === T.TABLE || e === T.HTML) return !1 } } return !0 } hasInSelectScope(e) { for (let r = this.stackTop; 0 <= r; r--) { var n = this.tagIDs[r]; if (this.treeAdapter.getNamespaceURI(this.items[r]) === de.HTML) { if (n === e) return !0; if (n !== T.OPTION && n !== T.OPTGROUP) return !1 } } return !0 } generateImpliedEndTags() { for (; pH.has(this.currentTagId);)this.pop() } generateImpliedEndTagsThoroughly() { for (; j$.has(this.currentTagId);)this.pop() } generateImpliedEndTagsWithExclusion(e) { for (; this.currentTagId !== e && j$.has(this.currentTagId);)this.pop() } }; (function (t) { t[t.Marker = 0] = "Marker", t[t.Element = 1] = "Element" })(ua = ua || {}); var U$ = { type: ua.Marker }, _E = class { constructor(e) { this.treeAdapter = e, this.entries = [], this.bookmark = null } _getNoahArkConditionCandidates(e, n) { var r = [], i = n.length, l = this.treeAdapter.getTagName(e), s = this.treeAdapter.getNamespaceURI(e); for (let o = 0; o < this.entries.length; o++) { let u = this.entries[o]; if (u.type === ua.Marker) break; var a = u.element; if (this.treeAdapter.getTagName(a) === l && this.treeAdapter.getNamespaceURI(a) === s) { let c = this.treeAdapter.getAttrList(a); c.length === i && r.push({ idx: o, attrs: c }) } } return r } _ensureNoahArkCondition(e) { if (!(this.entries.length < 3)) { var n = this.treeAdapter.getAttrList(e), r = this._getNoahArkConditionCandidates(e, n); if (!(r.length < 3)) { let i = new Map(n.map(s => [s.name, s.value])), l = 0; for (let s = 0; s < r.length; s++) { let a = r[s]; a.attrs.every(o => i.get(o.name) === o.value) && 3 <= (l += 1) && this.entries.splice(a.idx, 1) } } } } insertMarker() { this.entries.unshift(U$) } pushElement(e, n) { this._ensureNoahArkCondition(e), this.entries.unshift({ type: ua.Element, element: e, token: n }) } insertElementAfterBookmark(e, n) { var r = this.entries.indexOf(this.bookmark); this.entries.splice(r, 0, { type: ua.Element, element: e, token: n }) } removeEntry(e) { 0 <= (e = this.entries.indexOf(e)) && this.entries.splice(e, 1) } clearToLastMarker() { var e = this.entries.indexOf(U$); 0 <= e ? this.entries.splice(0, e + 1) : this.entries.length = 0 } getElementEntryInScopeWithTagName(e) { var n = this.entries.find(r => r.type === ua.Marker || this.treeAdapter.getTagName(r.element) === e); return n && n.type === ua.Element ? n : null } getElementEntry(e) { return this.entries.find(n => n.type === ua.Element && n.element === e) } }; function M$(t) { return { nodeName: "#text", value: t, parentNode: null } } var X3 = { createDocument: () => ({ nodeName: "#document", mode: Pl.NO_QUIRKS, childNodes: [] }), createDocumentFragment: () => ({ nodeName: "#document-fragment", childNodes: [] }), createElement: (t, e, n) => ({ nodeName: t, tagName: t, attrs: n, namespaceURI: e, childNodes: [], parentNode: null }), createCommentNode: t => ({ nodeName: "#comment", data: t, parentNode: null }), appendChild(t, e) { t.childNodes.push(e), e.parentNode = t }, insertBefore(t, e, n) { n = t.childNodes.indexOf(n), t.childNodes.splice(n, 0, e), e.parentNode = t }, setTemplateContent(t, e) { t.content = e }, getTemplateContent: t => t.content, setDocumentType(t, e, n, r) { let i = t.childNodes.find(l => l.nodeName === "#documentType"); if (i) i.name = e, i.publicId = n, i.systemId = r; else { let l = { nodeName: "#documentType", name: e, publicId: n, systemId: r, parentNode: null }; X3.appendChild(t, l) } }, setDocumentMode(t, e) { t.mode = e }, getDocumentMode: t => t.mode, detachNode(t) { var e; t.parentNode && (e = t.parentNode.childNodes.indexOf(t), t.parentNode.childNodes.splice(e, 1), t.parentNode = null) }, insertText(t, e) { if (0 < t.childNodes.length) { var n = t.childNodes[t.childNodes.length - 1]; if (X3.isTextNode(n)) return void (n.value += e) } X3.appendChild(t, M$(e)) }, insertTextBefore(t, e, n) { var r = t.childNodes[t.childNodes.indexOf(n) - 1]; r && X3.isTextNode(r) ? r.value += e : X3.insertBefore(t, M$(e), n) }, adoptAttributes(t, e) { var n = new Set(t.attrs.map(r => r.name)); for (let r = 0; r < e.length; r++)n.has(e[r].name) || t.attrs.push(e[r]) }, getFirstChild: t => t.childNodes[0], getChildNodes: t => t.childNodes, getParentNode: t => t.parentNode, getAttrList: t => t.attrs, getTagName: t => t.tagName, getNamespaceURI: t => t.namespaceURI, getTextNodeContent: t => t.value, getCommentNodeContent: t => t.data, getDocumentTypeNodeName: t => t.name, getDocumentTypeNodePublicId: t => t.publicId, getDocumentTypeNodeSystemId: t => t.systemId, isTextNode: t => t.nodeName === "#text", isCommentNode: t => t.nodeName === "#comment", isDocumentTypeNode: t => t.nodeName === "#documentType", isElementNode: t => Object.prototype.hasOwnProperty.call(t, "tagName"), setNodeSourceCodeLocation(t, e) { t.sourceCodeLocation = e }, getNodeSourceCodeLocation: t => t.sourceCodeLocation, updateNodeSourceCodeLocation(t, e) { t.sourceCodeLocation = { ...t.sourceCodeLocation, ...e } } }, $$ = "html", Nge = "about:legacy-compat", Cge = "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd", fH = ["+//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//"], Rge = [...fH, "-//w3c//dtd html 4.01 frameset//", "-//w3c//dtd html 4.01 transitional//"], Ige = new Set(["-//w3o//dtd w3 html strict 3.0//en//", "-/w3c/dtd html 4.0 transitional/en", "html"]), dH = ["-//w3c//dtd xhtml 1.0 frameset//", "-//w3c//dtd xhtml 1.0 transitional//"], kge = [...dH, "-//w3c//dtd html 4.01 frameset//", "-//w3c//dtd html 4.01 transitional//"]; function B$(t, e) { return e.some(n => t.startsWith(n)) } var H$ = { TEXT_HTML: "text/html", APPLICATION_XML: "application/xhtml+xml" }, Dge = "definitionurl", Pge = "definitionURL", Lge = 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(t => [t.toLowerCase(), t])), Fge = new Map([["xlink:actuate", { prefix: "xlink", name: "actuate", namespace: de.XLINK }], ["xlink:arcrole", { prefix: "xlink", name: "arcrole", namespace: de.XLINK }], ["xlink:href", { prefix: "xlink", name: "href", namespace: de.XLINK }], ["xlink:role", { prefix: "xlink", name: "role", namespace: de.XLINK }], ["xlink:show", { prefix: "xlink", name: "show", namespace: de.XLINK }], ["xlink:title", { prefix: "xlink", name: "title", namespace: de.XLINK }], ["xlink:type", { prefix: "xlink", name: "type", namespace: de.XLINK }], ["xml:base", { prefix: "xml", name: "base", namespace: de.XML }], ["xml:lang", { prefix: "xml", name: "lang", namespace: de.XML }], ["xml:space", { prefix: "xml", name: "space", namespace: de.XML }], ["xmlns", { prefix: "", name: "xmlns", namespace: de.XMLNS }], ["xmlns:xlink", { prefix: "xmlns", name: "xlink", namespace: de.XMLNS }]]), jge = 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(t => [t.toLowerCase(), t])), Uge = new Set([T.B, T.BIG, T.BLOCKQUOTE, T.BODY, T.BR, T.CENTER, T.CODE, T.DD, T.DIV, T.DL, T.DT, T.EM, T.EMBED, T.H1, T.H2, T.H3, T.H4, T.H5, T.H6, T.HEAD, T.HR, T.I, T.IMG, T.LI, T.LISTING, T.MENU, T.META, T.NOBR, T.OL, T.P, T.PRE, T.RUBY, T.S, T.SMALL, T.SPAN, T.STRONG, T.STRIKE, T.SUB, T.SUP, T.TABLE, T.TT, T.U, T.UL, T.VAR]); function hH(t) { for (let e = 0; e < t.attrs.length; e++)if (t.attrs[e].name === Dge) { t.attrs[e].name = Pge; break } } function mH(t) { for (let n = 0; n < t.attrs.length; n++) { var e = Lge.get(t.attrs[n].name); e != null && (t.attrs[n].name = e) } } function EE(t) { for (let n = 0; n < t.attrs.length; n++) { var e = Fge.get(t.attrs[n].name); e && (t.attrs[n].prefix = e.prefix, t.attrs[n].name = e.name, t.attrs[n].namespace = e.namespace) } } function Mge(t, e, n, r) { return (!r || r === de.HTML) && function (i, l, s) { if (l === de.MATHML && i === T.ANNOTATION_XML) { for (let a = 0; a < s.length; a++)if (s[a].name === Z3.ENCODING) { let o = s[a].value.toLowerCase(); return o === H$.TEXT_HTML || o === H$.APPLICATION_XML } } return l === de.SVG && (i === T.FOREIGN_OBJECT || i === T.DESC || i === T.TITLE) }(t, e, n) || (!r || r === de.MATHML) && function (i, l) { return l === de.MATHML && (i === T.MI || i === T.MO || i === T.MN || i === T.MS || i === T.MTEXT) }(t, e) } var $ge = "hidden", Bge = 8, Hge = 3, Vge = (function (t) { t[t.INITIAL = 0] = "INITIAL", t[t.BEFORE_HTML = 1] = "BEFORE_HTML", t[t.BEFORE_HEAD = 2] = "BEFORE_HEAD", t[t.IN_HEAD = 3] = "IN_HEAD", t[t.IN_HEAD_NO_SCRIPT = 4] = "IN_HEAD_NO_SCRIPT", t[t.AFTER_HEAD = 5] = "AFTER_HEAD", t[t.IN_BODY = 6] = "IN_BODY", t[t.TEXT = 7] = "TEXT", t[t.IN_TABLE = 8] = "IN_TABLE", t[t.IN_TABLE_TEXT = 9] = "IN_TABLE_TEXT", t[t.IN_CAPTION = 10] = "IN_CAPTION", t[t.IN_COLUMN_GROUP = 11] = "IN_COLUMN_GROUP", t[t.IN_TABLE_BODY = 12] = "IN_TABLE_BODY", t[t.IN_ROW = 13] = "IN_ROW", t[t.IN_CELL = 14] = "IN_CELL", t[t.IN_SELECT = 15] = "IN_SELECT", t[t.IN_SELECT_IN_TABLE = 16] = "IN_SELECT_IN_TABLE", t[t.IN_TEMPLATE = 17] = "IN_TEMPLATE", t[t.AFTER_BODY = 18] = "AFTER_BODY", t[t.IN_FRAMESET = 19] = "IN_FRAMESET", t[t.AFTER_FRAMESET = 20] = "AFTER_FRAMESET", t[t.AFTER_AFTER_BODY = 21] = "AFTER_AFTER_BODY", t[t.AFTER_AFTER_FRAMESET = 22] = "AFTER_AFTER_FRAMESET" }(H = H || {}), { startLine: -1, startCol: -1, startOffset: -1, endLine: -1, endCol: -1, endOffset: -1 }), yH = new Set([T.TABLE, T.TBODY, T.TFOOT, T.THEAD, T.TR]), V$ = { scriptingEnabled: !0, sourceCodeLocationInfo: !1, treeAdapter: X3, onParseError: null }, G7 = class { constructor(e, n, r = null, i = null) { this.fragmentContext = r, this.scriptHandler = i, this.currentToken = null, this.stopped = !1, this.insertionMode = H.INITIAL, this.originalInsertionMode = H.INITIAL, this.headElement = null, this.formElement = null, this.currentNotInHTML = !1, this.tmplInsertionModeStack = [], this.pendingCharacterTokens = [], this.hasNonWhitespacePendingCharacterToken = !1, this.framesetOk = !0, this.skipNextNewLine = !1, this.fosterParentingEnabled = !1, this.options = { ...V$, ...e }, this.treeAdapter = this.options.treeAdapter, this.onParseError = this.options.onParseError, this.onParseError && (this.options.sourceCodeLocationInfo = !0), this.document = n ?? this.treeAdapter.createDocument(), this.tokenizer = new gE(this.options, this), this.activeFormattingElements = new _E(this.treeAdapter), this.fragmentContextID = r ? z7(this.treeAdapter.getTagName(r)) : T.UNKNOWN, this._setContextModes(r ?? this.document, this.fragmentContextID), this.openElements = new vE(this.document, this.treeAdapter, this) } static parse(e, n) { return (n = new this(n)).tokenizer.write(e, !0), n.document } static getFragmentParser(e, r) { var r = { ...V$, ...r }, i = (e == null && (e = r.treeAdapter.createElement(ne.TEMPLATE, de.HTML, [])), r.treeAdapter.createElement("documentmock", de.HTML, [])); return (r = new this(r, i, e)).fragmentContextID === T.TEMPLATE && r.tmplInsertionModeStack.unshift(H.IN_TEMPLATE), r._initTokenizerForFragmentParsing(), r._insertFakeRootElement(), r._resetInsertionMode(), r._findFormInFragmentContext(), r } getFragment() { var e = this.treeAdapter.getFirstChild(this.document), n = this.treeAdapter.createDocumentFragment(); return this._adoptNodes(e, n), n } _err(e, n, r) { this.onParseError && (n = { code: n, startLine: (e = (n = e.location) != null ? n : Vge).startLine, startCol: e.startCol, startOffset: e.startOffset, endLine: r ? e.startLine : e.endLine, endCol: r ? e.startCol : e.endCol, endOffset: r ? e.startOffset : e.endOffset }, this.onParseError(n)) } onItemPush(e, n, r) { var i, l; (l = (i = this.treeAdapter).onItemPush) != null && l.call(i, e), r && 0 < this.openElements.stackTop && this._setContextModes(e, n) } onItemPop(e, n) { var r, i; if (this.options.sourceCodeLocationInfo && this._setEndLocation(e, this.currentToken), (i = (r = this.treeAdapter).onItemPop) != null && i.call(r, e, this.openElements.current), n) { let l, s; this.openElements.stackTop === 0 && this.fragmentContext ? (l = this.fragmentContext, s = this.fragmentContextID) : { current: l, currentTagId: s } = this.openElements, this._setContextModes(l, s) } } _setContextModes(e, n) { var r = e === this.document || this.treeAdapter.getNamespaceURI(e) === de.HTML; this.currentNotInHTML = !r, this.tokenizer.inForeignNode = !r && !this._isIntegrationPoint(n, e) } _switchToTextParsing(e, n) { this._insertElement(e, de.HTML), this.tokenizer.state = n, this.originalInsertionMode = this.insertionMode, this.insertionMode = H.TEXT } switchToPlaintextParsing() { this.insertionMode = H.TEXT, this.originalInsertionMode = H.IN_BODY, this.tokenizer.state = Sl.PLAINTEXT } _getAdjustedCurrentElement() { return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current } _findFormInFragmentContext() { let e = this.fragmentContext; for (; e;) { if (this.treeAdapter.getTagName(e) === ne.FORM) { this.formElement = e; break } e = this.treeAdapter.getParentNode(e) } } _initTokenizerForFragmentParsing() { if (this.fragmentContext && this.treeAdapter.getNamespaceURI(this.fragmentContext) === de.HTML) switch (this.fragmentContextID) { case T.TITLE: case T.TEXTAREA: this.tokenizer.state = Sl.RCDATA; break; case T.STYLE: case T.XMP: case T.IFRAME: case T.NOEMBED: case T.NOFRAMES: case T.NOSCRIPT: this.tokenizer.state = Sl.RAWTEXT; break; case T.SCRIPT: this.tokenizer.state = Sl.SCRIPT_DATA; break; case T.PLAINTEXT: this.tokenizer.state = Sl.PLAINTEXT } } _setDocumentType(e) { let n = e.name || "", r = e.publicId || "", i = e.systemId || ""; if (this.treeAdapter.setDocumentType(this.document, n, r, i), e.location) { let l = this.treeAdapter.getChildNodes(this.document).find(s => this.treeAdapter.isDocumentTypeNode(s)); l && this.treeAdapter.setNodeSourceCodeLocation(l, e.location) } } _attachElementToTree(e, n) { if (this.options.sourceCodeLocationInfo && (n = n && { ...n, startTag: n }, this.treeAdapter.setNodeSourceCodeLocation(e, n)), this._shouldFosterParentOnInsertion()) this._fosterParentElement(e); else { let r = this.openElements.currentTmplContentOrNode; this.treeAdapter.appendChild(r, e) } } _appendElement(e, n) { n = this.treeAdapter.createElement(e.tagName, n, e.attrs), this._attachElementToTree(n, e.location) } _insertElement(e, n) { n = this.treeAdapter.createElement(e.tagName, n, e.attrs), this._attachElementToTree(n, e.location), this.openElements.push(n, e.tagID) } _insertFakeElement(e, n) { e = this.treeAdapter.createElement(e, de.HTML, []), this._attachElementToTree(e, null), this.openElements.push(e, n) } _insertTemplate(e) { var n = this.treeAdapter.createElement(e.tagName, de.HTML, e.attrs), r = this.treeAdapter.createDocumentFragment(); this.treeAdapter.setTemplateContent(n, r), this._attachElementToTree(n, e.location), this.openElements.push(n, e.tagID), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(r, null) } _insertFakeRootElement() { var e = this.treeAdapter.createElement(ne.HTML, de.HTML, []); this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(e, null), this.treeAdapter.appendChild(this.openElements.current, e), this.openElements.push(e, T.HTML) } _appendCommentNode(e, n) { var r = this.treeAdapter.createCommentNode(e.data); this.treeAdapter.appendChild(n, r), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(r, e.location) } _insertCharacters(e) { let n, r; if (this._shouldFosterParentOnInsertion() ? ({ parent: n, beforeElement: r } = this._findFosterParentingLocation(), r ? this.treeAdapter.insertTextBefore(n, e.chars, r) : this.treeAdapter.insertText(n, e.chars)) : (n = this.openElements.currentTmplContentOrNode, this.treeAdapter.insertText(n, e.chars)), e.location) { var i = this.treeAdapter.getChildNodes(n), l = r ? i.lastIndexOf(r) : i.length, l = i[l - 1]; if (this.treeAdapter.getNodeSourceCodeLocation(l)) { let { endLine: s, endCol: a, endOffset: o } = e.location; this.treeAdapter.updateNodeSourceCodeLocation(l, { endLine: s, endCol: a, endOffset: o }) } else this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(l, e.location) } } _adoptNodes(e, n) { for (let r = this.treeAdapter.getFirstChild(e); r; r = this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(r), this.treeAdapter.appendChild(n, r) } _setEndLocation(e, n) { var r, i; this.treeAdapter.getNodeSourceCodeLocation(e) && n.location && (r = n.location, i = this.treeAdapter.getTagName(e), i = n.type === rn.END_TAG && i === n.tagName ? { endTag: { ...r }, endLine: r.endLine, endCol: r.endCol, endOffset: r.endOffset } : { endLine: r.startLine, endCol: r.startCol, endOffset: r.startOffset }, this.treeAdapter.updateNodeSourceCodeLocation(e, i)) } shouldProcessStartTagTokenInForeignContent(e) { if (!this.currentNotInHTML) return !1; let n, r; return this.openElements.stackTop === 0 && this.fragmentContext ? (n = this.fragmentContext, r = this.fragmentContextID) : { current: n, currentTagId: r } = this.openElements, (e.tagID !== T.SVG || this.treeAdapter.getTagName(n) !== ne.ANNOTATION_XML || this.treeAdapter.getNamespaceURI(n) !== de.MATHML) && (this.tokenizer.inForeignNode || (e.tagID === T.MGLYPH || e.tagID === T.MALIGNMARK) && !this._isIntegrationPoint(r, n, de.HTML)) } _processToken(e) { switch (e.type) { case rn.CHARACTER: this.onCharacter(e); break; case rn.NULL_CHARACTER: this.onNullCharacter(e); break; case rn.COMMENT: this.onComment(e); break; case rn.DOCTYPE: this.onDoctype(e); break; case rn.START_TAG: this._processStartTag(e); break; case rn.END_TAG: this.onEndTag(e); break; case rn.EOF: this.onEof(e); break; case rn.WHITESPACE_CHARACTER: this.onWhitespaceCharacter(e) } } _isIntegrationPoint(e, n, r) { return Mge(e, this.treeAdapter.getNamespaceURI(n), this.treeAdapter.getAttrList(n), r) } _reconstructActiveFormattingElements() { let e = this.activeFormattingElements.entries.length; if (e) { var n = this.activeFormattingElements.entries.findIndex(r => r.type === ua.Marker || this.openElements.contains(r.element)); for (let r = n < 0 ? e - 1 : n - 1; 0 <= r; r--) { let i = this.activeFormattingElements.entries[r]; this._insertElement(i.token, this.treeAdapter.getNamespaceURI(i.element)), i.element = this.openElements.current } } } _closeTableCell() { this.openElements.generateImpliedEndTags(), this.openElements.popUntilTableCellPopped(), this.activeFormattingElements.clearToLastMarker(), this.insertionMode = H.IN_ROW } _closePElement() { this.openElements.generateImpliedEndTagsWithExclusion(T.P), this.openElements.popUntilTagNamePopped(T.P) } _resetInsertionMode() { for (let e = this.openElements.stackTop; 0 <= e; e--)switch (e === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[e]) { case T.TR: return void (this.insertionMode = H.IN_ROW); case T.TBODY: case T.THEAD: case T.TFOOT: return void (this.insertionMode = H.IN_TABLE_BODY); case T.CAPTION: return void (this.insertionMode = H.IN_CAPTION); case T.COLGROUP: return void (this.insertionMode = H.IN_COLUMN_GROUP); case T.TABLE: return void (this.insertionMode = H.IN_TABLE); case T.BODY: return void (this.insertionMode = H.IN_BODY); case T.FRAMESET: return void (this.insertionMode = H.IN_FRAMESET); case T.SELECT: return void this._resetInsertionModeForSelect(e); case T.TEMPLATE: return void (this.insertionMode = this.tmplInsertionModeStack[0]); case T.HTML: return void (this.insertionMode = this.headElement ? H.AFTER_HEAD : H.BEFORE_HEAD); case T.TD: case T.TH: if (0 < e) return void (this.insertionMode = H.IN_CELL); break; case T.HEAD: if (0 < e) return void (this.insertionMode = H.IN_HEAD) }this.insertionMode = H.IN_BODY } _resetInsertionModeForSelect(e) { if (0 < e) for (let n = e - 1; 0 < n; n--) { let r = this.openElements.tagIDs[n]; if (r === T.TEMPLATE) break; if (r === T.TABLE) return void (this.insertionMode = H.IN_SELECT_IN_TABLE) } this.insertionMode = H.IN_SELECT } _isElementCausesFosterParenting(e) { return yH.has(e) } _shouldFosterParentOnInsertion() { return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.currentTagId) } _findFosterParentingLocation() { for (let r = this.openElements.stackTop; 0 <= r; r--) { var e = this.openElements.items[r]; switch (this.openElements.tagIDs[r]) { case T.TEMPLATE: if (this.treeAdapter.getNamespaceURI(e) === de.HTML) return { parent: this.treeAdapter.getTemplateContent(e), beforeElement: null }; break; case T.TABLE: var n = this.treeAdapter.getParentNode(e); return n ? { parent: n, beforeElement: e } : { parent: this.openElements.items[r - 1], beforeElement: null } } } return { parent: this.openElements.items[0], beforeElement: null } } _fosterParentElement(e) { var n = this._findFosterParentingLocation(); n.beforeElement ? this.treeAdapter.insertBefore(n.parent, e, n.beforeElement) : this.treeAdapter.appendChild(n.parent, e) } _isSpecialElement(e, n) { return e = this.treeAdapter.getNamespaceURI(e), Ege[e].has(n) } onCharacter(e) { if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) (function (n, r) { n._insertCharacters(r), n.framesetOk = !1 })(this, e); else switch (this.insertionMode) { case H.INITIAL: Pc(this, e); break; case H.BEFORE_HTML: Lc(this, e); break; case H.BEFORE_HEAD: Fc(this, e); break; case H.IN_HEAD: Jc(this, e); break; case H.IN_HEAD_NO_SCRIPT: jc(this, e); break; case H.AFTER_HEAD: Uc(this, e); break; case H.IN_BODY: case H.IN_CAPTION: case H.IN_CELL: case H.IN_TEMPLATE: vH(this, e); break; case H.TEXT: case H.IN_SELECT: case H.IN_SELECT_IN_TABLE: this._insertCharacters(e); break; case H.IN_TABLE: case H.IN_TABLE_BODY: case H.IN_ROW: G_(this, e); break; case H.IN_TABLE_TEXT: SH(this, e); break; case H.IN_COLUMN_GROUP: R7(this, e); break; case H.AFTER_BODY: k7(this, e); break; case H.AFTER_AFTER_BODY: x7(this, e) } } onNullCharacter(e) { if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) (function (n, r) { r.chars = mr, n._insertCharacters(r) })(this, e); else switch (this.insertionMode) { case H.INITIAL: Pc(this, e); break; case H.BEFORE_HTML: Lc(this, e); break; case H.BEFORE_HEAD: Fc(this, e); break; case H.IN_HEAD: Jc(this, e); break; case H.IN_HEAD_NO_SCRIPT: jc(this, e); break; case H.AFTER_HEAD: Uc(this, e); break; case H.TEXT: this._insertCharacters(e); break; case H.IN_TABLE: case H.IN_TABLE_BODY: case H.IN_ROW: G_(this, e); break; case H.IN_COLUMN_GROUP: R7(this, e); break; case H.AFTER_BODY: k7(this, e); break; case H.AFTER_AFTER_BODY: x7(this, e) } } onComment(e) { if (this.skipNextNewLine = !1, this.currentNotInHTML) wE(this, e); else switch (this.insertionMode) { case H.INITIAL: case H.BEFORE_HTML: case H.BEFORE_HEAD: case H.IN_HEAD: case H.IN_HEAD_NO_SCRIPT: case H.AFTER_HEAD: case H.IN_BODY: case H.IN_TABLE: case H.IN_CAPTION: case H.IN_COLUMN_GROUP: case H.IN_TABLE_BODY: case H.IN_ROW: case H.IN_CELL: case H.IN_SELECT: case H.IN_SELECT_IN_TABLE: case H.IN_TEMPLATE: case H.IN_FRAMESET: case H.AFTER_FRAMESET: wE(this, e); break; case H.IN_TABLE_TEXT: Mc(this, e); break; case H.AFTER_BODY: (function (n, r) { n._appendCommentNode(r, n.openElements.items[0]) })(this, e); break; case H.AFTER_AFTER_BODY: case H.AFTER_AFTER_FRAMESET: (function (n, r) { n._appendCommentNode(r, n.document) })(this, e) } } onDoctype(e) { switch (this.skipNextNewLine = !1, this.insertionMode) { case H.INITIAL: (function (n, r) { n._setDocumentType(r); var i = r.forceQuirks ? Pl.QUIRKS : function (l) { if (l.name !== $$) return Pl.QUIRKS; var s = l.systemId; if (s && s.toLowerCase() === Cge) return Pl.QUIRKS; let a = l.publicId; if (a !== null) { if (a = a.toLowerCase(), Ige.has(a)) return Pl.QUIRKS; let o = s === null ? Rge : fH; if (B$(a, o)) return Pl.QUIRKS; if (o = s === null ? dH : kge, B$(a, o)) return Pl.LIMITED_QUIRKS } return Pl.NO_QUIRKS }(r); !function (l) { return l.name === $$ && l.publicId === null && (l.systemId === null || l.systemId === Nge) }(r) && n._err(r, ue.nonConformingDoctype), n.treeAdapter.setDocumentMode(n.document, i), n.insertionMode = H.BEFORE_HTML })(this, e); break; case H.BEFORE_HEAD: case H.IN_HEAD: case H.IN_HEAD_NO_SCRIPT: case H.AFTER_HEAD: this._err(e, ue.misplacedDoctype); break; case H.IN_TABLE_TEXT: Mc(this, e) } } onStartTag(e) { this.skipNextNewLine = !1, this.currentToken = e, this._processStartTag(e), e.selfClosing && !e.ackSelfClosing && this._err(e, ue.nonVoidHtmlElementStartTagWithTrailingSolidus) } _processStartTag(e) { this.shouldProcessStartTagTokenInForeignContent(e) ? function (n, r) { var i; (function (l) { var s = l.tagID; return s === T.FONT && l.attrs.some(({ name: a }) => a === Z3.COLOR || a === Z3.SIZE || a === Z3.FACE) || Uge.has(s) })(r) ? (Y$(n), n._startTagOutsideForeignContent(r)) : (i = n._getAdjustedCurrentElement(), (i = n.treeAdapter.getNamespaceURI(i)) === de.MATHML ? hH(r) : i === de.SVG && (function (l) { var s = jge.get(l.tagName); s != null && (l.tagName = s, l.tagID = z7(l.tagName)) }(r), mH(r)), EE(r), r.selfClosing ? n._appendElement(r, i) : n._insertElement(r, i), r.ackSelfClosing = !0) }(this, e) : this._startTagOutsideForeignContent(e) } _startTagOutsideForeignContent(e) { switch (this.insertionMode) { case H.INITIAL: Pc(this, e); break; case H.BEFORE_HTML: (function (n, r) { r.tagID === T.HTML ? (n._insertElement(r, de.HTML), n.insertionMode = H.BEFORE_HEAD) : Lc(n, r) })(this, e); break; case H.BEFORE_HEAD: (function (n, r) { switch (r.tagID) { case T.HTML: Vi(n, r); break; case T.HEAD: n._insertElement(r, de.HTML), n.headElement = n.openElements.current, n.insertionMode = H.IN_HEAD; break; default: Fc(n, r) } })(this, e); break; case H.IN_HEAD: Os(this, e); break; case H.IN_HEAD_NO_SCRIPT: (function (n, r) { switch (r.tagID) { case T.HTML: Vi(n, r); break; case T.BASEFONT: case T.BGSOUND: case T.HEAD: case T.LINK: case T.META: case T.NOFRAMES: case T.STYLE: Os(n, r); break; case T.NOSCRIPT: n._err(r, ue.nestedNoscriptInHead); break; default: jc(n, r) } })(this, e); break; case H.AFTER_HEAD: (function (n, r) { switch (r.tagID) { case T.HTML: Vi(n, r); break; case T.BODY: n._insertElement(r, de.HTML), n.framesetOk = !1, n.insertionMode = H.IN_BODY; break; case T.FRAMESET: n._insertElement(r, de.HTML), n.insertionMode = H.IN_FRAMESET; break; case T.BASE: case T.BASEFONT: case T.BGSOUND: case T.LINK: case T.META: case T.NOFRAMES: case T.SCRIPT: case T.STYLE: case T.TEMPLATE: case T.TITLE: n._err(r, ue.abandonedHeadElementChild), n.openElements.push(n.headElement, T.HEAD), Os(n, r), n.openElements.remove(n.headElement); break; case T.HEAD: n._err(r, ue.misplacedStartTagForHeadElement); break; default: Uc(n, r) } })(this, e); break; case H.IN_BODY: Vi(this, e); break; case H.IN_TABLE: t0(this, e); break; case H.IN_TABLE_TEXT: Mc(this, e); break; case H.IN_CAPTION: (function (n, r) { var i = r.tagID; J$.has(i) ? n.openElements.hasInTableScope(T.CAPTION) && (n.openElements.generateImpliedEndTags(), n.openElements.popUntilTagNamePopped(T.CAPTION), n.activeFormattingElements.clearToLastMarker(), n.insertionMode = H.IN_TABLE, t0(n, r)) : Vi(n, r) })(this, e); break; case H.IN_COLUMN_GROUP: SE(this, e); break; case H.IN_TABLE_BODY: J7(this, e); break; case H.IN_ROW: I7(this, e); break; case H.IN_CELL: (function (n, r) { var i = r.tagID; J$.has(i) ? (n.openElements.hasInTableScope(T.TD) || n.openElements.hasInTableScope(T.TH)) && (n._closeTableCell(), I7(n, r)) : Vi(n, r) })(this, e); break; case H.IN_SELECT: X$(this, e); break; case H.IN_SELECT_IN_TABLE: (function (n, r) { var i = r.tagID; i === T.CAPTION || i === T.TABLE || i === T.TBODY || i === T.TFOOT || i === T.THEAD || i === T.TR || i === T.TD || i === T.TH ? (n.openElements.popUntilTagNamePopped(T.SELECT), n._resetInsertionMode(), n._processStartTag(r)) : X$(n, r) })(this, e); break; case H.IN_TEMPLATE: (function (n, r) { switch (r.tagID) { case T.BASE: case T.BASEFONT: case T.BGSOUND: case T.LINK: case T.META: case T.NOFRAMES: case T.SCRIPT: case T.STYLE: case T.TEMPLATE: case T.TITLE: Os(n, r); break; case T.CAPTION: case T.COLGROUP: case T.TBODY: case T.TFOOT: case T.THEAD: n.tmplInsertionModeStack[0] = H.IN_TABLE, n.insertionMode = H.IN_TABLE, t0(n, r); break; case T.COL: n.tmplInsertionModeStack[0] = H.IN_COLUMN_GROUP, n.insertionMode = H.IN_COLUMN_GROUP, SE(n, r); break; case T.TR: n.tmplInsertionModeStack[0] = H.IN_TABLE_BODY, n.insertionMode = H.IN_TABLE_BODY, J7(n, r); break; case T.TD: case T.TH: n.tmplInsertionModeStack[0] = H.IN_ROW, n.insertionMode = H.IN_ROW, I7(n, r); break; default: n.tmplInsertionModeStack[0] = H.IN_BODY, n.insertionMode = H.IN_BODY, Vi(n, r) } })(this, e); break; case H.AFTER_BODY: (function (n, r) { (r.tagID === T.HTML ? Vi : k7)(n, r) })(this, e); break; case H.IN_FRAMESET: (function (n, r) { switch (r.tagID) { case T.HTML: Vi(n, r); break; case T.FRAMESET: n._insertElement(r, de.HTML); break; case T.FRAME: n._appendElement(r, de.HTML), r.ackSelfClosing = !0; break; case T.NOFRAMES: Os(n, r) } })(this, e); break; case H.AFTER_FRAMESET: (function (n, r) { switch (r.tagID) { case T.HTML: Vi(n, r); break; case T.NOFRAMES: Os(n, r) } })(this, e); break; case H.AFTER_AFTER_BODY: (function (n, r) { (r.tagID === T.HTML ? Vi : x7)(n, r) })(this, e); break; case H.AFTER_AFTER_FRAMESET: (function (n, r) { switch (r.tagID) { case T.HTML: Vi(n, r); break; case T.NOFRAMES: Os(n, r) } })(this, e) } } onEndTag(e) { this.skipNextNewLine = !1, this.currentToken = e, this.currentNotInHTML ? function (n, r) { if (r.tagID === T.P || r.tagID === T.BR) return Y$(n), n._endTagOutsideForeignContent(r); for (let l = n.openElements.stackTop; 0 < l; l--) { var i = n.openElements.items[l]; if (n.treeAdapter.getNamespaceURI(i) === de.HTML) { n._endTagOutsideForeignContent(r); break } if ((i = n.treeAdapter.getTagName(i)).toLowerCase() === r.tagName) { r.tagName = i, n.openElements.shortenToLength(l); break } } }(this, e) : this._endTagOutsideForeignContent(e) } _endTagOutsideForeignContent(e) { switch (this.insertionMode) { case H.INITIAL: Pc(this, e); break; case H.BEFORE_HTML: (function (n, r) { var i = r.tagID; i !== T.HTML && i !== T.HEAD && i !== T.BODY && i !== T.BR || Lc(n, r) })(this, e); break; case H.BEFORE_HEAD: (function (n, r) { var i = r.tagID; i === T.HEAD || i === T.BODY || i === T.HTML || i === T.BR ? Fc(n, r) : n._err(r, ue.endTagWithoutMatchingOpenElement) })(this, e); break; case H.IN_HEAD: (function (n, r) { switch (r.tagID) { case T.HEAD: n.openElements.pop(), n.insertionMode = H.AFTER_HEAD; break; case T.BODY: case T.BR: case T.HTML: Jc(n, r); break; case T.TEMPLATE: W3(n, r); break; default: n._err(r, ue.endTagWithoutMatchingOpenElement) } })(this, e); break; case H.IN_HEAD_NO_SCRIPT: (function (n, r) { switch (r.tagID) { case T.NOSCRIPT: n.openElements.pop(), n.insertionMode = H.IN_HEAD; break; case T.BR: jc(n, r); break; default: n._err(r, ue.endTagWithoutMatchingOpenElement) } })(this, e); break; case H.AFTER_HEAD: (function (n, r) { switch (r.tagID) { case T.BODY: case T.HTML: case T.BR: Uc(n, r); break; case T.TEMPLATE: W3(n, r); break; default: n._err(r, ue.endTagWithoutMatchingOpenElement) } })(this, e); break; case H.IN_BODY: C7(this, e); break; case H.TEXT: (function (n, r) { r.tagID === T.SCRIPT && (r = n.scriptHandler) != null && r.call(n, n.openElements.current), n.openElements.pop(), n.insertionMode = n.originalInsertionMode })(this, e); break; case H.IN_TABLE: s5(this, e); break; case H.IN_TABLE_TEXT: Mc(this, e); break; case H.IN_CAPTION: (function (n, r) { var i = r.tagID; switch (i) { case T.CAPTION: case T.TABLE: n.openElements.hasInTableScope(T.CAPTION) && (n.openElements.generateImpliedEndTags(), n.openElements.popUntilTagNamePopped(T.CAPTION), n.activeFormattingElements.clearToLastMarker(), n.insertionMode = H.IN_TABLE, i === T.TABLE) && s5(n, r); break; case T.BODY: case T.COL: case T.COLGROUP: case T.HTML: case T.TBODY: case T.TD: case T.TFOOT: case T.TH: case T.THEAD: case T.TR: break; default: C7(n, r) } })(this, e); break; case H.IN_COLUMN_GROUP: (function (n, r) { switch (r.tagID) { case T.COLGROUP: n.openElements.currentTagId === T.COLGROUP && (n.openElements.pop(), n.insertionMode = H.IN_TABLE); break; case T.TEMPLATE: W3(n, r); break; case T.COL: break; default: R7(n, r) } })(this, e); break; case H.IN_TABLE_BODY: TE(this, e); break; case H.IN_ROW: K$(this, e); break; case H.IN_CELL: (function (n, r) { var i = r.tagID; switch (i) { case T.TD: case T.TH: n.openElements.hasInTableScope(i) && (n.openElements.generateImpliedEndTags(), n.openElements.popUntilTagNamePopped(i), n.activeFormattingElements.clearToLastMarker(), n.insertionMode = H.IN_ROW); break; case T.TABLE: case T.TBODY: case T.TFOOT: case T.THEAD: case T.TR: n.openElements.hasInTableScope(i) && (n._closeTableCell(), K$(n, r)); break; case T.BODY: case T.CAPTION: case T.COL: case T.COLGROUP: case T.HTML: break; default: C7(n, r) } })(this, e); break; case H.IN_SELECT: W$(this, e); break; case H.IN_SELECT_IN_TABLE: (function (n, r) { var i = r.tagID; i === T.CAPTION || i === T.TABLE || i === T.TBODY || i === T.TFOOT || i === T.THEAD || i === T.TR || i === T.TD || i === T.TH ? n.openElements.hasInTableScope(i) && (n.openElements.popUntilTagNamePopped(T.SELECT), n._resetInsertionMode(), n.onEndTag(r)) : W$(n, r) })(this, e); break; case H.IN_TEMPLATE: (function (n, r) { r.tagID === T.TEMPLATE && W3(n, r) })(this, e); break; case H.AFTER_BODY: xH(this, e); break; case H.IN_FRAMESET: (function (n, r) { r.tagID !== T.FRAMESET || n.openElements.isRootHtmlElementCurrent() || (n.openElements.pop(), n.fragmentContext) || n.openElements.currentTagId === T.FRAMESET || (n.insertionMode = H.AFTER_FRAMESET) })(this, e); break; case H.AFTER_FRAMESET: (function (n, r) { r.tagID === T.HTML && (n.insertionMode = H.AFTER_AFTER_FRAMESET) })(this, e); break; case H.AFTER_AFTER_BODY: x7(this, e) } } onEof(e) { switch (this.insertionMode) { case H.INITIAL: Pc(this, e); break; case H.BEFORE_HTML: Lc(this, e); break; case H.BEFORE_HEAD: Fc(this, e); break; case H.IN_HEAD: Jc(this, e); break; case H.IN_HEAD_NO_SCRIPT: jc(this, e); break; case H.AFTER_HEAD: Uc(this, e); break; case H.IN_BODY: case H.IN_TABLE: case H.IN_CAPTION: case H.IN_COLUMN_GROUP: case H.IN_TABLE_BODY: case H.IN_ROW: case H.IN_CELL: case H.IN_SELECT: case H.IN_SELECT_IN_TABLE: bH(this, e); break; case H.TEXT: (function (n, r) { n._err(r, ue.eofInElementThatCanContainOnlyText), n.openElements.pop(), n.insertionMode = n.originalInsertionMode, n.onEof(r) })(this, e); break; case H.IN_TABLE_TEXT: Mc(this, e); break; case H.IN_TEMPLATE: TH(this, e); break; case H.AFTER_BODY: case H.IN_FRAMESET: case H.AFTER_FRAMESET: case H.AFTER_AFTER_BODY: case H.AFTER_AFTER_FRAMESET: qE(this, e) } } onWhitespaceCharacter(e) { if (this.skipNextNewLine && (this.skipNextNewLine = !1, e.chars.charCodeAt(0) === D.LINE_FEED)) { if (e.chars.length === 1) return; e.chars = e.chars.substr(1) } if (this.tokenizer.inForeignNode) this._insertCharacters(e); else switch (this.insertionMode) { case H.IN_HEAD: case H.IN_HEAD_NO_SCRIPT: case H.AFTER_HEAD: case H.TEXT: case H.IN_COLUMN_GROUP: case H.IN_SELECT: case H.IN_SELECT_IN_TABLE: case H.IN_FRAMESET: case H.AFTER_FRAMESET: this._insertCharacters(e); break; case H.IN_BODY: case H.IN_CAPTION: case H.IN_CELL: case H.IN_TEMPLATE: case H.AFTER_BODY: case H.AFTER_AFTER_BODY: case H.AFTER_AFTER_FRAMESET: gH(this, e); break; case H.IN_TABLE: case H.IN_TABLE_BODY: case H.IN_ROW: G_(this, e); break; case H.IN_TABLE_TEXT: wH(this, e) } } }; function qge(t, e) { let n = t.activeFormattingElements.getElementEntryInScopeWithTagName(e.tagName); return n ? t.openElements.contains(n.element) ? t.openElements.hasInScope(e.tagID) || (n = null) : (t.activeFormattingElements.removeEntry(n), n = null) : EH(t, e), n } function zge(t, e) { let n = null, r = t.openElements.stackTop; for (; 0 <= r; r--) { var i = t.openElements.items[r]; if (i === e.element) break; t._isSpecialElement(i, t.openElements.tagIDs[r]) && (n = i) } return n || (t.openElements.shortenToLength(r < 0 ? 0 : r), t.activeFormattingElements.removeEntry(e)), n } function Gge(t, e, n) { let r = e, i = t.openElements.getCommonAncestor(e); for (let l = 0, s = i; s !== n; l++, s = i) { i = t.openElements.getCommonAncestor(s); let a = t.activeFormattingElements.getElementEntry(s), o = a && l >= Hge; !a || o ? (o && t.activeFormattingElements.removeEntry(a), t.openElements.remove(s)) : (s = Jge(t, a), r === e && (t.activeFormattingElements.bookmark = a), t.treeAdapter.detachNode(r), t.treeAdapter.appendChild(s, r), r = s) } return r } function Jge(t, e) { var n = t.treeAdapter.getNamespaceURI(e.element), n = t.treeAdapter.createElement(e.token.tagName, n, e.token.attrs); return t.openElements.replace(e.element, n), e.element = n } function Kge(t, e, n) { var r, i = z7(t.treeAdapter.getTagName(e)); t._isElementCausesFosterParenting(i) ? t._fosterParentElement(n) : (r = t.treeAdapter.getNamespaceURI(e), i === T.TEMPLATE && r === de.HTML && (e = t.treeAdapter.getTemplateContent(e)), t.treeAdapter.appendChild(e, n)) } function Xge(t, e, n) { var i = t.treeAdapter.getNamespaceURI(n.element), r = n.token, i = t.treeAdapter.createElement(r.tagName, i, r.attrs); t._adoptNodes(e, i), t.treeAdapter.appendChild(e, i), t.activeFormattingElements.insertElementAfterBookmark(i, r), t.activeFormattingElements.removeEntry(n), t.openElements.remove(n.element), t.openElements.insertAfter(e, i, r.tagID) } function bE(t, e) { for (let l = 0; l < Bge; l++) { let s = qge(t, e); if (!s) break; var n = zge(t, s); if (!n) break; t.activeFormattingElements.bookmark = s; var r = Gge(t, n, s.element), i = t.openElements.getCommonAncestor(s.element); t.treeAdapter.detachNode(r), i && Kge(t, i, r), Xge(t, n, s) } } function wE(t, e) { t._appendCommentNode(e, t.openElements.currentTmplContentOrNode) } function qE(t, e) { if (t.stopped = !0, e.location) { var n = t.fragmentContext ? 0 : 2; for (let r = t.openElements.stackTop; r >= n; r--)t._setEndLocation(t.openElements.items[r], e); if (!t.fragmentContext && 0 <= t.openElements.stackTop) { let r = t.openElements.items[0], i = t.treeAdapter.getNodeSourceCodeLocation(r); if (i && !i.endTag && (t._setEndLocation(r, e), 1 <= t.openElements.stackTop)) { let l = t.openElements.items[1], s = t.treeAdapter.getNodeSourceCodeLocation(l); s && !s.endTag && t._setEndLocation(l, e) } } } } function Pc(t, e) { t._err(e, ue.missingDoctype, !0), t.treeAdapter.setDocumentMode(t.document, Pl.QUIRKS), t.insertionMode = H.BEFORE_HTML, t._processToken(e) } function Lc(t, e) { t._insertFakeRootElement(), t.insertionMode = H.BEFORE_HEAD, t._processToken(e) } function Fc(t, e) { t._insertFakeElement(ne.HEAD, T.HEAD), t.headElement = t.openElements.current, t.insertionMode = H.IN_HEAD, t._processToken(e) } function Os(t, e) { switch (e.tagID) { case T.HTML: Vi(t, e); break; case T.BASE: case T.BASEFONT: case T.BGSOUND: case T.LINK: case T.META: t._appendElement(e, de.HTML), e.ackSelfClosing = !0; break; case T.TITLE: t._switchToTextParsing(e, Sl.RCDATA); break; case T.NOSCRIPT: t.options.scriptingEnabled ? t._switchToTextParsing(e, Sl.RAWTEXT) : (t._insertElement(e, de.HTML), t.insertionMode = H.IN_HEAD_NO_SCRIPT); break; case T.NOFRAMES: case T.STYLE: t._switchToTextParsing(e, Sl.RAWTEXT); break; case T.SCRIPT: t._switchToTextParsing(e, Sl.SCRIPT_DATA); break; case T.TEMPLATE: t._insertTemplate(e), t.activeFormattingElements.insertMarker(), t.framesetOk = !1, t.insertionMode = H.IN_TEMPLATE, t.tmplInsertionModeStack.unshift(H.IN_TEMPLATE); break; case T.HEAD: t._err(e, ue.misplacedStartTagForHeadElement); break; default: Jc(t, e) } } function W3(t, e) { 0 < t.openElements.tmplCount ? (t.openElements.generateImpliedEndTagsThoroughly(), t.openElements.currentTagId !== T.TEMPLATE && t._err(e, ue.closingOfElementWithOpenChildElements), t.openElements.popUntilTagNamePopped(T.TEMPLATE), t.activeFormattingElements.clearToLastMarker(), t.tmplInsertionModeStack.shift(), t._resetInsertionMode()) : t._err(e, ue.endTagWithoutMatchingOpenElement) } function Jc(t, e) { t.openElements.pop(), t.insertionMode = H.AFTER_HEAD, t._processToken(e) } function jc(t, e) { var n = e.type === rn.EOF ? ue.openElementsLeftAfterEof : ue.disallowedContentInNoscriptInHead; t._err(e, n), t.openElements.pop(), t.insertionMode = H.IN_HEAD, t._processToken(e) } function Uc(t, e) { t._insertFakeElement(ne.BODY, T.BODY), t.insertionMode = H.IN_BODY, ep(t, e) } function ep(t, e) { switch (e.type) { case rn.CHARACTER: vH(t, e); break; case rn.WHITESPACE_CHARACTER: gH(t, e); break; case rn.COMMENT: wE(t, e); break; case rn.START_TAG: Vi(t, e); break; case rn.END_TAG: C7(t, e); break; case rn.EOF: bH(t, e) } } function gH(t, e) { t._reconstructActiveFormattingElements(), t._insertCharacters(e) } function vH(t, e) { t._reconstructActiveFormattingElements(), t._insertCharacters(e), t.framesetOk = !1 } function q$(t, e) { t._reconstructActiveFormattingElements(), t._appendElement(e, de.HTML), t.framesetOk = !1, e.ackSelfClosing = !0 } function _H(t) { return (t = lH(t, Z3.TYPE)) != null && t.toLowerCase() === $ge } function z$(t, e) { t._switchToTextParsing(e, Sl.RAWTEXT) } function G$(t, e) { t._reconstructActiveFormattingElements(), t._insertElement(e, de.HTML) } function Vi(t, e) { switch (e.tagID) { case T.I: case T.S: case T.B: case T.U: case T.EM: case T.TT: case T.BIG: case T.CODE: case T.FONT: case T.SMALL: case T.STRIKE: case T.STRONG: (function (n, r) { n._reconstructActiveFormattingElements(), n._insertElement(r, de.HTML), n.activeFormattingElements.pushElement(n.openElements.current, r) })(t, e); break; case T.A: (function (n, r) { var i = n.activeFormattingElements.getElementEntryInScopeWithTagName(ne.A); i && (bE(n, r), n.openElements.remove(i.element), n.activeFormattingElements.removeEntry(i)), n._reconstructActiveFormattingElements(), n._insertElement(r, de.HTML), n.activeFormattingElements.pushElement(n.openElements.current, r) })(t, e); break; case T.H1: case T.H2: case T.H3: case T.H4: case T.H5: case T.H6: (function (n, r) { n.openElements.hasInButtonScope(T.P) && n._closePElement(), uH(n.openElements.currentTagId) && n.openElements.pop(), n._insertElement(r, de.HTML) })(t, e); break; case T.P: case T.DL: case T.OL: case T.UL: case T.DIV: case T.DIR: case T.NAV: case T.MAIN: case T.MENU: case T.ASIDE: case T.CENTER: case T.FIGURE: case T.FOOTER: case T.HEADER: case T.HGROUP: case T.DIALOG: case T.DETAILS: case T.ADDRESS: case T.ARTICLE: case T.SECTION: case T.SUMMARY: case T.FIELDSET: case T.BLOCKQUOTE: case T.FIGCAPTION: (function (n, r) { n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._insertElement(r, de.HTML) })(t, e); break; case T.LI: case T.DD: case T.DT: (function (n, r) { n.framesetOk = !1; var i = r.tagID; for (let s = n.openElements.stackTop; 0 <= s; s--) { var l = n.openElements.tagIDs[s]; if (i === T.LI && l === T.LI || (i === T.DD || i === T.DT) && (l === T.DD || l === T.DT)) { n.openElements.generateImpliedEndTagsWithExclusion(l), n.openElements.popUntilTagNamePopped(l); break } if (l !== T.ADDRESS && l !== T.DIV && l !== T.P && n._isSpecialElement(n.openElements.items[s], l)) break } n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._insertElement(r, de.HTML) })(t, e); break; case T.BR: case T.IMG: case T.WBR: case T.AREA: case T.EMBED: case T.KEYGEN: q$(t, e); break; case T.HR: (function (n, r) { n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._appendElement(r, de.HTML), n.framesetOk = !1, r.ackSelfClosing = !0 })(t, e); break; case T.RB: case T.RTC: (function (n, r) { n.openElements.hasInScope(T.RUBY) && n.openElements.generateImpliedEndTags(), n._insertElement(r, de.HTML) })(t, e); break; case T.RT: case T.RP: (function (n, r) { n.openElements.hasInScope(T.RUBY) && n.openElements.generateImpliedEndTagsWithExclusion(T.RTC), n._insertElement(r, de.HTML) })(t, e); break; case T.PRE: case T.LISTING: (function (n, r) { n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._insertElement(r, de.HTML), n.skipNextNewLine = !0, n.framesetOk = !1 })(t, e); break; case T.XMP: (function (n, r) { n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._reconstructActiveFormattingElements(), n.framesetOk = !1, n._switchToTextParsing(r, Sl.RAWTEXT) })(t, e); break; case T.SVG: (function (n, r) { n._reconstructActiveFormattingElements(), mH(r), EE(r), r.selfClosing ? n._appendElement(r, de.SVG) : n._insertElement(r, de.SVG), r.ackSelfClosing = !0 })(t, e); break; case T.HTML: (function (n, r) { n.openElements.tmplCount === 0 && n.treeAdapter.adoptAttributes(n.openElements.items[0], r.attrs) })(t, e); break; case T.BASE: case T.LINK: case T.META: case T.STYLE: case T.TITLE: case T.SCRIPT: case T.BGSOUND: case T.BASEFONT: case T.TEMPLATE: Os(t, e); break; case T.BODY: (function (n, r) { var i = n.openElements.tryPeekProperlyNestedBodyElement(); i && n.openElements.tmplCount === 0 && (n.framesetOk = !1, n.treeAdapter.adoptAttributes(i, r.attrs)) })(t, e); break; case T.FORM: (function (n, r) { var i = 0 < n.openElements.tmplCount; n.formElement && !i || (n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._insertElement(r, de.HTML), i) || (n.formElement = n.openElements.current) })(t, e); break; case T.NOBR: (function (n, r) { n._reconstructActiveFormattingElements(), n.openElements.hasInScope(T.NOBR) && (bE(n, r), n._reconstructActiveFormattingElements()), n._insertElement(r, de.HTML), n.activeFormattingElements.pushElement(n.openElements.current, r) })(t, e); break; case T.MATH: (function (n, r) { n._reconstructActiveFormattingElements(), hH(r), EE(r), r.selfClosing ? n._appendElement(r, de.MATHML) : n._insertElement(r, de.MATHML), r.ackSelfClosing = !0 })(t, e); break; case T.TABLE: (function (n, r) { n.treeAdapter.getDocumentMode(n.document) !== Pl.QUIRKS && n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._insertElement(r, de.HTML), n.framesetOk = !1, n.insertionMode = H.IN_TABLE })(t, e); break; case T.INPUT: (function (n, r) { n._reconstructActiveFormattingElements(), n._appendElement(r, de.HTML), _H(r) || (n.framesetOk = !1), r.ackSelfClosing = !0 })(t, e); break; case T.PARAM: case T.TRACK: case T.SOURCE: (function (n, r) { n._appendElement(r, de.HTML), r.ackSelfClosing = !0 })(t, e); break; case T.IMAGE: (function (n, r) { r.tagName = ne.IMG, r.tagID = T.IMG, q$(n, r) })(t, e); break; case T.BUTTON: (function (n, r) { n.openElements.hasInScope(T.BUTTON) && (n.openElements.generateImpliedEndTags(), n.openElements.popUntilTagNamePopped(T.BUTTON)), n._reconstructActiveFormattingElements(), n._insertElement(r, de.HTML), n.framesetOk = !1 })(t, e); break; case T.APPLET: case T.OBJECT: case T.MARQUEE: (function (n, r) { n._reconstructActiveFormattingElements(), n._insertElement(r, de.HTML), n.activeFormattingElements.insertMarker(), n.framesetOk = !1 })(t, e); break; case T.IFRAME: (function (n, r) { n.framesetOk = !1, n._switchToTextParsing(r, Sl.RAWTEXT) })(t, e); break; case T.SELECT: (function (n, r) { n._reconstructActiveFormattingElements(), n._insertElement(r, de.HTML), n.framesetOk = !1, n.insertionMode = n.insertionMode === H.IN_TABLE || n.insertionMode === H.IN_CAPTION || n.insertionMode === H.IN_TABLE_BODY || n.insertionMode === H.IN_ROW || n.insertionMode === H.IN_CELL ? H.IN_SELECT_IN_TABLE : H.IN_SELECT })(t, e); break; case T.OPTION: case T.OPTGROUP: (function (n, r) { n.openElements.currentTagId === T.OPTION && n.openElements.pop(), n._reconstructActiveFormattingElements(), n._insertElement(r, de.HTML) })(t, e); break; case T.NOEMBED: z$(t, e); break; case T.FRAMESET: (function (n, r) { var i = n.openElements.tryPeekProperlyNestedBodyElement(); n.framesetOk && i && (n.treeAdapter.detachNode(i), n.openElements.popAllUpToHtmlElement(), n._insertElement(r, de.HTML), n.insertionMode = H.IN_FRAMESET) })(t, e); break; case T.TEXTAREA: (function (n, r) { n._insertElement(r, de.HTML), n.skipNextNewLine = !0, n.tokenizer.state = Sl.RCDATA, n.originalInsertionMode = n.insertionMode, n.framesetOk = !1, n.insertionMode = H.TEXT })(t, e); break; case T.NOSCRIPT: (t.options.scriptingEnabled ? z$ : G$)(t, e); break; case T.PLAINTEXT: (function (n, r) { n.openElements.hasInButtonScope(T.P) && n._closePElement(), n._insertElement(r, de.HTML), n.tokenizer.state = Sl.PLAINTEXT })(t, e); break; case T.COL: case T.TH: case T.TD: case T.TR: case T.HEAD: case T.FRAME: case T.TBODY: case T.TFOOT: case T.THEAD: case T.CAPTION: case T.COLGROUP: break; default: G$(t, e) } } function EH(t, e) { var n = e.tagName, r = e.tagID; for (let s = t.openElements.stackTop; 0 < s; s--) { var i = t.openElements.items[s], l = t.openElements.tagIDs[s]; if (r === l && (r !== T.UNKNOWN || t.treeAdapter.getTagName(i) === n)) { t.openElements.generateImpliedEndTagsWithExclusion(r), t.openElements.stackTop >= s && t.openElements.shortenToLength(s); break } if (t._isSpecialElement(i, l)) break } } function C7(t, e) { switch (e.tagID) { case T.A: case T.B: case T.I: case T.S: case T.U: case T.EM: case T.TT: case T.BIG: case T.CODE: case T.FONT: case T.NOBR: case T.SMALL: case T.STRIKE: case T.STRONG: bE(t, e); break; case T.P: (function (n) { n.openElements.hasInButtonScope(T.P) || n._insertFakeElement(ne.P, T.P), n._closePElement() })(t); break; case T.DL: case T.UL: case T.OL: case T.DIR: case T.DIV: case T.NAV: case T.PRE: case T.MAIN: case T.MENU: case T.ASIDE: case T.BUTTON: case T.CENTER: case T.FIGURE: case T.FOOTER: case T.HEADER: case T.HGROUP: case T.DIALOG: case T.ADDRESS: case T.ARTICLE: case T.DETAILS: case T.SECTION: case T.SUMMARY: case T.LISTING: case T.FIELDSET: case T.BLOCKQUOTE: case T.FIGCAPTION: (function (n, r) { r = r.tagID, n.openElements.hasInScope(r) && (n.openElements.generateImpliedEndTags(), n.openElements.popUntilTagNamePopped(r)) })(t, e); break; case T.LI: (function (n) { n.openElements.hasInListItemScope(T.LI) && (n.openElements.generateImpliedEndTagsWithExclusion(T.LI), n.openElements.popUntilTagNamePopped(T.LI)) })(t); break; case T.DD: case T.DT: (function (n, r) { r = r.tagID, n.openElements.hasInScope(r) && (n.openElements.generateImpliedEndTagsWithExclusion(r), n.openElements.popUntilTagNamePopped(r)) })(t, e); break; case T.H1: case T.H2: case T.H3: case T.H4: case T.H5: case T.H6: (function (n) { n.openElements.hasNumberedHeaderInScope() && (n.openElements.generateImpliedEndTags(), n.openElements.popUntilNumberedHeaderPopped()) })(t); break; case T.BR: (function (n) { n._reconstructActiveFormattingElements(), n._insertFakeElement(ne.BR, T.BR), n.openElements.pop(), n.framesetOk = !1 })(t); break; case T.BODY: (function (n, r) { var i; n.openElements.hasInScope(T.BODY) && (n.insertionMode = H.AFTER_BODY, n.options.sourceCodeLocationInfo) && (i = n.openElements.tryPeekProperlyNestedBodyElement()) && n._setEndLocation(i, r) })(t, e); break; case T.HTML: (function (n, r) { n.openElements.hasInScope(T.BODY) && (n.insertionMode = H.AFTER_BODY, xH(n, r)) })(t, e); break; case T.FORM: (function (n) { var r = 0 < n.openElements.tmplCount, i = n.formElement; r || (n.formElement = null), (i || r) && n.openElements.hasInScope(T.FORM) && (n.openElements.generateImpliedEndTags(), r ? n.openElements.popUntilTagNamePopped(T.FORM) : i && n.openElements.remove(i)) })(t); break; case T.APPLET: case T.OBJECT: case T.MARQUEE: (function (n, r) { r = r.tagID, n.openElements.hasInScope(r) && (n.openElements.generateImpliedEndTags(), n.openElements.popUntilTagNamePopped(r), n.activeFormattingElements.clearToLastMarker()) })(t, e); break; case T.TEMPLATE: W3(t, e); break; default: EH(t, e) } } function bH(t, e) { (0 < t.tmplInsertionModeStack.length ? TH : qE)(t, e) } function G_(t, e) { if (yH.has(t.openElements.currentTagId)) switch (t.pendingCharacterTokens.length = 0, t.hasNonWhitespacePendingCharacterToken = !1, t.originalInsertionMode = t.insertionMode, t.insertionMode = H.IN_TABLE_TEXT, e.type) { case rn.CHARACTER: SH(t, e); break; case rn.WHITESPACE_CHARACTER: wH(t, e) } else a5(t, e) } function t0(t, e) { switch (e.tagID) { case T.TD: case T.TH: case T.TR: (function (n, r) { n.openElements.clearBackToTableContext(), n._insertFakeElement(ne.TBODY, T.TBODY), n.insertionMode = H.IN_TABLE_BODY, J7(n, r) })(t, e); break; case T.STYLE: case T.SCRIPT: case T.TEMPLATE: Os(t, e); break; case T.COL: (function (n, r) { n.openElements.clearBackToTableContext(), n._insertFakeElement(ne.COLGROUP, T.COLGROUP), n.insertionMode = H.IN_COLUMN_GROUP, SE(n, r) })(t, e); break; case T.FORM: (function (n, r) { n.formElement || n.openElements.tmplCount !== 0 || (n._insertElement(r, de.HTML), n.formElement = n.openElements.current, n.openElements.pop()) })(t, e); break; case T.TABLE: (function (n, r) { n.openElements.hasInTableScope(T.TABLE) && (n.openElements.popUntilTagNamePopped(T.TABLE), n._resetInsertionMode(), n._processStartTag(r)) })(t, e); break; case T.TBODY: case T.TFOOT: case T.THEAD: (function (n, r) { n.openElements.clearBackToTableContext(), n._insertElement(r, de.HTML), n.insertionMode = H.IN_TABLE_BODY })(t, e); break; case T.INPUT: (function (n, r) { _H(r) ? n._appendElement(r, de.HTML) : a5(n, r), r.ackSelfClosing = !0 })(t, e); break; case T.CAPTION: (function (n, r) { n.openElements.clearBackToTableContext(), n.activeFormattingElements.insertMarker(), n._insertElement(r, de.HTML), n.insertionMode = H.IN_CAPTION })(t, e); break; case T.COLGROUP: (function (n, r) { n.openElements.clearBackToTableContext(), n._insertElement(r, de.HTML), n.insertionMode = H.IN_COLUMN_GROUP })(t, e); break; default: a5(t, e) } } function s5(t, e) { switch (e.tagID) { case T.TABLE: t.openElements.hasInTableScope(T.TABLE) && (t.openElements.popUntilTagNamePopped(T.TABLE), t._resetInsertionMode()); break; case T.TEMPLATE: W3(t, e); break; case T.BODY: case T.CAPTION: case T.COL: case T.COLGROUP: case T.HTML: case T.TBODY: case T.TD: case T.TFOOT: case T.TH: case T.THEAD: case T.TR: break; default: a5(t, e) } } function a5(t, e) { var n = t.fosterParentingEnabled; t.fosterParentingEnabled = !0, ep(t, e), t.fosterParentingEnabled = n } function wH(t, e) { t.pendingCharacterTokens.push(e) } function SH(t, e) { t.pendingCharacterTokens.push(e), t.hasNonWhitespacePendingCharacterToken = !0 } function Mc(t, e) { let n = 0; if (t.hasNonWhitespacePendingCharacterToken) for (; n < t.pendingCharacterTokens.length; n++)a5(t, t.pendingCharacterTokens[n]); else for (; n < t.pendingCharacterTokens.length; n++)t._insertCharacters(t.pendingCharacterTokens[n]); t.insertionMode = t.originalInsertionMode, t._processToken(e) } var J$ = new Set([T.CAPTION, T.COL, T.COLGROUP, T.TBODY, T.TD, T.TFOOT, T.TH, T.THEAD, T.TR]); function SE(t, e) { switch (e.tagID) { case T.HTML: Vi(t, e); break; case T.COL: t._appendElement(e, de.HTML), e.ackSelfClosing = !0; break; case T.TEMPLATE: Os(t, e); break; default: R7(t, e) } } function R7(t, e) { t.openElements.currentTagId === T.COLGROUP && (t.openElements.pop(), t.insertionMode = H.IN_TABLE, t._processToken(e)) } function J7(t, e) { switch (e.tagID) { case T.TR: t.openElements.clearBackToTableBodyContext(), t._insertElement(e, de.HTML), t.insertionMode = H.IN_ROW; break; case T.TH: case T.TD: t.openElements.clearBackToTableBodyContext(), t._insertFakeElement(ne.TR, T.TR), t.insertionMode = H.IN_ROW, I7(t, e); break; case T.CAPTION: case T.COL: case T.COLGROUP: case T.TBODY: case T.TFOOT: case T.THEAD: t.openElements.hasTableBodyContextInTableScope() && (t.openElements.clearBackToTableBodyContext(), t.openElements.pop(), t.insertionMode = H.IN_TABLE, t0(t, e)); break; default: t0(t, e) } } function TE(t, e) { var n = e.tagID; switch (e.tagID) { case T.TBODY: case T.TFOOT: case T.THEAD: t.openElements.hasInTableScope(n) && (t.openElements.clearBackToTableBodyContext(), t.openElements.pop(), t.insertionMode = H.IN_TABLE); break; case T.TABLE: t.openElements.hasTableBodyContextInTableScope() && (t.openElements.clearBackToTableBodyContext(), t.openElements.pop(), t.insertionMode = H.IN_TABLE, s5(t, e)); break; case T.BODY: case T.CAPTION: case T.COL: case T.COLGROUP: case T.HTML: case T.TD: case T.TH: case T.TR: break; default: s5(t, e) } } function I7(t, e) { switch (e.tagID) { case T.TH: case T.TD: t.openElements.clearBackToTableRowContext(), t._insertElement(e, de.HTML), t.insertionMode = H.IN_CELL, t.activeFormattingElements.insertMarker(); break; case T.CAPTION: case T.COL: case T.COLGROUP: case T.TBODY: case T.TFOOT: case T.THEAD: case T.TR: t.openElements.hasInTableScope(T.TR) && (t.openElements.clearBackToTableRowContext(), t.openElements.pop(), t.insertionMode = H.IN_TABLE_BODY, J7(t, e)); break; default: t0(t, e) } } function K$(t, e) { switch (e.tagID) { case T.TR: t.openElements.hasInTableScope(T.TR) && (t.openElements.clearBackToTableRowContext(), t.openElements.pop(), t.insertionMode = H.IN_TABLE_BODY); break; case T.TABLE: t.openElements.hasInTableScope(T.TR) && (t.openElements.clearBackToTableRowContext(), t.openElements.pop(), t.insertionMode = H.IN_TABLE_BODY, TE(t, e)); break; case T.TBODY: case T.TFOOT: case T.THEAD: (t.openElements.hasInTableScope(e.tagID) || t.openElements.hasInTableScope(T.TR)) && (t.openElements.clearBackToTableRowContext(), t.openElements.pop(), t.insertionMode = H.IN_TABLE_BODY, TE(t, e)); break; case T.BODY: case T.CAPTION: case T.COL: case T.COLGROUP: case T.HTML: case T.TD: case T.TH: break; default: s5(t, e) } } function X$(t, e) { switch (e.tagID) { case T.HTML: Vi(t, e); break; case T.OPTION: t.openElements.currentTagId === T.OPTION && t.openElements.pop(), t._insertElement(e, de.HTML); break; case T.OPTGROUP: t.openElements.currentTagId === T.OPTION && t.openElements.pop(), t.openElements.currentTagId === T.OPTGROUP && t.openElements.pop(), t._insertElement(e, de.HTML); break; case T.INPUT: case T.KEYGEN: case T.TEXTAREA: case T.SELECT: t.openElements.hasInSelectScope(T.SELECT) && (t.openElements.popUntilTagNamePopped(T.SELECT), t._resetInsertionMode(), e.tagID !== T.SELECT) && t._processStartTag(e); break; case T.SCRIPT: case T.TEMPLATE: Os(t, e) } } function W$(t, e) { switch (e.tagID) { case T.OPTGROUP: 0 < t.openElements.stackTop && t.openElements.currentTagId === T.OPTION && t.openElements.tagIDs[t.openElements.stackTop - 1] === T.OPTGROUP && t.openElements.pop(), t.openElements.currentTagId === T.OPTGROUP && t.openElements.pop(); break; case T.OPTION: t.openElements.currentTagId === T.OPTION && t.openElements.pop(); break; case T.SELECT: t.openElements.hasInSelectScope(T.SELECT) && (t.openElements.popUntilTagNamePopped(T.SELECT), t._resetInsertionMode()); break; case T.TEMPLATE: W3(t, e) } } function TH(t, e) { 0 < t.openElements.tmplCount ? (t.openElements.popUntilTagNamePopped(T.TEMPLATE), t.activeFormattingElements.clearToLastMarker(), t.tmplInsertionModeStack.shift(), t._resetInsertionMode(), t.onEof(e)) : qE(t, e) } function xH(t, e) { var n, r; e.tagID === T.HTML ? (t.fragmentContext || (t.insertionMode = H.AFTER_AFTER_BODY), t.options.sourceCodeLocationInfo && t.openElements.tagIDs[0] === T.HTML && (t._setEndLocation(t.openElements.items[0], e), !(r = t.openElements.items[1]) || (n = t.treeAdapter.getNodeSourceCodeLocation(r)) != null && n.endTag || t._setEndLocation(r, e))) : k7(t, e) } function k7(t, e) { t.insertionMode = H.IN_BODY, ep(t, e) } function x7(t, e) { t.insertionMode = H.IN_BODY, ep(t, e) } function Y$(t) { for (; t.treeAdapter.getNamespaceURI(t.openElements.current) !== de.HTML && !t._isIntegrationPoint(t.openElements.currentTagId, t.openElements.current);)t.openElements.pop() } var K2 = ht(function (t, e) { Object.defineProperty(e, "__esModule", { value: !0 }), e.escapeText = e.escapeAttribute = e.escapeUTF8 = e.escape = e.encodeXML = e.getCodePoint = e.xmlReplacer = void 0, e.xmlReplacer = /["&'<>$\x80-\uFFFF]/g; var n = new Map([[34, "&quot;"], [38, "&amp;"], [39, "&apos;"], [60, "&lt;"], [62, "&gt;"]]); function r(l) { for (var s = "", c = 0; (a = e.xmlReplacer.exec(l)) !== null;)var a = a.index, o = l.charCodeAt(a), u = n.get(o), c = u !== void 0 ? (s += l.substring(c, a) + u, a + 1) : (s += "".concat(l.substring(c, a), "&#x").concat((0, e.getCodePoint)(l, a).toString(16), ";"), e.xmlReplacer.lastIndex += +((64512 & o) == 55296)); return s + l.substr(c) } function i(l, s) { return function (a) { for (var o, u = 0, c = ""; o = l.exec(a);)u !== o.index && (c += a.substring(u, o.index)), c += s.get(o[0].charCodeAt(0)), u = o.index + 1; return c + a.substring(u) } } e.getCodePoint = String.prototype.codePointAt != null ? function (l, s) { return l.codePointAt(s) } : function (l, s) { return (64512 & l.charCodeAt(s)) == 55296 ? 1024 * (l.charCodeAt(s) - 55296) + l.charCodeAt(s + 1) - 56320 + 65536 : l.charCodeAt(s) }, e.encodeXML = r, e.escape = r, e.escapeUTF8 = i(/[&<>'"]/g, n), e.escapeAttribute = i(/["&\u00A0]/g, new Map([[34, "&quot;"], [38, "&amp;"], [160, "&nbsp;"]])), e.escapeText = i(/[&<>\u00A0]/g, new Map([[38, "&amp;"], [60, "&lt;"], [62, "&gt;"], [160, "&nbsp;"]])) }), Wge = (c5(K2), K2.escapeText), Yge = K2.escapeAttribute; K2.escapeUTF8, K2.escape, K2.encodeXML, K2.getCodePoint, K2.xmlReplacer; var Qge = new Set([ne.AREA, ne.BASE, ne.BASEFONT, ne.BGSOUND, ne.BR, ne.COL, ne.EMBED, ne.FRAME, ne.HR, ne.IMG, ne.INPUT, ne.KEYGEN, ne.LINK, ne.META, ne.PARAM, ne.SOURCE, ne.TRACK, ne.WBR]), Zge = { treeAdapter: X3, scriptingEnabled: !0 }; function eve(t, e) { return AH(t, { ...Zge, ...e }) } function AH(t, e) { return e.treeAdapter.isElementNode(t) ? function (n, r) { var i = r.treeAdapter.getTagName(n); return `<${i}${function (l, { treeAdapter: s }) { let a = ""; for (let o of s.getAttrList(l)) { if (a += " ", o.namespace) switch (o.namespace) { case de.XML: a += "xml:" + o.name; break; case de.XMLNS: o.name !== "xmlns" && (a += "xmlns:"), a += o.name; break; case de.XLINK: a += "xlink:" + o.name; break; default: a += o.prefix + ":" + o.name } else a += o.name; a += `="${Yge(o.value)}"` } return a }(n, r)}>` + (function (l, s) { return s.treeAdapter.isElementNode(l) && s.treeAdapter.getNamespaceURI(l) === de.HTML && Qge.has(s.treeAdapter.getTagName(l)) }(n, r) ? "" : function (o, s) { let a = ""; var o = s.treeAdapter.isElementNode(o) && s.treeAdapter.getTagName(o) === ne.TEMPLATE && s.treeAdapter.getNamespaceURI(o) === de.HTML ? s.treeAdapter.getTemplateContent(o) : o, u = s.treeAdapter.getChildNodes(o); if (u) for (let c of u) a += AH(c, s); return a }(n, r) + `</${i}>`) }(t, e) : e.treeAdapter.isTextNode(t) ? function (n, r) { var i = r.treeAdapter, l = i.getTextNodeContent(n), s = (n = i.getParentNode(n)) && i.isElementNode(n) && i.getTagName(n); return s && i.getNamespaceURI(n) === de.HTML && (i = s, n = r.scriptingEnabled, bge.has(i) || n && i === ne.NOSCRIPT) ? l : Wge(l) }(t, e) : e.treeAdapter.isCommentNode(t) ? function (n, { treeAdapter: r }) { return `<!--${r.getCommentNodeContent(n)}-->` }(t, e) : e.treeAdapter.isDocumentTypeNode(t) ? function (n, { treeAdapter: r }) { return `<!DOCTYPE ${r.getDocumentTypeNodeName(n)}>` }(t, e) : "" } function Q$(t) { return new tu(t) } function Z$(t) { var e = t.includes('"') ? "'" : '"'; return e + t + e } var J1 = { isCommentNode: W7, isElementNode: yt, isTextNode: da, createDocument() { var t = new i2([]); return t["x-mode"] = Pl.NO_QUIRKS, t }, createDocumentFragment: () => new i2([]), createElement(t, e, n) { var r = Object.create(null), i = Object.create(null), l = Object.create(null); for (let s = 0; s < n.length; s++) { let a = n[s].name; r[a] = n[s].value, i[a] = n[s].namespace, l[a] = n[s].prefix } return (t = new i5(t, r, [])).namespace = e, t["x-attribsNamespace"] = i, t["x-attribsPrefix"] = l, t }, createCommentNode: t => new t5(t), appendChild(t, e) { var n = t.children[t.children.length - 1]; n && ((n.next = e).prev = n), t.children.push(e), e.parent = t }, insertBefore(t, e, n) { var r = t.children.indexOf(n), i = n.prev; i && ((i.next = e).prev = i), (n.prev = e).next = n, t.children.splice(r, 0, e), e.parent = t }, setTemplateContent(t, e) { J1.appendChild(t, e) }, getTemplateContent: t => t.children[0], setDocumentType(t, e, n, r) { var i = function (s, a, o) { let u = "!DOCTYPE "; return s && (u += s), a ? u += " PUBLIC " + Z$(a) : o && (u += " SYSTEM"), o && (u += " " + Z$(o)), u }(e, n, r); let l = t.children.find(s => iE(s) && s.name === "!doctype"); l ? l.data = i ?? null : (l = new n5("!doctype", i), J1.appendChild(t, l)), l["x-name"] = e ?? void 0, l["x-publicId"] = n ?? void 0, l["x-systemId"] = r ?? void 0 }, setDocumentMode(t, e) { t["x-mode"] = e }, getDocumentMode: t => t["x-mode"], detachNode(t) { var e, n, r; t.parent && (e = t.parent.children.indexOf(t), { prev: n, next: r } = t, t.prev = null, t.next = null, n && (n.next = r), r && (r.prev = n), t.parent.children.splice(e, 1), t.parent = null) }, insertText(t, e) { var n = t.children[t.children.length - 1]; n && da(n) ? n.data += e : J1.appendChild(t, Q$(e)) }, insertTextBefore(t, e, n) { var r = t.children[t.children.indexOf(n) - 1]; r && da(r) ? r.data += e : J1.insertBefore(t, Q$(e), n) }, adoptAttributes(t, e) { for (let r = 0; r < e.length; r++) { var n = e[r].name; t.attribs[n] === void 0 && (t.attribs[n] = e[r].value, t["x-attribsNamespace"][n] = e[r].namespace, t["x-attribsPrefix"][n] = e[r].prefix) } }, getFirstChild: t => t.children[0], getChildNodes: t => t.children, getParentNode: t => t.parent, getAttrList: t => t.attributes, getTagName: t => t.name, getNamespaceURI: t => t.namespace, getTextNodeContent: t => t.data, getCommentNodeContent: t => t.data, getDocumentTypeNodeName(t) { return (t = t["x-name"]) != null ? t : "" }, getDocumentTypeNodePublicId(t) { return (t = t["x-publicId"]) != null ? t : "" }, getDocumentTypeNodeSystemId(t) { return (t = t["x-systemId"]) != null ? t : "" }, isDocumentTypeNode: t => iE(t) && t.name === "!doctype", setNodeSourceCodeLocation(t, e) { e && (t.startIndex = e.startOffset, t.endIndex = e.endOffset), t.sourceCodeLocation = e }, getNodeSourceCodeLocation: t => t.sourceCodeLocation, updateNodeSourceCodeLocation(t, e) { e.endOffset != null && (t.endIndex = e.endOffset), t.sourceCodeLocation = { ...t.sourceCodeLocation, ...e } } }, tve = function (t, e, n) { if (n || arguments.length === 2) for (var r, i = 0, l = e.length; i < l; i++)!r && i in e || ((r = r || Array.prototype.slice.call(e, 0, i))[i] = e[i]); return t.concat(r || Array.prototype.slice.call(e)) }; function nve(t, e, n, r) { return e = { scriptingEnabled: typeof e.scriptingEnabled != "boolean" || e.scriptingEnabled, treeAdapter: J1, sourceCodeLocationInfo: e.sourceCodeLocationInfo }, n ? function (i, l) { return G7.parse(i, l) }(t, e) : function (i, l, s) { return typeof i == "string" && (s = l, l = i, i = null), (i = G7.getFragmentParser(i, s)).tokenizer.write(l, !0), i.getFragment() }(r, t, e) } var Me, ge, ca, rve = { treeAdapter: J1 }; function e2(t) { return t === Me.Space || t === Me.NewLine || t === Me.Tab || t === Me.FormFeed || t === Me.CarriageReturn } function A7(t) { return t === Me.Slash || t === Me.Gt || e2(t) } function eB(t) { return t >= Me.Zero && t <= Me.Nine } (function (t) { t[t.Tab = 9] = "Tab", t[t.NewLine = 10] = "NewLine", t[t.FormFeed = 12] = "FormFeed", t[t.CarriageReturn = 13] = "CarriageReturn", t[t.Space = 32] = "Space", t[t.ExclamationMark = 33] = "ExclamationMark", t[t.Number = 35] = "Number", t[t.Amp = 38] = "Amp", t[t.SingleQuote = 39] = "SingleQuote", t[t.DoubleQuote = 34] = "DoubleQuote", t[t.Dash = 45] = "Dash", t[t.Slash = 47] = "Slash", t[t.Zero = 48] = "Zero", t[t.Nine = 57] = "Nine", t[t.Semi = 59] = "Semi", t[t.Lt = 60] = "Lt", t[t.Eq = 61] = "Eq", t[t.Gt = 62] = "Gt", t[t.Questionmark = 63] = "Questionmark", t[t.UpperA = 65] = "UpperA", t[t.LowerA = 97] = "LowerA", t[t.UpperF = 70] = "UpperF", t[t.LowerF = 102] = "LowerF", t[t.UpperZ = 90] = "UpperZ", t[t.LowerZ = 122] = "LowerZ", t[t.LowerX = 120] = "LowerX", t[t.OpeningSquareBracket = 91] = "OpeningSquareBracket" })(Me = Me || {}), function (t) { t[t.Text = 1] = "Text", t[t.BeforeTagName = 2] = "BeforeTagName", t[t.InTagName = 3] = "InTagName", t[t.InSelfClosingTag = 4] = "InSelfClosingTag", t[t.BeforeClosingTagName = 5] = "BeforeClosingTagName", t[t.InClosingTagName = 6] = "InClosingTagName", t[t.AfterClosingTagName = 7] = "AfterClosingTagName", t[t.BeforeAttributeName = 8] = "BeforeAttributeName", t[t.InAttributeName = 9] = "InAttributeName", t[t.AfterAttributeName = 10] = "AfterAttributeName", t[t.BeforeAttributeValue = 11] = "BeforeAttributeValue", t[t.InAttributeValueDq = 12] = "InAttributeValueDq", t[t.InAttributeValueSq = 13] = "InAttributeValueSq", t[t.InAttributeValueNq = 14] = "InAttributeValueNq", t[t.BeforeDeclaration = 15] = "BeforeDeclaration", t[t.InDeclaration = 16] = "InDeclaration", t[t.InProcessingInstruction = 17] = "InProcessingInstruction", t[t.BeforeComment = 18] = "BeforeComment", t[t.CDATASequence = 19] = "CDATASequence", t[t.InSpecialComment = 20] = "InSpecialComment", t[t.InCommentLike = 21] = "InCommentLike", t[t.BeforeSpecialS = 22] = "BeforeSpecialS", t[t.SpecialStartSequence = 23] = "SpecialStartSequence", t[t.InSpecialTag = 24] = "InSpecialTag", t[t.BeforeEntity = 25] = "BeforeEntity", t[t.BeforeNumericEntity = 26] = "BeforeNumericEntity", t[t.InNamedEntity = 27] = "InNamedEntity", t[t.InNumericEntity = 28] = "InNumericEntity", t[t.InHexEntity = 29] = "InHexEntity" }(ge = ge || {}), function (t) { t[t.NoValue = 0] = "NoValue", t[t.Unquoted = 1] = "Unquoted", t[t.Single = 2] = "Single", t[t.Double = 3] = "Double" }(ca = ca || {}); var El = { 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]) }, xE = class { constructor({ xmlMode: e = !1, decodeEntities: n = !0 }, r) { this.cbs = r, this.state = ge.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.baseState = ge.Text, this.isSpecial = !1, this.running = !0, this.offset = 0, this.currentSequence = void 0, this.sequenceIndex = 0, this.trieIndex = 0, this.trieCurrent = 0, this.entityResult = 0, this.entityExcess = 0, this.xmlMode = e, this.decodeEntities = n, this.entityTrie = e ? vge : $2 } reset() { this.state = ge.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.baseState = ge.Text, this.currentSequence = void 0, this.running = !0, this.offset = 0 } write(e) { this.offset += this.buffer.length, this.buffer = e, this.parse() } end() { this.running && this.finish() } pause() { this.running = !1 } resume() { this.running = !0, this.index < this.buffer.length + this.offset && this.parse() } getIndex() { return this.index } getSectionStart() { return this.sectionStart } stateText(e) { e === Me.Lt || !this.decodeEntities && this.fastForwardTo(Me.Lt) ? (this.index > this.sectionStart && this.cbs.ontext(this.sectionStart, this.index), this.state = ge.BeforeTagName, this.sectionStart = this.index) : this.decodeEntities && e === Me.Amp && (this.state = ge.BeforeEntity) } stateSpecialStartSequence(e) { var n = this.sequenceIndex === this.currentSequence.length; if (n ? A7(e) : (32 | e) === this.currentSequence[this.sequenceIndex]) { if (!n) return void this.sequenceIndex++ } else this.isSpecial = !1; this.sequenceIndex = 0, this.state = ge.InTagName, this.stateInTagName(e) } stateInSpecialTag(e) { if (this.sequenceIndex === this.currentSequence.length) { if (e === Me.Gt || e2(e)) { var n = this.index - this.currentSequence.length; if (this.sectionStart < n) { let r = this.index; this.index = n, this.cbs.ontext(this.sectionStart, n), this.index = r } return this.isSpecial = !1, this.sectionStart = 2 + n, void this.stateInClosingTagName(e) } this.sequenceIndex = 0 } (32 | e) === this.currentSequence[this.sequenceIndex] ? this.sequenceIndex += 1 : this.sequenceIndex === 0 ? this.currentSequence === El.TitleEnd ? this.decodeEntities && e === Me.Amp && (this.state = ge.BeforeEntity) : this.fastForwardTo(Me.Lt) && (this.sequenceIndex = 1) : this.sequenceIndex = +(e === Me.Lt) } stateCDATASequence(e) { e === El.Cdata[this.sequenceIndex] ? ++this.sequenceIndex === El.Cdata.length && (this.state = ge.InCommentLike, this.currentSequence = El.CdataEnd, this.sequenceIndex = 0, this.sectionStart = this.index + 1) : (this.sequenceIndex = 0, this.state = ge.InDeclaration, this.stateInDeclaration(e)) } fastForwardTo(e) { for (; ++this.index < this.buffer.length + this.offset;)if (this.buffer.charCodeAt(this.index - this.offset) === e) return !0; return this.index = this.buffer.length + this.offset - 1, !1 } stateInCommentLike(e) { e === this.currentSequence[this.sequenceIndex] ? ++this.sequenceIndex === this.currentSequence.length && (this.currentSequence === El.CdataEnd ? this.cbs.oncdata(this.sectionStart, this.index, 2) : this.cbs.oncomment(this.sectionStart, this.index, 2), this.sequenceIndex = 0, this.sectionStart = this.index + 1, this.state = ge.Text) : this.sequenceIndex === 0 ? this.fastForwardTo(this.currentSequence[0]) && (this.sequenceIndex = 1) : e !== this.currentSequence[this.sequenceIndex - 1] && (this.sequenceIndex = 0) } isTagStartChar(e) { return this.xmlMode ? !A7(e) : function (n) { return n >= Me.LowerA && n <= Me.LowerZ || n >= Me.UpperA && n <= Me.UpperZ }(e) } startSpecial(e, n) { this.isSpecial = !0, this.currentSequence = e, this.sequenceIndex = n, this.state = ge.SpecialStartSequence } stateBeforeTagName(e) { var n; e === Me.ExclamationMark ? (this.state = ge.BeforeDeclaration, this.sectionStart = this.index + 1) : e === Me.Questionmark ? (this.state = ge.InProcessingInstruction, this.sectionStart = this.index + 1) : this.isTagStartChar(e) ? (n = 32 | e, this.sectionStart = this.index, this.xmlMode || n !== El.TitleEnd[2] ? this.state = this.xmlMode || n !== El.ScriptEnd[2] ? ge.InTagName : ge.BeforeSpecialS : this.startSpecial(El.TitleEnd, 3)) : e === Me.Slash ? this.state = ge.BeforeClosingTagName : (this.state = ge.Text, this.stateText(e)) } stateInTagName(e) { A7(e) && (this.cbs.onopentagname(this.sectionStart, this.index), this.sectionStart = -1, this.state = ge.BeforeAttributeName, this.stateBeforeAttributeName(e)) } stateBeforeClosingTagName(e) { e2(e) || (e === Me.Gt ? this.state = ge.Text : (this.state = this.isTagStartChar(e) ? ge.InClosingTagName : ge.InSpecialComment, this.sectionStart = this.index)) } stateInClosingTagName(e) { e !== Me.Gt && !e2(e) || (this.cbs.onclosetag(this.sectionStart, this.index), this.sectionStart = -1, this.state = ge.AfterClosingTagName, this.stateAfterClosingTagName(e)) } stateAfterClosingTagName(e) { e !== Me.Gt && !this.fastForwardTo(Me.Gt) || (this.state = ge.Text, this.baseState = ge.Text, this.sectionStart = this.index + 1) } stateBeforeAttributeName(e) { e === Me.Gt ? (this.cbs.onopentagend(this.index), this.isSpecial ? (this.state = ge.InSpecialTag, this.sequenceIndex = 0) : this.state = ge.Text, this.baseState = this.state, this.sectionStart = this.index + 1) : e === Me.Slash ? this.state = ge.InSelfClosingTag : e2(e) || (this.state = ge.InAttributeName, this.sectionStart = this.index) } stateInSelfClosingTag(e) { e === Me.Gt ? (this.cbs.onselfclosingtag(this.index), this.state = ge.Text, this.baseState = ge.Text, this.sectionStart = this.index + 1, this.isSpecial = !1) : e2(e) || (this.state = ge.BeforeAttributeName, this.stateBeforeAttributeName(e)) } stateInAttributeName(e) { e !== Me.Eq && !A7(e) || (this.cbs.onattribname(this.sectionStart, this.index), this.sectionStart = -1, this.state = ge.AfterAttributeName, this.stateAfterAttributeName(e)) } stateAfterAttributeName(e) { e === Me.Eq ? this.state = ge.BeforeAttributeValue : e === Me.Slash || e === Me.Gt ? (this.cbs.onattribend(ca.NoValue, this.index), this.state = ge.BeforeAttributeName, this.stateBeforeAttributeName(e)) : e2(e) || (this.cbs.onattribend(ca.NoValue, this.index), this.state = ge.InAttributeName, this.sectionStart = this.index) } stateBeforeAttributeValue(e) { e === Me.DoubleQuote ? (this.state = ge.InAttributeValueDq, this.sectionStart = this.index + 1) : e === Me.SingleQuote ? (this.state = ge.InAttributeValueSq, this.sectionStart = this.index + 1) : e2(e) || (this.sectionStart = this.index, this.state = ge.InAttributeValueNq, this.stateInAttributeValueNoQuotes(e)) } handleInAttributeValue(e, n) { e === n || !this.decodeEntities && this.fastForwardTo(n) ? (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = -1, this.cbs.onattribend(n === Me.DoubleQuote ? ca.Double : ca.Single, this.index), this.state = ge.BeforeAttributeName) : this.decodeEntities && e === Me.Amp && (this.baseState = this.state, this.state = ge.BeforeEntity) } stateInAttributeValueDoubleQuotes(e) { this.handleInAttributeValue(e, Me.DoubleQuote) } stateInAttributeValueSingleQuotes(e) { this.handleInAttributeValue(e, Me.SingleQuote) } stateInAttributeValueNoQuotes(e) { e2(e) || e === Me.Gt ? (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = -1, this.cbs.onattribend(ca.Unquoted, this.index), this.state = ge.BeforeAttributeName, this.stateBeforeAttributeName(e)) : this.decodeEntities && e === Me.Amp && (this.baseState = this.state, this.state = ge.BeforeEntity) } stateBeforeDeclaration(e) { e === Me.OpeningSquareBracket ? (this.state = ge.CDATASequence, this.sequenceIndex = 0) : this.state = e === Me.Dash ? ge.BeforeComment : ge.InDeclaration } stateInDeclaration(e) { e !== Me.Gt && !this.fastForwardTo(Me.Gt) || (this.cbs.ondeclaration(this.sectionStart, this.index), this.state = ge.Text, this.sectionStart = this.index + 1) } stateInProcessingInstruction(e) { e !== Me.Gt && !this.fastForwardTo(Me.Gt) || (this.cbs.onprocessinginstruction(this.sectionStart, this.index), this.state = ge.Text, this.sectionStart = this.index + 1) } stateBeforeComment(e) { e === Me.Dash ? (this.state = ge.InCommentLike, this.currentSequence = El.CommentEnd, this.sequenceIndex = 2, this.sectionStart = this.index + 1) : this.state = ge.InDeclaration } stateInSpecialComment(e) { e !== Me.Gt && !this.fastForwardTo(Me.Gt) || (this.cbs.oncomment(this.sectionStart, this.index, 0), this.state = ge.Text, this.sectionStart = this.index + 1) } stateBeforeSpecialS(e) { var n = 32 | e; n === El.ScriptEnd[3] ? this.startSpecial(El.ScriptEnd, 4) : n === El.StyleEnd[3] ? this.startSpecial(El.StyleEnd, 4) : (this.state = ge.InTagName, this.stateInTagName(e)) } stateBeforeEntity(e) { this.entityExcess = 1, this.entityResult = 0, e === Me.Number ? this.state = ge.BeforeNumericEntity : e !== Me.Amp && (this.trieIndex = 0, this.trieCurrent = this.entityTrie[0], this.state = ge.InNamedEntity, this.stateInNamedEntity(e)) } stateInNamedEntity(e) { if (this.entityExcess += 1, this.trieIndex = oH(this.entityTrie, this.trieCurrent, this.trieIndex + 1, e), this.trieIndex < 0) this.emitNamedEntity(), this.index--; else { this.trieCurrent = this.entityTrie[this.trieIndex]; var n = this.trieCurrent & Yc.VALUE_LENGTH; if (n) if (n = (n >> 14) - 1, this.allowLegacyEntity() || e === Me.Semi) { let r = this.index - this.entityExcess + 1; r > this.sectionStart && this.emitPartial(this.sectionStart, r), this.entityResult = this.trieIndex, this.trieIndex += n, this.entityExcess = 0, this.sectionStart = this.index + 1, n == 0 && this.emitNamedEntity() } else this.trieIndex += n } } emitNamedEntity() { if (this.state = this.baseState, this.entityResult !== 0) switch ((this.entityTrie[this.entityResult] & Yc.VALUE_LENGTH) >> 14) { case 1: this.emitCodePoint(this.entityTrie[this.entityResult] & ~Yc.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(e) { (32 | e) === Me.LowerX ? (this.entityExcess++, this.state = ge.InHexEntity) : (this.state = ge.InNumericEntity, this.stateInNumericEntity(e)) } emitNumericEntity(e) { var n = this.index - this.entityExcess - 1; 2 + n + +(this.state === ge.InHexEntity) !== this.index && (n > this.sectionStart && this.emitPartial(this.sectionStart, n), this.sectionStart = this.index + Number(e), this.emitCodePoint(gge(this.entityResult))), this.state = this.baseState } stateInNumericEntity(e) { e === Me.Semi ? this.emitNumericEntity(!0) : eB(e) ? (this.entityResult = 10 * this.entityResult + (e - Me.Zero), this.entityExcess++) : (this.allowLegacyEntity() ? this.emitNumericEntity(!1) : this.state = this.baseState, this.index--) } stateInHexEntity(e) { e === Me.Semi ? this.emitNumericEntity(!0) : eB(e) ? (this.entityResult = 16 * this.entityResult + (e - Me.Zero), this.entityExcess++) : function (n) { return n >= Me.UpperA && n <= Me.UpperF || n >= Me.LowerA && n <= Me.LowerF }(e) ? (this.entityResult = 16 * this.entityResult + ((32 | e) - Me.LowerA + 10), this.entityExcess++) : (this.allowLegacyEntity() ? this.emitNumericEntity(!1) : this.state = this.baseState, this.index--) } allowLegacyEntity() { return !this.xmlMode && (this.baseState === ge.Text || this.baseState === ge.InSpecialTag) } cleanup() { this.running && this.sectionStart !== this.index && (this.state === ge.Text || this.state === ge.InSpecialTag && this.sequenceIndex === 0 ? (this.cbs.ontext(this.sectionStart, this.index), this.sectionStart = this.index) : this.state !== ge.InAttributeValueDq && this.state !== ge.InAttributeValueSq && this.state !== ge.InAttributeValueNq || (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = this.index)) } shouldContinue() { return this.index < this.buffer.length + this.offset && this.running } parse() { for (; this.shouldContinue();) { var e = this.buffer.charCodeAt(this.index - this.offset); switch (this.state) { case ge.Text: this.stateText(e); break; case ge.SpecialStartSequence: this.stateSpecialStartSequence(e); break; case ge.InSpecialTag: this.stateInSpecialTag(e); break; case ge.CDATASequence: this.stateCDATASequence(e); break; case ge.InAttributeValueDq: this.stateInAttributeValueDoubleQuotes(e); break; case ge.InAttributeName: this.stateInAttributeName(e); break; case ge.InCommentLike: this.stateInCommentLike(e); break; case ge.InSpecialComment: this.stateInSpecialComment(e); break; case ge.BeforeAttributeName: this.stateBeforeAttributeName(e); break; case ge.InTagName: this.stateInTagName(e); break; case ge.InClosingTagName: this.stateInClosingTagName(e); break; case ge.BeforeTagName: this.stateBeforeTagName(e); break; case ge.AfterAttributeName: this.stateAfterAttributeName(e); break; case ge.InAttributeValueSq: this.stateInAttributeValueSingleQuotes(e); break; case ge.BeforeAttributeValue: this.stateBeforeAttributeValue(e); break; case ge.BeforeClosingTagName: this.stateBeforeClosingTagName(e); break; case ge.AfterClosingTagName: this.stateAfterClosingTagName(e); break; case ge.BeforeSpecialS: this.stateBeforeSpecialS(e); break; case ge.InAttributeValueNq: this.stateInAttributeValueNoQuotes(e); break; case ge.InSelfClosingTag: this.stateInSelfClosingTag(e); break; case ge.InDeclaration: this.stateInDeclaration(e); break; case ge.BeforeDeclaration: this.stateBeforeDeclaration(e); break; case ge.BeforeComment: this.stateBeforeComment(e); break; case ge.InProcessingInstruction: this.stateInProcessingInstruction(e); break; case ge.InNamedEntity: this.stateInNamedEntity(e); break; case ge.BeforeEntity: this.stateBeforeEntity(e); break; case ge.InHexEntity: this.stateInHexEntity(e); break; case ge.InNumericEntity: this.stateInNumericEntity(e); break; default: this.stateBeforeNumericEntity(e) }this.index++ } this.cleanup() } finish() { this.state === ge.InNamedEntity && this.emitNamedEntity(), this.sectionStart < this.index && this.handleTrailingData(), this.cbs.onend() } handleTrailingData() { var e = this.buffer.length + this.offset; this.state === ge.InCommentLike ? this.currentSequence === El.CdataEnd ? this.cbs.oncdata(this.sectionStart, e, 0) : this.cbs.oncomment(this.sectionStart, e, 0) : this.state === ge.InNumericEntity && this.allowLegacyEntity() || this.state === ge.InHexEntity && this.allowLegacyEntity() ? this.emitNumericEntity(!1) : this.state !== ge.InTagName && this.state !== ge.BeforeAttributeName && this.state !== ge.BeforeAttributeValue && this.state !== ge.AfterAttributeName && this.state !== ge.InAttributeName && this.state !== ge.InAttributeValueSq && this.state !== ge.InAttributeValueDq && this.state !== ge.InAttributeValueNq && this.state !== ge.InClosingTagName && this.cbs.ontext(this.sectionStart, e) } emitPartial(e, n) { this.baseState !== ge.Text && this.baseState !== ge.InSpecialTag ? this.cbs.onattribdata(e, n) : this.cbs.ontext(e, n) } emitCodePoint(e) { this.baseState !== ge.Text && this.baseState !== ge.InSpecialTag ? this.cbs.onattribentity(e) : this.cbs.ontextentity(e) } }, B1 = new Set(["input", "option", "optgroup", "select", "button", "datalist", "textarea"]), Yn = new Set(["p"]), tB = new Set(["thead", "tbody"]), nB = new Set(["dd", "dt"]), rB = new Set(["rt", "rp"]), ive = new Map([["tr", new Set(["tr", "th", "td"])], ["th", new Set(["th"])], ["td", new Set(["thead", "th", "td"])], ["body", new Set(["head", "link", "script"])], ["li", new Set(["li"])], ["p", Yn], ["h1", Yn], ["h2", Yn], ["h3", Yn], ["h4", Yn], ["h5", Yn], ["h6", Yn], ["select", B1], ["input", B1], ["output", B1], ["button", B1], ["datalist", B1], ["textarea", B1], ["option", new Set(["option"])], ["optgroup", new Set(["optgroup", "option"])], ["dd", nB], ["dt", nB], ["address", Yn], ["article", Yn], ["aside", Yn], ["blockquote", Yn], ["details", Yn], ["div", Yn], ["dl", Yn], ["fieldset", Yn], ["figcaption", Yn], ["figure", Yn], ["footer", Yn], ["form", Yn], ["header", Yn], ["hr", Yn], ["main", Yn], ["nav", Yn], ["ol", Yn], ["pre", Yn], ["section", Yn], ["table", Yn], ["ul", Yn], ["rt", rB], ["rp", rB], ["tbody", tB], ["tfoot", tB]]), lve = new Set(["area", "base", "basefont", "br", "col", "command", "embed", "frame", "hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source", "track", "wbr"]), iB = new Set(["math", "svg"]), lB = new Set(["mi", "mo", "mn", "ms", "mtext", "annotation-xml", "foreignobject", "desc", "title"]), sve = /\s|\//, AE = class { constructor(e, n = {}) { this.options = n, 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 = !1, this.cbs = e ?? {}, this.lowerCaseTagNames = (e = n.lowerCaseTags) != null ? e : !n.xmlMode, this.lowerCaseAttributeNames = (e = n.lowerCaseAttributeNames) != null ? e : !n.xmlMode, this.tokenizer = new ((e = n.Tokenizer) != null ? e : xE)(this.options, this), (e = (n = this.cbs).onparserinit) != null && e.call(n, this) } ontext(l, n) { var r, i, l = this.getSlice(l, n); this.endIndex = n - 1, (i = (r = this.cbs).ontext) != null && i.call(r, l), this.startIndex = n } ontextentity(e) { var n, r, i = this.tokenizer.getSectionStart(); this.endIndex = i - 1, (r = (n = this.cbs).ontext) != null && r.call(n, D$(e)), this.startIndex = i } isVoidElement(e) { return !this.options.xmlMode && lve.has(e) } onopentagname(e, n) { this.endIndex = n; let r = this.getSlice(e, n); this.lowerCaseTagNames && (r = r.toLowerCase()), this.emitOpenTag(r) } emitOpenTag(e) { this.openTagStart = this.startIndex, this.tagname = e; var n, r, i, l, s = !this.options.xmlMode && ive.get(e); if (s) for (; 0 < this.stack.length && s.has(this.stack[this.stack.length - 1]);) { let a = this.stack.pop(); (r = (n = this.cbs).onclosetag) != null && r.call(n, a, !0) } this.isVoidElement(e) || (this.stack.push(e), iB.has(e) ? this.foreignContext.push(!0) : lB.has(e) && this.foreignContext.push(!1)), (l = (i = this.cbs).onopentagname) != null && l.call(i, e), this.cbs.onopentag && (this.attribs = {}) } endOpenTag(e) { var n, r; this.startIndex = this.openTagStart, this.attribs && ((r = (n = this.cbs).onopentag) != null && r.call(n, this.tagname, this.attribs, e), this.attribs = null), this.cbs.onclosetag && this.isVoidElement(this.tagname) && this.cbs.onclosetag(this.tagname, !0), this.tagname = "" } onopentagend(e) { this.endIndex = e, this.endOpenTag(!1), this.startIndex = e + 1 } onclosetag(e, n) { var r; this.endIndex = n; let i = this.getSlice(e, n); if (this.lowerCaseTagNames && (i = i.toLowerCase()), (iB.has(i) || lB.has(i)) && this.foreignContext.pop(), this.isVoidElement(i)) this.options.xmlMode || i !== "br" || ((r = (e = this.cbs).onopentagname) != null && r.call(e, "br"), (e = (r = this.cbs).onopentag) != null && e.call(r, "br", {}, !0), (r = (e = this.cbs).onclosetag) == null) || r.call(e, "br", !1); else { let l = this.stack.lastIndexOf(i); if (l !== -1) if (this.cbs.onclosetag) { let s = this.stack.length - l; for (; s--;)this.cbs.onclosetag(this.stack.pop(), s !== 0) } else this.stack.length = l; else this.options.xmlMode || i !== "p" || (this.emitOpenTag("p"), this.closeCurrentTag(!0)) } this.startIndex = n + 1 } onselfclosingtag(e) { this.endIndex = e, this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1] ? (this.closeCurrentTag(!1), this.startIndex = e + 1) : this.onopentagend(e) } closeCurrentTag(e) { var n, r, i = this.tagname; this.endOpenTag(e), this.stack[this.stack.length - 1] === i && ((r = (n = this.cbs).onclosetag) != null && r.call(n, i, !e), this.stack.pop()) } onattribname(e, n) { this.startIndex = e, e = this.getSlice(e, n), this.attribname = this.lowerCaseAttributeNames ? e.toLowerCase() : e } onattribdata(e, n) { this.attribvalue += this.getSlice(e, n) } onattribentity(e) { this.attribvalue += D$(e) } onattribend(e, n) { var r; this.endIndex = n, (r = (n = this.cbs).onattribute) != null && r.call(n, this.attribname, this.attribvalue, e === ca.Double ? '"' : e === ca.Single ? "'" : e === ca.NoValue ? void 0 : null), this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname) && (this.attribs[this.attribname] = this.attribvalue), this.attribvalue = "" } getInstructionName(e) { var n = e.search(sve); let r = n < 0 ? e : e.substr(0, n); return r = this.lowerCaseTagNames ? r.toLowerCase() : r } ondeclaration(e, n) { this.endIndex = n; var r = this.getSlice(e, n); if (this.cbs.onprocessinginstruction) { let i = this.getInstructionName(r); this.cbs.onprocessinginstruction("!" + i, "!" + r) } this.startIndex = n + 1 } onprocessinginstruction(e, n) { this.endIndex = n; var r = this.getSlice(e, n); if (this.cbs.onprocessinginstruction) { let i = this.getInstructionName(r); this.cbs.onprocessinginstruction("?" + i, "?" + r) } this.startIndex = n + 1 } oncomment(e, n, r) { var i, l; this.endIndex = n, (i = (l = this.cbs).oncomment) != null && i.call(l, this.getSlice(e, n - r)), (l = (i = this.cbs).oncommentend) != null && l.call(i), this.startIndex = n + 1 } oncdata(l, n, r) { this.endIndex = n; var i, l = this.getSlice(l, n - r); this.options.xmlMode || this.options.recognizeCDATA ? ((i = (r = this.cbs).oncdatastart) != null && i.call(r), (r = (i = this.cbs).ontext) != null && r.call(i, l), (i = (r = this.cbs).oncdataend) != null && i.call(r)) : ((r = (i = this.cbs).oncomment) != null && r.call(i, `[CDATA[${l}]]`), (i = (r = this.cbs).oncommentend) != null && i.call(r)), this.startIndex = n + 1 } onend() { var e, n; if (this.cbs.onclosetag) { this.endIndex = this.startIndex; for (let r = this.stack.length; 0 < r; this.cbs.onclosetag(this.stack[--r], !0)); } (n = (e = this.cbs).onend) != null && n.call(e) } reset() { var e, n; (e = (n = this.cbs).onreset) != null && e.call(n), this.tokenizer.reset(), this.tagname = "", this.attribname = "", this.attribs = null, this.stack.length = 0, this.startIndex = 0, this.endIndex = 0, (n = (e = this.cbs).onparserinit) != null && n.call(e, this), this.buffers.length = 0, this.bufferOffset = 0, this.writeIndex = 0, this.ended = !1 } parseComplete(e) { this.reset(), this.end(e) } getSlice(e, n) { for (; e - this.bufferOffset >= this.buffers[0].length;)this.shiftBuffer(); let r = this.buffers[0].slice(e - this.bufferOffset, n - this.bufferOffset); for (; n - this.bufferOffset > this.buffers[0].length;)this.shiftBuffer(), r += this.buffers[0].slice(0, n - this.bufferOffset); return r } shiftBuffer() { this.bufferOffset += this.buffers[0].length, this.writeIndex--, this.buffers.shift() } write(e) { var n, r; this.ended ? (r = (n = this.cbs).onerror) != null && r.call(n, new Error(".write() after done!")) : (this.buffers.push(e), this.tokenizer.running && (this.tokenizer.write(e), this.writeIndex++)) } end(e) { var n, r; this.ended ? (r = (n = this.cbs).onerror) != null && r.call(n, new Error(".end() after done!")) : (e && this.write(e), this.ended = !0, this.tokenizer.end()) } pause() { this.tokenizer.pause() } resume() { for (this.tokenizer.resume(); this.tokenizer.running && this.writeIndex < this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]); this.ended && this.tokenizer.end() } parseChunk(e) { this.write(e) } done(e) { this.end(e) } }, J_, t2 = typeof global < "u" ? global : typeof self < "u" ? self : typeof window < "u" ? window : {}; function q1(t) { if (Object.keys) return Object.keys(t); var e, n = []; for (e in t) n.push(e); return n } function z1(t, e) { if (t.forEach) return t.forEach(e); for (var n = 0; n < t.length; n++)e(t[n], n, t) } function ave() { try { return Object.defineProperty({}, "_", {}), function (t, e, n) { Object.defineProperty(t, e, { writable: !0, enumerable: !1, configurable: !0, value: n }) } } catch { return function (e, n, r) { e[n] = r } } } var sB = ["Array", "Boolean", "Date", "Error", "EvalError", "Function", "Infinity", "JSON", "Math", "NaN", "Number", "Object", "RangeError", "ReferenceError", "RegExp", "String", "SyntaxError", "TypeError", "URIError", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "undefined", "unescape"]; function K7() { } function pa(t) { if (!(this instanceof pa)) return new pa(t); this.code = t } function OH(t) { var e; return NH(t) ? t : (e = new K7, typeof t == "object" && z1(q1(t), function (n) { e[n] = t[n] }), e) } function NH(t) { return t instanceof K7 } K7.prototype = {}, pa.prototype.runInContext = function (t) { var e, n, r, i, l; if (t instanceof K7) return t2.document ? ((e = t2.document.createElement("iframe")).style || (e.style = {}), e.style.display = "none", t2.document.body.appendChild(e), r = (n = e.contentWindow).eval, l = n.execScript, !r && l && (l.call(n, "null"), r = n.eval), z1(q1(t), function (s) { n[s] = t[s] }), z1(sB, function (s) { t[s] && (n[s] = t[s]) }), i = q1(n), l = r.call(n, this.code), z1(q1(n), function (s) { (s in t || function (a, o) { if (uve) return a.indexOf(o); for (var u = 0; u < a.length; ++u)if (a[u] === o) return u; return -1 }(i, s) === -1) && (t[s] = n[s]) }), z1(sB, function (s) { var a; s in t || (a = n[s], (J_ = typeof J_ != "function" ? ave : J_)(t, s, a)) }), t2.document.body.removeChild(e), l) : function (s, a) { var o = q1(t2); return o.push("with (this.__ctx__){return eval(this.__code__)}"), Function.apply(null, o).apply({ __code__: s, __ctx__: a }) }(this.code, t); throw new TypeError("needs a 'context' argument.") }, pa.prototype.runInThisContext = function () { return new Function("code", "return eval(code);").call(t2, this.code) }, pa.prototype.runInNewContext = function (t) { var e = OH(t), n = this.runInContext(e); return t && z1(q1(e), function (r) { t[r] = e[r] }), n }; var ove = { runInContext: function (t, e, n) { return new pa(t).runInContext(e, n) }, isContext: NH, createContext: OH, createScript: function (t) { return new pa(t) }, Script: pa, runInThisContext: function (t, e) { return new pa(t).runInThisContext(e) }, runInNewContext: function (t, e, n) { return new pa(t).runInNewContext(e, n) } }, uve = [].indexOf, bl = Object.prototype.hasOwnProperty; function G3(t, e) { return (t = t.slice()).push(e), t } function K_(t, e) { return (e = e.slice()).unshift(t), e } var OE = class extends Error { constructor(e) { super('JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'), this.avoidNew = !0, this.value = e, this.name = "NewError" } }; function rr(t, e, n, r, i) { if (!(this instanceof rr)) try { return new rr(t, e, n, r, i) } catch (s) { if (s.avoidNew) return s.value; throw s } typeof t == "string" && (i = r, r = n, n = e, e = t, t = null); var l = t && typeof t == "object"; if (this.json = (t = t || {}).json || n, this.path = t.path || e, this.resultType = t.resultType || "value", this.flatten = t.flatten || !1, this.wrap = !bl.call(t, "wrap") || t.wrap, this.sandbox = t.sandbox || {}, this.preventEval = t.preventEval || !1, this.parent = t.parent || null, this.parentProperty = t.parentProperty || null, this.callback = t.callback || r || null, this.otherTypeCallback = t.otherTypeCallback || i || function () { throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.") }, t.autostart !== !1) { let s = { path: l ? t.path : e }, a = (l ? "json" in t && (s.json = t.json) : s.json = n, this.evaluate(s)); if (a && typeof a == "object") return a; throw new OE(a) } } rr.prototype.evaluate = function (t, e, n, r) { let i = this.parent, l = this.parentProperty, { flatten: s, wrap: a } = this; if (this.currResultType = this.resultType, this.currPreventEval = this.preventEval, this.currSandbox = this.sandbox, n = n || this.callback, this.currOtherTypeCallback = r || this.otherTypeCallback, e = e || this.json, (t = t || this.path) && typeof t == "object" && !Array.isArray(t)) { if (!t.path && t.path !== "") throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().'); if (!bl.call(t, "json")) throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().'); e = t.json, s = bl.call(t, "flatten") ? t.flatten : s, this.currResultType = bl.call(t, "resultType") ? t.resultType : this.currResultType, this.currSandbox = bl.call(t, "sandbox") ? t.sandbox : this.currSandbox, a = bl.call(t, "wrap") ? t.wrap : a, this.currPreventEval = bl.call(t, "preventEval") ? t.preventEval : this.currPreventEval, n = bl.call(t, "callback") ? t.callback : n, this.currOtherTypeCallback = bl.call(t, "otherTypeCallback") ? t.otherTypeCallback : this.currOtherTypeCallback, i = bl.call(t, "parent") ? t.parent : i, l = bl.call(t, "parentProperty") ? t.parentProperty : l, t = t.path } if (i = i || null, l = l || null, ((t = Array.isArray(t) ? rr.toPathString(t) : t) || t === "") && e) return (r = rr.toPathArray(t))[0] === "$" && 1 < r.length && r.shift(), this._hasParentSelector = null, (t = this._trace(r, e, ["$"], i, l, n).filter(function (o) { return o && !o.isParentSelector })).length ? a || t.length !== 1 || t[0].hasArrExpr ? t.reduce((o, u) => (u = this._getPreferredOutput(u), s && Array.isArray(u) ? o = o.concat(u) : o.push(u), o), []) : this._getPreferredOutput(t[0]) : a ? [] : void 0 }, rr.prototype._getPreferredOutput = function (t) { let e = this.currResultType; switch (e) { case "all": { let n = Array.isArray(t.path) ? t.path : rr.toPathArray(t.path); return t.pointer = rr.toPointer(n), t.path = typeof t.path == "string" ? t.path : rr.toPathString(t.path), t } case "value": case "parent": case "parentProperty": return t[e]; case "path": return rr.toPathString(t[e]); case "pointer": return rr.toPointer(t.path); default: throw new TypeError("Unknown result type") } }, rr.prototype._handleCallback = function (t, e, n) { var r; e && (r = this._getPreferredOutput(t), t.path = typeof t.path == "string" ? t.path : rr.toPathString(t.path), e(r, n, t)) }, rr.prototype._trace = function (t, e, n, r, i, l, s, a) { let o; if (!t.length) return o = { path: n, value: e, parent: r, parentProperty: i, hasArrExpr: s }, this._handleCallback(o, l, "value"), o; let u = t[0], c = t.slice(1), f = []; function m(d) { Array.isArray(d) ? d.forEach(y => { f.push(y) }) : f.push(d) } if ((typeof u != "string" || a) && e && bl.call(e, u)) m(this._trace(c, e[u], G3(n, u), e, u, l, s)); else if (u === "*") this._walk(e, d => { m(this._trace(c, e[d], G3(n, d), e, d, l, !0, !0)) }); else if (u === "..") m(this._trace(c, e, n, r, i, l, s)), this._walk(e, d => { typeof e[d] == "object" && m(this._trace(t.slice(), e[d], G3(n, d), e, d, l, !0)) }); else { if (u === "^") return this._hasParentSelector = !0, { path: n.slice(0, -1), expr: c, isParentSelector: !0 }; if (u === "~") return o = { path: G3(n, u), value: i, parent: r, parentProperty: null }, this._handleCallback(o, l, "property"), o; if (u === "$") m(this._trace(c, e, n, null, null, l, s)); else if (/^(-?\d*):(-?\d*):?(\d*)$/u.test(u)) m(this._slice(u, c, e, n, r, i, l)); else if (u.indexOf("?(") === 0) { if (this.currPreventEval) throw new Error("Eval [?(expr)] prevented in JSONPath expression."); let d = u.replace(/^\?\((.*?)\)$/u, "$1"); this._walk(e, y => { this._eval(d, e[y], y, n, r, i) && m(this._trace(c, e[y], G3(n, y), e, y, l, !0)) }) } else if (u[0] === "(") { if (this.currPreventEval) throw new Error("Eval [(expr)] prevented in JSONPath expression."); m(this._trace(K_(this._eval(u, e, n[n.length - 1], n.slice(0, -1), r, i), c), e, n, r, i, l, s)) } else if (u[0] === "@") { let d = !1, y = u.slice(1, -2); switch (y) { case "scalar": e && ["object", "function"].includes(typeof e) || (d = !0); break; case "boolean": case "string": case "undefined": case "function": typeof e === y && (d = !0); break; case "integer": !Number.isFinite(e) || e % 1 || (d = !0); break; case "number": Number.isFinite(e) && (d = !0); break; case "nonFinite": typeof e != "number" || Number.isFinite(e) || (d = !0); break; case "object": e && typeof e === y && (d = !0); break; case "array": Array.isArray(e) && (d = !0); break; case "other": d = this.currOtherTypeCallback(e, n, r, i); break; case "null": e === null && (d = !0); break; default: throw new TypeError("Unknown value type " + y) }if (d) return o = { path: n, value: e, parent: r, parentProperty: i }, this._handleCallback(o, l, "value"), o } else if (u[0] === "`" && e && bl.call(e, u.slice(1))) { let d = u.slice(1); m(this._trace(c, e[d], G3(n, d), e, d, l, s, !0)) } else if (u.includes(",")) { let d = u.split(","); for (let y of d) m(this._trace(K_(y, c), e, n, r, i, l, !0)) } else !a && e && bl.call(e, u) && m(this._trace(c, e[u], G3(n, u), e, u, l, s, !0)) } if (this._hasParentSelector) for (let d = 0; d < f.length; d++) { let y = f[d]; if (y && y.isParentSelector) { let _ = this._trace(y.expr, e, y.path, r, i, l, s); if (Array.isArray(_)) { f[d] = _[0]; let S = _.length; for (let w = 1; w < S; w++)d++, f.splice(d, 0, _[w]) } else f[d] = _ } } return f }, rr.prototype._walk = function (t, e) { if (Array.isArray(t)) { var n = t.length; for (let r = 0; r < n; r++)e(r) } else t && typeof t == "object" && Object.keys(t).forEach(r => { e(r) }) }, rr.prototype._slice = function (t, e, n, r, i, l, s) { if (Array.isArray(n)) { var a = n.length, o = (t = t.split(":"))[2] && Number.parseInt(t[2]) || 1, u = t[0] && Number.parseInt(t[0]) || 0, c = t[1] && Number.parseInt(t[1]) || a, u = u < 0 ? Math.max(0, u + a) : Math.min(a, u), c = c < 0 ? Math.max(0, c + a) : Math.min(a, c); let f = []; for (let m = u; m < c; m += o)this._trace(K_(m, e), n, r, i, l, s, !0).forEach(d => { f.push(d) }); return f } }, rr.prototype._eval = function (t, e, n, r, i, l) { if (this.currSandbox._$_parentProperty = l, this.currSandbox._$_parent = i, this.currSandbox._$_property = n, this.currSandbox._$_root = this.json, this.currSandbox._$_v = e, (l = t.includes("@path")) && (this.currSandbox._$_path = rr.toPathString(r.concat([n]))), !rr.cache[i = "script:" + t]) { let s = t.replace(/@parentProperty/gu, "_$_parentProperty").replace(/@parent/gu, "_$_parent").replace(/@property/gu, "_$_property").replace(/@root/gu, "_$_root").replace(/@([.\s)[])/gu, "_$_v$1"); l && (s = s.replace(/@path/gu, "_$_path")), rr.cache[i] = new this.vm.Script(s) } try { return rr.cache[i].runInNewContext(this.currSandbox) } catch (s) { throw new Error("jsonPath: " + s.message + ": " + t) } }, rr.cache = {}, rr.toPathString = function (t) { var e = t, n = e.length; let r = "$"; for (let i = 1; i < n; i++)/^(~|\^|@.*?\(\))$/u.test(e[i]) || (r += /^[0-9*]+$/u.test(e[i]) ? "[" + e[i] + "]" : "['" + e[i] + "']"); return r }, rr.toPointer = function (t) { var e = t, n = e.length; let r = ""; for (let i = 1; i < n; i++)/^(~|\^|@.*?\(\))$/u.test(e[i]) || (r += "/" + e[i].toString().replace(/~/gu, "~0").replace(/\//gu, "~1")); return r }, rr.toPathArray = function (t) { var e = rr.cache; if (!e[t]) { let n = [], r = t.replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/gu, ";$&;").replace(/[['](\??\(.*?\))[\]']/gu, function (l, s) { return "[#" + (n.push(s) - 1) + "]" }).replace(/\[['"]([^'\]]*)['"]\]/gu, function (l, s) { return "['" + s.replace(/\./gu, "%@%").replace(/~/gu, "%%@@%%") + "']" }).replace(/~/gu, ";~;").replace(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu, ";").replace(/%@%/gu, ".").replace(/%%@@%%/gu, "~").replace(/(?:;)?(\^+)(?:;)?/gu, function (l, s) { return ";" + s.split("").join(";") + ";" }).replace(/;;;|;;/gu, ";..;").replace(/;$|'?\]|'$/gu, ""), i = r.split(";").map(function (l) { var s = l.match(/#(\d+)/u); return s && s[1] ? n[s[1]] : l }); e[t] = i } return e[t].concat() }, rr.prototype.vm = ove; var Le = ht(function (t) {
var e = Array.prototype, n = Object.prototype, r = { "&": "&amp;", '"': "&quot;", "'": "&#39;", "<": "&lt;", ">": "&gt;" }, i = /[&"'<>]/g, l = t.exports = {}; function s(w, E) { return n.hasOwnProperty.call(w, E) } function a(w) { return r[w] } function o(w, E, g) {
var v, x, O, N, R; return w instanceof Error && (w = (x = w).name + ": " + x.message), Object.setPrototypeOf ? (v = new Error(w), Object.setPrototypeOf(v, o.prototype)) : (v = this, Object.defineProperty(v, "message", { enumerable: !1, writable: !0, value: w })), Object.defineProperty(v, "name", { value: "Template render error" }), Error.captureStackTrace && Error.captureStackTrace(v, this.constructor), N = x ? (O = Object.getOwnPropertyDescriptor(x, "stack")) && (O.get || function () { return O.value }) || function () { return x.stack } : (R = new Error(w).stack, function () { return R }), Object.defineProperty(v, "stack", { get: function () { return N.call(v) } }), Object.defineProperty(v, "cause", { value: x }), v.lineno = E, v.colno = g, v.firstUpdate = !0, v.Update = function (U) {
return U = "(" + (U || "unknown path") + ")", this.firstUpdate && (this.lineno && this.colno ? U += " [Line " + this.lineno + ", Column " + this.colno + "]" : this.lineno && (U += " [Line " + this.lineno + "]")), U += `
`, this.firstUpdate && (U += " "), this.message = U + (this.message || ""), this.firstUpdate = !1, this
}, v
} function u(w) { return n.toString.call(w) === "[object Function]" } function c(w) { return n.toString.call(w) === "[object Array]" } function f(w) { return n.toString.call(w) === "[object String]" } function m(w) { return n.toString.call(w) === "[object Object]" } function d(w) { var E = function (g) { return g ? typeof g == "string" ? g.split(".") : [g] : [] }(w); return function (g) { for (var v = g, x = 0; x < E.length; x++) { var O = E[x]; if (!s(v, O)) return; v = v[O] } return v } } function y(w) { return Array.prototype.slice.call(w) } function _(w, E, g) { return Array.prototype.indexOf.call(w || [], E, g) } function S(w) { var E, g = []; for (E in w) s(w, E) && g.push(E); return g } l.hasOwnProp = s, l._prettifyError = function (w, E, g) { return (g = g.Update ? g : new l.TemplateError(g)).Update(w), E || (w = g, (g = new Error(w.message)).name = w.name), g }, Object.setPrototypeOf ? Object.setPrototypeOf(o.prototype, Error.prototype) : o.prototype = Object.create(Error.prototype, { constructor: { value: o } }), l.TemplateError = o, l.escape = function (w) { return w.replace(i, a) }, l.isFunction = u, l.isArray = c, l.isString = f, l.isObject = m, l.getAttrGetter = d, l.groupBy = function (w, E, g) { for (var v = {}, x = u(E) ? E : d(E), O = 0; O < w.length; O++) { var N = w[O], R = x(N, O); if (R === void 0 && g === !0) throw new TypeError('groupby: attribute "' + E + '" resolved to undefined'); (v[R] || (v[R] = [])).push(N) } return v }, l.toArray = y, l.without = function (w) { var E = []; if (w) for (var g = w.length, v = y(arguments).slice(1), x = -1; ++x < g;)_(v, w[x]) === -1 && E.push(w[x]); return E }, l.repeat = function (w, E) { for (var g = "", v = 0; v < E; v++)g += w; return g }, l.each = function (w, E, g) { if (w != null) { if (e.forEach && w.forEach === e.forEach) w.forEach(E, g); else if (w.length === +w.length) for (var v = 0, x = w.length; v < x; v++)E.call(g, w[v], v, w) } }, l.map = function (w, E) { var g = []; if (w != null) { if (e.map && w.map === e.map) return w.map(E); for (var v = 0; v < w.length; v++)g[g.length] = E(w[v], v); w.length === +w.length && (g.length = w.length) } return g }, l.asyncIter = function (w, E, g) { var v = -1; (function x() { ++v < w.length ? E(w[v], v, x, g) : g() })() }, l.asyncFor = function (w, E, g) { var v = S(w || {}), x = v.length, O = -1; (function N() { var R = v[++O]; O < x ? E(R, w[R], O, x, N) : g() })() }, l.indexOf = _, l.keys = S, l._entries = function (w) { return S(w).map(function (E) { return [E, w[E]] }) }, l._values = function (w) { return S(w).map(function (E) { return w[E] }) }, l._assign = l.extend = function (w, E) { return w = w || {}, S(E).forEach(function (g) { w[g] = E[g] }), w }, l.inOperator = function (w, E) { if (c(E) || f(E)) return E.indexOf(w) !== -1; if (m(E)) return w in E; throw new Error('Cannot use "in" operator to search for "' + w + '" in unexpected types.') }
}); function CH() { throw new Error("setTimeout has not been defined") } function RH() { throw new Error("clearTimeout has not been defined") } var H2 = CH, V2 = RH; function IH(t) { if (H2 === setTimeout) return setTimeout(t, 0); if ((H2 === CH || !H2) && setTimeout) return (H2 = setTimeout)(t, 0); try { return H2(t, 0) } catch { try { return H2.call(null, t, 0) } catch { return H2.call(this, t, 0) } } } typeof t2.setTimeout == "function" && (H2 = setTimeout), typeof t2.clearTimeout == "function" && (V2 = clearTimeout); var Y3, r2 = [], n0 = !1, D7 = -1; function cve() { n0 && Y3 && (n0 = !1, Y3.length ? r2 = Y3.concat(r2) : D7 = -1, r2.length) && kH() } function kH() { if (!n0) { var t = IH(cve); n0 = !0; for (var e = r2.length; e;) { for (Y3 = r2, r2 = []; ++D7 < e;)Y3 && Y3[D7].run(); D7 = -1, e = r2.length } Y3 = null, n0 = !1, function (n) { if (V2 === clearTimeout) return clearTimeout(n); if ((V2 === RH || !V2) && clearTimeout) return (V2 = clearTimeout)(n); try { V2(n) } catch { try { return V2.call(null, n) } catch { return V2.call(this, n) } } }(t) } } function DH(t, e) { this.fun = t, this.array = e } function ru() { } DH.prototype.run = function () { this.fun.apply(null, this.array) }; var pve = ru, fve = ru, dve = ru, hve = ru, mve = ru, yve = ru, gve = ru, G1 = t2.performance || {}, vve = G1.now || G1.mozNow || G1.msNow || G1.oNow || G1.webkitNow || function () { return new Date().getTime() }, _ve = new Date, X2 = { nextTick: function (t) { var e = new Array(arguments.length - 1); if (1 < arguments.length) for (var n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; r2.push(new DH(t, e)), r2.length !== 1 || n0 || IH(kH) }, title: "browser", browser: !0, env: {}, argv: [], version: "", versions: {}, on: pve, addListener: fve, once: dve, off: hve, removeListener: mve, removeAllListeners: yve, emit: gve, binding: function (t) { throw new Error("process.binding is not supported") }, cwd: function () { return "/" }, chdir: function (t) { throw new Error("process.chdir is not supported") }, umask: function () { return 0 }, hrtime: function (t) { var n = .001 * vve.call(G1), e = Math.floor(n), n = Math.floor(n % 1 * 1e9); return t && (e -= t[0], (n -= t[1]) < 0) && (e--, n += 1e9), [e, n] }, platform: "browser", release: {}, config: {}, uptime: function () { return (new Date - _ve) / 1e3 } }; function q2() { } function Qn() { Qn.init.call(this) } function PH(t) { return t._maxListeners === void 0 ? Qn.defaultMaxListeners : t._maxListeners } function aB(t, e, n, r) { var i, l; if (typeof n != "function") throw new TypeError('"listener" argument must be a function'); return (i = t._events) ? (i.newListener && (t.emit("newListener", e, n.listener || n), i = t._events), l = i[e]) : (i = t._events = new q2, t._eventsCount = 0), l ? (typeof l == "function" ? l = i[e] = r ? [n, l] : [l, n] : r ? l.unshift(n) : l.push(n), !l.warned && (r = PH(t)) && 0 < r && l.length > r && (l.warned = !0, (r = new Error("Possible EventEmitter memory leak detected. " + l.length + " " + e + " listeners added. Use emitter.setMaxListeners() to increase limit")).name = "MaxListenersExceededWarning", r.emitter = t, r.type = e, r.count = l.length, function (s) { typeof console.warn == "function" ? console.warn(s) : console.log(s) }(r))) : (l = i[e] = n, ++t._eventsCount), t } function oB(t, e, n) { var r = !1; function i() { t.removeListener(e, i), r || (r = !0, n.apply(t, arguments)) } return i.listener = n, i } function uB(t) { var e = this._events; if (e) { if (typeof (e = e[t]) == "function") return 1; if (e) return e.length } return 0 } function $c(t, e) { for (var n = new Array(e); e--;)n[e] = t[e]; return n } function As() { var t; Qn.call(this), this.__emitError = (t = this, function (e) { t.emit("error", e) }) } function cB() { return new As } q2.prototype = Object.create(null), (Qn.EventEmitter = Qn).usingDomains = !1, Qn.prototype.domain = void 0, Qn.prototype._events = void 0, Qn.prototype._maxListeners = void 0, Qn.defaultMaxListeners = 10, Qn.init = function () { this.domain = null, Qn.usingDomains && (void 0).active, this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = new q2, this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0 }, Qn.prototype.setMaxListeners = function (t) { if (typeof t != "number" || t < 0 || isNaN(t)) throw new TypeError('"n" argument must be a positive number'); return this._maxListeners = t, this }, Qn.prototype.getMaxListeners = function () { return PH(this) }, Qn.prototype.emit = function (t) { var e, n, r, i, l, s = t === "error"; if (l = this._events) s = s && l.error == null; else if (!s) return !1; if (a = this.domain, s) { if (s = arguments[1], a) return (s = s || new Error('Uncaught, unspecified "error" event')).domainEmitter = this, s.domain = a, s.domainThrown = !1, a.emit("error", s), !1; if (s instanceof Error) throw s; var a = new Error('Uncaught, unspecified "error" event. (' + s + ")"); throw a.context = s, a } if (!(e = l[t])) return !1; var o = typeof e == "function"; switch (n = arguments.length) { case 1: (function (u, c) { if (o) u.call(c); else for (var f = u.length, m = $c(u, f), d = 0; d < f; ++d)m[d].call(c) })(e, this); break; case 2: (function (u, c, f, m) { if (c) u.call(f, m); else for (var d = u.length, y = $c(u, d), _ = 0; _ < d; ++_)y[_].call(f, m) })(e, o, this, arguments[1]); break; case 3: (function (u, c, f, m, d) { if (c) u.call(f, m, d); else for (var y = u.length, _ = $c(u, y), S = 0; S < y; ++S)_[S].call(f, m, d) })(e, o, this, arguments[1], arguments[2]); break; case 4: (function (u, c, f, m, d, y) { if (c) u.call(f, m, d, y); else for (var _ = u.length, S = $c(u, _), w = 0; w < _; ++w)S[w].call(f, m, d, y) })(e, o, this, arguments[1], arguments[2], arguments[3]); break; default: for (r = new Array(n - 1), i = 1; i < n; i++)r[i - 1] = arguments[i]; (function (u, c, f) { if (o) u.apply(c, f); else for (var m = u.length, d = $c(u, m), y = 0; y < m; ++y)d[y].apply(c, f) })(e, this, r) }return !0 }, Qn.prototype.addListener = function (t, e) { return aB(this, t, e, !1) }, Qn.prototype.on = Qn.prototype.addListener, Qn.prototype.prependListener = function (t, e) { return aB(this, t, e, !0) }, Qn.prototype.once = function (t, e) { if (typeof e != "function") throw new TypeError('"listener" argument must be a function'); return this.on(t, oB(this, t, e)), this }, Qn.prototype.prependOnceListener = function (t, e) { if (typeof e != "function") throw new TypeError('"listener" argument must be a function'); return this.prependListener(t, oB(this, t, e)), this }, Qn.prototype.removeListener = function (t, e) { var n, r, i, l, s; if (typeof e != "function") throw new TypeError('"listener" argument must be a function'); if ((r = this._events) && (n = r[t])) { if (n === e || n.listener && n.listener === e) --this._eventsCount == 0 ? this._events = new q2 : (delete r[t], r.removeListener && this.emit("removeListener", t, n.listener || e)); else if (typeof n != "function") { for (i = -1, l = n.length; 0 < l--;)if (n[l] === e || n[l].listener && n[l].listener === e) { s = n[l].listener, i = l; break } if (i < 0) return this; if (n.length === 1) { if (n[0] = void 0, --this._eventsCount == 0) return this._events = new q2, this; delete r[t] } else (function (a, o) { for (var u = o, c = u + 1, f = a.length; c < f; u += 1, c += 1)a[u] = a[c]; a.pop() })(n, i); r.removeListener && this.emit("removeListener", t, s || e) } } return this }, Qn.prototype.removeAllListeners = function (t) { var e, n; if (n = this._events) if (n.removeListener) { if (arguments.length === 0) { for (var r, i = Object.keys(n), l = 0; l < i.length; ++l)(r = i[l]) !== "removeListener" && this.removeAllListeners(r); this.removeAllListeners("removeListener"), this._events = new q2, this._eventsCount = 0 } else if (typeof (e = n[t]) == "function") this.removeListener(t, e); else if (e) for (; this.removeListener(t, e[e.length - 1]), e[0];); } else arguments.length === 0 ? (this._events = new q2, this._eventsCount = 0) : n[t] && (--this._eventsCount == 0 ? this._events = new q2 : delete n[t]); return this }, Qn.prototype.listeners = function (t) { var e = this._events; return (e = e && e[t]) ? typeof e == "function" ? [e.listener || e] : function (n) { for (var r = new Array(n.length), i = 0; i < r.length; ++i)r[i] = n[i].listener || n[i]; return r }(e) : [] }, Qn.listenerCount = function (t, e) { return typeof t.listenerCount == "function" ? t.listenerCount(e) : uB.call(t, e) }, Qn.prototype.listenerCount = uB, Qn.prototype.eventNames = function () { return 0 < this._eventsCount ? Reflect.ownKeys(this._events) : [] }, (typeof Object.create == "function" ? function (t, e) { t.super_ = e, t.prototype = Object.create(e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }) } : function (t, e) { function n() { } t.super_ = e, n.prototype = e.prototype, t.prototype = new n, t.prototype.constructor = t })(As, Qn), As.prototype.add = function (t) { t.on("error", this.__emitError) }, As.prototype.remove = function (t) { t.removeListener("error", this.__emitError) }, As.prototype.bind = function (t) { var e = this.__emitError; return function () { var n = Array.prototype.slice.call(arguments); try { t.apply(null, n) } catch (r) { e(r) } } }, As.prototype.intercept = function (t) { var e = this.__emitError; return function (n) { if (n) e(n); else { var r = Array.prototype.slice.call(arguments, 1); try { t.apply(null, r) } catch (i) { e(i) } } } }, As.prototype.run = function (t) { var e = this.__emitError; try { t() } catch (n) { e(n) } return this }, As.prototype.dispose = function () { return this.removeAllListeners(), this }, As.prototype.enter = As.prototype.exit = function () { return this }; var X_, Eve = { Domain: As, createDomain: cB, create: cB }, bve = typeof setImmediate == "function", LH = FH; function FH(t) { oa.length || (jH(), zE = !0), oa[oa.length] = t } var oa = [], zE = !1, Za = 0, wve = 1024; function pB() { for (; Za < oa.length;) { var t = Za; if (Za += 1, oa[t].call(), wve < Za) { for (var e = 0, n = oa.length - Za; e < n; e++)oa[e] = oa[e + Za]; oa.length -= Za, Za = 0 } } oa.length = 0, Za = 0, zE = !1 } function jH() { var t = X2.domain; t && ((X_ = X_ || Eve).active = X2.domain = null), zE && bve ? setImmediate(pB) : X2.nextTick(pB), t && (X_.active = X2.domain = t) } FH.requestFlush = jH; var NE = [], Sve = function (t) { var e = NE.length ? NE.pop() : new UH; e.task = t, e.domain = X2.domain, LH(e) }; function UH() { this.task = null, this.domain = null } UH.prototype.call = function () { this.domain && this.domain.enter(); var t = !0; try { this.task.call(), t = !1, this.domain && this.domain.exit() } finally { t && LH.requestFlush(), this.task = null, this.domain = null, NE.push(this) } }; var Tve = ht(function (t) { function e() { var s = Array.prototype.slice.call(arguments); typeof s[0] == "function" && s[0].apply(null, s.splice(1)) } function n(s) { typeof setImmediate == "function" ? setImmediate(s) : X2 !== void 0 && X2.nextTick ? X2.nextTick(s) : setTimeout(s, 0) } function r(s, a, o) { var u, c = o ? n : e; return a = a || function () { }, l(s) ? s.length ? void (u = function (f) { return function (m) { var d, y; m ? (a.apply(null, arguments), a = function () { }) : (d = Array.prototype.slice.call(arguments, 1), (y = f.next()) ? d.push(u(y)) : d.push(a), c(function () { f.apply(null, d) })) } })(function (f) { var m = function (d) { function y() { return f.length && f[d].apply(null, arguments), y.next() } return y.next = function () { return d < f.length - 1 ? m(d + 1) : null }, y }; return m(0) }(s))() : a() : (o = new Error("First argument to waterfall must be an array of functions"), a(o)) } var i = Ci, l = Array.isArray || function (s) { return Object.prototype.toString.call(s) === "[object Array]" }; t.exports ? t.exports = r : i.waterfall = r }), fB = `
\r\xA0`, dB = "()[]{}%*-+~/#,:|.<>=!", MH = "string", $H = "whitespace", BH = "data", HH = "block-start", VH = "block-end", qH = "variable-start", zH = "variable-end", GH = "comment", JH = "left-paren", KH = "right-paren", XH = "left-bracket", WH = "right-bracket", YH = "left-curly", QH = "right-curly", ZH = "operator", eV = "comma", tV = "colon", nV = "tilde", rV = "pipe", iV = "float", lV = "boolean", CE = "none", sV = "symbol", aV = "regex"; function ll(t, e, n, r) { return { type: t, value: e, lineno: n, colno: r } } var xve = function () {
function t(n, r) { this.str = n, this.index = 0, this.len = n.length, this.lineno = 0, this.colno = 0, this.in_code = !1, n = (r = r || {}).tags || {}, this.tags = { BLOCK_START: n.blockStart || "{%", BLOCK_END: n.blockEnd || "%}", VARIABLE_START: n.variableStart || "{{", VARIABLE_END: n.variableEnd || "}}", COMMENT_START: n.commentStart || "{#", COMMENT_END: n.commentEnd || "#}" }, this.trimBlocks = !!r.trimBlocks, this.lstripBlocks = !!r.lstripBlocks } var e = t.prototype; return e.nextToken = function () {
var n = this.lineno, r = this.colno; if (this.in_code) {
var i = this.current(); if (this.isFinished()) return null; if (i === '"' || i === "'") return ll(MH, this._parseString(i), n, r); if (d = this._extract(fB)) return ll($H, d, n, r); if (d = (d = this._extractString(this.tags.BLOCK_END)) || this._extractString("-" + this.tags.BLOCK_END)) return this.in_code = !1, this.trimBlocks && ((i = this.current()) === `
`? this.forward() : i === "\r" && (this.forward(), (i = this.current()) === `
`? this.forward() : this.back())), ll(VH, d, n, r); if (d = (d = this._extractString(this.tags.VARIABLE_END)) || this._extractString("-" + this.tags.VARIABLE_END)) return this.in_code = !1, ll(zH, d, n, r); if (i === "r" && this.str.charAt(this.index + 1) === "/") { this.forwardN(2); for (var l = ""; !this.isFinished();) { if (this.current() === "/" && this.previous() !== "\\") { this.forward(); break } l += this.current(), this.forward() } for (var s = ["g", "i", "m", "y"], a = ""; !this.isFinished() && s.indexOf(this.current()) !== -1;)a += this.current(), this.forward(); return ll(aV, { body: l, flags: a }, n, r) } if (dB.indexOf(i) !== -1) { this.forward(); var o, u = ["==", "===", "!=", "!==", "<=", ">=", "//", "**"], c = i + this.current(); switch (Le.indexOf(u, c) !== -1 && (this.forward(), Le.indexOf(u, (i = c) + this.current()) !== -1) && (i = c + this.current(), this.forward()), i) { case "(": o = JH; break; case ")": o = KH; break; case "[": o = XH; break; case "]": o = WH; break; case "{": o = YH; break; case "}": o = QH; break; case ",": o = eV; break; case ":": o = tV; break; case "~": o = nV; break; case "|": o = rV; break; default: o = ZH }return ll(o, i, n, r) } if ((d = this._extractUntil(fB + dB)).match(/^[-+]?[0-9]+$/)) return this.current() === "." ? (this.forward(), u = this._extract("0123456789"), ll(iV, d + "." + u, n, r)) : ll("int", d, n, r); if (d.match(/^(true|false)$/)) return ll(lV, d, n, r); if (d === "none" || d === "null") return ll(CE, d, n, r); if (d) return ll(sV, d, n, r); throw new Error("Unexpected value while parsing: " + d)
} var f, m = this.tags.BLOCK_START.charAt(0) + this.tags.VARIABLE_START.charAt(0) + this.tags.COMMENT_START.charAt(0) + this.tags.COMMENT_END.charAt(0); if (this.isFinished()) return null; if (d = (d = this._extractString(this.tags.BLOCK_START + "-")) || this._extractString(this.tags.BLOCK_START)) return this.in_code = !0, ll(HH, d, n, r); if (d = (d = this._extractString(this.tags.VARIABLE_START + "-")) || this._extractString(this.tags.VARIABLE_START)) return this.in_code = !0, ll(qH, d, n, r); var d = "", y = !1; for (this._matches(this.tags.COMMENT_START) && (y = !0, d = this._extractString(this.tags.COMMENT_START)); (f = this._extractUntil(m)) !== null;) { if (d += f, (this._matches(this.tags.BLOCK_START) || this._matches(this.tags.VARIABLE_START) || this._matches(this.tags.COMMENT_START)) && !y) { if (this.lstripBlocks && this._matches(this.tags.BLOCK_START) && 0 < this.colno && this.colno <= d.length) { var _ = d.slice(-this.colno); if (/^\s+$/.test(_) && !(d = d.slice(0, -this.colno)).length) return this.nextToken() } break } if (this._matches(this.tags.COMMENT_END)) { if (!y) throw new Error("unexpected end of comment"); d += this._extractString(this.tags.COMMENT_END); break } d += this.current(), this.forward() } if (f === null && y) throw new Error("expected end of comment, got end of file"); return ll(y ? GH : BH, d, n, r)
}, e._parseString = function (n) {
this.forward(); for (var r = ""; !this.isFinished() && this.current() !== n;) {
var i = this.current(); if (i === "\\") switch (this.forward(), this.current()) {
case "n": r += `
`; break; case "t": r += " "; break; case "r": r += "\r"; break; default: r += this.current()
} else r += i; this.forward()
} return this.forward(), r
}, e._matches = function (n) { return this.index + n.length > this.len ? null : this.str.slice(this.index, this.index + n.length) === n }, e._extractString = function (n) { return this._matches(n) ? (this.forwardN(n.length), n) : null }, e._extractUntil = function (n) { return this._extractMatching(!0, n || "") }, e._extract = function (n) { return this._extractMatching(!1, n) }, e._extractMatching = function (n, r) { if (this.isFinished()) return null; var i = r.indexOf(this.current()); if (n && i === -1 || !n && i !== -1) { var l = this.current(); this.forward(); for (var s = r.indexOf(this.current()); (n && s === -1 || !n && s !== -1) && !this.isFinished();)l += this.current(), this.forward(), s = r.indexOf(this.current()); return l } return "" }, e._extractRegex = function (n) { return (n = this.currentStr().match(n)) ? (this.forwardN(n[0].length), n) : null }, e.isFinished = function () { return this.index >= this.len }, e.forwardN = function (n) { for (var r = 0; r < n; r++)this.forward() }, e.forward = function () {
this.index++, this.previous() === `
`? (this.lineno++, this.colno = 0) : this.colno++
}, e.backN = function (n) { for (var r = 0; r < n; r++)this.back() }, e.back = function () {
var n; this.index--, this.current() === `
`? (this.lineno--, n = this.src.lastIndexOf(`
`, this.index - 1), this.colno = n === -1 ? this.index : this.index - n) : this.colno--
}, e.current = function () { return this.isFinished() ? "" : this.str.charAt(this.index) }, e.currentStr = function () { return this.isFinished() ? "" : this.str.substr(this.index) }, e.previous = function () { return this.str.charAt(this.index - 1) }, t
}(), Ge = { lex: function (t, e) { return new xve(t, e) }, TOKEN_STRING: MH, TOKEN_WHITESPACE: $H, TOKEN_DATA: BH, TOKEN_BLOCK_START: HH, TOKEN_BLOCK_END: VH, TOKEN_VARIABLE_START: qH, TOKEN_VARIABLE_END: zH, TOKEN_COMMENT: GH, TOKEN_LEFT_PAREN: JH, TOKEN_RIGHT_PAREN: KH, TOKEN_LEFT_BRACKET: XH, TOKEN_RIGHT_BRACKET: WH, TOKEN_LEFT_CURLY: YH, TOKEN_RIGHT_CURLY: QH, TOKEN_OPERATOR: ZH, TOKEN_COMMA: eV, TOKEN_COLON: tV, TOKEN_TILDE: nV, TOKEN_PIPE: rV, TOKEN_INT: "int", TOKEN_FLOAT: iV, TOKEN_BOOLEAN: lV, TOKEN_NONE: CE, TOKEN_SYMBOL: sV, TOKEN_SPECIAL: "special", TOKEN_REGEX: aV }; function hB(t, e) { for (var n, r = 0; r < e.length; r++) { var i = e[r]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, typeof (n = function (l) { if (typeof l != "object" || l === null) return l; var s = l[Symbol.toPrimitive]; if (s === void 0) return String(l); if (typeof (s = s.call(l, "string")) != "object") return s; throw new TypeError("@@toPrimitive must return a primitive value.") }(i.key)) == "symbol" ? n : String(n), i) } } function GE(t, e, n) { return e && hB(t.prototype, e), n && hB(t, n), Object.defineProperty(t, "prototype", { writable: !1 }), t } function oV(t, e) { t.prototype = Object.create(e.prototype), uV(t.prototype.constructor = t, e) } function uV(t, e) { return (uV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } function cV(t, e, n) { n = n || {}, Le.keys(n).forEach(function (i) { n[i] = function (l, s) { return typeof l != "function" || typeof s != "function" ? s : function () { var a = this.parent, o = (this.parent = l, s.apply(this, arguments)); return this.parent = a, o } }(t.prototype[i], n[i]) }); var r = function (i) { function l() { return i.apply(this, arguments) || this } return oV(l, i), GE(l, [{ key: "typename", get: function () { return e } }]), l }(t); return Le._assign(r.prototype, n), r } var Ave = function () { function t() { this.init.apply(this, arguments) } return t.prototype.init = function () { }, t.extend = function (e, n) { return typeof e == "object" && (n = e, e = "anonymous"), cV(this, e, n) }, GE(t, [{ key: "typename", get: function () { return this.constructor.name } }]), t }(), Ove = function (t) { function e() { var n; return (n = t.call(this) || this).init.apply(n, arguments), n } return oV(e, t), e.prototype.init = function () { }, e.extend = function (n, r) { return typeof n == "object" && (r = n, n = "anonymous"), cV(this, n, r) }, GE(e, [{ key: "typename", get: function () { return this.constructor.name } }]), e }(Qn), o0 = { Obj: Ave, EmitterObj: Ove }; function mB(t, e) { for (var n, r = 0; r < e.length; r++) { var i = e[r]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, typeof (n = function (l) { if (typeof l != "object" || l === null) return l; var s = l[Symbol.toPrimitive]; if (s === void 0) return String(l); if (typeof (s = s.call(l, "string")) != "object") return s; throw new TypeError("@@toPrimitive must return a primitive value.") }(i.key)) == "symbol" ? n : String(n), i) } } function JE(t, e, n) { return e && mB(t.prototype, e), n && mB(t, n), Object.defineProperty(t, "prototype", { writable: !1 }), t } function tp(t, e) { t.prototype = Object.create(e.prototype), pV(t.prototype.constructor = t, e) } function pV(t, e) { return (pV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } function yB(t, e, n) { t instanceof e && n.push(t), t instanceof lr && t.findAll(e, n) } var lr = function (t) { function e() { return t.apply(this, arguments) || this } tp(e, t); var n = e.prototype; return n.init = function (r, i) { for (var l = arguments, s = this, a = arguments.length, o = new Array(2 < a ? a - 2 : 0), u = 2; u < a; u++)o[u - 2] = arguments[u]; this.lineno = r, this.colno = i, this.fields.forEach(function (c, f) { s[c] = f = (f = l[f + 2]) === void 0 ? null : f }) }, n.findAll = function (r, i) { var l = this; return i = i || [], this instanceof ha ? this.children.forEach(function (s) { return yB(s, r, i) }) : this.fields.forEach(function (s) { return yB(l[s], r, i) }), i }, n.iterFields = function (r) { var i = this; this.fields.forEach(function (l) { r(i[l], l) }) }, e }(o0.Obj), KE = function (t) { function e() { return t.apply(this, arguments) || this } return tp(e, t), JE(e, [{ key: "typename", get: function () { return "Value" } }, { key: "fields", get: function () { return ["value"] } }]), e }(lr), ha = function (t) { function e() { return t.apply(this, arguments) || this } tp(e, t); var n = e.prototype; return n.init = function (r, i, l) { t.prototype.init.call(this, r, i, l || []) }, n.addChild = function (r) { this.children.push(r) }, JE(e, [{ key: "typename", get: function () { return "NodeList" } }, { key: "fields", get: function () { return ["children"] } }]), e }(lr), Nve = ha.extend("Root"), fV = KE.extend("Literal"), Cve = KE.extend("Symbol"), Rve = ha.extend("Group"), Ive = ha.extend("Array"), kve = lr.extend("Pair", { fields: ["key", "value"] }), dV = ha.extend("Dict"), Dve = lr.extend("LookupVal", { fields: ["target", "val"] }), hV = lr.extend("If", { fields: ["cond", "body", "else_"] }), Pve = hV.extend("IfAsync"), Lve = lr.extend("InlineIf", { fields: ["cond", "body", "else_"] }), XE = lr.extend("For", { fields: ["arr", "name", "body", "else_"] }), Fve = XE.extend("AsyncEach"), jve = XE.extend("AsyncAll"), mV = lr.extend("Macro", { fields: ["name", "args", "body"] }), Uve = mV.extend("Caller"), Mve = lr.extend("Import", { fields: ["template", "target", "withContext"] }), $ve = function (t) { function e() { return t.apply(this, arguments) || this } return tp(e, t), e.prototype.init = function (n, r, i, l, s) { t.prototype.init.call(this, n, r, i, l || new ha, s) }, JE(e, [{ key: "typename", get: function () { return "FromImport" } }, { key: "fields", get: function () { return ["template", "names", "withContext"] } }]), e }(lr), yV = lr.extend("FunCall", { fields: ["name", "args"] }), gV = yV.extend("Filter"), Bve = gV.extend("FilterAsync", { fields: ["name", "args", "symbol"] }), Hve = dV.extend("KeywordArgs"), Vve = lr.extend("Block", { fields: ["name", "body"] }), qve = lr.extend("Super", { fields: ["blockName", "symbol"] }), zve = lr.extend("TemplateRef", { fields: ["template"] }).extend("Extends"), Gve = lr.extend("Include", { fields: ["template", "ignoreMissing"] }), Jve = lr.extend("Set", { fields: ["targets", "value"] }), Kve = lr.extend("Switch", { fields: ["expr", "cases", "default"] }), Xve = lr.extend("Case", { fields: ["cond", "body"] }), Wve = ha.extend("Output"), Yve = lr.extend("Capture", { fields: ["body"] }), Qve = fV.extend("TemplateData"), WE = lr.extend("UnaryOp", { fields: ["target"] }), Ll = lr.extend("BinOp", { fields: ["left", "right"] }), Zve = Ll.extend("In"), e_e = Ll.extend("Is"), t_e = Ll.extend("Or"), n_e = Ll.extend("And"), r_e = WE.extend("Not"), i_e = Ll.extend("Add"), l_e = Ll.extend("Concat"), s_e = Ll.extend("Sub"), a_e = Ll.extend("Mul"), o_e = Ll.extend("Div"), u_e = Ll.extend("FloorDiv"), c_e = Ll.extend("Mod"), p_e = Ll.extend("Pow"), f_e = WE.extend("Neg"), d_e = WE.extend("Pos"), h_e = lr.extend("Compare", { fields: ["expr", "ops"] }), m_e = lr.extend("CompareOperand", { fields: ["expr", "type"] }), RE = lr.extend("CallExtension", { init: function (t, e, n, r) { this.parent(), this.extName = t.__name || t, this.prop = e, this.args = n || new ha, this.contentArgs = r || [], this.autoescape = t.autoescape }, fields: ["extName", "prop", "args", "contentArgs"] }), y_e = RE.extend("CallExtensionAsync"); function H1(t, e, n) {
var r = t.split(`
`); r.forEach(function (i, l) {
i && (n && 0 < l || !n) && process.stdout.write(" ".repeat(e)), l = l === r.length - 1 ? "" : `
`, process.stdout.write(i + l)
})
} var X = {
Node: lr, Root: Nve, NodeList: ha, Value: KE, Literal: fV, Symbol: Cve, Group: Rve, Array: Ive, Pair: kve, Dict: dV, Output: Wve, Capture: Yve, TemplateData: Qve, If: hV, IfAsync: Pve, InlineIf: Lve, For: XE, AsyncEach: Fve, AsyncAll: jve, Macro: mV, Caller: Uve, Import: Mve, FromImport: $ve, FunCall: yV, Filter: gV, FilterAsync: Bve, KeywordArgs: Hve, Block: Vve, Super: qve, Extends: zve, Include: Gve, Set: Jve, Switch: Kve, Case: Xve, LookupVal: Dve, BinOp: Ll, In: Zve, Is: e_e, Or: t_e, And: n_e, Not: r_e, Add: i_e, Concat: l_e, Sub: s_e, Mul: a_e, Div: o_e, FloorDiv: u_e, Mod: c_e, Pow: p_e, Neg: f_e, Pos: d_e, Compare: h_e, CompareOperand: m_e, CallExtension: RE, CallExtensionAsync: y_e, printNodes: function t(e, n) {
var r, i; n = n || 0, H1(e.typename + ": ", n), e instanceof ha ? (H1(`
`), e.children.forEach(function (l) { t(l, n + 2) })) : e instanceof RE ? (H1(e.extName + "." + e.prop + `
`), e.args && t(e.args, n + 2), e.contentArgs && e.contentArgs.forEach(function (l) { t(l, n + 2) })) : (r = [], i = null, e.iterFields(function (l, s) { l instanceof lr ? r.push([s, l]) : (i = i || {})[s] = l }), i ? H1(JSON.stringify(i, null, 2) + `
`, null, !0) : H1(`
`), r.forEach(function (a) { var s = a[0], a = a[1]; H1("[" + s + "] =>", n + 2), t(a, n + 4) }))
}
}; function vV(t, e) { return (vV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } X.Node, X.Root, X.NodeList, X.Value, X.Literal, X.Group, X.Pair, X.Dict, X.Output, X.Capture, X.TemplateData, X.If, X.IfAsync, X.InlineIf, X.For, X.AsyncEach, X.AsyncAll, X.Macro, X.Caller, X.Import, X.FromImport, X.FunCall, X.Filter, X.FilterAsync, X.KeywordArgs, X.Block, X.Super, X.Extends, X.Include, X.Switch, X.Case, X.LookupVal, X.BinOp, X.In, X.Is, X.Or, X.And, X.Not, X.Add, X.Concat, X.Sub, X.Mul, X.Div, X.FloorDiv, X.Mod, X.Pow, X.Neg, X.Pos, X.Compare, X.CompareOperand, X.CallExtension, X.CallExtensionAsync, X.printNodes; var gB = function (t) { var e; function n() { return t.apply(this, arguments) || this } e = t, (r = n).prototype = Object.create(e.prototype), vV(r.prototype.constructor = r, e); var r = n.prototype; return r.init = function (i) { this.tokens = i, this.peeked = null, this.breakOnBlocks = null, this.dropLeadingWhitespace = !1, this.extensions = [] }, r.nextToken = function (i) { var l; if (this.peeked) { if (i || this.peeked.type !== Ge.TOKEN_WHITESPACE) return l = this.peeked, this.peeked = null, l; this.peeked = null } if (l = this.tokens.nextToken(), !i) for (; l && l.type === Ge.TOKEN_WHITESPACE;)l = this.tokens.nextToken(); return l }, r.peekToken = function () { return this.peeked = this.peeked || this.nextToken(), this.peeked }, r.pushToken = function (i) { if (this.peeked) throw new Error("pushToken: can only push one token on between reads"); this.peeked = i }, r.error = function (i, l, s) { var a; return l !== void 0 && s !== void 0 || (l = (a = this.peekToken() || {}).lineno, s = a.colno), l !== void 0 && (l += 1), s !== void 0 && (s += 1), new Le.TemplateError(i, l, s) }, r.fail = function (i, l, s) { throw this.error(i, l, s) }, r.skip = function (i) { var l = this.nextToken(); return !(!l || l.type !== i) || (this.pushToken(l), !1) }, r.expect = function (i) { var l = this.nextToken(); return l.type !== i && this.fail("expected " + i + ", got " + l.type, l.lineno, l.colno), l }, r.skipValue = function (i, l) { var s = this.nextToken(); return !(!s || s.type !== i || s.value !== l) || (this.pushToken(s), !1) }, r.skipSymbol = function (i) { return this.skipValue(Ge.TOKEN_SYMBOL, i) }, r.advanceAfterBlockEnd = function (i) { var l; return i || ((l = this.peekToken()) || this.fail("unexpected end of file"), l.type !== Ge.TOKEN_SYMBOL && this.fail("advanceAfterBlockEnd: expected symbol token or explicit name to be passed"), i = this.nextToken().value), (l = this.nextToken()) && l.type === Ge.TOKEN_BLOCK_END ? l.value.charAt(0) === "-" && (this.dropLeadingWhitespace = !0) : this.fail("expected block end in " + i + " statement"), l }, r.advanceAfterVariableEnd = function () { var i = this.nextToken(); i && i.type === Ge.TOKEN_VARIABLE_END ? this.dropLeadingWhitespace = i.value.charAt(i.value.length - this.tokens.tags.VARIABLE_END.length - 1) === "-" : (this.pushToken(i), this.fail("expected variable end")) }, r.parseFor = function () { var i, l, s = this.peekToken(); if (this.skipSymbol("for") ? (i = new X.For(s.lineno, s.colno), l = "endfor") : this.skipSymbol("asyncEach") ? (i = new X.AsyncEach(s.lineno, s.colno), l = "endeach") : this.skipSymbol("asyncAll") ? (i = new X.AsyncAll(s.lineno, s.colno), l = "endall") : this.fail("parseFor: expected for{Async}", s.lineno, s.colno), i.name = this.parsePrimary(), i.name instanceof X.Symbol || this.fail("parseFor: variable name expected for loop"), this.peekToken().type === Ge.TOKEN_COMMA) { var a = i.name; for (i.name = new X.Array(a.lineno, a.colno), i.name.addChild(a); this.skip(Ge.TOKEN_COMMA);) { var o = this.parsePrimary(); i.name.addChild(o) } } return this.skipSymbol("in") || this.fail('parseFor: expected "in" keyword for loop', s.lineno, s.colno), i.arr = this.parseExpression(), this.advanceAfterBlockEnd(s.value), i.body = this.parseUntilBlocks(l, "else"), this.skipSymbol("else") && (this.advanceAfterBlockEnd("else"), i.else_ = this.parseUntilBlocks(l)), this.advanceAfterBlockEnd(), i }, r.parseMacro = function () { var i = this.peekToken(), s = (this.skipSymbol("macro") || this.fail("expected macro"), this.parsePrimary(!0)), l = this.parseSignature(), s = new X.Macro(i.lineno, i.colno, s, l); return this.advanceAfterBlockEnd(i.value), s.body = this.parseUntilBlocks("endmacro"), this.advanceAfterBlockEnd(), s }, r.parseCall = function () { var i = this.peekToken(), o = (this.skipSymbol("call") || this.fail("expected call"), this.parseSignature(!0) || new X.NodeList), l = this.parsePrimary(), s = (this.advanceAfterBlockEnd(i.value), this.parseUntilBlocks("endcall")), a = (this.advanceAfterBlockEnd(), new X.Symbol(i.lineno, i.colno, "caller")), o = new X.Caller(i.lineno, i.colno, a, o, s); return (s = l.args.children)[s.length - 1] instanceof X.KeywordArgs || s.push(new X.KeywordArgs), s[s.length - 1].addChild(new X.Pair(i.lineno, i.colno, a, o)), new X.Output(i.lineno, i.colno, [l]) }, r.parseWithContext = function () { var i = this.peekToken(), l = null; return this.skipSymbol("with") ? l = !0 : this.skipSymbol("without") && (l = !1), l === null || this.skipSymbol("context") || this.fail("parseFrom: expected context after with/without", i.lineno, i.colno), l }, r.parseImport = function () { var i = this.peekToken(), a = (this.skipSymbol("import") || this.fail("parseImport: expected import", i.lineno, i.colno), this.parseExpression()), l = (this.skipSymbol("as") || this.fail('parseImport: expected "as" keyword', i.lineno, i.colno), this.parseExpression()), s = this.parseWithContext(), a = new X.Import(i.lineno, i.colno, a, l, s); return this.advanceAfterBlockEnd(i.value), a }, r.parseFrom = function () { var i = this.peekToken(), l = (this.skipSymbol("from") || this.fail("parseFrom: expected from"), this.parseExpression()); this.skipSymbol("import") || this.fail("parseFrom: expected import", i.lineno, i.colno); for (var s, a = new X.NodeList; ;) { var o, u = this.peekToken(); if (u.type === Ge.TOKEN_BLOCK_END) { a.children.length || this.fail("parseFrom: Expected at least one import name", i.lineno, i.colno), u.value.charAt(0) === "-" && (this.dropLeadingWhitespace = !0), this.nextToken(); break } 0 < a.children.length && !this.skip(Ge.TOKEN_COMMA) && this.fail("parseFrom: expected comma", i.lineno, i.colno), (u = this.parsePrimary()).value.charAt(0) === "_" && this.fail("parseFrom: names starting with an underscore cannot be imported", u.lineno, u.colno), this.skipSymbol("as") ? (o = this.parsePrimary(), a.addChild(new X.Pair(u.lineno, u.colno, u, o))) : a.addChild(u), s = this.parseWithContext() } return new X.FromImport(i.lineno, i.colno, l, a, s) }, r.parseBlock = function () { var i = this.peekToken(), l = (this.skipSymbol("block") || this.fail("parseBlock: expected block", i.lineno, i.colno), new X.Block(i.lineno, i.colno)); return l.name = this.parsePrimary(), l.name instanceof X.Symbol || this.fail("parseBlock: variable name expected", i.lineno, i.colno), this.advanceAfterBlockEnd(i.value), l.body = this.parseUntilBlocks("endblock"), this.skipSymbol("endblock"), this.skipSymbol(l.name.value), (i = this.peekToken()) || this.fail("parseBlock: expected endblock, got end of file"), this.advanceAfterBlockEnd(i.value), l }, r.parseExtends = function () { var i = "extends", l = this.peekToken(); return this.skipSymbol(i) || this.fail("parseTemplateRef: expected " + i), (i = new X.Extends(l.lineno, l.colno)).template = this.parseExpression(), this.advanceAfterBlockEnd(l.value), i }, r.parseInclude = function () { var i = "include", l = this.peekToken(); return this.skipSymbol(i) || this.fail("parseInclude: expected " + i), (i = new X.Include(l.lineno, l.colno)).template = this.parseExpression(), this.skipSymbol("ignore") && this.skipSymbol("missing") && (i.ignoreMissing = !0), this.advanceAfterBlockEnd(l.value), i }, r.parseIf = function () { var i, l = this.peekToken(); switch (this.skipSymbol("if") || this.skipSymbol("elif") || this.skipSymbol("elseif") ? i = new X.If(l.lineno, l.colno) : this.skipSymbol("ifAsync") ? i = new X.IfAsync(l.lineno, l.colno) : this.fail("parseIf: expected if, elif, or elseif", l.lineno, l.colno), i.cond = this.parseExpression(), this.advanceAfterBlockEnd(l.value), i.body = this.parseUntilBlocks("elif", "elseif", "else", "endif"), (l = this.peekToken()) && l.value) { case "elseif": case "elif": i.else_ = this.parseIf(); break; case "else": this.advanceAfterBlockEnd(), i.else_ = this.parseUntilBlocks("endif"), this.advanceAfterBlockEnd(); break; case "endif": i.else_ = null, this.advanceAfterBlockEnd(); break; default: this.fail("parseIf: expected elif, else, or endif, got end of file") }return i }, r.parseSet = function () { var i = this.peekToken(); this.skipSymbol("set") || this.fail("parseSet: expected set", i.lineno, i.colno); for (var l, s = new X.Set(i.lineno, i.colno, []); (l = this.parsePrimary()) && (s.targets.push(l), this.skip(Ge.TOKEN_COMMA));); return this.skipValue(Ge.TOKEN_OPERATOR, "=") ? (s.value = this.parseExpression(), this.advanceAfterBlockEnd(i.value)) : this.skip(Ge.TOKEN_BLOCK_END) ? (s.body = new X.Capture(i.lineno, i.colno, this.parseUntilBlocks("endset")), s.value = null, this.advanceAfterBlockEnd()) : this.fail("parseSet: expected = or block end in set tag", i.lineno, i.colno), s }, r.parseSwitch = function () { var i = "switch", l = "endswitch", s = "case", a = "default", o = this.peekToken(), u = (this.skipSymbol(i) || this.skipSymbol(s) || this.skipSymbol(a) || this.fail('parseSwitch: expected "switch," "case" or "default"', o.lineno, o.colno), this.parseExpression()); this.advanceAfterBlockEnd(i), this.parseUntilBlocks(s, a, l); var c, f = this.peekToken(), m = []; do { this.skipSymbol(s); var d = this.parseExpression(), y = (this.advanceAfterBlockEnd(i), this.parseUntilBlocks(s, a, l)) } while (m.push(new X.Case(f.line, f.col, d, y)), (f = this.peekToken()) && f.value === s); switch (f.value) { case a: this.advanceAfterBlockEnd(), c = this.parseUntilBlocks(l), this.advanceAfterBlockEnd(); break; case l: this.advanceAfterBlockEnd(); break; default: this.fail('parseSwitch: expected "case," "default" or "endswitch," got EOF.') }return new X.Switch(o.lineno, o.colno, u, m, c) }, r.parseStatement = function () { var i = this.peekToken(); if (i.type !== Ge.TOKEN_SYMBOL && this.fail("tag name expected", i.lineno, i.colno), this.breakOnBlocks && Le.indexOf(this.breakOnBlocks, i.value) !== -1) return null; switch (i.value) { case "raw": return this.parseRaw(); case "verbatim": return this.parseRaw("verbatim"); case "if": case "ifAsync": return this.parseIf(); case "for": case "asyncEach": case "asyncAll": return this.parseFor(); case "block": return this.parseBlock(); case "extends": return this.parseExtends(); case "include": return this.parseInclude(); case "set": return this.parseSet(); case "macro": return this.parseMacro(); case "call": return this.parseCall(); case "import": return this.parseImport(); case "from": return this.parseFrom(); case "filter": return this.parseFilterStatement(); case "switch": return this.parseSwitch(); default: if (this.extensions.length) for (var l = 0; l < this.extensions.length; l++) { var s = this.extensions[l]; if (Le.indexOf(s.tags || [], i.value) !== -1) return s.parse(this, X, Ge) } this.fail("unknown block tag: " + i.value, i.lineno, i.colno) } }, r.parseRaw = function (i) { for (var l = "end" + (i = i || "raw"), s = new RegExp("([\\s\\S]*?){%\\s*(" + i + "|" + l + ")\\s*(?=%})%}"), a = 1, o = "", u = this.advanceAfterBlockEnd(); (m = this.tokens._extractRegex(s)) && 0 < a;) { var c = m[0], f = m[1], m = m[2]; m === i ? a += 1 : m === l && --a, a === 0 ? (o += f, this.tokens.backN(c.length - f.length)) : o += c } return new X.Output(u.lineno, u.colno, [new X.TemplateData(u.lineno, u.colno, o)]) }, r.parsePostfix = function (i) { for (var l, s = this.peekToken(); s;) { if (s.type === Ge.TOKEN_LEFT_PAREN) i = new X.FunCall(s.lineno, s.colno, i, this.parseSignature()); else if (s.type === Ge.TOKEN_LEFT_BRACKET) 1 < (l = this.parseAggregate()).children.length && this.fail("invalid index"), i = new X.LookupVal(s.lineno, s.colno, i, l.children[0]); else { if (s.type !== Ge.TOKEN_OPERATOR || s.value !== ".") break; this.nextToken(); var a = this.nextToken(); a.type !== Ge.TOKEN_SYMBOL && this.fail("expected name as lookup value, got " + a.value, a.lineno, a.colno), l = new X.Literal(a.lineno, a.colno, a.value), i = new X.LookupVal(s.lineno, s.colno, i, l) } s = this.peekToken() } return i }, r.parseExpression = function () { return this.parseInlineIf() }, r.parseInlineIf = function () { var i, l, s = this.parseOr(); return this.skipSymbol("if") && (i = this.parseOr(), l = s, (s = new X.InlineIf(s.lineno, s.colno)).body = l, s.cond = i, this.skipSymbol("else") ? s.else_ = this.parseOr() : s.else_ = null), s }, r.parseOr = function () { for (var l = this.parseAnd(); this.skipSymbol("or");)var i = this.parseAnd(), l = new X.Or(l.lineno, l.colno, l, i); return l }, r.parseAnd = function () { for (var l = this.parseNot(); this.skipSymbol("and");)var i = this.parseNot(), l = new X.And(l.lineno, l.colno, l, i); return l }, r.parseNot = function () { var i = this.peekToken(); return this.skipSymbol("not") ? new X.Not(i.lineno, i.colno, this.parseNot()) : this.parseIn() }, r.parseIn = function () { for (var i = this.parseIs(); ;) { var l = this.nextToken(); if (!l) break; var s = l.type === Ge.TOKEN_SYMBOL && l.value === "not"; if (s || this.pushToken(l), !this.skipSymbol("in")) { s && this.pushToken(l); break } l = this.parseIs(), i = new X.In(i.lineno, i.colno, i, l), s && (i = new X.Not(i.lineno, i.colno, i)) } return i }, r.parseIs = function () { var i, l, s = this.parseCompare(); return this.skipSymbol("is") && (i = this.skipSymbol("not"), l = this.parseCompare(), s = new X.Is(s.lineno, s.colno, s, l), i) ? new X.Not(s.lineno, s.colno, s) : s }, r.parseCompare = function () { for (var i = ["==", "===", "!=", "!==", "<", ">", "<=", ">="], l = this.parseConcat(), s = []; ;) { var a = this.nextToken(); if (!a) break; if (i.indexOf(a.value) === -1) { this.pushToken(a); break } s.push(new X.CompareOperand(a.lineno, a.colno, this.parseConcat(), a.value)) } return s.length ? new X.Compare(s[0].lineno, s[0].colno, l, s) : l }, r.parseConcat = function () { for (var l = this.parseAdd(); this.skipValue(Ge.TOKEN_TILDE, "~");)var i = this.parseAdd(), l = new X.Concat(l.lineno, l.colno, l, i); return l }, r.parseAdd = function () { for (var l = this.parseSub(); this.skipValue(Ge.TOKEN_OPERATOR, "+");)var i = this.parseSub(), l = new X.Add(l.lineno, l.colno, l, i); return l }, r.parseSub = function () { for (var l = this.parseMul(); this.skipValue(Ge.TOKEN_OPERATOR, "-");)var i = this.parseMul(), l = new X.Sub(l.lineno, l.colno, l, i); return l }, r.parseMul = function () { for (var l = this.parseDiv(); this.skipValue(Ge.TOKEN_OPERATOR, "*");)var i = this.parseDiv(), l = new X.Mul(l.lineno, l.colno, l, i); return l }, r.parseDiv = function () { for (var l = this.parseFloorDiv(); this.skipValue(Ge.TOKEN_OPERATOR, "/");)var i = this.parseFloorDiv(), l = new X.Div(l.lineno, l.colno, l, i); return l }, r.parseFloorDiv = function () { for (var l = this.parseMod(); this.skipValue(Ge.TOKEN_OPERATOR, "//");)var i = this.parseMod(), l = new X.FloorDiv(l.lineno, l.colno, l, i); return l }, r.parseMod = function () { for (var l = this.parsePow(); this.skipValue(Ge.TOKEN_OPERATOR, "%");)var i = this.parsePow(), l = new X.Mod(l.lineno, l.colno, l, i); return l }, r.parsePow = function () { for (var l = this.parseUnary(); this.skipValue(Ge.TOKEN_OPERATOR, "**");)var i = this.parseUnary(), l = new X.Pow(l.lineno, l.colno, l, i); return l }, r.parseUnary = function (i) { var l = this.peekToken(), l = this.skipValue(Ge.TOKEN_OPERATOR, "-") ? new X.Neg(l.lineno, l.colno, this.parseUnary(!0)) : this.skipValue(Ge.TOKEN_OPERATOR, "+") ? new X.Pos(l.lineno, l.colno, this.parseUnary(!0)) : this.parsePrimary(); return i ? l : this.parseFilter(l) }, r.parsePrimary = function (i) { var l, s = this.nextToken(); if (s ? s.type === Ge.TOKEN_STRING ? l = s.value : s.type === Ge.TOKEN_INT ? l = parseInt(s.value, 10) : s.type === Ge.TOKEN_FLOAT ? l = parseFloat(s.value) : s.type === Ge.TOKEN_BOOLEAN ? s.value === "true" ? l = !0 : s.value === "false" ? l = !1 : this.fail("invalid boolean: " + s.value, s.lineno, s.colno) : s.type === Ge.TOKEN_NONE ? l = null : s.type === Ge.TOKEN_REGEX && (l = new RegExp(s.value.body, s.value.flags)) : this.fail("expected expression, got end of file"), l = l !== void 0 ? new X.Literal(s.lineno, s.colno, l) : s.type === Ge.TOKEN_SYMBOL ? new X.Symbol(s.lineno, s.colno, s.value) : (this.pushToken(s), this.parseAggregate()), l = i ? l : this.parsePostfix(l)) return l; throw this.error("unexpected token: " + s.value, s.lineno, s.colno) }, r.parseFilterName = function () { for (var i = this.expect(Ge.TOKEN_SYMBOL), l = i.value; this.skipValue(Ge.TOKEN_OPERATOR, ".");)l += "." + this.expect(Ge.TOKEN_SYMBOL).value; return new X.Symbol(i.lineno, i.colno, l) }, r.parseFilterArgs = function (i) { return this.peekToken().type === Ge.TOKEN_LEFT_PAREN ? this.parsePostfix(i).args.children : [] }, r.parseFilter = function (i) { for (; this.skip(Ge.TOKEN_PIPE);) { var l = this.parseFilterName(); i = new X.Filter(l.lineno, l.colno, l, new X.NodeList(l.lineno, l.colno, [i].concat(this.parseFilterArgs(i)))) } return i }, r.parseFilterStatement = function () { var s = this.peekToken(), i = (this.skipSymbol("filter") || this.fail("parseFilterStatement: expected filter"), this.parseFilterName()), l = this.parseFilterArgs(i), s = (this.advanceAfterBlockEnd(s.value), new X.Capture(i.lineno, i.colno, this.parseUntilBlocks("endfilter"))), s = (this.advanceAfterBlockEnd(), new X.Filter(i.lineno, i.colno, i, new X.NodeList(i.lineno, i.colno, [s].concat(l)))); return new X.Output(i.lineno, i.colno, [s]) }, r.parseAggregate = function () { var i, l = this.nextToken(); switch (l.type) { case Ge.TOKEN_LEFT_PAREN: i = new X.Group(l.lineno, l.colno); break; case Ge.TOKEN_LEFT_BRACKET: i = new X.Array(l.lineno, l.colno); break; case Ge.TOKEN_LEFT_CURLY: i = new X.Dict(l.lineno, l.colno); break; default: return null }for (; ;) { var s, a = this.peekToken().type; if (a === Ge.TOKEN_RIGHT_PAREN || a === Ge.TOKEN_RIGHT_BRACKET || a === Ge.TOKEN_RIGHT_CURLY) { this.nextToken(); break } 0 < i.children.length && (this.skip(Ge.TOKEN_COMMA) || this.fail("parseAggregate: expected comma after expression", l.lineno, l.colno)), i instanceof X.Dict ? (a = this.parsePrimary(), this.skip(Ge.TOKEN_COLON) || this.fail("parseAggregate: expected colon after dict key", l.lineno, l.colno), s = this.parseExpression(), i.addChild(new X.Pair(a.lineno, a.colno, a, s))) : (a = this.parseExpression(), i.addChild(a)) } return i }, r.parseSignature = function (i, l) { var s = this.peekToken(); if (!l && s.type !== Ge.TOKEN_LEFT_PAREN) { if (i) return null; this.fail("expected arguments", s.lineno, s.colno) } s.type === Ge.TOKEN_LEFT_PAREN && (s = this.nextToken()); for (var a, o = new X.NodeList(s.lineno, s.colno), u = new X.KeywordArgs(s.lineno, s.colno), c = !1; ;) { if (s = this.peekToken(), !l && s.type === Ge.TOKEN_RIGHT_PAREN) { this.nextToken(); break } if (l && s.type === Ge.TOKEN_BLOCK_END) break; c && !this.skip(Ge.TOKEN_COMMA) ? this.fail("parseSignature: expected comma after expression", s.lineno, s.colno) : (a = this.parseExpression(), this.skipValue(Ge.TOKEN_OPERATOR, "=") ? u.addChild(new X.Pair(a.lineno, a.colno, a, this.parseExpression())) : o.addChild(a)), c = !0 } return u.children.length && o.addChild(u), o }, r.parseUntilBlocks = function () { for (var i = this.breakOnBlocks, l = arguments.length, s = new Array(l), a = 0; a < l; a++)s[a] = arguments[a]; this.breakOnBlocks = s; var o = this.parse(); return this.breakOnBlocks = i, o }, r.parseNodes = function () { for (var i, l = []; i = this.nextToken();)if (i.type === Ge.TOKEN_DATA) { var s = i.value, a = this.peekToken(), o = a && a.value; this.dropLeadingWhitespace && (s = s.replace(/^\s*/, ""), this.dropLeadingWhitespace = !1), a && (a.type === Ge.TOKEN_BLOCK_START && o.charAt(o.length - 1) === "-" || a.type === Ge.TOKEN_VARIABLE_START && o.charAt(this.tokens.tags.VARIABLE_START.length) === "-" || a.type === Ge.TOKEN_COMMENT && o.charAt(this.tokens.tags.COMMENT_START.length) === "-") && (s = s.replace(/\s*$/, "")), l.push(new X.Output(i.lineno, i.colno, [new X.TemplateData(i.lineno, i.colno, s)])) } else if (i.type === Ge.TOKEN_BLOCK_START) { if (this.dropLeadingWhitespace = !1, !(a = this.parseStatement())) break; l.push(a) } else i.type === Ge.TOKEN_VARIABLE_START ? (o = this.parseExpression(), this.dropLeadingWhitespace = !1, this.advanceAfterVariableEnd(), l.push(new X.Output(i.lineno, i.colno, [o]))) : i.type === Ge.TOKEN_COMMENT ? this.dropLeadingWhitespace = i.value.charAt(i.value.length - this.tokens.tags.COMMENT_END.length - 1) === "-" : this.fail("Unexpected token at top-level: " + i.type, i.lineno, i.colno); return l }, r.parse = function () { return new X.NodeList(0, 0, this.parseNodes()) }, r.parseAsRoot = function () { return new X.Root(0, 0, this.parseNodes()) }, n }(o0.Obj), g_e = { parse: function (t, e, n) { return t = new gB(Ge.lex(t, n)), e !== void 0 && (t.extensions = e), t.parseAsRoot() }, Parser: gB }, v_e = 0; function _V() { return "hole_" + v_e++ } function W_(t, e) { for (var n = null, r = 0; r < t.length; r++) { var i = e(t[r]); i !== t[r] && ((n = n || t.slice())[r] = i) } return n || t } function W2(t, e, n) { if (!(t instanceof X.Node)) return t; if (!n) { var r = e(t); if (r && r !== t) return r } var i; return t instanceof X.NodeList ? (r = W_(t.children, function (l) { return W2(l, e, n) })) !== t.children && (t = new X[t.typename](t.lineno, t.colno, r)) : t instanceof X.CallExtension ? (r = W2(t.args, e, n), i = W_(t.contentArgs, function (l) { return W2(l, e, n) }), r === t.args && i === t.contentArgs || (t = new X[t.typename](t.extName, t.prop, r, i))) : (i = W_(r = t.fields.map(function (l) { return t[l] }), function (l) { return W2(l, e, n) })) !== r && (t = new X[t.typename](t.lineno, t.colno), i.forEach(function (l, s) { t[t.fields[s]] = l })), n && e(t) || t } function IE(t, e) { return W2(t, e, !0) } function Bc(t, e, n) { var r = [], i = IE(n ? t[n] : t, function (l) { var s; return l instanceof X.Block ? l : ((l instanceof X.Filter && Le.indexOf(e, l.name.value) !== -1 || l instanceof X.CallExtensionAsync) && (s = new X.Symbol(l.lineno, l.colno, _V()), r.push(new X.FilterAsync(l.lineno, l.colno, l.name, l.args, s))), s) }); return n ? t[n] = i : t = i, r.length ? (r.push(t), new X.NodeList(t.lineno, t.colno, r)) : t } function __e(t, e) { return function (n) { return IE(n, function (r) { if (r instanceof X.If || r instanceof X.For) { var i = !1; if (W2(r, function (l) { if (l instanceof X.FilterAsync || l instanceof X.IfAsync || l instanceof X.AsyncEach || l instanceof X.AsyncAll || l instanceof X.CallExtensionAsync) return i = !0, l }), i) return r instanceof X.If ? new X.IfAsync(r.lineno, r.colno, r.cond, r.body, r.else_) : r instanceof X.For && !(r instanceof X.AsyncAll) ? new X.AsyncEach(r.lineno, r.colno, r.arr, r.name, r.body, r.else_) : void 0 } }) }(function (n) { return W2(n, function (r) { var i, l; r instanceof X.Block && (i = !1, l = _V(), r.body = W2(r.body, function (s) { if (s instanceof X.FunCall && s.name.value === "super") return i = !0, new X.Symbol(s.lineno, s.colno, l) }), i) && r.body.children.unshift(new X.Super(0, 0, r.name, new X.Symbol(0, 0, l))) }) }(function (n, r) { return IE(n, function (i) { return i instanceof X.Output ? Bc(i, r) : i instanceof X.Set ? Bc(i, r, "value") : i instanceof X.For ? Bc(i, r, "arr") : i instanceof X.If ? Bc(i, r, "cond") : i instanceof X.CallExtension ? Bc(i, r, "args") : void 0 }) }(t, e))) } var E_e = { transform: function (t, e) { return __e(t, e || []) } }, EV = Array.from, b_e = typeof Symbol == "function" && Symbol.iterator && typeof EV == "function", w_e = function () { function t(n, r) { this.variables = Object.create(null), this.parent = n, this.topLevel = !1, this.isolateWrites = r } var e = t.prototype; return e.set = function (n, r, i) { var l = n.split("."), s = this.variables, a = this; if (i && (a = this.resolve(l[0], !0))) a.set(n, r); else { for (var o = 0; o < l.length - 1; o++) { var u = l[o]; s[u] || (s[u] = {}), s = s[u] } s[l[l.length - 1]] = r } }, e.get = function (n) { return (n = this.variables[n]) !== void 0 ? n : null }, e.lookup = function (n) { var r = this.parent, i = this.variables[n]; return i !== void 0 ? i : r && r.lookup(n) }, e.resolve = function (n, r) { return r = r && this.isolateWrites ? void 0 : this.parent, this.variables[n] !== void 0 ? this : r && r.resolve(n) }, e.push = function (n) { return new t(this, n) }, e.pop = function () { return this.parent }, t }(); function bV(t) { return t && Object.prototype.hasOwnProperty.call(t, "__keywords") } function vB(t) { var e = t.length; return e === 0 ? 0 : bV(t[e - 1]) ? e - 1 : e } function n2(t) { if (typeof t != "string") return t; this.val = t, this.val = t, Object.defineProperty(this, "length", { writable: !0, configurable: !0, value: t.length }) } n2.prototype = Object.create(String.prototype, { length: { writable: !0, configurable: !0, value: 0 } }), n2.prototype.valueOf = function () { return this.val }, n2.prototype.toString = function () { return this.val }; var mt = { Frame: w_e, makeMacro: function (t, e, n) { return function () { for (var r = arguments.length, i = new Array(r), l = 0; l < r; l++)i[l] = arguments[l]; var s = vB(i), a = function () { var f = i.length; return f && bV(f = i[f - 1]) ? f : {} }(); if (s > t.length) o = i.slice(0, t.length), i.slice(o.length, s).forEach(function (f, m) { m < e.length && (a[e[m]] = f) }), o.push(a); else if (s < t.length) { for (var o = i.slice(0, s), u = s; u < t.length; u++) { var c = t[u]; o.push(a[c]), delete a[c] } o.push(a) } else o = i; return n.apply(this, o) } }, makeKeywordArgs: function (t) { return t.__keywords = !0, t }, numArgs: vB, suppressValue: function (t, e) { return t = t ?? "", !e || t instanceof n2 ? t : Le.escape(t.toString()) }, ensureDefined: function (t, e, n) { if (t == null) throw new Le.TemplateError("attempted to output null or undefined value", e + 1, n + 1); return t }, memberLookup: function (t, e) { if (t != null) return typeof t[e] == "function" ? function () { for (var n = arguments.length, r = new Array(n), i = 0; i < n; i++)r[i] = arguments[i]; return t[e].apply(t, r) } : t[e] }, contextOrFrameLookup: function (t, e, n) { return (e = e.lookup(n)) !== void 0 ? e : t.lookup(n) }, callWrap: function (t, e, n, r) { if (!t) throw new Error("Unable to call `" + e + "`, which is undefined or falsey"); if (typeof t != "function") throw new Error("Unable to call `" + e + "`, which is not a function"); return t.apply(n, r) }, handleError: function (t, e, n) { return t.lineno ? t : new Le.TemplateError(t, e, n) }, isArray: Le.isArray, keys: Le.keys, SafeString: n2, copySafeness: function (t, e) { return t instanceof n2 ? new n2(e) : e.toString() }, markSafe: function (t) { var e = typeof t; return e == "string" ? new n2(t) : e != "function" ? t : function (n) { var r = t.apply(this, arguments); return typeof r == "string" ? new n2(r) : r } }, asyncEach: function (t, e, n, r) { var i; Le.isArray(t) ? (i = t.length, Le.asyncIter(t, function (l, s, a) { switch (e) { case 1: n(l, s, i, a); break; case 2: n(l[0], l[1], s, i, a); break; case 3: n(l[0], l[1], l[2], s, i, a); break; default: l.push(s, i, a), n.apply(this, l) } }, r)) : Le.asyncFor(t, function (l, s, a, o, u) { n(l, s, a, o, u) }, r) }, asyncAll: function (t, e, n, r) { var i = 0; function l(d, y) { i++, c[d] = y, i === u && r(null, c.join("")) } if (Le.isArray(t)) if (u = t.length, c = new Array(u), u === 0) r(null, ""); else for (var s = 0; s < t.length; s++) { var a = t[s]; switch (e) { case 1: n(a, s, u, l); break; case 2: n(a[0], a[1], s, u, l); break; case 3: n(a[0], a[1], a[2], s, u, l); break; default: a.push(s, u, l), n.apply(this, a) } } else { var o = Le.keys(t || {}), u = o.length, c = new Array(u); if (u === 0) r(null, ""); else for (var f = 0; f < o.length; f++) { var m = o[f]; n(m, t[m], f, u, l) } } }, inOperator: Le.inOperator, fromIterator: function (t) { return typeof t == "object" && t !== null && !Le.isArray(t) && b_e && Symbol.iterator in t ? EV(t) : t } }; function wV(t, e) { return (wV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } mt.Frame, mt.makeMacro, mt.makeKeywordArgs, mt.numArgs, mt.suppressValue, mt.ensureDefined, mt.memberLookup, mt.contextOrFrameLookup, mt.callWrap, mt.handleError, mt.isArray, mt.keys, mt.SafeString, mt.copySafeness, mt.markSafe, mt.asyncEach, mt.asyncAll, mt.inOperator, mt.fromIterator; var S_e = Le.TemplateError, Y_ = mt.Frame, T_e = { "==": "==", "===": "===", "!=": "!=", "!==": "!==", "<": "<", ">": ">", "<=": "<=", ">=": ">=" }, _B = function (t) {
var e; function n() { return t.apply(this, arguments) || this } e = t, (r = n).prototype = Object.create(e.prototype), wV(r.prototype.constructor = r, e); var r = n.prototype; return r.init = function (i, l) { this.templateName = i, this.codebuf = [], this.lastId = 0, this.buffer = null, this.bufferStack = [], this._scopeClosers = "", this.inBlock = !1, this.throwOnUndefined = l }, r.fail = function (i, l, s) { throw l !== void 0 && (l += 1), s !== void 0 && (s += 1), new S_e(i, l, s) }, r._pushBuffer = function () { var i = this._tmpid(); return this.bufferStack.push(this.buffer), this.buffer = i, this._emit("var " + this.buffer + ' = "";'), i }, r._popBuffer = function () { this.buffer = this.bufferStack.pop() }, r._emit = function (i) { this.codebuf.push(i) }, r._emitLine = function (i) {
this._emit(i + `
`)
}, r._emitLines = function () { for (var i = this, l = arguments.length, s = new Array(l), a = 0; a < l; a++)s[a] = arguments[a]; s.forEach(function (o) { return i._emitLine(o) }) }, r._emitFuncBegin = function (i, l) { this.buffer = "output", this._scopeClosers = "", this._emitLine("function " + l + "(env, context, frame, runtime, cb) {"), this._emitLine("var lineno = " + i.lineno + ";"), this._emitLine("var colno = " + i.colno + ";"), this._emitLine("var " + this.buffer + ' = "";'), this._emitLine("try {") }, r._emitFuncEnd = function (i) { i || this._emitLine("cb(null, " + this.buffer + ");"), this._closeScopeLevels(), this._emitLine("} catch (e) {"), this._emitLine(" cb(runtime.handleError(e, lineno, colno));"), this._emitLine("}"), this._emitLine("}"), this.buffer = null }, r._addScopeLevel = function () { this._scopeClosers += "})" }, r._closeScopeLevels = function () { this._emitLine(this._scopeClosers + ";"), this._scopeClosers = "" }, r._withScopedSyntax = function (i) { var l = this._scopeClosers; this._scopeClosers = "", i.call(this), this._closeScopeLevels(), this._scopeClosers = l }, r._makeCallback = function (i) {
var l = this._tmpid(); return "function(" + l + (i ? "," + i : "") + `) {
if(`+ l + ") { cb(" + l + "); return; }"
}, r._tmpid = function () { return this.lastId++, "t_" + this.lastId }, r._templateName = function () { return this.templateName == null ? "undefined" : JSON.stringify(this.templateName) }, r._compileChildren = function (i, l) { var s = this; i.children.forEach(function (a) { s.compile(a, l) }) }, r._compileAggregate = function (i, l, s, a) { var o = this; s && this._emit(s), i.children.forEach(function (u, c) { 0 < c && o._emit(","), o.compile(u, l) }), a && this._emit(a) }, r._compileExpression = function (i, l) { this.assertType(i, X.Literal, X.Symbol, X.Group, X.Array, X.Dict, X.FunCall, X.Caller, X.Filter, X.LookupVal, X.Compare, X.InlineIf, X.In, X.Is, X.And, X.Or, X.Not, X.Add, X.Concat, X.Sub, X.Mul, X.Div, X.FloorDiv, X.Mod, X.Pow, X.Neg, X.Pos, X.Compare, X.NodeList), this.compile(i, l) }, r.assertType = function (i) { for (var l = arguments.length, s = new Array(1 < l ? l - 1 : 0), a = 1; a < l; a++)s[a - 1] = arguments[a]; s.some(function (o) { return i instanceof o }) || this.fail("assertType: invalid type: " + i.typename, i.lineno, i.colno) }, r.compileCallExtension = function (i, l, s) {
var a = this, o = i.args, u = i.contentArgs, c = typeof i.autoescape != "boolean" || i.autoescape; s || this._emit(this.buffer + " += runtime.suppressValue("), this._emit('env.getExtension("' + i.extName + '")["' + i.prop + '"]('), this._emit("context"), (o || u) && this._emit(","), o && (o instanceof X.NodeList || this.fail("compileCallExtension: arguments must be a NodeList, use `parser.parseSignature`"), o.children.forEach(function (f, m) { a._compileExpression(f, l), m === o.children.length - 1 && !u.length || a._emit(",") })), u.length && u.forEach(function (f, m) { var d; 0 < m && a._emit(","), f ? (a._emitLine("function(cb) {"), a._emitLine("if(!cb) { cb = function(err) { if(err) { throw err; }}}"), d = a._pushBuffer(), a._withScopedSyntax(function () { a.compile(f, l), a._emitLine("cb(null, " + d + ");") }), a._popBuffer(), a._emitLine("return " + d + ";"), a._emitLine("}")) : a._emit("null") }), s ? (i = this._tmpid(), this._emitLine(", " + this._makeCallback(i)), this._emitLine(this.buffer + " += runtime.suppressValue(" + i + ", " + c + " && env.opts.autoescape);"), this._addScopeLevel()) : (this._emit(")"), this._emit(", " + c + ` && env.opts.autoescape);
`))
}, r.compileCallExtensionAsync = function (i, l) { this.compileCallExtension(i, l, !0) }, r.compileNodeList = function (i, l) { this._compileChildren(i, l) }, r.compileLiteral = function (i) { var l; typeof i.value == "string" ? (l = (l = (l = (l = (l = (l = i.value.replace(/\\/g, "\\\\")).replace(/"/g, '\\"')).replace(/\n/g, "\\n")).replace(/\r/g, "\\r")).replace(/\t/g, "\\t")).replace(/\u2028/g, "\\u2028"), this._emit('"' + l + '"')) : i.value === null ? this._emit("null") : this._emit(i.value.toString()) }, r.compileSymbol = function (i, l) { i = i.value, (l = l.lookup(i)) ? this._emit(l) : this._emit('runtime.contextOrFrameLookup(context, frame, "' + i + '")') }, r.compileGroup = function (i, l) { this._compileAggregate(i, l, "(", ")") }, r.compileArray = function (i, l) { this._compileAggregate(i, l, "[", "]") }, r.compileDict = function (i, l) { this._compileAggregate(i, l, "{", "}") }, r.compilePair = function (a, l) { var s = a.key, a = a.value; s instanceof X.Symbol ? s = new X.Literal(s.lineno, s.colno, s.value) : s instanceof X.Literal && typeof s.value == "string" || this.fail("compilePair: Dict keys must be strings or names", s.lineno, s.colno), this.compile(s, l), this._emit(": "), this._compileExpression(a, l) }, r.compileInlineIf = function (i, l) { this._emit("("), this.compile(i.cond, l), this._emit("?"), this.compile(i.body, l), this._emit(":"), i.else_ !== null ? this.compile(i.else_, l) : this._emit('""'), this._emit(")") }, r.compileIn = function (i, l) { this._emit("runtime.inOperator("), this.compile(i.left, l), this._emit(","), this.compile(i.right, l), this._emit(")") }, r.compileIs = function (i, l) { var s = (i.right.name || i.right).value; this._emit('env.getTest("' + s + '").call(context, '), this.compile(i.left, l), i.right.args && (this._emit(","), this.compile(i.right.args, l)), this._emit(") === true") }, r._binOpEmitter = function (i, l, s) { this.compile(i.left, l), this._emit(s), this.compile(i.right, l) }, r.compileOr = function (i, l) { return this._binOpEmitter(i, l, " || ") }, r.compileAnd = function (i, l) { return this._binOpEmitter(i, l, " && ") }, r.compileAdd = function (i, l) { return this._binOpEmitter(i, l, " + ") }, r.compileConcat = function (i, l) { return this._binOpEmitter(i, l, ' + "" + ') }, r.compileSub = function (i, l) { return this._binOpEmitter(i, l, " - ") }, r.compileMul = function (i, l) { return this._binOpEmitter(i, l, " * ") }, r.compileDiv = function (i, l) { return this._binOpEmitter(i, l, " / ") }, r.compileMod = function (i, l) { return this._binOpEmitter(i, l, " % ") }, r.compileNot = function (i, l) { this._emit("!"), this.compile(i.target, l) }, r.compileFloorDiv = function (i, l) { this._emit("Math.floor("), this.compile(i.left, l), this._emit(" / "), this.compile(i.right, l), this._emit(")") }, r.compilePow = function (i, l) { this._emit("Math.pow("), this.compile(i.left, l), this._emit(", "), this.compile(i.right, l), this._emit(")") }, r.compileNeg = function (i, l) { this._emit("-"), this.compile(i.target, l) }, r.compilePos = function (i, l) { this._emit("+"), this.compile(i.target, l) }, r.compileCompare = function (i, l) { var s = this; this.compile(i.expr, l), i.ops.forEach(function (a) { s._emit(" " + T_e[a.type] + " "), s.compile(a.expr, l) }) }, r.compileLookupVal = function (i, l) { this._emit("runtime.memberLookup(("), this._compileExpression(i.target, l), this._emit("),"), this._compileExpression(i.val, l), this._emit(")") }, r._getNodeName = function (i) { switch (i.typename) { case "Symbol": return i.value; case "FunCall": return "the return value of (" + this._getNodeName(i.name) + ")"; case "LookupVal": return this._getNodeName(i.target) + '["' + this._getNodeName(i.val) + '"]'; case "Literal": return i.value.toString(); default: return "--expression--" } }, r.compileFunCall = function (i, l) { this._emit("(lineno = " + i.lineno + ", colno = " + i.colno + ", "), this._emit("runtime.callWrap("), this._compileExpression(i.name, l), this._emit(', "' + this._getNodeName(i.name).replace(/"/g, '\\"') + '", context, '), this._compileAggregate(i.args, l, "[", "])"), this._emit(")") }, r.compileFilter = function (i, l) { var s = i.name; this.assertType(s, X.Symbol), this._emit('env.getFilter("' + s.value + '").call(context, '), this._compileAggregate(i.args, l), this._emit(")") }, r.compileFilterAsync = function (i, l) { var s = i.name, a = i.symbol.value; this.assertType(s, X.Symbol), l.set(a, a), this._emit('env.getFilter("' + s.value + '").call(context, '), this._compileAggregate(i.args, l), this._emitLine(", " + this._makeCallback(a)), this._addScopeLevel() }, r.compileKeywordArgs = function (i, l) { this._emit("runtime.makeKeywordArgs("), this.compileDict(i, l), this._emit(")") }, r.compileSet = function (i, l) { var s = this, a = []; i.targets.forEach(function (o) { o = o.value, (o = l.lookup(o)) == null && (o = s._tmpid(), s._emitLine("var " + o + ";")), a.push(o) }), i.value ? (this._emit(a.join(" = ") + " = "), this._compileExpression(i.value, l)) : (this._emit(a.join(" = ") + " = "), this.compile(i.body, l)), this._emitLine(";"), i.targets.forEach(function (o, u) { o = o.value, s._emitLine('frame.set("' + o + '", ' + (u = a[u]) + ", true);"), s._emitLine("if(frame.topLevel) {"), s._emitLine('context.setVariable("' + o + '", ' + u + ");"), s._emitLine("}"), o.charAt(0) !== "_" && (s._emitLine("if(frame.topLevel) {"), s._emitLine('context.addExport("' + o + '", ' + u + ");"), s._emitLine("}")) }) }, r.compileSwitch = function (i, l) { var s = this; this._emit("switch ("), this.compile(i.expr, l), this._emit(") {"), i.cases.forEach(function (a, o) { s._emit("case "), s.compile(a.cond, l), s._emit(": "), s.compile(a.body, l), a.body.children.length && s._emitLine("break;") }), i.default && (this._emit("default:"), this.compile(i.default, l)), this._emit("}") }, r.compileIf = function (i, l, s) {
var a = this; this._emit("if("), this._compileExpression(i.cond, l), this._emitLine(") {"), this._withScopedSyntax(function () { a.compile(i.body, l), s && a._emit("cb()") }), i.else_ ? (this._emitLine(`}
else {`), this._withScopedSyntax(function () { a.compile(i.else_, l), s && a._emit("cb()") })) : s && (this._emitLine(`}
else {`), this._emit("cb()")), this._emitLine("}")
}, r.compileIfAsync = function (i, l) { this._emit("(function(cb) {"), this.compileIf(i, l, !0), this._emit("})(" + this._makeCallback()), this._addScopeLevel() }, r._emitLoopBindings = function (i, l, s, a) { var o = this;[{ name: "index", val: s + " + 1" }, { name: "index0", val: s }, { name: "revindex", val: a + " - " + s }, { name: "revindex0", val: a + " - " + s + " - 1" }, { name: "first", val: s + " === 0" }, { name: "last", val: s + " === " + a + " - 1" }, { name: "length", val: a }].forEach(function (u) { o._emitLine('frame.set("loop.' + u.name + '", ' + u.val + ");") }) }, r.compileFor = function (i, l) { var s, a, o, u, c = this, f = this._tmpid(), m = this._tmpid(), d = this._tmpid(); l = l.push(), this._emitLine("frame = frame.push();"), this._emit("var " + d + " = "), this._compileExpression(i.arr, l), this._emitLine(";"), this._emit("if(" + d + ") {"), this._emitLine(d + " = runtime.fromIterator(" + d + ");"), i.name instanceof X.Array ? (this._emitLine("var " + f + ";"), this._emitLine("if(runtime.isArray(" + d + ")) {"), this._emitLine("var " + m + " = " + d + ".length;"), this._emitLine("for(" + f + "=0; " + f + " < " + d + ".length; " + f + "++) {"), i.name.children.forEach(function (y, _) { var S = c._tmpid(); c._emitLine("var " + S + " = " + d + "[" + f + "][" + _ + "];"), c._emitLine('frame.set("' + y + '", ' + d + "[" + f + "][" + _ + "]);"), l.set(i.name.children[_].value, S) }), this._emitLoopBindings(i, d, f, m), this._withScopedSyntax(function () { c.compile(i.body, l) }), this._emitLine("}"), this._emitLine("} else {"), u = (s = i.name.children)[0], s = s[1], a = this._tmpid(), o = this._tmpid(), l.set(u.value, a), l.set(s.value, o), this._emitLine(f + " = -1;"), this._emitLine("var " + m + " = runtime.keys(" + d + ").length;"), this._emitLine("for(var " + a + " in " + d + ") {"), this._emitLine(f + "++;"), this._emitLine("var " + o + " = " + d + "[" + a + "];"), this._emitLine('frame.set("' + u.value + '", ' + a + ");"), this._emitLine('frame.set("' + s.value + '", ' + o + ");"), this._emitLoopBindings(i, d, f, m), this._withScopedSyntax(function () { c.compile(i.body, l) }), this._emitLine("}")) : (u = this._tmpid(), l.set(i.name.value, u), this._emitLine("var " + m + " = " + d + ".length;"), this._emitLine("for(var " + f + "=0; " + f + " < " + d + ".length; " + f + "++) {"), this._emitLine("var " + u + " = " + d + "[" + f + "];"), this._emitLine('frame.set("' + i.name.value + '", ' + u + ");"), this._emitLoopBindings(i, d, f, m), this._withScopedSyntax(function () { c.compile(i.body, l) })), this._emitLine("}"), this._emitLine("}"), i.else_ && (this._emitLine("if (!" + m + ") {"), this.compile(i.else_, l), this._emitLine("}")), this._emitLine("frame = frame.pop();") }, r._compileAsyncLoop = function (i, l, s) { var a, o = this, u = this._tmpid(), c = this._tmpid(), f = this._tmpid(), m = s ? "asyncAll" : "asyncEach", m = (l = l.push(), this._emitLine("frame = frame.push();"), this._emit("var " + f + " = runtime.fromIterator("), this._compileExpression(i.arr, l), this._emitLine(");"), i.name instanceof X.Array ? (a = i.name.children.length, this._emit("runtime." + m + "(" + f + ", " + a + ", function("), i.name.children.forEach(function (d) { o._emit(d.value + ",") }), this._emit(u + "," + c + ",next) {"), i.name.children.forEach(function (d) { d = d.value, l.set(d, d), o._emitLine('frame.set("' + d + '", ' + d + ");") })) : (a = i.name.value, this._emitLine("runtime." + m + "(" + f + ", 1, function(" + a + ", " + u + ", " + c + ",next) {"), this._emitLine('frame.set("' + a + '", ' + a + ");"), l.set(a, a)), this._emitLoopBindings(i, f, u, c), this._withScopedSyntax(function () { var d; s && (d = o._pushBuffer()), o.compile(i.body, l), o._emitLine("next(" + u + (d ? "," + d : "") + ");"), s && o._popBuffer() }), this._tmpid()); this._emitLine("}, " + this._makeCallback(m)), this._addScopeLevel(), s && this._emitLine(this.buffer + " += " + m + ";"), i.else_ && (this._emitLine("if (!" + f + ".length) {"), this.compile(i.else_, l), this._emitLine("}")), this._emitLine("frame = frame.pop();") }, r.compileAsyncEach = function (i, l) { this._compileAsyncLoop(i, l) }, r.compileAsyncAll = function (i, l) { this._compileAsyncLoop(i, l, !0) }, r._compileMacro = function (i, _) { var s = this, a = [], o = null, u = "macro_" + this._tmpid(), c = _ !== void 0, f = (i.args.children.forEach(function (S, w) { w === i.args.children.length - 1 && S instanceof X.Dict ? o = S : (s.assertType(S, X.Symbol), a.push(S)) }), [].concat(a.map(function (S) { return "l_" + S.value }), ["kwargs"])), m = a.map(function (S) { return '"' + S.value + '"' }), d = (o && o.children || []).map(function (S) { return '"' + S.key.value + '"' }), y = c ? _.push(!0) : new Y_, _ = (this._emitLines("var " + u + " = runtime.makeMacro(", "[" + m.join(", ") + "], ", "[" + d.join(", ") + "], ", "function (" + f.join(", ") + ") {", "var callerFrame = frame;", "frame = " + (c ? "frame.push(true);" : "new runtime.Frame();"), "kwargs = kwargs || {};", 'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {', 'frame.set("caller", kwargs.caller); }'), a.forEach(function (S) { s._emitLine('frame.set("' + S.value + '", l_' + S.value + ");"), y.set(S.value, "l_" + S.value) }), o && o.children.forEach(function (S) { var w = S.key.value; s._emit('frame.set("' + w + '", '), s._emit('Object.prototype.hasOwnProperty.call(kwargs, "' + w + '")'), s._emit(' ? kwargs["' + w + '"] : '), s._compileExpression(S.value, y), s._emit(");") }), this._pushBuffer()); return this._withScopedSyntax(function () { s.compile(i.body, y) }), this._emitLine("frame = " + (c ? "frame.pop();" : "callerFrame;")), this._emitLine("return new runtime.SafeString(" + _ + ");"), this._emitLine("});"), this._popBuffer(), u }, r.compileMacro = function (i, l) { var s = this._compileMacro(i), a = i.name.value; l.set(a, s), l.parent ? this._emitLine('frame.set("' + a + '", ' + s + ");") : (i.name.value.charAt(0) !== "_" && this._emitLine('context.addExport("' + a + '");'), this._emitLine('context.setVariable("' + a + '", ' + s + ");")) }, r.compileCaller = function (i, l) { this._emit("(function (){"), i = this._compileMacro(i, l), this._emit("return " + i + ";})()") }, r._compileGetTemplate = function (i, l, f, m) { var o = this._tmpid(), u = this._templateName(), c = this._makeCallback(o), f = f ? "true" : "false", m = m ? "true" : "false"; return this._emit("env.getTemplate("), this._compileExpression(i.template, l), this._emitLine(", " + f + ", " + u + ", " + m + ", " + c), o }, r.compileImport = function (i, l) { var s = i.target.value, a = this._compileGetTemplate(i, l, !1, !1); this._addScopeLevel(), this._emitLine(a + ".getExported(" + (i.withContext ? "context.getVariables(), frame, " : "") + this._makeCallback(a)), this._addScopeLevel(), l.set(s, a), l.parent ? this._emitLine('frame.set("' + s + '", ' + a + ");") : this._emitLine('context.setVariable("' + s + '", ' + a + ");") }, r.compileFromImport = function (i, l) { var s = this, a = this._compileGetTemplate(i, l, !1, !1); this._addScopeLevel(), this._emitLine(a + ".getExported(" + (i.withContext ? "context.getVariables(), frame, " : "") + this._makeCallback(a)), this._addScopeLevel(), i.names.children.forEach(function (f) { var u, c = s._tmpid(), f = f instanceof X.Pair ? (u = f.key.value, f.value.value) : u = f.value; s._emitLine("if(Object.prototype.hasOwnProperty.call(" + a + ', "' + u + '")) {'), s._emitLine("var " + c + " = " + a + "." + u + ";"), s._emitLine("} else {"), s._emitLine(`cb(new Error("cannot import '` + u + `'")); return;`), s._emitLine("}"), l.set(f, c), l.parent ? s._emitLine('frame.set("' + f + '", ' + c + ");") : s._emitLine('context.setVariable("' + f + '", ' + c + ");") }) }, r.compileBlock = function (i) { var l = this._tmpid(); this.inBlock || this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : '), this._emit('context.getBlock("' + i.name.value + '")'), this.inBlock || this._emit(")"), this._emitLine("(env, context, frame, runtime, " + this._makeCallback(l)), this._emitLine(this.buffer + " += " + l + ";"), this._addScopeLevel() }, r.compileSuper = function (a, l) { var s = a.blockName.value, a = a.symbol.value, o = this._makeCallback(a); this._emitLine('context.getSuper(env, "' + s + '", b_' + s + ", frame, runtime, " + o), this._emitLine(a + " = runtime.markSafe(" + a + ");"), this._addScopeLevel(), l.set(a, a) }, r.compileExtends = function (a, l) { var s = this._tmpid(), a = this._compileGetTemplate(a, l, !0, !1); this._emitLine("parentTemplate = " + a), this._emitLine("for(var " + s + " in parentTemplate.blocks) {"), this._emitLine("context.addBlock(" + s + ", parentTemplate.blocks[" + s + "]);"), this._emitLine("}"), this._addScopeLevel() }, r.compileInclude = function (i, l) { this._emitLine("var tasks = [];"), this._emitLine("tasks.push("), this._emitLine("function(callback) {"), l = this._compileGetTemplate(i, l, !1, i.ignoreMissing), this._emitLine("callback(null," + l + ");});"), this._emitLine("});"), i = this._tmpid(), this._emitLine("tasks.push("), this._emitLine("function(template, callback){"), this._emitLine("template.render(context.getVariables(), frame, " + this._makeCallback(i)), this._emitLine("callback(null," + i + ");});"), this._emitLine("});"), this._emitLine("tasks.push("), this._emitLine("function(result, callback){"), this._emitLine(this.buffer + " += result;"), this._emitLine("callback(null);"), this._emitLine("});"), this._emitLine("env.waterfall(tasks, function(){"), this._addScopeLevel() }, r.compileTemplateData = function (i, l) { this.compileLiteral(i, l) }, r.compileCapture = function (i, l) { var s = this, a = this.buffer; this.buffer = "output", this._emitLine("(function() {"), this._emitLine('var output = "";'), this._withScopedSyntax(function () { s.compile(i.body, l) }), this._emitLine("return output;"), this._emitLine("})()"), this.buffer = a }, r.compileOutput = function (i, l) {
var s = this; i.children.forEach(function (a) {
a instanceof X.TemplateData ? a.value && (s._emit(s.buffer + " += "), s.compileLiteral(a, l), s._emitLine(";")) : (s._emit(s.buffer + " += runtime.suppressValue("), s.throwOnUndefined && s._emit("runtime.ensureDefined("), s.compile(a, l), s.throwOnUndefined && s._emit("," + i.lineno + "," + i.colno + ")"), s._emit(`, env.opts.autoescape);
`))
})
}, r.compileRoot = function (i, l) {
var s = this, a = (l && this.fail("compileRoot: root node can't have frame"), l = new Y_, this._emitFuncBegin(i, "root"), this._emitLine("var parentTemplate = null;"), this._compileChildren(i, l), this._emitLine("if(parentTemplate) {"), this._emitLine("parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);"), this._emitLine("} else {"), this._emitLine("cb(null, " + this.buffer + ");"), this._emitLine("}"), this._emitFuncEnd(!0), this.inBlock = !0, []); (l = i.findAll(X.Block)).forEach(function (o, u) { var c = o.name.value; if (a.indexOf(c) !== -1) throw new Error('Block "' + c + '" defined more than once.'); a.push(c), s._emitFuncBegin(o, "b_" + c), c = new Y_, s._emitLine("var frame = frame.push(true);"), s.compile(o.body, c), s._emitFuncEnd() }), this._emitLine("return {"), l.forEach(function (o, u) { o = "b_" + o.name.value, s._emitLine(o + ": " + o + ",") }), this._emitLine(`root: root
};`)
}, r.compile = function (i, l) { var s = this["compile" + i.typename]; s ? s.call(this, i, l) : this.fail("compile: Cannot compile node: " + i.typename, i.lineno, i.colno) }, r.getCode = function () { return this.codebuf.join("") }, n
}(o0.Obj), x_e = { compile: function (s, e, n, r, i) { var l = new _B(r, (i = i === void 0 ? {} : i).throwOnUndefined), s = (n || []).map(function (a) { return a.preprocess }).filter(function (a) { return !!a }).reduce(function (a, o) { return o(a) }, s); return l.compile(E_e.transform(g_e.parse(s, n, i), e, r)), l.getCode() }, Compiler: _B }, A_e = ht(function (t) {
function e(d, y) { return d == null || d === !1 ? y : d } function n(d) { return d != d } function r(d) { var y = (d = e(d, "")).toLowerCase(); return mt.copySafeness(d, y.charAt(0).toUpperCase() + y.slice(1)) } function i(d) { if (Le.isString(d)) return d.split(""); if (Le.isObject(d)) return Le._entries(d || {}).map(function (y) { return { key: y[0], value: y[1] } }); if (Le.isArray(d)) return d; throw new Le.TemplateError("list filter: type not iterable") } function l(d) { return function (y, _, S) { var w = this, E = w.env.getTest(_ = _ === void 0 ? "truthy" : _); return Le.toArray(y).filter(function (g) { return E.call(w, g, S) === d }) } } function s(d) { return mt.copySafeness(d, d.replace(/^\s*|\s*$/g, "")) } (t = t.exports = {}).abs = Math.abs, t.batch = function (d, y, _) { for (var S = [], w = [], E = 0; E < d.length; E++)E % y == 0 && w.length && (S.push(w), w = []), w.push(d[E]); if (w.length) { if (_) for (E = w.length; E < y; E++)w.push(_); S.push(w) } return S }, t.capitalize = r, t.center = function (d, y) { var _; return (d = e(d, "")).length >= (y = y || 80) ? d : (y -= d.length, _ = Le.repeat(" ", y / 2 - y % 2), y = Le.repeat(" ", y / 2), mt.copySafeness(d, _ + d + y)) }, t.default = function (d, y, _) { return _ ? d || y : d !== void 0 ? d : y }, t.dictsort = function (d, y, _) { if (!Le.isObject(d)) throw new Le.TemplateError("dictsort filter: val must be an object"); var S, w, E = []; for (w in d) E.push([w, d[w]]); if (_ === void 0 || _ === "key") S = 0; else { if (_ !== "value") throw new Le.TemplateError("dictsort filter: You can only sort by either key or value"); S = 1 } return E.sort(function (g, v) { return g = g[S], v = v[S], y || (Le.isString(g) && (g = g.toUpperCase()), Le.isString(v) && (v = v.toUpperCase())), v < g ? 1 : g === v ? 0 : -1 }), E }, t.dump = function (d, y) { return JSON.stringify(d, null, y) }, t.escape = function (d) { return d instanceof mt.SafeString ? d : mt.markSafe(Le.escape((d = d ?? "").toString())) }, t.safe = function (d) { return d instanceof mt.SafeString ? d : mt.markSafe((d = d ?? "").toString()) }, t.first = function (d) { return d[0] }, t.forceescape = function (d) { return mt.markSafe(Le.escape((d = d ?? "").toString())) }, t.groupby = function (d, y) { return Le.groupBy(d, y, this.env.opts.throwOnUndefined) }, t.indent = function (d, E, _) {
if ((d = e(d, "")) === "") return ""; E = E || 4; var S = d.split(`
`), w = Le.repeat(" ", E), E = S.map(function (g, v) { return v !== 0 || _ ? "" + w + g : g }).join(`
`); return mt.copySafeness(d, E)
}, t.join = function (d, y, _) { return y = y || "", (d = _ ? Le.map(d, function (S) { return S[_] }) : d).join(y) }, t.last = function (d) { return d[d.length - 1] }, t.length = function (d) { return (d = e(d, "")) !== void 0 ? typeof Map == "function" && d instanceof Map || typeof Set == "function" && d instanceof Set ? d.size : (!Le.isObject(d) || d instanceof mt.SafeString ? d : Le.keys(d)).length : 0 }, t.list = i, t.lower = function (d) { return (d = e(d, "")).toLowerCase() }, t.nl2br = function (d) {
return d == null ? "" : mt.copySafeness(d, d.replace(/\r\n|\n/g, `<br />
`))
}, t.random = function (d) { return d[Math.floor(Math.random() * d.length)] }, t.reject = l(!1), t.rejectattr = function (d, y) { return d.filter(function (_) { return !_[y] }) }, t.select = l(!0), t.selectattr = function (d, y) { return d.filter(function (_) { return !!_[y] }) }, t.replace = function (d, y, _, S) { var w = d; if (y instanceof RegExp) return d.replace(y, _); S === void 0 && (S = -1); var E = ""; if (typeof y == "number") y = "" + y; else if (typeof y != "string") return d; if (typeof (d = typeof d == "number" ? "" + d : d) != "string" && !(d instanceof mt.SafeString)) return d; if (y === "") return E = _ + d.split("").join(_) + _, mt.copySafeness(d, E); var g = d.indexOf(y); if (S === 0 || g === -1) return d; for (var v = 0, x = 0; -1 < g && (S === -1 || x < S);)E += d.substring(v, g) + _, v = g + y.length, x++, g = d.indexOf(y, v); return v < d.length && (E += d.substring(v)), mt.copySafeness(w, E) }, t.reverse = function (d) { var y; return (y = Le.isString(d) ? i(d) : Le.map(d, function (_) { return _ })).reverse(), Le.isString(d) ? mt.copySafeness(d, y.join("")) : y }, t.round = function (d, y, _) { return y = y || 0, y = Math.pow(10, y), (_ === "ceil" ? Math.ceil : _ === "floor" ? Math.floor : Math.round)(d * y) / y }, t.slice = function (d, y, _) { for (var S = Math.floor(d.length / y), w = d.length % y, E = [], g = 0, v = 0; v < y; v++) { var x = g + v * S; v < w && g++, x = d.slice(x, g + (v + 1) * S), _ && w <= v && x.push(_), E.push(x) } return E }, t.sum = function (d, y, _) { return (_ = _ === void 0 ? 0 : _) + (d = y ? Le.map(d, function (S) { return S[y] }) : d).reduce(function (S, w) { return S + w }, 0) }, t.sort = mt.makeMacro(["value", "reverse", "case_sensitive", "attribute"], [], function (E, y, _, S) { var w = this, E = Le.map(E, function (v) { return v }), g = Le.getAttrGetter(S); return E.sort(function (v, x) { if (v = S ? g(v) : v, x = S ? g(x) : x, w.env.opts.throwOnUndefined && S && (v === void 0 || x === void 0)) throw new TypeError('sort: attribute "' + S + '" resolved to undefined'); return !_ && Le.isString(v) && Le.isString(x) && (v = v.toLowerCase(), x = x.toLowerCase()), v < x ? y ? 1 : -1 : x < v ? y ? -1 : 1 : 0 }), E }), t.string = function (d) { return mt.copySafeness(d, d) }, t.striptags = function (d, S) {
var _ = s((d = e(d, "")).replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>|<!--[\s\S]*?-->/gi, "")), S = S ? _.replace(/^ +| +$/gm, "").replace(/ +/g, " ").replace(/(\r\n)/g, `
`).replace(/\n\n\n+/g, `
`) : _.replace(/\s+/gi, " "); return mt.copySafeness(d, S)
}, t.title = function (d) { var y = (d = e(d, "")).split(" ").map(r); return mt.copySafeness(d, y.join(" ")) }, t.trim = s, t.truncate = function (d, y, _, S) { var w = d; return (d = e(d, "")).length <= (y = y || 255) ? d : (d = _ ? d.substring(0, y) : ((_ = d.lastIndexOf(" ", y)) === -1 && (_ = y), d.substring(0, _)), mt.copySafeness(w, d += S ?? "...")) }, t.upper = function (d) { return (d = e(d, "")).toUpperCase() }, t.urlencode = function (d) { var y = encodeURIComponent; return Le.isString(d) ? y(d) : (Le.isArray(d) ? d : Le._entries(d)).map(function (w) { var S = w[0], w = w[1]; return y(S) + "=" + y(w) }).join("&") }; var a = /^(?:\(|<|&lt;)?(.*?)(?:\.|,|\)|\n|&gt;)?$/, o = /^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i, u = /^https?:\/\/.*$/, c = /^www\./, f = /\.(?:org|net|com)(?:\:|\/|$)/, m = (t.urlize = function (d, y, _) { n(y) && (y = 1 / 0); var S = _ === !0 ? ' rel="nofollow"' : ""; return d.split(/(\s+)/).filter(function (w) { return w && w.length }).map(function (w) { var E = w.match(a), g = (E = E ? E[1] : w).substr(0, y); return u.test(E) ? '<a href="' + E + '"' + S + ">" + g + "</a>" : c.test(E) ? '<a href="http://' + E + '"' + S + ">" + g + "</a>" : o.test(E) ? '<a href="mailto:' + E + '">' + E + "</a>" : f.test(E) ? '<a href="http://' + E + '"' + S + ">" + g + "</a>" : w }).join("") }, t.wordcount = function (d) { return (d = (d = e(d, "")) ? d.match(/\w+/g) : null) ? d.length : null }, t.float = function (d, y) { return n(d = parseFloat(d)) ? y : d }, mt.makeMacro(["value", "default", "base"], [], function (d, y, _) { return _ === void 0 && (_ = 10), n(d = parseInt(d, _)) ? y : d })); t.int = m, t.d = t.default, t.e = t.escape
}), X7 = {}; function SV(t, e) { for (var n = 0, r = t.length - 1; 0 <= r; r--) { var i = t[r]; i === "." ? t.splice(r, 1) : i === ".." ? (t.splice(r, 1), n++) : n && (t.splice(r, 1), n--) } if (e) for (; n--;)t.unshift(".."); return t } var O_e = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/, Q_ = function (t) { return O_e.exec(t).slice(1) }; function Z_() { for (var t = "", e = !1, n = arguments.length - 1; -1 <= n && !e; n--) { var r = 0 <= n ? arguments[n] : "/"; if (typeof r != "string") throw new TypeError("Arguments to path.resolve must be strings"); r && (t = r + "/" + t, e = r.charAt(0) === "/") } return (e ? "/" : "") + SV(YE(t.split("/"), function (i) { return !!i }), !e).join("/") || "." } function EB(t) { var e = TV(t), n = N_e(t, -1) === "/"; return (t = (t = SV(YE(t.split("/"), function (r) { return !!r }), !e).join("/")) || e ? t : ".") && n && (t += "/"), (e ? "/" : "") + t } function TV(t) { return t.charAt(0) === "/" } var r0 = { extname: function (t) { return Q_(t)[3] }, basename: function (t, e) { return t = Q_(t)[2], e && t.substr(-1 * e.length) === e ? t.substr(0, t.length - e.length) : t }, dirname: function (n) { var e = (n = Q_(n))[0], n = n[1]; return e || n ? e + (n && n.substr(0, n.length - 1)) : "." }, sep: "/", delimiter: ":", relative: function (t, e) { function n(u) { for (var c = 0; c < u.length && u[c] === ""; c++); for (var f = u.length - 1; 0 <= f && u[f] === ""; f--); return f < c ? [] : u.slice(c, f - c + 1) } t = Z_(t).substr(1), e = Z_(e).substr(1); for (var r = n(t.split("/")), i = n(e.split("/")), l = Math.min(r.length, i.length), s = l, a = 0; a < l; a++)if (r[a] !== i[a]) { s = a; break } for (var o = [], a = s; a < r.length; a++)o.push(".."); return (o = o.concat(i.slice(s))).join("/") }, join: function () { return EB(YE(Array.prototype.slice.call(arguments, 0), function (t, e) { if (typeof t != "string") throw new TypeError("Arguments to path.join must be strings"); return t }).join("/")) }, isAbsolute: TV, normalize: EB, resolve: Z_ }; function YE(t, e) { if (t.filter) return t.filter(e); for (var n = [], r = 0; r < t.length; r++)e(t[r], r, t) && n.push(t[r]); return n } var N_e = "ab".substr(-1) === "b" ? function (t, e, n) { return t.substr(e, n) } : function (t, e, n) { return e < 0 && (e = t.length + e), t.substr(e, n) }; function xV(t, e) { return (xV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } var QE = function (t) { var e; function n() { return t.apply(this, arguments) || this } e = t, (r = n).prototype = Object.create(e.prototype), xV(r.prototype.constructor = r, e); var r = n.prototype; return r.resolve = function (i, l) { return r0.resolve(r0.dirname(i), l) }, r.isRelative = function (i) { return i.indexOf("./") === 0 || i.indexOf("../") === 0 }, n }(o0.EmitterObj); function AV(t, e) { return (AV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } var C_e = function (t) { var e, n; function r(i) { var l; return (l = t.call(this) || this).precompiled = i || {}, l } return n = t, (e = r).prototype = Object.create(n.prototype), AV(e.prototype.constructor = e, n), r.prototype.getSource = function (i) { return this.precompiled[i] ? { src: { type: "code", obj: this.precompiled[i] }, path: i } : null }, r }(QE); function OV(t, e) { t.prototype = Object.create(e.prototype), NV(t.prototype.constructor = t, e) } function NV(t, e) { return (NV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } var R_e = C_e, I_e = function (t) { function e(n, r) { var i = t.call(this) || this; return typeof r == "boolean" && console.log("[nunjucks] Warning: you passed a boolean as the second argument to FileSystemLoader, but it now takes an options object. See http://mozilla.github.io/nunjucks/api.html#filesystemloader"), r = r || {}, i.pathsToNames = {}, i.noCache = !!r.noCache, n ? (n = Array.isArray(n) ? n : [n], i.searchPaths = n.map(r0.normalize)) : i.searchPaths = ["."], r.watch, i } return OV(e, t), e.prototype.getSource = function (n) { for (var r = null, i = this.searchPaths, l = 0; l < i.length; l++) { var s = r0.resolve(i[l]), a = r0.resolve(i[l], n); if (a.indexOf(s) === 0 && X7.existsSync(a)) { r = a; break } } if (!r) return null; this.pathsToNames[r] = n; var o = { src: X7.readFileSync(r, "utf-8"), path: r, noCache: this.noCache }; return this.emit("load", n, o), o }, e }(QE), Cs = { FileSystemLoader: I_e, PrecompiledLoader: R_e, NodeResolveLoader: function (t) { function e(n) { var r; return n = n || {}, (r = t.call(this) || this).pathsToNames = {}, r.noCache = !!n.noCache, n.watch, r } return OV(e, t), e.prototype.getSource = function (n) { if (/^\.?\.?(\/|\\)/.test(n) || /^[A-Z]:/.test(n)) return null; try { r = hge.resolve(n) } catch { return null } this.pathsToNames[r] = n; var r = { src: X7.readFileSync(r, "utf-8"), path: r, noCache: this.noCache }; return this.emit("load", n, r), r }, e }(QE) }, ur = ht(function (t, e) { var n = mt.SafeString; e.callable = function (r) { return typeof r == "function" }, e.defined = function (r) { return r !== void 0 }, e.divisibleby = function (r, i) { return r % i == 0 }, e.escaped = function (r) { return r instanceof n }, e.equalto = function (r, i) { return r === i }, e.eq = e.equalto, e.sameas = e.equalto, e.even = function (r) { return r % 2 == 0 }, e.falsy = function (r) { return !r }, e.ge = function (r, i) { return i <= r }, e.greaterthan = function (r, i) { return i < r }, e.gt = e.greaterthan, e.le = function (r, i) { return r <= i }, e.lessthan = function (r, i) { return r < i }, e.lt = e.lessthan, e.lower = function (r) { return r.toLowerCase() === r }, e.ne = function (r, i) { return r !== i }, e.null = function (r) { return r === null }, e.number = function (r) { return typeof r == "number" }, e.odd = function (r) { return r % 2 == 1 }, e.string = function (r) { return typeof r == "string" }, e.truthy = function (r) { return !!r }, e.undefined = function (r) { return r === void 0 }, e.upper = function (r) { return r.toUpperCase() === r }, e.iterable = function (r) { return typeof Symbol < "u" ? !!r[Symbol.iterator] : Array.isArray(r) || typeof r == "string" }, e.mapping = function (r) { var i = r != null && typeof r == "object" && !Array.isArray(r); return Set ? i && !(r instanceof Set) : i } }), k_e = (ur.callable, ur.defined, ur.divisibleby, ur.escaped, ur.equalto, ur.eq, ur.sameas, ur.even, ur.falsy, ur.ge, ur.greaterthan, ur.gt, ur.le, ur.lessthan, ur.lt, ur.lower, ur.ne, ur.number, ur.odd, ur.string, ur.truthy, ur.undefined, ur.upper, ur.iterable, ur.mapping, function () { return { range: function (t, e, n) { var r = []; if (0 < (n = e === void 0 ? (e = t, t = 0, 1) : n || 1)) for (var i = t; i < e; i += n)r.push(i); else for (var l = t; e < l; l += n)r.push(l); return r }, cycler: function () { return t = Array.prototype.slice.call(arguments), e = -1, { current: null, reset: function () { e = -1, this.current = null }, next: function () { return ++e >= t.length && (e = 0), this.current = t[e], this.current } }; var t, e }, joiner: function (t) { t = t || ","; var e = !0; return function () { var n = e ? "" : t; return e = !1, n } } } }); function ZE(t, e) { t.prototype = Object.create(e.prototype), CV(t.prototype.constructor = t, e) } function CV(t, e) { return (CV = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (n, r) { return n.__proto__ = r, n })(t, e) } var bB = Cs.FileSystemLoader, wB = Cs.WebLoader, D_e = Cs.PrecompiledLoader, RV = o0.Obj, P_e = o0.EmitterObj, L_e = mt.handleError, SB = mt.Frame; function kE(t, e, n) { Sve(function () { t(e, n) }) } var F_e = { type: "code", obj: { root: function (t, e, n, r, i) { try { i(null, "") } catch (l) { i(L_e(l, null, null)) } } } }, eb = function (t) { function e() { return t.apply(this, arguments) || this } ZE(e, t); var n = e.prototype; return n.init = function (r, i) { var l = this; i = this.opts = i || {}, this.opts.dev = !!i.dev, this.opts.autoescape = i.autoescape == null || i.autoescape, this.opts.throwOnUndefined = !!i.throwOnUndefined, this.opts.trimBlocks = !!i.trimBlocks, this.opts.lstripBlocks = !!i.lstripBlocks, this.loaders = [], r ? this.loaders = Le.isArray(r) ? r : [r] : bB ? this.loaders = [new bB("views")] : wB && (this.loaders = [new wB("/views")]), typeof window < "u" && window.nunjucksPrecompiled && this.loaders.unshift(new D_e(window.nunjucksPrecompiled)), this._initLoaders(), this.globals = k_e(), this.filters = {}, this.tests = {}, this.asyncFilters = [], this.extensions = {}, this.extensionsList = [], Le._entries(A_e).forEach(function (o) { var a = o[0], o = o[1]; return l.addFilter(a, o) }), Le._entries(ur).forEach(function (o) { var a = o[0], o = o[1]; return l.addTest(a, o) }) }, n._initLoaders = function () { var r = this; this.loaders.forEach(function (i) { i.cache = {}, typeof i.on == "function" && (i.on("update", function (l, s) { i.cache[l] = null, r.emit("update", l, s, i) }), i.on("load", function (l, s) { r.emit("load", l, s, i) })) }) }, n.invalidateCache = function () { this.loaders.forEach(function (r) { r.cache = {} }) }, n.addExtension = function (r, i) { return i.__name = r, this.extensions[r] = i, this.extensionsList.push(i), this }, n.removeExtension = function (r) { var i = this.getExtension(r); i && (this.extensionsList = Le.without(this.extensionsList, i), delete this.extensions[r]) }, n.getExtension = function (r) { return this.extensions[r] }, n.hasExtension = function (r) { return !!this.extensions[r] }, n.addGlobal = function (r, i) { return this.globals[r] = i, this }, n.getGlobal = function (r) { if (this.globals[r] === void 0) throw new Error("global not found: " + r); return this.globals[r] }, n.addFilter = function (r, i, l) { return l && this.asyncFilters.push(r), this.filters[r] = i, this }, n.getFilter = function (r) { if (this.filters[r]) return this.filters[r]; throw new Error("filter not found: " + r) }, n.addTest = function (r, i) { return this.tests[r] = i, this }, n.getTest = function (r) { if (this.tests[r]) return this.tests[r]; throw new Error("test not found: " + r) }, n.resolveTemplate = function (r, i, l) { return r.isRelative && i && r.isRelative(l) && r.resolve ? r.resolve(i, l) : l }, n.getTemplate = function (r, i, l, s, a) { var o, u = this, c = this, f = null; if (r && r.raw && (r = r.raw), Le.isFunction(l) && (a = l, l = null, i = i || !1), Le.isFunction(i) && (a = i, i = !1), r instanceof Kc) f = r; else { if (typeof r != "string") throw new Error("template names must be a string: " + r); for (var m = 0; m < this.loaders.length; m++) { var d = this.loaders[m]; if (f = d.cache[this.resolveTemplate(d, l, r)]) break } } return f ? (i && f.compile(), a ? void a(null, f) : f) : (Le.asyncIter(this.loaders, function (y, _, S, w) { function E(g, v) { g ? w(g) : v ? (v.loader = y, w(null, v)) : S() } r = c.resolveTemplate(y, l, r), y.async ? y.getSource(r, E) : E(null, y.getSource(r)) }, function (y, _) { if (y = _ || y || s ? y : new Error("template not found: " + r)) { if (a) return void a(y); throw y } var S; _ ? (S = new Kc(_.src, u, _.path, i), _.noCache || (_.loader.cache[r] = S)) : S = new Kc(F_e, u, "", i), a ? a(null, S) : o = S }), o) }, n.express = function (r) { return function (i, l) { function s(a, o) { if (this.name = a, this.path = a, this.defaultEngine = o.defaultEngine, this.ext = r0.extname(a), !this.ext && !this.defaultEngine) throw new Error("No default engine was specified and no extension was provided."); this.ext || (this.name += this.ext = (this.defaultEngine[0] !== "." ? "." : "") + this.defaultEngine) } return s.prototype.render = function (a, o) { i.render(this.name, a, o) }, l.set("view", s), l.set("nunjucksEnv", i), i }(this, r) }, n.render = function (r, i, l) { Le.isFunction(i) && (l = i, i = null); var s = null; return this.getTemplate(r, function (a, o) { if (a && l) kE(l, a); else { if (a) throw a; s = o.render(i, l) } }), s }, n.renderString = function (r, i, l, s) { return Le.isFunction(l) && (s = l, l = {}), new Kc(r, this, (l = l || {}).path).render(i, s) }, n.waterfall = function (r, i, l) { return Tve(r, i, l) }, e }(P_e), TB = function (t) { function e() { return t.apply(this, arguments) || this } ZE(e, t); var n = e.prototype; return n.init = function (r, i, l) { var s = this; this.env = l || new eb, this.ctx = Le.extend({}, r), this.blocks = {}, this.exported = [], Le.keys(i).forEach(function (a) { s.addBlock(a, i[a]) }) }, n.lookup = function (r) { return (r in this.env.globals && !(r in this.ctx) ? this.env.globals : this.ctx)[r] }, n.setVariable = function (r, i) { this.ctx[r] = i }, n.getVariables = function () { return this.ctx }, n.addBlock = function (r, i) { return this.blocks[r] = this.blocks[r] || [], this.blocks[r].push(i), this }, n.getBlock = function (r) { if (this.blocks[r]) return this.blocks[r][0]; throw new Error('unknown block "' + r + '"') }, n.getSuper = function (r, i, u, s, a, o) { var u = Le.indexOf(this.blocks[i] || [], u), c = this.blocks[i][u + 1]; if (u === -1 || !c) throw new Error('no super block available for "' + i + '"'); c(r, this, s, a, o) }, n.addExport = function (r) { this.exported.push(r) }, n.getExported = function () { var r = this, i = {}; return this.exported.forEach(function (l) { i[l] = r.ctx[l] }), i }, e }(RV), Kc = function (t) { function e() { return t.apply(this, arguments) || this } ZE(e, t); var n = e.prototype; return n.init = function (r, i, l, s) { if (this.env = i || new eb, Le.isObject(r)) switch (r.type) { case "code": this.tmplProps = r.obj; break; case "string": this.tmplStr = r.obj; break; default: throw new Error("Unexpected template object type " + r.type + "; expected 'code', or 'string'") } else { if (!Le.isString(r)) throw new Error("src must be a string or an object describing the source"); this.tmplStr = r } if (this.path = l, s) try { this._compile() } catch (a) { throw Le._prettifyError(this.path, this.env.opts.dev, a) } else this.compiled = !1 }, n.render = function (r, i, l) { var s = this, a = (typeof r == "function" ? (l = r, r = {}) : typeof i == "function" && (l = i, i = null), !i); try { this.compile() } catch (f) { var o = Le._prettifyError(this.path, this.env.opts.dev, f); if (l) return kE(l, o); throw o } var o = new TB(r || {}, this.blocks, this.env), u = ((i = i ? i.push(!0) : new SB).topLevel = !0, null), c = !1; return this.rootRenderFunc(this.env, o, i, mt, function (f, m) { if (!c || !l || m === void 0) if (f && (f = Le._prettifyError(s.path, s.env.opts.dev, f), c = !0), l) a ? kE(l, f, m) : l(f, m); else { if (f) throw f; u = m } }), u }, n.getExported = function (r, i, l) { typeof r == "function" && (l = r, r = {}), typeof i == "function" && (l = i, i = null); try { this.compile() } catch (a) { if (l) return l(a); throw a } (i = i ? i.push() : new SB).topLevel = !0; var s = new TB(r || {}, this.blocks, this.env); this.rootRenderFunc(this.env, s, i, mt, function (a) { a ? l(a, null) : l(null, s.getExported()) }) }, n.compile = function () { this.compiled || this._compile() }, n._compile = function () { var r = this.tmplProps || (r = x_e.compile(this.tmplStr, this.env.asyncFilters, this.env.extensionsList, this.path, this.env.opts), new Function(r)()); this.blocks = this._getBlocks(r), this.rootRenderFunc = r.root, this.compiled = !0 }, n._getBlocks = function (r) { var i = {}; return Le.keys(r).forEach(function (l) { l.slice(0, 2) === "b_" && (i[l.slice(2)] = r[l]) }), i }, e }(RV), j_e = { Environment: eb, Template: Kc }; Le._prettifyError; var Qc, U_e = j_e.Environment; function M_e(t, e) { var n; return e = e || {}, Le.isObject(t) && (e = t, t = null), Cs.FileSystemLoader ? n = new Cs.FileSystemLoader(t, { watch: e.watch, noCache: e.noCache }) : Cs.WebLoader && (n = new Cs.WebLoader(t, { useCache: e.web && e.web.useCache, async: e.web && e.web.async })), Qc = new U_e(n, e), e && e.express && Qc.express(e.express), Qc } Cs.FileSystemLoader, Cs.NodeResolveLoader, Cs.PrecompiledLoader, Cs.WebLoader; var $_e = function (t, e, n) { return Qc || M_e(), Qc.renderString(t, e, n) }, xB = 1e3, eE = 6e4, AB = 36e5, tb = "millisecond", K1 = "second", X1 = "minute", W1 = "hour", z2 = "day", P7 = "week", Ns = "month", IV = "quarter", G2 = "year", Y1 = "date", OB = "Invalid Date", B_e = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, H_e = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, V_e = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: t => { var e = ["th", "st", "nd", "rd"], n = t % 100; return `[${t}${e[(n - 20) % 10] || e[n] || e[0]}]` } }, tE = (t, e, n) => { var r = String(t); return !r || r.length >= e ? t : "" + Array(e + 1 - r.length).join(n) + t }, kV = (t, e) => { var n, r, i; return t.date() < e.date() ? -kV(e, t) : (n = 12 * (e.year() - t.year()) + (e.month() - t.month()), i = e - (r = t.clone().add(n, Ns)) < 0, t = t.clone().add(n + (i ? -1 : 1), Ns), +(-(n + (e - r) / (i ? r - t : t - r)) || 0)) }, q_e = { s: tE, z: e => { var e = -e.utcOffset(), r = Math.abs(e), n = Math.floor(r / 60), r = r % 60; return (e <= 0 ? "+" : "-") + tE(n, 2, "0") + ":" + tE(r, 2, "0") }, m: kV, a: t => t < 0 ? Math.ceil(t) || 0 : Math.floor(t), p: t => ({ M: Ns, y: G2, w: P7, d: z2, D: Y1, h: W1, m: X1, s: K1, ms: tb, Q: IV })[t] || String(t || "").toLowerCase().replace(/s$/, ""), u: t => t === void 0 }, Zc = "en", eu = {}, nb = (eu[Zc] = V_e, t => t instanceof s0), o5 = (t, e, n) => { let r; if (!t) return Zc; if (typeof t == "string") { let i = t.toLowerCase(); if (eu[i] && (r = i), e && (eu[i] = e, r = i), e = t.split("-"), !r && 1 < e.length) return o5(e[0]) } else { let i = t.name; eu[i] = t, r = i } return !n && r && (Zc = r), r || !n && Zc }, yi = function (t, e) { var n; return nb(t) ? t.clone() : ((n = typeof e == "object" ? e : {}).date = t, n.args = arguments, new s0(n)) }, ir = q_e; ir.l = o5, ir.i = nb, ir.w = (t, e) => yi(t, { locale: e.$L, utc: e.$u, x: e.$x, $offset: e.$offset }); var s0 = class { constructor(e) { this.$L = o5(e.locale, null, !0), this.parse(e) } parse(e) { this.$d = (n => { let { date: r, utc: i } = n; if (r === null) return new Date(NaN); if (ir.u(r)) return new Date; if (!(r instanceof Date || typeof r != "string" || /Z$/i.test(r))) { let l = r.match(B_e); if (l) { let s = l[2] - 1 || 0, a = (l[7] || "0").substring(0, 3); return i ? new Date(Date.UTC(l[1], s, l[3] || 1, l[4] || 0, l[5] || 0, l[6] || 0, a)) : new Date(l[1], s, l[3] || 1, l[4] || 0, l[5] || 0, l[6] || 0, a) } } return new Date(r) })(e), this.$x = e.x || {}, this.init() } init() { var e = this.$d; this.$y = e.getFullYear(), this.$M = e.getMonth(), this.$D = e.getDate(), this.$W = e.getDay(), this.$H = e.getHours(), this.$m = e.getMinutes(), this.$s = e.getSeconds(), this.$ms = e.getMilliseconds() } $utils() { return ir } isValid() { return this.$d.toString() !== OB } isSame(e, n) { return e = yi(e), this.startOf(n) <= e && e <= this.endOf(n) } isAfter(e, n) { return yi(e) < this.startOf(n) } isBefore(e, n) { return this.endOf(n) < yi(e) } $g(e, n, r) { return ir.u(e) ? this[n] : this.set(r, e) } unix() { return Math.floor(this.valueOf() / 1e3) } valueOf() { return this.$d.getTime() } startOf(e, n) { let r = !!ir.u(n) || n, i = ir.p(e), l = (f, m) => (m = ir.w(this.$u ? Date.UTC(this.$y, m, f) : new Date(this.$y, m, f), this), r ? m : m.endOf(z2)), s = (f, m) => ir.w(this.toDate()[f].apply(this.toDate("s"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(m)), this), { $W: a, $M: o, $D: u } = this, c = "set" + (this.$u ? "UTC" : ""); switch (i) { case G2: return r ? l(1, 0) : l(31, 11); case Ns: return r ? l(1, o) : l(0, o + 1); case P7: { let f = this.$locale().weekStart || 0, m = (a < f ? a + 7 : a) - f; return l(r ? u - m : u + (6 - m), o) } case z2: case Y1: return s(c + "Hours", 0); case W1: return s(c + "Minutes", 1); case X1: return s(c + "Seconds", 2); case K1: return s(c + "Milliseconds", 3); default: return this.clone() } } endOf(e) { return this.startOf(e, !1) } $set(r, l) { var r = ir.p(r), i = "set" + (this.$u ? "UTC" : ""), i = { [z2]: i + "Date", [Y1]: i + "Date", [Ns]: i + "Month", [G2]: i + "FullYear", [W1]: i + "Hours", [X1]: i + "Minutes", [K1]: i + "Seconds", [tb]: i + "Milliseconds" }[r], l = r === z2 ? this.$D + (l - this.$W) : l; if (r === Ns || r === G2) { let s = this.clone().set(Y1, 1); s.$d[i](l), s.init(), this.$d = s.set(Y1, Math.min(this.$D, s.daysInMonth())).$d } else i && this.$d[i](l); return this.init(), this } set(e, n) { return this.clone().$set(e, n) } get(e) { return this[ir.p(e)]() } add(e, n) { e = Number(e); var r = i => { var l = yi(this); return ir.w(l.date(l.date() + Math.round(i * e)), this) }; return (n = ir.p(n)) === Ns ? this.set(Ns, this.$M + e) : n === G2 ? this.set(G2, this.$y + e) : n === z2 ? r(1) : n === P7 ? r(7) : (r = { [X1]: eE, [W1]: AB, [K1]: xB }[n] || 1, n = this.$d.getTime() + e * r, ir.w(n, this)) } subtract(e, n) { return this.add(-1 * e, n) } format(e) { var n = this.$locale(); if (!this.isValid()) return n.invalidDate || OB; let r = e || "YYYY-MM-DDTHH:mm:ssZ", i = ir.z(this), { $H: l, $m: s, $M: a } = this, { weekdays: o, months: u, meridiem: c } = n, f = (_, S, w, E) => _ && (_[S] || _(this, r)) || w[S].slice(0, E), m = _ => ir.s(l % 12 || 12, _, "0"), d = c || ((_, S, w) => (_ = _ < 12 ? "AM" : "PM", w ? _.toLowerCase() : _)), y = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: a + 1, MM: ir.s(a + 1, 2, "0"), MMM: f(n.monthsShort, a, u, 3), MMMM: f(u, a), D: this.$D, DD: ir.s(this.$D, 2, "0"), d: String(this.$W), dd: f(n.weekdaysMin, this.$W, o, 2), ddd: f(n.weekdaysShort, this.$W, o, 3), dddd: o[this.$W], H: String(l), HH: ir.s(l, 2, "0"), h: m(1), hh: m(2), a: d(l, s, !0), A: d(l, s, !1), m: String(s), mm: ir.s(s, 2, "0"), s: String(this.$s), ss: ir.s(this.$s, 2, "0"), SSS: ir.s(this.$ms, 3, "0"), Z: i }; return r.replace(H_e, (_, S) => S || y[_] || i.replace(":", "")) } utcOffset() { return 15 * -Math.round(this.$d.getTimezoneOffset() / 15) } diff(a, i, r) { var i = ir.p(i), l = ((a = yi(a)).utcOffset() - this.utcOffset()) * eE, s = this - a, a = ir.m(this, a), a = { [G2]: a / 12, [Ns]: a, [IV]: a / 3, [P7]: (s - l) / 6048e5, [z2]: (s - l) / 864e5, [W1]: s / AB, [X1]: s / eE, [K1]: s / xB }[i] || s; return r ? a : ir.a(a) } daysInMonth() { return this.endOf(Ns).$D } $locale() { return eu[this.$L] } locale(e, n) { var r; return e ? (r = this.clone(), (e = o5(e, n, !0)) && (r.$L = e), r) : this.$L } clone() { return ir.w(this.$d, this) } toDate() { return new Date(this.valueOf()) } toJSON() { return this.isValid() ? this.toISOString() : null } toISOString() { return this.$d.toISOString() } toString() { return this.$d.toUTCString() } }, NB = s0.prototype; yi.prototype = NB, [["$ms", tb], ["$s", K1], ["$m", X1], ["$H", W1], ["$W", z2], ["$M", Ns], ["$y", G2], ["$D", Y1]].forEach(t => { NB[t[1]] = function (e) { return this.$g(e, t[0], t[1]) } }), yi.extend = (t, e) => (t.$i || (t(e, s0, yi), t.$i = !0), yi), yi.locale = o5, yi.isDayjs = nb, yi.unix = t => yi(1e3 * t), yi.en = eu[Zc], yi.Ls = eu, yi.p = {}; var z_e = ht(function (t) { function e(l) { return l && (l = l.toString().replace(i.pluses, "%20"), l = decodeURIComponent(l)), l } function n(l) { var s, a, o, u, c, f, m, d = []; if (l != null && l !== "") for (m = (a = (l = (s = 0) === l.indexOf("?") ? l.substring(1) : l).toString().split(i.query_separator)).length; s < m; s++)(u = (o = a[s]).indexOf("=")) !== 0 && (c = e(o.substring(0, u)), f = e(o.substring(u + 1)), d.push(u === -1 ? [o, null] : [c, f])); return d } function r(l) { this.uriParts = function (s) { var a = i.uri_parser.exec(s || ""), o = {}; return ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "isColonUri", "relative", "path", "directory", "file", "query", "anchor"].forEach(function (u, c) { o[u] = a[c] || "" }), o }(l), this.queryPairs = n(this.uriParts.query), this.hasAuthorityPrefixUserPref = null } var i = { starts_with_slashes: /^\/+/, ends_with_slashes: /\/+$/, pluses: /\+/g, query_separator: /[&;]/, uri_parser: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*)(?::([^:@\/]*))?)?@)?(\[[0-9a-fA-F:.]+\]|[^:\/?#]*)(?::(\d+|(?=:)))?(:)?)((((?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ }; Array.prototype.forEach || (Array.prototype.forEach = function (l, s) { var a, o; if (this == null) throw new TypeError(" this is null or not defined"); var u, c = Object(this), f = c.length >>> 0; if (typeof l != "function") throw new TypeError(l + " is not a function"); for (1 < arguments.length && (a = s), o = 0; o < f;)o in c && (u = c[o], l.call(a, u, o, c)), o++ }), ["protocol", "userInfo", "host", "port", "path", "anchor"].forEach(function (l) { r.prototype[l] = function (s) { return s !== void 0 && (this.uriParts[l] = s), this.uriParts[l] } }), r.prototype.hasAuthorityPrefix = function (l) { return l !== void 0 && (this.hasAuthorityPrefixUserPref = l), this.hasAuthorityPrefixUserPref === null ? this.uriParts.source.indexOf("//") !== -1 : this.hasAuthorityPrefixUserPref }, r.prototype.isColonUri = function (l) { if (l === void 0) return !!this.uriParts.isColonUri; this.uriParts.isColonUri = !!l }, r.prototype.query = function (l, s) { var a, o, u, c = "", f = s === void 0 || s; for (l !== void 0 && (this.queryPairs = n(l)), a = 0, u = this.queryPairs.length; a < u; a++)o = this.queryPairs[a], 0 < c.length && (c += "&"), o[1] === null ? c += o[0] : (c = c + o[0] + "=", o[1] !== void 0 && (c += f ? encodeURIComponent(o[1]) : o[1])); return 0 < c.length ? "?" + c : c }, r.prototype.getQueryParamValue = function (l) { for (var s, a = 0, o = this.queryPairs.length; a < o; a++)if (l === (s = this.queryPairs[a])[0]) return s[1] }, r.prototype.getQueryParamValues = function (l) { for (var s, a = [], o = 0, u = this.queryPairs.length; o < u; o++)l === (s = this.queryPairs[o])[0] && a.push(s[1]); return a }, r.prototype.deleteQueryParam = function (l, s) { for (var a, o, u, c = [], f = 0, m = this.queryPairs.length; f < m; f++)o = e((a = this.queryPairs[f])[0]) === e(l), u = a[1] === s, (arguments.length !== 1 || o) && (arguments.length !== 2 || o && u) || c.push(a); return this.queryPairs = c, this }, r.prototype.addQueryParam = function (l, s, a) { return arguments.length === 3 && a !== -1 ? (a = Math.min(a, this.queryPairs.length), this.queryPairs.splice(a, 0, [l, s])) : 0 < arguments.length && this.queryPairs.push([l, s]), this }, r.prototype.hasQueryParam = function (l) { for (var s = this.queryPairs.length, a = 0; a < s; a++)if (this.queryPairs[a][0] == l) return !0; return !1 }, r.prototype.replaceQueryParam = function (l, s, a) { var o, u, c = -1, f = this.queryPairs.length; if (arguments.length === 3) { for (o = 0; o < f; o++)if (e((u = this.queryPairs[o])[0]) === e(l) && decodeURIComponent(u[1]) === e(a)) { c = o; break } 0 <= c && this.deleteQueryParam(l, e(a)).addQueryParam(l, s, c) } else { for (o = 0; o < f; o++)if (e((u = this.queryPairs[o])[0]) === e(l)) { c = o; break } this.deleteQueryParam(l), this.addQueryParam(l, s, c) } return this }, ["protocol", "hasAuthorityPrefix", "isColonUri", "userInfo", "host", "port", "path", "query", "anchor"].forEach(function (l) { var s = "set" + l.charAt(0).toUpperCase() + l.slice(1); r.prototype[s] = function (a) { return this[l](a), this } }), r.prototype.scheme = function () { var l = ""; return this.protocol() ? (l += this.protocol(), this.protocol().indexOf(":") !== this.protocol().length - 1 && (l += ":"), l += "//") : this.hasAuthorityPrefix() && this.host() && (l += "//"), l }, r.prototype.origin = function () { var l = this.scheme(); return this.userInfo() && this.host() && (l += this.userInfo(), this.userInfo().indexOf("@") !== this.userInfo().length - 1) && (l += "@"), this.host() && (l += this.host(), this.port() || this.path() && this.path().substr(0, 1).match(/[0-9]/)) && (l += ":" + this.port()), l }, r.prototype.addTrailingSlash = function () { var l = this.path() || ""; return l.substr(-1) !== "/" && this.path(l + "/"), this }, r.prototype.toString = function (l) { var s, a = this.origin(); return this.isColonUri() ? this.path() && (a += ":" + this.path()) : this.path() ? (s = this.path(), i.ends_with_slashes.test(a) || i.starts_with_slashes.test(s) ? (a && a.replace(i.ends_with_slashes, "/"), s = s.replace(i.starts_with_slashes, "/")) : a += "/", a += s) : this.host() && (this.query(void 0, l).toString() || this.anchor()) && (a += "/"), this.query(void 0, l).toString() && (a += this.query(void 0, l).toString()), this.anchor() && (this.anchor().indexOf("#") !== 0 && (a += "#"), a += this.anchor()), a }, r.prototype.clone = function () { return new r(this.toString()) }, t.exports = r }), G_e = ht(function (t, e) {
(function () {
var n, r = "Expected a function", i = "__lodash_hash_undefined__", l = "__lodash_placeholder__", s = 32, a = 128, o = 1 / 0, u = 9007199254740991, c = NaN, f = 4294967295, m = [["ary", a], ["bind", 1], ["bindKey", 2], ["curry", 8], ["curryRight", 16], ["flip", 512], ["partial", s], ["partialRight", 64], ["rearg", 256]], d = "[object Arguments]", y = "[object Array]", _ = "[object Boolean]", S = "[object Date]", w = "[object Error]", E = "[object Function]", g = "[object GeneratorFunction]", v = "[object Map]", x = "[object Number]", O = "[object Object]", N = "[object Promise]", R = "[object RegExp]", U = "[object Set]", F = "[object String]", te = "[object Symbol]", Q = "[object WeakMap]", W = "[object ArrayBuffer]", ce = "[object DataView]", we = "[object Float32Array]", se = "[object Float64Array]", ee = "[object Int8Array]", me = "[object Int16Array]", P = "[object Int32Array]", G = "[object Uint8Array]", V = "[object Uint8ClampedArray]", q = "[object Uint16Array]", Zn = "[object Uint32Array]", Tt = /\b__p \+= '';/g, Qe = /\b(__p \+=) '' \+/g, pt = /(__e\(.*?\)|\b__t\)) \+\n'';/g, ze = /&(?:amp|lt|gt|quot|#39);/g, Ue = /[&<>"']/g, $t = RegExp(ze.source), gt = RegExp(Ue.source), Et = /<%-([\s\S]+?)%>/g, ie = /<%([\s\S]+?)%>/g, ve = /<%=([\s\S]+?)%>/g, Se = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Xe = /^\w*$/, ft = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Pe = /[\\^$.*+?()[\]{}|]/g, Lt = RegExp(Pe.source), wr = /^\s+/, Ft = /\s/, Zt = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, ol = /\{\n\/\* \[wrapped with (.+)\] \*/, dr = /,? & /, si = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, Sr = /[()=,{}\[\]\/\s]/, bi = /\\(\\)?/g, Ri = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, Ul = /\w*$/, Rr = /^[-+]0x[0-9a-f]+$/i, wu = /^0b[01]+$/i, Ds = /^\[object .+?Constructor\]$/, er = /^0o[0-7]+$/i, Ki = /^(?:0|[1-9]\d*)$/, Rf = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, ai = /($^)/, Hr = /['\n\r\u2028\u2029\\]/g, Su = "\\ud800-\\udfff", Jr = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff", Ea = "\\u2700-\\u27bf", Ps = "A-Z\\xc0-\\xd6\\xd8-\\xde", yr = "\\ufe0e\\ufe0f", Ir = "[" + Su + "]", ba = "[" + (Ls = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000") + "]", Ii = "[" + Jr + "]", M = "[" + Ea + "]", wi = "[" + (fn = "a-z\\xdf-\\xf6\\xf8-\\xff") + "]", os = "[\\ud800-\\udbff][\\udc00-\\udfff]", Nl = "\\u200d", us = "(?:" + wi + "|" + (Ls = "[^" + Su + Ls + "\\d+" + Ea + fn + Ps + "]") + ")", Ls = "(?:" + (Ps = "[" + Ps + "]") + "|" + Ls + ")", Ml = "(?:['\u2019](?:d|ll|m|re|s|t|ve))?", W5 = "(?:['\u2019](?:D|LL|M|RE|S|T|VE))?", Zo = (Zo = "[" + yr + "]?") + (J = "(?:" + Ii + "|" + (Ea = "\\ud83c[\\udffb-\\udfff]") + ")?") + "(?:" + Nl + "(?:" + [fn = "[^" + Su + "]", en = "(?:\\ud83c[\\udde6-\\uddff]){2}", os].join("|") + ")" + Zo + J + ")*", J = "(?:" + [M, en, os].join("|") + ")" + Zo, M = "(?:" + [fn + Ii + "?", Ii, en, os, Ir].join("|") + ")", Y = RegExp("['\u2019]", "g"), le = RegExp(Ii, "g"), ae = RegExp(Ea + "(?=" + Ea + ")|" + M + Zo, "g"), je = RegExp([Ps + "?" + wi + "+" + Ml + "(?=" + [ba, Ps, "$"].join("|") + ")", Ls + "+" + W5 + "(?=" + [ba, Ps + us, "$"].join("|") + ")", Ps + "?" + us + "+" + Ml, Ps + "+" + W5, "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", "\\d+", J].join("|"), "g"), bt = RegExp("[" + Nl + Su + Jr + yr + "]"), Gt = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, sn = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"], Tr = -1, Ze = {}, ut = (Ze[we] = Ze[se] = Ze[ee] = Ze[me] = Ze[P] = Ze[G] = Ze[V] = Ze[q] = Ze[Zn] = !0, Ze[d] = Ze[y] = Ze[W] = Ze[_] = Ze[ce] = Ze[S] = Ze[w] = Ze[E] = Ze[v] = Ze[x] = Ze[O] = Ze[R] = Ze[U] = Ze[F] = Ze[Q] = !1, {}), xr = (ut[d] = ut[y] = ut[W] = ut[ce] = ut[_] = ut[S] = ut[we] = ut[se] = ut[ee] = ut[me] = ut[P] = ut[v] = ut[x] = ut[O] = ut[R] = ut[U] = ut[F] = ut[te] = ut[G] = ut[V] = ut[q] = ut[Zn] = !0, ut[w] = ut[E] = ut[Q] = !1, { "\\": "\\", "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029" }), sr = parseFloat, Xt = parseInt, fn = typeof Ci == "object" && Ci && Ci.Object === Object && Ci, en = typeof self == "object" && self && self.Object === Object && self, cr = fn || en || Function("return this")(), kr = (os = e && !e.nodeType && e) && t && !t.nodeType && t, Xi = kr && kr.exports === os, cn = Xi && fn.process, ki = (Ir = function () { try { return kr && kr.require && kr.require("util").types || cn && cn.binding && cn.binding("util") } catch { } }()) && Ir.isArrayBuffer, Wi = Ir && Ir.isDate, Cl = Ir && Ir.isMap, Fs = Ir && Ir.isRegExp, $l = Ir && Ir.isSet, o2 = Ir && Ir.isTypedArray; function oi(oe, Ie, he) { switch (he.length) { case 0: return oe.call(Ie); case 1: return oe.call(Ie, he[0]); case 2: return oe.call(Ie, he[0], he[1]); case 3: return oe.call(Ie, he[0], he[1], he[2]) }return oe.apply(Ie, he) } function Tu(oe, Ie, he, rt) { for (var wt = -1, Bt = oe == null ? 0 : oe.length; ++wt < Bt;) { var xt = oe[wt]; Ie(rt, xt, he(xt), oe) } return rt } function Kr(oe, Ie) { for (var he = -1, rt = oe == null ? 0 : oe.length; ++he < rt && Ie(oe[he], he, oe) !== !1;); return oe } function wa(oe, Ie) { for (var he = -1, rt = oe == null ? 0 : oe.length; ++he < rt;)if (!Ie(oe[he], he, oe)) return !1; return !0 } function ui(oe, Ie) { for (var he = -1, rt = oe == null ? 0 : oe.length, wt = 0, Bt = []; ++he < rt;) { var xt = oe[he]; Ie(xt, he, oe) && (Bt[wt++] = xt) } return Bt } function cs(oe, Ie) { return !(oe == null || !oe.length) && -1 < u2(oe, Ie, 0) } function e3(oe, Ie, he) { for (var rt = -1, wt = oe == null ? 0 : oe.length; ++rt < wt;)if (he(Ie, oe[rt])) return !0; return !1 } function an(oe, Ie) { for (var he = -1, rt = oe == null ? 0 : oe.length, wt = Array(rt); ++he < rt;)wt[he] = Ie(oe[he], he, oe); return wt } function Us(oe, Ie) { for (var he = -1, rt = Ie.length, wt = oe.length; ++he < rt;)oe[wt + he] = Ie[he]; return oe } function B0(oe, Ie, he, rt) { var wt = -1, Bt = oe == null ? 0 : oe.length; for (rt && Bt && (he = oe[++wt]); ++wt < Bt;)he = Ie(he, oe[wt], wt, oe); return he } function Y5(oe, Ie, he, rt) { var wt = oe == null ? 0 : oe.length; for (rt && wt && (he = oe[--wt]); wt--;)he = Ie(he, oe[wt], wt, oe); return he } function Sa(oe, Ie) { for (var he = -1, rt = oe == null ? 0 : oe.length; ++he < rt;)if (Ie(oe[he], he, oe)) return !0; return !1 } var t3 = $s("length"); function H0(oe, Ie, he) { var rt; return he(oe, function (wt, Bt, xt) { if (Ie(wt, Bt, xt)) return rt = Bt, !1 }), rt } function Ms(oe, Ie, he, rt) { for (var wt = oe.length, Bt = he + (rt ? 1 : -1); rt ? Bt-- : ++Bt < wt;)if (Ie(oe[Bt], Bt, oe)) return Bt; return -1 } function u2(oe, Ie, he) { return Ie == Ie ? function (rt, wt, Bt) { for (var xt = Bt - 1, s3 = rt.length; ++xt < s3;)if (rt[xt] === wt) return xt; return -1 }(oe, Ie, he) : Ms(oe, Z5, he) } function Q5(oe, Ie, he, rt) { for (var wt = he - 1, Bt = oe.length; ++wt < Bt;)if (rt(oe[wt], Ie)) return wt; return -1 } function Z5(oe) { return oe != oe } function Bl(oe, Ie) { var he = oe == null ? 0 : oe.length; return he ? Bs(oe, Ie) / he : c } function $s(oe) { return function (Ie) { return Ie == null ? n : Ie[oe] } } function n3(oe) { return function (Ie) { return oe == null ? n : oe[Ie] } } function r3(oe, Ie, he, rt, wt) { return wt(oe, function (Bt, xt, s3) { he = rt ? (rt = !1, Bt) : Ie(he, Bt, xt, s3) }), he } function Bs(oe, Ie) { for (var he, rt = -1, wt = oe.length; ++rt < wt;) { var Bt = Ie(oe[rt]); Bt !== n && (he = he === n ? Bt : he + Bt) } return he } function e6(oe, Ie) { for (var he = -1, rt = Array(oe); ++he < oe;)rt[he] = Ie(he); return rt } function Ta(oe) { return oe && oe.slice(0, FT(oe) + 1).replace(wr, "") } function Xr(oe) { return function (Ie) { return oe(Ie) } } function xu(oe, Ie) { return an(Ie, function (he) { return oe[he] }) } function i3(oe, Ie) { return oe.has(Ie) } function t6(oe, Ie) { for (var he = -1, rt = oe.length; ++he < rt && -1 < u2(Ie, oe[he], 0);); return he } function n6(oe, Ie) { for (var he = oe.length; he-- && -1 < u2(Ie, oe[he], 0);); return he } var DT = n3({ \u00C0: "A", \u00C1: "A", \u00C2: "A", \u00C3: "A", \u00C4: "A", \u00C5: "A", \u00E0: "a", \u00E1: "a", \u00E2: "a", \u00E3: "a", \u00E4: "a", \u00E5: "a", \u00C7: "C", \u00E7: "c", \u00D0: "D", \u00F0: "d", \u00C8: "E", \u00C9: "E", \u00CA: "E", \u00CB: "E", \u00E8: "e", \u00E9: "e", \u00EA: "e", \u00EB: "e", \u00CC: "I", \u00CD: "I", \u00CE: "I", \u00CF: "I", \u00EC: "i", \u00ED: "i", \u00EE: "i", \u00EF: "i", \u00D1: "N", \u00F1: "n", \u00D2: "O", \u00D3: "O", \u00D4: "O", \u00D5: "O", \u00D6: "O", \u00D8: "O", \u00F2: "o", \u00F3: "o", \u00F4: "o", \u00F5: "o", \u00F6: "o", \u00F8: "o", \u00D9: "U", \u00DA: "U", \u00DB: "U", \u00DC: "U", \u00F9: "u", \u00FA: "u", \u00FB: "u", \u00FC: "u", \u00DD: "Y", \u00FD: "y", \u00FF: "y", \u00C6: "Ae", \u00E6: "ae", \u00DE: "Th", \u00FE: "th", \u00DF: "ss", \u0100: "A", \u0102: "A", \u0104: "A", \u0101: "a", \u0103: "a", \u0105: "a", \u0106: "C", \u0108: "C", \u010A: "C", \u010C: "C", \u0107: "c", \u0109: "c", \u010B: "c", \u010D: "c", \u010E: "D", \u0110: "D", \u010F: "d", \u0111: "d", \u0112: "E", \u0114: "E", \u0116: "E", \u0118: "E", \u011A: "E", \u0113: "e", \u0115: "e", \u0117: "e", \u0119: "e", \u011B: "e", \u011C: "G", \u011E: "G", \u0120: "G", \u0122: "G", \u011D: "g", \u011F: "g", \u0121: "g", \u0123: "g", \u0124: "H", \u0126: "H", \u0125: "h", \u0127: "h", \u0128: "I", \u012A: "I", \u012C: "I", \u012E: "I", \u0130: "I", \u0129: "i", \u012B: "i", \u012D: "i", \u012F: "i", \u0131: "i", \u0134: "J", \u0135: "j", \u0136: "K", \u0137: "k", \u0138: "k", \u0139: "L", \u013B: "L", \u013D: "L", \u013F: "L", \u0141: "L", \u013A: "l", \u013C: "l", \u013E: "l", \u0140: "l", \u0142: "l", \u0143: "N", \u0145: "N", \u0147: "N", \u014A: "N", \u0144: "n", \u0146: "n", \u0148: "n", \u014B: "n", \u014C: "O", \u014E: "O", \u0150: "O", \u014D: "o", \u014F: "o", \u0151: "o", \u0154: "R", \u0156: "R", \u0158: "R", \u0155: "r", \u0157: "r", \u0159: "r", \u015A: "S", \u015C: "S", \u015E: "S", \u0160: "S", \u015B: "s", \u015D: "s", \u015F: "s", \u0161: "s", \u0162: "T", \u0164: "T", \u0166: "T", \u0163: "t", \u0165: "t", \u0167: "t", \u0168: "U", \u016A: "U", \u016C: "U", \u016E: "U", \u0170: "U", \u0172: "U", \u0169: "u", \u016B: "u", \u016D: "u", \u016F: "u", \u0171: "u", \u0173: "u", \u0174: "W", \u0175: "w", \u0176: "Y", \u0177: "y", \u0178: "Y", \u0179: "Z", \u017B: "Z", \u017D: "Z", \u017A: "z", \u017C: "z", \u017E: "z", \u0132: "IJ", \u0133: "ij", \u0152: "Oe", \u0153: "oe", \u0149: "'n", \u017F: "s" }), PT = n3({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }); function LT(oe) { return "\\" + xr[oe] } function l3(oe) { return bt.test(oe) } function r6(oe) { var Ie = -1, he = Array(oe.size); return oe.forEach(function (rt, wt) { he[++Ie] = [wt, rt] }), he } function If(oe, Ie) { return function (he) { return oe(Ie(he)) } } function xa(oe, Ie) { for (var he = -1, rt = oe.length, wt = 0, Bt = []; ++he < rt;) { var xt = oe[he]; xt !== Ie && xt !== l || (oe[he] = l, Bt[wt++] = he) } return Bt } function i6(oe) { var Ie = -1, he = Array(oe.size); return oe.forEach(function (rt) { he[++Ie] = rt }), he } function Au(oe) { return (l3(oe) ? function (Ie) { for (var he = ae.lastIndex = 0; ae.test(Ie);)++he; return he } : t3)(oe) } function ps(oe) { return l3(oe) ? function (Ie) { return Ie.match(ae) || [] }(oe) : oe.split("") } function FT(oe) { for (var Ie = oe.length; Ie-- && Ft.test(oe.charAt(Ie));); return Ie } var LZ = n3({ "&amp;": "&", "&lt;": "<", "&gt;": ">", "&quot;": '"', "&#39;": "'" }), Ou = function oe(Wt) {
var he = (Wt = Wt == null ? cr : Ou.defaults(cr.Object(), Wt, Ou.pick(cr, sn))).Array, Hs = Wt.Date, rt = Wt.Error, wt = Wt.Function, Bt = Wt.Math, xt = Wt.Object, s3 = Wt.RegExp, FZ = Wt.String, Hl = Wt.TypeError, l6 = he.prototype, Gl = wt.prototype, Nu = xt.prototype, Cu = Wt["__core-js_shared__"], s6 = Gl.toString, Xn = Nu.hasOwnProperty, jZ = 0, jT = (Gl = /[^.]+$/.exec(Cu && Cu.keys && Cu.keys.IE_PROTO || "")) ? "Symbol(src)_1." + Gl : "", a6 = Nu.toString, UZ = s6.call(xt), MZ = cr._, $Z = s3("^" + s6.call(Xn).replace(Pe, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), Gl = Xi ? Wt.Buffer : n, Pi = Wt.Symbol, o6 = Wt.Uint8Array, UT = Gl ? Gl.allocUnsafe : n, u6 = If(xt.getPrototypeOf, xt), MT = xt.create, $T = Nu.propertyIsEnumerable, c6 = l6.splice, BT = Pi ? Pi.isConcatSpreadable : n, V0 = Pi ? Pi.iterator : n, a3 = Pi ? Pi.toStringTag : n, p6 = function () { try { var p = f3(xt, "defineProperty"); return p({}, "", {}), p } catch { } }(), kf = Wt.clearTimeout !== cr.clearTimeout && Wt.clearTimeout, dd = Hs && Hs.now !== cr.Date.now && Hs.now, Df = Wt.setTimeout !== cr.setTimeout && Wt.setTimeout, f6 = Bt.ceil, d6 = Bt.floor, Pf = xt.getOwnPropertySymbols, Gl = Gl ? Gl.isBuffer : n, HT = Wt.isFinite, BZ = l6.join, HZ = If(xt.keys, xt), Wr = Bt.max, Di = Bt.min, VZ = Hs.now, qZ = Wt.parseInt, VT = Bt.random, zZ = l6.reverse, Hs = f3(Wt, "DataView"), q0 = f3(Wt, "Map"), z0 = f3(Wt, "Promise"), Ru = f3(Wt, "Set"), Wt = f3(Wt, "WeakMap"), G0 = f3(xt, "create"), h6 = Wt && new Wt, Iu = {}, GZ = d3(Hs), JZ = d3(q0), KZ = d3(z0), XZ = d3(Ru), WZ = d3(Wt), J0 = (Pi = Pi ? Pi.prototype : n) ? Pi.valueOf : n, qT = Pi ? Pi.toString : n; function I(p) { if (Ar(p) && !St(p) && !(p instanceof Jt)) { if (p instanceof fs) return p; if (Xn.call(p, "__wrapped__")) return Gx(p) } return new fs(p) } var ku = function () { function p() { } return function (h) { return gr(h) ? MT ? MT(h) : (p.prototype = h, h = new p, p.prototype = n, h) : {} } }(); function m6() { } function fs(p, h) { this.__wrapped__ = p, this.__actions__ = [], this.__chain__ = !!h, this.__index__ = 0, this.__values__ = n } function Jt(p) { this.__wrapped__ = p, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = f, this.__views__ = [] } function o3(p) { var h = -1, b = p == null ? 0 : p.length; for (this.clear(); ++h < b;) { var A = p[h]; this.set(A[0], A[1]) } } function Aa(p) { var h = -1, b = p == null ? 0 : p.length; for (this.clear(); ++h < b;) { var A = p[h]; this.set(A[0], A[1]) } } function Oa(p) { var h = -1, b = p == null ? 0 : p.length; for (this.clear(); ++h < b;) { var A = p[h]; this.set(A[0], A[1]) } } function u3(p) { var h = -1, b = p == null ? 0 : p.length; for (this.__data__ = new Oa; ++h < b;)this.add(p[h]) } function ds(p) { p = this.__data__ = new Aa(p), this.size = p.size } function zT(p, h) { var b, A = St(p), C = !A && h3(p), L = !A && !C && h2(p), z = !A && !C && !L && Fu(p), K = A || C || L || z, re = K ? e6(p.length, FZ) : [], pe = re.length; for (b in p) !h && !Xn.call(p, b) || K && (b == "length" || L && (b == "offset" || b == "parent") || z && (b == "buffer" || b == "byteLength" || b == "byteOffset") || Ia(b, pe)) || re.push(b); return re } function GT(p) { var h = p.length; return h ? p[qf(0, h - 1)] : n } function JT(p, h, b) { (b === n || hs(p[h], b)) && (b !== n || h in p) || Na(p, h, b) } function K0(p, h, b) { var A = p[h]; Xn.call(p, h) && hs(A, b) && (b !== n || h in p) || Na(p, h, b) } function y6(p, h) { for (var b = p.length; b--;)if (hs(p[b][0], h)) return b; return -1 } function YZ(p, h, b, A) { return c2(p, function (C, L, z) { h(A, C, b(C), z) }), A } function KT(p, h) { return p && zs(h, ci(h), p) } function Na(p, h, b) { h == "__proto__" && p6 ? p6(p, h, { configurable: !0, enumerable: !0, value: b, writable: !0 }) : p[h] = b } function Lf(p, h) { for (var b = -1, A = h.length, C = he(A), L = p == null; ++b < A;)C[b] = L ? n : vd(p, h[b]); return C } function c3(p, h, b) { return p != p || (b !== n && (p = p <= b ? p : b), h === n) || h <= p ? p : h } function Vl(p, h, b, A, C, L) { var z, K = 1 & h, re = 2 & h, pe = 4 & h; if ((z = b ? C ? b(p, A, C, L) : b(p) : z) === n) { if (!gr(p)) return p; if (A = St(p)) { if (z = function (_e) { var xe = _e.length, nt = new _e.constructor(xe); return xe && typeof _e[0] == "string" && Xn.call(_e, "index") && (nt.index = _e.index, nt.input = _e.input), nt }(p), !K) return ul(p, z) } else { var fe = Li(p), Ae = fe == E || fe == g; if (h2(p)) return vx(p, K); if (fe == O || fe == d || Ae && !C) { if (z = re || Ae ? {} : jx(p), !K) return re ? function (_e, xe) { return zs(_e, Lx(_e), xe) }(p, function (_e, xe) { return _e && zs(xe, pl(xe), _e) }(z, p)) : function (_e, xe) { return zs(_e, ld(_e), xe) }(p, KT(z, p)) } else { if (!ut[fe]) return C ? p : {}; z = function (_e, xe) { var nt = _e.constructor; switch (fe) { case W: return Yf(_e); case _: case S: return new nt(+_e); case ce: return function (ke, De) { return De = xe ? Yf(ke.buffer) : ke.buffer, new ke.constructor(De, ke.byteOffset, ke.byteLength) }(_e); case we: case se: case ee: case me: case P: case G: case V: case q: case Zn: return _x(_e, xe); case v: return new nt; case x: case F: return new nt(_e); case R: return function (ke) { var De = new ke.constructor(ke.source, Ul.exec(ke)); return De.lastIndex = ke.lastIndex, De }(_e); case U: return new nt; case te: return J0 ? xt(J0.call(_e)) : {} } }(p, K) } } if (Ae = (L = L || new ds).get(p)) return Ae; L.set(p, z), cA(p) ? p.forEach(function (_e) { z.add(Vl(_e, h, b, _e, p, L)) }) : oA(p) && p.forEach(function (_e, xe) { z.set(xe, Vl(_e, h, b, xe, p, L)) }); var Ee = A ? n : (pe ? re ? td : ed : re ? pl : ci)(p); Kr(Ee || p, function (_e, xe) { Ee && (_e = p[xe = _e]), K0(z, xe, Vl(_e, h, b, xe, p, L)) }) } return z } function XT(p, h, b) { var A = b.length; if (p == null) return !A; for (p = xt(p); A--;) { var C = b[A], L = h[C], z = p[C]; if (z === n && !(C in p) || !L(z)) return !1 } return !0 } function WT(p, h, b) { if (typeof p != "function") throw new Hl(r); return t4(function () { p.apply(n, b) }, h) } function X0(p, h, b, A) { var C = -1, L = cs, z = !0, K = p.length, re = [], pe = h.length; if (K) { b && (h = an(h, Xr(b))), A ? (L = e3, z = !1) : 200 <= h.length && (L = i3, z = !1, h = new u3(h)); e: for (; ++C < K;) { var Ae = p[C], fe = b == null ? Ae : b(Ae), Ae = A || Ae !== 0 ? Ae : 0; if (z && fe == fe) { for (var Ee = pe; Ee--;)if (h[Ee] === fe) continue e; re.push(Ae) } else L(h, fe, A) || re.push(Ae) } } return re } I.templateSettings = { escape: Et, evaluate: ie, interpolate: ve, variable: "", imports: { _: I } }, (I.prototype = m6.prototype).constructor = I, (fs.prototype = ku(m6.prototype)).constructor = fs, (Jt.prototype = ku(m6.prototype)).constructor = Jt, o3.prototype.clear = function () { this.__data__ = G0 ? G0(null) : {}, this.size = 0 }, o3.prototype.delete = function (p) { return p = this.has(p) && delete this.__data__[p], this.size -= p ? 1 : 0, p }, o3.prototype.get = function (p) { var h, b = this.__data__; return G0 ? (h = b[p]) === i ? n : h : Xn.call(b, p) ? b[p] : n }, o3.prototype.has = function (p) { var h = this.__data__; return G0 ? h[p] !== n : Xn.call(h, p) }, o3.prototype.set = function (p, h) { var b = this.__data__; return this.size += this.has(p) ? 0 : 1, b[p] = G0 && h === n ? i : h, this }, Aa.prototype.clear = function () { this.__data__ = [], this.size = 0 }, Aa.prototype.delete = function (p) { var h = this.__data__; return !((p = y6(h, p)) < 0 || (p == h.length - 1 ? h.pop() : c6.call(h, p, 1), --this.size, 0)) }, Aa.prototype.get = function (p) { var h = this.__data__; return (p = y6(h, p)) < 0 ? n : h[p][1] }, Aa.prototype.has = function (p) { return -1 < y6(this.__data__, p) }, Aa.prototype.set = function (p, h) { var b = this.__data__, A = y6(b, p); return A < 0 ? (++this.size, b.push([p, h])) : b[A][1] = h, this }, Oa.prototype.clear = function () { this.size = 0, this.__data__ = { hash: new o3, map: new (q0 || Aa), string: new o3 } }, Oa.prototype.delete = function (p) { return p = N6(this, p).delete(p), this.size -= p ? 1 : 0, p }, Oa.prototype.get = function (p) { return N6(this, p).get(p) }, Oa.prototype.has = function (p) { return N6(this, p).has(p) }, Oa.prototype.set = function (p, h) { var b = N6(this, p), A = b.size; return b.set(p, h), this.size += b.size == A ? 0 : 1, this }, u3.prototype.add = u3.prototype.push = function (p) { return this.__data__.set(p, i), this }, u3.prototype.has = function (p) { return this.__data__.has(p) }, ds.prototype.clear = function () { this.__data__ = new Aa, this.size = 0 }, ds.prototype.delete = function (b) { var h = this.__data__, b = h.delete(b); return this.size = h.size, b }, ds.prototype.get = function (p) { return this.__data__.get(p) }, ds.prototype.has = function (p) { return this.__data__.has(p) }, ds.prototype.set = function (p, h) { var b = this.__data__; if (b instanceof Aa) { var A = b.__data__; if (!q0 || A.length < 199) return A.push([p, h]), this.size = ++b.size, this; b = this.__data__ = new Oa(A) } return b.set(p, h), this.size = b.size, this }; var c2 = Sx(Vs), YT = Sx(jf, !0); function g6(p, h, b) { for (var A = -1, C = p.length; ++A < C;) { var L, z, K = p[A], re = h(K); re != null && (L === n ? re == re && !Il(re) : b(re, L)) && (L = re, z = K) } return z } function QT(p, h) { var b = []; return c2(p, function (A, C, L) { h(A, C, L) && b.push(A) }), b } function Si(p, h, b, A, C) { var L = -1, z = p.length; for (b = b || nee, C = C || []; ++L < z;) { var K = p[L]; 0 < h && b(K) ? 1 < h ? Si(K, h - 1, b, A, C) : Us(C, K) : A || (C[C.length] = K) } return C } var Ff = Tx(), ZT = Tx(!0); function Vs(p, h) { return p && Ff(p, h, ci) } function jf(p, h) { return p && ZT(p, h, ci) } function v6(p, h) { return ui(h, function (b) { return ka(p[b]) }) } function p3(p, h) { for (var b = 0, A = (h = f2(h, p)).length; p != null && b < A;)p = p[Gs(h[b++])]; return b && b == A ? p : n } function ex(p, h, b) { return h = h(p), St(p) ? h : Us(h, b(p)) } function Yi(p) { return p == null ? p === n ? "[object Undefined]" : "[object Null]" : (a3 && a3 in xt(p) ? function (h) { var b = Xn.call(h, a3), A = h[a3]; try { h[a3] = n; var C = !0 } catch { } var L = a6.call(h); return C && (b ? h[a3] = A : delete h[a3]), L } : function (h) { return a6.call(h) })(p) } function Uf(p, h) { return h < p } function QZ(p, h) { return p != null && Xn.call(p, h) } function ZZ(p, h) { return p != null && h in xt(p) } function Mf(p, h, b) { for (var A = b ? e3 : cs, C = p[0].length, L = p.length, z = L, K = he(L), re = 1 / 0, pe = []; z--;) { var fe = p[z]; z && h && (fe = an(fe, Xr(h))), re = Di(fe.length, re), K[z] = !b && (h || 120 <= C && 120 <= fe.length) ? new u3(z && fe) : n } var fe = p[0], Ae = -1, Ee = K[0]; e: for (; ++Ae < C && pe.length < re;) { var xe = fe[Ae], _e = h ? h(xe) : xe, xe = b || xe !== 0 ? xe : 0; if (!(Ee ? i3(Ee, _e) : A(pe, _e, b))) { for (z = L; --z;) { var nt = K[z]; if (!(nt ? i3(nt, _e) : A(p[z], _e, b))) continue e } Ee && Ee.push(_e), pe.push(xe) } } return pe } function W0(p, h, b) { return (h = (p = Bx(p, h = f2(h, p))) == null ? p : p[Gs(zl(h))]) == null ? n : oi(h, p, b) } function tx(p) { return Ar(p) && Yi(p) == d } function Y0(p, h, b, A, C) { return p === h || (p == null || h == null || !Ar(p) && !Ar(h) ? p != p && h != h : function (L, z, K, re, pe, fe) { var Ae = St(L), _e = St(z), Ee = Ae ? y : Li(L), _e = _e ? y : Li(z), xe = (Ee = Ee == d ? O : Ee) == O, nt = (_e = _e == d ? O : _e) == O; if ((_e = Ee == _e) && h2(L)) { if (!h2(z)) return !1; xe = !(Ae = !0) } return _e && !xe ? (fe = fe || new ds, Ae || Fu(L) ? Px(L, z, K, re, pe, fe) : function (ke, De, We, it, ct, hr, Or) { switch (We) { case ce: if (ke.byteLength != De.byteLength || ke.byteOffset != De.byteOffset) return !1; ke = ke.buffer, De = De.buffer; case W: return !(ke.byteLength != De.byteLength || !hr(new o6(ke), new o6(De))); case _: case S: case x: return hs(+ke, +De); case w: return ke.name == De.name && ke.message == De.message; case R: case F: return ke == De + ""; case v: var Pr = r6; case U: var Vr, Pr = Pr || i6; return ke.size == De.size || 1 & it ? (Vr = Or.get(ke)) ? Vr == De : (it |= 2, Or.set(ke, De), Vr = Px(Pr(ke), Pr(De), it, ct, hr, Or), Or.delete(ke), Vr) : !1; case te: if (J0) return J0.call(ke) == J0.call(De) }return !1 }(L, z, Ee, K, re, pe, fe)) : 1 & K || (Ae = xe && Xn.call(L, "__wrapped__"), Ee = nt && Xn.call(z, "__wrapped__"), !Ae && !Ee) ? _e && function (ke, De, We, it, ct, hr) { var Or = 1 & We, Vr = ed(ke), Pr = Vr.length; if (Pr != ed(De).length && !Or) return !1; for (var ms = Pr; ms--;) { var Pa = Vr[ms]; if (!(Or ? Pa in De : Xn.call(De, Pa))) return !1 } var La = hr.get(ke), Uu = hr.get(De); if (La && Uu) return La == De && Uu == ke; for (var U6 = !0, Nd = (hr.set(ke, De), hr.set(De, ke), Or); ++ms < Pr;) { var Cd, M6 = ke[Pa = Vr[ms]], $6 = De[Pa]; if (!((Cd = it ? Or ? it($6, M6, Pa, De, ke, hr) : it(M6, $6, Pa, ke, De, hr) : Cd) === n ? M6 === $6 || ct(M6, $6, We, it, hr) : Cd)) { U6 = !1; break } Nd = Nd || Pa == "constructor" } return U6 && !Nd && (La = ke.constructor) != (Uu = De.constructor) && "constructor" in ke && "constructor" in De && !(typeof La == "function" && La instanceof La && typeof Uu == "function" && Uu instanceof Uu) && (U6 = !1), hr.delete(ke), hr.delete(De), U6 }(L, z, K, re, pe, fe = fe || new ds) : pe(Ae ? L.value() : L, Ee ? z.value() : z, K, re, fe = fe || new ds) }(p, h, b, A, Y0, C)) } function $f(p, h, b, A) { var C = b.length, L = C, z = !A; if (p == null) return !L; for (p = xt(p); C--;) { var K = b[C]; if (z && K[2] ? K[1] !== p[K[0]] : !(K[0] in p)) return !1 } for (; ++C < L;) { var re = (K = b[C])[0], pe = p[re], fe = K[1]; if (z && K[2]) { if (pe === n && !(re in p)) return !1 } else { var Ae, Ee = new ds; if (!((Ae = A ? A(pe, fe, re, p, h, Ee) : Ae) === n ? Y0(fe, pe, 3, A, Ee) : Ae)) return !1 } } return !0 } function nx(p) { return !(!gr(p) || function (h) { return jT && jT in h }(p)) && (ka(p) ? $Z : Ds).test(d3(p)) } function rx(p) { return typeof p == "function" ? p : p == null ? fl : typeof p == "object" ? St(p) ? sx(p[0], p[1]) : lx(p) : SA(p) } function Bf(p) { if (!e4(p)) return HZ(p); var h, b = []; for (h in xt(p)) Xn.call(p, h) && h != "constructor" && b.push(h); return b } function Hf(p, h) { return p < h } function ix(p, h) { var b = -1, A = cl(p) ? he(p.length) : []; return c2(p, function (C, L, z) { A[++b] = h(C, L, z) }), A } function lx(p) { var h = rd(p); return h.length == 1 && h[0][2] ? Mx(h[0][0], h[0][1]) : function (b) { return b === p || $f(b, p, h) } } function sx(p, h) { return sd(p) && Ux(h) ? Mx(Gs(p), h) : function (b) { var A = vd(b, p); return A === n && A === h ? _d(b, p) : Y0(h, A, 3) } } function _6(p, h, b, A, C) { p !== h && Ff(h, function (L, z) { var K; C = C || new ds, gr(L) ? function (re, pe, fe, Ae, Ee, _e, xe) { var nt, ke, De, We = od(re, fe), it = od(pe, fe), ct = xe.get(it); ct || ((pe = (ct = _e ? _e(We, it, fe + "", re, pe, xe) : n) === n) && (ke = !(nt = St(it)) && h2(it), De = !nt && !ke && Fu(it), ct = it, nt || ke || De ? ct = St(We) ? We : Dr(We) ? ul(We) : ke ? vx(it, !(pe = !1)) : De ? _x(it, !(pe = !1)) : [] : n4(it) || h3(it) ? h3(ct = We) ? ct = dA(We) : gr(We) && !ka(We) || (ct = jx(it)) : pe = !1), pe && (xe.set(it, ct), Ee(ct, it, Ae, _e, xe), xe.delete(it))), JT(re, fe, ct) }(p, h, z, b, _6, A, C) : (K = A ? A(od(p, z), L, z + "", p, h, C) : n, JT(p, z, K === n ? L : K)) }, pl) } function ax(p, h) { var b = p.length; if (b) return Ia(h += h < 0 ? b : 0, b) ? p[h] : n } function ox(p, h, b) { h = h.length ? an(h, function (C) { return St(C) ? function (L) { return p3(L, C.length === 1 ? C[0] : C) } : C }) : [fl]; var A = -1; return h = an(h, Xr(ot())), function (C, L) { var z = C.length; for (C.sort(L); z--;)C[z] = C[z].value; return C }(ix(p, function (C, L, z) { return { criteria: an(h, function (K) { return K(C) }), index: ++A, value: C } }), function (C, L) { return function (z, K, re) { for (var pe = -1, fe = z.criteria, Ae = K.criteria, Ee = fe.length, _e = re.length; ++pe < Ee;) { var xe = Ex(fe[pe], Ae[pe]); if (xe) return _e <= pe ? xe : xe * (re[pe] == "desc" ? -1 : 1) } return z.index - K.index }(C, L, b) }) } function ux(p, h, b) { for (var A = -1, C = h.length, L = {}; ++A < C;) { var z = h[A], K = p3(p, z); b(K, z) && Q0(L, f2(z, p), K) } return L } function Vf(p, h, b, A) { var C = A ? Q5 : u2, L = -1, z = h.length, K = p; for (p === h && (h = ul(h)), b && (K = an(p, Xr(b))); ++L < z;)for (var re = 0, pe = h[L], fe = b ? b(pe) : pe; -1 < (re = C(K, fe, re, A));)K !== p && c6.call(K, re, 1), c6.call(p, re, 1); return p } function cx(p, h) { for (var b = p ? h.length : 0, A = b - 1; b--;) { var C, L = h[b]; b != A && L === C || (Ia(C = L) ? c6.call(p, L, 1) : Jf(p, L)) } } function qf(p, h) { return p + d6(VT() * (h - p + 1)) } function zf(p, h) { var b = ""; if (!(!p || h < 1 || u < h)) for (; h % 2 && (b += p), (h = d6(h / 2)) && (p += p), h;); return b } function Rt(p, h) { return ud($x(p, h, fl), p + "") } function Q0(p, h, b, A) { if (gr(p)) for (var C = -1, L = (h = f2(h, p)).length, z = L - 1, K = p; K != null && ++C < L;) { var re, pe = Gs(h[C]), fe = b; if (pe === "__proto__" || pe === "constructor" || pe === "prototype") return p; K0(K, pe, fe = C != z && (re = K[pe], (fe = A ? A(re, pe, K) : n) === n) ? gr(re) ? re : Ia(h[C + 1]) ? [] : {} : fe), K = K[pe] } return p } var px = h6 ? function (p, h) { return h6.set(p, h), p } : fl, Pi = p6 ? function (p, h) { return p6(p, "toString", { configurable: !0, enumerable: !1, value: bd(h), writable: !0 }) } : fl; function ql(p, h, b) { var A = -1, C = p.length; (b = C < b ? C : b) < 0 && (b += C), C = b < (h = h < 0 ? C < -h ? 0 : C + h : h) ? 0 : b - h >>> 0, h >>>= 0; for (var L = he(C); ++A < C;)L[A] = p[A + h]; return L } function E6(p, h, b) { var A = 0, C = p == null ? A : p.length; if (typeof h == "number" && h == h && C <= 2147483647) { for (; A < C;) { var L = A + C >>> 1, z = p[L]; z !== null && !Il(z) && (b ? z <= h : z < h) ? A = 1 + L : C = L } return C } return Gf(p, h, fl, b) } function Gf(p, h, b, A) { var C = 0, L = p == null ? 0 : p.length; if (L === 0) return 0; for (var z = (h = b(h)) != h, K = h === null, re = Il(h), pe = h === n; C < L;) { var fe = d6((C + L) / 2), Ae = b(p[fe]), Ee = Ae !== n, _e = Ae === null, xe = Ae == Ae, nt = Il(Ae); (z ? A || xe : pe ? xe && (A || Ee) : K ? xe && Ee && (A || !_e) : re ? xe && Ee && !_e && (A || !nt) : !_e && !nt && (A ? Ae <= h : Ae < h)) ? C = fe + 1 : L = fe } return Di(L, 4294967294) } function fx(p, h) { for (var b = -1, A = p.length, C = 0, L = []; ++b < A;) { var z, K = p[b], re = h ? h(K) : K; b && hs(re, z) || (z = re, L[C++] = K === 0 ? 0 : K) } return L } function dx(p) { return typeof p == "number" ? p : Il(p) ? c : +p } function Rl(p) { var h; return typeof p == "string" ? p : St(p) ? an(p, Rl) + "" : Il(p) ? qT ? qT.call(p) : "" : (h = p + "") == "0" && 1 / p == -1 / 0 ? "-0" : h } function p2(p, h, b) { var A = -1, C = cs, L = p.length, z = !0, K = [], re = K; if (b) z = !1, C = e3; else if (200 <= L) { var pe = h ? null : eee(p); if (pe) return i6(pe); z = !1, C = i3, re = new u3 } else re = h ? [] : K; e: for (; ++A < L;) { var Ae = p[A], fe = h ? h(Ae) : Ae, Ae = b || Ae !== 0 ? Ae : 0; if (z && fe == fe) { for (var Ee = re.length; Ee--;)if (re[Ee] === fe) continue e; h && re.push(fe), K.push(Ae) } else C(re, fe, b) || (re !== K && re.push(fe), K.push(Ae)) } return K } function Jf(p, h) { return (p = Bx(p, h = f2(h, p))) == null || delete p[Gs(zl(h))] } function hx(p, h, b, A) { return Q0(p, h, b(p3(p, h)), A) } function b6(p, h, b, A) { for (var C = p.length, L = A ? C : -1; (A ? L-- : ++L < C) && h(p[L], L, p);); return b ? ql(p, A ? 0 : L, A ? L + 1 : C) : ql(p, A ? L + 1 : 0, A ? C : L) } function mx(p, h) { var b = p; return B0(h, function (A, C) { return C.func.apply(C.thisArg, Us([A], C.args)) }, p instanceof Jt ? p.value() : b) } function Kf(p, h, b) { var A = p.length; if (A < 2) return A ? p2(p[0]) : []; for (var C = -1, L = he(A); ++C < A;)for (var z = p[C], K = -1; ++K < A;)K != C && (L[C] = X0(L[C] || z, p[K], h, b)); return p2(Si(L, 1), h, b) } function yx(p, h, b) { for (var A = -1, C = p.length, L = h.length, z = {}; ++A < C;) { var K = A < L ? h[A] : n; b(z, p[A], K) } return z } function Xf(p) { return Dr(p) ? p : [] } function Wf(p) { return typeof p == "function" ? p : fl } function f2(p, h) { return St(p) ? p : sd(p, h) ? [p] : zx(dn(p)) } var hd = Rt; function d2(p, h, b) { var A = p.length; return b = b === n ? A : b, !h && A <= b ? p : ql(p, h, b) } var gx = kf || function (p) { return cr.clearTimeout(p) }; function vx(p, h) { return h ? p.slice() : (h = p.length, h = UT ? UT(h) : new p.constructor(h), p.copy(h), h) } function Yf(p) { var h = new p.constructor(p.byteLength); return new o6(h).set(new o6(p)), h } function _x(p, h) { return h = h ? Yf(p.buffer) : p.buffer, new p.constructor(h, p.byteOffset, p.length) } function Ex(p, h) { if (p !== h) { var b = p !== n, A = p === null, C = p == p, L = Il(p), z = h !== n, K = h === null, re = h == h, pe = Il(h); if (!K && !pe && !L && h < p || L && z && re && !K && !pe || A && z && re || !b && re || !C) return 1; if (!A && !L && !pe && p < h || pe && b && C && !A && !L || K && b && C || !z && C || !re) return -1 } return 0 } function bx(p, h, b, A) { for (var C = -1, L = p.length, z = b.length, K = -1, re = h.length, pe = Wr(L - z, 0), fe = he(re + pe), Ae = !A; ++K < re;)fe[K] = h[K]; for (; ++C < z;)(Ae || C < L) && (fe[b[C]] = p[C]); for (; pe--;)fe[K++] = p[C++]; return fe } function wx(p, h, b, A) { for (var C = -1, L = p.length, z = -1, K = b.length, re = -1, pe = h.length, fe = Wr(L - K, 0), Ae = he(fe + pe), Ee = !A; ++C < fe;)Ae[C] = p[C]; for (var _e = C; ++re < pe;)Ae[_e + re] = h[re]; for (; ++z < K;)(Ee || C < L) && (Ae[_e + b[z]] = p[C++]); return Ae } function ul(p, h) { var b = -1, A = p.length; for (h = h || he(A); ++b < A;)h[b] = p[b]; return h } function zs(p, h, b, A) { var C = !b; b = b || {}; for (var L = -1, z = h.length; ++L < z;) { var K = h[L], re = A ? A(b[K], p[K], K, b, p) : n; (C ? Na : K0)(b, K, re === n ? p[K] : re) } return b } function w6(p, h) { return function (b, A) { var C = St(b) ? Tu : YZ, L = h ? h() : {}; return C(b, p, ot(A, 2), L) } } function Du(p) { return Rt(function (h, b) { var A = -1, C = b.length, z = 1 < C ? b[C - 1] : n, L = 2 < C ? b[2] : n, z = 3 < p.length && typeof z == "function" ? (C--, z) : n; for (L && Qi(b[0], b[1], L) && (z = C < 3 ? n : z, C = 1), h = xt(h); ++A < C;) { var K = b[A]; K && p(h, K, A, z) } return h }) } function Sx(p, h) { return function (b, A) { if (b != null) { if (!cl(b)) return p(b, A); for (var C = b.length, L = h ? C : -1, z = xt(b); (h ? L-- : ++L < C) && A(z[L], L, z) !== !1;); } return b } } function Tx(p) { return function (h, b, A) { for (var C = -1, L = xt(h), z = A(h), K = z.length; K--;) { var re = z[p ? K : ++C]; if (b(L[re], re, L) === !1) break } return h } } function xx(p) { return function (h) { var b = (A = l3(h = dn(h)) ? ps(h) : n) ? A[0] : h.charAt(0), A = A ? d2(A, 1).join("") : h.slice(1); return b[p]() + A } } function Pu(p) { return function (h) { return B0(bA(EA(h).replace(Y, "")), p, "") } } function Z0(p) { return function () { var h = arguments; switch (h.length) { case 0: return new p; case 1: return new p(h[0]); case 2: return new p(h[0], h[1]); case 3: return new p(h[0], h[1], h[2]); case 4: return new p(h[0], h[1], h[2], h[3]); case 5: return new p(h[0], h[1], h[2], h[3], h[4]); case 6: return new p(h[0], h[1], h[2], h[3], h[4], h[5]); case 7: return new p(h[0], h[1], h[2], h[3], h[4], h[5], h[6]) }var b = ku(p.prototype), A = p.apply(b, h); return gr(A) ? A : b } } function Ax(p) { return function (h, b, A) { var C, L = xt(h); return cl(h) || (C = ot(b, 3), h = ci(h), b = function (z) { return C(L[z], z, L) }), -1 < (b = p(h, b, A)) ? L[C ? h[b] : b] : n } } function Ox(p) { return Ra(function (h) { var b = h.length, A = b, C = fs.prototype.thru; for (p && h.reverse(); A--;) { var L = h[A]; if (typeof L != "function") throw new Hl(r); C && !re && O6(L) == "wrapper" && (re = new fs([], !0)) } for (A = re ? A : b; ++A < b;)var z = O6(L = h[A]), K = z == "wrapper" ? nd(L) : n, re = K && ad(K[0]) && K[1] == 424 && !K[4].length && K[9] == 1 ? re[O6(K[0])].apply(re, K[3]) : L.length == 1 && ad(L) ? re[z]() : re.thru(L); return function () { var pe = arguments, fe = pe[0]; if (re && pe.length == 1 && St(fe)) return re.plant(fe).value(); for (var Ae = 0, Ee = b ? h[Ae].apply(this, pe) : fe; ++Ae < b;)Ee = h[Ae].call(this, Ee); return Ee } }) } function S6(p, h, b, A, C, L, z, K, re, pe) { var fe = h & a, Ae = 1 & h, Ee = 2 & h, _e = 24 & h, xe = 512 & h, nt = Ee ? n : Z0(p); return function ke() { for (var De, We, it = arguments.length, ct = he(it), hr = it; hr--;)ct[hr] = arguments[hr]; return _e && (We = function (Or, Vr) { for (var Pr = Or.length, ms = 0; Pr--;)Or[Pr] === Vr && ++ms; return ms }(ct, De = Lu(ke))), A && (ct = bx(ct, A, C, _e)), L && (ct = wx(ct, L, z, _e)), it -= We, _e && it < pe ? (We = xa(ct, De), Rx(p, h, S6, ke.placeholder, b, ct, We, K, re, pe - it)) : (De = Ae ? b : this, We = Ee ? De[p] : p, it = ct.length, K ? ct = function (Or, Vr) { for (var Pr = Or.length, ms = Di(Vr.length, Pr), Pa = ul(Or); ms--;) { var La = Vr[ms]; Or[ms] = Ia(La, Pr) ? Pa[La] : n } return Or }(ct, K) : xe && 1 < it && ct.reverse(), fe && re < it && (ct.length = re), (We = this && this !== cr && this instanceof ke ? nt || Z0(We) : We).apply(De, ct)) } } function Nx(p, h) { return function (b, A) { return function (C, L, z, K) { return Vs(C, function (re, pe, fe) { L(K, z(re), pe, fe) }), K }(b, p, h(A), {}) } } function T6(p, h) { return function (b, A) { var C; if (b === n && A === n) return h; if (b !== n && (C = b), A !== n) { if (C === n) return A; A = (typeof b == "string" || typeof A == "string" ? (b = Rl(b), Rl) : (b = dx(b), dx))(A), C = p(b, A) } return C } } function Qf(p) { return Ra(function (h) { return h = an(h, Xr(ot())), Rt(function (b) { var A = this; return p(h, function (C) { return oi(C, A, b) }) }) }) } function x6(p, h) { var b = (h = h === n ? " " : Rl(h)).length; return b < 2 ? b ? zf(h, p) : h : (b = zf(h, f6(p / Au(h))), l3(h) ? d2(ps(b), 0, p).join("") : b.slice(0, p)) } function Cx(p) { return function (h, b, A) { return A && typeof A != "number" && Qi(h, b, A) && (b = A = n), h = Da(h), b === n ? (b = h, h = 0) : b = Da(b), function (C, L, z, K) { for (var re = -1, pe = Wr(f6((L - C) / (z || 1)), 0), fe = he(pe); pe--;)fe[K ? pe : ++re] = C, C += z; return fe }(h, b, A = A === n ? h < b ? 1 : -1 : Da(A), p) } } function A6(p) { return function (h, b) { return typeof h == "string" && typeof b == "string" || (h = Jl(h), b = Jl(b)), p(h, b) } } function Rx(p, h, b, A, Ae, Ee, z, K, re, pe) { var fe = 8 & h, Ae = (4 & (h = (h | (fe ? s : 64)) & ~(fe ? 64 : s)) || (h &= -4), [p, h, Ae, fe ? Ee : n, fe ? z : n, fe ? n : Ee, fe ? n : z, K, re, pe]), Ee = b.apply(n, Ae); return ad(p) && Hx(Ee, Ae), Ee.placeholder = A, Vx(Ee, p, h) } function Zf(p) { var h = Bt[p]; return function (b, A) { var C; return b = Jl(b), (A = A == null ? 0 : Di(At(A), 292)) && HT(b) ? (C = (dn(b) + "e").split("e"), +((C = (dn(h(C[0] + "e" + (+C[1] + A))) + "e").split("e"))[0] + "e" + (+C[1] - A))) : h(b) } } var eee = Ru && 1 / i6(new Ru([, -0]))[1] == o ? function (p) { return new Ru(p) } : Td; function Ix(p) { return function (h) { var b = Li(h); return b == v ? r6(h) : b == U ? function (A) { var C = -1, L = Array(A.size); return A.forEach(function (z) { L[++C] = [z, z] }), L }(h) : function (A, C) { return an(C, function (L) { return [L, A[L]] }) }(h, p(h)) } } function Ca(p, h, b, A, C, L, z, K) { var re, pe, fe, Ae = 2 & h; if (Ae || typeof p == "function") return (re = A ? A.length : 0) || (h &= -97, A = C = n), z = z === n ? z : Wr(At(z), 0), K = K === n ? K : At(K), re -= C ? C.length : 0, 64 & h && (fe = A, pe = C, A = C = n), fe = [p, h, b, A, C, fe, pe, L, z, K], (pe = Ae ? n : nd(p)) && function (Ee, _e) { var xe, nt = Ee[1], ke = _e[1], De = nt | ke, We = ke == a && nt == 8 || ke == a && nt == 256 && Ee[7].length <= _e[8] || ke == 384 && _e[7].length <= _e[8] && nt == 8; (De < 131 || We) && (1 & ke && (Ee[2] = _e[2], De |= 1 & nt ? 0 : 4), (We = _e[3]) && (xe = Ee[3], Ee[3] = xe ? bx(xe, We, _e[4]) : We, Ee[4] = xe ? xa(Ee[3], l) : _e[4]), (We = _e[5]) && (xe = Ee[5], Ee[5] = xe ? wx(xe, We, _e[6]) : We, Ee[6] = xe ? xa(Ee[5], l) : _e[6]), (We = _e[7]) && (Ee[7] = We), ke & a && (Ee[8] = Ee[8] == null ? _e[8] : Di(Ee[8], _e[8])), Ee[9] == null && (Ee[9] = _e[9]), Ee[0] = _e[0], Ee[1] = De) }(fe, pe), p = fe[0], h = fe[1], b = fe[2], A = fe[3], C = fe[4], !(K = fe[9] = fe[9] === n ? Ae ? 0 : p.length : Wr(fe[9] - re, 0)) && 24 & h && (h &= -25), L = h && h != 1 ? h == 8 || h == 16 ? function (Ee, _e, xe) { var nt = Z0(Ee); return function ke() { for (var De = arguments.length, We = he(De), it = De, ct = Lu(ke); it--;)We[it] = arguments[it]; return (De -= (ct = De < 3 && We[0] !== ct && We[De - 1] !== ct ? [] : xa(We, ct)).length) < xe ? Rx(Ee, _e, S6, ke.placeholder, n, We, ct, n, n, xe - De) : oi(this && this !== cr && this instanceof ke ? nt : Ee, this, We) } }(p, h, K) : h != s && h != 33 || C.length ? S6.apply(n, fe) : function (Ee, _e, xe, nt) { var ke = 1 & _e, De = Z0(Ee); return function We() { for (var it = -1, ct = arguments.length, hr = -1, Or = nt.length, Vr = he(Or + ct), Pr = this && this !== cr && this instanceof We ? De : Ee; ++hr < Or;)Vr[hr] = nt[hr]; for (; ct--;)Vr[hr++] = arguments[++it]; return oi(Pr, ke ? xe : this, Vr) } }(p, h, b, A) : function (Ee, _e, xe) { var nt = 1 & _e, ke = Z0(Ee); return function De() { return (this && this !== cr && this instanceof De ? ke : Ee).apply(nt ? xe : this, arguments) } }(p, h, b), Vx((pe ? px : Hx)(L, fe), p, h); throw new Hl(r) } function kx(p, h, b, A) { return p === n || hs(p, Nu[b]) && !Xn.call(A, b) ? h : p } function Dx(p, h, b, A, C, L) { return gr(p) && gr(h) && (L.set(h, p), _6(p, h, n, Dx, L), L.delete(h)), p } function tee(p) { return n4(p) ? n : p } function Px(p, h, b, A, C, L) { var z = 1 & b, K = p.length; if (K != (re = h.length) && !(z && K < re)) return !1; var re = L.get(p), pe = L.get(h); if (re && pe) return re == h && pe == p; var fe = -1, Ae = !0, Ee = 2 & b ? new u3 : n; for (L.set(p, h), L.set(h, p); ++fe < K;) { var _e, xe = p[fe], nt = h[fe]; if ((_e = A ? z ? A(nt, xe, fe, h, p, L) : A(xe, nt, fe, p, h, L) : _e) !== n) { if (_e) continue; Ae = !1; break } if (Ee) { if (!Sa(h, function (ke, De) { return !i3(Ee, De) && (xe === ke || C(xe, ke, b, A, L)) && Ee.push(De) })) { Ae = !1; break } } else if (xe !== nt && !C(xe, nt, b, A, L)) { Ae = !1; break } } return L.delete(p), L.delete(h), Ae } function Ra(p) { return ud($x(p, n, Xx), p + "") } function ed(p) { return ex(p, ci, ld) } function td(p) { return ex(p, pl, Lx) } var nd = h6 ? function (p) { return h6.get(p) } : Td; function O6(p) { for (var h = p.name + "", b = Iu[h], A = Xn.call(Iu, h) ? b.length : 0; A--;) { var C = b[A], L = C.func; if (L == null || L == p) return C.name } return h } function Lu(p) { return (Xn.call(I, "placeholder") ? I : p).placeholder } function ot() { var p = (p = I.iteratee || wd) === wd ? rx : p; return arguments.length ? p(arguments[0], arguments[1]) : p } function N6(A, h) { var b, A = A.__data__; return ((b = typeof h) == "string" || b == "number" || b == "symbol" || b == "boolean" ? h !== "__proto__" : h === null) ? A[typeof h == "string" ? "string" : "hash"] : A.map } function rd(p) { for (var h = ci(p), b = h.length; b--;) { var A = h[b], C = p[A]; h[b] = [A, C, Ux(C)] } return h } function f3(p, h) { return nx(p = function (b, A) { return b == null ? n : b[A] }(p, h)) ? p : n } var ld = Pf ? function (p) { return p == null ? [] : (p = xt(p), ui(Pf(p), function (h) { return $T.call(p, h) })) } : xd, Lx = Pf ? function (p) { for (var h = []; p;)Us(h, ld(p)), p = u6(p); return h } : xd, Li = Yi; function Fx(p, h, b) { for (var A = -1, C = (h = f2(h, p)).length, L = !1; ++A < C;) { var z = Gs(h[A]); if (!(L = p != null && b(p, z))) break; p = p[z] } return L || ++A != C ? L : !!(C = p == null ? 0 : p.length) && L6(C) && Ia(z, C) && (St(p) || h3(p)) } function jx(p) { return typeof p.constructor != "function" || e4(p) ? {} : ku(u6(p)) } function nee(p) { return St(p) || h3(p) || !!(BT && p && p[BT]) } function Ia(p, h) { var b = typeof p; return !!(h = h ?? u) && (b == "number" || b != "symbol" && Ki.test(p)) && -1 < p && p % 1 == 0 && p < h } function Qi(p, h, b) { var A; return !!gr(b) && !!((A = typeof h) == "number" ? cl(b) && Ia(h, b.length) : A == "string" && h in b) && hs(b[h], p) } function sd(p, h) { var b; return !St(p) && ((b = typeof p) == "number" || b == "symbol" || b == "boolean" || p == null || Il(p) || Xe.test(p) || !Se.test(p) || h != null && p in xt(h)) } function ad(p) { var h = O6(p), b = I[h]; return typeof b == "function" && h in Jt.prototype && (p === b || (h = nd(b)) && p === h[0]) } (Hs && Li(new Hs(new ArrayBuffer(1))) != ce || q0 && Li(new q0) != v || z0 && Li(z0.resolve()) != N || Ru && Li(new Ru) != U || Wt && Li(new Wt) != Q) && (Li = function (p) { var h = Yi(p); if (p = (p = h == O ? p.constructor : n) ? d3(p) : "") switch (p) { case GZ: return ce; case JZ: return v; case KZ: return N; case XZ: return U; case WZ: return Q }return h }); var ree = Cu ? ka : Ad; function e4(p) { var h = p && p.constructor; return p === (typeof h == "function" && h.prototype || Nu) } function Ux(p) { return p == p && !gr(p) } function Mx(p, h) { return function (b) { return b != null && b[p] === h && (h !== n || p in xt(b)) } } function $x(p, h, b) { return h = Wr(h === n ? p.length - 1 : h, 0), function () { for (var A = arguments, C = -1, L = Wr(A.length - h, 0), z = he(L); ++C < L;)z[C] = A[h + C]; for (var C = -1, K = he(h + 1); ++C < h;)K[C] = A[C]; return K[h] = b(z), oi(p, this, K) } } function Bx(p, h) { return h.length < 2 ? p : p3(p, ql(h, 0, -1)) } function od(p, h) { if ((h !== "constructor" || typeof p[h] != "function") && h != "__proto__") return p[h] } var Hx = qx(px), t4 = Df || function (p, h) { return cr.setTimeout(p, h) }, ud = qx(Pi); function Vx(p, h, b) {
var A = h + ""; return ud(p, function (C, L) {
var z, K = L.length; return K ? (L[z = K - 1] = (1 < K ? "& " : "") + L[z], L = L.join(2 < K ? ", " : " "), C.replace(Zt, `{
/* [wrapped with `+ L + `] */
`)) : C
}(A, function (C, L) { return Kr(m, function (z) { var K = "_." + z[0]; L & z[1] && !cs(C, K) && C.push(K) }), C.sort() }(function () { var C = A.match(ol); return C ? C[1].split(dr) : [] }(), b)))
} function qx(p) { var h = 0, b = 0; return function () { var A = VZ(), C = 16 - (A - b); if (b = A, 0 < C) { if (800 <= ++h) return arguments[0] } else h = 0; return p.apply(n, arguments) } } function C6(p, h) { var b = -1, A = p.length, C = A - 1; for (h = h === n ? A : h; ++b < h;) { var L = qf(b, C), z = p[L]; p[L] = p[b], p[b] = z } return p.length = h, p } var zx = function () { var p = D6(function (b) { var A = []; return b.charCodeAt(0) === 46 && A.push(""), b.replace(ft, function (C, L, z, K) { A.push(z ? K.replace(bi, "$1") : L || C) }), A }, function (b) { return h.size === 500 && h.clear(), b }), h = p.cache; return p }(); function Gs(p) { var h; return typeof p == "string" || Il(p) ? p : (h = p + "") == "0" && 1 / p == -1 / 0 ? "-0" : h } function d3(p) { if (p != null) { try { return s6.call(p) } catch { } try { return p + "" } catch { } } return "" } function Gx(p) { var h; return p instanceof Jt ? p.clone() : ((h = new fs(p.__wrapped__, p.__chain__)).__actions__ = ul(p.__actions__), h.__index__ = p.__index__, h.__values__ = p.__values__, h) } function Jx(p, h, b) { var A = p == null ? 0 : p.length; return A ? ((b = b == null ? 0 : At(b)) < 0 && (b = Wr(A + b, 0)), Ms(p, ot(h, 3), b)) : -1 } function Kx(p, h, b) { var A, C = p == null ? 0 : p.length; return C ? (A = C - 1, b !== n && (A = At(b), A = b < 0 ? Wr(C + A, 0) : Di(A, C - 1)), Ms(p, ot(h, 3), A, !0)) : -1 } function Xx(p) { return p != null && p.length ? Si(p, 1) : [] } function Wx(p) { return p && p.length ? p[0] : n } function zl(p) { var h = p == null ? 0 : p.length; return h ? p[h - 1] : n } function Yx(p, h) { return p && p.length && h && h.length ? Vf(p, h) : p } kf = Rt(function (p, h) { return Dr(p) ? X0(p, Si(h, 1, Dr, !0)) : [] }), Hs = Rt(function (p, h) { var b = zl(h); return Dr(b) && (b = n), Dr(p) ? X0(p, Si(h, 1, Dr, !0), ot(b, 2)) : [] }), z0 = Rt(function (p, h) { var b = zl(h); return Dr(b) && (b = n), Dr(p) ? X0(p, Si(h, 1, Dr, !0), n, b) : [] }), Wt = Rt(function (p) { var h = an(p, Xf); return h.length && h[0] === p[0] ? Mf(h) : [] }), Cu = Rt(function (p) { var h = zl(p), b = an(p, Xf); return h === zl(b) ? h = n : b.pop(), b.length && b[0] === p[0] ? Mf(b, ot(h, 2)) : [] }), Df = Rt(function (p) { var h = zl(p), b = an(p, Xf); return (h = typeof h == "function" ? h : n) && b.pop(), b.length && b[0] === p[0] ? Mf(b, n, h) : [] }), Pi = Rt(Yx); var iee = Ra(function (p, h) { var b = p == null ? 0 : p.length, A = Lf(p, h); return cx(p, an(h, function (C) { return Ia(C, b) ? +C : C }).sort(Ex)), A }); function cd(p) { return p == null ? p : zZ.call(p) } var lee = Rt(function (p) { return p2(Si(p, 1, Dr, !0)) }), see = Rt(function (p) { var h = zl(p); return Dr(h) && (h = n), p2(Si(p, 1, Dr, !0), ot(h, 2)) }), aee = Rt(function (p) { var h = typeof (h = zl(p)) == "function" ? h : n; return p2(Si(p, 1, Dr, !0), n, h) }); function pd(p) { var h; return p && p.length ? (h = 0, p = ui(p, function (b) { if (Dr(b)) return h = Wr(b.length, h), !0 }), e6(h, function (b) { return an(p, $s(b)) })) : [] } function Qx(p, h) { return p && p.length ? (p = pd(p), h == null ? p : an(p, function (b) { return oi(h, n, b) })) : [] } var oee = Rt(function (p, h) { return Dr(p) ? X0(p, h) : [] }), uee = Rt(function (p) { return Kf(ui(p, Dr)) }), cee = Rt(function (p) { var h = zl(p); return Dr(h) && (h = n), Kf(ui(p, Dr), ot(h, 2)) }), pee = Rt(function (p) { var h = typeof (h = zl(p)) == "function" ? h : n; return Kf(ui(p, Dr), n, h) }), fee = Rt(pd), dee = Rt(function (p) { var h = typeof (h = 1 < (h = p.length) ? p[h - 1] : n) == "function" ? (p.pop(), h) : n; return Qx(p, h) }); function Zx(p) { return (p = I(p)).__chain__ = !0, p } function R6(p, h) { return h(p) } var hee = Ra(function (p) { function h(L) { return Lf(L, p) } var b = p.length, A = b ? p[0] : 0, C = this.__wrapped__; return !(1 < b || this.__actions__.length) && C instanceof Jt && Ia(A) ? ((C = C.slice(A, +A + (b ? 1 : 0))).__actions__.push({ func: R6, args: [h], thisArg: n }), new fs(C, this.__chain__).thru(function (L) { return b && !L.length && L.push(n), L })) : this.thru(h) }), mee = w6(function (p, h, b) { Xn.call(p, b) ? ++p[b] : Na(p, b, 1) }), yee = Ax(Jx), gee = Ax(Kx); function eA(p, h) { return (St(p) ? Kr : c2)(p, ot(h, 3)) } function tA(p, h) { return (St(p) ? function (b, A) { for (var C = b == null ? 0 : b.length; C-- && A(b[C], C, b) !== !1;); return b } : YT)(p, ot(h, 3)) } var vee = w6(function (p, h, b) { Xn.call(p, b) ? p[b].push(h) : Na(p, b, [h]) }), _ee = Rt(function (p, h, b) { var A = -1, C = typeof h == "function", L = cl(p) ? he(p.length) : []; return c2(p, function (z) { L[++A] = C ? oi(h, z, b) : W0(z, h, b) }), L }), Eee = w6(function (p, h, b) { Na(p, b, h) }); function I6(p, h) { return (St(p) ? an : ix)(p, ot(h, 3)) } var bee = w6(function (p, h, b) { p[b ? 0 : 1].push(h) }, function () { return [[], []] }), wee = Rt(function (p, h) { var b; return p == null ? [] : (1 < (b = h.length) && Qi(p, h[0], h[1]) ? h = [] : 2 < b && Qi(h[0], h[1], h[2]) && (h = [h[0]]), ox(p, Si(h, 1), [])) }), k6 = dd || function () { return cr.Date.now() }; function nA(p, h, b) { return h = b ? n : h, h = p && h == null ? p.length : h, Ca(p, a, n, n, n, n, h) } function rA(p, h) { var b; if (typeof h != "function") throw new Hl(r); return p = At(p), function () { return 0 < --p && (b = h.apply(this, arguments)), p <= 1 && (h = n), b } } var fd = Rt(function (p, h, b) { var A, C = 1; return b.length && (A = xa(b, Lu(fd)), C |= s), Ca(p, C, h, b, A) }), iA = Rt(function (p, h, b) { var A, C = 3; return b.length && (A = xa(b, Lu(iA)), C |= s), Ca(h, C, p, b, A) }); function lA(p, h, b) { var A, C, L, z, K, re, pe = 0, fe = !1, Ae = !1, Ee = !0; if (typeof p != "function") throw new Hl(r); function _e(We) { var it = A, ct = C; return A = C = n, pe = We, z = p.apply(ct, it) } function xe(We) { var it = We - re; return re === n || h <= it || it < 0 || Ae && L <= We - pe } function nt() { var We = k6(); if (xe(We)) return ke(We); K = t4(nt, function (it) { var ct = h - (it - re); return Ae ? Di(ct, L - (it - pe)) : ct }(We)) } function ke(We) { return K = n, Ee && A ? _e(We) : (A = C = n, z) } function De() { var We = k6(), it = xe(We); if (A = arguments, C = this, re = We, it) { if (K === n) return function (ct) { return pe = ct, K = t4(nt, h), fe ? _e(ct) : z }(re); if (Ae) return gx(K), K = t4(nt, h), _e(re) } return K === n && (K = t4(nt, h)), z } return h = Jl(h) || 0, gr(b) && (fe = !!b.leading, L = (Ae = "maxWait" in b) ? Wr(Jl(b.maxWait) || 0, h) : L, Ee = "trailing" in b ? !!b.trailing : Ee), De.cancel = function () { K !== n && gx(K), pe = 0, A = re = C = K = n }, De.flush = function () { return K === n ? z : ke(k6()) }, De } var dd = Rt(function (p, h) { return WT(p, 1, h) }), See = Rt(function (p, h, b) { return WT(p, Jl(h) || 0, b) }); function D6(p, h) { if (typeof p != "function" || h != null && typeof h != "function") throw new Hl(r); function b() { var A = arguments, C = h ? h.apply(this, A) : A[0], L = b.cache; return L.has(C) ? L.get(C) : (A = p.apply(this, A), b.cache = L.set(C, A) || L, A) } return b.cache = new (D6.Cache || Oa), b } function P6(p) { if (typeof p != "function") throw new Hl(r); return function () { var h = arguments; switch (h.length) { case 0: return !p.call(this); case 1: return !p.call(this, h[0]); case 2: return !p.call(this, h[0], h[1]); case 3: return !p.call(this, h[0], h[1], h[2]) }return !p.apply(this, h) } } D6.Cache = Oa; var hd = hd(function (p, h) { var b = (h = h.length == 1 && St(h[0]) ? an(h[0], Xr(ot())) : an(Si(h, 1), Xr(ot()))).length; return Rt(function (A) { for (var C = -1, L = Di(A.length, b); ++C < L;)A[C] = h[C].call(this, A[C]); return oi(p, this, A) }) }), md = Rt(function (p, h) { var b = xa(h, Lu(md)); return Ca(p, s, n, h, b) }), sA = Rt(function (p, h) { var b = xa(h, Lu(sA)); return Ca(p, 64, n, h, b) }), Tee = Ra(function (p, h) { return Ca(p, 256, n, n, n, h) }); function hs(p, h) { return p === h || p != p && h != h } var xee = A6(Uf), Aee = A6(function (p, h) { return h <= p }), h3 = tx(function () { return arguments }()) ? tx : function (p) { return Ar(p) && Xn.call(p, "callee") && !$T.call(p, "callee") }, St = he.isArray, Oee = ki ? Xr(ki) : function (p) { return Ar(p) && Yi(p) == W }; function cl(p) { return p != null && L6(p.length) && !ka(p) } function Dr(p) { return Ar(p) && cl(p) } var h2 = Gl || Ad, Gl = Wi ? Xr(Wi) : function (p) { return Ar(p) && Yi(p) == S }; function yd(p) { var h; return !!Ar(p) && ((h = Yi(p)) == w || h == "[object DOMException]" || typeof p.message == "string" && typeof p.name == "string" && !n4(p)) } function ka(p) { return !!gr(p) && ((p = Yi(p)) == E || p == g || p == "[object AsyncFunction]" || p == "[object Proxy]") } function aA(p) { return typeof p == "number" && p == At(p) } function L6(p) { return typeof p == "number" && -1 < p && p % 1 == 0 && p <= u } function gr(p) { var h = typeof p; return p != null && (h == "object" || h == "function") } function Ar(p) { return p != null && typeof p == "object" } var oA = Cl ? Xr(Cl) : function (p) { return Ar(p) && Li(p) == v }; function uA(p) { return typeof p == "number" || Ar(p) && Yi(p) == x } function n4(p) { return !(!Ar(p) || Yi(p) != O) && ((p = u6(p)) === null || typeof (p = Xn.call(p, "constructor") && p.constructor) == "function" && p instanceof p && s6.call(p) == UZ) } var gd = Fs ? Xr(Fs) : function (p) { return Ar(p) && Yi(p) == R }, cA = $l ? Xr($l) : function (p) { return Ar(p) && Li(p) == U }; function F6(p) { return typeof p == "string" || !St(p) && Ar(p) && Yi(p) == F } function Il(p) { return typeof p == "symbol" || Ar(p) && Yi(p) == te } var Fu = o2 ? Xr(o2) : function (p) { return Ar(p) && L6(p.length) && !!Ze[Yi(p)] }, Nee = A6(Hf), Cee = A6(function (p, h) { return p <= h }); function pA(p) { var h; return p ? cl(p) ? (F6(p) ? ps : ul)(p) : V0 && p[V0] ? function (b) { for (var A, C = []; !(A = b.next()).done;)C.push(A.value); return C }(p[V0]()) : ((h = Li(p)) == v ? r6 : h == U ? i6 : ju)(p) : [] } function Da(p) { return p ? (p = Jl(p)) === o || p === -1 / 0 ? 17976931348623157e292 * (p < 0 ? -1 : 1) : p == p ? p : 0 : p === 0 ? p : 0 } function At(p) { var h = (p = Da(p)) % 1; return p == p ? h ? p - h : p : 0 } function fA(p) { return p ? c3(At(p), 0, f) : 0 } function Jl(p) { if (typeof p == "number") return p; if (Il(p)) return c; if (typeof (p = gr(p) ? gr(h = typeof p.valueOf == "function" ? p.valueOf() : p) ? h + "" : h : p) != "string") return p === 0 ? p : +p; p = Ta(p); var h = wu.test(p); return h || er.test(p) ? Xt(p.slice(2), h ? 2 : 8) : Rr.test(p) ? c : +p } function dA(p) { return zs(p, pl(p)) } function dn(p) { return p == null ? "" : Rl(p) } var Ree = Du(function (p, h) { if (e4(h) || cl(h)) zs(h, ci(h), p); else for (var b in h) Xn.call(h, b) && K0(p, b, h[b]) }), hA = Du(function (p, h) { zs(h, pl(h), p) }), j6 = Du(function (p, h, b, A) { zs(h, pl(h), p, A) }), Iee = Du(function (p, h, b, A) { zs(h, ci(h), p, A) }), kee = Ra(Lf), Dee = Rt(function (p, h) { p = xt(p); var b = -1, A = h.length, C = 2 < A ? h[2] : n; for (C && Qi(h[0], h[1], C) && (A = 1); ++b < A;)for (var L = h[b], z = pl(L), K = -1, re = z.length; ++K < re;) { var pe = z[K], fe = p[pe]; (fe === n || hs(fe, Nu[pe]) && !Xn.call(p, pe)) && (p[pe] = L[pe]) } return p }), Pee = Rt(function (p) { return p.push(n, Dx), oi(mA, n, p) }); function vd(p, h, b) { return (p = p == null ? n : p3(p, h)) === n ? b : p } function _d(p, h) { return p != null && Fx(p, h, ZZ) } var Lee = Nx(function (p, h, b) { p[h = h != null && typeof h.toString != "function" ? a6.call(h) : h] = b }, bd(fl)), Fee = Nx(function (p, h, b) { h != null && typeof h.toString != "function" && (h = a6.call(h)), Xn.call(p, h) ? p[h].push(b) : p[h] = [b] }, ot), jee = Rt(W0); function ci(p) { return (cl(p) ? zT : Bf)(p) } function pl(p) { return cl(p) ? zT(p, !0) : function (h) { if (!gr(h)) return function (L) { var z = []; if (L != null) for (var K in xt(L)) z.push(K); return z }(h); var b, A = e4(h), C = []; for (b in h) (b != "constructor" || !A && Xn.call(h, b)) && C.push(b); return C }(p) } var Uee = Du(function (p, h, b) { _6(p, h, b) }), mA = Du(function (p, h, b, A) { _6(p, h, b, A) }), Mee = Ra(function (p, h) { var b = {}; if (p != null) { var A = !1; h = an(h, function (L) { return L = f2(L, p), A = A || 1 < L.length, L }), zs(p, td(p), b), A && (b = Vl(b, 7, tee)); for (var C = h.length; C--;)Jf(b, h[C]) } return b }), $ee = Ra(function (p, h) { return p == null ? {} : function (b, A) { return ux(b, A, function (C, L) { return _d(b, L) }) }(p, h) }); function yA(p, h) { var b; return p == null ? {} : (b = an(td(p), function (A) { return [A] }), h = ot(h), ux(p, b, function (A, C) { return h(A, C[0]) })) } var gA = Ix(ci), vA = Ix(pl); function ju(p) { return p == null ? [] : xu(p, ci(p)) } var Bee = Pu(function (p, h, b) { return h = h.toLowerCase(), p + (b ? _A(h) : h) }); function _A(p) { return Ed(dn(p).toLowerCase()) } function EA(p) { return (p = dn(p)) && p.replace(Rf, DT).replace(le, "") } var Hee = Pu(function (p, h, b) { return p + (b ? "-" : "") + h.toLowerCase() }), Vee = Pu(function (p, h, b) { return p + (b ? " " : "") + h.toLowerCase() }), qee = xx("toLowerCase"), zee = Pu(function (p, h, b) { return p + (b ? "_" : "") + h.toLowerCase() }), Gee = Pu(function (p, h, b) { return p + (b ? " " : "") + Ed(h) }), Jee = Pu(function (p, h, b) { return p + (b ? " " : "") + h.toUpperCase() }), Ed = xx("toUpperCase"); function bA(p, h, b) { return p = dn(p), (h = b ? n : h) === n ? (function (A) { return Gt.test(A) }(p) ? function (A) { return A.match(je) || [] } : function (A) { return A.match(si) || [] })(p) : p.match(h) || [] } var wA = Rt(function (p, h) { try { return oi(p, n, h) } catch (b) { return yd(b) ? b : new rt(b) } }), Kee = Ra(function (p, h) { return Kr(h, function (b) { b = Gs(b), Na(p, b, fd(p[b], p)) }), p }); function bd(p) { return function () { return p } } var Xee = Ox(), Wee = Ox(!0); function fl(p) { return p } function wd(p) { return rx(typeof p == "function" ? p : Vl(p, 1)) } var Yee = Rt(function (p, h) { return function (b) { return W0(b, p, h) } }), Qee = Rt(function (p, h) { return function (b) { return W0(p, b, h) } }); function Sd(p, h, b) { var A = ci(h), C = v6(h, A), L = (b != null || gr(h) && (C.length || !A.length) || (b = h, h = p, p = this, C = v6(h, ci(h))), !(gr(b) && "chain" in b && !b.chain)), z = ka(p); return Kr(C, function (K) { var re = h[K]; p[K] = re, z && (p.prototype[K] = function () { var pe, fe = this.__chain__; return L || fe ? (((pe = p(this.__wrapped__)).__actions__ = ul(this.__actions__)).push({ func: re, args: arguments, thisArg: p }), pe.__chain__ = fe, pe) : re.apply(p, Us([this.value()], arguments)) }) }), p } function Td() { } var Zee = Qf(an), ete = Qf(wa), tte = Qf(Sa); function SA(p) { return sd(p) ? $s(Gs(p)) : function (h) { return function (b) { return p3(b, h) } }(p) } var nte = Cx(), rte = Cx(!0); function xd() { return [] } function Ad() { return !1 } var Od, ite = T6(function (p, h) { return p + h }, 0), lte = Zf("ceil"), ste = T6(function (p, h) { return p / h }, 1), ate = Zf("floor"), ote = T6(function (p, h) { return p * h }, 1), ute = Zf("round"), cte = T6(function (p, h) { return p - h }, 0); return I.after = function (p, h) { if (typeof h != "function") throw new Hl(r); return p = At(p), function () { if (--p < 1) return h.apply(this, arguments) } }, I.ary = nA, I.assign = Ree, I.assignIn = hA, I.assignInWith = j6, I.assignWith = Iee, I.at = kee, I.before = rA, I.bind = fd, I.bindAll = Kee, I.bindKey = iA, I.castArray = function () { var p; return arguments.length ? St(p = arguments[0]) ? p : [p] : [] }, I.chain = Zx, I.chunk = function (p, h, b) { h = (b ? Qi(p, h, b) : h === n) ? 1 : Wr(At(h), 0); var A = p == null ? 0 : p.length; if (!A || h < 1) return []; for (var C = 0, L = 0, z = he(f6(A / h)); C < A;)z[L++] = ql(p, C, C += h); return z }, I.compact = function (p) { for (var h = -1, b = p == null ? 0 : p.length, A = 0, C = []; ++h < b;) { var L = p[h]; L && (C[A++] = L) } return C }, I.concat = function () { var p = arguments.length; if (!p) return []; for (var h = he(p - 1), b = arguments[0], A = p; A--;)h[A - 1] = arguments[A]; return Us(St(b) ? ul(b) : [b], Si(h, 1)) }, I.cond = function (p) { var h = p == null ? 0 : p.length, b = ot(); return p = h ? an(p, function (A) { if (typeof A[1] != "function") throw new Hl(r); return [b(A[0]), A[1]] }) : [], Rt(function (A) { for (var C = -1; ++C < h;) { var L = p[C]; if (oi(L[0], this, A)) return oi(L[1], this, A) } }) }, I.conforms = function (p) { return function (h) { var b = ci(h); return function (A) { return XT(A, h, b) } }(Vl(p, 1)) }, I.constant = bd, I.countBy = mee, I.create = function (p, h) { return p = ku(p), h == null ? p : KT(p, h) }, I.curry = function p(h, b, A) { return (h = Ca(h, 8, n, n, n, n, n, b = A ? n : b)).placeholder = p.placeholder, h }, I.curryRight = function p(h, b, A) { return (h = Ca(h, 16, n, n, n, n, n, b = A ? n : b)).placeholder = p.placeholder, h }, I.debounce = lA, I.defaults = Dee, I.defaultsDeep = Pee, I.defer = dd, I.delay = See, I.difference = kf, I.differenceBy = Hs, I.differenceWith = z0, I.drop = function (p, h, b) { var A = p == null ? 0 : p.length; return A ? ql(p, (h = b || h === n ? 1 : At(h)) < 0 ? 0 : h, A) : [] }, I.dropRight = function (p, h, b) { var A = p == null ? 0 : p.length; return A ? ql(p, 0, (h = A - (b || h === n ? 1 : At(h))) < 0 ? 0 : h) : [] }, I.dropRightWhile = function (p, h) { return p && p.length ? b6(p, ot(h, 3), !0, !0) : [] }, I.dropWhile = function (p, h) { return p && p.length ? b6(p, ot(h, 3), !0) : [] }, I.fill = function (p, h, b, A) { var C = p == null ? 0 : p.length; return C ? (b && typeof b != "number" && Qi(p, h, b) && (b = 0, A = C), function (L, z, K, re) { var pe = L.length; for ((K = At(K)) < 0 && (K = pe < -K ? 0 : pe + K), (re = re === n || pe < re ? pe : At(re)) < 0 && (re += pe), re = re < K ? 0 : fA(re); K < re;)L[K++] = z; return L }(p, h, b, A)) : [] }, I.filter = function (p, h) { return (St(p) ? ui : QT)(p, ot(h, 3)) }, I.flatMap = function (p, h) { return Si(I6(p, h), 1) }, I.flatMapDeep = function (p, h) { return Si(I6(p, h), o) }, I.flatMapDepth = function (p, h, b) { return b = b === n ? 1 : At(b), Si(I6(p, h), b) }, I.flatten = Xx, I.flattenDeep = function (p) { return p != null && p.length ? Si(p, o) : [] }, I.flattenDepth = function (p, h) { return p != null && p.length ? Si(p, h = h === n ? 1 : At(h)) : [] }, I.flip = function (p) { return Ca(p, 512) }, I.flow = Xee, I.flowRight = Wee, I.fromPairs = function (p) { for (var h = -1, b = p == null ? 0 : p.length, A = {}; ++h < b;) { var C = p[h]; A[C[0]] = C[1] } return A }, I.functions = function (p) { return p == null ? [] : v6(p, ci(p)) }, I.functionsIn = function (p) { return p == null ? [] : v6(p, pl(p)) }, I.groupBy = vee, I.initial = function (p) { return p != null && p.length ? ql(p, 0, -1) : [] }, I.intersection = Wt, I.intersectionBy = Cu, I.intersectionWith = Df, I.invert = Lee, I.invertBy = Fee, I.invokeMap = _ee, I.iteratee = wd, I.keyBy = Eee, I.keys = ci, I.keysIn = pl, I.map = I6, I.mapKeys = function (p, h) { var b = {}; return h = ot(h, 3), Vs(p, function (A, C, L) { Na(b, h(A, C, L), A) }), b }, I.mapValues = function (p, h) { var b = {}; return h = ot(h, 3), Vs(p, function (A, C, L) { Na(b, C, h(A, C, L)) }), b }, I.matches = function (p) { return lx(Vl(p, 1)) }, I.matchesProperty = function (p, h) { return sx(p, Vl(h, 1)) }, I.memoize = D6, I.merge = Uee, I.mergeWith = mA, I.method = Yee, I.methodOf = Qee, I.mixin = Sd, I.negate = P6, I.nthArg = function (p) { return p = At(p), Rt(function (h) { return ax(h, p) }) }, I.omit = Mee, I.omitBy = function (p, h) { return yA(p, P6(ot(h))) }, I.once = function (p) { return rA(2, p) }, I.orderBy = function (p, h, b, A) { return p == null ? [] : ox(p, h = St(h) ? h : h == null ? [] : [h], b = St(b = A ? n : b) ? b : b == null ? [] : [b]) }, I.over = Zee, I.overArgs = hd, I.overEvery = ete, I.overSome = tte, I.partial = md, I.partialRight = sA, I.partition = bee, I.pick = $ee, I.pickBy = yA, I.property = SA, I.propertyOf = function (p) { return function (h) { return p == null ? n : p3(p, h) } }, I.pull = Pi, I.pullAll = Yx, I.pullAllBy = function (p, h, b) { return p && p.length && h && h.length ? Vf(p, h, ot(b, 2)) : p }, I.pullAllWith = function (p, h, b) { return p && p.length && h && h.length ? Vf(p, h, n, b) : p }, I.pullAt = iee, I.range = nte, I.rangeRight = rte, I.rearg = Tee, I.reject = function (p, h) { return (St(p) ? ui : QT)(p, P6(ot(h, 3))) }, I.remove = function (p, h) { var b = []; if (p && p.length) { var A = -1, C = [], L = p.length; for (h = ot(h, 3); ++A < L;) { var z = p[A]; h(z, A, p) && (b.push(z), C.push(A)) } cx(p, C) } return b }, I.rest = function (p, h) { if (typeof p != "function") throw new Hl(r); return Rt(p, h = h === n ? h : At(h)) }, I.reverse = cd, I.sampleSize = function (p, h, b) { return h = (b ? Qi(p, h, b) : h === n) ? 1 : At(h), (St(p) ? function (A, C) { return C6(ul(A), c3(C, 0, A.length)) } : function (A, C) { return C6(A = ju(A), c3(C, 0, A.length)) })(p, h) }, I.set = function (p, h, b) { return p == null ? p : Q0(p, h, b) }, I.setWith = function (p, h, b, A) { return A = typeof A == "function" ? A : n, p == null ? p : Q0(p, h, b, A) }, I.shuffle = function (p) { return (St(p) ? function (h) { return C6(ul(h)) } : function (h) { return C6(ju(h)) })(p) }, I.slice = function (p, h, b) { var A = p == null ? 0 : p.length; return A ? (b = b && typeof b != "number" && Qi(p, h, b) ? (h = 0, A) : (h = h == null ? 0 : At(h), b === n ? A : At(b)), ql(p, h, b)) : [] }, I.sortBy = wee, I.sortedUniq = function (p) { return p && p.length ? fx(p) : [] }, I.sortedUniqBy = function (p, h) { return p && p.length ? fx(p, ot(h, 2)) : [] }, I.split = function (p, h, b) { return b && typeof b != "number" && Qi(p, h, b) && (h = b = n), (b = b === n ? f : b >>> 0) ? (p = dn(p)) && (typeof h == "string" || h != null && !gd(h)) && !(h = Rl(h)) && l3(p) ? d2(ps(p), 0, b) : p.split(h, b) : [] }, I.spread = function (p, h) { if (typeof p != "function") throw new Hl(r); return h = h == null ? 0 : Wr(At(h), 0), Rt(function (C) { var A = C[h], C = d2(C, 0, h); return A && Us(C, A), oi(p, this, C) }) }, I.tail = function (p) { var h = p == null ? 0 : p.length; return h ? ql(p, 1, h) : [] }, I.take = function (p, h, b) { return p && p.length ? ql(p, 0, (h = b || h === n ? 1 : At(h)) < 0 ? 0 : h) : [] }, I.takeRight = function (p, h, b) { var A = p == null ? 0 : p.length; return A ? ql(p, (h = A - (b || h === n ? 1 : At(h))) < 0 ? 0 : h, A) : [] }, I.takeRightWhile = function (p, h) { return p && p.length ? b6(p, ot(h, 3), !1, !0) : [] }, I.takeWhile = function (p, h) { return p && p.length ? b6(p, ot(h, 3)) : [] }, I.tap = function (p, h) { return h(p), p }, I.throttle = function (p, h, b) { var A = !0, C = !0; if (typeof p != "function") throw new Hl(r); return gr(b) && (A = "leading" in b ? !!b.leading : A, C = "trailing" in b ? !!b.trailing : C), lA(p, h, { leading: A, maxWait: h, trailing: C }) }, I.thru = R6, I.toArray = pA, I.toPairs = gA, I.toPairsIn = vA, I.toPath = function (p) { return St(p) ? an(p, Gs) : Il(p) ? [p] : ul(zx(dn(p))) }, I.toPlainObject = dA, I.transform = function (p, h, b) { var A, C = St(p), L = C || h2(p) || Fu(p); return h = ot(h, 4), b == null && (A = p && p.constructor, b = L ? C ? new A : [] : gr(p) && ka(A) ? ku(u6(p)) : {}), (L ? Kr : Vs)(p, function (z, K, re) { return h(b, z, K, re) }), b }, I.unary = function (p) { return nA(p, 1) }, I.union = lee, I.unionBy = see, I.unionWith = aee, I.uniq = function (p) { return p && p.length ? p2(p) : [] }, I.uniqBy = function (p, h) { return p && p.length ? p2(p, ot(h, 2)) : [] }, I.uniqWith = function (p, h) { return h = typeof h == "function" ? h : n, p && p.length ? p2(p, n, h) : [] }, I.unset = function (p, h) { return p == null || Jf(p, h) }, I.unzip = pd, I.unzipWith = Qx, I.update = function (p, h, b) { return p == null ? p : hx(p, h, Wf(b)) }, I.updateWith = function (p, h, b, A) { return A = typeof A == "function" ? A : n, p == null ? p : hx(p, h, Wf(b), A) }, I.values = ju, I.valuesIn = function (p) { return p == null ? [] : xu(p, pl(p)) }, I.without = oee, I.words = bA, I.wrap = function (p, h) { return md(Wf(h), p) }, I.xor = uee, I.xorBy = cee, I.xorWith = pee, I.zip = fee, I.zipObject = function (p, h) { return yx(p || [], h || [], K0) }, I.zipObjectDeep = function (p, h) { return yx(p || [], h || [], Q0) }, I.zipWith = dee, I.entries = gA, I.entriesIn = vA, I.extend = hA, I.extendWith = j6, Sd(I, I), I.add = ite, I.attempt = wA, I.camelCase = Bee, I.capitalize = _A, I.ceil = lte, I.clamp = function (p, h, b) { return b === n && (b = h, h = n), b !== n && (b = (b = Jl(b)) == b ? b : 0), h !== n && (h = (h = Jl(h)) == h ? h : 0), c3(Jl(p), h, b) }, I.clone = function (p) { return Vl(p, 4) }, I.cloneDeep = function (p) { return Vl(p, 5) }, I.cloneDeepWith = function (p, h) { return Vl(p, 5, h = typeof h == "function" ? h : n) }, I.cloneWith = function (p, h) { return Vl(p, 4, h = typeof h == "function" ? h : n) }, I.conformsTo = function (p, h) { return h == null || XT(p, h, ci(h)) }, I.deburr = EA, I.defaultTo = function (p, h) { return p == null || p != p ? h : p }, I.divide = ste, I.endsWith = function (p, h, b) { p = dn(p), h = Rl(h); var A = p.length, A = b = b === n ? A : c3(At(b), 0, A); return 0 <= (b -= h.length) && p.slice(b, A) == h }, I.eq = hs, I.escape = function (p) { return (p = dn(p)) && gt.test(p) ? p.replace(Ue, PT) : p }, I.escapeRegExp = function (p) { return (p = dn(p)) && Lt.test(p) ? p.replace(Pe, "\\$&") : p }, I.every = function (p, h, b) { return (St(p) ? wa : function (A, C) { var L = !0; return c2(A, function (z, K, re) { return L = !!C(z, K, re) }), L })(p, ot(h = b && Qi(p, h, b) ? n : h, 3)) }, I.find = yee, I.findIndex = Jx, I.findKey = function (p, h) { return H0(p, ot(h, 3), Vs) }, I.findLast = gee, I.findLastIndex = Kx, I.findLastKey = function (p, h) { return H0(p, ot(h, 3), jf) }, I.floor = ate, I.forEach = eA, I.forEachRight = tA, I.forIn = function (p, h) { return p == null ? p : Ff(p, ot(h, 3), pl) }, I.forInRight = function (p, h) { return p == null ? p : ZT(p, ot(h, 3), pl) }, I.forOwn = function (p, h) { return p && Vs(p, ot(h, 3)) }, I.forOwnRight = function (p, h) { return p && jf(p, ot(h, 3)) }, I.get = vd, I.gt = xee, I.gte = Aee, I.has = function (p, h) { return p != null && Fx(p, h, QZ) }, I.hasIn = _d, I.head = Wx, I.identity = fl, I.includes = function (p, h, b, A) { return p = cl(p) ? p : ju(p), b = b && !A ? At(b) : 0, A = p.length, b < 0 && (b = Wr(A + b, 0)), F6(p) ? b <= A && -1 < p.indexOf(h, b) : !!A && -1 < u2(p, h, b) }, I.indexOf = function (p, h, b) { var A = p == null ? 0 : p.length; return A ? u2(p, h, p = (p = b == null ? 0 : At(b)) < 0 ? Wr(A + p, 0) : p) : -1 }, I.inRange = function (p, h, b) { return h = Da(h), b === n ? (b = h, h = 0) : b = Da(b), function (A, C, L) { return A >= Di(C, L) && A < Wr(C, L) }(p = Jl(p), h, b) }, I.invoke = jee, I.isArguments = h3, I.isArray = St, I.isArrayBuffer = Oee, I.isArrayLike = cl, I.isArrayLikeObject = Dr, I.isBoolean = function (p) { return p === !0 || p === !1 || Ar(p) && Yi(p) == _ }, I.isBuffer = h2, I.isDate = Gl, I.isElement = function (p) { return Ar(p) && p.nodeType === 1 && !n4(p) }, I.isEmpty = function (p) { if (p != null) { if (cl(p) && (St(p) || typeof p == "string" || typeof p.splice == "function" || h2(p) || Fu(p) || h3(p))) return !p.length; var h, b = Li(p); if (b == v || b == U) return !p.size; if (e4(p)) return !Bf(p).length; for (h in p) if (Xn.call(p, h)) return !1 } return !0 }, I.isEqual = function (p, h) { return Y0(p, h) }, I.isEqualWith = function (p, h, b) { var A = (b = typeof b == "function" ? b : n) ? b(p, h) : n; return A === n ? Y0(p, h, n, b) : !!A }, I.isError = yd, I.isFinite = function (p) { return typeof p == "number" && HT(p) }, I.isFunction = ka, I.isInteger = aA, I.isLength = L6, I.isMap = oA, I.isMatch = function (p, h) { return p === h || $f(p, h, rd(h)) }, I.isMatchWith = function (p, h, b) { return b = typeof b == "function" ? b : n, $f(p, h, rd(h), b) }, I.isNaN = function (p) { return uA(p) && p != +p }, I.isNative = function (p) { if (ree(p)) throw new rt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill."); return nx(p) }, I.isNil = function (p) { return p == null }, I.isNull = function (p) { return p === null }, I.isNumber = uA, I.isObject = gr, I.isObjectLike = Ar, I.isPlainObject = n4, I.isRegExp = gd, I.isSafeInteger = function (p) { return aA(p) && -9007199254740991 <= p && p <= u }, I.isSet = cA, I.isString = F6, I.isSymbol = Il, I.isTypedArray = Fu, I.isUndefined = function (p) { return p === n }, I.isWeakMap = function (p) { return Ar(p) && Li(p) == Q }, I.isWeakSet = function (p) { return Ar(p) && Yi(p) == "[object WeakSet]" }, I.join = function (p, h) { return p == null ? "" : BZ.call(p, h) }, I.kebabCase = Hee, I.last = zl, I.lastIndexOf = function (p, h, b) { var A, C = p == null ? 0 : p.length; return C ? (A = C, b !== n && (A = (A = At(b)) < 0 ? Wr(C + A, 0) : Di(A, C - 1)), h == h ? function (L, z) { for (var K = A + 1; K--;)if (L[K] === z) return K; return K }(p, h) : Ms(p, Z5, A, !0)) : -1 }, I.lowerCase = Vee, I.lowerFirst = qee, I.lt = Nee, I.lte = Cee, I.max = function (p) { return p && p.length ? g6(p, fl, Uf) : n }, I.maxBy = function (p, h) { return p && p.length ? g6(p, ot(h, 2), Uf) : n }, I.mean = function (p) { return Bl(p, fl) }, I.meanBy = function (p, h) { return Bl(p, ot(h, 2)) }, I.min = function (p) { return p && p.length ? g6(p, fl, Hf) : n }, I.minBy = function (p, h) { return p && p.length ? g6(p, ot(h, 2), Hf) : n }, I.stubArray = xd, I.stubFalse = Ad, I.stubObject = function () { return {} }, I.stubString = function () { return "" }, I.stubTrue = function () { return !0 }, I.multiply = ote, I.nth = function (p, h) { return p && p.length ? ax(p, At(h)) : n }, I.noConflict = function () { return cr._ === this && (cr._ = MZ), this }, I.noop = Td, I.now = k6, I.pad = function (p, h, b) { p = dn(p); var A = (h = At(h)) ? Au(p) : 0; return !h || h <= A ? p : x6(d6(h = (h - A) / 2), b) + p + x6(f6(h), b) }, I.padEnd = function (p, h, b) { p = dn(p); var A = (h = At(h)) ? Au(p) : 0; return h && A < h ? p + x6(h - A, b) : p }, I.padStart = function (p, h, b) { p = dn(p); var A = (h = At(h)) ? Au(p) : 0; return h && A < h ? x6(h - A, b) + p : p }, I.parseInt = function (p, h, b) { return h = b || h == null ? 0 : h && +h, qZ(dn(p).replace(wr, ""), h || 0) }, I.random = function (p, h, b) { var A; return b && typeof b != "boolean" && Qi(p, h, b) && (h = b = n), b === n && (typeof h == "boolean" ? (b = h, h = n) : typeof p == "boolean" && (b = p, p = n)), p === n && h === n ? (p = 0, h = 1) : (p = Da(p), h === n ? (h = p, p = 0) : h = Da(h)), h < p && (A = p, p = h, h = A), b || p % 1 || h % 1 ? (A = VT(), Di(p + A * (h - p + sr("1e-" + ((A + "").length - 1))), h)) : qf(p, h) }, I.reduce = function (p, h, b) { var A = St(p) ? B0 : r3, C = arguments.length < 3; return A(p, ot(h, 4), b, C, c2) }, I.reduceRight = function (p, h, b) { var A = St(p) ? Y5 : r3, C = arguments.length < 3; return A(p, ot(h, 4), b, C, YT) }, I.repeat = function (p, h, b) { return h = (b ? Qi(p, h, b) : h === n) ? 1 : At(h), zf(dn(p), h) }, I.replace = function () { var p = arguments, h = dn(p[0]); return p.length < 3 ? h : h.replace(p[1], p[2]) }, I.result = function (p, h, b) { var A = -1, C = (h = f2(h, p)).length; for (C || (C = 1, p = n); ++A < C;) { var L = p == null ? n : p[Gs(h[A])]; L === n && (A = C, L = b), p = ka(L) ? L.call(p) : L } return p }, I.round = ute, I.runInContext = oe, I.sample = function (p) { return (St(p) ? GT : function (h) { return GT(ju(h)) })(p) }, I.size = function (p) { var h; return p == null ? 0 : cl(p) ? F6(p) ? Au(p) : p.length : (h = Li(p)) == v || h == U ? p.size : Bf(p).length }, I.snakeCase = zee, I.some = function (p, h, b) { return (St(p) ? Sa : function (A, C) { var L; return c2(A, function (z, K, re) { return !(L = C(z, K, re)) }), !!L })(p, ot(h = b && Qi(p, h, b) ? n : h, 3)) }, I.sortedIndex = function (p, h) { return E6(p, h) }, I.sortedIndexBy = function (p, h, b) { return Gf(p, h, ot(b, 2)) }, I.sortedIndexOf = function (p, h) { var b = p == null ? 0 : p.length; if (b) { var A = E6(p, h); if (A < b && hs(p[A], h)) return A } return -1 }, I.sortedLastIndex = function (p, h) { return E6(p, h, !0) }, I.sortedLastIndexBy = function (p, h, b) { return Gf(p, h, ot(b, 2), !0) }, I.sortedLastIndexOf = function (p, h) { if (p != null && p.length) { var b = E6(p, h, !0) - 1; if (hs(p[b], h)) return b } return -1 }, I.startCase = Gee, I.startsWith = function (p, h, b) { return p = dn(p), b = b == null ? 0 : c3(At(b), 0, p.length), h = Rl(h), p.slice(b, b + h.length) == h }, I.subtract = cte, I.sum = function (p) { return p && p.length ? Bs(p, fl) : 0 }, I.sumBy = function (p, h) { return p && p.length ? Bs(p, ot(h, 2)) : 0 }, I.template = function (p, h, fe) {
var re = I.templateSettings; fe && Qi(p, h, fe) && (h = n), p = dn(p), h = j6({}, h, re, kx); var A, C, L = ci(fe = j6({}, h.imports, re.imports, kx)), z = xu(fe, L), K = 0, re = h.interpolate || ai, pe = "__p += '", fe = s3((h.escape || ai).source + "|" + re.source + "|" + (re === ve ? Ri : ai).source + "|" + (h.evaluate || ai).source + "|$", "g"), Ae = "//# sourceURL=" + (Xn.call(h, "sourceURL") ? (h.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++Tr + "]") + `
`; if (p.replace(fe, function (Ee, _e, xe, nt, ke, De) {
return xe = xe || nt, pe += p.slice(K, De).replace(Hr, LT), _e && (A = !0, pe += `' +
__e(`+ _e + `) +
'`), ke && (C = !0, pe += `';
`+ ke + `;
__p += '`), xe && (pe += `' +
((__t = (`+ xe + `)) == null ? '' : __t) +
'`), K = De + Ee.length, Ee
}), pe += `';
`, re = Xn.call(h, "variable") && h.variable) { if (Sr.test(re)) throw new rt("Invalid `variable` option passed into `_.template`") } else pe = `with (obj) {
`+ pe + `
}
`; if (pe = (C ? pe.replace(Tt, "") : pe).replace(Qe, "$1").replace(pt, "$1;"), pe = "function(" + (re || "obj") + `) {
`+ (re ? "" : `obj || (obj = {});
`) + "var __t, __p = ''" + (A ? ", __e = _.escape" : "") + (C ? `, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`: `;
`) + pe + `return __p
}`, (fe = wA(function () { return wt(L, Ae + "return " + pe).apply(n, z) })).source = pe, yd(fe)) throw fe; return fe
}, I.times = function (p, h) { if ((p = At(p)) < 1 || u < p) return []; var b = f, A = Di(p, f); for (h = ot(h), p -= f, A = e6(A, h); ++b < p;)h(b); return A }, I.toFinite = Da, I.toInteger = At, I.toLength = fA, I.toLower = function (p) { return dn(p).toLowerCase() }, I.toNumber = Jl, I.toSafeInteger = function (p) { return p ? c3(At(p), -9007199254740991, u) : p === 0 ? p : 0 }, I.toString = dn, I.toUpper = function (p) { return dn(p).toUpperCase() }, I.trim = function (p, h, b) { return (p = dn(p)) && (b || h === n) ? Ta(p) : p && (h = Rl(h)) ? d2(b = ps(p), t6(b, h = ps(h)), n6(b, h) + 1).join("") : p }, I.trimEnd = function (p, h, b) { return (p = dn(p)) && (b || h === n) ? p.slice(0, FT(p) + 1) : p && (h = Rl(h)) ? d2(b = ps(p), 0, n6(b, ps(h)) + 1).join("") : p }, I.trimStart = function (p, h, b) { return (p = dn(p)) && (b || h === n) ? p.replace(wr, "") : p && (h = Rl(h)) ? d2(b = ps(p), t6(b, ps(h))).join("") : p }, I.truncate = function (p, C) { var b, z = 30, A = "...", C = (gr(C) && (b = "separator" in C ? C.separator : b, z = "length" in C ? At(C.length) : z, A = "omission" in C ? Rl(C.omission) : A), (p = dn(p)).length); if ((C = l3(p) ? (L = ps(p)).length : C) <= z) return p; if ((C = z - Au(A)) < 1) return A; var L, z = L ? d2(L, 0, C).join("") : p.slice(0, C); if (b !== n) if (L && (C += z.length - C), gd(b)) { if (p.slice(C).search(b)) { var K, re = z; for ((b = b.global ? b : s3(b.source, dn(Ul.exec(b)) + "g")).lastIndex = 0; K = b.exec(re);)var pe = K.index; z = z.slice(0, pe === n ? C : pe) } } else p.indexOf(Rl(b), C) != C && -1 < (L = z.lastIndexOf(b)) && (z = z.slice(0, L)); return z + A }, I.unescape = function (p) { return (p = dn(p)) && $t.test(p) ? p.replace(ze, LZ) : p }, I.uniqueId = function (p) { var h = ++jZ; return dn(p) + h }, I.upperCase = Jee, I.upperFirst = Ed, I.each = eA, I.eachRight = tA, I.first = Wx, Sd(I, (Od = {}, Vs(I, function (p, h) { Xn.call(I.prototype, h) || (Od[h] = p) }), Od), { chain: !1 }), I.VERSION = "4.17.21", Kr(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function (p) { I[p].placeholder = I }), Kr(["drop", "take"], function (p, h) { Jt.prototype[p] = function (b) { b = b === n ? 1 : Wr(At(b), 0); var A = this.__filtered__ && !h ? new Jt(this) : this.clone(); return A.__filtered__ ? A.__takeCount__ = Di(b, A.__takeCount__) : A.__views__.push({ size: Di(b, f), type: p + (A.__dir__ < 0 ? "Right" : "") }), A }, Jt.prototype[p + "Right"] = function (b) { return this.reverse()[p](b).reverse() } }), Kr(["filter", "map", "takeWhile"], function (p, h) { var b = h + 1, A = b == 1 || b == 3; Jt.prototype[p] = function (C) { var L = this.clone(); return L.__iteratees__.push({ iteratee: ot(C, 3), type: b }), L.__filtered__ = L.__filtered__ || A, L } }), Kr(["head", "last"], function (p, h) { var b = "take" + (h ? "Right" : ""); Jt.prototype[p] = function () { return this[b](1).value()[0] } }), Kr(["initial", "tail"], function (p, h) { var b = "drop" + (h ? "" : "Right"); Jt.prototype[p] = function () { return this.__filtered__ ? new Jt(this) : this[b](1) } }), Jt.prototype.compact = function () { return this.filter(fl) }, Jt.prototype.find = function (p) { return this.filter(p).head() }, Jt.prototype.findLast = function (p) { return this.reverse().find(p) }, Jt.prototype.invokeMap = Rt(function (p, h) { return typeof p == "function" ? new Jt(this) : this.map(function (b) { return W0(b, p, h) }) }), Jt.prototype.reject = function (p) { return this.filter(P6(ot(p))) }, Jt.prototype.slice = function (p, h) { p = At(p); var b = this; return b.__filtered__ && (0 < p || h < 0) ? new Jt(b) : (p < 0 ? b = b.takeRight(-p) : p && (b = b.drop(p)), h !== n ? (h = At(h)) < 0 ? b.dropRight(-h) : b.take(h - p) : b) }, Jt.prototype.takeRightWhile = function (p) { return this.reverse().takeWhile(p).reverse() }, Jt.prototype.toArray = function () { return this.take(f) }, Vs(Jt.prototype, function (p, h) { var b = /^(?:filter|find|map|reject)|While$/.test(h), A = /^(?:head|last)$/.test(h), C = I[A ? "take" + (h == "last" ? "Right" : "") : h], L = A || /^find/.test(h); C && (I.prototype[h] = function () { function z(nt) { return nt = C.apply(I, Us([nt], pe)), A && Ae ? nt[0] : nt } var K, re = this.__wrapped__, pe = A ? [1] : arguments, xe = re instanceof Jt, Ee = pe[0], fe = xe || St(re), Ae = (fe && b && typeof Ee == "function" && Ee.length != 1 && (xe = fe = !1), this.__chain__), Ee = !!this.__actions__.length, _e = L && !Ae, xe = xe && !Ee; return !L && fe ? (re = xe ? re : new Jt(this), (K = p.apply(re, pe)).__actions__.push({ func: R6, args: [z], thisArg: n }), new fs(K, Ae)) : _e && xe ? p.apply(this, pe) : (K = this.thru(z), _e ? A ? K.value()[0] : K.value() : K) }) }), Kr(["pop", "push", "shift", "sort", "splice", "unshift"], function (p) { var h = l6[p], b = /^(?:push|sort|unshift)$/.test(p) ? "tap" : "thru", A = /^(?:pop|shift)$/.test(p); I.prototype[p] = function () { var C, L = arguments; return A && !this.__chain__ ? (C = this.value(), h.apply(St(C) ? C : [], L)) : this[b](function (z) { return h.apply(St(z) ? z : [], L) }) } }), Vs(Jt.prototype, function (p, h) { var b, A = I[h]; A && (b = A.name + "", Xn.call(Iu, b) || (Iu[b] = []), Iu[b].push({ name: h, func: A })) }), Iu[S6(n, 2).name] = [{ name: "wrapper", func: n }], Jt.prototype.clone = function () { var p = new Jt(this.__wrapped__); return p.__actions__ = ul(this.__actions__), p.__dir__ = this.__dir__, p.__filtered__ = this.__filtered__, p.__iteratees__ = ul(this.__iteratees__), p.__takeCount__ = this.__takeCount__, p.__views__ = ul(this.__views__), p }, Jt.prototype.reverse = function () { var p; return this.__filtered__ ? ((p = new Jt(this)).__dir__ = -1, p.__filtered__ = !0) : (p = this.clone()).__dir__ *= -1, p }, Jt.prototype.value = function () { var p = this.__wrapped__.value(), h = this.__dir__, b = St(p), A = h < 0, C = b ? p.length : 0, L = function (We, it, ct) { for (var hr = -1, Or = ct.length; ++hr < Or;) { var Vr = ct[hr], Pr = Vr.size; switch (Vr.type) { case "drop": We += Pr; break; case "dropRight": it -= Pr; break; case "take": it = Di(it, We + Pr); break; case "takeRight": We = Wr(We, it - Pr) } } return { start: We, end: it } }(0, C, this.__views__), z = L.start, K = (L = L.end) - z, re = A ? L : z - 1, pe = this.__iteratees__, fe = pe.length, Ae = 0, Ee = Di(K, this.__takeCount__); if (!b || !A && C == K && Ee == K) return mx(p, this.__actions__); var _e = []; e: for (; K-- && Ae < Ee;) { for (var xe = -1, nt = p[re += h]; ++xe < fe;) { var De = (ke = pe[xe]).iteratee, ke = ke.type, De = De(nt); if (ke == 2) nt = De; else if (!De) { if (ke == 1) continue e; break e } } _e[Ae++] = nt } return _e }, I.prototype.at = hee, I.prototype.chain = function () { return Zx(this) }, I.prototype.commit = function () { return new fs(this.value(), this.__chain__) }, I.prototype.next = function () { this.__values__ === n && (this.__values__ = pA(this.value())); var p = this.__index__ >= this.__values__.length; return { done: p, value: p ? n : this.__values__[this.__index__++] } }, I.prototype.plant = function (p) { for (var h, C = this; C instanceof m6;)var b = Gx(C), A = (b.__index__ = 0, b.__values__ = n, h ? A.__wrapped__ = b : h = b, b), C = C.__wrapped__; return A.__wrapped__ = p, h }, I.prototype.reverse = function () { var p = this.__wrapped__; return p instanceof Jt ? ((p = (p = this.__actions__.length ? new Jt(this) : p).reverse()).__actions__.push({ func: R6, args: [cd], thisArg: n }), new fs(p, this.__chain__)) : this.thru(cd) }, I.prototype.toJSON = I.prototype.valueOf = I.prototype.value = function () { return mx(this.__wrapped__, this.__actions__) }, I.prototype.first = I.prototype.head, V0 && (I.prototype[V0] = function () { return this }), I
}(); kr ? ((kr.exports = Ou)._ = Ou, os._ = Ou) : cr._ = Ou
}).call(Ci)
}), Dt = ht(function (t, e) { t.exports = function (n) { var r; if (typeof window < "u" && window.crypto && (r = window.crypto), typeof self < "u" && self.crypto && (r = self.crypto), !(r = !(r = !(r = typeof globalThis < "u" && globalThis.crypto ? globalThis.crypto : r) && typeof window < "u" && window.msCrypto ? window.msCrypto : r) && Ci !== void 0 && Ci.crypto ? Ci.crypto : r)) try { r = X7 } catch { } function i() { if (r) { if (typeof r.getRandomValues == "function") try { return r.getRandomValues(new Uint32Array(1))[0] } catch { } if (typeof r.randomBytes == "function") try { return r.randomBytes(4).readInt32LE() } catch { } } throw new Error("Native crypto module could not be used to get secure random number.") } var l = Object.create || function () { function S() { } return function (w) { return S.prototype = w, w = new S, S.prototype = null, w } }(), s = {}, a = s.lib = {}, o = a.Base = { extend: function (S) { var w = l(this); return S && w.mixIn(S), w.hasOwnProperty("init") && this.init !== w.init || (w.init = function () { w.$super.init.apply(this, arguments) }), (w.init.prototype = w).$super = this, w }, create: function () { var S = this.extend(); return S.init.apply(S, arguments), S }, init: function () { }, mixIn: function (S) { for (var w in S) S.hasOwnProperty(w) && (this[w] = S[w]); S.hasOwnProperty("toString") && (this.toString = S.toString) }, clone: function () { return this.init.prototype.extend(this) } }, u = a.WordArray = o.extend({ init: function (S, w) { S = this.words = S || [], this.sigBytes = w ?? 4 * S.length }, toString: function (S) { return (S || f).stringify(this) }, concat: function (S) { var w = this.words, E = S.words, g = this.sigBytes, v = S.sigBytes; if (this.clamp(), g % 4) for (var x = 0; x < v; x++) { var O = E[x >>> 2] >>> 24 - x % 4 * 8 & 255; w[g + x >>> 2] |= O << 24 - (g + x) % 4 * 8 } else for (var N = 0; N < v; N += 4)w[g + N >>> 2] = E[N >>> 2]; return this.sigBytes += v, this }, clamp: function () { var S = this.words, w = this.sigBytes; S[w >>> 2] &= 4294967295 << 32 - w % 4 * 8, S.length = n.ceil(w / 4) }, clone: function () { var S = o.clone.call(this); return S.words = this.words.slice(0), S }, random: function (S) { for (var w = [], E = 0; E < S; E += 4)w.push(i()); return new u.init(w, S) } }), c = s.enc = {}, f = c.Hex = { stringify: function (S) { for (var w = S.words, E = S.sigBytes, g = [], v = 0; v < E; v++) { var x = w[v >>> 2] >>> 24 - v % 4 * 8 & 255; g.push((x >>> 4).toString(16)), g.push((15 & x).toString(16)) } return g.join("") }, parse: function (S) { for (var w = S.length, E = [], g = 0; g < w; g += 2)E[g >>> 3] |= parseInt(S.substr(g, 2), 16) << 24 - g % 8 * 4; return new u.init(E, w / 2) } }, m = c.Latin1 = { stringify: function (S) { for (var w = S.words, E = S.sigBytes, g = [], v = 0; v < E; v++) { var x = w[v >>> 2] >>> 24 - v % 4 * 8 & 255; g.push(String.fromCharCode(x)) } return g.join("") }, parse: function (S) { for (var w = S.length, E = [], g = 0; g < w; g++)E[g >>> 2] |= (255 & S.charCodeAt(g)) << 24 - g % 4 * 8; return new u.init(E, w) } }, d = c.Utf8 = { stringify: function (S) { try { return decodeURIComponent(escape(m.stringify(S))) } catch { throw new Error("Malformed UTF-8 data") } }, parse: function (S) { return m.parse(unescape(encodeURIComponent(S))) } }, y = a.BufferedBlockAlgorithm = o.extend({ reset: function () { this._data = new u.init, this._nDataBytes = 0 }, _append: function (S) { typeof S == "string" && (S = d.parse(S)), this._data.concat(S), this._nDataBytes += S.sigBytes }, _process: function (R) { var w, E = this._data, g = E.words, v = E.sigBytes, x = this.blockSize, O = v / (4 * x), N = (R ? n.ceil(O) : n.max((0 | O) - this._minBufferSize, 0)) * x, R = n.min(4 * N, v); if (N) { for (var U = 0; U < N; U += x)this._doProcessBlock(g, U); w = g.splice(0, N), E.sigBytes -= R } return new u.init(w, R) }, clone: function () { var S = o.clone.call(this); return S._data = this._data.clone(), S }, _minBufferSize: 0 }), _ = (a.Hasher = y.extend({ cfg: o.extend(), init: function (S) { this.cfg = this.cfg.extend(S), this.reset() }, reset: function () { y.reset.call(this), this._doReset() }, update: function (S) { return this._append(S), this._process(), this }, finalize: function (S) { return S && this._append(S), this._doFinalize() }, blockSize: 16, _createHelper: function (S) { return function (w, E) { return new S.init(E).finalize(w) } }, _createHmacHelper: function (S) { return function (w, E) { return new _.HMAC.init(S, E).finalize(w) } } }), s.algo = {}); return s }(Math) }), J_e = (ht(function (t, e) { var n, r, i; t.exports = (i = (t = Dt).lib, n = i.Base, r = i.WordArray, (i = t.x64 = {}).Word = n.extend({ init: function (l, s) { this.high = l, this.low = s } }), i.WordArray = n.extend({ init: function (l, s) { l = this.words = l || [], this.sigBytes = s ?? 8 * l.length }, toX32: function () { for (var l = this.words, s = l.length, a = [], o = 0; o < s; o++) { var u = l[o]; a.push(u.high), a.push(u.low) } return r.create(a, this.sigBytes) }, clone: function () { for (var l = n.clone.call(this), s = l.words = this.words.slice(0), a = s.length, o = 0; o < a; o++)s[o] = s[o].clone(); return l } }), t) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r, i; typeof ArrayBuffer == "function" && (r = n.lib.WordArray, i = r.init, (r.init = function (l) { if ((l = (l = l instanceof ArrayBuffer ? new Uint8Array(l) : l) instanceof Int8Array || typeof Uint8ClampedArray < "u" && l instanceof Uint8ClampedArray || l instanceof Int16Array || l instanceof Uint16Array || l instanceof Int32Array || l instanceof Uint32Array || l instanceof Float32Array || l instanceof Float64Array ? new Uint8Array(l.buffer, l.byteOffset, l.byteLength) : l) instanceof Uint8Array) { for (var s = l.byteLength, a = [], o = 0; o < s; o++)a[o >>> 2] |= l[o] << 24 - o % 4 * 8; i.call(this, a, s) } else i.apply(this, arguments) }).prototype = r) }(), n.lib.WordArray) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n.lib.WordArray, i = n.enc; function l(s) { return s << 8 & 4278255360 | s >>> 8 & 16711935 } i.Utf16 = i.Utf16BE = { stringify: function (s) { for (var a = s.words, o = s.sigBytes, u = [], c = 0; c < o; c += 2) { var f = a[c >>> 2] >>> 16 - c % 4 * 8 & 65535; u.push(String.fromCharCode(f)) } return u.join("") }, parse: function (s) { for (var a = s.length, o = [], u = 0; u < a; u++)o[u >>> 1] |= s.charCodeAt(u) << 16 - u % 2 * 16; return r.create(o, 2 * a) } }, i.Utf16LE = { stringify: function (s) { for (var a = s.words, o = s.sigBytes, u = [], c = 0; c < o; c += 2) { var f = l(a[c >>> 2] >>> 16 - c % 4 * 8 & 65535); u.push(String.fromCharCode(f)) } return u.join("") }, parse: function (s) { for (var a = s.length, o = [], u = 0; u < a; u++)o[u >>> 1] |= l(s.charCodeAt(u) << 16 - u % 2 * 16); return r.create(o, 2 * a) } } }(), n.enc.Utf16) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = r.lib.WordArray; function l(s, a, o) { for (var u, c = [], f = 0, m = 0; m < a; m++)m % 4 && (u = o[s.charCodeAt(m - 1)] << m % 4 * 2 | o[s.charCodeAt(m)] >>> 6 - m % 4 * 2, c[f >>> 2] |= u << 24 - f % 4 * 8, f++); return i.create(c, f) } r.enc.Base64 = { stringify: function (s) { var a = s.words, o = s.sigBytes, u = this._map; s.clamp(); for (var c = [], f = 0; f < o; f += 3)for (var m = (a[f >>> 2] >>> 24 - f % 4 * 8 & 255) << 16 | (a[f + 1 >>> 2] >>> 24 - (f + 1) % 4 * 8 & 255) << 8 | a[f + 2 >>> 2] >>> 24 - (f + 2) % 4 * 8 & 255, d = 0; d < 4 && f + .75 * d < o; d++)c.push(u.charAt(m >>> 6 * (3 - d) & 63)); var y = u.charAt(64); if (y) for (; c.length % 4;)c.push(y); return c.join("") }, parse: function (s) { var a = s.length, o = this._map; if (!(u = this._reverseMap)) for (var u = this._reverseMap = [], c = 0; c < o.length; c++)u[o.charCodeAt(c)] = c; var f = o.charAt(64); return f && (f = s.indexOf(f)) !== -1 && (a = f), l(s, a, u) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } }(), n.enc.Base64) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = r.lib.WordArray; function l(s, a, o) { for (var u, c = [], f = 0, m = 0; m < a; m++)m % 4 && (u = o[s.charCodeAt(m - 1)] << m % 4 * 2 | o[s.charCodeAt(m)] >>> 6 - m % 4 * 2, c[f >>> 2] |= u << 24 - f % 4 * 8, f++); return i.create(c, f) } r.enc.Base64url = { stringify: function (s, a = !0) { var o = s.words, u = s.sigBytes, c = a ? this._safe_map : this._map; s.clamp(); for (var f = [], m = 0; m < u; m += 3)for (var d = (o[m >>> 2] >>> 24 - m % 4 * 8 & 255) << 16 | (o[m + 1 >>> 2] >>> 24 - (m + 1) % 4 * 8 & 255) << 8 | o[m + 2 >>> 2] >>> 24 - (m + 2) % 4 * 8 & 255, y = 0; y < 4 && m + .75 * y < u; y++)f.push(c.charAt(d >>> 6 * (3 - y) & 63)); var _ = c.charAt(64); if (_) for (; f.length % 4;)f.push(_); return f.join("") }, parse: function (s, a = !0) { var o = s.length, u = a ? this._safe_map : this._map; if (!(c = this._reverseMap)) for (var c = this._reverseMap = [], f = 0; f < u.length; f++)c[u.charCodeAt(f)] = f; return (a = u.charAt(64)) && (a = s.indexOf(a)) !== -1 && (o = a), l(s, o, c) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", _safe_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" } }(), n.enc.Base64url) }), ht(function (t, e) { var n; t.exports = (n = Dt, function (r) { var i = n, l = (o = i.lib).WordArray, s = o.Hasher, o = i.algo, a = [], o = (function () { for (var d = 0; d < 64; d++)a[d] = 4294967296 * r.abs(r.sin(d + 1)) | 0 }(), o.MD5 = s.extend({ _doReset: function () { this._hash = new l.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (d, y) { for (var _ = 0; _ < 16; _++) { var S = y + _, w = d[S]; d[S] = 16711935 & (w << 8 | w >>> 24) | 4278255360 & (w << 24 | w >>> 8) } var E = this._hash.words, g = d[y + 0], v = d[y + 1], x = d[y + 2], O = d[y + 3], N = d[y + 4], R = d[y + 5], U = d[y + 6], F = d[y + 7], te = d[y + 8], Q = d[y + 9], W = d[y + 10], ce = d[y + 11], we = d[y + 12], se = d[y + 13], ee = d[y + 14], me = d[y + 15], P = u(E[0], q = E[1], V = E[2], G = E[3], g, 7, a[0]), G = u(G, P, q, V, v, 12, a[1]), V = u(V, G, P, q, x, 17, a[2]), q = u(q, V, G, P, O, 22, a[3]), P = u(P, q, V, G, N, 7, a[4]), G = u(G, P, q, V, R, 12, a[5]), V = u(V, G, P, q, U, 17, a[6]), q = u(q, V, G, P, F, 22, a[7]); P = u(P, q, V, G, te, 7, a[8]), G = u(G, P, q, V, Q, 12, a[9]), V = u(V, G, P, q, W, 17, a[10]), q = u(q, V, G, P, ce, 22, a[11]), P = u(P, q, V, G, we, 7, a[12]), G = u(G, P, q, V, se, 12, a[13]), V = u(V, G, P, q, ee, 17, a[14]), P = c(P, q = u(q, V, G, P, me, 22, a[15]), V, G, v, 5, a[16]), G = c(G, P, q, V, U, 9, a[17]), V = c(V, G, P, q, ce, 14, a[18]), q = c(q, V, G, P, g, 20, a[19]), P = c(P, q, V, G, R, 5, a[20]), G = c(G, P, q, V, W, 9, a[21]), V = c(V, G, P, q, me, 14, a[22]), q = c(q, V, G, P, N, 20, a[23]), P = c(P, q, V, G, Q, 5, a[24]), G = c(G, P, q, V, ee, 9, a[25]), V = c(V, G, P, q, O, 14, a[26]), q = c(q, V, G, P, te, 20, a[27]), P = c(P, q, V, G, se, 5, a[28]), G = c(G, P, q, V, x, 9, a[29]), V = c(V, G, P, q, F, 14, a[30]), P = f(P, q = c(q, V, G, P, we, 20, a[31]), V, G, R, 4, a[32]), G = f(G, P, q, V, te, 11, a[33]), V = f(V, G, P, q, ce, 16, a[34]), q = f(q, V, G, P, ee, 23, a[35]), P = f(P, q, V, G, v, 4, a[36]), G = f(G, P, q, V, N, 11, a[37]), V = f(V, G, P, q, F, 16, a[38]), q = f(q, V, G, P, W, 23, a[39]), P = f(P, q, V, G, se, 4, a[40]), G = f(G, P, q, V, g, 11, a[41]), V = f(V, G, P, q, O, 16, a[42]), q = f(q, V, G, P, U, 23, a[43]), P = f(P, q, V, G, Q, 4, a[44]), G = f(G, P, q, V, we, 11, a[45]), V = f(V, G, P, q, me, 16, a[46]), P = m(P, q = f(q, V, G, P, x, 23, a[47]), V, G, g, 6, a[48]), G = m(G, P, q, V, F, 10, a[49]), V = m(V, G, P, q, ee, 15, a[50]), q = m(q, V, G, P, R, 21, a[51]), P = m(P, q, V, G, we, 6, a[52]), G = m(G, P, q, V, O, 10, a[53]), V = m(V, G, P, q, W, 15, a[54]), q = m(q, V, G, P, v, 21, a[55]), P = m(P, q, V, G, te, 6, a[56]), G = m(G, P, q, V, me, 10, a[57]), V = m(V, G, P, q, U, 15, a[58]), q = m(q, V, G, P, se, 21, a[59]), P = m(P, q, V, G, N, 6, a[60]), G = m(G, P, q, V, ce, 10, a[61]), V = m(V, G, P, q, x, 15, a[62]), q = m(q, V, G, P, Q, 21, a[63]), E[0] = E[0] + P | 0, E[1] = E[1] + q | 0, E[2] = E[2] + V | 0, E[3] = E[3] + G | 0 }, _doFinalize: function () { var d = this._data, y = d.words, _ = 8 * this._nDataBytes, S = 8 * d.sigBytes, w = (y[S >>> 5] |= 128 << 24 - S % 32, r.floor(_ / 4294967296)); y[15 + (64 + S >>> 9 << 4)] = 16711935 & (w << 8 | w >>> 24) | 4278255360 & (w << 24 | w >>> 8), y[14 + (64 + S >>> 9 << 4)] = 16711935 & (_ << 8 | _ >>> 24) | 4278255360 & (_ << 24 | _ >>> 8), d.sigBytes = 4 * (y.length + 1), this._process(); for (var E = (w = this._hash).words, g = 0; g < 4; g++) { var v = E[g]; E[g] = 16711935 & (v << 8 | v >>> 24) | 4278255360 & (v << 24 | v >>> 8) } return w }, clone: function () { var d = s.clone.call(this); return d._hash = this._hash.clone(), d } })); function u(d, y, _, S, w, E, g) { return ((d = d + (y & _ | ~y & S) + w + g) << E | d >>> 32 - E) + y } function c(d, y, _, S, w, E, g) { return ((d = d + (y & S | _ & ~S) + w + g) << E | d >>> 32 - E) + y } function f(d, y, _, S, w, E, g) { return ((d = d + (y ^ _ ^ S) + w + g) << E | d >>> 32 - E) + y } function m(d, y, _, S, w, E, g) { return ((d = d + (_ ^ (y | ~S)) + w + g) << E | d >>> 32 - E) + y } i.MD5 = s._createHelper(o), i.HmacMD5 = s._createHmacHelper(o) }(Math), n.MD5) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = (a = r.lib).WordArray, l = a.Hasher, a = r.algo, s = [], a = a.SHA1 = l.extend({ _doReset: function () { this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (o, u) { for (var c = this._hash.words, f = c[0], m = c[1], d = c[2], y = c[3], _ = c[4], S = 0; S < 80; S++) { s[S] = S < 16 ? 0 | o[u + S] : (w = s[S - 3] ^ s[S - 8] ^ s[S - 14] ^ s[S - 16]) << 1 | w >>> 31; var w = (f << 5 | f >>> 27) + _ + s[S]; w += S < 20 ? 1518500249 + (m & d | ~m & y) : S < 40 ? 1859775393 + (m ^ d ^ y) : S < 60 ? (m & d | m & y | d & y) - 1894007588 : (m ^ d ^ y) - 899497514, _ = y, y = d, d = m << 30 | m >>> 2, m = f, f = w } c[0] = c[0] + f | 0, c[1] = c[1] + m | 0, c[2] = c[2] + d | 0, c[3] = c[3] + y | 0, c[4] = c[4] + _ | 0 }, _doFinalize: function () { var o = this._data, u = o.words, c = 8 * this._nDataBytes, f = 8 * o.sigBytes; return u[f >>> 5] |= 128 << 24 - f % 32, u[14 + (64 + f >>> 9 << 4)] = Math.floor(c / 4294967296), u[15 + (64 + f >>> 9 << 4)] = c, o.sigBytes = 4 * u.length, this._process(), this._hash }, clone: function () { var o = l.clone.call(this); return o._hash = this._hash.clone(), o } }); r.SHA1 = l._createHelper(a), r.HmacSHA1 = l._createHmacHelper(a) }(), n.SHA1) }), ht(function (t, e) { var n; t.exports = (n = Dt, function (r) { var i = n, l = (c = i.lib).WordArray, s = c.Hasher, c = i.algo, a = [], o = [], u = (function () { function f(y) { return 4294967296 * (y - (0 | y)) | 0 } for (var m = 2, d = 0; d < 64;)!function (y) { for (var _ = r.sqrt(y), S = 2; S <= _; S++)if (!(y % S)) return; return 1 }(m) || (d < 8 && (a[d] = f(r.pow(m, .5))), o[d] = f(r.pow(m, 1 / 3)), d++), m++ }(), []), c = c.SHA256 = s.extend({ _doReset: function () { this._hash = new l.init(a.slice(0)) }, _doProcessBlock: function (f, m) { for (var d = this._hash.words, y = d[0], _ = d[1], S = d[2], w = d[3], E = d[4], g = d[5], v = d[6], x = d[7], O = 0; O < 64; O++) { u[O] = O < 16 ? 0 | f[m + O] : (((N = u[O - 15]) << 25 | N >>> 7) ^ (N << 14 | N >>> 18) ^ N >>> 3) + u[O - 7] + (((N = u[O - 2]) << 15 | N >>> 17) ^ (N << 13 | N >>> 19) ^ N >>> 10) + u[O - 16]; var N = y & _ ^ y & S ^ _ & S, R = x + ((E << 26 | E >>> 6) ^ (E << 21 | E >>> 11) ^ (E << 7 | E >>> 25)) + (E & g ^ ~E & v) + o[O] + u[O], x = v, v = g, g = E, E = w + R | 0, w = S, S = _, _ = y, y = R + (((y << 30 | y >>> 2) ^ (y << 19 | y >>> 13) ^ (y << 10 | y >>> 22)) + N) | 0 } d[0] = d[0] + y | 0, d[1] = d[1] + _ | 0, d[2] = d[2] + S | 0, d[3] = d[3] + w | 0, d[4] = d[4] + E | 0, d[5] = d[5] + g | 0, d[6] = d[6] + v | 0, d[7] = d[7] + x | 0 }, _doFinalize: function () { var f = this._data, m = f.words, d = 8 * this._nDataBytes, y = 8 * f.sigBytes; return m[y >>> 5] |= 128 << 24 - y % 32, m[14 + (64 + y >>> 9 << 4)] = r.floor(d / 4294967296), m[15 + (64 + y >>> 9 << 4)] = d, f.sigBytes = 4 * m.length, this._process(), this._hash }, clone: function () { var f = s.clone.call(this); return f._hash = this._hash.clone(), f } }); i.SHA256 = s._createHelper(c), i.HmacSHA256 = s._createHmacHelper(c) }(Math), n.SHA256) }), ht(function (t, e) { var n, r, i, l; t.exports = (r = (n = t = Dt).lib.WordArray, l = n.algo, i = l.SHA256, l = l.SHA224 = i.extend({ _doReset: function () { this._hash = new r.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var s = i._doFinalize.call(this); return s.sigBytes -= 4, s } }), n.SHA224 = i._createHelper(l), n.HmacSHA224 = i._createHmacHelper(l), t.SHA224) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = r.lib.Hasher, l = (c = r.x64).Word, s = c.WordArray, c = r.algo; function a() { return l.create.apply(l, arguments) } var o = [a(1116352408, 3609767458), a(1899447441, 602891725), a(3049323471, 3964484399), a(3921009573, 2173295548), a(961987163, 4081628472), a(1508970993, 3053834265), a(2453635748, 2937671579), a(2870763221, 3664609560), a(3624381080, 2734883394), a(310598401, 1164996542), a(607225278, 1323610764), a(1426881987, 3590304994), a(1925078388, 4068182383), a(2162078206, 991336113), a(2614888103, 633803317), a(3248222580, 3479774868), a(3835390401, 2666613458), a(4022224774, 944711139), a(264347078, 2341262773), a(604807628, 2007800933), a(770255983, 1495990901), a(1249150122, 1856431235), a(1555081692, 3175218132), a(1996064986, 2198950837), a(2554220882, 3999719339), a(2821834349, 766784016), a(2952996808, 2566594879), a(3210313671, 3203337956), a(3336571891, 1034457026), a(3584528711, 2466948901), a(113926993, 3758326383), a(338241895, 168717936), a(666307205, 1188179964), a(773529912, 1546045734), a(1294757372, 1522805485), a(1396182291, 2643833823), a(1695183700, 2343527390), a(1986661051, 1014477480), a(2177026350, 1206759142), a(2456956037, 344077627), a(2730485921, 1290863460), a(2820302411, 3158454273), a(3259730800, 3505952657), a(3345764771, 106217008), a(3516065817, 3606008344), a(3600352804, 1432725776), a(4094571909, 1467031594), a(275423344, 851169720), a(430227734, 3100823752), a(506948616, 1363258195), a(659060556, 3750685593), a(883997877, 3785050280), a(958139571, 3318307427), a(1322822218, 3812723403), a(1537002063, 2003034995), a(1747873779, 3602036899), a(1955562222, 1575990012), a(2024104815, 1125592928), a(2227730452, 2716904306), a(2361852424, 442776044), a(2428436474, 593698344), a(2756734187, 3733110249), a(3204031479, 2999351573), a(3329325298, 3815920427), a(3391569614, 3928383900), a(3515267271, 566280711), a(3940187606, 3454069534), a(4118630271, 4000239992), a(116418474, 1914138554), a(174292421, 2731055270), a(289380356, 3203993006), a(460393269, 320620315), a(685471733, 587496836), a(852142971, 1086792851), a(1017036298, 365543100), a(1126000580, 2618297676), a(1288033470, 3409855158), a(1501505948, 4234509866), a(1607167915, 987167468), a(1816402316, 1246189591)], u = [], c = (function () { for (var f = 0; f < 80; f++)u[f] = a() }(), c.SHA512 = i.extend({ _doReset: function () { this._hash = new s.init([new l.init(1779033703, 4089235720), new l.init(3144134277, 2227873595), new l.init(1013904242, 4271175723), new l.init(2773480762, 1595750129), new l.init(1359893119, 2917565137), new l.init(2600822924, 725511199), new l.init(528734635, 4215389547), new l.init(1541459225, 327033209)]) }, _doProcessBlock: function (f, m) { for (var d = (v = this._hash.words)[0], y = v[1], _ = v[2], S = v[3], w = v[4], E = v[5], g = v[6], v = v[7], x = d.high, O = d.low, N = y.high, R = y.low, U = _.high, F = _.low, te = S.high, Q = S.low, W = w.high, ce = w.low, we = E.high, se = E.low, ee = g.high, me = g.low, P = v.high, G = v.low, V = x, q = O, Zn = N, Tt = R, Qe = U, pt = F, ze = te, Ue = Q, $t = W, gt = ce, Et = we, ie = se, ve = ee, Se = me, Xe = P, ft = G, Pe = 0; Pe < 80; Pe++) { var Lt, wr, bi = u[Pe]; Pe < 16 ? (wr = bi.high = 0 | f[m + 2 * Pe], Lt = bi.low = 0 | f[m + 2 * Pe + 1]) : (dr = (Sr = u[Pe - 15]).high, Sr = Sr.low, ol = (Zt = u[Pe - 2]).high, Zt = Zt.low, wr = (wr = (wr = ((dr >>> 1 | Sr << 31) ^ (dr >>> 8 | Sr << 24) ^ dr >>> 7) + (si = u[Pe - 7]).high + ((Lt = (Sr = (Sr >>> 1 | dr << 31) ^ (Sr >>> 8 | dr << 24) ^ (Sr >>> 7 | dr << 25)) + si.low) >>> 0 < Sr >>> 0 ? 1 : 0)) + ((ol >>> 19 | Zt << 13) ^ (ol << 3 | Zt >>> 29) ^ ol >>> 6) + ((Lt += dr = (Zt >>> 19 | ol << 13) ^ (Zt << 3 | ol >>> 29) ^ (Zt >>> 6 | ol << 26)) >>> 0 < dr >>> 0 ? 1 : 0)) + (si = u[Pe - 16]).high + ((Lt += Sr = si.low) >>> 0 < Sr >>> 0 ? 1 : 0), bi.high = wr, bi.low = Lt); var Ft, Zt = $t & Et ^ ~$t & ve, ol = gt & ie ^ ~gt & Se, dr = V & Zn ^ V & Qe ^ Zn & Qe, si = (q >>> 28 | V << 4) ^ (q << 30 | V >>> 2) ^ (q << 25 | V >>> 7), Sr = o[Pe], bi = Sr.high, Ri = Sr.low, Ul = Xe + (($t >>> 14 | gt << 18) ^ ($t >>> 18 | gt << 14) ^ ($t << 23 | gt >>> 9)) + ((Ft = ft + ((gt >>> 14 | $t << 18) ^ (gt >>> 18 | $t << 14) ^ (gt << 23 | $t >>> 9))) >>> 0 < ft >>> 0 ? 1 : 0), Rr = si + (q & Tt ^ q & pt ^ Tt & pt), Xe = ve, ft = Se, ve = Et, Se = ie, Et = $t, ie = gt, $t = ze + (Ul = Ul + Zt + ((Ft += ol) >>> 0 < ol >>> 0 ? 1 : 0) + bi + ((Ft += Ri) >>> 0 < Ri >>> 0 ? 1 : 0) + wr + ((Ft += Lt) >>> 0 < Lt >>> 0 ? 1 : 0)) + ((gt = Ue + Ft | 0) >>> 0 < Ue >>> 0 ? 1 : 0) | 0, ze = Qe, Ue = pt, Qe = Zn, pt = Tt, Zn = V, Tt = q, V = Ul + (((V >>> 28 | q << 4) ^ (V << 30 | q >>> 2) ^ (V << 25 | q >>> 7)) + dr + (Rr >>> 0 < si >>> 0 ? 1 : 0)) + ((q = Ft + Rr | 0) >>> 0 < Ft >>> 0 ? 1 : 0) | 0 } O = d.low = O + q, d.high = x + V + (O >>> 0 < q >>> 0 ? 1 : 0), R = y.low = R + Tt, y.high = N + Zn + (R >>> 0 < Tt >>> 0 ? 1 : 0), F = _.low = F + pt, _.high = U + Qe + (F >>> 0 < pt >>> 0 ? 1 : 0), Q = S.low = Q + Ue, S.high = te + ze + (Q >>> 0 < Ue >>> 0 ? 1 : 0), ce = w.low = ce + gt, w.high = W + $t + (ce >>> 0 < gt >>> 0 ? 1 : 0), se = E.low = se + ie, E.high = we + Et + (se >>> 0 < ie >>> 0 ? 1 : 0), me = g.low = me + Se, g.high = ee + ve + (me >>> 0 < Se >>> 0 ? 1 : 0), G = v.low = G + ft, v.high = P + Xe + (G >>> 0 < ft >>> 0 ? 1 : 0) }, _doFinalize: function () { var f = this._data, m = f.words, d = 8 * this._nDataBytes, y = 8 * f.sigBytes; return m[y >>> 5] |= 128 << 24 - y % 32, m[30 + (128 + y >>> 10 << 5)] = Math.floor(d / 4294967296), m[31 + (128 + y >>> 10 << 5)] = d, f.sigBytes = 4 * m.length, this._process(), this._hash.toX32() }, clone: function () { var f = i.clone.call(this); return f._hash = this._hash.clone(), f }, blockSize: 32 })); r.SHA512 = i._createHelper(c), r.HmacSHA512 = i._createHmacHelper(c) }(), n.SHA512) }), ht(function (t, e) { var n, r, i, l, s; t.exports = (s = (n = t = Dt).x64, r = s.Word, i = s.WordArray, s = n.algo, l = s.SHA512, s = s.SHA384 = l.extend({ _doReset: function () { this._hash = new i.init([new r.init(3418070365, 3238371032), new r.init(1654270250, 914150663), new r.init(2438529370, 812702999), new r.init(355462360, 4144912697), new r.init(1731405415, 4290775857), new r.init(2394180231, 1750603025), new r.init(3675008525, 1694076839), new r.init(1203062813, 3204075428)]) }, _doFinalize: function () { var a = l._doFinalize.call(this); return a.sigBytes -= 16, a } }), n.SHA384 = l._createHelper(s), n.HmacSHA384 = l._createHmacHelper(s), t.SHA384) }), ht(function (t, e) { var n; t.exports = (n = Dt, function (r) { var i = n, l = (m = i.lib).WordArray, s = m.Hasher, a = i.x64.Word, m = i.algo, o = [], u = [], c = [], f = (function () { for (var d = 1, y = 0, _ = 0; _ < 24; _++) { o[d + 5 * y] = (_ + 1) * (_ + 2) / 2 % 64; var S = (2 * d + 3 * y) % 5, d = y % 5, y = S } for (d = 0; d < 5; d++)for (y = 0; y < 5; y++)u[d + 5 * y] = y + (2 * d + 3 * y) % 5 * 5; for (var w = 1, E = 0; E < 24; E++) { for (var g, v = 0, x = 0, O = 0; O < 7; O++)1 & w && ((g = (1 << O) - 1) < 32 ? x ^= 1 << g : v ^= 1 << g - 32), 128 & w ? w = w << 1 ^ 113 : w <<= 1; c[E] = a.create(v, x) } }(), []), m = (function () { for (var d = 0; d < 25; d++)f[d] = a.create() }(), m.SHA3 = s.extend({ cfg: s.cfg.extend({ outputLength: 512 }), _doReset: function () { for (var d = this._state = [], y = 0; y < 25; y++)d[y] = new a.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (d, y) { for (var _ = this._state, S = this.blockSize / 2, w = 0; w < S; w++) { var g = d[y + 2 * w], E = d[y + 2 * w + 1], g = 16711935 & (g << 8 | g >>> 24) | 4278255360 & (g << 24 | g >>> 8); (P = _[w]).high ^= 16711935 & (E << 8 | E >>> 24) | 4278255360 & (E << 24 | E >>> 8), P.low ^= g } for (var v = 0; v < 24; v++) { for (var x = 0; x < 5; x++) { for (var O = 0, N = 0, R = 0; R < 5; R++)O ^= (P = _[x + 5 * R]).high, N ^= P.low; var U = f[x]; U.high = O, U.low = N } for (x = 0; x < 5; x++)for (var F = f[(x + 4) % 5], te = (Q = f[(x + 1) % 5]).high, Q = Q.low, O = F.high ^ (te << 1 | Q >>> 31), N = F.low ^ (Q << 1 | te >>> 31), R = 0; R < 5; R++)(P = _[x + 5 * R]).high ^= O, P.low ^= N; for (var W = 1; W < 25; W++) { var ce = (P = _[W]).high, we = P.low, se = o[W]; N = se < 32 ? (O = ce << se | we >>> 32 - se, we << se | ce >>> 32 - se) : (O = we << se - 32 | ce >>> 64 - se, ce << se - 32 | we >>> 64 - se), (ce = f[u[W]]).high = O, ce.low = N } var ee = f[0], me = _[0]; for (ee.high = me.high, ee.low = me.low, x = 0; x < 5; x++)for (R = 0; R < 5; R++) { var P = _[W = x + 5 * R], G = f[W], V = f[(x + 1) % 5 + 5 * R], q = f[(x + 2) % 5 + 5 * R]; P.high = G.high ^ ~V.high & q.high, P.low = G.low ^ ~V.low & q.low } (P = _[0]).high ^= (ee = c[v]).high, P.low ^= ee.low } }, _doFinalize: function () { var d = this._data, y = d.words, _ = (this._nDataBytes, 8 * d.sigBytes), S = 32 * this.blockSize; y[_ >>> 5] |= 1 << 24 - _ % 32, y[(r.ceil((1 + _) / S) * S >>> 5) - 1] |= 128, d.sigBytes = 4 * y.length, this._process(); for (var w = this._state, E = (_ = this.cfg.outputLength / 8) / 8, g = [], v = 0; v < E; v++) { var O = (x = w[v]).high, x = x.low, O = 16711935 & (O << 8 | O >>> 24) | 4278255360 & (O << 24 | O >>> 8); g.push(16711935 & (x << 8 | x >>> 24) | 4278255360 & (x << 24 | x >>> 8)), g.push(O) } return new l.init(g, _) }, clone: function () { for (var d = s.clone.call(this), y = d._state = this._state.slice(0), _ = 0; _ < 25; _++)y[_] = y[_].clone(); return d } })); i.SHA3 = s._createHelper(m), i.HmacSHA3 = s._createHmacHelper(m) }(Math), n.SHA3) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = (m = r.lib).WordArray, l = m.Hasher, m = r.algo, s = i.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), a = i.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), o = i.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), u = i.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), c = i.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), f = i.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), m = m.RIPEMD160 = l.extend({ _doReset: function () { this._hash = i.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (S, w) { for (var E = 0; E < 16; E++) { var g = w + E, v = S[g]; S[g] = 16711935 & (v << 8 | v >>> 24) | 4278255360 & (v << 24 | v >>> 8) } for (var x, O, N, R, U, F, te = this._hash.words, Q = c.words, W = f.words, ce = s.words, we = a.words, se = o.words, ee = u.words, me = x = te[0], P = O = te[1], G = N = te[2], V = R = te[3], q = U = te[4], E = 0; E < 80; E += 1)F = (F = _(F = (F = x + S[w + ce[E]] | 0) + (E < 16 ? (O ^ N ^ R) + Q[0] : E < 32 ? d(O, N, R) + Q[1] : E < 48 ? ((O | ~N) ^ R) + Q[2] : E < 64 ? y(O, N, R) + Q[3] : (O ^ (N | ~R)) + Q[4]) | 0, se[E])) + U | 0, x = U, U = R, R = _(N, 10), N = O, O = F, F = (F = _(F = (F = me + S[w + we[E]] | 0) + (E < 16 ? (P ^ (G | ~V)) + W[0] : E < 32 ? y(P, G, V) + W[1] : E < 48 ? ((P | ~G) ^ V) + W[2] : E < 64 ? d(P, G, V) + W[3] : (P ^ G ^ V) + W[4]) | 0, ee[E])) + q | 0, me = q, q = V, V = _(G, 10), G = P, P = F; F = te[1] + N + V | 0, te[1] = te[2] + R + q | 0, te[2] = te[3] + U + me | 0, te[3] = te[4] + x + P | 0, te[4] = te[0] + O + G | 0, te[0] = F }, _doFinalize: function () { var S = this._data, w = S.words, E = 8 * this._nDataBytes, g = 8 * S.sigBytes; w[g >>> 5] |= 128 << 24 - g % 32, w[14 + (64 + g >>> 9 << 4)] = 16711935 & (E << 8 | E >>> 24) | 4278255360 & (E << 24 | E >>> 8), S.sigBytes = 4 * (w.length + 1), this._process(); for (var v = (g = this._hash).words, x = 0; x < 5; x++) { var O = v[x]; v[x] = 16711935 & (O << 8 | O >>> 24) | 4278255360 & (O << 24 | O >>> 8) } return g }, clone: function () { var S = l.clone.call(this); return S._hash = this._hash.clone(), S } }); function d(S, w, E) { return S & w | ~S & E } function y(S, w, E) { return S & E | w & ~E } function _(S, w) { return S << w | S >>> 32 - w } r.RIPEMD160 = l._createHelper(m), r.HmacRIPEMD160 = l._createHmacHelper(m) }(), n.RIPEMD160) }), ht(function (t, e) { var n; t.exports = (t = Dt.lib.Base, n = Dt.enc.Utf8, void (Dt.algo.HMAC = t.extend({ init: function (r, i) { r = this._hasher = new r.init, typeof i == "string" && (i = n.parse(i)); var l = r.blockSize, s = 4 * l; (i = i.sigBytes > s ? r.finalize(i) : i).clamp(); for (var r = this._oKey = i.clone(), i = this._iKey = i.clone(), a = r.words, o = i.words, u = 0; u < l; u++)a[u] ^= 1549556828, o[u] ^= 909522486; r.sigBytes = i.sigBytes = s, this.reset() }, reset: function () { var r = this._hasher; r.reset(), r.update(this._iKey) }, update: function (r) { return this._hasher.update(r), this }, finalize: function (l) { var i = this._hasher, l = i.finalize(l); return i.reset(), i.finalize(this._oKey.clone().concat(l)) } }))) }), ht(function (t, e) { var n, r, i, l, s, a, o; t.exports = (r = (l = (n = t = Dt).lib).Base, i = l.WordArray, s = (l = n.algo).SHA1, a = l.HMAC, o = l.PBKDF2 = r.extend({ cfg: r.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (u) { this.cfg = this.cfg.extend(u) }, compute: function (u, c) { for (var f = this.cfg, m = a.create(f.hasher, u), d = i.create(), y = i.create([1]), _ = d.words, S = y.words, w = f.keySize, E = f.iterations; _.length < w;) { var g = m.update(c).finalize(y); m.reset(); for (var v = g.words, x = v.length, O = g, N = 1; N < E; N++) { O = m.finalize(O), m.reset(); for (var R = O.words, U = 0; U < x; U++)v[U] ^= R[U] } d.concat(g), S[0]++ } return d.sigBytes = 4 * w, d } }), n.PBKDF2 = function (u, c, f) { return o.create(f).compute(u, c) }, t.PBKDF2) }), ht(function (t, e) { var n, r, i, l, s, a; t.exports = (r = (l = (n = t = Dt).lib).Base, i = l.WordArray, s = (l = n.algo).MD5, a = l.EvpKDF = r.extend({ cfg: r.extend({ keySize: 4, hasher: s, iterations: 1 }), init: function (o) { this.cfg = this.cfg.extend(o) }, compute: function (o, u) { for (var c, f = this.cfg, m = f.hasher.create(), d = i.create(), y = d.words, _ = f.keySize, S = f.iterations; y.length < _;) { c && m.update(c), c = m.update(o).finalize(u), m.reset(); for (var w = 1; w < S; w++)c = m.finalize(c), m.reset(); d.concat(c) } return d.sigBytes = 4 * _, d } }), n.EvpKDF = function (o, u, c) { return a.create(c).compute(o, u) }, t.EvpKDF) }), ht(function (t, e) { var n; t.exports = void ((n = Dt).lib.Cipher || function () { var r = n, i = r.lib, l = i.Base, s = i.WordArray, a = i.BufferedBlockAlgorithm, o = ((d = r.enc).Utf8, d.Base64), u = r.algo.EvpKDF, c = i.Cipher = a.extend({ cfg: l.extend(), createEncryptor: function (E, g) { return this.create(this._ENC_XFORM_MODE, E, g) }, createDecryptor: function (E, g) { return this.create(this._DEC_XFORM_MODE, E, g) }, init: function (E, g, v) { this.cfg = this.cfg.extend(v), this._xformMode = E, this._key = g, this.reset() }, reset: function () { a.reset.call(this), this._doReset() }, process: function (E) { return this._append(E), this._process() }, finalize: function (E) { return E && this._append(E), this._doFinalize() }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function (E) { return { encrypt: function (g, v, x) { return w(v).encrypt(E, g, v, x) }, decrypt: function (g, v, x) { return w(v).decrypt(E, g, v, x) } } } }), d = (i.StreamCipher = c.extend({ _doFinalize: function () { return this._process(!0) }, blockSize: 1 }), r.mode = {}), f = i.BlockCipherMode = l.extend({ createEncryptor: function (E, g) { return this.Encryptor.create(E, g) }, createDecryptor: function (E, g) { return this.Decryptor.create(E, g) }, init: function (E, g) { this._cipher = E, this._iv = g } }), d = d.CBC = function () { var E = f.extend(); function g(v, x, O) { var N, R = this._iv; R ? (N = R, this._iv = void 0) : N = this._prevBlock; for (var U = 0; U < O; U++)v[x + U] ^= N[U] } return E.Encryptor = E.extend({ processBlock: function (v, x) { var O = this._cipher, N = O.blockSize; g.call(this, v, x, N), O.encryptBlock(v, x), this._prevBlock = v.slice(x, x + N) } }), E.Decryptor = E.extend({ processBlock: function (v, x) { var O = this._cipher, N = O.blockSize, R = v.slice(x, x + N); O.decryptBlock(v, x), g.call(this, v, x, N), this._prevBlock = R } }), E }(), _ = (r.pad = {}).Pkcs7 = { pad: function (E, g) { for (var v = (g = 4 * g) - E.sigBytes % g, x = v << 24 | v << 16 | v << 8 | v, O = [], N = 0; N < v; N += 4)O.push(x); g = s.create(O, v), E.concat(g) }, unpad: function (E) { var g = 255 & E.words[E.sigBytes - 1 >>> 2]; E.sigBytes -= g } }, m = (i.BlockCipher = c.extend({ cfg: c.cfg.extend({ mode: d, padding: _ }), reset: function () { c.reset.call(this); var E, g = (v = this.cfg).iv, v = v.mode; this._xformMode == this._ENC_XFORM_MODE ? E = v.createEncryptor : (E = v.createDecryptor, this._minBufferSize = 1), this._mode && this._mode.__creator == E ? this._mode.init(this, g && g.words) : (this._mode = E.call(v, this, g && g.words), this._mode.__creator = E) }, _doProcessBlock: function (E, g) { this._mode.processBlock(E, g) }, _doFinalize: function () { var E, g = this.cfg.padding; return this._xformMode == this._ENC_XFORM_MODE ? (g.pad(this._data, this.blockSize), E = this._process(!0)) : (E = this._process(!0), g.unpad(E)), E }, blockSize: 4 }), i.CipherParams = l.extend({ init: function (E) { this.mixIn(E) }, toString: function (E) { return (E || this.formatter).stringify(this) } })), d = (r.format = {}).OpenSSL = { stringify: function (E) { var g = E.ciphertext; return ((E = E.salt) ? s.create([1398893684, 1701076831]).concat(E).concat(g) : g).toString(o) }, parse: function (E) { var g, v = (E = o.parse(E)).words; return v[0] == 1398893684 && v[1] == 1701076831 && (g = s.create(v.slice(2, 4)), v.splice(0, 4), E.sigBytes -= 16), m.create({ ciphertext: E, salt: g }) } }, y = i.SerializableCipher = l.extend({ cfg: l.extend({ format: d }), encrypt: function (E, O, v, x) { x = this.cfg.extend(x); var O = (N = E.createEncryptor(v, x)).finalize(O), N = N.cfg; return m.create({ ciphertext: O, key: v, iv: N.iv, algorithm: E, mode: N.mode, padding: N.padding, blockSize: E.blockSize, formatter: x.format }) }, decrypt: function (E, g, v, x) { return x = this.cfg.extend(x), g = this._parse(g, x.format), E.createDecryptor(v, x).finalize(g.ciphertext) }, _parse: function (E, g) { return typeof E == "string" ? g.parse(E, this) : E } }), _ = (r.kdf = {}).OpenSSL = { execute: function (E, g, v, x) { return x = x || s.random(8), E = u.create({ keySize: g + v }).compute(E, x), v = s.create(E.words.slice(g), 4 * v), E.sigBytes = 4 * g, m.create({ key: E, iv: v, salt: x }) } }, S = i.PasswordBasedCipher = y.extend({ cfg: y.cfg.extend({ kdf: _ }), encrypt: function (E, g, v, x) { return v = (x = this.cfg.extend(x)).kdf.execute(v, E.keySize, E.ivSize), x.iv = v.iv, (E = y.encrypt.call(this, E, g, v.key, x)).mixIn(v), E }, decrypt: function (E, g, v, x) { return x = this.cfg.extend(x), g = this._parse(g, x.format), v = x.kdf.execute(v, E.keySize, E.ivSize, g.salt), x.iv = v.iv, y.decrypt.call(this, E, g, v.key, x) } }); function w(E) { return typeof E == "string" ? S : y } }()) }), ht(function (t, e) { var n; t.exports = ((n = Dt).mode.CFB = function () { var r = n.lib.BlockCipherMode.extend(); function i(l, s, a, o) { var u, c = this._iv; c ? (u = c.slice(0), this._iv = void 0) : u = this._prevBlock, o.encryptBlock(u, 0); for (var f = 0; f < a; f++)l[s + f] ^= u[f] } return r.Encryptor = r.extend({ processBlock: function (l, s) { var a = this._cipher, o = a.blockSize; i.call(this, l, s, o, a), this._prevBlock = l.slice(s, s + o) } }), r.Decryptor = r.extend({ processBlock: function (l, s) { var a = this._cipher, o = a.blockSize, u = l.slice(s, s + o); i.call(this, l, s, o, a), this._prevBlock = u } }), r }(), n.mode.CFB) }), ht(function (t, e) { var n, r; t.exports = ((t = Dt).mode.CTR = (r = (n = t.lib.BlockCipherMode.extend()).Encryptor = n.extend({ processBlock: function (i, l) { var s = this._cipher, a = s.blockSize, o = this._iv, u = this._counter, c = (o && (u = this._counter = o.slice(0), this._iv = void 0), u.slice(0)); s.encryptBlock(c, 0), u[a - 1] = u[a - 1] + 1 | 0; for (var f = 0; f < a; f++)i[l + f] ^= c[f] } }), n.Decryptor = r, n), t.mode.CTR) }), ht(function (t, e) { var n; t.exports = ((n = Dt).mode.CTRGladman = function () { var r = n.lib.BlockCipherMode.extend(); function i(a) { var o, u, c; return (a >> 24 & 255) == 255 ? (u = a >> 8 & 255, c = 255 & a, (o = a >> 16 & 255) == 255 ? (o = 0, u === 255 ? (u = 0, c === 255 ? c = 0 : ++c) : ++u) : ++o, a = 0, a = (a += o << 16) + (u << 8) + c) : a += 1 << 24, a } function l(a) { (a[0] = i(a[0])) === 0 && (a[1] = i(a[1])) } var s = r.Encryptor = r.extend({ processBlock: function (a, o) { var u = this._cipher, c = u.blockSize, f = this._iv, m = this._counter, d = (f && (m = this._counter = f.slice(0), this._iv = void 0), l(m), m.slice(0)); u.encryptBlock(d, 0); for (var y = 0; y < c; y++)a[o + y] ^= d[y] } }); return r.Decryptor = s, r }(), n.mode.CTRGladman) }), ht(function (t, e) { var n, r; t.exports = ((t = Dt).mode.OFB = (r = (n = t.lib.BlockCipherMode.extend()).Encryptor = n.extend({ processBlock: function (i, l) { var s = this._cipher, a = s.blockSize, o = this._iv, u = this._keystream; o && (u = this._keystream = o.slice(0), this._iv = void 0), s.encryptBlock(u, 0); for (var c = 0; c < a; c++)i[l + c] ^= u[c] } }), n.Decryptor = r, n), t.mode.OFB) }), ht(function (t, e) { var n; t.exports = ((t = Dt).mode.ECB = ((n = t.lib.BlockCipherMode.extend()).Encryptor = n.extend({ processBlock: function (r, i) { this._cipher.encryptBlock(r, i) } }), n.Decryptor = n.extend({ processBlock: function (r, i) { this._cipher.decryptBlock(r, i) } }), n), t.mode.ECB) }), ht(function (t, e) { t.exports = (Dt.pad.AnsiX923 = { pad: function (n, r) { var i = (i = n.sigBytes) + (r = (r = 4 * r) - i % r) - 1; n.clamp(), n.words[i >>> 2] |= r << 24 - i % 4 * 8, n.sigBytes += r }, unpad: function (n) { var r = 255 & n.words[n.sigBytes - 1 >>> 2]; n.sigBytes -= r } }, Dt.pad.Ansix923) }), ht(function (t, e) { var n; t.exports = ((n = Dt).pad.Iso10126 = { pad: function (r, i) { i = (i *= 4) - r.sigBytes % i, r.concat(n.lib.WordArray.random(i - 1)).concat(n.lib.WordArray.create([i << 24], 1)) }, unpad: function (r) { var i = 255 & r.words[r.sigBytes - 1 >>> 2]; r.sigBytes -= i } }, n.pad.Iso10126) }), ht(function (t, e) { var n; t.exports = ((n = Dt).pad.Iso97971 = { pad: function (r, i) { r.concat(n.lib.WordArray.create([2147483648], 1)), n.pad.ZeroPadding.pad(r, i) }, unpad: function (r) { n.pad.ZeroPadding.unpad(r), r.sigBytes-- } }, n.pad.Iso97971) }), ht(function (t, e) { t.exports = (Dt.pad.ZeroPadding = { pad: function (n, r) { r *= 4, n.clamp(), n.sigBytes += r - (n.sigBytes % r || r) }, unpad: function (n) { for (var r = n.words, i = n.sigBytes - 1, i = n.sigBytes - 1; 0 <= i; i--)if (r[i >>> 2] >>> 24 - i % 4 * 8 & 255) { n.sigBytes = i + 1; break } } }, Dt.pad.ZeroPadding) }), ht(function (t, e) { t.exports = (Dt.pad.NoPadding = { pad: function () { }, unpad: function () { } }, Dt.pad.NoPadding) }), ht(function (t, e) { var n, r; t.exports = (n = (t = Dt).lib.CipherParams, r = t.enc.Hex, t.format.Hex = { stringify: function (i) { return i.ciphertext.toString(r) }, parse: function (i) { return i = r.parse(i), n.create({ ciphertext: i }) } }, t.format.Hex) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = r.lib.BlockCipher, S = r.algo, l = [], s = [], a = [], o = [], u = [], c = [], f = [], m = [], d = [], y = [], _ = (function () { for (var w = [], E = 0; E < 256; E++)w[E] = E < 128 ? E << 1 : E << 1 ^ 283; for (var g = 0, v = 0, E = 0; E < 256; E++) { var x = v ^ v << 1 ^ v << 2 ^ v << 3 ^ v << 4, O = (l[g] = x = x >>> 8 ^ 255 & x ^ 99, w[s[x] = g]), N = w[O], R = w[N], U = 257 * w[x] ^ 16843008 * x; a[g] = U << 24 | U >>> 8, o[g] = U << 16 | U >>> 16, u[g] = U << 8 | U >>> 24, c[g] = U, f[x] = (U = 16843009 * R ^ 65537 * N ^ 257 * O ^ 16843008 * g) << 24 | U >>> 8, m[x] = U << 16 | U >>> 16, d[x] = U << 8 | U >>> 24, y[x] = U, g ? (g = O ^ w[w[w[R ^ O]]], v ^= w[w[v]]) : g = v = 1 } }(), [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]), S = S.AES = i.extend({ _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var w = this._keyPriorReset = this._key, E = w.words, g = w.sigBytes / 4, v = 4 * (1 + (this._nRounds = 6 + g)), x = this._keySchedule = [], O = 0; O < v; O++)O < g ? x[O] = E[O] : (U = x[O - 1], O % g ? 6 < g && O % g == 4 && (U = l[U >>> 24] << 24 | l[U >>> 16 & 255] << 16 | l[U >>> 8 & 255] << 8 | l[255 & U]) : (U = l[(U = U << 8 | U >>> 24) >>> 24] << 24 | l[U >>> 16 & 255] << 16 | l[U >>> 8 & 255] << 8 | l[255 & U], U ^= _[O / g | 0] << 24), x[O] = x[O - g] ^ U); for (var N = this._invKeySchedule = [], R = 0; R < v; R++) { var O = v - R, U = R % 4 ? x[O] : x[O - 4]; N[R] = R < 4 || O <= 4 ? U : f[l[U >>> 24]] ^ m[l[U >>> 16 & 255]] ^ d[l[U >>> 8 & 255]] ^ y[l[255 & U]] } } }, encryptBlock: function (w, E) { this._doCryptBlock(w, E, this._keySchedule, a, o, u, c, l) }, decryptBlock: function (w, E) { var g = w[E + 1]; w[E + 1] = w[E + 3], w[E + 3] = g, this._doCryptBlock(w, E, this._invKeySchedule, f, m, d, y, s), g = w[E + 1], w[E + 1] = w[E + 3], w[E + 3] = g }, _doCryptBlock: function (w, E, g, v, x, O, N, R) { for (var U = this._nRounds, se = w[E] ^ g[0], ee = w[E + 1] ^ g[1], me = w[E + 2] ^ g[2], P = w[E + 3] ^ g[3], F = 4, te = 1; te < U; te++)var Q = v[se >>> 24] ^ x[ee >>> 16 & 255] ^ O[me >>> 8 & 255] ^ N[255 & P] ^ g[F++], W = v[ee >>> 24] ^ x[me >>> 16 & 255] ^ O[P >>> 8 & 255] ^ N[255 & se] ^ g[F++], ce = v[me >>> 24] ^ x[P >>> 16 & 255] ^ O[se >>> 8 & 255] ^ N[255 & ee] ^ g[F++], we = v[P >>> 24] ^ x[se >>> 16 & 255] ^ O[ee >>> 8 & 255] ^ N[255 & me] ^ g[F++], se = Q, ee = W, me = ce, P = we; Q = (R[se >>> 24] << 24 | R[ee >>> 16 & 255] << 16 | R[me >>> 8 & 255] << 8 | R[255 & P]) ^ g[F++], W = (R[ee >>> 24] << 24 | R[me >>> 16 & 255] << 16 | R[P >>> 8 & 255] << 8 | R[255 & se]) ^ g[F++], ce = (R[me >>> 24] << 24 | R[P >>> 16 & 255] << 16 | R[se >>> 8 & 255] << 8 | R[255 & ee]) ^ g[F++], we = (R[P >>> 24] << 24 | R[se >>> 16 & 255] << 16 | R[ee >>> 8 & 255] << 8 | R[255 & me]) ^ g[F++], w[E] = Q, w[E + 1] = W, w[E + 2] = ce, w[E + 3] = we }, keySize: 8 }); r.AES = i._createHelper(S) }(), n.AES) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = (l = r.lib).WordArray, l = l.BlockCipher, s = r.algo, a = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], o = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], u = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], c = [{ 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], f = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], m = s.DES = l.extend({ _doReset: function () { for (var _ = this._key.words, S = [], w = 0; w < 56; w++) { var E = a[w] - 1; S[w] = _[E >>> 5] >>> 31 - E % 32 & 1 } for (var g = this._subKeys = [], v = 0; v < 16; v++) { for (var x = g[v] = [], O = u[v], w = 0; w < 24; w++)x[w / 6 | 0] |= S[(o[w] - 1 + O) % 28] << 31 - w % 6, x[4 + (w / 6 | 0)] |= S[28 + (o[w + 24] - 1 + O) % 28] << 31 - w % 6; for (x[0] = x[0] << 1 | x[0] >>> 31, w = 1; w < 7; w++)x[w] = x[w] >>> 4 * (w - 1) + 3; x[7] = x[7] << 5 | x[7] >>> 27 } var N = this._invSubKeys = []; for (w = 0; w < 16; w++)N[w] = g[15 - w] }, encryptBlock: function (_, S) { this._doCryptBlock(_, S, this._subKeys) }, decryptBlock: function (_, S) { this._doCryptBlock(_, S, this._invSubKeys) }, _doCryptBlock: function (_, S, w) { this._lBlock = _[S], this._rBlock = _[S + 1], d.call(this, 4, 252645135), d.call(this, 16, 65535), y.call(this, 2, 858993459), y.call(this, 8, 16711935), d.call(this, 1, 1431655765); for (var E = 0; E < 16; E++) { for (var g = w[E], v = this._lBlock, x = this._rBlock, O = 0, N = 0; N < 8; N++)O |= c[N][((x ^ g[N]) & f[N]) >>> 0]; this._lBlock = x, this._rBlock = v ^ O } var R = this._lBlock; this._lBlock = this._rBlock, this._rBlock = R, d.call(this, 1, 1431655765), y.call(this, 8, 16711935), y.call(this, 2, 858993459), d.call(this, 16, 65535), d.call(this, 4, 252645135), _[S] = this._lBlock, _[S + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); function d(_, S) { S = (this._lBlock >>> _ ^ this._rBlock) & S, this._rBlock ^= S, this._lBlock ^= S << _ } function y(_, S) { S = (this._rBlock >>> _ ^ this._lBlock) & S, this._lBlock ^= S, this._rBlock ^= S << _ } r.DES = l._createHelper(m), s = s.TripleDES = l.extend({ _doReset: function () { if ((w = this._key.words).length !== 2 && w.length !== 4 && w.length < 6) throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192."); var _ = w.slice(0, 2), S = w.length < 4 ? w.slice(0, 2) : w.slice(2, 4), w = w.length < 6 ? w.slice(0, 2) : w.slice(4, 6); this._des1 = m.createEncryptor(i.create(_)), this._des2 = m.createEncryptor(i.create(S)), this._des3 = m.createEncryptor(i.create(w)) }, encryptBlock: function (_, S) { this._des1.encryptBlock(_, S), this._des2.decryptBlock(_, S), this._des3.encryptBlock(_, S) }, decryptBlock: function (_, S) { this._des3.decryptBlock(_, S), this._des2.encryptBlock(_, S), this._des1.decryptBlock(_, S) }, keySize: 6, ivSize: 2, blockSize: 2 }), r.TripleDES = l._createHelper(s) }(), n.TripleDES) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = r.lib.StreamCipher, l = r.algo, s = l.RC4 = i.extend({ _doReset: function () { for (var o = this._key, u = o.words, c = o.sigBytes, f = this._S = [], m = 0; m < 256; m++)f[m] = m; for (var m = 0, d = 0; m < 256; m++) { var y = u[(y = m % c) >>> 2] >>> 24 - y % 4 * 8 & 255, d = (d + f[m] + y) % 256, y = f[m]; f[m] = f[d], f[d] = y } this._i = this._j = 0 }, _doProcessBlock: function (o, u) { o[u] ^= a.call(this) }, keySize: 8, ivSize: 0 }); function a() { for (var o = this._S, u = this._i, c = this._j, f = 0, m = 0; m < 4; m++) { var c = (c + o[u = (u + 1) % 256]) % 256, d = o[u]; o[u] = o[c], o[c] = d, f |= o[(o[u] + o[c]) % 256] << 24 - 8 * m } return this._i = u, this._j = c, f } r.RC4 = i._createHelper(s), l = l.RC4Drop = s.extend({ cfg: s.cfg.extend({ drop: 192 }), _doReset: function () { s._doReset.call(this); for (var o = this.cfg.drop; 0 < o; o--)a.call(this) } }), r.RC4Drop = i._createHelper(l) }(), n.RC4) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = r.lib.StreamCipher, o = r.algo, l = [], s = [], a = [], o = o.Rabbit = i.extend({ _doReset: function () { for (var c = this._key.words, f = this.cfg.iv, m = 0; m < 4; m++)c[m] = 16711935 & (c[m] << 8 | c[m] >>> 24) | 4278255360 & (c[m] << 24 | c[m] >>> 8); for (var d = this._X = [c[0], c[3] << 16 | c[2] >>> 16, c[1], c[0] << 16 | c[3] >>> 16, c[2], c[1] << 16 | c[0] >>> 16, c[3], c[2] << 16 | c[1] >>> 16], y = this._C = [c[2] << 16 | c[2] >>> 16, 4294901760 & c[0] | 65535 & c[1], c[3] << 16 | c[3] >>> 16, 4294901760 & c[1] | 65535 & c[2], c[0] << 16 | c[0] >>> 16, 4294901760 & c[2] | 65535 & c[3], c[1] << 16 | c[1] >>> 16, 4294901760 & c[3] | 65535 & c[0]], m = this._b = 0; m < 4; m++)u.call(this); for (m = 0; m < 8; m++)y[m] ^= d[m + 4 & 7]; if (f) { var _ = (f = f.words)[0], S = (_ = 16711935 & (_ << 8 | _ >>> 24) | 4278255360 & (_ << 24 | _ >>> 8)) >>> 16 | 4294901760 & (f = 16711935 & ((f = f[1]) << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8)), w = f << 16 | 65535 & _; for (y[0] ^= _, y[1] ^= S, y[2] ^= f, y[3] ^= w, y[4] ^= _, y[5] ^= S, y[6] ^= f, y[7] ^= w, m = 0; m < 4; m++)u.call(this) } }, _doProcessBlock: function (c, f) { var m = this._X; u.call(this), l[0] = m[0] ^ m[5] >>> 16 ^ m[3] << 16, l[1] = m[2] ^ m[7] >>> 16 ^ m[5] << 16, l[2] = m[4] ^ m[1] >>> 16 ^ m[7] << 16, l[3] = m[6] ^ m[3] >>> 16 ^ m[1] << 16; for (var d = 0; d < 4; d++)l[d] = 16711935 & (l[d] << 8 | l[d] >>> 24) | 4278255360 & (l[d] << 24 | l[d] >>> 8), c[f + d] ^= l[d] }, blockSize: 4, ivSize: 2 }); function u() { for (var c = this._X, f = this._C, m = 0; m < 8; m++)s[m] = f[m]; for (f[0] = f[0] + 1295307597 + this._b | 0, f[1] = f[1] + 3545052371 + (f[0] >>> 0 < s[0] >>> 0 ? 1 : 0) | 0, f[2] = f[2] + 886263092 + (f[1] >>> 0 < s[1] >>> 0 ? 1 : 0) | 0, f[3] = f[3] + 1295307597 + (f[2] >>> 0 < s[2] >>> 0 ? 1 : 0) | 0, f[4] = f[4] + 3545052371 + (f[3] >>> 0 < s[3] >>> 0 ? 1 : 0) | 0, f[5] = f[5] + 886263092 + (f[4] >>> 0 < s[4] >>> 0 ? 1 : 0) | 0, f[6] = f[6] + 1295307597 + (f[5] >>> 0 < s[5] >>> 0 ? 1 : 0) | 0, f[7] = f[7] + 3545052371 + (f[6] >>> 0 < s[6] >>> 0 ? 1 : 0) | 0, this._b = f[7] >>> 0 < s[7] >>> 0 ? 1 : 0, m = 0; m < 8; m++) { var d = c[m] + f[m], y = 65535 & d, _ = d >>> 16; a[m] = ((y * y >>> 17) + y * _ >>> 15) + _ * _ ^ ((4294901760 & d) * d | 0) + ((65535 & d) * d | 0) } c[0] = a[0] + (a[7] << 16 | a[7] >>> 16) + (a[6] << 16 | a[6] >>> 16) | 0, c[1] = a[1] + (a[0] << 8 | a[0] >>> 24) + a[7] | 0, c[2] = a[2] + (a[1] << 16 | a[1] >>> 16) + (a[0] << 16 | a[0] >>> 16) | 0, c[3] = a[3] + (a[2] << 8 | a[2] >>> 24) + a[1] | 0, c[4] = a[4] + (a[3] << 16 | a[3] >>> 16) + (a[2] << 16 | a[2] >>> 16) | 0, c[5] = a[5] + (a[4] << 8 | a[4] >>> 24) + a[3] | 0, c[6] = a[6] + (a[5] << 16 | a[5] >>> 16) + (a[4] << 16 | a[4] >>> 16) | 0, c[7] = a[7] + (a[6] << 8 | a[6] >>> 24) + a[5] | 0 } r.Rabbit = i._createHelper(o) }(), n.Rabbit) }), ht(function (t, e) { var n; t.exports = (n = Dt, function () { var r = n, i = r.lib.StreamCipher, o = r.algo, l = [], s = [], a = [], o = o.RabbitLegacy = i.extend({ _doReset: function () { for (var c = this._key.words, f = this.cfg.iv, m = this._X = [c[0], c[3] << 16 | c[2] >>> 16, c[1], c[0] << 16 | c[3] >>> 16, c[2], c[1] << 16 | c[0] >>> 16, c[3], c[2] << 16 | c[1] >>> 16], d = this._C = [c[2] << 16 | c[2] >>> 16, 4294901760 & c[0] | 65535 & c[1], c[3] << 16 | c[3] >>> 16, 4294901760 & c[1] | 65535 & c[2], c[0] << 16 | c[0] >>> 16, 4294901760 & c[2] | 65535 & c[3], c[1] << 16 | c[1] >>> 16, 4294901760 & c[3] | 65535 & c[0]], y = this._b = 0; y < 4; y++)u.call(this); for (y = 0; y < 8; y++)d[y] ^= m[y + 4 & 7]; if (f) { var _ = (f = 16711935 & ((f = (c = f.words)[0]) << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8)) >>> 16 | 4294901760 & (c = 16711935 & ((c = c[1]) << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8)), S = c << 16 | 65535 & f; for (d[0] ^= f, d[1] ^= _, d[2] ^= c, d[3] ^= S, d[4] ^= f, d[5] ^= _, d[6] ^= c, d[7] ^= S, y = 0; y < 4; y++)u.call(this) } }, _doProcessBlock: function (c, f) { var m = this._X; u.call(this), l[0] = m[0] ^ m[5] >>> 16 ^ m[3] << 16, l[1] = m[2] ^ m[7] >>> 16 ^ m[5] << 16, l[2] = m[4] ^ m[1] >>> 16 ^ m[7] << 16, l[3] = m[6] ^ m[3] >>> 16 ^ m[1] << 16; for (var d = 0; d < 4; d++)l[d] = 16711935 & (l[d] << 8 | l[d] >>> 24) | 4278255360 & (l[d] << 24 | l[d] >>> 8), c[f + d] ^= l[d] }, blockSize: 4, ivSize: 2 }); function u() { for (var c = this._X, f = this._C, m = 0; m < 8; m++)s[m] = f[m]; for (f[0] = f[0] + 1295307597 + this._b | 0, f[1] = f[1] + 3545052371 + (f[0] >>> 0 < s[0] >>> 0 ? 1 : 0) | 0, f[2] = f[2] + 886263092 + (f[1] >>> 0 < s[1] >>> 0 ? 1 : 0) | 0, f[3] = f[3] + 1295307597 + (f[2] >>> 0 < s[2] >>> 0 ? 1 : 0) | 0, f[4] = f[4] + 3545052371 + (f[3] >>> 0 < s[3] >>> 0 ? 1 : 0) | 0, f[5] = f[5] + 886263092 + (f[4] >>> 0 < s[4] >>> 0 ? 1 : 0) | 0, f[6] = f[6] + 1295307597 + (f[5] >>> 0 < s[5] >>> 0 ? 1 : 0) | 0, f[7] = f[7] + 3545052371 + (f[6] >>> 0 < s[6] >>> 0 ? 1 : 0) | 0, this._b = f[7] >>> 0 < s[7] >>> 0 ? 1 : 0, m = 0; m < 8; m++) { var d = c[m] + f[m], y = 65535 & d, _ = d >>> 16; a[m] = ((y * y >>> 17) + y * _ >>> 15) + _ * _ ^ ((4294901760 & d) * d | 0) + ((65535 & d) * d | 0) } c[0] = a[0] + (a[7] << 16 | a[7] >>> 16) + (a[6] << 16 | a[6] >>> 16) | 0, c[1] = a[1] + (a[0] << 8 | a[0] >>> 24) + a[7] | 0, c[2] = a[2] + (a[1] << 16 | a[1] >>> 16) + (a[0] << 16 | a[0] >>> 16) | 0, c[3] = a[3] + (a[2] << 8 | a[2] >>> 24) + a[1] | 0, c[4] = a[4] + (a[3] << 16 | a[3] >>> 16) + (a[2] << 16 | a[2] >>> 16) | 0, c[5] = a[5] + (a[4] << 8 | a[4] >>> 24) + a[3] | 0, c[6] = a[6] + (a[5] << 16 | a[5] >>> 16) + (a[4] << 16 | a[4] >>> 16) | 0, c[7] = a[7] + (a[6] << 8 | a[6] >>> 24) + a[5] | 0 } r.RabbitLegacy = i._createHelper(o) }(), n.RabbitLegacy) }), ht(function (t, e) { t.exports = Dt })), K_e = function (t, e, n, r) { return typeof (t = typeof Buffer < "u" && Buffer.isBuffer(t) ? t.toString() : t) == "string" ? function (i, l, s, a) { return l.xmlMode || l._useHtmlParser2 ? function (o, u) { var c = new lE(void 0, u); return new AE(c, u).end(o), c.root }(i, l) : nve(i, l, s, a) }(t, e, n, r) : (e = t, !Array.isArray(e) && nu(e) ? e : (Q3(e, n = new i2([])), n)) }, $e = function (t) { return function e(n, r, i) { if (i === void 0 && (i = !0), n == null) throw new Error("cheerio.load() expects a string"); var l = qc(qc({}, DE), rE(r)), s = t(n, l, i, null), a = function (u) { function c() { return u !== null && u.apply(this, arguments) || this } return cge(c, u), c.prototype._make = function (f, m) { return (f = o(f, m)).prevObject = this, f }, c.prototype._parse = function (f, m, d, y) { return t(f, m, d, y) }, c.prototype._render = function (f) { return function (m, d) { return d.xmlMode || d._useHtmlParser2 ? M7(m, d) : function (y) { for (var _, S = ("length" in y) ? y : [y], w = 0; w < S.length; w += 1)nu(E = S[w]) && (_ = Array.prototype.splice).call.apply(_, tve([S, w, 1], E.children, !1)); for (var E, g = "", w = 0; w < S.length; w += 1)g += eve(E = S[w], rve); return g }(m) }(f, this.options) }, c }(Vc); function o(u, c, f, m) { if (f === void 0 && (f = s), u && fa(u)) return u; if (m = qc(qc({}, l), rE(m)), (f = fa(f = typeof f == "string" ? [t(f, m, !1, null)] : "length" in f ? f : [f]) ? f : new a(f, null, m))._root = f, !u) return new a(void 0, f, m); var d = typeof u == "string" && aE(u) ? t(u, m, !1, null).children : u.name || u.type === "root" || u.type === "text" || u.type === "comment" ? [u] : Array.isArray(u) ? u : void 0, y = new a(d, f, m); if (d) return y; if (typeof u != "string") throw new Error("Unexpected type of selector"); return d = u, (u = c ? typeof c == "string" ? aE(c) ? new a([t(c, m, !1, null)], f, m) : (d = "".concat(c, " ").concat(d), f) : fa(c) ? c : new a(Array.isArray(c) ? c : [c], f, m) : f) ? u.find(d) : y } return Object.assign(o, gye, { load: e, _root: s, _options: l, fn: a.prototype, prototype: a.prototype }), o } }(K_e); function iu(t, e) { return $_e(t, e) } var DV = yi, p5 = z_e, B = G_e, Ve = J_e, Mke = $e([]); function lt(t, e, n) { return e <= t && t <= n } var sl = Math.floor; function vt(t, e) { if (t) throw TypeError("Decoder error"); return e || 65533 } function Zr(t) { throw TypeError("The code point " + t + " could not be encoded.") } function f5(t, e) { let n = t >> 8, r = t & 255; return e ? [n, r] : [r, n] } function ei(t) { return 0 <= t && t <= 127 } var $r = ei, _t = -1, Qt = -1; var X_e = [{ encodings: [{ labels: ["unicode-1-1-utf-8", "utf-8", "utf8"], name: "UTF-8" }], heading: "The Encoding" }, { encodings: [{ labels: ["866", "cp866", "csibm866", "ibm866"], name: "IBM866" }, { labels: ["csisolatin2", "iso-8859-2", "iso-ir-101", "iso8859-2", "iso88592", "iso_8859-2", "iso_8859-2:1987", "l2", "latin2"], name: "ISO-8859-2" }, { labels: ["csisolatin3", "iso-8859-3", "iso-ir-109", "iso8859-3", "iso88593", "iso_8859-3", "iso_8859-3:1988", "l3", "latin3"], name: "ISO-8859-3" }, { labels: ["csisolatin4", "iso-8859-4", "iso-ir-110", "iso8859-4", "iso88594", "iso_8859-4", "iso_8859-4:1988", "l4", "latin4"], name: "ISO-8859-4" }, { labels: ["csisolatincyrillic", "cyrillic", "iso-8859-5", "iso-ir-144", "iso8859-5", "iso88595", "iso_8859-5", "iso_8859-5:1988"], name: "ISO-8859-5" }, { labels: ["arabic", "asmo-708", "csiso88596e", "csiso88596i", "csisolatinarabic", "ecma-114", "iso-8859-6", "iso-8859-6-e", "iso-8859-6-i", "iso-ir-127", "iso8859-6", "iso88596", "iso_8859-6", "iso_8859-6:1987"], name: "ISO-8859-6" }, { labels: ["csisolatingreek", "ecma-118", "elot_928", "greek", "greek8", "iso-8859-7", "iso-ir-126", "iso8859-7", "iso88597", "iso_8859-7", "iso_8859-7:1987", "sun_eu_greek"], name: "ISO-8859-7" }, { labels: ["csiso88598e", "csisolatinhebrew", "hebrew", "iso-8859-8", "iso-8859-8-e", "iso-ir-138", "iso8859-8", "iso88598", "iso_8859-8", "iso_8859-8:1988", "visual"], name: "ISO-8859-8" }, { labels: ["csiso88598i", "iso-8859-8-i", "logical"], name: "ISO-8859-8-I" }, { labels: ["csisolatin6", "iso-8859-10", "iso-ir-157", "iso8859-10", "iso885910", "l6", "latin6"], name: "ISO-8859-10" }, { labels: ["iso-8859-13", "iso8859-13", "iso885913"], name: "ISO-8859-13" }, { labels: ["iso-8859-14", "iso8859-14", "iso885914"], name: "ISO-8859-14" }, { labels: ["csisolatin9", "iso-8859-15", "iso8859-15", "iso885915", "iso_8859-15", "l9"], name: "ISO-8859-15" }, { labels: ["iso-8859-16"], name: "ISO-8859-16" }, { labels: ["cskoi8r", "koi", "koi8", "koi8-r", "koi8_r"], name: "KOI8-R" }, { labels: ["koi8-ru", "koi8-u"], name: "KOI8-U" }, { labels: ["csmacintosh", "mac", "macintosh", "x-mac-roman"], name: "macintosh" }, { labels: ["dos-874", "iso-8859-11", "iso8859-11", "iso885911", "tis-620", "windows-874"], name: "windows-874" }, { labels: ["cp1250", "windows-1250", "x-cp1250"], name: "windows-1250" }, { labels: ["cp1251", "windows-1251", "x-cp1251"], name: "windows-1251" }, { labels: ["ansi_x3.4-1968", "ascii", "cp1252", "cp819", "csisolatin1", "ibm819", "iso-8859-1", "iso-ir-100", "iso8859-1", "iso88591", "iso_8859-1", "iso_8859-1:1987", "l1", "latin1", "us-ascii", "windows-1252", "x-cp1252"], name: "windows-1252" }, { labels: ["cp1253", "windows-1253", "x-cp1253"], name: "windows-1253" }, { labels: ["cp1254", "csisolatin5", "iso-8859-9", "iso-ir-148", "iso8859-9", "iso88599", "iso_8859-9", "iso_8859-9:1989", "l5", "latin5", "windows-1254", "x-cp1254"], name: "windows-1254" }, { labels: ["cp1255", "windows-1255", "x-cp1255"], name: "windows-1255" }, { labels: ["cp1256", "windows-1256", "x-cp1256"], name: "windows-1256" }, { labels: ["cp1257", "windows-1257", "x-cp1257"], name: "windows-1257" }, { labels: ["cp1258", "windows-1258", "x-cp1258"], name: "windows-1258" }, { labels: ["x-mac-cyrillic", "x-mac-ukrainian"], name: "x-mac-cyrillic" }], heading: "Legacy single-byte encodings" }, { encodings: [{ labels: ["chinese", "csgb2312", "csiso58gb231280", "gb2312", "gb_2312", "gb_2312-80", "gbk", "iso-ir-58", "x-gbk"], name: "GBK" }, { labels: ["gb18030"], name: "gb18030" }], heading: "Legacy multi-byte Chinese (simplified) encodings" }, { encodings: [{ labels: ["big5", "big5-hkscs", "cn-big5", "csbig5", "x-x-big5"], name: "Big5" }], heading: "Legacy multi-byte Chinese (traditional) encodings" }, { encodings: [{ labels: ["cseucpkdfmtjapanese", "euc-jp", "x-euc-jp"], name: "EUC-JP" }, { labels: ["csiso2022jp", "iso-2022-jp"], name: "ISO-2022-JP" }, { labels: ["csshiftjis", "ms932", "ms_kanji", "shift-jis", "shift_jis", "sjis", "windows-31j", "x-sjis"], name: "Shift_JIS" }], heading: "Legacy multi-byte Japanese encodings" }, { encodings: [{ labels: ["cseuckr", "csksc56011987", "euc-kr", "iso-ir-149", "korean", "ks_c_5601-1987", "ks_c_5601-1989", "ksc5601", "ksc_5601", "windows-949"], name: "EUC-KR" }], heading: "Legacy multi-byte Korean encodings" }, { encodings: [{ labels: ["csiso2022kr", "hz-gb-2312", "iso-2022-cn", "iso-2022-cn-ext", "iso-2022-kr"], name: "replacement" }, { labels: ["utf-16be"], name: "UTF-16BE" }, { labels: ["utf-16", "utf-16le"], name: "UTF-16LE" }, { labels: ["x-user-defined"], name: "x-user-defined" }], heading: "Legacy miscellaneous encodings" }], rb = X_e; var np = class { constructor(e) { let { fatal: n } = e, r = 0, i = 0, l = 0, s = 128, a = 191; this.handler = function (o, u) { if (u === _t && l !== 0) return l = 0, vt(n); if (u === _t) return Qt; if (l === 0) { if (lt(u, 0, 127)) return u; if (lt(u, 194, 223)) l = 1, r = u & 31; else if (lt(u, 224, 239)) u === 224 && (s = 160), u === 237 && (a = 159), l = 2, r = u & 15; else if (lt(u, 240, 244)) u === 240 && (s = 144), u === 244 && (a = 143), l = 3, r = u & 7; else return vt(n); return null } if (!lt(u, s, a)) return r = l = i = 0, s = 128, a = 191, o.prepend(u), vt(n); if (s = 128, a = 191, r = r << 6 | u & 63, i += 1, i !== l) return null; var c = r; return r = l = i = 0, c } } }, rp = class { constructor() { this.handler = function (e, n) { if (n === _t) return Qt; if ($r(n)) return n; var r, i; lt(n, 128, 2047) ? (r = 1, i = 192) : lt(n, 2048, 65535) ? (r = 2, i = 224) : lt(n, 65536, 1114111) && (r = 3, i = 240); for (var l = [(n >> 6 * r) + i]; r > 0;) { var s = n >> 6 * (r - 1); l.push(128 | s & 63), r -= 1 } return l } } }; var d5 = class { constructor(e, n) { let { fatal: r } = n; this.utf16_be = e, this.fatal = r, this.utf16_lead_byte = null, this.utf16_lead_surrogate = null } handler(e, n) { if (n === _t && (this.utf16_lead_byte !== null || this.utf16_lead_surrogate !== null)) return vt(this.fatal); if (n === _t && this.utf16_lead_byte === null && this.utf16_lead_surrogate === null) return Qt; if (this.utf16_lead_byte === null) return this.utf16_lead_byte = n, null; let r; if (this.utf16_be ? r = (this.utf16_lead_byte << 8) + n : r = (n << 8) + this.utf16_lead_byte, this.utf16_lead_byte = null, this.utf16_lead_surrogate !== null) { let i = this.utf16_lead_surrogate; return this.utf16_lead_surrogate = null, lt(r, 56320, 57343) ? 65536 + (i - 55296) * 1024 + (r - 56320) : (e.prepend(f5(r, this.utf16_be)), vt(this.fatal)) } return lt(r, 55296, 56319) ? (this.utf16_lead_surrogate = r, null) : lt(r, 56320, 57343) ? vt(this.fatal) : r } }, h5 = class { constructor(e = !1) { this.utf16_be = e } handler(e, n) { if (n === _t) return Qt; if (lt(n, 0, 65535)) return f5(n, this.utf16_be); let r = f5((n - 65536 >> 10) + 55296, this.utf16_be), i = f5((n - 65536 & 1023) + 56320, this.utf16_be); return r.concat(i) } }; var W_e = { big5: [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 17392, 19506, 17923, 17830, 17784, 160359, 19831, 17843, 162993, 19682, 163013, 15253, 18230, 18244, 19527, 19520, 148159, 144919, 160594, 159371, 159954, 19543, 172881, 18255, 17882, 19589, 162924, 19719, 19108, 18081, 158499, 29221, 154196, 137827, 146950, 147297, 26189, 22267, null, 32149, 22813, 166841, 15860, 38708, 162799, 23515, 138590, 23204, 13861, 171696, 23249, 23479, 23804, 26478, 34195, 170309, 29793, 29853, 14453, 138579, 145054, 155681, 16108, 153822, 15093, 31484, 40855, 147809, 166157, 143850, 133770, 143966, 17162, 33924, 40854, 37935, 18736, 34323, 22678, 38730, 37400, 31184, 31282, 26208, 27177, 34973, 29772, 31685, 26498, 31276, 21071, 36934, 13542, 29636, 155065, 29894, 40903, 22451, 18735, 21580, 16689, 145038, 22552, 31346, 162661, 35727, 18094, 159368, 16769, 155033, 31662, 140476, 40904, 140481, 140489, 140492, 40905, 34052, 144827, 16564, 40906, 17633, 175615, 25281, 28782, 40907, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 12736, 12737, 12738, 12739, 12740, 131340, 12741, 131281, 131277, 12742, 12743, 131275, 139240, 12744, 131274, 12745, 12746, 12747, 12748, 131342, 12749, 12750, 256, 193, 461, 192, 274, 201, 282, 200, 332, 211, 465, 210, null, 7870, null, 7872, 202, 257, 225, 462, 224, 593, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363, 250, 468, 249, 470, 472, 474, 476, 252, null, 7871, null, 7873, 234, 609, 9178, 9179, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 172969, 135493, null, 25866, null, null, 20029, 28381, 40270, 37343, null, null, 161589, 25745, 20250, 20264, 20392, 20822, 20852, 20892, 20964, 21153, 21160, 21307, 21326, 21457, 21464, 22242, 22768, 22788, 22791, 22834, 22836, 23398, 23454, 23455, 23706, 24198, 24635, 25993, 26622, 26628, 26725, 27982, 28860, 30005, 32420, 32428, 32442, 32455, 32463, 32479, 32518, 32567, 33402, 33487, 33647, 35270, 35774, 35810, 36710, 36711, 36718, 29713, 31996, 32205, 26950, 31433, 21031, null, null, null, null, 37260, 30904, 37214, 32956, null, 36107, 33014, 133607, null, null, 32927, 40647, 19661, 40393, 40460, 19518, 171510, 159758, 40458, 172339, 13761, null, 28314, 33342, 29977, null, 18705, 39532, 39567, 40857, 31111, 164972, 138698, 132560, 142054, 20004, 20097, 20096, 20103, 20159, 20203, 20279, 13388, 20413, 15944, 20483, 20616, 13437, 13459, 13477, 20870, 22789, 20955, 20988, 20997, 20105, 21113, 21136, 21287, 13767, 21417, 13649, 21424, 13651, 21442, 21539, 13677, 13682, 13953, 21651, 21667, 21684, 21689, 21712, 21743, 21784, 21795, 21800, 13720, 21823, 13733, 13759, 21975, 13765, 163204, 21797, null, 134210, 134421, 151851, 21904, 142534, 14828, 131905, 36422, 150968, 169189, 16467, 164030, 30586, 142392, 14900, 18389, 164189, 158194, 151018, 25821, 134524, 135092, 134357, 135412, 25741, 36478, 134806, 134155, 135012, 142505, 164438, 148691, null, 134470, 170573, 164073, 18420, 151207, 142530, 39602, 14951, 169460, 16365, 13574, 152263, 169940, 161992, 142660, 40302, 38933, null, 17369, 155813, 25780, 21731, 142668, 142282, 135287, 14843, 135279, 157402, 157462, 162208, 25834, 151634, 134211, 36456, 139681, 166732, 132913, null, 18443, 131497, 16378, 22643, 142733, null, 148936, 132348, 155799, 134988, 134550, 21881, 16571, 17338, null, 19124, 141926, 135325, 33194, 39157, 134556, 25465, 14846, 141173, 36288, 22177, 25724, 15939, null, 173569, 134665, 142031, 142537, null, 135368, 145858, 14738, 14854, 164507, 13688, 155209, 139463, 22098, 134961, 142514, 169760, 13500, 27709, 151099, null, null, 161140, 142987, 139784, 173659, 167117, 134778, 134196, 157724, 32659, 135375, 141315, 141625, 13819, 152035, 134796, 135053, 134826, 16275, 134960, 134471, 135503, 134732, null, 134827, 134057, 134472, 135360, 135485, 16377, 140950, 25650, 135085, 144372, 161337, 142286, 134526, 134527, 142417, 142421, 14872, 134808, 135367, 134958, 173618, 158544, 167122, 167321, 167114, 38314, 21708, 33476, 21945, null, 171715, 39974, 39606, 161630, 142830, 28992, 33133, 33004, 23580, 157042, 33076, 14231, 21343, 164029, 37302, 134906, 134671, 134775, 134907, 13789, 151019, 13833, 134358, 22191, 141237, 135369, 134672, 134776, 135288, 135496, 164359, 136277, 134777, 151120, 142756, 23124, 135197, 135198, 135413, 135414, 22428, 134673, 161428, 164557, 135093, 134779, 151934, 14083, 135094, 135552, 152280, 172733, 149978, 137274, 147831, 164476, 22681, 21096, 13850, 153405, 31666, 23400, 18432, 19244, 40743, 18919, 39967, 39821, 154484, 143677, 22011, 13810, 22153, 20008, 22786, 138177, 194680, 38737, 131206, 20059, 20155, 13630, 23587, 24401, 24516, 14586, 25164, 25909, 27514, 27701, 27706, 28780, 29227, 20012, 29357, 149737, 32594, 31035, 31993, 32595, 156266, 13505, null, 156491, 32770, 32896, 157202, 158033, 21341, 34916, 35265, 161970, 35744, 36125, 38021, 38264, 38271, 38376, 167439, 38886, 39029, 39118, 39134, 39267, 17e4, 40060, 40479, 40644, 27503, 63751, 20023, 131207, 38429, 25143, 38050, null, 20539, 28158, 171123, 40870, 15817, 34959, 147790, 28791, 23797, 19232, 152013, 13657, 154928, 24866, 166450, 36775, 37366, 29073, 26393, 29626, 144001, 172295, 15499, 137600, 19216, 30948, 29698, 20910, 165647, 16393, 27235, 172730, 16931, 34319, 133743, 31274, 170311, 166634, 38741, 28749, 21284, 139390, 37876, 30425, 166371, 40871, 30685, 20131, 20464, 20668, 20015, 20247, 40872, 21556, 32139, 22674, 22736, 138678, 24210, 24217, 24514, 141074, 25995, 144377, 26905, 27203, 146531, 27903, null, 29184, 148741, 29580, 16091, 150035, 23317, 29881, 35715, 154788, 153237, 31379, 31724, 31939, 32364, 33528, 34199, 40873, 34960, 40874, 36537, 40875, 36815, 34143, 39392, 37409, 40876, 167353, 136255, 16497, 17058, 23066, null, null, null, 39016, 26475, 17014, 22333, null, 34262, 149883, 33471, 160013, 19585, 159092, 23931, 158485, 159678, 40877, 40878, 23446, 40879, 26343, 32347, 28247, 31178, 15752, 17603, 143958, 141206, 17306, 17718, null, 23765, 146202, 35577, 23672, 15634, 144721, 23928, 40882, 29015, 17752, 147692, 138787, 19575, 14712, 13386, 131492, 158785, 35532, 20404, 131641, 22975, 33132, 38998, 170234, 24379, 134047, null, 139713, 166253, 16642, 18107, 168057, 16135, 40883, 172469, 16632, 14294, 18167, 158790, 16764, 165554, 160767, 17773, 14548, 152730, 17761, 17691, 19849, 19579, 19830, 17898, 16328, 150287, 13921, 17630, 17597, 16877, 23870, 23880, 23894, 15868, 14351, 23972, 23993, 14368, 14392, 24130, 24253, 24357, 24451, 14600, 14612, 14655, 14669, 24791, 24893, 23781, 14729, 25015, 25017, 25039, 14776, 25132, 25232, 25317, 25368, 14840, 22193, 14851, 25570, 25595, 25607, 25690, 14923, 25792, 23829, 22049, 40863, 14999, 25990, 15037, 26111, 26195, 15090, 26258, 15138, 26390, 15170, 26532, 26624, 15192, 26698, 26756, 15218, 15217, 15227, 26889, 26947, 29276, 26980, 27039, 27013, 15292, 27094, 15325, 27237, 27252, 27249, 27266, 15340, 27289, 15346, 27307, 27317, 27348, 27382, 27521, 27585, 27626, 27765, 27818, 15563, 27906, 27910, 27942, 28033, 15599, 28068, 28081, 28181, 28184, 28201, 28294, 166336, 28347, 28386, 28378, 40831, 28392, 28393, 28452, 28468, 15686, 147265, 28545, 28606, 15722, 15733, 29111, 23705, 15754, 28716, 15761, 28752, 28756, 28783, 28799, 28809, 131877, 17345, 13809, 134872, 147159, 22462, 159443, 28990, 153568, 13902, 27042, 166889, 23412, 31305, 153825, 169177, 31333, 31357, 154028, 31419, 31408, 31426, 31427, 29137, 156813, 16842, 31450, 31453, 31466, 16879, 21682, 154625, 31499, 31573, 31529, 152334, 154878, 31650, 31599, 33692, 154548, 158847, 31696, 33825, 31634, 31672, 154912, 15789, 154725, 33938, 31738, 31750, 31797, 154817, 31812, 31875, 149634, 31910, 26237, 148856, 31945, 31943, 31974, 31860, 31987, 31989, 31950, 32359, 17693, 159300, 32093, 159446, 29837, 32137, 32171, 28981, 32179, 32210, 147543, 155689, 32228, 15635, 32245, 137209, 32229, 164717, 32285, 155937, 155994, 32366, 32402, 17195, 37996, 32295, 32576, 32577, 32583, 31030, 156368, 39393, 32663, 156497, 32675, 136801, 131176, 17756, 145254, 17667, 164666, 32762, 156809, 32773, 32776, 32797, 32808, 32815, 172167, 158915, 32827, 32828, 32865, 141076, 18825, 157222, 146915, 157416, 26405, 32935, 166472, 33031, 33050, 22704, 141046, 27775, 156824, 151480, 25831, 136330, 33304, 137310, 27219, 150117, 150165, 17530, 33321, 133901, 158290, 146814, 20473, 136445, 34018, 33634, 158474, 149927, 144688, 137075, 146936, 33450, 26907, 194964, 16859, 34123, 33488, 33562, 134678, 137140, 14017, 143741, 144730, 33403, 33506, 33560, 147083, 159139, 158469, 158615, 144846, 15807, 33565, 21996, 33669, 17675, 159141, 33708, 33729, 33747, 13438, 159444, 27223, 34138, 13462, 159298, 143087, 33880, 154596, 33905, 15827, 17636, 27303, 33866, 146613, 31064, 33960, 158614, 159351, 159299, 34014, 33807, 33681, 17568, 33939, 34020, 154769, 16960, 154816, 17731, 34100, 23282, 159385, 17703, 34163, 17686, 26559, 34326, 165413, 165435, 34241, 159880, 34306, 136578, 159949, 194994, 17770, 34344, 13896, 137378, 21495, 160666, 34430, 34673, 172280, 34798, 142375, 34737, 34778, 34831, 22113, 34412, 26710, 17935, 34885, 34886, 161248, 146873, 161252, 34910, 34972, 18011, 34996, 34997, 25537, 35013, 30583, 161551, 35207, 35210, 35238, 35241, 35239, 35260, 166437, 35303, 162084, 162493, 35484, 30611, 37374, 35472, 162393, 31465, 162618, 147343, 18195, 162616, 29052, 35596, 35615, 152624, 152933, 35647, 35660, 35661, 35497, 150138, 35728, 35739, 35503, 136927, 17941, 34895, 35995, 163156, 163215, 195028, 14117, 163155, 36054, 163224, 163261, 36114, 36099, 137488, 36059, 28764, 36113, 150729, 16080, 36215, 36265, 163842, 135188, 149898, 15228, 164284, 160012, 31463, 36525, 36534, 36547, 37588, 36633, 36653, 164709, 164882, 36773, 37635, 172703, 133712, 36787, 18730, 166366, 165181, 146875, 24312, 143970, 36857, 172052, 165564, 165121, 140069, 14720, 159447, 36919, 165180, 162494, 36961, 165228, 165387, 37032, 165651, 37060, 165606, 37038, 37117, 37223, 15088, 37289, 37316, 31916, 166195, 138889, 37390, 27807, 37441, 37474, 153017, 37561, 166598, 146587, 166668, 153051, 134449, 37676, 37739, 166625, 166891, 28815, 23235, 166626, 166629, 18789, 37444, 166892, 166969, 166911, 37747, 37979, 36540, 38277, 38310, 37926, 38304, 28662, 17081, 140922, 165592, 135804, 146990, 18911, 27676, 38523, 38550, 16748, 38563, 159445, 25050, 38582, 30965, 166624, 38589, 21452, 18849, 158904, 131700, 156688, 168111, 168165, 150225, 137493, 144138, 38705, 34370, 38710, 18959, 17725, 17797, 150249, 28789, 23361, 38683, 38748, 168405, 38743, 23370, 168427, 38751, 37925, 20688, 143543, 143548, 38793, 38815, 38833, 38846, 38848, 38866, 38880, 152684, 38894, 29724, 169011, 38911, 38901, 168989, 162170, 19153, 38964, 38963, 38987, 39014, 15118, 160117, 15697, 132656, 147804, 153350, 39114, 39095, 39112, 39111, 19199, 159015, 136915, 21936, 39137, 39142, 39148, 37752, 39225, 150057, 19314, 170071, 170245, 39413, 39436, 39483, 39440, 39512, 153381, 14020, 168113, 170965, 39648, 39650, 170757, 39668, 19470, 39700, 39725, 165376, 20532, 39732, 158120, 14531, 143485, 39760, 39744, 171326, 23109, 137315, 39822, 148043, 39938, 39935, 39948, 171624, 40404, 171959, 172434, 172459, 172257, 172323, 172511, 40318, 40323, 172340, 40462, 26760, 40388, 139611, 172435, 172576, 137531, 172595, 40249, 172217, 172724, 40592, 40597, 40606, 40610, 19764, 40618, 40623, 148324, 40641, 15200, 14821, 15645, 20274, 14270, 166955, 40706, 40712, 19350, 37924, 159138, 40727, 40726, 40761, 22175, 22154, 40773, 39352, 168075, 38898, 33919, 40802, 40809, 31452, 40846, 29206, 19390, 149877, 149947, 29047, 150008, 148296, 150097, 29598, 166874, 137466, 31135, 166270, 167478, 37737, 37875, 166468, 37612, 37761, 37835, 166252, 148665, 29207, 16107, 30578, 31299, 28880, 148595, 148472, 29054, 137199, 28835, 137406, 144793, 16071, 137349, 152623, 137208, 14114, 136955, 137273, 14049, 137076, 137425, 155467, 14115, 136896, 22363, 150053, 136190, 135848, 136134, 136374, 34051, 145062, 34051, 33877, 149908, 160101, 146993, 152924, 147195, 159826, 17652, 145134, 170397, 159526, 26617, 14131, 15381, 15847, 22636, 137506, 26640, 16471, 145215, 147681, 147595, 147727, 158753, 21707, 22174, 157361, 22162, 135135, 134056, 134669, 37830, 166675, 37788, 20216, 20779, 14361, 148534, 20156, 132197, 131967, 20299, 20362, 153169, 23144, 131499, 132043, 14745, 131850, 132116, 13365, 20265, 131776, 167603, 131701, 35546, 131596, 20120, 20685, 20749, 20386, 20227, 150030, 147082, 20290, 20526, 20588, 20609, 20428, 20453, 20568, 20732, 20825, 20827, 20829, 20830, 28278, 144789, 147001, 147135, 28018, 137348, 147081, 20904, 20931, 132576, 17629, 132259, 132242, 132241, 36218, 166556, 132878, 21081, 21156, 133235, 21217, 37742, 18042, 29068, 148364, 134176, 149932, 135396, 27089, 134685, 29817, 16094, 29849, 29716, 29782, 29592, 19342, 150204, 147597, 21456, 13700, 29199, 147657, 21940, 131909, 21709, 134086, 22301, 37469, 38644, 37734, 22493, 22413, 22399, 13886, 22731, 23193, 166470, 136954, 137071, 136976, 23084, 22968, 37519, 23166, 23247, 23058, 153926, 137715, 137313, 148117, 14069, 27909, 29763, 23073, 155267, 23169, 166871, 132115, 37856, 29836, 135939, 28933, 18802, 37896, 166395, 37821, 14240, 23582, 23710, 24158, 24136, 137622, 137596, 146158, 24269, 23375, 137475, 137476, 14081, 137376, 14045, 136958, 14035, 33066, 166471, 138682, 144498, 166312, 24332, 24334, 137511, 137131, 23147, 137019, 23364, 34324, 161277, 34912, 24702, 141408, 140843, 24539, 16056, 140719, 140734, 168072, 159603, 25024, 131134, 131142, 140827, 24985, 24984, 24693, 142491, 142599, 149204, 168269, 25713, 149093, 142186, 14889, 142114, 144464, 170218, 142968, 25399, 173147, 25782, 25393, 25553, 149987, 142695, 25252, 142497, 25659, 25963, 26994, 15348, 143502, 144045, 149897, 144043, 21773, 144096, 137433, 169023, 26318, 144009, 143795, 15072, 16784, 152964, 166690, 152975, 136956, 152923, 152613, 30958, 143619, 137258, 143924, 13412, 143887, 143746, 148169, 26254, 159012, 26219, 19347, 26160, 161904, 138731, 26211, 144082, 144097, 26142, 153714, 14545, 145466, 145340, 15257, 145314, 144382, 29904, 15254, 26511, 149034, 26806, 26654, 15300, 27326, 14435, 145365, 148615, 27187, 27218, 27337, 27397, 137490, 25873, 26776, 27212, 15319, 27258, 27479, 147392, 146586, 37792, 37618, 166890, 166603, 37513, 163870, 166364, 37991, 28069, 28427, 149996, 28007, 147327, 15759, 28164, 147516, 23101, 28170, 22599, 27940, 30786, 28987, 148250, 148086, 28913, 29264, 29319, 29332, 149391, 149285, 20857, 150180, 132587, 29818, 147192, 144991, 150090, 149783, 155617, 16134, 16049, 150239, 166947, 147253, 24743, 16115, 29900, 29756, 37767, 29751, 17567, 159210, 17745, 30083, 16227, 150745, 150790, 16216, 30037, 30323, 173510, 15129, 29800, 166604, 149931, 149902, 15099, 15821, 150094, 16127, 149957, 149747, 37370, 22322, 37698, 166627, 137316, 20703, 152097, 152039, 30584, 143922, 30478, 30479, 30587, 149143, 145281, 14942, 149744, 29752, 29851, 16063, 150202, 150215, 16584, 150166, 156078, 37639, 152961, 30750, 30861, 30856, 30930, 29648, 31065, 161601, 153315, 16654, 31131, 33942, 31141, 27181, 147194, 31290, 31220, 16750, 136934, 16690, 37429, 31217, 134476, 149900, 131737, 146874, 137070, 13719, 21867, 13680, 13994, 131540, 134157, 31458, 23129, 141045, 154287, 154268, 23053, 131675, 30960, 23082, 154566, 31486, 16889, 31837, 31853, 16913, 154547, 155324, 155302, 31949, 150009, 137136, 31886, 31868, 31918, 27314, 32220, 32263, 32211, 32590, 156257, 155996, 162632, 32151, 155266, 17002, 158581, 133398, 26582, 131150, 144847, 22468, 156690, 156664, 149858, 32733, 31527, 133164, 154345, 154947, 31500, 155150, 39398, 34373, 39523, 27164, 144447, 14818, 150007, 157101, 39455, 157088, 33920, 160039, 158929, 17642, 33079, 17410, 32966, 33033, 33090, 157620, 39107, 158274, 33378, 33381, 158289, 33875, 159143, 34320, 160283, 23174, 16767, 137280, 23339, 137377, 23268, 137432, 34464, 195004, 146831, 34861, 160802, 23042, 34926, 20293, 34951, 35007, 35046, 35173, 35149, 153219, 35156, 161669, 161668, 166901, 166873, 166812, 166393, 16045, 33955, 18165, 18127, 14322, 35389, 35356, 169032, 24397, 37419, 148100, 26068, 28969, 28868, 137285, 40301, 35999, 36073, 163292, 22938, 30659, 23024, 17262, 14036, 36394, 36519, 150537, 36656, 36682, 17140, 27736, 28603, 140065, 18587, 28537, 28299, 137178, 39913, 14005, 149807, 37051, 37015, 21873, 18694, 37307, 37892, 166475, 16482, 166652, 37927, 166941, 166971, 34021, 35371, 38297, 38311, 38295, 38294, 167220, 29765, 16066, 149759, 150082, 148458, 16103, 143909, 38543, 167655, 167526, 167525, 16076, 149997, 150136, 147438, 29714, 29803, 16124, 38721, 168112, 26695, 18973, 168083, 153567, 38749, 37736, 166281, 166950, 166703, 156606, 37562, 23313, 35689, 18748, 29689, 147995, 38811, 38769, 39224, 134950, 24001, 166853, 150194, 38943, 169178, 37622, 169431, 37349, 17600, 166736, 150119, 166756, 39132, 166469, 16128, 37418, 18725, 33812, 39227, 39245, 162566, 15869, 39323, 19311, 39338, 39516, 166757, 153800, 27279, 39457, 23294, 39471, 170225, 19344, 170312, 39356, 19389, 19351, 37757, 22642, 135938, 22562, 149944, 136424, 30788, 141087, 146872, 26821, 15741, 37976, 14631, 24912, 141185, 141675, 24839, 40015, 40019, 40059, 39989, 39952, 39807, 39887, 171565, 39839, 172533, 172286, 40225, 19630, 147716, 40472, 19632, 40204, 172468, 172269, 172275, 170287, 40357, 33981, 159250, 159711, 158594, 34300, 17715, 159140, 159364, 159216, 33824, 34286, 159232, 145367, 155748, 31202, 144796, 144960, 18733, 149982, 15714, 37851, 37566, 37704, 131775, 30905, 37495, 37965, 20452, 13376, 36964, 152925, 30781, 30804, 30902, 30795, 137047, 143817, 149825, 13978, 20338, 28634, 28633, 28702, 28702, 21524, 147893, 22459, 22771, 22410, 40214, 22487, 28980, 13487, 147884, 29163, 158784, 151447, 23336, 137141, 166473, 24844, 23246, 23051, 17084, 148616, 14124, 19323, 166396, 37819, 37816, 137430, 134941, 33906, 158912, 136211, 148218, 142374, 148417, 22932, 146871, 157505, 32168, 155995, 155812, 149945, 149899, 166394, 37605, 29666, 16105, 29876, 166755, 137375, 16097, 150195, 27352, 29683, 29691, 16086, 150078, 150164, 137177, 150118, 132007, 136228, 149989, 29768, 149782, 28837, 149878, 37508, 29670, 37727, 132350, 37681, 166606, 166422, 37766, 166887, 153045, 18741, 166530, 29035, 149827, 134399, 22180, 132634, 134123, 134328, 21762, 31172, 137210, 32254, 136898, 150096, 137298, 17710, 37889, 14090, 166592, 149933, 22960, 137407, 137347, 160900, 23201, 14050, 146779, 14e3, 37471, 23161, 166529, 137314, 37748, 15565, 133812, 19094, 14730, 20724, 15721, 15692, 136092, 29045, 17147, 164376, 28175, 168164, 17643, 27991, 163407, 28775, 27823, 15574, 147437, 146989, 28162, 28428, 15727, 132085, 30033, 14012, 13512, 18048, 16090, 18545, 22980, 37486, 18750, 36673, 166940, 158656, 22546, 22472, 14038, 136274, 28926, 148322, 150129, 143331, 135856, 140221, 26809, 26983, 136088, 144613, 162804, 145119, 166531, 145366, 144378, 150687, 27162, 145069, 158903, 33854, 17631, 17614, 159014, 159057, 158850, 159710, 28439, 160009, 33597, 137018, 33773, 158848, 159827, 137179, 22921, 23170, 137139, 23137, 23153, 137477, 147964, 14125, 23023, 137020, 14023, 29070, 37776, 26266, 148133, 23150, 23083, 148115, 27179, 147193, 161590, 148571, 148170, 28957, 148057, 166369, 20400, 159016, 23746, 148686, 163405, 148413, 27148, 148054, 135940, 28838, 28979, 148457, 15781, 27871, 194597, 150095, 32357, 23019, 23855, 15859, 24412, 150109, 137183, 32164, 33830, 21637, 146170, 144128, 131604, 22398, 133333, 132633, 16357, 139166, 172726, 28675, 168283, 23920, 29583, 31955, 166489, 168992, 20424, 32743, 29389, 29456, 162548, 29496, 29497, 153334, 29505, 29512, 16041, 162584, 36972, 29173, 149746, 29665, 33270, 16074, 30476, 16081, 27810, 22269, 29721, 29726, 29727, 16098, 16112, 16116, 16122, 29907, 16142, 16211, 30018, 30061, 30066, 30093, 16252, 30152, 30172, 16320, 30285, 16343, 30324, 16348, 30330, 151388, 29064, 22051, 35200, 22633, 16413, 30531, 16441, 26465, 16453, 13787, 30616, 16490, 16495, 23646, 30654, 30667, 22770, 30744, 28857, 30748, 16552, 30777, 30791, 30801, 30822, 33864, 152885, 31027, 26627, 31026, 16643, 16649, 31121, 31129, 36795, 31238, 36796, 16743, 31377, 16818, 31420, 33401, 16836, 31439, 31451, 16847, 20001, 31586, 31596, 31611, 31762, 31771, 16992, 17018, 31867, 31900, 17036, 31928, 17044, 31981, 36755, 28864, 134351, 32207, 32212, 32208, 32253, 32686, 32692, 29343, 17303, 32800, 32805, 31545, 32814, 32817, 32852, 15820, 22452, 28832, 32951, 33001, 17389, 33036, 29482, 33038, 33042, 30048, 33044, 17409, 15161, 33110, 33113, 33114, 17427, 22586, 33148, 33156, 17445, 33171, 17453, 33189, 22511, 33217, 33252, 33364, 17551, 33446, 33398, 33482, 33496, 33535, 17584, 33623, 38505, 27018, 33797, 28917, 33892, 24803, 33928, 17668, 33982, 34017, 34040, 34064, 34104, 34130, 17723, 34159, 34160, 34272, 17783, 34418, 34450, 34482, 34543, 38469, 34699, 17926, 17943, 34990, 35071, 35108, 35143, 35217, 162151, 35369, 35384, 35476, 35508, 35921, 36052, 36082, 36124, 18328, 22623, 36291, 18413, 20206, 36410, 21976, 22356, 36465, 22005, 36528, 18487, 36558, 36578, 36580, 36589, 36594, 36791, 36801, 36810, 36812, 36915, 39364, 18605, 39136, 37395, 18718, 37416, 37464, 37483, 37553, 37550, 37567, 37603, 37611, 37619, 37620, 37629, 37699, 37764, 37805, 18757, 18769, 40639, 37911, 21249, 37917, 37933, 37950, 18794, 37972, 38009, 38189, 38306, 18855, 38388, 38451, 18917, 26528, 18980, 38720, 18997, 38834, 38850, 22100, 19172, 24808, 39097, 19225, 39153, 22596, 39182, 39193, 20916, 39196, 39223, 39234, 39261, 39266, 19312, 39365, 19357, 39484, 39695, 31363, 39785, 39809, 39901, 39921, 39924, 19565, 39968, 14191, 138178, 40265, 39994, 40702, 22096, 40339, 40381, 40384, 40444, 38134, 36790, 40571, 40620, 40625, 40637, 40646, 38108, 40674, 40689, 40696, 31432, 40772, 131220, 131767, 132e3, 26906, 38083, 22956, 132311, 22592, 38081, 14265, 132565, 132629, 132726, 136890, 22359, 29043, 133826, 133837, 134079, 21610, 194619, 134091, 21662, 134139, 134203, 134227, 134245, 134268, 24807, 134285, 22138, 134325, 134365, 134381, 134511, 134578, 134600, 26965, 39983, 34725, 134660, 134670, 134871, 135056, 134957, 134771, 23584, 135100, 24075, 135260, 135247, 135286, 26398, 135291, 135304, 135318, 13895, 135359, 135379, 135471, 135483, 21348, 33965, 135907, 136053, 135990, 35713, 136567, 136729, 137155, 137159, 20088, 28859, 137261, 137578, 137773, 137797, 138282, 138352, 138412, 138952, 25283, 138965, 139029, 29080, 26709, 139333, 27113, 14024, 139900, 140247, 140282, 141098, 141425, 141647, 33533, 141671, 141715, 142037, 35237, 142056, 36768, 142094, 38840, 142143, 38983, 39613, 142412, null, 142472, 142519, 154600, 142600, 142610, 142775, 142741, 142914, 143220, 143308, 143411, 143462, 144159, 144350, 24497, 26184, 26303, 162425, 144743, 144883, 29185, 149946, 30679, 144922, 145174, 32391, 131910, 22709, 26382, 26904, 146087, 161367, 155618, 146961, 147129, 161278, 139418, 18640, 19128, 147737, 166554, 148206, 148237, 147515, 148276, 148374, 150085, 132554, 20946, 132625, 22943, 138920, 15294, 146687, 148484, 148694, 22408, 149108, 14747, 149295, 165352, 170441, 14178, 139715, 35678, 166734, 39382, 149522, 149755, 150037, 29193, 150208, 134264, 22885, 151205, 151430, 132985, 36570, 151596, 21135, 22335, 29041, 152217, 152601, 147274, 150183, 21948, 152646, 152686, 158546, 37332, 13427, 152895, 161330, 152926, 18200, 152930, 152934, 153543, 149823, 153693, 20582, 13563, 144332, 24798, 153859, 18300, 166216, 154286, 154505, 154630, 138640, 22433, 29009, 28598, 155906, 162834, 36950, 156082, 151450, 35682, 156674, 156746, 23899, 158711, 36662, 156804, 137500, 35562, 150006, 156808, 147439, 156946, 19392, 157119, 157365, 141083, 37989, 153569, 24981, 23079, 194765, 20411, 22201, 148769, 157436, 20074, 149812, 38486, 28047, 158909, 13848, 35191, 157593, 157806, 156689, 157790, 29151, 157895, 31554, 168128, 133649, 157990, 37124, 158009, 31301, 40432, 158202, 39462, 158253, 13919, 156777, 131105, 31107, 158260, 158555, 23852, 144665, 33743, 158621, 18128, 158884, 30011, 34917, 159150, 22710, 14108, 140685, 159819, 160205, 15444, 160384, 160389, 37505, 139642, 160395, 37680, 160486, 149968, 27705, 38047, 160848, 134904, 34855, 35061, 141606, 164979, 137137, 28344, 150058, 137248, 14756, 14009, 23568, 31203, 17727, 26294, 171181, 170148, 35139, 161740, 161880, 22230, 16607, 136714, 14753, 145199, 164072, 136133, 29101, 33638, 162269, 168360, 23143, 19639, 159919, 166315, 162301, 162314, 162571, 163174, 147834, 31555, 31102, 163849, 28597, 172767, 27139, 164632, 21410, 159239, 37823, 26678, 38749, 164207, 163875, 158133, 136173, 143919, 163912, 23941, 166960, 163971, 22293, 38947, 166217, 23979, 149896, 26046, 27093, 21458, 150181, 147329, 15377, 26422, 163984, 164084, 164142, 139169, 164175, 164233, 164271, 164378, 164614, 164655, 164746, 13770, 164968, 165546, 18682, 25574, 166230, 30728, 37461, 166328, 17394, 166375, 17375, 166376, 166726, 166868, 23032, 166921, 36619, 167877, 168172, 31569, 168208, 168252, 15863, 168286, 150218, 36816, 29327, 22155, 169191, 169449, 169392, 169400, 169778, 170193, 170313, 170346, 170435, 170536, 170766, 171354, 171419, 32415, 171768, 171811, 19620, 38215, 172691, 29090, 172799, 19857, 36882, 173515, 19868, 134300, 36798, 21953, 36794, 140464, 36793, 150163, 17673, 32383, 28502, 27313, 20202, 13540, 166700, 161949, 14138, 36480, 137205, 163876, 166764, 166809, 162366, 157359, 15851, 161365, 146615, 153141, 153942, 20122, 155265, 156248, 22207, 134765, 36366, 23405, 147080, 150686, 25566, 25296, 137206, 137339, 25904, 22061, 154698, 21530, 152337, 15814, 171416, 19581, 22050, 22046, 32585, 155352, 22901, 146752, 34672, 19996, 135146, 134473, 145082, 33047, 40286, 36120, 30267, 40005, 30286, 30649, 37701, 21554, 33096, 33527, 22053, 33074, 33816, 32957, 21994, 31074, 22083, 21526, 134813, 13774, 22021, 22001, 26353, 164578, 13869, 30004, 22e3, 21946, 21655, 21874, 134209, 134294, 24272, 151880, 134774, 142434, 134818, 40619, 32090, 21982, 135285, 25245, 38765, 21652, 36045, 29174, 37238, 25596, 25529, 25598, 21865, 142147, 40050, 143027, 20890, 13535, 134567, 20903, 21581, 21790, 21779, 30310, 36397, 157834, 30129, 32950, 34820, 34694, 35015, 33206, 33820, 135361, 17644, 29444, 149254, 23440, 33547, 157843, 22139, 141044, 163119, 147875, 163187, 159440, 160438, 37232, 135641, 37384, 146684, 173737, 134828, 134905, 29286, 138402, 18254, 151490, 163833, 135147, 16634, 40029, 25887, 142752, 18675, 149472, 171388, 135148, 134666, 24674, 161187, 135149, null, 155720, 135559, 29091, 32398, 40272, 19994, 19972, 13687, 23309, 27826, 21351, 13996, 14812, 21373, 13989, 149016, 22682, 150382, 33325, 21579, 22442, 154261, 133497, null, 14930, 140389, 29556, 171692, 19721, 39917, 146686, 171824, 19547, 151465, 169374, 171998, 33884, 146870, 160434, 157619, 145184, 25390, 32037, 147191, 146988, 14890, 36872, 21196, 15988, 13946, 17897, 132238, 30272, 23280, 134838, 30842, 163630, 22695, 16575, 22140, 39819, 23924, 30292, 173108, 40581, 19681, 30201, 14331, 24857, 143578, 148466, null, 22109, 135849, 22439, 149859, 171526, 21044, 159918, 13741, 27722, 40316, 31830, 39737, 22494, 137068, 23635, 25811, 169168, 156469, 160100, 34477, 134440, 159010, 150242, 134513, null, 20990, 139023, 23950, 38659, 138705, 40577, 36940, 31519, 39682, 23761, 31651, 25192, 25397, 39679, 31695, 39722, 31870, 39726, 31810, 31878, 39957, 31740, 39689, 40727, 39963, 149822, 40794, 21875, 23491, 20477, 40600, 20466, 21088, 15878, 21201, 22375, 20566, 22967, 24082, 38856, 40363, 36700, 21609, 38836, 39232, 38842, 21292, 24880, 26924, 21466, 39946, 40194, 19515, 38465, 27008, 20646, 30022, 137069, 39386, 21107, null, 37209, 38529, 37212, null, 37201, 167575, 25471, 159011, 27338, 22033, 37262, 30074, 25221, 132092, 29519, 31856, 154657, 146685, null, 149785, 30422, 39837, 20010, 134356, 33726, 34882, null, 23626, 27072, 20717, 22394, 21023, 24053, 20174, 27697, 131570, 20281, 21660, 21722, 21146, 36226, 13822, 24332, 13811, null, 27474, 37244, 40869, 39831, 38958, 39092, 39610, 40616, 40580, 29050, 31508, null, 27642, 34840, 32632, null, 22048, 173642, 36471, 40787, null, 36308, 36431, 40476, 36353, 25218, 164733, 36392, 36469, 31443, 150135, 31294, 30936, 27882, 35431, 30215, 166490, 40742, 27854, 34774, 30147, 172722, 30803, 194624, 36108, 29410, 29553, 35629, 29442, 29937, 36075, 150203, 34351, 24506, 34976, 17591, null, 137275, 159237, null, 35454, 140571, null, 24829, 30311, 39639, 40260, 37742, 39823, 34805, null, 34831, 36087, 29484, 38689, 39856, 13782, 29362, 19463, 31825, 39242, 155993, 24921, 19460, 40598, 24957, null, 22367, 24943, 25254, 25145, 25294, 14940, 25058, 21418, 144373, 25444, 26626, 13778, 23895, 166850, 36826, 167481, null, 20697, 138566, 30982, 21298, 38456, 134971, 16485, null, 30718, null, 31938, 155418, 31962, 31277, 32870, 32867, 32077, 29957, 29938, 35220, 33306, 26380, 32866, 160902, 32859, 29936, 33027, 30500, 35209, 157644, 30035, 159441, 34729, 34766, 33224, 34700, 35401, 36013, 35651, 30507, 29944, 34010, 13877, 27058, 36262, null, 35241, 29800, 28089, 34753, 147473, 29927, 15835, 29046, 24740, 24988, 15569, 29026, 24695, null, 32625, 166701, 29264, 24809, 19326, 21024, 15384, 146631, 155351, 161366, 152881, 137540, 135934, 170243, 159196, 159917, 23745, 156077, 166415, 145015, 131310, 157766, 151310, 17762, 23327, 156492, 40784, 40614, 156267, 12288, 65292, 12289, 12290, 65294, 8231, 65307, 65306, 65311, 65281, 65072, 8230, 8229, 65104, 65105, 65106, 183, 65108, 65109, 65110, 65111, 65372, 8211, 65073, 8212, 65075, 9588, 65076, 65103, 65288, 65289, 65077, 65078, 65371, 65373, 65079, 65080, 12308, 12309, 65081, 65082, 12304, 12305, 65083, 65084, 12298, 12299, 65085, 65086, 12296, 12297, 65087, 65088, 12300, 12301, 65089, 65090, 12302, 12303, 65091, 65092, 65113, 65114, 65115, 65116, 65117, 65118, 8216, 8217, 8220, 8221, 12317, 12318, 8245, 8242, 65283, 65286, 65290, 8251, 167, 12291, 9675, 9679, 9651, 9650, 9678, 9734, 9733, 9671, 9670, 9633, 9632, 9661, 9660, 12963, 8453, 175, 65507, 65343, 717, 65097, 65098, 65101, 65102, 65099, 65100, 65119, 65120, 65121, 65291, 65293, 215, 247, 177, 8730, 65308, 65310, 65309, 8806, 8807, 8800, 8734, 8786, 8801, 65122, 65123, 65124, 65125, 65126, 65374, 8745, 8746, 8869, 8736, 8735, 8895, 13266, 13265, 8747, 8750, 8757, 8756, 9792, 9794, 8853, 8857, 8593, 8595, 8592, 8594, 8598, 8599, 8601, 8600, 8741, 8739, 65295, 65340, 8725, 65128, 65284, 65509, 12306, 65504, 65505, 65285, 65312, 8451, 8457, 65129, 65130, 65131, 13269, 13212, 13213, 13214, 13262, 13217, 13198, 13199, 13252, 176, 20825, 20827, 20830, 20829, 20833, 20835, 21991, 29929, 31950, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9615, 9614, 9613, 9612, 9611, 9610, 9609, 9532, 9524, 9516, 9508, 9500, 9620, 9472, 9474, 9621, 9484, 9488, 9492, 9496, 9581, 9582, 9584, 9583, 9552, 9566, 9578, 9569, 9698, 9699, 9701, 9700, 9585, 9586, 9587, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 21313, 21316, 21317, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 729, 713, 714, 711, 715, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9249, 8364, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 19968, 20057, 19969, 19971, 20035, 20061, 20102, 20108, 20154, 20799, 20837, 20843, 20960, 20992, 20993, 21147, 21269, 21313, 21340, 21448, 19977, 19979, 19976, 19978, 20011, 20024, 20961, 20037, 20040, 20063, 20062, 20110, 20129, 20800, 20995, 21242, 21315, 21449, 21475, 22303, 22763, 22805, 22823, 22899, 23376, 23377, 23379, 23544, 23567, 23586, 23608, 23665, 24029, 24037, 24049, 24050, 24051, 24062, 24178, 24318, 24331, 24339, 25165, 19985, 19984, 19981, 20013, 20016, 20025, 20043, 23609, 20104, 20113, 20117, 20114, 20116, 20130, 20161, 20160, 20163, 20166, 20167, 20173, 20170, 20171, 20164, 20803, 20801, 20839, 20845, 20846, 20844, 20887, 20982, 20998, 20999, 21e3, 21243, 21246, 21247, 21270, 21305, 21320, 21319, 21317, 21342, 21380, 21451, 21450, 21453, 22764, 22825, 22827, 22826, 22829, 23380, 23569, 23588, 23610, 23663, 24052, 24187, 24319, 24340, 24341, 24515, 25096, 25142, 25163, 25166, 25903, 25991, 26007, 26020, 26041, 26085, 26352, 26376, 26408, 27424, 27490, 27513, 27595, 27604, 27611, 27663, 27700, 28779, 29226, 29238, 29243, 29255, 29273, 29275, 29356, 29579, 19993, 19990, 19989, 19988, 19992, 20027, 20045, 20047, 20046, 20197, 20184, 20180, 20181, 20182, 20183, 20195, 20196, 20185, 20190, 20805, 20804, 20873, 20874, 20908, 20985, 20986, 20984, 21002, 21152, 21151, 21253, 21254, 21271, 21277, 20191, 21322, 21321, 21345, 21344, 21359, 21358, 21435, 21487, 21476, 21491, 21484, 21486, 21481, 21480, 21500, 21496, 21493, 21483, 21478, 21482, 21490, 21489, 21488, 21477, 21485, 21499, 22235, 22234, 22806, 22830, 22833, 22900, 22902, 23381, 23427, 23612, 24040, 24039, 24038, 24066, 24067, 24179, 24188, 24321, 24344, 24343, 24517, 25098, 25171, 25172, 25170, 25169, 26021, 26086, 26414, 26412, 26410, 26411, 26413, 27491, 27597, 27665, 27664, 27704, 27713, 27712, 27710, 29359, 29572, 29577, 29916, 29926, 29976, 29983, 29992, 29993, 3e4, 30001, 30002, 30003, 30091, 30333, 30382, 30399, 30446, 30683, 30690, 30707, 31034, 31166, 31348, 31435, 19998, 19999, 20050, 20051, 20073, 20121, 20132, 20134, 20133, 20223, 20233, 20249, 20234, 20245, 20237, 20240, 20241, 20239, 20210, 20214, 20219, 20208, 20211, 20221, 20225, 20235, 20809, 20807, 20806, 20808, 20840, 20849, 20877, 20912, 21015, 21009, 21010, 21006, 21014, 21155, 21256, 21281, 21280, 21360, 21361, 21513, 21519, 21516, 21514, 21520, 21505, 21515, 21508, 21521, 21517, 21512, 21507, 21518, 21510, 21522, 22240, 22238, 22237, 22323, 22320, 22312, 22317, 22316, 22319, 22313, 22809, 22810, 22839, 22840, 22916, 22904, 22915, 22909, 22905, 22914, 22913, 23383, 23384, 23431, 23432, 23429, 23433, 23546, 23574, 23673, 24030, 24070, 24182, 24180, 24335, 24347, 24537, 24534, 25102, 25100, 25101, 25104, 25187, 25179, 25176, 25910, 26089, 26088, 26092, 26093, 26354, 26355, 26377, 26429, 26420, 26417, 26421, 27425, 27492, 27515, 27670, 27741, 27735, 27737, 27743, 27744, 27728, 27733, 27745, 27739, 27725, 27726, 28784, 29279, 29277, 30334, 31481, 31859, 31992, 32566, 32650, 32701, 32769, 32771, 32780, 32786, 32819, 32895, 32905, 32907, 32908, 33251, 33258, 33267, 33276, 33292, 33307, 33311, 33390, 33394, 33406, 34411, 34880, 34892, 34915, 35199, 38433, 20018, 20136, 20301, 20303, 20295, 20311, 20318, 20276, 20315, 20309, 20272, 20304, 20305, 20285, 20282, 20280, 20291, 20308, 20284, 20294, 20323, 20316, 20320, 20271, 20302, 20278, 20313, 20317, 20296, 20314, 20812, 20811, 20813, 20853, 20918, 20919, 21029, 21028, 21033, 21034, 21032, 21163, 21161, 21162, 21164, 21283, 21363, 21365, 21533, 21549, 21534, 21566, 21542, 21582, 21543, 21574, 21571, 21555, 21576, 21570, 21531, 21545, 21578, 21561, 21563, 21560, 21550, 21557, 21558, 21536, 21564, 21568, 21553, 21547, 21535, 21548, 22250, 22256, 22244, 22251, 22346, 22353, 22336, 22349, 22343, 22350, 22334, 22352, 22351, 22331, 22767, 22846, 22941, 22930, 22952, 22942, 22947, 22937, 22934, 22925, 22948, 22931, 22922, 22949, 23389, 23388, 23386, 23387, 23436, 23435, 23439, 23596, 23616, 23617, 23615, 23614, 23696, 23697, 23700, 23692, 24043, 24076, 24207, 24199, 24202, 24311, 24324, 24351, 24420, 24418, 24439, 24441, 24536, 24524, 24535, 24525, 24561, 24555, 24568, 24554, 25106, 25105, 25220, 25239, 25238, 25216, 25206, 25225, 25197, 25226, 25212, 25214, 25209, 25203, 25234, 25199, 25240, 25198, 25237, 25235, 25233, 25222, 25913, 25915, 25912, 26097, 26356, 26463, 26446, 26447, 26448, 26449, 26460, 26454, 26462, 26441, 26438, 26464, 26451, 26455, 27493, 27599, 27714, 27742, 27801, 27777, 27784, 27785, 27781, 27803, 27754, 27770, 27792, 27760, 27788, 27752, 27798, 27794, 27773, 27779, 27762, 27774, 27764, 27782, 27766, 27789, 27796, 27800, 27778, 28790, 28796, 28797, 28792, 29282, 29281, 29280, 29380, 29378, 29590, 29996, 29995, 30007, 30008, 30338, 30447, 30691, 31169, 31168, 31167, 31350, 31995, 32597, 32918, 32915, 32925, 32920, 32923, 32922, 32946, 33391, 33426, 33419, 33421, 35211, 35282, 35328, 35895, 35910, 35925, 35997, 36196, 36208, 36275, 36523, 36554, 36763, 36784, 36802, 36806, 36805, 36804, 24033, 37009, 37026, 37034, 37030, 37027, 37193, 37318, 37324, 38450, 38446, 38449, 38442, 38444, 20006, 20054, 20083, 20107, 20123, 20126, 20139, 20140, 20335, 20381, 20365, 20339, 20351, 20332, 20379, 20363, 20358, 20355, 20336, 20341, 20360, 20329, 20347, 20374, 20350, 20367, 20369, 20346, 20820, 20818, 20821, 20841, 20855, 20854, 20856, 20925, 20989, 21051, 21048, 21047, 21050, 21040, 21038, 21046, 21057, 21182, 21179, 21330, 21332, 21331, 21329, 21350, 21367, 21368, 21369, 21462, 21460, 21463, 21619, 21621, 21654, 21624, 21653, 21632, 21627, 21623, 21636, 21650, 21638, 21628, 21648, 21617, 21622, 21644, 21658, 21602, 21608, 21643, 21629, 21646, 22266, 22403, 22391, 22378, 22377, 22369, 22374, 22372, 22396, 22812, 22857, 22855, 22856, 22852, 22868, 22974, 22971, 22996, 22969, 22958, 22993, 22982, 22992, 22989, 22987, 22995, 22986, 22959, 22963, 22994, 22981, 23391, 23396, 23395, 23447, 23450, 23448, 23452, 23449, 23451, 23578, 23624, 23621, 23622, 23735, 23713, 23736, 23721, 23723, 23729, 23731, 24088, 24090, 24086, 24085, 24091, 24081, 24184, 24218, 24215, 24220, 24213, 24214, 24310, 24358, 24359, 24361, 24448, 24449, 24447, 24444, 24541, 24544, 24573, 24565, 24575, 24591, 24596, 24623, 24629, 24598, 24618, 24597, 24609, 24615, 24617, 24619, 24603, 25110, 25109, 25151, 25150, 25152, 25215, 25289, 25292, 25284, 25279, 25282, 25273, 25298, 25307, 25259, 25299, 25300, 25291, 25288, 25256, 25277, 25276, 25296, 25305, 25287, 25293, 25269, 25306, 25265, 25304, 25302, 25303, 25286, 25260, 25294, 25918, 26023, 26044, 26106, 26132, 26131, 26124, 26118, 26114, 26126, 26112, 26127, 26133, 26122, 26119, 26381, 26379, 26477, 26507, 26517, 26481, 26524, 26483, 26487, 26503, 26525, 26519, 26479, 26480, 26495, 26505, 26494, 26512, 26485, 26522, 26515, 26492, 26474, 26482, 27427, 27494, 27495, 27519, 27667, 27675, 27875, 27880, 27891, 27825, 27852, 27877, 27827, 27837, 27838, 27836, 27874, 27819, 27861, 27859, 27832, 27844, 27833, 27841, 27822, 27863, 27845, 27889, 27839, 27835, 27873, 27867, 27850, 27820, 27887, 27868, 27862, 27872, 28821, 28814, 28818, 28810, 28825, 29228, 29229, 29240, 29256, 29287, 29289, 29376, 29390, 29401, 29399, 29392, 29609, 29608, 29599, 29611, 29605, 30013, 30109, 30105, 30106, 30340, 30402, 30450, 30452, 30693, 30717, 31038, 31040, 31041, 31177, 31176, 31354, 31353, 31482, 31998, 32596, 32652, 32651, 32773, 32954, 32933, 32930, 32945, 32929, 32939, 32937, 32948, 32938, 32943, 33253, 33278, 33293, 33459, 33437, 33433, 33453, 33469, 33439, 33465, 33457, 33452, 33445, 33455, 33464, 33443, 33456, 33470, 33463, 34382, 34417, 21021, 34920, 36555, 36814, 36820, 36817, 37045, 37048, 37041, 37046, 37319, 37329, 38263, 38272, 38428, 38464, 38463, 38459, 38468, 38466, 38585, 38632, 38738, 38750, 20127, 20141, 20142, 20449, 20405, 20399, 20415, 20448, 20433, 20431, 20445, 20419, 20406, 20440, 20447, 20426, 20439, 20398, 20432, 20420, 20418, 20442, 20430, 20446, 20407, 20823, 20882, 20881, 20896, 21070, 21059, 21066, 21069, 21068, 21067, 21063, 21191, 21193, 21187, 21185, 21261, 21335, 21371, 21402, 21467, 21676, 21696, 21672, 21710, 21705, 21688, 21670, 21683, 21703, 21698, 21693, 21674, 21697, 21700, 21704, 21679, 21675, 21681, 21691, 21673, 21671, 21695, 22271, 22402, 22411, 22432, 22435, 22434, 22478, 22446, 22419, 22869, 22865, 22863, 22862, 22864, 23004, 23e3, 23039, 23011, 23016, 23043, 23013, 23018, 23002, 23014, 23041, 23035, 23401, 23459, 23462, 23460, 23458, 23461, 23553, 23630, 23631, 23629, 23627, 23769, 23762, 24055, 24093, 24101, 24095, 24189, 24224, 24230, 24314, 24328, 24365, 24421, 24456, 24453, 24458, 24459, 24455, 24460, 24457, 24594, 24605, 24608, 24613, 24590, 24616, 24653, 24688, 24680, 24674, 24646, 24643, 24684, 24683, 24682, 24676, 25153, 25308, 25366, 25353, 25340, 25325, 25345, 25326, 25341, 25351, 25329, 25335, 25327, 25324, 25342, 25332, 25361, 25346, 25919, 25925, 26027, 26045, 26082, 26149, 26157, 26144, 26151, 26159, 26143, 26152, 26161, 26148, 26359, 26623, 26579, 26609, 26580, 26576, 26604, 26550, 26543, 26613, 26601, 26607, 26564, 26577, 26548, 26586, 26597, 26552, 26575, 26590, 26611, 26544, 26585, 26594, 26589, 26578, 27498, 27523, 27526, 27573, 27602, 27607, 27679, 27849, 27915, 27954, 27946, 27969, 27941, 27916, 27953, 27934, 27927, 27963, 27965, 27966, 27958, 27931, 27893, 27961, 27943, 27960, 27945, 27950, 27957, 27918, 27947, 28843, 28858, 28851, 28844, 28847, 28845, 28856, 28846, 28836, 29232, 29298, 29295, 29300, 29417, 29408, 29409, 29623, 29642, 29627, 29618, 29645, 29632, 29619, 29978, 29997, 30031, 30028, 30030, 30027, 30123, 30116, 30117, 30114, 30115, 30328, 30342, 30343, 30344, 30408, 30406, 30403, 30405, 30465, 30457, 30456, 30473, 30475, 30462, 30460, 30471, 30684, 30722, 30740, 30732, 30733, 31046, 31049, 31048, 31047, 31161, 31162, 31185, 31186, 31179, 31359, 31361, 31487, 31485, 31869, 32002, 32005, 32e3, 32009, 32007, 32004, 32006, 32568, 32654, 32703, 32772, 32784, 32781, 32785, 32822, 32982, 32997, 32986, 32963, 32964, 32972, 32993, 32987, 32974, 32990, 32996, 32989, 33268, 33314, 33511, 33539, 33541, 33507, 33499, 33510, 33540, 33509, 33538, 33545, 33490, 33495, 33521, 33537, 33500, 33492, 33489, 33502, 33491, 33503, 33519, 33542, 34384, 34425, 34427, 34426, 34893, 34923, 35201, 35284, 35336, 35330, 35331, 35998, 36e3, 36212, 36211, 36276, 36557, 36556, 36848, 36838, 36834, 36842, 36837, 36845, 36843, 36836, 36840, 37066, 37070, 37057, 37059, 37195, 37194, 37325, 38274, 38480, 38475, 38476, 38477, 38754, 38761, 38859, 38893, 38899, 38913, 39080, 39131, 39135, 39318, 39321, 20056, 20147, 20492, 20493, 20515, 20463, 20518, 20517, 20472, 20521, 20502, 20486, 20540, 20511, 20506, 20498, 20497, 20474, 20480, 20500, 20520, 20465, 20513, 20491, 20505, 20504, 20467, 20462, 20525, 20522, 20478, 20523, 20489, 20860, 20900, 20901, 20898, 20941, 20940, 20934, 20939, 21078, 21084, 21076, 21083, 21085, 21290, 21375, 21407, 21405, 21471, 21736, 21776, 21761, 21815, 21756, 21733, 21746, 21766, 21754, 21780, 21737, 21741, 21729, 21769, 21742, 21738, 21734, 21799, 21767, 21757, 21775, 22275, 22276, 22466, 22484, 22475, 22467, 22537, 22799, 22871, 22872, 22874, 23057, 23064, 23068, 23071, 23067, 23059, 23020, 23072, 23075, 23081, 23077, 23052, 23049, 23403, 23640, 23472, 23475, 23478, 23476, 23470, 23477, 23481, 23480, 23556, 23633, 23637, 23632, 23789, 23805, 23803, 23786, 23784, 23792, 23798, 23809, 23796, 24046, 24109, 24107, 24235, 24237, 24231, 24369, 24466, 24465, 24464, 24665, 24675, 24677, 24656, 24661, 24685, 24681, 24687, 24708, 24735, 24730, 24717, 24724, 24716, 24709, 24726, 25159, 25331, 25352, 25343, 25422, 25406, 25391, 25429, 25410, 25414, 25423, 25417, 25402, 25424, 25405, 25386, 25387, 25384, 25421, 25420, 25928, 25929, 26009, 26049, 26053, 26178, 26185, 26191, 26179, 26194, 26188, 26181, 26177, 26360, 26388, 26389, 26391, 26657, 26680, 26696, 26694, 26707, 26681, 26690, 26708, 26665, 26803, 26647, 26700, 26705, 26685, 26612, 26704, 26688, 26684, 26691, 26666, 26693, 26643, 26648, 26689, 27530, 27529, 27575, 27683, 27687, 27688, 27686, 27684, 27888, 28010, 28053, 28040, 28039, 28006, 28024, 28023, 27993, 28051, 28012, 28041, 28014, 27994, 28020, 28009, 28044, 28042, 28025, 28037, 28005, 28052, 28874, 28888, 28900, 28889, 28872, 28879, 29241, 29305, 29436, 29433, 29437, 29432, 29431, 29574, 29677, 29705, 29678, 29664, 29674, 29662, 30036, 30045, 30044, 30042, 30041, 30142, 30149, 30151, 30130, 30131, 30141, 30140, 30137, 30146, 30136, 30347, 30384, 30410, 30413, 30414, 30505, 30495, 30496, 30504, 30697, 30768, 30759, 30776, 30749, 30772, 30775, 30757, 30765, 30752, 30751, 30770, 31061, 31056, 31072, 31071, 31062, 31070, 31069, 31063, 31066, 31204, 31203, 31207, 31199, 31206, 31209, 31192, 31364, 31368, 31449, 31494, 31505, 31881, 32033, 32023, 32011, 32010, 32032, 32034, 32020, 32016, 32021, 32026, 32028, 32013, 32025, 32027, 32570, 32607, 32660, 32709, 32705, 32774, 32792, 32789, 32793, 32791, 32829, 32831, 33009, 33026, 33008, 33029, 33005, 33012, 33030, 33016, 33011, 33032, 33021, 33034, 33020, 33007, 33261, 33260, 33280, 33296, 33322, 33323, 33320, 33324, 33467, 33579, 33618, 33620, 33610, 33592, 33616, 33609, 33589, 33588, 33615, 33586, 33593, 33590, 33559, 33600, 33585, 33576, 33603, 34388, 34442, 34474, 34451, 34468, 34473, 34444, 34467, 34460, 34928, 34935, 34945, 34946, 34941, 34937, 35352, 35344, 35342, 35340, 35349, 35338, 35351, 35347, 35350, 35343, 35345, 35912, 35962, 35961, 36001, 36002, 36215, 36524, 36562, 36564, 36559, 36785, 36865, 36870, 36855, 36864, 36858, 36852, 36867, 36861, 36869, 36856, 37013, 37089, 37085, 37090, 37202, 37197, 37196, 37336, 37341, 37335, 37340, 37337, 38275, 38498, 38499, 38497, 38491, 38493, 38500, 38488, 38494, 38587, 39138, 39340, 39592, 39640, 39717, 39730, 39740, 20094, 20602, 20605, 20572, 20551, 20547, 20556, 20570, 20553, 20581, 20598, 20558, 20565, 20597, 20596, 20599, 20559, 20495, 20591, 20589, 20828, 20885, 20976, 21098, 21103, 21202, 21209, 21208, 21205, 21264, 21263, 21273, 21311, 21312, 21310, 21443, 26364, 21830, 21866, 21862, 21828, 21854, 21857, 21827, 21834, 21809, 21846, 21839, 21845, 21807, 21860, 21816, 21806, 21852, 21804, 21859, 21811, 21825, 21847, 22280, 22283, 22281, 22495, 22533, 22538, 22534, 22496, 22500, 22522, 22530, 22581, 22519, 22521, 22816, 22882, 23094, 23105, 23113, 23142, 23146, 23104, 23100, 23138, 23130, 23110, 23114, 23408, 23495, 23493, 23492, 23490, 23487, 23494, 23561, 23560, 23559, 23648, 23644, 23645, 23815, 23814, 23822, 23835, 23830, 23842, 23825, 23849, 23828, 23833, 23844, 23847, 23831, 24034, 24120, 24118, 24115, 24119, 24247, 24248, 24246, 24245, 24254, 24373, 24375, 24407, 24428, 24425, 24427, 24471, 24473, 24478, 24472, 24481, 24480, 24476, 24703, 24739, 24713, 24736, 24744, 24779, 24756, 24806, 24765, 24773, 24763, 24757, 24796, 24764, 24792, 24789, 24774, 24799, 24760, 24794, 24775, 25114, 25115, 25160, 25504, 25511, 25458, 25494, 25506, 25509, 25463, 25447, 25496, 25514, 25457, 25513, 25481, 25475, 25499, 25451, 25512, 25476, 25480, 25497, 25505, 25516, 25490, 25487, 25472, 25467, 25449, 25448, 25466, 25949, 25942, 25937, 25945, 25943, 21855, 25935, 25944, 25941, 25940, 26012, 26011, 26028, 26063, 26059, 26060, 26062, 26205, 26202, 26212, 26216, 26214, 26206, 26361, 21207, 26395, 26753, 26799, 26786, 26771, 26805, 26751, 26742, 26801, 26791, 26775, 26800, 26755, 26820, 26797, 26758, 26757, 26772, 26781, 26792, 26783, 26785, 26754, 27442, 27578, 27627, 27628, 27691, 28046, 28092, 28147, 28121, 28082, 28129, 28108, 28132, 28155, 28154, 28165, 28103, 28107, 28079, 28113, 28078, 28126, 28153, 28088, 28151, 28149, 28101, 28114, 28186, 28085, 28122, 28139, 28120, 28138, 28145, 28142, 28136, 28102, 28100, 28074, 28140, 28095, 28134, 28921, 28937, 28938, 28925, 28911, 29245, 29309, 29313, 29468, 29467, 29462, 29459, 29465, 29575, 29701, 29706, 29699, 29702, 29694, 29709, 29920, 29942, 29943, 29980, 29986, 30053, 30054, 30050, 30064, 30095, 30164, 30165, 30133, 30154, 30157, 30350, 30420, 30418, 30427, 30519, 30526, 30524, 30518, 30520, 30522, 30827, 30787, 30798, 31077, 31080, 31085, 31227, 31378, 31381, 31520, 31528, 31515, 31532, 31526, 31513, 31518, 31534, 31890, 31895, 31893, 32070, 32067, 32113, 32046, 32057, 32060, 32064, 32048, 32051, 32068, 32047, 32066, 32050, 32049, 32573, 32670, 32666, 32716, 32718, 32722, 32796, 32842, 32838, 33071, 33046, 33059, 33067, 33065, 33072, 33060, 33282, 33333, 33335, 33334, 33337, 33678, 33694, 33688, 33656, 33698, 33686, 33725, 33707, 33682, 33674, 33683, 33673, 33696, 33655, 33659, 33660, 33670, 33703, 34389, 24426, 34503, 34496, 34486, 34500, 34485, 34502, 34507, 34481, 34479, 34505, 34899, 34974, 34952, 34987, 34962, 34966, 34957, 34955, 35219, 35215, 35370, 35357, 35363, 35365, 35377, 35373, 35359, 35355, 35362, 35913, 35930, 36009, 36012, 36011, 36008, 36010, 36007, 36199, 36198, 36286, 36282, 36571, 36575, 36889, 36877, 36890, 36887, 36899, 36895, 36893, 36880, 36885, 36894, 36896, 36879, 36898, 36886, 36891, 36884, 37096, 37101, 37117, 37207, 37326, 37365, 37350, 37347, 37351, 37357, 37353, 38281, 38506, 38517, 38515, 38520, 38512, 38516, 38518, 38519, 38508, 38592, 38634, 38633, 31456, 31455, 38914, 38915, 39770, 40165, 40565, 40575, 40613, 40635, 20642, 20621, 20613, 20633, 20625, 20608, 20630, 20632, 20634, 26368, 20977, 21106, 21108, 21109, 21097, 21214, 21213, 21211, 21338, 21413, 21883, 21888, 21927, 21884, 21898, 21917, 21912, 21890, 21916, 21930, 21908, 21895, 21899, 21891, 21939, 21934, 21919, 21822, 21938, 21914, 21947, 21932, 21937, 21886, 21897, 21931, 21913, 22285, 22575, 22570, 22580, 22564, 22576, 22577, 22561, 22557, 22560, 22777, 22778, 22880, 23159, 23194, 23167, 23186, 23195, 23207, 23411, 23409, 23506, 23500, 23507, 23504, 23562, 23563, 23601, 23884, 23888, 23860, 23879, 24061, 24133, 24125, 24128, 24131, 24190, 24266, 24257, 24258, 24260, 24380, 24429, 24489, 24490, 24488, 24785, 24801, 24754, 24758, 24800, 24860, 24867, 24826, 24853, 24816, 24827, 24820, 24936, 24817, 24846, 24822, 24841, 24832, 24850, 25119, 25161, 25507, 25484, 25551, 25536, 25577, 25545, 25542, 25549, 25554, 25571, 25552, 25569, 25558, 25581, 25582, 25462, 25588, 25578, 25563, 25682, 25562, 25593, 25950, 25958, 25954, 25955, 26001, 26e3, 26031, 26222, 26224, 26228, 26230, 26223, 26257, 26234, 26238, 26231, 26366, 26367, 26399, 26397, 26874, 26837, 26848, 26840, 26839, 26885, 26847, 26869, 26862, 26855, 26873, 26834, 26866, 26851, 26827, 26829, 26893, 26898, 26894, 26825, 26842, 26990, 26875, 27454, 27450, 27453, 27544, 27542, 27580, 27631, 27694, 27695, 27692, 28207, 28216, 28244, 28193, 28210, 28263, 28234, 28192, 28197, 28195, 28187, 28251, 28248, 28196, 28246, 28270, 28205, 28198, 28271, 28212, 28237, 28218, 28204, 28227, 28189, 28222, 28363, 28297, 28185, 28238, 28259, 28228, 28274, 28265, 28255, 28953, 28954, 28966, 28976, 28961, 28982, 29038, 28956, 29260, 29316, 29312, 29494, 29477, 29492, 29481, 29754, 29738, 29747, 29730, 29733, 29749, 29750, 29748, 29743, 29723, 29734, 29736, 29989, 29990, 30059, 30058, 30178, 30171, 30179, 30169, 30168, 30174, 30176, 30331, 30332, 30358, 30355, 30388, 30428, 30543, 30701, 30813, 30828, 30831, 31245, 31240, 31243, 31237, 31232, 31384, 31383, 31382, 31461, 31459, 31561, 31574, 31558, 31568, 31570, 31572, 31565, 31563, 31567, 31569, 31903, 31909, 32094, 32080, 32104, 32085, 32043, 32110, 32114, 32097, 32102, 32098, 32112, 32115, 21892, 32724, 32725, 32779, 32850, 32901, 33109, 33108, 33099, 33105, 33102, 33081, 33094, 33086, 33100, 33107, 33140, 33298, 33308, 33769, 33795, 33784, 33805, 33760, 33733, 33803, 33729, 33775, 33777, 33780, 33879, 33802, 33776, 33804, 33740, 33789, 33778, 33738, 33848, 33806, 33796, 33756, 33799, 33748, 33759, 34395, 34527, 34521, 34541, 34516, 34523, 34532, 34512, 34526, 34903, 35009, 35010, 34993, 35203, 35222, 35387, 35424, 35413, 35422, 35388, 35393, 35412, 35419, 35408, 35398, 35380, 35386, 35382, 35414, 35937, 35970, 36015, 36028, 36019, 36029, 36033, 36027, 36032, 36020, 36023, 36022, 36031, 36024, 36234, 36229, 36225, 36302, 36317, 36299, 36314, 36305, 36300, 36315, 36294, 36603, 36600, 36604, 36764, 36910, 36917, 36913, 36920, 36914, 36918, 37122, 37109, 37129, 37118, 37219, 37221, 37327, 37396, 37397, 37411, 37385, 37406, 37389, 37392, 37383, 37393, 38292, 38287, 38283, 38289, 38291, 38290, 38286, 38538, 38542, 38539, 38525, 38533, 38534, 38541, 38514, 38532, 38593, 38597, 38596, 38598, 38599, 38639, 38642, 38860, 38917, 38918, 38920, 39143, 39146, 39151, 39145, 39154, 39149, 39342, 39341, 40643, 40653, 40657, 20098, 20653, 20661, 20658, 20659, 20677, 20670, 20652, 20663, 20667, 20655, 20679, 21119, 21111, 21117, 21215, 21222, 21220, 21218, 21219, 21295, 21983, 21992, 21971, 21990, 21966, 21980, 21959, 21969, 21987, 21988, 21999, 21978, 21985, 21957, 21958, 21989, 21961, 22290, 22291, 22622, 22609, 22616, 22615, 22618, 22612, 22635, 22604, 22637, 22602, 22626, 22610, 22603, 22887, 23233, 23241, 23244, 23230, 23229, 23228, 23219, 23234, 23218, 23913, 23919, 24140, 24185, 24265, 24264, 24338, 24409, 24492, 24494, 24858, 24847, 24904, 24863, 24819, 24859, 24825, 24833, 24840, 24910, 24908, 24900, 24909, 24894, 24884, 24871, 24845, 24838, 24887, 25121, 25122, 25619, 25662, 25630, 25642, 25645, 25661, 25644, 25615, 25628, 25620, 25613, 25654, 25622, 25623, 25606, 25964, 26015, 26032, 26263, 26249, 26247, 26248, 26262, 26244, 26264, 26253, 26371, 27028, 26989, 26970, 26999, 26976, 26964, 26997, 26928, 27010, 26954, 26984, 26987, 26974, 26963, 27001, 27014, 26973, 26979, 26971, 27463, 27506, 27584, 27583, 27603, 27645, 28322, 28335, 28371, 28342, 28354, 28304, 28317, 28359, 28357, 28325, 28312, 28348, 28346, 28331, 28369, 28310, 28316, 28356, 28372, 28330, 28327, 28340, 29006, 29017, 29033, 29028, 29001, 29031, 29020, 29036, 29030, 29004, 29029, 29022, 28998, 29032, 29014, 29242, 29266, 29495, 29509, 29503, 29502, 29807, 29786, 29781, 29791, 29790, 29761, 29759, 29785, 29787, 29788, 30070, 30072, 30208, 30192, 30209, 30194, 30193, 30202, 30207, 30196, 30195, 30430, 30431, 30555, 30571, 30566, 30558, 30563, 30585, 30570, 30572, 30556, 30565, 30568, 30562, 30702, 30862, 30896, 30871, 30872, 30860, 30857, 30844, 30865, 30867, 30847, 31098, 31103, 31105, 33836, 31165, 31260, 31258, 31264, 31252, 31263, 31262, 31391, 31392, 31607, 31680, 31584, 31598, 31591, 31921, 31923, 31925, 32147, 32121, 32145, 32129, 32143, 32091, 32622, 32617, 32618, 32626, 32681, 32680, 32676, 32854, 32856, 32902, 32900, 33137, 33136, 33144, 33125, 33134, 33139, 33131, 33145, 33146, 33126, 33285, 33351, 33922, 33911, 33853, 33841, 33909, 33894, 33899, 33865, 33900, 33883, 33852, 33845, 33889, 33891, 33897, 33901, 33862, 34398, 34396, 34399, 34553, 34579, 34568, 34567, 34560, 34558, 34555, 34562, 34563, 34566, 34570, 34905, 35039, 35028, 35033, 35036, 35032, 35037, 35041, 35018, 35029, 35026, 35228, 35299, 35435, 35442, 35443, 35430, 35433, 35440, 35463, 35452, 35427, 35488, 35441, 35461, 35437, 35426, 35438, 35436, 35449, 35451, 35390, 35432, 35938, 35978, 35977, 36042, 36039, 36040, 36036, 36018, 36035, 36034, 36037, 36321, 36319, 36328, 36335, 36339, 36346, 36330, 36324, 36326, 36530, 36611, 36617, 36606, 36618, 36767, 36786, 36939, 36938, 36947, 36930, 36948, 36924, 36949, 36944, 36935, 36943, 36942, 36941, 36945, 36926, 36929, 37138, 37143, 37228, 37226, 37225, 37321, 37431, 37463, 37432, 37437, 37440, 37438, 37467, 37451, 37476, 37457, 37428, 37449, 37453, 37445, 37433, 37439, 37466, 38296, 38552, 38548, 38549, 38605, 38603, 38601, 38602, 38647, 38651, 38649, 38646, 38742, 38772, 38774, 38928, 38929, 38931, 38922, 38930, 38924, 39164, 39156, 39165, 39166, 39347, 39345, 39348, 39649, 40169, 40578, 40718, 40723, 40736, 20711, 20718, 20709, 20694, 20717, 20698, 20693, 20687, 20689, 20721, 20686, 20713, 20834, 20979, 21123, 21122, 21297, 21421, 22014, 22016, 22043, 22039, 22013, 22036, 22022, 22025, 22029, 22030, 22007, 22038, 22047, 22024, 22032, 22006, 22296, 22294, 22645, 22654, 22659, 22675, 22666, 22649, 22661, 22653, 22781, 22821, 22818, 22820, 22890, 22889, 23265, 23270, 23273, 23255, 23254, 23256, 23267, 23413, 23518, 23527, 23521, 23525, 23526, 23528, 23522, 23524, 23519, 23565, 23650, 23940, 23943, 24155, 24163, 24149, 24151, 24148, 24275, 24278, 24330, 24390, 24432, 24505, 24903, 24895, 24907, 24951, 24930, 24931, 24927, 24922, 24920, 24949, 25130, 25735, 25688, 25684, 25764, 25720, 25695, 25722, 25681, 25703, 25652, 25709, 25723, 25970, 26017, 26071, 26070, 26274, 26280, 26269, 27036, 27048, 27029, 27073, 27054, 27091, 27083, 27035, 27063, 27067, 27051, 27060, 27088, 27085, 27053, 27084, 27046, 27075, 27043, 27465, 27468, 27699, 28467, 28436, 28414, 28435, 28404, 28457, 28478, 28448, 28460, 28431, 28418, 28450, 28415, 28399, 28422, 28465, 28472, 28466, 28451, 28437, 28459, 28463, 28552, 28458, 28396, 28417, 28402, 28364, 28407, 29076, 29081, 29053, 29066, 29060, 29074, 29246, 29330, 29334, 29508, 29520, 29796, 29795, 29802, 29808, 29805, 29956, 30097, 30247, 30221, 30219, 30217, 30227, 30433, 30435, 30596, 30589, 30591, 30561, 30913, 30879, 30887, 30899, 30889, 30883, 31118, 31119, 31117, 31278, 31281, 31402, 31401, 31469, 31471, 31649, 31637, 31627, 31605, 31639, 31645, 31636, 31631, 31672, 31623, 31620, 31929, 31933, 31934, 32187, 32176, 32156, 32189, 32190, 32160, 32202, 32180, 32178, 32177, 32186, 32162, 32191, 32181, 32184, 32173, 32210, 32199, 32172, 32624, 32736, 32737, 32735, 32862, 32858, 32903, 33104, 33152, 33167, 33160, 33162, 33151, 33154, 33255, 33274, 33287, 33300, 33310, 33355, 33993, 33983, 33990, 33988, 33945, 33950, 33970, 33948, 33995, 33976, 33984, 34003, 33936, 33980, 34001, 33994, 34623, 34588, 34619, 34594, 34597, 34612, 34584, 34645, 34615, 34601, 35059, 35074, 35060, 35065, 35064, 35069, 35048, 35098, 35055, 35494, 35468, 35486, 35491, 35469, 35489, 35475, 35492, 35498, 35493, 35496, 35480, 35473, 35482, 35495, 35946, 35981, 35980, 36051, 36049, 36050, 36203, 36249, 36245, 36348, 36628, 36626, 36629, 36627, 36771, 36960, 36952, 36956, 36963, 36953, 36958, 36962, 36957, 36955, 37145, 37144, 37150, 37237, 37240, 37239, 37236, 37496, 37504, 37509, 37528, 37526, 37499, 37523, 37532, 37544, 37500, 37521, 38305, 38312, 38313, 38307, 38309, 38308, 38553, 38556, 38555, 38604, 38610, 38656, 38780, 38789, 38902, 38935, 38936, 39087, 39089, 39171, 39173, 39180, 39177, 39361, 39599, 39600, 39654, 39745, 39746, 40180, 40182, 40179, 40636, 40763, 40778, 20740, 20736, 20731, 20725, 20729, 20738, 20744, 20745, 20741, 20956, 21127, 21128, 21129, 21133, 21130, 21232, 21426, 22062, 22075, 22073, 22066, 22079, 22068, 22057, 22099, 22094, 22103, 22132, 22070, 22063, 22064, 22656, 22687, 22686, 22707, 22684, 22702, 22697, 22694, 22893, 23305, 23291, 23307, 23285, 23308, 23304, 23534, 23532, 23529, 23531, 23652, 23653, 23965, 23956, 24162, 24159, 24161, 24290, 24282, 24287, 24285, 24291, 24288, 24392, 24433, 24503, 24501, 24950, 24935, 24942, 24925, 24917, 24962, 24956, 24944, 24939, 24958, 24999, 24976, 25003, 24974, 25004, 24986, 24996, 24980, 25006, 25134, 25705, 25711, 25721, 25758, 25778, 25736, 25744, 25776, 25765, 25747, 25749, 25769, 25746, 25774, 25773, 25771, 25754, 25772, 25753, 25762, 25779, 25973, 25975, 25976, 26286, 26283, 26292, 26289, 27171, 27167, 27112, 27137, 27166, 27161, 27133, 27169, 27155, 27146, 27123, 27138, 27141, 27117, 27153, 27472, 27470, 27556, 27589, 27590, 28479, 28540, 28548, 28497, 28518, 28500, 28550, 28525, 28507, 28536, 28526, 28558, 28538, 28528, 28516, 28567, 28504, 28373, 28527, 28512, 28511, 29087, 29100, 29105, 29096, 29270, 29339, 29518, 29527, 29801, 29835, 29827, 29822, 29824, 30079, 30240, 30249, 30239, 30244, 30246, 30241, 30242, 30362, 30394, 30436, 30606, 30599, 30604, 30609, 30603, 30923, 30917, 30906, 30922, 30910, 30933, 30908, 30928, 31295, 31292, 31296, 31293, 31287, 31291, 31407, 31406, 31661, 31665, 31684, 31668, 31686, 31687, 31681, 31648, 31692, 31946, 32224, 32244, 32239, 32251, 32216, 32236, 32221, 32232, 32227, 32218, 32222, 32233, 32158, 32217, 32242, 32249, 32629, 32631, 32687, 32745, 32806, 33179, 33180, 33181, 33184, 33178, 33176, 34071, 34109, 34074, 34030, 34092, 34093, 34067, 34065, 34083, 34081, 34068, 34028, 34085, 34047, 34054, 34690, 34676, 34678, 34656, 34662, 34680, 34664, 34649, 34647, 34636, 34643, 34907, 34909, 35088, 35079, 35090, 35091, 35093, 35082, 35516, 35538, 35527, 35524, 35477, 35531, 35576, 35506, 35529, 35522, 35519, 35504, 35542, 35533, 35510, 35513, 35547, 35916, 35918, 35948, 36064, 36062, 36070, 36068, 36076, 36077, 36066, 36067, 36060, 36074, 36065, 36205, 36255, 36259, 36395, 36368, 36381, 36386, 36367, 36393, 36383, 36385, 36382, 36538, 36637, 36635, 36639, 36649, 36646, 36650, 36636, 36638, 36645, 36969, 36974, 36968, 36973, 36983, 37168, 37165, 37159, 37169, 37255, 37257, 37259, 37251, 37573, 37563, 37559, 37610, 37548, 37604, 37569, 37555, 37564, 37586, 37575, 37616, 37554, 38317, 38321, 38660, 38662, 38663, 38665, 38752, 38797, 38795, 38799, 38945, 38955, 38940, 39091, 39178, 39187, 39186, 39192, 39389, 39376, 39391, 39387, 39377, 39381, 39378, 39385, 39607, 39662, 39663, 39719, 39749, 39748, 39799, 39791, 40198, 40201, 40195, 40617, 40638, 40654, 22696, 40786, 20754, 20760, 20756, 20752, 20757, 20864, 20906, 20957, 21137, 21139, 21235, 22105, 22123, 22137, 22121, 22116, 22136, 22122, 22120, 22117, 22129, 22127, 22124, 22114, 22134, 22721, 22718, 22727, 22725, 22894, 23325, 23348, 23416, 23536, 23566, 24394, 25010, 24977, 25001, 24970, 25037, 25014, 25022, 25034, 25032, 25136, 25797, 25793, 25803, 25787, 25788, 25818, 25796, 25799, 25794, 25805, 25791, 25810, 25812, 25790, 25972, 26310, 26313, 26297, 26308, 26311, 26296, 27197, 27192, 27194, 27225, 27243, 27224, 27193, 27204, 27234, 27233, 27211, 27207, 27189, 27231, 27208, 27481, 27511, 27653, 28610, 28593, 28577, 28611, 28580, 28609, 28583, 28595, 28608, 28601, 28598, 28582, 28576, 28596, 29118, 29129, 29136, 29138, 29128, 29141, 29113, 29134, 29145, 29148, 29123, 29124, 29544, 29852, 29859, 29848, 29855, 29854, 29922, 29964, 29965, 30260, 30264, 30266, 30439, 30437, 30624, 30622, 30623, 30629, 30952, 30938, 30956, 30951, 31142, 31309, 31310, 31302, 31308, 31307, 31418, 31705, 31761, 31689, 31716, 31707, 31713, 31721, 31718, 31957, 31958, 32266, 32273, 32264, 32283, 32291, 32286, 32285, 32265, 32272, 32633, 32690, 32752, 32753, 32750, 32808, 33203, 33193, 33192, 33275, 33288, 33368, 33369, 34122, 34137, 34120, 34152, 34153, 34115, 34121, 34157, 34154, 34142, 34691, 34719, 34718, 34722, 34701, 34913, 35114, 35122, 35109, 35115, 35105, 35242, 35238, 35558, 35578, 35563, 35569, 35584, 35548, 35559, 35566, 35582, 35585, 35586, 35575, 35565, 35571, 35574, 35580, 35947, 35949, 35987, 36084, 36420, 36401, 36404, 36418, 36409, 36405, 36667, 36655, 36664, 36659, 36776, 36774, 36981, 36980, 36984, 36978, 36988, 36986, 37172, 37266, 37664, 37686, 37624, 37683, 37679, 37666, 37628, 37675, 37636, 37658, 37648, 37670, 37665, 37653, 37678, 37657, 38331, 38567, 38568, 38570, 38613, 38670, 38673, 38678, 38669, 38675, 38671, 38747, 38748, 38758, 38808, 38960, 38968, 38971, 38967, 38957, 38969, 38948, 39184, 39208, 39198, 39195, 39201, 39194, 39405, 39394, 39409, 39608, 39612, 39675, 39661, 39720, 39825, 40213, 40227, 40230, 40232, 40210, 40219, 40664, 40660, 40845, 40860, 20778, 20767, 20769, 20786, 21237, 22158, 22144, 22160, 22149, 22151, 22159, 22741, 22739, 22737, 22734, 23344, 23338, 23332, 23418, 23607, 23656, 23996, 23994, 23997, 23992, 24171, 24396, 24509, 25033, 25026, 25031, 25062, 25035, 25138, 25140, 25806, 25802, 25816, 25824, 25840, 25830, 25836, 25841, 25826, 25837, 25986, 25987, 26329, 26326, 27264, 27284, 27268, 27298, 27292, 27355, 27299, 27262, 27287, 27280, 27296, 27484, 27566, 27610, 27656, 28632, 28657, 28639, 28640, 28635, 28644, 28651, 28655, 28544, 28652, 28641, 28649, 28629, 28654, 28656, 29159, 29151, 29166, 29158, 29157, 29165, 29164, 29172, 29152, 29237, 29254, 29552, 29554, 29865, 29872, 29862, 29864, 30278, 30274, 30284, 30442, 30643, 30634, 30640, 30636, 30631, 30637, 30703, 30967, 30970, 30964, 30959, 30977, 31143, 31146, 31319, 31423, 31751, 31757, 31742, 31735, 31756, 31712, 31968, 31964, 31966, 31970, 31967, 31961, 31965, 32302, 32318, 32326, 32311, 32306, 32323, 32299, 32317, 32305, 32325, 32321, 32308, 32313, 32328, 32309, 32319, 32303, 32580, 32755, 32764, 32881, 32882, 32880, 32879, 32883, 33222, 33219, 33210, 33218, 33216, 33215, 33213, 33225, 33214, 33256, 33289, 33393, 34218, 34180, 34174, 34204, 34193, 34196, 34223, 34203, 34183, 34216, 34186, 34407, 34752, 34769, 34739, 34770, 34758, 34731, 34747, 34746, 34760, 34763, 35131, 35126, 35140, 35128, 35133, 35244, 35598, 35607, 35609, 35611, 35594, 35616, 35613, 35588, 35600, 35905, 35903, 35955, 36090, 36093, 36092, 36088, 36091, 36264, 36425, 36427, 36424, 36426, 36676, 36670, 36674, 36677, 36671, 36991, 36989, 36996, 36993, 36994, 36992, 37177, 37283, 37278, 37276, 37709, 37762, 37672, 37749, 37706, 37733, 37707, 37656, 37758, 37740, 37723, 37744, 37722, 37716, 38346, 38347, 38348, 38344, 38342, 38577, 38584, 38614, 38684, 38686, 38816, 38867, 38982, 39094, 39221, 39425, 39423, 39854, 39851, 39850, 39853, 40251, 40255, 40587, 40655, 40670, 40668, 40669, 40667, 40766, 40779, 21474, 22165, 22190, 22745, 22744, 23352, 24413, 25059, 25139, 25844, 25842, 25854, 25862, 25850, 25851, 25847, 26039, 26332, 26406, 27315, 27308, 27331, 27323, 27320, 27330, 27310, 27311, 27487, 27512, 27567, 28681, 28683, 28670, 28678, 28666, 28689, 28687, 29179, 29180, 29182, 29176, 29559, 29557, 29863, 29887, 29973, 30294, 30296, 30290, 30653, 30655, 30651, 30652, 30990, 31150, 31329, 31330, 31328, 31428, 31429, 31787, 31783, 31786, 31774, 31779, 31777, 31975, 32340, 32341, 32350, 32346, 32353, 32338, 32345, 32584, 32761, 32763, 32887, 32886, 33229, 33231, 33290, 34255, 34217, 34253, 34256, 34249, 34224, 34234, 34233, 34214, 34799, 34796, 34802, 34784, 35206, 35250, 35316, 35624, 35641, 35628, 35627, 35920, 36101, 36441, 36451, 36454, 36452, 36447, 36437, 36544, 36681, 36685, 36999, 36995, 37e3, 37291, 37292, 37328, 37780, 37770, 37782, 37794, 37811, 37806, 37804, 37808, 37784, 37786, 37783, 38356, 38358, 38352, 38357, 38626, 38620, 38617, 38619, 38622, 38692, 38819, 38822, 38829, 38905, 38989, 38991, 38988, 38990, 38995, 39098, 39230, 39231, 39229, 39214, 39333, 39438, 39617, 39683, 39686, 39759, 39758, 39757, 39882, 39881, 39933, 39880, 39872, 40273, 40285, 40288, 40672, 40725, 40748, 20787, 22181, 22750, 22751, 22754, 23541, 40848, 24300, 25074, 25079, 25078, 25077, 25856, 25871, 26336, 26333, 27365, 27357, 27354, 27347, 28699, 28703, 28712, 28698, 28701, 28693, 28696, 29190, 29197, 29272, 29346, 29560, 29562, 29885, 29898, 29923, 30087, 30086, 30303, 30305, 30663, 31001, 31153, 31339, 31337, 31806, 31807, 31800, 31805, 31799, 31808, 32363, 32365, 32377, 32361, 32362, 32645, 32371, 32694, 32697, 32696, 33240, 34281, 34269, 34282, 34261, 34276, 34277, 34295, 34811, 34821, 34829, 34809, 34814, 35168, 35167, 35158, 35166, 35649, 35676, 35672, 35657, 35674, 35662, 35663, 35654, 35673, 36104, 36106, 36476, 36466, 36487, 36470, 36460, 36474, 36468, 36692, 36686, 36781, 37002, 37003, 37297, 37294, 37857, 37841, 37855, 37827, 37832, 37852, 37853, 37846, 37858, 37837, 37848, 37860, 37847, 37864, 38364, 38580, 38627, 38698, 38695, 38753, 38876, 38907, 39006, 39e3, 39003, 39100, 39237, 39241, 39446, 39449, 39693, 39912, 39911, 39894, 39899, 40329, 40289, 40306, 40298, 40300, 40594, 40599, 40595, 40628, 21240, 22184, 22199, 22198, 22196, 22204, 22756, 23360, 23363, 23421, 23542, 24009, 25080, 25082, 25880, 25876, 25881, 26342, 26407, 27372, 28734, 28720, 28722, 29200, 29563, 29903, 30306, 30309, 31014, 31018, 31020, 31019, 31431, 31478, 31820, 31811, 31821, 31983, 31984, 36782, 32381, 32380, 32386, 32588, 32768, 33242, 33382, 34299, 34297, 34321, 34298, 34310, 34315, 34311, 34314, 34836, 34837, 35172, 35258, 35320, 35696, 35692, 35686, 35695, 35679, 35691, 36111, 36109, 36489, 36481, 36485, 36482, 37300, 37323, 37912, 37891, 37885, 38369, 38704, 39108, 39250, 39249, 39336, 39467, 39472, 39479, 39477, 39955, 39949, 40569, 40629, 40680, 40751, 40799, 40803, 40801, 20791, 20792, 22209, 22208, 22210, 22804, 23660, 24013, 25084, 25086, 25885, 25884, 26005, 26345, 27387, 27396, 27386, 27570, 28748, 29211, 29351, 29910, 29908, 30313, 30675, 31824, 32399, 32396, 32700, 34327, 34349, 34330, 34851, 34850, 34849, 34847, 35178, 35180, 35261, 35700, 35703, 35709, 36115, 36490, 36493, 36491, 36703, 36783, 37306, 37934, 37939, 37941, 37946, 37944, 37938, 37931, 38370, 38712, 38713, 38706, 38911, 39015, 39013, 39255, 39493, 39491, 39488, 39486, 39631, 39764, 39761, 39981, 39973, 40367, 40372, 40386, 40376, 40605, 40687, 40729, 40796, 40806, 40807, 20796, 20795, 22216, 22218, 22217, 23423, 24020, 24018, 24398, 25087, 25892, 27402, 27489, 28753, 28760, 29568, 29924, 30090, 30318, 30316, 31155, 31840, 31839, 32894, 32893, 33247, 35186, 35183, 35324, 35712, 36118, 36119, 36497, 36499, 36705, 37192, 37956, 37969, 37970, 38717, 38718, 38851, 38849, 39019, 39253, 39509, 39501, 39634, 39706, 40009, 39985, 39998, 39995, 40403, 40407, 40756, 40812, 40810, 40852, 22220, 24022, 25088, 25891, 25899, 25898, 26348, 27408, 29914, 31434, 31844, 31843, 31845, 32403, 32406, 32404, 33250, 34360, 34367, 34865, 35722, 37008, 37007, 37987, 37984, 37988, 38760, 39023, 39260, 39514, 39515, 39511, 39635, 39636, 39633, 40020, 40023, 40022, 40421, 40607, 40692, 22225, 22761, 25900, 28766, 30321, 30322, 30679, 32592, 32648, 34870, 34873, 34914, 35731, 35730, 35734, 33399, 36123, 37312, 37994, 38722, 38728, 38724, 38854, 39024, 39519, 39714, 39768, 40031, 40441, 40442, 40572, 40573, 40711, 40823, 40818, 24307, 27414, 28771, 31852, 31854, 34875, 35264, 36513, 37313, 38002, 38e3, 39025, 39262, 39638, 39715, 40652, 28772, 30682, 35738, 38007, 38857, 39522, 39525, 32412, 35740, 36522, 37317, 38013, 38014, 38012, 40055, 40056, 40695, 35924, 38015, 40474, 29224, 39530, 39729, 40475, 40478, 31858, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 20022, 20031, 20101, 20128, 20866, 20886, 20907, 21241, 21304, 21353, 21430, 22794, 23424, 24027, 12083, 24191, 24308, 24400, 24417, 25908, 26080, 30098, 30326, 36789, 38582, 168, 710, 12541, 12542, 12445, 12446, 12291, 20189, 12293, 12294, 12295, 12540, 65339, 65341, 10045, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 8679, 8632, 8633, 12751, 131276, 20058, 131210, 20994, 17553, 40880, 20872, 40881, 161287, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 65506, 65508, 65287, 65282, 12849, 8470, 8481, 12443, 12444, 11904, 11908, 11910, 11911, 11912, 11914, 11916, 11917, 11925, 11932, 11933, 11941, 11943, 11946, 11948, 11950, 11958, 11964, 11966, 11974, 11978, 11980, 11981, 11983, 11990, 11991, 11998, 12003, null, null, null, 643, 592, 603, 596, 629, 339, 248, 331, 650, 618, 20034, 20060, 20981, 21274, 21378, 19975, 19980, 20039, 20109, 22231, 64012, 23662, 24435, 19983, 20871, 19982, 20014, 20115, 20162, 20169, 20168, 20888, 21244, 21356, 21433, 22304, 22787, 22828, 23568, 24063, 26081, 27571, 27596, 27668, 29247, 20017, 20028, 20200, 20188, 20201, 20193, 20189, 20186, 21004, 21276, 21324, 22306, 22307, 22807, 22831, 23425, 23428, 23570, 23611, 23668, 23667, 24068, 24192, 24194, 24521, 25097, 25168, 27669, 27702, 27715, 27711, 27707, 29358, 29360, 29578, 31160, 32906, 38430, 20238, 20248, 20268, 20213, 20244, 20209, 20224, 20215, 20232, 20253, 20226, 20229, 20258, 20243, 20228, 20212, 20242, 20913, 21011, 21001, 21008, 21158, 21282, 21279, 21325, 21386, 21511, 22241, 22239, 22318, 22314, 22324, 22844, 22912, 22908, 22917, 22907, 22910, 22903, 22911, 23382, 23573, 23589, 23676, 23674, 23675, 23678, 24031, 24181, 24196, 24322, 24346, 24436, 24533, 24532, 24527, 25180, 25182, 25188, 25185, 25190, 25186, 25177, 25184, 25178, 25189, 26095, 26094, 26430, 26425, 26424, 26427, 26426, 26431, 26428, 26419, 27672, 27718, 27730, 27740, 27727, 27722, 27732, 27723, 27724, 28785, 29278, 29364, 29365, 29582, 29994, 30335, 31349, 32593, 33400, 33404, 33408, 33405, 33407, 34381, 35198, 37017, 37015, 37016, 37019, 37012, 38434, 38436, 38432, 38435, 20310, 20283, 20322, 20297, 20307, 20324, 20286, 20327, 20306, 20319, 20289, 20312, 20269, 20275, 20287, 20321, 20879, 20921, 21020, 21022, 21025, 21165, 21166, 21257, 21347, 21362, 21390, 21391, 21552, 21559, 21546, 21588, 21573, 21529, 21532, 21541, 21528, 21565, 21583, 21569, 21544, 21540, 21575, 22254, 22247, 22245, 22337, 22341, 22348, 22345, 22347, 22354, 22790, 22848, 22950, 22936, 22944, 22935, 22926, 22946, 22928, 22927, 22951, 22945, 23438, 23442, 23592, 23594, 23693, 23695, 23688, 23691, 23689, 23698, 23690, 23686, 23699, 23701, 24032, 24074, 24078, 24203, 24201, 24204, 24200, 24205, 24325, 24349, 24440, 24438, 24530, 24529, 24528, 24557, 24552, 24558, 24563, 24545, 24548, 24547, 24570, 24559, 24567, 24571, 24576, 24564, 25146, 25219, 25228, 25230, 25231, 25236, 25223, 25201, 25211, 25210, 25200, 25217, 25224, 25207, 25213, 25202, 25204, 25911, 26096, 26100, 26099, 26098, 26101, 26437, 26439, 26457, 26453, 26444, 26440, 26461, 26445, 26458, 26443, 27600, 27673, 27674, 27768, 27751, 27755, 27780, 27787, 27791, 27761, 27759, 27753, 27802, 27757, 27783, 27797, 27804, 27750, 27763, 27749, 27771, 27790, 28788, 28794, 29283, 29375, 29373, 29379, 29382, 29377, 29370, 29381, 29589, 29591, 29587, 29588, 29586, 30010, 30009, 30100, 30101, 30337, 31037, 32820, 32917, 32921, 32912, 32914, 32924, 33424, 33423, 33413, 33422, 33425, 33427, 33418, 33411, 33412, 35960, 36809, 36799, 37023, 37025, 37029, 37022, 37031, 37024, 38448, 38440, 38447, 38445, 20019, 20376, 20348, 20357, 20349, 20352, 20359, 20342, 20340, 20361, 20356, 20343, 20300, 20375, 20330, 20378, 20345, 20353, 20344, 20368, 20380, 20372, 20382, 20370, 20354, 20373, 20331, 20334, 20894, 20924, 20926, 21045, 21042, 21043, 21062, 21041, 21180, 21258, 21259, 21308, 21394, 21396, 21639, 21631, 21633, 21649, 21634, 21640, 21611, 21626, 21630, 21605, 21612, 21620, 21606, 21645, 21615, 21601, 21600, 21656, 21603, 21607, 21604, 22263, 22265, 22383, 22386, 22381, 22379, 22385, 22384, 22390, 22400, 22389, 22395, 22387, 22388, 22370, 22376, 22397, 22796, 22853, 22965, 22970, 22991, 22990, 22962, 22988, 22977, 22966, 22972, 22979, 22998, 22961, 22973, 22976, 22984, 22964, 22983, 23394, 23397, 23443, 23445, 23620, 23623, 23726, 23716, 23712, 23733, 23727, 23720, 23724, 23711, 23715, 23725, 23714, 23722, 23719, 23709, 23717, 23734, 23728, 23718, 24087, 24084, 24089, 24360, 24354, 24355, 24356, 24404, 24450, 24446, 24445, 24542, 24549, 24621, 24614, 24601, 24626, 24587, 24628, 24586, 24599, 24627, 24602, 24606, 24620, 24610, 24589, 24592, 24622, 24595, 24593, 24588, 24585, 24604, 25108, 25149, 25261, 25268, 25297, 25278, 25258, 25270, 25290, 25262, 25267, 25263, 25275, 25257, 25264, 25272, 25917, 26024, 26043, 26121, 26108, 26116, 26130, 26120, 26107, 26115, 26123, 26125, 26117, 26109, 26129, 26128, 26358, 26378, 26501, 26476, 26510, 26514, 26486, 26491, 26520, 26502, 26500, 26484, 26509, 26508, 26490, 26527, 26513, 26521, 26499, 26493, 26497, 26488, 26489, 26516, 27429, 27520, 27518, 27614, 27677, 27795, 27884, 27883, 27886, 27865, 27830, 27860, 27821, 27879, 27831, 27856, 27842, 27834, 27843, 27846, 27885, 27890, 27858, 27869, 27828, 27786, 27805, 27776, 27870, 27840, 27952, 27853, 27847, 27824, 27897, 27855, 27881, 27857, 28820, 28824, 28805, 28819, 28806, 28804, 28817, 28822, 28802, 28826, 28803, 29290, 29398, 29387, 29400, 29385, 29404, 29394, 29396, 29402, 29388, 29393, 29604, 29601, 29613, 29606, 29602, 29600, 29612, 29597, 29917, 29928, 30015, 30016, 30014, 30092, 30104, 30383, 30451, 30449, 30448, 30453, 30712, 30716, 30713, 30715, 30714, 30711, 31042, 31039, 31173, 31352, 31355, 31483, 31861, 31997, 32821, 32911, 32942, 32931, 32952, 32949, 32941, 33312, 33440, 33472, 33451, 33434, 33432, 33435, 33461, 33447, 33454, 33468, 33438, 33466, 33460, 33448, 33441, 33449, 33474, 33444, 33475, 33462, 33442, 34416, 34415, 34413, 34414, 35926, 36818, 36811, 36819, 36813, 36822, 36821, 36823, 37042, 37044, 37039, 37043, 37040, 38457, 38461, 38460, 38458, 38467, 20429, 20421, 20435, 20402, 20425, 20427, 20417, 20436, 20444, 20441, 20411, 20403, 20443, 20423, 20438, 20410, 20416, 20409, 20460, 21060, 21065, 21184, 21186, 21309, 21372, 21399, 21398, 21401, 21400, 21690, 21665, 21677, 21669, 21711, 21699, 33549, 21687, 21678, 21718, 21686, 21701, 21702, 21664, 21616, 21692, 21666, 21694, 21618, 21726, 21680, 22453, 22430, 22431, 22436, 22412, 22423, 22429, 22427, 22420, 22424, 22415, 22425, 22437, 22426, 22421, 22772, 22797, 22867, 23009, 23006, 23022, 23040, 23025, 23005, 23034, 23037, 23036, 23030, 23012, 23026, 23031, 23003, 23017, 23027, 23029, 23008, 23038, 23028, 23021, 23464, 23628, 23760, 23768, 23756, 23767, 23755, 23771, 23774, 23770, 23753, 23751, 23754, 23766, 23763, 23764, 23759, 23752, 23750, 23758, 23775, 23800, 24057, 24097, 24098, 24099, 24096, 24100, 24240, 24228, 24226, 24219, 24227, 24229, 24327, 24366, 24406, 24454, 24631, 24633, 24660, 24690, 24670, 24645, 24659, 24647, 24649, 24667, 24652, 24640, 24642, 24671, 24612, 24644, 24664, 24678, 24686, 25154, 25155, 25295, 25357, 25355, 25333, 25358, 25347, 25323, 25337, 25359, 25356, 25336, 25334, 25344, 25363, 25364, 25338, 25365, 25339, 25328, 25921, 25923, 26026, 26047, 26166, 26145, 26162, 26165, 26140, 26150, 26146, 26163, 26155, 26170, 26141, 26164, 26169, 26158, 26383, 26384, 26561, 26610, 26568, 26554, 26588, 26555, 26616, 26584, 26560, 26551, 26565, 26603, 26596, 26591, 26549, 26573, 26547, 26615, 26614, 26606, 26595, 26562, 26553, 26574, 26599, 26608, 26546, 26620, 26566, 26605, 26572, 26542, 26598, 26587, 26618, 26569, 26570, 26563, 26602, 26571, 27432, 27522, 27524, 27574, 27606, 27608, 27616, 27680, 27681, 27944, 27956, 27949, 27935, 27964, 27967, 27922, 27914, 27866, 27955, 27908, 27929, 27962, 27930, 27921, 27904, 27933, 27970, 27905, 27928, 27959, 27907, 27919, 27968, 27911, 27936, 27948, 27912, 27938, 27913, 27920, 28855, 28831, 28862, 28849, 28848, 28833, 28852, 28853, 28841, 29249, 29257, 29258, 29292, 29296, 29299, 29294, 29386, 29412, 29416, 29419, 29407, 29418, 29414, 29411, 29573, 29644, 29634, 29640, 29637, 29625, 29622, 29621, 29620, 29675, 29631, 29639, 29630, 29635, 29638, 29624, 29643, 29932, 29934, 29998, 30023, 30024, 30119, 30122, 30329, 30404, 30472, 30467, 30468, 30469, 30474, 30455, 30459, 30458, 30695, 30696, 30726, 30737, 30738, 30725, 30736, 30735, 30734, 30729, 30723, 30739, 31050, 31052, 31051, 31045, 31044, 31189, 31181, 31183, 31190, 31182, 31360, 31358, 31441, 31488, 31489, 31866, 31864, 31865, 31871, 31872, 31873, 32003, 32008, 32001, 32600, 32657, 32653, 32702, 32775, 32782, 32783, 32788, 32823, 32984, 32967, 32992, 32977, 32968, 32962, 32976, 32965, 32995, 32985, 32988, 32970, 32981, 32969, 32975, 32983, 32998, 32973, 33279, 33313, 33428, 33497, 33534, 33529, 33543, 33512, 33536, 33493, 33594, 33515, 33494, 33524, 33516, 33505, 33522, 33525, 33548, 33531, 33526, 33520, 33514, 33508, 33504, 33530, 33523, 33517, 34423, 34420, 34428, 34419, 34881, 34894, 34919, 34922, 34921, 35283, 35332, 35335, 36210, 36835, 36833, 36846, 36832, 37105, 37053, 37055, 37077, 37061, 37054, 37063, 37067, 37064, 37332, 37331, 38484, 38479, 38481, 38483, 38474, 38478, 20510, 20485, 20487, 20499, 20514, 20528, 20507, 20469, 20468, 20531, 20535, 20524, 20470, 20471, 20503, 20508, 20512, 20519, 20533, 20527, 20529, 20494, 20826, 20884, 20883, 20938, 20932, 20933, 20936, 20942, 21089, 21082, 21074, 21086, 21087, 21077, 21090, 21197, 21262, 21406, 21798, 21730, 21783, 21778, 21735, 21747, 21732, 21786, 21759, 21764, 21768, 21739, 21777, 21765, 21745, 21770, 21755, 21751, 21752, 21728, 21774, 21763, 21771, 22273, 22274, 22476, 22578, 22485, 22482, 22458, 22470, 22461, 22460, 22456, 22454, 22463, 22471, 22480, 22457, 22465, 22798, 22858, 23065, 23062, 23085, 23086, 23061, 23055, 23063, 23050, 23070, 23091, 23404, 23463, 23469, 23468, 23555, 23638, 23636, 23788, 23807, 23790, 23793, 23799, 23808, 23801, 24105, 24104, 24232, 24238, 24234, 24236, 24371, 24368, 24423, 24669, 24666, 24679, 24641, 24738, 24712, 24704, 24722, 24705, 24733, 24707, 24725, 24731, 24727, 24711, 24732, 24718, 25113, 25158, 25330, 25360, 25430, 25388, 25412, 25413, 25398, 25411, 25572, 25401, 25419, 25418, 25404, 25385, 25409, 25396, 25432, 25428, 25433, 25389, 25415, 25395, 25434, 25425, 25400, 25431, 25408, 25416, 25930, 25926, 26054, 26051, 26052, 26050, 26186, 26207, 26183, 26193, 26386, 26387, 26655, 26650, 26697, 26674, 26675, 26683, 26699, 26703, 26646, 26673, 26652, 26677, 26667, 26669, 26671, 26702, 26692, 26676, 26653, 26642, 26644, 26662, 26664, 26670, 26701, 26682, 26661, 26656, 27436, 27439, 27437, 27441, 27444, 27501, 32898, 27528, 27622, 27620, 27624, 27619, 27618, 27623, 27685, 28026, 28003, 28004, 28022, 27917, 28001, 28050, 27992, 28002, 28013, 28015, 28049, 28045, 28143, 28031, 28038, 27998, 28007, 28e3, 28055, 28016, 28028, 27999, 28034, 28056, 27951, 28008, 28043, 28030, 28032, 28036, 27926, 28035, 28027, 28029, 28021, 28048, 28892, 28883, 28881, 28893, 28875, 32569, 28898, 28887, 28882, 28894, 28896, 28884, 28877, 28869, 28870, 28871, 28890, 28878, 28897, 29250, 29304, 29303, 29302, 29440, 29434, 29428, 29438, 29430, 29427, 29435, 29441, 29651, 29657, 29669, 29654, 29628, 29671, 29667, 29673, 29660, 29650, 29659, 29652, 29661, 29658, 29655, 29656, 29672, 29918, 29919, 29940, 29941, 29985, 30043, 30047, 30128, 30145, 30139, 30148, 30144, 30143, 30134, 30138, 30346, 30409, 30493, 30491, 30480, 30483, 30482, 30499, 30481, 30485, 30489, 30490, 30498, 30503, 30755, 30764, 30754, 30773, 30767, 30760, 30766, 30763, 30753, 30761, 30771, 30762, 30769, 31060, 31067, 31055, 31068, 31059, 31058, 31057, 31211, 31212, 31200, 31214, 31213, 31210, 31196, 31198, 31197, 31366, 31369, 31365, 31371, 31372, 31370, 31367, 31448, 31504, 31492, 31507, 31493, 31503, 31496, 31498, 31502, 31497, 31506, 31876, 31889, 31882, 31884, 31880, 31885, 31877, 32030, 32029, 32017, 32014, 32024, 32022, 32019, 32031, 32018, 32015, 32012, 32604, 32609, 32606, 32608, 32605, 32603, 32662, 32658, 32707, 32706, 32704, 32790, 32830, 32825, 33018, 33010, 33017, 33013, 33025, 33019, 33024, 33281, 33327, 33317, 33587, 33581, 33604, 33561, 33617, 33573, 33622, 33599, 33601, 33574, 33564, 33570, 33602, 33614, 33563, 33578, 33544, 33596, 33613, 33558, 33572, 33568, 33591, 33583, 33577, 33607, 33605, 33612, 33619, 33566, 33580, 33611, 33575, 33608, 34387, 34386, 34466, 34472, 34454, 34445, 34449, 34462, 34439, 34455, 34438, 34443, 34458, 34437, 34469, 34457, 34465, 34471, 34453, 34456, 34446, 34461, 34448, 34452, 34883, 34884, 34925, 34933, 34934, 34930, 34944, 34929, 34943, 34927, 34947, 34942, 34932, 34940, 35346, 35911, 35927, 35963, 36004, 36003, 36214, 36216, 36277, 36279, 36278, 36561, 36563, 36862, 36853, 36866, 36863, 36859, 36868, 36860, 36854, 37078, 37088, 37081, 37082, 37091, 37087, 37093, 37080, 37083, 37079, 37084, 37092, 37200, 37198, 37199, 37333, 37346, 37338, 38492, 38495, 38588, 39139, 39647, 39727, 20095, 20592, 20586, 20577, 20574, 20576, 20563, 20555, 20573, 20594, 20552, 20557, 20545, 20571, 20554, 20578, 20501, 20549, 20575, 20585, 20587, 20579, 20580, 20550, 20544, 20590, 20595, 20567, 20561, 20944, 21099, 21101, 21100, 21102, 21206, 21203, 21293, 21404, 21877, 21878, 21820, 21837, 21840, 21812, 21802, 21841, 21858, 21814, 21813, 21808, 21842, 21829, 21772, 21810, 21861, 21838, 21817, 21832, 21805, 21819, 21824, 21835, 22282, 22279, 22523, 22548, 22498, 22518, 22492, 22516, 22528, 22509, 22525, 22536, 22520, 22539, 22515, 22479, 22535, 22510, 22499, 22514, 22501, 22508, 22497, 22542, 22524, 22544, 22503, 22529, 22540, 22513, 22505, 22512, 22541, 22532, 22876, 23136, 23128, 23125, 23143, 23134, 23096, 23093, 23149, 23120, 23135, 23141, 23148, 23123, 23140, 23127, 23107, 23133, 23122, 23108, 23131, 23112, 23182, 23102, 23117, 23097, 23116, 23152, 23145, 23111, 23121, 23126, 23106, 23132, 23410, 23406, 23489, 23488, 23641, 23838, 23819, 23837, 23834, 23840, 23820, 23848, 23821, 23846, 23845, 23823, 23856, 23826, 23843, 23839, 23854, 24126, 24116, 24241, 24244, 24249, 24242, 24243, 24374, 24376, 24475, 24470, 24479, 24714, 24720, 24710, 24766, 24752, 24762, 24787, 24788, 24783, 24804, 24793, 24797, 24776, 24753, 24795, 24759, 24778, 24767, 24771, 24781, 24768, 25394, 25445, 25482, 25474, 25469, 25533, 25502, 25517, 25501, 25495, 25515, 25486, 25455, 25479, 25488, 25454, 25519, 25461, 25500, 25453, 25518, 25468, 25508, 25403, 25503, 25464, 25477, 25473, 25489, 25485, 25456, 25939, 26061, 26213, 26209, 26203, 26201, 26204, 26210, 26392, 26745, 26759, 26768, 26780, 26733, 26734, 26798, 26795, 26966, 26735, 26787, 26796, 26793, 26741, 26740, 26802, 26767, 26743, 26770, 26748, 26731, 26738, 26794, 26752, 26737, 26750, 26779, 26774, 26763, 26784, 26761, 26788, 26744, 26747, 26769, 26764, 26762, 26749, 27446, 27443, 27447, 27448, 27537, 27535, 27533, 27534, 27532, 27690, 28096, 28075, 28084, 28083, 28276, 28076, 28137, 28130, 28087, 28150, 28116, 28160, 28104, 28128, 28127, 28118, 28094, 28133, 28124, 28125, 28123, 28148, 28106, 28093, 28141, 28144, 28090, 28117, 28098, 28111, 28105, 28112, 28146, 28115, 28157, 28119, 28109, 28131, 28091, 28922, 28941, 28919, 28951, 28916, 28940, 28912, 28932, 28915, 28944, 28924, 28927, 28934, 28947, 28928, 28920, 28918, 28939, 28930, 28942, 29310, 29307, 29308, 29311, 29469, 29463, 29447, 29457, 29464, 29450, 29448, 29439, 29455, 29470, 29576, 29686, 29688, 29685, 29700, 29697, 29693, 29703, 29696, 29690, 29692, 29695, 29708, 29707, 29684, 29704, 30052, 30051, 30158, 30162, 30159, 30155, 30156, 30161, 30160, 30351, 30345, 30419, 30521, 30511, 30509, 30513, 30514, 30516, 30515, 30525, 30501, 30523, 30517, 30792, 30802, 30793, 30797, 30794, 30796, 30758, 30789, 30800, 31076, 31079, 31081, 31082, 31075, 31083, 31073, 31163, 31226, 31224, 31222, 31223, 31375, 31380, 31376, 31541, 31559, 31540, 31525, 31536, 31522, 31524, 31539, 31512, 31530, 31517, 31537, 31531, 31533, 31535, 31538, 31544, 31514, 31523, 31892, 31896, 31894, 31907, 32053, 32061, 32056, 32054, 32058, 32069, 32044, 32041, 32065, 32071, 32062, 32063, 32074, 32059, 32040, 32611, 32661, 32668, 32669, 32667, 32714, 32715, 32717, 32720, 32721, 32711, 32719, 32713, 32799, 32798, 32795, 32839, 32835, 32840, 33048, 33061, 33049, 33051, 33069, 33055, 33068, 33054, 33057, 33045, 33063, 33053, 33058, 33297, 33336, 33331, 33338, 33332, 33330, 33396, 33680, 33699, 33704, 33677, 33658, 33651, 33700, 33652, 33679, 33665, 33685, 33689, 33653, 33684, 33705, 33661, 33667, 33676, 33693, 33691, 33706, 33675, 33662, 33701, 33711, 33672, 33687, 33712, 33663, 33702, 33671, 33710, 33654, 33690, 34393, 34390, 34495, 34487, 34498, 34497, 34501, 34490, 34480, 34504, 34489, 34483, 34488, 34508, 34484, 34491, 34492, 34499, 34493, 34494, 34898, 34953, 34965, 34984, 34978, 34986, 34970, 34961, 34977, 34975, 34968, 34983, 34969, 34971, 34967, 34980, 34988, 34956, 34963, 34958, 35202, 35286, 35289, 35285, 35376, 35367, 35372, 35358, 35897, 35899, 35932, 35933, 35965, 36005, 36221, 36219, 36217, 36284, 36290, 36281, 36287, 36289, 36568, 36574, 36573, 36572, 36567, 36576, 36577, 36900, 36875, 36881, 36892, 36876, 36897, 37103, 37098, 37104, 37108, 37106, 37107, 37076, 37099, 37100, 37097, 37206, 37208, 37210, 37203, 37205, 37356, 37364, 37361, 37363, 37368, 37348, 37369, 37354, 37355, 37367, 37352, 37358, 38266, 38278, 38280, 38524, 38509, 38507, 38513, 38511, 38591, 38762, 38916, 39141, 39319, 20635, 20629, 20628, 20638, 20619, 20643, 20611, 20620, 20622, 20637, 20584, 20636, 20626, 20610, 20615, 20831, 20948, 21266, 21265, 21412, 21415, 21905, 21928, 21925, 21933, 21879, 22085, 21922, 21907, 21896, 21903, 21941, 21889, 21923, 21906, 21924, 21885, 21900, 21926, 21887, 21909, 21921, 21902, 22284, 22569, 22583, 22553, 22558, 22567, 22563, 22568, 22517, 22600, 22565, 22556, 22555, 22579, 22591, 22582, 22574, 22585, 22584, 22573, 22572, 22587, 22881, 23215, 23188, 23199, 23162, 23202, 23198, 23160, 23206, 23164, 23205, 23212, 23189, 23214, 23095, 23172, 23178, 23191, 23171, 23179, 23209, 23163, 23165, 23180, 23196, 23183, 23187, 23197, 23530, 23501, 23499, 23508, 23505, 23498, 23502, 23564, 23600, 23863, 23875, 23915, 23873, 23883, 23871, 23861, 23889, 23886, 23893, 23859, 23866, 23890, 23869, 23857, 23897, 23874, 23865, 23881, 23864, 23868, 23858, 23862, 23872, 23877, 24132, 24129, 24408, 24486, 24485, 24491, 24777, 24761, 24780, 24802, 24782, 24772, 24852, 24818, 24842, 24854, 24837, 24821, 24851, 24824, 24828, 24830, 24769, 24835, 24856, 24861, 24848, 24831, 24836, 24843, 25162, 25492, 25521, 25520, 25550, 25573, 25576, 25583, 25539, 25757, 25587, 25546, 25568, 25590, 25557, 25586, 25589, 25697, 25567, 25534, 25565, 25564, 25540, 25560, 25555, 25538, 25543, 25548, 25547, 25544, 25584, 25559, 25561, 25906, 25959, 25962, 25956, 25948, 25960, 25957, 25996, 26013, 26014, 26030, 26064, 26066, 26236, 26220, 26235, 26240, 26225, 26233, 26218, 26226, 26369, 26892, 26835, 26884, 26844, 26922, 26860, 26858, 26865, 26895, 26838, 26871, 26859, 26852, 26870, 26899, 26896, 26867, 26849, 26887, 26828, 26888, 26992, 26804, 26897, 26863, 26822, 26900, 26872, 26832, 26877, 26876, 26856, 26891, 26890, 26903, 26830, 26824, 26845, 26846, 26854, 26868, 26833, 26886, 26836, 26857, 26901, 26917, 26823, 27449, 27451, 27455, 27452, 27540, 27543, 27545, 27541, 27581, 27632, 27634, 27635, 27696, 28156, 28230, 28231, 28191, 28233, 28296, 28220, 28221, 28229, 28258, 28203, 28223, 28225, 28253, 28275, 28188, 28211, 28235, 28224, 28241, 28219, 28163, 28206, 28254, 28264, 28252, 28257, 28209, 28200, 28256, 28273, 28267, 28217, 28194, 28208, 28243, 28261, 28199, 28280, 28260, 28279, 28245, 28281, 28242, 28262, 28213, 28214, 28250, 28960, 28958, 28975, 28923, 28974, 28977, 28963, 28965, 28962, 28978, 28959, 28968, 28986, 28955, 29259, 29274, 29320, 29321, 29318, 29317, 29323, 29458, 29451, 29488, 29474, 29489, 29491, 29479, 29490, 29485, 29478, 29475, 29493, 29452, 29742, 29740, 29744, 29739, 29718, 29722, 29729, 29741, 29745, 29732, 29731, 29725, 29737, 29728, 29746, 29947, 29999, 30063, 30060, 30183, 30170, 30177, 30182, 30173, 30175, 30180, 30167, 30357, 30354, 30426, 30534, 30535, 30532, 30541, 30533, 30538, 30542, 30539, 30540, 30686, 30700, 30816, 30820, 30821, 30812, 30829, 30833, 30826, 30830, 30832, 30825, 30824, 30814, 30818, 31092, 31091, 31090, 31088, 31234, 31242, 31235, 31244, 31236, 31385, 31462, 31460, 31562, 31547, 31556, 31560, 31564, 31566, 31552, 31576, 31557, 31906, 31902, 31912, 31905, 32088, 32111, 32099, 32083, 32086, 32103, 32106, 32079, 32109, 32092, 32107, 32082, 32084, 32105, 32081, 32095, 32078, 32574, 32575, 32613, 32614, 32674, 32672, 32673, 32727, 32849, 32847, 32848, 33022, 32980, 33091, 33098, 33106, 33103, 33095, 33085, 33101, 33082, 33254, 33262, 33271, 33272, 33273, 33284, 33340, 33341, 33343, 33397, 33595, 33743, 33785, 33827, 33728, 33768, 33810, 33767, 33764, 33788, 33782, 33808, 33734, 33736, 33771, 33763, 33727, 33793, 33757, 33765, 33752, 33791, 33761, 33739, 33742, 33750, 33781, 33737, 33801, 33807, 33758, 33809, 33798, 33730, 33779, 33749, 33786, 33735, 33745, 33770, 33811, 33731, 33772, 33774, 33732, 33787, 33751, 33762, 33819, 33755, 33790, 34520, 34530, 34534, 34515, 34531, 34522, 34538, 34525, 34539, 34524, 34540, 34537, 34519, 34536, 34513, 34888, 34902, 34901, 35002, 35031, 35001, 35e3, 35008, 35006, 34998, 35004, 34999, 35005, 34994, 35073, 35017, 35221, 35224, 35223, 35293, 35290, 35291, 35406, 35405, 35385, 35417, 35392, 35415, 35416, 35396, 35397, 35410, 35400, 35409, 35402, 35404, 35407, 35935, 35969, 35968, 36026, 36030, 36016, 36025, 36021, 36228, 36224, 36233, 36312, 36307, 36301, 36295, 36310, 36316, 36303, 36309, 36313, 36296, 36311, 36293, 36591, 36599, 36602, 36601, 36582, 36590, 36581, 36597, 36583, 36584, 36598, 36587, 36593, 36588, 36596, 36585, 36909, 36916, 36911, 37126, 37164, 37124, 37119, 37116, 37128, 37113, 37115, 37121, 37120, 37127, 37125, 37123, 37217, 37220, 37215, 37218, 37216, 37377, 37386, 37413, 37379, 37402, 37414, 37391, 37388, 37376, 37394, 37375, 37373, 37382, 37380, 37415, 37378, 37404, 37412, 37401, 37399, 37381, 37398, 38267, 38285, 38284, 38288, 38535, 38526, 38536, 38537, 38531, 38528, 38594, 38600, 38595, 38641, 38640, 38764, 38768, 38766, 38919, 39081, 39147, 40166, 40697, 20099, 20100, 20150, 20669, 20671, 20678, 20654, 20676, 20682, 20660, 20680, 20674, 20656, 20673, 20666, 20657, 20683, 20681, 20662, 20664, 20951, 21114, 21112, 21115, 21116, 21955, 21979, 21964, 21968, 21963, 21962, 21981, 21952, 21972, 21956, 21993, 21951, 21970, 21901, 21967, 21973, 21986, 21974, 21960, 22002, 21965, 21977, 21954, 22292, 22611, 22632, 22628, 22607, 22605, 22601, 22639, 22613, 22606, 22621, 22617, 22629, 22619, 22589, 22627, 22641, 22780, 23239, 23236, 23243, 23226, 23224, 23217, 23221, 23216, 23231, 23240, 23227, 23238, 23223, 23232, 23242, 23220, 23222, 23245, 23225, 23184, 23510, 23512, 23513, 23583, 23603, 23921, 23907, 23882, 23909, 23922, 23916, 23902, 23912, 23911, 23906, 24048, 24143, 24142, 24138, 24141, 24139, 24261, 24268, 24262, 24267, 24263, 24384, 24495, 24493, 24823, 24905, 24906, 24875, 24901, 24886, 24882, 24878, 24902, 24879, 24911, 24873, 24896, 25120, 37224, 25123, 25125, 25124, 25541, 25585, 25579, 25616, 25618, 25609, 25632, 25636, 25651, 25667, 25631, 25621, 25624, 25657, 25655, 25634, 25635, 25612, 25638, 25648, 25640, 25665, 25653, 25647, 25610, 25626, 25664, 25637, 25639, 25611, 25575, 25627, 25646, 25633, 25614, 25967, 26002, 26067, 26246, 26252, 26261, 26256, 26251, 26250, 26265, 26260, 26232, 26400, 26982, 26975, 26936, 26958, 26978, 26993, 26943, 26949, 26986, 26937, 26946, 26967, 26969, 27002, 26952, 26953, 26933, 26988, 26931, 26941, 26981, 26864, 27e3, 26932, 26985, 26944, 26991, 26948, 26998, 26968, 26945, 26996, 26956, 26939, 26955, 26935, 26972, 26959, 26961, 26930, 26962, 26927, 27003, 26940, 27462, 27461, 27459, 27458, 27464, 27457, 27547, 64013, 27643, 27644, 27641, 27639, 27640, 28315, 28374, 28360, 28303, 28352, 28319, 28307, 28308, 28320, 28337, 28345, 28358, 28370, 28349, 28353, 28318, 28361, 28343, 28336, 28365, 28326, 28367, 28338, 28350, 28355, 28380, 28376, 28313, 28306, 28302, 28301, 28324, 28321, 28351, 28339, 28368, 28362, 28311, 28334, 28323, 28999, 29012, 29010, 29027, 29024, 28993, 29021, 29026, 29042, 29048, 29034, 29025, 28994, 29016, 28995, 29003, 29040, 29023, 29008, 29011, 28996, 29005, 29018, 29263, 29325, 29324, 29329, 29328, 29326, 29500, 29506, 29499, 29498, 29504, 29514, 29513, 29764, 29770, 29771, 29778, 29777, 29783, 29760, 29775, 29776, 29774, 29762, 29766, 29773, 29780, 29921, 29951, 29950, 29949, 29981, 30073, 30071, 27011, 30191, 30223, 30211, 30199, 30206, 30204, 30201, 30200, 30224, 30203, 30198, 30189, 30197, 30205, 30361, 30389, 30429, 30549, 30559, 30560, 30546, 30550, 30554, 30569, 30567, 30548, 30553, 30573, 30688, 30855, 30874, 30868, 30863, 30852, 30869, 30853, 30854, 30881, 30851, 30841, 30873, 30848, 30870, 30843, 31100, 31106, 31101, 31097, 31249, 31256, 31257, 31250, 31255, 31253, 31266, 31251, 31259, 31248, 31395, 31394, 31390, 31467, 31590, 31588, 31597, 31604, 31593, 31602, 31589, 31603, 31601, 31600, 31585, 31608, 31606, 31587, 31922, 31924, 31919, 32136, 32134, 32128, 32141, 32127, 32133, 32122, 32142, 32123, 32131, 32124, 32140, 32148, 32132, 32125, 32146, 32621, 32619, 32615, 32616, 32620, 32678, 32677, 32679, 32731, 32732, 32801, 33124, 33120, 33143, 33116, 33129, 33115, 33122, 33138, 26401, 33118, 33142, 33127, 33135, 33092, 33121, 33309, 33353, 33348, 33344, 33346, 33349, 34033, 33855, 33878, 33910, 33913, 33935, 33933, 33893, 33873, 33856, 33926, 33895, 33840, 33869, 33917, 33882, 33881, 33908, 33907, 33885, 34055, 33886, 33847, 33850, 33844, 33914, 33859, 33912, 33842, 33861, 33833, 33753, 33867, 33839, 33858, 33837, 33887, 33904, 33849, 33870, 33868, 33874, 33903, 33989, 33934, 33851, 33863, 33846, 33843, 33896, 33918, 33860, 33835, 33888, 33876, 33902, 33872, 34571, 34564, 34551, 34572, 34554, 34518, 34549, 34637, 34552, 34574, 34569, 34561, 34550, 34573, 34565, 35030, 35019, 35021, 35022, 35038, 35035, 35034, 35020, 35024, 35205, 35227, 35295, 35301, 35300, 35297, 35296, 35298, 35292, 35302, 35446, 35462, 35455, 35425, 35391, 35447, 35458, 35460, 35445, 35459, 35457, 35444, 35450, 35900, 35915, 35914, 35941, 35940, 35942, 35974, 35972, 35973, 36044, 36200, 36201, 36241, 36236, 36238, 36239, 36237, 36243, 36244, 36240, 36242, 36336, 36320, 36332, 36337, 36334, 36304, 36329, 36323, 36322, 36327, 36338, 36331, 36340, 36614, 36607, 36609, 36608, 36613, 36615, 36616, 36610, 36619, 36946, 36927, 36932, 36937, 36925, 37136, 37133, 37135, 37137, 37142, 37140, 37131, 37134, 37230, 37231, 37448, 37458, 37424, 37434, 37478, 37427, 37477, 37470, 37507, 37422, 37450, 37446, 37485, 37484, 37455, 37472, 37479, 37487, 37430, 37473, 37488, 37425, 37460, 37475, 37456, 37490, 37454, 37459, 37452, 37462, 37426, 38303, 38300, 38302, 38299, 38546, 38547, 38545, 38551, 38606, 38650, 38653, 38648, 38645, 38771, 38775, 38776, 38770, 38927, 38925, 38926, 39084, 39158, 39161, 39343, 39346, 39344, 39349, 39597, 39595, 39771, 40170, 40173, 40167, 40576, 40701, 20710, 20692, 20695, 20712, 20723, 20699, 20714, 20701, 20708, 20691, 20716, 20720, 20719, 20707, 20704, 20952, 21120, 21121, 21225, 21227, 21296, 21420, 22055, 22037, 22028, 22034, 22012, 22031, 22044, 22017, 22035, 22018, 22010, 22045, 22020, 22015, 22009, 22665, 22652, 22672, 22680, 22662, 22657, 22655, 22644, 22667, 22650, 22663, 22673, 22670, 22646, 22658, 22664, 22651, 22676, 22671, 22782, 22891, 23260, 23278, 23269, 23253, 23274, 23258, 23277, 23275, 23283, 23266, 23264, 23259, 23276, 23262, 23261, 23257, 23272, 23263, 23415, 23520, 23523, 23651, 23938, 23936, 23933, 23942, 23930, 23937, 23927, 23946, 23945, 23944, 23934, 23932, 23949, 23929, 23935, 24152, 24153, 24147, 24280, 24273, 24279, 24270, 24284, 24277, 24281, 24274, 24276, 24388, 24387, 24431, 24502, 24876, 24872, 24897, 24926, 24945, 24947, 24914, 24915, 24946, 24940, 24960, 24948, 24916, 24954, 24923, 24933, 24891, 24938, 24929, 24918, 25129, 25127, 25131, 25643, 25677, 25691, 25693, 25716, 25718, 25714, 25715, 25725, 25717, 25702, 25766, 25678, 25730, 25694, 25692, 25675, 25683, 25696, 25680, 25727, 25663, 25708, 25707, 25689, 25701, 25719, 25971, 26016, 26273, 26272, 26271, 26373, 26372, 26402, 27057, 27062, 27081, 27040, 27086, 27030, 27056, 27052, 27068, 27025, 27033, 27022, 27047, 27021, 27049, 27070, 27055, 27071, 27076, 27069, 27044, 27092, 27065, 27082, 27034, 27087, 27059, 27027, 27050, 27041, 27038, 27097, 27031, 27024, 27074, 27061, 27045, 27078, 27466, 27469, 27467, 27550, 27551, 27552, 27587, 27588, 27646, 28366, 28405, 28401, 28419, 28453, 28408, 28471, 28411, 28462, 28425, 28494, 28441, 28442, 28455, 28440, 28475, 28434, 28397, 28426, 28470, 28531, 28409, 28398, 28461, 28480, 28464, 28476, 28469, 28395, 28423, 28430, 28483, 28421, 28413, 28406, 28473, 28444, 28412, 28474, 28447, 28429, 28446, 28424, 28449, 29063, 29072, 29065, 29056, 29061, 29058, 29071, 29051, 29062, 29057, 29079, 29252, 29267, 29335, 29333, 29331, 29507, 29517, 29521, 29516, 29794, 29811, 29809, 29813, 29810, 29799, 29806, 29952, 29954, 29955, 30077, 30096, 30230, 30216, 30220, 30229, 30225, 30218, 30228, 30392, 30593, 30588, 30597, 30594, 30574, 30592, 30575, 30590, 30595, 30898, 30890, 30900, 30893, 30888, 30846, 30891, 30878, 30885, 30880, 30892, 30882, 30884, 31128, 31114, 31115, 31126, 31125, 31124, 31123, 31127, 31112, 31122, 31120, 31275, 31306, 31280, 31279, 31272, 31270, 31400, 31403, 31404, 31470, 31624, 31644, 31626, 31633, 31632, 31638, 31629, 31628, 31643, 31630, 31621, 31640, 21124, 31641, 31652, 31618, 31931, 31935, 31932, 31930, 32167, 32183, 32194, 32163, 32170, 32193, 32192, 32197, 32157, 32206, 32196, 32198, 32203, 32204, 32175, 32185, 32150, 32188, 32159, 32166, 32174, 32169, 32161, 32201, 32627, 32738, 32739, 32741, 32734, 32804, 32861, 32860, 33161, 33158, 33155, 33159, 33165, 33164, 33163, 33301, 33943, 33956, 33953, 33951, 33978, 33998, 33986, 33964, 33966, 33963, 33977, 33972, 33985, 33997, 33962, 33946, 33969, 34e3, 33949, 33959, 33979, 33954, 33940, 33991, 33996, 33947, 33961, 33967, 33960, 34006, 33944, 33974, 33999, 33952, 34007, 34004, 34002, 34011, 33968, 33937, 34401, 34611, 34595, 34600, 34667, 34624, 34606, 34590, 34593, 34585, 34587, 34627, 34604, 34625, 34622, 34630, 34592, 34610, 34602, 34605, 34620, 34578, 34618, 34609, 34613, 34626, 34598, 34599, 34616, 34596, 34586, 34608, 34577, 35063, 35047, 35057, 35058, 35066, 35070, 35054, 35068, 35062, 35067, 35056, 35052, 35051, 35229, 35233, 35231, 35230, 35305, 35307, 35304, 35499, 35481, 35467, 35474, 35471, 35478, 35901, 35944, 35945, 36053, 36047, 36055, 36246, 36361, 36354, 36351, 36365, 36349, 36362, 36355, 36359, 36358, 36357, 36350, 36352, 36356, 36624, 36625, 36622, 36621, 37155, 37148, 37152, 37154, 37151, 37149, 37146, 37156, 37153, 37147, 37242, 37234, 37241, 37235, 37541, 37540, 37494, 37531, 37498, 37536, 37524, 37546, 37517, 37542, 37530, 37547, 37497, 37527, 37503, 37539, 37614, 37518, 37506, 37525, 37538, 37501, 37512, 37537, 37514, 37510, 37516, 37529, 37543, 37502, 37511, 37545, 37533, 37515, 37421, 38558, 38561, 38655, 38744, 38781, 38778, 38782, 38787, 38784, 38786, 38779, 38788, 38785, 38783, 38862, 38861, 38934, 39085, 39086, 39170, 39168, 39175, 39325, 39324, 39363, 39353, 39355, 39354, 39362, 39357, 39367, 39601, 39651, 39655, 39742, 39743, 39776, 39777, 39775, 40177, 40178, 40181, 40615, 20735, 20739, 20784, 20728, 20742, 20743, 20726, 20734, 20747, 20748, 20733, 20746, 21131, 21132, 21233, 21231, 22088, 22082, 22092, 22069, 22081, 22090, 22089, 22086, 22104, 22106, 22080, 22067, 22077, 22060, 22078, 22072, 22058, 22074, 22298, 22699, 22685, 22705, 22688, 22691, 22703, 22700, 22693, 22689, 22783, 23295, 23284, 23293, 23287, 23286, 23299, 23288, 23298, 23289, 23297, 23303, 23301, 23311, 23655, 23961, 23959, 23967, 23954, 23970, 23955, 23957, 23968, 23964, 23969, 23962, 23966, 24169, 24157, 24160, 24156, 32243, 24283, 24286, 24289, 24393, 24498, 24971, 24963, 24953, 25009, 25008, 24994, 24969, 24987, 24979, 25007, 25005, 24991, 24978, 25002, 24993, 24973, 24934, 25011, 25133, 25710, 25712, 25750, 25760, 25733, 25751, 25756, 25743, 25739, 25738, 25740, 25763, 25759, 25704, 25777, 25752, 25974, 25978, 25977, 25979, 26034, 26035, 26293, 26288, 26281, 26290, 26295, 26282, 26287, 27136, 27142, 27159, 27109, 27128, 27157, 27121, 27108, 27168, 27135, 27116, 27106, 27163, 27165, 27134, 27175, 27122, 27118, 27156, 27127, 27111, 27200, 27144, 27110, 27131, 27149, 27132, 27115, 27145, 27140, 27160, 27173, 27151, 27126, 27174, 27143, 27124, 27158, 27473, 27557, 27555, 27554, 27558, 27649, 27648, 27647, 27650, 28481, 28454, 28542, 28551, 28614, 28562, 28557, 28553, 28556, 28514, 28495, 28549, 28506, 28566, 28534, 28524, 28546, 28501, 28530, 28498, 28496, 28503, 28564, 28563, 28509, 28416, 28513, 28523, 28541, 28519, 28560, 28499, 28555, 28521, 28543, 28565, 28515, 28535, 28522, 28539, 29106, 29103, 29083, 29104, 29088, 29082, 29097, 29109, 29085, 29093, 29086, 29092, 29089, 29098, 29084, 29095, 29107, 29336, 29338, 29528, 29522, 29534, 29535, 29536, 29533, 29531, 29537, 29530, 29529, 29538, 29831, 29833, 29834, 29830, 29825, 29821, 29829, 29832, 29820, 29817, 29960, 29959, 30078, 30245, 30238, 30233, 30237, 30236, 30243, 30234, 30248, 30235, 30364, 30365, 30366, 30363, 30605, 30607, 30601, 30600, 30925, 30907, 30927, 30924, 30929, 30926, 30932, 30920, 30915, 30916, 30921, 31130, 31137, 31136, 31132, 31138, 31131, 27510, 31289, 31410, 31412, 31411, 31671, 31691, 31678, 31660, 31694, 31663, 31673, 31690, 31669, 31941, 31944, 31948, 31947, 32247, 32219, 32234, 32231, 32215, 32225, 32259, 32250, 32230, 32246, 32241, 32240, 32238, 32223, 32630, 32684, 32688, 32685, 32749, 32747, 32746, 32748, 32742, 32744, 32868, 32871, 33187, 33183, 33182, 33173, 33186, 33177, 33175, 33302, 33359, 33363, 33362, 33360, 33358, 33361, 34084, 34107, 34063, 34048, 34089, 34062, 34057, 34061, 34079, 34058, 34087, 34076, 34043, 34091, 34042, 34056, 34060, 34036, 34090, 34034, 34069, 34039, 34027, 34035, 34044, 34066, 34026, 34025, 34070, 34046, 34088, 34077, 34094, 34050, 34045, 34078, 34038, 34097, 34086, 34023, 34024, 34032, 34031, 34041, 34072, 34080, 34096, 34059, 34073, 34095, 34402, 34646, 34659, 34660, 34679, 34785, 34675, 34648, 34644, 34651, 34642, 34657, 34650, 34641, 34654, 34669, 34666, 34640, 34638, 34655, 34653, 34671, 34668, 34682, 34670, 34652, 34661, 34639, 34683, 34677, 34658, 34663, 34665, 34906, 35077, 35084, 35092, 35083, 35095, 35096, 35097, 35078, 35094, 35089, 35086, 35081, 35234, 35236, 35235, 35309, 35312, 35308, 35535, 35526, 35512, 35539, 35537, 35540, 35541, 35515, 35543, 35518, 35520, 35525, 35544, 35523, 35514, 35517, 35545, 35902, 35917, 35983, 36069, 36063, 36057, 36072, 36058, 36061, 36071, 36256, 36252, 36257, 36251, 36384, 36387, 36389, 36388, 36398, 36373, 36379, 36374, 36369, 36377, 36390, 36391, 36372, 36370, 36376, 36371, 36380, 36375, 36378, 36652, 36644, 36632, 36634, 36640, 36643, 36630, 36631, 36979, 36976, 36975, 36967, 36971, 37167, 37163, 37161, 37162, 37170, 37158, 37166, 37253, 37254, 37258, 37249, 37250, 37252, 37248, 37584, 37571, 37572, 37568, 37593, 37558, 37583, 37617, 37599, 37592, 37609, 37591, 37597, 37580, 37615, 37570, 37608, 37578, 37576, 37582, 37606, 37581, 37589, 37577, 37600, 37598, 37607, 37585, 37587, 37557, 37601, 37574, 37556, 38268, 38316, 38315, 38318, 38320, 38564, 38562, 38611, 38661, 38664, 38658, 38746, 38794, 38798, 38792, 38864, 38863, 38942, 38941, 38950, 38953, 38952, 38944, 38939, 38951, 39090, 39176, 39162, 39185, 39188, 39190, 39191, 39189, 39388, 39373, 39375, 39379, 39380, 39374, 39369, 39382, 39384, 39371, 39383, 39372, 39603, 39660, 39659, 39667, 39666, 39665, 39750, 39747, 39783, 39796, 39793, 39782, 39798, 39797, 39792, 39784, 39780, 39788, 40188, 40186, 40189, 40191, 40183, 40199, 40192, 40185, 40187, 40200, 40197, 40196, 40579, 40659, 40719, 40720, 20764, 20755, 20759, 20762, 20753, 20958, 21300, 21473, 22128, 22112, 22126, 22131, 22118, 22115, 22125, 22130, 22110, 22135, 22300, 22299, 22728, 22717, 22729, 22719, 22714, 22722, 22716, 22726, 23319, 23321, 23323, 23329, 23316, 23315, 23312, 23318, 23336, 23322, 23328, 23326, 23535, 23980, 23985, 23977, 23975, 23989, 23984, 23982, 23978, 23976, 23986, 23981, 23983, 23988, 24167, 24168, 24166, 24175, 24297, 24295, 24294, 24296, 24293, 24395, 24508, 24989, 25e3, 24982, 25029, 25012, 25030, 25025, 25036, 25018, 25023, 25016, 24972, 25815, 25814, 25808, 25807, 25801, 25789, 25737, 25795, 25819, 25843, 25817, 25907, 25983, 25980, 26018, 26312, 26302, 26304, 26314, 26315, 26319, 26301, 26299, 26298, 26316, 26403, 27188, 27238, 27209, 27239, 27186, 27240, 27198, 27229, 27245, 27254, 27227, 27217, 27176, 27226, 27195, 27199, 27201, 27242, 27236, 27216, 27215, 27220, 27247, 27241, 27232, 27196, 27230, 27222, 27221, 27213, 27214, 27206, 27477, 27476, 27478, 27559, 27562, 27563, 27592, 27591, 27652, 27651, 27654, 28589, 28619, 28579, 28615, 28604, 28622, 28616, 28510, 28612, 28605, 28574, 28618, 28584, 28676, 28581, 28590, 28602, 28588, 28586, 28623, 28607, 28600, 28578, 28617, 28587, 28621, 28591, 28594, 28592, 29125, 29122, 29119, 29112, 29142, 29120, 29121, 29131, 29140, 29130, 29127, 29135, 29117, 29144, 29116, 29126, 29146, 29147, 29341, 29342, 29545, 29542, 29543, 29548, 29541, 29547, 29546, 29823, 29850, 29856, 29844, 29842, 29845, 29857, 29963, 30080, 30255, 30253, 30257, 30269, 30259, 30268, 30261, 30258, 30256, 30395, 30438, 30618, 30621, 30625, 30620, 30619, 30626, 30627, 30613, 30617, 30615, 30941, 30953, 30949, 30954, 30942, 30947, 30939, 30945, 30946, 30957, 30943, 30944, 31140, 31300, 31304, 31303, 31414, 31416, 31413, 31409, 31415, 31710, 31715, 31719, 31709, 31701, 31717, 31706, 31720, 31737, 31700, 31722, 31714, 31708, 31723, 31704, 31711, 31954, 31956, 31959, 31952, 31953, 32274, 32289, 32279, 32268, 32287, 32288, 32275, 32270, 32284, 32277, 32282, 32290, 32267, 32271, 32278, 32269, 32276, 32293, 32292, 32579, 32635, 32636, 32634, 32689, 32751, 32810, 32809, 32876, 33201, 33190, 33198, 33209, 33205, 33195, 33200, 33196, 33204, 33202, 33207, 33191, 33266, 33365, 33366, 33367, 34134, 34117, 34155, 34125, 34131, 34145, 34136, 34112, 34118, 34148, 34113, 34146, 34116, 34129, 34119, 34147, 34110, 34139, 34161, 34126, 34158, 34165, 34133, 34151, 34144, 34188, 34150, 34141, 34132, 34149, 34156, 34403, 34405, 34404, 34715, 34703, 34711, 34707, 34706, 34696, 34689, 34710, 34712, 34681, 34695, 34723, 34693, 34704, 34705, 34717, 34692, 34708, 34716, 34714, 34697, 35102, 35110, 35120, 35117, 35118, 35111, 35121, 35106, 35113, 35107, 35119, 35116, 35103, 35313, 35552, 35554, 35570, 35572, 35573, 35549, 35604, 35556, 35551, 35568, 35528, 35550, 35553, 35560, 35583, 35567, 35579, 35985, 35986, 35984, 36085, 36078, 36081, 36080, 36083, 36204, 36206, 36261, 36263, 36403, 36414, 36408, 36416, 36421, 36406, 36412, 36413, 36417, 36400, 36415, 36541, 36662, 36654, 36661, 36658, 36665, 36663, 36660, 36982, 36985, 36987, 36998, 37114, 37171, 37173, 37174, 37267, 37264, 37265, 37261, 37263, 37671, 37662, 37640, 37663, 37638, 37647, 37754, 37688, 37692, 37659, 37667, 37650, 37633, 37702, 37677, 37646, 37645, 37579, 37661, 37626, 37669, 37651, 37625, 37623, 37684, 37634, 37668, 37631, 37673, 37689, 37685, 37674, 37652, 37644, 37643, 37630, 37641, 37632, 37627, 37654, 38332, 38349, 38334, 38329, 38330, 38326, 38335, 38325, 38333, 38569, 38612, 38667, 38674, 38672, 38809, 38807, 38804, 38896, 38904, 38965, 38959, 38962, 39204, 39199, 39207, 39209, 39326, 39406, 39404, 39397, 39396, 39408, 39395, 39402, 39401, 39399, 39609, 39615, 39604, 39611, 39670, 39674, 39673, 39671, 39731, 39808, 39813, 39815, 39804, 39806, 39803, 39810, 39827, 39826, 39824, 39802, 39829, 39805, 39816, 40229, 40215, 40224, 40222, 40212, 40233, 40221, 40216, 40226, 40208, 40217, 40223, 40584, 40582, 40583, 40622, 40621, 40661, 40662, 40698, 40722, 40765, 20774, 20773, 20770, 20772, 20768, 20777, 21236, 22163, 22156, 22157, 22150, 22148, 22147, 22142, 22146, 22143, 22145, 22742, 22740, 22735, 22738, 23341, 23333, 23346, 23331, 23340, 23335, 23334, 23343, 23342, 23419, 23537, 23538, 23991, 24172, 24170, 24510, 24507, 25027, 25013, 25020, 25063, 25056, 25061, 25060, 25064, 25054, 25839, 25833, 25827, 25835, 25828, 25832, 25985, 25984, 26038, 26074, 26322, 27277, 27286, 27265, 27301, 27273, 27295, 27291, 27297, 27294, 27271, 27283, 27278, 27285, 27267, 27304, 27300, 27281, 27263, 27302, 27290, 27269, 27276, 27282, 27483, 27565, 27657, 28620, 28585, 28660, 28628, 28643, 28636, 28653, 28647, 28646, 28638, 28658, 28637, 28642, 28648, 29153, 29169, 29160, 29170, 29156, 29168, 29154, 29555, 29550, 29551, 29847, 29874, 29867, 29840, 29866, 29869, 29873, 29861, 29871, 29968, 29969, 29970, 29967, 30084, 30275, 30280, 30281, 30279, 30372, 30441, 30645, 30635, 30642, 30647, 30646, 30644, 30641, 30632, 30704, 30963, 30973, 30978, 30971, 30972, 30962, 30981, 30969, 30974, 30980, 31147, 31144, 31324, 31323, 31318, 31320, 31316, 31322, 31422, 31424, 31425, 31749, 31759, 31730, 31744, 31743, 31739, 31758, 31732, 31755, 31731, 31746, 31753, 31747, 31745, 31736, 31741, 31750, 31728, 31729, 31760, 31754, 31976, 32301, 32316, 32322, 32307, 38984, 32312, 32298, 32329, 32320, 32327, 32297, 32332, 32304, 32315, 32310, 32324, 32314, 32581, 32639, 32638, 32637, 32756, 32754, 32812, 33211, 33220, 33228, 33226, 33221, 33223, 33212, 33257, 33371, 33370, 33372, 34179, 34176, 34191, 34215, 34197, 34208, 34187, 34211, 34171, 34212, 34202, 34206, 34167, 34172, 34185, 34209, 34170, 34168, 34135, 34190, 34198, 34182, 34189, 34201, 34205, 34177, 34210, 34178, 34184, 34181, 34169, 34166, 34200, 34192, 34207, 34408, 34750, 34730, 34733, 34757, 34736, 34732, 34745, 34741, 34748, 34734, 34761, 34755, 34754, 34764, 34743, 34735, 34756, 34762, 34740, 34742, 34751, 34744, 34749, 34782, 34738, 35125, 35123, 35132, 35134, 35137, 35154, 35127, 35138, 35245, 35247, 35246, 35314, 35315, 35614, 35608, 35606, 35601, 35589, 35595, 35618, 35599, 35602, 35605, 35591, 35597, 35592, 35590, 35612, 35603, 35610, 35919, 35952, 35954, 35953, 35951, 35989, 35988, 36089, 36207, 36430, 36429, 36435, 36432, 36428, 36423, 36675, 36672, 36997, 36990, 37176, 37274, 37282, 37275, 37273, 37279, 37281, 37277, 37280, 37793, 37763, 37807, 37732, 37718, 37703, 37756, 37720, 37724, 37750, 37705, 37712, 37713, 37728, 37741, 37775, 37708, 37738, 37753, 37719, 37717, 37714, 37711, 37745, 37751, 37755, 37729, 37726, 37731, 37735, 37760, 37710, 37721, 38343, 38336, 38345, 38339, 38341, 38327, 38574, 38576, 38572, 38688, 38687, 38680, 38685, 38681, 38810, 38817, 38812, 38814, 38813, 38869, 38868, 38897, 38977, 38980, 38986, 38985, 38981, 38979, 39205, 39211, 39212, 39210, 39219, 39218, 39215, 39213, 39217, 39216, 39320, 39331, 39329, 39426, 39418, 39412, 39415, 39417, 39416, 39414, 39419, 39421, 39422, 39420, 39427, 39614, 39678, 39677, 39681, 39676, 39752, 39834, 39848, 39838, 39835, 39846, 39841, 39845, 39844, 39814, 39842, 39840, 39855, 40243, 40257, 40295, 40246, 40238, 40239, 40241, 40248, 40240, 40261, 40258, 40259, 40254, 40247, 40256, 40253, 32757, 40237, 40586, 40585, 40589, 40624, 40648, 40666, 40699, 40703, 40740, 40739, 40738, 40788, 40864, 20785, 20781, 20782, 22168, 22172, 22167, 22170, 22173, 22169, 22896, 23356, 23657, 23658, 24e3, 24173, 24174, 25048, 25055, 25069, 25070, 25073, 25066, 25072, 25067, 25046, 25065, 25855, 25860, 25853, 25848, 25857, 25859, 25852, 26004, 26075, 26330, 26331, 26328, 27333, 27321, 27325, 27361, 27334, 27322, 27318, 27319, 27335, 27316, 27309, 27486, 27593, 27659, 28679, 28684, 28685, 28673, 28677, 28692, 28686, 28671, 28672, 28667, 28710, 28668, 28663, 28682, 29185, 29183, 29177, 29187, 29181, 29558, 29880, 29888, 29877, 29889, 29886, 29878, 29883, 29890, 29972, 29971, 30300, 30308, 30297, 30288, 30291, 30295, 30298, 30374, 30397, 30444, 30658, 30650, 30975, 30988, 30995, 30996, 30985, 30992, 30994, 30993, 31149, 31148, 31327, 31772, 31785, 31769, 31776, 31775, 31789, 31773, 31782, 31784, 31778, 31781, 31792, 32348, 32336, 32342, 32355, 32344, 32354, 32351, 32337, 32352, 32343, 32339, 32693, 32691, 32759, 32760, 32885, 33233, 33234, 33232, 33375, 33374, 34228, 34246, 34240, 34243, 34242, 34227, 34229, 34237, 34247, 34244, 34239, 34251, 34254, 34248, 34245, 34225, 34230, 34258, 34340, 34232, 34231, 34238, 34409, 34791, 34790, 34786, 34779, 34795, 34794, 34789, 34783, 34803, 34788, 34772, 34780, 34771, 34797, 34776, 34787, 34724, 34775, 34777, 34817, 34804, 34792, 34781, 35155, 35147, 35151, 35148, 35142, 35152, 35153, 35145, 35626, 35623, 35619, 35635, 35632, 35637, 35655, 35631, 35644, 35646, 35633, 35621, 35639, 35622, 35638, 35630, 35620, 35643, 35645, 35642, 35906, 35957, 35993, 35992, 35991, 36094, 36100, 36098, 36096, 36444, 36450, 36448, 36439, 36438, 36446, 36453, 36455, 36443, 36442, 36449, 36445, 36457, 36436, 36678, 36679, 36680, 36683, 37160, 37178, 37179, 37182, 37288, 37285, 37287, 37295, 37290, 37813, 37772, 37778, 37815, 37787, 37789, 37769, 37799, 37774, 37802, 37790, 37798, 37781, 37768, 37785, 37791, 37773, 37809, 37777, 37810, 37796, 37800, 37812, 37795, 37797, 38354, 38355, 38353, 38579, 38615, 38618, 24002, 38623, 38616, 38621, 38691, 38690, 38693, 38828, 38830, 38824, 38827, 38820, 38826, 38818, 38821, 38871, 38873, 38870, 38872, 38906, 38992, 38993, 38994, 39096, 39233, 39228, 39226, 39439, 39435, 39433, 39437, 39428, 39441, 39434, 39429, 39431, 39430, 39616, 39644, 39688, 39684, 39685, 39721, 39733, 39754, 39756, 39755, 39879, 39878, 39875, 39871, 39873, 39861, 39864, 39891, 39862, 39876, 39865, 39869, 40284, 40275, 40271, 40266, 40283, 40267, 40281, 40278, 40268, 40279, 40274, 40276, 40287, 40280, 40282, 40590, 40588, 40671, 40705, 40704, 40726, 40741, 40747, 40746, 40745, 40744, 40780, 40789, 20788, 20789, 21142, 21239, 21428, 22187, 22189, 22182, 22183, 22186, 22188, 22746, 22749, 22747, 22802, 23357, 23358, 23359, 24003, 24176, 24511, 25083, 25863, 25872, 25869, 25865, 25868, 25870, 25988, 26078, 26077, 26334, 27367, 27360, 27340, 27345, 27353, 27339, 27359, 27356, 27344, 27371, 27343, 27341, 27358, 27488, 27568, 27660, 28697, 28711, 28704, 28694, 28715, 28705, 28706, 28707, 28713, 28695, 28708, 28700, 28714, 29196, 29194, 29191, 29186, 29189, 29349, 29350, 29348, 29347, 29345, 29899, 29893, 29879, 29891, 29974, 30304, 30665, 30666, 30660, 30705, 31005, 31003, 31009, 31004, 30999, 31006, 31152, 31335, 31336, 31795, 31804, 31801, 31788, 31803, 31980, 31978, 32374, 32373, 32376, 32368, 32375, 32367, 32378, 32370, 32372, 32360, 32587, 32586, 32643, 32646, 32695, 32765, 32766, 32888, 33239, 33237, 33380, 33377, 33379, 34283, 34289, 34285, 34265, 34273, 34280, 34266, 34263, 34284, 34290, 34296, 34264, 34271, 34275, 34268, 34257, 34288, 34278, 34287, 34270, 34274, 34816, 34810, 34819, 34806, 34807, 34825, 34828, 34827, 34822, 34812, 34824, 34815, 34826, 34818, 35170, 35162, 35163, 35159, 35169, 35164, 35160, 35165, 35161, 35208, 35255, 35254, 35318, 35664, 35656, 35658, 35648, 35667, 35670, 35668, 35659, 35669, 35665, 35650, 35666, 35671, 35907, 35959, 35958, 35994, 36102, 36103, 36105, 36268, 36266, 36269, 36267, 36461, 36472, 36467, 36458, 36463, 36475, 36546, 36690, 36689, 36687, 36688, 36691, 36788, 37184, 37183, 37296, 37293, 37854, 37831, 37839, 37826, 37850, 37840, 37881, 37868, 37836, 37849, 37801, 37862, 37834, 37844, 37870, 37859, 37845, 37828, 37838, 37824, 37842, 37863, 38269, 38362, 38363, 38625, 38697, 38699, 38700, 38696, 38694, 38835, 38839, 38838, 38877, 38878, 38879, 39004, 39001, 39005, 38999, 39103, 39101, 39099, 39102, 39240, 39239, 39235, 39334, 39335, 39450, 39445, 39461, 39453, 39460, 39451, 39458, 39456, 39463, 39459, 39454, 39452, 39444, 39618, 39691, 39690, 39694, 39692, 39735, 39914, 39915, 39904, 39902, 39908, 39910, 39906, 39920, 39892, 39895, 39916, 39900, 39897, 39909, 39893, 39905, 39898, 40311, 40321, 40330, 40324, 40328, 40305, 40320, 40312, 40326, 40331, 40332, 40317, 40299, 40308, 40309, 40304, 40297, 40325, 40307, 40315, 40322, 40303, 40313, 40319, 40327, 40296, 40596, 40593, 40640, 40700, 40749, 40768, 40769, 40781, 40790, 40791, 40792, 21303, 22194, 22197, 22195, 22755, 23365, 24006, 24007, 24302, 24303, 24512, 24513, 25081, 25879, 25878, 25877, 25875, 26079, 26344, 26339, 26340, 27379, 27376, 27370, 27368, 27385, 27377, 27374, 27375, 28732, 28725, 28719, 28727, 28724, 28721, 28738, 28728, 28735, 28730, 28729, 28736, 28731, 28723, 28737, 29203, 29204, 29352, 29565, 29564, 29882, 30379, 30378, 30398, 30445, 30668, 30670, 30671, 30669, 30706, 31013, 31011, 31015, 31016, 31012, 31017, 31154, 31342, 31340, 31341, 31479, 31817, 31816, 31818, 31815, 31813, 31982, 32379, 32382, 32385, 32384, 32698, 32767, 32889, 33243, 33241, 33291, 33384, 33385, 34338, 34303, 34305, 34302, 34331, 34304, 34294, 34308, 34313, 34309, 34316, 34301, 34841, 34832, 34833, 34839, 34835, 34838, 35171, 35174, 35257, 35319, 35680, 35690, 35677, 35688, 35683, 35685, 35687, 35693, 36270, 36486, 36488, 36484, 36697, 36694, 36695, 36693, 36696, 36698, 37005, 37187, 37185, 37303, 37301, 37298, 37299, 37899, 37907, 37883, 37920, 37903, 37908, 37886, 37909, 37904, 37928, 37913, 37901, 37877, 37888, 37879, 37895, 37902, 37910, 37906, 37882, 37897, 37880, 37898, 37887, 37884, 37900, 37878, 37905, 37894, 38366, 38368, 38367, 38702, 38703, 38841, 38843, 38909, 38910, 39008, 39010, 39011, 39007, 39105, 39106, 39248, 39246, 39257, 39244, 39243, 39251, 39474, 39476, 39473, 39468, 39466, 39478, 39465, 39470, 39480, 39469, 39623, 39626, 39622, 39696, 39698, 39697, 39947, 39944, 39927, 39941, 39954, 39928, 4e4, 39943, 39950, 39942, 39959, 39956, 39945, 40351, 40345, 40356, 40349, 40338, 40344, 40336, 40347, 40352, 40340, 40348, 40362, 40343, 40353, 40346, 40354, 40360, 40350, 40355, 40383, 40361, 40342, 40358, 40359, 40601, 40603, 40602, 40677, 40676, 40679, 40678, 40752, 40750, 40795, 40800, 40798, 40797, 40793, 40849, 20794, 20793, 21144, 21143, 22211, 22205, 22206, 23368, 23367, 24011, 24015, 24305, 25085, 25883, 27394, 27388, 27395, 27384, 27392, 28739, 28740, 28746, 28744, 28745, 28741, 28742, 29213, 29210, 29209, 29566, 29975, 30314, 30672, 31021, 31025, 31023, 31828, 31827, 31986, 32394, 32391, 32392, 32395, 32390, 32397, 32589, 32699, 32816, 33245, 34328, 34346, 34342, 34335, 34339, 34332, 34329, 34343, 34350, 34337, 34336, 34345, 34334, 34341, 34857, 34845, 34843, 34848, 34852, 34844, 34859, 34890, 35181, 35177, 35182, 35179, 35322, 35705, 35704, 35653, 35706, 35707, 36112, 36116, 36271, 36494, 36492, 36702, 36699, 36701, 37190, 37188, 37189, 37305, 37951, 37947, 37942, 37929, 37949, 37948, 37936, 37945, 37930, 37943, 37932, 37952, 37937, 38373, 38372, 38371, 38709, 38714, 38847, 38881, 39012, 39113, 39110, 39104, 39256, 39254, 39481, 39485, 39494, 39492, 39490, 39489, 39482, 39487, 39629, 39701, 39703, 39704, 39702, 39738, 39762, 39979, 39965, 39964, 39980, 39971, 39976, 39977, 39972, 39969, 40375, 40374, 40380, 40385, 40391, 40394, 40399, 40382, 40389, 40387, 40379, 40373, 40398, 40377, 40378, 40364, 40392, 40369, 40365, 40396, 40371, 40397, 40370, 40570, 40604, 40683, 40686, 40685, 40731, 40728, 40730, 40753, 40782, 40805, 40804, 40850, 20153, 22214, 22213, 22219, 22897, 23371, 23372, 24021, 24017, 24306, 25889, 25888, 25894, 25890, 27403, 27400, 27401, 27661, 28757, 28758, 28759, 28754, 29214, 29215, 29353, 29567, 29912, 29909, 29913, 29911, 30317, 30381, 31029, 31156, 31344, 31345, 31831, 31836, 31833, 31835, 31834, 31988, 31985, 32401, 32591, 32647, 33246, 33387, 34356, 34357, 34355, 34348, 34354, 34358, 34860, 34856, 34854, 34858, 34853, 35185, 35263, 35262, 35323, 35710, 35716, 35714, 35718, 35717, 35711, 36117, 36501, 36500, 36506, 36498, 36496, 36502, 36503, 36704, 36706, 37191, 37964, 37968, 37962, 37963, 37967, 37959, 37957, 37960, 37961, 37958, 38719, 38883, 39018, 39017, 39115, 39252, 39259, 39502, 39507, 39508, 39500, 39503, 39496, 39498, 39497, 39506, 39504, 39632, 39705, 39723, 39739, 39766, 39765, 40006, 40008, 39999, 40004, 39993, 39987, 40001, 39996, 39991, 39988, 39986, 39997, 39990, 40411, 40402, 40414, 40410, 40395, 40400, 40412, 40401, 40415, 40425, 40409, 40408, 40406, 40437, 40405, 40413, 40630, 40688, 40757, 40755, 40754, 40770, 40811, 40853, 40866, 20797, 21145, 22760, 22759, 22898, 23373, 24024, 34863, 24399, 25089, 25091, 25092, 25897, 25893, 26006, 26347, 27409, 27410, 27407, 27594, 28763, 28762, 29218, 29570, 29569, 29571, 30320, 30676, 31847, 31846, 32405, 33388, 34362, 34368, 34361, 34364, 34353, 34363, 34366, 34864, 34866, 34862, 34867, 35190, 35188, 35187, 35326, 35724, 35726, 35723, 35720, 35909, 36121, 36504, 36708, 36707, 37308, 37986, 37973, 37981, 37975, 37982, 38852, 38853, 38912, 39510, 39513, 39710, 39711, 39712, 40018, 40024, 40016, 40010, 40013, 40011, 40021, 40025, 40012, 40014, 40443, 40439, 40431, 40419, 40427, 40440, 40420, 40438, 40417, 40430, 40422, 40434, 40432, 40418, 40428, 40436, 40435, 40424, 40429, 40642, 40656, 40690, 40691, 40710, 40732, 40760, 40759, 40758, 40771, 40783, 40817, 40816, 40814, 40815, 22227, 22221, 23374, 23661, 25901, 26349, 26350, 27411, 28767, 28769, 28765, 28768, 29219, 29915, 29925, 30677, 31032, 31159, 31158, 31850, 32407, 32649, 33389, 34371, 34872, 34871, 34869, 34891, 35732, 35733, 36510, 36511, 36512, 36509, 37310, 37309, 37314, 37995, 37992, 37993, 38629, 38726, 38723, 38727, 38855, 38885, 39518, 39637, 39769, 40035, 40039, 40038, 40034, 40030, 40032, 40450, 40446, 40455, 40451, 40454, 40453, 40448, 40449, 40457, 40447, 40445, 40452, 40608, 40734, 40774, 40820, 40821, 40822, 22228, 25902, 26040, 27416, 27417, 27415, 27418, 28770, 29222, 29354, 30680, 30681, 31033, 31849, 31851, 31990, 32410, 32408, 32411, 32409, 33248, 33249, 34374, 34375, 34376, 35193, 35194, 35196, 35195, 35327, 35736, 35737, 36517, 36516, 36515, 37998, 37997, 37999, 38001, 38003, 38729, 39026, 39263, 40040, 40046, 40045, 40459, 40461, 40464, 40463, 40466, 40465, 40609, 40693, 40713, 40775, 40824, 40827, 40826, 40825, 22302, 28774, 31855, 34876, 36274, 36518, 37315, 38004, 38008, 38006, 38005, 39520, 40052, 40051, 40049, 40053, 40468, 40467, 40694, 40714, 40868, 28776, 28773, 31991, 34410, 34878, 34877, 34879, 35742, 35996, 36521, 36553, 38731, 39027, 39028, 39116, 39265, 39339, 39524, 39526, 39527, 39716, 40469, 40471, 40776, 25095, 27422, 29223, 34380, 36520, 38018, 38016, 38017, 39529, 39528, 39726, 40473, 29225, 34379, 35743, 38019, 40057, 40631, 30325, 39531, 40058, 40477, 28777, 28778, 40612, 40830, 40777, 40856, 30849, 37561, 35023, 22715, 24658, 31911, 23290, 9556, 9574, 9559, 9568, 9580, 9571, 9562, 9577, 9565, 9554, 9572, 9557, 9566, 9578, 9569, 9560, 9575, 9563, 9555, 9573, 9558, 9567, 9579, 9570, 9561, 9576, 9564, 9553, 9552, 9581, 9582, 9584, 9583, 65517, 132423, 37595, 132575, 147397, 34124, 17077, 29679, 20917, 13897, 149826, 166372, 37700, 137691, 33518, 146632, 30780, 26436, 25311, 149811, 166314, 131744, 158643, 135941, 20395, 140525, 20488, 159017, 162436, 144896, 150193, 140563, 20521, 131966, 24484, 131968, 131911, 28379, 132127, 20605, 20737, 13434, 20750, 39020, 14147, 33814, 149924, 132231, 20832, 144308, 20842, 134143, 139516, 131813, 140592, 132494, 143923, 137603, 23426, 34685, 132531, 146585, 20914, 20920, 40244, 20937, 20943, 20945, 15580, 20947, 150182, 20915, 20962, 21314, 20973, 33741, 26942, 145197, 24443, 21003, 21030, 21052, 21173, 21079, 21140, 21177, 21189, 31765, 34114, 21216, 34317, 158483, 21253, 166622, 21833, 28377, 147328, 133460, 147436, 21299, 21316, 134114, 27851, 136998, 26651, 29653, 24650, 16042, 14540, 136936, 29149, 17570, 21357, 21364, 165547, 21374, 21375, 136598, 136723, 30694, 21395, 166555, 21408, 21419, 21422, 29607, 153458, 16217, 29596, 21441, 21445, 27721, 20041, 22526, 21465, 15019, 134031, 21472, 147435, 142755, 21494, 134263, 21523, 28793, 21803, 26199, 27995, 21613, 158547, 134516, 21853, 21647, 21668, 18342, 136973, 134877, 15796, 134477, 166332, 140952, 21831, 19693, 21551, 29719, 21894, 21929, 22021, 137431, 147514, 17746, 148533, 26291, 135348, 22071, 26317, 144010, 26276, 26285, 22093, 22095, 30961, 22257, 38791, 21502, 22272, 22255, 22253, 166758, 13859, 135759, 22342, 147877, 27758, 28811, 22338, 14001, 158846, 22502, 136214, 22531, 136276, 148323, 22566, 150517, 22620, 22698, 13665, 22752, 22748, 135740, 22779, 23551, 22339, 172368, 148088, 37843, 13729, 22815, 26790, 14019, 28249, 136766, 23076, 21843, 136850, 34053, 22985, 134478, 158849, 159018, 137180, 23001, 137211, 137138, 159142, 28017, 137256, 136917, 23033, 159301, 23211, 23139, 14054, 149929, 23159, 14088, 23190, 29797, 23251, 159649, 140628, 15749, 137489, 14130, 136888, 24195, 21200, 23414, 25992, 23420, 162318, 16388, 18525, 131588, 23509, 24928, 137780, 154060, 132517, 23539, 23453, 19728, 23557, 138052, 23571, 29646, 23572, 138405, 158504, 23625, 18653, 23685, 23785, 23791, 23947, 138745, 138807, 23824, 23832, 23878, 138916, 23738, 24023, 33532, 14381, 149761, 139337, 139635, 33415, 14390, 15298, 24110, 27274, 24181, 24186, 148668, 134355, 21414, 20151, 24272, 21416, 137073, 24073, 24308, 164994, 24313, 24315, 14496, 24316, 26686, 37915, 24333, 131521, 194708, 15070, 18606, 135994, 24378, 157832, 140240, 24408, 140401, 24419, 38845, 159342, 24434, 37696, 166454, 24487, 23990, 15711, 152144, 139114, 159992, 140904, 37334, 131742, 166441, 24625, 26245, 137335, 14691, 15815, 13881, 22416, 141236, 31089, 15936, 24734, 24740, 24755, 149890, 149903, 162387, 29860, 20705, 23200, 24932, 33828, 24898, 194726, 159442, 24961, 20980, 132694, 24967, 23466, 147383, 141407, 25043, 166813, 170333, 25040, 14642, 141696, 141505, 24611, 24924, 25886, 25483, 131352, 25285, 137072, 25301, 142861, 25452, 149983, 14871, 25656, 25592, 136078, 137212, 25744, 28554, 142902, 38932, 147596, 153373, 25825, 25829, 38011, 14950, 25658, 14935, 25933, 28438, 150056, 150051, 25989, 25965, 25951, 143486, 26037, 149824, 19255, 26065, 16600, 137257, 26080, 26083, 24543, 144384, 26136, 143863, 143864, 26180, 143780, 143781, 26187, 134773, 26215, 152038, 26227, 26228, 138813, 143921, 165364, 143816, 152339, 30661, 141559, 39332, 26370, 148380, 150049, 15147, 27130, 145346, 26462, 26471, 26466, 147917, 168173, 26583, 17641, 26658, 28240, 37436, 26625, 144358, 159136, 26717, 144495, 27105, 27147, 166623, 26995, 26819, 144845, 26881, 26880, 15666, 14849, 144956, 15232, 26540, 26977, 166474, 17148, 26934, 27032, 15265, 132041, 33635, 20624, 27129, 144985, 139562, 27205, 145155, 27293, 15347, 26545, 27336, 168348, 15373, 27421, 133411, 24798, 27445, 27508, 141261, 28341, 146139, 132021, 137560, 14144, 21537, 146266, 27617, 147196, 27612, 27703, 140427, 149745, 158545, 27738, 33318, 27769, 146876, 17605, 146877, 147876, 149772, 149760, 146633, 14053, 15595, 134450, 39811, 143865, 140433, 32655, 26679, 159013, 159137, 159211, 28054, 27996, 28284, 28420, 149887, 147589, 159346, 34099, 159604, 20935, 27804, 28189, 33838, 166689, 28207, 146991, 29779, 147330, 31180, 28239, 23185, 143435, 28664, 14093, 28573, 146992, 28410, 136343, 147517, 17749, 37872, 28484, 28508, 15694, 28532, 168304, 15675, 28575, 147780, 28627, 147601, 147797, 147513, 147440, 147380, 147775, 20959, 147798, 147799, 147776, 156125, 28747, 28798, 28839, 28801, 28876, 28885, 28886, 28895, 16644, 15848, 29108, 29078, 148087, 28971, 28997, 23176, 29002, 29038, 23708, 148325, 29007, 37730, 148161, 28972, 148570, 150055, 150050, 29114, 166888, 28861, 29198, 37954, 29205, 22801, 37955, 29220, 37697, 153093, 29230, 29248, 149876, 26813, 29269, 29271, 15957, 143428, 26637, 28477, 29314, 29482, 29483, 149539, 165931, 18669, 165892, 29480, 29486, 29647, 29610, 134202, 158254, 29641, 29769, 147938, 136935, 150052, 26147, 14021, 149943, 149901, 150011, 29687, 29717, 26883, 150054, 29753, 132547, 16087, 29788, 141485, 29792, 167602, 29767, 29668, 29814, 33721, 29804, 14128, 29812, 37873, 27180, 29826, 18771, 150156, 147807, 150137, 166799, 23366, 166915, 137374, 29896, 137608, 29966, 29929, 29982, 167641, 137803, 23511, 167596, 37765, 30029, 30026, 30055, 30062, 151426, 16132, 150803, 30094, 29789, 30110, 30132, 30210, 30252, 30289, 30287, 30319, 30326, 156661, 30352, 33263, 14328, 157969, 157966, 30369, 30373, 30391, 30412, 159647, 33890, 151709, 151933, 138780, 30494, 30502, 30528, 25775, 152096, 30552, 144044, 30639, 166244, 166248, 136897, 30708, 30729, 136054, 150034, 26826, 30895, 30919, 30931, 38565, 31022, 153056, 30935, 31028, 30897, 161292, 36792, 34948, 166699, 155779, 140828, 31110, 35072, 26882, 31104, 153687, 31133, 162617, 31036, 31145, 28202, 160038, 16040, 31174, 168205, 31188], "euc-kr": [44034, 44035, 44037, 44038, 44043, 44044, 44045, 44046, 44047, 44056, 44062, 44063, 44065, 44066, 44067, 44069, 44070, 44071, 44072, 44073, 44074, 44075, 44078, 44082, 44083, 44084, null, null, null, null, null, null, 44085, 44086, 44087, 44090, 44091, 44093, 44094, 44095, 44097, 44098, 44099, 44100, 44101, 44102, 44103, 44104, 44105, 44106, 44108, 44110, 44111, 44112, 44113, 44114, 44115, 44117, null, null, null, null, null, null, 44118, 44119, 44121, 44122, 44123, 44125, 44126, 44127, 44128, 44129, 44130, 44131, 44132, 44133, 44134, 44135, 44136, 44137, 44138, 44139, 44140, 44141, 44142, 44143, 44146, 44147, 44149, 44150, 44153, 44155, 44156, 44157, 44158, 44159, 44162, 44167, 44168, 44173, 44174, 44175, 44177, 44178, 44179, 44181, 44182, 44183, 44184, 44185, 44186, 44187, 44190, 44194, 44195, 44196, 44197, 44198, 44199, 44203, 44205, 44206, 44209, 44210, 44211, 44212, 44213, 44214, 44215, 44218, 44222, 44223, 44224, 44226, 44227, 44229, 44230, 44231, 44233, 44234, 44235, 44237, 44238, 44239, 44240, 44241, 44242, 44243, 44244, 44246, 44248, 44249, 44250, 44251, 44252, 44253, 44254, 44255, 44258, 44259, 44261, 44262, 44265, 44267, 44269, 44270, 44274, 44276, 44279, 44280, 44281, 44282, 44283, 44286, 44287, 44289, 44290, 44291, 44293, 44295, 44296, 44297, 44298, 44299, 44302, 44304, 44306, 44307, 44308, 44309, 44310, 44311, 44313, 44314, 44315, 44317, 44318, 44319, 44321, 44322, 44323, 44324, 44325, 44326, 44327, 44328, 44330, 44331, 44334, 44335, 44336, 44337, 44338, 44339, null, null, null, null, null, null, 44342, 44343, 44345, 44346, 44347, 44349, 44350, 44351, 44352, 44353, 44354, 44355, 44358, 44360, 44362, 44363, 44364, 44365, 44366, 44367, 44369, 44370, 44371, 44373, 44374, 44375, null, null, null, null, null, null, 44377, 44378, 44379, 44380, 44381, 44382, 44383, 44384, 44386, 44388, 44389, 44390, 44391, 44392, 44393, 44394, 44395, 44398, 44399, 44401, 44402, 44407, 44408, 44409, 44410, 44414, 44416, 44419, 44420, 44421, 44422, 44423, 44426, 44427, 44429, 44430, 44431, 44433, 44434, 44435, 44436, 44437, 44438, 44439, 44440, 44441, 44442, 44443, 44446, 44447, 44448, 44449, 44450, 44451, 44453, 44454, 44455, 44456, 44457, 44458, 44459, 44460, 44461, 44462, 44463, 44464, 44465, 44466, 44467, 44468, 44469, 44470, 44472, 44473, 44474, 44475, 44476, 44477, 44478, 44479, 44482, 44483, 44485, 44486, 44487, 44489, 44490, 44491, 44492, 44493, 44494, 44495, 44498, 44500, 44501, 44502, 44503, 44504, 44505, 44506, 44507, 44509, 44510, 44511, 44513, 44514, 44515, 44517, 44518, 44519, 44520, 44521, 44522, 44523, 44524, 44525, 44526, 44527, 44528, 44529, 44530, 44531, 44532, 44533, 44534, 44535, 44538, 44539, 44541, 44542, 44546, 44547, 44548, 44549, 44550, 44551, 44554, 44556, 44558, 44559, 44560, 44561, 44562, 44563, 44565, 44566, 44567, 44568, 44569, 44570, 44571, 44572, null, null, null, null, null, null, 44573, 44574, 44575, 44576, 44577, 44578, 44579, 44580, 44581, 44582, 44583, 44584, 44585, 44586, 44587, 44588, 44589, 44590, 44591, 44594, 44595, 44597, 44598, 44601, 44603, 44604, null, null, null, null, null, null, 44605, 44606, 44607, 44610, 44612, 44615, 44616, 44617, 44619, 44623, 44625, 44626, 44627, 44629, 44631, 44632, 44633, 44634, 44635, 44638, 44642, 44643, 44644, 44646, 44647, 44650, 44651, 44653, 44654, 44655, 44657, 44658, 44659, 44660, 44661, 44662, 44663, 44666, 44670, 44671, 44672, 44673, 44674, 44675, 44678, 44679, 44680, 44681, 44682, 44683, 44685, 44686, 44687, 44688, 44689, 44690, 44691, 44692, 44693, 44694, 44695, 44696, 44697, 44698, 44699, 44700, 44701, 44702, 44703, 44704, 44705, 44706, 44707, 44708, 44709, 44710, 44711, 44712, 44713, 44714, 44715, 44716, 44717, 44718, 44719, 44720, 44721, 44722, 44723, 44724, 44725, 44726, 44727, 44728, 44729, 44730, 44731, 44735, 44737, 44738, 44739, 44741, 44742, 44743, 44744, 44745, 44746, 44747, 44750, 44754, 44755, 44756, 44757, 44758, 44759, 44762, 44763, 44765, 44766, 44767, 44768, 44769, 44770, 44771, 44772, 44773, 44774, 44775, 44777, 44778, 44780, 44782, 44783, 44784, 44785, 44786, 44787, 44789, 44790, 44791, 44793, 44794, 44795, 44797, 44798, 44799, 44800, 44801, 44802, 44803, 44804, 44805, null, null, null, null, null, null, 44806, 44809, 44810, 44811, 44812, 44814, 44815, 44817, 44818, 44819, 44820, 44821, 44822, 44823, 44824, 44825, 44826, 44827, 44828, 44829, 44830, 44831, 44832, 44833, 44834, 44835, null, null, null, null, null, null, 44836, 44837, 44838, 44839, 44840, 44841, 44842, 44843, 44846, 44847, 44849, 44851, 44853, 44854, 44855, 44856, 44857, 44858, 44859, 44862, 44864, 44868, 44869, 44870, 44871, 44874, 44875, 44876, 44877, 44878, 44879, 44881, 44882, 44883, 44884, 44885, 44886, 44887, 44888, 44889, 44890, 44891, 44894, 44895, 44896, 44897, 44898, 44899, 44902, 44903, 44904, 44905, 44906, 44907, 44908, 44909, 44910, 44911, 44912, 44913, 44914, 44915, 44916, 44917, 44918, 44919, 44920, 44922, 44923, 44924, 44925, 44926, 44927, 44929, 44930, 44931, 44933, 44934, 44935, 44937, 44938, 44939, 44940, 44941, 44942, 44943, 44946, 44947, 44948, 44950, 44951, 44952, 44953, 44954, 44955, 44957, 44958, 44959, 44960, 44961, 44962, 44963, 44964, 44965, 44966, 44967, 44968, 44969, 44970, 44971, 44972, 44973, 44974, 44975, 44976, 44977, 44978, 44979, 44980, 44981, 44982, 44983, 44986, 44987, 44989, 44990, 44991, 44993, 44994, 44995, 44996, 44997, 44998, 45002, 45004, 45007, 45008, 45009, 45010, 45011, 45013, 45014, 45015, 45016, 45017, 45018, 45019, 45021, 45022, 45023, 45024, 45025, null, null, null, null, null, null, 45026, 45027, 45028, 45029, 45030, 45031, 45034, 45035, 45036, 45037, 45038, 45039, 45042, 45043, 45045, 45046, 45047, 45049, 45050, 45051, 45052, 45053, 45054, 45055, 45058, 45059, null, null, null, null, null, null, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45069, 45070, 45071, 45073, 45074, 45075, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 45086, 45087, 45088, 45089, 45090, 45091, 45092, 45093, 45094, 45095, 45097, 45098, 45099, 45100, 45101, 45102, 45103, 45104, 45105, 45106, 45107, 45108, 45109, 45110, 45111, 45112, 45113, 45114, 45115, 45116, 45117, 45118, 45119, 45120, 45121, 45122, 45123, 45126, 45127, 45129, 45131, 45133, 45135, 45136, 45137, 45138, 45142, 45144, 45146, 45147, 45148, 45150, 45151, 45152, 45153, 45154, 45155, 45156, 45157, 45158, 45159, 45160, 45161, 45162, 45163, 45164, 45165, 45166, 45167, 45168, 45169, 45170, 45171, 45172, 45173, 45174, 45175, 45176, 45177, 45178, 45179, 45182, 45183, 45185, 45186, 45187, 45189, 45190, 45191, 45192, 45193, 45194, 45195, 45198, 45200, 45202, 45203, 45204, 45205, 45206, 45207, 45211, 45213, 45214, 45219, 45220, 45221, 45222, 45223, 45226, 45232, 45234, 45238, 45239, 45241, 45242, 45243, 45245, 45246, 45247, 45248, 45249, 45250, 45251, 45254, 45258, 45259, 45260, 45261, 45262, 45263, 45266, null, null, null, null, null, null, 45267, 45269, 45270, 45271, 45273, 45274, 45275, 45276, 45277, 45278, 45279, 45281, 45282, 45283, 45284, 45286, 45287, 45288, 45289, 45290, 45291, 45292, 45293, 45294, 45295, 45296, null, null, null, null, null, null, 45297, 45298, 45299, 45300, 45301, 45302, 45303, 45304, 45305, 45306, 45307, 45308, 45309, 45310, 45311, 45312, 45313, 45314, 45315, 45316, 45317, 45318, 45319, 45322, 45325, 45326, 45327, 45329, 45332, 45333, 45334, 45335, 45338, 45342, 45343, 45344, 45345, 45346, 45350, 45351, 45353, 45354, 45355, 45357, 45358, 45359, 45360, 45361, 45362, 45363, 45366, 45370, 45371, 45372, 45373, 45374, 45375, 45378, 45379, 45381, 45382, 45383, 45385, 45386, 45387, 45388, 45389, 45390, 45391, 45394, 45395, 45398, 45399, 45401, 45402, 45403, 45405, 45406, 45407, 45409, 45410, 45411, 45412, 45413, 45414, 45415, 45416, 45417, 45418, 45419, 45420, 45421, 45422, 45423, 45424, 45425, 45426, 45427, 45428, 45429, 45430, 45431, 45434, 45435, 45437, 45438, 45439, 45441, 45443, 45444, 45445, 45446, 45447, 45450, 45452, 45454, 45455, 45456, 45457, 45461, 45462, 45463, 45465, 45466, 45467, 45469, 45470, 45471, 45472, 45473, 45474, 45475, 45476, 45477, 45478, 45479, 45481, 45482, 45483, 45484, 45485, 45486, 45487, 45488, 45489, 45490, 45491, 45492, 45493, 45494, 45495, 45496, null, null, null, null, null, null, 45497, 45498, 45499, 45500, 45501, 45502, 45503, 45504, 45505, 45506, 45507, 45508, 45509, 45510, 45511, 45512, 45513, 45514, 45515, 45517, 45518, 45519, 45521, 45522, 45523, 45525, null, null, null, null, null, null, 45526, 45527, 45528, 45529, 45530, 45531, 45534, 45536, 45537, 45538, 45539, 45540, 45541, 45542, 45543, 45546, 45547, 45549, 45550, 45551, 45553, 45554, 45555, 45556, 45557, 45558, 45559, 45560, 45562, 45564, 45566, 45567, 45568, 45569, 45570, 45571, 45574, 45575, 45577, 45578, 45581, 45582, 45583, 45584, 45585, 45586, 45587, 45590, 45592, 45594, 45595, 45596, 45597, 45598, 45599, 45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616, 45617, 45618, 45619, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45629, 45630, 45631, 45632, 45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648, 45649, 45650, 45651, 45652, 45653, 45654, 45655, 45657, 45658, 45659, 45661, 45662, 45663, 45665, 45666, 45667, 45668, 45669, 45670, 45671, 45674, 45675, 45676, 45677, 45678, 45679, 45680, 45681, 45682, 45683, 45686, 45687, 45688, 45689, 45690, 45691, 45693, 45694, 45695, 45696, 45697, 45698, 45699, 45702, 45703, 45704, 45706, 45707, 45708, 45709, 45710, null, null, null, null, null, null, 45711, 45714, 45715, 45717, 45718, 45719, 45723, 45724, 45725, 45726, 45727, 45730, 45732, 45735, 45736, 45737, 45739, 45741, 45742, 45743, 45745, 45746, 45747, 45749, 45750, 45751, null, null, null, null, null, null, 45752, 45753, 45754, 45755, 45756, 45757, 45758, 45759, 45760, 45761, 45762, 45763, 45764, 45765, 45766, 45767, 45770, 45771, 45773, 45774, 45775, 45777, 45779, 45780, 45781, 45782, 45783, 45786, 45788, 45790, 45791, 45792, 45793, 45795, 45799, 45801, 45802, 45808, 45809, 45810, 45814, 45820, 45821, 45822, 45826, 45827, 45829, 45830, 45831, 45833, 45834, 45835, 45836, 45837, 45838, 45839, 45842, 45846, 45847, 45848, 45849, 45850, 45851, 45853, 45854, 45855, 45856, 45857, 45858, 45859, 45860, 45861, 45862, 45863, 45864, 45865, 45866, 45867, 45868, 45869, 45870, 45871, 45872, 45873, 45874, 45875, 45876, 45877, 45878, 45879, 45880, 45881, 45882, 45883, 45884, 45885, 45886, 45887, 45888, 45889, 45890, 45891, 45892, 45893, 45894, 45895, 45896, 45897, 45898, 45899, 45900, 45901, 45902, 45903, 45904, 45905, 45906, 45907, 45911, 45913, 45914, 45917, 45920, 45921, 45922, 45923, 45926, 45928, 45930, 45932, 45933, 45935, 45938, 45939, 45941, 45942, 45943, 45945, 45946, 45947, 45948, 45949, 45950, 45951, 45954, 45958, 45959, 45960, 45961, 45962, 45963, 45965, null, null, null, null, null, null, 45966, 45967, 45969, 45970, 45971, 45973, 45974, 45975, 45976, 45977, 45978, 45979, 45980, 45981, 45982, 45983, 45986, 45987, 45988, 45989, 45990, 45991, 45993, 45994, 45995, 45997, null, null, null, null, null, null, 45998, 45999, 46e3, 46001, 46002, 46003, 46004, 46005, 46006, 46007, 46008, 46009, 46010, 46011, 46012, 46013, 46014, 46015, 46016, 46017, 46018, 46019, 46022, 46023, 46025, 46026, 46029, 46031, 46033, 46034, 46035, 46038, 46040, 46042, 46044, 46046, 46047, 46049, 46050, 46051, 46053, 46054, 46055, 46057, 46058, 46059, 46060, 46061, 46062, 46063, 46064, 46065, 46066, 46067, 46068, 46069, 46070, 46071, 46072, 46073, 46074, 46075, 46077, 46078, 46079, 46080, 46081, 46082, 46083, 46084, 46085, 46086, 46087, 46088, 46089, 46090, 46091, 46092, 46093, 46094, 46095, 46097, 46098, 46099, 46100, 46101, 46102, 46103, 46105, 46106, 46107, 46109, 46110, 46111, 46113, 46114, 46115, 46116, 46117, 46118, 46119, 46122, 46124, 46125, 46126, 46127, 46128, 46129, 46130, 46131, 46133, 46134, 46135, 46136, 46137, 46138, 46139, 46140, 46141, 46142, 46143, 46144, 46145, 46146, 46147, 46148, 46149, 46150, 46151, 46152, 46153, 46154, 46155, 46156, 46157, 46158, 46159, 46162, 46163, 46165, 46166, 46167, 46169, 46170, 46171, 46172, 46173, 46174, 46175, 46178, 46180, 46182, null, null, null, null, null, null, 46183, 46184, 46185, 46186, 46187, 46189, 46190, 46191, 46192, 46193, 46194, 46195, 46196, 46197, 46198, 46199, 46200, 46201, 46202, 46203, 46204, 46205, 46206, 46207, 46209, 46210, null, null, null, null, null, null, 46211, 46212, 46213, 46214, 46215, 46217, 46218, 46219, 46220, 46221, 46222, 46223, 46224, 46225, 46226, 46227, 46228, 46229, 46230, 46231, 46232, 46233, 46234, 46235, 46236, 46238, 46239, 46240, 46241, 46242, 46243, 46245, 46246, 46247, 46249, 46250, 46251, 46253, 46254, 46255, 46256, 46257, 46258, 46259, 46260, 46262, 46264, 46266, 46267, 46268, 46269, 46270, 46271, 46273, 46274, 46275, 46277, 46278, 46279, 46281, 46282, 46283, 46284, 46285, 46286, 46287, 46289, 46290, 46291, 46292, 46294, 46295, 46296, 46297, 46298, 46299, 46302, 46303, 46305, 46306, 46309, 46311, 46312, 46313, 46314, 46315, 46318, 46320, 46322, 46323, 46324, 46325, 46326, 46327, 46329, 46330, 46331, 46332, 46333, 46334, 46335, 46336, 46337, 46338, 46339, 46340, 46341, 46342, 46343, 46344, 46345, 46346, 46347, 46348, 46349, 46350, 46351, 46352, 46353, 46354, 46355, 46358, 46359, 46361, 46362, 46365, 46366, 46367, 46368, 46369, 46370, 46371, 46374, 46379, 46380, 46381, 46382, 46383, 46386, 46387, 46389, 46390, 46391, 46393, 46394, 46395, 46396, 46397, 46398, 46399, 46402, 46406, null, null, null, null, null, null, 46407, 46408, 46409, 46410, 46414, 46415, 46417, 46418, 46419, 46421, 46422, 46423, 46424, 46425, 46426, 46427, 46430, 46434, 46435, 46436, 46437, 46438, 46439, 46440, 46441, 46442, null, null, null, null, null, null, 46443, 46444, 46445, 46446, 46447, 46448, 46449, 46450, 46451, 46452, 46453, 46454, 46455, 46456, 46457, 46458, 46459, 46460, 46461, 46462, 46463, 46464, 46465, 46466, 46467, 46468, 46469, 46470, 46471, 46472, 46473, 46474, 46475, 46476, 46477, 46478, 46479, 46480, 46481, 46482, 46483, 46484, 46485, 46486, 46487, 46488, 46489, 46490, 46491, 46492, 46493, 46494, 46495, 46498, 46499, 46501, 46502, 46503, 46505, 46508, 46509, 46510, 46511, 46514, 46518, 46519, 46520, 46521, 46522, 46526, 46527, 46529, 46530, 46531, 46533, 46534, 46535, 46536, 46537, 46538, 46539, 46542, 46546, 46547, 46548, 46549, 46550, 46551, 46553, 46554, 46555, 46556, 46557, 46558, 46559, 46560, 46561, 46562, 46563, 46564, 46565, 46566, 46567, 46568, 46569, 46570, 46571, 46573, 46574, 46575, 46576, 46577, 46578, 46579, 46580, 46581, 46582, 46583, 46584, 46585, 46586, 46587, 46588, 46589, 46590, 46591, 46592, 46593, 46594, 46595, 46596, 46597, 46598, 46599, 46600, 46601, 46602, 46603, 46604, 46605, 46606, 46607, 46610, 46611, 46613, 46614, 46615, 46617, 46618, 46619, 46620, 46621, null, null, null, null, null, null, 46622, 46623, 46624, 46625, 46626, 46627, 46628, 46630, 46631, 46632, 46633, 46634, 46635, 46637, 46638, 46639, 46640, 46641, 46642, 46643, 46645, 46646, 46647, 46648, 46649, 46650, null, null, null, null, null, null, 46651, 46652, 46653, 46654, 46655, 46656, 46657, 46658, 46659, 46660, 46661, 46662, 46663, 46665, 46666, 46667, 46668, 46669, 46670, 46671, 46672, 46673, 46674, 46675, 46676, 46677, 46678, 46679, 46680, 46681, 46682, 46683, 46684, 46685, 46686, 46687, 46688, 46689, 46690, 46691, 46693, 46694, 46695, 46697, 46698, 46699, 46700, 46701, 46702, 46703, 46704, 46705, 46706, 46707, 46708, 46709, 46710, 46711, 46712, 46713, 46714, 46715, 46716, 46717, 46718, 46719, 46720, 46721, 46722, 46723, 46724, 46725, 46726, 46727, 46728, 46729, 46730, 46731, 46732, 46733, 46734, 46735, 46736, 46737, 46738, 46739, 46740, 46741, 46742, 46743, 46744, 46745, 46746, 46747, 46750, 46751, 46753, 46754, 46755, 46757, 46758, 46759, 46760, 46761, 46762, 46765, 46766, 46767, 46768, 46770, 46771, 46772, 46773, 46774, 46775, 46776, 46777, 46778, 46779, 46780, 46781, 46782, 46783, 46784, 46785, 46786, 46787, 46788, 46789, 46790, 46791, 46792, 46793, 46794, 46795, 46796, 46797, 46798, 46799, 46800, 46801, 46802, 46803, 46805, 46806, 46807, 46808, 46809, 46810, 46811, 46812, 46813, null, null, null, null, null, null, 46814, 46815, 46816, 46817, 46818, 46819, 46820, 46821, 46822, 46823, 46824, 46825, 46826, 46827, 46828, 46829, 46830, 46831, 46833, 46834, 46835, 46837, 46838, 46839, 46841, 46842, null, null, null, null, null, null, 46843, 46844, 46845, 46846, 46847, 46850, 46851, 46852, 46854, 46855, 46856, 46857, 46858, 46859, 46860, 46861, 46862, 46863, 46864, 46865, 46866, 46867, 46868, 46869, 46870, 46871, 46872, 46873, 46874, 46875, 46876, 46877, 46878, 46879, 46880, 46881, 46882, 46883, 46884, 46885, 46886, 46887, 46890, 46891, 46893, 46894, 46897, 46898, 46899, 46900, 46901, 46902, 46903, 46906, 46908, 46909, 46910, 46911, 46912, 46913, 46914, 46915, 46917, 46918, 46919, 46921, 46922, 46923, 46925, 46926, 46927, 46928, 46929, 46930, 46931, 46934, 46935, 46936, 46937, 46938, 46939, 46940, 46941, 46942, 46943, 46945, 46946, 46947, 46949, 46950, 46951, 46953, 46954, 46955, 46956, 46957, 46958, 46959, 46962, 46964, 46966, 46967, 46968, 46969, 46970, 46971, 46974, 46975, 46977, 46978, 46979, 46981, 46982, 46983, 46984, 46985, 46986, 46987, 46990, 46995, 46996, 46997, 47002, 47003, 47005, 47006, 47007, 47009, 47010, 47011, 47012, 47013, 47014, 47015, 47018, 47022, 47023, 47024, 47025, 47026, 47027, 47030, 47031, 47033, 47034, 47035, 47036, 47037, 47038, 47039, 47040, 47041, null, null, null, null, null, null, 47042, 47043, 47044, 47045, 47046, 47048, 47050, 47051, 47052, 47053, 47054, 47055, 47056, 47057, 47058, 47059, 47060, 47061, 47062, 47063, 47064, 47065, 47066, 47067, 47068, 47069, null, null, null, null, null, null, 47070, 47071, 47072, 47073, 47074, 47075, 47076, 47077, 47078, 47079, 47080, 47081, 47082, 47083, 47086, 47087, 47089, 47090, 47091, 47093, 47094, 47095, 47096, 47097, 47098, 47099, 47102, 47106, 47107, 47108, 47109, 47110, 47114, 47115, 47117, 47118, 47119, 47121, 47122, 47123, 47124, 47125, 47126, 47127, 47130, 47132, 47134, 47135, 47136, 47137, 47138, 47139, 47142, 47143, 47145, 47146, 47147, 47149, 47150, 47151, 47152, 47153, 47154, 47155, 47158, 47162, 47163, 47164, 47165, 47166, 47167, 47169, 47170, 47171, 47173, 47174, 47175, 47176, 47177, 47178, 47179, 47180, 47181, 47182, 47183, 47184, 47186, 47188, 47189, 47190, 47191, 47192, 47193, 47194, 47195, 47198, 47199, 47201, 47202, 47203, 47205, 47206, 47207, 47208, 47209, 47210, 47211, 47214, 47216, 47218, 47219, 47220, 47221, 47222, 47223, 47225, 47226, 47227, 47229, 47230, 47231, 47232, 47233, 47234, 47235, 47236, 47237, 47238, 47239, 47240, 47241, 47242, 47243, 47244, 47246, 47247, 47248, 47249, 47250, 47251, 47252, 47253, 47254, 47255, 47256, 47257, 47258, 47259, 47260, 47261, 47262, 47263, null, null, null, null, null, null, 47264, 47265, 47266, 47267, 47268, 47269, 47270, 47271, 47273, 47274, 47275, 47276, 47277, 47278, 47279, 47281, 47282, 47283, 47285, 47286, 47287, 47289, 47290, 47291, 47292, 47293, null, null, null, null, null, null, 47294, 47295, 47298, 47300, 47302, 47303, 47304, 47305, 47306, 47307, 47309, 47310, 47311, 47313, 47314, 47315, 47317, 47318, 47319, 47320, 47321, 47322, 47323, 47324, 47326, 47328, 47330, 47331, 47332, 47333, 47334, 47335, 47338, 47339, 47341, 47342, 47343, 47345, 47346, 47347, 47348, 47349, 47350, 47351, 47354, 47356, 47358, 47359, 47360, 47361, 47362, 47363, 47365, 47366, 47367, 47368, 47369, 47370, 47371, 47372, 47373, 47374, 47375, 47376, 47377, 47378, 47379, 47380, 47381, 47382, 47383, 47385, 47386, 47387, 47388, 47389, 47390, 47391, 47393, 47394, 47395, 47396, 47397, 47398, 47399, 47400, 47401, 47402, 47403, 47404, 47405, 47406, 47407, 47408, 47409, 47410, 47411, 47412, 47413, 47414, 47415, 47416, 47417, 47418, 47419, 47422, 47423, 47425, 47426, 47427, 47429, 47430, 47431, 47432, 47433, 47434, 47435, 47437, 47438, 47440, 47442, 47443, 47444, 47445, 47446, 47447, 47450, 47451, 47453, 47454, 47455, 47457, 47458, 47459, 47460, 47461, 47462, 47463, 47466, 47468, 47470, 47471, 47472, 47473, 47474, 47475, 47478, 47479, 47481, 47482, 47483, 47485, null, null, null, null, null, null, 47486, 47487, 47488, 47489, 47490, 47491, 47494, 47496, 47499, 47500, 47503, 47504, 47505, 47506, 47507, 47508, 47509, 47510, 47511, 47512, 47513, 47514, 47515, 47516, 47517, 47518, null, null, null, null, null, null, 47519, 47520, 47521, 47522, 47523, 47524, 47525, 47526, 47527, 47528, 47529, 47530, 47531, 47534, 47535, 47537, 47538, 47539, 47541, 47542, 47543, 47544, 47545, 47546, 47547, 47550, 47552, 47554, 47555, 47556, 47557, 47558, 47559, 47562, 47563, 47565, 47571, 47572, 47573, 47574, 47575, 47578, 47580, 47583, 47584, 47586, 47590, 47591, 47593, 47594, 47595, 47597, 47598, 47599, 47600, 47601, 47602, 47603, 47606, 47611, 47612, 47613, 47614, 47615, 47618, 47619, 47620, 47621, 47622, 47623, 47625, 47626, 47627, 47628, 47629, 47630, 47631, 47632, 47633, 47634, 47635, 47636, 47638, 47639, 47640, 47641, 47642, 47643, 47644, 47645, 47646, 47647, 47648, 47649, 47650, 47651, 47652, 47653, 47654, 47655, 47656, 47657, 47658, 47659, 47660, 47661, 47662, 47663, 47664, 47665, 47666, 47667, 47668, 47669, 47670, 47671, 47674, 47675, 47677, 47678, 47679, 47681, 47683, 47684, 47685, 47686, 47687, 47690, 47692, 47695, 47696, 47697, 47698, 47702, 47703, 47705, 47706, 47707, 47709, 47710, 47711, 47712, 47713, 47714, 47715, 47718, 47722, 47723, 47724, 47725, 47726, 47727, null, null, null, null, null, null, 47730, 47731, 47733, 47734, 47735, 47737, 47738, 47739, 47740, 47741, 47742, 47743, 47744, 47745, 47746, 47750, 47752, 47753, 47754, 47755, 47757, 47758, 47759, 47760, 47761, 47762, null, null, null, null, null, null, 47763, 47764, 47765, 47766, 47767, 47768, 47769, 47770, 47771, 47772, 47773, 47774, 47775, 47776, 47777, 47778, 47779, 47780, 47781, 47782, 47783, 47786, 47789, 47790, 47791, 47793, 47795, 47796, 47797, 47798, 47799, 47802, 47804, 47806, 47807, 47808, 47809, 47810, 47811, 47813, 47814, 47815, 47817, 47818, 47819, 47820, 47821, 47822, 47823, 47824, 47825, 47826, 47827, 47828, 47829, 47830, 47831, 47834, 47835, 47836, 47837, 47838, 47839, 47840, 47841, 47842, 47843, 47844, 47845, 47846, 47847, 47848, 47849, 47850, 47851, 47852, 47853, 47854, 47855, 47856, 47857, 47858, 47859, 47860, 47861, 47862, 47863, 47864, 47865, 47866, 47867, 47869, 47870, 47871, 47873, 47874, 47875, 47877, 47878, 47879, 47880, 47881, 47882, 47883, 47884, 47886, 47888, 47890, 47891, 47892, 47893, 47894, 47895, 47897, 47898, 47899, 47901, 47902, 47903, 47905, 47906, 47907, 47908, 47909, 47910, 47911, 47912, 47914, 47916, 47917, 47918, 47919, 47920, 47921, 47922, 47923, 47927, 47929, 47930, 47935, 47936, 47937, 47938, 47939, 47942, 47944, 47946, 47947, 47948, 47950, 47953, 47954, null, null, null, null, null, null, 47955, 47957, 47958, 47959, 47961, 47962, 47963, 47964, 47965, 47966, 47967, 47968, 47970, 47972, 47973, 47974, 47975, 47976, 47977, 47978, 47979, 47981, 47982, 47983, 47984, 47985, null, null, null, null, null, null, 47986, 47987, 47988, 47989, 47990, 47991, 47992, 47993, 47994, 47995, 47996, 47997, 47998, 47999, 48e3, 48001, 48002, 48003, 48004, 48005, 48006, 48007, 48009, 48010, 48011, 48013, 48014, 48015, 48017, 48018, 48019, 48020, 48021, 48022, 48023, 48024, 48025, 48026, 48027, 48028, 48029, 48030, 48031, 48032, 48033, 48034, 48035, 48037, 48038, 48039, 48041, 48042, 48043, 48045, 48046, 48047, 48048, 48049, 48050, 48051, 48053, 48054, 48056, 48057, 48058, 48059, 48060, 48061, 48062, 48063, 48065, 48066, 48067, 48069, 48070, 48071, 48073, 48074, 48075, 48076, 48077, 48078, 48079, 48081, 48082, 48084, 48085, 48086, 48087, 48088, 48089, 48090, 48091, 48092, 48093, 48094, 48095, 48096, 48097, 48098, 48099, 48100, 48101, 48102, 48103, 48104, 48105, 48106, 48107, 48108, 48109, 48110, 48111, 48112, 48113, 48114, 48115, 48116, 48117, 48118, 48119, 48122, 48123, 48125, 48126, 48129, 48131, 48132, 48133, 48134, 48135, 48138, 48142, 48144, 48146, 48147, 48153, 48154, 48160, 48161, 48162, 48163, 48166, 48168, 48170, 48171, 48172, 48174, 48175, 48178, 48179, 48181, null, null, null, null, null, null, 48182, 48183, 48185, 48186, 48187, 48188, 48189, 48190, 48191, 48194, 48198, 48199, 48200, 48202, 48203, 48206, 48207, 48209, 48210, 48211, 48212, 48213, 48214, 48215, 48216, 48217, null, null, null, null, null, null, 48218, 48219, 48220, 48222, 48223, 48224, 48225, 48226, 48227, 48228, 48229, 48230, 48231, 48232, 48233, 48234, 48235, 48236, 48237, 48238, 48239, 48240, 48241, 48242, 48243, 48244, 48245, 48246, 48247, 48248, 48249, 48250, 48251, 48252, 48253, 48254, 48255, 48256, 48257, 48258, 48259, 48262, 48263, 48265, 48266, 48269, 48271, 48272, 48273, 48274, 48275, 48278, 48280, 48283, 48284, 48285, 48286, 48287, 48290, 48291, 48293, 48294, 48297, 48298, 48299, 48300, 48301, 48302, 48303, 48306, 48310, 48311, 48312, 48313, 48314, 48315, 48318, 48319, 48321, 48322, 48323, 48325, 48326, 48327, 48328, 48329, 48330, 48331, 48332, 48334, 48338, 48339, 48340, 48342, 48343, 48345, 48346, 48347, 48349, 48350, 48351, 48352, 48353, 48354, 48355, 48356, 48357, 48358, 48359, 48360, 48361, 48362, 48363, 48364, 48365, 48366, 48367, 48368, 48369, 48370, 48371, 48375, 48377, 48378, 48379, 48381, 48382, 48383, 48384, 48385, 48386, 48387, 48390, 48392, 48394, 48395, 48396, 48397, 48398, 48399, 48401, 48402, 48403, 48405, 48406, 48407, 48408, 48409, 48410, 48411, 48412, 48413, null, null, null, null, null, null, 48414, 48415, 48416, 48417, 48418, 48419, 48421, 48422, 48423, 48424, 48425, 48426, 48427, 48429, 48430, 48431, 48432, 48433, 48434, 48435, 48436, 48437, 48438, 48439, 48440, 48441, null, null, null, null, null, null, 48442, 48443, 48444, 48445, 48446, 48447, 48449, 48450, 48451, 48452, 48453, 48454, 48455, 48458, 48459, 48461, 48462, 48463, 48465, 48466, 48467, 48468, 48469, 48470, 48471, 48474, 48475, 48476, 48477, 48478, 48479, 48480, 48481, 48482, 48483, 48485, 48486, 48487, 48489, 48490, 48491, 48492, 48493, 48494, 48495, 48496, 48497, 48498, 48499, 48500, 48501, 48502, 48503, 48504, 48505, 48506, 48507, 48508, 48509, 48510, 48511, 48514, 48515, 48517, 48518, 48523, 48524, 48525, 48526, 48527, 48530, 48532, 48534, 48535, 48536, 48539, 48541, 48542, 48543, 48544, 48545, 48546, 48547, 48549, 48550, 48551, 48552, 48553, 48554, 48555, 48556, 48557, 48558, 48559, 48561, 48562, 48563, 48564, 48565, 48566, 48567, 48569, 48570, 48571, 48572, 48573, 48574, 48575, 48576, 48577, 48578, 48579, 48580, 48581, 48582, 48583, 48584, 48585, 48586, 48587, 48588, 48589, 48590, 48591, 48592, 48593, 48594, 48595, 48598, 48599, 48601, 48602, 48603, 48605, 48606, 48607, 48608, 48609, 48610, 48611, 48612, 48613, 48614, 48615, 48616, 48618, 48619, 48620, 48621, 48622, 48623, 48625, null, null, null, null, null, null, 48626, 48627, 48629, 48630, 48631, 48633, 48634, 48635, 48636, 48637, 48638, 48639, 48641, 48642, 48644, 48646, 48647, 48648, 48649, 48650, 48651, 48654, 48655, 48657, 48658, 48659, null, null, null, null, null, null, 48661, 48662, 48663, 48664, 48665, 48666, 48667, 48670, 48672, 48673, 48674, 48675, 48676, 48677, 48678, 48679, 48680, 48681, 48682, 48683, 48684, 48685, 48686, 48687, 48688, 48689, 48690, 48691, 48692, 48693, 48694, 48695, 48696, 48697, 48698, 48699, 48700, 48701, 48702, 48703, 48704, 48705, 48706, 48707, 48710, 48711, 48713, 48714, 48715, 48717, 48719, 48720, 48721, 48722, 48723, 48726, 48728, 48732, 48733, 48734, 48735, 48738, 48739, 48741, 48742, 48743, 48745, 48747, 48748, 48749, 48750, 48751, 48754, 48758, 48759, 48760, 48761, 48762, 48766, 48767, 48769, 48770, 48771, 48773, 48774, 48775, 48776, 48777, 48778, 48779, 48782, 48786, 48787, 48788, 48789, 48790, 48791, 48794, 48795, 48796, 48797, 48798, 48799, 48800, 48801, 48802, 48803, 48804, 48805, 48806, 48807, 48809, 48810, 48811, 48812, 48813, 48814, 48815, 48816, 48817, 48818, 48819, 48820, 48821, 48822, 48823, 48824, 48825, 48826, 48827, 48828, 48829, 48830, 48831, 48832, 48833, 48834, 48835, 48836, 48837, 48838, 48839, 48840, 48841, 48842, 48843, 48844, 48845, 48846, 48847, 48850, 48851, null, null, null, null, null, null, 48853, 48854, 48857, 48858, 48859, 48860, 48861, 48862, 48863, 48865, 48866, 48870, 48871, 48872, 48873, 48874, 48875, 48877, 48878, 48879, 48880, 48881, 48882, 48883, 48884, 48885, null, null, null, null, null, null, 48886, 48887, 48888, 48889, 48890, 48891, 48892, 48893, 48894, 48895, 48896, 48898, 48899, 48900, 48901, 48902, 48903, 48906, 48907, 48908, 48909, 48910, 48911, 48912, 48913, 48914, 48915, 48916, 48917, 48918, 48919, 48922, 48926, 48927, 48928, 48929, 48930, 48931, 48932, 48933, 48934, 48935, 48936, 48937, 48938, 48939, 48940, 48941, 48942, 48943, 48944, 48945, 48946, 48947, 48948, 48949, 48950, 48951, 48952, 48953, 48954, 48955, 48956, 48957, 48958, 48959, 48962, 48963, 48965, 48966, 48967, 48969, 48970, 48971, 48972, 48973, 48974, 48975, 48978, 48979, 48980, 48982, 48983, 48984, 48985, 48986, 48987, 48988, 48989, 48990, 48991, 48992, 48993, 48994, 48995, 48996, 48997, 48998, 48999, 49e3, 49001, 49002, 49003, 49004, 49005, 49006, 49007, 49008, 49009, 49010, 49011, 49012, 49013, 49014, 49015, 49016, 49017, 49018, 49019, 49020, 49021, 49022, 49023, 49024, 49025, 49026, 49027, 49028, 49029, 49030, 49031, 49032, 49033, 49034, 49035, 49036, 49037, 49038, 49039, 49040, 49041, 49042, 49043, 49045, 49046, 49047, 49048, 49049, 49050, 49051, 49052, 49053, null, null, null, null, null, null, 49054, 49055, 49056, 49057, 49058, 49059, 49060, 49061, 49062, 49063, 49064, 49065, 49066, 49067, 49068, 49069, 49070, 49071, 49073, 49074, 49075, 49076, 49077, 49078, 49079, 49080, null, null, null, null, null, null, 49081, 49082, 49083, 49084, 49085, 49086, 49087, 49088, 49089, 49090, 49091, 49092, 49094, 49095, 49096, 49097, 49098, 49099, 49102, 49103, 49105, 49106, 49107, 49109, 49110, 49111, 49112, 49113, 49114, 49115, 49117, 49118, 49120, 49122, 49123, 49124, 49125, 49126, 49127, 49128, 49129, 49130, 49131, 49132, 49133, 49134, 49135, 49136, 49137, 49138, 49139, 49140, 49141, 49142, 49143, 49144, 49145, 49146, 49147, 49148, 49149, 49150, 49151, 49152, 49153, 49154, 49155, 49156, 49157, 49158, 49159, 49160, 49161, 49162, 49163, 49164, 49165, 49166, 49167, 49168, 49169, 49170, 49171, 49172, 49173, 49174, 49175, 49176, 49177, 49178, 49179, 49180, 49181, 49182, 49183, 49184, 49185, 49186, 49187, 49188, 49189, 49190, 49191, 49192, 49193, 49194, 49195, 49196, 49197, 49198, 49199, 49200, 49201, 49202, 49203, 49204, 49205, 49206, 49207, 49208, 49209, 49210, 49211, 49213, 49214, 49215, 49216, 49217, 49218, 49219, 49220, 49221, 49222, 49223, 49224, 49225, 49226, 49227, 49228, 49229, 49230, 49231, 49232, 49234, 49235, 49236, 49237, 49238, 49239, 49241, 49242, 49243, null, null, null, null, null, null, 49245, 49246, 49247, 49249, 49250, 49251, 49252, 49253, 49254, 49255, 49258, 49259, 49260, 49261, 49262, 49263, 49264, 49265, 49266, 49267, 49268, 49269, 49270, 49271, 49272, 49273, null, null, null, null, null, null, 49274, 49275, 49276, 49277, 49278, 49279, 49280, 49281, 49282, 49283, 49284, 49285, 49286, 49287, 49288, 49289, 49290, 49291, 49292, 49293, 49294, 49295, 49298, 49299, 49301, 49302, 49303, 49305, 49306, 49307, 49308, 49309, 49310, 49311, 49314, 49316, 49318, 49319, 49320, 49321, 49322, 49323, 49326, 49329, 49330, 49335, 49336, 49337, 49338, 49339, 49342, 49346, 49347, 49348, 49350, 49351, 49354, 49355, 49357, 49358, 49359, 49361, 49362, 49363, 49364, 49365, 49366, 49367, 49370, 49374, 49375, 49376, 49377, 49378, 49379, 49382, 49383, 49385, 49386, 49387, 49389, 49390, 49391, 49392, 49393, 49394, 49395, 49398, 49400, 49402, 49403, 49404, 49405, 49406, 49407, 49409, 49410, 49411, 49413, 49414, 49415, 49417, 49418, 49419, 49420, 49421, 49422, 49423, 49425, 49426, 49427, 49428, 49430, 49431, 49432, 49433, 49434, 49435, 49441, 49442, 49445, 49448, 49449, 49450, 49451, 49454, 49458, 49459, 49460, 49461, 49463, 49466, 49467, 49469, 49470, 49471, 49473, 49474, 49475, 49476, 49477, 49478, 49479, 49482, 49486, 49487, 49488, 49489, 49490, 49491, 49494, 49495, null, null, null, null, null, null, 49497, 49498, 49499, 49501, 49502, 49503, 49504, 49505, 49506, 49507, 49510, 49514, 49515, 49516, 49517, 49518, 49519, 49521, 49522, 49523, 49525, 49526, 49527, 49529, 49530, 49531, null, null, null, null, null, null, 49532, 49533, 49534, 49535, 49536, 49537, 49538, 49539, 49540, 49542, 49543, 49544, 49545, 49546, 49547, 49551, 49553, 49554, 49555, 49557, 49559, 49560, 49561, 49562, 49563, 49566, 49568, 49570, 49571, 49572, 49574, 49575, 49578, 49579, 49581, 49582, 49583, 49585, 49586, 49587, 49588, 49589, 49590, 49591, 49592, 49593, 49594, 49595, 49596, 49598, 49599, 49600, 49601, 49602, 49603, 49605, 49606, 49607, 49609, 49610, 49611, 49613, 49614, 49615, 49616, 49617, 49618, 49619, 49621, 49622, 49625, 49626, 49627, 49628, 49629, 49630, 49631, 49633, 49634, 49635, 49637, 49638, 49639, 49641, 49642, 49643, 49644, 49645, 49646, 49647, 49650, 49652, 49653, 49654, 49655, 49656, 49657, 49658, 49659, 49662, 49663, 49665, 49666, 49667, 49669, 49670, 49671, 49672, 49673, 49674, 49675, 49678, 49680, 49682, 49683, 49684, 49685, 49686, 49687, 49690, 49691, 49693, 49694, 49697, 49698, 49699, 49700, 49701, 49702, 49703, 49706, 49708, 49710, 49712, 49715, 49717, 49718, 49719, 49720, 49721, 49722, 49723, 49724, 49725, 49726, 49727, 49728, 49729, 49730, 49731, 49732, 49733, null, null, null, null, null, null, 49734, 49735, 49737, 49738, 49739, 49740, 49741, 49742, 49743, 49746, 49747, 49749, 49750, 49751, 49753, 49754, 49755, 49756, 49757, 49758, 49759, 49761, 49762, 49763, 49764, 49766, null, null, null, null, null, null, 49767, 49768, 49769, 49770, 49771, 49774, 49775, 49777, 49778, 49779, 49781, 49782, 49783, 49784, 49785, 49786, 49787, 49790, 49792, 49794, 49795, 49796, 49797, 49798, 49799, 49802, 49803, 49804, 49805, 49806, 49807, 49809, 49810, 49811, 49812, 49813, 49814, 49815, 49817, 49818, 49820, 49822, 49823, 49824, 49825, 49826, 49827, 49830, 49831, 49833, 49834, 49835, 49838, 49839, 49840, 49841, 49842, 49843, 49846, 49848, 49850, 49851, 49852, 49853, 49854, 49855, 49856, 49857, 49858, 49859, 49860, 49861, 49862, 49863, 49864, 49865, 49866, 49867, 49868, 49869, 49870, 49871, 49872, 49873, 49874, 49875, 49876, 49877, 49878, 49879, 49880, 49881, 49882, 49883, 49886, 49887, 49889, 49890, 49893, 49894, 49895, 49896, 49897, 49898, 49902, 49904, 49906, 49907, 49908, 49909, 49911, 49914, 49917, 49918, 49919, 49921, 49922, 49923, 49924, 49925, 49926, 49927, 49930, 49931, 49934, 49935, 49936, 49937, 49938, 49942, 49943, 49945, 49946, 49947, 49949, 49950, 49951, 49952, 49953, 49954, 49955, 49958, 49959, 49962, 49963, 49964, 49965, 49966, 49967, 49968, 49969, 49970, null, null, null, null, null, null, 49971, 49972, 49973, 49974, 49975, 49976, 49977, 49978, 49979, 49980, 49981, 49982, 49983, 49984, 49985, 49986, 49987, 49988, 49990, 49991, 49992, 49993, 49994, 49995, 49996, 49997, null, null, null, null, null, null, 49998, 49999, 5e4, 50001, 50002, 50003, 50004, 50005, 50006, 50007, 50008, 50009, 50010, 50011, 50012, 50013, 50014, 50015, 50016, 50017, 50018, 50019, 50020, 50021, 50022, 50023, 50026, 50027, 50029, 50030, 50031, 50033, 50035, 50036, 50037, 50038, 50039, 50042, 50043, 50046, 50047, 50048, 50049, 50050, 50051, 50053, 50054, 50055, 50057, 50058, 50059, 50061, 50062, 50063, 50064, 50065, 50066, 50067, 50068, 50069, 50070, 50071, 50072, 50073, 50074, 50075, 50076, 50077, 50078, 50079, 50080, 50081, 50082, 50083, 50084, 50085, 50086, 50087, 50088, 50089, 50090, 50091, 50092, 50093, 50094, 50095, 50096, 50097, 50098, 50099, 50100, 50101, 50102, 50103, 50104, 50105, 50106, 50107, 50108, 50109, 50110, 50111, 50113, 50114, 50115, 50116, 50117, 50118, 50119, 50120, 50121, 50122, 50123, 50124, 50125, 50126, 50127, 50128, 50129, 50130, 50131, 50132, 50133, 50134, 50135, 50138, 50139, 50141, 50142, 50145, 50147, 50148, 50149, 50150, 50151, 50154, 50155, 50156, 50158, 50159, 50160, 50161, 50162, 50163, 50166, 50167, 50169, 50170, 50171, 50172, 50173, 50174, null, null, null, null, null, null, 50175, 50176, 50177, 50178, 50179, 50180, 50181, 50182, 50183, 50185, 50186, 50187, 50188, 50189, 50190, 50191, 50193, 50194, 50195, 50196, 50197, 50198, 50199, 50200, 50201, 50202, null, null, null, null, null, null, 50203, 50204, 50205, 50206, 50207, 50208, 50209, 50210, 50211, 50213, 50214, 50215, 50216, 50217, 50218, 50219, 50221, 50222, 50223, 50225, 50226, 50227, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50238, 50239, 50240, 50241, 50242, 50243, 50244, 50245, 50246, 50247, 50249, 50250, 50251, 50252, 50253, 50254, 50255, 50256, 50257, 50258, 50259, 50260, 50261, 50262, 50263, 50264, 50265, 50266, 50267, 50268, 50269, 50270, 50271, 50272, 50273, 50274, 50275, 50278, 50279, 50281, 50282, 50283, 50285, 50286, 50287, 50288, 50289, 50290, 50291, 50294, 50295, 50296, 50298, 50299, 50300, 50301, 50302, 50303, 50305, 50306, 50307, 50308, 50309, 50310, 50311, 50312, 50313, 50314, 50315, 50316, 50317, 50318, 50319, 50320, 50321, 50322, 50323, 50325, 50326, 50327, 50328, 50329, 50330, 50331, 50333, 50334, 50335, 50336, 50337, 50338, 50339, 50340, 50341, 50342, 50343, 50344, 50345, 50346, 50347, 50348, 50349, 50350, 50351, 50352, 50353, 50354, 50355, 50356, 50357, 50358, 50359, 50361, 50362, 50363, 50365, 50366, 50367, 50368, 50369, 50370, 50371, 50372, 50373, null, null, null, null, null, null, 50374, 50375, 50376, 50377, 50378, 50379, 50380, 50381, 50382, 50383, 50384, 50385, 50386, 50387, 50388, 50389, 50390, 50391, 50392, 50393, 50394, 50395, 50396, 50397, 50398, 50399, null, null, null, null, null, null, 50400, 50401, 50402, 50403, 50404, 50405, 50406, 50407, 50408, 50410, 50411, 50412, 50413, 50414, 50415, 50418, 50419, 50421, 50422, 50423, 50425, 50427, 50428, 50429, 50430, 50434, 50435, 50436, 50437, 50438, 50439, 50440, 50441, 50442, 50443, 50445, 50446, 50447, 50449, 50450, 50451, 50453, 50454, 50455, 50456, 50457, 50458, 50459, 50461, 50462, 50463, 50464, 50465, 50466, 50467, 50468, 50469, 50470, 50471, 50474, 50475, 50477, 50478, 50479, 50481, 50482, 50483, 50484, 50485, 50486, 50487, 50490, 50492, 50494, 50495, 50496, 50497, 50498, 50499, 50502, 50503, 50507, 50511, 50512, 50513, 50514, 50518, 50522, 50523, 50524, 50527, 50530, 50531, 50533, 50534, 50535, 50537, 50538, 50539, 50540, 50541, 50542, 50543, 50546, 50550, 50551, 50552, 50553, 50554, 50555, 50558, 50559, 50561, 50562, 50563, 50565, 50566, 50568, 50569, 50570, 50571, 50574, 50576, 50578, 50579, 50580, 50582, 50585, 50586, 50587, 50589, 50590, 50591, 50593, 50594, 50595, 50596, 50597, 50598, 50599, 50600, 50602, 50603, 50604, 50605, 50606, 50607, 50608, 50609, 50610, 50611, 50614, null, null, null, null, null, null, 50615, 50618, 50623, 50624, 50625, 50626, 50627, 50635, 50637, 50639, 50642, 50643, 50645, 50646, 50647, 50649, 50650, 50651, 50652, 50653, 50654, 50655, 50658, 50660, 50662, 50663, null, null, null, null, null, null, 50664, 50665, 50666, 50667, 50671, 50673, 50674, 50675, 50677, 50680, 50681, 50682, 50683, 50690, 50691, 50692, 50697, 50698, 50699, 50701, 50702, 50703, 50705, 50706, 50707, 50708, 50709, 50710, 50711, 50714, 50717, 50718, 50719, 50720, 50721, 50722, 50723, 50726, 50727, 50729, 50730, 50731, 50735, 50737, 50738, 50742, 50744, 50746, 50748, 50749, 50750, 50751, 50754, 50755, 50757, 50758, 50759, 50761, 50762, 50763, 50764, 50765, 50766, 50767, 50770, 50774, 50775, 50776, 50777, 50778, 50779, 50782, 50783, 50785, 50786, 50787, 50788, 50789, 50790, 50791, 50792, 50793, 50794, 50795, 50797, 50798, 50800, 50802, 50803, 50804, 50805, 50806, 50807, 50810, 50811, 50813, 50814, 50815, 50817, 50818, 50819, 50820, 50821, 50822, 50823, 50826, 50828, 50830, 50831, 50832, 50833, 50834, 50835, 50838, 50839, 50841, 50842, 50843, 50845, 50846, 50847, 50848, 50849, 50850, 50851, 50854, 50856, 50858, 50859, 50860, 50861, 50862, 50863, 50866, 50867, 50869, 50870, 50871, 50875, 50876, 50877, 50878, 50879, 50882, 50884, 50886, 50887, 50888, 50889, 50890, 50891, 50894, null, null, null, null, null, null, 50895, 50897, 50898, 50899, 50901, 50902, 50903, 50904, 50905, 50906, 50907, 50910, 50911, 50914, 50915, 50916, 50917, 50918, 50919, 50922, 50923, 50925, 50926, 50927, 50929, 50930, null, null, null, null, null, null, 50931, 50932, 50933, 50934, 50935, 50938, 50939, 50940, 50942, 50943, 50944, 50945, 50946, 50947, 50950, 50951, 50953, 50954, 50955, 50957, 50958, 50959, 50960, 50961, 50962, 50963, 50966, 50968, 50970, 50971, 50972, 50973, 50974, 50975, 50978, 50979, 50981, 50982, 50983, 50985, 50986, 50987, 50988, 50989, 50990, 50991, 50994, 50996, 50998, 51e3, 51001, 51002, 51003, 51006, 51007, 51009, 51010, 51011, 51013, 51014, 51015, 51016, 51017, 51019, 51022, 51024, 51033, 51034, 51035, 51037, 51038, 51039, 51041, 51042, 51043, 51044, 51045, 51046, 51047, 51049, 51050, 51052, 51053, 51054, 51055, 51056, 51057, 51058, 51059, 51062, 51063, 51065, 51066, 51067, 51071, 51072, 51073, 51074, 51078, 51083, 51084, 51085, 51087, 51090, 51091, 51093, 51097, 51099, 51100, 51101, 51102, 51103, 51106, 51111, 51112, 51113, 51114, 51115, 51118, 51119, 51121, 51122, 51123, 51125, 51126, 51127, 51128, 51129, 51130, 51131, 51134, 51138, 51139, 51140, 51141, 51142, 51143, 51146, 51147, 51149, 51151, 51153, 51154, 51155, 51156, 51157, 51158, 51159, 51161, 51162, 51163, 51164, null, null, null, null, null, null, 51166, 51167, 51168, 51169, 51170, 51171, 51173, 51174, 51175, 51177, 51178, 51179, 51181, 51182, 51183, 51184, 51185, 51186, 51187, 51188, 51189, 51190, 51191, 51192, 51193, 51194, null, null, null, null, null, null, 51195, 51196, 51197, 51198, 51199, 51202, 51203, 51205, 51206, 51207, 51209, 51211, 51212, 51213, 51214, 51215, 51218, 51220, 51223, 51224, 51225, 51226, 51227, 51230, 51231, 51233, 51234, 51235, 51237, 51238, 51239, 51240, 51241, 51242, 51243, 51246, 51248, 51250, 51251, 51252, 51253, 51254, 51255, 51257, 51258, 51259, 51261, 51262, 51263, 51265, 51266, 51267, 51268, 51269, 51270, 51271, 51274, 51275, 51278, 51279, 51280, 51281, 51282, 51283, 51285, 51286, 51287, 51288, 51289, 51290, 51291, 51292, 51293, 51294, 51295, 51296, 51297, 51298, 51299, 51300, 51301, 51302, 51303, 51304, 51305, 51306, 51307, 51308, 51309, 51310, 51311, 51314, 51315, 51317, 51318, 51319, 51321, 51323, 51324, 51325, 51326, 51327, 51330, 51332, 51336, 51337, 51338, 51342, 51343, 51344, 51345, 51346, 51347, 51349, 51350, 51351, 51352, 51353, 51354, 51355, 51356, 51358, 51360, 51362, 51363, 51364, 51365, 51366, 51367, 51369, 51370, 51371, 51372, 51373, 51374, 51375, 51376, 51377, 51378, 51379, 51380, 51381, 51382, 51383, 51384, 51385, 51386, 51387, 51390, 51391, 51392, 51393, null, null, null, null, null, null, 51394, 51395, 51397, 51398, 51399, 51401, 51402, 51403, 51405, 51406, 51407, 51408, 51409, 51410, 51411, 51414, 51416, 51418, 51419, 51420, 51421, 51422, 51423, 51426, 51427, 51429, null, null, null, null, null, null, 51430, 51431, 51432, 51433, 51434, 51435, 51436, 51437, 51438, 51439, 51440, 51441, 51442, 51443, 51444, 51446, 51447, 51448, 51449, 51450, 51451, 51454, 51455, 51457, 51458, 51459, 51463, 51464, 51465, 51466, 51467, 51470, 12288, 12289, 12290, 183, 8229, 8230, 168, 12291, 173, 8213, 8741, 65340, 8764, 8216, 8217, 8220, 8221, 12308, 12309, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 177, 215, 247, 8800, 8804, 8805, 8734, 8756, 176, 8242, 8243, 8451, 8491, 65504, 65505, 65509, 9794, 9792, 8736, 8869, 8978, 8706, 8711, 8801, 8786, 167, 8251, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8594, 8592, 8593, 8595, 8596, 12307, 8810, 8811, 8730, 8765, 8733, 8757, 8747, 8748, 8712, 8715, 8838, 8839, 8834, 8835, 8746, 8745, 8743, 8744, 65506, 51472, 51474, 51475, 51476, 51477, 51478, 51479, 51481, 51482, 51483, 51484, 51485, 51486, 51487, 51488, 51489, 51490, 51491, 51492, 51493, 51494, 51495, 51496, 51497, 51498, 51499, null, null, null, null, null, null, 51501, 51502, 51503, 51504, 51505, 51506, 51507, 51509, 51510, 51511, 51512, 51513, 51514, 51515, 51516, 51517, 51518, 51519, 51520, 51521, 51522, 51523, 51524, 51525, 51526, 51527, null, null, null, null, null, null, 51528, 51529, 51530, 51531, 51532, 51533, 51534, 51535, 51538, 51539, 51541, 51542, 51543, 51545, 51546, 51547, 51548, 51549, 51550, 51551, 51554, 51556, 51557, 51558, 51559, 51560, 51561, 51562, 51563, 51565, 51566, 51567, 8658, 8660, 8704, 8707, 180, 65374, 711, 728, 733, 730, 729, 184, 731, 161, 191, 720, 8750, 8721, 8719, 164, 8457, 8240, 9665, 9664, 9655, 9654, 9828, 9824, 9825, 9829, 9831, 9827, 8857, 9672, 9635, 9680, 9681, 9618, 9636, 9637, 9640, 9639, 9638, 9641, 9832, 9743, 9742, 9756, 9758, 182, 8224, 8225, 8597, 8599, 8601, 8598, 8600, 9837, 9833, 9834, 9836, 12927, 12828, 8470, 13255, 8482, 13250, 13272, 8481, 8364, 174, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 51569, 51570, 51571, 51573, 51574, 51575, 51576, 51577, 51578, 51579, 51581, 51582, 51583, 51584, 51585, 51586, 51587, 51588, 51589, 51590, 51591, 51594, 51595, 51597, 51598, 51599, null, null, null, null, null, null, 51601, 51602, 51603, 51604, 51605, 51606, 51607, 51610, 51612, 51614, 51615, 51616, 51617, 51618, 51619, 51620, 51621, 51622, 51623, 51624, 51625, 51626, 51627, 51628, 51629, 51630, null, null, null, null, null, null, 51631, 51632, 51633, 51634, 51635, 51636, 51637, 51638, 51639, 51640, 51641, 51642, 51643, 51644, 51645, 51646, 51647, 51650, 51651, 51653, 51654, 51657, 51659, 51660, 51661, 51662, 51663, 51666, 51668, 51671, 51672, 51675, 65281, 65282, 65283, 65284, 65285, 65286, 65287, 65288, 65289, 65290, 65291, 65292, 65293, 65294, 65295, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65306, 65307, 65308, 65309, 65310, 65311, 65312, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65339, 65510, 65341, 65342, 65343, 65344, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 65371, 65372, 65373, 65507, 51678, 51679, 51681, 51683, 51685, 51686, 51688, 51689, 51690, 51691, 51694, 51698, 51699, 51700, 51701, 51702, 51703, 51706, 51707, 51709, 51710, 51711, 51713, 51714, 51715, 51716, null, null, null, null, null, null, 51717, 51718, 51719, 51722, 51726, 51727, 51728, 51729, 51730, 51731, 51733, 51734, 51735, 51737, 51738, 51739, 51740, 51741, 51742, 51743, 51744, 51745, 51746, 51747, 51748, 51749, null, null, null, null, null, null, 51750, 51751, 51752, 51754, 51755, 51756, 51757, 51758, 51759, 51760, 51761, 51762, 51763, 51764, 51765, 51766, 51767, 51768, 51769, 51770, 51771, 51772, 51773, 51774, 51775, 51776, 51777, 51778, 51779, 51780, 51781, 51782, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 51783, 51784, 51785, 51786, 51787, 51790, 51791, 51793, 51794, 51795, 51797, 51798, 51799, 51800, 51801, 51802, 51803, 51806, 51810, 51811, 51812, 51813, 51814, 51815, 51817, 51818, null, null, null, null, null, null, 51819, 51820, 51821, 51822, 51823, 51824, 51825, 51826, 51827, 51828, 51829, 51830, 51831, 51832, 51833, 51834, 51835, 51836, 51838, 51839, 51840, 51841, 51842, 51843, 51845, 51846, null, null, null, null, null, null, 51847, 51848, 51849, 51850, 51851, 51852, 51853, 51854, 51855, 51856, 51857, 51858, 51859, 51860, 51861, 51862, 51863, 51865, 51866, 51867, 51868, 51869, 51870, 51871, 51872, 51873, 51874, 51875, 51876, 51877, 51878, 51879, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, null, null, null, null, null, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, null, null, null, null, null, null, null, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, null, null, null, null, null, null, null, null, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, null, null, null, null, null, null, 51880, 51881, 51882, 51883, 51884, 51885, 51886, 51887, 51888, 51889, 51890, 51891, 51892, 51893, 51894, 51895, 51896, 51897, 51898, 51899, 51902, 51903, 51905, 51906, 51907, 51909, null, null, null, null, null, null, 51910, 51911, 51912, 51913, 51914, 51915, 51918, 51920, 51922, 51924, 51925, 51926, 51927, 51930, 51931, 51932, 51933, 51934, 51935, 51937, 51938, 51939, 51940, 51941, 51942, 51943, null, null, null, null, null, null, 51944, 51945, 51946, 51947, 51949, 51950, 51951, 51952, 51953, 51954, 51955, 51957, 51958, 51959, 51960, 51961, 51962, 51963, 51964, 51965, 51966, 51967, 51968, 51969, 51970, 51971, 51972, 51973, 51974, 51975, 51977, 51978, 9472, 9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475, 9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512, 9527, 9535, 9501, 9520, 9509, 9528, 9538, 9490, 9489, 9498, 9497, 9494, 9493, 9486, 9485, 9502, 9503, 9505, 9506, 9510, 9511, 9513, 9514, 9517, 9518, 9521, 9522, 9525, 9526, 9529, 9530, 9533, 9534, 9536, 9537, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 51979, 51980, 51981, 51982, 51983, 51985, 51986, 51987, 51989, 51990, 51991, 51993, 51994, 51995, 51996, 51997, 51998, 51999, 52002, 52003, 52004, 52005, 52006, 52007, 52008, 52009, null, null, null, null, null, null, 52010, 52011, 52012, 52013, 52014, 52015, 52016, 52017, 52018, 52019, 52020, 52021, 52022, 52023, 52024, 52025, 52026, 52027, 52028, 52029, 52030, 52031, 52032, 52034, 52035, 52036, null, null, null, null, null, null, 52037, 52038, 52039, 52042, 52043, 52045, 52046, 52047, 52049, 52050, 52051, 52052, 52053, 52054, 52055, 52058, 52059, 52060, 52062, 52063, 52064, 52065, 52066, 52067, 52069, 52070, 52071, 52072, 52073, 52074, 52075, 52076, 13205, 13206, 13207, 8467, 13208, 13252, 13219, 13220, 13221, 13222, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13258, 13197, 13198, 13199, 13263, 13192, 13193, 13256, 13223, 13224, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13184, 13185, 13186, 13187, 13188, 13242, 13243, 13244, 13245, 13246, 13247, 13200, 13201, 13202, 13203, 13204, 8486, 13248, 13249, 13194, 13195, 13196, 13270, 13253, 13229, 13230, 13231, 13275, 13225, 13226, 13227, 13228, 13277, 13264, 13267, 13251, 13257, 13276, 13254, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 52077, 52078, 52079, 52080, 52081, 52082, 52083, 52084, 52085, 52086, 52087, 52090, 52091, 52092, 52093, 52094, 52095, 52096, 52097, 52098, 52099, 52100, 52101, 52102, 52103, 52104, null, null, null, null, null, null, 52105, 52106, 52107, 52108, 52109, 52110, 52111, 52112, 52113, 52114, 52115, 52116, 52117, 52118, 52119, 52120, 52121, 52122, 52123, 52125, 52126, 52127, 52128, 52129, 52130, 52131, null, null, null, null, null, null, 52132, 52133, 52134, 52135, 52136, 52137, 52138, 52139, 52140, 52141, 52142, 52143, 52144, 52145, 52146, 52147, 52148, 52149, 52150, 52151, 52153, 52154, 52155, 52156, 52157, 52158, 52159, 52160, 52161, 52162, 52163, 52164, 198, 208, 170, 294, null, 306, null, 319, 321, 216, 338, 186, 222, 358, 330, null, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 189, 8531, 8532, 188, 190, 8539, 8540, 8541, 8542, 52165, 52166, 52167, 52168, 52169, 52170, 52171, 52172, 52173, 52174, 52175, 52176, 52177, 52178, 52179, 52181, 52182, 52183, 52184, 52185, 52186, 52187, 52188, 52189, 52190, 52191, null, null, null, null, null, null, 52192, 52193, 52194, 52195, 52197, 52198, 52200, 52202, 52203, 52204, 52205, 52206, 52207, 52208, 52209, 52210, 52211, 52212, 52213, 52214, 52215, 52216, 52217, 52218, 52219, 52220, null, null, null, null, null, null, 52221, 52222, 52223, 52224, 52225, 52226, 52227, 52228, 52229, 52230, 52231, 52232, 52233, 52234, 52235, 52238, 52239, 52241, 52242, 52243, 52245, 52246, 52247, 52248, 52249, 52250, 52251, 52254, 52255, 52256, 52259, 52260, 230, 273, 240, 295, 305, 307, 312, 320, 322, 248, 339, 223, 254, 359, 331, 329, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 185, 178, 179, 8308, 8319, 8321, 8322, 8323, 8324, 52261, 52262, 52266, 52267, 52269, 52271, 52273, 52274, 52275, 52276, 52277, 52278, 52279, 52282, 52287, 52288, 52289, 52290, 52291, 52294, 52295, 52297, 52298, 52299, 52301, 52302, null, null, null, null, null, null, 52303, 52304, 52305, 52306, 52307, 52310, 52314, 52315, 52316, 52317, 52318, 52319, 52321, 52322, 52323, 52325, 52327, 52329, 52330, 52331, 52332, 52333, 52334, 52335, 52337, 52338, null, null, null, null, null, null, 52339, 52340, 52342, 52343, 52344, 52345, 52346, 52347, 52348, 52349, 52350, 52351, 52352, 52353, 52354, 52355, 52356, 52357, 52358, 52359, 52360, 52361, 52362, 52363, 52364, 52365, 52366, 52367, 52368, 52369, 52370, 52371, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, null, null, null, null, null, null, null, null, null, null, null, 52372, 52373, 52374, 52375, 52378, 52379, 52381, 52382, 52383, 52385, 52386, 52387, 52388, 52389, 52390, 52391, 52394, 52398, 52399, 52400, 52401, 52402, 52403, 52406, 52407, 52409, null, null, null, null, null, null, 52410, 52411, 52413, 52414, 52415, 52416, 52417, 52418, 52419, 52422, 52424, 52426, 52427, 52428, 52429, 52430, 52431, 52433, 52434, 52435, 52437, 52438, 52439, 52440, 52441, 52442, null, null, null, null, null, null, 52443, 52444, 52445, 52446, 52447, 52448, 52449, 52450, 52451, 52453, 52454, 52455, 52456, 52457, 52458, 52459, 52461, 52462, 52463, 52465, 52466, 52467, 52468, 52469, 52470, 52471, 52472, 52473, 52474, 52475, 52476, 52477, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, null, null, null, null, null, null, null, null, 52478, 52479, 52480, 52482, 52483, 52484, 52485, 52486, 52487, 52490, 52491, 52493, 52494, 52495, 52497, 52498, 52499, 52500, 52501, 52502, 52503, 52506, 52508, 52510, 52511, 52512, null, null, null, null, null, null, 52513, 52514, 52515, 52517, 52518, 52519, 52521, 52522, 52523, 52525, 52526, 52527, 52528, 52529, 52530, 52531, 52532, 52533, 52534, 52535, 52536, 52538, 52539, 52540, 52541, 52542, null, null, null, null, null, null, 52543, 52544, 52545, 52546, 52547, 52548, 52549, 52550, 52551, 52552, 52553, 52554, 52555, 52556, 52557, 52558, 52559, 52560, 52561, 52562, 52563, 52564, 52565, 52566, 52567, 52568, 52569, 52570, 52571, 52573, 52574, 52575, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, null, null, null, null, null, null, null, null, null, null, null, null, null, 52577, 52578, 52579, 52581, 52582, 52583, 52584, 52585, 52586, 52587, 52590, 52592, 52594, 52595, 52596, 52597, 52598, 52599, 52601, 52602, 52603, 52604, 52605, 52606, 52607, 52608, null, null, null, null, null, null, 52609, 52610, 52611, 52612, 52613, 52614, 52615, 52617, 52618, 52619, 52620, 52621, 52622, 52623, 52624, 52625, 52626, 52627, 52630, 52631, 52633, 52634, 52635, 52637, 52638, 52639, null, null, null, null, null, null, 52640, 52641, 52642, 52643, 52646, 52648, 52650, 52651, 52652, 52653, 52654, 52655, 52657, 52658, 52659, 52660, 52661, 52662, 52663, 52664, 52665, 52666, 52667, 52668, 52669, 52670, 52671, 52672, 52673, 52674, 52675, 52677, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 52678, 52679, 52680, 52681, 52682, 52683, 52685, 52686, 52687, 52689, 52690, 52691, 52692, 52693, 52694, 52695, 52696, 52697, 52698, 52699, 52700, 52701, 52702, 52703, 52704, 52705, null, null, null, null, null, null, 52706, 52707, 52708, 52709, 52710, 52711, 52713, 52714, 52715, 52717, 52718, 52719, 52721, 52722, 52723, 52724, 52725, 52726, 52727, 52730, 52732, 52734, 52735, 52736, 52737, 52738, null, null, null, null, null, null, 52739, 52741, 52742, 52743, 52745, 52746, 52747, 52749, 52750, 52751, 52752, 52753, 52754, 52755, 52757, 52758, 52759, 52760, 52762, 52763, 52764, 52765, 52766, 52767, 52770, 52771, 52773, 52774, 52775, 52777, 52778, 52779, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 52780, 52781, 52782, 52783, 52786, 52788, 52790, 52791, 52792, 52793, 52794, 52795, 52796, 52797, 52798, 52799, 52800, 52801, 52802, 52803, 52804, 52805, 52806, 52807, 52808, 52809, null, null, null, null, null, null, 52810, 52811, 52812, 52813, 52814, 52815, 52816, 52817, 52818, 52819, 52820, 52821, 52822, 52823, 52826, 52827, 52829, 52830, 52834, 52835, 52836, 52837, 52838, 52839, 52842, 52844, null, null, null, null, null, null, 52846, 52847, 52848, 52849, 52850, 52851, 52854, 52855, 52857, 52858, 52859, 52861, 52862, 52863, 52864, 52865, 52866, 52867, 52870, 52872, 52874, 52875, 52876, 52877, 52878, 52879, 52882, 52883, 52885, 52886, 52887, 52889, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 52890, 52891, 52892, 52893, 52894, 52895, 52898, 52902, 52903, 52904, 52905, 52906, 52907, 52910, 52911, 52912, 52913, 52914, 52915, 52916, 52917, 52918, 52919, 52920, 52921, 52922, null, null, null, null, null, null, 52923, 52924, 52925, 52926, 52927, 52928, 52930, 52931, 52932, 52933, 52934, 52935, 52936, 52937, 52938, 52939, 52940, 52941, 52942, 52943, 52944, 52945, 52946, 52947, 52948, 52949, null, null, null, null, null, null, 52950, 52951, 52952, 52953, 52954, 52955, 52956, 52957, 52958, 52959, 52960, 52961, 52962, 52963, 52966, 52967, 52969, 52970, 52973, 52974, 52975, 52976, 52977, 52978, 52979, 52982, 52986, 52987, 52988, 52989, 52990, 52991, 44032, 44033, 44036, 44039, 44040, 44041, 44042, 44048, 44049, 44050, 44051, 44052, 44053, 44054, 44055, 44057, 44058, 44059, 44060, 44061, 44064, 44068, 44076, 44077, 44079, 44080, 44081, 44088, 44089, 44092, 44096, 44107, 44109, 44116, 44120, 44124, 44144, 44145, 44148, 44151, 44152, 44154, 44160, 44161, 44163, 44164, 44165, 44166, 44169, 44170, 44171, 44172, 44176, 44180, 44188, 44189, 44191, 44192, 44193, 44200, 44201, 44202, 44204, 44207, 44208, 44216, 44217, 44219, 44220, 44221, 44225, 44228, 44232, 44236, 44245, 44247, 44256, 44257, 44260, 44263, 44264, 44266, 44268, 44271, 44272, 44273, 44275, 44277, 44278, 44284, 44285, 44288, 44292, 44294, 52994, 52995, 52997, 52998, 52999, 53001, 53002, 53003, 53004, 53005, 53006, 53007, 53010, 53012, 53014, 53015, 53016, 53017, 53018, 53019, 53021, 53022, 53023, 53025, 53026, 53027, null, null, null, null, null, null, 53029, 53030, 53031, 53032, 53033, 53034, 53035, 53038, 53042, 53043, 53044, 53045, 53046, 53047, 53049, 53050, 53051, 53052, 53053, 53054, 53055, 53056, 53057, 53058, 53059, 53060, null, null, null, null, null, null, 53061, 53062, 53063, 53064, 53065, 53066, 53067, 53068, 53069, 53070, 53071, 53072, 53073, 53074, 53075, 53078, 53079, 53081, 53082, 53083, 53085, 53086, 53087, 53088, 53089, 53090, 53091, 53094, 53096, 53098, 53099, 53100, 44300, 44301, 44303, 44305, 44312, 44316, 44320, 44329, 44332, 44333, 44340, 44341, 44344, 44348, 44356, 44357, 44359, 44361, 44368, 44372, 44376, 44385, 44387, 44396, 44397, 44400, 44403, 44404, 44405, 44406, 44411, 44412, 44413, 44415, 44417, 44418, 44424, 44425, 44428, 44432, 44444, 44445, 44452, 44471, 44480, 44481, 44484, 44488, 44496, 44497, 44499, 44508, 44512, 44516, 44536, 44537, 44540, 44543, 44544, 44545, 44552, 44553, 44555, 44557, 44564, 44592, 44593, 44596, 44599, 44600, 44602, 44608, 44609, 44611, 44613, 44614, 44618, 44620, 44621, 44622, 44624, 44628, 44630, 44636, 44637, 44639, 44640, 44641, 44645, 44648, 44649, 44652, 44656, 44664, 53101, 53102, 53103, 53106, 53107, 53109, 53110, 53111, 53113, 53114, 53115, 53116, 53117, 53118, 53119, 53121, 53122, 53123, 53124, 53126, 53127, 53128, 53129, 53130, 53131, 53133, null, null, null, null, null, null, 53134, 53135, 53136, 53137, 53138, 53139, 53140, 53141, 53142, 53143, 53144, 53145, 53146, 53147, 53148, 53149, 53150, 53151, 53152, 53154, 53155, 53156, 53157, 53158, 53159, 53161, null, null, null, null, null, null, 53162, 53163, 53164, 53165, 53166, 53167, 53169, 53170, 53171, 53172, 53173, 53174, 53175, 53176, 53177, 53178, 53179, 53180, 53181, 53182, 53183, 53184, 53185, 53186, 53187, 53189, 53190, 53191, 53192, 53193, 53194, 53195, 44665, 44667, 44668, 44669, 44676, 44677, 44684, 44732, 44733, 44734, 44736, 44740, 44748, 44749, 44751, 44752, 44753, 44760, 44761, 44764, 44776, 44779, 44781, 44788, 44792, 44796, 44807, 44808, 44813, 44816, 44844, 44845, 44848, 44850, 44852, 44860, 44861, 44863, 44865, 44866, 44867, 44872, 44873, 44880, 44892, 44893, 44900, 44901, 44921, 44928, 44932, 44936, 44944, 44945, 44949, 44956, 44984, 44985, 44988, 44992, 44999, 45e3, 45001, 45003, 45005, 45006, 45012, 45020, 45032, 45033, 45040, 45041, 45044, 45048, 45056, 45057, 45060, 45068, 45072, 45076, 45084, 45085, 45096, 45124, 45125, 45128, 45130, 45132, 45134, 45139, 45140, 45141, 45143, 45145, 53196, 53197, 53198, 53199, 53200, 53201, 53202, 53203, 53204, 53205, 53206, 53207, 53208, 53209, 53210, 53211, 53212, 53213, 53214, 53215, 53218, 53219, 53221, 53222, 53223, 53225, null, null, null, null, null, null, 53226, 53227, 53228, 53229, 53230, 53231, 53234, 53236, 53238, 53239, 53240, 53241, 53242, 53243, 53245, 53246, 53247, 53249, 53250, 53251, 53253, 53254, 53255, 53256, 53257, 53258, null, null, null, null, null, null, 53259, 53260, 53261, 53262, 53263, 53264, 53266, 53267, 53268, 53269, 53270, 53271, 53273, 53274, 53275, 53276, 53277, 53278, 53279, 53280, 53281, 53282, 53283, 53284, 53285, 53286, 53287, 53288, 53289, 53290, 53291, 53292, 45149, 45180, 45181, 45184, 45188, 45196, 45197, 45199, 45201, 45208, 45209, 45210, 45212, 45215, 45216, 45217, 45218, 45224, 45225, 45227, 45228, 45229, 45230, 45231, 45233, 45235, 45236, 45237, 45240, 45244, 45252, 45253, 45255, 45256, 45257, 45264, 45265, 45268, 45272, 45280, 45285, 45320, 45321, 45323, 45324, 45328, 45330, 45331, 45336, 45337, 45339, 45340, 45341, 45347, 45348, 45349, 45352, 45356, 45364, 45365, 45367, 45368, 45369, 45376, 45377, 45380, 45384, 45392, 45393, 45396, 45397, 45400, 45404, 45408, 45432, 45433, 45436, 45440, 45442, 45448, 45449, 45451, 45453, 45458, 45459, 45460, 45464, 45468, 45480, 45516, 45520, 45524, 45532, 45533, 53294, 53295, 53296, 53297, 53298, 53299, 53302, 53303, 53305, 53306, 53307, 53309, 53310, 53311, 53312, 53313, 53314, 53315, 53318, 53320, 53322, 53323, 53324, 53325, 53326, 53327, null, null, null, null, null, null, 53329, 53330, 53331, 53333, 53334, 53335, 53337, 53338, 53339, 53340, 53341, 53342, 53343, 53345, 53346, 53347, 53348, 53349, 53350, 53351, 53352, 53353, 53354, 53355, 53358, 53359, null, null, null, null, null, null, 53361, 53362, 53363, 53365, 53366, 53367, 53368, 53369, 53370, 53371, 53374, 53375, 53376, 53378, 53379, 53380, 53381, 53382, 53383, 53384, 53385, 53386, 53387, 53388, 53389, 53390, 53391, 53392, 53393, 53394, 53395, 53396, 45535, 45544, 45545, 45548, 45552, 45561, 45563, 45565, 45572, 45573, 45576, 45579, 45580, 45588, 45589, 45591, 45593, 45600, 45620, 45628, 45656, 45660, 45664, 45672, 45673, 45684, 45685, 45692, 45700, 45701, 45705, 45712, 45713, 45716, 45720, 45721, 45722, 45728, 45729, 45731, 45733, 45734, 45738, 45740, 45744, 45748, 45768, 45769, 45772, 45776, 45778, 45784, 45785, 45787, 45789, 45794, 45796, 45797, 45798, 45800, 45803, 45804, 45805, 45806, 45807, 45811, 45812, 45813, 45815, 45816, 45817, 45818, 45819, 45823, 45824, 45825, 45828, 45832, 45840, 45841, 45843, 45844, 45845, 45852, 45908, 45909, 45910, 45912, 45915, 45916, 45918, 45919, 45924, 45925, 53397, 53398, 53399, 53400, 53401, 53402, 53403, 53404, 53405, 53406, 53407, 53408, 53409, 53410, 53411, 53414, 53415, 53417, 53418, 53419, 53421, 53422, 53423, 53424, 53425, 53426, null, null, null, null, null, null, 53427, 53430, 53432, 53434, 53435, 53436, 53437, 53438, 53439, 53442, 53443, 53445, 53446, 53447, 53450, 53451, 53452, 53453, 53454, 53455, 53458, 53462, 53463, 53464, 53465, 53466, null, null, null, null, null, null, 53467, 53470, 53471, 53473, 53474, 53475, 53477, 53478, 53479, 53480, 53481, 53482, 53483, 53486, 53490, 53491, 53492, 53493, 53494, 53495, 53497, 53498, 53499, 53500, 53501, 53502, 53503, 53504, 53505, 53506, 53507, 53508, 45927, 45929, 45931, 45934, 45936, 45937, 45940, 45944, 45952, 45953, 45955, 45956, 45957, 45964, 45968, 45972, 45984, 45985, 45992, 45996, 46020, 46021, 46024, 46027, 46028, 46030, 46032, 46036, 46037, 46039, 46041, 46043, 46045, 46048, 46052, 46056, 46076, 46096, 46104, 46108, 46112, 46120, 46121, 46123, 46132, 46160, 46161, 46164, 46168, 46176, 46177, 46179, 46181, 46188, 46208, 46216, 46237, 46244, 46248, 46252, 46261, 46263, 46265, 46272, 46276, 46280, 46288, 46293, 46300, 46301, 46304, 46307, 46308, 46310, 46316, 46317, 46319, 46321, 46328, 46356, 46357, 46360, 46363, 46364, 46372, 46373, 46375, 46376, 46377, 46378, 46384, 46385, 46388, 46392, 53509, 53510, 53511, 53512, 53513, 53514, 53515, 53516, 53518, 53519, 53520, 53521, 53522, 53523, 53524, 53525, 53526, 53527, 53528, 53529, 53530, 53531, 53532, 53533, 53534, 53535, null, null, null, null, null, null, 53536, 53537, 53538, 53539, 53540, 53541, 53542, 53543, 53544, 53545, 53546, 53547, 53548, 53549, 53550, 53551, 53554, 53555, 53557, 53558, 53559, 53561, 53563, 53564, 53565, 53566, null, null, null, null, null, null, 53567, 53570, 53574, 53575, 53576, 53577, 53578, 53579, 53582, 53583, 53585, 53586, 53587, 53589, 53590, 53591, 53592, 53593, 53594, 53595, 53598, 53600, 53602, 53603, 53604, 53605, 53606, 53607, 53609, 53610, 53611, 53613, 46400, 46401, 46403, 46404, 46405, 46411, 46412, 46413, 46416, 46420, 46428, 46429, 46431, 46432, 46433, 46496, 46497, 46500, 46504, 46506, 46507, 46512, 46513, 46515, 46516, 46517, 46523, 46524, 46525, 46528, 46532, 46540, 46541, 46543, 46544, 46545, 46552, 46572, 46608, 46609, 46612, 46616, 46629, 46636, 46644, 46664, 46692, 46696, 46748, 46749, 46752, 46756, 46763, 46764, 46769, 46804, 46832, 46836, 46840, 46848, 46849, 46853, 46888, 46889, 46892, 46895, 46896, 46904, 46905, 46907, 46916, 46920, 46924, 46932, 46933, 46944, 46948, 46952, 46960, 46961, 46963, 46965, 46972, 46973, 46976, 46980, 46988, 46989, 46991, 46992, 46993, 46994, 46998, 46999, 53614, 53615, 53616, 53617, 53618, 53619, 53620, 53621, 53622, 53623, 53624, 53625, 53626, 53627, 53629, 53630, 53631, 53632, 53633, 53634, 53635, 53637, 53638, 53639, 53641, 53642, null, null, null, null, null, null, 53643, 53644, 53645, 53646, 53647, 53648, 53649, 53650, 53651, 53652, 53653, 53654, 53655, 53656, 53657, 53658, 53659, 53660, 53661, 53662, 53663, 53666, 53667, 53669, 53670, 53671, null, null, null, null, null, null, 53673, 53674, 53675, 53676, 53677, 53678, 53679, 53682, 53684, 53686, 53687, 53688, 53689, 53691, 53693, 53694, 53695, 53697, 53698, 53699, 53700, 53701, 53702, 53703, 53704, 53705, 53706, 53707, 53708, 53709, 53710, 53711, 47e3, 47001, 47004, 47008, 47016, 47017, 47019, 47020, 47021, 47028, 47029, 47032, 47047, 47049, 47084, 47085, 47088, 47092, 47100, 47101, 47103, 47104, 47105, 47111, 47112, 47113, 47116, 47120, 47128, 47129, 47131, 47133, 47140, 47141, 47144, 47148, 47156, 47157, 47159, 47160, 47161, 47168, 47172, 47185, 47187, 47196, 47197, 47200, 47204, 47212, 47213, 47215, 47217, 47224, 47228, 47245, 47272, 47280, 47284, 47288, 47296, 47297, 47299, 47301, 47308, 47312, 47316, 47325, 47327, 47329, 47336, 47337, 47340, 47344, 47352, 47353, 47355, 47357, 47364, 47384, 47392, 47420, 47421, 47424, 47428, 47436, 47439, 47441, 47448, 47449, 47452, 47456, 47464, 47465, 53712, 53713, 53714, 53715, 53716, 53717, 53718, 53719, 53721, 53722, 53723, 53724, 53725, 53726, 53727, 53728, 53729, 53730, 53731, 53732, 53733, 53734, 53735, 53736, 53737, 53738, null, null, null, null, null, null, 53739, 53740, 53741, 53742, 53743, 53744, 53745, 53746, 53747, 53749, 53750, 53751, 53753, 53754, 53755, 53756, 53757, 53758, 53759, 53760, 53761, 53762, 53763, 53764, 53765, 53766, null, null, null, null, null, null, 53768, 53770, 53771, 53772, 53773, 53774, 53775, 53777, 53778, 53779, 53780, 53781, 53782, 53783, 53784, 53785, 53786, 53787, 53788, 53789, 53790, 53791, 53792, 53793, 53794, 53795, 53796, 53797, 53798, 53799, 53800, 53801, 47467, 47469, 47476, 47477, 47480, 47484, 47492, 47493, 47495, 47497, 47498, 47501, 47502, 47532, 47533, 47536, 47540, 47548, 47549, 47551, 47553, 47560, 47561, 47564, 47566, 47567, 47568, 47569, 47570, 47576, 47577, 47579, 47581, 47582, 47585, 47587, 47588, 47589, 47592, 47596, 47604, 47605, 47607, 47608, 47609, 47610, 47616, 47617, 47624, 47637, 47672, 47673, 47676, 47680, 47682, 47688, 47689, 47691, 47693, 47694, 47699, 47700, 47701, 47704, 47708, 47716, 47717, 47719, 47720, 47721, 47728, 47729, 47732, 47736, 47747, 47748, 47749, 47751, 47756, 47784, 47785, 47787, 47788, 47792, 47794, 47800, 47801, 47803, 47805, 47812, 47816, 47832, 47833, 47868, 53802, 53803, 53806, 53807, 53809, 53810, 53811, 53813, 53814, 53815, 53816, 53817, 53818, 53819, 53822, 53824, 53826, 53827, 53828, 53829, 53830, 53831, 53833, 53834, 53835, 53836, null, null, null, null, null, null, 53837, 53838, 53839, 53840, 53841, 53842, 53843, 53844, 53845, 53846, 53847, 53848, 53849, 53850, 53851, 53853, 53854, 53855, 53856, 53857, 53858, 53859, 53861, 53862, 53863, 53864, null, null, null, null, null, null, 53865, 53866, 53867, 53868, 53869, 53870, 53871, 53872, 53873, 53874, 53875, 53876, 53877, 53878, 53879, 53880, 53881, 53882, 53883, 53884, 53885, 53886, 53887, 53890, 53891, 53893, 53894, 53895, 53897, 53898, 53899, 53900, 47872, 47876, 47885, 47887, 47889, 47896, 47900, 47904, 47913, 47915, 47924, 47925, 47926, 47928, 47931, 47932, 47933, 47934, 47940, 47941, 47943, 47945, 47949, 47951, 47952, 47956, 47960, 47969, 47971, 47980, 48008, 48012, 48016, 48036, 48040, 48044, 48052, 48055, 48064, 48068, 48072, 48080, 48083, 48120, 48121, 48124, 48127, 48128, 48130, 48136, 48137, 48139, 48140, 48141, 48143, 48145, 48148, 48149, 48150, 48151, 48152, 48155, 48156, 48157, 48158, 48159, 48164, 48165, 48167, 48169, 48173, 48176, 48177, 48180, 48184, 48192, 48193, 48195, 48196, 48197, 48201, 48204, 48205, 48208, 48221, 48260, 48261, 48264, 48267, 48268, 48270, 48276, 48277, 48279, 53901, 53902, 53903, 53906, 53907, 53908, 53910, 53911, 53912, 53913, 53914, 53915, 53917, 53918, 53919, 53921, 53922, 53923, 53925, 53926, 53927, 53928, 53929, 53930, 53931, 53933, null, null, null, null, null, null, 53934, 53935, 53936, 53938, 53939, 53940, 53941, 53942, 53943, 53946, 53947, 53949, 53950, 53953, 53955, 53956, 53957, 53958, 53959, 53962, 53964, 53965, 53966, 53967, 53968, 53969, null, null, null, null, null, null, 53970, 53971, 53973, 53974, 53975, 53977, 53978, 53979, 53981, 53982, 53983, 53984, 53985, 53986, 53987, 53990, 53991, 53992, 53993, 53994, 53995, 53996, 53997, 53998, 53999, 54002, 54003, 54005, 54006, 54007, 54009, 54010, 48281, 48282, 48288, 48289, 48292, 48295, 48296, 48304, 48305, 48307, 48308, 48309, 48316, 48317, 48320, 48324, 48333, 48335, 48336, 48337, 48341, 48344, 48348, 48372, 48373, 48374, 48376, 48380, 48388, 48389, 48391, 48393, 48400, 48404, 48420, 48428, 48448, 48456, 48457, 48460, 48464, 48472, 48473, 48484, 48488, 48512, 48513, 48516, 48519, 48520, 48521, 48522, 48528, 48529, 48531, 48533, 48537, 48538, 48540, 48548, 48560, 48568, 48596, 48597, 48600, 48604, 48617, 48624, 48628, 48632, 48640, 48643, 48645, 48652, 48653, 48656, 48660, 48668, 48669, 48671, 48708, 48709, 48712, 48716, 48718, 48724, 48725, 48727, 48729, 48730, 48731, 48736, 48737, 48740, 54011, 54012, 54013, 54014, 54015, 54018, 54020, 54022, 54023, 54024, 54025, 54026, 54027, 54031, 54033, 54034, 54035, 54037, 54039, 54040, 54041, 54042, 54043, 54046, 54050, 54051, null, null, null, null, null, null, 54052, 54054, 54055, 54058, 54059, 54061, 54062, 54063, 54065, 54066, 54067, 54068, 54069, 54070, 54071, 54074, 54078, 54079, 54080, 54081, 54082, 54083, 54086, 54087, 54088, 54089, null, null, null, null, null, null, 54090, 54091, 54092, 54093, 54094, 54095, 54096, 54097, 54098, 54099, 54100, 54101, 54102, 54103, 54104, 54105, 54106, 54107, 54108, 54109, 54110, 54111, 54112, 54113, 54114, 54115, 54116, 54117, 54118, 54119, 54120, 54121, 48744, 48746, 48752, 48753, 48755, 48756, 48757, 48763, 48764, 48765, 48768, 48772, 48780, 48781, 48783, 48784, 48785, 48792, 48793, 48808, 48848, 48849, 48852, 48855, 48856, 48864, 48867, 48868, 48869, 48876, 48897, 48904, 48905, 48920, 48921, 48923, 48924, 48925, 48960, 48961, 48964, 48968, 48976, 48977, 48981, 49044, 49072, 49093, 49100, 49101, 49104, 49108, 49116, 49119, 49121, 49212, 49233, 49240, 49244, 49248, 49256, 49257, 49296, 49297, 49300, 49304, 49312, 49313, 49315, 49317, 49324, 49325, 49327, 49328, 49331, 49332, 49333, 49334, 49340, 49341, 49343, 49344, 49345, 49349, 49352, 49353, 49356, 49360, 49368, 49369, 49371, 49372, 49373, 49380, 54122, 54123, 54124, 54125, 54126, 54127, 54128, 54129, 54130, 54131, 54132, 54133, 54134, 54135, 54136, 54137, 54138, 54139, 54142, 54143, 54145, 54146, 54147, 54149, 54150, 54151, null, null, null, null, null, null, 54152, 54153, 54154, 54155, 54158, 54162, 54163, 54164, 54165, 54166, 54167, 54170, 54171, 54173, 54174, 54175, 54177, 54178, 54179, 54180, 54181, 54182, 54183, 54186, 54188, 54190, null, null, null, null, null, null, 54191, 54192, 54193, 54194, 54195, 54197, 54198, 54199, 54201, 54202, 54203, 54205, 54206, 54207, 54208, 54209, 54210, 54211, 54214, 54215, 54218, 54219, 54220, 54221, 54222, 54223, 54225, 54226, 54227, 54228, 54229, 54230, 49381, 49384, 49388, 49396, 49397, 49399, 49401, 49408, 49412, 49416, 49424, 49429, 49436, 49437, 49438, 49439, 49440, 49443, 49444, 49446, 49447, 49452, 49453, 49455, 49456, 49457, 49462, 49464, 49465, 49468, 49472, 49480, 49481, 49483, 49484, 49485, 49492, 49493, 49496, 49500, 49508, 49509, 49511, 49512, 49513, 49520, 49524, 49528, 49541, 49548, 49549, 49550, 49552, 49556, 49558, 49564, 49565, 49567, 49569, 49573, 49576, 49577, 49580, 49584, 49597, 49604, 49608, 49612, 49620, 49623, 49624, 49632, 49636, 49640, 49648, 49649, 49651, 49660, 49661, 49664, 49668, 49676, 49677, 49679, 49681, 49688, 49689, 49692, 49695, 49696, 49704, 49705, 49707, 49709, 54231, 54233, 54234, 54235, 54236, 54237, 54238, 54239, 54240, 54242, 54244, 54245, 54246, 54247, 54248, 54249, 54250, 54251, 54254, 54255, 54257, 54258, 54259, 54261, 54262, 54263, null, null, null, null, null, null, 54264, 54265, 54266, 54267, 54270, 54272, 54274, 54275, 54276, 54277, 54278, 54279, 54281, 54282, 54283, 54284, 54285, 54286, 54287, 54288, 54289, 54290, 54291, 54292, 54293, 54294, null, null, null, null, null, null, 54295, 54296, 54297, 54298, 54299, 54300, 54302, 54303, 54304, 54305, 54306, 54307, 54308, 54309, 54310, 54311, 54312, 54313, 54314, 54315, 54316, 54317, 54318, 54319, 54320, 54321, 54322, 54323, 54324, 54325, 54326, 54327, 49711, 49713, 49714, 49716, 49736, 49744, 49745, 49748, 49752, 49760, 49765, 49772, 49773, 49776, 49780, 49788, 49789, 49791, 49793, 49800, 49801, 49808, 49816, 49819, 49821, 49828, 49829, 49832, 49836, 49837, 49844, 49845, 49847, 49849, 49884, 49885, 49888, 49891, 49892, 49899, 49900, 49901, 49903, 49905, 49910, 49912, 49913, 49915, 49916, 49920, 49928, 49929, 49932, 49933, 49939, 49940, 49941, 49944, 49948, 49956, 49957, 49960, 49961, 49989, 50024, 50025, 50028, 50032, 50034, 50040, 50041, 50044, 50045, 50052, 50056, 50060, 50112, 50136, 50137, 50140, 50143, 50144, 50146, 50152, 50153, 50157, 50164, 50165, 50168, 50184, 50192, 50212, 50220, 50224, 54328, 54329, 54330, 54331, 54332, 54333, 54334, 54335, 54337, 54338, 54339, 54341, 54342, 54343, 54344, 54345, 54346, 54347, 54348, 54349, 54350, 54351, 54352, 54353, 54354, 54355, null, null, null, null, null, null, 54356, 54357, 54358, 54359, 54360, 54361, 54362, 54363, 54365, 54366, 54367, 54369, 54370, 54371, 54373, 54374, 54375, 54376, 54377, 54378, 54379, 54380, 54382, 54384, 54385, 54386, null, null, null, null, null, null, 54387, 54388, 54389, 54390, 54391, 54394, 54395, 54397, 54398, 54401, 54403, 54404, 54405, 54406, 54407, 54410, 54412, 54414, 54415, 54416, 54417, 54418, 54419, 54421, 54422, 54423, 54424, 54425, 54426, 54427, 54428, 54429, 50228, 50236, 50237, 50248, 50276, 50277, 50280, 50284, 50292, 50293, 50297, 50304, 50324, 50332, 50360, 50364, 50409, 50416, 50417, 50420, 50424, 50426, 50431, 50432, 50433, 50444, 50448, 50452, 50460, 50472, 50473, 50476, 50480, 50488, 50489, 50491, 50493, 50500, 50501, 50504, 50505, 50506, 50508, 50509, 50510, 50515, 50516, 50517, 50519, 50520, 50521, 50525, 50526, 50528, 50529, 50532, 50536, 50544, 50545, 50547, 50548, 50549, 50556, 50557, 50560, 50564, 50567, 50572, 50573, 50575, 50577, 50581, 50583, 50584, 50588, 50592, 50601, 50612, 50613, 50616, 50617, 50619, 50620, 50621, 50622, 50628, 50629, 50630, 50631, 50632, 50633, 50634, 50636, 50638, 54430, 54431, 54432, 54433, 54434, 54435, 54436, 54437, 54438, 54439, 54440, 54442, 54443, 54444, 54445, 54446, 54447, 54448, 54449, 54450, 54451, 54452, 54453, 54454, 54455, 54456, null, null, null, null, null, null, 54457, 54458, 54459, 54460, 54461, 54462, 54463, 54464, 54465, 54466, 54467, 54468, 54469, 54470, 54471, 54472, 54473, 54474, 54475, 54477, 54478, 54479, 54481, 54482, 54483, 54485, null, null, null, null, null, null, 54486, 54487, 54488, 54489, 54490, 54491, 54493, 54494, 54496, 54497, 54498, 54499, 54500, 54501, 54502, 54503, 54505, 54506, 54507, 54509, 54510, 54511, 54513, 54514, 54515, 54516, 54517, 54518, 54519, 54521, 54522, 54524, 50640, 50641, 50644, 50648, 50656, 50657, 50659, 50661, 50668, 50669, 50670, 50672, 50676, 50678, 50679, 50684, 50685, 50686, 50687, 50688, 50689, 50693, 50694, 50695, 50696, 50700, 50704, 50712, 50713, 50715, 50716, 50724, 50725, 50728, 50732, 50733, 50734, 50736, 50739, 50740, 50741, 50743, 50745, 50747, 50752, 50753, 50756, 50760, 50768, 50769, 50771, 50772, 50773, 50780, 50781, 50784, 50796, 50799, 50801, 50808, 50809, 50812, 50816, 50824, 50825, 50827, 50829, 50836, 50837, 50840, 50844, 50852, 50853, 50855, 50857, 50864, 50865, 50868, 50872, 50873, 50874, 50880, 50881, 50883, 50885, 50892, 50893, 50896, 50900, 50908, 50909, 50912, 50913, 50920, 54526, 54527, 54528, 54529, 54530, 54531, 54533, 54534, 54535, 54537, 54538, 54539, 54541, 54542, 54543, 54544, 54545, 54546, 54547, 54550, 54552, 54553, 54554, 54555, 54556, 54557, null, null, null, null, null, null, 54558, 54559, 54560, 54561, 54562, 54563, 54564, 54565, 54566, 54567, 54568, 54569, 54570, 54571, 54572, 54573, 54574, 54575, 54576, 54577, 54578, 54579, 54580, 54581, 54582, 54583, null, null, null, null, null, null, 54584, 54585, 54586, 54587, 54590, 54591, 54593, 54594, 54595, 54597, 54598, 54599, 54600, 54601, 54602, 54603, 54606, 54608, 54610, 54611, 54612, 54613, 54614, 54615, 54618, 54619, 54621, 54622, 54623, 54625, 54626, 54627, 50921, 50924, 50928, 50936, 50937, 50941, 50948, 50949, 50952, 50956, 50964, 50965, 50967, 50969, 50976, 50977, 50980, 50984, 50992, 50993, 50995, 50997, 50999, 51004, 51005, 51008, 51012, 51018, 51020, 51021, 51023, 51025, 51026, 51027, 51028, 51029, 51030, 51031, 51032, 51036, 51040, 51048, 51051, 51060, 51061, 51064, 51068, 51069, 51070, 51075, 51076, 51077, 51079, 51080, 51081, 51082, 51086, 51088, 51089, 51092, 51094, 51095, 51096, 51098, 51104, 51105, 51107, 51108, 51109, 51110, 51116, 51117, 51120, 51124, 51132, 51133, 51135, 51136, 51137, 51144, 51145, 51148, 51150, 51152, 51160, 51165, 51172, 51176, 51180, 51200, 51201, 51204, 51208, 51210, 54628, 54630, 54631, 54634, 54636, 54638, 54639, 54640, 54641, 54642, 54643, 54646, 54647, 54649, 54650, 54651, 54653, 54654, 54655, 54656, 54657, 54658, 54659, 54662, 54666, 54667, null, null, null, null, null, null, 54668, 54669, 54670, 54671, 54673, 54674, 54675, 54676, 54677, 54678, 54679, 54680, 54681, 54682, 54683, 54684, 54685, 54686, 54687, 54688, 54689, 54690, 54691, 54692, 54694, 54695, null, null, null, null, null, null, 54696, 54697, 54698, 54699, 54700, 54701, 54702, 54703, 54704, 54705, 54706, 54707, 54708, 54709, 54710, 54711, 54712, 54713, 54714, 54715, 54716, 54717, 54718, 54719, 54720, 54721, 54722, 54723, 54724, 54725, 54726, 54727, 51216, 51217, 51219, 51221, 51222, 51228, 51229, 51232, 51236, 51244, 51245, 51247, 51249, 51256, 51260, 51264, 51272, 51273, 51276, 51277, 51284, 51312, 51313, 51316, 51320, 51322, 51328, 51329, 51331, 51333, 51334, 51335, 51339, 51340, 51341, 51348, 51357, 51359, 51361, 51368, 51388, 51389, 51396, 51400, 51404, 51412, 51413, 51415, 51417, 51424, 51425, 51428, 51445, 51452, 51453, 51456, 51460, 51461, 51462, 51468, 51469, 51471, 51473, 51480, 51500, 51508, 51536, 51537, 51540, 51544, 51552, 51553, 51555, 51564, 51568, 51572, 51580, 51592, 51593, 51596, 51600, 51608, 51609, 51611, 51613, 51648, 51649, 51652, 51655, 51656, 51658, 51664, 51665, 51667, 54730, 54731, 54733, 54734, 54735, 54737, 54739, 54740, 54741, 54742, 54743, 54746, 54748, 54750, 54751, 54752, 54753, 54754, 54755, 54758, 54759, 54761, 54762, 54763, 54765, 54766, null, null, null, null, null, null, 54767, 54768, 54769, 54770, 54771, 54774, 54776, 54778, 54779, 54780, 54781, 54782, 54783, 54786, 54787, 54789, 54790, 54791, 54793, 54794, 54795, 54796, 54797, 54798, 54799, 54802, null, null, null, null, null, null, 54806, 54807, 54808, 54809, 54810, 54811, 54813, 54814, 54815, 54817, 54818, 54819, 54821, 54822, 54823, 54824, 54825, 54826, 54827, 54828, 54830, 54831, 54832, 54833, 54834, 54835, 54836, 54837, 54838, 54839, 54842, 54843, 51669, 51670, 51673, 51674, 51676, 51677, 51680, 51682, 51684, 51687, 51692, 51693, 51695, 51696, 51697, 51704, 51705, 51708, 51712, 51720, 51721, 51723, 51724, 51725, 51732, 51736, 51753, 51788, 51789, 51792, 51796, 51804, 51805, 51807, 51808, 51809, 51816, 51837, 51844, 51864, 51900, 51901, 51904, 51908, 51916, 51917, 51919, 51921, 51923, 51928, 51929, 51936, 51948, 51956, 51976, 51984, 51988, 51992, 52e3, 52001, 52033, 52040, 52041, 52044, 52048, 52056, 52057, 52061, 52068, 52088, 52089, 52124, 52152, 52180, 52196, 52199, 52201, 52236, 52237, 52240, 52244, 52252, 52253, 52257, 52258, 52263, 52264, 52265, 52268, 52270, 52272, 52280, 52281, 52283, 54845, 54846, 54847, 54849, 54850, 54851, 54852, 54854, 54855, 54858, 54860, 54862, 54863, 54864, 54866, 54867, 54870, 54871, 54873, 54874, 54875, 54877, 54878, 54879, 54880, 54881, null, null, null, null, null, null, 54882, 54883, 54884, 54885, 54886, 54888, 54890, 54891, 54892, 54893, 54894, 54895, 54898, 54899, 54901, 54902, 54903, 54904, 54905, 54906, 54907, 54908, 54909, 54910, 54911, 54912, null, null, null, null, null, null, 54913, 54914, 54916, 54918, 54919, 54920, 54921, 54922, 54923, 54926, 54927, 54929, 54930, 54931, 54933, 54934, 54935, 54936, 54937, 54938, 54939, 54940, 54942, 54944, 54946, 54947, 54948, 54949, 54950, 54951, 54953, 54954, 52284, 52285, 52286, 52292, 52293, 52296, 52300, 52308, 52309, 52311, 52312, 52313, 52320, 52324, 52326, 52328, 52336, 52341, 52376, 52377, 52380, 52384, 52392, 52393, 52395, 52396, 52397, 52404, 52405, 52408, 52412, 52420, 52421, 52423, 52425, 52432, 52436, 52452, 52460, 52464, 52481, 52488, 52489, 52492, 52496, 52504, 52505, 52507, 52509, 52516, 52520, 52524, 52537, 52572, 52576, 52580, 52588, 52589, 52591, 52593, 52600, 52616, 52628, 52629, 52632, 52636, 52644, 52645, 52647, 52649, 52656, 52676, 52684, 52688, 52712, 52716, 52720, 52728, 52729, 52731, 52733, 52740, 52744, 52748, 52756, 52761, 52768, 52769, 52772, 52776, 52784, 52785, 52787, 52789, 54955, 54957, 54958, 54959, 54961, 54962, 54963, 54964, 54965, 54966, 54967, 54968, 54970, 54972, 54973, 54974, 54975, 54976, 54977, 54978, 54979, 54982, 54983, 54985, 54986, 54987, null, null, null, null, null, null, 54989, 54990, 54991, 54992, 54994, 54995, 54997, 54998, 55e3, 55002, 55003, 55004, 55005, 55006, 55007, 55009, 55010, 55011, 55013, 55014, 55015, 55017, 55018, 55019, 55020, 55021, null, null, null, null, null, null, 55022, 55023, 55025, 55026, 55027, 55028, 55030, 55031, 55032, 55033, 55034, 55035, 55038, 55039, 55041, 55042, 55043, 55045, 55046, 55047, 55048, 55049, 55050, 55051, 55052, 55053, 55054, 55055, 55056, 55058, 55059, 55060, 52824, 52825, 52828, 52831, 52832, 52833, 52840, 52841, 52843, 52845, 52852, 52853, 52856, 52860, 52868, 52869, 52871, 52873, 52880, 52881, 52884, 52888, 52896, 52897, 52899, 52900, 52901, 52908, 52909, 52929, 52964, 52965, 52968, 52971, 52972, 52980, 52981, 52983, 52984, 52985, 52992, 52993, 52996, 53e3, 53008, 53009, 53011, 53013, 53020, 53024, 53028, 53036, 53037, 53039, 53040, 53041, 53048, 53076, 53077, 53080, 53084, 53092, 53093, 53095, 53097, 53104, 53105, 53108, 53112, 53120, 53125, 53132, 53153, 53160, 53168, 53188, 53216, 53217, 53220, 53224, 53232, 53233, 53235, 53237, 53244, 53248, 53252, 53265, 53272, 53293, 53300, 53301, 53304, 53308, 55061, 55062, 55063, 55066, 55067, 55069, 55070, 55071, 55073, 55074, 55075, 55076, 55077, 55078, 55079, 55082, 55084, 55086, 55087, 55088, 55089, 55090, 55091, 55094, 55095, 55097, null, null, null, null, null, null, 55098, 55099, 55101, 55102, 55103, 55104, 55105, 55106, 55107, 55109, 55110, 55112, 55114, 55115, 55116, 55117, 55118, 55119, 55122, 55123, 55125, 55130, 55131, 55132, 55133, 55134, null, null, null, null, null, null, 55135, 55138, 55140, 55142, 55143, 55144, 55146, 55147, 55149, 55150, 55151, 55153, 55154, 55155, 55157, 55158, 55159, 55160, 55161, 55162, 55163, 55166, 55167, 55168, 55170, 55171, 55172, 55173, 55174, 55175, 55178, 55179, 53316, 53317, 53319, 53321, 53328, 53332, 53336, 53344, 53356, 53357, 53360, 53364, 53372, 53373, 53377, 53412, 53413, 53416, 53420, 53428, 53429, 53431, 53433, 53440, 53441, 53444, 53448, 53449, 53456, 53457, 53459, 53460, 53461, 53468, 53469, 53472, 53476, 53484, 53485, 53487, 53488, 53489, 53496, 53517, 53552, 53553, 53556, 53560, 53562, 53568, 53569, 53571, 53572, 53573, 53580, 53581, 53584, 53588, 53596, 53597, 53599, 53601, 53608, 53612, 53628, 53636, 53640, 53664, 53665, 53668, 53672, 53680, 53681, 53683, 53685, 53690, 53692, 53696, 53720, 53748, 53752, 53767, 53769, 53776, 53804, 53805, 53808, 53812, 53820, 53821, 53823, 53825, 53832, 53852, 55181, 55182, 55183, 55185, 55186, 55187, 55188, 55189, 55190, 55191, 55194, 55196, 55198, 55199, 55200, 55201, 55202, 55203, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 53860, 53888, 53889, 53892, 53896, 53904, 53905, 53909, 53916, 53920, 53924, 53932, 53937, 53944, 53945, 53948, 53951, 53952, 53954, 53960, 53961, 53963, 53972, 53976, 53980, 53988, 53989, 54e3, 54001, 54004, 54008, 54016, 54017, 54019, 54021, 54028, 54029, 54030, 54032, 54036, 54038, 54044, 54045, 54047, 54048, 54049, 54053, 54056, 54057, 54060, 54064, 54072, 54073, 54075, 54076, 54077, 54084, 54085, 54140, 54141, 54144, 54148, 54156, 54157, 54159, 54160, 54161, 54168, 54169, 54172, 54176, 54184, 54185, 54187, 54189, 54196, 54200, 54204, 54212, 54213, 54216, 54217, 54224, 54232, 54241, 54243, 54252, 54253, 54256, 54260, 54268, 54269, 54271, 54273, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 54280, 54301, 54336, 54340, 54364, 54368, 54372, 54381, 54383, 54392, 54393, 54396, 54399, 54400, 54402, 54408, 54409, 54411, 54413, 54420, 54441, 54476, 54480, 54484, 54492, 54495, 54504, 54508, 54512, 54520, 54523, 54525, 54532, 54536, 54540, 54548, 54549, 54551, 54588, 54589, 54592, 54596, 54604, 54605, 54607, 54609, 54616, 54617, 54620, 54624, 54629, 54632, 54633, 54635, 54637, 54644, 54645, 54648, 54652, 54660, 54661, 54663, 54664, 54665, 54672, 54693, 54728, 54729, 54732, 54736, 54738, 54744, 54745, 54747, 54749, 54756, 54757, 54760, 54764, 54772, 54773, 54775, 54777, 54784, 54785, 54788, 54792, 54800, 54801, 54803, 54804, 54805, 54812, 54816, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 54820, 54829, 54840, 54841, 54844, 54848, 54853, 54856, 54857, 54859, 54861, 54865, 54868, 54869, 54872, 54876, 54887, 54889, 54896, 54897, 54900, 54915, 54917, 54924, 54925, 54928, 54932, 54941, 54943, 54945, 54952, 54956, 54960, 54969, 54971, 54980, 54981, 54984, 54988, 54993, 54996, 54999, 55001, 55008, 55012, 55016, 55024, 55029, 55036, 55037, 55040, 55044, 55057, 55064, 55065, 55068, 55072, 55080, 55081, 55083, 55085, 55092, 55093, 55096, 55100, 55108, 55111, 55113, 55120, 55121, 55124, 55126, 55127, 55128, 55129, 55136, 55137, 55139, 55141, 55145, 55148, 55152, 55156, 55164, 55165, 55169, 55176, 55177, 55180, 55184, 55192, 55193, 55195, 55197, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 20285, 20339, 20551, 20729, 21152, 21487, 21621, 21733, 22025, 23233, 23478, 26247, 26550, 26551, 26607, 27468, 29634, 30146, 31292, 33499, 33540, 34903, 34952, 35382, 36040, 36303, 36603, 36838, 39381, 21051, 21364, 21508, 24682, 24932, 27580, 29647, 33050, 35258, 35282, 38307, 20355, 21002, 22718, 22904, 23014, 24178, 24185, 25031, 25536, 26438, 26604, 26751, 28567, 30286, 30475, 30965, 31240, 31487, 31777, 32925, 33390, 33393, 35563, 38291, 20075, 21917, 26359, 28212, 30883, 31469, 33883, 35088, 34638, 38824, 21208, 22350, 22570, 23884, 24863, 25022, 25121, 25954, 26577, 27204, 28187, 29976, 30131, 30435, 30640, 32058, 37039, 37969, 37970, 40853, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 21283, 23724, 30002, 32987, 37440, 38296, 21083, 22536, 23004, 23713, 23831, 24247, 24378, 24394, 24951, 27743, 30074, 30086, 31968, 32115, 32177, 32652, 33108, 33313, 34193, 35137, 35611, 37628, 38477, 40007, 20171, 20215, 20491, 20977, 22607, 24887, 24894, 24936, 25913, 27114, 28433, 30117, 30342, 30422, 31623, 33445, 33995, 63744, 37799, 38283, 21888, 23458, 22353, 63745, 31923, 32697, 37301, 20520, 21435, 23621, 24040, 25298, 25454, 25818, 25831, 28192, 28844, 31067, 36317, 36382, 63746, 36989, 37445, 37624, 20094, 20214, 20581, 24062, 24314, 24838, 26967, 33137, 34388, 36423, 37749, 39467, 20062, 20625, 26480, 26688, 20745, 21133, 21138, 27298, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 30652, 37392, 40660, 21163, 24623, 36850, 20552, 25001, 25581, 25802, 26684, 27268, 28608, 33160, 35233, 38548, 22533, 29309, 29356, 29956, 32121, 32365, 32937, 35211, 35700, 36963, 40273, 25225, 27770, 28500, 32080, 32570, 35363, 20860, 24906, 31645, 35609, 37463, 37772, 20140, 20435, 20510, 20670, 20742, 21185, 21197, 21375, 22384, 22659, 24218, 24465, 24950, 25004, 25806, 25964, 26223, 26299, 26356, 26775, 28039, 28805, 28913, 29855, 29861, 29898, 30169, 30828, 30956, 31455, 31478, 32069, 32147, 32789, 32831, 33051, 33686, 35686, 36629, 36885, 37857, 38915, 38968, 39514, 39912, 20418, 21843, 22586, 22865, 23395, 23622, 24760, 25106, 26690, 26800, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 26856, 28330, 30028, 30328, 30926, 31293, 31995, 32363, 32380, 35336, 35489, 35903, 38542, 40388, 21476, 21481, 21578, 21617, 22266, 22993, 23396, 23611, 24235, 25335, 25911, 25925, 25970, 26272, 26543, 27073, 27837, 30204, 30352, 30590, 31295, 32660, 32771, 32929, 33167, 33510, 33533, 33776, 34241, 34865, 34996, 35493, 63747, 36764, 37678, 38599, 39015, 39640, 40723, 21741, 26011, 26354, 26767, 31296, 35895, 40288, 22256, 22372, 23825, 26118, 26801, 26829, 28414, 29736, 34974, 39908, 27752, 63748, 39592, 20379, 20844, 20849, 21151, 23380, 24037, 24656, 24685, 25329, 25511, 25915, 29657, 31354, 34467, 36002, 38799, 20018, 23521, 25096, 26524, 29916, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 31185, 33747, 35463, 35506, 36328, 36942, 37707, 38982, 24275, 27112, 34303, 37101, 63749, 20896, 23448, 23532, 24931, 26874, 27454, 28748, 29743, 29912, 31649, 32592, 33733, 35264, 36011, 38364, 39208, 21038, 24669, 25324, 36866, 20362, 20809, 21281, 22745, 24291, 26336, 27960, 28826, 29378, 29654, 31568, 33009, 37979, 21350, 25499, 32619, 20054, 20608, 22602, 22750, 24618, 24871, 25296, 27088, 39745, 23439, 32024, 32945, 36703, 20132, 20689, 21676, 21932, 23308, 23968, 24039, 25898, 25934, 26657, 27211, 29409, 30350, 30703, 32094, 32761, 33184, 34126, 34527, 36611, 36686, 37066, 39171, 39509, 39851, 19992, 20037, 20061, 20167, 20465, 20855, 21246, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 21312, 21475, 21477, 21646, 22036, 22389, 22434, 23495, 23943, 24272, 25084, 25304, 25937, 26552, 26601, 27083, 27472, 27590, 27628, 27714, 28317, 28792, 29399, 29590, 29699, 30655, 30697, 31350, 32127, 32777, 33276, 33285, 33290, 33503, 34914, 35635, 36092, 36544, 36881, 37041, 37476, 37558, 39378, 39493, 40169, 40407, 40860, 22283, 23616, 33738, 38816, 38827, 40628, 21531, 31384, 32676, 35033, 36557, 37089, 22528, 23624, 25496, 31391, 23470, 24339, 31353, 31406, 33422, 36524, 20518, 21048, 21240, 21367, 22280, 25331, 25458, 27402, 28099, 30519, 21413, 29527, 34152, 36470, 38357, 26426, 27331, 28528, 35437, 36556, 39243, 63750, 26231, 27512, 36020, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 39740, 63751, 21483, 22317, 22862, 25542, 27131, 29674, 30789, 31418, 31429, 31998, 33909, 35215, 36211, 36917, 38312, 21243, 22343, 30023, 31584, 33740, 37406, 63752, 27224, 20811, 21067, 21127, 25119, 26840, 26997, 38553, 20677, 21156, 21220, 25027, 26020, 26681, 27135, 29822, 31563, 33465, 33771, 35250, 35641, 36817, 39241, 63753, 20170, 22935, 25810, 26129, 27278, 29748, 31105, 31165, 33449, 34942, 34943, 35167, 63754, 37670, 20235, 21450, 24613, 25201, 27762, 32026, 32102, 20120, 20834, 30684, 32943, 20225, 20238, 20854, 20864, 21980, 22120, 22331, 22522, 22524, 22804, 22855, 22931, 23492, 23696, 23822, 24049, 24190, 24524, 25216, 26071, 26083, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 26398, 26399, 26462, 26827, 26820, 27231, 27450, 27683, 27773, 27778, 28103, 29592, 29734, 29738, 29826, 29859, 30072, 30079, 30849, 30959, 31041, 31047, 31048, 31098, 31637, 32e3, 32186, 32648, 32774, 32813, 32908, 35352, 35663, 35912, 36215, 37665, 37668, 39138, 39249, 39438, 39439, 39525, 40594, 32202, 20342, 21513, 25326, 26708, 37329, 21931, 20794, 63755, 63756, 23068, 25062, 63757, 25295, 25343, 63758, 63759, 63760, 63761, 63762, 63763, 37027, 63764, 63765, 63766, 63767, 63768, 35582, 63769, 63770, 63771, 63772, 26262, 63773, 29014, 63774, 63775, 38627, 63776, 25423, 25466, 21335, 63777, 26511, 26976, 28275, 63778, 30007, 63779, 63780, 63781, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 32013, 63782, 63783, 34930, 22218, 23064, 63784, 63785, 63786, 63787, 63788, 20035, 63789, 20839, 22856, 26608, 32784, 63790, 22899, 24180, 25754, 31178, 24565, 24684, 25288, 25467, 23527, 23511, 21162, 63791, 22900, 24361, 24594, 63792, 63793, 63794, 29785, 63795, 63796, 63797, 63798, 63799, 63800, 39377, 63801, 63802, 63803, 63804, 63805, 63806, 63807, 63808, 63809, 63810, 63811, 28611, 63812, 63813, 33215, 36786, 24817, 63814, 63815, 33126, 63816, 63817, 23615, 63818, 63819, 63820, 63821, 63822, 63823, 63824, 63825, 23273, 35365, 26491, 32016, 63826, 63827, 63828, 63829, 63830, 63831, 33021, 63832, 63833, 23612, 27877, 21311, 28346, 22810, 33590, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 20025, 20150, 20294, 21934, 22296, 22727, 24406, 26039, 26086, 27264, 27573, 28237, 30701, 31471, 31774, 32222, 34507, 34962, 37170, 37723, 25787, 28606, 29562, 30136, 36948, 21846, 22349, 25018, 25812, 26311, 28129, 28251, 28525, 28601, 30192, 32835, 33213, 34113, 35203, 35527, 35674, 37663, 27795, 30035, 31572, 36367, 36957, 21776, 22530, 22616, 24162, 25095, 25758, 26848, 30070, 31958, 34739, 40680, 20195, 22408, 22382, 22823, 23565, 23729, 24118, 24453, 25140, 25825, 29619, 33274, 34955, 36024, 38538, 40667, 23429, 24503, 24755, 20498, 20992, 21040, 22294, 22581, 22615, 23566, 23648, 23798, 23947, 24230, 24466, 24764, 25361, 25481, 25623, 26691, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 26873, 27330, 28120, 28193, 28372, 28644, 29182, 30428, 30585, 31153, 31291, 33796, 35241, 36077, 36339, 36424, 36867, 36884, 36947, 37117, 37709, 38518, 38876, 27602, 28678, 29272, 29346, 29544, 30563, 31167, 31716, 32411, 35712, 22697, 24775, 25958, 26109, 26302, 27788, 28958, 29129, 35930, 38931, 20077, 31361, 20189, 20908, 20941, 21205, 21516, 24999, 26481, 26704, 26847, 27934, 28540, 30140, 30643, 31461, 33012, 33891, 37509, 20828, 26007, 26460, 26515, 30168, 31431, 33651, 63834, 35910, 36887, 38957, 23663, 33216, 33434, 36929, 36975, 37389, 24471, 23965, 27225, 29128, 30331, 31561, 34276, 35588, 37159, 39472, 21895, 25078, 63835, 30313, 32645, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 34367, 34746, 35064, 37007, 63836, 27931, 28889, 29662, 32097, 33853, 63837, 37226, 39409, 63838, 20098, 21365, 27396, 27410, 28734, 29211, 34349, 40478, 21068, 36771, 23888, 25829, 25900, 27414, 28651, 31811, 32412, 34253, 35172, 35261, 25289, 33240, 34847, 24266, 26391, 28010, 29436, 29701, 29807, 34690, 37086, 20358, 23821, 24480, 33802, 20919, 25504, 30053, 20142, 20486, 20841, 20937, 26753, 27153, 31918, 31921, 31975, 33391, 35538, 36635, 37327, 20406, 20791, 21237, 21570, 24300, 24942, 25150, 26053, 27354, 28670, 31018, 34268, 34851, 38317, 39522, 39530, 40599, 40654, 21147, 26310, 27511, 28701, 31019, 36706, 38722, 24976, 25088, 25891, 28451, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 29001, 29833, 32244, 32879, 34030, 36646, 36899, 37706, 20925, 21015, 21155, 27916, 28872, 35010, 24265, 25986, 27566, 28610, 31806, 29557, 20196, 20278, 22265, 63839, 23738, 23994, 24604, 29618, 31533, 32666, 32718, 32838, 36894, 37428, 38646, 38728, 38936, 40801, 20363, 28583, 31150, 37300, 38583, 21214, 63840, 25736, 25796, 27347, 28510, 28696, 29200, 30439, 32769, 34310, 34396, 36335, 36613, 38706, 39791, 40442, 40565, 30860, 31103, 32160, 33737, 37636, 40575, 40595, 35542, 22751, 24324, 26407, 28711, 29903, 31840, 32894, 20769, 28712, 29282, 30922, 36034, 36058, 36084, 38647, 20102, 20698, 23534, 24278, 26009, 29134, 30274, 30637, 32842, 34044, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 36988, 39719, 40845, 22744, 23105, 23650, 27155, 28122, 28431, 30267, 32047, 32311, 34078, 35128, 37860, 38475, 21129, 26066, 26611, 27060, 27969, 28316, 28687, 29705, 29792, 30041, 30244, 30827, 35628, 39006, 20845, 25134, 38520, 20374, 20523, 23833, 28138, 32184, 36650, 24459, 24900, 26647, 63841, 38534, 21202, 32907, 20956, 20940, 26974, 31260, 32190, 33777, 38517, 20442, 21033, 21400, 21519, 21774, 23653, 24743, 26446, 26792, 28012, 29313, 29432, 29702, 29827, 63842, 30178, 31852, 32633, 32696, 33673, 35023, 35041, 37324, 37328, 38626, 39881, 21533, 28542, 29136, 29848, 34298, 36522, 38563, 40023, 40607, 26519, 28107, 29747, 33256, 38678, 30764, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 31435, 31520, 31890, 25705, 29802, 30194, 30908, 30952, 39340, 39764, 40635, 23518, 24149, 28448, 33180, 33707, 37e3, 19975, 21325, 23081, 24018, 24398, 24930, 25405, 26217, 26364, 28415, 28459, 28771, 30622, 33836, 34067, 34875, 36627, 39237, 39995, 21788, 25273, 26411, 27819, 33545, 35178, 38778, 20129, 22916, 24536, 24537, 26395, 32178, 32596, 33426, 33579, 33725, 36638, 37017, 22475, 22969, 23186, 23504, 26151, 26522, 26757, 27599, 29028, 32629, 36023, 36067, 36993, 39749, 33032, 35978, 38476, 39488, 40613, 23391, 27667, 29467, 30450, 30431, 33804, 20906, 35219, 20813, 20885, 21193, 26825, 27796, 30468, 30496, 32191, 32236, 38754, 40629, 28357, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 34065, 20901, 21517, 21629, 26126, 26269, 26919, 28319, 30399, 30609, 33559, 33986, 34719, 37225, 37528, 40180, 34946, 20398, 20882, 21215, 22982, 24125, 24917, 25720, 25721, 26286, 26576, 27169, 27597, 27611, 29279, 29281, 29761, 30520, 30683, 32791, 33468, 33541, 35584, 35624, 35980, 26408, 27792, 29287, 30446, 30566, 31302, 40361, 27519, 27794, 22818, 26406, 33945, 21359, 22675, 22937, 24287, 25551, 26164, 26483, 28218, 29483, 31447, 33495, 37672, 21209, 24043, 25006, 25035, 25098, 25287, 25771, 26080, 26969, 27494, 27595, 28961, 29687, 30045, 32326, 33310, 33538, 34154, 35491, 36031, 38695, 40289, 22696, 40664, 20497, 21006, 21563, 21839, 25991, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 27766, 32010, 32011, 32862, 34442, 38272, 38639, 21247, 27797, 29289, 21619, 23194, 23614, 23883, 24396, 24494, 26410, 26806, 26979, 28220, 28228, 30473, 31859, 32654, 34183, 35598, 36855, 38753, 40692, 23735, 24758, 24845, 25003, 25935, 26107, 26108, 27665, 27887, 29599, 29641, 32225, 38292, 23494, 34588, 35600, 21085, 21338, 25293, 25615, 25778, 26420, 27192, 27850, 29632, 29854, 31636, 31893, 32283, 33162, 33334, 34180, 36843, 38649, 39361, 20276, 21322, 21453, 21467, 25292, 25644, 25856, 26001, 27075, 27886, 28504, 29677, 30036, 30242, 30436, 30460, 30928, 30971, 31020, 32070, 33324, 34784, 36820, 38930, 39151, 21187, 25300, 25765, 28196, 28497, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 30332, 36299, 37297, 37474, 39662, 39747, 20515, 20621, 22346, 22952, 23592, 24135, 24439, 25151, 25918, 26041, 26049, 26121, 26507, 27036, 28354, 30917, 32033, 32938, 33152, 33323, 33459, 33953, 34444, 35370, 35607, 37030, 38450, 40848, 20493, 20467, 63843, 22521, 24472, 25308, 25490, 26479, 28227, 28953, 30403, 32972, 32986, 35060, 35061, 35097, 36064, 36649, 37197, 38506, 20271, 20336, 24091, 26575, 26658, 30333, 30334, 39748, 24161, 27146, 29033, 29140, 30058, 63844, 32321, 34115, 34281, 39132, 20240, 31567, 32624, 38309, 20961, 24070, 26805, 27710, 27726, 27867, 29359, 31684, 33539, 27861, 29754, 20731, 21128, 22721, 25816, 27287, 29863, 30294, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 30887, 34327, 38370, 38713, 63845, 21342, 24321, 35722, 36776, 36783, 37002, 21029, 30629, 40009, 40712, 19993, 20482, 20853, 23643, 24183, 26142, 26170, 26564, 26821, 28851, 29953, 30149, 31177, 31453, 36647, 39200, 39432, 20445, 22561, 22577, 23542, 26222, 27493, 27921, 28282, 28541, 29668, 29995, 33769, 35036, 35091, 35676, 36628, 20239, 20693, 21264, 21340, 23443, 24489, 26381, 31119, 33145, 33583, 34068, 35079, 35206, 36665, 36667, 39333, 39954, 26412, 20086, 20472, 22857, 23553, 23791, 23792, 25447, 26834, 28925, 29090, 29739, 32299, 34028, 34562, 36898, 37586, 40179, 19981, 20184, 20463, 20613, 21078, 21103, 21542, 21648, 22496, 22827, 23142, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 23386, 23413, 23500, 24220, 63846, 25206, 25975, 26023, 28014, 28325, 29238, 31526, 31807, 32566, 33104, 33105, 33178, 33344, 33433, 33705, 35331, 36e3, 36070, 36091, 36212, 36282, 37096, 37340, 38428, 38468, 39385, 40167, 21271, 20998, 21545, 22132, 22707, 22868, 22894, 24575, 24996, 25198, 26128, 27774, 28954, 30406, 31881, 31966, 32027, 33452, 36033, 38640, 63847, 20315, 24343, 24447, 25282, 23849, 26379, 26842, 30844, 32323, 40300, 19989, 20633, 21269, 21290, 21329, 22915, 23138, 24199, 24754, 24970, 25161, 25209, 26e3, 26503, 27047, 27604, 27606, 27607, 27608, 27832, 63848, 29749, 30202, 30738, 30865, 31189, 31192, 31875, 32203, 32737, 32933, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 33086, 33218, 33778, 34586, 35048, 35513, 35692, 36027, 37145, 38750, 39131, 40763, 22188, 23338, 24428, 25996, 27315, 27567, 27996, 28657, 28693, 29277, 29613, 36007, 36051, 38971, 24977, 27703, 32856, 39425, 20045, 20107, 20123, 20181, 20282, 20284, 20351, 20447, 20735, 21490, 21496, 21766, 21987, 22235, 22763, 22882, 23057, 23531, 23546, 23556, 24051, 24107, 24473, 24605, 25448, 26012, 26031, 26614, 26619, 26797, 27515, 27801, 27863, 28195, 28681, 29509, 30722, 31038, 31040, 31072, 31169, 31721, 32023, 32114, 32902, 33293, 33678, 34001, 34503, 35039, 35408, 35422, 35613, 36060, 36198, 36781, 37034, 39164, 39391, 40605, 21066, 63849, 26388, 63850, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 20632, 21034, 23665, 25955, 27733, 29642, 29987, 30109, 31639, 33948, 37240, 38704, 20087, 25746, 27578, 29022, 34217, 19977, 63851, 26441, 26862, 28183, 33439, 34072, 34923, 25591, 28545, 37394, 39087, 19978, 20663, 20687, 20767, 21830, 21930, 22039, 23360, 23577, 23776, 24120, 24202, 24224, 24258, 24819, 26705, 27233, 28248, 29245, 29248, 29376, 30456, 31077, 31665, 32724, 35059, 35316, 35443, 35937, 36062, 38684, 22622, 29885, 36093, 21959, 63852, 31329, 32034, 33394, 29298, 29983, 29989, 63853, 31513, 22661, 22779, 23996, 24207, 24246, 24464, 24661, 25234, 25471, 25933, 26257, 26329, 26360, 26646, 26866, 29312, 29790, 31598, 32110, 32214, 32626, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 32997, 33298, 34223, 35199, 35475, 36893, 37604, 40653, 40736, 22805, 22893, 24109, 24796, 26132, 26227, 26512, 27728, 28101, 28511, 30707, 30889, 33990, 37323, 37675, 20185, 20682, 20808, 21892, 23307, 23459, 25159, 25982, 26059, 28210, 29053, 29697, 29764, 29831, 29887, 30316, 31146, 32218, 32341, 32680, 33146, 33203, 33337, 34330, 34796, 35445, 36323, 36984, 37521, 37925, 39245, 39854, 21352, 23633, 26964, 27844, 27945, 28203, 33292, 34203, 35131, 35373, 35498, 38634, 40807, 21089, 26297, 27570, 32406, 34814, 36109, 38275, 38493, 25885, 28041, 29166, 63854, 22478, 22995, 23468, 24615, 24826, 25104, 26143, 26207, 29481, 29689, 30427, 30465, 31596, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 32854, 32882, 33125, 35488, 37266, 19990, 21218, 27506, 27927, 31237, 31545, 32048, 63855, 36016, 21484, 22063, 22609, 23477, 23567, 23569, 24034, 25152, 25475, 25620, 26157, 26803, 27836, 28040, 28335, 28703, 28836, 29138, 29990, 30095, 30094, 30233, 31505, 31712, 31787, 32032, 32057, 34092, 34157, 34311, 35380, 36877, 36961, 37045, 37559, 38902, 39479, 20439, 23660, 26463, 28049, 31903, 32396, 35606, 36118, 36895, 23403, 24061, 25613, 33984, 36956, 39137, 29575, 23435, 24730, 26494, 28126, 35359, 35494, 36865, 38924, 21047, 63856, 28753, 30862, 37782, 34928, 37335, 20462, 21463, 22013, 22234, 22402, 22781, 23234, 23432, 23723, 23744, 24101, 24833, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 25101, 25163, 25480, 25628, 25910, 25976, 27193, 27530, 27700, 27929, 28465, 29159, 29417, 29560, 29703, 29874, 30246, 30561, 31168, 31319, 31466, 31929, 32143, 32172, 32353, 32670, 33065, 33585, 33936, 34010, 34282, 34966, 35504, 35728, 36664, 36930, 36995, 37228, 37526, 37561, 38539, 38567, 38568, 38614, 38656, 38920, 39318, 39635, 39706, 21460, 22654, 22809, 23408, 23487, 28113, 28506, 29087, 29729, 29881, 32901, 33789, 24033, 24455, 24490, 24642, 26092, 26642, 26991, 27219, 27529, 27957, 28147, 29667, 30462, 30636, 31565, 32020, 33059, 33308, 33600, 34036, 34147, 35426, 35524, 37255, 37662, 38918, 39348, 25100, 34899, 36848, 37477, 23815, 23847, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 23913, 29791, 33181, 34664, 28629, 25342, 32722, 35126, 35186, 19998, 20056, 20711, 21213, 21319, 25215, 26119, 32361, 34821, 38494, 20365, 21273, 22070, 22987, 23204, 23608, 23630, 23629, 24066, 24337, 24643, 26045, 26159, 26178, 26558, 26612, 29468, 30690, 31034, 32709, 33940, 33997, 35222, 35430, 35433, 35553, 35925, 35962, 22516, 23508, 24335, 24687, 25325, 26893, 27542, 28252, 29060, 31698, 34645, 35672, 36606, 39135, 39166, 20280, 20353, 20449, 21627, 23072, 23480, 24892, 26032, 26216, 29180, 30003, 31070, 32051, 33102, 33251, 33688, 34218, 34254, 34563, 35338, 36523, 36763, 63857, 36805, 22833, 23460, 23526, 24713, 23529, 23563, 24515, 27777, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 63858, 28145, 28683, 29978, 33455, 35574, 20160, 21313, 63859, 38617, 27663, 20126, 20420, 20818, 21854, 23077, 23784, 25105, 29273, 33469, 33706, 34558, 34905, 35357, 38463, 38597, 39187, 40201, 40285, 22538, 23731, 23997, 24132, 24801, 24853, 25569, 27138, 28197, 37122, 37716, 38990, 39952, 40823, 23433, 23736, 25353, 26191, 26696, 30524, 38593, 38797, 38996, 39839, 26017, 35585, 36555, 38332, 21813, 23721, 24022, 24245, 26263, 30284, 33780, 38343, 22739, 25276, 29390, 40232, 20208, 22830, 24591, 26171, 27523, 31207, 40230, 21395, 21696, 22467, 23830, 24859, 26326, 28079, 30861, 33406, 38552, 38724, 21380, 25212, 25494, 28082, 32266, 33099, 38989, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 27387, 32588, 40367, 40474, 20063, 20539, 20918, 22812, 24825, 25590, 26928, 29242, 32822, 63860, 37326, 24369, 63861, 63862, 32004, 33509, 33903, 33979, 34277, 36493, 63863, 20335, 63864, 63865, 22756, 23363, 24665, 25562, 25880, 25965, 26264, 63866, 26954, 27171, 27915, 28673, 29036, 30162, 30221, 31155, 31344, 63867, 32650, 63868, 35140, 63869, 35731, 37312, 38525, 63870, 39178, 22276, 24481, 26044, 28417, 30208, 31142, 35486, 39341, 39770, 40812, 20740, 25014, 25233, 27277, 33222, 20547, 22576, 24422, 28937, 35328, 35578, 23420, 34326, 20474, 20796, 22196, 22852, 25513, 28153, 23978, 26989, 20870, 20104, 20313, 63871, 63872, 63873, 22914, 63874, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 63875, 27487, 27741, 63876, 29877, 30998, 63877, 33287, 33349, 33593, 36671, 36701, 63878, 39192, 63879, 63880, 63881, 20134, 63882, 22495, 24441, 26131, 63883, 63884, 30123, 32377, 35695, 63885, 36870, 39515, 22181, 22567, 23032, 23071, 23476, 63886, 24310, 63887, 63888, 25424, 25403, 63889, 26941, 27783, 27839, 28046, 28051, 28149, 28436, 63890, 28895, 28982, 29017, 63891, 29123, 29141, 63892, 30799, 30831, 63893, 31605, 32227, 63894, 32303, 63895, 34893, 36575, 63896, 63897, 63898, 37467, 63899, 40182, 63900, 63901, 63902, 24709, 28037, 63903, 29105, 63904, 63905, 38321, 21421, 63906, 63907, 63908, 26579, 63909, 28814, 28976, 29744, 33398, 33490, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 63910, 38331, 39653, 40573, 26308, 63911, 29121, 33865, 63912, 63913, 22603, 63914, 63915, 23992, 24433, 63916, 26144, 26254, 27001, 27054, 27704, 27891, 28214, 28481, 28634, 28699, 28719, 29008, 29151, 29552, 63917, 29787, 63918, 29908, 30408, 31310, 32403, 63919, 63920, 33521, 35424, 36814, 63921, 37704, 63922, 38681, 63923, 63924, 20034, 20522, 63925, 21e3, 21473, 26355, 27757, 28618, 29450, 30591, 31330, 33454, 34269, 34306, 63926, 35028, 35427, 35709, 35947, 63927, 37555, 63928, 38675, 38928, 20116, 20237, 20425, 20658, 21320, 21566, 21555, 21978, 22626, 22714, 22887, 23067, 23524, 24735, 63929, 25034, 25942, 26111, 26212, 26791, 27738, 28595, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 28879, 29100, 29522, 31613, 34568, 35492, 39986, 40711, 23627, 27779, 29508, 29577, 37434, 28331, 29797, 30239, 31337, 32277, 34314, 20800, 22725, 25793, 29934, 29973, 30320, 32705, 37013, 38605, 39252, 28198, 29926, 31401, 31402, 33253, 34521, 34680, 35355, 23113, 23436, 23451, 26785, 26880, 28003, 29609, 29715, 29740, 30871, 32233, 32747, 33048, 33109, 33694, 35916, 38446, 38929, 26352, 24448, 26106, 26505, 27754, 29579, 20525, 23043, 27498, 30702, 22806, 23916, 24013, 29477, 30031, 63930, 63931, 20709, 20985, 22575, 22829, 22934, 23002, 23525, 63932, 63933, 23970, 25303, 25622, 25747, 25854, 63934, 26332, 63935, 27208, 63936, 29183, 29796, 63937, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 31368, 31407, 32327, 32350, 32768, 33136, 63938, 34799, 35201, 35616, 36953, 63939, 36992, 39250, 24958, 27442, 28020, 32287, 35109, 36785, 20433, 20653, 20887, 21191, 22471, 22665, 23481, 24248, 24898, 27029, 28044, 28263, 28342, 29076, 29794, 29992, 29996, 32883, 33592, 33993, 36362, 37780, 37854, 63940, 20110, 20305, 20598, 20778, 21448, 21451, 21491, 23431, 23507, 23588, 24858, 24962, 26100, 29275, 29591, 29760, 30402, 31056, 31121, 31161, 32006, 32701, 33419, 34261, 34398, 36802, 36935, 37109, 37354, 38533, 38632, 38633, 21206, 24423, 26093, 26161, 26671, 29020, 31286, 37057, 38922, 20113, 63941, 27218, 27550, 28560, 29065, 32792, 33464, 34131, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 36939, 38549, 38642, 38907, 34074, 39729, 20112, 29066, 38596, 20803, 21407, 21729, 22291, 22290, 22435, 23195, 23236, 23491, 24616, 24895, 25588, 27781, 27961, 28274, 28304, 29232, 29503, 29783, 33489, 34945, 36677, 36960, 63942, 38498, 39e3, 40219, 26376, 36234, 37470, 20301, 20553, 20702, 21361, 22285, 22996, 23041, 23561, 24944, 26256, 28205, 29234, 29771, 32239, 32963, 33806, 33894, 34111, 34655, 34907, 35096, 35586, 36949, 38859, 39759, 20083, 20369, 20754, 20842, 63943, 21807, 21929, 23418, 23461, 24188, 24189, 24254, 24736, 24799, 24840, 24841, 25540, 25912, 26377, 63944, 26580, 26586, 63945, 26977, 26978, 27833, 27943, 63946, 28216, 63947, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 28641, 29494, 29495, 63948, 29788, 30001, 63949, 30290, 63950, 63951, 32173, 33278, 33848, 35029, 35480, 35547, 35565, 36400, 36418, 36938, 36926, 36986, 37193, 37321, 37742, 63952, 63953, 22537, 63954, 27603, 32905, 32946, 63955, 63956, 20801, 22891, 23609, 63957, 63958, 28516, 29607, 32996, 36103, 63959, 37399, 38287, 63960, 63961, 63962, 63963, 32895, 25102, 28700, 32104, 34701, 63964, 22432, 24681, 24903, 27575, 35518, 37504, 38577, 20057, 21535, 28139, 34093, 38512, 38899, 39150, 25558, 27875, 37009, 20957, 25033, 33210, 40441, 20381, 20506, 20736, 23452, 24847, 25087, 25836, 26885, 27589, 30097, 30691, 32681, 33380, 34191, 34811, 34915, 35516, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 35696, 37291, 20108, 20197, 20234, 63965, 63966, 22839, 23016, 63967, 24050, 24347, 24411, 24609, 63968, 63969, 63970, 63971, 29246, 29669, 63972, 30064, 30157, 63973, 31227, 63974, 32780, 32819, 32900, 33505, 33617, 63975, 63976, 36029, 36019, 36999, 63977, 63978, 39156, 39180, 63979, 63980, 28727, 30410, 32714, 32716, 32764, 35610, 20154, 20161, 20995, 21360, 63981, 21693, 22240, 23035, 23493, 24341, 24525, 28270, 63982, 63983, 32106, 33589, 63984, 34451, 35469, 63985, 38765, 38775, 63986, 63987, 19968, 20314, 20350, 22777, 26085, 28322, 36920, 37808, 39353, 20219, 22764, 22922, 23001, 24641, 63988, 63989, 31252, 63990, 33615, 36035, 20837, 21316, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 63991, 63992, 63993, 20173, 21097, 23381, 33471, 20180, 21050, 21672, 22985, 23039, 23376, 23383, 23388, 24675, 24904, 28363, 28825, 29038, 29574, 29943, 30133, 30913, 32043, 32773, 33258, 33576, 34071, 34249, 35566, 36039, 38604, 20316, 21242, 22204, 26027, 26152, 28796, 28856, 29237, 32189, 33421, 37196, 38592, 40306, 23409, 26855, 27544, 28538, 30430, 23697, 26283, 28507, 31668, 31786, 34870, 38620, 19976, 20183, 21280, 22580, 22715, 22767, 22892, 23559, 24115, 24196, 24373, 25484, 26290, 26454, 27167, 27299, 27404, 28479, 29254, 63994, 29520, 29835, 31456, 31911, 33144, 33247, 33255, 33674, 33900, 34083, 34196, 34255, 35037, 36115, 37292, 38263, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 38556, 20877, 21705, 22312, 23472, 25165, 26448, 26685, 26771, 28221, 28371, 28797, 32289, 35009, 36001, 36617, 40779, 40782, 29229, 31631, 35533, 37658, 20295, 20302, 20786, 21632, 22992, 24213, 25269, 26485, 26990, 27159, 27822, 28186, 29401, 29482, 30141, 31672, 32053, 33511, 33785, 33879, 34295, 35419, 36015, 36487, 36889, 37048, 38606, 40799, 21219, 21514, 23265, 23490, 25688, 25973, 28404, 29380, 63995, 30340, 31309, 31515, 31821, 32318, 32735, 33659, 35627, 36042, 36196, 36321, 36447, 36842, 36857, 36969, 37841, 20291, 20346, 20659, 20840, 20856, 21069, 21098, 22625, 22652, 22880, 23560, 23637, 24283, 24731, 25136, 26643, 27583, 27656, 28593, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 29006, 29728, 3e4, 30008, 30033, 30322, 31564, 31627, 31661, 31686, 32399, 35438, 36670, 36681, 37439, 37523, 37666, 37931, 38651, 39002, 39019, 39198, 20999, 25130, 25240, 27993, 30308, 31434, 31680, 32118, 21344, 23742, 24215, 28472, 28857, 31896, 38673, 39822, 40670, 25509, 25722, 34678, 19969, 20117, 20141, 20572, 20597, 21576, 22979, 23450, 24128, 24237, 24311, 24449, 24773, 25402, 25919, 25972, 26060, 26230, 26232, 26622, 26984, 27273, 27491, 27712, 28096, 28136, 28191, 28254, 28702, 28833, 29582, 29693, 30010, 30555, 30855, 31118, 31243, 31357, 31934, 32142, 33351, 35330, 35562, 35998, 37165, 37194, 37336, 37478, 37580, 37664, 38662, 38742, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 38748, 38914, 40718, 21046, 21137, 21884, 22564, 24093, 24351, 24716, 25552, 26799, 28639, 31085, 31532, 33229, 34234, 35069, 35576, 36420, 37261, 38500, 38555, 38717, 38988, 40778, 20430, 20806, 20939, 21161, 22066, 24340, 24427, 25514, 25805, 26089, 26177, 26362, 26361, 26397, 26781, 26839, 27133, 28437, 28526, 29031, 29157, 29226, 29866, 30522, 31062, 31066, 31199, 31264, 31381, 31895, 31967, 32068, 32368, 32903, 34299, 34468, 35412, 35519, 36249, 36481, 36896, 36973, 37347, 38459, 38613, 40165, 26063, 31751, 36275, 37827, 23384, 23562, 21330, 25305, 29469, 20519, 23447, 24478, 24752, 24939, 26837, 28121, 29742, 31278, 32066, 32156, 32305, 33131, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 36394, 36405, 37758, 37912, 20304, 22352, 24038, 24231, 25387, 32618, 20027, 20303, 20367, 20570, 23005, 32964, 21610, 21608, 22014, 22863, 23449, 24030, 24282, 26205, 26417, 26609, 26666, 27880, 27954, 28234, 28557, 28855, 29664, 30087, 31820, 32002, 32044, 32162, 33311, 34523, 35387, 35461, 36208, 36490, 36659, 36913, 37198, 37202, 37956, 39376, 31481, 31909, 20426, 20737, 20934, 22472, 23535, 23803, 26201, 27197, 27994, 28310, 28652, 28940, 30063, 31459, 34850, 36897, 36981, 38603, 39423, 33537, 20013, 20210, 34886, 37325, 21373, 27355, 26987, 27713, 33914, 22686, 24974, 26366, 25327, 28893, 29969, 30151, 32338, 33976, 35657, 36104, 20043, 21482, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 21675, 22320, 22336, 24535, 25345, 25351, 25711, 25903, 26088, 26234, 26525, 26547, 27490, 27744, 27802, 28460, 30693, 30757, 31049, 31063, 32025, 32930, 33026, 33267, 33437, 33463, 34584, 35468, 63996, 36100, 36286, 36978, 30452, 31257, 31287, 32340, 32887, 21767, 21972, 22645, 25391, 25634, 26185, 26187, 26733, 27035, 27524, 27941, 28337, 29645, 29800, 29857, 30043, 30137, 30433, 30494, 30603, 31206, 32265, 32285, 33275, 34095, 34967, 35386, 36049, 36587, 36784, 36914, 37805, 38499, 38515, 38663, 20356, 21489, 23018, 23241, 24089, 26702, 29894, 30142, 31209, 31378, 33187, 34541, 36074, 36300, 36845, 26015, 26389, 63997, 22519, 28503, 32221, 36655, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 37878, 38598, 24501, 25074, 28548, 19988, 20376, 20511, 21449, 21983, 23919, 24046, 27425, 27492, 30923, 31642, 63998, 36425, 36554, 36974, 25417, 25662, 30528, 31364, 37679, 38015, 40810, 25776, 28591, 29158, 29864, 29914, 31428, 31762, 32386, 31922, 32408, 35738, 36106, 38013, 39184, 39244, 21049, 23519, 25830, 26413, 32046, 20717, 21443, 22649, 24920, 24921, 25082, 26028, 31449, 35730, 35734, 20489, 20513, 21109, 21809, 23100, 24288, 24432, 24884, 25950, 26124, 26166, 26274, 27085, 28356, 28466, 29462, 30241, 31379, 33081, 33369, 33750, 33980, 20661, 22512, 23488, 23528, 24425, 25505, 30758, 32181, 33756, 34081, 37319, 37365, 20874, 26613, 31574, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 36012, 20932, 22971, 24765, 34389, 20508, 63999, 21076, 23610, 24957, 25114, 25299, 25842, 26021, 28364, 30240, 33034, 36448, 38495, 38587, 20191, 21315, 21912, 22825, 24029, 25797, 27849, 28154, 29588, 31359, 33307, 34214, 36068, 36368, 36983, 37351, 38369, 38433, 38854, 20984, 21746, 21894, 24505, 25764, 28552, 32180, 36639, 36685, 37941, 20681, 23574, 27838, 28155, 29979, 30651, 31805, 31844, 35449, 35522, 22558, 22974, 24086, 25463, 29266, 30090, 30571, 35548, 36028, 36626, 24307, 26228, 28152, 32893, 33729, 35531, 38737, 39894, 64e3, 21059, 26367, 28053, 28399, 32224, 35558, 36910, 36958, 39636, 21021, 21119, 21736, 24980, 25220, 25307, 26786, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 26898, 26970, 27189, 28818, 28966, 30813, 30977, 30990, 31186, 31245, 32918, 33400, 33493, 33609, 34121, 35970, 36229, 37218, 37259, 37294, 20419, 22225, 29165, 30679, 34560, 35320, 23544, 24534, 26449, 37032, 21474, 22618, 23541, 24740, 24961, 25696, 32317, 32880, 34085, 37507, 25774, 20652, 23828, 26368, 22684, 25277, 25512, 26894, 27e3, 27166, 28267, 30394, 31179, 33467, 33833, 35535, 36264, 36861, 37138, 37195, 37276, 37648, 37656, 37786, 38619, 39478, 39949, 19985, 30044, 31069, 31482, 31569, 31689, 32302, 33988, 36441, 36468, 36600, 36880, 26149, 26943, 29763, 20986, 26414, 40668, 20805, 24544, 27798, 34802, 34909, 34935, 24756, 33205, 33795, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 36101, 21462, 21561, 22068, 23094, 23601, 28810, 32736, 32858, 33030, 33261, 36259, 37257, 39519, 40434, 20596, 20164, 21408, 24827, 28204, 23652, 20360, 20516, 21988, 23769, 24159, 24677, 26772, 27835, 28100, 29118, 30164, 30196, 30305, 31258, 31305, 32199, 32251, 32622, 33268, 34473, 36636, 38601, 39347, 40786, 21063, 21189, 39149, 35242, 19971, 26578, 28422, 20405, 23522, 26517, 27784, 28024, 29723, 30759, 37341, 37756, 34756, 31204, 31281, 24555, 20182, 21668, 21822, 22702, 22949, 24816, 25171, 25302, 26422, 26965, 33333, 38464, 39345, 39389, 20524, 21331, 21828, 22396, 64001, 25176, 64002, 25826, 26219, 26589, 28609, 28655, 29730, 29752, 35351, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 37944, 21585, 22022, 22374, 24392, 24986, 27470, 28760, 28845, 32187, 35477, 22890, 33067, 25506, 30472, 32829, 36010, 22612, 25645, 27067, 23445, 24081, 28271, 64003, 34153, 20812, 21488, 22826, 24608, 24907, 27526, 27760, 27888, 31518, 32974, 33492, 36294, 37040, 39089, 64004, 25799, 28580, 25745, 25860, 20814, 21520, 22303, 35342, 24927, 26742, 64005, 30171, 31570, 32113, 36890, 22534, 27084, 33151, 35114, 36864, 38969, 20600, 22871, 22956, 25237, 36879, 39722, 24925, 29305, 38358, 22369, 23110, 24052, 25226, 25773, 25850, 26487, 27874, 27966, 29228, 29750, 30772, 32631, 33453, 36315, 38935, 21028, 22338, 26495, 29256, 29923, 36009, 36774, 37393, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 38442, 20843, 21485, 25420, 20329, 21764, 24726, 25943, 27803, 28031, 29260, 29437, 31255, 35207, 35997, 24429, 28558, 28921, 33192, 24846, 20415, 20559, 25153, 29255, 31687, 32232, 32745, 36941, 38829, 39449, 36022, 22378, 24179, 26544, 33805, 35413, 21536, 23318, 24163, 24290, 24330, 25987, 32954, 34109, 38281, 38491, 20296, 21253, 21261, 21263, 21638, 21754, 22275, 24067, 24598, 25243, 25265, 25429, 64006, 27873, 28006, 30129, 30770, 32990, 33071, 33502, 33889, 33970, 34957, 35090, 36875, 37610, 39165, 39825, 24133, 26292, 26333, 28689, 29190, 64007, 20469, 21117, 24426, 24915, 26451, 27161, 28418, 29922, 31080, 34920, 35961, 39111, 39108, 39491, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 21697, 31263, 26963, 35575, 35914, 39080, 39342, 24444, 25259, 30130, 30382, 34987, 36991, 38466, 21305, 24380, 24517, 27852, 29644, 30050, 30091, 31558, 33534, 39325, 20047, 36924, 19979, 20309, 21414, 22799, 24264, 26160, 27827, 29781, 33655, 34662, 36032, 36944, 38686, 39957, 22737, 23416, 34384, 35604, 40372, 23506, 24680, 24717, 26097, 27735, 28450, 28579, 28698, 32597, 32752, 38289, 38290, 38480, 38867, 21106, 36676, 20989, 21547, 21688, 21859, 21898, 27323, 28085, 32216, 33382, 37532, 38519, 40569, 21512, 21704, 30418, 34532, 38308, 38356, 38492, 20130, 20233, 23022, 23270, 24055, 24658, 25239, 26477, 26689, 27782, 28207, 32568, 32923, 33322, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 64008, 64009, 38917, 20133, 20565, 21683, 22419, 22874, 23401, 23475, 25032, 26999, 28023, 28707, 34809, 35299, 35442, 35559, 36994, 39405, 39608, 21182, 26680, 20502, 24184, 26447, 33607, 34892, 20139, 21521, 22190, 29670, 37141, 38911, 39177, 39255, 39321, 22099, 22687, 34395, 35377, 25010, 27382, 29563, 36562, 27463, 38570, 39511, 22869, 29184, 36203, 38761, 20436, 23796, 24358, 25080, 26203, 27883, 28843, 29572, 29625, 29694, 30505, 30541, 32067, 32098, 32291, 33335, 34898, 64010, 36066, 37449, 39023, 23377, 31348, 34880, 38913, 23244, 20448, 21332, 22846, 23805, 25406, 28025, 29433, 33029, 33031, 33698, 37583, 38960, 20136, 20804, 21009, 22411, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 24418, 27842, 28366, 28677, 28752, 28847, 29074, 29673, 29801, 33610, 34722, 34913, 36872, 37026, 37795, 39336, 20846, 24407, 24800, 24935, 26291, 34137, 36426, 37295, 38795, 20046, 20114, 21628, 22741, 22778, 22909, 23733, 24359, 25142, 25160, 26122, 26215, 27627, 28009, 28111, 28246, 28408, 28564, 28640, 28649, 28765, 29392, 29733, 29786, 29920, 30355, 31068, 31946, 32286, 32993, 33446, 33899, 33983, 34382, 34399, 34676, 35703, 35946, 37804, 38912, 39013, 24785, 25110, 37239, 23130, 26127, 28151, 28222, 29759, 39746, 24573, 24794, 31503, 21700, 24344, 27742, 27859, 27946, 28888, 32005, 34425, 35340, 40251, 21270, 21644, 23301, 27194, 28779, 30069, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 31117, 31166, 33457, 33775, 35441, 35649, 36008, 38772, 64011, 25844, 25899, 30906, 30907, 31339, 20024, 21914, 22864, 23462, 24187, 24739, 25563, 27489, 26213, 26707, 28185, 29029, 29872, 32008, 36996, 39529, 39973, 27963, 28369, 29502, 35905, 38346, 20976, 24140, 24488, 24653, 24822, 24880, 24908, 26179, 26180, 27045, 27841, 28255, 28361, 28514, 29004, 29852, 30343, 31681, 31783, 33618, 34647, 36945, 38541, 40643, 21295, 22238, 24315, 24458, 24674, 24724, 25079, 26214, 26371, 27292, 28142, 28590, 28784, 29546, 32362, 33214, 33588, 34516, 35496, 36036, 21123, 29554, 23446, 27243, 37892, 21742, 22150, 23389, 25928, 25989, 26313, 26783, 28045, 28102, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 29243, 32948, 37237, 39501, 20399, 20505, 21402, 21518, 21564, 21897, 21957, 24127, 24460, 26429, 29030, 29661, 36869, 21211, 21235, 22628, 22734, 28932, 29071, 29179, 34224, 35347, 26248, 34216, 21927, 26244, 29002, 33841, 21321, 21913, 27585, 24409, 24509, 25582, 26249, 28999, 35569, 36637, 40638, 20241, 25658, 28875, 30054, 34407, 24676, 35662, 40440, 20807, 20982, 21256, 27958, 33016, 40657, 26133, 27427, 28824, 30165, 21507, 23673, 32007, 35350, 27424, 27453, 27462, 21560, 24688, 27965, 32725, 33288, 20694, 20958, 21916, 22123, 22221, 23020, 23305, 24076, 24985, 24984, 25137, 26206, 26342, 29081, 29113, 29114, 29351, 31143, 31232, 32690, 35440, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], gb18030: [19970, 19972, 19973, 19974, 19983, 19986, 19991, 19999, 2e4, 20001, 20003, 20006, 20009, 20014, 20015, 20017, 20019, 20021, 20023, 20028, 20032, 20033, 20034, 20036, 20038, 20042, 20049, 20053, 20055, 20058, 20059, 20066, 20067, 20068, 20069, 20071, 20072, 20074, 20075, 20076, 20077, 20078, 20079, 20082, 20084, 20085, 20086, 20087, 20088, 20089, 20090, 20091, 20092, 20093, 20095, 20096, 20097, 20098, 20099, 20100, 20101, 20103, 20106, 20112, 20118, 20119, 20121, 20124, 20125, 20126, 20131, 20138, 20143, 20144, 20145, 20148, 20150, 20151, 20152, 20153, 20156, 20157, 20158, 20168, 20172, 20175, 20176, 20178, 20186, 20187, 20188, 20192, 20194, 20198, 20199, 20201, 20205, 20206, 20207, 20209, 20212, 20216, 20217, 20218, 20220, 20222, 20224, 20226, 20227, 20228, 20229, 20230, 20231, 20232, 20235, 20236, 20242, 20243, 20244, 20245, 20246, 20252, 20253, 20257, 20259, 20264, 20265, 20268, 20269, 20270, 20273, 20275, 20277, 20279, 20281, 20283, 20286, 20287, 20288, 20289, 20290, 20292, 20293, 20295, 20296, 20297, 20298, 20299, 20300, 20306, 20308, 20310, 20321, 20322, 20326, 20328, 20330, 20331, 20333, 20334, 20337, 20338, 20341, 20343, 20344, 20345, 20346, 20349, 20352, 20353, 20354, 20357, 20358, 20359, 20362, 20364, 20366, 20368, 20370, 20371, 20373, 20374, 20376, 20377, 20378, 20380, 20382, 20383, 20385, 20386, 20388, 20395, 20397, 20400, 20401, 20402, 20403, 20404, 20406, 20407, 20408, 20409, 20410, 20411, 20412, 20413, 20414, 20416, 20417, 20418, 20422, 20423, 20424, 20425, 20427, 20428, 20429, 20434, 20435, 20436, 20437, 20438, 20441, 20443, 20448, 20450, 20452, 20453, 20455, 20459, 20460, 20464, 20466, 20468, 20469, 20470, 20471, 20473, 20475, 20476, 20477, 20479, 20480, 20481, 20482, 20483, 20484, 20485, 20486, 20487, 20488, 20489, 20490, 20491, 20494, 20496, 20497, 20499, 20501, 20502, 20503, 20507, 20509, 20510, 20512, 20514, 20515, 20516, 20519, 20523, 20527, 20528, 20529, 20530, 20531, 20532, 20533, 20534, 20535, 20536, 20537, 20539, 20541, 20543, 20544, 20545, 20546, 20548, 20549, 20550, 20553, 20554, 20555, 20557, 20560, 20561, 20562, 20563, 20564, 20566, 20567, 20568, 20569, 20571, 20573, 20574, 20575, 20576, 20577, 20578, 20579, 20580, 20582, 20583, 20584, 20585, 20586, 20587, 20589, 20590, 20591, 20592, 20593, 20594, 20595, 20596, 20597, 20600, 20601, 20602, 20604, 20605, 20609, 20610, 20611, 20612, 20614, 20615, 20617, 20618, 20619, 20620, 20622, 20623, 20624, 20625, 20626, 20627, 20628, 20629, 20630, 20631, 20632, 20633, 20634, 20635, 20636, 20637, 20638, 20639, 20640, 20641, 20642, 20644, 20646, 20650, 20651, 20653, 20654, 20655, 20656, 20657, 20659, 20660, 20661, 20662, 20663, 20664, 20665, 20668, 20669, 20670, 20671, 20672, 20673, 20674, 20675, 20676, 20677, 20678, 20679, 20680, 20681, 20682, 20683, 20684, 20685, 20686, 20688, 20689, 20690, 20691, 20692, 20693, 20695, 20696, 20697, 20699, 20700, 20701, 20702, 20703, 20704, 20705, 20706, 20707, 20708, 20709, 20712, 20713, 20714, 20715, 20719, 20720, 20721, 20722, 20724, 20726, 20727, 20728, 20729, 20730, 20732, 20733, 20734, 20735, 20736, 20737, 20738, 20739, 20740, 20741, 20744, 20745, 20746, 20748, 20749, 20750, 20751, 20752, 20753, 20755, 20756, 20757, 20758, 20759, 20760, 20761, 20762, 20763, 20764, 20765, 20766, 20767, 20768, 20770, 20771, 20772, 20773, 20774, 20775, 20776, 20777, 20778, 20779, 20780, 20781, 20782, 20783, 20784, 20785, 20786, 20787, 20788, 20789, 20790, 20791, 20792, 20793, 20794, 20795, 20796, 20797, 20798, 20802, 20807, 20810, 20812, 20814, 20815, 20816, 20818, 20819, 20823, 20824, 20825, 20827, 20829, 20830, 20831, 20832, 20833, 20835, 20836, 20838, 20839, 20841, 20842, 20847, 20850, 20858, 20862, 20863, 20867, 20868, 20870, 20871, 20874, 20875, 20878, 20879, 20880, 20881, 20883, 20884, 20888, 20890, 20893, 20894, 20895, 20897, 20899, 20902, 20903, 20904, 20905, 20906, 20909, 20910, 20916, 20920, 20921, 20922, 20926, 20927, 20929, 20930, 20931, 20933, 20936, 20938, 20941, 20942, 20944, 20946, 20947, 20948, 20949, 20950, 20951, 20952, 20953, 20954, 20956, 20958, 20959, 20962, 20963, 20965, 20966, 20967, 20968, 20969, 20970, 20972, 20974, 20977, 20978, 20980, 20983, 20990, 20996, 20997, 21001, 21003, 21004, 21007, 21008, 21011, 21012, 21013, 21020, 21022, 21023, 21025, 21026, 21027, 21029, 21030, 21031, 21034, 21036, 21039, 21041, 21042, 21044, 21045, 21052, 21054, 21060, 21061, 21062, 21063, 21064, 21065, 21067, 21070, 21071, 21074, 21075, 21077, 21079, 21080, 21081, 21082, 21083, 21085, 21087, 21088, 21090, 21091, 21092, 21094, 21096, 21099, 21100, 21101, 21102, 21104, 21105, 21107, 21108, 21109, 21110, 21111, 21112, 21113, 21114, 21115, 21116, 21118, 21120, 21123, 21124, 21125, 21126, 21127, 21129, 21130, 21131, 21132, 21133, 21134, 21135, 21137, 21138, 21140, 21141, 21142, 21143, 21144, 21145, 21146, 21148, 21156, 21157, 21158, 21159, 21166, 21167, 21168, 21172, 21173, 21174, 21175, 21176, 21177, 21178, 21179, 21180, 21181, 21184, 21185, 21186, 21188, 21189, 21190, 21192, 21194, 21196, 21197, 21198, 21199, 21201, 21203, 21204, 21205, 21207, 21209, 21210, 21211, 21212, 21213, 21214, 21216, 21217, 21218, 21219, 21221, 21222, 21223, 21224, 21225, 21226, 21227, 21228, 21229, 21230, 21231, 21233, 21234, 21235, 21236, 21237, 21238, 21239, 21240, 21243, 21244, 21245, 21249, 21250, 21251, 21252, 21255, 21257, 21258, 21259, 21260, 21262, 21265, 21266, 21267, 21268, 21272, 21275, 21276, 21278, 21279, 21282, 21284, 21285, 21287, 21288, 21289, 21291, 21292, 21293, 21295, 21296, 21297, 21298, 21299, 21300, 21301, 21302, 21303, 21304, 21308, 21309, 21312, 21314, 21316, 21318, 21323, 21324, 21325, 21328, 21332, 21336, 21337, 21339, 21341, 21349, 21352, 21354, 21356, 21357, 21362, 21366, 21369, 21371, 21372, 21373, 21374, 21376, 21377, 21379, 21383, 21384, 21386, 21390, 21391, 21392, 21393, 21394, 21395, 21396, 21398, 21399, 21401, 21403, 21404, 21406, 21408, 21409, 21412, 21415, 21418, 21419, 21420, 21421, 21423, 21424, 21425, 21426, 21427, 21428, 21429, 21431, 21432, 21433, 21434, 21436, 21437, 21438, 21440, 21443, 21444, 21445, 21446, 21447, 21454, 21455, 21456, 21458, 21459, 21461, 21466, 21468, 21469, 21470, 21473, 21474, 21479, 21492, 21498, 21502, 21503, 21504, 21506, 21509, 21511, 21515, 21524, 21528, 21529, 21530, 21532, 21538, 21540, 21541, 21546, 21552, 21555, 21558, 21559, 21562, 21565, 21567, 21569, 21570, 21572, 21573, 21575, 21577, 21580, 21581, 21582, 21583, 21585, 21594, 21597, 21598, 21599, 21600, 21601, 21603, 21605, 21607, 21609, 21610, 21611, 21612, 21613, 21614, 21615, 21616, 21620, 21625, 21626, 21630, 21631, 21633, 21635, 21637, 21639, 21640, 21641, 21642, 21645, 21649, 21651, 21655, 21656, 21660, 21662, 21663, 21664, 21665, 21666, 21669, 21678, 21680, 21682, 21685, 21686, 21687, 21689, 21690, 21692, 21694, 21699, 21701, 21706, 21707, 21718, 21720, 21723, 21728, 21729, 21730, 21731, 21732, 21739, 21740, 21743, 21744, 21745, 21748, 21749, 21750, 21751, 21752, 21753, 21755, 21758, 21760, 21762, 21763, 21764, 21765, 21768, 21770, 21771, 21772, 21773, 21774, 21778, 21779, 21781, 21782, 21783, 21784, 21785, 21786, 21788, 21789, 21790, 21791, 21793, 21797, 21798, 21800, 21801, 21803, 21805, 21810, 21812, 21813, 21814, 21816, 21817, 21818, 21819, 21821, 21824, 21826, 21829, 21831, 21832, 21835, 21836, 21837, 21838, 21839, 21841, 21842, 21843, 21844, 21847, 21848, 21849, 21850, 21851, 21853, 21854, 21855, 21856, 21858, 21859, 21864, 21865, 21867, 21871, 21872, 21873, 21874, 21875, 21876, 21881, 21882, 21885, 21887, 21893, 21894, 21900, 21901, 21902, 21904, 21906, 21907, 21909, 21910, 21911, 21914, 21915, 21918, 21920, 21921, 21922, 21923, 21924, 21925, 21926, 21928, 21929, 21930, 21931, 21932, 21933, 21934, 21935, 21936, 21938, 21940, 21942, 21944, 21946, 21948, 21951, 21952, 21953, 21954, 21955, 21958, 21959, 21960, 21962, 21963, 21966, 21967, 21968, 21973, 21975, 21976, 21977, 21978, 21979, 21982, 21984, 21986, 21991, 21993, 21997, 21998, 22e3, 22001, 22004, 22006, 22008, 22009, 22010, 22011, 22012, 22015, 22018, 22019, 22020, 22021, 22022, 22023, 22026, 22027, 22029, 22032, 22033, 22034, 22035, 22036, 22037, 22038, 22039, 22041, 22042, 22044, 22045, 22048, 22049, 22050, 22053, 22054, 22056, 22057, 22058, 22059, 22062, 22063, 22064, 22067, 22069, 22071, 22072, 22074, 22076, 22077, 22078, 22080, 22081, 22082, 22083, 22084, 22085, 22086, 22087, 22088, 22089, 22090, 22091, 22095, 22096, 22097, 22098, 22099, 22101, 22102, 22106, 22107, 22109, 22110, 22111, 22112, 22113, 22115, 22117, 22118, 22119, 22125, 22126, 22127, 22128, 22130, 22131, 22132, 22133, 22135, 22136, 22137, 22138, 22141, 22142, 22143, 22144, 22145, 22146, 22147, 22148, 22151, 22152, 22153, 22154, 22155, 22156, 22157, 22160, 22161, 22162, 22164, 22165, 22166, 22167, 22168, 22169, 22170, 22171, 22172, 22173, 22174, 22175, 22176, 22177, 22178, 22180, 22181, 22182, 22183, 22184, 22185, 22186, 22187, 22188, 22189, 22190, 22192, 22193, 22194, 22195, 22196, 22197, 22198, 22200, 22201, 22202, 22203, 22205, 22206, 22207, 22208, 22209, 22210, 22211, 22212, 22213, 22214, 22215, 22216, 22217, 22219, 22220, 22221, 22222, 22223, 22224, 22225, 22226, 22227, 22229, 22230, 22232, 22233, 22236, 22243, 22245, 22246, 22247, 22248, 22249, 22250, 22252, 22254, 22255, 22258, 22259, 22262, 22263, 22264, 22267, 22268, 22272, 22273, 22274, 22277, 22279, 22283, 22284, 22285, 22286, 22287, 22288, 22289, 22290, 22291, 22292, 22293, 22294, 22295, 22296, 22297, 22298, 22299, 22301, 22302, 22304, 22305, 22306, 22308, 22309, 22310, 22311, 22315, 22321, 22322, 22324, 22325, 22326, 22327, 22328, 22332, 22333, 22335, 22337, 22339, 22340, 22341, 22342, 22344, 22345, 22347, 22354, 22355, 22356, 22357, 22358, 22360, 22361, 22370, 22371, 22373, 22375, 22380, 22382, 22384, 22385, 22386, 22388, 22389, 22392, 22393, 22394, 22397, 22398, 22399, 22400, 22401, 22407, 22408, 22409, 22410, 22413, 22414, 22415, 22416, 22417, 22420, 22421, 22422, 22423, 22424, 22425, 22426, 22428, 22429, 22430, 22431, 22437, 22440, 22442, 22444, 22447, 22448, 22449, 22451, 22453, 22454, 22455, 22457, 22458, 22459, 22460, 22461, 22462, 22463, 22464, 22465, 22468, 22469, 22470, 22471, 22472, 22473, 22474, 22476, 22477, 22480, 22481, 22483, 22486, 22487, 22491, 22492, 22494, 22497, 22498, 22499, 22501, 22502, 22503, 22504, 22505, 22506, 22507, 22508, 22510, 22512, 22513, 22514, 22515, 22517, 22518, 22519, 22523, 22524, 22526, 22527, 22529, 22531, 22532, 22533, 22536, 22537, 22538, 22540, 22542, 22543, 22544, 22546, 22547, 22548, 22550, 22551, 22552, 22554, 22555, 22556, 22557, 22559, 22562, 22563, 22565, 22566, 22567, 22568, 22569, 22571, 22572, 22573, 22574, 22575, 22577, 22578, 22579, 22580, 22582, 22583, 22584, 22585, 22586, 22587, 22588, 22589, 22590, 22591, 22592, 22593, 22594, 22595, 22597, 22598, 22599, 22600, 22601, 22602, 22603, 22606, 22607, 22608, 22610, 22611, 22613, 22614, 22615, 22617, 22618, 22619, 22620, 22621, 22623, 22624, 22625, 22626, 22627, 22628, 22630, 22631, 22632, 22633, 22634, 22637, 22638, 22639, 22640, 22641, 22642, 22643, 22644, 22645, 22646, 22647, 22648, 22649, 22650, 22651, 22652, 22653, 22655, 22658, 22660, 22662, 22663, 22664, 22666, 22667, 22668, 22669, 22670, 22671, 22672, 22673, 22676, 22677, 22678, 22679, 22680, 22683, 22684, 22685, 22688, 22689, 22690, 22691, 22692, 22693, 22694, 22695, 22698, 22699, 22700, 22701, 22702, 22703, 22704, 22705, 22706, 22707, 22708, 22709, 22710, 22711, 22712, 22713, 22714, 22715, 22717, 22718, 22719, 22720, 22722, 22723, 22724, 22726, 22727, 22728, 22729, 22730, 22731, 22732, 22733, 22734, 22735, 22736, 22738, 22739, 22740, 22742, 22743, 22744, 22745, 22746, 22747, 22748, 22749, 22750, 22751, 22752, 22753, 22754, 22755, 22757, 22758, 22759, 22760, 22761, 22762, 22765, 22767, 22769, 22770, 22772, 22773, 22775, 22776, 22778, 22779, 22780, 22781, 22782, 22783, 22784, 22785, 22787, 22789, 22790, 22792, 22793, 22794, 22795, 22796, 22798, 22800, 22801, 22802, 22803, 22807, 22808, 22811, 22813, 22814, 22816, 22817, 22818, 22819, 22822, 22824, 22828, 22832, 22834, 22835, 22837, 22838, 22843, 22845, 22846, 22847, 22848, 22851, 22853, 22854, 22858, 22860, 22861, 22864, 22866, 22867, 22873, 22875, 22876, 22877, 22878, 22879, 22881, 22883, 22884, 22886, 22887, 22888, 22889, 22890, 22891, 22892, 22893, 22894, 22895, 22896, 22897, 22898, 22901, 22903, 22906, 22907, 22908, 22910, 22911, 22912, 22917, 22921, 22923, 22924, 22926, 22927, 22928, 22929, 22932, 22933, 22936, 22938, 22939, 22940, 22941, 22943, 22944, 22945, 22946, 22950, 22951, 22956, 22957, 22960, 22961, 22963, 22964, 22965, 22966, 22967, 22968, 22970, 22972, 22973, 22975, 22976, 22977, 22978, 22979, 22980, 22981, 22983, 22984, 22985, 22988, 22989, 22990, 22991, 22997, 22998, 23001, 23003, 23006, 23007, 23008, 23009, 23010, 23012, 23014, 23015, 23017, 23018, 23019, 23021, 23022, 23023, 23024, 23025, 23026, 23027, 23028, 23029, 23030, 23031, 23032, 23034, 23036, 23037, 23038, 23040, 23042, 23050, 23051, 23053, 23054, 23055, 23056, 23058, 23060, 23061, 23062, 23063, 23065, 23066, 23067, 23069, 23070, 23073, 23074, 23076, 23078, 23079, 23080, 23082, 23083, 23084, 23085, 23086, 23087, 23088, 23091, 23093, 23095, 23096, 23097, 23098, 23099, 23101, 23102, 23103, 23105, 23106, 23107, 23108, 23109, 23111, 23112, 23115, 23116, 23117, 23118, 23119, 23120, 23121, 23122, 23123, 23124, 23126, 23127, 23128, 23129, 23131, 23132, 23133, 23134, 23135, 23136, 23137, 23139, 23140, 23141, 23142, 23144, 23145, 23147, 23148, 23149, 23150, 23151, 23152, 23153, 23154, 23155, 23160, 23161, 23163, 23164, 23165, 23166, 23168, 23169, 23170, 23171, 23172, 23173, 23174, 23175, 23176, 23177, 23178, 23179, 23180, 23181, 23182, 23183, 23184, 23185, 23187, 23188, 23189, 23190, 23191, 23192, 23193, 23196, 23197, 23198, 23199, 23200, 23201, 23202, 23203, 23204, 23205, 23206, 23207, 23208, 23209, 23211, 23212, 23213, 23214, 23215, 23216, 23217, 23220, 23222, 23223, 23225, 23226, 23227, 23228, 23229, 23231, 23232, 23235, 23236, 23237, 23238, 23239, 23240, 23242, 23243, 23245, 23246, 23247, 23248, 23249, 23251, 23253, 23255, 23257, 23258, 23259, 23261, 23262, 23263, 23266, 23268, 23269, 23271, 23272, 23274, 23276, 23277, 23278, 23279, 23280, 23282, 23283, 23284, 23285, 23286, 23287, 23288, 23289, 23290, 23291, 23292, 23293, 23294, 23295, 23296, 23297, 23298, 23299, 23300, 23301, 23302, 23303, 23304, 23306, 23307, 23308, 23309, 23310, 23311, 23312, 23313, 23314, 23315, 23316, 23317, 23320, 23321, 23322, 23323, 23324, 23325, 23326, 23327, 23328, 23329, 23330, 23331, 23332, 23333, 23334, 23335, 23336, 23337, 23338, 23339, 23340, 23341, 23342, 23343, 23344, 23345, 23347, 23349, 23350, 23352, 23353, 23354, 23355, 23356, 23357, 23358, 23359, 23361, 23362, 23363, 23364, 23365, 23366, 23367, 23368, 23369, 23370, 23371, 23372, 23373, 23374, 23375, 23378, 23382, 23390, 23392, 23393, 23399, 23400, 23403, 23405, 23406, 23407, 23410, 23412, 23414, 23415, 23416, 23417, 23419, 23420, 23422, 23423, 23426, 23430, 23434, 23437, 23438, 23440, 23441, 23442, 23444, 23446, 23455, 23463, 23464, 23465, 23468, 23469, 23470, 23471, 23473, 23474, 23479, 23482, 23483, 23484, 23488, 23489, 23491, 23496, 23497, 23498, 23499, 23501, 23502, 23503, 23505, 23508, 23509, 23510, 23511, 23512, 23513, 23514, 23515, 23516, 23520, 23522, 23523, 23526, 23527, 23529, 23530, 23531, 23532, 23533, 23535, 23537, 23538, 23539, 23540, 23541, 23542, 23543, 23549, 23550, 23552, 23554, 23555, 23557, 23559, 23560, 23563, 23564, 23565, 23566, 23568, 23570, 23571, 23575, 23577, 23579, 23582, 23583, 23584, 23585, 23587, 23590, 23592, 23593, 23594, 23595, 23597, 23598, 23599, 23600, 23602, 23603, 23605, 23606, 23607, 23619, 23620, 23622, 23623, 23628, 23629, 23634, 23635, 23636, 23638, 23639, 23640, 23642, 23643, 23644, 23645, 23647, 23650, 23652, 23655, 23656, 23657, 23658, 23659, 23660, 23661, 23664, 23666, 23667, 23668, 23669, 23670, 23671, 23672, 23675, 23676, 23677, 23678, 23680, 23683, 23684, 23685, 23686, 23687, 23689, 23690, 23691, 23694, 23695, 23698, 23699, 23701, 23709, 23710, 23711, 23712, 23713, 23716, 23717, 23718, 23719, 23720, 23722, 23726, 23727, 23728, 23730, 23732, 23734, 23737, 23738, 23739, 23740, 23742, 23744, 23746, 23747, 23749, 23750, 23751, 23752, 23753, 23754, 23756, 23757, 23758, 23759, 23760, 23761, 23763, 23764, 23765, 23766, 23767, 23768, 23770, 23771, 23772, 23773, 23774, 23775, 23776, 23778, 23779, 23783, 23785, 23787, 23788, 23790, 23791, 23793, 23794, 23795, 23796, 23797, 23798, 23799, 23800, 23801, 23802, 23804, 23805, 23806, 23807, 23808, 23809, 23812, 23813, 23816, 23817, 23818, 23819, 23820, 23821, 23823, 23824, 23825, 23826, 23827, 23829, 23831, 23832, 23833, 23834, 23836, 23837, 23839, 23840, 23841, 23842, 23843, 23845, 23848, 23850, 23851, 23852, 23855, 23856, 23857, 23858, 23859, 23861, 23862, 23863, 23864, 23865, 23866, 23867, 23868, 23871, 23872, 23873, 23874, 23875, 23876, 23877, 23878, 23880, 23881, 23885, 23886, 23887, 23888, 23889, 23890, 23891, 23892, 23893, 23894, 23895, 23897, 23898, 23900, 23902, 23903, 23904, 23905, 23906, 23907, 23908, 23909, 23910, 23911, 23912, 23914, 23917, 23918, 23920, 23921, 23922, 23923, 23925, 23926, 23927, 23928, 23929, 23930, 23931, 23932, 23933, 23934, 23935, 23936, 23937, 23939, 23940, 23941, 23942, 23943, 23944, 23945, 23946, 23947, 23948, 23949, 23950, 23951, 23952, 23953, 23954, 23955, 23956, 23957, 23958, 23959, 23960, 23962, 23963, 23964, 23966, 23967, 23968, 23969, 23970, 23971, 23972, 23973, 23974, 23975, 23976, 23977, 23978, 23979, 23980, 23981, 23982, 23983, 23984, 23985, 23986, 23987, 23988, 23989, 23990, 23992, 23993, 23994, 23995, 23996, 23997, 23998, 23999, 24e3, 24001, 24002, 24003, 24004, 24006, 24007, 24008, 24009, 24010, 24011, 24012, 24014, 24015, 24016, 24017, 24018, 24019, 24020, 24021, 24022, 24023, 24024, 24025, 24026, 24028, 24031, 24032, 24035, 24036, 24042, 24044, 24045, 24048, 24053, 24054, 24056, 24057, 24058, 24059, 24060, 24063, 24064, 24068, 24071, 24073, 24074, 24075, 24077, 24078, 24082, 24083, 24087, 24094, 24095, 24096, 24097, 24098, 24099, 24100, 24101, 24104, 24105, 24106, 24107, 24108, 24111, 24112, 24114, 24115, 24116, 24117, 24118, 24121, 24122, 24126, 24127, 24128, 24129, 24131, 24134, 24135, 24136, 24137, 24138, 24139, 24141, 24142, 24143, 24144, 24145, 24146, 24147, 24150, 24151, 24152, 24153, 24154, 24156, 24157, 24159, 24160, 24163, 24164, 24165, 24166, 24167, 24168, 24169, 24170, 24171, 24172, 24173, 24174, 24175, 24176, 24177, 24181, 24183, 24185, 24190, 24193, 24194, 24195, 24197, 24200, 24201, 24204, 24205, 24206, 24210, 24216, 24219, 24221, 24225, 24226, 24227, 24228, 24232, 24233, 24234, 24235, 24236, 24238, 24239, 24240, 24241, 24242, 24244, 24250, 24251, 24252, 24253, 24255, 24256, 24257, 24258, 24259, 24260, 24261, 24262, 24263, 24264, 24267, 24268, 24269, 24270, 24271, 24272, 24276, 24277, 24279, 24280, 24281, 24282, 24284, 24285, 24286, 24287, 24288, 24289, 24290, 24291, 24292, 24293, 24294, 24295, 24297, 24299, 24300, 24301, 24302, 24303, 24304, 24305, 24306, 24307, 24309, 24312, 24313, 24315, 24316, 24317, 24325, 24326, 24327, 24329, 24332, 24333, 24334, 24336, 24338, 24340, 24342, 24345, 24346, 24348, 24349, 24350, 24353, 24354, 24355, 24356, 24360, 24363, 24364, 24366, 24368, 24370, 24371, 24372, 24373, 24374, 24375, 24376, 24379, 24381, 24382, 24383, 24385, 24386, 24387, 24388, 24389, 24390, 24391, 24392, 24393, 24394, 24395, 24396, 24397, 24398, 24399, 24401, 24404, 24409, 24410, 24411, 24412, 24414, 24415, 24416, 24419, 24421, 24423, 24424, 24427, 24430, 24431, 24434, 24436, 24437, 24438, 24440, 24442, 24445, 24446, 24447, 24451, 24454, 24461, 24462, 24463, 24465, 24467, 24468, 24470, 24474, 24475, 24477, 24478, 24479, 24480, 24482, 24483, 24484, 24485, 24486, 24487, 24489, 24491, 24492, 24495, 24496, 24497, 24498, 24499, 24500, 24502, 24504, 24505, 24506, 24507, 24510, 24511, 24512, 24513, 24514, 24519, 24520, 24522, 24523, 24526, 24531, 24532, 24533, 24538, 24539, 24540, 24542, 24543, 24546, 24547, 24549, 24550, 24552, 24553, 24556, 24559, 24560, 24562, 24563, 24564, 24566, 24567, 24569, 24570, 24572, 24583, 24584, 24585, 24587, 24588, 24592, 24593, 24595, 24599, 24600, 24602, 24606, 24607, 24610, 24611, 24612, 24620, 24621, 24622, 24624, 24625, 24626, 24627, 24628, 24630, 24631, 24632, 24633, 24634, 24637, 24638, 24640, 24644, 24645, 24646, 24647, 24648, 24649, 24650, 24652, 24654, 24655, 24657, 24659, 24660, 24662, 24663, 24664, 24667, 24668, 24670, 24671, 24672, 24673, 24677, 24678, 24686, 24689, 24690, 24692, 24693, 24695, 24702, 24704, 24705, 24706, 24709, 24710, 24711, 24712, 24714, 24715, 24718, 24719, 24720, 24721, 24723, 24725, 24727, 24728, 24729, 24732, 24734, 24737, 24738, 24740, 24741, 24743, 24745, 24746, 24750, 24752, 24755, 24757, 24758, 24759, 24761, 24762, 24765, 24766, 24767, 24768, 24769, 24770, 24771, 24772, 24775, 24776, 24777, 24780, 24781, 24782, 24783, 24784, 24786, 24787, 24788, 24790, 24791, 24793, 24795, 24798, 24801, 24802, 24803, 24804, 24805, 24810, 24817, 24818, 24821, 24823, 24824, 24827, 24828, 24829, 24830, 24831, 24834, 24835, 24836, 24837, 24839, 24842, 24843, 24844, 24848, 24849, 24850, 24851, 24852, 24854, 24855, 24856, 24857, 24859, 24860, 24861, 24862, 24865, 24866, 24869, 24872, 24873, 24874, 24876, 24877, 24878, 24879, 24880, 24881, 24882, 24883, 24884, 24885, 24886, 24887, 24888, 24889, 24890, 24891, 24892, 24893, 24894, 24896, 24897, 24898, 24899, 24900, 24901, 24902, 24903, 24905, 24907, 24909, 24911, 24912, 24914, 24915, 24916, 24918, 24919, 24920, 24921, 24922, 24923, 24924, 24926, 24927, 24928, 24929, 24931, 24932, 24933, 24934, 24937, 24938, 24939, 24940, 24941, 24942, 24943, 24945, 24946, 24947, 24948, 24950, 24952, 24953, 24954, 24955, 24956, 24957, 24958, 24959, 24960, 24961, 24962, 24963, 24964, 24965, 24966, 24967, 24968, 24969, 24970, 24972, 24973, 24975, 24976, 24977, 24978, 24979, 24981, 24982, 24983, 24984, 24985, 24986, 24987, 24988, 24990, 24991, 24992, 24993, 24994, 24995, 24996, 24997, 24998, 25002, 25003, 25005, 25006, 25007, 25008, 25009, 25010, 25011, 25012, 25013, 25014, 25016, 25017, 25018, 25019, 25020, 25021, 25023, 25024, 25025, 25027, 25028, 25029, 25030, 25031, 25033, 25036, 25037, 25038, 25039, 25040, 25043, 25045, 25046, 25047, 25048, 25049, 25050, 25051, 25052, 25053, 25054, 25055, 25056, 25057, 25058, 25059, 25060, 25061, 25063, 25064, 25065, 25066, 25067, 25068, 25069, 25070, 25071, 25072, 25073, 25074, 25075, 25076, 25078, 25079, 25080, 25081, 25082, 25083, 25084, 25085, 25086, 25088, 25089, 25090, 25091, 25092, 25093, 25095, 25097, 25107, 25108, 25113, 25116, 25117, 25118, 25120, 25123, 25126, 25127, 25128, 25129, 25131, 25133, 25135, 25136, 25137, 25138, 25141, 25142, 25144, 25145, 25146, 25147, 25148, 25154, 25156, 25157, 25158, 25162, 25167, 25168, 25173, 25174, 25175, 25177, 25178, 25180, 25181, 25182, 25183, 25184, 25185, 25186, 25188, 25189, 25192, 25201, 25202, 25204, 25205, 25207, 25208, 25210, 25211, 25213, 25217, 25218, 25219, 25221, 25222, 25223, 25224, 25227, 25228, 25229, 25230, 25231, 25232, 25236, 25241, 25244, 25245, 25246, 25251, 25254, 25255, 25257, 25258, 25261, 25262, 25263, 25264, 25266, 25267, 25268, 25270, 25271, 25272, 25274, 25278, 25280, 25281, 25283, 25291, 25295, 25297, 25301, 25309, 25310, 25312, 25313, 25316, 25322, 25323, 25328, 25330, 25333, 25336, 25337, 25338, 25339, 25344, 25347, 25348, 25349, 25350, 25354, 25355, 25356, 25357, 25359, 25360, 25362, 25363, 25364, 25365, 25367, 25368, 25369, 25372, 25382, 25383, 25385, 25388, 25389, 25390, 25392, 25393, 25395, 25396, 25397, 25398, 25399, 25400, 25403, 25404, 25406, 25407, 25408, 25409, 25412, 25415, 25416, 25418, 25425, 25426, 25427, 25428, 25430, 25431, 25432, 25433, 25434, 25435, 25436, 25437, 25440, 25444, 25445, 25446, 25448, 25450, 25451, 25452, 25455, 25456, 25458, 25459, 25460, 25461, 25464, 25465, 25468, 25469, 25470, 25471, 25473, 25475, 25476, 25477, 25478, 25483, 25485, 25489, 25491, 25492, 25493, 25495, 25497, 25498, 25499, 25500, 25501, 25502, 25503, 25505, 25508, 25510, 25515, 25519, 25521, 25522, 25525, 25526, 25529, 25531, 25533, 25535, 25536, 25537, 25538, 25539, 25541, 25543, 25544, 25546, 25547, 25548, 25553, 25555, 25556, 25557, 25559, 25560, 25561, 25562, 25563, 25564, 25565, 25567, 25570, 25572, 25573, 25574, 25575, 25576, 25579, 25580, 25582, 25583, 25584, 25585, 25587, 25589, 25591, 25593, 25594, 25595, 25596, 25598, 25603, 25604, 25606, 25607, 25608, 25609, 25610, 25613, 25614, 25617, 25618, 25621, 25622, 25623, 25624, 25625, 25626, 25629, 25631, 25634, 25635, 25636, 25637, 25639, 25640, 25641, 25643, 25646, 25647, 25648, 25649, 25650, 25651, 25653, 25654, 25655, 25656, 25657, 25659, 25660, 25662, 25664, 25666, 25667, 25673, 25675, 25676, 25677, 25678, 25679, 25680, 25681, 25683, 25685, 25686, 25687, 25689, 25690, 25691, 25692, 25693, 25695, 25696, 25697, 25698, 25699, 25700, 25701, 25702, 25704, 25706, 25707, 25708, 25710, 25711, 25712, 25713, 25714, 25715, 25716, 25717, 25718, 25719, 25723, 25724, 25725, 25726, 25727, 25728, 25729, 25731, 25734, 25736, 25737, 25738, 25739, 25740, 25741, 25742, 25743, 25744, 25747, 25748, 25751, 25752, 25754, 25755, 25756, 25757, 25759, 25760, 25761, 25762, 25763, 25765, 25766, 25767, 25768, 25770, 25771, 25775, 25777, 25778, 25779, 25780, 25782, 25785, 25787, 25789, 25790, 25791, 25793, 25795, 25796, 25798, 25799, 25800, 25801, 25802, 25803, 25804, 25807, 25809, 25811, 25812, 25813, 25814, 25817, 25818, 25819, 25820, 25821, 25823, 25824, 25825, 25827, 25829, 25831, 25832, 25833, 25834, 25835, 25836, 25837, 25838, 25839, 25840, 25841, 25842, 25843, 25844, 25845, 25846, 25847, 25848, 25849, 25850, 25851, 25852, 25853, 25854, 25855, 25857, 25858, 25859, 25860, 25861, 25862, 25863, 25864, 25866, 25867, 25868, 25869, 25870, 25871, 25872, 25873, 25875, 25876, 25877, 25878, 25879, 25881, 25882, 25883, 25884, 25885, 25886, 25887, 25888, 25889, 25890, 25891, 25892, 25894, 25895, 25896, 25897, 25898, 25900, 25901, 25904, 25905, 25906, 25907, 25911, 25914, 25916, 25917, 25920, 25921, 25922, 25923, 25924, 25926, 25927, 25930, 25931, 25933, 25934, 25936, 25938, 25939, 25940, 25943, 25944, 25946, 25948, 25951, 25952, 25953, 25956, 25957, 25959, 25960, 25961, 25962, 25965, 25966, 25967, 25969, 25971, 25973, 25974, 25976, 25977, 25978, 25979, 25980, 25981, 25982, 25983, 25984, 25985, 25986, 25987, 25988, 25989, 25990, 25992, 25993, 25994, 25997, 25998, 25999, 26002, 26004, 26005, 26006, 26008, 26010, 26013, 26014, 26016, 26018, 26019, 26022, 26024, 26026, 26028, 26030, 26033, 26034, 26035, 26036, 26037, 26038, 26039, 26040, 26042, 26043, 26046, 26047, 26048, 26050, 26055, 26056, 26057, 26058, 26061, 26064, 26065, 26067, 26068, 26069, 26072, 26073, 26074, 26075, 26076, 26077, 26078, 26079, 26081, 26083, 26084, 26090, 26091, 26098, 26099, 26100, 26101, 26104, 26105, 26107, 26108, 26109, 26110, 26111, 26113, 26116, 26117, 26119, 26120, 26121, 26123, 26125, 26128, 26129, 26130, 26134, 26135, 26136, 26138, 26139, 26140, 26142, 26145, 26146, 26147, 26148, 26150, 26153, 26154, 26155, 26156, 26158, 26160, 26162, 26163, 26167, 26168, 26169, 26170, 26171, 26173, 26175, 26176, 26178, 26180, 26181, 26182, 26183, 26184, 26185, 26186, 26189, 26190, 26192, 26193, 26200, 26201, 26203, 26204, 26205, 26206, 26208, 26210, 26211, 26213, 26215, 26217, 26218, 26219, 26220, 26221, 26225, 26226, 26227, 26229, 26232, 26233, 26235, 26236, 26237, 26239, 26240, 26241, 26243, 26245, 26246, 26248, 26249, 26250, 26251, 26253, 26254, 26255, 26256, 26258, 26259, 26260, 26261, 26264, 26265, 26266, 26267, 26268, 26270, 26271, 26272, 26273, 26274, 26275, 26276, 26277, 26278, 26281, 26282, 26283, 26284, 26285, 26287, 26288, 26289, 26290, 26291, 26293, 26294, 26295, 26296, 26298, 26299, 26300, 26301, 26303, 26304, 26305, 26306, 26307, 26308, 26309, 26310, 26311, 26312, 26313, 26314, 26315, 26316, 26317, 26318, 26319, 26320, 26321, 26322, 26323, 26324, 26325, 26326, 26327, 26328, 26330, 26334, 26335, 26336, 26337, 26338, 26339, 26340, 26341, 26343, 26344, 26346, 26347, 26348, 26349, 26350, 26351, 26353, 26357, 26358, 26360, 26362, 26363, 26365, 26369, 26370, 26371, 26372, 26373, 26374, 26375, 26380, 26382, 26383, 26385, 26386, 26387, 26390, 26392, 26393, 26394, 26396, 26398, 26400, 26401, 26402, 26403, 26404, 26405, 26407, 26409, 26414, 26416, 26418, 26419, 26422, 26423, 26424, 26425, 26427, 26428, 26430, 26431, 26433, 26436, 26437, 26439, 26442, 26443, 26445, 26450, 26452, 26453, 26455, 26456, 26457, 26458, 26459, 26461, 26466, 26467, 26468, 26470, 26471, 26475, 26476, 26478, 26481, 26484, 26486, 26488, 26489, 26490, 26491, 26493, 26496, 26498, 26499, 26501, 26502, 26504, 26506, 26508, 26509, 26510, 26511, 26513, 26514, 26515, 26516, 26518, 26521, 26523, 26527, 26528, 26529, 26532, 26534, 26537, 26540, 26542, 26545, 26546, 26548, 26553, 26554, 26555, 26556, 26557, 26558, 26559, 26560, 26562, 26565, 26566, 26567, 26568, 26569, 26570, 26571, 26572, 26573, 26574, 26581, 26582, 26583, 26587, 26591, 26593, 26595, 26596, 26598, 26599, 26600, 26602, 26603, 26605, 26606, 26610, 26613, 26614, 26615, 26616, 26617, 26618, 26619, 26620, 26622, 26625, 26626, 26627, 26628, 26630, 26637, 26640, 26642, 26644, 26645, 26648, 26649, 26650, 26651, 26652, 26654, 26655, 26656, 26658, 26659, 26660, 26661, 26662, 26663, 26664, 26667, 26668, 26669, 26670, 26671, 26672, 26673, 26676, 26677, 26678, 26682, 26683, 26687, 26695, 26699, 26701, 26703, 26706, 26710, 26711, 26712, 26713, 26714, 26715, 26716, 26717, 26718, 26719, 26730, 26732, 26733, 26734, 26735, 26736, 26737, 26738, 26739, 26741, 26744, 26745, 26746, 26747, 26748, 26749, 26750, 26751, 26752, 26754, 26756, 26759, 26760, 26761, 26762, 26763, 26764, 26765, 26766, 26768, 26769, 26770, 26772, 26773, 26774, 26776, 26777, 26778, 26779, 26780, 26781, 26782, 26783, 26784, 26785, 26787, 26788, 26789, 26793, 26794, 26795, 26796, 26798, 26801, 26802, 26804, 26806, 26807, 26808, 26809, 26810, 26811, 26812, 26813, 26814, 26815, 26817, 26819, 26820, 26821, 26822, 26823, 26824, 26826, 26828, 26830, 26831, 26832, 26833, 26835, 26836, 26838, 26839, 26841, 26843, 26844, 26845, 26846, 26847, 26849, 26850, 26852, 26853, 26854, 26855, 26856, 26857, 26858, 26859, 26860, 26861, 26863, 26866, 26867, 26868, 26870, 26871, 26872, 26875, 26877, 26878, 26879, 26880, 26882, 26883, 26884, 26886, 26887, 26888, 26889, 26890, 26892, 26895, 26897, 26899, 26900, 26901, 26902, 26903, 26904, 26905, 26906, 26907, 26908, 26909, 26910, 26913, 26914, 26915, 26917, 26918, 26919, 26920, 26921, 26922, 26923, 26924, 26926, 26927, 26929, 26930, 26931, 26933, 26934, 26935, 26936, 26938, 26939, 26940, 26942, 26944, 26945, 26947, 26948, 26949, 26950, 26951, 26952, 26953, 26954, 26955, 26956, 26957, 26958, 26959, 26960, 26961, 26962, 26963, 26965, 26966, 26968, 26969, 26971, 26972, 26975, 26977, 26978, 26980, 26981, 26983, 26984, 26985, 26986, 26988, 26989, 26991, 26992, 26994, 26995, 26996, 26997, 26998, 27002, 27003, 27005, 27006, 27007, 27009, 27011, 27013, 27018, 27019, 27020, 27022, 27023, 27024, 27025, 27026, 27027, 27030, 27031, 27033, 27034, 27037, 27038, 27039, 27040, 27041, 27042, 27043, 27044, 27045, 27046, 27049, 27050, 27052, 27054, 27055, 27056, 27058, 27059, 27061, 27062, 27064, 27065, 27066, 27068, 27069, 27070, 27071, 27072, 27074, 27075, 27076, 27077, 27078, 27079, 27080, 27081, 27083, 27085, 27087, 27089, 27090, 27091, 27093, 27094, 27095, 27096, 27097, 27098, 27100, 27101, 27102, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27118, 27119, 27120, 27121, 27123, 27124, 27125, 27126, 27127, 27128, 27129, 27130, 27131, 27132, 27134, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27147, 27148, 27149, 27150, 27151, 27152, 27153, 27154, 27155, 27156, 27157, 27158, 27161, 27162, 27163, 27164, 27165, 27166, 27168, 27170, 27171, 27172, 27173, 27174, 27175, 27177, 27179, 27180, 27181, 27182, 27184, 27186, 27187, 27188, 27190, 27191, 27192, 27193, 27194, 27195, 27196, 27199, 27200, 27201, 27202, 27203, 27205, 27206, 27208, 27209, 27210, 27211, 27212, 27213, 27214, 27215, 27217, 27218, 27219, 27220, 27221, 27222, 27223, 27226, 27228, 27229, 27230, 27231, 27232, 27234, 27235, 27236, 27238, 27239, 27240, 27241, 27242, 27243, 27244, 27245, 27246, 27247, 27248, 27250, 27251, 27252, 27253, 27254, 27255, 27256, 27258, 27259, 27261, 27262, 27263, 27265, 27266, 27267, 27269, 27270, 27271, 27272, 27273, 27274, 27275, 27276, 27277, 27279, 27282, 27283, 27284, 27285, 27286, 27288, 27289, 27290, 27291, 27292, 27293, 27294, 27295, 27297, 27298, 27299, 27300, 27301, 27302, 27303, 27304, 27306, 27309, 27310, 27311, 27312, 27313, 27314, 27315, 27316, 27317, 27318, 27319, 27320, 27321, 27322, 27323, 27324, 27325, 27326, 27327, 27328, 27329, 27330, 27331, 27332, 27333, 27334, 27335, 27336, 27337, 27338, 27339, 27340, 27341, 27342, 27343, 27344, 27345, 27346, 27347, 27348, 27349, 27350, 27351, 27352, 27353, 27354, 27355, 27356, 27357, 27358, 27359, 27360, 27361, 27362, 27363, 27364, 27365, 27366, 27367, 27368, 27369, 27370, 27371, 27372, 27373, 27374, 27375, 27376, 27377, 27378, 27379, 27380, 27381, 27382, 27383, 27384, 27385, 27386, 27387, 27388, 27389, 27390, 27391, 27392, 27393, 27394, 27395, 27396, 27397, 27398, 27399, 27400, 27401, 27402, 27403, 27404, 27405, 27406, 27407, 27408, 27409, 27410, 27411, 27412, 27413, 27414, 27415, 27416, 27417, 27418, 27419, 27420, 27421, 27422, 27423, 27429, 27430, 27432, 27433, 27434, 27435, 27436, 27437, 27438, 27439, 27440, 27441, 27443, 27444, 27445, 27446, 27448, 27451, 27452, 27453, 27455, 27456, 27457, 27458, 27460, 27461, 27464, 27466, 27467, 27469, 27470, 27471, 27472, 27473, 27474, 27475, 27476, 27477, 27478, 27479, 27480, 27482, 27483, 27484, 27485, 27486, 27487, 27488, 27489, 27496, 27497, 27499, 27500, 27501, 27502, 27503, 27504, 27505, 27506, 27507, 27508, 27509, 27510, 27511, 27512, 27514, 27517, 27518, 27519, 27520, 27525, 27528, 27532, 27534, 27535, 27536, 27537, 27540, 27541, 27543, 27544, 27545, 27548, 27549, 27550, 27551, 27552, 27554, 27555, 27556, 27557, 27558, 27559, 27560, 27561, 27563, 27564, 27565, 27566, 27567, 27568, 27569, 27570, 27574, 27576, 27577, 27578, 27579, 27580, 27581, 27582, 27584, 27587, 27588, 27590, 27591, 27592, 27593, 27594, 27596, 27598, 27600, 27601, 27608, 27610, 27612, 27613, 27614, 27615, 27616, 27618, 27619, 27620, 27621, 27622, 27623, 27624, 27625, 27628, 27629, 27630, 27632, 27633, 27634, 27636, 27638, 27639, 27640, 27642, 27643, 27644, 27646, 27647, 27648, 27649, 27650, 27651, 27652, 27656, 27657, 27658, 27659, 27660, 27662, 27666, 27671, 27676, 27677, 27678, 27680, 27683, 27685, 27691, 27692, 27693, 27697, 27699, 27702, 27703, 27705, 27706, 27707, 27708, 27710, 27711, 27715, 27716, 27717, 27720, 27723, 27724, 27725, 27726, 27727, 27729, 27730, 27731, 27734, 27736, 27737, 27738, 27746, 27747, 27749, 27750, 27751, 27755, 27756, 27757, 27758, 27759, 27761, 27763, 27765, 27767, 27768, 27770, 27771, 27772, 27775, 27776, 27780, 27783, 27786, 27787, 27789, 27790, 27793, 27794, 27797, 27798, 27799, 27800, 27802, 27804, 27805, 27806, 27808, 27810, 27816, 27820, 27823, 27824, 27828, 27829, 27830, 27831, 27834, 27840, 27841, 27842, 27843, 27846, 27847, 27848, 27851, 27853, 27854, 27855, 27857, 27858, 27864, 27865, 27866, 27868, 27869, 27871, 27876, 27878, 27879, 27881, 27884, 27885, 27890, 27892, 27897, 27903, 27904, 27906, 27907, 27909, 27910, 27912, 27913, 27914, 27917, 27919, 27920, 27921, 27923, 27924, 27925, 27926, 27928, 27932, 27933, 27935, 27936, 27937, 27938, 27939, 27940, 27942, 27944, 27945, 27948, 27949, 27951, 27952, 27956, 27958, 27959, 27960, 27962, 27967, 27968, 27970, 27972, 27977, 27980, 27984, 27989, 27990, 27991, 27992, 27995, 27997, 27999, 28001, 28002, 28004, 28005, 28007, 28008, 28011, 28012, 28013, 28016, 28017, 28018, 28019, 28021, 28022, 28025, 28026, 28027, 28029, 28030, 28031, 28032, 28033, 28035, 28036, 28038, 28039, 28042, 28043, 28045, 28047, 28048, 28050, 28054, 28055, 28056, 28057, 28058, 28060, 28066, 28069, 28076, 28077, 28080, 28081, 28083, 28084, 28086, 28087, 28089, 28090, 28091, 28092, 28093, 28094, 28097, 28098, 28099, 28104, 28105, 28106, 28109, 28110, 28111, 28112, 28114, 28115, 28116, 28117, 28119, 28122, 28123, 28124, 28127, 28130, 28131, 28133, 28135, 28136, 28137, 28138, 28141, 28143, 28144, 28146, 28148, 28149, 28150, 28152, 28154, 28157, 28158, 28159, 28160, 28161, 28162, 28163, 28164, 28166, 28167, 28168, 28169, 28171, 28175, 28178, 28179, 28181, 28184, 28185, 28187, 28188, 28190, 28191, 28194, 28198, 28199, 28200, 28202, 28204, 28206, 28208, 28209, 28211, 28213, 28214, 28215, 28217, 28219, 28220, 28221, 28222, 28223, 28224, 28225, 28226, 28229, 28230, 28231, 28232, 28233, 28234, 28235, 28236, 28239, 28240, 28241, 28242, 28245, 28247, 28249, 28250, 28252, 28253, 28254, 28256, 28257, 28258, 28259, 28260, 28261, 28262, 28263, 28264, 28265, 28266, 28268, 28269, 28271, 28272, 28273, 28274, 28275, 28276, 28277, 28278, 28279, 28280, 28281, 28282, 28283, 28284, 28285, 28288, 28289, 28290, 28292, 28295, 28296, 28298, 28299, 28300, 28301, 28302, 28305, 28306, 28307, 28308, 28309, 28310, 28311, 28313, 28314, 28315, 28317, 28318, 28320, 28321, 28323, 28324, 28326, 28328, 28329, 28331, 28332, 28333, 28334, 28336, 28339, 28341, 28344, 28345, 28348, 28350, 28351, 28352, 28355, 28356, 28357, 28358, 28360, 28361, 28362, 28364, 28365, 28366, 28368, 28370, 28374, 28376, 28377, 28379, 28380, 28381, 28387, 28391, 28394, 28395, 28396, 28397, 28398, 28399, 28400, 28401, 28402, 28403, 28405, 28406, 28407, 28408, 28410, 28411, 28412, 28413, 28414, 28415, 28416, 28417, 28419, 28420, 28421, 28423, 28424, 28426, 28427, 28428, 28429, 28430, 28432, 28433, 28434, 28438, 28439, 28440, 28441, 28442, 28443, 28444, 28445, 28446, 28447, 28449, 28450, 28451, 28453, 28454, 28455, 28456, 28460, 28462, 28464, 28466, 28468, 28469, 28471, 28472, 28473, 28474, 28475, 28476, 28477, 28479, 28480, 28481, 28482, 28483, 28484, 28485, 28488, 28489, 28490, 28492, 28494, 28495, 28496, 28497, 28498, 28499, 28500, 28501, 28502, 28503, 28505, 28506, 28507, 28509, 28511, 28512, 28513, 28515, 28516, 28517, 28519, 28520, 28521, 28522, 28523, 28524, 28527, 28528, 28529, 28531, 28533, 28534, 28535, 28537, 28539, 28541, 28542, 28543, 28544, 28545, 28546, 28547, 28549, 28550, 28551, 28554, 28555, 28559, 28560, 28561, 28562, 28563, 28564, 28565, 28566, 28567, 28568, 28569, 28570, 28571, 28573, 28574, 28575, 28576, 28578, 28579, 28580, 28581, 28582, 28584, 28585, 28586, 28587, 28588, 28589, 28590, 28591, 28592, 28593, 28594, 28596, 28597, 28599, 28600, 28602, 28603, 28604, 28605, 28606, 28607, 28609, 28611, 28612, 28613, 28614, 28615, 28616, 28618, 28619, 28620, 28621, 28622, 28623, 28624, 28627, 28628, 28629, 28630, 28631, 28632, 28633, 28634, 28635, 28636, 28637, 28639, 28642, 28643, 28644, 28645, 28646, 28647, 28648, 28649, 28650, 28651, 28652, 28653, 28656, 28657, 28658, 28659, 28660, 28661, 28662, 28663, 28664, 28665, 28666, 28667, 28668, 28669, 28670, 28671, 28672, 28673, 28674, 28675, 28676, 28677, 28678, 28679, 28680, 28681, 28682, 28683, 28684, 28685, 28686, 28687, 28688, 28690, 28691, 28692, 28693, 28694, 28695, 28696, 28697, 28700, 28701, 28702, 28703, 28704, 28705, 28706, 28708, 28709, 28710, 28711, 28712, 28713, 28714, 28715, 28716, 28717, 28718, 28719, 28720, 28721, 28722, 28723, 28724, 28726, 28727, 28728, 28730, 28731, 28732, 28733, 28734, 28735, 28736, 28737, 28738, 28739, 28740, 28741, 28742, 28743, 28744, 28745, 28746, 28747, 28749, 28750, 28752, 28753, 28754, 28755, 28756, 28757, 28758, 28759, 28760, 28761, 28762, 28763, 28764, 28765, 28767, 28768, 28769, 28770, 28771, 28772, 28773, 28774, 28775, 28776, 28777, 28778, 28782, 28785, 28786, 28787, 28788, 28791, 28793, 28794, 28795, 28797, 28801, 28802, 28803, 28804, 28806, 28807, 28808, 28811, 28812, 28813, 28815, 28816, 28817, 28819, 28823, 28824, 28826, 28827, 28830, 28831, 28832, 28833, 28834, 28835, 28836, 28837, 28838, 28839, 28840, 28841, 28842, 28848, 28850, 28852, 28853, 28854, 28858, 28862, 28863, 28868, 28869, 28870, 28871, 28873, 28875, 28876, 28877, 28878, 28879, 28880, 28881, 28882, 28883, 28884, 28885, 28886, 28887, 28890, 28892, 28893, 28894, 28896, 28897, 28898, 28899, 28901, 28906, 28910, 28912, 28913, 28914, 28915, 28916, 28917, 28918, 28920, 28922, 28923, 28924, 28926, 28927, 28928, 28929, 28930, 28931, 28932, 28933, 28934, 28935, 28936, 28939, 28940, 28941, 28942, 28943, 28945, 28946, 28948, 28951, 28955, 28956, 28957, 28958, 28959, 28960, 28961, 28962, 28963, 28964, 28965, 28967, 28968, 28969, 28970, 28971, 28972, 28973, 28974, 28978, 28979, 28980, 28981, 28983, 28984, 28985, 28986, 28987, 28988, 28989, 28990, 28991, 28992, 28993, 28994, 28995, 28996, 28998, 28999, 29e3, 29001, 29003, 29005, 29007, 29008, 29009, 29010, 29011, 29012, 29013, 29014, 29015, 29016, 29017, 29018, 29019, 29021, 29023, 29024, 29025, 29026, 29027, 29029, 29033, 29034, 29035, 29036, 29037, 29039, 29040, 29041, 29044, 29045, 29046, 29047, 29049, 29051, 29052, 29054, 29055, 29056, 29057, 29058, 29059, 29061, 29062, 29063, 29064, 29065, 29067, 29068, 29069, 29070, 29072, 29073, 29074, 29075, 29077, 29078, 29079, 29082, 29083, 29084, 29085, 29086, 29089, 29090, 29091, 29092, 29093, 29094, 29095, 29097, 29098, 29099, 29101, 29102, 29103, 29104, 29105, 29106, 29108, 29110, 29111, 29112, 29114, 29115, 29116, 29117, 29118, 29119, 29120, 29121, 29122, 29124, 29125, 29126, 29127, 29128, 29129, 29130, 29131, 29132, 29133, 29135, 29136, 29137, 29138, 29139, 29142, 29143, 29144, 29145, 29146, 29147, 29148, 29149, 29150, 29151, 29153, 29154, 29155, 29156, 29158, 29160, 29161, 29162, 29163, 29164, 29165, 29167, 29168, 29169, 29170, 29171, 29172, 29173, 29174, 29175, 29176, 29178, 29179, 29180, 29181, 29182, 29183, 29184, 29185, 29186, 29187, 29188, 29189, 29191, 29192, 29193, 29194, 29195, 29196, 29197, 29198, 29199, 29200, 29201, 29202, 29203, 29204, 29205, 29206, 29207, 29208, 29209, 29210, 29211, 29212, 29214, 29215, 29216, 29217, 29218, 29219, 29220, 29221, 29222, 29223, 29225, 29227, 29229, 29230, 29231, 29234, 29235, 29236, 29242, 29244, 29246, 29248, 29249, 29250, 29251, 29252, 29253, 29254, 29257, 29258, 29259, 29262, 29263, 29264, 29265, 29267, 29268, 29269, 29271, 29272, 29274, 29276, 29278, 29280, 29283, 29284, 29285, 29288, 29290, 29291, 29292, 29293, 29296, 29297, 29299, 29300, 29302, 29303, 29304, 29307, 29308, 29309, 29314, 29315, 29317, 29318, 29319, 29320, 29321, 29324, 29326, 29328, 29329, 29331, 29332, 29333, 29334, 29335, 29336, 29337, 29338, 29339, 29340, 29341, 29342, 29344, 29345, 29346, 29347, 29348, 29349, 29350, 29351, 29352, 29353, 29354, 29355, 29358, 29361, 29362, 29363, 29365, 29370, 29371, 29372, 29373, 29374, 29375, 29376, 29381, 29382, 29383, 29385, 29386, 29387, 29388, 29391, 29393, 29395, 29396, 29397, 29398, 29400, 29402, 29403, 58566, 58567, 58568, 58569, 58570, 58571, 58572, 58573, 58574, 58575, 58576, 58577, 58578, 58579, 58580, 58581, 58582, 58583, 58584, 58585, 58586, 58587, 58588, 58589, 58590, 58591, 58592, 58593, 58594, 58595, 58596, 58597, 58598, 58599, 58600, 58601, 58602, 58603, 58604, 58605, 58606, 58607, 58608, 58609, 58610, 58611, 58612, 58613, 58614, 58615, 58616, 58617, 58618, 58619, 58620, 58621, 58622, 58623, 58624, 58625, 58626, 58627, 58628, 58629, 58630, 58631, 58632, 58633, 58634, 58635, 58636, 58637, 58638, 58639, 58640, 58641, 58642, 58643, 58644, 58645, 58646, 58647, 58648, 58649, 58650, 58651, 58652, 58653, 58654, 58655, 58656, 58657, 58658, 58659, 58660, 58661, 12288, 12289, 12290, 183, 713, 711, 168, 12291, 12293, 8212, 65374, 8214, 8230, 8216, 8217, 8220, 8221, 12308, 12309, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12310, 12311, 12304, 12305, 177, 215, 247, 8758, 8743, 8744, 8721, 8719, 8746, 8745, 8712, 8759, 8730, 8869, 8741, 8736, 8978, 8857, 8747, 8750, 8801, 8780, 8776, 8765, 8733, 8800, 8814, 8815, 8804, 8805, 8734, 8757, 8756, 9794, 9792, 176, 8242, 8243, 8451, 65284, 164, 65504, 65505, 8240, 167, 8470, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 8251, 8594, 8592, 8593, 8595, 12307, 58662, 58663, 58664, 58665, 58666, 58667, 58668, 58669, 58670, 58671, 58672, 58673, 58674, 58675, 58676, 58677, 58678, 58679, 58680, 58681, 58682, 58683, 58684, 58685, 58686, 58687, 58688, 58689, 58690, 58691, 58692, 58693, 58694, 58695, 58696, 58697, 58698, 58699, 58700, 58701, 58702, 58703, 58704, 58705, 58706, 58707, 58708, 58709, 58710, 58711, 58712, 58713, 58714, 58715, 58716, 58717, 58718, 58719, 58720, 58721, 58722, 58723, 58724, 58725, 58726, 58727, 58728, 58729, 58730, 58731, 58732, 58733, 58734, 58735, 58736, 58737, 58738, 58739, 58740, 58741, 58742, 58743, 58744, 58745, 58746, 58747, 58748, 58749, 58750, 58751, 58752, 58753, 58754, 58755, 58756, 58757, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 59238, 59239, 59240, 59241, 59242, 59243, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 8364, 59245, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 59246, 59247, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 59248, 59249, 58758, 58759, 58760, 58761, 58762, 58763, 58764, 58765, 58766, 58767, 58768, 58769, 58770, 58771, 58772, 58773, 58774, 58775, 58776, 58777, 58778, 58779, 58780, 58781, 58782, 58783, 58784, 58785, 58786, 58787, 58788, 58789, 58790, 58791, 58792, 58793, 58794, 58795, 58796, 58797, 58798, 58799, 58800, 58801, 58802, 58803, 58804, 58805, 58806, 58807, 58808, 58809, 58810, 58811, 58812, 58813, 58814, 58815, 58816, 58817, 58818, 58819, 58820, 58821, 58822, 58823, 58824, 58825, 58826, 58827, 58828, 58829, 58830, 58831, 58832, 58833, 58834, 58835, 58836, 58837, 58838, 58839, 58840, 58841, 58842, 58843, 58844, 58845, 58846, 58847, 58848, 58849, 58850, 58851, 58852, 12288, 65281, 65282, 65283, 65509, 65285, 65286, 65287, 65288, 65289, 65290, 65291, 65292, 65293, 65294, 65295, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65306, 65307, 65308, 65309, 65310, 65311, 65312, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65339, 65340, 65341, 65342, 65343, 65344, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 65371, 65372, 65373, 65507, 58854, 58855, 58856, 58857, 58858, 58859, 58860, 58861, 58862, 58863, 58864, 58865, 58866, 58867, 58868, 58869, 58870, 58871, 58872, 58873, 58874, 58875, 58876, 58877, 58878, 58879, 58880, 58881, 58882, 58883, 58884, 58885, 58886, 58887, 58888, 58889, 58890, 58891, 58892, 58893, 58894, 58895, 58896, 58897, 58898, 58899, 58900, 58901, 58902, 58903, 58904, 58905, 58906, 58907, 58908, 58909, 58910, 58911, 58912, 58913, 58914, 58915, 58916, 58917, 58918, 58919, 58920, 58921, 58922, 58923, 58924, 58925, 58926, 58927, 58928, 58929, 58930, 58931, 58932, 58933, 58934, 58935, 58936, 58937, 58938, 58939, 58940, 58941, 58942, 58943, 58944, 58945, 58946, 58947, 58948, 58949, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 59250, 59251, 59252, 59253, 59254, 59255, 59256, 59257, 59258, 59259, 59260, 58950, 58951, 58952, 58953, 58954, 58955, 58956, 58957, 58958, 58959, 58960, 58961, 58962, 58963, 58964, 58965, 58966, 58967, 58968, 58969, 58970, 58971, 58972, 58973, 58974, 58975, 58976, 58977, 58978, 58979, 58980, 58981, 58982, 58983, 58984, 58985, 58986, 58987, 58988, 58989, 58990, 58991, 58992, 58993, 58994, 58995, 58996, 58997, 58998, 58999, 59e3, 59001, 59002, 59003, 59004, 59005, 59006, 59007, 59008, 59009, 59010, 59011, 59012, 59013, 59014, 59015, 59016, 59017, 59018, 59019, 59020, 59021, 59022, 59023, 59024, 59025, 59026, 59027, 59028, 59029, 59030, 59031, 59032, 59033, 59034, 59035, 59036, 59037, 59038, 59039, 59040, 59041, 59042, 59043, 59044, 59045, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 59261, 59262, 59263, 59264, 59265, 59266, 59267, 59268, 59046, 59047, 59048, 59049, 59050, 59051, 59052, 59053, 59054, 59055, 59056, 59057, 59058, 59059, 59060, 59061, 59062, 59063, 59064, 59065, 59066, 59067, 59068, 59069, 59070, 59071, 59072, 59073, 59074, 59075, 59076, 59077, 59078, 59079, 59080, 59081, 59082, 59083, 59084, 59085, 59086, 59087, 59088, 59089, 59090, 59091, 59092, 59093, 59094, 59095, 59096, 59097, 59098, 59099, 59100, 59101, 59102, 59103, 59104, 59105, 59106, 59107, 59108, 59109, 59110, 59111, 59112, 59113, 59114, 59115, 59116, 59117, 59118, 59119, 59120, 59121, 59122, 59123, 59124, 59125, 59126, 59127, 59128, 59129, 59130, 59131, 59132, 59133, 59134, 59135, 59136, 59137, 59138, 59139, 59140, 59141, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 59269, 59270, 59271, 59272, 59273, 59274, 59275, 59276, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, 59277, 59278, 59279, 59280, 59281, 59282, 59283, 65077, 65078, 65081, 65082, 65087, 65088, 65085, 65086, 65089, 65090, 65091, 65092, 59284, 59285, 65083, 65084, 65079, 65080, 65073, 59286, 65075, 65076, 59287, 59288, 59289, 59290, 59291, 59292, 59293, 59294, 59295, 59142, 59143, 59144, 59145, 59146, 59147, 59148, 59149, 59150, 59151, 59152, 59153, 59154, 59155, 59156, 59157, 59158, 59159, 59160, 59161, 59162, 59163, 59164, 59165, 59166, 59167, 59168, 59169, 59170, 59171, 59172, 59173, 59174, 59175, 59176, 59177, 59178, 59179, 59180, 59181, 59182, 59183, 59184, 59185, 59186, 59187, 59188, 59189, 59190, 59191, 59192, 59193, 59194, 59195, 59196, 59197, 59198, 59199, 59200, 59201, 59202, 59203, 59204, 59205, 59206, 59207, 59208, 59209, 59210, 59211, 59212, 59213, 59214, 59215, 59216, 59217, 59218, 59219, 59220, 59221, 59222, 59223, 59224, 59225, 59226, 59227, 59228, 59229, 59230, 59231, 59232, 59233, 59234, 59235, 59236, 59237, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 59296, 59297, 59298, 59299, 59300, 59301, 59302, 59303, 59304, 59305, 59306, 59307, 59308, 59309, 59310, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 59311, 59312, 59313, 59314, 59315, 59316, 59317, 59318, 59319, 59320, 59321, 59322, 59323, 714, 715, 729, 8211, 8213, 8229, 8245, 8453, 8457, 8598, 8599, 8600, 8601, 8725, 8735, 8739, 8786, 8806, 8807, 8895, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9619, 9620, 9621, 9660, 9661, 9698, 9699, 9700, 9701, 9737, 8853, 12306, 12317, 12318, 59324, 59325, 59326, 59327, 59328, 59329, 59330, 59331, 59332, 59333, 59334, 257, 225, 462, 224, 275, 233, 283, 232, 299, 237, 464, 236, 333, 243, 466, 242, 363, 250, 468, 249, 470, 472, 474, 476, 252, 234, 593, 7743, 324, 328, 505, 609, 59337, 59338, 59339, 59340, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 59341, 59342, 59343, 59344, 59345, 59346, 59347, 59348, 59349, 59350, 59351, 59352, 59353, 59354, 59355, 59356, 59357, 59358, 59359, 59360, 59361, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12963, 13198, 13199, 13212, 13213, 13214, 13217, 13252, 13262, 13265, 13266, 13269, 65072, 65506, 65508, 59362, 8481, 12849, 59363, 8208, 59364, 59365, 59366, 12540, 12443, 12444, 12541, 12542, 12294, 12445, 12446, 65097, 65098, 65099, 65100, 65101, 65102, 65103, 65104, 65105, 65106, 65108, 65109, 65110, 65111, 65113, 65114, 65115, 65116, 65117, 65118, 65119, 65120, 65121, 65122, 65123, 65124, 65125, 65126, 65128, 65129, 65130, 65131, 12350, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12295, 59380, 59381, 59382, 59383, 59384, 59385, 59386, 59387, 59388, 59389, 59390, 59391, 59392, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 59393, 59394, 59395, 59396, 59397, 59398, 59399, 59400, 59401, 59402, 59403, 59404, 59405, 59406, 59407, 29404, 29405, 29407, 29410, 29411, 29412, 29413, 29414, 29415, 29418, 29419, 29429, 29430, 29433, 29437, 29438, 29439, 29440, 29442, 29444, 29445, 29446, 29447, 29448, 29449, 29451, 29452, 29453, 29455, 29456, 29457, 29458, 29460, 29464, 29465, 29466, 29471, 29472, 29475, 29476, 29478, 29479, 29480, 29485, 29487, 29488, 29490, 29491, 29493, 29494, 29498, 29499, 29500, 29501, 29504, 29505, 29506, 29507, 29508, 29509, 29510, 29511, 29512, 29513, 29514, 29515, 29516, 29518, 29519, 29521, 29523, 29524, 29525, 29526, 29528, 29529, 29530, 29531, 29532, 29533, 29534, 29535, 29537, 29538, 29539, 29540, 29541, 29542, 29543, 29544, 29545, 29546, 29547, 29550, 29552, 29553, 57344, 57345, 57346, 57347, 57348, 57349, 57350, 57351, 57352, 57353, 57354, 57355, 57356, 57357, 57358, 57359, 57360, 57361, 57362, 57363, 57364, 57365, 57366, 57367, 57368, 57369, 57370, 57371, 57372, 57373, 57374, 57375, 57376, 57377, 57378, 57379, 57380, 57381, 57382, 57383, 57384, 57385, 57386, 57387, 57388, 57389, 57390, 57391, 57392, 57393, 57394, 57395, 57396, 57397, 57398, 57399, 57400, 57401, 57402, 57403, 57404, 57405, 57406, 57407, 57408, 57409, 57410, 57411, 57412, 57413, 57414, 57415, 57416, 57417, 57418, 57419, 57420, 57421, 57422, 57423, 57424, 57425, 57426, 57427, 57428, 57429, 57430, 57431, 57432, 57433, 57434, 57435, 57436, 57437, 29554, 29555, 29556, 29557, 29558, 29559, 29560, 29561, 29562, 29563, 29564, 29565, 29567, 29568, 29569, 29570, 29571, 29573, 29574, 29576, 29578, 29580, 29581, 29583, 29584, 29586, 29587, 29588, 29589, 29591, 29592, 29593, 29594, 29596, 29597, 29598, 29600, 29601, 29603, 29604, 29605, 29606, 29607, 29608, 29610, 29612, 29613, 29617, 29620, 29621, 29622, 29624, 29625, 29628, 29629, 29630, 29631, 29633, 29635, 29636, 29637, 29638, 29639, 29643, 29644, 29646, 29650, 29651, 29652, 29653, 29654, 29655, 29656, 29658, 29659, 29660, 29661, 29663, 29665, 29666, 29667, 29668, 29670, 29672, 29674, 29675, 29676, 29678, 29679, 29680, 29681, 29683, 29684, 29685, 29686, 29687, 57438, 57439, 57440, 57441, 57442, 57443, 57444, 57445, 57446, 57447, 57448, 57449, 57450, 57451, 57452, 57453, 57454, 57455, 57456, 57457, 57458, 57459, 57460, 57461, 57462, 57463, 57464, 57465, 57466, 57467, 57468, 57469, 57470, 57471, 57472, 57473, 57474, 57475, 57476, 57477, 57478, 57479, 57480, 57481, 57482, 57483, 57484, 57485, 57486, 57487, 57488, 57489, 57490, 57491, 57492, 57493, 57494, 57495, 57496, 57497, 57498, 57499, 57500, 57501, 57502, 57503, 57504, 57505, 57506, 57507, 57508, 57509, 57510, 57511, 57512, 57513, 57514, 57515, 57516, 57517, 57518, 57519, 57520, 57521, 57522, 57523, 57524, 57525, 57526, 57527, 57528, 57529, 57530, 57531, 29688, 29689, 29690, 29691, 29692, 29693, 29694, 29695, 29696, 29697, 29698, 29700, 29703, 29704, 29707, 29708, 29709, 29710, 29713, 29714, 29715, 29716, 29717, 29718, 29719, 29720, 29721, 29724, 29725, 29726, 29727, 29728, 29729, 29731, 29732, 29735, 29737, 29739, 29741, 29743, 29745, 29746, 29751, 29752, 29753, 29754, 29755, 29757, 29758, 29759, 29760, 29762, 29763, 29764, 29765, 29766, 29767, 29768, 29769, 29770, 29771, 29772, 29773, 29774, 29775, 29776, 29777, 29778, 29779, 29780, 29782, 29784, 29789, 29792, 29793, 29794, 29795, 29796, 29797, 29798, 29799, 29800, 29801, 29802, 29803, 29804, 29806, 29807, 29809, 29810, 29811, 29812, 29813, 29816, 29817, 29818, 57532, 57533, 57534, 57535, 57536, 57537, 57538, 57539, 57540, 57541, 57542, 57543, 57544, 57545, 57546, 57547, 57548, 57549, 57550, 57551, 57552, 57553, 57554, 57555, 57556, 57557, 57558, 57559, 57560, 57561, 57562, 57563, 57564, 57565, 57566, 57567, 57568, 57569, 57570, 57571, 57572, 57573, 57574, 57575, 57576, 57577, 57578, 57579, 57580, 57581, 57582, 57583, 57584, 57585, 57586, 57587, 57588, 57589, 57590, 57591, 57592, 57593, 57594, 57595, 57596, 57597, 57598, 57599, 57600, 57601, 57602, 57603, 57604, 57605, 57606, 57607, 57608, 57609, 57610, 57611, 57612, 57613, 57614, 57615, 57616, 57617, 57618, 57619, 57620, 57621, 57622, 57623, 57624, 57625, 29819, 29820, 29821, 29823, 29826, 29828, 29829, 29830, 29832, 29833, 29834, 29836, 29837, 29839, 29841, 29842, 29843, 29844, 29845, 29846, 29847, 29848, 29849, 29850, 29851, 29853, 29855, 29856, 29857, 29858, 29859, 29860, 29861, 29862, 29866, 29867, 29868, 29869, 29870, 29871, 29872, 29873, 29874, 29875, 29876, 29877, 29878, 29879, 29880, 29881, 29883, 29884, 29885, 29886, 29887, 29888, 29889, 29890, 29891, 29892, 29893, 29894, 29895, 29896, 29897, 29898, 29899, 29900, 29901, 29902, 29903, 29904, 29905, 29907, 29908, 29909, 29910, 29911, 29912, 29913, 29914, 29915, 29917, 29919, 29921, 29925, 29927, 29928, 29929, 29930, 29931, 29932, 29933, 29936, 29937, 29938, 57626, 57627, 57628, 57629, 57630, 57631, 57632, 57633, 57634, 57635, 57636, 57637, 57638, 57639, 57640, 57641, 57642, 57643, 57644, 57645, 57646, 57647, 57648, 57649, 57650, 57651, 57652, 57653, 57654, 57655, 57656, 57657, 57658, 57659, 57660, 57661, 57662, 57663, 57664, 57665, 57666, 57667, 57668, 57669, 57670, 57671, 57672, 57673, 57674, 57675, 57676, 57677, 57678, 57679, 57680, 57681, 57682, 57683, 57684, 57685, 57686, 57687, 57688, 57689, 57690, 57691, 57692, 57693, 57694, 57695, 57696, 57697, 57698, 57699, 57700, 57701, 57702, 57703, 57704, 57705, 57706, 57707, 57708, 57709, 57710, 57711, 57712, 57713, 57714, 57715, 57716, 57717, 57718, 57719, 29939, 29941, 29944, 29945, 29946, 29947, 29948, 29949, 29950, 29952, 29953, 29954, 29955, 29957, 29958, 29959, 29960, 29961, 29962, 29963, 29964, 29966, 29968, 29970, 29972, 29973, 29974, 29975, 29979, 29981, 29982, 29984, 29985, 29986, 29987, 29988, 29990, 29991, 29994, 29998, 30004, 30006, 30009, 30012, 30013, 30015, 30017, 30018, 30019, 30020, 30022, 30023, 30025, 30026, 30029, 30032, 30033, 30034, 30035, 30037, 30038, 30039, 30040, 30045, 30046, 30047, 30048, 30049, 30050, 30051, 30052, 30055, 30056, 30057, 30059, 30060, 30061, 30062, 30063, 30064, 30065, 30067, 30069, 30070, 30071, 30074, 30075, 30076, 30077, 30078, 30080, 30081, 30082, 30084, 30085, 30087, 57720, 57721, 57722, 57723, 57724, 57725, 57726, 57727, 57728, 57729, 57730, 57731, 57732, 57733, 57734, 57735, 57736, 57737, 57738, 57739, 57740, 57741, 57742, 57743, 57744, 57745, 57746, 57747, 57748, 57749, 57750, 57751, 57752, 57753, 57754, 57755, 57756, 57757, 57758, 57759, 57760, 57761, 57762, 57763, 57764, 57765, 57766, 57767, 57768, 57769, 57770, 57771, 57772, 57773, 57774, 57775, 57776, 57777, 57778, 57779, 57780, 57781, 57782, 57783, 57784, 57785, 57786, 57787, 57788, 57789, 57790, 57791, 57792, 57793, 57794, 57795, 57796, 57797, 57798, 57799, 57800, 57801, 57802, 57803, 57804, 57805, 57806, 57807, 57808, 57809, 57810, 57811, 57812, 57813, 30088, 30089, 30090, 30092, 30093, 30094, 30096, 30099, 30101, 30104, 30107, 30108, 30110, 30114, 30118, 30119, 30120, 30121, 30122, 30125, 30134, 30135, 30138, 30139, 30143, 30144, 30145, 30150, 30155, 30156, 30158, 30159, 30160, 30161, 30163, 30167, 30169, 30170, 30172, 30173, 30175, 30176, 30177, 30181, 30185, 30188, 30189, 30190, 30191, 30194, 30195, 30197, 30198, 30199, 30200, 30202, 30203, 30205, 30206, 30210, 30212, 30214, 30215, 30216, 30217, 30219, 30221, 30222, 30223, 30225, 30226, 30227, 30228, 30230, 30234, 30236, 30237, 30238, 30241, 30243, 30247, 30248, 30252, 30254, 30255, 30257, 30258, 30262, 30263, 30265, 30266, 30267, 30269, 30273, 30274, 30276, 57814, 57815, 57816, 57817, 57818, 57819, 57820, 57821, 57822, 57823, 57824, 57825, 57826, 57827, 57828, 57829, 57830, 57831, 57832, 57833, 57834, 57835, 57836, 57837, 57838, 57839, 57840, 57841, 57842, 57843, 57844, 57845, 57846, 57847, 57848, 57849, 57850, 57851, 57852, 57853, 57854, 57855, 57856, 57857, 57858, 57859, 57860, 57861, 57862, 57863, 57864, 57865, 57866, 57867, 57868, 57869, 57870, 57871, 57872, 57873, 57874, 57875, 57876, 57877, 57878, 57879, 57880, 57881, 57882, 57883, 57884, 57885, 57886, 57887, 57888, 57889, 57890, 57891, 57892, 57893, 57894, 57895, 57896, 57897, 57898, 57899, 57900, 57901, 57902, 57903, 57904, 57905, 57906, 57907, 30277, 30278, 30279, 30280, 30281, 30282, 30283, 30286, 30287, 30288, 30289, 30290, 30291, 30293, 30295, 30296, 30297, 30298, 30299, 30301, 30303, 30304, 30305, 30306, 30308, 30309, 30310, 30311, 30312, 30313, 30314, 30316, 30317, 30318, 30320, 30321, 30322, 30323, 30324, 30325, 30326, 30327, 30329, 30330, 30332, 30335, 30336, 30337, 30339, 30341, 30345, 30346, 30348, 30349, 30351, 30352, 30354, 30356, 30357, 30359, 30360, 30362, 30363, 30364, 30365, 30366, 30367, 30368, 30369, 30370, 30371, 30373, 30374, 30375, 30376, 30377, 30378, 30379, 30380, 30381, 30383, 30384, 30387, 30389, 30390, 30391, 30392, 30393, 30394, 30395, 30396, 30397, 30398, 30400, 30401, 30403, 21834, 38463, 22467, 25384, 21710, 21769, 21696, 30353, 30284, 34108, 30702, 33406, 30861, 29233, 38552, 38797, 27688, 23433, 20474, 25353, 26263, 23736, 33018, 26696, 32942, 26114, 30414, 20985, 25942, 29100, 32753, 34948, 20658, 22885, 25034, 28595, 33453, 25420, 25170, 21485, 21543, 31494, 20843, 30116, 24052, 25300, 36299, 38774, 25226, 32793, 22365, 38712, 32610, 29240, 30333, 26575, 30334, 25670, 20336, 36133, 25308, 31255, 26001, 29677, 25644, 25203, 33324, 39041, 26495, 29256, 25198, 25292, 20276, 29923, 21322, 21150, 32458, 37030, 24110, 26758, 27036, 33152, 32465, 26834, 30917, 34444, 38225, 20621, 35876, 33502, 32990, 21253, 35090, 21093, 30404, 30407, 30409, 30411, 30412, 30419, 30421, 30425, 30426, 30428, 30429, 30430, 30432, 30433, 30434, 30435, 30436, 30438, 30439, 30440, 30441, 30442, 30443, 30444, 30445, 30448, 30451, 30453, 30454, 30455, 30458, 30459, 30461, 30463, 30464, 30466, 30467, 30469, 30470, 30474, 30476, 30478, 30479, 30480, 30481, 30482, 30483, 30484, 30485, 30486, 30487, 30488, 30491, 30492, 30493, 30494, 30497, 30499, 30500, 30501, 30503, 30506, 30507, 30508, 30510, 30512, 30513, 30514, 30515, 30516, 30521, 30523, 30525, 30526, 30527, 30530, 30532, 30533, 30534, 30536, 30537, 30538, 30539, 30540, 30541, 30542, 30543, 30546, 30547, 30548, 30549, 30550, 30551, 30552, 30553, 30556, 34180, 38649, 20445, 22561, 39281, 23453, 25265, 25253, 26292, 35961, 40077, 29190, 26479, 30865, 24754, 21329, 21271, 36744, 32972, 36125, 38049, 20493, 29384, 22791, 24811, 28953, 34987, 22868, 33519, 26412, 31528, 23849, 32503, 29997, 27893, 36454, 36856, 36924, 40763, 27604, 37145, 31508, 24444, 30887, 34006, 34109, 27605, 27609, 27606, 24065, 24199, 30201, 38381, 25949, 24330, 24517, 36767, 22721, 33218, 36991, 38491, 38829, 36793, 32534, 36140, 25153, 20415, 21464, 21342, 36776, 36777, 36779, 36941, 26631, 24426, 33176, 34920, 40150, 24971, 21035, 30250, 24428, 25996, 28626, 28392, 23486, 25672, 20853, 20912, 26564, 19993, 31177, 39292, 28851, 30557, 30558, 30559, 30560, 30564, 30567, 30569, 30570, 30573, 30574, 30575, 30576, 30577, 30578, 30579, 30580, 30581, 30582, 30583, 30584, 30586, 30587, 30588, 30593, 30594, 30595, 30598, 30599, 30600, 30601, 30602, 30603, 30607, 30608, 30611, 30612, 30613, 30614, 30615, 30616, 30617, 30618, 30619, 30620, 30621, 30622, 30625, 30627, 30628, 30630, 30632, 30635, 30637, 30638, 30639, 30641, 30642, 30644, 30646, 30647, 30648, 30649, 30650, 30652, 30654, 30656, 30657, 30658, 30659, 30660, 30661, 30662, 30663, 30664, 30665, 30666, 30667, 30668, 30670, 30671, 30672, 30673, 30674, 30675, 30676, 30677, 30678, 30680, 30681, 30682, 30685, 30686, 30687, 30688, 30689, 30692, 30149, 24182, 29627, 33760, 25773, 25320, 38069, 27874, 21338, 21187, 25615, 38082, 31636, 20271, 24091, 33334, 33046, 33162, 28196, 27850, 39539, 25429, 21340, 21754, 34917, 22496, 19981, 24067, 27493, 31807, 37096, 24598, 25830, 29468, 35009, 26448, 25165, 36130, 30572, 36393, 37319, 24425, 33756, 34081, 39184, 21442, 34453, 27531, 24813, 24808, 28799, 33485, 33329, 20179, 27815, 34255, 25805, 31961, 27133, 26361, 33609, 21397, 31574, 20391, 20876, 27979, 23618, 36461, 25554, 21449, 33580, 33590, 26597, 30900, 25661, 23519, 23700, 24046, 35815, 25286, 26612, 35962, 25600, 25530, 34633, 39307, 35863, 32544, 38130, 20135, 38416, 39076, 26124, 29462, 30694, 30696, 30698, 30703, 30704, 30705, 30706, 30708, 30709, 30711, 30713, 30714, 30715, 30716, 30723, 30724, 30725, 30726, 30727, 30728, 30730, 30731, 30734, 30735, 30736, 30739, 30741, 30745, 30747, 30750, 30752, 30753, 30754, 30756, 30760, 30762, 30763, 30766, 30767, 30769, 30770, 30771, 30773, 30774, 30781, 30783, 30785, 30786, 30787, 30788, 30790, 30792, 30793, 30794, 30795, 30797, 30799, 30801, 30803, 30804, 30808, 30809, 30810, 30811, 30812, 30814, 30815, 30816, 30817, 30818, 30819, 30820, 30821, 30822, 30823, 30824, 30825, 30831, 30832, 30833, 30834, 30835, 30836, 30837, 30838, 30840, 30841, 30842, 30843, 30845, 30846, 30847, 30848, 30849, 30850, 30851, 22330, 23581, 24120, 38271, 20607, 32928, 21378, 25950, 30021, 21809, 20513, 36229, 25220, 38046, 26397, 22066, 28526, 24034, 21557, 28818, 36710, 25199, 25764, 25507, 24443, 28552, 37108, 33251, 36784, 23576, 26216, 24561, 27785, 38472, 36225, 34924, 25745, 31216, 22478, 27225, 25104, 21576, 20056, 31243, 24809, 28548, 35802, 25215, 36894, 39563, 31204, 21507, 30196, 25345, 21273, 27744, 36831, 24347, 39536, 32827, 40831, 20360, 23610, 36196, 32709, 26021, 28861, 20805, 20914, 34411, 23815, 23456, 25277, 37228, 30068, 36364, 31264, 24833, 31609, 20167, 32504, 30597, 19985, 33261, 21021, 20986, 27249, 21416, 36487, 38148, 38607, 28353, 38500, 26970, 30852, 30853, 30854, 30856, 30858, 30859, 30863, 30864, 30866, 30868, 30869, 30870, 30873, 30877, 30878, 30880, 30882, 30884, 30886, 30888, 30889, 30890, 30891, 30892, 30893, 30894, 30895, 30901, 30902, 30903, 30904, 30906, 30907, 30908, 30909, 30911, 30912, 30914, 30915, 30916, 30918, 30919, 30920, 30924, 30925, 30926, 30927, 30929, 30930, 30931, 30934, 30935, 30936, 30938, 30939, 30940, 30941, 30942, 30943, 30944, 30945, 30946, 30947, 30948, 30949, 30950, 30951, 30953, 30954, 30955, 30957, 30958, 30959, 30960, 30961, 30963, 30965, 30966, 30968, 30969, 30971, 30972, 30973, 30974, 30975, 30976, 30978, 30979, 30980, 30982, 30983, 30984, 30985, 30986, 30987, 30988, 30784, 20648, 30679, 25616, 35302, 22788, 25571, 24029, 31359, 26941, 20256, 33337, 21912, 20018, 30126, 31383, 24162, 24202, 38383, 21019, 21561, 28810, 25462, 38180, 22402, 26149, 26943, 37255, 21767, 28147, 32431, 34850, 25139, 32496, 30133, 33576, 30913, 38604, 36766, 24904, 29943, 35789, 27492, 21050, 36176, 27425, 32874, 33905, 22257, 21254, 20174, 19995, 20945, 31895, 37259, 31751, 20419, 36479, 31713, 31388, 25703, 23828, 20652, 33030, 30209, 31929, 28140, 32736, 26449, 23384, 23544, 30923, 25774, 25619, 25514, 25387, 38169, 25645, 36798, 31572, 30249, 25171, 22823, 21574, 27513, 20643, 25140, 24102, 27526, 20195, 36151, 34955, 24453, 36910, 30989, 30990, 30991, 30992, 30993, 30994, 30996, 30997, 30998, 30999, 31e3, 31001, 31002, 31003, 31004, 31005, 31007, 31008, 31009, 31010, 31011, 31013, 31014, 31015, 31016, 31017, 31018, 31019, 31020, 31021, 31022, 31023, 31024, 31025, 31026, 31027, 31029, 31030, 31031, 31032, 31033, 31037, 31039, 31042, 31043, 31044, 31045, 31047, 31050, 31051, 31052, 31053, 31054, 31055, 31056, 31057, 31058, 31060, 31061, 31064, 31065, 31073, 31075, 31076, 31078, 31081, 31082, 31083, 31084, 31086, 31088, 31089, 31090, 31091, 31092, 31093, 31094, 31097, 31099, 31100, 31101, 31102, 31103, 31106, 31107, 31110, 31111, 31112, 31113, 31115, 31116, 31117, 31118, 31120, 31121, 31122, 24608, 32829, 25285, 20025, 21333, 37112, 25528, 32966, 26086, 27694, 20294, 24814, 28129, 35806, 24377, 34507, 24403, 25377, 20826, 33633, 26723, 20992, 25443, 36424, 20498, 23707, 31095, 23548, 21040, 31291, 24764, 36947, 30423, 24503, 24471, 30340, 36460, 28783, 30331, 31561, 30634, 20979, 37011, 22564, 20302, 28404, 36842, 25932, 31515, 29380, 28068, 32735, 23265, 25269, 24213, 22320, 33922, 31532, 24093, 24351, 36882, 32532, 39072, 25474, 28359, 30872, 28857, 20856, 38747, 22443, 30005, 20291, 30008, 24215, 24806, 22880, 28096, 27583, 30857, 21500, 38613, 20939, 20993, 25481, 21514, 38035, 35843, 36300, 29241, 30879, 34678, 36845, 35853, 21472, 31123, 31124, 31125, 31126, 31127, 31128, 31129, 31131, 31132, 31133, 31134, 31135, 31136, 31137, 31138, 31139, 31140, 31141, 31142, 31144, 31145, 31146, 31147, 31148, 31149, 31150, 31151, 31152, 31153, 31154, 31156, 31157, 31158, 31159, 31160, 31164, 31167, 31170, 31172, 31173, 31175, 31176, 31178, 31180, 31182, 31183, 31184, 31187, 31188, 31190, 31191, 31193, 31194, 31195, 31196, 31197, 31198, 31200, 31201, 31202, 31205, 31208, 31210, 31212, 31214, 31217, 31218, 31219, 31220, 31221, 31222, 31223, 31225, 31226, 31228, 31230, 31231, 31233, 31236, 31237, 31239, 31240, 31241, 31242, 31244, 31247, 31248, 31249, 31250, 31251, 31253, 31254, 31256, 31257, 31259, 31260, 19969, 30447, 21486, 38025, 39030, 40718, 38189, 23450, 35746, 20002, 19996, 20908, 33891, 25026, 21160, 26635, 20375, 24683, 20923, 27934, 20828, 25238, 26007, 38497, 35910, 36887, 30168, 37117, 30563, 27602, 29322, 29420, 35835, 22581, 30585, 36172, 26460, 38208, 32922, 24230, 28193, 22930, 31471, 30701, 38203, 27573, 26029, 32526, 22534, 20817, 38431, 23545, 22697, 21544, 36466, 25958, 39039, 22244, 38045, 30462, 36929, 25479, 21702, 22810, 22842, 22427, 36530, 26421, 36346, 33333, 21057, 24816, 22549, 34558, 23784, 40517, 20420, 39069, 35769, 23077, 24694, 21380, 25212, 36943, 37122, 39295, 24681, 32780, 20799, 32819, 23572, 39285, 27953, 20108, 31261, 31263, 31265, 31266, 31268, 31269, 31270, 31271, 31272, 31273, 31274, 31275, 31276, 31277, 31278, 31279, 31280, 31281, 31282, 31284, 31285, 31286, 31288, 31290, 31294, 31296, 31297, 31298, 31299, 31300, 31301, 31303, 31304, 31305, 31306, 31307, 31308, 31309, 31310, 31311, 31312, 31314, 31315, 31316, 31317, 31318, 31320, 31321, 31322, 31323, 31324, 31325, 31326, 31327, 31328, 31329, 31330, 31331, 31332, 31333, 31334, 31335, 31336, 31337, 31338, 31339, 31340, 31341, 31342, 31343, 31345, 31346, 31347, 31349, 31355, 31356, 31357, 31358, 31362, 31365, 31367, 31369, 31370, 31371, 31372, 31374, 31375, 31376, 31379, 31380, 31385, 31386, 31387, 31390, 31393, 31394, 36144, 21457, 32602, 31567, 20240, 20047, 38400, 27861, 29648, 34281, 24070, 30058, 32763, 27146, 30718, 38034, 32321, 20961, 28902, 21453, 36820, 33539, 36137, 29359, 39277, 27867, 22346, 33459, 26041, 32938, 25151, 38450, 22952, 20223, 35775, 32442, 25918, 33778, 38750, 21857, 39134, 32933, 21290, 35837, 21536, 32954, 24223, 27832, 36153, 33452, 37210, 21545, 27675, 20998, 32439, 22367, 28954, 27774, 31881, 22859, 20221, 24575, 24868, 31914, 20016, 23553, 26539, 34562, 23792, 38155, 39118, 30127, 28925, 36898, 20911, 32541, 35773, 22857, 20964, 20315, 21542, 22827, 25975, 32932, 23413, 25206, 25282, 36752, 24133, 27679, 31526, 20239, 20440, 26381, 31395, 31396, 31399, 31401, 31402, 31403, 31406, 31407, 31408, 31409, 31410, 31412, 31413, 31414, 31415, 31416, 31417, 31418, 31419, 31420, 31421, 31422, 31424, 31425, 31426, 31427, 31428, 31429, 31430, 31431, 31432, 31433, 31434, 31436, 31437, 31438, 31439, 31440, 31441, 31442, 31443, 31444, 31445, 31447, 31448, 31450, 31451, 31452, 31453, 31457, 31458, 31460, 31463, 31464, 31465, 31466, 31467, 31468, 31470, 31472, 31473, 31474, 31475, 31476, 31477, 31478, 31479, 31480, 31483, 31484, 31486, 31488, 31489, 31490, 31493, 31495, 31497, 31500, 31501, 31502, 31504, 31506, 31507, 31510, 31511, 31512, 31514, 31516, 31517, 31519, 31521, 31522, 31523, 31527, 31529, 31533, 28014, 28074, 31119, 34993, 24343, 29995, 25242, 36741, 20463, 37340, 26023, 33071, 33105, 24220, 33104, 36212, 21103, 35206, 36171, 22797, 20613, 20184, 38428, 29238, 33145, 36127, 23500, 35747, 38468, 22919, 32538, 21648, 22134, 22030, 35813, 25913, 27010, 38041, 30422, 28297, 24178, 29976, 26438, 26577, 31487, 32925, 36214, 24863, 31174, 25954, 36195, 20872, 21018, 38050, 32568, 32923, 32434, 23703, 28207, 26464, 31705, 30347, 39640, 33167, 32660, 31957, 25630, 38224, 31295, 21578, 21733, 27468, 25601, 25096, 40509, 33011, 30105, 21106, 38761, 33883, 26684, 34532, 38401, 38548, 38124, 20010, 21508, 32473, 26681, 36319, 32789, 26356, 24218, 32697, 31535, 31536, 31538, 31540, 31541, 31542, 31543, 31545, 31547, 31549, 31551, 31552, 31553, 31554, 31555, 31556, 31558, 31560, 31562, 31565, 31566, 31571, 31573, 31575, 31577, 31580, 31582, 31583, 31585, 31587, 31588, 31589, 31590, 31591, 31592, 31593, 31594, 31595, 31596, 31597, 31599, 31600, 31603, 31604, 31606, 31608, 31610, 31612, 31613, 31615, 31617, 31618, 31619, 31620, 31622, 31623, 31624, 31625, 31626, 31627, 31628, 31630, 31631, 31633, 31634, 31635, 31638, 31640, 31641, 31642, 31643, 31646, 31647, 31648, 31651, 31652, 31653, 31662, 31663, 31664, 31666, 31667, 31669, 31670, 31671, 31673, 31674, 31675, 31676, 31677, 31678, 31679, 31680, 31682, 31683, 31684, 22466, 32831, 26775, 24037, 25915, 21151, 24685, 40858, 20379, 36524, 20844, 23467, 24339, 24041, 27742, 25329, 36129, 20849, 38057, 21246, 27807, 33503, 29399, 22434, 26500, 36141, 22815, 36764, 33735, 21653, 31629, 20272, 27837, 23396, 22993, 40723, 21476, 34506, 39592, 35895, 32929, 25925, 39038, 22266, 38599, 21038, 29916, 21072, 23521, 25346, 35074, 20054, 25296, 24618, 26874, 20851, 23448, 20896, 35266, 31649, 39302, 32592, 24815, 28748, 36143, 20809, 24191, 36891, 29808, 35268, 22317, 30789, 24402, 40863, 38394, 36712, 39740, 35809, 30328, 26690, 26588, 36330, 36149, 21053, 36746, 28378, 26829, 38149, 37101, 22269, 26524, 35065, 36807, 21704, 31685, 31688, 31689, 31690, 31691, 31693, 31694, 31695, 31696, 31698, 31700, 31701, 31702, 31703, 31704, 31707, 31708, 31710, 31711, 31712, 31714, 31715, 31716, 31719, 31720, 31721, 31723, 31724, 31725, 31727, 31728, 31730, 31731, 31732, 31733, 31734, 31736, 31737, 31738, 31739, 31741, 31743, 31744, 31745, 31746, 31747, 31748, 31749, 31750, 31752, 31753, 31754, 31757, 31758, 31760, 31761, 31762, 31763, 31764, 31765, 31767, 31768, 31769, 31770, 31771, 31772, 31773, 31774, 31776, 31777, 31778, 31779, 31780, 31781, 31784, 31785, 31787, 31788, 31789, 31790, 31791, 31792, 31793, 31794, 31795, 31796, 31797, 31798, 31799, 31801, 31802, 31803, 31804, 31805, 31806, 31810, 39608, 23401, 28023, 27686, 20133, 23475, 39559, 37219, 25e3, 37039, 38889, 21547, 28085, 23506, 20989, 21898, 32597, 32752, 25788, 25421, 26097, 25022, 24717, 28938, 27735, 27721, 22831, 26477, 33322, 22741, 22158, 35946, 27627, 37085, 22909, 32791, 21495, 28009, 21621, 21917, 33655, 33743, 26680, 31166, 21644, 20309, 21512, 30418, 35977, 38402, 27827, 28088, 36203, 35088, 40548, 36154, 22079, 40657, 30165, 24456, 29408, 24680, 21756, 20136, 27178, 34913, 24658, 36720, 21700, 28888, 34425, 40511, 27946, 23439, 24344, 32418, 21897, 20399, 29492, 21564, 21402, 20505, 21518, 21628, 20046, 24573, 29786, 22774, 33899, 32993, 34676, 29392, 31946, 28246, 31811, 31812, 31813, 31814, 31815, 31816, 31817, 31818, 31819, 31820, 31822, 31823, 31824, 31825, 31826, 31827, 31828, 31829, 31830, 31831, 31832, 31833, 31834, 31835, 31836, 31837, 31838, 31839, 31840, 31841, 31842, 31843, 31844, 31845, 31846, 31847, 31848, 31849, 31850, 31851, 31852, 31853, 31854, 31855, 31856, 31857, 31858, 31861, 31862, 31863, 31864, 31865, 31866, 31870, 31871, 31872, 31873, 31874, 31875, 31876, 31877, 31878, 31879, 31880, 31882, 31883, 31884, 31885, 31886, 31887, 31888, 31891, 31892, 31894, 31897, 31898, 31899, 31904, 31905, 31907, 31910, 31911, 31912, 31913, 31915, 31916, 31917, 31919, 31920, 31924, 31925, 31926, 31927, 31928, 31930, 31931, 24359, 34382, 21804, 25252, 20114, 27818, 25143, 33457, 21719, 21326, 29502, 28369, 30011, 21010, 21270, 35805, 27088, 24458, 24576, 28142, 22351, 27426, 29615, 26707, 36824, 32531, 25442, 24739, 21796, 30186, 35938, 28949, 28067, 23462, 24187, 33618, 24908, 40644, 30970, 34647, 31783, 30343, 20976, 24822, 29004, 26179, 24140, 24653, 35854, 28784, 25381, 36745, 24509, 24674, 34516, 22238, 27585, 24724, 24935, 21321, 24800, 26214, 36159, 31229, 20250, 28905, 27719, 35763, 35826, 32472, 33636, 26127, 23130, 39746, 27985, 28151, 35905, 27963, 20249, 28779, 33719, 25110, 24785, 38669, 36135, 31096, 20987, 22334, 22522, 26426, 30072, 31293, 31215, 31637, 31935, 31936, 31938, 31939, 31940, 31942, 31945, 31947, 31950, 31951, 31952, 31953, 31954, 31955, 31956, 31960, 31962, 31963, 31965, 31966, 31969, 31970, 31971, 31972, 31973, 31974, 31975, 31977, 31978, 31979, 31980, 31981, 31982, 31984, 31985, 31986, 31987, 31988, 31989, 31990, 31991, 31993, 31994, 31996, 31997, 31998, 31999, 32e3, 32001, 32002, 32003, 32004, 32005, 32006, 32007, 32008, 32009, 32011, 32012, 32013, 32014, 32015, 32016, 32017, 32018, 32019, 32020, 32021, 32022, 32023, 32024, 32025, 32026, 32027, 32028, 32029, 32030, 32031, 32033, 32035, 32036, 32037, 32038, 32040, 32041, 32042, 32044, 32045, 32046, 32048, 32049, 32050, 32051, 32052, 32053, 32054, 32908, 39269, 36857, 28608, 35749, 40481, 23020, 32489, 32521, 21513, 26497, 26840, 36753, 31821, 38598, 21450, 24613, 30142, 27762, 21363, 23241, 32423, 25380, 20960, 33034, 24049, 34015, 25216, 20864, 23395, 20238, 31085, 21058, 24760, 27982, 23492, 23490, 35745, 35760, 26082, 24524, 38469, 22931, 32487, 32426, 22025, 26551, 22841, 20339, 23478, 21152, 33626, 39050, 36158, 30002, 38078, 20551, 31292, 20215, 26550, 39550, 23233, 27516, 30417, 22362, 23574, 31546, 38388, 29006, 20860, 32937, 33392, 22904, 32516, 33575, 26816, 26604, 30897, 30839, 25315, 25441, 31616, 20461, 21098, 20943, 33616, 27099, 37492, 36341, 36145, 35265, 38190, 31661, 20214, 32055, 32056, 32057, 32058, 32059, 32060, 32061, 32062, 32063, 32064, 32065, 32066, 32067, 32068, 32069, 32070, 32071, 32072, 32073, 32074, 32075, 32076, 32077, 32078, 32079, 32080, 32081, 32082, 32083, 32084, 32085, 32086, 32087, 32088, 32089, 32090, 32091, 32092, 32093, 32094, 32095, 32096, 32097, 32098, 32099, 32100, 32101, 32102, 32103, 32104, 32105, 32106, 32107, 32108, 32109, 32111, 32112, 32113, 32114, 32115, 32116, 32117, 32118, 32120, 32121, 32122, 32123, 32124, 32125, 32126, 32127, 32128, 32129, 32130, 32131, 32132, 32133, 32134, 32135, 32136, 32137, 32138, 32139, 32140, 32141, 32142, 32143, 32144, 32145, 32146, 32147, 32148, 32149, 32150, 32151, 32152, 20581, 33328, 21073, 39279, 28176, 28293, 28071, 24314, 20725, 23004, 23558, 27974, 27743, 30086, 33931, 26728, 22870, 35762, 21280, 37233, 38477, 34121, 26898, 30977, 28966, 33014, 20132, 37066, 27975, 39556, 23047, 22204, 25605, 38128, 30699, 20389, 33050, 29409, 35282, 39290, 32564, 32478, 21119, 25945, 37237, 36735, 36739, 21483, 31382, 25581, 25509, 30342, 31224, 34903, 38454, 25130, 21163, 33410, 26708, 26480, 25463, 30571, 31469, 27905, 32467, 35299, 22992, 25106, 34249, 33445, 30028, 20511, 20171, 30117, 35819, 23626, 24062, 31563, 26020, 37329, 20170, 27941, 35167, 32039, 38182, 20165, 35880, 36827, 38771, 26187, 31105, 36817, 28908, 28024, 32153, 32154, 32155, 32156, 32157, 32158, 32159, 32160, 32161, 32162, 32163, 32164, 32165, 32167, 32168, 32169, 32170, 32171, 32172, 32173, 32175, 32176, 32177, 32178, 32179, 32180, 32181, 32182, 32183, 32184, 32185, 32186, 32187, 32188, 32189, 32190, 32191, 32192, 32193, 32194, 32195, 32196, 32197, 32198, 32199, 32200, 32201, 32202, 32203, 32204, 32205, 32206, 32207, 32208, 32209, 32210, 32211, 32212, 32213, 32214, 32215, 32216, 32217, 32218, 32219, 32220, 32221, 32222, 32223, 32224, 32225, 32226, 32227, 32228, 32229, 32230, 32231, 32232, 32233, 32234, 32235, 32236, 32237, 32238, 32239, 32240, 32241, 32242, 32243, 32244, 32245, 32246, 32247, 32248, 32249, 32250, 23613, 21170, 33606, 20834, 33550, 30555, 26230, 40120, 20140, 24778, 31934, 31923, 32463, 20117, 35686, 26223, 39048, 38745, 22659, 25964, 38236, 24452, 30153, 38742, 31455, 31454, 20928, 28847, 31384, 25578, 31350, 32416, 29590, 38893, 20037, 28792, 20061, 37202, 21417, 25937, 26087, 33276, 33285, 21646, 23601, 30106, 38816, 25304, 29401, 30141, 23621, 39545, 33738, 23616, 21632, 30697, 20030, 27822, 32858, 25298, 25454, 24040, 20855, 36317, 36382, 38191, 20465, 21477, 24807, 28844, 21095, 25424, 40515, 23071, 20518, 30519, 21367, 32482, 25733, 25899, 25225, 25496, 20500, 29237, 35273, 20915, 35776, 32477, 22343, 33740, 38055, 20891, 21531, 23803, 32251, 32252, 32253, 32254, 32255, 32256, 32257, 32258, 32259, 32260, 32261, 32262, 32263, 32264, 32265, 32266, 32267, 32268, 32269, 32270, 32271, 32272, 32273, 32274, 32275, 32276, 32277, 32278, 32279, 32280, 32281, 32282, 32283, 32284, 32285, 32286, 32287, 32288, 32289, 32290, 32291, 32292, 32293, 32294, 32295, 32296, 32297, 32298, 32299, 32300, 32301, 32302, 32303, 32304, 32305, 32306, 32307, 32308, 32309, 32310, 32311, 32312, 32313, 32314, 32316, 32317, 32318, 32319, 32320, 32322, 32323, 32324, 32325, 32326, 32328, 32329, 32330, 32331, 32332, 32333, 32334, 32335, 32336, 32337, 32338, 32339, 32340, 32341, 32342, 32343, 32344, 32345, 32346, 32347, 32348, 32349, 20426, 31459, 27994, 37089, 39567, 21888, 21654, 21345, 21679, 24320, 25577, 26999, 20975, 24936, 21002, 22570, 21208, 22350, 30733, 30475, 24247, 24951, 31968, 25179, 25239, 20130, 28821, 32771, 25335, 28900, 38752, 22391, 33499, 26607, 26869, 30933, 39063, 31185, 22771, 21683, 21487, 28212, 20811, 21051, 23458, 35838, 32943, 21827, 22438, 24691, 22353, 21549, 31354, 24656, 23380, 25511, 25248, 21475, 25187, 23495, 26543, 21741, 31391, 33510, 37239, 24211, 35044, 22840, 22446, 25358, 36328, 33007, 22359, 31607, 20393, 24555, 23485, 27454, 21281, 31568, 29378, 26694, 30719, 30518, 26103, 20917, 20111, 30420, 23743, 31397, 33909, 22862, 39745, 20608, 32350, 32351, 32352, 32353, 32354, 32355, 32356, 32357, 32358, 32359, 32360, 32361, 32362, 32363, 32364, 32365, 32366, 32367, 32368, 32369, 32370, 32371, 32372, 32373, 32374, 32375, 32376, 32377, 32378, 32379, 32380, 32381, 32382, 32383, 32384, 32385, 32387, 32388, 32389, 32390, 32391, 32392, 32393, 32394, 32395, 32396, 32397, 32398, 32399, 32400, 32401, 32402, 32403, 32404, 32405, 32406, 32407, 32408, 32409, 32410, 32412, 32413, 32414, 32430, 32436, 32443, 32444, 32470, 32484, 32492, 32505, 32522, 32528, 32542, 32567, 32569, 32571, 32572, 32573, 32574, 32575, 32576, 32577, 32579, 32582, 32583, 32584, 32585, 32586, 32587, 32588, 32589, 32590, 32591, 32594, 32595, 39304, 24871, 28291, 22372, 26118, 25414, 22256, 25324, 25193, 24275, 38420, 22403, 25289, 21895, 34593, 33098, 36771, 21862, 33713, 26469, 36182, 34013, 23146, 26639, 25318, 31726, 38417, 20848, 28572, 35888, 25597, 35272, 25042, 32518, 28866, 28389, 29701, 27028, 29436, 24266, 37070, 26391, 28010, 25438, 21171, 29282, 32769, 20332, 23013, 37226, 28889, 28061, 21202, 20048, 38647, 38253, 34174, 30922, 32047, 20769, 22418, 25794, 32907, 31867, 27882, 26865, 26974, 20919, 21400, 26792, 29313, 40654, 31729, 29432, 31163, 28435, 29702, 26446, 37324, 40100, 31036, 33673, 33620, 21519, 26647, 20029, 21385, 21169, 30782, 21382, 21033, 20616, 20363, 20432, 32598, 32601, 32603, 32604, 32605, 32606, 32608, 32611, 32612, 32613, 32614, 32615, 32619, 32620, 32621, 32623, 32624, 32627, 32629, 32630, 32631, 32632, 32634, 32635, 32636, 32637, 32639, 32640, 32642, 32643, 32644, 32645, 32646, 32647, 32648, 32649, 32651, 32653, 32655, 32656, 32657, 32658, 32659, 32661, 32662, 32663, 32664, 32665, 32667, 32668, 32672, 32674, 32675, 32677, 32678, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32689, 32691, 32692, 32693, 32694, 32695, 32698, 32699, 32702, 32704, 32706, 32707, 32708, 32710, 32711, 32712, 32713, 32715, 32717, 32719, 32720, 32721, 32722, 32723, 32726, 32727, 32729, 32730, 32731, 32732, 32733, 32734, 32738, 32739, 30178, 31435, 31890, 27813, 38582, 21147, 29827, 21737, 20457, 32852, 33714, 36830, 38256, 24265, 24604, 28063, 24088, 25947, 33080, 38142, 24651, 28860, 32451, 31918, 20937, 26753, 31921, 33391, 20004, 36742, 37327, 26238, 20142, 35845, 25769, 32842, 20698, 30103, 29134, 23525, 36797, 28518, 20102, 25730, 38243, 24278, 26009, 21015, 35010, 28872, 21155, 29454, 29747, 26519, 30967, 38678, 20020, 37051, 40158, 28107, 20955, 36161, 21533, 25294, 29618, 33777, 38646, 40836, 38083, 20278, 32666, 20940, 28789, 38517, 23725, 39046, 21478, 20196, 28316, 29705, 27060, 30827, 39311, 30041, 21016, 30244, 27969, 26611, 20845, 40857, 32843, 21657, 31548, 31423, 32740, 32743, 32744, 32746, 32747, 32748, 32749, 32751, 32754, 32756, 32757, 32758, 32759, 32760, 32761, 32762, 32765, 32766, 32767, 32770, 32775, 32776, 32777, 32778, 32782, 32783, 32785, 32787, 32794, 32795, 32797, 32798, 32799, 32801, 32803, 32804, 32811, 32812, 32813, 32814, 32815, 32816, 32818, 32820, 32825, 32826, 32828, 32830, 32832, 32833, 32836, 32837, 32839, 32840, 32841, 32846, 32847, 32848, 32849, 32851, 32853, 32854, 32855, 32857, 32859, 32860, 32861, 32862, 32863, 32864, 32865, 32866, 32867, 32868, 32869, 32870, 32871, 32872, 32875, 32876, 32877, 32878, 32879, 32880, 32882, 32883, 32884, 32885, 32886, 32887, 32888, 32889, 32890, 32891, 32892, 32893, 38534, 22404, 25314, 38471, 27004, 23044, 25602, 31699, 28431, 38475, 33446, 21346, 39045, 24208, 28809, 25523, 21348, 34383, 40065, 40595, 30860, 38706, 36335, 36162, 40575, 28510, 31108, 24405, 38470, 25134, 39540, 21525, 38109, 20387, 26053, 23653, 23649, 32533, 34385, 27695, 24459, 29575, 28388, 32511, 23782, 25371, 23402, 28390, 21365, 20081, 25504, 30053, 25249, 36718, 20262, 20177, 27814, 32438, 35770, 33821, 34746, 32599, 36923, 38179, 31657, 39585, 35064, 33853, 27931, 39558, 32476, 22920, 40635, 29595, 30721, 34434, 39532, 39554, 22043, 21527, 22475, 20080, 40614, 21334, 36808, 33033, 30610, 39314, 34542, 28385, 34067, 26364, 24930, 28459, 32894, 32897, 32898, 32901, 32904, 32906, 32909, 32910, 32911, 32912, 32913, 32914, 32916, 32917, 32919, 32921, 32926, 32931, 32934, 32935, 32936, 32940, 32944, 32947, 32949, 32950, 32952, 32953, 32955, 32965, 32967, 32968, 32969, 32970, 32971, 32975, 32976, 32977, 32978, 32979, 32980, 32981, 32984, 32991, 32992, 32994, 32995, 32998, 33006, 33013, 33015, 33017, 33019, 33022, 33023, 33024, 33025, 33027, 33028, 33029, 33031, 33032, 33035, 33036, 33045, 33047, 33049, 33051, 33052, 33053, 33055, 33056, 33057, 33058, 33059, 33060, 33061, 33062, 33063, 33064, 33065, 33066, 33067, 33069, 33070, 33072, 33075, 33076, 33077, 33079, 33081, 33082, 33083, 33084, 33085, 33087, 35881, 33426, 33579, 30450, 27667, 24537, 33725, 29483, 33541, 38170, 27611, 30683, 38086, 21359, 33538, 20882, 24125, 35980, 36152, 20040, 29611, 26522, 26757, 37238, 38665, 29028, 27809, 30473, 23186, 38209, 27599, 32654, 26151, 23504, 22969, 23194, 38376, 38391, 20204, 33804, 33945, 27308, 30431, 38192, 29467, 26790, 23391, 30511, 37274, 38753, 31964, 36855, 35868, 24357, 31859, 31192, 35269, 27852, 34588, 23494, 24130, 26825, 30496, 32501, 20885, 20813, 21193, 23081, 32517, 38754, 33495, 25551, 30596, 34256, 31186, 28218, 24217, 22937, 34065, 28781, 27665, 25279, 30399, 25935, 24751, 38397, 26126, 34719, 40483, 38125, 21517, 21629, 35884, 25720, 33088, 33089, 33090, 33091, 33092, 33093, 33095, 33097, 33101, 33102, 33103, 33106, 33110, 33111, 33112, 33115, 33116, 33117, 33118, 33119, 33121, 33122, 33123, 33124, 33126, 33128, 33130, 33131, 33132, 33135, 33138, 33139, 33141, 33142, 33143, 33144, 33153, 33155, 33156, 33157, 33158, 33159, 33161, 33163, 33164, 33165, 33166, 33168, 33170, 33171, 33172, 33173, 33174, 33175, 33177, 33178, 33182, 33183, 33184, 33185, 33186, 33188, 33189, 33191, 33193, 33195, 33196, 33197, 33198, 33199, 33200, 33201, 33202, 33204, 33205, 33206, 33207, 33208, 33209, 33212, 33213, 33214, 33215, 33220, 33221, 33223, 33224, 33225, 33227, 33229, 33230, 33231, 33232, 33233, 33234, 33235, 25721, 34321, 27169, 33180, 30952, 25705, 39764, 25273, 26411, 33707, 22696, 40664, 27819, 28448, 23518, 38476, 35851, 29279, 26576, 25287, 29281, 20137, 22982, 27597, 22675, 26286, 24149, 21215, 24917, 26408, 30446, 30566, 29287, 31302, 25343, 21738, 21584, 38048, 37027, 23068, 32435, 27670, 20035, 22902, 32784, 22856, 21335, 30007, 38590, 22218, 25376, 33041, 24700, 38393, 28118, 21602, 39297, 20869, 23273, 33021, 22958, 38675, 20522, 27877, 23612, 25311, 20320, 21311, 33147, 36870, 28346, 34091, 25288, 24180, 30910, 25781, 25467, 24565, 23064, 37247, 40479, 23615, 25423, 32834, 23421, 21870, 38218, 38221, 28037, 24744, 26592, 29406, 20957, 23425, 33236, 33237, 33238, 33239, 33240, 33241, 33242, 33243, 33244, 33245, 33246, 33247, 33248, 33249, 33250, 33252, 33253, 33254, 33256, 33257, 33259, 33262, 33263, 33264, 33265, 33266, 33269, 33270, 33271, 33272, 33273, 33274, 33277, 33279, 33283, 33287, 33288, 33289, 33290, 33291, 33294, 33295, 33297, 33299, 33301, 33302, 33303, 33304, 33305, 33306, 33309, 33312, 33316, 33317, 33318, 33319, 33321, 33326, 33330, 33338, 33340, 33341, 33343, 33344, 33345, 33346, 33347, 33349, 33350, 33352, 33354, 33356, 33357, 33358, 33360, 33361, 33362, 33363, 33364, 33365, 33366, 33367, 33369, 33371, 33372, 33373, 33374, 33376, 33377, 33378, 33379, 33380, 33381, 33382, 33383, 33385, 25319, 27870, 29275, 25197, 38062, 32445, 33043, 27987, 20892, 24324, 22900, 21162, 24594, 22899, 26262, 34384, 30111, 25386, 25062, 31983, 35834, 21734, 27431, 40485, 27572, 34261, 21589, 20598, 27812, 21866, 36276, 29228, 24085, 24597, 29750, 25293, 25490, 29260, 24472, 28227, 27966, 25856, 28504, 30424, 30928, 30460, 30036, 21028, 21467, 20051, 24222, 26049, 32810, 32982, 25243, 21638, 21032, 28846, 34957, 36305, 27873, 21624, 32986, 22521, 35060, 36180, 38506, 37197, 20329, 27803, 21943, 30406, 30768, 25256, 28921, 28558, 24429, 34028, 26842, 30844, 31735, 33192, 26379, 40527, 25447, 30896, 22383, 30738, 38713, 25209, 25259, 21128, 29749, 27607, 33386, 33387, 33388, 33389, 33393, 33397, 33398, 33399, 33400, 33403, 33404, 33408, 33409, 33411, 33413, 33414, 33415, 33417, 33420, 33424, 33427, 33428, 33429, 33430, 33434, 33435, 33438, 33440, 33442, 33443, 33447, 33458, 33461, 33462, 33466, 33467, 33468, 33471, 33472, 33474, 33475, 33477, 33478, 33481, 33488, 33494, 33497, 33498, 33501, 33506, 33511, 33512, 33513, 33514, 33516, 33517, 33518, 33520, 33522, 33523, 33525, 33526, 33528, 33530, 33532, 33533, 33534, 33535, 33536, 33546, 33547, 33549, 33552, 33554, 33555, 33558, 33560, 33561, 33565, 33566, 33567, 33568, 33569, 33570, 33571, 33572, 33573, 33574, 33577, 33578, 33582, 33584, 33586, 33591, 33595, 33597, 21860, 33086, 30130, 30382, 21305, 30174, 20731, 23617, 35692, 31687, 20559, 29255, 39575, 39128, 28418, 29922, 31080, 25735, 30629, 25340, 39057, 36139, 21697, 32856, 20050, 22378, 33529, 33805, 24179, 20973, 29942, 35780, 23631, 22369, 27900, 39047, 23110, 30772, 39748, 36843, 31893, 21078, 25169, 38138, 20166, 33670, 33889, 33769, 33970, 22484, 26420, 22275, 26222, 28006, 35889, 26333, 28689, 26399, 27450, 26646, 25114, 22971, 19971, 20932, 28422, 26578, 27791, 20854, 26827, 22855, 27495, 30054, 23822, 33040, 40784, 26071, 31048, 31041, 39569, 36215, 23682, 20062, 20225, 21551, 22865, 30732, 22120, 27668, 36804, 24323, 27773, 27875, 35755, 25488, 33598, 33599, 33601, 33602, 33604, 33605, 33608, 33610, 33611, 33612, 33613, 33614, 33619, 33621, 33622, 33623, 33624, 33625, 33629, 33634, 33648, 33649, 33650, 33651, 33652, 33653, 33654, 33657, 33658, 33662, 33663, 33664, 33665, 33666, 33667, 33668, 33671, 33672, 33674, 33675, 33676, 33677, 33679, 33680, 33681, 33684, 33685, 33686, 33687, 33689, 33690, 33693, 33695, 33697, 33698, 33699, 33700, 33701, 33702, 33703, 33708, 33709, 33710, 33711, 33717, 33723, 33726, 33727, 33730, 33731, 33732, 33734, 33736, 33737, 33739, 33741, 33742, 33744, 33745, 33746, 33747, 33749, 33751, 33753, 33754, 33755, 33758, 33762, 33763, 33764, 33766, 33767, 33768, 33771, 33772, 33773, 24688, 27965, 29301, 25190, 38030, 38085, 21315, 36801, 31614, 20191, 35878, 20094, 40660, 38065, 38067, 21069, 28508, 36963, 27973, 35892, 22545, 23884, 27424, 27465, 26538, 21595, 33108, 32652, 22681, 34103, 24378, 25250, 27207, 38201, 25970, 24708, 26725, 30631, 20052, 20392, 24039, 38808, 25772, 32728, 23789, 20431, 31373, 20999, 33540, 19988, 24623, 31363, 38054, 20405, 20146, 31206, 29748, 21220, 33465, 25810, 31165, 23517, 27777, 38738, 36731, 27682, 20542, 21375, 28165, 25806, 26228, 27696, 24773, 39031, 35831, 24198, 29756, 31351, 31179, 19992, 37041, 29699, 27714, 22234, 37195, 27845, 36235, 21306, 34502, 26354, 36527, 23624, 39537, 28192, 33774, 33775, 33779, 33780, 33781, 33782, 33783, 33786, 33787, 33788, 33790, 33791, 33792, 33794, 33797, 33799, 33800, 33801, 33802, 33808, 33810, 33811, 33812, 33813, 33814, 33815, 33817, 33818, 33819, 33822, 33823, 33824, 33825, 33826, 33827, 33833, 33834, 33835, 33836, 33837, 33838, 33839, 33840, 33842, 33843, 33844, 33845, 33846, 33847, 33849, 33850, 33851, 33854, 33855, 33856, 33857, 33858, 33859, 33860, 33861, 33863, 33864, 33865, 33866, 33867, 33868, 33869, 33870, 33871, 33872, 33874, 33875, 33876, 33877, 33878, 33880, 33885, 33886, 33887, 33888, 33890, 33892, 33893, 33894, 33895, 33896, 33898, 33902, 33903, 33904, 33906, 33908, 33911, 33913, 33915, 33916, 21462, 23094, 40843, 36259, 21435, 22280, 39079, 26435, 37275, 27849, 20840, 30154, 25331, 29356, 21048, 21149, 32570, 28820, 30264, 21364, 40522, 27063, 30830, 38592, 35033, 32676, 28982, 29123, 20873, 26579, 29924, 22756, 25880, 22199, 35753, 39286, 25200, 32469, 24825, 28909, 22764, 20161, 20154, 24525, 38887, 20219, 35748, 20995, 22922, 32427, 25172, 20173, 26085, 25102, 33592, 33993, 33635, 34701, 29076, 28342, 23481, 32466, 20887, 25545, 26580, 32905, 33593, 34837, 20754, 23418, 22914, 36785, 20083, 27741, 20837, 35109, 36719, 38446, 34122, 29790, 38160, 38384, 28070, 33509, 24369, 25746, 27922, 33832, 33134, 40131, 22622, 36187, 19977, 21441, 33917, 33918, 33919, 33920, 33921, 33923, 33924, 33925, 33926, 33930, 33933, 33935, 33936, 33937, 33938, 33939, 33940, 33941, 33942, 33944, 33946, 33947, 33949, 33950, 33951, 33952, 33954, 33955, 33956, 33957, 33958, 33959, 33960, 33961, 33962, 33963, 33964, 33965, 33966, 33968, 33969, 33971, 33973, 33974, 33975, 33979, 33980, 33982, 33984, 33986, 33987, 33989, 33990, 33991, 33992, 33995, 33996, 33998, 33999, 34002, 34004, 34005, 34007, 34008, 34009, 34010, 34011, 34012, 34014, 34017, 34018, 34020, 34023, 34024, 34025, 34026, 34027, 34029, 34030, 34031, 34033, 34034, 34035, 34036, 34037, 34038, 34039, 34040, 34041, 34042, 34043, 34045, 34046, 34048, 34049, 34050, 20254, 25955, 26705, 21971, 20007, 25620, 39578, 25195, 23234, 29791, 33394, 28073, 26862, 20711, 33678, 30722, 26432, 21049, 27801, 32433, 20667, 21861, 29022, 31579, 26194, 29642, 33515, 26441, 23665, 21024, 29053, 34923, 38378, 38485, 25797, 36193, 33203, 21892, 27733, 25159, 32558, 22674, 20260, 21830, 36175, 26188, 19978, 23578, 35059, 26786, 25422, 31245, 28903, 33421, 21242, 38902, 23569, 21736, 37045, 32461, 22882, 36170, 34503, 33292, 33293, 36198, 25668, 23556, 24913, 28041, 31038, 35774, 30775, 30003, 21627, 20280, 36523, 28145, 23072, 32453, 31070, 27784, 23457, 23158, 29978, 32958, 24910, 28183, 22768, 29983, 29989, 29298, 21319, 32499, 34051, 34052, 34053, 34054, 34055, 34056, 34057, 34058, 34059, 34061, 34062, 34063, 34064, 34066, 34068, 34069, 34070, 34072, 34073, 34075, 34076, 34077, 34078, 34080, 34082, 34083, 34084, 34085, 34086, 34087, 34088, 34089, 34090, 34093, 34094, 34095, 34096, 34097, 34098, 34099, 34100, 34101, 34102, 34110, 34111, 34112, 34113, 34114, 34116, 34117, 34118, 34119, 34123, 34124, 34125, 34126, 34127, 34128, 34129, 34130, 34131, 34132, 34133, 34135, 34136, 34138, 34139, 34140, 34141, 34143, 34144, 34145, 34146, 34147, 34149, 34150, 34151, 34153, 34154, 34155, 34156, 34157, 34158, 34159, 34160, 34161, 34163, 34165, 34166, 34167, 34168, 34172, 34173, 34175, 34176, 34177, 30465, 30427, 21097, 32988, 22307, 24072, 22833, 29422, 26045, 28287, 35799, 23608, 34417, 21313, 30707, 25342, 26102, 20160, 39135, 34432, 23454, 35782, 21490, 30690, 20351, 23630, 39542, 22987, 24335, 31034, 22763, 19990, 26623, 20107, 25325, 35475, 36893, 21183, 26159, 21980, 22124, 36866, 20181, 20365, 37322, 39280, 27663, 24066, 24643, 23460, 35270, 35797, 25910, 25163, 39318, 23432, 23551, 25480, 21806, 21463, 30246, 20861, 34092, 26530, 26803, 27530, 25234, 36755, 21460, 33298, 28113, 30095, 20070, 36174, 23408, 29087, 34223, 26257, 26329, 32626, 34560, 40653, 40736, 23646, 26415, 36848, 26641, 26463, 25101, 31446, 22661, 24246, 25968, 28465, 34178, 34179, 34182, 34184, 34185, 34186, 34187, 34188, 34189, 34190, 34192, 34193, 34194, 34195, 34196, 34197, 34198, 34199, 34200, 34201, 34202, 34205, 34206, 34207, 34208, 34209, 34210, 34211, 34213, 34214, 34215, 34217, 34219, 34220, 34221, 34225, 34226, 34227, 34228, 34229, 34230, 34232, 34234, 34235, 34236, 34237, 34238, 34239, 34240, 34242, 34243, 34244, 34245, 34246, 34247, 34248, 34250, 34251, 34252, 34253, 34254, 34257, 34258, 34260, 34262, 34263, 34264, 34265, 34266, 34267, 34269, 34270, 34271, 34272, 34273, 34274, 34275, 34277, 34278, 34279, 34280, 34282, 34283, 34284, 34285, 34286, 34287, 34288, 34289, 34290, 34291, 34292, 34293, 34294, 34295, 34296, 24661, 21047, 32781, 25684, 34928, 29993, 24069, 26643, 25332, 38684, 21452, 29245, 35841, 27700, 30561, 31246, 21550, 30636, 39034, 33308, 35828, 30805, 26388, 28865, 26031, 25749, 22070, 24605, 31169, 21496, 19997, 27515, 32902, 23546, 21987, 22235, 20282, 20284, 39282, 24051, 26494, 32824, 24578, 39042, 36865, 23435, 35772, 35829, 25628, 33368, 25822, 22013, 33487, 37221, 20439, 32032, 36895, 31903, 20723, 22609, 28335, 23487, 35785, 32899, 37240, 33948, 31639, 34429, 38539, 38543, 32485, 39635, 30862, 23681, 31319, 36930, 38567, 31071, 23385, 25439, 31499, 34001, 26797, 21766, 32553, 29712, 32034, 38145, 25152, 22604, 20182, 23427, 22905, 22612, 34297, 34298, 34300, 34301, 34302, 34304, 34305, 34306, 34307, 34308, 34310, 34311, 34312, 34313, 34314, 34315, 34316, 34317, 34318, 34319, 34320, 34322, 34323, 34324, 34325, 34327, 34328, 34329, 34330, 34331, 34332, 34333, 34334, 34335, 34336, 34337, 34338, 34339, 34340, 34341, 34342, 34344, 34346, 34347, 34348, 34349, 34350, 34351, 34352, 34353, 34354, 34355, 34356, 34357, 34358, 34359, 34361, 34362, 34363, 34365, 34366, 34367, 34368, 34369, 34370, 34371, 34372, 34373, 34374, 34375, 34376, 34377, 34378, 34379, 34380, 34386, 34387, 34389, 34390, 34391, 34392, 34393, 34395, 34396, 34397, 34399, 34400, 34401, 34403, 34404, 34405, 34406, 34407, 34408, 34409, 34410, 29549, 25374, 36427, 36367, 32974, 33492, 25260, 21488, 27888, 37214, 22826, 24577, 27760, 22349, 25674, 36138, 30251, 28393, 22363, 27264, 30192, 28525, 35885, 35848, 22374, 27631, 34962, 30899, 25506, 21497, 28845, 27748, 22616, 25642, 22530, 26848, 33179, 21776, 31958, 20504, 36538, 28108, 36255, 28907, 25487, 28059, 28372, 32486, 33796, 26691, 36867, 28120, 38518, 35752, 22871, 29305, 34276, 33150, 30140, 35466, 26799, 21076, 36386, 38161, 25552, 39064, 36420, 21884, 20307, 26367, 22159, 24789, 28053, 21059, 23625, 22825, 28155, 22635, 3e4, 29980, 24684, 33300, 33094, 25361, 26465, 36834, 30522, 36339, 36148, 38081, 24086, 21381, 21548, 28867, 34413, 34415, 34416, 34418, 34419, 34420, 34421, 34422, 34423, 34424, 34435, 34436, 34437, 34438, 34439, 34440, 34441, 34446, 34447, 34448, 34449, 34450, 34452, 34454, 34455, 34456, 34457, 34458, 34459, 34462, 34463, 34464, 34465, 34466, 34469, 34470, 34475, 34477, 34478, 34482, 34483, 34487, 34488, 34489, 34491, 34492, 34493, 34494, 34495, 34497, 34498, 34499, 34501, 34504, 34508, 34509, 34514, 34515, 34517, 34518, 34519, 34522, 34524, 34525, 34528, 34529, 34530, 34531, 34533, 34534, 34535, 34536, 34538, 34539, 34540, 34543, 34549, 34550, 34551, 34554, 34555, 34556, 34557, 34559, 34561, 34564, 34565, 34566, 34571, 34572, 34574, 34575, 34576, 34577, 34580, 34582, 27712, 24311, 20572, 20141, 24237, 25402, 33351, 36890, 26704, 37230, 30643, 21516, 38108, 24420, 31461, 26742, 25413, 31570, 32479, 30171, 20599, 25237, 22836, 36879, 20984, 31171, 31361, 22270, 24466, 36884, 28034, 23648, 22303, 21520, 20820, 28237, 22242, 25512, 39059, 33151, 34581, 35114, 36864, 21534, 23663, 33216, 25302, 25176, 33073, 40501, 38464, 39534, 39548, 26925, 22949, 25299, 21822, 25366, 21703, 34521, 27964, 23043, 29926, 34972, 27498, 22806, 35916, 24367, 28286, 29609, 39037, 20024, 28919, 23436, 30871, 25405, 26202, 30358, 24779, 23451, 23113, 19975, 33109, 27754, 29579, 20129, 26505, 32593, 24448, 26106, 26395, 24536, 22916, 23041, 34585, 34587, 34589, 34591, 34592, 34596, 34598, 34599, 34600, 34602, 34603, 34604, 34605, 34607, 34608, 34610, 34611, 34613, 34614, 34616, 34617, 34618, 34620, 34621, 34624, 34625, 34626, 34627, 34628, 34629, 34630, 34634, 34635, 34637, 34639, 34640, 34641, 34642, 34644, 34645, 34646, 34648, 34650, 34651, 34652, 34653, 34654, 34655, 34657, 34658, 34662, 34663, 34664, 34665, 34666, 34667, 34668, 34669, 34671, 34673, 34674, 34675, 34677, 34679, 34680, 34681, 34682, 34687, 34688, 34689, 34692, 34694, 34695, 34697, 34698, 34700, 34702, 34703, 34704, 34705, 34706, 34708, 34709, 34710, 34712, 34713, 34714, 34715, 34716, 34717, 34718, 34720, 34721, 34722, 34723, 34724, 24013, 24494, 21361, 38886, 36829, 26693, 22260, 21807, 24799, 20026, 28493, 32500, 33479, 33806, 22996, 20255, 20266, 23614, 32428, 26410, 34074, 21619, 30031, 32963, 21890, 39759, 20301, 28205, 35859, 23561, 24944, 21355, 30239, 28201, 34442, 25991, 38395, 32441, 21563, 31283, 32010, 38382, 21985, 32705, 29934, 25373, 34583, 28065, 31389, 25105, 26017, 21351, 25569, 27779, 24043, 21596, 38056, 20044, 27745, 35820, 23627, 26080, 33436, 26791, 21566, 21556, 27595, 27494, 20116, 25410, 21320, 33310, 20237, 20398, 22366, 25098, 38654, 26212, 29289, 21247, 21153, 24735, 35823, 26132, 29081, 26512, 35199, 30802, 30717, 26224, 22075, 21560, 38177, 29306, 34725, 34726, 34727, 34729, 34730, 34734, 34736, 34737, 34738, 34740, 34742, 34743, 34744, 34745, 34747, 34748, 34750, 34751, 34753, 34754, 34755, 34756, 34757, 34759, 34760, 34761, 34764, 34765, 34766, 34767, 34768, 34772, 34773, 34774, 34775, 34776, 34777, 34778, 34780, 34781, 34782, 34783, 34785, 34786, 34787, 34788, 34790, 34791, 34792, 34793, 34795, 34796, 34797, 34799, 34800, 34801, 34802, 34803, 34804, 34805, 34806, 34807, 34808, 34810, 34811, 34812, 34813, 34815, 34816, 34817, 34818, 34820, 34821, 34822, 34823, 34824, 34825, 34827, 34828, 34829, 34830, 34831, 34832, 34833, 34834, 34836, 34839, 34840, 34841, 34842, 34844, 34845, 34846, 34847, 34848, 34851, 31232, 24687, 24076, 24713, 33181, 22805, 24796, 29060, 28911, 28330, 27728, 29312, 27268, 34989, 24109, 20064, 23219, 21916, 38115, 27927, 31995, 38553, 25103, 32454, 30606, 34430, 21283, 38686, 36758, 26247, 23777, 20384, 29421, 19979, 21414, 22799, 21523, 25472, 38184, 20808, 20185, 40092, 32420, 21688, 36132, 34900, 33335, 38386, 28046, 24358, 23244, 26174, 38505, 29616, 29486, 21439, 33146, 39301, 32673, 23466, 38519, 38480, 32447, 30456, 21410, 38262, 39321, 31665, 35140, 28248, 20065, 32724, 31077, 35814, 24819, 21709, 20139, 39033, 24055, 27233, 20687, 21521, 35937, 33831, 30813, 38660, 21066, 21742, 22179, 38144, 28040, 23477, 28102, 26195, 34852, 34853, 34854, 34855, 34856, 34857, 34858, 34859, 34860, 34861, 34862, 34863, 34864, 34865, 34867, 34868, 34869, 34870, 34871, 34872, 34874, 34875, 34877, 34878, 34879, 34881, 34882, 34883, 34886, 34887, 34888, 34889, 34890, 34891, 34894, 34895, 34896, 34897, 34898, 34899, 34901, 34902, 34904, 34906, 34907, 34908, 34909, 34910, 34911, 34912, 34918, 34919, 34922, 34925, 34927, 34929, 34931, 34932, 34933, 34934, 34936, 34937, 34938, 34939, 34940, 34944, 34947, 34950, 34951, 34953, 34954, 34956, 34958, 34959, 34960, 34961, 34963, 34964, 34965, 34967, 34968, 34969, 34970, 34971, 34973, 34974, 34975, 34976, 34977, 34979, 34981, 34982, 34983, 34984, 34985, 34986, 23567, 23389, 26657, 32918, 21880, 31505, 25928, 26964, 20123, 27463, 34638, 38795, 21327, 25375, 25658, 37034, 26012, 32961, 35856, 20889, 26800, 21368, 34809, 25032, 27844, 27899, 35874, 23633, 34218, 33455, 38156, 27427, 36763, 26032, 24571, 24515, 20449, 34885, 26143, 33125, 29481, 24826, 20852, 21009, 22411, 24418, 37026, 34892, 37266, 24184, 26447, 24615, 22995, 20804, 20982, 33016, 21256, 27769, 38596, 29066, 20241, 20462, 32670, 26429, 21957, 38152, 31168, 34966, 32483, 22687, 25100, 38656, 34394, 22040, 39035, 24464, 35768, 33988, 37207, 21465, 26093, 24207, 30044, 24676, 32110, 23167, 32490, 32493, 36713, 21927, 23459, 24748, 26059, 29572, 34988, 34990, 34991, 34992, 34994, 34995, 34996, 34997, 34998, 35e3, 35001, 35002, 35003, 35005, 35006, 35007, 35008, 35011, 35012, 35015, 35016, 35018, 35019, 35020, 35021, 35023, 35024, 35025, 35027, 35030, 35031, 35034, 35035, 35036, 35037, 35038, 35040, 35041, 35046, 35047, 35049, 35050, 35051, 35052, 35053, 35054, 35055, 35058, 35061, 35062, 35063, 35066, 35067, 35069, 35071, 35072, 35073, 35075, 35076, 35077, 35078, 35079, 35080, 35081, 35083, 35084, 35085, 35086, 35087, 35089, 35092, 35093, 35094, 35095, 35096, 35100, 35101, 35102, 35103, 35104, 35106, 35107, 35108, 35110, 35111, 35112, 35113, 35116, 35117, 35118, 35119, 35121, 35122, 35123, 35125, 35127, 36873, 30307, 30505, 32474, 38772, 34203, 23398, 31348, 38634, 34880, 21195, 29071, 24490, 26092, 35810, 23547, 39535, 24033, 27529, 27739, 35757, 35759, 36874, 36805, 21387, 25276, 40486, 40493, 21568, 20011, 33469, 29273, 34460, 23830, 34905, 28079, 38597, 21713, 20122, 35766, 28937, 21693, 38409, 28895, 28153, 30416, 20005, 30740, 34578, 23721, 24310, 35328, 39068, 38414, 28814, 27839, 22852, 25513, 30524, 34893, 28436, 33395, 22576, 29141, 21388, 30746, 38593, 21761, 24422, 28976, 23476, 35866, 39564, 27523, 22830, 40495, 31207, 26472, 25196, 20335, 30113, 32650, 27915, 38451, 27687, 20208, 30162, 20859, 26679, 28478, 36992, 33136, 22934, 29814, 35128, 35129, 35130, 35131, 35132, 35133, 35134, 35135, 35136, 35138, 35139, 35141, 35142, 35143, 35144, 35145, 35146, 35147, 35148, 35149, 35150, 35151, 35152, 35153, 35154, 35155, 35156, 35157, 35158, 35159, 35160, 35161, 35162, 35163, 35164, 35165, 35168, 35169, 35170, 35171, 35172, 35173, 35175, 35176, 35177, 35178, 35179, 35180, 35181, 35182, 35183, 35184, 35185, 35186, 35187, 35188, 35189, 35190, 35191, 35192, 35193, 35194, 35196, 35197, 35198, 35200, 35202, 35204, 35205, 35207, 35208, 35209, 35210, 35211, 35212, 35213, 35214, 35215, 35216, 35217, 35218, 35219, 35220, 35221, 35222, 35223, 35224, 35225, 35226, 35227, 35228, 35229, 35230, 35231, 35232, 35233, 25671, 23591, 36965, 31377, 35875, 23002, 21676, 33280, 33647, 35201, 32768, 26928, 22094, 32822, 29239, 37326, 20918, 20063, 39029, 25494, 19994, 21494, 26355, 33099, 22812, 28082, 19968, 22777, 21307, 25558, 38129, 20381, 20234, 34915, 39056, 22839, 36951, 31227, 20202, 33008, 30097, 27778, 23452, 23016, 24413, 26885, 34433, 20506, 24050, 20057, 30691, 20197, 33402, 25233, 26131, 37009, 23673, 20159, 24441, 33222, 36920, 32900, 30123, 20134, 35028, 24847, 27589, 24518, 20041, 30410, 28322, 35811, 35758, 35850, 35793, 24322, 32764, 32716, 32462, 33589, 33643, 22240, 27575, 38899, 38452, 23035, 21535, 38134, 28139, 23493, 39278, 23609, 24341, 38544, 35234, 35235, 35236, 35237, 35238, 35239, 35240, 35241, 35242, 35243, 35244, 35245, 35246, 35247, 35248, 35249, 35250, 35251, 35252, 35253, 35254, 35255, 35256, 35257, 35258, 35259, 35260, 35261, 35262, 35263, 35264, 35267, 35277, 35283, 35284, 35285, 35287, 35288, 35289, 35291, 35293, 35295, 35296, 35297, 35298, 35300, 35303, 35304, 35305, 35306, 35308, 35309, 35310, 35312, 35313, 35314, 35316, 35317, 35318, 35319, 35320, 35321, 35322, 35323, 35324, 35325, 35326, 35327, 35329, 35330, 35331, 35332, 35333, 35334, 35336, 35337, 35338, 35339, 35340, 35341, 35342, 35343, 35344, 35345, 35346, 35347, 35348, 35349, 35350, 35351, 35352, 35353, 35354, 35355, 35356, 35357, 21360, 33521, 27185, 23156, 40560, 24212, 32552, 33721, 33828, 33829, 33639, 34631, 36814, 36194, 30408, 24433, 39062, 30828, 26144, 21727, 25317, 20323, 33219, 30152, 24248, 38605, 36362, 34553, 21647, 27891, 28044, 27704, 24703, 21191, 29992, 24189, 20248, 24736, 24551, 23588, 30001, 37038, 38080, 29369, 27833, 28216, 37193, 26377, 21451, 21491, 20305, 37321, 35825, 21448, 24188, 36802, 28132, 20110, 30402, 27014, 34398, 24858, 33286, 20313, 20446, 36926, 40060, 24841, 28189, 28180, 38533, 20104, 23089, 38632, 19982, 23679, 31161, 23431, 35821, 32701, 29577, 22495, 33419, 37057, 21505, 36935, 21947, 23786, 24481, 24840, 27442, 29425, 32946, 35465, 35358, 35359, 35360, 35361, 35362, 35363, 35364, 35365, 35366, 35367, 35368, 35369, 35370, 35371, 35372, 35373, 35374, 35375, 35376, 35377, 35378, 35379, 35380, 35381, 35382, 35383, 35384, 35385, 35386, 35387, 35388, 35389, 35391, 35392, 35393, 35394, 35395, 35396, 35397, 35398, 35399, 35401, 35402, 35403, 35404, 35405, 35406, 35407, 35408, 35409, 35410, 35411, 35412, 35413, 35414, 35415, 35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423, 35424, 35425, 35426, 35427, 35428, 35429, 35430, 35431, 35432, 35433, 35434, 35435, 35436, 35437, 35438, 35439, 35440, 35441, 35442, 35443, 35444, 35445, 35446, 35447, 35448, 35450, 35451, 35452, 35453, 35454, 35455, 35456, 28020, 23507, 35029, 39044, 35947, 39533, 40499, 28170, 20900, 20803, 22435, 34945, 21407, 25588, 36757, 22253, 21592, 22278, 29503, 28304, 32536, 36828, 33489, 24895, 24616, 38498, 26352, 32422, 36234, 36291, 38053, 23731, 31908, 26376, 24742, 38405, 32792, 20113, 37095, 21248, 38504, 20801, 36816, 34164, 37213, 26197, 38901, 23381, 21277, 30776, 26434, 26685, 21705, 28798, 23472, 36733, 20877, 22312, 21681, 25874, 26242, 36190, 36163, 33039, 33900, 36973, 31967, 20991, 34299, 26531, 26089, 28577, 34468, 36481, 22122, 36896, 30338, 28790, 29157, 36131, 25321, 21017, 27901, 36156, 24590, 22686, 24974, 26366, 36192, 25166, 21939, 28195, 26413, 36711, 35457, 35458, 35459, 35460, 35461, 35462, 35463, 35464, 35467, 35468, 35469, 35470, 35471, 35472, 35473, 35474, 35476, 35477, 35478, 35479, 35480, 35481, 35482, 35483, 35484, 35485, 35486, 35487, 35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503, 35504, 35505, 35506, 35507, 35508, 35509, 35510, 35511, 35512, 35513, 35514, 35515, 35516, 35517, 35518, 35519, 35520, 35521, 35522, 35523, 35524, 35525, 35526, 35527, 35528, 35529, 35530, 35531, 35532, 35533, 35534, 35535, 35536, 35537, 35538, 35539, 35540, 35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551, 35552, 35553, 35554, 35555, 38113, 38392, 30504, 26629, 27048, 21643, 20045, 28856, 35784, 25688, 25995, 23429, 31364, 20538, 23528, 30651, 27617, 35449, 31896, 27838, 30415, 26025, 36759, 23853, 23637, 34360, 26632, 21344, 25112, 31449, 28251, 32509, 27167, 31456, 24432, 28467, 24352, 25484, 28072, 26454, 19976, 24080, 36134, 20183, 32960, 30260, 38556, 25307, 26157, 25214, 27836, 36213, 29031, 32617, 20806, 32903, 21484, 36974, 25240, 21746, 34544, 36761, 32773, 38167, 34071, 36825, 27993, 29645, 26015, 30495, 29956, 30759, 33275, 36126, 38024, 20390, 26517, 30137, 35786, 38663, 25391, 38215, 38453, 33976, 25379, 30529, 24449, 29424, 20105, 24596, 25972, 25327, 27491, 25919, 35556, 35557, 35558, 35559, 35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575, 35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583, 35584, 35585, 35586, 35587, 35588, 35589, 35590, 35592, 35593, 35594, 35595, 35596, 35597, 35598, 35599, 35600, 35601, 35602, 35603, 35604, 35605, 35606, 35607, 35608, 35609, 35610, 35611, 35612, 35613, 35614, 35615, 35616, 35617, 35618, 35619, 35620, 35621, 35623, 35624, 35625, 35626, 35627, 35628, 35629, 35630, 35631, 35632, 35633, 35634, 35635, 35636, 35637, 35638, 35639, 35640, 35641, 35642, 35643, 35644, 35645, 35646, 35647, 35648, 35649, 35650, 35651, 35652, 35653, 24103, 30151, 37073, 35777, 33437, 26525, 25903, 21553, 34584, 30693, 32930, 33026, 27713, 20043, 32455, 32844, 30452, 26893, 27542, 25191, 20540, 20356, 22336, 25351, 27490, 36286, 21482, 26088, 32440, 24535, 25370, 25527, 33267, 33268, 32622, 24092, 23769, 21046, 26234, 31209, 31258, 36136, 28825, 30164, 28382, 27835, 31378, 20013, 30405, 24544, 38047, 34935, 32456, 31181, 32959, 37325, 20210, 20247, 33311, 21608, 24030, 27954, 35788, 31909, 36724, 32920, 24090, 21650, 30385, 23449, 26172, 39588, 29664, 26666, 34523, 26417, 29482, 35832, 35803, 36880, 31481, 28891, 29038, 25284, 30633, 22065, 20027, 33879, 26609, 21161, 34496, 36142, 38136, 31569, 35654, 35655, 35656, 35657, 35658, 35659, 35660, 35661, 35662, 35663, 35664, 35665, 35666, 35667, 35668, 35669, 35670, 35671, 35672, 35673, 35674, 35675, 35676, 35677, 35678, 35679, 35680, 35681, 35682, 35683, 35684, 35685, 35687, 35688, 35689, 35690, 35691, 35693, 35694, 35695, 35696, 35697, 35698, 35699, 35700, 35701, 35702, 35703, 35704, 35705, 35706, 35707, 35708, 35709, 35710, 35711, 35712, 35713, 35714, 35715, 35716, 35717, 35718, 35719, 35720, 35721, 35722, 35723, 35724, 35725, 35726, 35727, 35728, 35729, 35730, 35731, 35732, 35733, 35734, 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742, 35743, 35756, 35761, 35771, 35783, 35792, 35818, 35849, 35870, 20303, 27880, 31069, 39547, 25235, 29226, 25341, 19987, 30742, 36716, 25776, 36186, 31686, 26729, 24196, 35013, 22918, 25758, 22766, 29366, 26894, 38181, 36861, 36184, 22368, 32512, 35846, 20934, 25417, 25305, 21331, 26700, 29730, 33537, 37196, 21828, 30528, 28796, 27978, 20857, 21672, 36164, 23039, 28363, 28100, 23388, 32043, 20180, 31869, 28371, 23376, 33258, 28173, 23383, 39683, 26837, 36394, 23447, 32508, 24635, 32437, 37049, 36208, 22863, 25549, 31199, 36275, 21330, 26063, 31062, 35781, 38459, 32452, 38075, 32386, 22068, 37257, 26368, 32618, 23562, 36981, 26152, 24038, 20304, 26590, 20570, 20316, 22352, 24231, 59408, 59409, 59410, 59411, 59412, 35896, 35897, 35898, 35899, 35900, 35901, 35902, 35903, 35904, 35906, 35907, 35908, 35909, 35912, 35914, 35915, 35917, 35918, 35919, 35920, 35921, 35922, 35923, 35924, 35926, 35927, 35928, 35929, 35931, 35932, 35933, 35934, 35935, 35936, 35939, 35940, 35941, 35942, 35943, 35944, 35945, 35948, 35949, 35950, 35951, 35952, 35953, 35954, 35956, 35957, 35958, 35959, 35963, 35964, 35965, 35966, 35967, 35968, 35969, 35971, 35972, 35974, 35975, 35976, 35979, 35981, 35982, 35983, 35984, 35985, 35986, 35987, 35989, 35990, 35991, 35993, 35994, 35995, 35996, 35997, 35998, 35999, 36e3, 36001, 36002, 36003, 36004, 36005, 36006, 36007, 36008, 36009, 36010, 36011, 36012, 36013, 20109, 19980, 20800, 19984, 24319, 21317, 19989, 20120, 19998, 39730, 23404, 22121, 20008, 31162, 20031, 21269, 20039, 22829, 29243, 21358, 27664, 22239, 32996, 39319, 27603, 30590, 40727, 20022, 20127, 40720, 20060, 20073, 20115, 33416, 23387, 21868, 22031, 20164, 21389, 21405, 21411, 21413, 21422, 38757, 36189, 21274, 21493, 21286, 21294, 21310, 36188, 21350, 21347, 20994, 21e3, 21006, 21037, 21043, 21055, 21056, 21068, 21086, 21089, 21084, 33967, 21117, 21122, 21121, 21136, 21139, 20866, 32596, 20155, 20163, 20169, 20162, 20200, 20193, 20203, 20190, 20251, 20211, 20258, 20324, 20213, 20261, 20263, 20233, 20267, 20318, 20327, 25912, 20314, 20317, 36014, 36015, 36016, 36017, 36018, 36019, 36020, 36021, 36022, 36023, 36024, 36025, 36026, 36027, 36028, 36029, 36030, 36031, 36032, 36033, 36034, 36035, 36036, 36037, 36038, 36039, 36040, 36041, 36042, 36043, 36044, 36045, 36046, 36047, 36048, 36049, 36050, 36051, 36052, 36053, 36054, 36055, 36056, 36057, 36058, 36059, 36060, 36061, 36062, 36063, 36064, 36065, 36066, 36067, 36068, 36069, 36070, 36071, 36072, 36073, 36074, 36075, 36076, 36077, 36078, 36079, 36080, 36081, 36082, 36083, 36084, 36085, 36086, 36087, 36088, 36089, 36090, 36091, 36092, 36093, 36094, 36095, 36096, 36097, 36098, 36099, 36100, 36101, 36102, 36103, 36104, 36105, 36106, 36107, 36108, 36109, 20319, 20311, 20274, 20285, 20342, 20340, 20369, 20361, 20355, 20367, 20350, 20347, 20394, 20348, 20396, 20372, 20454, 20456, 20458, 20421, 20442, 20451, 20444, 20433, 20447, 20472, 20521, 20556, 20467, 20524, 20495, 20526, 20525, 20478, 20508, 20492, 20517, 20520, 20606, 20547, 20565, 20552, 20558, 20588, 20603, 20645, 20647, 20649, 20666, 20694, 20742, 20717, 20716, 20710, 20718, 20743, 20747, 20189, 27709, 20312, 20325, 20430, 40864, 27718, 31860, 20846, 24061, 40649, 39320, 20865, 22804, 21241, 21261, 35335, 21264, 20971, 22809, 20821, 20128, 20822, 20147, 34926, 34980, 20149, 33044, 35026, 31104, 23348, 34819, 32696, 20907, 20913, 20925, 20924, 36110, 36111, 36112, 36113, 36114, 36115, 36116, 36117, 36118, 36119, 36120, 36121, 36122, 36123, 36124, 36128, 36177, 36178, 36183, 36191, 36197, 36200, 36201, 36202, 36204, 36206, 36207, 36209, 36210, 36216, 36217, 36218, 36219, 36220, 36221, 36222, 36223, 36224, 36226, 36227, 36230, 36231, 36232, 36233, 36236, 36237, 36238, 36239, 36240, 36242, 36243, 36245, 36246, 36247, 36248, 36249, 36250, 36251, 36252, 36253, 36254, 36256, 36257, 36258, 36260, 36261, 36262, 36263, 36264, 36265, 36266, 36267, 36268, 36269, 36270, 36271, 36272, 36274, 36278, 36279, 36281, 36283, 36285, 36288, 36289, 36290, 36293, 36295, 36296, 36297, 36298, 36301, 36304, 36306, 36307, 36308, 20935, 20886, 20898, 20901, 35744, 35750, 35751, 35754, 35764, 35765, 35767, 35778, 35779, 35787, 35791, 35790, 35794, 35795, 35796, 35798, 35800, 35801, 35804, 35807, 35808, 35812, 35816, 35817, 35822, 35824, 35827, 35830, 35833, 35836, 35839, 35840, 35842, 35844, 35847, 35852, 35855, 35857, 35858, 35860, 35861, 35862, 35865, 35867, 35864, 35869, 35871, 35872, 35873, 35877, 35879, 35882, 35883, 35886, 35887, 35890, 35891, 35893, 35894, 21353, 21370, 38429, 38434, 38433, 38449, 38442, 38461, 38460, 38466, 38473, 38484, 38495, 38503, 38508, 38514, 38516, 38536, 38541, 38551, 38576, 37015, 37019, 37021, 37017, 37036, 37025, 37044, 37043, 37046, 37050, 36309, 36312, 36313, 36316, 36320, 36321, 36322, 36325, 36326, 36327, 36329, 36333, 36334, 36336, 36337, 36338, 36340, 36342, 36348, 36350, 36351, 36352, 36353, 36354, 36355, 36356, 36358, 36359, 36360, 36363, 36365, 36366, 36368, 36369, 36370, 36371, 36373, 36374, 36375, 36376, 36377, 36378, 36379, 36380, 36384, 36385, 36388, 36389, 36390, 36391, 36392, 36395, 36397, 36400, 36402, 36403, 36404, 36406, 36407, 36408, 36411, 36412, 36414, 36415, 36419, 36421, 36422, 36428, 36429, 36430, 36431, 36432, 36435, 36436, 36437, 36438, 36439, 36440, 36442, 36443, 36444, 36445, 36446, 36447, 36448, 36449, 36450, 36451, 36452, 36453, 36455, 36456, 36458, 36459, 36462, 36465, 37048, 37040, 37071, 37061, 37054, 37072, 37060, 37063, 37075, 37094, 37090, 37084, 37079, 37083, 37099, 37103, 37118, 37124, 37154, 37150, 37155, 37169, 37167, 37177, 37187, 37190, 21005, 22850, 21154, 21164, 21165, 21182, 21759, 21200, 21206, 21232, 21471, 29166, 30669, 24308, 20981, 20988, 39727, 21430, 24321, 30042, 24047, 22348, 22441, 22433, 22654, 22716, 22725, 22737, 22313, 22316, 22314, 22323, 22329, 22318, 22319, 22364, 22331, 22338, 22377, 22405, 22379, 22406, 22396, 22395, 22376, 22381, 22390, 22387, 22445, 22436, 22412, 22450, 22479, 22439, 22452, 22419, 22432, 22485, 22488, 22490, 22489, 22482, 22456, 22516, 22511, 22520, 22500, 22493, 36467, 36469, 36471, 36472, 36473, 36474, 36475, 36477, 36478, 36480, 36482, 36483, 36484, 36486, 36488, 36489, 36490, 36491, 36492, 36493, 36494, 36497, 36498, 36499, 36501, 36502, 36503, 36504, 36505, 36506, 36507, 36509, 36511, 36512, 36513, 36514, 36515, 36516, 36517, 36518, 36519, 36520, 36521, 36522, 36525, 36526, 36528, 36529, 36531, 36532, 36533, 36534, 36535, 36536, 36537, 36539, 36540, 36541, 36542, 36543, 36544, 36545, 36546, 36547, 36548, 36549, 36550, 36551, 36552, 36553, 36554, 36555, 36556, 36557, 36559, 36560, 36561, 36562, 36563, 36564, 36565, 36566, 36567, 36568, 36569, 36570, 36571, 36572, 36573, 36574, 36575, 36576, 36577, 36578, 36579, 36580, 22539, 22541, 22525, 22509, 22528, 22558, 22553, 22596, 22560, 22629, 22636, 22657, 22665, 22682, 22656, 39336, 40729, 25087, 33401, 33405, 33407, 33423, 33418, 33448, 33412, 33422, 33425, 33431, 33433, 33451, 33464, 33470, 33456, 33480, 33482, 33507, 33432, 33463, 33454, 33483, 33484, 33473, 33449, 33460, 33441, 33450, 33439, 33476, 33486, 33444, 33505, 33545, 33527, 33508, 33551, 33543, 33500, 33524, 33490, 33496, 33548, 33531, 33491, 33553, 33562, 33542, 33556, 33557, 33504, 33493, 33564, 33617, 33627, 33628, 33544, 33682, 33596, 33588, 33585, 33691, 33630, 33583, 33615, 33607, 33603, 33631, 33600, 33559, 33632, 33581, 33594, 33587, 33638, 33637, 36581, 36582, 36583, 36584, 36585, 36586, 36587, 36588, 36589, 36590, 36591, 36592, 36593, 36594, 36595, 36596, 36597, 36598, 36599, 36600, 36601, 36602, 36603, 36604, 36605, 36606, 36607, 36608, 36609, 36610, 36611, 36612, 36613, 36614, 36615, 36616, 36617, 36618, 36619, 36620, 36621, 36622, 36623, 36624, 36625, 36626, 36627, 36628, 36629, 36630, 36631, 36632, 36633, 36634, 36635, 36636, 36637, 36638, 36639, 36640, 36641, 36642, 36643, 36644, 36645, 36646, 36647, 36648, 36649, 36650, 36651, 36652, 36653, 36654, 36655, 36656, 36657, 36658, 36659, 36660, 36661, 36662, 36663, 36664, 36665, 36666, 36667, 36668, 36669, 36670, 36671, 36672, 36673, 36674, 36675, 36676, 33640, 33563, 33641, 33644, 33642, 33645, 33646, 33712, 33656, 33715, 33716, 33696, 33706, 33683, 33692, 33669, 33660, 33718, 33705, 33661, 33720, 33659, 33688, 33694, 33704, 33722, 33724, 33729, 33793, 33765, 33752, 22535, 33816, 33803, 33757, 33789, 33750, 33820, 33848, 33809, 33798, 33748, 33759, 33807, 33795, 33784, 33785, 33770, 33733, 33728, 33830, 33776, 33761, 33884, 33873, 33882, 33881, 33907, 33927, 33928, 33914, 33929, 33912, 33852, 33862, 33897, 33910, 33932, 33934, 33841, 33901, 33985, 33997, 34e3, 34022, 33981, 34003, 33994, 33983, 33978, 34016, 33953, 33977, 33972, 33943, 34021, 34019, 34060, 29965, 34104, 34032, 34105, 34079, 34106, 36677, 36678, 36679, 36680, 36681, 36682, 36683, 36684, 36685, 36686, 36687, 36688, 36689, 36690, 36691, 36692, 36693, 36694, 36695, 36696, 36697, 36698, 36699, 36700, 36701, 36702, 36703, 36704, 36705, 36706, 36707, 36708, 36709, 36714, 36736, 36748, 36754, 36765, 36768, 36769, 36770, 36772, 36773, 36774, 36775, 36778, 36780, 36781, 36782, 36783, 36786, 36787, 36788, 36789, 36791, 36792, 36794, 36795, 36796, 36799, 36800, 36803, 36806, 36809, 36810, 36811, 36812, 36813, 36815, 36818, 36822, 36823, 36826, 36832, 36833, 36835, 36839, 36844, 36847, 36849, 36850, 36852, 36853, 36854, 36858, 36859, 36860, 36862, 36863, 36871, 36872, 36876, 36878, 36883, 36885, 36888, 34134, 34107, 34047, 34044, 34137, 34120, 34152, 34148, 34142, 34170, 30626, 34115, 34162, 34171, 34212, 34216, 34183, 34191, 34169, 34222, 34204, 34181, 34233, 34231, 34224, 34259, 34241, 34268, 34303, 34343, 34309, 34345, 34326, 34364, 24318, 24328, 22844, 22849, 32823, 22869, 22874, 22872, 21263, 23586, 23589, 23596, 23604, 25164, 25194, 25247, 25275, 25290, 25306, 25303, 25326, 25378, 25334, 25401, 25419, 25411, 25517, 25590, 25457, 25466, 25486, 25524, 25453, 25516, 25482, 25449, 25518, 25532, 25586, 25592, 25568, 25599, 25540, 25566, 25550, 25682, 25542, 25534, 25669, 25665, 25611, 25627, 25632, 25612, 25638, 25633, 25694, 25732, 25709, 25750, 36889, 36892, 36899, 36900, 36901, 36903, 36904, 36905, 36906, 36907, 36908, 36912, 36913, 36914, 36915, 36916, 36919, 36921, 36922, 36925, 36927, 36928, 36931, 36933, 36934, 36936, 36937, 36938, 36939, 36940, 36942, 36948, 36949, 36950, 36953, 36954, 36956, 36957, 36958, 36959, 36960, 36961, 36964, 36966, 36967, 36969, 36970, 36971, 36972, 36975, 36976, 36977, 36978, 36979, 36982, 36983, 36984, 36985, 36986, 36987, 36988, 36990, 36993, 36996, 36997, 36998, 36999, 37001, 37002, 37004, 37005, 37006, 37007, 37008, 37010, 37012, 37014, 37016, 37018, 37020, 37022, 37023, 37024, 37028, 37029, 37031, 37032, 37033, 37035, 37037, 37042, 37047, 37052, 37053, 37055, 37056, 25722, 25783, 25784, 25753, 25786, 25792, 25808, 25815, 25828, 25826, 25865, 25893, 25902, 24331, 24530, 29977, 24337, 21343, 21489, 21501, 21481, 21480, 21499, 21522, 21526, 21510, 21579, 21586, 21587, 21588, 21590, 21571, 21537, 21591, 21593, 21539, 21554, 21634, 21652, 21623, 21617, 21604, 21658, 21659, 21636, 21622, 21606, 21661, 21712, 21677, 21698, 21684, 21714, 21671, 21670, 21715, 21716, 21618, 21667, 21717, 21691, 21695, 21708, 21721, 21722, 21724, 21673, 21674, 21668, 21725, 21711, 21726, 21787, 21735, 21792, 21757, 21780, 21747, 21794, 21795, 21775, 21777, 21799, 21802, 21863, 21903, 21941, 21833, 21869, 21825, 21845, 21823, 21840, 21820, 37058, 37059, 37062, 37064, 37065, 37067, 37068, 37069, 37074, 37076, 37077, 37078, 37080, 37081, 37082, 37086, 37087, 37088, 37091, 37092, 37093, 37097, 37098, 37100, 37102, 37104, 37105, 37106, 37107, 37109, 37110, 37111, 37113, 37114, 37115, 37116, 37119, 37120, 37121, 37123, 37125, 37126, 37127, 37128, 37129, 37130, 37131, 37132, 37133, 37134, 37135, 37136, 37137, 37138, 37139, 37140, 37141, 37142, 37143, 37144, 37146, 37147, 37148, 37149, 37151, 37152, 37153, 37156, 37157, 37158, 37159, 37160, 37161, 37162, 37163, 37164, 37165, 37166, 37168, 37170, 37171, 37172, 37173, 37174, 37175, 37176, 37178, 37179, 37180, 37181, 37182, 37183, 37184, 37185, 37186, 37188, 21815, 21846, 21877, 21878, 21879, 21811, 21808, 21852, 21899, 21970, 21891, 21937, 21945, 21896, 21889, 21919, 21886, 21974, 21905, 21883, 21983, 21949, 21950, 21908, 21913, 21994, 22007, 21961, 22047, 21969, 21995, 21996, 21972, 21990, 21981, 21956, 21999, 21989, 22002, 22003, 21964, 21965, 21992, 22005, 21988, 36756, 22046, 22024, 22028, 22017, 22052, 22051, 22014, 22016, 22055, 22061, 22104, 22073, 22103, 22060, 22093, 22114, 22105, 22108, 22092, 22100, 22150, 22116, 22129, 22123, 22139, 22140, 22149, 22163, 22191, 22228, 22231, 22237, 22241, 22261, 22251, 22265, 22271, 22276, 22282, 22281, 22300, 24079, 24089, 24084, 24081, 24113, 24123, 24124, 37189, 37191, 37192, 37201, 37203, 37204, 37205, 37206, 37208, 37209, 37211, 37212, 37215, 37216, 37222, 37223, 37224, 37227, 37229, 37235, 37242, 37243, 37244, 37248, 37249, 37250, 37251, 37252, 37254, 37256, 37258, 37262, 37263, 37267, 37268, 37269, 37270, 37271, 37272, 37273, 37276, 37277, 37278, 37279, 37280, 37281, 37284, 37285, 37286, 37287, 37288, 37289, 37291, 37292, 37296, 37297, 37298, 37299, 37302, 37303, 37304, 37305, 37307, 37308, 37309, 37310, 37311, 37312, 37313, 37314, 37315, 37316, 37317, 37318, 37320, 37323, 37328, 37330, 37331, 37332, 37333, 37334, 37335, 37336, 37337, 37338, 37339, 37341, 37342, 37343, 37344, 37345, 37346, 37347, 37348, 37349, 24119, 24132, 24148, 24155, 24158, 24161, 23692, 23674, 23693, 23696, 23702, 23688, 23704, 23705, 23697, 23706, 23708, 23733, 23714, 23741, 23724, 23723, 23729, 23715, 23745, 23735, 23748, 23762, 23780, 23755, 23781, 23810, 23811, 23847, 23846, 23854, 23844, 23838, 23814, 23835, 23896, 23870, 23860, 23869, 23916, 23899, 23919, 23901, 23915, 23883, 23882, 23913, 23924, 23938, 23961, 23965, 35955, 23991, 24005, 24435, 24439, 24450, 24455, 24457, 24460, 24469, 24473, 24476, 24488, 24493, 24501, 24508, 34914, 24417, 29357, 29360, 29364, 29367, 29368, 29379, 29377, 29390, 29389, 29394, 29416, 29423, 29417, 29426, 29428, 29431, 29441, 29427, 29443, 29434, 37350, 37351, 37352, 37353, 37354, 37355, 37356, 37357, 37358, 37359, 37360, 37361, 37362, 37363, 37364, 37365, 37366, 37367, 37368, 37369, 37370, 37371, 37372, 37373, 37374, 37375, 37376, 37377, 37378, 37379, 37380, 37381, 37382, 37383, 37384, 37385, 37386, 37387, 37388, 37389, 37390, 37391, 37392, 37393, 37394, 37395, 37396, 37397, 37398, 37399, 37400, 37401, 37402, 37403, 37404, 37405, 37406, 37407, 37408, 37409, 37410, 37411, 37412, 37413, 37414, 37415, 37416, 37417, 37418, 37419, 37420, 37421, 37422, 37423, 37424, 37425, 37426, 37427, 37428, 37429, 37430, 37431, 37432, 37433, 37434, 37435, 37436, 37437, 37438, 37439, 37440, 37441, 37442, 37443, 37444, 37445, 29435, 29463, 29459, 29473, 29450, 29470, 29469, 29461, 29474, 29497, 29477, 29484, 29496, 29489, 29520, 29517, 29527, 29536, 29548, 29551, 29566, 33307, 22821, 39143, 22820, 22786, 39267, 39271, 39272, 39273, 39274, 39275, 39276, 39284, 39287, 39293, 39296, 39300, 39303, 39306, 39309, 39312, 39313, 39315, 39316, 39317, 24192, 24209, 24203, 24214, 24229, 24224, 24249, 24245, 24254, 24243, 36179, 24274, 24273, 24283, 24296, 24298, 33210, 24516, 24521, 24534, 24527, 24579, 24558, 24580, 24545, 24548, 24574, 24581, 24582, 24554, 24557, 24568, 24601, 24629, 24614, 24603, 24591, 24589, 24617, 24619, 24586, 24639, 24609, 24696, 24697, 24699, 24698, 24642, 37446, 37447, 37448, 37449, 37450, 37451, 37452, 37453, 37454, 37455, 37456, 37457, 37458, 37459, 37460, 37461, 37462, 37463, 37464, 37465, 37466, 37467, 37468, 37469, 37470, 37471, 37472, 37473, 37474, 37475, 37476, 37477, 37478, 37479, 37480, 37481, 37482, 37483, 37484, 37485, 37486, 37487, 37488, 37489, 37490, 37491, 37493, 37494, 37495, 37496, 37497, 37498, 37499, 37500, 37501, 37502, 37503, 37504, 37505, 37506, 37507, 37508, 37509, 37510, 37511, 37512, 37513, 37514, 37515, 37516, 37517, 37519, 37520, 37521, 37522, 37523, 37524, 37525, 37526, 37527, 37528, 37529, 37530, 37531, 37532, 37533, 37534, 37535, 37536, 37537, 37538, 37539, 37540, 37541, 37542, 37543, 24682, 24701, 24726, 24730, 24749, 24733, 24707, 24722, 24716, 24731, 24812, 24763, 24753, 24797, 24792, 24774, 24794, 24756, 24864, 24870, 24853, 24867, 24820, 24832, 24846, 24875, 24906, 24949, 25004, 24980, 24999, 25015, 25044, 25077, 24541, 38579, 38377, 38379, 38385, 38387, 38389, 38390, 38396, 38398, 38403, 38404, 38406, 38408, 38410, 38411, 38412, 38413, 38415, 38418, 38421, 38422, 38423, 38425, 38426, 20012, 29247, 25109, 27701, 27732, 27740, 27722, 27811, 27781, 27792, 27796, 27788, 27752, 27753, 27764, 27766, 27782, 27817, 27856, 27860, 27821, 27895, 27896, 27889, 27863, 27826, 27872, 27862, 27898, 27883, 27886, 27825, 27859, 27887, 27902, 37544, 37545, 37546, 37547, 37548, 37549, 37551, 37552, 37553, 37554, 37555, 37556, 37557, 37558, 37559, 37560, 37561, 37562, 37563, 37564, 37565, 37566, 37567, 37568, 37569, 37570, 37571, 37572, 37573, 37574, 37575, 37577, 37578, 37579, 37580, 37581, 37582, 37583, 37584, 37585, 37586, 37587, 37588, 37589, 37590, 37591, 37592, 37593, 37594, 37595, 37596, 37597, 37598, 37599, 37600, 37601, 37602, 37603, 37604, 37605, 37606, 37607, 37608, 37609, 37610, 37611, 37612, 37613, 37614, 37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622, 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630, 37631, 37632, 37633, 37634, 37635, 37636, 37637, 37638, 37639, 37640, 37641, 27961, 27943, 27916, 27971, 27976, 27911, 27908, 27929, 27918, 27947, 27981, 27950, 27957, 27930, 27983, 27986, 27988, 27955, 28049, 28015, 28062, 28064, 27998, 28051, 28052, 27996, 28e3, 28028, 28003, 28186, 28103, 28101, 28126, 28174, 28095, 28128, 28177, 28134, 28125, 28121, 28182, 28075, 28172, 28078, 28203, 28270, 28238, 28267, 28338, 28255, 28294, 28243, 28244, 28210, 28197, 28228, 28383, 28337, 28312, 28384, 28461, 28386, 28325, 28327, 28349, 28347, 28343, 28375, 28340, 28367, 28303, 28354, 28319, 28514, 28486, 28487, 28452, 28437, 28409, 28463, 28470, 28491, 28532, 28458, 28425, 28457, 28553, 28557, 28556, 28536, 28530, 28540, 28538, 28625, 37642, 37643, 37644, 37645, 37646, 37647, 37648, 37649, 37650, 37651, 37652, 37653, 37654, 37655, 37656, 37657, 37658, 37659, 37660, 37661, 37662, 37663, 37664, 37665, 37666, 37667, 37668, 37669, 37670, 37671, 37672, 37673, 37674, 37675, 37676, 37677, 37678, 37679, 37680, 37681, 37682, 37683, 37684, 37685, 37686, 37687, 37688, 37689, 37690, 37691, 37692, 37693, 37695, 37696, 37697, 37698, 37699, 37700, 37701, 37702, 37703, 37704, 37705, 37706, 37707, 37708, 37709, 37710, 37711, 37712, 37713, 37714, 37715, 37716, 37717, 37718, 37719, 37720, 37721, 37722, 37723, 37724, 37725, 37726, 37727, 37728, 37729, 37730, 37731, 37732, 37733, 37734, 37735, 37736, 37737, 37739, 28617, 28583, 28601, 28598, 28610, 28641, 28654, 28638, 28640, 28655, 28698, 28707, 28699, 28729, 28725, 28751, 28766, 23424, 23428, 23445, 23443, 23461, 23480, 29999, 39582, 25652, 23524, 23534, 35120, 23536, 36423, 35591, 36790, 36819, 36821, 36837, 36846, 36836, 36841, 36838, 36851, 36840, 36869, 36868, 36875, 36902, 36881, 36877, 36886, 36897, 36917, 36918, 36909, 36911, 36932, 36945, 36946, 36944, 36968, 36952, 36962, 36955, 26297, 36980, 36989, 36994, 37e3, 36995, 37003, 24400, 24407, 24406, 24408, 23611, 21675, 23632, 23641, 23409, 23651, 23654, 32700, 24362, 24361, 24365, 33396, 24380, 39739, 23662, 22913, 22915, 22925, 22953, 22954, 22947, 37740, 37741, 37742, 37743, 37744, 37745, 37746, 37747, 37748, 37749, 37750, 37751, 37752, 37753, 37754, 37755, 37756, 37757, 37758, 37759, 37760, 37761, 37762, 37763, 37764, 37765, 37766, 37767, 37768, 37769, 37770, 37771, 37772, 37773, 37774, 37776, 37777, 37778, 37779, 37780, 37781, 37782, 37783, 37784, 37785, 37786, 37787, 37788, 37789, 37790, 37791, 37792, 37793, 37794, 37795, 37796, 37797, 37798, 37799, 37800, 37801, 37802, 37803, 37804, 37805, 37806, 37807, 37808, 37809, 37810, 37811, 37812, 37813, 37814, 37815, 37816, 37817, 37818, 37819, 37820, 37821, 37822, 37823, 37824, 37825, 37826, 37827, 37828, 37829, 37830, 37831, 37832, 37833, 37835, 37836, 37837, 22935, 22986, 22955, 22942, 22948, 22994, 22962, 22959, 22999, 22974, 23045, 23046, 23005, 23048, 23011, 23e3, 23033, 23052, 23049, 23090, 23092, 23057, 23075, 23059, 23104, 23143, 23114, 23125, 23100, 23138, 23157, 33004, 23210, 23195, 23159, 23162, 23230, 23275, 23218, 23250, 23252, 23224, 23264, 23267, 23281, 23254, 23270, 23256, 23260, 23305, 23319, 23318, 23346, 23351, 23360, 23573, 23580, 23386, 23397, 23411, 23377, 23379, 23394, 39541, 39543, 39544, 39546, 39551, 39549, 39552, 39553, 39557, 39560, 39562, 39568, 39570, 39571, 39574, 39576, 39579, 39580, 39581, 39583, 39584, 39586, 39587, 39589, 39591, 32415, 32417, 32419, 32421, 32424, 32425, 37838, 37839, 37840, 37841, 37842, 37843, 37844, 37845, 37847, 37848, 37849, 37850, 37851, 37852, 37853, 37854, 37855, 37856, 37857, 37858, 37859, 37860, 37861, 37862, 37863, 37864, 37865, 37866, 37867, 37868, 37869, 37870, 37871, 37872, 37873, 37874, 37875, 37876, 37877, 37878, 37879, 37880, 37881, 37882, 37883, 37884, 37885, 37886, 37887, 37888, 37889, 37890, 37891, 37892, 37893, 37894, 37895, 37896, 37897, 37898, 37899, 37900, 37901, 37902, 37903, 37904, 37905, 37906, 37907, 37908, 37909, 37910, 37911, 37912, 37913, 37914, 37915, 37916, 37917, 37918, 37919, 37920, 37921, 37922, 37923, 37924, 37925, 37926, 37927, 37928, 37929, 37930, 37931, 37932, 37933, 37934, 32429, 32432, 32446, 32448, 32449, 32450, 32457, 32459, 32460, 32464, 32468, 32471, 32475, 32480, 32481, 32488, 32491, 32494, 32495, 32497, 32498, 32525, 32502, 32506, 32507, 32510, 32513, 32514, 32515, 32519, 32520, 32523, 32524, 32527, 32529, 32530, 32535, 32537, 32540, 32539, 32543, 32545, 32546, 32547, 32548, 32549, 32550, 32551, 32554, 32555, 32556, 32557, 32559, 32560, 32561, 32562, 32563, 32565, 24186, 30079, 24027, 30014, 37013, 29582, 29585, 29614, 29602, 29599, 29647, 29634, 29649, 29623, 29619, 29632, 29641, 29640, 29669, 29657, 39036, 29706, 29673, 29671, 29662, 29626, 29682, 29711, 29738, 29787, 29734, 29733, 29736, 29744, 29742, 29740, 37935, 37936, 37937, 37938, 37939, 37940, 37941, 37942, 37943, 37944, 37945, 37946, 37947, 37948, 37949, 37951, 37952, 37953, 37954, 37955, 37956, 37957, 37958, 37959, 37960, 37961, 37962, 37963, 37964, 37965, 37966, 37967, 37968, 37969, 37970, 37971, 37972, 37973, 37974, 37975, 37976, 37977, 37978, 37979, 37980, 37981, 37982, 37983, 37984, 37985, 37986, 37987, 37988, 37989, 37990, 37991, 37992, 37993, 37994, 37996, 37997, 37998, 37999, 38e3, 38001, 38002, 38003, 38004, 38005, 38006, 38007, 38008, 38009, 38010, 38011, 38012, 38013, 38014, 38015, 38016, 38017, 38018, 38019, 38020, 38033, 38038, 38040, 38087, 38095, 38099, 38100, 38106, 38118, 38139, 38172, 38176, 29723, 29722, 29761, 29788, 29783, 29781, 29785, 29815, 29805, 29822, 29852, 29838, 29824, 29825, 29831, 29835, 29854, 29864, 29865, 29840, 29863, 29906, 29882, 38890, 38891, 38892, 26444, 26451, 26462, 26440, 26473, 26533, 26503, 26474, 26483, 26520, 26535, 26485, 26536, 26526, 26541, 26507, 26487, 26492, 26608, 26633, 26584, 26634, 26601, 26544, 26636, 26585, 26549, 26586, 26547, 26589, 26624, 26563, 26552, 26594, 26638, 26561, 26621, 26674, 26675, 26720, 26721, 26702, 26722, 26692, 26724, 26755, 26653, 26709, 26726, 26689, 26727, 26688, 26686, 26698, 26697, 26665, 26805, 26767, 26740, 26743, 26771, 26731, 26818, 26990, 26876, 26911, 26912, 26873, 38183, 38195, 38205, 38211, 38216, 38219, 38229, 38234, 38240, 38254, 38260, 38261, 38263, 38264, 38265, 38266, 38267, 38268, 38269, 38270, 38272, 38273, 38274, 38275, 38276, 38277, 38278, 38279, 38280, 38281, 38282, 38283, 38284, 38285, 38286, 38287, 38288, 38289, 38290, 38291, 38292, 38293, 38294, 38295, 38296, 38297, 38298, 38299, 38300, 38301, 38302, 38303, 38304, 38305, 38306, 38307, 38308, 38309, 38310, 38311, 38312, 38313, 38314, 38315, 38316, 38317, 38318, 38319, 38320, 38321, 38322, 38323, 38324, 38325, 38326, 38327, 38328, 38329, 38330, 38331, 38332, 38333, 38334, 38335, 38336, 38337, 38338, 38339, 38340, 38341, 38342, 38343, 38344, 38345, 38346, 38347, 26916, 26864, 26891, 26881, 26967, 26851, 26896, 26993, 26937, 26976, 26946, 26973, 27012, 26987, 27008, 27032, 27e3, 26932, 27084, 27015, 27016, 27086, 27017, 26982, 26979, 27001, 27035, 27047, 27067, 27051, 27053, 27092, 27057, 27073, 27082, 27103, 27029, 27104, 27021, 27135, 27183, 27117, 27159, 27160, 27237, 27122, 27204, 27198, 27296, 27216, 27227, 27189, 27278, 27257, 27197, 27176, 27224, 27260, 27281, 27280, 27305, 27287, 27307, 29495, 29522, 27521, 27522, 27527, 27524, 27538, 27539, 27533, 27546, 27547, 27553, 27562, 36715, 36717, 36721, 36722, 36723, 36725, 36726, 36728, 36727, 36729, 36730, 36732, 36734, 36737, 36738, 36740, 36743, 36747, 38348, 38349, 38350, 38351, 38352, 38353, 38354, 38355, 38356, 38357, 38358, 38359, 38360, 38361, 38362, 38363, 38364, 38365, 38366, 38367, 38368, 38369, 38370, 38371, 38372, 38373, 38374, 38375, 38380, 38399, 38407, 38419, 38424, 38427, 38430, 38432, 38435, 38436, 38437, 38438, 38439, 38440, 38441, 38443, 38444, 38445, 38447, 38448, 38455, 38456, 38457, 38458, 38462, 38465, 38467, 38474, 38478, 38479, 38481, 38482, 38483, 38486, 38487, 38488, 38489, 38490, 38492, 38493, 38494, 38496, 38499, 38501, 38502, 38507, 38509, 38510, 38511, 38512, 38513, 38515, 38520, 38521, 38522, 38523, 38524, 38525, 38526, 38527, 38528, 38529, 38530, 38531, 38532, 38535, 38537, 38538, 36749, 36750, 36751, 36760, 36762, 36558, 25099, 25111, 25115, 25119, 25122, 25121, 25125, 25124, 25132, 33255, 29935, 29940, 29951, 29967, 29969, 29971, 25908, 26094, 26095, 26096, 26122, 26137, 26482, 26115, 26133, 26112, 28805, 26359, 26141, 26164, 26161, 26166, 26165, 32774, 26207, 26196, 26177, 26191, 26198, 26209, 26199, 26231, 26244, 26252, 26279, 26269, 26302, 26331, 26332, 26342, 26345, 36146, 36147, 36150, 36155, 36157, 36160, 36165, 36166, 36168, 36169, 36167, 36173, 36181, 36185, 35271, 35274, 35275, 35276, 35278, 35279, 35280, 35281, 29294, 29343, 29277, 29286, 29295, 29310, 29311, 29316, 29323, 29325, 29327, 29330, 25352, 25394, 25520, 38540, 38542, 38545, 38546, 38547, 38549, 38550, 38554, 38555, 38557, 38558, 38559, 38560, 38561, 38562, 38563, 38564, 38565, 38566, 38568, 38569, 38570, 38571, 38572, 38573, 38574, 38575, 38577, 38578, 38580, 38581, 38583, 38584, 38586, 38587, 38591, 38594, 38595, 38600, 38602, 38603, 38608, 38609, 38611, 38612, 38614, 38615, 38616, 38617, 38618, 38619, 38620, 38621, 38622, 38623, 38625, 38626, 38627, 38628, 38629, 38630, 38631, 38635, 38636, 38637, 38638, 38640, 38641, 38642, 38644, 38645, 38648, 38650, 38651, 38652, 38653, 38655, 38658, 38659, 38661, 38666, 38667, 38668, 38672, 38673, 38674, 38676, 38677, 38679, 38680, 38681, 38682, 38683, 38685, 38687, 38688, 25663, 25816, 32772, 27626, 27635, 27645, 27637, 27641, 27653, 27655, 27654, 27661, 27669, 27672, 27673, 27674, 27681, 27689, 27684, 27690, 27698, 25909, 25941, 25963, 29261, 29266, 29270, 29232, 34402, 21014, 32927, 32924, 32915, 32956, 26378, 32957, 32945, 32939, 32941, 32948, 32951, 32999, 33e3, 33001, 33002, 32987, 32962, 32964, 32985, 32973, 32983, 26384, 32989, 33003, 33009, 33012, 33005, 33037, 33038, 33010, 33020, 26389, 33042, 35930, 33078, 33054, 33068, 33048, 33074, 33096, 33100, 33107, 33140, 33113, 33114, 33137, 33120, 33129, 33148, 33149, 33133, 33127, 22605, 23221, 33160, 33154, 33169, 28373, 33187, 33194, 33228, 26406, 33226, 33211, 38689, 38690, 38691, 38692, 38693, 38694, 38695, 38696, 38697, 38699, 38700, 38702, 38703, 38705, 38707, 38708, 38709, 38710, 38711, 38714, 38715, 38716, 38717, 38719, 38720, 38721, 38722, 38723, 38724, 38725, 38726, 38727, 38728, 38729, 38730, 38731, 38732, 38733, 38734, 38735, 38736, 38737, 38740, 38741, 38743, 38744, 38746, 38748, 38749, 38751, 38755, 38756, 38758, 38759, 38760, 38762, 38763, 38764, 38765, 38766, 38767, 38768, 38769, 38770, 38773, 38775, 38776, 38777, 38778, 38779, 38781, 38782, 38783, 38784, 38785, 38786, 38787, 38788, 38790, 38791, 38792, 38793, 38794, 38796, 38798, 38799, 38800, 38803, 38805, 38806, 38807, 38809, 38810, 38811, 38812, 38813, 33217, 33190, 27428, 27447, 27449, 27459, 27462, 27481, 39121, 39122, 39123, 39125, 39129, 39130, 27571, 24384, 27586, 35315, 26e3, 40785, 26003, 26044, 26054, 26052, 26051, 26060, 26062, 26066, 26070, 28800, 28828, 28822, 28829, 28859, 28864, 28855, 28843, 28849, 28904, 28874, 28944, 28947, 28950, 28975, 28977, 29043, 29020, 29032, 28997, 29042, 29002, 29048, 29050, 29080, 29107, 29109, 29096, 29088, 29152, 29140, 29159, 29177, 29213, 29224, 28780, 28952, 29030, 29113, 25150, 25149, 25155, 25160, 25161, 31035, 31040, 31046, 31049, 31067, 31068, 31059, 31066, 31074, 31063, 31072, 31087, 31079, 31098, 31109, 31114, 31130, 31143, 31155, 24529, 24528, 38814, 38815, 38817, 38818, 38820, 38821, 38822, 38823, 38824, 38825, 38826, 38828, 38830, 38832, 38833, 38835, 38837, 38838, 38839, 38840, 38841, 38842, 38843, 38844, 38845, 38846, 38847, 38848, 38849, 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859, 38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867, 38868, 38869, 38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877, 38878, 38879, 38880, 38881, 38882, 38883, 38884, 38885, 38888, 38894, 38895, 38896, 38897, 38898, 38900, 38903, 38904, 38905, 38906, 38907, 38908, 38909, 38910, 38911, 38912, 38913, 38914, 38915, 38916, 38917, 38918, 38919, 38920, 38921, 38922, 38923, 38924, 38925, 38926, 24636, 24669, 24666, 24679, 24641, 24665, 24675, 24747, 24838, 24845, 24925, 25001, 24989, 25035, 25041, 25094, 32896, 32895, 27795, 27894, 28156, 30710, 30712, 30720, 30729, 30743, 30744, 30737, 26027, 30765, 30748, 30749, 30777, 30778, 30779, 30751, 30780, 30757, 30764, 30755, 30761, 30798, 30829, 30806, 30807, 30758, 30800, 30791, 30796, 30826, 30875, 30867, 30874, 30855, 30876, 30881, 30883, 30898, 30905, 30885, 30932, 30937, 30921, 30956, 30962, 30981, 30964, 30995, 31012, 31006, 31028, 40859, 40697, 40699, 40700, 30449, 30468, 30477, 30457, 30471, 30472, 30490, 30498, 30489, 30509, 30502, 30517, 30520, 30544, 30545, 30535, 30531, 30554, 30568, 38927, 38928, 38929, 38930, 38931, 38932, 38933, 38934, 38935, 38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943, 38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951, 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967, 38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975, 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983, 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991, 38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999, 39e3, 39001, 39002, 39003, 39004, 39005, 39006, 39007, 39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015, 39016, 39017, 39018, 39019, 39020, 39021, 39022, 30562, 30565, 30591, 30605, 30589, 30592, 30604, 30609, 30623, 30624, 30640, 30645, 30653, 30010, 30016, 30030, 30027, 30024, 30043, 30066, 30073, 30083, 32600, 32609, 32607, 35400, 32616, 32628, 32625, 32633, 32641, 32638, 30413, 30437, 34866, 38021, 38022, 38023, 38027, 38026, 38028, 38029, 38031, 38032, 38036, 38039, 38037, 38042, 38043, 38044, 38051, 38052, 38059, 38058, 38061, 38060, 38063, 38064, 38066, 38068, 38070, 38071, 38072, 38073, 38074, 38076, 38077, 38079, 38084, 38088, 38089, 38090, 38091, 38092, 38093, 38094, 38096, 38097, 38098, 38101, 38102, 38103, 38105, 38104, 38107, 38110, 38111, 38112, 38114, 38116, 38117, 38119, 38120, 38122, 39023, 39024, 39025, 39026, 39027, 39028, 39051, 39054, 39058, 39061, 39065, 39075, 39080, 39081, 39082, 39083, 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091, 39092, 39093, 39094, 39095, 39096, 39097, 39098, 39099, 39100, 39101, 39102, 39103, 39104, 39105, 39106, 39107, 39108, 39109, 39110, 39111, 39112, 39113, 39114, 39115, 39116, 39117, 39119, 39120, 39124, 39126, 39127, 39131, 39132, 39133, 39136, 39137, 39138, 39139, 39140, 39141, 39142, 39145, 39146, 39147, 39148, 39149, 39150, 39151, 39152, 39153, 39154, 39155, 39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163, 39164, 39165, 39166, 39167, 39168, 39169, 39170, 39171, 39172, 39173, 39174, 39175, 38121, 38123, 38126, 38127, 38131, 38132, 38133, 38135, 38137, 38140, 38141, 38143, 38147, 38146, 38150, 38151, 38153, 38154, 38157, 38158, 38159, 38162, 38163, 38164, 38165, 38166, 38168, 38171, 38173, 38174, 38175, 38178, 38186, 38187, 38185, 38188, 38193, 38194, 38196, 38198, 38199, 38200, 38204, 38206, 38207, 38210, 38197, 38212, 38213, 38214, 38217, 38220, 38222, 38223, 38226, 38227, 38228, 38230, 38231, 38232, 38233, 38235, 38238, 38239, 38237, 38241, 38242, 38244, 38245, 38246, 38247, 38248, 38249, 38250, 38251, 38252, 38255, 38257, 38258, 38259, 38202, 30695, 30700, 38601, 31189, 31213, 31203, 31211, 31238, 23879, 31235, 31234, 31262, 31252, 39176, 39177, 39178, 39179, 39180, 39182, 39183, 39185, 39186, 39187, 39188, 39189, 39190, 39191, 39192, 39193, 39194, 39195, 39196, 39197, 39198, 39199, 39200, 39201, 39202, 39203, 39204, 39205, 39206, 39207, 39208, 39209, 39210, 39211, 39212, 39213, 39215, 39216, 39217, 39218, 39219, 39220, 39221, 39222, 39223, 39224, 39225, 39226, 39227, 39228, 39229, 39230, 39231, 39232, 39233, 39234, 39235, 39236, 39237, 39238, 39239, 39240, 39241, 39242, 39243, 39244, 39245, 39246, 39247, 39248, 39249, 39250, 39251, 39254, 39255, 39256, 39257, 39258, 39259, 39260, 39261, 39262, 39263, 39264, 39265, 39266, 39268, 39270, 39283, 39288, 39289, 39291, 39294, 39298, 39299, 39305, 31289, 31287, 31313, 40655, 39333, 31344, 30344, 30350, 30355, 30361, 30372, 29918, 29920, 29996, 40480, 40482, 40488, 40489, 40490, 40491, 40492, 40498, 40497, 40502, 40504, 40503, 40505, 40506, 40510, 40513, 40514, 40516, 40518, 40519, 40520, 40521, 40523, 40524, 40526, 40529, 40533, 40535, 40538, 40539, 40540, 40542, 40547, 40550, 40551, 40552, 40553, 40554, 40555, 40556, 40561, 40557, 40563, 30098, 30100, 30102, 30112, 30109, 30124, 30115, 30131, 30132, 30136, 30148, 30129, 30128, 30147, 30146, 30166, 30157, 30179, 30184, 30182, 30180, 30187, 30183, 30211, 30193, 30204, 30207, 30224, 30208, 30213, 30220, 30231, 30218, 30245, 30232, 30229, 30233, 39308, 39310, 39322, 39323, 39324, 39325, 39326, 39327, 39328, 39329, 39330, 39331, 39332, 39334, 39335, 39337, 39338, 39339, 39340, 39341, 39342, 39343, 39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351, 39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359, 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367, 39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375, 39376, 39377, 39378, 39379, 39380, 39381, 39382, 39383, 39384, 39385, 39386, 39387, 39388, 39389, 39390, 39391, 39392, 39393, 39394, 39395, 39396, 39397, 39398, 39399, 39400, 39401, 39402, 39403, 39404, 39405, 39406, 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414, 39415, 39416, 39417, 30235, 30268, 30242, 30240, 30272, 30253, 30256, 30271, 30261, 30275, 30270, 30259, 30285, 30302, 30292, 30300, 30294, 30315, 30319, 32714, 31462, 31352, 31353, 31360, 31366, 31368, 31381, 31398, 31392, 31404, 31400, 31405, 31411, 34916, 34921, 34930, 34941, 34943, 34946, 34978, 35014, 34999, 35004, 35017, 35042, 35022, 35043, 35045, 35057, 35098, 35068, 35048, 35070, 35056, 35105, 35097, 35091, 35099, 35082, 35124, 35115, 35126, 35137, 35174, 35195, 30091, 32997, 30386, 30388, 30684, 32786, 32788, 32790, 32796, 32800, 32802, 32805, 32806, 32807, 32809, 32808, 32817, 32779, 32821, 32835, 32838, 32845, 32850, 32873, 32881, 35203, 39032, 39040, 39043, 39418, 39419, 39420, 39421, 39422, 39423, 39424, 39425, 39426, 39427, 39428, 39429, 39430, 39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438, 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446, 39447, 39448, 39449, 39450, 39451, 39452, 39453, 39454, 39455, 39456, 39457, 39458, 39459, 39460, 39461, 39462, 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470, 39471, 39472, 39473, 39474, 39475, 39476, 39477, 39478, 39479, 39480, 39481, 39482, 39483, 39484, 39485, 39486, 39487, 39488, 39489, 39490, 39491, 39492, 39493, 39494, 39495, 39496, 39497, 39498, 39499, 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507, 39508, 39509, 39510, 39511, 39512, 39513, 39049, 39052, 39053, 39055, 39060, 39066, 39067, 39070, 39071, 39073, 39074, 39077, 39078, 34381, 34388, 34412, 34414, 34431, 34426, 34428, 34427, 34472, 34445, 34443, 34476, 34461, 34471, 34467, 34474, 34451, 34473, 34486, 34500, 34485, 34510, 34480, 34490, 34481, 34479, 34505, 34511, 34484, 34537, 34545, 34546, 34541, 34547, 34512, 34579, 34526, 34548, 34527, 34520, 34513, 34563, 34567, 34552, 34568, 34570, 34573, 34569, 34595, 34619, 34590, 34597, 34606, 34586, 34622, 34632, 34612, 34609, 34601, 34615, 34623, 34690, 34594, 34685, 34686, 34683, 34656, 34672, 34636, 34670, 34699, 34643, 34659, 34684, 34660, 34649, 34661, 34707, 34735, 34728, 34770, 39514, 39515, 39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523, 39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531, 39538, 39555, 39561, 39565, 39566, 39572, 39573, 39577, 39590, 39593, 39594, 39595, 39596, 39597, 39598, 39599, 39602, 39603, 39604, 39605, 39609, 39611, 39613, 39614, 39615, 39619, 39620, 39622, 39623, 39624, 39625, 39626, 39629, 39630, 39631, 39632, 39634, 39636, 39637, 39638, 39639, 39641, 39642, 39643, 39644, 39645, 39646, 39648, 39650, 39651, 39652, 39653, 39655, 39656, 39657, 39658, 39660, 39662, 39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671, 39672, 39674, 39676, 39677, 39678, 39679, 39680, 39681, 39682, 39684, 39685, 39686, 34758, 34696, 34693, 34733, 34711, 34691, 34731, 34789, 34732, 34741, 34739, 34763, 34771, 34749, 34769, 34752, 34762, 34779, 34794, 34784, 34798, 34838, 34835, 34814, 34826, 34843, 34849, 34873, 34876, 32566, 32578, 32580, 32581, 33296, 31482, 31485, 31496, 31491, 31492, 31509, 31498, 31531, 31503, 31559, 31544, 31530, 31513, 31534, 31537, 31520, 31525, 31524, 31539, 31550, 31518, 31576, 31578, 31557, 31605, 31564, 31581, 31584, 31598, 31611, 31586, 31602, 31601, 31632, 31654, 31655, 31672, 31660, 31645, 31656, 31621, 31658, 31644, 31650, 31659, 31668, 31697, 31681, 31692, 31709, 31706, 31717, 31718, 31722, 31756, 31742, 31740, 31759, 31766, 31755, 39687, 39689, 39690, 39691, 39692, 39693, 39694, 39696, 39697, 39698, 39700, 39701, 39702, 39703, 39704, 39705, 39706, 39707, 39708, 39709, 39710, 39712, 39713, 39714, 39716, 39717, 39718, 39719, 39720, 39721, 39722, 39723, 39724, 39725, 39726, 39728, 39729, 39731, 39732, 39733, 39734, 39735, 39736, 39737, 39738, 39741, 39742, 39743, 39744, 39750, 39754, 39755, 39756, 39758, 39760, 39762, 39763, 39765, 39766, 39767, 39768, 39769, 39770, 39771, 39772, 39773, 39774, 39775, 39776, 39777, 39778, 39779, 39780, 39781, 39782, 39783, 39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791, 39792, 39793, 39794, 39795, 39796, 39797, 39798, 39799, 39800, 39801, 39802, 39803, 31775, 31786, 31782, 31800, 31809, 31808, 33278, 33281, 33282, 33284, 33260, 34884, 33313, 33314, 33315, 33325, 33327, 33320, 33323, 33336, 33339, 33331, 33332, 33342, 33348, 33353, 33355, 33359, 33370, 33375, 33384, 34942, 34949, 34952, 35032, 35039, 35166, 32669, 32671, 32679, 32687, 32688, 32690, 31868, 25929, 31889, 31901, 31900, 31902, 31906, 31922, 31932, 31933, 31937, 31943, 31948, 31949, 31944, 31941, 31959, 31976, 33390, 26280, 32703, 32718, 32725, 32741, 32737, 32742, 32745, 32750, 32755, 31992, 32119, 32166, 32174, 32327, 32411, 40632, 40628, 36211, 36228, 36244, 36241, 36273, 36199, 36205, 35911, 35913, 37194, 37200, 37198, 37199, 37220, 39804, 39805, 39806, 39807, 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815, 39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823, 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831, 39832, 39833, 39834, 39835, 39836, 39837, 39838, 39839, 39840, 39841, 39842, 39843, 39844, 39845, 39846, 39847, 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855, 39856, 39857, 39858, 39859, 39860, 39861, 39862, 39863, 39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871, 39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879, 39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887, 39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895, 39896, 39897, 39898, 39899, 37218, 37217, 37232, 37225, 37231, 37245, 37246, 37234, 37236, 37241, 37260, 37253, 37264, 37261, 37265, 37282, 37283, 37290, 37293, 37294, 37295, 37301, 37300, 37306, 35925, 40574, 36280, 36331, 36357, 36441, 36457, 36277, 36287, 36284, 36282, 36292, 36310, 36311, 36314, 36318, 36302, 36303, 36315, 36294, 36332, 36343, 36344, 36323, 36345, 36347, 36324, 36361, 36349, 36372, 36381, 36383, 36396, 36398, 36387, 36399, 36410, 36416, 36409, 36405, 36413, 36401, 36425, 36417, 36418, 36433, 36434, 36426, 36464, 36470, 36476, 36463, 36468, 36485, 36495, 36500, 36496, 36508, 36510, 35960, 35970, 35978, 35973, 35992, 35988, 26011, 35286, 35294, 35290, 35292, 39900, 39901, 39902, 39903, 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911, 39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919, 39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927, 39928, 39929, 39930, 39931, 39932, 39933, 39934, 39935, 39936, 39937, 39938, 39939, 39940, 39941, 39942, 39943, 39944, 39945, 39946, 39947, 39948, 39949, 39950, 39951, 39952, 39953, 39954, 39955, 39956, 39957, 39958, 39959, 39960, 39961, 39962, 39963, 39964, 39965, 39966, 39967, 39968, 39969, 39970, 39971, 39972, 39973, 39974, 39975, 39976, 39977, 39978, 39979, 39980, 39981, 39982, 39983, 39984, 39985, 39986, 39987, 39988, 39989, 39990, 39991, 39992, 39993, 39994, 39995, 35301, 35307, 35311, 35390, 35622, 38739, 38633, 38643, 38639, 38662, 38657, 38664, 38671, 38670, 38698, 38701, 38704, 38718, 40832, 40835, 40837, 40838, 40839, 40840, 40841, 40842, 40844, 40702, 40715, 40717, 38585, 38588, 38589, 38606, 38610, 30655, 38624, 37518, 37550, 37576, 37694, 37738, 37834, 37775, 37950, 37995, 40063, 40066, 40069, 40070, 40071, 40072, 31267, 40075, 40078, 40080, 40081, 40082, 40084, 40085, 40090, 40091, 40094, 40095, 40096, 40097, 40098, 40099, 40101, 40102, 40103, 40104, 40105, 40107, 40109, 40110, 40112, 40113, 40114, 40115, 40116, 40117, 40118, 40119, 40122, 40123, 40124, 40125, 40132, 40133, 40134, 40135, 40138, 40139, 39996, 39997, 39998, 39999, 4e4, 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013, 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023, 40024, 40025, 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, 40054, 40055, 40056, 40057, 40058, 40059, 40061, 40062, 40064, 40067, 40068, 40073, 40074, 40076, 40079, 40083, 40086, 40087, 40088, 40089, 40093, 40106, 40108, 40111, 40121, 40126, 40127, 40128, 40129, 40130, 40136, 40137, 40145, 40146, 40154, 40155, 40160, 40161, 40140, 40141, 40142, 40143, 40144, 40147, 40148, 40149, 40151, 40152, 40153, 40156, 40157, 40159, 40162, 38780, 38789, 38801, 38802, 38804, 38831, 38827, 38819, 38834, 38836, 39601, 39600, 39607, 40536, 39606, 39610, 39612, 39617, 39616, 39621, 39618, 39627, 39628, 39633, 39749, 39747, 39751, 39753, 39752, 39757, 39761, 39144, 39181, 39214, 39253, 39252, 39647, 39649, 39654, 39663, 39659, 39675, 39661, 39673, 39688, 39695, 39699, 39711, 39715, 40637, 40638, 32315, 40578, 40583, 40584, 40587, 40594, 37846, 40605, 40607, 40667, 40668, 40669, 40672, 40671, 40674, 40681, 40679, 40677, 40682, 40687, 40738, 40748, 40751, 40761, 40759, 40765, 40766, 40772, 40163, 40164, 40165, 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173, 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181, 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, 40190, 40191, 40192, 40193, 40194, 40195, 40196, 40197, 40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205, 40206, 40207, 40208, 40209, 40210, 40211, 40212, 40213, 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221, 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229, 40230, 40231, 40232, 40233, 40234, 40235, 40236, 40237, 40238, 40239, 40240, 40241, 40242, 40243, 40244, 40245, 40246, 40247, 40248, 40249, 40250, 40251, 40252, 40253, 40254, 40255, 40256, 40257, 40258, 57908, 57909, 57910, 57911, 57912, 57913, 57914, 57915, 57916, 57917, 57918, 57919, 57920, 57921, 57922, 57923, 57924, 57925, 57926, 57927, 57928, 57929, 57930, 57931, 57932, 57933, 57934, 57935, 57936, 57937, 57938, 57939, 57940, 57941, 57942, 57943, 57944, 57945, 57946, 57947, 57948, 57949, 57950, 57951, 57952, 57953, 57954, 57955, 57956, 57957, 57958, 57959, 57960, 57961, 57962, 57963, 57964, 57965, 57966, 57967, 57968, 57969, 57970, 57971, 57972, 57973, 57974, 57975, 57976, 57977, 57978, 57979, 57980, 57981, 57982, 57983, 57984, 57985, 57986, 57987, 57988, 57989, 57990, 57991, 57992, 57993, 57994, 57995, 57996, 57997, 57998, 57999, 58e3, 58001, 40259, 40260, 40261, 40262, 40263, 40264, 40265, 40266, 40267, 40268, 40269, 40270, 40271, 40272, 40273, 40274, 40275, 40276, 40277, 40278, 40279, 40280, 40281, 40282, 40283, 40284, 40285, 40286, 40287, 40288, 40289, 40290, 40291, 40292, 40293, 40294, 40295, 40296, 40297, 40298, 40299, 40300, 40301, 40302, 40303, 40304, 40305, 40306, 40307, 40308, 40309, 40310, 40311, 40312, 40313, 40314, 40315, 40316, 40317, 40318, 40319, 40320, 40321, 40322, 40323, 40324, 40325, 40326, 40327, 40328, 40329, 40330, 40331, 40332, 40333, 40334, 40335, 40336, 40337, 40338, 40339, 40340, 40341, 40342, 40343, 40344, 40345, 40346, 40347, 40348, 40349, 40350, 40351, 40352, 40353, 40354, 58002, 58003, 58004, 58005, 58006, 58007, 58008, 58009, 58010, 58011, 58012, 58013, 58014, 58015, 58016, 58017, 58018, 58019, 58020, 58021, 58022, 58023, 58024, 58025, 58026, 58027, 58028, 58029, 58030, 58031, 58032, 58033, 58034, 58035, 58036, 58037, 58038, 58039, 58040, 58041, 58042, 58043, 58044, 58045, 58046, 58047, 58048, 58049, 58050, 58051, 58052, 58053, 58054, 58055, 58056, 58057, 58058, 58059, 58060, 58061, 58062, 58063, 58064, 58065, 58066, 58067, 58068, 58069, 58070, 58071, 58072, 58073, 58074, 58075, 58076, 58077, 58078, 58079, 58080, 58081, 58082, 58083, 58084, 58085, 58086, 58087, 58088, 58089, 58090, 58091, 58092, 58093, 58094, 58095, 40355, 40356, 40357, 40358, 40359, 40360, 40361, 40362, 40363, 40364, 40365, 40366, 40367, 40368, 40369, 40370, 40371, 40372, 40373, 40374, 40375, 40376, 40377, 40378, 40379, 40380, 40381, 40382, 40383, 40384, 40385, 40386, 40387, 40388, 40389, 40390, 40391, 40392, 40393, 40394, 40395, 40396, 40397, 40398, 40399, 40400, 40401, 40402, 40403, 40404, 40405, 40406, 40407, 40408, 40409, 40410, 40411, 40412, 40413, 40414, 40415, 40416, 40417, 40418, 40419, 40420, 40421, 40422, 40423, 40424, 40425, 40426, 40427, 40428, 40429, 40430, 40431, 40432, 40433, 40434, 40435, 40436, 40437, 40438, 40439, 40440, 40441, 40442, 40443, 40444, 40445, 40446, 40447, 40448, 40449, 40450, 58096, 58097, 58098, 58099, 58100, 58101, 58102, 58103, 58104, 58105, 58106, 58107, 58108, 58109, 58110, 58111, 58112, 58113, 58114, 58115, 58116, 58117, 58118, 58119, 58120, 58121, 58122, 58123, 58124, 58125, 58126, 58127, 58128, 58129, 58130, 58131, 58132, 58133, 58134, 58135, 58136, 58137, 58138, 58139, 58140, 58141, 58142, 58143, 58144, 58145, 58146, 58147, 58148, 58149, 58150, 58151, 58152, 58153, 58154, 58155, 58156, 58157, 58158, 58159, 58160, 58161, 58162, 58163, 58164, 58165, 58166, 58167, 58168, 58169, 58170, 58171, 58172, 58173, 58174, 58175, 58176, 58177, 58178, 58179, 58180, 58181, 58182, 58183, 58184, 58185, 58186, 58187, 58188, 58189, 40451, 40452, 40453, 40454, 40455, 40456, 40457, 40458, 40459, 40460, 40461, 40462, 40463, 40464, 40465, 40466, 40467, 40468, 40469, 40470, 40471, 40472, 40473, 40474, 40475, 40476, 40477, 40478, 40484, 40487, 40494, 40496, 40500, 40507, 40508, 40512, 40525, 40528, 40530, 40531, 40532, 40534, 40537, 40541, 40543, 40544, 40545, 40546, 40549, 40558, 40559, 40562, 40564, 40565, 40566, 40567, 40568, 40569, 40570, 40571, 40572, 40573, 40576, 40577, 40579, 40580, 40581, 40582, 40585, 40586, 40588, 40589, 40590, 40591, 40592, 40593, 40596, 40597, 40598, 40599, 40600, 40601, 40602, 40603, 40604, 40606, 40608, 40609, 40610, 40611, 40612, 40613, 40615, 40616, 40617, 40618, 58190, 58191, 58192, 58193, 58194, 58195, 58196, 58197, 58198, 58199, 58200, 58201, 58202, 58203, 58204, 58205, 58206, 58207, 58208, 58209, 58210, 58211, 58212, 58213, 58214, 58215, 58216, 58217, 58218, 58219, 58220, 58221, 58222, 58223, 58224, 58225, 58226, 58227, 58228, 58229, 58230, 58231, 58232, 58233, 58234, 58235, 58236, 58237, 58238, 58239, 58240, 58241, 58242, 58243, 58244, 58245, 58246, 58247, 58248, 58249, 58250, 58251, 58252, 58253, 58254, 58255, 58256, 58257, 58258, 58259, 58260, 58261, 58262, 58263, 58264, 58265, 58266, 58267, 58268, 58269, 58270, 58271, 58272, 58273, 58274, 58275, 58276, 58277, 58278, 58279, 58280, 58281, 58282, 58283, 40619, 40620, 40621, 40622, 40623, 40624, 40625, 40626, 40627, 40629, 40630, 40631, 40633, 40634, 40636, 40639, 40640, 40641, 40642, 40643, 40645, 40646, 40647, 40648, 40650, 40651, 40652, 40656, 40658, 40659, 40661, 40662, 40663, 40665, 40666, 40670, 40673, 40675, 40676, 40678, 40680, 40683, 40684, 40685, 40686, 40688, 40689, 40690, 40691, 40692, 40693, 40694, 40695, 40696, 40698, 40701, 40703, 40704, 40705, 40706, 40707, 40708, 40709, 40710, 40711, 40712, 40713, 40714, 40716, 40719, 40721, 40722, 40724, 40725, 40726, 40728, 40730, 40731, 40732, 40733, 40734, 40735, 40737, 40739, 40740, 40741, 40742, 40743, 40744, 40745, 40746, 40747, 40749, 40750, 40752, 40753, 58284, 58285, 58286, 58287, 58288, 58289, 58290, 58291, 58292, 58293, 58294, 58295, 58296, 58297, 58298, 58299, 58300, 58301, 58302, 58303, 58304, 58305, 58306, 58307, 58308, 58309, 58310, 58311, 58312, 58313, 58314, 58315, 58316, 58317, 58318, 58319, 58320, 58321, 58322, 58323, 58324, 58325, 58326, 58327, 58328, 58329, 58330, 58331, 58332, 58333, 58334, 58335, 58336, 58337, 58338, 58339, 58340, 58341, 58342, 58343, 58344, 58345, 58346, 58347, 58348, 58349, 58350, 58351, 58352, 58353, 58354, 58355, 58356, 58357, 58358, 58359, 58360, 58361, 58362, 58363, 58364, 58365, 58366, 58367, 58368, 58369, 58370, 58371, 58372, 58373, 58374, 58375, 58376, 58377, 40754, 40755, 40756, 40757, 40758, 40760, 40762, 40764, 40767, 40768, 40769, 40770, 40771, 40773, 40774, 40775, 40776, 40777, 40778, 40779, 40780, 40781, 40782, 40783, 40786, 40787, 40788, 40789, 40790, 40791, 40792, 40793, 40794, 40795, 40796, 40797, 40798, 40799, 40800, 40801, 40802, 40803, 40804, 40805, 40806, 40807, 40808, 40809, 40810, 40811, 40812, 40813, 40814, 40815, 40816, 40817, 40818, 40819, 40820, 40821, 40822, 40823, 40824, 40825, 40826, 40827, 40828, 40829, 40830, 40833, 40834, 40845, 40846, 40847, 40848, 40849, 40850, 40851, 40852, 40853, 40854, 40855, 40856, 40860, 40861, 40862, 40865, 40866, 40867, 40868, 40869, 63788, 63865, 63893, 63975, 63985, 58378, 58379, 58380, 58381, 58382, 58383, 58384, 58385, 58386, 58387, 58388, 58389, 58390, 58391, 58392, 58393, 58394, 58395, 58396, 58397, 58398, 58399, 58400, 58401, 58402, 58403, 58404, 58405, 58406, 58407, 58408, 58409, 58410, 58411, 58412, 58413, 58414, 58415, 58416, 58417, 58418, 58419, 58420, 58421, 58422, 58423, 58424, 58425, 58426, 58427, 58428, 58429, 58430, 58431, 58432, 58433, 58434, 58435, 58436, 58437, 58438, 58439, 58440, 58441, 58442, 58443, 58444, 58445, 58446, 58447, 58448, 58449, 58450, 58451, 58452, 58453, 58454, 58455, 58456, 58457, 58458, 58459, 58460, 58461, 58462, 58463, 58464, 58465, 58466, 58467, 58468, 58469, 58470, 58471, 64012, 64013, 64014, 64015, 64017, 64019, 64020, 64024, 64031, 64032, 64033, 64035, 64036, 64039, 64040, 64041, 11905, 59414, 59415, 59416, 11908, 13427, 13383, 11912, 11915, 59422, 13726, 13850, 13838, 11916, 11927, 14702, 14616, 59430, 14799, 14815, 14963, 14800, 59435, 59436, 15182, 15470, 15584, 11943, 59441, 59442, 11946, 16470, 16735, 11950, 17207, 11955, 11958, 11959, 59451, 17329, 17324, 11963, 17373, 17622, 18017, 17996, 59459, 18211, 18217, 18300, 18317, 11978, 18759, 18810, 18813, 18818, 18819, 18821, 18822, 18847, 18843, 18871, 18870, 59476, 59477, 19619, 19615, 19616, 19617, 19575, 19618, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19886, 59492, 58472, 58473, 58474, 58475, 58476, 58477, 58478, 58479, 58480, 58481, 58482, 58483, 58484, 58485, 58486, 58487, 58488, 58489, 58490, 58491, 58492, 58493, 58494, 58495, 58496, 58497, 58498, 58499, 58500, 58501, 58502, 58503, 58504, 58505, 58506, 58507, 58508, 58509, 58510, 58511, 58512, 58513, 58514, 58515, 58516, 58517, 58518, 58519, 58520, 58521, 58522, 58523, 58524, 58525, 58526, 58527, 58528, 58529, 58530, 58531, 58532, 58533, 58534, 58535, 58536, 58537, 58538, 58539, 58540, 58541, 58542, 58543, 58544, 58545, 58546, 58547, 58548, 58549, 58550, 58551, 58552, 58553, 58554, 58555, 58556, 58557, 58558, 58559, 58560, 58561, 58562, 58563, 58564, 58565], "gb18030-ranges": [[0, 128], [36, 165], [38, 169], [45, 178], [50, 184], [81, 216], [89, 226], [95, 235], [96, 238], [100, 244], [103, 248], [104, 251], [105, 253], [109, 258], [126, 276], [133, 284], [148, 300], [172, 325], [175, 329], [179, 334], [208, 364], [306, 463], [307, 465], [308, 467], [309, 469], [310, 471], [311, 473], [312, 475], [313, 477], [341, 506], [428, 594], [443, 610], [544, 712], [545, 716], [558, 730], [741, 930], [742, 938], [749, 962], [750, 970], [805, 1026], [819, 1104], [820, 1106], [7922, 8209], [7924, 8215], [7925, 8218], [7927, 8222], [7934, 8231], [7943, 8241], [7944, 8244], [7945, 8246], [7950, 8252], [8062, 8365], [8148, 8452], [8149, 8454], [8152, 8458], [8164, 8471], [8174, 8482], [8236, 8556], [8240, 8570], [8262, 8596], [8264, 8602], [8374, 8713], [8380, 8720], [8381, 8722], [8384, 8726], [8388, 8731], [8390, 8737], [8392, 8740], [8393, 8742], [8394, 8748], [8396, 8751], [8401, 8760], [8406, 8766], [8416, 8777], [8419, 8781], [8424, 8787], [8437, 8802], [8439, 8808], [8445, 8816], [8482, 8854], [8485, 8858], [8496, 8870], [8521, 8896], [8603, 8979], [8936, 9322], [8946, 9372], [9046, 9548], [9050, 9588], [9063, 9616], [9066, 9622], [9076, 9634], [9092, 9652], [9100, 9662], [9108, 9672], [9111, 9676], [9113, 9680], [9131, 9702], [9162, 9735], [9164, 9738], [9218, 9793], [9219, 9795], [11329, 11906], [11331, 11909], [11334, 11913], [11336, 11917], [11346, 11928], [11361, 11944], [11363, 11947], [11366, 11951], [11370, 11956], [11372, 11960], [11375, 11964], [11389, 11979], [11682, 12284], [11686, 12292], [11687, 12312], [11692, 12319], [11694, 12330], [11714, 12351], [11716, 12436], [11723, 12447], [11725, 12535], [11730, 12543], [11736, 12586], [11982, 12842], [11989, 12850], [12102, 12964], [12336, 13200], [12348, 13215], [12350, 13218], [12384, 13253], [12393, 13263], [12395, 13267], [12397, 13270], [12510, 13384], [12553, 13428], [12851, 13727], [12962, 13839], [12973, 13851], [13738, 14617], [13823, 14703], [13919, 14801], [13933, 14816], [14080, 14964], [14298, 15183], [14585, 15471], [14698, 15585], [15583, 16471], [15847, 16736], [16318, 17208], [16434, 17325], [16438, 17330], [16481, 17374], [16729, 17623], [17102, 17997], [17122, 18018], [17315, 18212], [17320, 18218], [17402, 18301], [17418, 18318], [17859, 18760], [17909, 18811], [17911, 18814], [17915, 18820], [17916, 18823], [17936, 18844], [17939, 18848], [17961, 18872], [18664, 19576], [18703, 19620], [18814, 19738], [18962, 19887], [19043, 40870], [33469, 59244], [33470, 59336], [33471, 59367], [33484, 59413], [33485, 59417], [33490, 59423], [33497, 59431], [33501, 59437], [33505, 59443], [33513, 59452], [33520, 59460], [33536, 59478], [33550, 59493], [37845, 63789], [37921, 63866], [37948, 63894], [38029, 63976], [38038, 63986], [38064, 64016], [38065, 64018], [38066, 64021], [38069, 64025], [38075, 64034], [38076, 64037], [38078, 64042], [39108, 65074], [39109, 65093], [39113, 65107], [39114, 65112], [39115, 65127], [39116, 65132], [39265, 65375], [39394, 65510], [189e3, 65536]], jis0208: [12288, 12289, 12290, 65292, 65294, 12539, 65306, 65307, 65311, 65281, 12443, 12444, 180, 65344, 168, 65342, 65507, 65343, 12541, 12542, 12445, 12446, 12291, 20189, 12293, 12294, 12295, 12540, 8213, 8208, 65295, 65340, 65374, 8741, 65372, 8230, 8229, 8216, 8217, 8220, 8221, 65288, 65289, 12308, 12309, 65339, 65341, 65371, 65373, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 65291, 65293, 177, 215, 247, 65309, 8800, 65308, 65310, 8806, 8807, 8734, 8756, 9794, 9792, 176, 8242, 8243, 8451, 65509, 65284, 65504, 65505, 65285, 65283, 65286, 65290, 65312, 167, 9734, 9733, 9675, 9679, 9678, 9671, 9670, 9633, 9632, 9651, 9650, 9661, 9660, 8251, 12306, 8594, 8592, 8593, 8595, 12307, null, null, null, null, null, null, null, null, null, null, null, 8712, 8715, 8838, 8839, 8834, 8835, 8746, 8745, null, null, null, null, null, null, null, null, 8743, 8744, 65506, 8658, 8660, 8704, 8707, null, null, null, null, null, null, null, null, null, null, null, 8736, 8869, 8978, 8706, 8711, 8801, 8786, 8810, 8811, 8730, 8765, 8733, 8757, 8747, 8748, null, null, null, null, null, null, null, 8491, 8240, 9839, 9837, 9834, 8224, 8225, 182, null, null, null, null, 9711, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, null, null, null, null, null, null, null, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, null, null, null, null, null, null, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, null, null, null, null, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, null, null, null, null, null, null, null, null, null, null, null, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, null, null, null, null, null, null, null, null, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, null, null, null, null, null, null, null, null, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, 965, 966, 967, 968, 969, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1040, 1041, 1042, 1043, 1044, 1045, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1072, 1073, 1074, 1075, 1076, 1077, 1105, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, null, null, null, null, null, null, null, null, null, null, null, null, null, 9472, 9474, 9484, 9488, 9496, 9492, 9500, 9516, 9508, 9524, 9532, 9473, 9475, 9487, 9491, 9499, 9495, 9507, 9523, 9515, 9531, 9547, 9504, 9519, 9512, 9527, 9535, 9501, 9520, 9509, 9528, 9538, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, null, 13129, 13076, 13090, 13133, 13080, 13095, 13059, 13110, 13137, 13143, 13069, 13094, 13091, 13099, 13130, 13115, 13212, 13213, 13214, 13198, 13199, 13252, 13217, null, null, null, null, null, null, null, null, 13179, 12317, 12319, 8470, 13261, 8481, 12964, 12965, 12966, 12967, 12968, 12849, 12850, 12857, 13182, 13181, 13180, 8786, 8801, 8747, 8750, 8721, 8730, 8869, 8736, 8735, 8895, 8757, 8745, 8746, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 20124, 21782, 23043, 38463, 21696, 24859, 25384, 23030, 36898, 33909, 33564, 31312, 24746, 25569, 28197, 26093, 33894, 33446, 39925, 26771, 22311, 26017, 25201, 23451, 22992, 34427, 39156, 32098, 32190, 39822, 25110, 31903, 34999, 23433, 24245, 25353, 26263, 26696, 38343, 38797, 26447, 20197, 20234, 20301, 20381, 20553, 22258, 22839, 22996, 23041, 23561, 24799, 24847, 24944, 26131, 26885, 28858, 30031, 30064, 31227, 32173, 32239, 32963, 33806, 34915, 35586, 36949, 36986, 21307, 20117, 20133, 22495, 32946, 37057, 30959, 19968, 22769, 28322, 36920, 31282, 33576, 33419, 39983, 20801, 21360, 21693, 21729, 22240, 23035, 24341, 39154, 28139, 32996, 34093, 38498, 38512, 38560, 38907, 21515, 21491, 23431, 28879, 32701, 36802, 38632, 21359, 40284, 31418, 19985, 30867, 33276, 28198, 22040, 21764, 27421, 34074, 39995, 23013, 21417, 28006, 29916, 38287, 22082, 20113, 36939, 38642, 33615, 39180, 21473, 21942, 23344, 24433, 26144, 26355, 26628, 27704, 27891, 27945, 29787, 30408, 31310, 38964, 33521, 34907, 35424, 37613, 28082, 30123, 30410, 39365, 24742, 35585, 36234, 38322, 27022, 21421, 20870, 22290, 22576, 22852, 23476, 24310, 24616, 25513, 25588, 27839, 28436, 28814, 28948, 29017, 29141, 29503, 32257, 33398, 33489, 34199, 36960, 37467, 40219, 22633, 26044, 27738, 29989, 20985, 22830, 22885, 24448, 24540, 25276, 26106, 27178, 27431, 27572, 29579, 32705, 35158, 40236, 40206, 40644, 23713, 27798, 33659, 20740, 23627, 25014, 33222, 26742, 29281, 20057, 20474, 21368, 24681, 28201, 31311, 38899, 19979, 21270, 20206, 20309, 20285, 20385, 20339, 21152, 21487, 22025, 22799, 23233, 23478, 23521, 31185, 26247, 26524, 26550, 27468, 27827, 28779, 29634, 31117, 31166, 31292, 31623, 33457, 33499, 33540, 33655, 33775, 33747, 34662, 35506, 22057, 36008, 36838, 36942, 38686, 34442, 20420, 23784, 25105, 29273, 30011, 33253, 33469, 34558, 36032, 38597, 39187, 39381, 20171, 20250, 35299, 22238, 22602, 22730, 24315, 24555, 24618, 24724, 24674, 25040, 25106, 25296, 25913, 39745, 26214, 26800, 28023, 28784, 30028, 30342, 32117, 33445, 34809, 38283, 38542, 35997, 20977, 21182, 22806, 21683, 23475, 23830, 24936, 27010, 28079, 30861, 33995, 34903, 35442, 37799, 39608, 28012, 39336, 34521, 22435, 26623, 34510, 37390, 21123, 22151, 21508, 24275, 25313, 25785, 26684, 26680, 27579, 29554, 30906, 31339, 35226, 35282, 36203, 36611, 37101, 38307, 38548, 38761, 23398, 23731, 27005, 38989, 38990, 25499, 31520, 27179, 27263, 26806, 39949, 28511, 21106, 21917, 24688, 25324, 27963, 28167, 28369, 33883, 35088, 36676, 19988, 39993, 21494, 26907, 27194, 38788, 26666, 20828, 31427, 33970, 37340, 37772, 22107, 40232, 26658, 33541, 33841, 31909, 21e3, 33477, 29926, 20094, 20355, 20896, 23506, 21002, 21208, 21223, 24059, 21914, 22570, 23014, 23436, 23448, 23515, 24178, 24185, 24739, 24863, 24931, 25022, 25563, 25954, 26577, 26707, 26874, 27454, 27475, 27735, 28450, 28567, 28485, 29872, 29976, 30435, 30475, 31487, 31649, 31777, 32233, 32566, 32752, 32925, 33382, 33694, 35251, 35532, 36011, 36996, 37969, 38291, 38289, 38306, 38501, 38867, 39208, 33304, 20024, 21547, 23736, 24012, 29609, 30284, 30524, 23721, 32747, 36107, 38593, 38929, 38996, 39e3, 20225, 20238, 21361, 21916, 22120, 22522, 22855, 23305, 23492, 23696, 24076, 24190, 24524, 25582, 26426, 26071, 26082, 26399, 26827, 26820, 27231, 24112, 27589, 27671, 27773, 30079, 31048, 23395, 31232, 32e3, 24509, 35215, 35352, 36020, 36215, 36556, 36637, 39138, 39438, 39740, 20096, 20605, 20736, 22931, 23452, 25135, 25216, 25836, 27450, 29344, 30097, 31047, 32681, 34811, 35516, 35696, 25516, 33738, 38816, 21513, 21507, 21931, 26708, 27224, 35440, 30759, 26485, 40653, 21364, 23458, 33050, 34384, 36870, 19992, 20037, 20167, 20241, 21450, 21560, 23470, 24339, 24613, 25937, 26429, 27714, 27762, 27875, 28792, 29699, 31350, 31406, 31496, 32026, 31998, 32102, 26087, 29275, 21435, 23621, 24040, 25298, 25312, 25369, 28192, 34394, 35377, 36317, 37624, 28417, 31142, 39770, 20136, 20139, 20140, 20379, 20384, 20689, 20807, 31478, 20849, 20982, 21332, 21281, 21375, 21483, 21932, 22659, 23777, 24375, 24394, 24623, 24656, 24685, 25375, 25945, 27211, 27841, 29378, 29421, 30703, 33016, 33029, 33288, 34126, 37111, 37857, 38911, 39255, 39514, 20208, 20957, 23597, 26241, 26989, 23616, 26354, 26997, 29577, 26704, 31873, 20677, 21220, 22343, 24062, 37670, 26020, 27427, 27453, 29748, 31105, 31165, 31563, 32202, 33465, 33740, 34943, 35167, 35641, 36817, 37329, 21535, 37504, 20061, 20534, 21477, 21306, 29399, 29590, 30697, 33510, 36527, 39366, 39368, 39378, 20855, 24858, 34398, 21936, 31354, 20598, 23507, 36935, 38533, 20018, 27355, 37351, 23633, 23624, 25496, 31391, 27795, 38772, 36705, 31402, 29066, 38536, 31874, 26647, 32368, 26705, 37740, 21234, 21531, 34219, 35347, 32676, 36557, 37089, 21350, 34952, 31041, 20418, 20670, 21009, 20804, 21843, 22317, 29674, 22411, 22865, 24418, 24452, 24693, 24950, 24935, 25001, 25522, 25658, 25964, 26223, 26690, 28179, 30054, 31293, 31995, 32076, 32153, 32331, 32619, 33550, 33610, 34509, 35336, 35427, 35686, 36605, 38938, 40335, 33464, 36814, 39912, 21127, 25119, 25731, 28608, 38553, 26689, 20625, 27424, 27770, 28500, 31348, 32080, 34880, 35363, 26376, 20214, 20537, 20518, 20581, 20860, 21048, 21091, 21927, 22287, 22533, 23244, 24314, 25010, 25080, 25331, 25458, 26908, 27177, 29309, 29356, 29486, 30740, 30831, 32121, 30476, 32937, 35211, 35609, 36066, 36562, 36963, 37749, 38522, 38997, 39443, 40568, 20803, 21407, 21427, 24187, 24358, 28187, 28304, 29572, 29694, 32067, 33335, 35328, 35578, 38480, 20046, 20491, 21476, 21628, 22266, 22993, 23396, 24049, 24235, 24359, 25144, 25925, 26543, 28246, 29392, 31946, 34996, 32929, 32993, 33776, 34382, 35463, 36328, 37431, 38599, 39015, 40723, 20116, 20114, 20237, 21320, 21577, 21566, 23087, 24460, 24481, 24735, 26791, 27278, 29786, 30849, 35486, 35492, 35703, 37264, 20062, 39881, 20132, 20348, 20399, 20505, 20502, 20809, 20844, 21151, 21177, 21246, 21402, 21475, 21521, 21518, 21897, 22353, 22434, 22909, 23380, 23389, 23439, 24037, 24039, 24055, 24184, 24195, 24218, 24247, 24344, 24658, 24908, 25239, 25304, 25511, 25915, 26114, 26179, 26356, 26477, 26657, 26775, 27083, 27743, 27946, 28009, 28207, 28317, 30002, 30343, 30828, 31295, 31968, 32005, 32024, 32094, 32177, 32789, 32771, 32943, 32945, 33108, 33167, 33322, 33618, 34892, 34913, 35611, 36002, 36092, 37066, 37237, 37489, 30783, 37628, 38308, 38477, 38917, 39321, 39640, 40251, 21083, 21163, 21495, 21512, 22741, 25335, 28640, 35946, 36703, 40633, 20811, 21051, 21578, 22269, 31296, 37239, 40288, 40658, 29508, 28425, 33136, 29969, 24573, 24794, 39592, 29403, 36796, 27492, 38915, 20170, 22256, 22372, 22718, 23130, 24680, 25031, 26127, 26118, 26681, 26801, 28151, 30165, 32058, 33390, 39746, 20123, 20304, 21449, 21766, 23919, 24038, 24046, 26619, 27801, 29811, 30722, 35408, 37782, 35039, 22352, 24231, 25387, 20661, 20652, 20877, 26368, 21705, 22622, 22971, 23472, 24425, 25165, 25505, 26685, 27507, 28168, 28797, 37319, 29312, 30741, 30758, 31085, 25998, 32048, 33756, 35009, 36617, 38555, 21092, 22312, 26448, 32618, 36001, 20916, 22338, 38442, 22586, 27018, 32948, 21682, 23822, 22524, 30869, 40442, 20316, 21066, 21643, 25662, 26152, 26388, 26613, 31364, 31574, 32034, 37679, 26716, 39853, 31545, 21273, 20874, 21047, 23519, 25334, 25774, 25830, 26413, 27578, 34217, 38609, 30352, 39894, 25420, 37638, 39851, 30399, 26194, 19977, 20632, 21442, 23665, 24808, 25746, 25955, 26719, 29158, 29642, 29987, 31639, 32386, 34453, 35715, 36059, 37240, 39184, 26028, 26283, 27531, 20181, 20180, 20282, 20351, 21050, 21496, 21490, 21987, 22235, 22763, 22987, 22985, 23039, 23376, 23629, 24066, 24107, 24535, 24605, 25351, 25903, 23388, 26031, 26045, 26088, 26525, 27490, 27515, 27663, 29509, 31049, 31169, 31992, 32025, 32043, 32930, 33026, 33267, 35222, 35422, 35433, 35430, 35468, 35566, 36039, 36060, 38604, 39164, 27503, 20107, 20284, 20365, 20816, 23383, 23546, 24904, 25345, 26178, 27425, 28363, 27835, 29246, 29885, 30164, 30913, 31034, 32780, 32819, 33258, 33940, 36766, 27728, 40575, 24335, 35672, 40235, 31482, 36600, 23437, 38635, 19971, 21489, 22519, 22833, 23241, 23460, 24713, 28287, 28422, 30142, 36074, 23455, 34048, 31712, 20594, 26612, 33437, 23649, 34122, 32286, 33294, 20889, 23556, 25448, 36198, 26012, 29038, 31038, 32023, 32773, 35613, 36554, 36974, 34503, 37034, 20511, 21242, 23610, 26451, 28796, 29237, 37196, 37320, 37675, 33509, 23490, 24369, 24825, 20027, 21462, 23432, 25163, 26417, 27530, 29417, 29664, 31278, 33131, 36259, 37202, 39318, 20754, 21463, 21610, 23551, 25480, 27193, 32172, 38656, 22234, 21454, 21608, 23447, 23601, 24030, 20462, 24833, 25342, 27954, 31168, 31179, 32066, 32333, 32722, 33261, 33311, 33936, 34886, 35186, 35728, 36468, 36655, 36913, 37195, 37228, 38598, 37276, 20160, 20303, 20805, 21313, 24467, 25102, 26580, 27713, 28171, 29539, 32294, 37325, 37507, 21460, 22809, 23487, 28113, 31069, 32302, 31899, 22654, 29087, 20986, 34899, 36848, 20426, 23803, 26149, 30636, 31459, 33308, 39423, 20934, 24490, 26092, 26991, 27529, 28147, 28310, 28516, 30462, 32020, 24033, 36981, 37255, 38918, 20966, 21021, 25152, 26257, 26329, 28186, 24246, 32210, 32626, 26360, 34223, 34295, 35576, 21161, 21465, 22899, 24207, 24464, 24661, 37604, 38500, 20663, 20767, 21213, 21280, 21319, 21484, 21736, 21830, 21809, 22039, 22888, 22974, 23100, 23477, 23558, 23567, 23569, 23578, 24196, 24202, 24288, 24432, 25215, 25220, 25307, 25484, 25463, 26119, 26124, 26157, 26230, 26494, 26786, 27167, 27189, 27836, 28040, 28169, 28248, 28988, 28966, 29031, 30151, 30465, 30813, 30977, 31077, 31216, 31456, 31505, 31911, 32057, 32918, 33750, 33931, 34121, 34909, 35059, 35359, 35388, 35412, 35443, 35937, 36062, 37284, 37478, 37758, 37912, 38556, 38808, 19978, 19976, 19998, 20055, 20887, 21104, 22478, 22580, 22732, 23330, 24120, 24773, 25854, 26465, 26454, 27972, 29366, 30067, 31331, 33976, 35698, 37304, 37664, 22065, 22516, 39166, 25325, 26893, 27542, 29165, 32340, 32887, 33394, 35302, 39135, 34645, 36785, 23611, 20280, 20449, 20405, 21767, 23072, 23517, 23529, 24515, 24910, 25391, 26032, 26187, 26862, 27035, 28024, 28145, 30003, 30137, 30495, 31070, 31206, 32051, 33251, 33455, 34218, 35242, 35386, 36523, 36763, 36914, 37341, 38663, 20154, 20161, 20995, 22645, 22764, 23563, 29978, 23613, 33102, 35338, 36805, 38499, 38765, 31525, 35535, 38920, 37218, 22259, 21416, 36887, 21561, 22402, 24101, 25512, 27700, 28810, 30561, 31883, 32736, 34928, 36930, 37204, 37648, 37656, 38543, 29790, 39620, 23815, 23913, 25968, 26530, 36264, 38619, 25454, 26441, 26905, 33733, 38935, 38592, 35070, 28548, 25722, 23544, 19990, 28716, 30045, 26159, 20932, 21046, 21218, 22995, 24449, 24615, 25104, 25919, 25972, 26143, 26228, 26866, 26646, 27491, 28165, 29298, 29983, 30427, 31934, 32854, 22768, 35069, 35199, 35488, 35475, 35531, 36893, 37266, 38738, 38745, 25993, 31246, 33030, 38587, 24109, 24796, 25114, 26021, 26132, 26512, 30707, 31309, 31821, 32318, 33034, 36012, 36196, 36321, 36447, 30889, 20999, 25305, 25509, 25666, 25240, 35373, 31363, 31680, 35500, 38634, 32118, 33292, 34633, 20185, 20808, 21315, 21344, 23459, 23554, 23574, 24029, 25126, 25159, 25776, 26643, 26676, 27849, 27973, 27927, 26579, 28508, 29006, 29053, 26059, 31359, 31661, 32218, 32330, 32680, 33146, 33307, 33337, 34214, 35438, 36046, 36341, 36984, 36983, 37549, 37521, 38275, 39854, 21069, 21892, 28472, 28982, 20840, 31109, 32341, 33203, 31950, 22092, 22609, 23720, 25514, 26366, 26365, 26970, 29401, 30095, 30094, 30990, 31062, 31199, 31895, 32032, 32068, 34311, 35380, 38459, 36961, 40736, 20711, 21109, 21452, 21474, 20489, 21930, 22766, 22863, 29245, 23435, 23652, 21277, 24803, 24819, 25436, 25475, 25407, 25531, 25805, 26089, 26361, 24035, 27085, 27133, 28437, 29157, 20105, 30185, 30456, 31379, 31967, 32207, 32156, 32865, 33609, 33624, 33900, 33980, 34299, 35013, 36208, 36865, 36973, 37783, 38684, 39442, 20687, 22679, 24974, 33235, 34101, 36104, 36896, 20419, 20596, 21063, 21363, 24687, 25417, 26463, 28204, 36275, 36895, 20439, 23646, 36042, 26063, 32154, 21330, 34966, 20854, 25539, 23384, 23403, 23562, 25613, 26449, 36956, 20182, 22810, 22826, 27760, 35409, 21822, 22549, 22949, 24816, 25171, 26561, 33333, 26965, 38464, 39364, 39464, 20307, 22534, 23550, 32784, 23729, 24111, 24453, 24608, 24907, 25140, 26367, 27888, 28382, 32974, 33151, 33492, 34955, 36024, 36864, 36910, 38538, 40667, 39899, 20195, 21488, 22823, 31532, 37261, 38988, 40441, 28381, 28711, 21331, 21828, 23429, 25176, 25246, 25299, 27810, 28655, 29730, 35351, 37944, 28609, 35582, 33592, 20967, 34552, 21482, 21481, 20294, 36948, 36784, 22890, 33073, 24061, 31466, 36799, 26842, 35895, 29432, 40008, 27197, 35504, 20025, 21336, 22022, 22374, 25285, 25506, 26086, 27470, 28129, 28251, 28845, 30701, 31471, 31658, 32187, 32829, 32966, 34507, 35477, 37723, 22243, 22727, 24382, 26029, 26262, 27264, 27573, 30007, 35527, 20516, 30693, 22320, 24347, 24677, 26234, 27744, 30196, 31258, 32622, 33268, 34584, 36933, 39347, 31689, 30044, 31481, 31569, 33988, 36880, 31209, 31378, 33590, 23265, 30528, 20013, 20210, 23449, 24544, 25277, 26172, 26609, 27880, 34411, 34935, 35387, 37198, 37619, 39376, 27159, 28710, 29482, 33511, 33879, 36015, 19969, 20806, 20939, 21899, 23541, 24086, 24115, 24193, 24340, 24373, 24427, 24500, 25074, 25361, 26274, 26397, 28526, 29266, 30010, 30522, 32884, 33081, 33144, 34678, 35519, 35548, 36229, 36339, 37530, 38263, 38914, 40165, 21189, 25431, 30452, 26389, 27784, 29645, 36035, 37806, 38515, 27941, 22684, 26894, 27084, 36861, 37786, 30171, 36890, 22618, 26626, 25524, 27131, 20291, 28460, 26584, 36795, 34086, 32180, 37716, 26943, 28528, 22378, 22775, 23340, 32044, 29226, 21514, 37347, 40372, 20141, 20302, 20572, 20597, 21059, 35998, 21576, 22564, 23450, 24093, 24213, 24237, 24311, 24351, 24716, 25269, 25402, 25552, 26799, 27712, 30855, 31118, 31243, 32224, 33351, 35330, 35558, 36420, 36883, 37048, 37165, 37336, 40718, 27877, 25688, 25826, 25973, 28404, 30340, 31515, 36969, 37841, 28346, 21746, 24505, 25764, 36685, 36845, 37444, 20856, 22635, 22825, 23637, 24215, 28155, 32399, 29980, 36028, 36578, 39003, 28857, 20253, 27583, 28593, 3e4, 38651, 20814, 21520, 22581, 22615, 22956, 23648, 24466, 26007, 26460, 28193, 30331, 33759, 36077, 36884, 37117, 37709, 30757, 30778, 21162, 24230, 22303, 22900, 24594, 20498, 20826, 20908, 20941, 20992, 21776, 22612, 22616, 22871, 23445, 23798, 23947, 24764, 25237, 25645, 26481, 26691, 26812, 26847, 30423, 28120, 28271, 28059, 28783, 29128, 24403, 30168, 31095, 31561, 31572, 31570, 31958, 32113, 21040, 33891, 34153, 34276, 35342, 35588, 35910, 36367, 36867, 36879, 37913, 38518, 38957, 39472, 38360, 20685, 21205, 21516, 22530, 23566, 24999, 25758, 27934, 30643, 31461, 33012, 33796, 36947, 37509, 23776, 40199, 21311, 24471, 24499, 28060, 29305, 30563, 31167, 31716, 27602, 29420, 35501, 26627, 27233, 20984, 31361, 26932, 23626, 40182, 33515, 23493, 37193, 28702, 22136, 23663, 24775, 25958, 27788, 35930, 36929, 38931, 21585, 26311, 37389, 22856, 37027, 20869, 20045, 20970, 34201, 35598, 28760, 25466, 37707, 26978, 39348, 32260, 30071, 21335, 26976, 36575, 38627, 27741, 20108, 23612, 24336, 36841, 21250, 36049, 32905, 34425, 24319, 26085, 20083, 20837, 22914, 23615, 38894, 20219, 22922, 24525, 35469, 28641, 31152, 31074, 23527, 33905, 29483, 29105, 24180, 24565, 25467, 25754, 29123, 31896, 20035, 24316, 20043, 22492, 22178, 24745, 28611, 32013, 33021, 33075, 33215, 36786, 35223, 34468, 24052, 25226, 25773, 35207, 26487, 27874, 27966, 29750, 30772, 23110, 32629, 33453, 39340, 20467, 24259, 25309, 25490, 25943, 26479, 30403, 29260, 32972, 32954, 36649, 37197, 20493, 22521, 23186, 26757, 26995, 29028, 29437, 36023, 22770, 36064, 38506, 36889, 34687, 31204, 30695, 33833, 20271, 21093, 21338, 25293, 26575, 27850, 30333, 31636, 31893, 33334, 34180, 36843, 26333, 28448, 29190, 32283, 33707, 39361, 40614, 20989, 31665, 30834, 31672, 32903, 31560, 27368, 24161, 32908, 30033, 30048, 20843, 37474, 28300, 30330, 37271, 39658, 20240, 32624, 25244, 31567, 38309, 40169, 22138, 22617, 34532, 38588, 20276, 21028, 21322, 21453, 21467, 24070, 25644, 26001, 26495, 27710, 27726, 29256, 29359, 29677, 30036, 32321, 33324, 34281, 36009, 31684, 37318, 29033, 38930, 39151, 25405, 26217, 30058, 30436, 30928, 34115, 34542, 21290, 21329, 21542, 22915, 24199, 24444, 24754, 25161, 25209, 25259, 26e3, 27604, 27852, 30130, 30382, 30865, 31192, 32203, 32631, 32933, 34987, 35513, 36027, 36991, 38750, 39131, 27147, 31800, 20633, 23614, 24494, 26503, 27608, 29749, 30473, 32654, 40763, 26570, 31255, 21305, 30091, 39661, 24422, 33181, 33777, 32920, 24380, 24517, 30050, 31558, 36924, 26727, 23019, 23195, 32016, 30334, 35628, 20469, 24426, 27161, 27703, 28418, 29922, 31080, 34920, 35413, 35961, 24287, 25551, 30149, 31186, 33495, 37672, 37618, 33948, 34541, 39981, 21697, 24428, 25996, 27996, 28693, 36007, 36051, 38971, 25935, 29942, 19981, 20184, 22496, 22827, 23142, 23500, 20904, 24067, 24220, 24598, 25206, 25975, 26023, 26222, 28014, 29238, 31526, 33104, 33178, 33433, 35676, 36e3, 36070, 36212, 38428, 38468, 20398, 25771, 27494, 33310, 33889, 34154, 37096, 23553, 26963, 39080, 33914, 34135, 20239, 21103, 24489, 24133, 26381, 31119, 33145, 35079, 35206, 28149, 24343, 25173, 27832, 20175, 29289, 39826, 20998, 21563, 22132, 22707, 24996, 25198, 28954, 22894, 31881, 31966, 32027, 38640, 25991, 32862, 19993, 20341, 20853, 22592, 24163, 24179, 24330, 26564, 20006, 34109, 38281, 38491, 31859, 38913, 20731, 22721, 30294, 30887, 21029, 30629, 34065, 31622, 20559, 22793, 29255, 31687, 32232, 36794, 36820, 36941, 20415, 21193, 23081, 24321, 38829, 20445, 33303, 37610, 22275, 25429, 27497, 29995, 35036, 36628, 31298, 21215, 22675, 24917, 25098, 26286, 27597, 31807, 33769, 20515, 20472, 21253, 21574, 22577, 22857, 23453, 23792, 23791, 23849, 24214, 25265, 25447, 25918, 26041, 26379, 27861, 27873, 28921, 30770, 32299, 32990, 33459, 33804, 34028, 34562, 35090, 35370, 35914, 37030, 37586, 39165, 40179, 40300, 20047, 20129, 20621, 21078, 22346, 22952, 24125, 24536, 24537, 25151, 26292, 26395, 26576, 26834, 20882, 32033, 32938, 33192, 35584, 35980, 36031, 37502, 38450, 21536, 38956, 21271, 20693, 21340, 22696, 25778, 26420, 29287, 30566, 31302, 37350, 21187, 27809, 27526, 22528, 24140, 22868, 26412, 32763, 20961, 30406, 25705, 30952, 39764, 40635, 22475, 22969, 26151, 26522, 27598, 21737, 27097, 24149, 33180, 26517, 39850, 26622, 40018, 26717, 20134, 20451, 21448, 25273, 26411, 27819, 36804, 20397, 32365, 40639, 19975, 24930, 28288, 28459, 34067, 21619, 26410, 39749, 24051, 31637, 23724, 23494, 34588, 28234, 34001, 31252, 33032, 22937, 31885, 27665, 30496, 21209, 22818, 28961, 29279, 30683, 38695, 40289, 26891, 23167, 23064, 20901, 21517, 21629, 26126, 30431, 36855, 37528, 40180, 23018, 29277, 28357, 20813, 26825, 32191, 32236, 38754, 40634, 25720, 27169, 33538, 22916, 23391, 27611, 29467, 30450, 32178, 32791, 33945, 20786, 26408, 40665, 30446, 26466, 21247, 39173, 23588, 25147, 31870, 36016, 21839, 24758, 32011, 38272, 21249, 20063, 20918, 22812, 29242, 32822, 37326, 24357, 30690, 21380, 24441, 32004, 34220, 35379, 36493, 38742, 26611, 34222, 37971, 24841, 24840, 27833, 30290, 35565, 36664, 21807, 20305, 20778, 21191, 21451, 23461, 24189, 24736, 24962, 25558, 26377, 26586, 28263, 28044, 29494, 29495, 30001, 31056, 35029, 35480, 36938, 37009, 37109, 38596, 34701, 22805, 20104, 20313, 19982, 35465, 36671, 38928, 20653, 24188, 22934, 23481, 24248, 25562, 25594, 25793, 26332, 26954, 27096, 27915, 28342, 29076, 29992, 31407, 32650, 32768, 33865, 33993, 35201, 35617, 36362, 36965, 38525, 39178, 24958, 25233, 27442, 27779, 28020, 32716, 32764, 28096, 32645, 34746, 35064, 26469, 33713, 38972, 38647, 27931, 32097, 33853, 37226, 20081, 21365, 23888, 27396, 28651, 34253, 34349, 35239, 21033, 21519, 23653, 26446, 26792, 29702, 29827, 30178, 35023, 35041, 37324, 38626, 38520, 24459, 29575, 31435, 33870, 25504, 30053, 21129, 27969, 28316, 29705, 30041, 30827, 31890, 38534, 31452, 40845, 20406, 24942, 26053, 34396, 20102, 20142, 20698, 20001, 20940, 23534, 26009, 26753, 28092, 29471, 30274, 30637, 31260, 31975, 33391, 35538, 36988, 37327, 38517, 38936, 21147, 32209, 20523, 21400, 26519, 28107, 29136, 29747, 33256, 36650, 38563, 40023, 40607, 29792, 22593, 28057, 32047, 39006, 20196, 20278, 20363, 20919, 21169, 23994, 24604, 29618, 31036, 33491, 37428, 38583, 38646, 38666, 40599, 40802, 26278, 27508, 21015, 21155, 28872, 35010, 24265, 24651, 24976, 28451, 29001, 31806, 32244, 32879, 34030, 36899, 37676, 21570, 39791, 27347, 28809, 36034, 36335, 38706, 21172, 23105, 24266, 24324, 26391, 27004, 27028, 28010, 28431, 29282, 29436, 31725, 32769, 32894, 34635, 37070, 20845, 40595, 31108, 32907, 37682, 35542, 20525, 21644, 35441, 27498, 36036, 33031, 24785, 26528, 40434, 20121, 20120, 39952, 35435, 34241, 34152, 26880, 28286, 30871, 33109, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 24332, 19984, 19989, 20010, 20017, 20022, 20028, 20031, 20034, 20054, 20056, 20098, 20101, 35947, 20106, 33298, 24333, 20110, 20126, 20127, 20128, 20130, 20144, 20147, 20150, 20174, 20173, 20164, 20166, 20162, 20183, 20190, 20205, 20191, 20215, 20233, 20314, 20272, 20315, 20317, 20311, 20295, 20342, 20360, 20367, 20376, 20347, 20329, 20336, 20369, 20335, 20358, 20374, 20760, 20436, 20447, 20430, 20440, 20443, 20433, 20442, 20432, 20452, 20453, 20506, 20520, 20500, 20522, 20517, 20485, 20252, 20470, 20513, 20521, 20524, 20478, 20463, 20497, 20486, 20547, 20551, 26371, 20565, 20560, 20552, 20570, 20566, 20588, 20600, 20608, 20634, 20613, 20660, 20658, 20681, 20682, 20659, 20674, 20694, 20702, 20709, 20717, 20707, 20718, 20729, 20725, 20745, 20737, 20738, 20758, 20757, 20756, 20762, 20769, 20794, 20791, 20796, 20795, 20799, 20800, 20818, 20812, 20820, 20834, 31480, 20841, 20842, 20846, 20864, 20866, 22232, 20876, 20873, 20879, 20881, 20883, 20885, 20886, 20900, 20902, 20898, 20905, 20906, 20907, 20915, 20913, 20914, 20912, 20917, 20925, 20933, 20937, 20955, 20960, 34389, 20969, 20973, 20976, 20981, 20990, 20996, 21003, 21012, 21006, 21031, 21034, 21038, 21043, 21049, 21071, 21060, 21067, 21068, 21086, 21076, 21098, 21108, 21097, 21107, 21119, 21117, 21133, 21140, 21138, 21105, 21128, 21137, 36776, 36775, 21164, 21165, 21180, 21173, 21185, 21197, 21207, 21214, 21219, 21222, 39149, 21216, 21235, 21237, 21240, 21241, 21254, 21256, 30008, 21261, 21264, 21263, 21269, 21274, 21283, 21295, 21297, 21299, 21304, 21312, 21318, 21317, 19991, 21321, 21325, 20950, 21342, 21353, 21358, 22808, 21371, 21367, 21378, 21398, 21408, 21414, 21413, 21422, 21424, 21430, 21443, 31762, 38617, 21471, 26364, 29166, 21486, 21480, 21485, 21498, 21505, 21565, 21568, 21548, 21549, 21564, 21550, 21558, 21545, 21533, 21582, 21647, 21621, 21646, 21599, 21617, 21623, 21616, 21650, 21627, 21632, 21622, 21636, 21648, 21638, 21703, 21666, 21688, 21669, 21676, 21700, 21704, 21672, 21675, 21698, 21668, 21694, 21692, 21720, 21733, 21734, 21775, 21780, 21757, 21742, 21741, 21754, 21730, 21817, 21824, 21859, 21836, 21806, 21852, 21829, 21846, 21847, 21816, 21811, 21853, 21913, 21888, 21679, 21898, 21919, 21883, 21886, 21912, 21918, 21934, 21884, 21891, 21929, 21895, 21928, 21978, 21957, 21983, 21956, 21980, 21988, 21972, 22036, 22007, 22038, 22014, 22013, 22043, 22009, 22094, 22096, 29151, 22068, 22070, 22066, 22072, 22123, 22116, 22063, 22124, 22122, 22150, 22144, 22154, 22176, 22164, 22159, 22181, 22190, 22198, 22196, 22210, 22204, 22209, 22211, 22208, 22216, 22222, 22225, 22227, 22231, 22254, 22265, 22272, 22271, 22276, 22281, 22280, 22283, 22285, 22291, 22296, 22294, 21959, 22300, 22310, 22327, 22328, 22350, 22331, 22336, 22351, 22377, 22464, 22408, 22369, 22399, 22409, 22419, 22432, 22451, 22436, 22442, 22448, 22467, 22470, 22484, 22482, 22483, 22538, 22486, 22499, 22539, 22553, 22557, 22642, 22561, 22626, 22603, 22640, 27584, 22610, 22589, 22649, 22661, 22713, 22687, 22699, 22714, 22750, 22715, 22712, 22702, 22725, 22739, 22737, 22743, 22745, 22744, 22757, 22748, 22756, 22751, 22767, 22778, 22777, 22779, 22780, 22781, 22786, 22794, 22800, 22811, 26790, 22821, 22828, 22829, 22834, 22840, 22846, 31442, 22869, 22864, 22862, 22874, 22872, 22882, 22880, 22887, 22892, 22889, 22904, 22913, 22941, 20318, 20395, 22947, 22962, 22982, 23016, 23004, 22925, 23001, 23002, 23077, 23071, 23057, 23068, 23049, 23066, 23104, 23148, 23113, 23093, 23094, 23138, 23146, 23194, 23228, 23230, 23243, 23234, 23229, 23267, 23255, 23270, 23273, 23254, 23290, 23291, 23308, 23307, 23318, 23346, 23248, 23338, 23350, 23358, 23363, 23365, 23360, 23377, 23381, 23386, 23387, 23397, 23401, 23408, 23411, 23413, 23416, 25992, 23418, 23424, 23427, 23462, 23480, 23491, 23495, 23497, 23508, 23504, 23524, 23526, 23522, 23518, 23525, 23531, 23536, 23542, 23539, 23557, 23559, 23560, 23565, 23571, 23584, 23586, 23592, 23608, 23609, 23617, 23622, 23630, 23635, 23632, 23631, 23409, 23660, 23662, 20066, 23670, 23673, 23692, 23697, 23700, 22939, 23723, 23739, 23734, 23740, 23735, 23749, 23742, 23751, 23769, 23785, 23805, 23802, 23789, 23948, 23786, 23819, 23829, 23831, 23900, 23839, 23835, 23825, 23828, 23842, 23834, 23833, 23832, 23884, 23890, 23886, 23883, 23916, 23923, 23926, 23943, 23940, 23938, 23970, 23965, 23980, 23982, 23997, 23952, 23991, 23996, 24009, 24013, 24019, 24018, 24022, 24027, 24043, 24050, 24053, 24075, 24090, 24089, 24081, 24091, 24118, 24119, 24132, 24131, 24128, 24142, 24151, 24148, 24159, 24162, 24164, 24135, 24181, 24182, 24186, 40636, 24191, 24224, 24257, 24258, 24264, 24272, 24271, 24278, 24291, 24285, 24282, 24283, 24290, 24289, 24296, 24297, 24300, 24305, 24307, 24304, 24308, 24312, 24318, 24323, 24329, 24413, 24412, 24331, 24337, 24342, 24361, 24365, 24376, 24385, 24392, 24396, 24398, 24367, 24401, 24406, 24407, 24409, 24417, 24429, 24435, 24439, 24451, 24450, 24447, 24458, 24456, 24465, 24455, 24478, 24473, 24472, 24480, 24488, 24493, 24508, 24534, 24571, 24548, 24568, 24561, 24541, 24755, 24575, 24609, 24672, 24601, 24592, 24617, 24590, 24625, 24603, 24597, 24619, 24614, 24591, 24634, 24666, 24641, 24682, 24695, 24671, 24650, 24646, 24653, 24675, 24643, 24676, 24642, 24684, 24683, 24665, 24705, 24717, 24807, 24707, 24730, 24708, 24731, 24726, 24727, 24722, 24743, 24715, 24801, 24760, 24800, 24787, 24756, 24560, 24765, 24774, 24757, 24792, 24909, 24853, 24838, 24822, 24823, 24832, 24820, 24826, 24835, 24865, 24827, 24817, 24845, 24846, 24903, 24894, 24872, 24871, 24906, 24895, 24892, 24876, 24884, 24893, 24898, 24900, 24947, 24951, 24920, 24921, 24922, 24939, 24948, 24943, 24933, 24945, 24927, 24925, 24915, 24949, 24985, 24982, 24967, 25004, 24980, 24986, 24970, 24977, 25003, 25006, 25036, 25034, 25033, 25079, 25032, 25027, 25030, 25018, 25035, 32633, 25037, 25062, 25059, 25078, 25082, 25076, 25087, 25085, 25084, 25086, 25088, 25096, 25097, 25101, 25100, 25108, 25115, 25118, 25121, 25130, 25134, 25136, 25138, 25139, 25153, 25166, 25182, 25187, 25179, 25184, 25192, 25212, 25218, 25225, 25214, 25234, 25235, 25238, 25300, 25219, 25236, 25303, 25297, 25275, 25295, 25343, 25286, 25812, 25288, 25308, 25292, 25290, 25282, 25287, 25243, 25289, 25356, 25326, 25329, 25383, 25346, 25352, 25327, 25333, 25424, 25406, 25421, 25628, 25423, 25494, 25486, 25472, 25515, 25462, 25507, 25487, 25481, 25503, 25525, 25451, 25449, 25534, 25577, 25536, 25542, 25571, 25545, 25554, 25590, 25540, 25622, 25652, 25606, 25619, 25638, 25654, 25885, 25623, 25640, 25615, 25703, 25711, 25718, 25678, 25898, 25749, 25747, 25765, 25769, 25736, 25788, 25818, 25810, 25797, 25799, 25787, 25816, 25794, 25841, 25831, 33289, 25824, 25825, 25260, 25827, 25839, 25900, 25846, 25844, 25842, 25850, 25856, 25853, 25880, 25884, 25861, 25892, 25891, 25899, 25908, 25909, 25911, 25910, 25912, 30027, 25928, 25942, 25941, 25933, 25944, 25950, 25949, 25970, 25976, 25986, 25987, 35722, 26011, 26015, 26027, 26039, 26051, 26054, 26049, 26052, 26060, 26066, 26075, 26073, 26080, 26081, 26097, 26482, 26122, 26115, 26107, 26483, 26165, 26166, 26164, 26140, 26191, 26180, 26185, 26177, 26206, 26205, 26212, 26215, 26216, 26207, 26210, 26224, 26243, 26248, 26254, 26249, 26244, 26264, 26269, 26305, 26297, 26313, 26302, 26300, 26308, 26296, 26326, 26330, 26336, 26175, 26342, 26345, 26352, 26357, 26359, 26383, 26390, 26398, 26406, 26407, 38712, 26414, 26431, 26422, 26433, 26424, 26423, 26438, 26462, 26464, 26457, 26467, 26468, 26505, 26480, 26537, 26492, 26474, 26508, 26507, 26534, 26529, 26501, 26551, 26607, 26548, 26604, 26547, 26601, 26552, 26596, 26590, 26589, 26594, 26606, 26553, 26574, 26566, 26599, 27292, 26654, 26694, 26665, 26688, 26701, 26674, 26702, 26803, 26667, 26713, 26723, 26743, 26751, 26783, 26767, 26797, 26772, 26781, 26779, 26755, 27310, 26809, 26740, 26805, 26784, 26810, 26895, 26765, 26750, 26881, 26826, 26888, 26840, 26914, 26918, 26849, 26892, 26829, 26836, 26855, 26837, 26934, 26898, 26884, 26839, 26851, 26917, 26873, 26848, 26863, 26920, 26922, 26906, 26915, 26913, 26822, 27001, 26999, 26972, 27e3, 26987, 26964, 27006, 26990, 26937, 26996, 26941, 26969, 26928, 26977, 26974, 26973, 27009, 26986, 27058, 27054, 27088, 27071, 27073, 27091, 27070, 27086, 23528, 27082, 27101, 27067, 27075, 27047, 27182, 27025, 27040, 27036, 27029, 27060, 27102, 27112, 27138, 27163, 27135, 27402, 27129, 27122, 27111, 27141, 27057, 27166, 27117, 27156, 27115, 27146, 27154, 27329, 27171, 27155, 27204, 27148, 27250, 27190, 27256, 27207, 27234, 27225, 27238, 27208, 27192, 27170, 27280, 27277, 27296, 27268, 27298, 27299, 27287, 34327, 27323, 27331, 27330, 27320, 27315, 27308, 27358, 27345, 27359, 27306, 27354, 27370, 27387, 27397, 34326, 27386, 27410, 27414, 39729, 27423, 27448, 27447, 30428, 27449, 39150, 27463, 27459, 27465, 27472, 27481, 27476, 27483, 27487, 27489, 27512, 27513, 27519, 27520, 27524, 27523, 27533, 27544, 27541, 27550, 27556, 27562, 27563, 27567, 27570, 27569, 27571, 27575, 27580, 27590, 27595, 27603, 27615, 27628, 27627, 27635, 27631, 40638, 27656, 27667, 27668, 27675, 27684, 27683, 27742, 27733, 27746, 27754, 27778, 27789, 27802, 27777, 27803, 27774, 27752, 27763, 27794, 27792, 27844, 27889, 27859, 27837, 27863, 27845, 27869, 27822, 27825, 27838, 27834, 27867, 27887, 27865, 27882, 27935, 34893, 27958, 27947, 27965, 27960, 27929, 27957, 27955, 27922, 27916, 28003, 28051, 28004, 27994, 28025, 27993, 28046, 28053, 28644, 28037, 28153, 28181, 28170, 28085, 28103, 28134, 28088, 28102, 28140, 28126, 28108, 28136, 28114, 28101, 28154, 28121, 28132, 28117, 28138, 28142, 28205, 28270, 28206, 28185, 28274, 28255, 28222, 28195, 28267, 28203, 28278, 28237, 28191, 28227, 28218, 28238, 28196, 28415, 28189, 28216, 28290, 28330, 28312, 28361, 28343, 28371, 28349, 28335, 28356, 28338, 28372, 28373, 28303, 28325, 28354, 28319, 28481, 28433, 28748, 28396, 28408, 28414, 28479, 28402, 28465, 28399, 28466, 28364, 28478, 28435, 28407, 28550, 28538, 28536, 28545, 28544, 28527, 28507, 28659, 28525, 28546, 28540, 28504, 28558, 28561, 28610, 28518, 28595, 28579, 28577, 28580, 28601, 28614, 28586, 28639, 28629, 28652, 28628, 28632, 28657, 28654, 28635, 28681, 28683, 28666, 28689, 28673, 28687, 28670, 28699, 28698, 28532, 28701, 28696, 28703, 28720, 28734, 28722, 28753, 28771, 28825, 28818, 28847, 28913, 28844, 28856, 28851, 28846, 28895, 28875, 28893, 28889, 28937, 28925, 28956, 28953, 29029, 29013, 29064, 29030, 29026, 29004, 29014, 29036, 29071, 29179, 29060, 29077, 29096, 29100, 29143, 29113, 29118, 29138, 29129, 29140, 29134, 29152, 29164, 29159, 29173, 29180, 29177, 29183, 29197, 29200, 29211, 29224, 29229, 29228, 29232, 29234, 29243, 29244, 29247, 29248, 29254, 29259, 29272, 29300, 29310, 29314, 29313, 29319, 29330, 29334, 29346, 29351, 29369, 29362, 29379, 29382, 29380, 29390, 29394, 29410, 29408, 29409, 29433, 29431, 20495, 29463, 29450, 29468, 29462, 29469, 29492, 29487, 29481, 29477, 29502, 29518, 29519, 40664, 29527, 29546, 29544, 29552, 29560, 29557, 29563, 29562, 29640, 29619, 29646, 29627, 29632, 29669, 29678, 29662, 29858, 29701, 29807, 29733, 29688, 29746, 29754, 29781, 29759, 29791, 29785, 29761, 29788, 29801, 29808, 29795, 29802, 29814, 29822, 29835, 29854, 29863, 29898, 29903, 29908, 29681, 29920, 29923, 29927, 29929, 29934, 29938, 29936, 29937, 29944, 29943, 29956, 29955, 29957, 29964, 29966, 29965, 29973, 29971, 29982, 29990, 29996, 30012, 30020, 30029, 30026, 30025, 30043, 30022, 30042, 30057, 30052, 30055, 30059, 30061, 30072, 30070, 30086, 30087, 30068, 30090, 30089, 30082, 30100, 30106, 30109, 30117, 30115, 30146, 30131, 30147, 30133, 30141, 30136, 30140, 30129, 30157, 30154, 30162, 30169, 30179, 30174, 30206, 30207, 30204, 30209, 30192, 30202, 30194, 30195, 30219, 30221, 30217, 30239, 30247, 30240, 30241, 30242, 30244, 30260, 30256, 30267, 30279, 30280, 30278, 30300, 30296, 30305, 30306, 30312, 30313, 30314, 30311, 30316, 30320, 30322, 30326, 30328, 30332, 30336, 30339, 30344, 30347, 30350, 30358, 30355, 30361, 30362, 30384, 30388, 30392, 30393, 30394, 30402, 30413, 30422, 30418, 30430, 30433, 30437, 30439, 30442, 34351, 30459, 30472, 30471, 30468, 30505, 30500, 30494, 30501, 30502, 30491, 30519, 30520, 30535, 30554, 30568, 30571, 30555, 30565, 30591, 30590, 30585, 30606, 30603, 30609, 30624, 30622, 30640, 30646, 30649, 30655, 30652, 30653, 30651, 30663, 30669, 30679, 30682, 30684, 30691, 30702, 30716, 30732, 30738, 31014, 30752, 31018, 30789, 30862, 30836, 30854, 30844, 30874, 30860, 30883, 30901, 30890, 30895, 30929, 30918, 30923, 30932, 30910, 30908, 30917, 30922, 30956, 30951, 30938, 30973, 30964, 30983, 30994, 30993, 31001, 31020, 31019, 31040, 31072, 31063, 31071, 31066, 31061, 31059, 31098, 31103, 31114, 31133, 31143, 40779, 31146, 31150, 31155, 31161, 31162, 31177, 31189, 31207, 31212, 31201, 31203, 31240, 31245, 31256, 31257, 31264, 31263, 31104, 31281, 31291, 31294, 31287, 31299, 31319, 31305, 31329, 31330, 31337, 40861, 31344, 31353, 31357, 31368, 31383, 31381, 31384, 31382, 31401, 31432, 31408, 31414, 31429, 31428, 31423, 36995, 31431, 31434, 31437, 31439, 31445, 31443, 31449, 31450, 31453, 31457, 31458, 31462, 31469, 31472, 31490, 31503, 31498, 31494, 31539, 31512, 31513, 31518, 31541, 31528, 31542, 31568, 31610, 31492, 31565, 31499, 31564, 31557, 31605, 31589, 31604, 31591, 31600, 31601, 31596, 31598, 31645, 31640, 31647, 31629, 31644, 31642, 31627, 31634, 31631, 31581, 31641, 31691, 31681, 31692, 31695, 31668, 31686, 31709, 31721, 31761, 31764, 31718, 31717, 31840, 31744, 31751, 31763, 31731, 31735, 31767, 31757, 31734, 31779, 31783, 31786, 31775, 31799, 31787, 31805, 31820, 31811, 31828, 31823, 31808, 31824, 31832, 31839, 31844, 31830, 31845, 31852, 31861, 31875, 31888, 31908, 31917, 31906, 31915, 31905, 31912, 31923, 31922, 31921, 31918, 31929, 31933, 31936, 31941, 31938, 31960, 31954, 31964, 31970, 39739, 31983, 31986, 31988, 31990, 31994, 32006, 32002, 32028, 32021, 32010, 32069, 32075, 32046, 32050, 32063, 32053, 32070, 32115, 32086, 32078, 32114, 32104, 32110, 32079, 32099, 32147, 32137, 32091, 32143, 32125, 32155, 32186, 32174, 32163, 32181, 32199, 32189, 32171, 32317, 32162, 32175, 32220, 32184, 32159, 32176, 32216, 32221, 32228, 32222, 32251, 32242, 32225, 32261, 32266, 32291, 32289, 32274, 32305, 32287, 32265, 32267, 32290, 32326, 32358, 32315, 32309, 32313, 32323, 32311, 32306, 32314, 32359, 32349, 32342, 32350, 32345, 32346, 32377, 32362, 32361, 32380, 32379, 32387, 32213, 32381, 36782, 32383, 32392, 32393, 32396, 32402, 32400, 32403, 32404, 32406, 32398, 32411, 32412, 32568, 32570, 32581, 32588, 32589, 32590, 32592, 32593, 32597, 32596, 32600, 32607, 32608, 32616, 32617, 32615, 32632, 32642, 32646, 32643, 32648, 32647, 32652, 32660, 32670, 32669, 32666, 32675, 32687, 32690, 32697, 32686, 32694, 32696, 35697, 32709, 32710, 32714, 32725, 32724, 32737, 32742, 32745, 32755, 32761, 39132, 32774, 32772, 32779, 32786, 32792, 32793, 32796, 32801, 32808, 32831, 32827, 32842, 32838, 32850, 32856, 32858, 32863, 32866, 32872, 32883, 32882, 32880, 32886, 32889, 32893, 32895, 32900, 32902, 32901, 32923, 32915, 32922, 32941, 20880, 32940, 32987, 32997, 32985, 32989, 32964, 32986, 32982, 33033, 33007, 33009, 33051, 33065, 33059, 33071, 33099, 38539, 33094, 33086, 33107, 33105, 33020, 33137, 33134, 33125, 33126, 33140, 33155, 33160, 33162, 33152, 33154, 33184, 33173, 33188, 33187, 33119, 33171, 33193, 33200, 33205, 33214, 33208, 33213, 33216, 33218, 33210, 33225, 33229, 33233, 33241, 33240, 33224, 33242, 33247, 33248, 33255, 33274, 33275, 33278, 33281, 33282, 33285, 33287, 33290, 33293, 33296, 33302, 33321, 33323, 33336, 33331, 33344, 33369, 33368, 33373, 33370, 33375, 33380, 33378, 33384, 33386, 33387, 33326, 33393, 33399, 33400, 33406, 33421, 33426, 33451, 33439, 33467, 33452, 33505, 33507, 33503, 33490, 33524, 33523, 33530, 33683, 33539, 33531, 33529, 33502, 33542, 33500, 33545, 33497, 33589, 33588, 33558, 33586, 33585, 33600, 33593, 33616, 33605, 33583, 33579, 33559, 33560, 33669, 33690, 33706, 33695, 33698, 33686, 33571, 33678, 33671, 33674, 33660, 33717, 33651, 33653, 33696, 33673, 33704, 33780, 33811, 33771, 33742, 33789, 33795, 33752, 33803, 33729, 33783, 33799, 33760, 33778, 33805, 33826, 33824, 33725, 33848, 34054, 33787, 33901, 33834, 33852, 34138, 33924, 33911, 33899, 33965, 33902, 33922, 33897, 33862, 33836, 33903, 33913, 33845, 33994, 33890, 33977, 33983, 33951, 34009, 33997, 33979, 34010, 34e3, 33985, 33990, 34006, 33953, 34081, 34047, 34036, 34071, 34072, 34092, 34079, 34069, 34068, 34044, 34112, 34147, 34136, 34120, 34113, 34306, 34123, 34133, 34176, 34212, 34184, 34193, 34186, 34216, 34157, 34196, 34203, 34282, 34183, 34204, 34167, 34174, 34192, 34249, 34234, 34255, 34233, 34256, 34261, 34269, 34277, 34268, 34297, 34314, 34323, 34315, 34302, 34298, 34310, 34338, 34330, 34352, 34367, 34381, 20053, 34388, 34399, 34407, 34417, 34451, 34467, 34473, 34474, 34443, 34444, 34486, 34479, 34500, 34502, 34480, 34505, 34851, 34475, 34516, 34526, 34537, 34540, 34527, 34523, 34543, 34578, 34566, 34568, 34560, 34563, 34555, 34577, 34569, 34573, 34553, 34570, 34612, 34623, 34615, 34619, 34597, 34601, 34586, 34656, 34655, 34680, 34636, 34638, 34676, 34647, 34664, 34670, 34649, 34643, 34659, 34666, 34821, 34722, 34719, 34690, 34735, 34763, 34749, 34752, 34768, 38614, 34731, 34756, 34739, 34759, 34758, 34747, 34799, 34802, 34784, 34831, 34829, 34814, 34806, 34807, 34830, 34770, 34833, 34838, 34837, 34850, 34849, 34865, 34870, 34873, 34855, 34875, 34884, 34882, 34898, 34905, 34910, 34914, 34923, 34945, 34942, 34974, 34933, 34941, 34997, 34930, 34946, 34967, 34962, 34990, 34969, 34978, 34957, 34980, 34992, 35007, 34993, 35011, 35012, 35028, 35032, 35033, 35037, 35065, 35074, 35068, 35060, 35048, 35058, 35076, 35084, 35082, 35091, 35139, 35102, 35109, 35114, 35115, 35137, 35140, 35131, 35126, 35128, 35148, 35101, 35168, 35166, 35174, 35172, 35181, 35178, 35183, 35188, 35191, 35198, 35203, 35208, 35210, 35219, 35224, 35233, 35241, 35238, 35244, 35247, 35250, 35258, 35261, 35263, 35264, 35290, 35292, 35293, 35303, 35316, 35320, 35331, 35350, 35344, 35340, 35355, 35357, 35365, 35382, 35393, 35419, 35410, 35398, 35400, 35452, 35437, 35436, 35426, 35461, 35458, 35460, 35496, 35489, 35473, 35493, 35494, 35482, 35491, 35524, 35533, 35522, 35546, 35563, 35571, 35559, 35556, 35569, 35604, 35552, 35554, 35575, 35550, 35547, 35596, 35591, 35610, 35553, 35606, 35600, 35607, 35616, 35635, 38827, 35622, 35627, 35646, 35624, 35649, 35660, 35663, 35662, 35657, 35670, 35675, 35674, 35691, 35679, 35692, 35695, 35700, 35709, 35712, 35724, 35726, 35730, 35731, 35734, 35737, 35738, 35898, 35905, 35903, 35912, 35916, 35918, 35920, 35925, 35938, 35948, 35960, 35962, 35970, 35977, 35973, 35978, 35981, 35982, 35988, 35964, 35992, 25117, 36013, 36010, 36029, 36018, 36019, 36014, 36022, 36040, 36033, 36068, 36067, 36058, 36093, 36090, 36091, 36100, 36101, 36106, 36103, 36111, 36109, 36112, 40782, 36115, 36045, 36116, 36118, 36199, 36205, 36209, 36211, 36225, 36249, 36290, 36286, 36282, 36303, 36314, 36310, 36300, 36315, 36299, 36330, 36331, 36319, 36323, 36348, 36360, 36361, 36351, 36381, 36382, 36368, 36383, 36418, 36405, 36400, 36404, 36426, 36423, 36425, 36428, 36432, 36424, 36441, 36452, 36448, 36394, 36451, 36437, 36470, 36466, 36476, 36481, 36487, 36485, 36484, 36491, 36490, 36499, 36497, 36500, 36505, 36522, 36513, 36524, 36528, 36550, 36529, 36542, 36549, 36552, 36555, 36571, 36579, 36604, 36603, 36587, 36606, 36618, 36613, 36629, 36626, 36633, 36627, 36636, 36639, 36635, 36620, 36646, 36659, 36667, 36665, 36677, 36674, 36670, 36684, 36681, 36678, 36686, 36695, 36700, 36706, 36707, 36708, 36764, 36767, 36771, 36781, 36783, 36791, 36826, 36837, 36834, 36842, 36847, 36999, 36852, 36869, 36857, 36858, 36881, 36885, 36897, 36877, 36894, 36886, 36875, 36903, 36918, 36917, 36921, 36856, 36943, 36944, 36945, 36946, 36878, 36937, 36926, 36950, 36952, 36958, 36968, 36975, 36982, 38568, 36978, 36994, 36989, 36993, 36992, 37002, 37001, 37007, 37032, 37039, 37041, 37045, 37090, 37092, 25160, 37083, 37122, 37138, 37145, 37170, 37168, 37194, 37206, 37208, 37219, 37221, 37225, 37235, 37234, 37259, 37257, 37250, 37282, 37291, 37295, 37290, 37301, 37300, 37306, 37312, 37313, 37321, 37323, 37328, 37334, 37343, 37345, 37339, 37372, 37365, 37366, 37406, 37375, 37396, 37420, 37397, 37393, 37470, 37463, 37445, 37449, 37476, 37448, 37525, 37439, 37451, 37456, 37532, 37526, 37523, 37531, 37466, 37583, 37561, 37559, 37609, 37647, 37626, 37700, 37678, 37657, 37666, 37658, 37667, 37690, 37685, 37691, 37724, 37728, 37756, 37742, 37718, 37808, 37804, 37805, 37780, 37817, 37846, 37847, 37864, 37861, 37848, 37827, 37853, 37840, 37832, 37860, 37914, 37908, 37907, 37891, 37895, 37904, 37942, 37931, 37941, 37921, 37946, 37953, 37970, 37956, 37979, 37984, 37986, 37982, 37994, 37417, 38e3, 38005, 38007, 38013, 37978, 38012, 38014, 38017, 38015, 38274, 38279, 38282, 38292, 38294, 38296, 38297, 38304, 38312, 38311, 38317, 38332, 38331, 38329, 38334, 38346, 28662, 38339, 38349, 38348, 38357, 38356, 38358, 38364, 38369, 38373, 38370, 38433, 38440, 38446, 38447, 38466, 38476, 38479, 38475, 38519, 38492, 38494, 38493, 38495, 38502, 38514, 38508, 38541, 38552, 38549, 38551, 38570, 38567, 38577, 38578, 38576, 38580, 38582, 38584, 38585, 38606, 38603, 38601, 38605, 35149, 38620, 38669, 38613, 38649, 38660, 38662, 38664, 38675, 38670, 38673, 38671, 38678, 38681, 38692, 38698, 38704, 38713, 38717, 38718, 38724, 38726, 38728, 38722, 38729, 38748, 38752, 38756, 38758, 38760, 21202, 38763, 38769, 38777, 38789, 38780, 38785, 38778, 38790, 38795, 38799, 38800, 38812, 38824, 38822, 38819, 38835, 38836, 38851, 38854, 38856, 38859, 38876, 38893, 40783, 38898, 31455, 38902, 38901, 38927, 38924, 38968, 38948, 38945, 38967, 38973, 38982, 38991, 38987, 39019, 39023, 39024, 39025, 39028, 39027, 39082, 39087, 39089, 39094, 39108, 39107, 39110, 39145, 39147, 39171, 39177, 39186, 39188, 39192, 39201, 39197, 39198, 39204, 39200, 39212, 39214, 39229, 39230, 39234, 39241, 39237, 39248, 39243, 39249, 39250, 39244, 39253, 39319, 39320, 39333, 39341, 39342, 39356, 39391, 39387, 39389, 39384, 39377, 39405, 39406, 39409, 39410, 39419, 39416, 39425, 39439, 39429, 39394, 39449, 39467, 39479, 39493, 39490, 39488, 39491, 39486, 39509, 39501, 39515, 39511, 39519, 39522, 39525, 39524, 39529, 39531, 39530, 39597, 39600, 39612, 39616, 39631, 39633, 39635, 39636, 39646, 39647, 39650, 39651, 39654, 39663, 39659, 39662, 39668, 39665, 39671, 39675, 39686, 39704, 39706, 39711, 39714, 39715, 39717, 39719, 39720, 39721, 39722, 39726, 39727, 39730, 39748, 39747, 39759, 39757, 39758, 39761, 39768, 39796, 39827, 39811, 39825, 39830, 39831, 39839, 39840, 39848, 39860, 39872, 39882, 39865, 39878, 39887, 39889, 39890, 39907, 39906, 39908, 39892, 39905, 39994, 39922, 39921, 39920, 39957, 39956, 39945, 39955, 39948, 39942, 39944, 39954, 39946, 39940, 39982, 39963, 39973, 39972, 39969, 39984, 40007, 39986, 40006, 39998, 40026, 40032, 40039, 40054, 40056, 40167, 40172, 40176, 40201, 40200, 40171, 40195, 40198, 40234, 40230, 40367, 40227, 40223, 40260, 40213, 40210, 40257, 40255, 40254, 40262, 40264, 40285, 40286, 40292, 40273, 40272, 40281, 40306, 40329, 40327, 40363, 40303, 40314, 40346, 40356, 40361, 40370, 40388, 40385, 40379, 40376, 40378, 40390, 40399, 40386, 40409, 40403, 40440, 40422, 40429, 40431, 40445, 40474, 40475, 40478, 40565, 40569, 40573, 40577, 40584, 40587, 40588, 40594, 40597, 40593, 40605, 40613, 40617, 40632, 40618, 40621, 38753, 40652, 40654, 40655, 40656, 40660, 40668, 40670, 40669, 40672, 40677, 40680, 40687, 40692, 40694, 40695, 40697, 40699, 40700, 40701, 40711, 40712, 30391, 40725, 40737, 40748, 40766, 40778, 40786, 40788, 40803, 40799, 40800, 40801, 40806, 40807, 40812, 40810, 40823, 40818, 40822, 40853, 40860, 40864, 22575, 27079, 36953, 29796, 20956, 29081, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 32394, 35100, 37704, 37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389, 20008, 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362, 20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546, 20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148, 21158, 21184, 21211, 21248, 21255, 21284, 21362, 21395, 21426, 21469, 64014, 21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471, 64015, 64016, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970, 23382, 23488, 29999, 23512, 23532, 23582, 23718, 23738, 23797, 23847, 23891, 64017, 23874, 23917, 23992, 23993, 24016, 24353, 24372, 24423, 24503, 24542, 24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880, 24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133, 26171, 26121, 26158, 26142, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272, 26290, 26303, 26362, 26382, 63785, 26470, 26555, 26706, 26560, 26625, 26692, 26831, 64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262, 27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039, 28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199, 28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843, 28943, 28932, 29020, 28998, 28999, 64021, 29121, 29182, 29361, 29374, 29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685, 29734, 29738, 29737, 29742, 29794, 29833, 29855, 29953, 30063, 30338, 30364, 30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842, 31024, 64024, 64025, 64026, 31124, 64027, 31131, 31441, 31463, 64028, 31467, 31646, 64029, 32072, 32092, 32183, 32160, 32214, 32338, 32583, 32673, 64030, 33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155, 64031, 34224, 64032, 64033, 34823, 35061, 35346, 35383, 35449, 35495, 35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214, 64035, 36559, 64036, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335, 37342, 37357, 37358, 37348, 37349, 37382, 37392, 37386, 37434, 37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, 37495, 37496, 37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665, 37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830, 37854, 37880, 37937, 37957, 37960, 38290, 63964, 64041, 38557, 38575, 38707, 38715, 38723, 38733, 38735, 38737, 38741, 38999, 39013, 64042, 64043, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794, 39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, null, null, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 65506, 65508, 65287, 65282, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 65506, 65508, 65287, 65282, 12849, 8470, 8481, 8757, 32394, 35100, 37704, 37512, 34012, 20425, 28859, 26161, 26824, 37625, 26363, 24389, 20008, 20193, 20220, 20224, 20227, 20281, 20310, 20370, 20362, 20378, 20372, 20429, 20544, 20514, 20479, 20510, 20550, 20592, 20546, 20628, 20724, 20696, 20810, 20836, 20893, 20926, 20972, 21013, 21148, 21158, 21184, 21211, 21248, 21255, 21284, 21362, 21395, 21426, 21469, 64014, 21660, 21642, 21673, 21759, 21894, 22361, 22373, 22444, 22472, 22471, 64015, 64016, 22686, 22706, 22795, 22867, 22875, 22877, 22883, 22948, 22970, 23382, 23488, 29999, 23512, 23532, 23582, 23718, 23738, 23797, 23847, 23891, 64017, 23874, 23917, 23992, 23993, 24016, 24353, 24372, 24423, 24503, 24542, 24669, 24709, 24714, 24798, 24789, 24864, 24818, 24849, 24887, 24880, 24984, 25107, 25254, 25589, 25696, 25757, 25806, 25934, 26112, 26133, 26171, 26121, 26158, 26142, 26148, 26213, 26199, 26201, 64018, 26227, 26265, 26272, 26290, 26303, 26362, 26382, 63785, 26470, 26555, 26706, 26560, 26625, 26692, 26831, 64019, 26984, 64020, 27032, 27106, 27184, 27243, 27206, 27251, 27262, 27362, 27364, 27606, 27711, 27740, 27782, 27759, 27866, 27908, 28039, 28015, 28054, 28076, 28111, 28152, 28146, 28156, 28217, 28252, 28199, 28220, 28351, 28552, 28597, 28661, 28677, 28679, 28712, 28805, 28843, 28943, 28932, 29020, 28998, 28999, 64021, 29121, 29182, 29361, 29374, 29476, 64022, 29559, 29629, 29641, 29654, 29667, 29650, 29703, 29685, 29734, 29738, 29737, 29742, 29794, 29833, 29855, 29953, 30063, 30338, 30364, 30366, 30363, 30374, 64023, 30534, 21167, 30753, 30798, 30820, 30842, 31024, 64024, 64025, 64026, 31124, 64027, 31131, 31441, 31463, 64028, 31467, 31646, 64029, 32072, 32092, 32183, 32160, 32214, 32338, 32583, 32673, 64030, 33537, 33634, 33663, 33735, 33782, 33864, 33972, 34131, 34137, 34155, 64031, 34224, 64032, 64033, 34823, 35061, 35346, 35383, 35449, 35495, 35518, 35551, 64034, 35574, 35667, 35711, 36080, 36084, 36114, 36214, 64035, 36559, 64036, 64037, 36967, 37086, 64038, 37141, 37159, 37338, 37335, 37342, 37357, 37358, 37348, 37349, 37382, 37392, 37386, 37434, 37440, 37436, 37454, 37465, 37457, 37433, 37479, 37543, 37495, 37496, 37607, 37591, 37593, 37584, 64039, 37589, 37600, 37587, 37669, 37665, 37627, 64040, 37662, 37631, 37661, 37634, 37744, 37719, 37796, 37830, 37854, 37880, 37937, 37957, 37960, 38290, 63964, 64041, 38557, 38575, 38707, 38715, 38723, 38733, 38735, 38737, 38741, 38999, 39013, 64042, 64043, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794, 39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], jis0212: [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 728, 711, 184, 729, 733, 175, 731, 730, 65374, 900, 901, null, null, null, null, null, null, null, null, 161, 166, 191, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 186, 170, 169, 174, 8482, 164, 8470, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 902, 904, 905, 906, 938, null, 908, null, 910, 939, null, 911, null, null, null, null, 940, 941, 942, 943, 970, 912, 972, 962, 973, 971, 944, 974, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1039, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1118, 1119, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 198, 272, null, 294, null, 306, null, 321, 319, null, 330, 216, 338, null, 358, 222, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 230, 273, 240, 295, 305, 307, 312, 322, 320, 329, 331, 248, 339, 223, 359, 254, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 193, 192, 196, 194, 258, 461, 256, 260, 197, 195, 262, 264, 268, 199, 266, 270, 201, 200, 203, 202, 282, 278, 274, 280, null, 284, 286, 290, 288, 292, 205, 204, 207, 206, 463, 304, 298, 302, 296, 308, 310, 313, 317, 315, 323, 327, 325, 209, 211, 210, 214, 212, 465, 336, 332, 213, 340, 344, 342, 346, 348, 352, 350, 356, 354, 218, 217, 220, 219, 364, 467, 368, 362, 370, 366, 360, 471, 475, 473, 469, 372, 221, 376, 374, 377, 381, 379, null, null, null, null, null, null, null, 225, 224, 228, 226, 259, 462, 257, 261, 229, 227, 263, 265, 269, 231, 267, 271, 233, 232, 235, 234, 283, 279, 275, 281, 501, 285, 287, null, 289, 293, 237, 236, 239, 238, 464, null, 299, 303, 297, 309, 311, 314, 318, 316, 324, 328, 326, 241, 243, 242, 246, 244, 466, 337, 333, 245, 341, 345, 343, 347, 349, 353, 351, 357, 355, 250, 249, 252, 251, 365, 468, 369, 363, 371, 367, 361, 472, 476, 474, 470, 373, 253, 255, 375, 378, 382, 380, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 19970, 19972, 19973, 19980, 19986, 19999, 20003, 20004, 20008, 20011, 20014, 20015, 20016, 20021, 20032, 20033, 20036, 20039, 20049, 20058, 20060, 20067, 20072, 20073, 20084, 20085, 20089, 20095, 20109, 20118, 20119, 20125, 20143, 20153, 20163, 20176, 20186, 20187, 20192, 20193, 20194, 20200, 20207, 20209, 20211, 20213, 20221, 20222, 20223, 20224, 20226, 20227, 20232, 20235, 20236, 20242, 20245, 20246, 20247, 20249, 20270, 20273, 20320, 20275, 20277, 20279, 20281, 20283, 20286, 20288, 20290, 20296, 20297, 20299, 20300, 20306, 20308, 20310, 20312, 20319, 20323, 20330, 20332, 20334, 20337, 20343, 20344, 20345, 20346, 20349, 20350, 20353, 20354, 20356, 20357, 20361, 20362, 20364, 20366, 20368, 20370, 20371, 20372, 20375, 20377, 20378, 20382, 20383, 20402, 20407, 20409, 20411, 20412, 20413, 20414, 20416, 20417, 20421, 20422, 20424, 20425, 20427, 20428, 20429, 20431, 20434, 20444, 20448, 20450, 20464, 20466, 20476, 20477, 20479, 20480, 20481, 20484, 20487, 20490, 20492, 20494, 20496, 20499, 20503, 20504, 20507, 20508, 20509, 20510, 20514, 20519, 20526, 20528, 20530, 20531, 20533, 20544, 20545, 20546, 20549, 20550, 20554, 20556, 20558, 20561, 20562, 20563, 20567, 20569, 20575, 20576, 20578, 20579, 20582, 20583, 20586, 20589, 20592, 20593, 20539, 20609, 20611, 20612, 20614, 20618, 20622, 20623, 20624, 20626, 20627, 20628, 20630, 20635, 20636, 20638, 20639, 20640, 20641, 20642, 20650, 20655, 20656, 20665, 20666, 20669, 20672, 20675, 20676, 20679, 20684, 20686, 20688, 20691, 20692, 20696, 20700, 20701, 20703, 20706, 20708, 20710, 20712, 20713, 20719, 20721, 20726, 20730, 20734, 20739, 20742, 20743, 20744, 20747, 20748, 20749, 20750, 20722, 20752, 20759, 20761, 20763, 20764, 20765, 20766, 20771, 20775, 20776, 20780, 20781, 20783, 20785, 20787, 20788, 20789, 20792, 20793, 20802, 20810, 20815, 20819, 20821, 20823, 20824, 20831, 20836, 20838, 20862, 20867, 20868, 20875, 20878, 20888, 20893, 20897, 20899, 20909, 20920, 20922, 20924, 20926, 20927, 20930, 20936, 20943, 20945, 20946, 20947, 20949, 20952, 20958, 20962, 20965, 20974, 20978, 20979, 20980, 20983, 20993, 20994, 20997, 21010, 21011, 21013, 21014, 21016, 21026, 21032, 21041, 21042, 21045, 21052, 21061, 21065, 21077, 21079, 21080, 21082, 21084, 21087, 21088, 21089, 21094, 21102, 21111, 21112, 21113, 21120, 21122, 21125, 21130, 21132, 21139, 21141, 21142, 21143, 21144, 21146, 21148, 21156, 21157, 21158, 21159, 21167, 21168, 21174, 21175, 21176, 21178, 21179, 21181, 21184, 21188, 21190, 21192, 21196, 21199, 21201, 21204, 21206, 21211, 21212, 21217, 21221, 21224, 21225, 21226, 21228, 21232, 21233, 21236, 21238, 21239, 21248, 21251, 21258, 21259, 21260, 21265, 21267, 21272, 21275, 21276, 21278, 21279, 21285, 21287, 21288, 21289, 21291, 21292, 21293, 21296, 21298, 21301, 21308, 21309, 21310, 21314, 21324, 21323, 21337, 21339, 21345, 21347, 21349, 21356, 21357, 21362, 21369, 21374, 21379, 21383, 21384, 21390, 21395, 21396, 21401, 21405, 21409, 21412, 21418, 21419, 21423, 21426, 21428, 21429, 21431, 21432, 21434, 21437, 21440, 21445, 21455, 21458, 21459, 21461, 21466, 21469, 21470, 21472, 21478, 21479, 21493, 21506, 21523, 21530, 21537, 21543, 21544, 21546, 21551, 21553, 21556, 21557, 21571, 21572, 21575, 21581, 21583, 21598, 21602, 21604, 21606, 21607, 21609, 21611, 21613, 21614, 21620, 21631, 21633, 21635, 21637, 21640, 21641, 21645, 21649, 21653, 21654, 21660, 21663, 21665, 21670, 21671, 21673, 21674, 21677, 21678, 21681, 21687, 21689, 21690, 21691, 21695, 21702, 21706, 21709, 21710, 21728, 21738, 21740, 21743, 21750, 21756, 21758, 21759, 21760, 21761, 21765, 21768, 21769, 21772, 21773, 21774, 21781, 21802, 21803, 21810, 21813, 21814, 21819, 21820, 21821, 21825, 21831, 21833, 21834, 21837, 21840, 21841, 21848, 21850, 21851, 21854, 21856, 21857, 21860, 21862, 21887, 21889, 21890, 21894, 21896, 21902, 21903, 21905, 21906, 21907, 21908, 21911, 21923, 21924, 21933, 21938, 21951, 21953, 21955, 21958, 21961, 21963, 21964, 21966, 21969, 21970, 21971, 21975, 21976, 21979, 21982, 21986, 21993, 22006, 22015, 22021, 22024, 22026, 22029, 22030, 22031, 22032, 22033, 22034, 22041, 22060, 22064, 22067, 22069, 22071, 22073, 22075, 22076, 22077, 22079, 22080, 22081, 22083, 22084, 22086, 22089, 22091, 22093, 22095, 22100, 22110, 22112, 22113, 22114, 22115, 22118, 22121, 22125, 22127, 22129, 22130, 22133, 22148, 22149, 22152, 22155, 22156, 22165, 22169, 22170, 22173, 22174, 22175, 22182, 22183, 22184, 22185, 22187, 22188, 22189, 22193, 22195, 22199, 22206, 22213, 22217, 22218, 22219, 22223, 22224, 22220, 22221, 22233, 22236, 22237, 22239, 22241, 22244, 22245, 22246, 22247, 22248, 22257, 22251, 22253, 22262, 22263, 22273, 22274, 22279, 22282, 22284, 22289, 22293, 22298, 22299, 22301, 22304, 22306, 22307, 22308, 22309, 22313, 22314, 22316, 22318, 22319, 22323, 22324, 22333, 22334, 22335, 22341, 22342, 22348, 22349, 22354, 22370, 22373, 22375, 22376, 22379, 22381, 22382, 22383, 22384, 22385, 22387, 22388, 22389, 22391, 22393, 22394, 22395, 22396, 22398, 22401, 22403, 22412, 22420, 22423, 22425, 22426, 22428, 22429, 22430, 22431, 22433, 22421, 22439, 22440, 22441, 22444, 22456, 22461, 22471, 22472, 22476, 22479, 22485, 22493, 22494, 22500, 22502, 22503, 22505, 22509, 22512, 22517, 22518, 22520, 22525, 22526, 22527, 22531, 22532, 22536, 22537, 22497, 22540, 22541, 22555, 22558, 22559, 22560, 22566, 22567, 22573, 22578, 22585, 22591, 22601, 22604, 22605, 22607, 22608, 22613, 22623, 22625, 22628, 22631, 22632, 22648, 22652, 22655, 22656, 22657, 22663, 22664, 22665, 22666, 22668, 22669, 22671, 22672, 22676, 22678, 22685, 22688, 22689, 22690, 22694, 22697, 22705, 22706, 22724, 22716, 22722, 22728, 22733, 22734, 22736, 22738, 22740, 22742, 22746, 22749, 22753, 22754, 22761, 22771, 22789, 22790, 22795, 22796, 22802, 22803, 22804, 34369, 22813, 22817, 22819, 22820, 22824, 22831, 22832, 22835, 22837, 22838, 22847, 22851, 22854, 22866, 22867, 22873, 22875, 22877, 22878, 22879, 22881, 22883, 22891, 22893, 22895, 22898, 22901, 22902, 22905, 22907, 22908, 22923, 22924, 22926, 22930, 22933, 22935, 22943, 22948, 22951, 22957, 22958, 22959, 22960, 22963, 22967, 22970, 22972, 22977, 22979, 22980, 22984, 22986, 22989, 22994, 23005, 23006, 23007, 23011, 23012, 23015, 23022, 23023, 23025, 23026, 23028, 23031, 23040, 23044, 23052, 23053, 23054, 23058, 23059, 23070, 23075, 23076, 23079, 23080, 23082, 23085, 23088, 23108, 23109, 23111, 23112, 23116, 23120, 23125, 23134, 23139, 23141, 23143, 23149, 23159, 23162, 23163, 23166, 23179, 23184, 23187, 23190, 23193, 23196, 23198, 23199, 23200, 23202, 23207, 23212, 23217, 23218, 23219, 23221, 23224, 23226, 23227, 23231, 23236, 23238, 23240, 23247, 23258, 23260, 23264, 23269, 23274, 23278, 23285, 23286, 23293, 23296, 23297, 23304, 23319, 23348, 23321, 23323, 23325, 23329, 23333, 23341, 23352, 23361, 23371, 23372, 23378, 23382, 23390, 23400, 23406, 23407, 23420, 23421, 23422, 23423, 23425, 23428, 23430, 23434, 23438, 23440, 23441, 23443, 23444, 23446, 23464, 23465, 23468, 23469, 23471, 23473, 23474, 23479, 23482, 23484, 23488, 23489, 23501, 23503, 23510, 23511, 23512, 23513, 23514, 23520, 23535, 23537, 23540, 23549, 23564, 23575, 23582, 23583, 23587, 23590, 23593, 23595, 23596, 23598, 23600, 23602, 23605, 23606, 23641, 23642, 23644, 23650, 23651, 23655, 23656, 23657, 23661, 23664, 23668, 23669, 23674, 23675, 23676, 23677, 23687, 23688, 23690, 23695, 23698, 23709, 23711, 23712, 23714, 23715, 23718, 23722, 23730, 23732, 23733, 23738, 23753, 23755, 23762, 23773, 23767, 23790, 23793, 23794, 23796, 23809, 23814, 23821, 23826, 23851, 23843, 23844, 23846, 23847, 23857, 23860, 23865, 23869, 23871, 23874, 23875, 23878, 23880, 23893, 23889, 23897, 23882, 23903, 23904, 23905, 23906, 23908, 23914, 23917, 23920, 23929, 23930, 23934, 23935, 23937, 23939, 23944, 23946, 23954, 23955, 23956, 23957, 23961, 23963, 23967, 23968, 23975, 23979, 23984, 23988, 23992, 23993, 24003, 24007, 24011, 24016, 24014, 24024, 24025, 24032, 24036, 24041, 24056, 24057, 24064, 24071, 24077, 24082, 24084, 24085, 24088, 24095, 24096, 24110, 24104, 24114, 24117, 24126, 24139, 24144, 24137, 24145, 24150, 24152, 24155, 24156, 24158, 24168, 24170, 24171, 24172, 24173, 24174, 24176, 24192, 24203, 24206, 24226, 24228, 24229, 24232, 24234, 24236, 24241, 24243, 24253, 24254, 24255, 24262, 24268, 24267, 24270, 24273, 24274, 24276, 24277, 24284, 24286, 24293, 24299, 24322, 24326, 24327, 24328, 24334, 24345, 24348, 24349, 24353, 24354, 24355, 24356, 24360, 24363, 24364, 24366, 24368, 24372, 24374, 24379, 24381, 24383, 24384, 24388, 24389, 24391, 24397, 24400, 24404, 24408, 24411, 24416, 24419, 24420, 24423, 24431, 24434, 24436, 24437, 24440, 24442, 24445, 24446, 24457, 24461, 24463, 24470, 24476, 24477, 24482, 24487, 24491, 24484, 24492, 24495, 24496, 24497, 24504, 24516, 24519, 24520, 24521, 24523, 24528, 24529, 24530, 24531, 24532, 24542, 24545, 24546, 24552, 24553, 24554, 24556, 24557, 24558, 24559, 24562, 24563, 24566, 24570, 24572, 24583, 24586, 24589, 24595, 24596, 24599, 24600, 24602, 24607, 24612, 24621, 24627, 24629, 24640, 24647, 24648, 24649, 24652, 24657, 24660, 24662, 24663, 24669, 24673, 24679, 24689, 24702, 24703, 24706, 24710, 24712, 24714, 24718, 24721, 24723, 24725, 24728, 24733, 24734, 24738, 24740, 24741, 24744, 24752, 24753, 24759, 24763, 24766, 24770, 24772, 24776, 24777, 24778, 24779, 24782, 24783, 24788, 24789, 24793, 24795, 24797, 24798, 24802, 24805, 24818, 24821, 24824, 24828, 24829, 24834, 24839, 24842, 24844, 24848, 24849, 24850, 24851, 24852, 24854, 24855, 24857, 24860, 24862, 24866, 24874, 24875, 24880, 24881, 24885, 24886, 24887, 24889, 24897, 24901, 24902, 24905, 24926, 24928, 24940, 24946, 24952, 24955, 24956, 24959, 24960, 24961, 24963, 24964, 24971, 24973, 24978, 24979, 24983, 24984, 24988, 24989, 24991, 24992, 24997, 25e3, 25002, 25005, 25016, 25017, 25020, 25024, 25025, 25026, 25038, 25039, 25045, 25052, 25053, 25054, 25055, 25057, 25058, 25063, 25065, 25061, 25068, 25069, 25071, 25089, 25091, 25092, 25095, 25107, 25109, 25116, 25120, 25122, 25123, 25127, 25129, 25131, 25145, 25149, 25154, 25155, 25156, 25158, 25164, 25168, 25169, 25170, 25172, 25174, 25178, 25180, 25188, 25197, 25199, 25203, 25210, 25213, 25229, 25230, 25231, 25232, 25254, 25256, 25267, 25270, 25271, 25274, 25278, 25279, 25284, 25294, 25301, 25302, 25306, 25322, 25330, 25332, 25340, 25341, 25347, 25348, 25354, 25355, 25357, 25360, 25363, 25366, 25368, 25385, 25386, 25389, 25397, 25398, 25401, 25404, 25409, 25410, 25411, 25412, 25414, 25418, 25419, 25422, 25426, 25427, 25428, 25432, 25435, 25445, 25446, 25452, 25453, 25457, 25460, 25461, 25464, 25468, 25469, 25471, 25474, 25476, 25479, 25482, 25488, 25492, 25493, 25497, 25498, 25502, 25508, 25510, 25517, 25518, 25519, 25533, 25537, 25541, 25544, 25550, 25553, 25555, 25556, 25557, 25564, 25568, 25573, 25578, 25580, 25586, 25587, 25589, 25592, 25593, 25609, 25610, 25616, 25618, 25620, 25624, 25630, 25632, 25634, 25636, 25637, 25641, 25642, 25647, 25648, 25653, 25661, 25663, 25675, 25679, 25681, 25682, 25683, 25684, 25690, 25691, 25692, 25693, 25695, 25696, 25697, 25699, 25709, 25715, 25716, 25723, 25725, 25733, 25735, 25743, 25744, 25745, 25752, 25753, 25755, 25757, 25759, 25761, 25763, 25766, 25768, 25772, 25779, 25789, 25790, 25791, 25796, 25801, 25802, 25803, 25804, 25806, 25808, 25809, 25813, 25815, 25828, 25829, 25833, 25834, 25837, 25840, 25845, 25847, 25851, 25855, 25857, 25860, 25864, 25865, 25866, 25871, 25875, 25876, 25878, 25881, 25883, 25886, 25887, 25890, 25894, 25897, 25902, 25905, 25914, 25916, 25917, 25923, 25927, 25929, 25936, 25938, 25940, 25951, 25952, 25959, 25963, 25978, 25981, 25985, 25989, 25994, 26002, 26005, 26008, 26013, 26016, 26019, 26022, 26030, 26034, 26035, 26036, 26047, 26050, 26056, 26057, 26062, 26064, 26068, 26070, 26072, 26079, 26096, 26098, 26100, 26101, 26105, 26110, 26111, 26112, 26116, 26120, 26121, 26125, 26129, 26130, 26133, 26134, 26141, 26142, 26145, 26146, 26147, 26148, 26150, 26153, 26154, 26155, 26156, 26158, 26160, 26161, 26163, 26169, 26167, 26176, 26181, 26182, 26186, 26188, 26193, 26190, 26199, 26200, 26201, 26203, 26204, 26208, 26209, 26363, 26218, 26219, 26220, 26238, 26227, 26229, 26239, 26231, 26232, 26233, 26235, 26240, 26236, 26251, 26252, 26253, 26256, 26258, 26265, 26266, 26267, 26268, 26271, 26272, 26276, 26285, 26289, 26290, 26293, 26299, 26303, 26304, 26306, 26307, 26312, 26316, 26318, 26319, 26324, 26331, 26335, 26344, 26347, 26348, 26350, 26362, 26373, 26375, 26382, 26387, 26393, 26396, 26400, 26402, 26419, 26430, 26437, 26439, 26440, 26444, 26452, 26453, 26461, 26470, 26476, 26478, 26484, 26486, 26491, 26497, 26500, 26510, 26511, 26513, 26515, 26518, 26520, 26521, 26523, 26544, 26545, 26546, 26549, 26555, 26556, 26557, 26617, 26560, 26562, 26563, 26565, 26568, 26569, 26578, 26583, 26585, 26588, 26593, 26598, 26608, 26610, 26614, 26615, 26706, 26644, 26649, 26653, 26655, 26664, 26663, 26668, 26669, 26671, 26672, 26673, 26675, 26683, 26687, 26692, 26693, 26698, 26700, 26709, 26711, 26712, 26715, 26731, 26734, 26735, 26736, 26737, 26738, 26741, 26745, 26746, 26747, 26748, 26754, 26756, 26758, 26760, 26774, 26776, 26778, 26780, 26785, 26787, 26789, 26793, 26794, 26798, 26802, 26811, 26821, 26824, 26828, 26831, 26832, 26833, 26835, 26838, 26841, 26844, 26845, 26853, 26856, 26858, 26859, 26860, 26861, 26864, 26865, 26869, 26870, 26875, 26876, 26877, 26886, 26889, 26890, 26896, 26897, 26899, 26902, 26903, 26929, 26931, 26933, 26936, 26939, 26946, 26949, 26953, 26958, 26967, 26971, 26979, 26980, 26981, 26982, 26984, 26985, 26988, 26992, 26993, 26994, 27002, 27003, 27007, 27008, 27021, 27026, 27030, 27032, 27041, 27045, 27046, 27048, 27051, 27053, 27055, 27063, 27064, 27066, 27068, 27077, 27080, 27089, 27094, 27095, 27106, 27109, 27118, 27119, 27121, 27123, 27125, 27134, 27136, 27137, 27139, 27151, 27153, 27157, 27162, 27165, 27168, 27172, 27176, 27184, 27186, 27188, 27191, 27195, 27198, 27199, 27205, 27206, 27209, 27210, 27214, 27216, 27217, 27218, 27221, 27222, 27227, 27236, 27239, 27242, 27249, 27251, 27262, 27265, 27267, 27270, 27271, 27273, 27275, 27281, 27291, 27293, 27294, 27295, 27301, 27307, 27311, 27312, 27313, 27316, 27325, 27326, 27327, 27334, 27337, 27336, 27340, 27344, 27348, 27349, 27350, 27356, 27357, 27364, 27367, 27372, 27376, 27377, 27378, 27388, 27389, 27394, 27395, 27398, 27399, 27401, 27407, 27408, 27409, 27415, 27419, 27422, 27428, 27432, 27435, 27436, 27439, 27445, 27446, 27451, 27455, 27462, 27466, 27469, 27474, 27478, 27480, 27485, 27488, 27495, 27499, 27502, 27504, 27509, 27517, 27518, 27522, 27525, 27543, 27547, 27551, 27552, 27554, 27555, 27560, 27561, 27564, 27565, 27566, 27568, 27576, 27577, 27581, 27582, 27587, 27588, 27593, 27596, 27606, 27610, 27617, 27619, 27622, 27623, 27630, 27633, 27639, 27641, 27647, 27650, 27652, 27653, 27657, 27661, 27662, 27664, 27666, 27673, 27679, 27686, 27687, 27688, 27692, 27694, 27699, 27701, 27702, 27706, 27707, 27711, 27722, 27723, 27725, 27727, 27730, 27732, 27737, 27739, 27740, 27755, 27757, 27759, 27764, 27766, 27768, 27769, 27771, 27781, 27782, 27783, 27785, 27796, 27797, 27799, 27800, 27804, 27807, 27824, 27826, 27828, 27842, 27846, 27853, 27855, 27856, 27857, 27858, 27860, 27862, 27866, 27868, 27872, 27879, 27881, 27883, 27884, 27886, 27890, 27892, 27908, 27911, 27914, 27918, 27919, 27921, 27923, 27930, 27942, 27943, 27944, 27751, 27950, 27951, 27953, 27961, 27964, 27967, 27991, 27998, 27999, 28001, 28005, 28007, 28015, 28016, 28028, 28034, 28039, 28049, 28050, 28052, 28054, 28055, 28056, 28074, 28076, 28084, 28087, 28089, 28093, 28095, 28100, 28104, 28106, 28110, 28111, 28118, 28123, 28125, 28127, 28128, 28130, 28133, 28137, 28143, 28144, 28148, 28150, 28156, 28160, 28164, 28190, 28194, 28199, 28210, 28214, 28217, 28219, 28220, 28228, 28229, 28232, 28233, 28235, 28239, 28241, 28242, 28243, 28244, 28247, 28252, 28253, 28254, 28258, 28259, 28264, 28275, 28283, 28285, 28301, 28307, 28313, 28320, 28327, 28333, 28334, 28337, 28339, 28347, 28351, 28352, 28353, 28355, 28359, 28360, 28362, 28365, 28366, 28367, 28395, 28397, 28398, 28409, 28411, 28413, 28420, 28424, 28426, 28428, 28429, 28438, 28440, 28442, 28443, 28454, 28457, 28458, 28463, 28464, 28467, 28470, 28475, 28476, 28461, 28495, 28497, 28498, 28499, 28503, 28505, 28506, 28509, 28510, 28513, 28514, 28520, 28524, 28541, 28542, 28547, 28551, 28552, 28555, 28556, 28557, 28560, 28562, 28563, 28564, 28566, 28570, 28575, 28576, 28581, 28582, 28583, 28584, 28590, 28591, 28592, 28597, 28598, 28604, 28613, 28615, 28616, 28618, 28634, 28638, 28648, 28649, 28656, 28661, 28665, 28668, 28669, 28672, 28677, 28678, 28679, 28685, 28695, 28704, 28707, 28719, 28724, 28727, 28729, 28732, 28739, 28740, 28744, 28745, 28746, 28747, 28756, 28757, 28765, 28766, 28750, 28772, 28773, 28780, 28782, 28789, 28790, 28798, 28801, 28805, 28806, 28820, 28821, 28822, 28823, 28824, 28827, 28836, 28843, 28848, 28849, 28852, 28855, 28874, 28881, 28883, 28884, 28885, 28886, 28888, 28892, 28900, 28922, 28931, 28932, 28933, 28934, 28935, 28939, 28940, 28943, 28958, 28960, 28971, 28973, 28975, 28976, 28977, 28984, 28993, 28997, 28998, 28999, 29002, 29003, 29008, 29010, 29015, 29018, 29020, 29022, 29024, 29032, 29049, 29056, 29061, 29063, 29068, 29074, 29082, 29083, 29088, 29090, 29103, 29104, 29106, 29107, 29114, 29119, 29120, 29121, 29124, 29131, 29132, 29139, 29142, 29145, 29146, 29148, 29176, 29182, 29184, 29191, 29192, 29193, 29203, 29207, 29210, 29213, 29215, 29220, 29227, 29231, 29236, 29240, 29241, 29249, 29250, 29251, 29253, 29262, 29263, 29264, 29267, 29269, 29270, 29274, 29276, 29278, 29280, 29283, 29288, 29291, 29294, 29295, 29297, 29303, 29304, 29307, 29308, 29311, 29316, 29321, 29325, 29326, 29331, 29339, 29352, 29357, 29358, 29361, 29364, 29374, 29377, 29383, 29385, 29388, 29397, 29398, 29400, 29407, 29413, 29427, 29428, 29434, 29435, 29438, 29442, 29444, 29445, 29447, 29451, 29453, 29458, 29459, 29464, 29465, 29470, 29474, 29476, 29479, 29480, 29484, 29489, 29490, 29493, 29498, 29499, 29501, 29507, 29517, 29520, 29522, 29526, 29528, 29533, 29534, 29535, 29536, 29542, 29543, 29545, 29547, 29548, 29550, 29551, 29553, 29559, 29561, 29564, 29568, 29569, 29571, 29573, 29574, 29582, 29584, 29587, 29589, 29591, 29592, 29596, 29598, 29599, 29600, 29602, 29605, 29606, 29610, 29611, 29613, 29621, 29623, 29625, 29628, 29629, 29631, 29637, 29638, 29641, 29643, 29644, 29647, 29650, 29651, 29654, 29657, 29661, 29665, 29667, 29670, 29671, 29673, 29684, 29685, 29687, 29689, 29690, 29691, 29693, 29695, 29696, 29697, 29700, 29703, 29706, 29713, 29722, 29723, 29732, 29734, 29736, 29737, 29738, 29739, 29740, 29741, 29742, 29743, 29744, 29745, 29753, 29760, 29763, 29764, 29766, 29767, 29771, 29773, 29777, 29778, 29783, 29789, 29794, 29798, 29799, 29800, 29803, 29805, 29806, 29809, 29810, 29824, 29825, 29829, 29830, 29831, 29833, 29839, 29840, 29841, 29842, 29848, 29849, 29850, 29852, 29855, 29856, 29857, 29859, 29862, 29864, 29865, 29866, 29867, 29870, 29871, 29873, 29874, 29877, 29881, 29883, 29887, 29896, 29897, 29900, 29904, 29907, 29912, 29914, 29915, 29918, 29919, 29924, 29928, 29930, 29931, 29935, 29940, 29946, 29947, 29948, 29951, 29958, 29970, 29974, 29975, 29984, 29985, 29988, 29991, 29993, 29994, 29999, 30006, 30009, 30013, 30014, 30015, 30016, 30019, 30023, 30024, 30030, 30032, 30034, 30039, 30046, 30047, 30049, 30063, 30065, 30073, 30074, 30075, 30076, 30077, 30078, 30081, 30085, 30096, 30098, 30099, 30101, 30105, 30108, 30114, 30116, 30132, 30138, 30143, 30144, 30145, 30148, 30150, 30156, 30158, 30159, 30167, 30172, 30175, 30176, 30177, 30180, 30183, 30188, 30190, 30191, 30193, 30201, 30208, 30210, 30211, 30212, 30215, 30216, 30218, 30220, 30223, 30226, 30227, 30229, 30230, 30233, 30235, 30236, 30237, 30238, 30243, 30245, 30246, 30249, 30253, 30258, 30259, 30261, 30264, 30265, 30266, 30268, 30282, 30272, 30273, 30275, 30276, 30277, 30281, 30283, 30293, 30297, 30303, 30308, 30309, 30317, 30318, 30319, 30321, 30324, 30337, 30341, 30348, 30349, 30357, 30363, 30364, 30365, 30367, 30368, 30370, 30371, 30372, 30373, 30374, 30375, 30376, 30378, 30381, 30397, 30401, 30405, 30409, 30411, 30412, 30414, 30420, 30425, 30432, 30438, 30440, 30444, 30448, 30449, 30454, 30457, 30460, 30464, 30470, 30474, 30478, 30482, 30484, 30485, 30487, 30489, 30490, 30492, 30498, 30504, 30509, 30510, 30511, 30516, 30517, 30518, 30521, 30525, 30526, 30530, 30533, 30534, 30538, 30541, 30542, 30543, 30546, 30550, 30551, 30556, 30558, 30559, 30560, 30562, 30564, 30567, 30570, 30572, 30576, 30578, 30579, 30580, 30586, 30589, 30592, 30596, 30604, 30605, 30612, 30613, 30614, 30618, 30623, 30626, 30631, 30634, 30638, 30639, 30641, 30645, 30654, 30659, 30665, 30673, 30674, 30677, 30681, 30686, 30687, 30688, 30692, 30694, 30698, 30700, 30704, 30705, 30708, 30712, 30715, 30725, 30726, 30729, 30733, 30734, 30737, 30749, 30753, 30754, 30755, 30765, 30766, 30768, 30773, 30775, 30787, 30788, 30791, 30792, 30796, 30798, 30802, 30812, 30814, 30816, 30817, 30819, 30820, 30824, 30826, 30830, 30842, 30846, 30858, 30863, 30868, 30872, 30881, 30877, 30878, 30879, 30884, 30888, 30892, 30893, 30896, 30897, 30898, 30899, 30907, 30909, 30911, 30919, 30920, 30921, 30924, 30926, 30930, 30931, 30933, 30934, 30948, 30939, 30943, 30944, 30945, 30950, 30954, 30962, 30963, 30976, 30966, 30967, 30970, 30971, 30975, 30982, 30988, 30992, 31002, 31004, 31006, 31007, 31008, 31013, 31015, 31017, 31021, 31025, 31028, 31029, 31035, 31037, 31039, 31044, 31045, 31046, 31050, 31051, 31055, 31057, 31060, 31064, 31067, 31068, 31079, 31081, 31083, 31090, 31097, 31099, 31100, 31102, 31115, 31116, 31121, 31123, 31124, 31125, 31126, 31128, 31131, 31132, 31137, 31144, 31145, 31147, 31151, 31153, 31156, 31160, 31163, 31170, 31172, 31175, 31176, 31178, 31183, 31188, 31190, 31194, 31197, 31198, 31200, 31202, 31205, 31210, 31211, 31213, 31217, 31224, 31228, 31234, 31235, 31239, 31241, 31242, 31244, 31249, 31253, 31259, 31262, 31265, 31271, 31275, 31277, 31279, 31280, 31284, 31285, 31288, 31289, 31290, 31300, 31301, 31303, 31304, 31308, 31317, 31318, 31321, 31324, 31325, 31327, 31328, 31333, 31335, 31338, 31341, 31349, 31352, 31358, 31360, 31362, 31365, 31366, 31370, 31371, 31376, 31377, 31380, 31390, 31392, 31395, 31404, 31411, 31413, 31417, 31419, 31420, 31430, 31433, 31436, 31438, 31441, 31451, 31464, 31465, 31467, 31468, 31473, 31476, 31483, 31485, 31486, 31495, 31508, 31519, 31523, 31527, 31529, 31530, 31531, 31533, 31534, 31535, 31536, 31537, 31540, 31549, 31551, 31552, 31553, 31559, 31566, 31573, 31584, 31588, 31590, 31593, 31594, 31597, 31599, 31602, 31603, 31607, 31620, 31625, 31630, 31632, 31633, 31638, 31643, 31646, 31648, 31653, 31660, 31663, 31664, 31666, 31669, 31670, 31674, 31675, 31676, 31677, 31682, 31685, 31688, 31690, 31700, 31702, 31703, 31705, 31706, 31707, 31720, 31722, 31730, 31732, 31733, 31736, 31737, 31738, 31740, 31742, 31745, 31746, 31747, 31748, 31750, 31753, 31755, 31756, 31758, 31759, 31769, 31771, 31776, 31781, 31782, 31784, 31788, 31793, 31795, 31796, 31798, 31801, 31802, 31814, 31818, 31829, 31825, 31826, 31827, 31833, 31834, 31835, 31836, 31837, 31838, 31841, 31843, 31847, 31849, 31853, 31854, 31856, 31858, 31865, 31868, 31869, 31878, 31879, 31887, 31892, 31902, 31904, 31910, 31920, 31926, 31927, 31930, 31931, 31932, 31935, 31940, 31943, 31944, 31945, 31949, 31951, 31955, 31956, 31957, 31959, 31961, 31962, 31965, 31974, 31977, 31979, 31989, 32003, 32007, 32008, 32009, 32015, 32017, 32018, 32019, 32022, 32029, 32030, 32035, 32038, 32042, 32045, 32049, 32060, 32061, 32062, 32064, 32065, 32071, 32072, 32077, 32081, 32083, 32087, 32089, 32090, 32092, 32093, 32101, 32103, 32106, 32112, 32120, 32122, 32123, 32127, 32129, 32130, 32131, 32133, 32134, 32136, 32139, 32140, 32141, 32145, 32150, 32151, 32157, 32158, 32166, 32167, 32170, 32179, 32182, 32183, 32185, 32194, 32195, 32196, 32197, 32198, 32204, 32205, 32206, 32215, 32217, 32256, 32226, 32229, 32230, 32234, 32235, 32237, 32241, 32245, 32246, 32249, 32250, 32264, 32272, 32273, 32277, 32279, 32284, 32285, 32288, 32295, 32296, 32300, 32301, 32303, 32307, 32310, 32319, 32324, 32325, 32327, 32334, 32336, 32338, 32344, 32351, 32353, 32354, 32357, 32363, 32366, 32367, 32371, 32376, 32382, 32385, 32390, 32391, 32394, 32397, 32401, 32405, 32408, 32410, 32413, 32414, 32572, 32571, 32573, 32574, 32575, 32579, 32580, 32583, 32591, 32594, 32595, 32603, 32604, 32605, 32609, 32611, 32612, 32613, 32614, 32621, 32625, 32637, 32638, 32639, 32640, 32651, 32653, 32655, 32656, 32657, 32662, 32663, 32668, 32673, 32674, 32678, 32682, 32685, 32692, 32700, 32703, 32704, 32707, 32712, 32718, 32719, 32731, 32735, 32739, 32741, 32744, 32748, 32750, 32751, 32754, 32762, 32765, 32766, 32767, 32775, 32776, 32778, 32781, 32782, 32783, 32785, 32787, 32788, 32790, 32797, 32798, 32799, 32800, 32804, 32806, 32812, 32814, 32816, 32820, 32821, 32823, 32825, 32826, 32828, 32830, 32832, 32836, 32864, 32868, 32870, 32877, 32881, 32885, 32897, 32904, 32910, 32924, 32926, 32934, 32935, 32939, 32952, 32953, 32968, 32973, 32975, 32978, 32980, 32981, 32983, 32984, 32992, 33005, 33006, 33008, 33010, 33011, 33014, 33017, 33018, 33022, 33027, 33035, 33046, 33047, 33048, 33052, 33054, 33056, 33060, 33063, 33068, 33072, 33077, 33082, 33084, 33093, 33095, 33098, 33100, 33106, 33111, 33120, 33121, 33127, 33128, 33129, 33133, 33135, 33143, 33153, 33168, 33156, 33157, 33158, 33163, 33166, 33174, 33176, 33179, 33182, 33186, 33198, 33202, 33204, 33211, 33227, 33219, 33221, 33226, 33230, 33231, 33237, 33239, 33243, 33245, 33246, 33249, 33252, 33259, 33260, 33264, 33265, 33266, 33269, 33270, 33272, 33273, 33277, 33279, 33280, 33283, 33295, 33299, 33300, 33305, 33306, 33309, 33313, 33314, 33320, 33330, 33332, 33338, 33347, 33348, 33349, 33350, 33355, 33358, 33359, 33361, 33366, 33372, 33376, 33379, 33383, 33389, 33396, 33403, 33405, 33407, 33408, 33409, 33411, 33412, 33415, 33417, 33418, 33422, 33425, 33428, 33430, 33432, 33434, 33435, 33440, 33441, 33443, 33444, 33447, 33448, 33449, 33450, 33454, 33456, 33458, 33460, 33463, 33466, 33468, 33470, 33471, 33478, 33488, 33493, 33498, 33504, 33506, 33508, 33512, 33514, 33517, 33519, 33526, 33527, 33533, 33534, 33536, 33537, 33543, 33544, 33546, 33547, 33620, 33563, 33565, 33566, 33567, 33569, 33570, 33580, 33581, 33582, 33584, 33587, 33591, 33594, 33596, 33597, 33602, 33603, 33604, 33607, 33613, 33614, 33617, 33621, 33622, 33623, 33648, 33656, 33661, 33663, 33664, 33666, 33668, 33670, 33677, 33682, 33684, 33685, 33688, 33689, 33691, 33692, 33693, 33702, 33703, 33705, 33708, 33726, 33727, 33728, 33735, 33737, 33743, 33744, 33745, 33748, 33757, 33619, 33768, 33770, 33782, 33784, 33785, 33788, 33793, 33798, 33802, 33807, 33809, 33813, 33817, 33709, 33839, 33849, 33861, 33863, 33864, 33866, 33869, 33871, 33873, 33874, 33878, 33880, 33881, 33882, 33884, 33888, 33892, 33893, 33895, 33898, 33904, 33907, 33908, 33910, 33912, 33916, 33917, 33921, 33925, 33938, 33939, 33941, 33950, 33958, 33960, 33961, 33962, 33967, 33969, 33972, 33978, 33981, 33982, 33984, 33986, 33991, 33992, 33996, 33999, 34003, 34012, 34023, 34026, 34031, 34032, 34033, 34034, 34039, 34098, 34042, 34043, 34045, 34050, 34051, 34055, 34060, 34062, 34064, 34076, 34078, 34082, 34083, 34084, 34085, 34087, 34090, 34091, 34095, 34099, 34100, 34102, 34111, 34118, 34127, 34128, 34129, 34130, 34131, 34134, 34137, 34140, 34141, 34142, 34143, 34144, 34145, 34146, 34148, 34155, 34159, 34169, 34170, 34171, 34173, 34175, 34177, 34181, 34182, 34185, 34187, 34188, 34191, 34195, 34200, 34205, 34207, 34208, 34210, 34213, 34215, 34228, 34230, 34231, 34232, 34236, 34237, 34238, 34239, 34242, 34247, 34250, 34251, 34254, 34221, 34264, 34266, 34271, 34272, 34278, 34280, 34285, 34291, 34294, 34300, 34303, 34304, 34308, 34309, 34317, 34318, 34320, 34321, 34322, 34328, 34329, 34331, 34334, 34337, 34343, 34345, 34358, 34360, 34362, 34364, 34365, 34368, 34370, 34374, 34386, 34387, 34390, 34391, 34392, 34393, 34397, 34400, 34401, 34402, 34403, 34404, 34409, 34412, 34415, 34421, 34422, 34423, 34426, 34445, 34449, 34454, 34456, 34458, 34460, 34465, 34470, 34471, 34472, 34477, 34481, 34483, 34484, 34485, 34487, 34488, 34489, 34495, 34496, 34497, 34499, 34501, 34513, 34514, 34517, 34519, 34522, 34524, 34528, 34531, 34533, 34535, 34440, 34554, 34556, 34557, 34564, 34565, 34567, 34571, 34574, 34575, 34576, 34579, 34580, 34585, 34590, 34591, 34593, 34595, 34600, 34606, 34607, 34609, 34610, 34617, 34618, 34620, 34621, 34622, 34624, 34627, 34629, 34637, 34648, 34653, 34657, 34660, 34661, 34671, 34673, 34674, 34683, 34691, 34692, 34693, 34694, 34695, 34696, 34697, 34699, 34700, 34704, 34707, 34709, 34711, 34712, 34713, 34718, 34720, 34723, 34727, 34732, 34733, 34734, 34737, 34741, 34750, 34751, 34753, 34760, 34761, 34762, 34766, 34773, 34774, 34777, 34778, 34780, 34783, 34786, 34787, 34788, 34794, 34795, 34797, 34801, 34803, 34808, 34810, 34815, 34817, 34819, 34822, 34825, 34826, 34827, 34832, 34841, 34834, 34835, 34836, 34840, 34842, 34843, 34844, 34846, 34847, 34856, 34861, 34862, 34864, 34866, 34869, 34874, 34876, 34881, 34883, 34885, 34888, 34889, 34890, 34891, 34894, 34897, 34901, 34902, 34904, 34906, 34908, 34911, 34912, 34916, 34921, 34929, 34937, 34939, 34944, 34968, 34970, 34971, 34972, 34975, 34976, 34984, 34986, 35002, 35005, 35006, 35008, 35018, 35019, 35020, 35021, 35022, 35025, 35026, 35027, 35035, 35038, 35047, 35055, 35056, 35057, 35061, 35063, 35073, 35078, 35085, 35086, 35087, 35093, 35094, 35096, 35097, 35098, 35100, 35104, 35110, 35111, 35112, 35120, 35121, 35122, 35125, 35129, 35130, 35134, 35136, 35138, 35141, 35142, 35145, 35151, 35154, 35159, 35162, 35163, 35164, 35169, 35170, 35171, 35179, 35182, 35184, 35187, 35189, 35194, 35195, 35196, 35197, 35209, 35213, 35216, 35220, 35221, 35227, 35228, 35231, 35232, 35237, 35248, 35252, 35253, 35254, 35255, 35260, 35284, 35285, 35286, 35287, 35288, 35301, 35305, 35307, 35309, 35313, 35315, 35318, 35321, 35325, 35327, 35332, 35333, 35335, 35343, 35345, 35346, 35348, 35349, 35358, 35360, 35362, 35364, 35366, 35371, 35372, 35375, 35381, 35383, 35389, 35390, 35392, 35395, 35397, 35399, 35401, 35405, 35406, 35411, 35414, 35415, 35416, 35420, 35421, 35425, 35429, 35431, 35445, 35446, 35447, 35449, 35450, 35451, 35454, 35455, 35456, 35459, 35462, 35467, 35471, 35472, 35474, 35478, 35479, 35481, 35487, 35495, 35497, 35502, 35503, 35507, 35510, 35511, 35515, 35518, 35523, 35526, 35528, 35529, 35530, 35537, 35539, 35540, 35541, 35543, 35549, 35551, 35564, 35568, 35572, 35573, 35574, 35580, 35583, 35589, 35590, 35595, 35601, 35612, 35614, 35615, 35594, 35629, 35632, 35639, 35644, 35650, 35651, 35652, 35653, 35654, 35656, 35666, 35667, 35668, 35673, 35661, 35678, 35683, 35693, 35702, 35704, 35705, 35708, 35710, 35713, 35716, 35717, 35723, 35725, 35727, 35732, 35733, 35740, 35742, 35743, 35896, 35897, 35901, 35902, 35909, 35911, 35913, 35915, 35919, 35921, 35923, 35924, 35927, 35928, 35931, 35933, 35929, 35939, 35940, 35942, 35944, 35945, 35949, 35955, 35957, 35958, 35963, 35966, 35974, 35975, 35979, 35984, 35986, 35987, 35993, 35995, 35996, 36004, 36025, 36026, 36037, 36038, 36041, 36043, 36047, 36054, 36053, 36057, 36061, 36065, 36072, 36076, 36079, 36080, 36082, 36085, 36087, 36088, 36094, 36095, 36097, 36099, 36105, 36114, 36119, 36123, 36197, 36201, 36204, 36206, 36223, 36226, 36228, 36232, 36237, 36240, 36241, 36245, 36254, 36255, 36256, 36262, 36267, 36268, 36271, 36274, 36277, 36279, 36281, 36283, 36288, 36293, 36294, 36295, 36296, 36298, 36302, 36305, 36308, 36309, 36311, 36313, 36324, 36325, 36327, 36332, 36336, 36284, 36337, 36338, 36340, 36349, 36353, 36356, 36357, 36358, 36363, 36369, 36372, 36374, 36384, 36385, 36386, 36387, 36390, 36391, 36401, 36403, 36406, 36407, 36408, 36409, 36413, 36416, 36417, 36427, 36429, 36430, 36431, 36436, 36443, 36444, 36445, 36446, 36449, 36450, 36457, 36460, 36461, 36463, 36464, 36465, 36473, 36474, 36475, 36482, 36483, 36489, 36496, 36498, 36501, 36506, 36507, 36509, 36510, 36514, 36519, 36521, 36525, 36526, 36531, 36533, 36538, 36539, 36544, 36545, 36547, 36548, 36551, 36559, 36561, 36564, 36572, 36584, 36590, 36592, 36593, 36599, 36601, 36602, 36589, 36608, 36610, 36615, 36616, 36623, 36624, 36630, 36631, 36632, 36638, 36640, 36641, 36643, 36645, 36647, 36648, 36652, 36653, 36654, 36660, 36661, 36662, 36663, 36666, 36672, 36673, 36675, 36679, 36687, 36689, 36690, 36691, 36692, 36693, 36696, 36701, 36702, 36709, 36765, 36768, 36769, 36772, 36773, 36774, 36789, 36790, 36792, 36798, 36800, 36801, 36806, 36810, 36811, 36813, 36816, 36818, 36819, 36821, 36832, 36835, 36836, 36840, 36846, 36849, 36853, 36854, 36859, 36862, 36866, 36868, 36872, 36876, 36888, 36891, 36904, 36905, 36911, 36906, 36908, 36909, 36915, 36916, 36919, 36927, 36931, 36932, 36940, 36955, 36957, 36962, 36966, 36967, 36972, 36976, 36980, 36985, 36997, 37e3, 37003, 37004, 37006, 37008, 37013, 37015, 37016, 37017, 37019, 37024, 37025, 37026, 37029, 37040, 37042, 37043, 37044, 37046, 37053, 37068, 37054, 37059, 37060, 37061, 37063, 37064, 37077, 37079, 37080, 37081, 37084, 37085, 37087, 37093, 37074, 37110, 37099, 37103, 37104, 37108, 37118, 37119, 37120, 37124, 37125, 37126, 37128, 37133, 37136, 37140, 37142, 37143, 37144, 37146, 37148, 37150, 37152, 37157, 37154, 37155, 37159, 37161, 37166, 37167, 37169, 37172, 37174, 37175, 37177, 37178, 37180, 37181, 37187, 37191, 37192, 37199, 37203, 37207, 37209, 37210, 37211, 37217, 37220, 37223, 37229, 37236, 37241, 37242, 37243, 37249, 37251, 37253, 37254, 37258, 37262, 37265, 37267, 37268, 37269, 37272, 37278, 37281, 37286, 37288, 37292, 37293, 37294, 37296, 37297, 37298, 37299, 37302, 37307, 37308, 37309, 37311, 37314, 37315, 37317, 37331, 37332, 37335, 37337, 37338, 37342, 37348, 37349, 37353, 37354, 37356, 37357, 37358, 37359, 37360, 37361, 37367, 37369, 37371, 37373, 37376, 37377, 37380, 37381, 37382, 37383, 37385, 37386, 37388, 37392, 37394, 37395, 37398, 37400, 37404, 37405, 37411, 37412, 37413, 37414, 37416, 37422, 37423, 37424, 37427, 37429, 37430, 37432, 37433, 37434, 37436, 37438, 37440, 37442, 37443, 37446, 37447, 37450, 37453, 37454, 37455, 37457, 37464, 37465, 37468, 37469, 37472, 37473, 37477, 37479, 37480, 37481, 37486, 37487, 37488, 37493, 37494, 37495, 37496, 37497, 37499, 37500, 37501, 37503, 37512, 37513, 37514, 37517, 37518, 37522, 37527, 37529, 37535, 37536, 37540, 37541, 37543, 37544, 37547, 37551, 37554, 37558, 37560, 37562, 37563, 37564, 37565, 37567, 37568, 37569, 37570, 37571, 37573, 37574, 37575, 37576, 37579, 37580, 37581, 37582, 37584, 37587, 37589, 37591, 37592, 37593, 37596, 37597, 37599, 37600, 37601, 37603, 37605, 37607, 37608, 37612, 37614, 37616, 37625, 37627, 37631, 37632, 37634, 37640, 37645, 37649, 37652, 37653, 37660, 37661, 37662, 37663, 37665, 37668, 37669, 37671, 37673, 37674, 37683, 37684, 37686, 37687, 37703, 37704, 37705, 37712, 37713, 37714, 37717, 37719, 37720, 37722, 37726, 37732, 37733, 37735, 37737, 37738, 37741, 37743, 37744, 37745, 37747, 37748, 37750, 37754, 37757, 37759, 37760, 37761, 37762, 37768, 37770, 37771, 37773, 37775, 37778, 37781, 37784, 37787, 37790, 37793, 37795, 37796, 37798, 37800, 37803, 37812, 37813, 37814, 37818, 37801, 37825, 37828, 37829, 37830, 37831, 37833, 37834, 37835, 37836, 37837, 37843, 37849, 37852, 37854, 37855, 37858, 37862, 37863, 37881, 37879, 37880, 37882, 37883, 37885, 37889, 37890, 37892, 37896, 37897, 37901, 37902, 37903, 37909, 37910, 37911, 37919, 37934, 37935, 37937, 37938, 37939, 37940, 37947, 37951, 37949, 37955, 37957, 37960, 37962, 37964, 37973, 37977, 37980, 37983, 37985, 37987, 37992, 37995, 37997, 37998, 37999, 38001, 38002, 38020, 38019, 38264, 38265, 38270, 38276, 38280, 38284, 38285, 38286, 38301, 38302, 38303, 38305, 38310, 38313, 38315, 38316, 38324, 38326, 38330, 38333, 38335, 38342, 38344, 38345, 38347, 38352, 38353, 38354, 38355, 38361, 38362, 38365, 38366, 38367, 38368, 38372, 38374, 38429, 38430, 38434, 38436, 38437, 38438, 38444, 38449, 38451, 38455, 38456, 38457, 38458, 38460, 38461, 38465, 38482, 38484, 38486, 38487, 38488, 38497, 38510, 38516, 38523, 38524, 38526, 38527, 38529, 38530, 38531, 38532, 38537, 38545, 38550, 38554, 38557, 38559, 38564, 38565, 38566, 38569, 38574, 38575, 38579, 38586, 38602, 38610, 23986, 38616, 38618, 38621, 38622, 38623, 38633, 38639, 38641, 38650, 38658, 38659, 38661, 38665, 38682, 38683, 38685, 38689, 38690, 38691, 38696, 38705, 38707, 38721, 38723, 38730, 38734, 38735, 38741, 38743, 38744, 38746, 38747, 38755, 38759, 38762, 38766, 38771, 38774, 38775, 38776, 38779, 38781, 38783, 38784, 38793, 38805, 38806, 38807, 38809, 38810, 38814, 38815, 38818, 38828, 38830, 38833, 38834, 38837, 38838, 38840, 38841, 38842, 38844, 38846, 38847, 38849, 38852, 38853, 38855, 38857, 38858, 38860, 38861, 38862, 38864, 38865, 38868, 38871, 38872, 38873, 38877, 38878, 38880, 38875, 38881, 38884, 38895, 38897, 38900, 38903, 38904, 38906, 38919, 38922, 38937, 38925, 38926, 38932, 38934, 38940, 38942, 38944, 38947, 38950, 38955, 38958, 38959, 38960, 38962, 38963, 38965, 38949, 38974, 38980, 38983, 38986, 38993, 38994, 38995, 38998, 38999, 39001, 39002, 39010, 39011, 39013, 39014, 39018, 39020, 39083, 39085, 39086, 39088, 39092, 39095, 39096, 39098, 39099, 39103, 39106, 39109, 39112, 39116, 39137, 39139, 39141, 39142, 39143, 39146, 39155, 39158, 39170, 39175, 39176, 39185, 39189, 39190, 39191, 39194, 39195, 39196, 39199, 39202, 39206, 39207, 39211, 39217, 39218, 39219, 39220, 39221, 39225, 39226, 39227, 39228, 39232, 39233, 39238, 39239, 39240, 39245, 39246, 39252, 39256, 39257, 39259, 39260, 39262, 39263, 39264, 39323, 39325, 39327, 39334, 39344, 39345, 39346, 39349, 39353, 39354, 39357, 39359, 39363, 39369, 39379, 39380, 39385, 39386, 39388, 39390, 39399, 39402, 39403, 39404, 39408, 39412, 39413, 39417, 39421, 39422, 39426, 39427, 39428, 39435, 39436, 39440, 39441, 39446, 39454, 39456, 39458, 39459, 39460, 39463, 39469, 39470, 39475, 39477, 39478, 39480, 39495, 39489, 39492, 39498, 39499, 39500, 39502, 39505, 39508, 39510, 39517, 39594, 39596, 39598, 39599, 39602, 39604, 39605, 39606, 39609, 39611, 39614, 39615, 39617, 39619, 39622, 39624, 39630, 39632, 39634, 39637, 39638, 39639, 39643, 39644, 39648, 39652, 39653, 39655, 39657, 39660, 39666, 39667, 39669, 39673, 39674, 39677, 39679, 39680, 39681, 39682, 39683, 39684, 39685, 39688, 39689, 39691, 39692, 39693, 39694, 39696, 39698, 39702, 39705, 39707, 39708, 39712, 39718, 39723, 39725, 39731, 39732, 39733, 39735, 39737, 39738, 39741, 39752, 39755, 39756, 39765, 39766, 39767, 39771, 39774, 39777, 39779, 39781, 39782, 39784, 39786, 39787, 39788, 39789, 39790, 39795, 39797, 39799, 39800, 39801, 39807, 39808, 39812, 39813, 39814, 39815, 39817, 39818, 39819, 39821, 39823, 39824, 39828, 39834, 39837, 39838, 39846, 39847, 39849, 39852, 39856, 39857, 39858, 39863, 39864, 39867, 39868, 39870, 39871, 39873, 39879, 39880, 39886, 39888, 39895, 39896, 39901, 39903, 39909, 39911, 39914, 39915, 39919, 39923, 39927, 39928, 39929, 39930, 39933, 39935, 39936, 39938, 39947, 39951, 39953, 39958, 39960, 39961, 39962, 39964, 39966, 39970, 39971, 39974, 39975, 39976, 39977, 39978, 39985, 39989, 39990, 39991, 39997, 40001, 40003, 40004, 40005, 40009, 40010, 40014, 40015, 40016, 40019, 40020, 40022, 40024, 40027, 40029, 40030, 40031, 40035, 40041, 40042, 40028, 40043, 40040, 40046, 40048, 40050, 40053, 40055, 40059, 40166, 40178, 40183, 40185, 40203, 40194, 40209, 40215, 40216, 40220, 40221, 40222, 40239, 40240, 40242, 40243, 40244, 40250, 40252, 40261, 40253, 40258, 40259, 40263, 40266, 40275, 40276, 40287, 40291, 40290, 40293, 40297, 40298, 40299, 40304, 40310, 40311, 40315, 40316, 40318, 40323, 40324, 40326, 40330, 40333, 40334, 40338, 40339, 40341, 40342, 40343, 40344, 40353, 40362, 40364, 40366, 40369, 40373, 40377, 40380, 40383, 40387, 40391, 40393, 40394, 40404, 40405, 40406, 40407, 40410, 40414, 40415, 40416, 40421, 40423, 40425, 40427, 40430, 40432, 40435, 40436, 40446, 40458, 40450, 40455, 40462, 40464, 40465, 40466, 40469, 40470, 40473, 40476, 40477, 40570, 40571, 40572, 40576, 40578, 40579, 40580, 40581, 40583, 40590, 40591, 40598, 40600, 40603, 40606, 40612, 40616, 40620, 40622, 40623, 40624, 40627, 40628, 40629, 40646, 40648, 40651, 40661, 40671, 40676, 40679, 40684, 40685, 40686, 40688, 40689, 40690, 40693, 40696, 40703, 40706, 40707, 40713, 40719, 40720, 40721, 40722, 40724, 40726, 40727, 40729, 40730, 40731, 40735, 40738, 40742, 40746, 40747, 40751, 40753, 40754, 40756, 40759, 40761, 40762, 40764, 40765, 40767, 40769, 40771, 40772, 40773, 40774, 40775, 40787, 40789, 40790, 40791, 40792, 40794, 40797, 40798, 40808, 40809, 40813, 40814, 40815, 40816, 40817, 40819, 40821, 40826, 40829, 40847, 40848, 40849, 40850, 40852, 40854, 40855, 40862, 40865, 40866, 40867, 40869, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], ibm866: [1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 9617, 9618, 9619, 9474, 9508, 9569, 9570, 9558, 9557, 9571, 9553, 9559, 9565, 9564, 9563, 9488, 9492, 9524, 9516, 9500, 9472, 9532, 9566, 9567, 9562, 9556, 9577, 9574, 9568, 9552, 9580, 9575, 9576, 9572, 9573, 9561, 9560, 9554, 9555, 9579, 9578, 9496, 9484, 9608, 9604, 9612, 9616, 9600, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1025, 1105, 1028, 1108, 1031, 1111, 1038, 1118, 176, 8729, 183, 8730, 8470, 164, 9632, 160], "iso-8859-2": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 260, 728, 321, 164, 317, 346, 167, 168, 352, 350, 356, 377, 173, 381, 379, 176, 261, 731, 322, 180, 318, 347, 711, 184, 353, 351, 357, 378, 733, 382, 380, 340, 193, 194, 258, 196, 313, 262, 199, 268, 201, 280, 203, 282, 205, 206, 270, 272, 323, 327, 211, 212, 336, 214, 215, 344, 366, 218, 368, 220, 221, 354, 223, 341, 225, 226, 259, 228, 314, 263, 231, 269, 233, 281, 235, 283, 237, 238, 271, 273, 324, 328, 243, 244, 337, 246, 247, 345, 367, 250, 369, 252, 253, 355, 729], "iso-8859-3": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 294, 728, 163, 164, null, 292, 167, 168, 304, 350, 286, 308, 173, null, 379, 176, 295, 178, 179, 180, 181, 293, 183, 184, 305, 351, 287, 309, 189, null, 380, 192, 193, 194, null, 196, 266, 264, 199, 200, 201, 202, 203, 204, 205, 206, 207, null, 209, 210, 211, 212, 288, 214, 215, 284, 217, 218, 219, 220, 364, 348, 223, 224, 225, 226, null, 228, 267, 265, 231, 232, 233, 234, 235, 236, 237, 238, 239, null, 241, 242, 243, 244, 289, 246, 247, 285, 249, 250, 251, 252, 365, 349, 729], "iso-8859-4": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 260, 312, 342, 164, 296, 315, 167, 168, 352, 274, 290, 358, 173, 381, 175, 176, 261, 731, 343, 180, 297, 316, 711, 184, 353, 275, 291, 359, 330, 382, 331, 256, 193, 194, 195, 196, 197, 198, 302, 268, 201, 280, 203, 278, 205, 206, 298, 272, 325, 332, 310, 212, 213, 214, 215, 216, 370, 218, 219, 220, 360, 362, 223, 257, 225, 226, 227, 228, 229, 230, 303, 269, 233, 281, 235, 279, 237, 238, 299, 273, 326, 333, 311, 244, 245, 246, 247, 248, 371, 250, 251, 252, 361, 363, 729], "iso-8859-5": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 173, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 8470, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 167, 1118, 1119], "iso-8859-6": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, null, null, null, 164, null, null, null, null, null, null, null, 1548, 173, null, null, null, null, null, null, null, null, null, null, null, null, null, 1563, null, null, null, 1567, null, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, null, null, null, null, null, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, null, null, null, null, null, null, null, null, null, null, null, null, null], "iso-8859-7": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 8216, 8217, 163, 8364, 8367, 166, 167, 168, 169, 890, 171, 172, 173, null, 8213, 176, 177, 178, 179, 900, 901, 902, 183, 904, 905, 906, 187, 908, 189, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, null, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, null], "iso-8859-8": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, null, 162, 163, 164, 165, 166, 167, 168, 169, 215, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 247, 187, 188, 189, 190, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 8215, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, null, null, 8206, 8207, null], "iso-8859-10": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 260, 274, 290, 298, 296, 310, 167, 315, 272, 352, 358, 381, 173, 362, 330, 176, 261, 275, 291, 299, 297, 311, 183, 316, 273, 353, 359, 382, 8213, 363, 331, 256, 193, 194, 195, 196, 197, 198, 302, 268, 201, 280, 203, 278, 205, 206, 207, 208, 325, 332, 211, 212, 213, 214, 360, 216, 370, 218, 219, 220, 221, 222, 223, 257, 225, 226, 227, 228, 229, 230, 303, 269, 233, 281, 235, 279, 237, 238, 239, 240, 326, 333, 243, 244, 245, 246, 361, 248, 371, 250, 251, 252, 253, 254, 312], "iso-8859-13": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 8221, 162, 163, 164, 8222, 166, 167, 216, 169, 342, 171, 172, 173, 174, 198, 176, 177, 178, 179, 8220, 181, 182, 183, 248, 185, 343, 187, 188, 189, 190, 230, 260, 302, 256, 262, 196, 197, 280, 274, 268, 201, 377, 278, 290, 310, 298, 315, 352, 323, 325, 211, 332, 213, 214, 215, 370, 321, 346, 362, 220, 379, 381, 223, 261, 303, 257, 263, 228, 229, 281, 275, 269, 233, 378, 279, 291, 311, 299, 316, 353, 324, 326, 243, 333, 245, 246, 247, 371, 322, 347, 363, 252, 380, 382, 8217], "iso-8859-14": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 7682, 7683, 163, 266, 267, 7690, 167, 7808, 169, 7810, 7691, 7922, 173, 174, 376, 7710, 7711, 288, 289, 7744, 7745, 182, 7766, 7809, 7767, 7811, 7776, 7923, 7812, 7813, 7777, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 372, 209, 210, 211, 212, 213, 214, 7786, 216, 217, 218, 219, 220, 221, 374, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 373, 241, 242, 243, 244, 245, 246, 7787, 248, 249, 250, 251, 252, 253, 375, 255], "iso-8859-15": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 8364, 165, 352, 167, 353, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 381, 181, 182, 183, 382, 185, 186, 187, 338, 339, 376, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255], "iso-8859-16": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 260, 261, 321, 8364, 8222, 352, 167, 353, 169, 536, 171, 377, 173, 378, 379, 176, 177, 268, 322, 381, 8221, 182, 183, 382, 269, 537, 187, 338, 339, 376, 380, 192, 193, 194, 258, 196, 262, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 272, 323, 210, 211, 212, 336, 214, 346, 368, 217, 218, 219, 220, 280, 538, 223, 224, 225, 226, 259, 228, 263, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 273, 324, 242, 243, 244, 337, 246, 347, 369, 249, 250, 251, 252, 281, 539, 255], "koi8-r": [9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 8992, 9632, 8729, 8730, 8776, 8804, 8805, 160, 8993, 176, 178, 183, 247, 9552, 9553, 9554, 1105, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 1025, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 169, 1102, 1072, 1073, 1094, 1076, 1077, 1092, 1075, 1093, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1103, 1088, 1089, 1090, 1091, 1078, 1074, 1100, 1099, 1079, 1096, 1101, 1097, 1095, 1098, 1070, 1040, 1041, 1062, 1044, 1045, 1060, 1043, 1061, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1071, 1056, 1057, 1058, 1059, 1046, 1042, 1068, 1067, 1047, 1064, 1069, 1065, 1063, 1066], "koi8-u": [9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 8992, 9632, 8729, 8730, 8776, 8804, 8805, 160, 8993, 176, 178, 183, 247, 9552, 9553, 9554, 1105, 1108, 9556, 1110, 1111, 9559, 9560, 9561, 9562, 9563, 1169, 1118, 9566, 9567, 9568, 9569, 1025, 1028, 9571, 1030, 1031, 9574, 9575, 9576, 9577, 9578, 1168, 1038, 169, 1102, 1072, 1073, 1094, 1076, 1077, 1092, 1075, 1093, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1103, 1088, 1089, 1090, 1091, 1078, 1074, 1100, 1099, 1079, 1096, 1101, 1097, 1095, 1098, 1070, 1040, 1041, 1062, 1044, 1045, 1060, 1043, 1061, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1071, 1056, 1057, 1058, 1059, 1046, 1042, 1068, 1067, 1047, 1064, 1069, 1065, 1063, 1066], macintosh: [196, 197, 199, 201, 209, 214, 220, 225, 224, 226, 228, 227, 229, 231, 233, 232, 234, 235, 237, 236, 238, 239, 241, 243, 242, 244, 246, 245, 250, 249, 251, 252, 8224, 176, 162, 163, 167, 8226, 182, 223, 174, 169, 8482, 180, 168, 8800, 198, 216, 8734, 177, 8804, 8805, 165, 181, 8706, 8721, 8719, 960, 8747, 170, 186, 937, 230, 248, 191, 161, 172, 8730, 402, 8776, 8710, 171, 187, 8230, 160, 192, 195, 213, 338, 339, 8211, 8212, 8220, 8221, 8216, 8217, 247, 9674, 255, 376, 8260, 8364, 8249, 8250, 64257, 64258, 8225, 183, 8218, 8222, 8240, 194, 202, 193, 203, 200, 205, 206, 207, 204, 211, 212, 63743, 210, 218, 219, 217, 305, 710, 732, 175, 728, 729, 730, 184, 733, 731, 711], "windows-874": [8364, 129, 130, 131, 132, 8230, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 152, 153, 154, 155, 156, 157, 158, 159, 160, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, null, null, null, null, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, null, null, null, null], "windows-1250": [8364, 129, 8218, 131, 8222, 8230, 8224, 8225, 136, 8240, 352, 8249, 346, 356, 381, 377, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 152, 8482, 353, 8250, 347, 357, 382, 378, 160, 711, 728, 321, 164, 260, 166, 167, 168, 169, 350, 171, 172, 173, 174, 379, 176, 177, 731, 322, 180, 181, 182, 183, 184, 261, 351, 187, 317, 733, 318, 380, 340, 193, 194, 258, 196, 313, 262, 199, 268, 201, 280, 203, 282, 205, 206, 270, 272, 323, 327, 211, 212, 336, 214, 215, 344, 366, 218, 368, 220, 221, 354, 223, 341, 225, 226, 259, 228, 314, 263, 231, 269, 233, 281, 235, 283, 237, 238, 271, 273, 324, 328, 243, 244, 337, 246, 247, 345, 367, 250, 369, 252, 253, 355, 729], "windows-1251": [1026, 1027, 8218, 1107, 8222, 8230, 8224, 8225, 8364, 8240, 1033, 8249, 1034, 1036, 1035, 1039, 1106, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 152, 8482, 1113, 8250, 1114, 1116, 1115, 1119, 160, 1038, 1118, 1032, 164, 1168, 166, 167, 1025, 169, 1028, 171, 172, 173, 174, 1031, 176, 177, 1030, 1110, 1169, 181, 182, 183, 1105, 8470, 1108, 187, 1112, 1029, 1109, 1111, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103], "windows-1252": [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 352, 8249, 338, 141, 381, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732, 8482, 353, 8250, 339, 157, 382, 376, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255], "windows-1253": [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 136, 8240, 138, 8249, 140, 141, 142, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 152, 8482, 154, 8250, 156, 157, 158, 159, 160, 901, 902, 163, 164, 165, 166, 167, 168, 169, null, 171, 172, 173, 174, 8213, 176, 177, 178, 179, 900, 181, 182, 183, 904, 905, 906, 187, 908, 189, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, null, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, null], "windows-1254": [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 352, 8249, 338, 141, 142, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732, 8482, 353, 8250, 339, 157, 158, 376, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 286, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 304, 350, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 287, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 305, 351, 255], "windows-1255": [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 138, 8249, 140, 141, 142, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732, 8482, 154, 8250, 156, 157, 158, 159, 160, 161, 162, 163, 8362, 165, 166, 167, 168, 169, 215, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 247, 187, 188, 189, 190, 191, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1520, 1521, 1522, 1523, 1524, null, null, null, null, null, null, null, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, null, null, 8206, 8207, null], "windows-1256": [8364, 1662, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 1657, 8249, 338, 1670, 1688, 1672, 1711, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 1705, 8482, 1681, 8250, 339, 8204, 8205, 1722, 160, 1548, 162, 163, 164, 165, 166, 167, 168, 169, 1726, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 1563, 187, 188, 189, 190, 1567, 1729, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 215, 1591, 1592, 1593, 1594, 1600, 1601, 1602, 1603, 224, 1604, 226, 1605, 1606, 1607, 1608, 231, 232, 233, 234, 235, 1609, 1610, 238, 239, 1611, 1612, 1613, 1614, 244, 1615, 1616, 247, 1617, 249, 1618, 251, 252, 8206, 8207, 1746], "windows-1257": [8364, 129, 8218, 131, 8222, 8230, 8224, 8225, 136, 8240, 138, 8249, 140, 168, 711, 184, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 152, 8482, 154, 8250, 156, 175, 731, 159, 160, null, 162, 163, 164, null, 166, 167, 216, 169, 342, 171, 172, 173, 174, 198, 176, 177, 178, 179, 180, 181, 182, 183, 248, 185, 343, 187, 188, 189, 190, 230, 260, 302, 256, 262, 196, 197, 280, 274, 268, 201, 377, 278, 290, 310, 298, 315, 352, 323, 325, 211, 332, 213, 214, 215, 370, 321, 346, 362, 220, 379, 381, 223, 261, 303, 257, 263, 228, 229, 281, 275, 269, 233, 378, 279, 291, 311, 299, 316, 353, 324, 326, 243, 333, 245, 246, 247, 371, 322, 347, 363, 252, 380, 382, 729], "windows-1258": [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 138, 8249, 338, 141, 142, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732, 8482, 154, 8250, 339, 157, 158, 376, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 258, 196, 197, 198, 199, 200, 201, 202, 203, 768, 205, 206, 207, 272, 209, 777, 211, 212, 416, 214, 215, 216, 217, 218, 219, 220, 431, 771, 223, 224, 225, 226, 259, 228, 229, 230, 231, 232, 233, 234, 235, 769, 237, 238, 239, 273, 241, 803, 243, 244, 417, 246, 247, 248, 249, 250, 251, 252, 432, 8363, 255], "x-mac-cyrillic": [1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 8224, 176, 1168, 163, 167, 8226, 182, 1030, 174, 169, 8482, 1026, 1106, 8800, 1027, 1107, 8734, 177, 8804, 8805, 1110, 181, 1169, 1032, 1028, 1108, 1031, 1111, 1033, 1113, 1034, 1114, 1112, 1029, 172, 8730, 402, 8776, 8710, 171, 187, 8230, 160, 1035, 1115, 1036, 1116, 1109, 8211, 8212, 8220, 8221, 8216, 8217, 247, 8222, 1038, 1118, 1039, 1119, 8470, 1025, 1105, 1103, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 8364] }, PV = W_e; function ls(t, e) { return e && e[t] || null } function Rs(t, e) { var n = e.indexOf(t); return n === -1 ? null : n } function br(t) { return PV[t] } function LV(t) { if (t > 39419 && t < 189e3 || t > 1237575) return null; if (t === 7457) return 59335; var e = 0, n = 0, r = br("gb18030-ranges"), i; for (i = 0; i < r.length; ++i) { var l = r[i]; if (l[0] <= t) e = l[0], n = l[1]; else break } return n + t - e } function FV(t) { if (t === 59335) return 7457; var e = 0, n = 0, r = br("gb18030-ranges"), i; for (i = 0; i < r.length; ++i) { var l = r[i]; if (l[1] <= t) e = l[1], n = l[0]; else break } return n + t - e } function jV(t) { return ib = ib || br("jis0208").map((n, r) => lt(r, 8272, 8835) ? null : n), ib.indexOf(t) } var ib; function UV(t) { lb = lb || br("big5").map((n, r) => r < 32 * 157 ? null : n); var e = lb; return t === 9552 || t === 9566 || t === 9569 || t === 9578 || t === 21313 || t === 21317 ? e.lastIndexOf(t) : Rs(t, e) } var lb; var m5 = class { constructor(e) { let { fatal: n } = e; this.fatal = n, this.gb18030_first = 0, this.gb18030_second = 0, this.gb18030_third = 0 } handler(e, n) { if (n === _t && this.gb18030_first === 0 && this.gb18030_second === 0 && this.gb18030_third === 0) return Qt; n === _t && (this.gb18030_first !== 0 || this.gb18030_second !== 0 || this.gb18030_third !== 0) && (this.gb18030_first = 0, this.gb18030_second = 0, this.gb18030_third = 0, vt(this.fatal)); var r; if (this.gb18030_third !== 0) { r = null, lt(n, 48, 57) && (r = LV((((this.gb18030_first - 129) * 10 + this.gb18030_second - 48) * 126 + this.gb18030_third - 129) * 10 + n - 48)); var i = [this.gb18030_second, this.gb18030_third, n]; return this.gb18030_first = 0, this.gb18030_second = 0, this.gb18030_third = 0, r === null ? (e.prepend(i), vt(this.fatal)) : r } if (this.gb18030_second !== 0) return lt(n, 129, 254) ? (this.gb18030_third = n, null) : (e.prepend([this.gb18030_second, n]), this.gb18030_first = 0, this.gb18030_second = 0, vt(this.fatal)); if (this.gb18030_first !== 0) { if (lt(n, 48, 57)) return this.gb18030_second = n, null; var l = this.gb18030_first, s = null; this.gb18030_first = 0; var a = n < 127 ? 64 : 65; return (lt(n, 64, 126) || lt(n, 128, 254)) && (s = (l - 129) * 190 + (n - a)), r = s === null ? null : ls(s, br("gb18030")), r === null && ei(n) && e.prepend(n), r === null ? vt(this.fatal) : r } return ei(n) ? n : n === 128 ? 8364 : lt(n, 129, 254) ? (this.gb18030_first = n, null) : vt(this.fatal) } }, y5 = class { handler(e, n) { if (n === _t) return Qt; if ($r(n)) return n; if (n === 58853) return Zr(n); if (this.gbk_flag && n === 8364) return 128; var r = Rs(n, br("gb18030")); if (r !== null) { var i = sl(r / 190) + 129, l = r % 190, s = l < 63 ? 64 : 65; return [i, l + s] } if (this.gbk_flag) return Zr(n); r = FV(n); var a = sl(r / 10 / 126 / 10); r = r - a * 10 * 126 * 10; var o = sl(r / 10 / 126); r = r - o * 10 * 126; var u = sl(r / 10), c = r - u * 10; return [a + 129, o + 48, u + 129, c + 48] } constructor(e = {}, n = !1) { this.gbk_flag = n } }; var ip = class { constructor(e) { let { fatal: n } = e; this.fatal = n, this.Big5_lead = 0 } handler(e, n) { if (n === _t && this.Big5_lead !== 0) return this.Big5_lead = 0, vt(this.fatal); if (n === _t && this.Big5_lead === 0) return Qt; if (this.Big5_lead !== 0) { let r = this.Big5_lead, i = null; this.Big5_lead = 0; let l = n < 127 ? 64 : 98; switch ((lt(n, 64, 126) || lt(n, 161, 254)) && (i = (r - 129) * 157 + (n - l)), i) { case 1133: return [202, 772]; case 1135: return [202, 780]; case 1164: return [234, 772]; case 1166: return [234, 780] }let s = i === null ? null : ls(i, br("big5")); return s === null && ei(n) && e.prepend(n), s === null ? vt(this.fatal) : s } return ei(n) ? n : lt(n, 129, 254) ? (this.Big5_lead = n, null) : vt(this.fatal) } }, lp = class { constructor() { this.handler = function (e, n) { if (n === _t) return Qt; if ($r(n)) return n; let r = UV(n); if (r === null) return Zr(n); let i = sl(r / 157) + 129; if (i < 161) return Zr(n); let l = r % 157, s = l < 63 ? 64 : 98; return [i, l + s] } } }; var sp = class { constructor(e) { let { fatal: n } = e; this.fatal = n, this.eucjp_jis0212_flag = !1, this.eucjp_lead = 0 } handler(e, n) { if (n === _t && this.eucjp_lead !== 0) return this.eucjp_lead = 0, vt(this.fatal); if (n === _t && this.eucjp_lead === 0) return Qt; if (this.eucjp_lead === 142 && lt(n, 161, 223)) return this.eucjp_lead = 0, 65216 + n; if (this.eucjp_lead === 143 && lt(n, 161, 254)) return this.eucjp_jis0212_flag = !0, this.eucjp_lead = n, null; if (this.eucjp_lead !== 0) { let r = this.eucjp_lead; this.eucjp_lead = 0; let i = null; return lt(r, 161, 254) && lt(n, 161, 254) && (i = ls((r - 161) * 94 + (n - 161), br(this.eucjp_jis0212_flag ? "jis0212" : "jis0208"))), this.eucjp_jis0212_flag = !1, lt(n, 161, 254) || e.prepend(n), i === null ? vt(this.fatal) : i } return ei(n) ? n : n === 142 || n === 143 || lt(n, 161, 254) ? (this.eucjp_lead = n, null) : vt(this.fatal) } }, ap = class { handler(e, n) { if (n === _t) return Qt; if ($r(n)) return n; if (n === 165) return 92; if (n === 8254) return 126; if (lt(n, 65377, 65439)) return [142, n - 65377 + 161]; n === 8722 && (n = 65293); let r = Rs(n, br("jis0208")); if (r === null) return Zr(n); let i = sl(r / 94) + 161, l = r % 94 + 161; return [i, l] } }; var op = class { constructor(e) { let { fatal: n } = e; this.fatal = n, this.euckr_lead = 0 } handler(e, n) { if (n === _t && this.euckr_lead !== 0) return this.euckr_lead = 0, vt(this.fatal); if (n === _t && this.euckr_lead === 0) return Qt; if (this.euckr_lead !== 0) { let r = this.euckr_lead, i = null; this.euckr_lead = 0, lt(n, 65, 254) && (i = (r - 129) * 190 + (n - 65)); let l = i === null ? null : ls(i, br("euc-kr")); return i === null && ei(n) && e.prepend(n), l === null ? vt(this.fatal) : l } return ei(n) ? n : lt(n, 129, 254) ? (this.euckr_lead = n, null) : vt(this.fatal) } }, up = class { handler(e, n) { if (n === _t) return Qt; if ($r(n)) return n; let r = Rs(n, br("euc-kr")); if (r === null) return Zr(n); let i = sl(r / 190) + 129, l = r % 190 + 65; return [i, l] } }; var cp = class { constructor(e) { let { fatal: n } = e; this.fatal = n, this.states = { ASCII: 0, Roman: 1, Katakana: 2, LeadByte: 3, TrailByte: 4, EscapeStart: 5, Escape: 6 }, this.iso2022jp_decoder_state = this.states.ASCII, this.iso2022jp_decoder_output_state = this.states.ASCII, this.iso2022jp_lead = 0, this.iso2022jp_output_flag = !1 } handler(e, n) { switch (this.iso2022jp_decoder_state) { default: case this.states.ASCII: return n === 27 ? (this.iso2022jp_decoder_state = this.states.EscapeStart, null) : lt(n, 0, 127) && n !== 14 && n !== 15 && n !== 27 ? (this.iso2022jp_output_flag = !1, n) : n === _t ? Qt : (this.iso2022jp_output_flag = !1, vt(this.fatal)); case this.states.Roman: return n === 27 ? (this.iso2022jp_decoder_state = this.states.EscapeStart, null) : n === 92 ? (this.iso2022jp_output_flag = !1, 165) : n === 126 ? (this.iso2022jp_output_flag = !1, 8254) : lt(n, 0, 127) && n !== 14 && n !== 15 && n !== 27 && n !== 92 && n !== 126 ? (this.iso2022jp_output_flag = !1, n) : n === _t ? Qt : (this.iso2022jp_output_flag = !1, vt(this.fatal)); case this.states.Katakana: return n === 27 ? (this.iso2022jp_decoder_state = this.states.EscapeStart, null) : lt(n, 33, 95) ? (this.iso2022jp_output_flag = !1, 65344 + n) : n === _t ? Qt : (this.iso2022jp_output_flag = !1, vt(this.fatal)); case this.states.LeadByte: return n === 27 ? (this.iso2022jp_decoder_state = this.states.EscapeStart, null) : lt(n, 33, 126) ? (this.iso2022jp_output_flag = !1, this.iso2022jp_lead = n, this.iso2022jp_decoder_state = this.states.TrailByte, null) : n === _t ? Qt : (this.iso2022jp_output_flag = !1, vt(this.fatal)); case this.states.TrailByte: if (n === 27) return this.iso2022jp_decoder_state = this.states.EscapeStart, vt(this.fatal); if (lt(n, 33, 126)) { this.iso2022jp_decoder_state = this.states.LeadByte; let r = (this.iso2022jp_lead - 33) * 94 + n - 33, i = ls(r, br("jis0208")); return i === null ? vt(this.fatal) : i } return n === _t ? (this.iso2022jp_decoder_state = this.states.LeadByte, e.prepend(n), vt(this.fatal)) : (this.iso2022jp_decoder_state = this.states.LeadByte, vt(this.fatal)); case this.states.EscapeStart: return n === 36 || n === 40 ? (this.iso2022jp_lead = n, this.iso2022jp_decoder_state = this.states.Escape, null) : (e.prepend(n), this.iso2022jp_output_flag = !1, this.iso2022jp_decoder_state = this.iso2022jp_decoder_output_state, vt(this.fatal)); case this.states.Escape: { let r = this.iso2022jp_lead; this.iso2022jp_lead = 0; let i = null; if (r === 40 && n === 66 && (i = this.states.ASCII), r === 40 && n === 74 && (i = this.states.Roman), r === 40 && n === 73 && (i = this.states.Katakana), r === 36 && (n === 64 || n === 66) && (i = this.states.LeadByte), i !== null) { this.iso2022jp_decoder_state = this.iso2022jp_decoder_state = i; let l = this.iso2022jp_output_flag; return this.iso2022jp_output_flag = !0, l ? vt(this.fatal) : null } return e.prepend([r, n]), this.iso2022jp_output_flag = !1, this.iso2022jp_decoder_state = this.iso2022jp_decoder_output_state, vt(this.fatal) } } } }, pp = class { constructor() { this.states = { ASCII: 0, Roman: 1, jis0208: 2 }, this.iso2022jp_state = this.states.ASCII } handler(e, n) { if (n === _t && this.iso2022jp_state !== this.states.ASCII) return e.prepend(n), this.iso2022jp_state = this.states.ASCII, [27, 40, 66]; if (n === _t && this.iso2022jp_state === this.states.ASCII) return Qt; if ((this.iso2022jp_state === this.states.ASCII || this.iso2022jp_state === this.states.Roman) && (n === 14 || n === 15 || n === 27)) return Zr(65533); if (this.iso2022jp_state === this.states.ASCII && $r(n)) return n; if (this.iso2022jp_state === this.states.Roman && ($r(n) && n !== 92 && n !== 126 || n == 165 || n == 8254)) { if ($r(n)) return n; if (n === 165) return 92; if (n === 8254) return 126 } if ($r(n) && this.iso2022jp_state !== this.states.ASCII) return e.prepend(n), this.iso2022jp_state = this.states.ASCII, [27, 40, 66]; if ((n === 165 || n === 8254) && this.iso2022jp_state !== this.states.Roman) return e.prepend(n), this.iso2022jp_state = this.states.Roman, [27, 40, 74]; n === 8722 && (n = 65293); let r = Rs(n, br("jis0208")); if (r === null) return Zr(n); if (this.iso2022jp_state !== this.states.jis0208) return e.prepend(n), this.iso2022jp_state = this.states.jis0208, [27, 36, 66]; let i = sl(r / 94) + 33, l = r % 94 + 33; return [i, l] } }; var fp = class { handler(e, n) { return n === _t ? Qt : ei(n) ? n : 63360 + n - 128 } }, dp = class { handler(e, n) { return n === _t ? Qt : $r(n) ? n : lt(n, 63360, 63487) ? n - 63360 + 128 : Zr(n) } }; var hp = class { constructor(e) { let { fatal: n } = e; this.fatal = n, this.Shift_JIS_lead = 0 } handler(e, n) { if (n === _t && this.Shift_JIS_lead !== 0) return this.Shift_JIS_lead = 0, vt(this.fatal); if (n === _t && this.Shift_JIS_lead === 0) return Qt; if (this.Shift_JIS_lead !== 0) { var r = this.Shift_JIS_lead, i = null; this.Shift_JIS_lead = 0; var l = n < 127 ? 64 : 65, s = r < 160 ? 129 : 193; if ((lt(n, 64, 126) || lt(n, 128, 252)) && (i = (r - s) * 188 + n - l), lt(i, 8836, 10715)) return 48508 + i; var a = i === null ? null : ls(i, br("jis0208")); return a === null && ei(n) && e.prepend(n), a === null ? vt(this.fatal) : a } return ei(n) || n === 128 ? n : lt(n, 161, 223) ? 65216 + n : lt(n, 129, 159) || lt(n, 224, 252) ? (this.Shift_JIS_lead = n, null) : vt(this.fatal) } }, mp = class { handler(e, n) { if (n === _t) return Qt; if ($r(n) || n === 128) return n; if (n === 165) return 92; if (n === 8254) return 126; if (lt(n, 65377, 65439)) return n - 65377 + 161; n === 8722 && (n = 65293); var r = jV(n); if (r === null) return Zr(n); var i = sl(r / 188), l = i < 31 ? 129 : 193, s = r % 188, a = s < 63 ? 64 : 65; return [i + l, s + a] } }; var yp = class { constructor(e, n) { let { fatal: r } = n; this.fatal = r, this.index = e } handler(e, n) { if (n === _t) return Qt; if (ei(n)) return n; var r = this.index[n - 128]; return r === null ? vt(this.fatal) : r } }, gp = class { constructor(e) { this.index = e } handler(e, n) { if (n === _t) return Qt; if ($r(n)) return n; let r = Rs(n, this.index); return r === null && Zr(n), r + 128 } }; var MV = {}; rb.forEach(({ encodings: t }) => { t.forEach(e => { e.labels.forEach(n => { MV[n] = e }) }) }); var Y_e = { "UTF-8"() { return new rp }, GBK(t) { return new y5(t, !0) }, gb18030() { return new y5 }, Big5() { return new lp }, "EUC-JP"() { return new ap }, "EUC-KR"() { return new up }, "ISO-2022-JP"() { return new pp }, "UTF-16BE"() { return new h5(!0) }, "UTF-16LE"() { return new h5 }, "x-user-defined"() { return new dp }, Shift_JIS() { return new mp } }, $V = { "UTF-8"(t) { return new np(t) }, GBK(t) { return new m5(t) }, gb18030(t) { return new m5(t) }, Big5(t) { return new ip(t) }, "EUC-JP"(t) { return new sp(t) }, "EUC-KR"(t) { return new op(t) }, "ISO-2022-JP"(t) { return new cp(t) }, "UTF-16BE"(t) { return new d5(!0, t) }, "UTF-16LE"(t) { return new d5(!1, t) }, "x-user-defined"() { return new fp }, Shift_JIS(t) { return new hp(t) } }; rb.forEach(({ heading: t, encodings: e }) => { t == "Legacy single-byte encodings" && e.forEach(n => { let r = n.name, i = br(r.toLowerCase()); $V[r] = l => new yp(i, l), Y_e[r] = l => new gp(i, l) }) }); var zr = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36", Y2 = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1", Q2 = "https://gh.con.sh/https://raw.githubusercontent.com/jadehh/TV/js"; function BV(t) { return t === "srt" || t === "ass" || t === "ssa" } function vp(t) { return !isNaN(parseInt(t)) } function HV(t) { return t <= 0 ? "" : t > 1024 * 1024 * 1024 * 1024 ? (t /= 1024 * 1024 * 1024 * 1024, t.toFixed(2) + "TB") : t > 1024 * 1024 * 1024 ? (t /= 1024 * 1024 * 1024, t.toFixed(2) + "GB") : t > 1024 * 1024 ? (t /= 1024 * 1024, t.toFixed(2) + "MB") : (t /= 1024, t.toFixed(2) + "KB") } function _p(t) { return t.indexOf(".") > -1 ? t.substring(0, t.lastIndexOf(".")) : t } function u0(t = null, e = !1) { let n = []; if (t !== null) for (let r of Object.keys(t)) e ? n.push(`${r}=${encodeURIComponent(t[r])}`) : n.push(`${r}=${t[r]}`); return n.join("&") } function Z2(t) { let e = new Date().getTime(); for (; new Date().getTime() - e < t * 1e3;); } function Te(t, e) { let n = t.exec(e); return n !== null && n.length >= 1 && n.length >= 1 ? n[1] : "" } function VV(t, e) { let n = t.exec(e); return n !== null && n.length >= 1 && n.length >= 1 ? n[1] : e } function ti(t) { return Ve.enc.Base64.stringify(Ve.enc.Utf8.parse(t)) } function vi(t) { return Ve.enc.Utf8.stringify(Ve.enc.Base64.parse(t)) } function qV(t) { let e = t.split("/"); return e[0] + "//" + e[2] } function zV(t) { return t.replace(/^"(.*)"$/, "$1") } function sb(t) { return Ve.MD5(Ve.enc.Utf8.parse(t)).toString() } function GV() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (t) { let e = Math.random() * 16 | 0; return (t === "x" ? e : e & 3 | 8).toString(16) }) + "-" + new Date().getTime().toString(16) } function ab(t, e, n = "*") { let r = []; for (let i of t) r.push(i[e]); return r.join(n) } function JV(t) { return t.indexOf("https:////") > -1 && (t = "https://" + t.replaceAll("https:////", "")), t.indexOf("http:////") > -1 && (t = "http://" + t.replaceAll("http:////", "")), t } function Ep(t) { return t.replaceAll("&amp;", "&").replaceAll("&lt;", "<").replaceAll("&gt;", ">").replaceAll("&quot;", '"').replaceAll(/<\/?[^>]+>/g, "") } var lu = /(https:\/\/www\.aliyundrive\.com\/s\/[^"]+|https:\/\/www\.alipan\.com\/s\/[^"]+)/; var Ne = class { constructor() { this.vod_id = "", this.vod_name = "", this.vod_pic = Q2 + "/resources/ali.jpg", this.vod_remarks = "" } to_dict() { return JSON.stringify(this) } load_dic(e) { let n = JSON.parse(e); for (let r in n) this[r] = n[r] } load_data(e) { for (let n in JSON.parse(this.to_dict())) this[n] = e[n] } }, Be = class extends Ne { constructor() { super(), this.type_name = "", this.vod_year = "", this.vod_area = "", this.vod_actor = "", this.vod_director = "", this.vod_content = "", this.vod_play_from = "", this.vod_play_url = "" } to_short() { let e = new Ne; return e.load_dic(this.to_dict()), e } load_dic(e) { let n = JSON.parse(e); for (let r in JSON.parse(this.to_dict())) this[r] = n[r] } }; var cb = {}; function d0(t) { if (cb.strictMode) throw t; cb.silent || console.error(t.message) } function eq(t, ...e) { for (let [n, r] of e.entries()) r || d0(new Error(`${t} : Failed at [${n}]`)) } function hb(...t) { for (let [e, [n, r]] of t.entries()) n && (r || d0(new Error(`Conditional Assert : Failed at [${e}]`))) } function Fl(...t) { for (let [e, n] of t.entries()) n === void 0 && d0(new Error(`Param Check : Failed at [${e}]`)) } function wp(...t) { for (let [e, [n, r]] of t.entries()) n && r === void 0 && d0(new Error(`Conditional Param Check : Failed at [${e}]`)) } function He(t) { d0(new Error(`Invalid Playlist : ${t}`)) } function ma(t, e = 10) { if (typeof t == "number") return t; let n = e === 10 ? Number.parseFloat(t) : Number.parseInt(t, e); return Number.isNaN(n) ? 0 : n } function pb(t) { (t.startsWith("0x") || t.startsWith("0X")) && (t = t.slice(2)); let e = new Uint8Array(t.length / 2); for (let n = 0; n < t.length; n += 2)e[n / 2] = ma(t.slice(n, n + 2), 16); return e } function tq(t, e = 0, n = t.length) { n <= e && d0(new Error(`end must be larger than start : start=${e}, end=${n}`)); let r = []; for (let i = e; i < n; i++)r.push(`0${(255 & t[i]).toString(16).toUpperCase()}`.slice(-2)); return `0x${r.join("")}` } function _5(t, e, n = 0) { let r = -1; for (let i = 0, l = 0; i < t.length; i++)if (t[i] === e) { if (l++ === n) return [t.slice(0, i), t.slice(i + 1)]; r = i } return r !== -1 ? [t.slice(0, r), t.slice(r + 1)] : [t] } function fb(t) { let e = [], n = !1; for (let r of t) r !== "-" && r !== "_" ? n ? (e.push(r.toUpperCase()), n = !1) : e.push(r.toLowerCase()) : n = !0; return e.join("") } function ob(t) { return `${t.getUTCFullYear()}-${("0" + (t.getUTCMonth() + 1)).slice(-2)}-${("0" + t.getUTCDate()).slice(-2)}T${("0" + t.getUTCHours()).slice(-2)}:${("0" + t.getUTCMinutes()).slice(-2)}:${("0" + t.getUTCSeconds()).slice(-2)}.${("00" + t.getUTCMilliseconds()).slice(-3)}Z` } function Q_e() { return Object.assign({}, cb) } function mb(t, e) { e = Math.trunc(e) || 0; let n = t.length >>> 0; if (e < 0 && (e = n + e), !(e < 0 || e >= n)) return t[e] } var Sp = class { constructor({ type: e, uri: n, groupId: r, language: i, assocLanguage: l, name: s, isDefault: a, autoselect: o, forced: u, instreamId: c, characteristics: f, channels: m }) { Fl(e, r, s), hb([e === "SUBTITLES", n], [e === "CLOSED-CAPTIONS", c], [e === "CLOSED-CAPTIONS", !n], [u, e === "SUBTITLES"]), this.type = e, this.uri = n, this.groupId = r, this.language = i, this.assocLanguage = l, this.name = s, this.isDefault = a, this.autoselect = o, this.forced = u, this.instreamId = c, this.characteristics = f, this.channels = m } }, Tp = class { constructor({ uri: e, isIFrameOnly: n = !1, bandwidth: r, averageBandwidth: i, score: l, codecs: s, resolution: a, frameRate: o, hdcpLevel: u, allowedCpc: c, videoRange: f, stableVariantId: m, programId: d, audio: y = [], video: _ = [], subtitles: S = [], closedCaptions: w = [], currentRenditions: E = { audio: 0, video: 0, subtitles: 0, closedCaptions: 0 } }) { Fl(e, r), this.uri = e, this.isIFrameOnly = n, this.bandwidth = r, this.averageBandwidth = i, this.score = l, this.codecs = s, this.resolution = a, this.frameRate = o, this.hdcpLevel = u, this.allowedCpc = c, this.videoRange = f, this.stableVariantId = m, this.programId = d, this.audio = y, this.video = _, this.subtitles = S, this.closedCaptions = w, this.currentRenditions = E } }, xp = class { constructor({ id: e, value: n, uri: r, language: i }) { Fl(e, n || r), eq("SessionData cannot have both value and uri, shoud be either.", !(n && r)), this.id = e, this.value = n, this.uri = r, this.language = i } }, p0 = class { constructor({ method: e, uri: n, iv: r, format: i, formatVersion: l }) { Fl(e), wp([e !== "NONE", n]), hb([e === "NONE", !(n || r || i || l)]), this.method = e, this.uri = n, this.iv = r, this.format = i, this.formatVersion = l } }, g5 = class { constructor({ hint: e = !1, uri: n, mimeType: r, byterange: i }) { Fl(n), this.hint = e, this.uri = n, this.mimeType = r, this.byterange = i } }, Ap = class { constructor({ id: e, classId: n, start: r, end: i, duration: l, plannedDuration: s, endOnNext: a, attributes: o = {} }) { Fl(e), wp([a === !0, n]), hb([i, r], [i, r <= i], [l, l >= 0], [s, s >= 0]), this.id = e, this.classId = n, this.start = r, this.end = i, this.duration = l, this.plannedDuration = s, this.endOnNext = a, this.attributes = o } }, c0 = class { constructor({ type: e, duration: n, tagName: r, value: i }) { Fl(e), wp([e === "OUT", n]), wp([e === "RAW", r]), this.type = e, this.duration = n, this.tagName = r, this.value = i } }, f0 = class { constructor(e) { Fl(e), this.type = e } }, v5 = class extends f0 { constructor({ isMasterPlaylist: e, uri: n, version: r, independentSegments: i = !1, start: l, source: s }) { super("playlist"), Fl(e), this.isMasterPlaylist = e, this.uri = n, this.version = r, this.independentSegments = i, this.start = l, this.source = s } }, Op = class extends v5 { constructor(e = {}) { super(Object.assign(Object.assign({}, e), { isMasterPlaylist: !0 })); let { variants: n = [], currentVariant: r, sessionDataList: i = [], sessionKeyList: l = [] } = e; this.variants = n, this.currentVariant = r, this.sessionDataList = i, this.sessionKeyList = l } }, Np = class extends v5 { constructor(e = {}) { super(Object.assign(Object.assign({}, e), { isMasterPlaylist: !1 })); let { targetDuration: n, mediaSequenceBase: r = 0, discontinuitySequenceBase: i = 0, endlist: l = !1, playlistType: s, isIFrame: a, segments: o = [], prefetchSegments: u = [], lowLatencyCompatibility: c, partTargetDuration: f, renditionReports: m = [], skip: d = 0, hash: y } = e; this.targetDuration = n, this.mediaSequenceBase = r, this.discontinuitySequenceBase = i, this.endlist = l, this.playlistType = s, this.isIFrame = a, this.segments = o, this.prefetchSegments = u, this.lowLatencyCompatibility = c, this.partTargetDuration = f, this.renditionReports = m, this.skip = d, this.hash = y } }, Cp = class extends f0 { constructor({ uri: e, mimeType: n, data: r, duration: i, title: l, byterange: s, discontinuity: a, mediaSequenceNumber: o = 0, discontinuitySequence: u = 0, key: c, map: f, programDateTime: m, dateRange: d, markers: y = [], parts: _ = [] }) { super("segment"), this.uri = e, this.mimeType = n, this.data = r, this.duration = i, this.title = l, this.byterange = s, this.discontinuity = a, this.mediaSequenceNumber = o, this.discontinuitySequence = u, this.key = c, this.map = f, this.programDateTime = m, this.dateRange = d, this.markers = y, this.parts = _ } }, Rp = class extends f0 { constructor({ hint: e = !1, uri: n, duration: r, independent: i, byterange: l, gap: s }) { super("part"), Fl(n), this.hint = e, this.uri = n, this.duration = r, this.independent = i, this.duration = r, this.byterange = l, this.gap = s } }, Ip = class extends f0 { constructor({ uri: e, discontinuity: n, mediaSequenceNumber: r = 0, discontinuitySequence: i = 0, key: l }) { super("prefetch"), Fl(e), this.uri = e, this.discontinuity = n, this.mediaSequenceNumber = r, this.discontinuitySequence = i, this.key = l } }, kp = class { constructor({ uri: e, lastMSN: n, lastPart: r }) { Fl(e), this.uri = e, this.lastMSN = n, this.lastPart = r } }, KDe = Object.freeze({ __proto__: null, Rendition: Sp, Variant: Tp, SessionData: xp, Key: p0, MediaInitializationSection: g5, DateRange: Ap, SpliceInfo: c0, Playlist: v5, MasterPlaylist: Op, MediaPlaylist: Np, Segment: Cp, PartialSegment: Rp, PrefetchSegment: Ip, RenditionReport: kp }); function KV(t) { return function (e, n = " ") { return e && (e = e.trim(), n === " " || (e.startsWith(n) && (e = e.slice(1)), e.endsWith(n) && (e = e.slice(0, -1))), e) }(t, '"') } function Z_e(t) { let e = _5(t, ","); return { duration: ma(e[0]), title: decodeURIComponent(escape(e[1])) } } function nq(t) { let e = _5(t, "@"); return { length: ma(e[0]), offset: e[1] ? ma(e[1]) : -1 } } function eEe(t) { let e = _5(t, "x"); return { width: ma(e[0]), height: ma(e[1]) } } function tEe(t) { let e = "ALLOWED-CPC: Each entry must consit of KEYFORMAT and Content Protection Configuration", n = t.split(","); n.length === 0 && He(e); let r = []; for (let i of n) { let [l, s] = _5(i, ":"); l && s ? r.push({ format: l, cpcList: s.split("/") }) : He(e) } return r } function nEe(t) { let e = pb(t); return e.length !== 16 && He("IV must be a 128-bit unsigned integer"), e } function yb(t, e) { e.IV && t.compatibleVersion < 2 && (t.compatibleVersion = 2), (e.KEYFORMAT || e.KEYFORMATVERSIONS) && t.compatibleVersion < 5 && (t.compatibleVersion = 5) } function XV(t) { let e = {}; for (let r of function (i) { let l = [], s = !0, a = 0, o = []; for (let u = 0; u < i.length; u++) { let c = i[u]; s && c === "," ? (l.push(i.slice(a, u).trim()), a = u + 1) : c !== '"' && c !== "'" || (s ? (o.push(c), s = !1) : c === mb(o, -1) ? (o.pop(), s = !0) : o.push(c)) } return l.push(i.slice(a).trim()), l }(t)) { let [i, l] = _5(r, "="), s = KV(l); switch (i) { case "URI": e[i] = s; break; case "START-DATE": case "END-DATE": e[i] = new Date(s); break; case "IV": e[i] = nEe(s); break; case "BYTERANGE": e[i] = nq(s); break; case "RESOLUTION": e[i] = eEe(s); break; case "ALLOWED-CPC": e[i] = tEe(s); break; case "END-ON-NEXT": case "DEFAULT": case "AUTOSELECT": case "FORCED": case "PRECISE": case "CAN-BLOCK-RELOAD": case "INDEPENDENT": case "GAP": e[i] = s === "YES"; break; case "DURATION": case "PLANNED-DURATION": case "BANDWIDTH": case "AVERAGE-BANDWIDTH": case "FRAME-RATE": case "TIME-OFFSET": case "CAN-SKIP-UNTIL": case "HOLD-BACK": case "PART-HOLD-BACK": case "PART-TARGET": case "BYTERANGE-START": case "BYTERANGE-LENGTH": case "LAST-MSN": case "LAST-PART": case "SKIPPED-SEGMENTS": case "SCORE": case "PROGRAM-ID": e[i] = ma(s); break; default: i.startsWith("SCTE35-") ? e[i] = pb(s) : i.startsWith("X-") ? e[i] = (n = l).startsWith('"') ? KV(n) : n.startsWith("0x") || n.startsWith("0X") ? pb(n) : ma(n) : (i === "VIDEO-RANGE" && s !== "SDR" && s !== "HLG" && s !== "PQ" && He(`VIDEO-RANGE: unknown value "${s}"`), e[i] = s) } } var n; return e } function WV() { He("The file contains both media and master playlist tags.") } function rEe(t, e, n) { let r = function ({ attributes: s }) { return new Sp({ type: s.TYPE, uri: s.URI, groupId: s["GROUP-ID"], language: s.LANGUAGE, assocLanguage: s["ASSOC-LANGUAGE"], name: s.NAME, isDefault: s.DEFAULT, autoselect: s.AUTOSELECT, forced: s.FORCED, instreamId: s["INSTREAM-ID"], characteristics: s.CHARACTERISTICS, channels: s.CHANNELS }) }(e), i = t[fb(n)], l = function (s, a) { let o = !1; for (let u of s) { if (u.name === a.name) return "All EXT-X-MEDIA tags in the same Group MUST have different NAME attributes."; u.isDefault && (o = !0) } return o && a.isDefault ? "EXT-X-MEDIA A Group MUST NOT have more than one member with a DEFAULT attribute of YES." : "" }(i, r); l && He(l), i.push(r), r.isDefault && (t.currentRenditions[fb(n)] = i.length - 1) } function YV(t, e, n, r, i) { let l = new Tp({ uri: n, bandwidth: e.BANDWIDTH, averageBandwidth: e["AVERAGE-BANDWIDTH"], score: e.SCORE, codecs: e.CODECS, resolution: e.RESOLUTION, frameRate: e["FRAME-RATE"], hdcpLevel: e["HDCP-LEVEL"], allowedCpc: e["ALLOWED-CPC"], videoRange: e["VIDEO-RANGE"], stableVariantId: e["STABLE-VARIANT-ID"], programId: e["PROGRAM-ID"] }); for (let s of t) if (s.name === "EXT-X-MEDIA") { let a = s.attributes, o = a.TYPE; if (o && a["GROUP-ID"] || He("EXT-X-MEDIA TYPE attribute is REQUIRED."), e[o] === a["GROUP-ID"] && (rEe(l, s, o), o === "CLOSED-CAPTIONS")) { for (let { instreamId: u } of l.closedCaptions) if (u && u.startsWith("SERVICE") && i.compatibleVersion < 7) { i.compatibleVersion = 7; break } } } return function (s, a, o) { for (let u of ["AUDIO", "VIDEO", "SUBTITLES", "CLOSED-CAPTIONS"]) u === "CLOSED-CAPTIONS" && s[u] === "NONE" ? (o.isClosedCaptionsNone = !0, a.closedCaptions = []) : s[u] && !a[fb(u)].some(c => c.groupId === s[u]) && He(`${u} attribute MUST match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag whose TYPE attribute is ${u}.`) }(e, l, i), l.isIFrameOnly = r, l } function iEe(t, e) { if (t.method !== e.method || t.uri !== e.uri) return !1; if (t.iv) { if (!e.iv || t.iv.length !== e.iv.length) return !1; for (let n = 0; n < t.iv.length; n++)if (t.iv[n] !== e.iv[n]) return !1 } else if (e.iv) return !1; return t.format === e.format && t.formatVersion === e.formatVersion } function QV(t, e, n, r, i, l, s) { let a = new Cp({ uri: e, mediaSequenceNumber: i, discontinuitySequence: l }), o = !1, u = !1; for (let c = n; c <= r; c++) { let { name: f, value: m, attributes: d } = t[c]; if (f === "EXTINF") !Number.isInteger(m.duration) && s.compatibleVersion < 3 && (s.compatibleVersion = 3), Math.round(m.duration) > s.targetDuration && He("EXTINF duration, when rounded to the nearest integer, MUST be less than or equal to the target duration"), a.duration = m.duration, a.title = m.title; else if (f === "EXT-X-BYTERANGE") s.compatibleVersion < 4 && (s.compatibleVersion = 4), a.byterange = m; else if (f === "EXT-X-DISCONTINUITY") a.parts.length > 0 && He("EXT-X-DISCONTINUITY must appear before the first EXT-X-PART tag of the Parent Segment."), a.discontinuity = !0; else if (f === "EXT-X-KEY") a.parts.length > 0 && He("EXT-X-KEY must appear before the first EXT-X-PART tag of the Parent Segment."), yb(s, d), a.key = new p0({ method: d.METHOD, uri: d.URI, iv: d.IV, format: d.KEYFORMAT, formatVersion: d.KEYFORMATVERSIONS }); else if (f === "EXT-X-MAP") a.parts.length > 0 && He("EXT-X-MAP must appear before the first EXT-X-PART tag of the Parent Segment."), s.compatibleVersion < 5 && (s.compatibleVersion = 5), s.hasMap = !0, a.map = new g5({ uri: d.URI, byterange: d.BYTERANGE }); else if (f === "EXT-X-PROGRAM-DATE-TIME") a.programDateTime = m; else if (f === "EXT-X-DATERANGE") { let y = {}; for (let _ of Object.keys(d)) (_.startsWith("SCTE35-") || _.startsWith("X-")) && (y[_] = d[_]); a.dateRange = new Ap({ id: d.ID, classId: d.CLASS, start: d["START-DATE"], end: d["END-DATE"], duration: d.DURATION, plannedDuration: d["PLANNED-DURATION"], endOnNext: d["END-ON-NEXT"], attributes: y }) } else if (f === "EXT-X-CUE-OUT") a.markers.push(new c0({ type: "OUT", duration: d && d.DURATION || m })); else if (f === "EXT-X-CUE-IN") a.markers.push(new c0({ type: "IN" })); else if (f === "EXT-X-CUE-OUT-CONT" || f === "EXT-X-CUE" || f === "EXT-OATCLS-SCTE35" || f === "EXT-X-ASSET" || f === "EXT-X-SCTE35") a.markers.push(new c0({ type: "RAW", tagName: f, value: m })); else if (f !== "EXT-X-PRELOAD-HINT" || d.TYPE) if (f === "EXT-X-PRELOAD-HINT" && d.TYPE === "PART" && u) He("Servers should not add more than one EXT-X-PRELOAD-HINT tag with the same TYPE attribute to a Playlist."); else if (f !== "EXT-X-PART" && f !== "EXT-X-PRELOAD-HINT" || d.URI) { if (f === "EXT-X-PRELOAD-HINT" && d.TYPE === "MAP") o && He("Servers should not add more than one EXT-X-PRELOAD-HINT tag with the same TYPE attribute to a Playlist."), o = !0, s.hasMap = !0, a.map = new g5({ hint: !0, uri: d.URI, byterange: { length: d["BYTERANGE-LENGTH"], offset: d["BYTERANGE-START"] || 0 } }); else if (f === "EXT-X-PART" || f === "EXT-X-PRELOAD-HINT" && d.TYPE === "PART") { f !== "EXT-X-PART" || d.DURATION || He("EXT-X-PART: DURATION attribute is mandatory"), f === "EXT-X-PRELOAD-HINT" && (u = !0); let y = new Rp({ hint: f === "EXT-X-PRELOAD-HINT", uri: d.URI, byterange: f === "EXT-X-PART" ? d.BYTERANGE : { length: d["BYTERANGE-LENGTH"], offset: d["BYTERANGE-START"] || 0 }, duration: d.DURATION, independent: d.INDEPENDENT, gap: d.GAP }); a.parts.push(y) } } else He("EXT-X-PART / EXT-X-PRELOAD-HINT: URI attribute is mandatory"); else He("EXT-X-PRELOAD-HINT: TYPE attribute is mandatory") } return a } function lEe(t, e, n, r, i, l, s) { let a = new Ip({ uri: e, mediaSequenceNumber: i, discontinuitySequence: l }); for (let o = n; o <= r; o++) { let { name: u, attributes: c } = t[o]; u === "EXTINF" ? He("A prefetch segment must not be advertised with an EXTINF tag.") : u === "EXT-X-DISCONTINUITY" ? He("A prefetch segment must not be advertised with an EXT-X-DISCONTINUITY tag.") : u === "EXT-X-PREFETCH-DISCONTINUITY" ? a.discontinuity = !0 : u === "EXT-X-KEY" ? (yb(s, c), a.key = new p0({ method: c.METHOD, uri: c.URI, iv: c.IV, format: c.KEYFORMAT, formatVersion: c.KEYFORMATVERSIONS })) : u === "EXT-X-MAP" && He("Prefetch segments must not be advertised with an EXT-X-MAP tag.") } return a } function sEe(t, e) { var n; let r = new Np, i = -1, l = 0, s = !1, a = !1, o = 0, u = null, c = null, f = !1; for (let [m, d] of t.entries()) { let { name: y, value: _, attributes: S, category: w } = d; if (w !== "Segment") { if (y === "EXT-X-VERSION") r.version === void 0 ? r.version = _ : He("A Playlist file MUST NOT contain more than one EXT-X-VERSION tag."); else if (y === "EXT-X-TARGETDURATION") r.targetDuration = e.targetDuration = _; else if (y === "EXT-X-MEDIA-SEQUENCE") r.segments.length > 0 && He("The EXT-X-MEDIA-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."), r.mediaSequenceBase = l = _; else if (y === "EXT-X-DISCONTINUITY-SEQUENCE") r.segments.length > 0 && He("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."), s && He("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before any EXT-X-DISCONTINUITY tag."), r.discontinuitySequenceBase = o = _; else if (y === "EXT-X-ENDLIST") r.endlist = !0; else if (y === "EXT-X-PLAYLIST-TYPE") r.playlistType = _; else if (y === "EXT-X-I-FRAMES-ONLY") e.compatibleVersion < 4 && (e.compatibleVersion = 4), r.isIFrame = !0; else if (y === "EXT-X-INDEPENDENT-SEGMENTS") r.independentSegments && He("EXT-X-INDEPENDENT-SEGMENTS tag MUST NOT appear more than once in a Playlist"), r.independentSegments = !0; else if (y === "EXT-X-START") r.start && He("EXT-X-START tag MUST NOT appear more than once in a Playlist"), typeof S["TIME-OFFSET"] != "number" && He("EXT-X-START: TIME-OFFSET attribute is REQUIRED"), r.start = { offset: S["TIME-OFFSET"], precise: S.PRECISE || !1 }; else if (y === "EXT-X-SERVER-CONTROL") S["CAN-BLOCK-RELOAD"] || He("EXT-X-SERVER-CONTROL: CAN-BLOCK-RELOAD=YES is mandatory for Low-Latency HLS"), r.lowLatencyCompatibility = { canBlockReload: S["CAN-BLOCK-RELOAD"], canSkipUntil: S["CAN-SKIP-UNTIL"], holdBack: S["HOLD-BACK"], partHoldBack: S["PART-HOLD-BACK"] }; else if (y === "EXT-X-PART-INF") S["PART-TARGET"] || He("EXT-X-PART-INF: PART-TARGET attribute is mandatory"), r.partTargetDuration = S["PART-TARGET"]; else if (y === "EXT-X-RENDITION-REPORT") S.URI || He("EXT-X-RENDITION-REPORT: URI attribute is mandatory"), S.URI.search(/^[a-z]+:/) === 0 && He("EXT-X-RENDITION-REPORT: URI must be relative to the playlist uri"), r.renditionReports.push(new kp({ uri: S.URI, lastMSN: S["LAST-MSN"], lastPart: S["LAST-PART"] })); else if (y === "EXT-X-SKIP") S["SKIPPED-SEGMENTS"] || He("EXT-X-SKIP: SKIPPED-SEGMENTS attribute is mandatory"), e.compatibleVersion < 9 && (e.compatibleVersion = 9), r.skip = S["SKIPPED-SEGMENTS"], l += r.skip; else if (y === "EXT-X-PREFETCH") { let E = lEe(t, _, i === -1 ? m : i, m - 1, l++, o, e); E && (E.discontinuity && (E.discontinuitySequence++, o = E.discontinuitySequence), E.key ? u = E.key : E.key = u, r.prefetchSegments.push(E)), a = !0, i = -1 } else if (typeof d == "string") { i === -1 && He("A URI line is not preceded by any segment tags"), r.targetDuration || He("The EXT-X-TARGETDURATION tag is REQUIRED"), a && He("These segments must appear after all complete segments."); let E = QV(t, d, i, m - 1, l++, o, e); E && ([o, u, c] = ZV(r, E, o, u, c), !f && E.parts.length > 0 && (f = !0)), i = -1 } } else i === -1 && (i = m), y === "EXT-X-DISCONTINUITY" && (s = !0) } if (i !== -1) { let m = QV(t, "", i, t.length - 1, l++, o, e); if (m) { let { parts: d } = m; d.length > 0 && !r.endlist && !(!((n = mb(d, -1)) === null || n === void 0) && n.hint) && He("If the Playlist contains EXT-X-PART tags and does not contain an EXT-X-ENDLIST tag, the Playlist must contain an EXT-X-PRELOAD-HINT tag with a TYPE=PART attribute"), ZV(r, m, u, c), !f && m.parts.length > 0 && (f = !0) } } return function (m) { let d = new Map, y = new Map, _ = !1, S = !1; for (let w = m.length - 1; w >= 0; w--) { let { programDateTime: E, dateRange: g } = m[w]; if (E && (S = !0), g && g.start) { _ = !0, g.endOnNext && (g.end || g.duration) && He("An EXT-X-DATERANGE tag with an END-ON-NEXT=YES attribute MUST NOT contain DURATION or END-DATE attributes."); let v = g.start.getTime(), x = g.duration || 0; g.end && g.duration && v + 1e3 * x !== g.end.getTime() && He("END-DATE MUST be equal to the value of the START-DATE attribute plus the value of the DURATION"), g.endOnNext && (g.end = d.get(g.classId)), d.set(g.classId, g.start); let O = g.end ? g.end.getTime() : g.start.getTime() + 1e3 * (g.duration || 0), N = y.get(g.classId); if (N) { for (let R of N) (R.start <= v && R.end > v || R.start >= v && R.start < O) && He("DATERANGE tags with the same CLASS should not overlap"); N.push({ start: v, end: O }) } else g.classId && y.set(g.classId, [{ start: v, end: O }]) } } _ && !S && He("If a Playlist contains an EXT-X-DATERANGE tag, it MUST also contain at least one EXT-X-PROGRAM-DATE-TIME tag.") }(r.segments), r.lowLatencyCompatibility && function ({ lowLatencyCompatibility: m, targetDuration: d, partTargetDuration: y, segments: _, renditionReports: S }, w) { let { canSkipUntil: E, holdBack: g, partHoldBack: v } = m; if (E < 6 * d && He("The Skip Boundary must be at least six times the EXT-X-TARGETDURATION."), g < 3 * d && He("HOLD-BACK must be at least three times the EXT-X-TARGETDURATION."), w) { y === void 0 && He("EXT-X-PART-INF is required if a Playlist contains one or more EXT-X-PART tags"), v === void 0 && He("EXT-X-PART: PART-HOLD-BACK attribute is mandatory"), v < y && He("PART-HOLD-BACK must be at least PART-TARGET"); for (let [x, { parts: O }] of _.entries()) { O.length > 0 && x < _.length - 3 && He("Remove EXT-X-PART tags from the Playlist after they are greater than three target durations from the end of the Playlist."); for (let [N, { duration: R }] of O.entries()) R !== void 0 && (R > y && He("PART-TARGET is the maximum duration of any Partial Segment"), N < O.length - 1 && R < .85 * y && He("All Partial Segments except the last part of a segment must have a duration of at least 85% of PART-TARGET")) } } for (let x of S) { let O = _.at(-1); x.lastMSN !== null && x.lastMSN !== void 0 || (x.lastMSN = O.mediaSequenceNumber), (x.lastPart === null || x.lastPart === void 0) && O.parts.length > 0 && (x.lastPart = O.parts.length - 1) } }(r, f), r } function ZV(t, e, n, r, i) { let { discontinuity: l, key: s, map: a, byterange: o, uri: u } = e; if (l && (e.discontinuitySequence = n + 1), s || (e.key = r), a || (e.map = i), o && o.offset === -1) { let { segments: c } = t; if (c.length > 0) { let f = mb(c, -1); f.byterange && f.uri === u ? o.offset = f.byterange.offset + f.byterange.length : He("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST be a sub-range of the same media resource") } else He("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST appear in the Playlist file") } return t.segments.push(e), [e.discontinuitySequence, e.key, e.map] } function aEe(t, e) { let [n, r] = function (a) { let o = a.indexOf(":"); return o === -1 ? [a.slice(1).trim(), null] : [a.slice(1, o).trim(), a.slice(o + 1).trim()] }(t), i = function (a) { switch (a) { case "EXTM3U": case "EXT-X-VERSION": return "Basic"; case "EXTINF": case "EXT-X-BYTERANGE": case "EXT-X-DISCONTINUITY": case "EXT-X-PREFETCH-DISCONTINUITY": case "EXT-X-KEY": case "EXT-X-MAP": case "EXT-X-PROGRAM-DATE-TIME": case "EXT-X-DATERANGE": case "EXT-X-CUE-OUT": case "EXT-X-CUE-IN": case "EXT-X-CUE-OUT-CONT": case "EXT-X-CUE": case "EXT-OATCLS-SCTE35": case "EXT-X-ASSET": case "EXT-X-SCTE35": case "EXT-X-PART": case "EXT-X-PRELOAD-HINT": return "Segment"; case "EXT-X-TARGETDURATION": case "EXT-X-MEDIA-SEQUENCE": case "EXT-X-DISCONTINUITY-SEQUENCE": case "EXT-X-ENDLIST": case "EXT-X-PLAYLIST-TYPE": case "EXT-X-I-FRAMES-ONLY": case "EXT-X-SERVER-CONTROL": case "EXT-X-PART-INF": case "EXT-X-PREFETCH": case "EXT-X-RENDITION-REPORT": case "EXT-X-SKIP": return "MediaPlaylist"; case "EXT-X-MEDIA": case "EXT-X-STREAM-INF": case "EXT-X-I-FRAME-STREAM-INF": case "EXT-X-SESSION-DATA": case "EXT-X-SESSION-KEY": return "MasterPlaylist"; case "EXT-X-INDEPENDENT-SEGMENTS": case "EXT-X-START": return "MediaorMasterPlaylist"; default: return "Unknown" } }(n); if (function (a, o) { if (a === "Segment" || a === "MediaPlaylist") return o.isMasterPlaylist === void 0 ? void (o.isMasterPlaylist = !1) : void (o.isMasterPlaylist && WV()); if (a === "MasterPlaylist") { if (o.isMasterPlaylist === void 0) return void (o.isMasterPlaylist = !0); o.isMasterPlaylist === !1 && WV() } }(i, e), i === "Unknown") return null; i === "MediaPlaylist" && n !== "EXT-X-RENDITION-REPORT" && n !== "EXT-X-PREFETCH" && (e.hash[n] && He("There MUST NOT be more than one Media Playlist tag of each type in any Media Playlist"), e.hash[n] = !0); let [l, s] = function (a, o) { switch (a) { case "EXTM3U": case "EXT-X-DISCONTINUITY": case "EXT-X-ENDLIST": case "EXT-X-I-FRAMES-ONLY": case "EXT-X-INDEPENDENT-SEGMENTS": case "EXT-X-CUE-IN": return [null, null]; case "EXT-X-VERSION": case "EXT-X-TARGETDURATION": case "EXT-X-MEDIA-SEQUENCE": case "EXT-X-DISCONTINUITY-SEQUENCE": return [ma(o), null]; case "EXT-X-CUE-OUT": return Number.isNaN(Number(o)) ? [null, XV(o)] : [ma(o), null]; case "EXT-X-KEY": case "EXT-X-MAP": case "EXT-X-DATERANGE": case "EXT-X-MEDIA": case "EXT-X-STREAM-INF": case "EXT-X-I-FRAME-STREAM-INF": case "EXT-X-SESSION-DATA": case "EXT-X-SESSION-KEY": case "EXT-X-START": case "EXT-X-SERVER-CONTROL": case "EXT-X-PART-INF": case "EXT-X-PART": case "EXT-X-PRELOAD-HINT": case "EXT-X-RENDITION-REPORT": case "EXT-X-SKIP": return [null, XV(o)]; case "EXTINF": return [Z_e(o), null]; case "EXT-X-BYTERANGE": return [nq(o), null]; case "EXT-X-PROGRAM-DATE-TIME": return [new Date(o), null]; default: return [o, null] } }(n, r); return { name: n, category: i, value: l, attributes: s } } function oEe(t, e) { let n; return e.isMasterPlaylist ? n = function (r, i) { let l = new Op, s = !1; for (let [a, { name: o, value: u, attributes: c }] of r.entries()) if (o === "EXT-X-VERSION") l.version = u; else if (o === "EXT-X-STREAM-INF") { let f = r[a + 1]; (typeof f != "string" || f.startsWith("#EXT")) && He("EXT-X-STREAM-INF must be followed by a URI line"); let m = YV(r, c, f, !1, i); m && (typeof m.score == "number" && (s = !0, m.score < 0 && He("SCORE attribute on EXT-X-STREAM-INF must be positive decimal-floating-point number.")), l.variants.push(m)) } else if (o === "EXT-X-I-FRAME-STREAM-INF") { let f = YV(r, c, c.URI, !0, i); f && l.variants.push(f) } else if (o === "EXT-X-SESSION-DATA") { let f = new xp({ id: c["DATA-ID"], value: c.VALUE, uri: c.URI, language: c.LANGUAGE }); l.sessionDataList.some(m => m.id === f.id && m.language === f.language) && He("A Playlist MUST NOT contain more than one EXT-X-SESSION-DATA tag with the same DATA-ID attribute and the same LANGUAGE attribute."), l.sessionDataList.push(f) } else if (o === "EXT-X-SESSION-KEY") { c.METHOD === "NONE" && He("EXT-X-SESSION-KEY: The value of the METHOD attribute MUST NOT be NONE"); let f = new p0({ method: c.METHOD, uri: c.URI, iv: c.IV, format: c.KEYFORMAT, formatVersion: c.KEYFORMATVERSIONS }); l.sessionKeyList.some(m => iEe(m, f)) && He("A Master Playlist MUST NOT contain more than one EXT-X-SESSION-KEY tag with the same METHOD, URI, IV, KEYFORMAT, and KEYFORMATVERSIONS attribute values."), yb(i, c), l.sessionKeyList.push(f) } else o === "EXT-X-INDEPENDENT-SEGMENTS" ? (l.independentSegments && He("EXT-X-INDEPENDENT-SEGMENTS tag MUST NOT appear more than once in a Playlist"), l.independentSegments = !0) : o === "EXT-X-START" && (l.start && He("EXT-X-START tag MUST NOT appear more than once in a Playlist"), typeof c["TIME-OFFSET"] != "number" && He("EXT-X-START: TIME-OFFSET attribute is REQUIRED"), l.start = { offset: c["TIME-OFFSET"], precise: c.PRECISE || !1 }); if (s) for (let a of l.variants) typeof a.score != "number" && He("If any Variant Stream contains the SCORE attribute, then all Variant Streams in the Master Playlist SHOULD have a SCORE attribute"); if (i.isClosedCaptionsNone) for (let a of l.variants) a.closedCaptions.length > 0 && He("If there is a variant with CLOSED-CAPTIONS attribute of NONE, all EXT-X-STREAM-INF tags MUST have this attribute with a value of NONE"); return l }(t, e) : (n = sEe(t, e), !n.isIFrame && e.hasMap && e.compatibleVersion < 6 && (e.compatibleVersion = 6)), e.compatibleVersion > 1 && (!n.version || n.version < e.compatibleVersion) && He(`EXT-X-VERSION needs to be ${e.compatibleVersion} or higher.`), n } function rq(t) {
let e = { version: void 0, isMasterPlaylist: void 0, hasMap: !1, targetDuration: 0, compatibleVersion: 1, isClosedCaptionsNone: !1, hash: {} }, n = function (i, l) {
let s = []; for (let a of i.split(`
`)) { let o = a.trim(); if (o) if (o.startsWith("#")) { if (o.startsWith("#EXT")) { let u = aEe(o, l); u && s.push(u) } } else s.push(o) } return s.length !== 0 && s[0].name === "EXTM3U" || He("The EXTM3U tag MUST be the first line."), s
}(t, e), r = oEe(n, e); return r.source = t, r
} var uEe = ["#EXTINF", "#EXT-X-BYTERANGE", "#EXT-X-DISCONTINUITY", "#EXT-X-STREAM-INF", "#EXT-X-CUE-OUT", "#EXT-X-CUE-IN", "#EXT-X-KEY", "#EXT-X-MAP"], cEe = ["#EXT-X-MEDIA"], db = class extends Array { constructor(e) { super(), this.baseUri = e } push(...e) { for (let n of e) if (n.startsWith("#")) if (uEe.some(r => n.startsWith(r))) super.push(n); else { if (this.includes(n)) { if (cEe.some(r => n.startsWith(r))) continue; He(`Redundant item (${n})`) } super.push(n) } else super.push(n); return this.length } }; function gb(t, e) { let n = 1e3; e && (n = Math.pow(10, e)); let r = Math.round(t * n) / n; return e ? r.toFixed(e) : r } function pEe(t) { let e = [`DATA-ID="${t.id}"`]; return t.language && e.push(`LANGUAGE="${t.language}"`), t.value ? e.push(`VALUE="${t.value}"`) : t.uri && e.push(`URI="${t.uri}"`), `#EXT-X-SESSION-DATA:${e.join(",")}` } function iq(t, e) { let n = e ? "#EXT-X-SESSION-KEY" : "#EXT-X-KEY", r = [`METHOD=${t.method}`]; return t.uri && r.push(`URI="${t.uri}"`), t.iv && (t.iv.length !== 16 && He("IV must be a 128-bit unsigned integer"), r.push(`IV=${tq(t.iv)}`)), t.format && r.push(`KEYFORMAT="${t.format}"`), t.formatVersion && r.push(`KEYFORMATVERSIONS="${t.formatVersion}"`), `${n}:${r.join(",")}` } function fEe(t, e) { let n = e.isIFrameOnly ? "#EXT-X-I-FRAME-STREAM-INF" : "#EXT-X-STREAM-INF", r = [`BANDWIDTH=${e.bandwidth}`]; if (e.averageBandwidth && r.push(`AVERAGE-BANDWIDTH=${e.averageBandwidth}`), e.isIFrameOnly && r.push(`URI="${e.uri}"`), e.codecs && r.push(`CODECS="${e.codecs}"`), e.resolution && r.push(`RESOLUTION=${e.resolution.width}x${e.resolution.height}`), e.frameRate && r.push(`FRAME-RATE=${gb(e.frameRate, 3)}`), e.hdcpLevel && r.push(`HDCP-LEVEL=${e.hdcpLevel}`), e.audio.length > 0) { r.push(`AUDIO="${e.audio[0].groupId}"`); for (let i of e.audio) t.push(bp(i)) } if (e.video.length > 0) { r.push(`VIDEO="${e.video[0].groupId}"`); for (let i of e.video) t.push(bp(i)) } if (e.subtitles.length > 0) { r.push(`SUBTITLES="${e.subtitles[0].groupId}"`); for (let i of e.subtitles) t.push(bp(i)) } if (Q_e().allowClosedCaptionsNone && e.closedCaptions.length === 0) r.push("CLOSED-CAPTIONS=NONE"); else if (e.closedCaptions.length > 0) { r.push(`CLOSED-CAPTIONS="${e.closedCaptions[0].groupId}"`); for (let i of e.closedCaptions) t.push(bp(i)) } if (e.score && r.push(`SCORE=${e.score}`), e.allowedCpc) { let i = []; for (let { format: l, cpcList: s } of e.allowedCpc) i.push(`${l}:${s.join("/")}`); r.push(`ALLOWED-CPC="${i.join(",")}"`) } e.videoRange && r.push(`VIDEO-RANGE=${e.videoRange}`), e.stableVariantId && r.push(`STABLE-VARIANT-ID="${e.stableVariantId}"`), e.programId && r.push(`PROGRAM-ID=${e.programId}`), t.push(`${n}:${r.join(",")}`), e.isIFrameOnly || t.push(`${e.uri}`) } function bp(t) { let e = [`TYPE=${t.type}`, `GROUP-ID="${t.groupId}"`, `NAME="${t.name}"`]; return t.isDefault !== void 0 && e.push("DEFAULT=" + (t.isDefault ? "YES" : "NO")), t.autoselect !== void 0 && e.push("AUTOSELECT=" + (t.autoselect ? "YES" : "NO")), t.forced !== void 0 && e.push("FORCED=" + (t.forced ? "YES" : "NO")), t.language && e.push(`LANGUAGE="${t.language}"`), t.assocLanguage && e.push(`ASSOC-LANGUAGE="${t.assocLanguage}"`), t.instreamId && e.push(`INSTREAM-ID="${t.instreamId}"`), t.characteristics && e.push(`CHARACTERISTICS="${t.characteristics}"`), t.channels && e.push(`CHANNELS="${t.channels}"`), t.uri && e.push(`URI="${t.uri}"`), `#EXT-X-MEDIA:${e.join(",")}` } function dEe(t, e, n, r, i = 1, l = null) { let s = !1, a = ""; if (e.discontinuity && t.push("#EXT-X-DISCONTINUITY"), e.key) { let u = iq(e.key); u !== n && (t.push(u), n = u) } if (e.map) { let u = function (c) { let f = [`URI="${c.uri}"`]; return c.byterange && f.push(`BYTERANGE="${ub(c.byterange)}"`), `#EXT-X-MAP:${f.join(",")}` }(e.map); u !== r && (t.push(u), r = u) } if (e.programDateTime && t.push(`#EXT-X-PROGRAM-DATE-TIME:${ob(e.programDateTime)}`), e.dateRange && t.push(function (u) { let c = [`ID="${u.id}"`]; u.start && c.push(`START-DATE="${ob(u.start)}"`), u.end && c.push(`END-DATE="${ob(u.end)}"`), u.duration && c.push(`DURATION=${u.duration}`), u.plannedDuration && c.push(`PLANNED-DURATION=${u.plannedDuration}`), u.classId && c.push(`CLASS="${u.classId}"`), u.endOnNext && c.push("END-ON-NEXT=YES"); for (let f of Object.keys(u.attributes)) f.startsWith("X-") ? typeof u.attributes[f] == "number" ? c.push(`${f}=${u.attributes[f]}`) : c.push(`${f}="${u.attributes[f]}"`) : f.startsWith("SCTE35-") && c.push(`${f}=${tq(u.attributes[f])}`); return `#EXT-X-DATERANGE:${c.join(",")}` }(e.dateRange)), e.markers.length > 0 && (a = function (u, c) { let f = ""; for (let m of c) if (m.type === "OUT") f = "OUT", u.push(`#EXT-X-CUE-OUT:DURATION=${m.duration}`); else if (m.type === "IN") f = "IN", u.push("#EXT-X-CUE-IN"); else if (m.type === "RAW") { let d = m.value ? `:${m.value}` : ""; u.push(`#${m.tagName}${d}`) } return f }(t, e.markers)), e.parts.length > 0 && (s = function (u, c) { let f = !1; for (let m of c) if (m.hint) { let d = []; if (d.push("TYPE=PART", `URI="${m.uri}"`), m.byterange) { let { offset: y, length: _ } = m.byterange; d.push(`BYTERANGE-START=${y}`), _ && d.push(`BYTERANGE-LENGTH=${_}`) } u.push(`#EXT-X-PRELOAD-HINT:${d.join(",")}`), f = !0 } else { let d = []; d.push(`DURATION=${m.duration}`, `URI="${m.uri}"`), m.byterange && d.push(`BYTERANGE=${ub(m.byterange)}`), m.independent && d.push("INDEPENDENT=YES"), m.gap && d.push("GAP=YES"), u.push(`#EXT-X-PART:${d.join(",")}`) } return f }(t, e.parts)), s) return [n, r]; let o = i < 3 ? Math.round(e.duration) : gb(e.duration, function (u) { let c = u.toString(10), f = c.indexOf("."); return f === -1 ? 0 : c.length - f - 1 }(e.duration)); return t.push(`#EXTINF:${o},${unescape(encodeURIComponent(e.title || ""))}`), e.byterange && t.push(`#EXT-X-BYTERANGE:${ub(e.byterange)}`), l != null ? Array.prototype.push.call(t, l(e)) : Array.prototype.push.call(t, `${e.uri}`), [n, r, a] } function ub({ offset: t, length: e }) { return `${e}@${t}` } function Dp(t, e = null) {
Fl(t), eq("Not a playlist", t.type === "playlist"); let n = new db(t.uri); return n.push("#EXTM3U"), t.version && n.push(`#EXT-X-VERSION:${t.version}`), t.independentSegments && n.push("#EXT-X-INDEPENDENT-SEGMENTS"), t.start && n.push(`#EXT-X-START:TIME-OFFSET=${gb(t.start.offset)}${t.start.precise ? ",PRECISE=YES" : ""}`), t.isMasterPlaylist ? function (r, i) { for (let l of i.sessionDataList) r.push(pEe(l)); for (let l of i.sessionKeyList) r.push(iq(l, !0)); for (let l of i.variants) fEe(r, l) }(n, t) : function (r, i, l = null) { let s = "", a = "", o = !1; if (i.targetDuration && r.push(`#EXT-X-TARGETDURATION:${i.targetDuration}`), i.lowLatencyCompatibility) { let { canBlockReload: u, canSkipUntil: c, holdBack: f, partHoldBack: m } = i.lowLatencyCompatibility, d = []; d.push("CAN-BLOCK-RELOAD=" + (u ? "YES" : "NO")), c !== void 0 && d.push(`CAN-SKIP-UNTIL=${c}`), f !== void 0 && d.push(`HOLD-BACK=${f}`), m !== void 0 && d.push(`PART-HOLD-BACK=${m}`), r.push(`#EXT-X-SERVER-CONTROL:${d.join(",")}`) } i.partTargetDuration && r.push(`#EXT-X-PART-INF:PART-TARGET=${i.partTargetDuration}`), i.mediaSequenceBase && r.push(`#EXT-X-MEDIA-SEQUENCE:${i.mediaSequenceBase}`), i.discontinuitySequenceBase && r.push(`#EXT-X-DISCONTINUITY-SEQUENCE:${i.discontinuitySequenceBase}`), i.playlistType && r.push(`#EXT-X-PLAYLIST-TYPE:${i.playlistType}`), i.isIFrame && r.push("#EXT-X-I-FRAMES-ONLY"), i.skip > 0 && r.push(`#EXT-X-SKIP:SKIPPED-SEGMENTS=${i.skip}`); for (let u of i.segments) { let c = "";[s, a, c] = dEe(r, u, s, a, i.version, l), c === "OUT" ? o = !0 : c === "IN" && o && (o = !1) } i.playlistType === "VOD" && o && r.push("#EXT-X-CUE-IN"), i.prefetchSegments.length > 2 && He("The server must deliver no more than two prefetch segments"); for (let u of i.prefetchSegments) u.discontinuity && r.push("#EXT-X-PREFETCH-DISCONTINUITY"), r.push(`#EXT-X-PREFETCH:${u.uri}`); i.endlist && r.push("#EXT-X-ENDLIST"); for (let u of i.renditionReports) { let c = []; c.push(`URI="${u.uri}"`, `LAST-MSN=${u.lastMSN}`), u.lastPart !== void 0 && c.push(`LAST-PART=${u.lastPart}`), r.push(`#EXT-X-RENDITION-REPORT:${c.join(",")}`) } }(n, t, e), n.join(`
`)
} var sq = "hls_cache", Lp = [], au = {}, E5 = {}, su = {}, Pp = ""; function hEe(t, e) { if (Lp.push(t), au[t] = e, Lp.length > 5) { let n = Lp.shift(); mEe(n) } } function mEe(t) { delete au[t], delete Lp[t], new JSFile(sq + "/" + t).delete() } function yEe(t, e) { if (e.variants) for (let n of e.variants) n.uri.startsWith("http") || (n.uri = vb(t, n.uri)); if (e.segments) for (let n of e.segments) n.uri.startsWith("http") || (n.uri = vb(t, n.uri)), n.key && n.key.uri && !n.key.uri.startsWith("http") && (n.key.uri = vb(t, n.key.uri)); return e } async function aq(t, e) { let n = md5X(t); if (au[n]) return au[n]; let r = {}, i = t; for (; r = await req(i, { headers: e, redirect: 0 }), r.headers.location;)i = r.headers.location; if (r.code == 200) { var l = r.content; let s = yEe(i, rq(l)); return hEe(n, { code: r.code, plist: s, key: n, headers: r.headers }), au[n] } return {} } async function oq(t, e, n) { if (!au[t]) return {}; let i = au[t].plist.segments, l = !su[t]; if (l) { su[t] = {}; for (let c of i) { let f = md5X(c.uri + c.mediaSequenceNumber.toString()); su[t][f] = { file: sq + "/" + t + "/" + f, uri: c.uri, key: f, index: c.mediaSequenceNumber, order: c.mediaSequenceNumber, state: -1, read: !1 } } } for (let c in su[t]) { let f = su[t][c]; f.index >= e ? f.order = f.index - e : f.order = i.length - e + f.index } l && gEe(t, 5, n); let s = i[e], a = md5X(s.uri + s.mediaSequenceNumber.toString()), o = su[t][a]; if (o.state == 1 || o.state == -1) { let c = new JSFile(o.file); if (await c.exist()) return o.state = 1, { buffer: 3, code: 200, headers: { connection: "close", "content-type": "video/mp2t" }, content: c }; o.state = -1 } if (o.state == -1 && uq(t, o, n), o.state == 0) { var u = new JSProxyStream; u.head(200, { connection: "close", "content-type": "video/mp2t" }); let c = 0; return o.read = !0, new Promise(async function (f, m) { let d = new JSFile(o.file + ".dl"); await d.open("r"), async function y() { let _ = await d.size(); if (_ > c) { var S = await d.read(_ - c, c); await u.write(S), c = _ } if (o.state == 1 || o.state < 0) { u.done(), await d.close(), await d.delete(), o.read = !1, f(); return } setTimeout(y, 5) }() }), { buffer: 3, content: u } } } async function uq(t, e, n) { if (e.state >= 0 || !E5[t]) return; if (e.state = 0, await new JSFile(e.file).exist()) { e.state = 1; return } let r = new JSFile(e.file + ".dl"); await r.open("w"); let i = await req(e.uri, { buffer: 3, headers: n, stream: r, timeout: [5e3, 1e4] }); if (i.error || i.code >= 300) { await r.close(), e.read || await r.delete(), e.state = -1; return } await r.close(), e.read ? await r.copy(e.file) : await r.move(e.file), e.state = 1 } async function gEe(t, e, n) { Pp && Pp != t && delete E5[Pp], Pp = t, E5[t] = !0; for (let r = 0; r < e && E5[t]; r++)new Promise(function (i, l) { (async function s() { if (!E5[t]) { i(); return } let a = B.pickBy(su[t], function (u) { return u.state == -1 }), o = B.minBy(Object.values(a), function (u) { return u.order }); if (!o) { i(); return } await uq(t, o, n), setTimeout(s, 5) })() }) } function vb(t, e) { var n = t.split("/"), r = e.split("/"); n.pop(); for (var i = 0; i < r.length; i++)r[i] != "." && (r[i] == ".." ? n.pop() : n.push(r[i])); return n.join("/") } function cq(t) { let e = []; return Array.from(t.danmuku).forEach(n => { let r = Number(n[0]), i = n[4]; e.push(`<d p="${r},1,25,16777215,1659282294,0,8b53b65c,1108899274487246080"><![CDATA[${i}]]></d>`) }), String.raw`<?xml version="1.0" encoding="UTF-8"?><i><chatserver>chat.bilibili.com</chatserver><chatid>52175602</chatid><mission>0</mission><maxlimit>1000</maxlimit><state>0</state><real_name>0</real_name><source>k-v</source>` + e.join("") + "</i>" } var Fp = class { constructor() { this.siteUrl = "https://search.youku.com", this.reconnectTimes = 0, this.maxReconnectTimes = 5, this.jadeLog = new aa(this.getAppName(), "DEBUG") } getAppName() { return "\u5F39\u5E55" } getHeader() { return { "User-Agent": zr, Referer: this.siteUrl + "/" } } async reconnnect(e, n, r, i, l, s) { return await this.jadeLog.error("\u8BF7\u6C42\u5931\u8D25,\u8BF7\u68C0\u67E5url:" + e + ",\u4E24\u79D2\u540E\u91CD\u8BD5"), Z2(2), this.reconnectTimes < this.maxReconnectTimes ? (this.reconnectTimes = this.reconnectTimes + 1, await this.fetch(e, n, r, i, l, s)) : (await this.jadeLog.error("\u8BF7\u6C42\u5931\u8D25,\u91CD\u8FDE\u5931\u8D25"), null) } async getResponse(e, n, r, i, l, s, a) { return a.headers.location !== void 0 ? i ? (await this.jadeLog.debug(`\u8FD4\u56DE\u91CD\u5B9A\u5411\u8FDE\u63A5:${a.headers.location}`), a.headers.location) : this.fetch(a.headers.location, n, r, i, l, s) : a.content.length > 0 ? (this.reconnectTimes = 0, l ? { cookie: a.headers["set-cookie"], content: a.content } : a.content) : s === 1 ? (this.reconnectTimes = 0, a.content) : (await this.jadeLog.error(`\u8BF7\u6C42\u5931\u8D25,\u8BF7\u6C42url\u4E3A:${e},\u56DE\u590D\u5185\u5BB9\u4E3A:${JSON.stringify(a)}`), await this.reconnnect(e, n, r, i, l, s)) } async fetch(e, n, r, i = !1, l = !1, s = 0) { let a = u0(n), o = e; B.isEmpty(a) || (o = e + "?" + a); let u = new p5(o), c; return c = await req(u.toString(), { method: "get", headers: r, buffer: s, data: null }), c.code === 200 || c.code === 302 || c.code === 301 || l ? await this.getResponse(e, n, r, i, l, s, c) : (await this.jadeLog.error(`\u8BF7\u6C42\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u72B6\u6001\u7801\u51FA\u9519,\u8BF7\u6C42url\u4E3A:${u},\u56DE\u590D\u5185\u5BB9\u4E3A:${JSON.stringify(c)}`), await this.reconnnect(e, n, r, i, l, s)) } async getHtml(e = this.siteUrl, n = this.getHeader()) { let r = await this.fetch(e, null, n); if (B.isEmpty(r)) await this.jadeLog.error("html\u83B7\u53D6\u5931\u8D25", !0); else return $e(r) } async parseVodShortListFromJson(e, n) { for (let r of e.pageComponentList) if (r.commonData !== void 0) { let i = new Be, l = r.commonData; if (i.type_name = l.feature, l.notice !== void 0 && (i.vod_actor = l.notice.replaceAll("\u6F14\u5458\uFF1A", "").replaceAll(" ", "")), l.director !== void 0 && (i.vod_director = l.director.replaceAll("\u5BFC\u6F14\uFF1A", "").replaceAll(" ", "")), n.type_name === "\u7535\u5F71" ? i.vod_id = l.leftButtonDTO.action.value : i.vod_id = l.showId, i.vod_name = l.titleDTO.displayName, i.vod_name === n.vod_name || i.type_name.indexOf(n.vod_year) > -1 || i.type_name.indexOf(n.type_name) > -1 || i.vod_director === n.vod_director) return await this.jadeLog.debug(`\u5339\u914D\u89C6\u9891\u7F51\u7AD9\u6210\u529F,\u540D\u79F0\u4E3A:${i.vod_name},\u7C7B\u578B\u4E3A:${i.type_name},\u5BFC\u6F14\u4E3A:${i.vod_director}`, !0), i } return await this.jadeLog.warning("\u6CA1\u6709\u5339\u914D\u5230\u5F39\u5E55\u7F51\u7AD9"), null } async parseVodUrlFromJsonByEpisodeId(e, n) { for (let r of e.serisesList) if (vp(n.episodeId) && parseInt(n.episodeId).toString() === r.displayName) return r.action.value; return await this.jadeLog.error("\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u96C6\u6570"), "" } async downloadDanmu(e) { let n = JSON.parse(await this.fetch(e, null, this.getHeader())), i = { do: "set", key: "danmu", value: cq(n) }; return await req("http://127.0.0.1:9978/cache", { method: "post", data: i, postType: "form-data" }), "http://127.0.0.1:9978/cache?do=get&key=danmu" } async search(e, n) { let r = { pg: "1", keyword: e.vod_name }, i = JSON.parse(await this.fetch(this.siteUrl + "/api/search", r, this.getHeader())), l = await this.parseVodShortListFromJson(i, e); return B.isEmpty(l) ? "" : await this.getVideoUrl(l.vod_id, n) } async getVideoUrl(e, n) { let r = ""; if (!B.isEmpty(e)) { if (e.startsWith("http")) r = e; else { let i = { appScene: "show_episode", showIds: e }, l = JSON.parse(await this.fetch(this.siteUrl + "/api/search", i, this.getHeader())); r = await this.parseVodUrlFromJsonByEpisodeId(l, n) } if (!B.isEmpty(r)) return await this.jadeLog.debug(`\u5F39\u5E55\u89C6\u9891\u64AD\u653E\u8FDE\u63A5\u4E3A:${r}`), await this.downloadDanmu("https://dmku.thefilehosting.com/?ac=dm&url=" + r) } return r } async getDammu(e, n) { return await this.search(e, n) } }; var vEe = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1", pq = "76917ccccd4441c39457a04f6084fb2f"; function y0() { let t = {}; return t["User-Agent"] = vEe, t.Referer = "https://www.aliyundrive.com/", t } var h0 = class t { constructor() { this.driveId = "", this.userId = "", this.tokenType = "", this.accessToken = "", this.refreshToken = "" } static objectFrom(e) { if (B.isEmpty(e)) return new t; let n = JSON.parse(e), r = new t; return r.driveId = n.default_drive_id, r.userId = n.user_id, r.tokenType = n.token_type, r.accessToken = n.access_token, r.refreshToken = n.refresh_token, r } getDriveId() { return B.isEmpty(this.driveId) ? "" : this.driveId } getUserId() { return B.isEmpty(this.userId) ? "" : this.userId } getTokenType() { return B.isEmpty(this.tokenType) ? "" : this.tokenType } getAccessToken() { return B.isEmpty(this.accessToken) ? "" : this.accessToken } getRefreshToken() { return B.isEmpty(this.refreshToken) ? "" : this.refreshToken } setRefreshToken(e) { this.refreshToken = e } getAuthorization() { return this.getTokenType() + " " + this.getAccessToken() } isAuthed() { return this.getTokenType().length > 0 && this.getAccessToken().length > 0 } clean() { return this.refreshToken = "", this.accessToken = "", this } async save() { return await local.set("ali", "aliyundrive_user", this.toString()), this } toString() { return JSON.stringify(this.toDict()) } toDict() { return { default_drive_id: this.getDriveId(), user_id: this.getUserId(), token_type: this.getTokenType(), access_token: this.getAccessToken(), refresh_token: this.getRefreshToken() } } }, m0 = class t { constructor() { this.tokenType = "", this.accessToken = "", this.refreshToken = "" } static objectFrom(e) { if (B.isEmpty(e)) return new t; let n = JSON.parse(e), r = new t; return r.tokenType = n.token_type, r.accessToken = n.access_token, r.refreshToken = n.refresh_token, r } getTokenType() { return B.isEmpty(this.tokenType) ? "" : this.tokenType } getAccessToken() { return B.isEmpty(this.accessToken) ? "" : this.accessToken } getRefreshToken() { return B.isEmpty(this.refreshToken) ? "" : this.refreshToken } getAuthorization() { return this.getTokenType() + " " + this.getAccessToken() } clean() { return this.refreshToken = "", this.accessToken = "", this } async save() { return await local.set("ali", "aliyundrive_oauth", this.toString()), this } toString() { return JSON.stringify(this.toDict()) } toDict() { return { token_type: this.getTokenType(), access_token: this.getAccessToken(), refresh_token: this.getRefreshToken() } } }, jp = class t { constructor() { this.defaultDriveId = "", this.resourceDriveId = "", this.backupDriveId = "" } static objectFrom(e) { if (B.isEmpty(e)) return new t; let n = JSON.parse(e), r = new t; return r.defaultDriveId = n.default_drive_id, r.resourceDriveId = n.resource_drive_id, r.backupDriveId = n.backup_drive_id, r } getDefaultDriveId() { return B.isEmpty(this.defaultDriveId) ? "" : this.defaultDriveId } getResourceDriveId() { return B.isEmpty(this.resourceDriveId) ? "" : this.resourceDriveId } getBackupDriveId() { return B.isEmpty(this.backupDriveId) ? "" : this.backupDriveId } clean() { return this.defaultDriveId = "", this.backupDriveId = "", this.resourceDriveId = "", this } async save() { return await local.set("ali", "aliyundrive_drive", this.toString()), this } toString() { let e = { default_drive_id: this.getDefaultDriveId(), resource_drive_id: this.getResourceDriveId(), backup_drive_id: this.getBackupDriveId() }; return JSON.stringify(e) } }, Up = class t { constructor() { this.redirectUri = "" } static objectFrom(e) { if (B.isEmpty(e)) return new t; let n = JSON.parse(e), r = new t; return r.redirectUri = n.redirectUri, r } getRedirectUri() { return B.isEmpty(this.redirectUri) ? "" : this.redirectUri } getCode() { return this.getRedirectUri().split("code=")[1] } }, b5 = class t { constructor(e) { this.items = [], this.nextMarker = "", this.fileId = e, this.shareId = "", this.name = "", this.type = "", this.fileExtension = "", this.category = "", this.size = "", this.parent = "", this.shareToken = "" } static objectFrom(e, n) { if (B.isEmpty(e)) return new t; let r = JSON.parse(e), i = new t; return i.nextMarker = typeof r.next_marker > "u" ? "" : r.next_marker, i.fileId = typeof r.file_id > "u" ? "" : r.file_id, i.shareId = typeof r.share_id > "u" ? "" : r.share_id, i.shareToken = n, i.name = typeof r.name > "u" ? "" : r.name, i.type = typeof r.type > "u" ? "" : r.type, i.fileExtension = typeof r.file_extension > "u" ? "" : r.file_extension, i.category = typeof r.category > "u" ? "" : r.category, i.size = typeof r.size > "u" ? "" : r.size, i.parent = typeof r.parent_file_id > "u" ? "" : r.parent_file_id, typeof i.items < "u" && Array.isArray(r.items) && !B.isEmpty(r.items) && r.items.forEach(function (l) { let s = t.objectFrom(JSON.stringify(l), n); i.items.push(s) }), i } getItems() { return B.isEmpty(this.items) ? [] : this.items } getNextMarker() { return B.isEmpty(this.nextMarker) ? "" : this.nextMarker } getFileId() { return B.isEmpty(this.fileId) ? "" : this.fileId } getShareId() { return B.isEmpty(this.shareId) ? "" : this.shareId } getFileExtension() { return B.isEmpty(this.fileExtension) ? "" : this.fileExtension } getName() { return B.isEmpty(this.name) ? "" : this.name } getType() { return B.isEmpty(this.type) ? "" : this.type } getExt() { return B.isEmpty(this.fileExtension) ? "" : this.fileExtension } getCategory() { return B.isEmpty(this.category) ? "" : this.category } getSize() { return this.size === 0 ? "" : "[" + HV(this.size) + "]" } getParent() { return B.isEmpty(this.parent) ? "" : "[" + this.parent + "]" } parentFunc(e) { return this.parent = e, this } getDisplayName(e) { let n = this.getName(); if (n = n.replaceAll("\u73A9\u5076\u54E5 q \u9891\u9053\uFF1A\u3010\u795E\u79D8\u7684\u54E5\u54E5\u4EEC\u3011", ""), e === "\u7535\u89C6\u5267") { let r = ["4k", "4K"]; n = n.replaceAll("." + this.getFileExtension(), ""), n = n.replaceAll(" ", "").replaceAll(" ", ""); for (let l of r) n = n.replaceAll(l, ""); n = VV(/\.S01E(.*?)\./, n); let i = n.match(/\d+/g); i.length > 0 && (n = i[0]) } return n + " " + this.getParent() + " " + this.getSize() } }; async function _b() { return await local.get("ali", "aliyundrive_user") } async function Eb() { return await local.get("ali", "aliyundrive_oauth") } async function Mp(t, e) { return t = t.startsWith("https") ? t : "https://api.aliyundrive.com/" + t, (await g0(t, e, y0())).content } async function g0(t, e, n) { return e["Content-Type"] = "application/json", await req(t, { headers: n, method: "post", data: e }) } var dq = {}, S5 = [], ou = "", $p = "", ss = new m0, ni = new h0, w5 = new jp, hq = "TV", mq = "", Ye = new aa("\u963F\u91CC\u4E91\u76D8", "INFO"); async function yq() { let t = await _b(); ni = h0.objectFrom(t), B.isEmpty(ni.getRefreshToken()) ? await Ye.error("\u8BFB\u53D6\u7528\u6237\u7F13\u5B58\u5931\u8D25", !0) : await Ye.info("\u8BFB\u53D6\u7528\u6237\u7F13\u5B58\u6210\u529F", !0); let e = await Eb(); ss = m0.objectFrom(e), B.isEmpty(ss.getAccessToken()) ? await Ye.error("\u8BFB\u53D6\u6388\u6743\u5931\u8D25", !0) : await Ye.info("\u8BFB\u53D6\u6388\u6743\u6210\u529F", !0), dq = { "4K": "UHD", "2k": "QHD", \u8D85\u6E05: "QHD", \u9AD8\u6E05: "HD", \u6807\u6E05: "SD", \u6D41\u7545: "LD" }, await Ye.info("\u963F\u91CCApi\u521D\u59CB\u5316\u5B8C\u6210") } async function bb() { mq = await jEe() } async function _Ee() { try { await PEe() } catch (t) { await Ye.error("\u6E05\u7A7A\u7F13\u5B58\u6587\u4EF6\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:{}" + t) } await gq() } async function gq() { await local.set("file", "file_id", JSON.stringify({})) } async function vq(t) { return Eb().length === 0 && await ss.clean().save(), _b().length === 0 && await ni.clean().save(), $p = t, await xEe() } function EEe(t) { let e = {}; return e["x-share-token"] = t, e["X-Canary"] = "client=Android,app=adrive,version=v4.3.1", ni.isAuthed() && (e.authorization = ni.getAuthorization()), e } function bEe() { let t = y0(); return t["x-share-token"] = ou, t["X-Canary"] = "client=Android,app=adrive,version=v4.3.1", t } function wEe() { let t = {}; return t.authorization = ss.getAuthorization(), t } function wb(t) { return t.indexOf("TooManyRequests") > -1 ? (Z2(1), { code: 429, content: t }) : t.indexOf("AccessTokenInvalid") > -1 ? { code: 400, content: t } : t.indexOf("AccessTokenExpired") > -1 ? { code: 401, content: t } : t.indexOf("BadRequest") > -1 ? { code: 402, content: t } : t.indexOf("NotFound.File") > -1 || t.indexOf("ForbiddenFileInTheRecycleBin") > -1 ? { code: 403, content: t } : t.indexOf("ForbiddenNoPermission.File") > -1 ? { code: 500, content: t } : t.indexOf("InvalidParameter.ToParentFileId") > -1 ? { code: 501, content: t } : t.indexOf("NotFound.ParentFileId") > -1 ? { code: 502, content: t } : t.indexOf("The resource drive has exceeded the limit. File size exceeded drive capacity") > -1 ? { code: 503, content: t } : { code: 200, content: t } } async function SEe(t) { return t.indexOf("Too Many Requests") > -1 ? (await ss.clean().save(), !0) : !1 } async function _q(t, e) { let n = "https://api-cf.nn.ci/alist/ali_open/" + t, r = await g0(n, e, y0()), i = r.content; return await SEe(i) ? (await Ye.error(`Alist\u6388\u6743Token\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u592A\u591A\u8BF7\u6C42,\u5931\u8D25\u8BE6\u60C5\u4E3A:${i}`), !1) : (ss = await m0.objectFrom(i).save(), !0) } async function x5(t, e, n, r) { t = t.startsWith("https") ? t : "https://api.aliyundrive.com/" + t; let i = await g0(t, e, EEe(n)); return await Ye.debug(`\u6B63\u5728\u8BF7\u6C42\u9700\u8981\u963F\u91CC\u767B\u5F55\u7684url:${t},\u53C2\u6570\u4E3A:${JSON.stringify(e)}`), i = wb(i.content), r && i.code === 400 ? (await Ye.error("\u767B\u5F55\u963F\u91CC\u4E91\u76D8\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u767B\u5F55Token\u65E0\u6548,\u51C6\u5907\u91CD\u65B0\u6388\u6743,\u5931\u8D25\u8BE6\u60C5:" + i.content), await Eq(""), await x5(t, e, n, !1)) : (await Ye.debug(`\u5B8C\u6210\u8BF7\u6C42\u9700\u8981\u963F\u91CC\u767B\u5F55\u7684url:${t},\u53C2\u6570\u4E3A:${JSON.stringify(e)},\u8BF7\u6C42\u7ED3\u679C\u4E3A${i.content}`), i.content) } async function eo(t, e, n) { t = t.startsWith("https") ? t : "https://open.aliyundrive.com/adrive/v1.0/" + t, await Ye.debug(`\u6B63\u5728\u8BF7\u6C42\u9700\u8981\u963F\u91CC\u6388\u6743\u7684url:${t},\u53C2\u6570\u4E3A:${JSON.stringify(e)}`); let r = wEe(), i = await g0(t, e, r); if (i = wb(i.content), n && (i.code === 400 || i.code === 401 || i.code === 429 || i.code === 402 || i.code === 403)) { if (i.code === 400) await Ye.error("\u963F\u91CC\u6388\u6743\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u6388\u6743Token\u65E0\u6548,\u51C6\u5907\u91CD\u65B0\u6388\u6743,\u5931\u8D25\u8BE6\u60C5:" + i.content), await fq(); else if (i.code === 401) await Ye.error("\u963F\u91CC\u6388\u6743\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u6388\u6743Token\u5931\u6548,\u51C6\u5907\u91CD\u65B0\u6388\u6743,\u5931\u8D25\u8BE6\u60C5:" + i.content), await fq(); else { if (i.code === 402) return await Ye.error("\u963F\u91CC\u6388\u6743\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u6388\u6743Token\u5931\u6548,\u51C6\u5907\u91CD\u65B0\u6388\u6743,\u5931\u8D25\u8BE6\u60C5:" + i.content), await eo(t, e, !0); if (i.code === 403) return await Ye.error("\u963F\u91CC\u6388\u6743\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u6CA1\u6709\u627E\u5230\u7F13\u5B58\u6587\u4EF6,\u5931\u8D25\u8BE6\u60C5:" + i.content), await gq(), "retry"; if (i.code === 429) return await Ye.error(`\u6B63\u5728\u8BF7\u6C42\u9700\u8981\u963F\u91CC\u6388\u6743\u7684url:${t},\u8BF7\u6C42\u8FC7\u4E8E\u9891\u7E41,\u7A0D\u540E\u91CD\u8BD5,10\u5206\u949F\u540E\u518D\u91CD\u8BD5`), Z2(10 * 60), await eo(t, e, !0) } return await eo(t, e, !1) } return await Ye.debug(`\u5B8C\u6210\u8BF7\u6C42\u9700\u8981\u963F\u91CC\u6388\u6743\u7684url:${t},\u53C2\u6570\u4E3A:${JSON.stringify(e)},\u8BF7\u6C42\u7ED3\u679C\u4E3A:${JSON.stringify(i)}`), i.content } async function TEe(t, e) { t = t.startsWith("https") ? t : "https://api.aliyundrive.com/" + t; let n = bEe(); return (await g0(t, e, n)).content } async function fq() { await ss.clean().save(), await bq() } async function xEe() { try { let t = {}; t.share_id = $p, t.share_pwd = ""; let e = await Mp("v2/share_link/get_share_token", t), n = JSON.parse(e); return n.code === "ShareLink.Cancelled" && await Ye.error("\u5206\u4EAB\u94FE\u63A5\u88AB\u53D6\u6D88\u4E86"), ou = n.share_token, ou } catch (t) { await Ye.error("\u5237\u65B0Share Token\u5931\u8D25" + t) } } async function Eq(t) { try { if (B.isEmpty(ni.getAccessToken()) || ni.getRefreshToken() !== t) { let e = {}; e.refresh_token = ni.getRefreshToken(), e.grant_type = "refresh_token", await Ye.info(`\u51C6\u5907\u767B\u5F55\u963F\u91CC\u4E91\u76D8,\u767B\u5F55Token\u4E3A:${ni.getRefreshToken()}`); let n = await Mp("https://auth.aliyundrive.com/v2/account/token", e); n.indexOf("InvalidParameter.RefreshToken") > 1 || B.isEmpty(n) ? B.isEmpty(n) ? await Ye.error(`\u767B\u5F55\u963F\u91CC\u4E91\u76D8\u5931\u8D25,\u767B\u5F55Token\u4E3A:${ni.getRefreshToken()},\u5931\u8D25\u539F\u56E0\u4E3A:\u68C0\u67E5Token\u662F\u5426\u6B63\u786E`) : await Ye.error(`\u767B\u5F55\u963F\u91CC\u4E91\u76D8\u5931\u8D25,\u767B\u5F55Token\u4E3A:${ni.getRefreshToken()},\u5931\u8D25\u539F\u56E0\u4E3A:\u68C0\u67E5Token\u662F\u5426\u6B63\u786E,\u8FD4\u56DE\u7ED3\u679C\u4E3A:${n}`) : (await Ye.info(`\u767B\u5F55\u963F\u91CC\u4E91\u76D8\u6210\u529F,\u767B\u5F55Token\u4E3A:${ni.getRefreshToken()}`), ni = await h0.objectFrom(n).save()) } else await Ye.info(`\u963F\u91CC\u4E91\u76D8\u5DF2\u767B\u5F55,\u65E0\u9700\u91CD\u590D\u767B\u5F55,\u767B\u5F55Token\u4E3A:${ni.getRefreshToken()}`); return !0 } catch (e) { return await Ye.error(`\u767B\u5F55\u963F\u91CC\u4E91\u76D8\u5931\u8D25,\u767B\u5F55Token\u4E3A:${ni.getRefreshToken()},\u5931\u8D25\u539F\u56E0\u4E3A:${e}`), await ni.clean().save(), !0 } } async function AEe() { try { let t = {}; t.authorize = 1, t.scope = "user:base,file:all:read,file:all:write"; let e = "https://open.aliyundrive.com/oauth/users/authorize?client_id=" + pq + "&redirect_uri=https://alist.nn.ci/tool/aliyundrive/callback&scope=user:base,file:all:read,file:all:write&state="; await Ye.debug(`\u6B63\u5728\u8BF7\u6C42\u83B7\u53D6\u963F\u91CC\u6388\u6743\u7801\u7684url:${e},\u53C2\u6570\u4E3A:${t}`); let n = await x5(e, t, ou, !0); if (await Ye.debug(`\u5B8C\u6210\u8BF7\u6C42\u83B7\u53D6\u963F\u91CC\u6388\u6743\u7801\u7684url:${e},\u53C2\u6570\u4E3A:${t},\u8FD4\u56DE\u503C\u4E3A:${n}`), B.isEmpty(n) || n.indexOf("AccessTokenInvalid") > -1) B.isEmpty(n) ? await Ye.error("\u8BF7\u6C42\u83B7\u53D6\u963F\u91CC\u6388\u6743\u7801\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u8FD8\u672A\u767B\u5F55") : await Ye.error(`\u8BF7\u6C42\u83B7\u53D6\u963F\u91CC\u6388\u6743\u7801\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u8FD8\u672A\u767B\u5F55,\u5931\u8D25\u8BE6\u60C5\u4E3A:${n}`); else return await Ye.info(`\u8BF7\u6C42\u83B7\u53D6\u963F\u91CC\u6388\u6743\u7801\u6210\u529F,\u8FD4\u56DE\u503C\u4E3A:${n}`), await OEe(Up.objectFrom(n).getCode()) } catch (t) { return await Ye.error(`\u8BF7\u6C42\u83B7\u53D6\u963F\u91CC\u6388\u6743\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${t}`), !1 } } async function OEe(t) { try { let e = {}; return e.code = t, e.grant_type = "authorization_code", await _q("code", e) } catch { return await ss.clean().save(), !1 } } async function bq() { try { if (B.isEmpty(ss.getRefreshToken())) return await AEe(); if (B.isEmpty(ss.getAccessToken())) { let t = {}; return t.grant_type = "refresh_token", t.refresh_token = ss.getRefreshToken(), await _q("token", t) } return !0 } catch (t) { return await Ye.error("\u5237\u65B0\u6388\u6743Token\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + t), await ss.clean().save(), !1 } } async function wq(t, e, n, r) { await Ye.info(`\u6B63\u5728\u83B7\u53D6\u64AD\u653E\u94FE\u63A5,\u5206\u4EAB\u94FE\u63A5\u4E3A:${e}`); let i = {}; i.share_id = $p; let l = e.split("folder/").slice(-1)[0]; l.length !== 40 && (l = ""); let s = await Mp("adrive/v3/share_link/get_share_by_anonymous", i), a = JSON.parse(s), o = NEe(l, a), u = new b5(o); await Tq(u, n, r, t) } async function Sq(t, e, n) { let r = ["\u539F\u753B", "\u8D85\u6E05", "\u9AD8\u6E05", "\u6807\u6E05"], i = [], l = []; for (let s of t) i.push(s.getDisplayName(n) + "$" + s.getFileId() + "+" + s.shareId + "+" + s.shareToken + REe(s.getName(), e)); for (let s = 0; s < r.length; s++)l.push(i.join("#")); return { vod_play_url: l.join("$$$"), vod_play_from: r.map(s => s).join("$$$") } } async function Tq(t, e, n, r) { return await xq(t, e, n, "", r) } async function xq(t, e, n, r, i) { let l = {}, s = []; l.limit = 200, l.share_id = $p, l.share_token = i, l.parent_file_id = t.getFileId(), l.order_by = "name", l.order_direction = "ASC", r.length > 0 && (l.marker = r); let a = b5.objectFrom(await TEe("adrive/v2/file/list_by_share", l), ou); for (let o of a.getItems()) if (o.getType() === "folder") s.push(o); else if (o.getCategory() === "video" || o.getCategory() === "audio") { let u = !1; for (let c of e) o.getFileId() === c.getFileId() && (u = !0, await Ye.debug("\u89C6\u9891\u5206\u4EAB\u6587\u4EF6\u91CD\u590D,\u65E0\u9700\u6DFB\u52A0")); u || o.getCategory() === "video" && o.size / 1e6 > 10 && e.push(o.parentFunc(t.getName())) } else if (BV(o.getExt())) { let u = !1; for (let c of n) o.getFileId() === c.getFileId() && (u = !0, await Ye.debug("\u5B57\u5E55\u5206\u4EAB\u6587\u4EF6\u91CD\u590D,\u65E0\u9700\u6DFB\u52A0")); u || n.push(o) } a.getNextMarker().length > 0 && await xq(t, e, n, a.getNextMarker()); for (let o of s) await Tq(o, e, n) } function NEe(t, e) { let n = e.file_infos; if (!B.isEmpty(t)) return t; if (n.length === 0) return ""; let r = n[0]; return r.type === "folder" ? r.file_id : r.type === "file" && r.category === "video" ? "root" : "" } function CEe(t, e, n) { for (let r of e) { let i = _p(r.getName()).toLowerCase(); (t.indexOf(i) > -1 || i.indexOf(t) > -1) && n.push(r) } } function REe(t, e) { let n = []; if (CEe(_p(t).toLowerCase(), e, n), n.length === 0) for (let i of e) n.push(i); let r = ""; for (let i of n) r += "+" + _p(i.getName()) + "@@@" + i.getExt() + "@@@" + i.getFileId(); return r } async function IEe() { if (!B.isEmpty(w5) && !B.isEmpty(w5.default_drive_id)) return w5; let t = await eo("user/getDriveInfo", {}, !0), e = JSON.parse(t); return w5 = { default_drive_id: e.default_drive_id, resource_drive_id: e.resource_drive_id, backup_drive_id: e.backup_drive_id }, w5 } async function uu() { return B.isEmpty(ni.getDriveId()) ? (await IEe()).resource_drive_id : ni.getDriveId() } async function Aq(t, e, n) { let r = await uu(); S5.unshift(await T5(t, e, n)); let i = {}; if (i.file_id = S5[0], i.drive_id = r, S5[0] !== null) { let l = await eo("openFile/getDownloadUrl", i, !0); return l === "retry" ? (await Ye.info("\u5C1D\u8BD5\u91CD\u65B0\u83B7\u53D6\u4E0B\u8F7D\u94FE\u63A5"), await Aq(t, e)) : (await Ye.info("\u83B7\u53D6\u4E0B\u8F7D\u94FE\u63A5\u6210\u529F:\u8FD4\u56DE\u7ED3\u679C\u4E3A:" + l + "\u8BF7\u6C42\u53C2\u6570\u4E3A:" + JSON.stringify(i)), JSON.parse(l).url) } else return await Ye.error("\u83B7\u53D6\u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25:\u5931\u8D25\u539F\u56E0:\u8BF7\u68C0\u67E5\u8F6C\u5B58\u6587\u4EF6\u5931\u8D25\u539F\u56E0"), null } async function kEe(t, e, n) { let r = await uu(); S5.unshift(await T5(t, e, n)); let i = {}; i.file_id = S5[0], i.drive_id = r, i.category = "live_transcoding", i.url_expire_sec = "14400"; let l = await eo("openFile/getVideoPreviewPlayInfo", i, !0); return JSON.parse(l).video_preview_play_info } async function Oq(t, e, n) { try { await Ye.info("\u6B63\u5728\u83B7\u53D6\u539F\u753B\u7684\u64AD\u653E\u5730\u5740\u548C\u5B57\u5E55\u4E0B\u8F7D\u94FE\u63A5", !0); let r = await Aq(t, e, n); return await Ye.info("\u83B7\u53D6\u539F\u753B\u7684\u64AD\u653E\u5730\u5740\u548C\u5B57\u5E55\u4E0B\u8F7D\u94FE\u63A5\u6210\u529F", !0), await Ye.info(`\u4E0B\u8F7D\u5730\u5740\u4E3A:${r}`), JSON.stringify({ parse: 0, url: r, header: y0(), format: "application/octet-stream", subs: [] }) } catch (r) { await Ye.error("\u83B7\u53D6\u539F\u753B\u7684\u64AD\u653E\u5730\u5740\u548C\u5B57\u5E55\u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25:\u5931\u8D25\u539F\u56E0\u4E3A:" + r) } } async function Nq(t, e, n, r) { try { await Ye.info("\u6B63\u5728\u83B7\u53D6\u8F6C\u7801\u540E\u7684\u64AD\u653E\u5730\u5740\u548C\u5B57\u5E55\u4E0B\u8F7D\u94FE\u63A5", !0); let i = await kEe(t, n, r), l = DEe(i, e); return await Ye.info("\u83B7\u53D6\u8F6C\u7801\u540E\u7684\u64AD\u653E\u5730\u5740\u548C\u5B57\u5E55\u4E0B\u8F7D\u94FE\u63A5\u6210\u529F", !0), await Ye.info(`\u4E0B\u8F7D\u5730\u5740\u4E3A:${l}`), JSON.stringify({ parse: 0, url: l, header: y0(), format: "application/x-mpegURL", subs: [] }) } catch (i) { await Ye.error(`\u83B7\u53D6\u8F6C\u7801\u540E\u7684\u64AD\u653E\u5730\u5740\u548C\u5B57\u5E55\u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${i}`) } } function DEe(t, e) { if (!t.hasOwnProperty("live_transcoding_task_list")) return ""; let n = t.live_transcoding_task_list; for (let r = 0; r < n.length; ++r) { let i = n[r]; if (i.template_id === dq[e]) return i.url } return n[0].url } async function T5(t, e, n) { let r, i = {}; try { i = JSON.parse(await local.get("file", "file_id")) } catch { } if (r = i[t], typeof r == "string") await Ye.info(`file id\u4E3A:${t},\u5DF2\u7ECF\u7F13\u5B58\u8FC7,copy file id\u4E3A:${r}`); else { let l = '{"requests":[{"body":{"file_id":"{{data.fileId}}","share_id":"{{data.shareId}}","auto_rename":true,"to_parent_file_id":"{{data.tmpFolderFileId}}","to_drive_id":"{{data.driveId}}"},"headers":{"Content-Type":"application/json"},"id":"0","method":"POST","url":"/file/copy"}],"resource":"file"}', s = await uu(); l = iu(l, { data: { fileId: t, shareId: e, driveId: s, tmpFolderFileId: mq } }), await Ye.debug(`\u6B63\u5728\u8F6C\u5B58\u6587\u4EF6,\u6587\u4EF6id\u4E3A:${t}`, !0); let o = await x5("adrive/v2/batch", JSON.parse(l), n, !0), u = wb(o); if (u.code === 500 || u.code === 501 || u.code === 502 || u.code === 503 || u.code === 403) { if (u.code === 500) return await Ye.error("\u8F6C\u5B58\u6587\u4EF6\u5931\u8D25,\u5931\u8D25\u8BE6\u60C5:" + u.content), T5(t); if (u.code === 501) return await Ye.error("\u8F6C\u5B58\u6587\u4EF6\u5931\u8D25,\u5931\u8D25\u8BE6\u60C5:" + u.content), T5(t); if (u.code === 502) return await Ye.error("\u8F6C\u5B58\u6587\u4EF6\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u8F6C\u5B58\u6587\u4EF6\u5939\u4E0D\u5B58\u5728,\u5931\u8D25\u8BE6\u60C5:" + u.content), null; if (u.code === 503) return await Ye.error("\u8F6C\u5B58\u6587\u4EF6\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u8F6C\u5B58\u6587\u4EF6\u5939\u5927\u5C0F\u88AB\u9650\u5236" + u.content), await _Ee(), T5(t); if (u.code === 403) return await Ye.error("\u8F6C\u5B58\u6587\u4EF6\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u6CA1\u6709\u627E\u5230File Id,\u5931\u8D25\u8BE6\u60C5:" + u.content), null } await Ye.debug(`\u8F6C\u5B58\u6587\u4EF6\u6210\u529F,\u6587\u4EF6id\u4E3A:${t},\u8BF7\u6C42\u7ED3\u679C\u4E3A:${o}`), r = JSON.parse(o).responses[0].body.file_id; let c = {}; try { JSON.parse(await local.get("file", "file_id")) } catch { } c[t] = r, await local.set("file", "file_id", JSON.stringify(c)) } return r } async function PEe() { let t = await Cq(); t && (await LEe(t), await FEe()), await bb() } async function LEe(t) { let e = '{"requests":[{"body":{"file_id":"{{data.fileId}}","drive_id":"{{data.driveId}}"},"headers":{"Content-Type":"application/json"},"id":"0","method":"POST","url":"/recyclebin/trash"}],"resource":"file"}', n = await uu(); e = iu(e, { data: { fileId: t, driveId: n } }), await Ye.debug(`\u6B63\u5728\u51C6\u5907\u5220\u9664\u6587\u4EF6,\u6587\u4EF6id\u4E3A:${t}`, !0); let i = await x5("v2/batch", JSON.parse(e), ou, !0); return await Ye.debug(`\u5220\u9664\u6587\u4EF6\u6210\u529F,\u6587\u4EF6id\u4E3A:${t},\u8BF7\u6C42\u7ED3\u679C\u4E3A:${i}`), !0 } async function FEe() { let t = await uu(); return await x5("v2/recyclebin/clear", { drive_id: t }, ou, !0), await Ye.info("\u6E05\u7A7A\u56DE\u8F66\u7AD9\u6210\u529F", !0), !0 } async function jEe() { let t = await Cq(); if (t) return await Ye.info("\u6587\u4EF6\u5939\u5B58\u5728,\u65E0\u9700\u91CD\u65B0\u521B\u5EFA"), t; await Ye.debug("\u6587\u4EF6\u5939\u4E0D\u5B58\u5728,\u91CD\u65B0\u521B\u5EFA\u6587\u4EF6\u5939"); let e = await uu(), n = { check_name_mode: "refuse", drive_id: e, name: hq, parent_file_id: "root", type: "folder" }, r = await eo("openFile/create", n, !0), i = JSON.parse(r); return B.isEmpty(i.drive_id) ? (await Ye.error(`\u521B\u5EFA\u6587\u4EF6\u5939\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${r}`), null) : (await Ye.info("\u521B\u5EFA\u6587\u4EF6\u5939\u6210\u529F", !0), i.file_id) } async function Cq() { let t = await uu(), e = { drive_id: t, parent_file_id: "root", limit: 100, order_by: "updated_at", order_direction: "DESC" }, n = await eo("openFile/list", e, !0), r = JSON.parse(n); if (B.isEmpty(r.items)) return !1; for (let i of r.items) if (i.name === hq) return i.file_id; return !1 } async function Rq(t) { ni.setRefreshToken(t), await Eq(t), await bq() } var v0 = new aa("\u963F\u91CC\u4E91\u76D8"); async function qi(t) { await yq(), await Rq(t), await bb(), await v0.info("\u963F\u91CC\u4E91\u76D8\u521D\u59CB\u5316\u5B8C\u6210", !0) } function UEe(t) { let r = /https:\/\/www\.alipan\.com\/s\/([^\\/]+)(\/folder\/([^\\/]+))?|https:\/\/www\.aliyundrive\.com\/s\/([^\\/]+)(\/folder\/([^\\/]+))?/.exec(t).filter(i => i !== void 0); return r.length > 1 ? r[1] : "" } async function Tl(t, e = "\u7535\u5F71") { try { let n = [], r = []; for (let i of t) { let l = UEe(i), s = await vq(l); s !== void 0 && await wq(s, i, n, r) } return n.length > 0 ? await v0.info(`\u83B7\u53D6\u64AD\u653E\u94FE\u63A5\u6210\u529F,\u5206\u4EAB\u94FE\u63A5\u4E3A:${t.join(" ")}`) : await v0.error(`\u83B7\u53D6\u64AD\u653E\u94FE\u63A5\u5931\u8D25,\u68C0\u67E5\u5206\u4EAB\u94FE\u63A5\u4E3A:${t.join(" ")}`), Sq(n, r, e) } catch (n) { await v0.error("\u83B7\u53D6\u963F\u91CC\u89C6\u9891\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + n.message + " \u884C\u6570\u4E3A:" + n.lineNumber) } } async function xl(t, e, n) { n.length > 0 ? await v0.info(`\u51C6\u5907\u64AD\u653E,\u64AD\u653E\u7C7B\u578B\u4E3A:${t},\u64AD\u653E\u6587\u4EF6Id\u4E3A:${e},\u64AD\u653E\u6240\u6709\u7C7B\u578B\u4E3A:${n.join("")}`) : await v0.info(`\u51C6\u5907\u64AD\u653E,\u64AD\u653E\u7C7B\u578B\u4E3A:${t},\u64AD\u653E\u6587\u4EF6Id\u4E3A:${e},\u64AD\u653E\u6240\u6709\u7C7B\u578B\u4E3A:${n.join("")}`); let r = e.split("+"), i = r[1], l = r[0], s = r[2]; return t === "\u539F\u753B" ? await Oq(l, i, s) : await Nq(l, t, i, s) } var Sb = class t { constructor() { this.class = [], this.list = [], this.filters = [], this.header = { "User-Agent": zr }, this.format = "", this.danmaku = "", this.url = "", this.subs = [], this.parse = 0, this.jx = 0, this.page = 0, this.pagecount = 0, this.limit = 0, this.total = 0, this.extra = {} } get() { return new t } home(e, n, r) { return JSON.stringify({ class: e, list: n, filters: r }) } homeVod(e) { return JSON.stringify({ page: this.page, list: e, pagecount: this.page, total: this.page }) } category(e, n, r, i, l) { return JSON.stringify({ page: parseInt(n), pagecount: r, limit: i, total: l, list: e }) } search(e) { return JSON.stringify({ list: e, page: this.page, pagecount: this.pagecount, total: this.total }) } detail(e) { return JSON.stringify({ list: [e] }) } play(e) { return B.isEmpty(this.danmaku) ? JSON.stringify({ url: e, parse: this.parse, header: this.header, format: this.format, subs: this.subs, extra: this.extra, jx: this.jx }) : JSON.stringify({ url: e, parse: this.parse, header: this.header, format: this.format, subs: this.subs, danmaku: this.danmaku, extra: this.extra, jx: this.jx }) } playTxt(e) { return e } errorCategory(e) { let n = new Ne; return n.vod_name = "\u9519\u8BEF:\u6253\u5F00\u65E0\u6548", n.vod_id = "error", n.vod_pic = Q2 + "/resources/error.png", n.vod_remarks = e, JSON.stringify({ page: parseInt(0), pagecount: 0, limit: 0, total: 0, list: [n] }) } setClass(e) { return this.class = e, this } setVod(e) { return typeof e == "object" && Array.isArray(e) ? this.list = e : e !== void 0 && (this.list = [e]), this } setFilters(e) { return this.filters = e, this } setHeader(e) { return this.header = e, this } setParse(e) { return this.parse = e, this } setJx() { return this.jx = 1, this } setUrl(e) { return this.url = e, this } danmu(e) { return this.danmaku = e, this } setFormat(e) { return this.format = e, this } setSubs(e) { return this.subs = e, this } dash() { return this.format = "application/dash+xml", this } m3u8() { return this.format = "application/x-mpegURL", this } rtsp() { return this.format = "application/x-rtsp", this } octet() { return this.format = "application/octet-stream", this } setPage(e, n, r, i) { return this.page = e, this.limit = r, this.total = i, this.pagecount = n, this } toString() { return JSON.stringify(this) } }, Fe = class { constructor() { this.siteKey = "", this.siteType = 0, this.jadeLog = new aa(this.getAppName(), "DEBUG"), this.classes = [], this.filterObj = {}, this.result = new Sb, this.catOpenStatus = !0, this.danmuStaus = !1, this.reconnectTimes = 0, this.maxReconnectTimes = 5, this.siteUrl = "", this.vodList = [], this.homeVodList = [], this.count = 0, this.limit = 0, this.total = 0, this.page = 0, this.vodDetail = new Be, this.playUrl = "", this.header = {}, this.remove18 = !1, this.type_id_18 = 0, this.type_name_18 = "\u4F26\u7406\u7247", this.episodeObj = {}, this.danmuUrl = "", this.cfgObj = {} } async reconnnect(e, n, r, i, l, s) { return await this.jadeLog.error("\u8BF7\u6C42\u5931\u8D25,\u8BF7\u68C0\u67E5url:" + e + ",\u4E24\u79D2\u540E\u91CD\u8BD5"), Z2(2), this.reconnectTimes < this.maxReconnectTimes ? (this.reconnectTimes = this.reconnectTimes + 1, await this.fetch(e, n, r, i, l, s)) : (await this.jadeLog.error("\u8BF7\u6C42\u5931\u8D25,\u91CD\u8FDE\u5931\u8D25"), null) } getClassIdList() { let e = []; for (let n of this.classes) e.push(n.type_id); return e } getTypeDic(e, n) { return { type_name: e, type_id: n } } async getHtml(e = this.siteUrl, n = !1, r = this.getHeader()) { let i = await this.fetch(e, null, r, !1, !1, 0, n); if (B.isEmpty(i)) await this.jadeLog.error("html\u83B7\u53D6\u5931\u8D25", !0); else return $e(i) } getClassNameList() { let e = []; for (let n of this.classes) e.push(n.type_name); return e } async postReconnect(e, n, r) { return await this.jadeLog.error("\u8BF7\u6C42\u5931\u8D25,\u8BF7\u68C0\u67E5url:" + e + ",\u4E24\u79D2\u540E\u91CD\u8BD5"), Z2(2), this.reconnectTimes < this.maxReconnectTimes ? (this.reconnectTimes = this.reconnectTimes + 1, await this.post(e, n, r)) : (await this.jadeLog.error("\u8BF7\u6C42\u5931\u8D25,\u91CD\u8FDE\u5931\u8D25"), null) } getHeader() { return { "User-Agent": zr, Referer: this.siteUrl + "/" } } async getResponse(e, n, r, i, l, s, a, o) { return a.headers.location !== void 0 ? i ? (await this.jadeLog.debug(`\u8FD4\u56DE\u91CD\u5B9A\u5411\u8FDE\u63A5:${a.headers.location}`), a.headers.location) : this.fetch(a.headers.location, n, r, i, l, s, o) : a.content.length > 0 ? (this.reconnectTimes = 0, l ? { cookie: a.headers["set-cookie"], content: a.content } : a.content) : s === 1 ? (this.reconnectTimes = 0, a.content) : (await this.jadeLog.error(`\u8BF7\u6C42\u5931\u8D25,\u8BF7\u6C42url\u4E3A:${e},\u56DE\u590D\u5185\u5BB9\u4E3A:${JSON.stringify(a)}`), await this.reconnnect(e, n, r, i, l, s, o)) } async fetch(e, n, r, i = !1, l = !1, s = 0, a = !1) { let o = u0(n), u = e; B.isEmpty(o) || (u = e + "?" + o); let c = new p5(u), f; return i ? f = await req(c.toString(), { method: "get", headers: r, buffer: s, data: null, redirect: 2, proxy: a }) : f = await req(c.toString(), { method: "get", headers: r, buffer: s, data: null, proxy: a }), f.code === 200 || f.code === 302 || f.code === 301 || l ? await this.getResponse(e, n, r, i, l, s, f, a) : (await this.jadeLog.error(`\u8BF7\u6C42\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u72B6\u6001\u7801\u51FA\u9519,\u8BF7\u6C42url\u4E3A:${c},\u56DE\u590D\u5185\u5BB9\u4E3A:${JSON.stringify(f)}`), await this.reconnnect(e, n, r, i, l, s)) } async redirect(e) { } async post(e, n, r, i = "form") { let l = new p5(e), s = await req(l.toString(), { method: "post", headers: r, data: n, postType: i }); return s.code === 200 || s.code === void 0 || s.code === 302 ? s.headers.location !== void 0 ? await this.redirect(s) : B.isEmpty(s.content) ? await this.postReconnect(e, n, r) : (this.reconnectTimes = 0, s.content) : (await this.jadeLog.error(`\u8BF7\u6C42\u5931\u8D25,\u8BF7\u6C42url\u4E3A:${e},\u56DE\u590D\u5185\u5BB9\u4E3A${JSON.stringify(s)}`), await this.postReconnect(e, n, r)) } getName() { return "\u{1F365}\u2503\u57FA\u7840\u2503\u{1F365}" } getAppName() { return "\u57FA\u7840" } getJSName() { return "base" } getType() { return 3 } async parseVodShortListFromDoc(e) { } async parseVodShortListFromJson(e) { } parseVodShortFromElement(e, n) { } async parseVodShortListFromDocByCategory(e) { } async getFilter(e) { } async setClasses() { } async setFilterObj() { } async parseVodShortListFromDocBySearch(e) { return [] } async parseVodDetailFromDoc(e) { } async parseVodDetailfromJson(e) { } async parseVodPlayFromUrl(e, n) { } async parseVodPlayFromDoc(e, n) { } async SpiderInit(e) { try { this.siteKey = e.skey, this.siteType = parseInt(e.stype.toString()); let n = null; typeof e.ext == "string" ? (await this.jadeLog.info(`\u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6,ext\u4E3A:${e.ext}`), n = JSON.parse(e.ext)) : typeof e.ext == "object" ? (await this.jadeLog.info(`\u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6,\u6240\u6709\u53C2\u6570\u4E3A:${JSON.stringify(e)}`), await this.jadeLog.info(`\u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6,ext\u4E3A:${JSON.stringify(e.ext)}`), n = e.ext) : await this.jadeLog.error(`\u4E0D\u652F\u6301\u7684\u6570\u636E\u7C7B\u578B,\u6570\u636E\u7C7B\u578B\u4E3A${typeof e.ext}`); let r = n.box; return n.CatOpenStatus = r === "CatOpen", n } catch (n) { return await this.jadeLog.error("\u521D\u59CB\u5316\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + n.message), { token: null, CatOpenStatus: !1, code: 0 } } } async initAli(e, n = null) { await qi(e, n) } async spiderInit() { } async init(e) { this.danmuSpider = new Fp, this.cfgObj = await this.SpiderInit(e), await this.jadeLog.debug(`\u521D\u59CB\u5316\u53C2\u6570\u4E3A:${JSON.stringify(e)}`), this.catOpenStatus = this.cfgObj.CatOpenStatus, this.danmuStaus = this.cfgObj.danmu ?? this.danmuStaus; try { await this.loadFilterAndClasses() ? await this.jadeLog.debug("\u8BFB\u53D6\u7F13\u5B58\u5217\u8868\u548C\u4E8C\u7EA7\u83DC\u5355\u6210\u529F") : (await this.jadeLog.warning("\u8BFB\u53D6\u7F13\u5B58\u5217\u8868\u548C\u4E8C\u7EA7\u83DC\u5355\u5931\u8D25"), await this.writeFilterAndClasses()) } catch (n) { await local.set(this.siteKey, "classes", JSON.stringify([])), await local.set(this.siteKey, "filterObj", JSON.stringify({})), await this.jadeLog.error("\u8BFB\u53D6\u7F13\u5B58\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + n) } this.jsBase = await js2Proxy(!0, this.siteType, this.siteKey, "img/", {}), this.douBanjsBase = await js2Proxy(!0, this.siteType, this.siteKey, "douban/", {}), this.baseProxy = await js2Proxy(!0, this.siteType, this.siteKey, "img/", this.getHeader()), this.videoProxy = await js2Proxy(!0, this.siteType, this.siteKey, "m3u8/", {}), this.detailProxy = await js2Proxy(!0, this.siteType, this.siteKey, "detail/", this.getHeader()) } async loadFilterAndClasses() { return this.classes = await this.getClassesCache(), this.filterObj = await this.getFiletObjCache(), this.classes.length > 0 ? !0 : (await local.set(this.siteKey, "classes", JSON.stringify([])), await local.set(this.siteKey, "filterObj", JSON.stringify({})), !1) } async writeFilterAndClasses() { this.catOpenStatus && this.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await this.setClasses(), await this.setFilterObj(), await local.set(this.siteKey, "classes", JSON.stringify(this.classes)), await local.set(this.siteKey, "filterObj", JSON.stringify(this.filterObj)) } async getClassesCache() { let e = await local.get(this.siteKey, "classes"); return B.isEmpty(e) ? this.classes : JSON.parse(e) } async getFiletObjCache() { let e = await local.get(this.siteKey, "filterObj"); return B.isEmpty(e) ? this.filterObj : JSON.parse(e) } async setHome(e) { } async home(e) { return this.vodList = [], await this.jadeLog.info("\u6B63\u5728\u89E3\u6790\u9996\u9875\u7C7B\u522B", !0), await this.setHome(e), await this.jadeLog.debug(`\u9996\u9875\u7C7B\u522B\u5185\u5BB9\u4E3A:${this.result.home(this.classes, [], this.filterObj)}`), await this.jadeLog.info("\u9996\u9875\u7C7B\u522B\u89E3\u6790\u5B8C\u6210", !0), this.result.home(this.classes, [], this.filterObj) } async setHomeVod() { } async homeVod() { return await this.jadeLog.info("\u6B63\u5728\u89E3\u6790\u9996\u9875\u5185\u5BB9", !0), await this.setHomeVod(), await this.jadeLog.debug(`\u9996\u9875\u5185\u5BB9\u4E3A:${this.result.homeVod(this.homeVodList)}`), await this.jadeLog.info("\u9996\u9875\u5185\u5BB9\u89E3\u6790\u5B8C\u6210", !0), this.result.homeVod(this.homeVodList) } async setCategory(e, n, r, i) { } async category(e, n, r, i) { if (this.page = parseInt(n), await this.jadeLog.info(`\u6B63\u5728\u89E3\u6790\u5206\u7C7B\u9875\u9762,tid = ${e},pg = ${n},filter = ${r},extend = ${JSON.stringify(i)}`), e === "\u6700\u8FD1\u66F4\u65B0") return this.page = 0, await this.homeVod(); try { return this.vodList = [], await this.setCategory(e, n, r, i), await this.jadeLog.debug(`\u5206\u7C7B\u9875\u9762\u5185\u5BB9\u4E3A:${this.result.category(this.vodList, this.page, this.count, this.limit, this.total)}`), await this.jadeLog.info("\u5206\u7C7B\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), this.result.category(this.vodList, this.page, this.count, this.limit, this.total) } catch (l) { await this.jadeLog.error(`\u5206\u7C7B\u9875\u89E3\u6790\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${l}`) } } async setDetail(e) { } setEpisodeCache() { let e = { vodDetail: this.vodDetail.to_dict() }, n = this.vodDetail.vod_play_url.split("$$$"); for (let r of n) { let i = r.split("#"); for (let l of i) { let s = l.split("$")[0].split(" ")[0], a = l.split("$")[1], o = s.match(/\d+/g); o !== null && o.length > 0 && (s = o[0]), e[a] = { episodeName: s, episodeId: s } } } return e } async detail(e) { this.vodDetail = new Be, await this.jadeLog.info(`\u6B63\u5728\u83B7\u53D6\u8BE6\u60C5\u9875\u9762,id\u4E3A:${e}`); try { return await this.setDetail(e), await this.jadeLog.debug(`\u8BE6\u60C5\u9875\u9762\u5185\u5BB9\u4E3A:${this.result.detail(this.vodDetail)}`), await this.jadeLog.info("\u8BE6\u60C5\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), this.vodDetail.vod_id = e, this.siteType === 3 && (this.episodeObj = this.setEpisodeCache()), this.result.detail(this.vodDetail) } catch (n) { await this.jadeLog.error("\u8BE6\u60C5\u754C\u9762\u83B7\u53D6\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + n) } } async setPlay(e, n, r) { this.playUrl = n } async setDanmu(e) { await this.jadeLog.debug(`${JSON.stringify(this.episodeObj)}`); let n = this.episodeObj[e], r = JSON.parse(this.episodeObj.vodDetail); return delete r.vod_content, delete r.vod_play_from, delete r.vod_play_url, delete r.vod_pic, await this.jadeLog.debug(`\u6B63\u5728\u52A0\u8F7D\u5F39\u5E55,\u89C6\u9891\u8BE6\u60C5\u4E3A:${JSON.stringify(r)},\u96C6\u6570:${JSON.stringify(this.episodeObj[e])}`), await this.danmuSpider.getDammu(r, n) } async play(e, n, r) { await this.jadeLog.info(`\u6B63\u5728\u89E3\u6790\u64AD\u653E\u9875\u9762,flag:${e},id:${n},flags:${r}`, !0); try { let i; if (await this.setPlay(e, n, r), this.playUrl.content !== void 0) i = this.result.playTxt(this.playUrl); else if (this.danmuStaus && !this.catOpenStatus) if (!B.isEmpty(this.danmuUrl)) await this.jadeLog.debug("\u64AD\u653E\u8BE6\u60C5\u9875\u9762\u6709\u5F39\u5E55,\u6240\u4EE5\u4E0D\u9700\u8981\u518D\u67E5\u627E\u5F39\u5E55"), i = this.result.danmu(this.danmuUrl).play(this.playUrl); else { let l; try { l = await this.setDanmu(n) } catch (s) { await this.jadeLog.error(`\u5F39\u5E55\u52A0\u8F7D\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${s}`) } i = this.result.danmu(l).play(this.playUrl) } else await this.jadeLog.debug("\u4E0D\u9700\u8981\u52A0\u8F7D\u5F39\u5E55", !0), i = this.result.play(this.playUrl); return await this.jadeLog.info("\u64AD\u653E\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), await this.jadeLog.debug(`\u64AD\u653E\u9875\u9762\u5185\u5BB9\u4E3A:${i}`), i } catch (i) { await this.jadeLog.error("\u89E3\u6790\u64AD\u653E\u9875\u9762\u51FA\u9519,\u5931\u8D25\u539F\u56E0\u4E3A:" + i) } } async setSearch(e, n) { } async search(e, n) { return this.vodList = [], await this.jadeLog.info(`\u6B63\u5728\u89E3\u6790\u641C\u7D22\u9875\u9762,\u5173\u952E\u8BCD\u4E3A = ${e},quick = ${n}`), await this.setSearch(e, n, 1), this.vodList.length === 0 && e.indexOf(" ") > -1 && (await this.jadeLog.debug(`\u641C\u7D22\u5173\u952E\u8BCD\u4E3A:${e},\u5176\u4E2D\u6709\u7A7A\u683C,\u53BB\u9664\u7A7A\u683C\u5728\u641C\u7D22\u4E00\u6B21`), await this.search(e.replaceAll(" ", "").replaceAll("\uFEFF", ""), n)), await this.jadeLog.debug(`\u641C\u7D22\u9875\u9762\u5185\u5BB9\u4E3A:${this.result.search(this.vodList)}`), await this.jadeLog.info("\u641C\u7D22\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), this.result.search(this.vodList) } async getImg(e, n) { let r, i = n.Proxy; B.isEmpty(n) && (n = { Referer: e, "User-Agent": zr }), r = await req(e, { buffer: 2, headers: n, proxy: i }); try { return vi(r.content), i ? await this.jadeLog.error(`\u4F7F\u7528VPN\u4EE3\u7406,\u56FE\u7247\u5730\u5740\u4E3A:${e},headers:${JSON.stringify(n)},\u4EE3\u7406\u5931\u8D25,\u51C6\u5907\u91CD\u8FDE,\u8F93\u51FA\u5185\u5BB9\u4E3A:${JSON.stringify(r)}`) : await this.jadeLog.error(`\u4F7F\u7528\u666E\u901A\u4EE3\u7406,\u56FE\u7247\u5730\u5740\u4E3A:${e},headers:${JSON.stringify(n)},\u4EE3\u7406\u5931\u8D25,\u51C6\u5907\u91CD\u8FDE,\u8F93\u51FA\u5185\u5BB9\u4E3A:${JSON.stringify(r)}`), this.reconnectTimes < this.maxReconnectTimes ? (this.reconnectTimes = this.reconnectTimes + 1, await this.getImg(e, n)) : { code: 500, headers: n, content: "\u52A0\u8F7D\u5931\u8D25" } } catch { return await this.jadeLog.debug("\u56FE\u7247\u4EE3\u7406\u6210\u529F", !0), this.reconnectTimes = 0, r } } async proxy(e, n) { await this.jadeLog.debug(`\u6B63\u5728\u8BBE\u7F6E\u53CD\u5411\u4EE3\u7406 segments = ${e.join(",")},headers = ${JSON.stringify(n)}`); let r = e[0], i = vi(e[1]); if (await this.jadeLog.debug(`\u53CD\u5411\u4EE3\u7406\u53C2\u6570\u4E3A:${i}`), r === "img") { await this.jadeLog.debug("\u901A\u8FC7\u4EE3\u7406\u83B7\u53D6\u56FE\u7247", !0); let l = await this.getImg(i, n); return JSON.stringify({ code: l.code, buffer: 2, content: l.content, headers: l.headers }) } else if (r === "douban") { let l = await this.doubanSearch(i); if (l !== null) { let s = l[0].vod_pic, a; return B.isEmpty(n) ? a = await req(s, { buffer: 2, headers: { Referer: s, "User-Agent": zr } }) : a = await req(s, { buffer: 2, headers: n }), JSON.stringify({ code: a.code, buffer: 2, content: a.content, headers: a.headers }) } } else if (r === "m3u8") { let l; return B.isEmpty(n) ? l = await this.fetch(i, null, { Referer: i, "User-Agent": zr }, !1, !1, 2) : l = await this.fetch(i, null, n, !1, !1, 2), await this.jadeLog.debug(`m3u8\u8FD4\u56DE\u5185\u5BB9\u4E3A:${vi(l)}`), B.isEmpty(l) ? JSON.stringify({ code: 500, buffer: 2, content: l, headers: {} }) : JSON.stringify({ code: 200, buffer: 2, content: l, headers: {} }) } else if (r === "hls") { let l = function (a, o) { let u = {}; return a.headers["content-length"] ? Object.assign(u, a.headers, { "content-length": o.length.toString() }) : Object.assign(u, a.headers), delete u["transfer-encoding"], u["content-encoding"] == "gzip" && delete u["content-encoding"], u }, s = await aq(i, n); if (s.variants) { let a = Dp(s.plist); return { code: s.code, content: a, headers: l(s, a) } } else { let a = Dp(s.plist, o => js2Proxy(!1, this.siteType, this.siteKey, "ts/" + encodeURIComponent(s.key + "/" + o.mediaSequenceNumber.toString()), n)); return { code: s.code, content: a, headers: l(s, a) } } } else if (r === "ts") { let l = i.split("/"), s = l[0], a = parseInt(l[1]); return await oq(s, a, n) } else if (r === "detail") { let l = await this.getHtml(this.siteUrl + i), s = await this.parseVodDetailFromDoc(l), a = await this.getImg(s.vod_pic, n); return JSON.stringify({ code: a.code, buffer: 2, content: a.content, headers: a.headers }) } else return JSON.stringify({ code: 500, content: "" }) } getSearchHeader() { let e = ["api-client/1 com.douban.frodo/7.22.0.beta9(231) Android/23 product/Mate 40 vendor/HUAWEI model/Mate 40 brand/HUAWEI rom/android network/wifi platform/AndroidPad", "api-client/1 com.douban.frodo/7.18.0(230) Android/22 product/MI 9 vendor/Xiaomi model/MI 9 brand/Android rom/miui6 network/wifi platform/mobile nd/1", "api-client/1 com.douban.frodo/7.1.0(205) Android/29 product/perseus vendor/Xiaomi model/Mi MIX 3 rom/miui6 network/wifi platform/mobile nd/1", "api-client/1 com.douban.frodo/7.3.0(207) Android/22 product/MI 9 vendor/Xiaomi model/MI 9 brand/Android rom/miui6 network/wifi platform/mobile nd/1"], n = Math.floor(Math.random() * e.length); return { "User-Agent": e[n] } } async parseDoubanVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = "msearch:" + r.id, r.title === void 0 ? i.vod_name = r.target.title : i.vod_name = r.title, r.pic === void 0 ? i.vod_pic = r.target.cover_url : i.vod_pic = r.pic.normal, r.rating === void 0 ? i.vod_remarks = "\u8BC4\u5206:" + r.target.rating.value.toString() : i.vod_remarks = "\u8BC4\u5206:" + r.rating.value.toString(), n.push(i) } return n } sign(e, n, r = "GET") { let i = "bf7dddc7c9cfe6f7", l = "%2F" + e.split("/").slice(3).join("%2F"), s = [r.toLocaleUpperCase(), l, n.toString()].join("&"); return CryptoJS.HmacSHA1(s, i).toString(CryptoJS.enc.Base64) } async doubanSearch(e) { try { let n = "https://frodo.douban.com/api/v2", r = "0dad551ec0f84ed02907ff5c42e8ec70", i = n + "/search/movie", l = new Date, s = l.getFullYear().toString() + (l.getMonth() + 1).toString() + l.getDate().toString(), a = { _sig: this.sign(i, s), _ts: s, apiKey: r, count: 20, os_rom: "android", q: encodeURIComponent(e), start: 0 }, o = await this.fetch(i, a, this.getSearchHeader()); if (!B.isEmpty(o)) { let u = JSON.parse(o); return await this.jadeLog.debug(`\u8C46\u74E3\u641C\u7D22\u7ED3\u679C:${o}`), await this.parseDoubanVodShortListFromJson(u.items) } return null } catch (n) { await this.jadeLog.error("\u53CD\u5411\u4EE3\u7406\u51FA\u9519,\u5931\u8D25\u539F\u56E0\u4E3A:" + n) } } }; var _u = Yr(require("node:fs"), 1), mK = Yr(mG(), 1); function I5(t, e) { return function () { return t.apply(e, arguments) } } var { toString: jwe } = Object.prototype, { getPrototypeOf: Qb } = Object, rf = (t => e => { let n = jwe.call(e); return t[n] || (t[n] = n.slice(8, -1).toLowerCase()) })(Object.create(null)), _a = t => (t = t.toLowerCase(), e => rf(e) === t), lf = t => e => typeof e === t, { isArray: N0 } = Array, k5 = lf("undefined"); function Uwe(t) { return t !== null && !k5(t) && t.constructor !== null && !k5(t.constructor) && as(t.constructor.isBuffer) && t.constructor.isBuffer(t) } var vG = _a("ArrayBuffer"); function Mwe(t) { let e; return typeof ArrayBuffer < "u" && ArrayBuffer.isView ? e = ArrayBuffer.isView(t) : e = t && t.buffer && vG(t.buffer), e } var $we = lf("string"), as = lf("function"), _G = lf("number"), sf = t => t !== null && typeof t == "object", Bwe = t => t === !0 || t === !1, nf = t => { if (rf(t) !== "object") return !1; let e = Qb(t); return (e === null || e === Object.prototype || Object.getPrototypeOf(e) === null) && !(Symbol.toStringTag in t) && !(Symbol.iterator in t) }, Hwe = _a("Date"), Vwe = _a("File"), qwe = _a("Blob"), zwe = _a("FileList"), Gwe = t => sf(t) && as(t.pipe), Jwe = t => { let e; return t && (typeof FormData == "function" && t instanceof FormData || as(t.append) && ((e = rf(t)) === "formdata" || e === "object" && as(t.toString) && t.toString() === "[object FormData]")) }, Kwe = _a("URLSearchParams"), Xwe = t => t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); function D5(t, e, { allOwnKeys: n = !1 } = {}) { if (t === null || typeof t > "u") return; let r, i; if (typeof t != "object" && (t = [t]), N0(t)) for (r = 0, i = t.length; r < i; r++)e.call(null, t[r], r, t); else { let l = n ? Object.getOwnPropertyNames(t) : Object.keys(t), s = l.length, a; for (r = 0; r < s; r++)a = l[r], e.call(null, t[a], a, t) } } function EG(t, e) { e = e.toLowerCase(); let n = Object.keys(t), r = n.length, i; for (; r-- > 0;)if (i = n[r], e === i.toLowerCase()) return i; return null } var bG = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global, wG = t => !k5(t) && t !== bG; function Yb() { let { caseless: t } = wG(this) && this || {}, e = {}, n = (r, i) => { let l = t && EG(e, i) || i; nf(e[l]) && nf(r) ? e[l] = Yb(e[l], r) : nf(r) ? e[l] = Yb({}, r) : N0(r) ? e[l] = r.slice() : e[l] = r }; for (let r = 0, i = arguments.length; r < i; r++)arguments[r] && D5(arguments[r], n); return e } var Wwe = (t, e, n, { allOwnKeys: r } = {}) => (D5(e, (i, l) => { n && as(i) ? t[l] = I5(i, n) : t[l] = i }, { allOwnKeys: r }), t), Ywe = t => (t.charCodeAt(0) === 65279 && (t = t.slice(1)), t), Qwe = (t, e, n, r) => { t.prototype = Object.create(e.prototype, r), t.prototype.constructor = t, Object.defineProperty(t, "super", { value: e.prototype }), n && Object.assign(t.prototype, n) }, Zwe = (t, e, n, r) => { let i, l, s, a = {}; if (e = e || {}, t == null) return e; do { for (i = Object.getOwnPropertyNames(t), l = i.length; l-- > 0;)s = i[l], (!r || r(s, t, e)) && !a[s] && (e[s] = t[s], a[s] = !0); t = n !== !1 && Qb(t) } while (t && (!n || n(t, e)) && t !== Object.prototype); return e }, eSe = (t, e, n) => { t = String(t), (n === void 0 || n > t.length) && (n = t.length), n -= e.length; let r = t.indexOf(e, n); return r !== -1 && r === n }, tSe = t => { if (!t) return null; if (N0(t)) return t; let e = t.length; if (!_G(e)) return null; let n = new Array(e); for (; e-- > 0;)n[e] = t[e]; return n }, nSe = (t => e => t && e instanceof t)(typeof Uint8Array < "u" && Qb(Uint8Array)), rSe = (t, e) => { let r = (t && t[Symbol.iterator]).call(t), i; for (; (i = r.next()) && !i.done;) { let l = i.value; e.call(t, l[0], l[1]) } }, iSe = (t, e) => { let n, r = []; for (; (n = t.exec(e)) !== null;)r.push(n); return r }, lSe = _a("HTMLFormElement"), sSe = t => t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function (n, r, i) { return r.toUpperCase() + i }), yG = (({ hasOwnProperty: t }) => (e, n) => t.call(e, n))(Object.prototype), aSe = _a("RegExp"), SG = (t, e) => { let n = Object.getOwnPropertyDescriptors(t), r = {}; D5(n, (i, l) => { let s; (s = e(i, l, t)) !== !1 && (r[l] = s || i) }), Object.defineProperties(t, r) }, oSe = t => { SG(t, (e, n) => { if (as(t) && ["arguments", "caller", "callee"].indexOf(n) !== -1) return !1; let r = t[n]; if (as(r)) { if (e.enumerable = !1, "writable" in e) { e.writable = !1; return } e.set || (e.set = () => { throw Error("Can not rewrite read-only method '" + n + "'") }) } }) }, uSe = (t, e) => { let n = {}, r = i => { i.forEach(l => { n[l] = !0 }) }; return N0(t) ? r(t) : r(String(t).split(e)), n }, cSe = () => { }, pSe = (t, e) => (t = +t, Number.isFinite(t) ? t : e), Wb = "abcdefghijklmnopqrstuvwxyz", gG = "0123456789", TG = { DIGIT: gG, ALPHA: Wb, ALPHA_DIGIT: Wb + Wb.toUpperCase() + gG }, fSe = (t = 16, e = TG.ALPHA_DIGIT) => { let n = "", { length: r } = e; for (; t--;)n += e[Math.random() * r | 0]; return n }; function dSe(t) { return !!(t && as(t.append) && t[Symbol.toStringTag] === "FormData" && t[Symbol.iterator]) } var hSe = t => { let e = new Array(10), n = (r, i) => { if (sf(r)) { if (e.indexOf(r) >= 0) return; if (!("toJSON" in r)) { e[i] = r; let l = N0(r) ? [] : {}; return D5(r, (s, a) => { let o = n(s, i + 1); !k5(o) && (l[a] = o) }), e[i] = void 0, l } } return r }; return n(t, 0) }, mSe = _a("AsyncFunction"), ySe = t => t && (sf(t) || as(t)) && as(t.then) && as(t.catch), Z = { isArray: N0, isArrayBuffer: vG, isBuffer: Uwe, isFormData: Jwe, isArrayBufferView: Mwe, isString: $we, isNumber: _G, isBoolean: Bwe, isObject: sf, isPlainObject: nf, isUndefined: k5, isDate: Hwe, isFile: Vwe, isBlob: qwe, isRegExp: aSe, isFunction: as, isStream: Gwe, isURLSearchParams: Kwe, isTypedArray: nSe, isFileList: zwe, forEach: D5, merge: Yb, extend: Wwe, trim: Xwe, stripBOM: Ywe, inherits: Qwe, toFlatObject: Zwe, kindOf: rf, kindOfTest: _a, endsWith: eSe, toArray: tSe, forEachEntry: rSe, matchAll: iSe, isHTMLForm: lSe, hasOwnProperty: yG, hasOwnProp: yG, reduceDescriptors: SG, freezeMethods: oSe, toObjectSet: uSe, toCamelCase: sSe, noop: cSe, toFiniteNumber: pSe, findKey: EG, global: bG, isContextDefined: wG, ALPHABET: TG, generateString: fSe, isSpecCompliantForm: dSe, toJSONObject: hSe, isAsyncFn: mSe, isThenable: ySe }; function C0(t, e, n, r, i) { Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack, this.message = t, this.name = "AxiosError", e && (this.code = e), n && (this.config = n), r && (this.request = r), i && (this.response = i) } Z.inherits(C0, Error, { toJSON: function () { return { message: this.message, name: this.name, description: this.description, number: this.number, fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, config: Z.toJSONObject(this.config), code: this.code, status: this.response && this.response.status ? this.response.status : null } } }); var xG = C0.prototype, AG = {};["ERR_BAD_OPTION_VALUE", "ERR_BAD_OPTION", "ECONNABORTED", "ETIMEDOUT", "ERR_NETWORK", "ERR_FR_TOO_MANY_REDIRECTS", "ERR_DEPRECATED", "ERR_BAD_RESPONSE", "ERR_BAD_REQUEST", "ERR_CANCELED", "ERR_NOT_SUPPORT", "ERR_INVALID_URL"].forEach(t => { AG[t] = { value: t } }); Object.defineProperties(C0, AG); Object.defineProperty(xG, "isAxiosError", { value: !0 }); C0.from = (t, e, n, r, i, l) => { let s = Object.create(xG); return Z.toFlatObject(t, s, function (o) { return o !== Error.prototype }, a => a !== "isAxiosError"), C0.call(s, t.message, e, n, r, i), s.cause = t, s.name = t.name, l && Object.assign(s, l), s }; var qe = C0; var oJ = Yr(aJ(), 1), uf = oJ.default; function uw(t) { return Z.isPlainObject(t) || Z.isArray(t) } function cJ(t) { return Z.endsWith(t, "[]") ? t.slice(0, -2) : t } function uJ(t, e, n) { return t ? t.concat(e).map(function (i, l) { return i = cJ(i), !n && l ? "[" + i + "]" : i }).join(n ? "." : "") : e } function ZSe(t) { return Z.isArray(t) && !t.some(uw) } var eTe = Z.toFlatObject(Z, {}, null, function (e) { return /^is[A-Z]/.test(e) }); function tTe(t, e, n) { if (!Z.isObject(t)) throw new TypeError("target must be an object"); e = e || new (uf || FormData), n = Z.toFlatObject(n, { metaTokens: !0, dots: !1, indexes: !1 }, !1, function (_, S) { return !Z.isUndefined(S[_]) }); let r = n.metaTokens, i = n.visitor || c, l = n.dots, s = n.indexes, o = (n.Blob || typeof Blob < "u" && Blob) && Z.isSpecCompliantForm(e); if (!Z.isFunction(i)) throw new TypeError("visitor must be a function"); function u(y) { if (y === null) return ""; if (Z.isDate(y)) return y.toISOString(); if (!o && Z.isBlob(y)) throw new qe("Blob is not supported. Use a Buffer instead."); return Z.isArrayBuffer(y) || Z.isTypedArray(y) ? o && typeof Blob == "function" ? new Blob([y]) : Buffer.from(y) : y } function c(y, _, S) { let w = y; if (y && !S && typeof y == "object") { if (Z.endsWith(_, "{}")) _ = r ? _ : _.slice(0, -2), y = JSON.stringify(y); else if (Z.isArray(y) && ZSe(y) || (Z.isFileList(y) || Z.endsWith(_, "[]")) && (w = Z.toArray(y))) return _ = cJ(_), w.forEach(function (g, v) { !(Z.isUndefined(g) || g === null) && e.append(s === !0 ? uJ([_], v, l) : s === null ? _ : _ + "[]", u(g)) }), !1 } return uw(y) ? !0 : (e.append(uJ(S, _, l), u(y)), !1) } let f = [], m = Object.assign(eTe, { defaultVisitor: c, convertValue: u, isVisitable: uw }); function d(y, _) { if (!Z.isUndefined(y)) { if (f.indexOf(y) !== -1) throw Error("Circular reference detected in " + _.join(".")); f.push(y), Z.forEach(y, function (w, E) { (!(Z.isUndefined(w) || w === null) && i.call(e, w, Z.isString(E) ? E.trim() : E, _, m)) === !0 && d(w, _ ? _.concat(E) : [E]) }), f.pop() } } if (!Z.isObject(t)) throw new TypeError("data must be an object"); return d(t), e } var io = tTe; function pJ(t) { let e = { "!": "%21", "'": "%27", "(": "%28", ")": "%29", "~": "%7E", "%20": "+", "%00": "\0" }; return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g, function (r) { return e[r] }) } function fJ(t, e) { this._pairs = [], t && io(t, this, e) } var dJ = fJ.prototype; dJ.append = function (e, n) { this._pairs.push([e, n]) }; dJ.toString = function (e) { let n = e ? function (r) { return e.call(this, r, pJ) } : pJ; return this._pairs.map(function (i) { return n(i[0]) + "=" + n(i[1]) }, "").join("&") }; var hJ = fJ; function nTe(t) { return encodeURIComponent(t).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") } function hu(t, e, n) { if (!e) return t; let r = n && n.encode || nTe, i = n && n.serialize, l; if (i ? l = i(e, n) : l = Z.isURLSearchParams(e) ? e.toString() : new hJ(e, n).toString(r), l) { let s = t.indexOf("#"); s !== -1 && (t = t.slice(0, s)), t += (t.indexOf("?") === -1 ? "?" : "&") + l } return t } var cw = class { constructor() { this.handlers = [] } use(e, n, r) { return this.handlers.push({ fulfilled: e, rejected: n, synchronous: r ? r.synchronous : !1, runWhen: r ? r.runWhen : null }), this.handlers.length - 1 } eject(e) { this.handlers[e] && (this.handlers[e] = null) } clear() { this.handlers && (this.handlers = []) } forEach(e) { Z.forEach(this.handlers, function (r) { r !== null && e(r) }) } }, pw = cw; var R0 = { silentJSONParsing: !0, forcedJSONParsing: !0, clarifyTimeoutError: !1 }; var mJ = Yr(require("url"), 1), yJ = mJ.default.URLSearchParams; var gJ = { isNode: !0, classes: { URLSearchParams: yJ, FormData: uf, Blob: typeof Blob < "u" && Blob || null }, protocols: ["http", "https", "file", "data"] }; var fw = {}; TA(fw, { hasBrowserEnv: () => vJ, hasStandardBrowserEnv: () => rTe, hasStandardBrowserWebWorkerEnv: () => iTe }); var vJ = typeof window < "u" && typeof document < "u", rTe = (t => vJ && ["ReactNative", "NativeScript", "NS"].indexOf(t) < 0)(typeof navigator < "u" && navigator.product), iTe = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope && typeof self.importScripts == "function"; var ii = { ...fw, ...gJ }; function dw(t, e) { return io(t, new ii.classes.URLSearchParams, Object.assign({ visitor: function (n, r, i, l) { return ii.isNode && Z.isBuffer(n) ? (this.append(r, n.toString("base64")), !1) : l.defaultVisitor.apply(this, arguments) } }, e)) } function lTe(t) { return Z.matchAll(/\w+|\[(\w*)]/g, t).map(e => e[0] === "[]" ? "" : e[1] || e[0]) } function sTe(t) { let e = {}, n = Object.keys(t), r, i = n.length, l; for (r = 0; r < i; r++)l = n[r], e[l] = t[l]; return e } function aTe(t) { function e(n, r, i, l) { let s = n[l++]; if (s === "__proto__") return !0; let a = Number.isFinite(+s), o = l >= n.length; return s = !s && Z.isArray(i) ? i.length : s, o ? (Z.hasOwnProp(i, s) ? i[s] = [i[s], r] : i[s] = r, !a) : ((!i[s] || !Z.isObject(i[s])) && (i[s] = []), e(n, r, i[s], l) && Z.isArray(i[s]) && (i[s] = sTe(i[s])), !a) } if (Z.isFormData(t) && Z.isFunction(t.entries)) { let n = {}; return Z.forEachEntry(t, (r, i) => { e(lTe(r), i, n, 0) }), n } return null } var cf = aTe; function oTe(t, e, n) { if (Z.isString(t)) try { return (e || JSON.parse)(t), Z.trim(t) } catch (r) { if (r.name !== "SyntaxError") throw r } return (n || JSON.stringify)(t) } var hw = { transitional: R0, adapter: ["xhr", "http"], transformRequest: [function (e, n) { let r = n.getContentType() || "", i = r.indexOf("application/json") > -1, l = Z.isObject(e); if (l && Z.isHTMLForm(e) && (e = new FormData(e)), Z.isFormData(e)) return i ? JSON.stringify(cf(e)) : e; if (Z.isArrayBuffer(e) || Z.isBuffer(e) || Z.isStream(e) || Z.isFile(e) || Z.isBlob(e)) return e; if (Z.isArrayBufferView(e)) return e.buffer; if (Z.isURLSearchParams(e)) return n.setContentType("application/x-www-form-urlencoded;charset=utf-8", !1), e.toString(); let a; if (l) { if (r.indexOf("application/x-www-form-urlencoded") > -1) return dw(e, this.formSerializer).toString(); if ((a = Z.isFileList(e)) || r.indexOf("multipart/form-data") > -1) { let o = this.env && this.env.FormData; return io(a ? { "files[]": e } : e, o && new o, this.formSerializer) } } return l || i ? (n.setContentType("application/json", !1), oTe(e)) : e }], transformResponse: [function (e) { let n = this.transitional || hw.transitional, r = n && n.forcedJSONParsing, i = this.responseType === "json"; if (e && Z.isString(e) && (r && !this.responseType || i)) { let s = !(n && n.silentJSONParsing) && i; try { return JSON.parse(e) } catch (a) { if (s) throw a.name === "SyntaxError" ? qe.from(a, qe.ERR_BAD_RESPONSE, this, null, this.response) : a } } return e }], timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", maxContentLength: -1, maxBodyLength: -1, env: { FormData: ii.classes.FormData, Blob: ii.classes.Blob }, validateStatus: function (e) { return e >= 200 && e < 300 }, headers: { common: { Accept: "application/json, text/plain, */*", "Content-Type": void 0 } } }; Z.forEach(["delete", "get", "head", "post", "put", "patch"], t => { hw.headers[t] = {} }); var I0 = hw; var uTe = Z.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"]), _J = t => {
let e = {}, n, r, i; return t && t.split(`
`).forEach(function (s) { i = s.indexOf(":"), n = s.substring(0, i).trim().toLowerCase(), r = s.substring(i + 1).trim(), !(!n || e[n] && uTe[n]) && (n === "set-cookie" ? e[n] ? e[n].push(r) : e[n] = [r] : e[n] = e[n] ? e[n] + ", " + r : r) }), e
}; var EJ = Symbol("internals"); function P5(t) { return t && String(t).trim().toLowerCase() } function pf(t) { return t === !1 || t == null ? t : Z.isArray(t) ? t.map(pf) : String(t) } function cTe(t) { let e = Object.create(null), n = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g, r; for (; r = n.exec(t);)e[r[1]] = r[2]; return e } var pTe = t => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()); function mw(t, e, n, r, i) { if (Z.isFunction(r)) return r.call(this, e, n); if (i && (e = n), !!Z.isString(e)) { if (Z.isString(r)) return e.indexOf(r) !== -1; if (Z.isRegExp(r)) return r.test(e) } } function fTe(t) { return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (e, n, r) => n.toUpperCase() + r) } function dTe(t, e) { let n = Z.toCamelCase(" " + e);["get", "set", "has"].forEach(r => { Object.defineProperty(t, r + n, { value: function (i, l, s) { return this[r].call(this, e, i, l, s) }, configurable: !0 }) }) } var k0 = class {
constructor(e) { e && this.set(e) } set(e, n, r) { let i = this; function l(a, o, u) { let c = P5(o); if (!c) throw new Error("header name must be a non-empty string"); let f = Z.findKey(i, c); (!f || i[f] === void 0 || u === !0 || u === void 0 && i[f] !== !1) && (i[f || o] = pf(a)) } let s = (a, o) => Z.forEach(a, (u, c) => l(u, c, o)); return Z.isPlainObject(e) || e instanceof this.constructor ? s(e, n) : Z.isString(e) && (e = e.trim()) && !pTe(e) ? s(_J(e), n) : e != null && l(n, e, r), this } get(e, n) { if (e = P5(e), e) { let r = Z.findKey(this, e); if (r) { let i = this[r]; if (!n) return i; if (n === !0) return cTe(i); if (Z.isFunction(n)) return n.call(this, i, r); if (Z.isRegExp(n)) return n.exec(i); throw new TypeError("parser must be boolean|regexp|function") } } } has(e, n) { if (e = P5(e), e) { let r = Z.findKey(this, e); return !!(r && this[r] !== void 0 && (!n || mw(this, this[r], r, n))) } return !1 } delete(e, n) { let r = this, i = !1; function l(s) { if (s = P5(s), s) { let a = Z.findKey(r, s); a && (!n || mw(r, r[a], a, n)) && (delete r[a], i = !0) } } return Z.isArray(e) ? e.forEach(l) : l(e), i } clear(e) { let n = Object.keys(this), r = n.length, i = !1; for (; r--;) { let l = n[r]; (!e || mw(this, this[l], l, e, !0)) && (delete this[l], i = !0) } return i } normalize(e) { let n = this, r = {}; return Z.forEach(this, (i, l) => { let s = Z.findKey(r, l); if (s) { n[s] = pf(i), delete n[l]; return } let a = e ? fTe(l) : String(l).trim(); a !== l && delete n[l], n[a] = pf(i), r[a] = !0 }), this } concat(...e) { return this.constructor.concat(this, ...e) } toJSON(e) { let n = Object.create(null); return Z.forEach(this, (r, i) => { r != null && r !== !1 && (n[i] = e && Z.isArray(r) ? r.join(", ") : r) }), n } [Symbol.iterator]() { return Object.entries(this.toJSON())[Symbol.iterator]() } toString() {
return Object.entries(this.toJSON()).map(([e, n]) => e + ": " + n).join(`
`)
} get [Symbol.toStringTag]() { return "AxiosHeaders" } static from(e) { return e instanceof this ? e : new this(e) } static concat(e, ...n) { let r = new this(e); return n.forEach(i => r.set(i)), r } static accessor(e) { let r = (this[EJ] = this[EJ] = { accessors: {} }).accessors, i = this.prototype; function l(s) { let a = P5(s); r[a] || (dTe(i, s), r[a] = !0) } return Z.isArray(e) ? e.forEach(l) : l(e), this }
}; k0.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]); Z.reduceDescriptors(k0.prototype, ({ value: t }, e) => { let n = e[0].toUpperCase() + e.slice(1); return { get: () => t, set(r) { this[n] = r } } }); Z.freezeMethods(k0); var li = k0; function L5(t, e) { let n = this || I0, r = e || n, i = li.from(r.headers), l = r.data; return Z.forEach(t, function (a) { l = a.call(n, l, i.normalize(), e ? e.status : void 0) }), i.normalize(), l } function F5(t) { return !!(t && t.__CANCEL__) } function bJ(t, e, n) { qe.call(this, t ?? "canceled", qe.ERR_CANCELED, e, n), this.name = "CanceledError" } Z.inherits(bJ, qe, { __CANCEL__: !0 }); var ks = bJ; function lo(t, e, n) { let r = n.config.validateStatus; !n.status || !r || r(n.status) ? t(n) : e(new qe("Request failed with status code " + n.status, [qe.ERR_BAD_REQUEST, qe.ERR_BAD_RESPONSE][Math.floor(n.status / 100) - 4], n.config, n.request, n)) } function yw(t) { return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(t) } function gw(t, e) { return e ? t.replace(/\/?\/$/, "") + "/" + e.replace(/^\/+/, "") : t } function mu(t, e) { return t && !yw(e) ? gw(t, e) : e } var qJ = Yr(SJ(), 1), zJ = Yr(require("http"), 1), GJ = Yr(require("https"), 1), JJ = Yr(require("util"), 1), KJ = Yr(RJ(), 1), l2 = Yr(require("zlib"), 1); var gu = "1.6.7"; function H5(t) { let e = /^([-+\w]{1,25})(:?\/\/|:)/.exec(t); return e && e[1] || "" } var RTe = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; function Rw(t, e, n) { let r = n && n.Blob || ii.classes.Blob, i = H5(t); if (e === void 0 && r && (e = !0), i === "data") { t = i.length ? t.slice(i.length + 1) : t; let l = RTe.exec(t); if (!l) throw new qe("Invalid URL", qe.ERR_INVALID_URL); let s = l[1], a = l[2], o = l[3], u = Buffer.from(decodeURIComponent(o), a ? "base64" : "utf8"); if (e) { if (!r) throw new qe("Blob is not supported", qe.ERR_NOT_SUPPORT); return new r([u], { type: s }) } return u } throw new qe("Unsupported protocol " + i, qe.ERR_NOT_SUPPORT) } var vu = Yr(require("stream"), 1); var kJ = Yr(require("stream"), 1); function ITe(t, e) { let n = 0, r = 1e3 / e, i = null; return function (s, a) { let o = Date.now(); if (s || o - n > r) return i && (clearTimeout(i), i = null), n = o, t.apply(null, a); i || (i = setTimeout(() => (i = null, n = Date.now(), t.apply(null, a)), r - (o - n))) } } var IJ = ITe; function kTe(t, e) { t = t || 10; let n = new Array(t), r = new Array(t), i = 0, l = 0, s; return e = e !== void 0 ? e : 1e3, function (o) { let u = Date.now(), c = r[l]; s || (s = u), n[i] = o, r[i] = u; let f = l, m = 0; for (; f !== i;)m += n[f++], f = f % t; if (i = (i + 1) % t, i === l && (l = (l + 1) % t), u - s < e) return; let d = c && u - c; return d ? Math.round(m * 1e3 / d) : void 0 } } var ff = kTe; var df = Symbol("internals"), Iw = class extends kJ.default.Transform { constructor(e) { e = Z.toFlatObject(e, { maxRate: 0, chunkSize: 64 * 1024, minChunkSize: 100, timeWindow: 500, ticksRate: 2, samplesCount: 15 }, null, (a, o) => !Z.isUndefined(o[a])), super({ readableHighWaterMark: e.chunkSize }); let n = this, r = this[df] = { length: e.length, timeWindow: e.timeWindow, ticksRate: e.ticksRate, chunkSize: e.chunkSize, maxRate: e.maxRate, minChunkSize: e.minChunkSize, bytesSeen: 0, isCaptured: !1, notifiedBytesLoaded: 0, ts: Date.now(), bytes: 0, onReadCallback: null }, i = ff(r.ticksRate * e.samplesCount, r.timeWindow); this.on("newListener", a => { a === "progress" && (r.isCaptured || (r.isCaptured = !0)) }); let l = 0; r.updateProgress = IJ(function () { let o = r.length, u = r.bytesSeen, c = u - l; if (!c || n.destroyed) return; let f = i(c); l = u, process.nextTick(() => { n.emit("progress", { loaded: u, total: o, progress: o ? u / o : void 0, bytes: c, rate: f || void 0, estimated: f && o && u <= o ? (o - u) / f : void 0 }) }) }, r.ticksRate); let s = () => { r.updateProgress(!0) }; this.once("end", s), this.once("error", s) } _read(e) { let n = this[df]; return n.onReadCallback && n.onReadCallback(), super._read(e) } _transform(e, n, r) { let i = this, l = this[df], s = l.maxRate, a = this.readableHighWaterMark, o = l.timeWindow, u = 1e3 / o, c = s / u, f = l.minChunkSize !== !1 ? Math.max(l.minChunkSize, c * .01) : 0; function m(y, _) { let S = Buffer.byteLength(y); l.bytesSeen += S, l.bytes += S, l.isCaptured && l.updateProgress(), i.push(y) ? process.nextTick(_) : l.onReadCallback = () => { l.onReadCallback = null, process.nextTick(_) } } let d = (y, _) => { let S = Buffer.byteLength(y), w = null, E = a, g, v = 0; if (s) { let x = Date.now(); (!l.ts || (v = x - l.ts) >= o) && (l.ts = x, g = c - l.bytes, l.bytes = g < 0 ? -g : 0, v = 0), g = c - l.bytes } if (s) { if (g <= 0) return setTimeout(() => { _(null, y) }, o - v); g < E && (E = g) } E && S > E && S - E > f && (w = y.subarray(E), y = y.subarray(0, E)), m(y, w ? () => { process.nextTick(_, null, w) } : _) }; d(e, function y(_, S) { if (_) return r(_); S ? d(S, y) : r(null) }) } setLength(e) { return this[df].length = +e, this } }, kw = Iw; var XJ = Yr(require("events"), 1); var PJ = require("util"), LJ = require("stream"); var { asyncIterator: DJ } = Symbol, DTe = async function* (t) { t.stream ? yield* t.stream() : t.arrayBuffer ? yield await t.arrayBuffer() : t[DJ] ? yield* t[DJ]() : yield t }, hf = DTe; var PTe = Z.ALPHABET.ALPHA_DIGIT + "-_", V5 = new PJ.TextEncoder, so = `\r
`, LTe = V5.encode(so), FTe = 2, Dw = class { constructor(e, n) { let { escapeName: r } = this.constructor, i = Z.isString(n), l = `Content-Disposition: form-data; name="${r(e)}"${!i && n.name ? `; filename="${r(n.name)}"` : ""}${so}`; i ? n = V5.encode(String(n).replace(/\r?\n|\r\n?/g, so)) : l += `Content-Type: ${n.type || "application/octet-stream"}${so}`, this.headers = V5.encode(l + so), this.contentLength = i ? n.byteLength : n.size, this.size = this.headers.byteLength + this.contentLength + FTe, this.name = e, this.value = n } async*encode() { yield this.headers; let { value: e } = this; Z.isTypedArray(e) ? yield e : yield* hf(e), yield LTe } static escapeName(e) { return String(e).replace(/[\r\n"]/g, n => ({ "\r": "%0D", "\n": "%0A", '"': "%22" })[n]) } }, jTe = (t, e, n) => { let { tag: r = "form-data-boundary", size: i = 25, boundary: l = r + "-" + Z.generateString(i, PTe) } = n || {}; if (!Z.isFormData(t)) throw TypeError("FormData instance required"); if (l.length < 1 || l.length > 70) throw Error("boundary must be 10-70 characters long"); let s = V5.encode("--" + l + so), a = V5.encode("--" + l + "--" + so + so), o = a.byteLength, u = Array.from(t.entries()).map(([f, m]) => { let d = new Dw(f, m); return o += d.size, d }); o += s.byteLength * u.length, o = Z.toFiniteNumber(o); let c = { "Content-Type": `multipart/form-data; boundary=${l}` }; return Number.isFinite(o) && (c["Content-Length"] = o), e && e(c), LJ.Readable.from(async function* () { for (let f of u) yield s, yield* f.encode(); yield a }()) }, FJ = jTe; var jJ = Yr(require("stream"), 1), Pw = class extends jJ.default.Transform { __transform(e, n, r) { this.push(e), r() } _transform(e, n, r) { if (e.length !== 0 && (this._transform = this.__transform, e[0] !== 120)) { let i = Buffer.alloc(2); i[0] = 120, i[1] = 156, this.push(i, n) } this.__transform(e, n, r) } }, UJ = Pw; var UTe = (t, e) => Z.isAsyncFn(t) ? function (...n) { let r = n.pop(); t.apply(this, n).then(i => { try { e ? r(null, ...e(i)) : r(null, i) } catch (l) { r(l) } }, r) } : t, MJ = UTe; var $J = { flush: l2.default.constants.Z_SYNC_FLUSH, finishFlush: l2.default.constants.Z_SYNC_FLUSH }, MTe = { flush: l2.default.constants.BROTLI_OPERATION_FLUSH, finishFlush: l2.default.constants.BROTLI_OPERATION_FLUSH }, BJ = Z.isFunction(l2.default.createBrotliDecompress), { http: $Te, https: BTe } = KJ.default, HTe = /https:?/, HJ = ii.protocols.map(t => t + ":"); function VTe(t, e) { t.beforeRedirects.proxy && t.beforeRedirects.proxy(t), t.beforeRedirects.config && t.beforeRedirects.config(t, e) } function WJ(t, e, n) { let r = e; if (!r && r !== !1) { let i = (0, qJ.getProxyForUrl)(n); i && (r = new URL(i)) } if (r) { if (r.username && (r.auth = (r.username || "") + ":" + (r.password || "")), r.auth) { (r.auth.username || r.auth.password) && (r.auth = (r.auth.username || "") + ":" + (r.auth.password || "")); let l = Buffer.from(r.auth, "utf8").toString("base64"); t.headers["Proxy-Authorization"] = "Basic " + l } t.headers.host = t.hostname + (t.port ? ":" + t.port : ""); let i = r.hostname || r.host; t.hostname = i, t.host = i, t.port = r.port, t.path = n, r.protocol && (t.protocol = r.protocol.includes(":") ? r.protocol : `${r.protocol}:`) } t.beforeRedirects.proxy = function (l) { WJ(l, e, l.href) } } var qTe = typeof process < "u" && Z.kindOf(process) === "process", zTe = t => new Promise((e, n) => { let r, i, l = (o, u) => { i || (i = !0, r && r(o, u)) }, s = o => { l(o), e(o) }, a = o => { l(o, !0), n(o) }; t(s, a, o => r = o).catch(a) }), GTe = ({ address: t, family: e }) => { if (!Z.isString(t)) throw TypeError("address must be a string"); return { address: t, family: e || (t.indexOf(".") < 0 ? 6 : 4) } }, VJ = (t, e) => GTe(Z.isObject(t) ? t : { address: t, family: e }), YJ = qTe && function (e) { return zTe(async function (r, i, l) { let { data: s, lookup: a, family: o } = e, { responseType: u, responseEncoding: c } = e, f = e.method.toUpperCase(), m, d = !1, y; if (a) { let ee = MJ(a, me => Z.isArray(me) ? me : [me]); a = (me, P, G) => { ee(me, P, (V, q, Zn) => { if (V) return G(V); let Tt = Z.isArray(q) ? q.map(Qe => VJ(Qe)) : [VJ(q, Zn)]; P.all ? G(V, Tt) : G(V, Tt[0].address, Tt[0].family) }) } } let _ = new XJ.default, S = () => { e.cancelToken && e.cancelToken.unsubscribe(w), e.signal && e.signal.removeEventListener("abort", w), _.removeAllListeners() }; l((ee, me) => { m = !0, me && (d = !0, S()) }); function w(ee) { _.emit("abort", !ee || ee.type ? new ks(null, e, y) : ee) } _.once("abort", i), (e.cancelToken || e.signal) && (e.cancelToken && e.cancelToken.subscribe(w), e.signal && (e.signal.aborted ? w() : e.signal.addEventListener("abort", w))); let E = mu(e.baseURL, e.url), g = new URL(E, "http://localhost"), v = g.protocol || HJ[0]; if (v === "data:") { let ee; if (f !== "GET") return lo(r, i, { status: 405, statusText: "method not allowed", headers: {}, config: e }); try { ee = Rw(e.url, u === "blob", { Blob: e.env && e.env.Blob }) } catch (me) { throw qe.from(me, qe.ERR_BAD_REQUEST, e) } return u === "text" ? (ee = ee.toString(c), (!c || c === "utf8") && (ee = Z.stripBOM(ee))) : u === "stream" && (ee = vu.default.Readable.from(ee)), lo(r, i, { data: ee, status: 200, statusText: "OK", headers: new li, config: e }) } if (HJ.indexOf(v) === -1) return i(new qe("Unsupported protocol " + v, qe.ERR_BAD_REQUEST, e)); let x = li.from(e.headers).normalize(); x.set("User-Agent", "axios/" + gu, !1); let O = e.onDownloadProgress, N = e.onUploadProgress, R = e.maxRate, U, F; if (Z.isSpecCompliantForm(s)) { let ee = x.getContentType(/boundary=([-_\w\d]{10,70})/i); s = FJ(s, me => { x.set(me) }, { tag: `axios-${gu}-boundary`, boundary: ee && ee[1] || void 0 }) } else if (Z.isFormData(s) && Z.isFunction(s.getHeaders)) { if (x.set(s.getHeaders()), !x.hasContentLength()) try { let ee = await JJ.default.promisify(s.getLength).call(s); Number.isFinite(ee) && ee >= 0 && x.setContentLength(ee) } catch { } } else if (Z.isBlob(s)) s.size && x.setContentType(s.type || "application/octet-stream"), x.setContentLength(s.size || 0), s = vu.default.Readable.from(hf(s)); else if (s && !Z.isStream(s)) { if (!Buffer.isBuffer(s)) if (Z.isArrayBuffer(s)) s = Buffer.from(new Uint8Array(s)); else if (Z.isString(s)) s = Buffer.from(s, "utf-8"); else return i(new qe("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream", qe.ERR_BAD_REQUEST, e)); if (x.setContentLength(s.length, !1), e.maxBodyLength > -1 && s.length > e.maxBodyLength) return i(new qe("Request body larger than maxBodyLength limit", qe.ERR_BAD_REQUEST, e)) } let te = Z.toFiniteNumber(x.getContentLength()); Z.isArray(R) ? (U = R[0], F = R[1]) : U = F = R, s && (N || U) && (Z.isStream(s) || (s = vu.default.Readable.from(s, { objectMode: !1 })), s = vu.default.pipeline([s, new kw({ length: te, maxRate: Z.toFiniteNumber(U) })], Z.noop), N && s.on("progress", ee => { N(Object.assign(ee, { upload: !0 })) })); let Q; if (e.auth) { let ee = e.auth.username || "", me = e.auth.password || ""; Q = ee + ":" + me } if (!Q && g.username) { let ee = g.username, me = g.password; Q = ee + ":" + me } Q && x.delete("authorization"); let W; try { W = hu(g.pathname + g.search, e.params, e.paramsSerializer).replace(/^\?/, "") } catch (ee) { let me = new Error(ee.message); return me.config = e, me.url = e.url, me.exists = !0, i(me) } x.set("Accept-Encoding", "gzip, compress, deflate" + (BJ ? ", br" : ""), !1); let ce = { path: W, method: f, headers: x.toJSON(), agents: { http: e.httpAgent, https: e.httpsAgent }, auth: Q, protocol: v, family: o, beforeRedirect: VTe, beforeRedirects: {} }; !Z.isUndefined(a) && (ce.lookup = a), e.socketPath ? ce.socketPath = e.socketPath : (ce.hostname = g.hostname, ce.port = g.port, WJ(ce, e.proxy, v + "//" + g.hostname + (g.port ? ":" + g.port : "") + ce.path)); let we, se = HTe.test(ce.protocol); if (ce.agent = se ? e.httpsAgent : e.httpAgent, e.transport ? we = e.transport : e.maxRedirects === 0 ? we = se ? GJ.default : zJ.default : (e.maxRedirects && (ce.maxRedirects = e.maxRedirects), e.beforeRedirect && (ce.beforeRedirects.config = e.beforeRedirect), we = se ? BTe : $Te), e.maxBodyLength > -1 ? ce.maxBodyLength = e.maxBodyLength : ce.maxBodyLength = 1 / 0, e.insecureHTTPParser && (ce.insecureHTTPParser = e.insecureHTTPParser), y = we.request(ce, function (me) { if (y.destroyed) return; let P = [me], G = +me.headers["content-length"]; if (O) { let Qe = new kw({ length: Z.toFiniteNumber(G), maxRate: Z.toFiniteNumber(F) }); O && Qe.on("progress", pt => { O(Object.assign(pt, { download: !0 })) }), P.push(Qe) } let V = me, q = me.req || y; if (e.decompress !== !1 && me.headers["content-encoding"]) switch ((f === "HEAD" || me.statusCode === 204) && delete me.headers["content-encoding"], (me.headers["content-encoding"] || "").toLowerCase()) { case "gzip": case "x-gzip": case "compress": case "x-compress": P.push(l2.default.createUnzip($J)), delete me.headers["content-encoding"]; break; case "deflate": P.push(new UJ), P.push(l2.default.createUnzip($J)), delete me.headers["content-encoding"]; break; case "br": BJ && (P.push(l2.default.createBrotliDecompress(MTe)), delete me.headers["content-encoding"]) }V = P.length > 1 ? vu.default.pipeline(P, Z.noop) : P[0]; let Zn = vu.default.finished(V, () => { Zn(), S() }), Tt = { status: me.statusCode, statusText: me.statusMessage, headers: new li(me.headers), config: e, request: q }; if (u === "stream") Tt.data = V, lo(r, i, Tt); else { let Qe = [], pt = 0; V.on("data", function (Ue) { Qe.push(Ue), pt += Ue.length, e.maxContentLength > -1 && pt > e.maxContentLength && (d = !0, V.destroy(), i(new qe("maxContentLength size of " + e.maxContentLength + " exceeded", qe.ERR_BAD_RESPONSE, e, q))) }), V.on("aborted", function () { if (d) return; let Ue = new qe("maxContentLength size of " + e.maxContentLength + " exceeded", qe.ERR_BAD_RESPONSE, e, q); V.destroy(Ue), i(Ue) }), V.on("error", function (Ue) { y.destroyed || i(qe.from(Ue, null, e, q)) }), V.on("end", function () { try { let Ue = Qe.length === 1 ? Qe[0] : Buffer.concat(Qe); u !== "arraybuffer" && (Ue = Ue.toString(c), (!c || c === "utf8") && (Ue = Z.stripBOM(Ue))), Tt.data = Ue } catch (Ue) { return i(qe.from(Ue, null, e, Tt.request, Tt)) } lo(r, i, Tt) }) } _.once("abort", Qe => { V.destroyed || (V.emit("error", Qe), V.destroy()) }) }), _.once("abort", ee => { i(ee), y.destroy(ee) }), y.on("error", function (me) { i(qe.from(me, null, e, y)) }), y.on("socket", function (me) { me.setKeepAlive(!0, 1e3 * 60) }), e.timeout) { let ee = parseInt(e.timeout, 10); if (Number.isNaN(ee)) { i(new qe("error trying to parse `config.timeout` to int", qe.ERR_BAD_OPTION_VALUE, e, y)); return } y.setTimeout(ee, function () { if (m) return; let P = e.timeout ? "timeout of " + e.timeout + "ms exceeded" : "timeout exceeded", G = e.transitional || R0; e.timeoutErrorMessage && (P = e.timeoutErrorMessage), i(new qe(P, G.clarifyTimeoutError ? qe.ETIMEDOUT : qe.ECONNABORTED, e, y)), w() }) } if (Z.isStream(s)) { let ee = !1, me = !1; s.on("end", () => { ee = !0 }), s.once("error", P => { me = !0, y.destroy(P) }), s.on("close", () => { !ee && !me && w(new ks("Request stream has been aborted", e, y)) }), s.pipe(y) } else y.end(s) }) }; var QJ = ii.hasStandardBrowserEnv ? { write(t, e, n, r, i, l) { let s = [t + "=" + encodeURIComponent(e)]; Z.isNumber(n) && s.push("expires=" + new Date(n).toGMTString()), Z.isString(r) && s.push("path=" + r), Z.isString(i) && s.push("domain=" + i), l === !0 && s.push("secure"), document.cookie = s.join("; ") }, read(t) { let e = document.cookie.match(new RegExp("(^|;\\s*)(" + t + ")=([^;]*)")); return e ? decodeURIComponent(e[3]) : null }, remove(t) { this.write(t, "", Date.now() - 864e5) } } : { write() { }, read() { return null }, remove() { } }; var ZJ = ii.hasStandardBrowserEnv ? function () { let e = /(msie|trident)/i.test(navigator.userAgent), n = document.createElement("a"), r; function i(l) { let s = l; return e && (n.setAttribute("href", s), s = n.href), n.setAttribute("href", s), { href: n.href, protocol: n.protocol ? n.protocol.replace(/:$/, "") : "", host: n.host, search: n.search ? n.search.replace(/^\?/, "") : "", hash: n.hash ? n.hash.replace(/^#/, "") : "", hostname: n.hostname, port: n.port, pathname: n.pathname.charAt(0) === "/" ? n.pathname : "/" + n.pathname } } return r = i(window.location.href), function (s) { let a = Z.isString(s) ? i(s) : s; return a.protocol === r.protocol && a.host === r.host } }() : function () { return function () { return !0 } }(); function eK(t, e) { let n = 0, r = ff(50, 250); return i => { let l = i.loaded, s = i.lengthComputable ? i.total : void 0, a = l - n, o = r(a), u = l <= s; n = l; let c = { loaded: l, total: s, progress: s ? l / s : void 0, bytes: a, rate: o || void 0, estimated: o && s && u ? (s - l) / o : void 0, event: i }; c[e ? "download" : "upload"] = !0, t(c) } } var JTe = typeof XMLHttpRequest < "u", tK = JTe && function (t) { return new Promise(function (n, r) { let i = t.data, l = li.from(t.headers).normalize(), { responseType: s, withXSRFToken: a } = t, o; function u() { t.cancelToken && t.cancelToken.unsubscribe(o), t.signal && t.signal.removeEventListener("abort", o) } let c; if (Z.isFormData(i)) { if (ii.hasStandardBrowserEnv || ii.hasStandardBrowserWebWorkerEnv) l.setContentType(!1); else if ((c = l.getContentType()) !== !1) { let [_, ...S] = c ? c.split(";").map(w => w.trim()).filter(Boolean) : []; l.setContentType([_ || "multipart/form-data", ...S].join("; ")) } } let f = new XMLHttpRequest; if (t.auth) { let _ = t.auth.username || "", S = t.auth.password ? unescape(encodeURIComponent(t.auth.password)) : ""; l.set("Authorization", "Basic " + btoa(_ + ":" + S)) } let m = mu(t.baseURL, t.url); f.open(t.method.toUpperCase(), hu(m, t.params, t.paramsSerializer), !0), f.timeout = t.timeout; function d() { if (!f) return; let _ = li.from("getAllResponseHeaders" in f && f.getAllResponseHeaders()), w = { data: !s || s === "text" || s === "json" ? f.responseText : f.response, status: f.status, statusText: f.statusText, headers: _, config: t, request: f }; lo(function (g) { n(g), u() }, function (g) { r(g), u() }, w), f = null } if ("onloadend" in f ? f.onloadend = d : f.onreadystatechange = function () { !f || f.readyState !== 4 || f.status === 0 && !(f.responseURL && f.responseURL.indexOf("file:") === 0) || setTimeout(d) }, f.onabort = function () { f && (r(new qe("Request aborted", qe.ECONNABORTED, t, f)), f = null) }, f.onerror = function () { r(new qe("Network Error", qe.ERR_NETWORK, t, f)), f = null }, f.ontimeout = function () { let S = t.timeout ? "timeout of " + t.timeout + "ms exceeded" : "timeout exceeded", w = t.transitional || R0; t.timeoutErrorMessage && (S = t.timeoutErrorMessage), r(new qe(S, w.clarifyTimeoutError ? qe.ETIMEDOUT : qe.ECONNABORTED, t, f)), f = null }, ii.hasStandardBrowserEnv && (a && Z.isFunction(a) && (a = a(t)), a || a !== !1 && ZJ(m))) { let _ = t.xsrfHeaderName && t.xsrfCookieName && QJ.read(t.xsrfCookieName); _ && l.set(t.xsrfHeaderName, _) } i === void 0 && l.setContentType(null), "setRequestHeader" in f && Z.forEach(l.toJSON(), function (S, w) { f.setRequestHeader(w, S) }), Z.isUndefined(t.withCredentials) || (f.withCredentials = !!t.withCredentials), s && s !== "json" && (f.responseType = t.responseType), typeof t.onDownloadProgress == "function" && f.addEventListener("progress", eK(t.onDownloadProgress, !0)), typeof t.onUploadProgress == "function" && f.upload && f.upload.addEventListener("progress", eK(t.onUploadProgress)), (t.cancelToken || t.signal) && (o = _ => { f && (r(!_ || _.type ? new ks(null, t, f) : _), f.abort(), f = null) }, t.cancelToken && t.cancelToken.subscribe(o), t.signal && (t.signal.aborted ? o() : t.signal.addEventListener("abort", o))); let y = H5(m); if (y && ii.protocols.indexOf(y) === -1) { r(new qe("Unsupported protocol " + y + ":", qe.ERR_BAD_REQUEST, t)); return } f.send(i || null) }) }; var Lw = { http: YJ, xhr: tK }; Z.forEach(Lw, (t, e) => { if (t) { try { Object.defineProperty(t, "name", { value: e }) } catch { } Object.defineProperty(t, "adapterName", { value: e }) } }); var nK = t => `- ${t}`, KTe = t => Z.isFunction(t) || t === null || t === !1, mf = {
getAdapter: t => {
t = Z.isArray(t) ? t : [t]; let { length: e } = t, n, r, i = {}; for (let l = 0; l < e; l++) { n = t[l]; let s; if (r = n, !KTe(n) && (r = Lw[(s = String(n)).toLowerCase()], r === void 0)) throw new qe(`Unknown adapter '${s}'`); if (r) break; i[s || "#" + l] = r } if (!r) {
let l = Object.entries(i).map(([a, o]) => `adapter ${a} ` + (o === !1 ? "is not supported by the environment" : "is not available in the build")), s = e ? l.length > 1 ? `since :
`+ l.map(nK).join(`
`) : " " + nK(l[0]) : "as no adapter specified"; throw new qe("There is no suitable adapter to dispatch the request " + s, "ERR_NOT_SUPPORT")
} return r
}, adapters: Lw
}; function Fw(t) { if (t.cancelToken && t.cancelToken.throwIfRequested(), t.signal && t.signal.aborted) throw new ks(null, t) } function yf(t) { return Fw(t), t.headers = li.from(t.headers), t.data = L5.call(t, t.transformRequest), ["post", "put", "patch"].indexOf(t.method) !== -1 && t.headers.setContentType("application/x-www-form-urlencoded", !1), mf.getAdapter(t.adapter || I0.adapter)(t).then(function (r) { return Fw(t), r.data = L5.call(t, t.transformResponse, r), r.headers = li.from(r.headers), r }, function (r) { return F5(r) || (Fw(t), r && r.response && (r.response.data = L5.call(t, t.transformResponse, r.response), r.response.headers = li.from(r.response.headers))), Promise.reject(r) }) } var rK = t => t instanceof li ? t.toJSON() : t; function s2(t, e) { e = e || {}; let n = {}; function r(u, c, f) { return Z.isPlainObject(u) && Z.isPlainObject(c) ? Z.merge.call({ caseless: f }, u, c) : Z.isPlainObject(c) ? Z.merge({}, c) : Z.isArray(c) ? c.slice() : c } function i(u, c, f) { if (Z.isUndefined(c)) { if (!Z.isUndefined(u)) return r(void 0, u, f) } else return r(u, c, f) } function l(u, c) { if (!Z.isUndefined(c)) return r(void 0, c) } function s(u, c) { if (Z.isUndefined(c)) { if (!Z.isUndefined(u)) return r(void 0, u) } else return r(void 0, c) } function a(u, c, f) { if (f in e) return r(u, c); if (f in t) return r(void 0, u) } let o = { url: l, method: l, data: l, baseURL: s, transformRequest: s, transformResponse: s, paramsSerializer: s, timeout: s, timeoutMessage: s, withCredentials: s, withXSRFToken: s, adapter: s, responseType: s, xsrfCookieName: s, xsrfHeaderName: s, onUploadProgress: s, onDownloadProgress: s, decompress: s, maxContentLength: s, maxBodyLength: s, beforeRedirect: s, transport: s, httpAgent: s, httpsAgent: s, cancelToken: s, socketPath: s, responseEncoding: s, validateStatus: a, headers: (u, c) => i(rK(u), rK(c), !0) }; return Z.forEach(Object.keys(Object.assign({}, t, e)), function (c) { let f = o[c] || i, m = f(t[c], e[c], c); Z.isUndefined(m) && f !== a || (n[c] = m) }), n } var jw = {};["object", "boolean", "number", "function", "string", "symbol"].forEach((t, e) => { jw[t] = function (r) { return typeof r === t || "a" + (e < 1 ? "n " : " ") + t } }); var iK = {}; jw.transitional = function (e, n, r) { function i(l, s) { return "[Axios v" + gu + "] Transitional option '" + l + "'" + s + (r ? ". " + r : "") } return (l, s, a) => { if (e === !1) throw new qe(i(s, " has been removed" + (n ? " in " + n : "")), qe.ERR_DEPRECATED); return n && !iK[s] && (iK[s] = !0, console.warn(i(s, " has been deprecated since v" + n + " and will be removed in the near future"))), e ? e(l, s, a) : !0 } }; function XTe(t, e, n) { if (typeof t != "object") throw new qe("options must be an object", qe.ERR_BAD_OPTION_VALUE); let r = Object.keys(t), i = r.length; for (; i-- > 0;) { let l = r[i], s = e[l]; if (s) { let a = t[l], o = a === void 0 || s(a, l, t); if (o !== !0) throw new qe("option " + l + " must be " + o, qe.ERR_BAD_OPTION_VALUE); continue } if (n !== !0) throw new qe("Unknown option " + l, qe.ERR_BAD_OPTION) } } var gf = { assertOptions: XTe, validators: jw }; var ao = gf.validators, P0 = class {
constructor(e) { this.defaults = e, this.interceptors = { request: new pw, response: new pw } } async request(e, n) {
try { return await this._request(e, n) } catch (r) {
if (r instanceof Error) {
let i; Error.captureStackTrace ? Error.captureStackTrace(i = {}) : i = new Error; let l = i.stack ? i.stack.replace(/^.+\n/, "") : ""; r.stack ? l && !String(r.stack).endsWith(l.replace(/^.+\n.+\n/, "")) && (r.stack += `
`+ l) : r.stack = l
} throw r
}
} _request(e, n) { typeof e == "string" ? (n = n || {}, n.url = e) : n = e || {}, n = s2(this.defaults, n); let { transitional: r, paramsSerializer: i, headers: l } = n; r !== void 0 && gf.assertOptions(r, { silentJSONParsing: ao.transitional(ao.boolean), forcedJSONParsing: ao.transitional(ao.boolean), clarifyTimeoutError: ao.transitional(ao.boolean) }, !1), i != null && (Z.isFunction(i) ? n.paramsSerializer = { serialize: i } : gf.assertOptions(i, { encode: ao.function, serialize: ao.function }, !0)), n.method = (n.method || this.defaults.method || "get").toLowerCase(); let s = l && Z.merge(l.common, l[n.method]); l && Z.forEach(["delete", "get", "head", "post", "put", "patch", "common"], y => { delete l[y] }), n.headers = li.concat(s, l); let a = [], o = !0; this.interceptors.request.forEach(function (_) { typeof _.runWhen == "function" && _.runWhen(n) === !1 || (o = o && _.synchronous, a.unshift(_.fulfilled, _.rejected)) }); let u = []; this.interceptors.response.forEach(function (_) { u.push(_.fulfilled, _.rejected) }); let c, f = 0, m; if (!o) { let y = [yf.bind(this), void 0]; for (y.unshift.apply(y, a), y.push.apply(y, u), m = y.length, c = Promise.resolve(n); f < m;)c = c.then(y[f++], y[f++]); return c } m = a.length; let d = n; for (f = 0; f < m;) { let y = a[f++], _ = a[f++]; try { d = y(d) } catch (S) { _.call(this, S); break } } try { c = yf.call(this, d) } catch (y) { return Promise.reject(y) } for (f = 0, m = u.length; f < m;)c = c.then(u[f++], u[f++]); return c } getUri(e) { e = s2(this.defaults, e); let n = mu(e.baseURL, e.url); return hu(n, e.params, e.paramsSerializer) }
}; Z.forEach(["delete", "get", "head", "options"], function (e) { P0.prototype[e] = function (n, r) { return this.request(s2(r || {}, { method: e, url: n, data: (r || {}).data })) } }); Z.forEach(["post", "put", "patch"], function (e) { function n(r) { return function (l, s, a) { return this.request(s2(a || {}, { method: e, headers: r ? { "Content-Type": "multipart/form-data" } : {}, url: l, data: s })) } } P0.prototype[e] = n(), P0.prototype[e + "Form"] = n(!0) }); var q5 = P0; var Uw = class t { constructor(e) { if (typeof e != "function") throw new TypeError("executor must be a function."); let n; this.promise = new Promise(function (l) { n = l }); let r = this; this.promise.then(i => { if (!r._listeners) return; let l = r._listeners.length; for (; l-- > 0;)r._listeners[l](i); r._listeners = null }), this.promise.then = i => { let l, s = new Promise(a => { r.subscribe(a), l = a }).then(i); return s.cancel = function () { r.unsubscribe(l) }, s }, e(function (l, s, a) { r.reason || (r.reason = new ks(l, s, a), n(r.reason)) }) } throwIfRequested() { if (this.reason) throw this.reason } subscribe(e) { if (this.reason) { e(this.reason); return } this._listeners ? this._listeners.push(e) : this._listeners = [e] } unsubscribe(e) { if (!this._listeners) return; let n = this._listeners.indexOf(e); n !== -1 && this._listeners.splice(n, 1) } static source() { let e; return { token: new t(function (i) { e = i }), cancel: e } } }, lK = Uw; function Mw(t) { return function (n) { return t.apply(null, n) } } function $w(t) { return Z.isObject(t) && t.isAxiosError === !0 } var Bw = { 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 }; Object.entries(Bw).forEach(([t, e]) => { Bw[e] = t }); var sK = Bw; function aK(t) { let e = new q5(t), n = I5(q5.prototype.request, e); return Z.extend(n, q5.prototype, e, { allOwnKeys: !0 }), Z.extend(n, e, null, { allOwnKeys: !0 }), n.create = function (i) { return aK(s2(t, i)) }, n } var Gr = aK(I0); Gr.Axios = q5; Gr.CanceledError = ks; Gr.CancelToken = lK; Gr.isCancel = F5; Gr.VERSION = gu; Gr.toFormData = io; Gr.AxiosError = qe; Gr.Cancel = Gr.CanceledError; Gr.all = function (e) { return Promise.all(e) }; Gr.spread = Mw; Gr.isAxiosError = $w; Gr.mergeConfig = s2; Gr.AxiosHeaders = li; Gr.formToJSON = t => cf(Z.isHTMLForm(t) ? new FormData(t) : t); Gr.getAdapter = mf.getAdapter; Gr.HttpStatusCode = sK; Gr.default = Gr; var L0 = Gr; var { Axios: bUe, AxiosError: wUe, CanceledError: SUe, isCancel: TUe, CancelToken: xUe, VERSION: AUe, all: OUe, Cancel: NUe, isAxiosError: CUe, spread: RUe, toFormData: oK, AxiosHeaders: IUe, HttpStatusCode: kUe, formToJSON: DUe, getAdapter: PUe, mergeConfig: LUe } = L0; var yK = Yr(require("https"), 1), gK = Yr(require("crypto"), 1), vK = Yr(hK(), 1), qw = {}; globalThis.dataBase = null; globalThis.local = { get: async function (t, e) { return await rxe(t, e) }, set: async function (t, e, n) { await ixe(t, e, n) } }; async function rxe(t, e) { let n = "/js_" + t + `/${e}/`; return await dataBase.getObjectDefault(n, {}) } async function ixe(t, e, n) {
let r = "/js_" + t; qw = await dataBase.getObjectDefault(r, {}), qw[e] = n, t === "log" && await req("http://127.0.0.1:8099/upload", {
data: {
log: n + `
`}, timeout: .1
}), await dataBase.push(r, qw)
} globalThis.localLog = { set: async function (t, e, n) { sxe(t, e, n) } }; function lxe() { _u.default.existsSync("log") || _u.default.mkdirSync("log"); let t = "log/info.log"; return _u.default.existsSync(t) ? _u.default.readFileSync(t).toString() : (_u.default.writeFileSync(t, ""), "") } function sxe(t) {
_u.default.writeFileSync("log/info.log", lxe() + `
`+ t)
} globalThis.req = axe; async function axe(t, e) { try { let n = e && e.data || null, r = e && e.postType || null, i = e && e.buffer || 0, l = e && e.timeout || 5e3, s = (e && e.redirect || 1) === 1, a = e.proxy ?? !1, o = e ? e.headers || {} : {}; r === "form" ? (o["Content-Type"] = "application/x-www-form-urlencoded", n != null && (n = mK.default.stringify(n, { encode: !1 }))) : r === "form-data" && (o["Content-Type"] = "multipart/form-data", n = oK(n)); let u = i === 1 || i === 2 ? "arraybuffer" : void 0, c; a ? c = vK.default.httpsOverHttp({ proxy: { host: "127.0.0.1", port: 7890 } }) : c = yK.default.Agent({ rejectUnauthorized: !1 }); let f = await L0(t, { responseType: u, method: e && e.method || "get", headers: o, data: n, timeout: l, maxRedirects: s ? null : 0, httpsAgent: c }); n = f.data; let m = {}; for (let d of f.headers) { let y = d[1]; m[d[0]] = Array.isArray(y) && y.length === 1 ? y[0] : y } if (!i) typeof n == "object" && (n = JSON.stringify(n)); else { if (i === 1) return { code: f.status, headers: m, content: n }; if (i === 2) return { code: f.status, headers: m, content: n.toString("base64") }; if (i === 3) { let d = e.stream; return d.onResp && await d.onResp({ code: f.status, headers: m }), d.onData ? (n.on("data", async y => { await d.onData(y) }), n.on("end", async () => { d.onDone && await d.onDone() })) : d.onDone && await d.onDone(), "stream..." } } return { code: f.status, headers: m, content: n } } catch (n) { let r = n.response; try { return { code: r.status, headers: r.headers, content: JSON.stringify(r.data) } } catch { return { headers: {}, content: "" } } } } globalThis.md5X = oxe; function oxe(t) { return gK.default.createHash("md5").update(Buffer.from(t, "utf8")).digest("hex") } globalThis.js2Proxy = function (t, e, n) { let r = Object.keys(n).length === 0 ? " " : encodeURIComponent(JSON.stringify(n)); return t.server.address().dynamic + t.server.prefix + "/proxy/" + encodeURIComponent(e) + "/" + r + "/" }; var uxe = ["DEBUG", "INFO", "WARNING", "ERROR"]; var j0 = class {
constructor(e, n = "DEBUG") { this.app_name = e, this.level = n, this.level_index = uxe.indexOf(n) } format(e, n) { let r = 80; switch (e) { case "INFO": r = r + 1; break; case "WARNING": r = r - 2; break; default: break }return n.length < r && ((r - n.length) % 2 === 0 ? n = "#".repeat(Math.floor((r - n.length) / 2)) + n + "#".repeat(Math.floor((r - n.length) / 2)) : n = "#".repeat(Math.floor((r - n.length) / 2)) + n + "#".repeat(Math.floor((r - n.length) / 2) + 1)), n } getTime() { let e = new Date; return e.toLocaleDateString().replace(/\//g, "-") + " " + e.toTimeString().substr(0, 8) + "," + e.getMilliseconds().toString() } formatMessage(e, n, r) { return r && (n = this.format(e, n)), `${this.getTime()} - ${this.app_name} - ${e}: ${n}` } async log(e) {
console.debug(e), await req("http://127.0.0.1:8099/upload", {
data: {
log: e + `
`}, timeout: .1
})
} async info(e, n) { this.level_index <= 1 && await this.log(this.formatMessage("INFO", e, n)) } async warning(e, n) { this.level_index <= 2 && await this.log(this.formatMessage("WARNING", e, n)) } async error(e, n) { this.level_index <= 3 && await this.log(this.formatMessage("ERROR", e, n)) } async debug(e, n) { this.level_index <= 0 && await this.log(this.formatMessage("DEBUG", e, n)) }
}; var Re = class extends Fe { constructor() { super(), this.jadeLog = new j0(this.getAppName(), "DEBUG") } async init(e, n) { await this.jadeLog.info("\u521D\u59CB\u5316", !0); try { await await req("http://127.0.0.1:8099/clear", { timeout: .1 }), this.siteKey = this.getJSName(), this.siteType = this.getType(), this.cfgObj = e.server.config[this.siteKey], this.deviceKey = e.server.prefix + "/", this.db = e.server.db, this.catOpenStatus = !0, this.danmuStaus = !1; try { await this.loadFilterAndClasses() ? await this.jadeLog.debug("\u8BFB\u53D6\u7F13\u5B58\u5217\u8868\u548C\u4E8C\u7EA7\u83DC\u5355\u6210\u529F") : (await this.jadeLog.warning("\u8BFB\u53D6\u7F13\u5B58\u5217\u8868\u548C\u4E8C\u7EA7\u83DC\u5355\u5931\u8D25"), await this.writeFilterAndClasses()) } catch (r) { await this.db.push(this.deviceKey + "classes", {}), await this.db.push(this.deviceKey + "filterObj", {}), await this.jadeLog.error("\u8BFB\u53D6\u7F13\u5B58\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + r, !1) } } catch (r) { await this.jadeLog.error(`\u521D\u59CB\u5316\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${r}`) } await this.jadeLog.info("\u521D\u59CB\u5316\u5B8C\u6210", !0) } async loadFilterAndClasses() { return this.classes = await this.getClassesCache(), this.filterObj = await this.getFiletObjCache(), this.classes.length > 0 ? !0 : (await this.db.push(this.deviceKey + "classes", {}), await this.db.push(this.deviceKey + "filterObj", {}), !1) } async writeFilterAndClasses() { this.catOpenStatus && this.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await this.setClasses(), await this.setFilterObj(), await this.db.push(this.deviceKey + "classes", this.classes), await this.db.push(this.deviceKey + "filterObj", this.filterObj) } async getClassesCache() { let e = await this.db.getObjectDefault(this.deviceKey + "classes", {}); return B.isEmpty(e) ? this.classes : e } async getFiletObjCache() { let e = await this.db.getObjectDefault(this.deviceKey + "filterObj", {}); return B.isEmpty(e) ? this.filterObj : e } async home(e, n) { return this.vodList = [], await this.jadeLog.info("\u6B63\u5728\u89E3\u6790\u9996\u9875\u7C7B\u522B", !0), await this.setHome(), await this.jadeLog.debug(`\u9996\u9875\u7C7B\u522B\u5185\u5BB9\u4E3A:${this.result.home(this.classes, [], this.filterObj)}`), await this.jadeLog.info("\u9996\u9875\u7C7B\u522B\u89E3\u6790\u5B8C\u6210", !0), this.result.home(this.classes, [], this.filterObj) } async homeVod() { await this.jadeLog.info("\u6B63\u5728\u89E3\u6790\u9996\u9875\u5185\u5BB9", !0); try { return await this.setHomeVod(), await this.jadeLog.debug(`\u9996\u9875\u5185\u5BB9\u4E3A:${this.result.homeVod(this.homeVodList)}`), await this.jadeLog.info("\u9996\u9875\u5185\u5BB9\u89E3\u6790\u5B8C\u6210", !0), this.result.homeVod(this.homeVodList) } catch (e) { await this.jadeLog.error(`\u9996\u9875\u5185\u5BB9\u89E3\u6790\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${e}`) } } async category(e, n) { let r = e.body.id, i = e.body.page, l = !0, s = e.body.filters; if (this.page = parseInt(i), await this.jadeLog.info(`\u6B63\u5728\u89E3\u6790\u5206\u7C7B\u9875\u9762,tid = ${r},pg = ${i},extend = ${JSON.stringify(s)}`), r === "\u6700\u8FD1\u66F4\u65B0") return this.page = 0, await this.homeVod(); try { return this.vodList = [], await this.setCategory(r, i, l, s), await this.jadeLog.debug(`\u5206\u7C7B\u9875\u9762\u5185\u5BB9\u4E3A:${this.result.category(this.vodList, this.page, this.count, this.limit, this.total)}`), await this.jadeLog.info("\u5206\u7C7B\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), this.result.category(this.vodList, this.page, this.count, this.limit, this.total) } catch (a) { await this.jadeLog.error(`\u5206\u7C7B\u9875\u89E3\u6790\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${a}`) } } async detail(e, n) { await this.jadeLog.debug(`\u83B7\u53D6\u8BE6\u60C5\u9875\u9762:${JSON.stringify(e.body)}`); let i = (Array.isArray(e.body.id) ? e.body.id : [e.body.id])[0]; this.vodDetail = new Be, await this.jadeLog.info(`\u6B63\u5728\u83B7\u53D6\u8BE6\u60C5\u9875\u9762,id\u4E3A:${i}`); try { return await this.setDetail(i), await this.jadeLog.debug(`\u8BE6\u60C5\u9875\u9762\u5185\u5BB9\u4E3A:${this.result.detail(this.vodDetail)}`), await this.jadeLog.info("\u8BE6\u60C5\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), this.vodDetail.vod_id = i, this.result.detail(this.vodDetail) } catch (l) { await this.jadeLog.error("\u8BE6\u60C5\u754C\u9762\u83B7\u53D6\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + l) } } async play(e, n) { let r = e.body.flag, i = e.body.id, l = []; await this.jadeLog.info(`\u6B63\u5728\u89E3\u6790\u64AD\u653E\u9875\u9762,flag:${r},id:${i},flags:${l}`, !0); try { let s; if (await this.setPlay(r, i, l), this.playUrl.content !== void 0) return this.playUrl; if (await this.jadeLog.debug("\u4E0D\u9700\u8981\u52A0\u8F7D\u5F39\u5E55", !0), this.result.jx === 1 && this.playUrl.indexOf(".m3u8") < 0) { let a = await e.server.messageToDart({ action: "sniff", opt: { url: i, timeout: 6e4, rule: "http((?!http).){12,}?\\.m3u8?" } }); if (a && a.url) { let o = {}; a.headers && (a.headers["user-agent"] && (o["User-Agent"] = a.headers["user-agent"]), a.headers.referer && (o.Referer = a.headers.referer)), await this.jadeLog.debug(`\u55C5\u63A2\u6210\u529F,\u64AD\u653E\u8FDE\u63A5\u4E3A:${a.url}`), s = JSON.stringify({ parse: 0, url: a.url, header: a.headers, jx: "0" }) } else await this.jadeLog.error("\u89E3\u6790\u5931\u8D25,\u65E0\u6CD5\u55C5\u63A2\u5230\u64AD\u653E\u8FDE\u63A5"), s = JSON.stringify({ parse: 0, url: "", jx: "0" }) } else s = this.result.play(this.playUrl); return await this.jadeLog.info("\u64AD\u653E\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), await this.jadeLog.debug(`\u64AD\u653E\u9875\u9762\u5185\u5BB9\u4E3A:${s}`), s } catch (s) { await this.jadeLog.error("\u89E3\u6790\u64AD\u653E\u9875\u9762\u51FA\u9519,\u5931\u8D25\u539F\u56E0\u4E3A:" + s) } } async search(e, n) { let r = e.body.page, i = e.body.wd, l = !0; return this.vodList = [], await this.jadeLog.info(`\u6B63\u5728\u89E3\u6790\u641C\u7D22\u9875\u9762,\u5173\u952E\u8BCD\u4E3A = ${i},quick = ${l},pg = ${r}`), await this.setSearch(i, l, r), this.vodList.length === 0 && i.indexOf(" ") > -1 && (await this.jadeLog.debug(`\u641C\u7D22\u5173\u952E\u8BCD\u4E3A:${i},\u5176\u4E2D\u6709\u7A7A\u683C,\u53BB\u9664\u7A7A\u683C\u5728\u641C\u7D22\u4E00\u6B21`), await this.search(i.replaceAll(" ", "").replaceAll("?", ""), l)), await this.jadeLog.debug(`\u641C\u7D22\u9875\u9762\u5185\u5BB9\u4E3A:${this.result.search(this.vodList)}`), await this.jadeLog.info("\u641C\u7D22\u9875\u9762\u89E3\u6790\u5B8C\u6210", !0), this.result.search(this.vodList) } async proxy(e, n) { try { let r = e.params.what, i = {}; try { i = JSON.parse(e.params.ids) } catch { } let l = decodeURIComponent(e.params.end), s = JSON.parse(await this.setProxy([r, l], i)); return r === "dash" ? (await this.jadeLog.debug(`dash:${JSON.stringify(s)}`), n.code(s.code).headers(s.headers), s.content) : s.code === 200 ? (n.code(s.code).headers(s.headers), Buffer.from(s.content, "base64")) : (n.code(500), "") } catch (r) { await this.jadeLog.error(`\u4EE3\u7406\u56DE\u8C03\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${r}`) } } }; var uo = class extends Fe { constructor() { super(), this.siteUrl = "http://cj.ffzyapi.com", this.remove18 = !1, this.type_id_18 = 34 } async spiderInit(e) { e !== null ? this.detailProxy = await js2Proxy(e, "detail", this.getHeader()) : this.detailProxy = await js2Proxy(!0, this.siteType, this.siteKey, "detail/", this.getHeader()) } async init(e) { await super.init(e), await this.spiderInit(null) } async parseVodShortListFromJson(e, n = !1) { let r = [], i; for (let l of e.list) n ? (i = new Ne, i.vod_pic = this.detailProxy + ti(l.vod_id), i.vod_id = l.vod_id, i.vod_name = l.vod_name, i.vod_remarks = l.vod_remarks) : i = this.parseVodDetail(l), this.remove18 && l.type_id !== this.type_id_18 && r.push(i), !this.remove18 && l.type_id === this.type_id_18 && r.push(i); return r } parseVodDetail(e) { let n = new Be; n.vod_id = e.vod_id, n.vod_name = e.vod_name, n.vod_pic = e.vod_pic, n.vod_remarks = e.vod_remarks, n.vod_area = e.vod_area, n.vod_year = e.vod_year, n.vod_actor = e.vod_actor, n.vod_director = e.vod_director; let r = $e(e.vod_content); return n.vod_content = r.text(), e.vod_down_url !== void 0 && e.vod_down_url.length > 0 && (n.vod_play_from = "\u76F4\u94FE\u64AD\u653E$$$", n.vod_play_url = e.vod_down_url + "$$$"), n.vod_play_from = n.vod_play_from + e.vod_play_from, n.vod_play_url = n.vod_play_url + e.vod_play_url, n.type_name = e.type_name, n } async parseVodDetailfromJson(e) { let n, r = e.list; if (r.length > 0) { let i = r[0]; n = this.parseVodDetail(i) } return n } async setClasses() { let e = await this.fetch(this.siteUrl + "/api.php/provide/vod/from", { ac: "list" }, this.getHeader()), n = JSON.parse(e); for (let r of n.class) r.type_pid !== 0 && this.classes.push(this.getTypeDic(r.type_name, r.type_id)) } async setFilterObj() { let e = await this.fetch(this.siteUrl + "/api.php/provide/vod/from", { ac: "list" }, this.getHeader()), n = JSON.parse(e); for (let r of this.classes) { let i = r.type_id.toString(); if (i !== "\u6700\u8FD1\u66F4\u65B0") { let l = { key: "1", name: "\u5206\u7C7B", value: [{ n: "\u5168\u90E8", v: i }] }; for (let s of n.class) { let a = s.type_name; a === this.type_name_18 && (this.type_id_18 = s.type_id.toString()), this.remove18 ? s.type_pid === r.type_id && a !== this.type_name_18 && l.value.push({ n: a, v: s.type_id.toString() }) : s.type_pid === r.type_id && a === this.type_name_18 && l.value.push({ n: a, v: s.type_id.toString() }) } this.remove18 ? this.filterObj[i] = [l] : this.classes = [this.getTypeDic("\u6700\u8FD1\u66F4\u65B0", "\u6700\u8FD1\u66F4\u65B0"), this.getTypeDic(this.type_name_18, this.type_id_18)] } } } async setHomeVod() { let e = await this.fetch(this.siteUrl + "/index.php/ajax/data", { mid: "1" }, this.getHeader()); this.homeVodList = await this.parseVodShortListFromJson(JSON.parse(e)) } async setDetail(e) { let n = await this.fetch(this.siteUrl + "/api.php/provide/vod", { ac: "detail", ids: e }, this.getHeader()); this.vodDetail = await this.parseVodDetailfromJson(JSON.parse(n)) } async setCategory(e, n, r, i) { e = i[1] ?? e; let l = this.siteUrl + `/index.php/ajax/data?mid=1&tid=${e}&page=${n}&limit=20`; await this.jadeLog.debug(`\u5206\u7C7BURL:${l}`); let s = await this.fetch(l, null, this.getHeader()); await this.jadeLog.debug(`\u5206\u7C7B\u5185\u5BB9\u4E3A:${s}`), this.vodList = await this.parseVodShortListFromJson(JSON.parse(s)) } async setSearch(e, n) { let r = await this.fetch(this.siteUrl + "/api.php/provide/vod/", { wd: e }, this.getHeader()); this.vodList = await this.parseVodShortListFromJson(JSON.parse(r), !0) } async proxy(e, n) { await this.jadeLog.debug(`\u6B63\u5728\u8BBE\u7F6E\u53CD\u5411\u4EE3\u7406 segments = ${e.join(",")},headers = ${JSON.stringify(n)}`); let r = e[0], i = vi(e[1]); if (await this.jadeLog.debug(`\u53CD\u5411\u4EE3\u7406\u53C2\u6570\u4E3A:${i}`), r === "detail") { let l = await this.fetch(this.siteUrl + "/api.php/provide/vod", { ac: "detail", ids: i }, this.getHeader()), s = await this.parseVodDetailfromJson(JSON.parse(l)), a = await this.fetch(s.vod_pic, null, this.getHeader(), !1, !1, 2); return B.isEmpty(a) ? JSON.stringify({ code: 500, buffer: 2, content: "", headers: {} }) : JSON.stringify({ code: 200, buffer: 2, content: a, headers: {} }) } } }; var zw = class extends uo { constructor() { super(), this.siteUrl = "https://haiwaikan.com", this.remove18 = !0, this.type_id_18 = 0 } async spiderInit(e) { await super.spiderInit(e) } async init(e) { await super.init(e), await this.spiderInit(null) } getAppName() { return "\u6D77\u5916\u770B" } getName() { return "\u2615\u2503\u6D77\u5916\u770B\u2503\u2615\u5899" } getJSName() { return "haiwaikan" } getType() { return 3 } async setClasses() { let e = await this.fetch(this.siteUrl + "/api.php/provide/vod/from", { ac: "list" }, this.getHeader()), n = JSON.parse(e); for (let r of n.class) r.type_id < 26 && this.classes.push(this.getTypeDic(r.type_name, r.type_id.toString())); this.content_json = n } async getFilter(e, n) { let r = [], i = { key: "1", name: "\u5168\u90E8\u7C7B\u522B", value: [{ n: "\u5168\u90E8\u7C7B\u522B", v: e.toString() }] }; for (let l of n.class) { let s = l.type_id, a = 0, o = 0; e === 20 && (a = 50, o = 27), e === 21 && (a = 128, o = 100), e === 22 && (a = 143, o = 134), e === 23 && (a = 135, o = 127), s < a && s > o && i.value.push({ n: l.type_name, v: s.toString() }) } return i.value.length > 1 ? (r.push(i), r) : null } async setFilterObj() { let e = await this.fetch(this.siteUrl + "/api.php/provide/vod/from", { ac: "list" }, this.getHeader()), n = JSON.parse(e); for (let r of this.classes) { let i = r.type_id; if (i !== "\u6700\u8FD1\u66F4\u65B0") { let l = await this.getFilter(parseInt(i), n); l !== null && (this.filterObj[i] = l) } } } }, mn = new zw; var Gw = class extends Re { constructor() { super() } getName() { return mn.getName() } getAppName() { return mn.getAppName() } getJSName() { return mn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await mn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await mn.initCookie(e.server.config.bilicookie), await mn.spiderInit(e), mn.cfgObj.code = 0, mn.catOpenStatus = !0, mn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await mn.setClasses(), this.classes = mn.classes } async setFilterObj() { await mn.setFilterObj(), this.filterObj = mn.filterObj } async setHomeVod() { await mn.setHomeVod(), this.homeVodList = mn.homeVodList } async setCategory(e, n, r, i) { await mn.setCategory(e, n, r, i), this.vodList = mn.vodList } async setDetail(e) { await mn.setDetail(e), this.vodDetail = mn.vodDetail } async setPlay(e, n, r) { await mn.setPlay(e, n, r), this.playUrl = mn.playUrl, this.result = mn.result } async setSearch(e, n, r) { await mn.setSearch(e, n, r), this.vodList = mn.vodList, this.result = mn.result } async setProxy(e, n) { return await mn.proxy(e, n) } }, co = new Gw; async function _K(t, e) { return await co.init(t, e) } async function EK(t, e) { return await co.home(t, e) } async function cxe(t, e) { return await co.homeVod(t, e) } async function bK(t, e) { return await co.category(t, e) } async function wK(t, e) { return await co.detail(t, e) } async function SK(t, e) { return await co.play(t, e) } async function TK(t, e) { return await co.search(t, e) } async function pxe(t, e) { return await co.proxy(t, e) } var xK = { meta: { key: mn.getJSName(), name: mn.getName(), type: mn.getType() }, api: async t => { t.post("/init", _K), t.post("/home", EK), t.post("/category", bK), t.post("/detail", wK), t.post("/play", SK), t.post("/search", TK), t.get("/proxy/:what/:ids/:end", pxe) }, spider: { init: _K, home: EK, homeVod: cxe, category: bK, detail: wK, play: SK, search: TK } }; function vf(t, e) { let n = _f(); return vf = function (r, i) { return r = r - 424, n[r] }, vf(t, e) } function _f() { let t = ["1580630GngmmA", "117uvwflw", "join", "current_id", "565448Apkhig", "23092JwmytW", "707152yowhOv", "getElementById", "855936CGaczt", "length", "2966831GCGpvn", "611266nfcTEf", "value", "substring"]; return _f = function () { return t }, _f() } (function (t, e) { let n = vf, r = t(); for (; ;)try { if (-parseInt(n(436)) / 1 + parseInt(n(429)) / 2 + -parseInt(n(433)) / 3 * (-parseInt(n(437)) / 4) + -parseInt(n(432)) / 5 + parseInt(n(426)) / 6 + parseInt(n(428)) / 7 + parseInt(n(424)) / 8 === e) break; r.push(r.shift()) } catch { r.push(r.shift()) } })(_f, 304089); function fxe(t, e) { let n = vf, r = t, i = e; if (!r || !i) return; let l = r.length, s = r[n(431)](l - 4, l), a = []; for (let o = 0; o < s[n(427)]; o++) { let u = parseInt(s[o]), c = u % 3 + 1; a[o] = i[n(431)](c, c + 8), i = i[n(431)](c + 8, i[n(427)]) } return a[n(434)]("") } var Jw = class extends Fe { constructor() { super(), this.siteUrl = "https://v.ikanbot.com" } getName() { return "\u{1F916}\u2503\u7231\u770B\u673A\u5668\u4EBA\u2503\u{1F916}" } getAppName() { return "\u7231\u770B\u673A\u5668\u4EBA" } getJSName() { return "ikanbot" } getType() { return 3 } async spiderInit(e = null) { e !== null ? this.jsBase = await js2Proxy(e, "img", this.getHeader()) : this.jsBase = await js2Proxy(!0, this.siteType, this.siteKey, "img/", this.getHeader()) } async init(e) { await super.init(e), await this.spiderInit(null) } async parseVodShortListFromDoc(e) { let n = [], r = e(e('[class="row list-wp"]')).find("a"); for (let i of r) { let l = new Ne, s = e(i).find("img")[0]; l.vod_id = i.attribs.href, l.vod_pic = this.jsBase + ti(s.attribs["data-src"]), l.vod_name = s.attribs.alt, n.push(l) } return n } getChildren(e, n) { try { return e[n].children[0].data } catch { return "" } } async parseVodDetailFromDoc(e) { let n = e("div.detail > .meta"), r = new Be; r.vod_pic = this.jsBase + ti(e("div.item-root > img")[0].attribs["data-src"]), r.vod_name = this.getChildren(n, 0), r.vod_year = this.getChildren(n, 1), r.vod_area = this.getChildren(n, 3), r.vod_actor = this.getChildren(n, 4); let i = Te(/<input type="hidden" id="current_id" value="(.*?)"/, e.html()), l = Te(/<input type="hidden" id="e_token" value="(.*?)"/, e.html()), s = Te(/<input type="hidden" id="mtype" value="(.*?)"/, e.html()), a = { videoId: i, mtype: s, token: fxe(i, l) }, o = await this.fetch(this.siteUrl + "/api/getResN", a, this.getHeader()), u = JSON.parse(o).data.list, c = {}, f = 0, m = []; for (let d of u) { let y = JSON.parse(d.resData); for (let _ of y) { f = f + 1; let S = _.flag, w = _.url; !S || !w || c[S] || (m.push(`\u7EBF\u8DEF${f}`), c[S] = w) } } return r.vod_play_from = m.join("$$$"), r.vod_play_url = B.values(c).join("$$$"), r } async parseVodShortListFromDocBySearch(e) { let n = [], r = e("div.media > div.media-left > a"); for (let i of r) { let l = new Ne, s = e(i).find("img:first")[0]; l.vod_id = i.attribs.href, l.vod_name = s.attribs.alt, l.vod_pic = this.jsBase + ti(s.attribs["data-src"]), n.push(l) } return n } async setClasses() { let e = await this.fetch(this.siteUrl + "/category", null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e), r = n(n(n('[class="row visible-xs-block visible-sm-block"]')).find("li")).find("a"); for (let i of r) this.classes.push({ type_name: n(i).text(), type_id: i.attribs.href }) } } async setFilterObj() { for (let e of this.classes.slice(1, 9)) { let n = e.type_id; if (n.indexOf("category") === -1 || n.indexOf(",") > -1) { let r = n.split(",").slice(-1)[0], i = await this.fetch(this.siteUrl + r, null, this.getHeader()); if (!B.isEmpty(i)) { let l = $e(i), s = l('[class="row visible-xs-block visible-sm-block"]'), a = s.find('[class="nav nav-pills"]').find("a"), o = []; n.indexOf(",") > -1 && o.push({ n: "\u5168\u90E8", v: n.split(",")[0] }); let u = { key: n, name: l(s.find("h5")).text(), value: o }; for (let c of a) o.push({ n: l(c).text(), v: c.attribs.href }); o.length > 0 && (this.filterObj[n] = [u]) } } } } async setHomeVod() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e); this.homeVodList = await this.parseVodShortListFromDoc(n) } } async setCategory(e, n, r, i) { let l = this.siteUrl + (i[e] || e.split(",")[0]), s = !1; l.indexOf("html") > -1 ? l = l.replace(".html", n > 1 ? `-p-${n}.html` : ".html") : (l = l + `?p=${n}`, s = !0), await this.jadeLog.debug(`\u5206\u7C7BURL:${l}`); let a = await this.fetch(l, null, this.getHeader()); if (!B.isEmpty(a)) { let o = $e(a); this.vodList = await this.parseVodShortListFromDoc(o); let u = o("div.page-more > a:contains(\u4E0B\u4E00\u9875)"); s && (this.page = parseInt(u[0].attribs.href.split("p=")[1])); let c = u.length > 0; this.limit = 24, this.count = c ? parseInt(n) + 1 : parseInt(n), this.total = this.limit * this.count } } async setDetail(e) { let n = await this.fetch(this.siteUrl + e, null, this.getHeader()); if (!B.isEmpty(n)) { let r = $e(n); this.vodDetail = await this.parseVodDetailFromDoc(r) } } async setSearch(e, n) { let r = await this.fetch(this.siteUrl + "/search?q=" + e, null, this.getHeader()); if (!B.isEmpty(r)) { let i = $e(r); this.vodList = await this.parseVodShortListFromDocBySearch(i) } } async setPlay(e, n, r) { this.playUrl = n } }, yn = new Jw; var Kw = class extends Re { constructor() { super() } getName() { return yn.getName() } getAppName() { return yn.getAppName() } getJSName() { return yn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await yn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await yn.initCookie(e.server.config.bilicookie), await yn.spiderInit(e), yn.cfgObj.code = 0, yn.catOpenStatus = !0, yn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await yn.setClasses(), this.classes = yn.classes } async setFilterObj() { await yn.setFilterObj(), this.filterObj = yn.filterObj } async setHomeVod() { await yn.setHomeVod(), this.homeVodList = yn.homeVodList } async setCategory(e, n, r, i) { await yn.setCategory(e, n, r, i), this.vodList = yn.vodList } async setDetail(e) { await yn.setDetail(e), this.vodDetail = yn.vodDetail } async setPlay(e, n, r) { await yn.setPlay(e, n, r), this.playUrl = yn.playUrl, this.result = yn.result } async setSearch(e, n, r) { await yn.setSearch(e, n, r), this.vodList = yn.vodList, this.result = yn.result } async setProxy(e, n) { return await yn.proxy(e, n) } }, po = new Kw; async function AK(t, e) { return await po.init(t, e) } async function OK(t, e) { return await po.home(t, e) } async function dxe(t, e) { return await po.homeVod(t, e) } async function NK(t, e) { return await po.category(t, e) } async function CK(t, e) { return await po.detail(t, e) } async function RK(t, e) { return await po.play(t, e) } async function IK(t, e) { return await po.search(t, e) } async function hxe(t, e) { return await po.proxy(t, e) } var kK = { meta: { key: yn.getJSName(), name: yn.getName(), type: yn.getType() }, api: async t => { t.post("/init", AK), t.post("/home", OK), t.post("/category", NK), t.post("/detail", CK), t.post("/play", RK), t.post("/search", IK), t.get("/proxy/:what/:ids/:end", hxe) }, spider: { init: AK, home: OK, homeVod: dxe, category: NK, detail: CK, play: RK, search: IK } }; var Xw = class extends Fe { constructor() { super(), this.siteUrl = "https://ali.gitcafe.ink" } getName() { return "\u{1F98A}\u2503\u963F\u91CC\u7EB8\u6761\u2503\u{1F98A}" } getAppName() { return "\u963F\u91CC\u7EB8\u6761" } getJSName() { return "gitcafe" } getType() { return 3 } async getApiUrl() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = Te(/<script src='(.*?)'><\/script>/, e), r = await this.fetch(n, null, this.getHeader()); return { api: "https:" + Te(/ return '(.*?)' \+ /, r) + new Date().getTime(), search_api: Te(/const SEARCH_API = '(.*?)';/, r) } } } async getContentJson() { let e = await this.getApiUrl(), n = await this.fetch(e.api, null, this.getHeader()); if (this.search_api = e.search_api, !B.isEmpty(n)) return JSON.parse(n) } async spiderInit() { this.content_json = await this.getContentJson(), this.token_dic = await this.load_cache() } async init(e) { await this.spiderInit(), await super.init(e), await qi(this.cfgObj.token) } async parseClassFromJson(e) { let n = Object.keys(e.data).slice(0, 19); for (let r of n) this.classes.push({ type_name: e.data[r].name, type_id: r }) } async parseVodShortListFromJson(e) { let n = [], r = this.getClassIdList(); for (let i of e) { let l = new Ne; r.includes(i.cat) && (l.vod_id = JSON.stringify(i), l.vod_name = i.title, l.vod_remarks = i.date, n.push(l)) } return n } async parseVodDetailfromJson(e) { let n = this.getClassNameList(), r = this.getClassIdList(), i = new Be; i.vod_name = e.title, i.vod_remarks = e.creatime ?? e.date, i.type_name = n[r.indexOf(e.cat)], i.vod_content = e.des; let l = "https://www.aliyundrive.com/s/" + e.alikey, s = await Tl([l]); return i.vod_play_url = s.vod_play_url, i.vod_play_from = s.vod_play_from, i } async setClasses() { await this.parseClassFromJson(this.content_json) } async setHomeVod() { this.homeVodList = await this.parseVodShortListFromJson(this.content_json.info.new) } async setDetail(e) { let n = JSON.parse(e); this.vodDetail = await this.parseVodDetailfromJson(n) } async setCategory(e, n, r, i) { this.vodList = await this.parseVodShortListFromJson(this.content_json.data[e].catdata) } async setSearch(e, n) { await this.refreshToken(); let r = { action: "search", from: "web", token: this.token_dic.token, keyword: e }, i = await this.post(this.search_api, r, this.getHeader()); if (!B.isEmpty(i)) { let l = JSON.parse(i); this.vodList = await this.parseVodShortListFromJson(l.data) } } async refreshToken() { let e = new Date().getTime(); B.isEmpty(this.token_dic.token) ? (await this.get_token(), await this.jadeLog.debug("Token\u4E3A\u7A7A,\u5237\u65B0Token")) : e - parseInt(this.token_dic.date) > 24 * 60 * 60 * 1e3 ? (await this.jadeLog.debug(`Token\u5230\u671F,\u4E0A\u6B21\u83B7\u53D6Token\u65F6\u95F4\u4E3A:${e},\u5F53\u524D\u65F6\u95F4\u4E3A:${parseInt(this.token_dic.date)},\u5237\u65B0Token`), await this.get_token()) : await this.jadeLog.debug("Token\u4ECD\u7136\u6709\u6548,\u65E0\u9700\u5237\u65B0", !0) } async get_token() { try { let e = { action: "get_token", from: "web" }, n = await this.post(this.search_api, e, this.getHeader()); if (!B.isEmpty(n)) { let r = JSON.parse(n), i = new Date().getTime(); this.token_dic.token = r.data, this.token_dic.date = i.toString(), await this.write_cache() } } catch (e) { await this.jadeLog.error("\u83B7\u53D6Token\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:" + e) } } async write_cache() { await local.set("gitcafe_token", "token", JSON.stringify(this.token_dic)) } async load_cache() { try { let e = await local.get("gitcafe_token", "token"); return JSON.parse(e) } catch { return { token: "", date: "" } } } async play(e, n, r) { return await xl(e, n, r) } }, gn = new Xw; var Ww = class extends Re { constructor() { super() } getName() { return gn.getName() } getAppName() { return gn.getAppName() } getJSName() { return gn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await gn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await gn.initCookie(e.server.config.bilicookie), await gn.spiderInit(e), gn.cfgObj.code = 0, gn.catOpenStatus = !0, gn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await gn.setClasses(), this.classes = gn.classes } async setFilterObj() { await gn.setFilterObj(), this.filterObj = gn.filterObj } async setHomeVod() { await gn.setHomeVod(), this.homeVodList = gn.homeVodList } async setCategory(e, n, r, i) { await gn.setCategory(e, n, r, i), this.vodList = gn.vodList } async setDetail(e) { await gn.setDetail(e), this.vodDetail = gn.vodDetail } async setPlay(e, n, r) { await gn.setPlay(e, n, r), this.playUrl = gn.playUrl, this.result = gn.result } async setSearch(e, n, r) { await gn.setSearch(e, n, r), this.vodList = gn.vodList, this.result = gn.result } async setProxy(e, n) { return await gn.proxy(e, n) } }, fo = new Ww; async function DK(t, e) { return await fo.init(t, e) } async function PK(t, e) { return await fo.home(t, e) } async function mxe(t, e) { return await fo.homeVod(t, e) } async function LK(t, e) { return await fo.category(t, e) } async function FK(t, e) { return await fo.detail(t, e) } async function jK(t, e) { return await fo.play(t, e) } async function UK(t, e) { return await fo.search(t, e) } async function yxe(t, e) { return await fo.proxy(t, e) } var MK = { meta: { key: gn.getJSName(), name: gn.getName(), type: gn.getType() }, api: async t => { t.post("/init", DK), t.post("/home", PK), t.post("/category", LK), t.post("/detail", FK), t.post("/play", jK), t.post("/search", UK), t.get("/proxy/:what/:ids/:end", yxe) }, spider: { init: DK, home: PK, homeVod: mxe, category: LK, detail: FK, play: jK, search: UK } }; var z5 = class extends Fe { constructor() { super(), this.siteUrl = "http://op.ysdqjs.cn", this.cookie = "", this.extendObj = { extend: "\u7C7B\u578B", area: "\u5730\u533A", lang: "\u8BED\u8A00", year: "\u5E74\u4EE3" }, this.parseMap = {} } async request(e, n, r) { let i = { "User-Agent": zr }; B.isEmpty(this.cookie) || (i.Cookie = this.cookie); let l = n === "post" ? "form-data" : "", s = await req(e, { method: n || "get", headers: i, data: r, postType: l }); if (s.code === 403) { let a = s.data.match(/window\.location\.href ="(.*?)"/)[1]; this.cookie = B.isArray(s.headers["set-cookie"]) ? s.headers["set-cookie"].join(";") : s.headers["set-cookie"], i.Cookie = this.cookie, s = await req(this.siteUrl + a, { method: n || "get", headers: i, data: r, postType: l }) } return s.content } async postData(e, n) { let r = Math.floor(new Date().getTime() / 1e3), s = { sign: md5X("kj5649ertj84ks89r4jh8s45hf84hjfds04k" + r).toString(), timestamp: r }, a = n ? B.merge(s, n) : s; return await this.request(e, "post", a) } getName() { return "\u26C4\u2503\u5929\u5929\u5F71\u89C6\u2503\u26C4" } getAppName() { return "\u5929\u5929\u5F71\u89C6" } getJSName() { return "tiantian" } getType() { return 3 } async init(e) { await super.init(e), this.danmuStaus = !1 } generateParam(e, n, r, i) { let l = { type_id: e, page: n, limit: i }; return r.extend !== void 0 && r.extend !== "\u5168\u90E8" && (l.class = r.extend), r.area !== void 0 && r.area !== "\u5168\u90E8" && (l.area = r.area), r.lang !== void 0 && r.lang !== "\u5168\u90E8" && (l.lang = r.lang), r.year !== void 0 && r.year !== "\u5168\u90E8" && (l.year = r.year), l } async getFilter(e) { let n = []; return Object.keys(e).forEach(r => { if (Array.isArray(e[r])) { let i = { key: r, name: this.extendObj[r], value: [] }, l = !1; for (let s of e[r]) r === "year" && !e[r].includes("2024") && s !== "\u5168\u90E8" && !l && (i.value.push({ n: "2024", v: "2024" }), l = !0), B.isEmpty(s) || i.value.push({ n: s, v: s }); i.value.length > 1 && n.push(i) } }), n } async setClasses() { let e = JSON.parse(await this.postData(this.siteUrl + "/v2/type/top_type")); for (let n of e.data.list) { let r = n.type_name, i = n.type_id.toString(); this.classes.push(this.getTypeDic(r, i)), this.filterObj[i] = await this.getFilter(n) } } async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.load_data(r), B.isEmpty(i.vod_pic) && r.vod_pic_thumb !== void 0 && (i.vod_pic = r.vod_pic_thumb), i.vod_name !== "\u9996\u9875\u8F6E\u64AD" && n.push(i) } return n } async parseVodDetailfromJson(e) { let n = new Be; n.load_data(e), n.vod_content = Ep(n.vod_content); let r = e.vod_play_list, i = {}; return B.each(r, l => { let s = l.name, a = "", o = l.urls, u = l.parse_urls; B.isEmpty(u) || (this.parseMap[s] = u); let c = B.map(o, f => { let m = f.name, d = f.url; return m + "$" + d }); B.isEmpty(c) || (a = c.join("#"), i[s] = a) }), n.vod_play_from = B.keys(i).join("$$$"), n.vod_play_url = B.values(i).join("$$$"), n } async setHomeVod() { let e = JSON.parse(await this.postData(this.siteUrl + "/v2/type/tj_vod")), n = []; for (let r of e.data.type_vod) r.type_name !== "\u5E7F\u544A" && (n = await this.parseVodShortListFromJson(r.vod), this.homeVodList = [...this.homeVodList, ...n]); n = await this.parseVodShortListFromJson(e.data.loop), this.homeVodList = [...this.homeVodList, ...n], n = await this.parseVodShortListFromJson(e.data.cai), this.homeVodList = [...this.homeVodList, ...n] } async setCategory(e, n, r, i) { let s = this.generateParam(e, n, i, 12), a = JSON.parse(await this.postData(this.siteUrl + "/v2/home/type_search", s)); this.vodList = await this.parseVodShortListFromJson(a.data.list) } async setDetail(e) { let n = { vod_id: e }, r = JSON.parse(await this.postData(this.siteUrl + "/v2/home/vod_details", n)); this.vodDetail = await this.parseVodDetailfromJson(r.data) } async setPlay(e, n, r) { let i = this.parseMap[e]; if ((e.indexOf("\u8292\u679C") > -1 || e.indexOf("\u817E\u8BAF") > -1 || e.indexOf("\u7231\u5947\u827A") > -1) && (this.danmuStaus = !0, this.catOpenStatus || (this.danmuUrl = await this.danmuSpider.downloadDanmu("https://dmku.thefilehosting.com/?ac=dm&url=" + n))), !B.isEmpty(i)) { for (let l of i) if (!B.isEmpty(l)) try { let s = await this.request(l + n), a = JSON.parse(s); if (!B.isEmpty(a.url)) { this.playUrl = a.url; break } } catch { } } } async setSearch(e, n, r) { let l = { keyword: e, page: r, limit: 12 }, s = JSON.parse(await this.postData(this.siteUrl + "/v2/home/search", l)); this.vodList = await this.parseVodShortListFromJson(s.data.list); let a = parseInt(r), o = a; this.vodList.length === 12 && (o = a + 1), this.result.setPage(a, o, 12, o) } }, vn = new z5; var Yw = class extends Re { constructor() { super() } getName() { return vn.getName() } getAppName() { return vn.getAppName() } getJSName() { return vn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await vn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await vn.initCookie(e.server.config.bilicookie), await vn.spiderInit(e), vn.cfgObj.code = 0, vn.catOpenStatus = !0, vn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await vn.setClasses(), this.classes = vn.classes } async setFilterObj() { await vn.setFilterObj(), this.filterObj = vn.filterObj } async setHomeVod() { await vn.setHomeVod(), this.homeVodList = vn.homeVodList } async setCategory(e, n, r, i) { await vn.setCategory(e, n, r, i), this.vodList = vn.vodList } async setDetail(e) { await vn.setDetail(e), this.vodDetail = vn.vodDetail } async setPlay(e, n, r) { await vn.setPlay(e, n, r), this.playUrl = vn.playUrl, this.result = vn.result } async setSearch(e, n, r) { await vn.setSearch(e, n, r), this.vodList = vn.vodList, this.result = vn.result } async setProxy(e, n) { return await vn.proxy(e, n) } }, ho = new Yw; async function $K(t, e) { return await ho.init(t, e) } async function BK(t, e) { return await ho.home(t, e) } async function gxe(t, e) { return await ho.homeVod(t, e) } async function HK(t, e) { return await ho.category(t, e) } async function VK(t, e) { return await ho.detail(t, e) } async function qK(t, e) { return await ho.play(t, e) } async function zK(t, e) { return await ho.search(t, e) } async function vxe(t, e) { return await ho.proxy(t, e) } var GK = { meta: { key: vn.getJSName(), name: vn.getName(), type: vn.getType() }, api: async t => { t.post("/init", $K), t.post("/home", BK), t.post("/category", HK), t.post("/detail", VK), t.post("/play", qK), t.post("/search", zK), t.get("/proxy/:what/:ids/:end", vxe) }, spider: { init: $K, home: BK, homeVod: gxe, category: HK, detail: VK, play: qK, search: zK } }; var Qw = "abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789"; function Ef(t, e) { let n = "", r = e === void 0 ? !0 : e; for (let i = 0; i < t; i++) { let l = B.random(0, r ? Qw.length - 1 : Qw.length - 11); n += Qw[l] } return n } function _xe() { return { brand: "Huawei", model: "HUAWEI Mate 20", release: "10", buildId: Ef(3, !1).toUpperCase() + B.random(11, 99) + Ef(1, !1).toUpperCase() } } function Exe(t, e) { return e.trim().replaceAll(t, "").replace(/<|>|《|》/g, "").replace(/\$|#/g, " ").trim() } function JK(t, e) { try { let n = e.url ?? ""; if (n.startsWith("//") && (n = "https:" + n), !n.startsWith("http")) return {}; let r = e.headers || {}, i = (e["user-agent"] || "").trim(); i.length > 0 && (r["User-Agent"] = i); let l = (e.referer || "").trim(); return l.length > 0 && (r.Referer = l), B.keys(r).forEach(s => { r[s] || delete r[s] }), { header: r, url: n } } catch { } return {} } var Zw = class extends Fe {
constructor() { super(), this.siteUrl = "https://api1.baibaipei.com:8899", this.device = {}, this.parse = [] } getName() { return "\u{1F6E5}\uFE0E\u2503\u5FEB\u770B\u89C6\u9891\u2503\u{1F6E5}\uFE0E" } getAppName() { return "\u5FEB\u770B\u89C6\u9891" } getJSName() { return "kuaikan" } getType() { return 3 } async init(e) { await super.init(e), this.danmuStaus = !0, await this.setDevice() } async request(e, n, r, i) { let l = DV().valueOf().toString(), s = Ef(32), a = Ve.enc.Hex.stringify(Ve.MD5("H58d2%gLbeingX*%D4Y8!C!!@G_" + l + "_" + s)).toString().toLowerCase(), o = { "user-agent": r || this.device.ua }; e.includes("baibaipei") && (o["device-id"] = this.device.id, o.sign = a, o.time = l, o.md5 = s, o.version = "2.1.5", o["system-model"] = this.device.model, o["system-brand"] = this.device.brand, o["system-version"] = this.device.release, o.host = "api1.baibaipei.com:8899"), i || (o["Content-Type"] = "application/x-www-form-urlencoded"); let u = await req(e, { method: i ? "get" : "post", headers: o, data: n || {}, postType: "form" }); await this.jadeLog.debug(`URL:${e},headers:${JSON.stringify(o)},data:${[JSON.stringify(n)]}`); let c = u.content; try { let f = Ve.enc.Utf8.parse("IjhHsCB2B5^#%0Ag"), m = Ve.enc.Utf8.parse("y8_m.3rauW/>j,}."), d = Ve.enc.Base64.parse(c), y = Ve.AES.decrypt({ ciphertext: d }, f, { iv: m, padding: Ve.pad.Pkcs7 }); return y = Ve.enc.Utf8.stringify(y), await this.jadeLog.debug(`response:${y}`), JSON.parse(y) } catch { return JSON.parse(c) } } async setDevice() { let e = "device", n = await local.get(this.siteKey, e); if (n.length > 0) try { this.device = JSON.parse(n) } catch { } B.isEmpty(this.device) && (this.device = _xe(), this.device.id = Ef(13).toLowerCase(), this.device.ua = "okhttp/3.14.9", await local.set(this.siteKey, e, JSON.stringify(this.device))) } async setClasses() { await this.setDevice(); let e = await this.request(this.siteUrl + "/api.php/Index/getTopVideoCategory"); for (let n of e.data) { let r = n.nav_name; if (r === "\u63A8\u8350") continue; let i = n.nav_type_id.toString(); this.classes.push({ type_id: i, type_name: r }) } } async getFilter(e) { await this.jadeLog.debug(JSON.stringify(e)); let n = []; for (let r of Object.keys(e)) { let i = e[r]; r === "plot" && (r = "class"); let l = ""; switch (r) { case "class": l = "\u7C7B\u578B"; break; case "area": l = "\u5730\u533A"; break; case "lang": l = "\u8BED\u8A00"; break; case "year": l = "\u5E74\u4EE3"; break; case "sort": l = "\u6392\u5E8F"; break }if (l.length === 0) continue; let s = { key: r, name: l }, a = []; for (let o = 0; o < i.length; o++) { let u = i[o], c = r === "sort" ? o + "" : u === "\u5168\u90E8" ? "0" : u; a.push({ n: u, v: c }) } s.init = r === "sort" ? "1" : a[0].v, s.value = a, n.push(s) } return n } async setFilterObj() { for (let e of this.classes) { let n = e.type_id; if (n !== "\u6700\u8FD1\u66F4\u65B0") { let r = await this.request(this.siteUrl + "/api.php/Video/getFilterType", { type: n }); this.filterObj[n] = await this.getFilter(r.data) } } } async parseVodShortListFromJSONByHome(e) { let n = []; for (let r of e.video) { let i = await this.parseVodShortListFromJson(r.list); n.push(...i) } return n } async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = r.vod_id, i.vod_name = r.vod_name, i.vod_pic = r.vod_pic, i.vod_remarks = r.vod_remarks, n.push(i) } return n } async parseVodDetailfromJson(e) { let n = new Be; n.load_dic(JSON.stringify(e)), n.vod_content = e.vod_content.trim(), n.type_name = e.vod_class; let r = {}; for (let s of e.vod_play) { let a = s.playerForm; if (a === "jp" && this.catOpenStatus || a === "xg" && this.catOpenStatus) continue; let o = []; for (let u of s.url) o.push(Exe(n.vod_name, u.title) + "$" + u.play_url); !r.hasOwnProperty(a) && o.length > 0 && (r[a] = o) } this.parse = e.parse || [], n.vod_play_from = B.keys(r).join("$$$"); let i = B.values(r), l = []; for (let s of i) l.push(s.join("#")); return n.vod_play_url = l.join("$$$"), n } async setHomeVod() { let e = await this.request(this.siteUrl + "/api.php/Index/getHomePage", { p: "1", type: "1" }); this.homeVodList = await this.parseVodShortListFromJSONByHome(e.data) } async setCategory(e, n, r, i) {
n === 0 && (n = 1); let l = this.siteUrl + "/api.php/Video/getFilterVideoList", s = JSON.parse(iu(`{
"type": "{{tid}}",
"p": "{{pg}}",
"area": "{{ext.area|default(0)}}",
"year": "{{ext.year|default(0)}}",
"sort": "{{ext.sort|default(0)}}",
"class": "{{ext.class|default(0)}}"}`, { ext: i, tid: e, pg: n })); console.log(s); let a = await this.request(l, s); this.vodList = await this.parseVodShortListFromJson(a.data.data)
} async setDetail(e) { let n = await this.request(this.siteUrl + "/api.php/Video/getVideoInfo", { video_id: e }); this.vodDetail = await this.parseVodDetailfromJson(n.data.video) } async setPlay(e, n, r) { this.result.jx = 0; try { if (n.indexOf("youku") >= 0 || n.indexOf("iqiyi") >= 0 || n.indexOf("v.qq.com") >= 0 || n.indexOf("pptv") >= 0 || n.indexOf("le.com") >= 0 || n.indexOf("1905.com") >= 0 || n.indexOf("mgtv") >= 0) { if (this.parse.length > 0) for (let i = 0; i < this.parse.length; i++)try { let l = this.parse[i], s = await req(l + n, { headers: { "user-agent": "okhttp/4.1.0" } }); await this.jadeLog.debug(`\u89E3\u6790\u8FDE\u63A5\u7ED3\u679C\u4E3A:${JSON.stringify(s)}`); let a = JK(n, JSON.parse(s.content).data); a.url && (this.playUrl = a.url, this.danmuUrl = await this.danmuSpider.getVideoUrl(n, 0), this.result.jx = 1) } catch { } } else if (n.indexOf("jqq-") >= 0) { let i = await this.request(this.siteUrl + "/jqqheader.json", null, null, !0), l = n.split("-"), s = await req("https://api.juquanquanapp.com/app/drama/detail?dramaId=" + l[1] + "&episodeSid=" + l[2] + "&quality=LD", { headers: i }), a = JSON.parse(s.content); a.data.playInfo.url && (this.playUrl = a.data.playInfo.url) } else if (n.startsWith("ftp")) this.playUrl = n; else { let i = await this.request(this.siteUrl + "/video.php", { url: n }), l = JK(n, i.data); l.url && (l.url.indexOf("filename=1.mp4") > -1 ? this.playUrl = l.url : this.playUrl = await js2Proxy(!0, this.siteType, this.siteKey, "lzm3u8/" + ti(l.url), {})) } } catch (i) { await this.jadeLog.error(i) } } async setSearch(e, n) { let r = await this.request(this.siteUrl + "/api.php/Search/getSearch", { key: e, type_id: 0, p: 1 }); this.vodList = await this.parseVodShortListFromJson(r.data.data) } async proxy(e, n) { let r = e[0], i = vi(e[1]); if (r === "lzm3u8") { await this.jadeLog.debug(`\u4F7F\u7528\u4EE3\u7406\u64AD\u653E,\u64AD\u653E\u8FDE\u63A5\u4E3A:${i}`); let l = await req(i, {}), s = l.content, a = await js2Proxy(!1, this.siteType, this.siteKey, "lzm3u8/", {}), o = i.substr(0, i.lastIndexOf("/") + 1); return await this.jadeLog.debug(s.length), s = s.replace(/#EXT-X-DISCONTINUITY\r*\n*#EXTINF:6.433333,[\s\S]*?#EXT-X-DISCONTINUITY/, ""), await this.jadeLog.debug(s.length), s = s.replace(/(#EXT-X-KEY\S+URI=")(\S+)("\S+)/g, function (u, c, f, m) { let d = (f.startsWith("http") ? "" : o) + f; return c + d + m }), s = s.replace(/(#EXT-X-STREAM-INF:.*\n)(.*)/g, function (u, c, f) { let m = (f.startsWith("http") ? "" : o) + f; return c + a + vi(m) }), s = s.replace(/(#EXTINF:.*\n)(.*)/g, function (u, c, f) { let m = (f.startsWith("http") ? "" : o) + f; return c + m }), JSON.stringify({ code: l.code, content: s, headers: l.headers }) } return JSON.stringify({ code: 500, content: "" }) }
}, _n = new Zw; var eS = class extends Re { constructor() { super() } getName() { return _n.getName() } getAppName() { return _n.getAppName() } getJSName() { return _n.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await _n.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await _n.initCookie(e.server.config.bilicookie), await _n.spiderInit(e), _n.cfgObj.code = 0, _n.catOpenStatus = !0, _n.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await _n.setClasses(), this.classes = _n.classes } async setFilterObj() { await _n.setFilterObj(), this.filterObj = _n.filterObj } async setHomeVod() { await _n.setHomeVod(), this.homeVodList = _n.homeVodList } async setCategory(e, n, r, i) { await _n.setCategory(e, n, r, i), this.vodList = _n.vodList } async setDetail(e) { await _n.setDetail(e), this.vodDetail = _n.vodDetail } async setPlay(e, n, r) { await _n.setPlay(e, n, r), this.playUrl = _n.playUrl, this.result = _n.result } async setSearch(e, n, r) { await _n.setSearch(e, n, r), this.vodList = _n.vodList, this.result = _n.result } async setProxy(e, n) { return await _n.proxy(e, n) } }, mo = new eS; async function KK(t, e) { return await mo.init(t, e) } async function XK(t, e) { return await mo.home(t, e) } async function bxe(t, e) { return await mo.homeVod(t, e) } async function WK(t, e) { return await mo.category(t, e) } async function YK(t, e) { return await mo.detail(t, e) } async function QK(t, e) { return await mo.play(t, e) } async function ZK(t, e) { return await mo.search(t, e) } async function wxe(t, e) { return await mo.proxy(t, e) } var eX = { meta: { key: _n.getJSName(), name: _n.getName(), type: _n.getType() }, api: async t => { t.post("/init", KK), t.post("/home", XK), t.post("/category", WK), t.post("/detail", YK), t.post("/play", QK), t.post("/search", ZK), t.get("/proxy/:what/:ids/:end", wxe) }, spider: { init: KK, home: XK, homeVod: bxe, category: WK, detail: YK, play: QK, search: ZK } }; function Sxe(t) { return t === "zd" ? "\u6700\u5927" : t === "yj" ? "\u6C38\u4E45" : t === "hn" ? "\u725B\u725B" : t === "gs" ? "\u5149\u6CE2" : t === "sn" ? "\u65B0\u6717" : t === "wl" ? "\u6DA1\u8F6E" : t === "lz" ? "\u826F\u5B50" : t === "fs" ? "F\u901F" : t === "ff" ? "\u98DE\u98DE" : t === "bd" ? "\u767E\u5EA6" : t === "uk" ? "\u9177U" : t === "wj" ? "\u65E0\u5929" : t === "bj" ? "\u516B\u6212" : t === "tk" ? "\u5929\u7A7A" : t === "ss" ? "\u901F\u901F" : t === "kb" ? "\u9177\u64AD" : t === "sd" ? "\u95EA\u7535" : t === "xk" ? "\u770B\u770B" : t === "tp" ? "\u6DD8\u6DD8" : t === "jy" ? "\u7CBE\u82F1" : t } var tS = class extends Fe {
constructor() { super(), this.siteUrl = "http://cqdb6.com" } getName() { return "\u{1F4FA}\u250370\u770B\u770B\u2503\u{1F4FA}" } getAppName() { return "70\u770B\u770B" } getJSName() { return "kankan70" } getType() { return 3 } paraseUrlObject(e) { let n = e.split(";"), r = {}, i = "", l = 0, s = 0, a = ""; for (let c = 0; c < n.length; c++) { let f = n[c]; if (f.indexOf("var lianzaijs") > -1 ? (i = f.split("=")[0].split(" ")[1], a = i.split("_")[1]) : f.indexOf("pl_id=") > -1 ? (l = f.split("=")[1], r[i] = { play_id: l, list: [], pl_dy: s }) : f.indexOf("var pl_dy") > -1 && (s = f.split("=")[1]), f.indexOf(`playarr_${a}[`) > -1) { let m = f.split('="')[1].split(",")[0]; r[i].list.push(m) } } let o = [], u = []; for (let c of Object.keys(r)) if (c.indexOf("_") > -1) { let f = Sxe(c.split("_")[1]); u.push(f); let m = [], d = 0; for (let y of r[c].list) d = d + 1, m.push("\u7B2C" + d.toString() + "\u96C6$" + y); o.push(m.join("#")) } return { play_format: u.join("$$$"), play_url: o.join("$$$") } } async parseVodShortListFromDoc(e) { let n = [], r = e("a.li-hv"); for (let i of r) { let l = new Ne; l.vod_id = "/" + i.attribs.href, l.vod_name = i.attribs.title, l.vod_pic = e(i).find("img")[0].attribs["data-original"]; let s = e(i).find("p.bz")[0]; s.length > 0 && (l.vod_remarks = s.children[0].data), n.push(l) } return n } async parseVodDetailFromDoc(e) {
let n = new Be, r = e("[class=info]"), i = e(r).find("dt.name")[0]; n.vod_name = i.children[0].data, n.vod_remarks = i.children[1].children[0].data; let l = e(r).find("dd").text(); return n.vod_area = Te(/地区:(.*?) /, l), n.vod_year = Te(/年代:(.*?)\n/, l), n.type_name = Te(/类型:(.*?)\n/, l), n.vod_content = e(r).find("[class=des2]").text().replaceAll(`
`, "").replaceAll("\u5267\u60C5\uFF1A", ""), n.vod_pic = e("img.lazy")[0].attribs["data-original"], n
} async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = r.url, i.vod_pic = r.thumb, i.vod_remarks = r.time, i.vod_name = r.title, n.push(i) } return n } async setClasses() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e), r = n("[class=index-list-l]"); for (let i of r) { let l = n(n(i).find('[class="h1 clearfix"]')[0]).find("a"), s = l[0].attribs.href, a = n(l[1]).text(); B.isEmpty(a) || this.classes.push({ type_id: s, type_name: a }) } } } async getFilter(e) { let n = this.siteUrl + e, r = await this.fetch(n, null, this.getHeader()), i = []; if (!B.isEmpty(r)) { let l = $e(r), s = l('[class="sy scon clearfix"]').find("dl"), a = 0; for (let o of s) { let u = l(l(o).find("dt")).text().replace("\u6309", "").replace("\uFF1A", ""), c = { key: (a + 1).toString(), name: u, value: [] }, f = l(o).find("a"), m = 0; u === "\u5267\u60C5" ? m = 3 : u === "\u5E74\u4EE3" ? m = 2 : u === "\u5730\u533A" && (m = 4); for (let d of f) { let y = d.attribs.href.split("/"); c.value.push({ n: l(d).text(), v: y[m] }) } i.push(c), a = a + 1 } } return i } async setFilterObj() { for (let e of this.classes) { let n = e.type_id; n !== "\u6700\u8FD1\u66F4\u65B0" && (this.filterObj[n] = await this.getFilter(n)) } } async setHomeVod() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e); this.homeVodList = await this.parseVodShortListFromDoc(n) } } async setCategory(e, n, r, i) { let l = this.siteUrl + e, s = await this.fetch(l, null, this.getHeader()); if (!B.isEmpty(s)) { let a = e.split("/")[1], o = e.split("/")[2], u = Te(/var _yu_gda_s="(.*?)";/, s), c = { action: a, page: parseInt(n), year: i[2] ?? "0", area: i[3] ?? "all", class: i[1] ?? "0", dect: "", id: o }, f = await this.fetch(u, c, this.getHeader()); if (f !== null) { let m = $e(f); this.vodList = await this.parseVodShortListFromDoc(m) } } } async setDetail(e) { let n = this.siteUrl + e, r = await this.fetch(n, null, this.getHeader()); if (!B.isEmpty(r)) { let i = $e(r); this.vodDetail = await this.parseVodDetailFromDoc(i); let s = "http://test.gqyy8.com:8077/ne2" + /<script type="text\/javascript" src="http:\/\/test.gqyy8.com:8077\/ne2(.*?)"><\/script>/g.exec(r)[1], a = await this.fetch(s, null, this.getHeader()); if (!B.isEmpty(a)) { let o = this.paraseUrlObject(a); this.vodDetail.vod_play_url = o.play_url, this.vodDetail.vod_play_from = o.play_format } } } async setSearch(e, n) { let r = this.siteUrl + "/search.php", i = await this.fetch(r, null, this.getHeader()); if (!B.isEmpty(i)) { let l = { top: 10, q: e }, s = Te(/var my_search='(.*?)';/, i), a = await this.fetch(s, l, this.getHeader()); if (!B.isEmpty(a)) { let o = JSON.parse(a.replaceAll("\uFEFF", "")); this.vodList = await this.parseVodShortListFromJson(o) } } }
}, En = new tS; var nS = class extends Re { constructor() { super() } getName() { return En.getName() } getAppName() { return En.getAppName() } getJSName() { return En.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await En.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await En.initCookie(e.server.config.bilicookie), await En.spiderInit(e), En.cfgObj.code = 0, En.catOpenStatus = !0, En.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await En.setClasses(), this.classes = En.classes } async setFilterObj() { await En.setFilterObj(), this.filterObj = En.filterObj } async setHomeVod() { await En.setHomeVod(), this.homeVodList = En.homeVodList } async setCategory(e, n, r, i) { await En.setCategory(e, n, r, i), this.vodList = En.vodList } async setDetail(e) { await En.setDetail(e), this.vodDetail = En.vodDetail } async setPlay(e, n, r) { await En.setPlay(e, n, r), this.playUrl = En.playUrl, this.result = En.result } async setSearch(e, n, r) { await En.setSearch(e, n, r), this.vodList = En.vodList, this.result = En.result } async setProxy(e, n) { return await En.proxy(e, n) } }, yo = new nS; async function tX(t, e) { return await yo.init(t, e) } async function nX(t, e) { return await yo.home(t, e) } async function Txe(t, e) { return await yo.homeVod(t, e) } async function rX(t, e) { return await yo.category(t, e) } async function iX(t, e) { return await yo.detail(t, e) } async function lX(t, e) { return await yo.play(t, e) } async function sX(t, e) { return await yo.search(t, e) } async function xxe(t, e) { return await yo.proxy(t, e) } var aX = { meta: { key: En.getJSName(), name: En.getName(), type: En.getType() }, api: async t => { t.post("/init", tX), t.post("/home", nX), t.post("/category", rX), t.post("/detail", iX), t.post("/play", lX), t.post("/search", sX), t.get("/proxy/:what/:ids/:end", xxe) }, spider: { init: tX, home: nX, homeVod: Txe, category: rX, detail: iX, play: lX, search: sX } }; var rS = class extends uo { constructor() { super(), this.siteUrl = "https://cj.lzcaiji.com", this.remove18 = !0 } getAppName() { return "\u91CF\u5B50\u8D44\u6E90" } getName() { return "\u{1F41D}\u2503\u91CF\u5B50\u8D44\u6E90\u2503\u{1F41D}" } getJSName() { return "liangzi" } getType() { return 3 } async spiderInit(e) { await super.spiderInit(e) } async init(e) { await super.init(e), await this.spiderInit(null) } }, bn = new rS; var iS = class extends Re { constructor() { super() } getName() { return bn.getName() } getAppName() { return bn.getAppName() } getJSName() { return bn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await bn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await bn.initCookie(e.server.config.bilicookie), await bn.spiderInit(e), bn.cfgObj.code = 0, bn.catOpenStatus = !0, bn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await bn.setClasses(), this.classes = bn.classes } async setFilterObj() { await bn.setFilterObj(), this.filterObj = bn.filterObj } async setHomeVod() { await bn.setHomeVod(), this.homeVodList = bn.homeVodList } async setCategory(e, n, r, i) { await bn.setCategory(e, n, r, i), this.vodList = bn.vodList } async setDetail(e) { await bn.setDetail(e), this.vodDetail = bn.vodDetail } async setPlay(e, n, r) { await bn.setPlay(e, n, r), this.playUrl = bn.playUrl, this.result = bn.result } async setSearch(e, n, r) { await bn.setSearch(e, n, r), this.vodList = bn.vodList, this.result = bn.result } async setProxy(e, n) { return await bn.proxy(e, n) } }, go = new iS; async function oX(t, e) { return await go.init(t, e) } async function uX(t, e) { return await go.home(t, e) } async function Axe(t, e) { return await go.homeVod(t, e) } async function cX(t, e) { return await go.category(t, e) } async function pX(t, e) { return await go.detail(t, e) } async function fX(t, e) { return await go.play(t, e) } async function dX(t, e) { return await go.search(t, e) } async function Oxe(t, e) { return await go.proxy(t, e) } var hX = { meta: { key: bn.getJSName(), name: bn.getName(), type: bn.getType() }, api: async t => { t.post("/init", oX), t.post("/home", uX), t.post("/category", cX), t.post("/detail", pX), t.post("/play", fX), t.post("/search", dX), t.get("/proxy/:what/:ids/:end", Oxe) }, spider: { init: oX, home: uX, homeVod: Axe, category: cX, detail: pX, play: fX, search: dX } }; function Nxe(t, e, n, r) { let i = Ve.enc.Utf8.parse(e || "PBfAUnTdMjNDe6pL"), l = Ve.enc.Utf8.parse(n || "sENS6bVbwSfvnXrj"), s; return r ? s = Ve.AES.encrypt(t, i, { iv: l, mode: Ve.mode.CBC, padding: Ve.pad.Pkcs7 }) : s = Ve.AES.decrypt(t, i, { iv: l, padding: Ve.pad.Pkcs7 }).toString(Ve.enc.Utf8), s } var lS = class extends Fe { constructor() { super(), this.siteUrl = "https://www.czys.top" } async init(t) { await super.init(t), await qi(this.cfgObj.token) } getName() { return "\u{1F3ED}\uFE0F\u2503\u5382\u957F\u76F4\u8FDE\u2503\u{1F3ED}\uFE0F" } getAppName() { return "\u5382\u957F\u76F4\u8FDE" } getJSName() { return "changzhang" } getType() { return 3 } async getHtml(t = this.siteUrl, e = this.getHeader()) { let r = (await this.fetch(t, null, e, !1, !0)).content; if (!B.isEmpty(r) && r.indexOf("\u4EBA\u673A\u9A8C\u8BC1") === -1) return $e(r); await this.jadeLog.error("html\u83B7\u53D6\u5931\u8D25", !0) } getSearchHeader() { return { Cookie: "cf_clearance=otYZbHg1safCIxkCtZfy9DPKbf1Gs_zUskkVDc0MVKM-1707026063-1-ATOpKnTLv9+pv171YE/rzxN/nmvGN9Mucx7vpwp0kW2vZb/cbtz5e2md2/ym7EE+9dT7pPBV+kQOg9vJx2v8cks=;myannoun=1;PHPSESSID=73386nobqugs7r3pb2ljcsp5q4", "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/100.0.4896.77 Mobile/15E148 Safari/604.1", Connection: "keep-alive", Host: "www.czys.top" } } parseVodShortFromElement(t, e) { let n = new Ne, r = t(t(e).find("a")).find("img")[0]; return n.vod_name = r.attribs.alt, n.vod_pic = r.attribs["data-original"], n.vod_remarks = t(t(t(e).find("[class='hdinfo']")).find("span")).text(), n.vod_id = t(e).find("a")[0].attribs.href, n } async parseVodShortListFromDoc(t) { let e = [], n = t(t('[class="mi_cont"]').find("ul")).find("li"); for (let r of n) e.push(this.parseVodShortFromElement(t, r)); return e } async parseVodShortListFromDocByCategory(t) { let e = [], n = t(t('[class="mi_cont "]').find("ul")).find("li"); for (let r of n) e.push(this.parseVodShortFromElement(t, r)); return e } async parseVodDetailFromDoc(t) { let e = new Be, n = t("[class='dyxingq']"); e.vod_pic = t(n).find("img")[0].attribs.src, e.vod_name = t(t(n).find("h1")[0]).text(), e.vod_content = t(t(t("[class='yp_context']")).find("p")).text(); let r = t(n).find("[class='moviedteail_list']").find("li"), i = t(r).text(); for (let c of r) { let f = t(c).text(); f.indexOf("\u7C7B\u578B") > -1 ? e.type_name = f.replaceAll("\u7C7B\u578B", "").replaceAll("\uFF1A", "") : f.indexOf("\u5E74\u4EFD") > -1 ? e.vod_year = f.replaceAll("\u5E74\u4EFD", "").replaceAll("\uFF1A", "") : f.indexOf("\u5730\u533A") > -1 ? e.vod_area = f.replaceAll("\u5730\u533A", "").replaceAll("\uFF1A", "") : f.indexOf("\u8C46\u74E3") > -1 ? e.vod_remarks = f.replaceAll("\u8C46\u74E3", "").replaceAll("\uFF1A", "") : f.indexOf("\u4E3B\u6F14") > -1 ? e.vod_actor = f.replaceAll("\u4E3B\u6F14", "").replaceAll("\uFF1A", "") : f.indexOf("\u5BFC\u6F14") > -1 ? e.vod_director = f.replaceAll("\u5BFC\u6F14", "").replaceAll("\uFF1A", "") : f.indexOf("\u5267\u60C5") > -1 && (e.vod_content = f.replaceAll("\u5267\u60C5", "").replaceAll("\uFF1A", "")) } let l = ["\u5382\u957F\u8D44\u6E90"], s = t("[class='paly_list_btn']"), a = []; for (let c of s) { let f = [], m = t(c).find("a"); for (let d of m) { let y = d.attribs.href, _ = t(d).text().replaceAll("\u7ACB\u5373\u64AD\u653E\xA0\xA0(", "").replaceAll(")", ""); f.push(_ + "$" + y) } a.push(f.join("#")) } let o = ["\u78C1\u529B\u94FE\u63A5", "\u963F\u91CC\u7F51\u76D8"], u = t('[class="ypbt_down_list"]').find("li"); for (let c of u) { let f = t(c).text(), m = !1; for (let d of o) f.indexOf(d) > -1 && (m = !0, f.indexOf("\u963F\u91CC\u7F51\u76D8") === -1 && l.push(d)); if (m) { let d = []; for (let y of t(c).find("a")) { let _ = y.attribs.href; if (t(c).text().indexOf("\u963F\u91CC\u7F51\u76D8")) { let S = await Tl([_]), w = S.vod_play_url.split("$$$"), E = !1; for (let g of w) B.isEmpty(g) || (E = !0, a.push(g)); if (E) for (let g of S.vod_play_from.split("$$$")) l.push("\u963F\u91CC\u4E91\u76D8-" + g) } else { let S = Te(/\[(.*?)]/, t(y).text()); d.push(S + "$" + _), a.push(d.join("#")) } } } } return e.vod_play_url = a.join("$$$"), e.vod_play_from = l.join("$$$"), e } async parseVodShortListFromDocBySearch(t) { let e = t("div.search_list > ul > li"); return B.map(e, n => { let r = t(n).find("img:first")[0], i = t(n).find("a:first")[0], l = t(t(n).find("div.hdinfo")[0]).text().trim(), s = t(t(n).find("div.jidi")[0]).text().trim(); return { vod_id: i.attribs.href, vod_name: r.attribs.alt, vod_pic: r.attribs["data-original"], vod_remarks: s || l || "" } }) } async setClasses() { let t = await this.getHtml(this.siteUrl + "/movie_bt"), e = t("div#beautiful-taxonomy-filters-tax-movie_bt_series > a[cat-url*=movie_bt_series]"), n = t("div#beautiful-taxonomy-filters-tax-movie_bt_tags > a"), r = { key: "tag", name: "\u7C7B\u578B", value: B.map(n, a => { let o = a.attribs["cat-url"] || ""; return o = o.substring(o.lastIndexOf("/") + 1), { n: a.children[0].data, v: o } }) }; r.init = r.value[0].v; let i = B.map(e, a => { let o = a.attribs["cat-url"]; return o = o.substring(o.lastIndexOf("/") + 1), this.filterObj[o] = [r], { type_id: o, type_name: a.children[0].data } }), l = ["\u7535\u5F71", "\u7535\u89C6\u5267", "\u56FD\u4EA7\u5267", "\u7F8E\u5267", "\u97E9\u5267", "\u65E5\u5267", "\u6D77\u5916\u5267\uFF08\u5176\u4ED6\uFF09", "\u534E\u8BED\u7535\u5F71", "\u5370\u5EA6\u7535\u5F71", "\u65E5\u672C\u7535\u5F71", "\u6B27\u7F8E\u7535\u5F71", "\u97E9\u56FD\u7535\u5F71", "\u52A8\u753B", "\u4FC4\u7F57\u65AF\u7535\u5F71", "\u52A0\u62FF\u5927\u7535\u5F71"], s = B.sortBy(i, a => { let o = l.indexOf(a.type_name); return o === -1 ? l.length : o }); for (let a of s) { let o = a.type_name; o !== "\u4F1A\u5458\u4E13\u533A" && o !== "\u7AD9\u957F\u63A8\u8350" && this.classes.push(a) } } async setHomeVod() { let t = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(t) } async setCategory(t, e, n, r) { e <= 0 && (e = 1); let i = r.tag || "", l = this.siteUrl + "/movie_bt" + (i.length > 0 ? `/movie_bt_tags/${i}` : "") + "/movie_bt_series/" + t + (e > 1 ? `/page/${e}` : ""), s = await this.getHtml(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) } async setDetail(t) { let e = await this.getHtml(t); this.vodDetail = await this.parseVodDetailFromDoc(e) } async setSearch(t, e) { let n = await this.getHtml(this.siteUrl + "/xssearch?q=" + t, this.getSearchHeader()), r = n.html(); this.vodList = await this.parseVodShortListFromDocBySearch(n) } async setPlay(flag, id, flags) { if (flag.indexOf("\u963F\u91CC\u4E91\u76D8") > -1) flag = flag.replaceAll("\u963F\u91CC\u4E91\u76D8-", ""), this.playUrl = JSON.parse(await xl(flag, id, flags)).url; else if (id.indexOf("magnet") > -1) this.playUrl = id; else { let $ = await this.getHtml(id), iframe = $("body iframe[src*=https]"); if (iframe.length > 0) { let t = (await req(iframe[0].attribs.src, { headers: { Referer: id, "User-Agent": zr } })).content, e = Te(/var player = "(.*?)"/, t), n = Te(/var rand = "(.*?)"/, t), r = JSON.parse(Nxe(e, "VFBTzdujpR9FWBhe", n)); this.playUrl = r.url } else { let js = $("script:contains(window.wp_nonce)").html(), group = js.match(/(var.*)eval\((\w*\(\w*\))\)/), md5 = Ve, result = eval(group[1] + group[2]); this.playUrl = result.match(/url:.*?['"](.*?)['"]/)[1] } } } }, Ut = new lS; async function Cxe(t) { await Ut.init(t) } async function Rxe(t) { return await Ut.home(t) } async function Ixe() { return await Ut.homeVod() } async function kxe(t, e, n, r) { return await Ut.category(t, e, n, r) } async function Dxe(t) { return await Ut.detail(t) } async function Pxe(t, e, n) { return await Ut.play(t, e, n) } async function Lxe(t, e) { return await Ut.search(t, e) } async function Fxe(t, e) { return await Ut.proxy(t, e) } function YMe() { return { init: Cxe, home: Rxe, homeVod: Ixe, category: kxe, detail: Dxe, play: Pxe, proxy: Fxe, search: Lxe } } var sS = class extends Re { constructor() { super() } getName() { return Ut.getName() } getAppName() { return Ut.getAppName() } getJSName() { return Ut.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Ut.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Ut.initCookie(e.server.config.bilicookie), await Ut.spiderInit(e), Ut.cfgObj.code = 0, Ut.catOpenStatus = !0, Ut.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Ut.setClasses(), this.classes = Ut.classes } async setFilterObj() { await Ut.setFilterObj(), this.filterObj = Ut.filterObj } async setHomeVod() { await Ut.setHomeVod(), this.homeVodList = Ut.homeVodList } async setCategory(e, n, r, i) { await Ut.setCategory(e, n, r, i), this.vodList = Ut.vodList } async setDetail(e) { await Ut.setDetail(e), this.vodDetail = Ut.vodDetail } async setPlay(e, n, r) { await Ut.setPlay(e, n, r), this.playUrl = Ut.playUrl, this.result = Ut.result } async setSearch(e, n, r) { await Ut.setSearch(e, n, r), this.vodList = Ut.vodList, this.result = Ut.result } async setProxy(e, n) { return await Ut.proxy(e, n) } }, vo = new sS; async function mX(t, e) { return await vo.init(t, e) } async function yX(t, e) { return await vo.home(t, e) } async function jxe(t, e) { return await vo.homeVod(t, e) } async function gX(t, e) { return await vo.category(t, e) } async function vX(t, e) { return await vo.detail(t, e) } async function _X(t, e) { return await vo.play(t, e) } async function EX(t, e) { return await vo.search(t, e) } async function Uxe(t, e) { return await vo.proxy(t, e) } var bX = { meta: { key: Ut.getJSName(), name: Ut.getName(), type: Ut.getType() }, api: async t => { t.post("/init", mX), t.post("/home", yX), t.post("/category", gX), t.post("/detail", vX), t.post("/play", _X), t.post("/search", EX), t.get("/proxy/:what/:ids/:end", Uxe) }, spider: { init: mX, home: yX, homeVod: jxe, category: gX, detail: vX, play: _X, search: EX } }; var aS = class extends Fe { constructor() { super(), this.siteUrl = "https://www.cs1369.com" } getName() { return "\u{1F943}\u2503\u4E5D\u4E5D\u516D\u5F71\u89C6\u2503\u{1F943}" } getAppName() { return "\u4E5D\u4E5D\u516D\u5F71\u89C6" } getJSName() { return "jiujiuliu" } getType() { return 3 } async parseVodShortListFromDoc(e) { let n = [], r = e('[class="stui-vodlist clearfix"]').find("li"); for (let i of r) { let l = e(i).find('[class="stui-vodlist__thumb lazyload"]')[0], s = new Ne; s.vod_id = l.attribs.href, s.vod_name = l.attribs.title, s.vod_pic = l.attribs["data-original"], s.vod_remarks = e(e(l).find('[class="pic-text text-right"]')[0]).text(), n.push(s) } return n } async parseVodShortListFromDocBySearch(e) { let n = [], r = e('[class="stui-pannel_bd"]').find("li"); for (let i of r) { let l = e(e(i).find('[class="thumb"]')[0]).find("a")[0], s = new Ne; s.vod_id = l.attribs.href, s.vod_name = l.attribs.title, s.vod_pic = l.attribs["data-original"], s.vod_remarks = Te(/类型:(.*?)地区/, e(e(i).find('[class="hidden-mi"]')[0]).text()), n.push(s) } return n } async parseVodDetailFromDoc(e) { let n = new Be, r = e('[class="col-pd clearfix"]')[1], i = e(r).find('[class="stui-content__thumb"]')[0], l = []; for (let a of e('[class="stui-content__playlist clearfix"]').find("a")) { let o = this.siteUrl + a.attribs.href, u = e(a).text(); l.push(u + "$" + o) } n.vod_name = e(i).find('[class="stui-vodlist__thumb picture v-thumb"]')[0].attribs.title, n.vod_pic = e(i).find("img")[0].attribs["data-original"], n.vod_remarks = e(e(i).find('[class="pic-text text-right"]')[0]).text(); let s = e(e(r).find('[class="data"]')).text().replaceAll("\xA0", " "); return n.type_name = Te(/类型:(.*?) /, s), n.vod_area = Te(/地区:(.*?) /, s), n.vod_year = Te(/年份:(.*?) /, s), n.vod_actor = Te(/主演:(.*?) /, s), n.vod_director = Te(/导演:(.*?) /, s), n.vod_content = e(e('[class="stui-pannel_bd"]').find('[class="col-pd"]')).text(), n.vod_play_from = ["996"].join("$$$"), n.vod_play_url = [l.join("#")].join("$$$"), n } async setClasses() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (e !== null) { let n = $e(e), r = n('[class="stui-header__menu type-slide"]').find("a"); for (let i of r) { let l = { type_name: n(i).text(), type_id: "/show/id/" + i.attribs.href.split("/").slice(-1)[0].split(".")[0] }; n(i).text() !== "\u9996\u9875" && this.classes.push(l) } } } async getFilter(e) { let n = e('[class="stui-pannel_hd"]'), r = [], i = 0; for (let l = 0; l < 2; l++) { let s = n[l], a = e(s).find("ul"); if (l === 0) for (let o of a) { let u = { key: (i + 1).toString(), name: e(e(o).find("li")[0]).text(), value: [] }; for (let c of e(o).find("li").slice(1)) B.isEmpty(e(c).text()) || (i === 0 ? u.value.push({ n: e(c).text(), v: e(c).find("a")[0].attribs.href.split("/").slice(-1)[0].split(".")[0] }) : u.value.push({ n: e(c).text(), v: e(c).text() })); r.push(u), i = i + 1 } else { let o = { key: (i + 1).toString(), name: e(e(s).find("li")[0]).text(), value: [] }; o.value.push({ n: "\u5168\u90E8", v: "time" }); for (let u of e(s).find("li").slice(1)) B.isEmpty(e(u).text()) || o.value.push({ n: e(u).text(), v: e(u).find("a")[0].attribs.href.split("/")[3] }); r.push(o) } } return r } async setFilterObj() { for (let e of this.classes) { let n = e.type_id; if (n !== "/" && n !== "\u6700\u8FD1\u66F4\u65B0") { let r = this.siteUrl + n + ".html", i = await this.fetch(r, null, this.getHeader()); if (i != null) { let l = $e(i); this.filterObj[n] = await this.getFilter(l) } } } } async setHomeVod() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (e != null) { let n = $e(e); this.homeVodList = await this.parseVodShortListFromDoc(n) } } getParams(e, n) { let r = n ?? "\u5168\u90E8"; return r === "\u5168\u90E8" || r === void 0 ? "" : e + n } async setCategory(e, n, r, i) { let l = this.getParams("/id/", i[1]); B.isEmpty(l) && (l = "/id/" + e.split("/").slice(-1)[0]); let s = this.getParams("/class/", i[2]), a = this.getParams("/area/", i[3]), o = this.getParams("/year/", i[4]), u = this.getParams("/lang/ ", i[5]), c = this.getParams("/letter/ ", i[6]), f = this.getParams("/by/", i[7]), m = this.siteUrl + `/show${a}${f}${s}${l}${u}${c}${o}/page/${n.toString()}.html`; await this.jadeLog.info(`\u7C7B\u522BURL\u4E3A:${m}`), this.limit = 36; let d = await this.fetch(m, null, this.getHeader()); if (d != null) { let y = $e(d); this.vodList = await this.parseVodShortListFromDoc(y) } } async setDetail(e) { let n = this.siteUrl + e, r = await this.fetch(n, null, this.getHeader()); if (r != null) { let i = $e(r); this.vodDetail = await this.parseVodDetailFromDoc(i) } } async setSearch(e, n) { let r = this.siteUrl + `/search.html?wd=${e}`, i = await this.fetch(r, null, this.getHeader()); if (i != null) { let s = $e(i); this.vodList = await this.parseVodShortListFromDocBySearch(s) } let l = 0 } async setPlay(e, n, r) { let i = await this.fetch(n, null, this.getHeader()); if (i !== null) { let l = Te(/player_aaaa=(.*?)<\/script>/, i), s = JSON.parse(l); try { this.playUrl = decodeURIComponent(Ve.enc.Utf8.stringify(Ve.enc.Base64.parse(s.url))), this.header = this.getHeader() } catch { this.playUrl = s.url } } } }, wn = new aS; var oS = class extends Re { constructor() { super() } getName() { return wn.getName() } getAppName() { return wn.getAppName() } getJSName() { return wn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await wn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await wn.initCookie(e.server.config.bilicookie), await wn.spiderInit(e), wn.cfgObj.code = 0, wn.catOpenStatus = !0, wn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await wn.setClasses(), this.classes = wn.classes } async setFilterObj() { await wn.setFilterObj(), this.filterObj = wn.filterObj } async setHomeVod() { await wn.setHomeVod(), this.homeVodList = wn.homeVodList } async setCategory(e, n, r, i) { await wn.setCategory(e, n, r, i), this.vodList = wn.vodList } async setDetail(e) { await wn.setDetail(e), this.vodDetail = wn.vodDetail } async setPlay(e, n, r) { await wn.setPlay(e, n, r), this.playUrl = wn.playUrl, this.result = wn.result } async setSearch(e, n, r) { await wn.setSearch(e, n, r), this.vodList = wn.vodList, this.result = wn.result } async setProxy(e, n) { return await wn.proxy(e, n) } }, _o = new oS; async function wX(t, e) { return await _o.init(t, e) } async function SX(t, e) { return await _o.home(t, e) } async function Mxe(t, e) { return await _o.homeVod(t, e) } async function TX(t, e) { return await _o.category(t, e) } async function xX(t, e) { return await _o.detail(t, e) } async function AX(t, e) { return await _o.play(t, e) } async function OX(t, e) { return await _o.search(t, e) } async function $xe(t, e) { return await _o.proxy(t, e) } var NX = { meta: { key: wn.getJSName(), name: wn.getName(), type: wn.getType() }, api: async t => { t.post("/init", wX), t.post("/home", SX), t.post("/category", TX), t.post("/detail", xX), t.post("/play", AX), t.post("/search", OX), t.get("/proxy/:what/:ids/:end", $xe) }, spider: { init: wX, home: SX, homeVod: Mxe, category: TX, detail: xX, play: AX, search: OX } }; var uS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.bilibili.com", this.apiUrl = "https://api.bilibili.com", this.cookie = "", this.bili_jct = "", this.is_login = !1, this.is_vip = !1, this.vod_audio_id = { 30280: 192e3, 30232: 132e3, 30216: 64e3 }, this.vod_codec = { 12: "HEVC", 7: "AVC" }, this.play_url_obj = { 80: "1080P \u9AD8\u6E05", 64: "720P \u9AD8\u6E05", 32: "420P \u6E05\u6670", 16: "360P \u6D41\u7545" } } getHeader() { let e = super.getHeader(); return B.isEmpty(this.cookie) || (e.cookie = this.cookie), e } initCookie(e) { this.cookie = e, e.includes("bili_jct") && (this.bili_jct = e.split("bili_jct=")[1].split(";")[0]) } async spiderInit(e) { this.is_login = await this.checkLogin(), this.is_login ? await this.jadeLog.info("\u54D4\u54E9\u54D4\u54E9\u767B\u5F55\u6210\u529F", !0) : await this.jadeLog.error("\u54D4\u54E9\u54D4\u54E9\u767B\u5F55\u5931\u8D25", !0), e === null ? this.js2Base = await js2Proxy(!0, this.siteType, this.siteKey, "dash/", this.getHeader()) : this.js2Base = await js2Proxy(e, "dash", this.getHeader()) } async init(e) { await super.init(e), await this.initCookie(this.cfgObj.cookie), await this.spiderInit(null), this.danmuStaus = !0 } getName() { return "\u{1F3F0}\u2503\u54D4\u54E9\u54D4\u54E9\u2503\u{1F3F0}" } getAppName() { return "\u54D4\u54E9\u54D4\u54E9" } getJSName() { return "bilibili" } getType() { return 3 } async setClasses() { let e = await this.getHtml(this.siteUrl), n = e('[class="channel-items__left"]').find("a"); for (let r of n) this.classes.push(this.getTypeDic(e(r).text(), e(r).text())); !B.isEmpty(this.bili_jct) && this.is_login && this.classes.push(this.getTypeDic("\u5386\u53F2\u8BB0\u5F55", "\u5386\u53F2\u8BB0\u5F55")) } async getFilter(e) { return [{ key: "order", name: "\u6392\u5E8F", value: [{ n: "\u7EFC\u5408\u6392\u5E8F", v: "0" }, { n: "\u6700\u591A\u70B9\u51FB", v: "click" }, { n: "\u6700\u65B0\u53D1\u5E03", v: "pubdate" }, { n: "\u6700\u591A\u5F39\u5E55", v: "dm" }, { n: "\u6700\u591A\u6536\u85CF", v: "stow" }] }, { key: "duration", name: "\u65F6\u957F", value: [{ n: "\u5168\u90E8\u65F6\u957F", v: "0" }, { n: "60\u5206\u949F\u4EE5\u4E0A", v: "4" }, { n: "30~60\u5206\u949F", v: "3" }, { n: "10~30\u5206\u949F", v: "2" }, { n: "10\u5206\u949F\u4EE5\u4E0B", v: "1" }] }] } async setFilterObj() { for (let e of this.classes) { let n = e.type_name; n !== "\u6700\u8FD1\u66F4\u65B0" && n !== "\u5386\u53F2\u8BB0\u5F55" && (this.filterObj[n] = await this.getFilter()) } } getFullTime(e) { let n = ""; try { let r = e.split(":"), i = parseInt(r[0]), l = parseInt(r[1]); n = i * 60 + l } catch { n = parseInt(e) } if (isNaN(n)) return "\u65E0\u6548\u8F93\u5165"; if (n >= 3600) { let r = Math.floor(n / 3600), i = n % 3600, l = Math.floor(i / 60), s = i % 60; return `${r}\u5C0F\u65F6 ${l}\u5206\u949F ${s}\u79D2` } else { let r = Math.floor(n / 60), i = n % 60; return `${r}\u5206\u949F ${i}\u79D2` } } removeTags(e) { return e.replace(/<[^>]*>/g, "") } async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = r.bvid, r.hasOwnProperty("rcmd_reason") ? i.vod_remarks = r.rcmd_reason.content : i.vod_remarks = this.getFullTime(r.duration), i.vod_name = this.removeTags(r.title); let l = r.pic; l.startsWith("//") && (l = "https:" + l), i.vod_pic = l, n.push(i) } return n } async parseVodDetailfromJson(e, n) { let r = this.getFullTime(e.duration), i = e.aid, l = new Be; l.vod_name = e.title, l.vod_pic = e.pic, l.type_name = e.tname, l.vod_remarks = r, l.vod_content = e.desc; let s = { avid: i, cid: e.cid, qn: "127", fnval: 4048, fourk: 1 }, o = JSON.parse(await this.fetch(this.apiUrl + "/x/player/playurl", s, this.getHeader())).data, u = o.accept_quality, c = o.accept_description, f = [], m = []; for (let E = 0; E < u.length; E++) { if (!this.is_vip) { if (this.is_login) { if (u[E] > 80) continue } else if (u[E] > 32) continue } m.push(ti(c[E])), f.push(u[E]) } let d = {}, y = e.pages, _ = []; for (let E = 0; E < y.length; E++) { let v = y[E].cid, x = E + "$" + i + "+" + v + "+" + f.join(":") + "+" + m.join(":"); _.push(x) } if (this.catOpenStatus) for (let E of f) d[`dash - ${this.play_url_obj[E]}`] = _.join("#"); else await this.jadeLog.warning("TV\u6682\u4E0D\u652F\u6301Dash\u64AD\u653E"); for (let E of f) d[`mp4 - ${this.play_url_obj[E]}`] = _.join("#"); let S = { bvid: n }, w = JSON.parse(await this.fetch(this.apiUrl + "/x/web-interface/archive/related", S, this.getHeader())).data; _ = []; for (let E = 0; E < w.length; E++) { let g = w[E], v = g.cid, x = g.title, O = g.aid, N = x + "$" + O + "+" + v + "+" + f.join(":") + "+" + m.join(":"); _.push(N) } if (this.catOpenStatus) for (let E of f) d[`\u76F8\u5173 - ${this.play_url_obj[E]}`] = _.join("#"); else await this.jadeLog.warning("TV\u6682\u4E0D\u652F\u6301\u76F8\u5173\u64AD\u653E"); return l.vod_play_from = Object.keys(d).join("$$$"), l.vod_play_url = Object.values(d).join("$$$"), l } async setHomeVod() { let e = { ps: 20 }, n = await this.fetch(this.apiUrl + "/x/web-interface/popular", e, this.getHeader()); this.homeVodList = await this.parseVodShortListFromJson(JSON.parse(n).data.list) } async setDetail(e) { let n = this.apiUrl + "/x/web-interface/view", r = { bvid: e }, i = JSON.parse(await this.fetch(n, r, this.getHeader())).data; if (!B.isEmpty(this.bili_jct)) { let l = this.apiUrl + "/x/v2/history/report", s = { aid: i.aid, cid: i.cid, csrf: this.bili_jct }; await this.post(l, s, this.getHeader(), "form") } this.vodDetail = await this.parseVodDetailfromJson(i, e) } findKeyByValue(e, n) { for (let r in e) if (e[r] === n) return r; return null } async setPlay(e, n, r) { let i = n.split("+"), l = i[0], s = i[1], a = e.split(" - ")[1], o = this.findKeyByValue(this.play_url_obj, a); if (this.danmuUrl = this.apiUrl + "/x/v1/dm/list.so?oid=" + s, this.result.header = this.getHeader(), e.indexOf("dash") > -1 || e.indexOf("\u76F8\u5173") > -1) this.catOpenStatus && (this.playUrl = this.js2Base + ti(l + "+" + s + "+" + o)); else if (e.indexOf("mp4") > -1) { let u = this.apiUrl + "/x/player/playurl", c = { avid: l, cid: s, qn: parseInt(o), fourk: "1" }, m = JSON.parse(await this.fetch(u, c, this.getHeader())).data; this.playUrl = m.durl[0].url } else { let u = [], c = [], f = this.siteUrl + "/x/player/playurl", m = { avid: l, cid: s, qn: o, fnval: 4048, fourk: 1 }, y = JSON.parse(await this.fetch(f, m, this.getHeader())).data.dash, _ = y.video, S = y.audio; for (let w = 0; w < _.length; w++) { let E = _[w]; if (E.id === o) for (let g in this.vod_codec) E.codecid === g && u.push(vi(o) + " " + this.vod_codec[g], E.baseUrl) } if (c.length === 0) { for (let w = 0; w < S.length; w++) { let E = S[w]; for (let g in this.vod_audio_id) E.id === g && c.push({ title: B.floor(parseInt(this.vod_audio_id[g]) / 1024) + "Kbps", bit: this.vod_audio_id[g], url: E.baseUrl }) } c = B.sortBy(c, "bit") } this.playUrl = u, this.extra = { audio: c } } } async checkLogin() { let e = JSON.parse(await this.fetch("https://api.bilibili.com/x/web-interface/nav", null, this.getHeader())); return this.is_vip = e.data.vipStatus, e.data.isLogin } async setCategory(e, n, r, i) { let l; parseInt(n) < 1 ? l = 1 : l = parseInt(n), Object.keys(i).length > 0 && i.hasOwnProperty("tid") && i.tid.length > 0 && (e = i.tid); let s = ""; if (s = this.apiUrl + `/x/web-interface/search/type?search_type=video&keyword=${encodeURIComponent(e)}`, Object.keys(i).length > 0) for (let u in i) u !== "tid" && (s += `&${encodeURIComponent(u)}=${encodeURIComponent(i[u])}`); s += `&page=${encodeURIComponent(l)}`, e === "\u5386\u53F2\u8BB0\u5F55" && (s = this.apiUrl + "/x/v2/history?pn=" + l); let a = JSON.parse(await this.fetch(s, null, this.getHeader())).data, o = a.result; e === "\u5386\u53F2\u8BB0\u5F55" && (o = a), this.vodList = await this.parseVodShortListFromJson(o) } async setSearch(e, n, r) { let i = { duration: "0" }, l = parseInt(r), s = 20, a = JSON.parse(await this.category(e, l, !0, i)); this.vodList = a.list; let o = l; this.vodList.length === s && (o = l + 1), this.result.setPage(l, o, s, o) } getDashMedia(e) {
try {
let n = e.id, r = e.codecid, i = e.codecs, l = e.bandwidth, s = e.startWithSap, a = e.mimeType, o = e.baseUrl.replace(/&/g, "&amp;"), u = e.SegmentBase.indexRange, c = e.SegmentBase.Initialization, f = a.split("/")[0], m = ""; if (f === "video") { let d = e.frameRate, y = e.sar, _ = e.width; m = `height='${e.height}' width='${_}' frameRate='${d}' sar='${y}'` } else if (f === "audio") for (let d in this.vod_audio_id) n === d && (m = `numChannels='2' sampleRate='${this.vod_audio_id[d]}'`); return n += "_" + r, `<AdaptationSet lang="chi">
<ContentComponent contentType="${f}"/>
<Representation id="${n}" bandwidth="${l}" codecs="${i}" mimeType="${a}" ${m} startWithSAP="${s}">
<BaseURL>${o}</BaseURL>
<SegmentBase indexRange="${u}">
<Initialization range="${c}"/>
</SegmentBase>
</Representation>
</AdaptationSet>`} catch { }
} getDash(e, n, r) {
let i = e.data.dash.duration, l = e.data.dash.minBufferTime; return `<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" type="static" mediaPresentationDuration="PT${i}S" minBufferTime="PT${l}S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
<Period duration="PT${i}S" start="PT0S">
${n}
${r}
</Period>
</MPD>`} async proxy(e, n) { let r = e[0], i = vi(e[1]); if (r === "dash") { let l = i.split("+"), s = l[0], a = l[1], o = l[2], u = this.apiUrl + `/x/player/playurl?avid=${s}&cid=${a}&qn=${o}&fnval=4048&fourk=1`, c = "", f = "", m = await this.fetch(u, null, n), d = JSON.parse(m), y = d.data.dash, _ = y.video, S = y.audio; for (let E = 0; E < _.length; E++) { let g = _[E]; g.id.toString() === o && (c += this.getDashMedia(g)) } for (let E = 0; E < S.length; E++) { let g = S[E]; for (let v in this.vod_audio_id) g.id.toString() === v && (f += this.getDashMedia(g)) } let w = this.getDash(d, c, f); return JSON.stringify({ code: 200, content: w, headers: { "Content-Type": "application/dash+xml" } }) } return JSON.stringify({ code: 500, content: "" }) }
}, Sn = new uS; var cS = class extends Re { constructor() { super() } getName() { return Sn.getName() } getAppName() { return Sn.getAppName() } getJSName() { return Sn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Sn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Sn.initCookie(e.server.config.bilicookie), await Sn.spiderInit(e), Sn.cfgObj.code = 0, Sn.catOpenStatus = !0, Sn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Sn.setClasses(), this.classes = Sn.classes } async setFilterObj() { await Sn.setFilterObj(), this.filterObj = Sn.filterObj } async setHomeVod() { await Sn.setHomeVod(), this.homeVodList = Sn.homeVodList } async setCategory(e, n, r, i) { await Sn.setCategory(e, n, r, i), this.vodList = Sn.vodList } async setDetail(e) { await Sn.setDetail(e), this.vodDetail = Sn.vodDetail } async setPlay(e, n, r) { await Sn.setPlay(e, n, r), this.playUrl = Sn.playUrl, this.result = Sn.result } async setSearch(e, n, r) { await Sn.setSearch(e, n, r), this.vodList = Sn.vodList, this.result = Sn.result } async setProxy(e, n) { return await Sn.proxy(e, n) } }, Eo = new cS; async function CX(t, e) { return await Eo.init(t, e) } async function RX(t, e) { return await Eo.home(t, e) } async function Bxe(t, e) { return await Eo.homeVod(t, e) } async function IX(t, e) { return await Eo.category(t, e) } async function kX(t, e) { return await Eo.detail(t, e) } async function DX(t, e) { return await Eo.play(t, e) } async function PX(t, e) { return await Eo.search(t, e) } async function Hxe(t, e) { return await Eo.proxy(t, e) } var LX = { meta: { key: Sn.getJSName(), name: Sn.getName(), type: Sn.getType() }, api: async t => { t.post("/init", CX), t.post("/home", RX), t.post("/category", IX), t.post("/detail", kX), t.post("/play", DX), t.post("/search", PX), t.get("/proxy/:what/:ids/:end", Hxe) }, spider: { init: CX, home: RX, homeVod: Bxe, category: IX, detail: kX, play: DX, search: PX } }; var pS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.xb6v.com" } getName() { return "\u{1F9F2}\u2503\u78C1\u529B\u65B06V\u2503\u{1F9F2}" } getAppName() { return "\u78C1\u529B\u65B06V" } getJSName() { return "xb6v" } getType() { return 3 } async redirect(e) { await this.jadeLog.debug(`\u91CD\u5B9A\u5411\u56DE\u590D\u503C\u4E3A:${e.content}`); let n = /<a HREF=(.*?)>/.exec(e.content); if (n.length > 1) { let r = this.siteUrl + "/e/search/" + n[1].replaceAll("\\", "").replaceAll('"', ""); return await this.jadeLog.info(`\u91CD\u5B9A\u5411url\u4E3A:${r}`), await this.fetch(r, null, this.getHeader()) } } getActorOrDirector(e, n) { return Te(e, n).replace(/<br>/g, "").replace(/&nbsp;./g, "").replace(/&amp;/g, "").replace(/middot;/g, "\u30FB").replace(/     /g, ",").replace(/      /g, ",").replace(/ /g, "") } getDescription(e, n) { return Te(e, n).replace(/<\/?[^>]+>/g, "").replace(/\n/g, "").replace(/&amp;/g, "").replace(/middot;/g, "\u30FB").replace(/ldquo;/g, "\u3010").replace(/rdquo;/g, "\u3011").replace(/ /g, "") } async parseVodShortListFromDoc(e) {
let n = e("#post_container .post_hover"), r = []; for (let i of n) {
let l = e(i).find("[class=zoom]")[0], s = new Ne; s.vod_id = l.attribs.href, s.vod_name = l.attribs.title.replaceAll(/<\\?[^>]+>/g, ""), s.vod_pic = e(l).find("img")[0].attribs.src, s.vod_remarks = e(i).find('[rel="category tag"]').text().replaceAll(`
`, "").replaceAll(" ", ""), r.push(s)
} return r
} async parseVodDetailFromDoc(e) { let n = e("#post_content"), r = [], i = []; if (!this.catOpenStatus) { let o = 0, u = "\u78C1\u529B\u7EBF\u8DEF"; for (let c of n) { let f = e(c).find("table a"), m = []; for (let d of f) { let y = d.attribs.href, _ = d.children[0].data; y.toLowerCase().startsWith("magnet") && m.push(_ + "$" + y) } m.length > 0 && (o++, r.push(u + o), i.push(m.join("#"))) } } let l = e(e(".mainleft")).find('[class="widget box row"]'); for (let o of l) { let u = e(o).find("h3").text(), c = []; if (!B.isEmpty(u)) { let f = e(o).find("a"); for (let m of f) c.push(m.attribs.title + "$" + m.attribs.href); r.push(u), i.push(c.join("#")) } } let s = e(".context").html(), a = new Be; return a.vod_name = e(".article_container > h1").text(), a.vod_pic = e("#post_content img").attr("src"), a.type_name = Te(/◎类  别 (.*?)<br>/, s), B.isEmpty(a.type_name) && (a.type_name = e('[rel="category tag"]').text()), a.vod_year = Te(/◎年  代 (.*?)<br>/, s), B.isEmpty(a.vod_year) && (a.vod_year = Te(/首播:(.*?)<br>"/, s)), a.vod_area = Te(/◎产  地 (.*?)<br>/, s), B.isEmpty(a.vod_year) && (a.vod_area = Te(/地区:(.*?)<br>"/, s)), a.vod_remarks = Te(/◎上映日期 (.*?)<br>/, s), a.vod_actor = this.getActorOrDirector(/◎演  员 (.*?)<\/p>/, s), B.isEmpty(a.vod_actor) && (a.vod_actor = this.getActorOrDirector(/◎主  演 (.*?)<\/p>/, s)), B.isEmpty(a.vod_actor) && (a.vod_actor = this.getActorOrDirector(/主演:(.*?)<br>/, s)), a.vod_director = this.getActorOrDirector(/◎导  演 (.*?)<br>/, s), B.isEmpty(a.vod_director) && (a.vod_director = this.getActorOrDirector(/导演:(.*?)<br>/, s)), a.vod_content = this.getDescription(/◎简  介(.*?)<hr>/gi, s), B.isEmpty(a.vod_content) && (a.vod_content = this.getDescription(/简介(.*?)<\/p>/gi, s)), B.isEmpty(a.vod_content) && (a.vod_content = this.getDescription(/◎简  介(.*?)<br>/gi, s)), a.vod_play_from = r.join("$$$"), a.vod_play_url = i.join("$$$"), a } async parseVodPlayFromDoc(e, n) { let r = "", i = n.html(); switch (e) { case "\u64AD\u653E\u5730\u5740\uFF08\u65E0\u63D2\u4EF6 \u6781\u901F\u64AD\u653E\uFF09": case "\u64AD\u653E\u5730\u5740\u4E09": r = n(n(".video")).find("iframe")[0].attribs.src + "/index.m3u8"; break; case "\u64AD\u653E\u5730\u5740\uFF08\u65E0\u9700\u5B89\u88C5\u63D2\u4EF6\uFF09": let l = /url: '(.*?)',/gs.exec(i); l.length > 1 && (r = l[1]); break; case "\u64AD\u653E\u5730\u5740\u56DB": let s = /source: "(.*?)",/gs.exec(i); s.length > 1 && (r = s[1]); break; default: await this.jadeLog.warning(`\u6682\u4E0D\u652F\u6301\u5F53\u524D\u683C\u5F0F,\u5F53\u524D\u683C\u5F0F\u4E3A:${e}`); break }return r } async setClasses() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e), r = n("#menus > li > a"); for (let i = 0; i < r.length; i++) { let l = r[i]; if (i < 2 || i === r.length - 1) continue; let s = l.children[0].data, a = l.attribs.href; if (this.classes.push({ type_name: s, type_id: a }), s === "\u7535\u89C6\u5267") { let o = [{ n: "\u4E0D\u9650", v: "" }]; for (let u of n(l.next).find("a")) o.push({ n: u.children[0].data, v: u.attribs.href.replaceAll(a, "") }); this.filterObj[a] = [{ key: "cateId", name: "\u7C7B\u578B", value: o }] } } } } async setHomeVod() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (B.isEmpty(e)) await this.jadeLog.info("\u9996\u9875\u7C7B\u522B\u89E3\u6790\u5931\u8D25", !0); else { let n = $e(e); this.homeVodList = await this.parseVodShortListFromDoc(n) } } async setCategory(e, n, r, i) { let l = i.cateId ?? "", s = this.siteUrl + e + l; this.page = parseInt(n), this.count = 0, this.limit = 18, this.total = 0, this.page !== 1 && (s += "index_" + n + ".html"); let a = await this.fetch(s, null, this.getHeader()); if (!B.isEmpty(a)) { let o = $e(a), u = o(".pagination > a"); if (u.length > 0) { let c = u.slice(-1)[0].attribs.href, m = /index_(.*?).html/.exec(c); this.count = parseInt(m[1]); let d = o("#post_container .post_hover"); this.total = this.page === this.count ? (this.page - 1) * this.limit + d.length : this.count * this.limit } this.vodList = await this.parseVodShortListFromDoc(o) } } async setSearch(e, n) { let r = this.siteUrl + "/e/search/index.php", i = { show: "title", tempid: "1", tbname: "article", mid: "1", dopost: "search", keyboard: e }, l = await this.post(r, i, this.getHeader()); if (!B.isEmpty(l)) { let s = $e(l); this.vodList = await this.parseVodShortListFromDoc(s) } } async setDetail(e) { let n = this.siteUrl + e, r = await this.fetch(n, null, this.getHeader()); if (!B.isEmpty(r)) { let i = $e(r); this.vodDetail = await this.parseVodDetailFromDoc(i) } } async setPlay(e, n, r) { if (n.toLowerCase().startsWith("magnet")) this.playUrl = n; else { let i = this.siteUrl + n, l = await this.fetch(i, null, this.getHeader()), s = $e(l); this.playUrl = await this.parseVodPlayFromDoc(e, s) } }
}, Tn = new pS; var fS = class extends Re { constructor() { super() } getName() { return Tn.getName() } getAppName() { return Tn.getAppName() } getJSName() { return Tn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Tn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Tn.initCookie(e.server.config.bilicookie), await Tn.spiderInit(e), Tn.cfgObj.code = 0, Tn.catOpenStatus = !0, Tn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Tn.setClasses(), this.classes = Tn.classes } async setFilterObj() { await Tn.setFilterObj(), this.filterObj = Tn.filterObj } async setHomeVod() { await Tn.setHomeVod(), this.homeVodList = Tn.homeVodList } async setCategory(e, n, r, i) { await Tn.setCategory(e, n, r, i), this.vodList = Tn.vodList } async setDetail(e) { await Tn.setDetail(e), this.vodDetail = Tn.vodDetail } async setPlay(e, n, r) { await Tn.setPlay(e, n, r), this.playUrl = Tn.playUrl, this.result = Tn.result } async setSearch(e, n, r) { await Tn.setSearch(e, n, r), this.vodList = Tn.vodList, this.result = Tn.result } async setProxy(e, n) { return await Tn.proxy(e, n) } }, bo = new fS; async function FX(t, e) { return await bo.init(t, e) } async function jX(t, e) { return await bo.home(t, e) } async function Vxe(t, e) { return await bo.homeVod(t, e) } async function UX(t, e) { return await bo.category(t, e) } async function MX(t, e) { return await bo.detail(t, e) } async function $X(t, e) { return await bo.play(t, e) } async function BX(t, e) { return await bo.search(t, e) } async function qxe(t, e) { return await bo.proxy(t, e) } var HX = { meta: { key: Tn.getJSName(), name: Tn.getName(), type: Tn.getType() }, api: async t => { t.post("/init", FX), t.post("/home", jX), t.post("/category", UX), t.post("/detail", MX), t.post("/play", $X), t.post("/search", BX), t.get("/proxy/:what/:ids/:end", qxe) }, spider: { init: FX, home: jX, homeVod: Vxe, category: UX, detail: MX, play: $X, search: BX } }; var dS = class extends Re { constructor() { super() } getName() { return "\u2503\u63A8\u9001\u2503" } getAppName() { return "\u63A8\u9001" } getJSName() { return "push" } getType() { return 4 } async init(e, n) { return await this.jadeLog.debug("\u521D\u59CB\u5316", !0), await qi(e.server.config.alitoken), {} } async check(e, n) { let r = e.body.clip; return await this.jadeLog.debug(`\u526A\u5207\u677F\u8F93\u5165\u5185\u5BB9\u4E3A:${r}`), r.startsWith("http") ? (await this.jadeLog.debug("\u6EE1\u8DB3\u63A8\u9001\u6761\u4EF6", !0), "true") : (await this.jadeLog.debug("\u4E0D\u6EE1\u8DB3\u63A8\u9001\u6761\u4EF6", !0), "false") } async parseVodDetailfromJson(e) { let n = new Be; n.vod_pic = Q2 + "/resources/push.jpg"; let r = lu.exec(e); if (r !== null && r.length > 0) { let i = await Tl([e]); n.vod_play_url = i.vod_play_url, n.vod_play_from = i.vod_play_from } else n.vod_play_from = "\u63A8\u9001", n.vod_play_url = "\u63A8\u9001$" + e; return n } async setDetail(e) { this.vodDetail = await this.parseVodDetailfromJson(e) } async setPlay(e, n, r) { e === "\u63A8\u9001" ? this.playUrl = n : this.playUrl = JSON.parse(await xl(e, n, r)).url } }, bf = new dS; async function zxe(t, e) { return await bf.init(t, e) } async function Gxe(t, e) { return await bf.check(t, e) } async function Jxe(t, e) { return await bf.detail(t, e) } async function Kxe(t, e) { return await bf.play(t, e) } var VX = { meta: { key: "push", name: "\u63A8\u9001", type: 4 }, api: async t => { t.post("/init", zxe), t.post("/support", Gxe), t.post("/detail", Jxe), t.post("/play", Kxe) } }; var hS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.alipansou.com" } getSearchHeader(e) { let n = this.getHeader(); return n.Referer = e, n["Postman-Token"] = "5f1bb291-ce30-44c7-8885-6db1f3a50785", n.Host = "www.alipansou.com", n } getName() { return "\u{1F638}\u2503\u963F\u91CC\u732B\u72F8\u2503\u{1F638}" } getAppName() { return "\u963F\u91CC\u732B\u72F8" } getJSName() { return "alipansou" } getType() { return 3 } getHeader() { return { "User-Agent": zr, Connection: "keep-alive", Cookie: "_ga=GA1.1.1506025676.1708225506;FCNEC=%5B%5B%22AKsRol9sCpH4JteOAAMprJLQxCHddrtkOFinxqt1cs8x3fKzbBZ5Ll76VvjATz1Ejf6NoayGSONFl2gfn6PbVAG97MlHjhp6cY5NFLQtLIUy0TuzI1_ThHnANe8fW03fHdU2-cx5yM3MftaHt4awEGBWhgtE9H_P5w%3D%3D%22%5D%5D;_cc_id=cc82bd83ea8936df45fe63c887a6f221;mysession=MTcwOTYyMjMxMHxEdi1CQkFFQ180SUFBUkFCRUFBQU1fLUNBQUVHYzNSeWFXNW5EQXdBQ25ObFlYSmphRjlyWlhrR2MzUnlhVzVuREJFQUQtV1JxT1draE9tWnBPUzRpZVd1c3c9PXyjHmLCdFvUlsW_gilBojjCq1ak-ffOud6aZKm3kxzJ4w==;Hm_lvt_02f69e0ba673e328ef49b5fb98dd4601=1708225506,1709622301,1710414091;_bid=28d3966abb8cf873ea912b715552f587;cf_clearance=6LuYs83fWIZlcwwzZkgRyYyFrP6Hndxe_CgByMe.pMs-1710414092-1.0.1.1-V44M.u7MNIozBytYixxp4Qe1OVr.CBH78.IEK2QJTWGQ7.HQBR0DoUgiSfpa23U.nxtOfhkrASpqogvz53knnw;cto_bundle=-WbYyl9VWGZjQkhzZ0gyQjE4VXNlcTJnYTNaV3dMaTdVV0xST3p5RkVnUTNxVWpxYVElMkZtNnVsaWtQSzdQU3JJY0slMkYxc3R5SXdyQlRzbkp1clVNZk84OElTR2MlMkJPeGx0bGtsUHk2VzhGdk1yYyUyRnB5eUNNblhKbWpzcjY1SVI1ODlWRGZXemgzUU51bGF5UWxFNVljcUZpd252bnVZZ1R1d0VXRmJ3S1FXQ1RCMXhVNCUzRA;Hm_lpvt_02f69e0ba673e328ef49b5fb98dd4601=1710416656;_ga_NYNC791BP2=GS1.1.1710414091.2.1.1710416656.0.0.0;_ga_0B2NFC7Z09=GS1.1.1710414091.2.1.1710416656.60.0.0;_egg=16a87a4666714be885e814217b225d50e" } } async getContentHtml() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) return $e(e) } async spiderInit() { this.content_html = await this.getContentHtml() } async init(e) { await this.spiderInit(), await super.init(e), await qi(this.cfgObj.token) } async parseClassFromDoc(e) { let n = e(e('[id="app"]')[0]).find("van-tab"), r = 0; for (let i of n) { let l = i.attribs.title; l.indexOf("\u70ED\u641C") === -1 && l !== "\u6E38\u620F" && l !== "\u5C0F\u8BF4" && this.classes.push({ type_name: l, type_id: r }), r = r + 1 } } async parseVodShortListFromDoc(e) { let n = [], r = this.content_html(e).find("a"); for (let i of r) { let l = new Ne; l.vod_id = i.attribs.href, l.vod_name = this.content_html(i).text().split(".").slice(-1)[0], n.push(l) } return n } async getAliUrl(e) { let n = this.siteUrl + e.replace("/s/", "/cv/"), r = this.getSearchHeader(n), i = await req(n, { postType: "get", headers: r, redirect: 2 }); return await this.jadeLog.debug(`\u56DE\u590D\u5185\u5BB9\u4E3A:${JSON.stringify(i)}`), i.headers.location } async parseVodDetailfromJson(e) { let n = new Be; n.vod_name = e.name, n.vod_remarks = e.remarks; let r = await this.getAliUrl(e.id); if (await this.jadeLog.debug(`\u963F\u91CC\u5206\u4EAB\u94FE\u63A5\u4E3A:${r}`), !B.isEmpty(r)) { let i = await Tl([r]); n.vod_play_url = i.vod_play_url, n.vod_play_from = i.vod_play_from } return n } async parseVodShortListFromDocBySearch(e) {
let n = e(e(e('[id="app"]')[0]).find("van-row")).find("a"), r = []; for (let i of n) {
let l = i.attribs.href, s = l.match(/(\/s\/[^"])/); if (!B.isEmpty(s) && l.indexOf("https") === -1) {
let a = e(i).text().replaceAll(`
`, "").replaceAll(" ", ""); if (a.indexOf("\u65F6\u95F4") > -1 && a.indexOf("\u6587\u4EF6\u5939") > -1) { let o = a.split("\u65F6\u95F4"), u = new Ne; u.vod_name = o[0], u.vod_remarks = o[1].split("\u683C\u5F0F")[0].replaceAll(":", "").replaceAll(" ", "").replaceAll("\uFEFF", "").replaceAll("\xA0", ""), u.vod_id = JSON.stringify({ name: u.vod_name, remarks: u.vod_remarks, id: l }), r.push(u) }
}
} return r
} async setClasses() { await this.parseClassFromDoc(this.content_html) } async setHomeVod() { let e = this.content_html(this.content_html('[id="app"]')[0]).find("van-tab"); this.homeVodList = await this.parseVodShortListFromDoc(e[0]) } async setDetail(e) { if (e.indexOf("search") > -1) { let n = this.siteUrl + "/search", r = { k: decodeURIComponent(e.split("search?k=").slice(-1)[0]) }, i = await this.fetch(n, r, this.getHeader()); if (!B.isEmpty(i)) { let l = $e(i), s = await this.parseVodShortListFromDocBySearch(l); s.length > 0 ? e = s[0].vod_id : e = "" } } if (!B.isEmpty(e)) { let n = JSON.parse(e); this.vodDetail = await this.parseVodDetailfromJson(n) } } async setCategory(e, n, r, i) { let l = this.content_html(this.content_html('[id="app"]')[0]).find("van-tab"); this.vodList = await this.parseVodShortListFromDoc(l[parseInt(e)]) } async setSearch(e, n) { let r = this.siteUrl + "/search", i = { k: e }, l = await this.fetch(r, i, this.getHeader()); if (!B.isEmpty(l)) { let s = $e(l); this.vodList = await this.parseVodShortListFromDocBySearch(s) } } async setPlay(e, n, r) { let i = await xl(e, n, r); this.playUrl = JSON.parse(i).url }
}, xn = new hS; var mS = class extends Re { constructor() { super() } getName() { return xn.getName() } getAppName() { return xn.getAppName() } getJSName() { return xn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await xn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await xn.initCookie(e.server.config.bilicookie), await xn.spiderInit(e), xn.cfgObj.code = 0, xn.catOpenStatus = !0, xn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await xn.setClasses(), this.classes = xn.classes } async setFilterObj() { await xn.setFilterObj(), this.filterObj = xn.filterObj } async setHomeVod() { await xn.setHomeVod(), this.homeVodList = xn.homeVodList } async setCategory(e, n, r, i) { await xn.setCategory(e, n, r, i), this.vodList = xn.vodList } async setDetail(e) { await xn.setDetail(e), this.vodDetail = xn.vodDetail } async setPlay(e, n, r) { await xn.setPlay(e, n, r), this.playUrl = xn.playUrl, this.result = xn.result } async setSearch(e, n, r) { await xn.setSearch(e, n, r), this.vodList = xn.vodList, this.result = xn.result } async setProxy(e, n) { return await xn.proxy(e, n) } }, wo = new mS; async function qX(t, e) { return await wo.init(t, e) } async function zX(t, e) { return await wo.home(t, e) } async function Xxe(t, e) { return await wo.homeVod(t, e) } async function GX(t, e) { return await wo.category(t, e) } async function JX(t, e) { return await wo.detail(t, e) } async function KX(t, e) { return await wo.play(t, e) } async function XX(t, e) { return await wo.search(t, e) } async function Wxe(t, e) { return await wo.proxy(t, e) } var WX = { meta: { key: xn.getJSName(), name: xn.getName(), type: xn.getType() }, api: async t => { t.post("/init", qX), t.post("/home", zX), t.post("/category", GX), t.post("/detail", JX), t.post("/play", KX), t.post("/search", XX), t.get("/proxy/:what/:ids/:end", Wxe) }, spider: { init: qX, home: zX, homeVod: Xxe, category: GX, detail: JX, play: KX, search: XX } }; var yS = class extends Fe { constructor() { super(), this.siteUrl = "https://api.web.360kan.com" } getName() { return "\u{1F94E}\u2503360\u5F71\u89C6\u2503\u{1F94E}" } getAppName() { return "360" } getJSName() { return "sp360" } getType() { return 3 } async init(e) { await super.init(e), this.danmuStaus = !0 } async setClasses() { this.classes = [this.getTypeDic("\u6700\u8FD1\u66F4\u65B0", "\u6700\u8FD1\u66F4\u65B0"), this.getTypeDic("\u7535\u5F71", "1"), this.getTypeDic("\u5267\u96C6", "2"), this.getTypeDic("\u7EFC\u827A", "3"), this.getTypeDic("\u52A8\u6F2B", "4")] } async setFilterObj() { this.filterObj = { 1: [{ key: "cat", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u559C\u5267", v: "\u559C\u5267" }, { n: "\u7231\u60C5", v: "\u7231\u60C5" }, { n: "\u52A8\u4F5C", v: "\u52A8\u4F5C" }, { n: "\u6050\u6016", v: "\u6050\u6016" }, { n: "\u79D1\u5E7B", v: "\u79D1\u5E7B" }, { n: "\u5267\u60C5", v: "\u5267\u60C5" }, { n: "\u72AF\u7F6A", v: "\u72AF\u7F6A" }, { n: "\u5947\u5E7B", v: "\u5947\u5E7B" }, { n: "\u6218\u4E89", v: "\u6218\u4E89" }, { n: "\u60AC\u7591", v: "\u60AC\u7591" }, { n: "\u52A8\u753B", v: "\u52A8\u753B" }, { n: "\u6587\u827A", v: "\u6587\u827A" }, { n: "\u7EAA\u5F55", v: "\u7EAA\u5F55" }, { n: "\u4F20\u8BB0", v: "\u4F20\u8BB0" }, { n: "\u6B4C\u821E", v: "\u6B4C\u821E" }, { n: "\u53E4\u88C5", v: "\u53E4\u88C5" }, { n: "\u5386\u53F2", v: "\u5386\u53F2" }, { n: "\u60CA\u609A", v: "\u60CA\u609A" }, { n: "\u4F26\u7406", v: "\u4F26\u7406" }, { n: "\u5176\u4ED6", v: "\u5176\u4ED6" }] }, { key: "year", name: "\u5E74\u4EE3", value: [{ n: "\u5168\u90E8", v: "" }, { n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "2014", v: "2014" }, { n: "2013", v: "2013" }, { n: "2012", v: "2012" }, { n: "2010", v: "2010" }, { n: "2009", v: "2009" }, { n: "2008", v: "2008" }, { n: "2007", v: "2007" }, { n: "\u66F4\u65E9", v: "lt_year" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u5185\u5730", v: "\u5927\u9646" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "\u9999\u6E2F" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "\u53F0\u6E7E" }, { n: "\u6CF0\u56FD", v: "\u6CF0\u56FD" }, { n: "\u7F8E\u56FD", v: "\u7F8E\u56FD" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u6CD5\u56FD", v: "\u6CD5\u56FD" }, { n: "\u82F1\u56FD", v: "\u82F1\u56FD" }, { n: "\u5FB7\u56FD", v: "\u5FB7\u56FD" }, { n: "\u5370\u5EA6", v: "\u5370\u5EA6" }, { n: "\u5176\u4ED6", v: "\u5176\u4ED6" }] }, { key: "rank", name: "\u6392\u5E8F", value: [{ n: "\u6700\u8FD1\u70ED\u6620", v: "rankhot" }, { n: "\u6700\u8FD1\u4E0A\u6620", v: "ranklatest" }, { n: "\u6700\u53D7\u597D\u8BC4", v: "rankpoint" }] }], 2: [{ key: "cat", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u8A00\u60C5", v: "\u8A00\u60C5" }, { n: "\u5267\u60C5", v: "\u5267\u60C5" }, { n: "\u4F26\u7406", v: "\u4F26\u7406" }, { n: "\u559C\u5267", v: "\u559C\u5267" }, { n: "\u60AC\u7591", v: "\u60AC\u7591" }, { n: "\u90FD\u5E02", v: "\u90FD\u5E02" }, { n: "\u5076\u50CF", v: "\u5076\u50CF" }, { n: "\u53E4\u88C5", v: "\u53E4\u88C5" }, { n: "\u519B\u4E8B", v: "\u519B\u4E8B" }, { n: "\u8B66\u532A", v: "\u8B66\u532A" }, { n: "\u5386\u53F2", v: "\u5386\u53F2" }, { n: "\u52B1\u5FD7", v: "\u52B1\u5FD7" }, { n: "\u795E\u8BDD", v: "\u795E\u8BDD" }, { n: "\u8C0D\u6218", v: "\u8C0D\u6218" }, { n: "\u9752\u6625", v: "\u9752\u6625\u5267" }, { n: "\u5BB6\u5EAD", v: "\u5BB6\u5EAD\u5267" }, { n: "\u52A8\u4F5C", v: "\u52A8\u4F5C" }, { n: "\u60C5\u666F", v: "\u60C5\u666F" }, { n: "\u6B66\u4FA0", v: "\u6B66\u4FA0" }, { n: "\u79D1\u5E7B", v: "\u79D1\u5E7B" }, { n: "\u5176\u4ED6", v: "\u5176\u4ED6" }, { n: "\u5168\u90E8", v: "" }] }, { key: "year", name: "\u5E74\u4EE3", value: [{ n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "2014", v: "2014" }, { n: "2013", v: "2013" }, { n: "2012", v: "2012" }, { n: "2010", v: "2010" }, { n: "2009", v: "2009" }, { n: "2008", v: "2008" }, { n: "2007", v: "2007" }, { n: "\u66F4\u65E9", v: "lt_year" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u5185\u5730", v: "\u5185\u5730" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "\u9999\u6E2F" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "\u53F0\u6E7E" }, { n: "\u6CF0\u56FD", v: "\u6CF0\u56FD" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u7F8E\u56FD", v: "\u7F8E\u56FD" }, { n: "\u82F1\u56FD", v: "\u82F1\u56FD" }, { n: "\u65B0\u52A0\u5761", v: "\u65B0\u52A0\u5761" }] }, { key: "rank", name: "\u6392\u5E8F", value: [{ n: "\u6700\u8FD1\u70ED\u6620", v: "rankhot" }, { n: "\u6700\u8FD1\u4E0A\u6620", v: "ranklatest" }, { n: "\u6700\u53D7\u597D\u8BC4", v: "rankpoint" }] }], 3: [{ key: "cat", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u8131\u53E3\u79C0", v: "\u8131\u53E3\u79C0" }, { n: "\u771F\u4EBA\u79C0", v: "\u771F\u4EBA\u79C0" }, { n: "\u641E\u7B11", v: "\u641E\u7B11" }, { n: "\u9009\u79C0", v: "\u9009\u79C0" }, { n: "\u516B\u5366", v: "\u516B\u5366" }, { n: "\u8BBF\u8C08", v: "\u8BBF\u8C08" }, { n: "\u60C5\u611F", v: "\u60C5\u611F" }, { n: "\u751F\u6D3B", v: "\u751F\u6D3B" }, { n: "\u665A\u4F1A", v: "\u665A\u4F1A" }, { n: "\u97F3\u4E50", v: "\u97F3\u4E50" }, { n: "\u804C\u573A", v: "\u804C\u573A" }, { n: "\u7F8E\u98DF", v: "\u7F8E\u98DF" }, { n: "\u65F6\u5C1A", v: "\u65F6\u5C1A" }, { n: "\u6E38\u620F", v: "\u6E38\u620F" }, { n: "\u5C11\u513F", v: "\u5C11\u513F" }, { n: "\u4F53\u80B2", v: "\u4F53\u80B2" }, { n: "\u7EAA\u5B9E", v: "\u7EAA\u5B9E" }, { n: "\u79D1\u6559", v: "\u79D1\u6559" }, { n: "\u66F2\u827A", v: "\u66F2\u827A" }, { n: "\u6B4C\u821E", v: "\u6B4C\u821E" }, { n: "\u8D22\u7ECF", v: "\u8D22\u7ECF" }, { n: "\u6C7D\u8F66", v: "\u6C7D\u8F66" }, { n: "\u64AD\u62A5", v: "\u64AD\u62A5" }, { n: "\u5176\u4ED6", v: "\u5176\u4ED6" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u5185\u5730", v: "\u5927\u9646" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "\u9999\u6E2F" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "\u53F0\u6E7E" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u6B27\u7F8E", v: "\u6B27\u7F8E" }] }, { key: "rank", name: "\u6392\u5E8F", value: [{ n: "\u6700\u8FD1\u70ED\u6620", v: "rankhot" }, { n: "\u6700\u8FD1\u4E0A\u6620", v: "ranklatest" }] }], 4: [{ key: "cat", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u70ED\u8840", v: "\u70ED\u8840" }, { n: "\u79D1\u5E7B", v: "\u79D1\u5E7B" }, { n: "\u7F8E\u5C11\u5973", v: "\u7F8E\u5C11\u5973" }, { n: "\u9B54\u5E7B", v: "\u9B54\u5E7B" }, { n: "\u7ECF\u5178", v: "\u7ECF\u5178" }, { n: "\u52B1\u5FD7", v: "\u52B1\u5FD7" }, { n: "\u5C11\u513F", v: "\u5C11\u513F" }, { n: "\u5192\u9669", v: "\u5192\u9669" }, { n: "\u641E\u7B11", v: "\u641E\u7B11" }, { n: "\u63A8\u7406", v: "\u63A8\u7406" }, { n: "\u604B\u7231", v: "\u604B\u7231" }, { n: "\u6CBB\u6108", v: "\u6CBB\u6108" }, { n: "\u5E7B\u60F3", v: "\u5E7B\u60F3" }, { n: "\u6821\u56ED", v: "\u6821\u56ED" }, { n: "\u52A8\u7269", v: "\u52A8\u7269" }, { n: "\u673A\u6218", v: "\u673A\u6218" }, { n: "\u4EB2\u5B50", v: "\u4EB2\u5B50" }, { n: "\u513F\u6B4C", v: "\u513F\u6B4C" }, { n: "\u8FD0\u52A8", v: "\u8FD0\u52A8" }, { n: "\u60AC\u7591", v: "\u60AC\u7591" }, { n: "\u602A\u7269", v: "\u602A\u7269" }, { n: "\u6218\u4E89", v: "\u6218\u4E89" }, { n: "\u76CA\u667A", v: "\u76CA\u667A" }, { n: "\u9752\u6625", v: "\u9752\u6625" }, { n: "\u7AE5\u8BDD", v: "\u7AE5\u8BDD" }, { n: "\u7ADE\u6280", v: "\u7ADE\u6280" }, { n: "\u52A8\u4F5C", v: "\u52A8\u4F5C" }, { n: "\u793E\u4F1A", v: "\u793E\u4F1A" }, { n: "\u53CB\u60C5", v: "\u53CB\u60C5" }, { n: "\u771F\u4EBA\u7248", v: "\u771F\u4EBA\u7248" }, { n: "\u7535\u5F71\u7248", v: "\u7535\u5F71\u7248" }, { n: "OVA\u7248", v: "OVA\u7248" }, { n: "TV\u7248", v: "TV\u7248" }, { n: "\u65B0\u756A\u52A8\u753B", v: "\u65B0\u756A\u52A8\u753B" }, { n: "\u5B8C\u7ED3\u52A8\u753B", v: "\u5B8C\u7ED3\u52A8\u753B" }] }, { key: "year", name: "\u5E74\u4EE3", value: [{ n: "\u5168\u90E8", v: "" }, { n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "2014", v: "2014" }, { n: "2013", v: "2013" }, { n: "2012", v: "2012" }, { n: "2011", v: "2011" }, { n: "2010", v: "2010" }, { n: "2009", v: "2009" }, { n: "2008", v: "2008" }, { n: "2007", v: "2007" }, { n: "2006", v: "2006" }, { n: "2005", v: "2005" }, { n: "2004", v: "2004" }, { n: "\u66F4\u65E9", v: "\u66F4\u65E9" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u5185\u5730", v: "\u5927\u9646" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u7F8E\u56FD", v: "\u7F8E\u56FD" }] }, { key: "rank", name: "\u6392\u5E8F", value: [{ n: "\u6700\u8FD1\u70ED\u6620", v: "rankhot" }, { n: "\u6700\u8FD1\u4E0A\u6620", v: "ranklatest" }] }] } } async parseVodShortListFromJson(e) { let n = []; for (let r of e.data) { let i = new Ne; i.vod_id = r.ent_id + "+" + r.cat, r.cover.startsWith("http") ? i.vod_pic = r.cover : i.vod_pic = "https:" + r.cover, i.vod_name = r.title, i.vod_remarks = r.upinfo, n.push(i) } return n } async parseVodShortListFromJsonByCategory(e, n) { let r = []; for (let i of e.data.movies) { let l = new Ne; l.vod_id = i.id + "+" + n, i.cover.startsWith("http") ? l.vod_pic = i.cover : l.vod_pic = "https:" + i.cover, l.vod_name = i.title, l.vod_remarks = i.tag, B.isEmpty(i.doubanscore) ? B.isEmpty(l.vod_remarks) && (l.vod_remarks = i.pubdate) : l.vod_remarks = "\u8C46\u74E3\u8BC4\u5206:" + i.doubanscore, r.push(l) } return r } async parseVodDetailfromJson(e) { let n = new Be, r = e.data; n.vod_name = r.title, n.vod_pic = r.cdncover, n.vod_remarks = r.pubdate, n.vod_actor = r.actor.join("*"), n.vod_director = r.director.join("*"), n.type_name = r.moviecategory.join("*"), n.vod_year = r.pubdate, n.vod_area = r.area.join("*"), n.vod_content = r.description; let i = {}; for (let l of r.playlink_sites) { let s = []; if (B.isEmpty(r.allepidetail)) { let a = r.playlinksdetail[l], o = a.default_url, u = a.quality; s.push(u + "$" + o) } else if (r.allepidetail[l] !== void 0) for (let a of r.allepidetail[l]) { let o = a.url, u = a.playlink_num; s.push(u + "$" + o) } s.length > 0 && (i[l] = s.join("#")) } return n.vod_play_url = B.values(i).join("$$$"), n.vod_play_from = B.keys(i).join("$$$"), n } async parseVodShortListFromJsonBySearch(e) { let n = []; for (let r of e.data.longData.rows) { let i = new Ne; i.vod_id = r.en_id + "+" + r.cat_id, r.cover.startsWith("http") ? i.vod_pic = r.cover : i.vod_pic = "https:" + r.cover, i.vod_name = r.titleTxt, i.vod_remarks = r.coverInfo.txt, n.push(i) } return n } async setHomeVod() { let e = await this.fetch(this.siteUrl + "/v1/rank?cat=1", null, this.getHeader()); this.homeVodList = await this.parseVodShortListFromJson(JSON.parse(e)) } async setCategory(e, n, r, i) { let l = i.by ?? "rankhot", s = i.year ?? "", a = i.cat ?? "", o = i.area ?? "", u = this.siteUrl + `/v1/filter/list?catid=${e}&rank=${l}&cat=${a}&year=${s}&area=${o}&act=&size=35&pageno=${n}&callback=`, c = await this.fetch(u, null, this.getHeader()); this.vodList = await this.parseVodShortListFromJsonByCategory(JSON.parse(c), e) } async setDetail(e) { let n = e.split("+"), r = this.siteUrl + `/v1/detail?cat=${n[1]}&id=${n[0]}`, i = await this.fetch(r, null, this.getHeader()); this.vodDetail = await this.parseVodDetailfromJson(JSON.parse(i)) } async setSearch(e, n) { let r = `https://api.so.360kan.com/index?force_v=1&kw=${e}&from=&pageno=1&v_ap=1&tab=all`, i = await this.fetch(r, null, this.getHeader()); this.vodList = await this.parseVodShortListFromJsonBySearch(JSON.parse(i)) } async setPlay(e, n, r) { this.danmuStaus && !this.catOpenStatus && (this.danmuUrl = await this.danmuSpider.getVideoUrl(n, 0)), this.result.parse = 1, this.result.jx = 1, this.playUrl = n } }, An = new yS; var gS = class extends Re { constructor() { super() } getName() { return An.getName() } getAppName() { return An.getAppName() } getJSName() { return An.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await An.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await An.initCookie(e.server.config.bilicookie), await An.spiderInit(e), An.cfgObj.code = 0, An.catOpenStatus = !0, An.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await An.setClasses(), this.classes = An.classes } async setFilterObj() { await An.setFilterObj(), this.filterObj = An.filterObj } async setHomeVod() { await An.setHomeVod(), this.homeVodList = An.homeVodList } async setCategory(e, n, r, i) { await An.setCategory(e, n, r, i), this.vodList = An.vodList } async setDetail(e) { await An.setDetail(e), this.vodDetail = An.vodDetail } async setPlay(e, n, r) { await An.setPlay(e, n, r), this.playUrl = An.playUrl, this.result = An.result } async setSearch(e, n, r) { await An.setSearch(e, n, r), this.vodList = An.vodList, this.result = An.result } async setProxy(e, n) { return await An.proxy(e, n) } }, So = new gS; async function YX(t, e) { return await So.init(t, e) } async function QX(t, e) { return await So.home(t, e) } async function Yxe(t, e) { return await So.homeVod(t, e) } async function ZX(t, e) { return await So.category(t, e) } async function eW(t, e) { return await So.detail(t, e) } async function tW(t, e) { return await So.play(t, e) } async function nW(t, e) { return await So.search(t, e) } async function Qxe(t, e) { return await So.proxy(t, e) } var rW = { meta: { key: An.getJSName(), name: An.getName(), type: An.getType() }, api: async t => { t.post("/init", YX), t.post("/home", QX), t.post("/category", ZX), t.post("/detail", eW), t.post("/play", tW), t.post("/search", nW), t.get("/proxy/:what/:ids/:end", Qxe) }, spider: { init: YX, home: QX, homeVod: Yxe, category: ZX, detail: eW, play: tW, search: nW } }; var vS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.mp4us.com", this.apiUrl = "https://m.mp4us.com", this.dyttReconnectTimes = 0 } getName() { return "\u{1F35A}\u2503Mp4\u7535\u5F71\u2503\u{1F35A}" } getAppName() { return "Mp4\u7535\u5F71" } getJSName() { return "mp4movie" } getType() { return 3 } async getFilter() { let e = [], n = await this.getHtml(), r = n('[class="nav navbar-nav"]').find("li").slice(-1)[0], i = n(r).find("a")[0].attribs.href, s = (await this.getHtml(this.siteUrl + i))('[class="sort-box"]').find('[class="sort-list"]').slice(1, -1); for (let a of s) { let o = n(n(a).find("h5")).text().replace("\uFF1A", ""), u = { key: o, name: o, value: [] }; for (let c of n(a).find("a")) u.value.push({ n: n(c).text(), v: c.attribs.data.split("-")[1] }); e.push(u) } return e } async setClasses() { let e = await this.getHtml(), n = e('[class="nav navbar-nav"]').find("li").slice(-1)[0], r = e(n).find("a")[0].attribs.href, l = (await this.getHtml(this.siteUrl + r))('[class="sort-box"]').find('[class="sort-list"]'), s = e(l[0]).find("li"); for (let a of s) { let o = e(e(a).find("a")).text(), u = e(a).find("a")[0].attribs.data.replaceAll("id-", ""); o !== "\u5168\u90E8" && this.classes.push(this.getTypeDic(o, u)) } } async parseVodShortListFromDoc(e) { let n = [], r = e('[class="index_today cclear"]').find("a"); for (let i of r) { let l = new Ne; l.vod_name = i.attribs.title, l.vod_id = i.attribs.href, l.vod_pic = this.detailProxy + ti(l.vod_id), n.push(l) } return n } getSearchHeader() { let e = this.getHeader(); return e.Cookie = "Hm_lvt_d8c8eecfb13fe991855f511a6e30c3d2=1708243467,1708325624,1708326536;Hm_lpvt_d8c8eecfb13fe991855f511a6e30c3d2;1708326536", e } async parseVodDetailFromDoc(e) {
let n = new Be, r = e.html(), i = e('[class="article-header"]'), l = e(i).find("p"), s = ""; for (let f of l) s = s + e(f).text() + `
`; n.type_name = e(e(e(i).find('[class="post-meta"]')).find("span")[0]).text(), n.vod_pic = e(i).find("img")[0].attribs.src, n.vod_name = Te(/名称:(.*?)\n/, s), n.vod_actor = Te(/主演:(.*?)\n/, s), n.vod_director = Te(/导演:(.*?)\n/, s), n.vod_area = Te(/地区:(.*?)\n/, s), n.vod_year = Te(/年份:(.*?)\n/, s), n.vod_remarks = Te(/更新:(.*?)\n/, s); let a = e('[class="article-related info"]').find("p"); n.vod_content = e(a).text(); let o = e('[class="article-related download_url"]'), u = [], c = []; for (let f = 0; f < o.length; f++) { let m = o[f], d = e(e(m).find("h2")).text().replaceAll(n.vod_name, ""); u.push(d.replaceAll("\u4E0B\u8F7D", "\u64AD\u653E")); let y = []; for (let _ of e(o[f]).find("a")) { let S = e(_).text().replaceAll("\u78C1\u529B\u94FE\u4E0B\u8F7D", "").replaceAll(".mp4", ""), w = _.attribs.href; y.push(S + "$" + w) } c.push(y.join("#")) } return n.vod_play_from = u.join("$$$"), n.vod_play_url = c.join("$$$"), n
} async parseVodShortListFromJson(e) { let n = [], r = $e(e.ajaxtxt), i = r(r("ul")).find("li"); for (let l of i) { let s = new Ne; s.vod_pic = r(l).find("img")[0].attribs["data-original"], s.vod_name = Te(/《(.*?)》/, r(l).find("img")[0].attribs.alt), s.vod_id = r(l).find("a")[0].attribs.href, s.vod_remarks = "\u8BC4\u5206:" + r(r(l).find('[class="rate badge"]')).text(), n.push(s) } return n } async parseVodShortListFromDocByCategory(e) { let n = [], r = e(e('[id="list_all"]').find("ul")).find("li"); for (let i of r) { let l = new Ne; l.vod_id = e(i).find("a")[0].attribs.href, l.vod_name = Te(/《(.*?)》/, e(e(e(i).find('[class="text_info"]')).find("a")[0]).text()), l.vod_pic = e(i).find("img")[0].attribs["data-original"], l.vod_remarks = e(e(i).find('[class="update_time"]')).text(), n.push(l) } return n } async setHomeVod() { let e = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setDetail(e) { let n = await this.getHtml(this.siteUrl + e); return this.vodDetail = await this.parseVodDetailFromDoc(n), this.vodDetail } async setCategory(e, n, r, i) { let l = this.siteUrl + `/list/${e}-${n}.html`, s = await this.getHtml(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) } async setSearch(e, n) { let r = this.siteUrl + "/search/", i = { wd: e, p: "1", t: "j/tNgwBS2e8O4x9TuIkYuQ==" }, l = await this.post(r, i, this.getSearchHeader()), s = $e(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) }
}, On = new vS; var _S = class extends Re { constructor() { super() } getName() { return On.getName() } getAppName() { return On.getAppName() } getJSName() { return On.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await On.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await On.initCookie(e.server.config.bilicookie), await On.spiderInit(e), On.cfgObj.code = 0, On.catOpenStatus = !0, On.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await On.setClasses(), this.classes = On.classes } async setFilterObj() { await On.setFilterObj(), this.filterObj = On.filterObj } async setHomeVod() { await On.setHomeVod(), this.homeVodList = On.homeVodList } async setCategory(e, n, r, i) { await On.setCategory(e, n, r, i), this.vodList = On.vodList } async setDetail(e) { await On.setDetail(e), this.vodDetail = On.vodDetail } async setPlay(e, n, r) { await On.setPlay(e, n, r), this.playUrl = On.playUrl, this.result = On.result } async setSearch(e, n, r) { await On.setSearch(e, n, r), this.vodList = On.vodList, this.result = On.result } async setProxy(e, n) { return await On.proxy(e, n) } }, To = new _S; async function iW(t, e) { return await To.init(t, e) } async function lW(t, e) { return await To.home(t, e) } async function Zxe(t, e) { return await To.homeVod(t, e) } async function sW(t, e) { return await To.category(t, e) } async function aW(t, e) { return await To.detail(t, e) } async function oW(t, e) { return await To.play(t, e) } async function uW(t, e) { return await To.search(t, e) } async function eAe(t, e) { return await To.proxy(t, e) } var cW = { meta: { key: On.getJSName(), name: On.getName(), type: On.getType() }, api: async t => { t.post("/init", iW), t.post("/home", lW), t.post("/category", sW), t.post("/detail", aW), t.post("/play", oW), t.post("/search", uW), t.get("/proxy/:what/:ids/:end", eAe) }, spider: { init: iW, home: lW, homeVod: Zxe, category: sW, detail: aW, play: oW, search: uW } }; var ES = class extends Fe { constructor() { super(), this.siteUrl = "https://frodo.douban.com/api/v2", this.apiKey = "0ac44ae016490db2204ce0a042db2916", this.UserAgents = ["api-client/1 com.douban.frodo/7.22.0.beta9(231) Android/23 product/Mate 40 vendor/HUAWEI model/Mate 40 brand/HUAWEI rom/android network/wifi platform/AndroidPad", "api-client/1 com.douban.frodo/7.18.0(230) Android/22 product/MI 9 vendor/Xiaomi model/MI 9 brand/Android rom/miui6 network/wifi platform/mobile nd/1", "api-client/1 com.douban.frodo/7.1.0(205) Android/29 product/perseus vendor/Xiaomi model/Mi MIX 3 rom/miui6 network/wifi platform/mobile nd/1", "api-client/1 com.douban.frodo/7.3.0(207) Android/22 product/MI 9 vendor/Xiaomi model/MI 9 brand/Android rom/miui6 network/wifi platform/mobile nd/1"] } getHeader() { return { Host: "frodo.douban.com", Connection: "Keep-Alive", Referer: "https://servicewechat.com/wx2f9b06c1de1ccfca/84/page-frame.html", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat" } } getSearchHeader() { let e = Math.floor(Math.random() * this.UserAgents.length); return { "User-Agent": this.UserAgents[e] } } getName() { return "\u{1F365}\u2503\u8C46\u74E3\u2503\u{1F365}" } getAppName() { return "\u8C46\u74E3" } getJSName() { return "douban" } getType() { return 3 } async setClasses() { let e = [{ type_name: "\u70ED\u95E8\u7535\u5F71", type_id: "hot_gaia" }, { type_name: "\u70ED\u64AD\u5267\u96C6", type_id: "tv_hot" }, { type_name: "\u70ED\u64AD\u7EFC\u827A", type_id: "show_hot" }, { type_name: "\u7535\u5F71\u7B5B\u9009", type_id: "movie" }, { type_name: "\u7535\u89C6\u7B5B\u9009", type_id: "tv" }, { type_name: "\u7535\u5F71\u699C\u5355", type_id: "rank_list_movie" }, { type_name: "\u7535\u89C6\u5267\u699C\u5355", type_id: "rank_list_tv" }]; for (let n of e) this.classes.push({ type_name: n.type_name, type_id: n.type_id }) } async setFilterObj() { this.filterObj = { hot_gaia: [{ key: "sort", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u5EA6", v: "recommend" }, { n: "\u6700\u65B0", v: "time" }, { n: "\u8BC4\u5206", v: "rank" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "\u5168\u90E8" }, { n: "\u534E\u8BED", v: "\u534E\u8BED" }, { n: "\u6B27\u7F8E", v: "\u6B27\u7F8E" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }] }], tv_hot: [{ key: "type", name: "\u5206\u7C7B", value: [{ n: "\u7EFC\u5408", v: "tv_hot" }, { n: "\u56FD\u4EA7\u5267", v: "tv_domestic" }, { n: "\u6B27\u7F8E\u5267", v: "tv_american" }, { n: "\u65E5\u5267", v: "tv_japanese" }, { n: "\u97E9\u5267", v: "tv_korean" }, { n: "\u52A8\u753B", v: "tv_animation" }] }], show_hot: [{ key: "type", name: "\u5206\u7C7B", value: [{ n: "\u7EFC\u5408", v: "show_hot" }, { n: "\u56FD\u5185", v: "show_domestic" }, { n: "\u56FD\u5916", v: "show_foreign" }] }], movie: [{ key: "\u7C7B\u578B", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8\u7C7B\u578B", v: "" }, { n: "\u559C\u5267", v: "\u559C\u5267" }, { n: "\u7231\u60C5", v: "\u7231\u60C5" }, { n: "\u52A8\u4F5C", v: "\u52A8\u4F5C" }, { n: "\u79D1\u5E7B", v: "\u79D1\u5E7B" }, { n: "\u52A8\u753B", v: "\u52A8\u753B" }, { n: "\u60AC\u7591", v: "\u60AC\u7591" }, { n: "\u72AF\u7F6A", v: "\u72AF\u7F6A" }, { n: "\u60CA\u609A", v: "\u60CA\u609A" }, { n: "\u5192\u9669", v: "\u5192\u9669" }, { n: "\u97F3\u4E50", v: "\u97F3\u4E50" }, { n: "\u5386\u53F2", v: "\u5386\u53F2" }, { n: "\u5947\u5E7B", v: "\u5947\u5E7B" }, { n: "\u6050\u6016", v: "\u6050\u6016" }, { n: "\u6218\u4E89", v: "\u6218\u4E89" }, { n: "\u4F20\u8BB0", v: "\u4F20\u8BB0" }, { n: "\u6B4C\u821E", v: "\u6B4C\u821E" }, { n: "\u6B66\u4FA0", v: "\u6B66\u4FA0" }, { n: "\u60C5\u8272", v: "\u60C5\u8272" }, { n: "\u707E\u96BE", v: "\u707E\u96BE" }, { n: "\u897F\u90E8", v: "\u897F\u90E8" }, { n: "\u7EAA\u5F55\u7247", v: "\u7EAA\u5F55\u7247" }, { n: "\u77ED\u7247", v: "\u77ED\u7247" }] }, { key: "\u5730\u533A", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8\u5730\u533A", v: "" }, { n: "\u534E\u8BED", v: "\u534E\u8BED" }, { n: "\u6B27\u7F8E", v: "\u6B27\u7F8E" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u4E2D\u56FD\u5927\u9646", v: "\u4E2D\u56FD\u5927\u9646" }, { n: "\u7F8E\u56FD", v: "\u7F8E\u56FD" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "\u4E2D\u56FD\u9999\u6E2F" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "\u4E2D\u56FD\u53F0\u6E7E" }, { n: "\u82F1\u56FD", v: "\u82F1\u56FD" }, { n: "\u6CD5\u56FD", v: "\u6CD5\u56FD" }, { n: "\u5FB7\u56FD", v: "\u5FB7\u56FD" }, { n: "\u610F\u5927\u5229", v: "\u610F\u5927\u5229" }, { n: "\u897F\u73ED\u7259", v: "\u897F\u73ED\u7259" }, { n: "\u5370\u5EA6", v: "\u5370\u5EA6" }, { n: "\u6CF0\u56FD", v: "\u6CF0\u56FD" }, { n: "\u4FC4\u7F57\u65AF", v: "\u4FC4\u7F57\u65AF" }, { n: "\u52A0\u62FF\u5927", v: "\u52A0\u62FF\u5927" }, { n: "\u6FB3\u5927\u5229\u4E9A", v: "\u6FB3\u5927\u5229\u4E9A" }, { n: "\u7231\u5C14\u5170", v: "\u7231\u5C14\u5170" }, { n: "\u745E\u5178", v: "\u745E\u5178" }, { n: "\u5DF4\u897F", v: "\u5DF4\u897F" }, { n: "\u4E39\u9EA6", v: "\u4E39\u9EA6" }] }, { key: "sort", name: "\u6392\u5E8F", value: [{ n: "\u8FD1\u671F\u70ED\u5EA6", v: "T" }, { n: "\u9996\u6620\u65F6\u95F4", v: "R" }, { n: "\u9AD8\u5206\u4F18\u5148", v: "S" }] }, { key: "\u5E74\u4EE3", name: "\u5E74\u4EE3", value: [{ n: "\u5168\u90E8\u5E74\u4EE3", v: "" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2010\u5E74\u4EE3", v: "2010\u5E74\u4EE3" }, { n: "2000\u5E74\u4EE3", v: "2000\u5E74\u4EE3" }, { n: "90\u5E74\u4EE3", v: "90\u5E74\u4EE3" }, { n: "80\u5E74\u4EE3", v: "80\u5E74\u4EE3" }, { n: "70\u5E74\u4EE3", v: "70\u5E74\u4EE3" }, { n: "60\u5E74\u4EE3", v: "60\u5E74\u4EE3" }, { n: "\u66F4\u65E9", v: "\u66F4\u65E9" }] }], tv: [{ key: "\u7C7B\u578B", name: "\u7C7B\u578B", value: [{ n: "\u4E0D\u9650", v: "" }, { n: "\u7535\u89C6\u5267", v: "\u7535\u89C6\u5267" }, { n: "\u7EFC\u827A", v: "\u7EFC\u827A" }] }, { key: "\u7535\u89C6\u5267\u5F62\u5F0F", name: "\u7535\u89C6\u5267\u5F62\u5F0F", value: [{ n: "\u4E0D\u9650", v: "" }, { n: "\u559C\u5267", v: "\u559C\u5267" }, { n: "\u7231\u60C5", v: "\u7231\u60C5" }, { n: "\u60AC\u7591", v: "\u60AC\u7591" }, { n: "\u52A8\u753B", v: "\u52A8\u753B" }, { n: "\u6B66\u4FA0", v: "\u6B66\u4FA0" }, { n: "\u53E4\u88C5", v: "\u53E4\u88C5" }, { n: "\u5BB6\u5EAD", v: "\u5BB6\u5EAD" }, { n: "\u72AF\u7F6A", v: "\u72AF\u7F6A" }, { n: "\u79D1\u5E7B", v: "\u79D1\u5E7B" }, { n: "\u6050\u6016", v: "\u6050\u6016" }, { n: "\u5386\u53F2", v: "\u5386\u53F2" }, { n: "\u6218\u4E89", v: "\u6218\u4E89" }, { n: "\u52A8\u4F5C", v: "\u52A8\u4F5C" }, { n: "\u5192\u9669", v: "\u5192\u9669" }, { n: "\u4F20\u8BB0", v: "\u4F20\u8BB0" }, { n: "\u5267\u60C5", v: "\u5267\u60C5" }, { n: "\u5947\u5E7B", v: "\u5947\u5E7B" }, { n: "\u60CA\u609A", v: "\u60CA\u609A" }, { n: "\u707E\u96BE", v: "\u707E\u96BE" }, { n: "\u6B4C\u821E", v: "\u6B4C\u821E" }, { n: "\u97F3\u4E50", v: "\u97F3\u4E50" }] }, { key: "\u7EFC\u827A\u5F62\u5F0F", name: "\u7EFC\u827A\u5F62\u5F0F", value: [{ n: "\u4E0D\u9650", v: "" }, { n: "\u771F\u4EBA\u79C0", v: "\u771F\u4EBA\u79C0" }, { n: "\u8131\u53E3\u79C0", v: "\u8131\u53E3\u79C0" }, { n: "\u97F3\u4E50", v: "\u97F3\u4E50" }, { n: "\u6B4C\u821E", v: "\u6B4C\u821E" }] }, { key: "\u5730\u533A", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8\u5730\u533A", v: "" }, { n: "\u534E\u8BED", v: "\u534E\u8BED" }, { n: "\u6B27\u7F8E", v: "\u6B27\u7F8E" }, { n: "\u56FD\u5916", v: "\u56FD\u5916" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u4E2D\u56FD\u5927\u9646", v: "\u4E2D\u56FD\u5927\u9646" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "\u4E2D\u56FD\u9999\u6E2F" }, { n: "\u7F8E\u56FD", v: "\u7F8E\u56FD" }, { n: "\u82F1\u56FD", v: "\u82F1\u56FD" }, { n: "\u6CF0\u56FD", v: "\u6CF0\u56FD" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "\u4E2D\u56FD\u53F0\u6E7E" }, { n: "\u610F\u5927\u5229", v: "\u610F\u5927\u5229" }, { n: "\u6CD5\u56FD", v: "\u6CD5\u56FD" }, { n: "\u5FB7\u56FD", v: "\u5FB7\u56FD" }, { n: "\u897F\u73ED\u7259", v: "\u897F\u73ED\u7259" }, { n: "\u4FC4\u7F57\u65AF", v: "\u4FC4\u7F57\u65AF" }, { n: "\u745E\u5178", v: "\u745E\u5178" }, { n: "\u5DF4\u897F", v: "\u5DF4\u897F" }, { n: "\u4E39\u9EA6", v: "\u4E39\u9EA6" }, { n: "\u5370\u5EA6", v: "\u5370\u5EA6" }, { n: "\u52A0\u62FF\u5927", v: "\u52A0\u62FF\u5927" }, { n: "\u7231\u5C14\u5170", v: "\u7231\u5C14\u5170" }, { n: "\u6FB3\u5927\u5229\u4E9A", v: "\u6FB3\u5927\u5229\u4E9A" }] }, { key: "sort", name: "\u6392\u5E8F", value: [{ n: "\u8FD1\u671F\u70ED\u5EA6", v: "T" }, { n: "\u9996\u64AD\u65F6\u95F4", v: "R" }, { n: "\u9AD8\u5206\u4F18\u5148", v: "S" }] }, { key: "\u5E74\u4EE3", name: "\u5E74\u4EE3", value: [{ n: "\u5168\u90E8", v: "" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2010\u5E74\u4EE3", v: "2010\u5E74\u4EE3" }, { n: "2000\u5E74\u4EE3", v: "2000\u5E74\u4EE3" }, { n: "90\u5E74\u4EE3", v: "90\u5E74\u4EE3" }, { n: "80\u5E74\u4EE3", v: "80\u5E74\u4EE3" }, { n: "70\u5E74\u4EE3", v: "70\u5E74\u4EE3" }, { n: "60\u5E74\u4EE3", v: "60\u5E74\u4EE3" }, { n: "\u66F4\u65E9", v: "\u66F4\u65E9" }] }, { key: "\u5E73\u53F0", name: "\u5E73\u53F0", value: [{ n: "\u5168\u90E8", v: "" }, { n: "\u817E\u8BAF\u89C6\u9891", v: "\u817E\u8BAF\u89C6\u9891" }, { n: "\u7231\u5947\u827A", v: "\u7231\u5947\u827A" }, { n: "\u4F18\u9177", v: "\u4F18\u9177" }, { n: "\u6E56\u5357\u536B\u89C6", v: "\u6E56\u5357\u536B\u89C6" }, { n: "Netflix", v: "Netflix" }, { n: "HBO", v: "HBO" }, { n: "BBC", v: "BBC" }, { n: "NHK", v: "NHK" }, { n: "CBS", v: "CBS" }, { n: "NBC", v: "NBC" }, { n: "tvN", v: "tvN" }] }], rank_list_movie: [{ key: "\u699C\u5355", name: "\u699C\u5355", value: [{ n: "\u5B9E\u65F6\u70ED\u95E8\u7535\u5F71", v: "movie_real_time_hotest" }, { n: "\u4E00\u5468\u53E3\u7891\u7535\u5F71\u699C", v: "movie_weekly_best" }, { n: "\u8C46\u74E3\u7535\u5F71Top250", v: "movie_top250" }] }], rank_list_tv: [{ key: "\u699C\u5355", name: "\u699C\u5355", value: [{ n: "\u5B9E\u65F6\u70ED\u95E8\u7535\u89C6", v: "tv_real_time_hotest" }, { n: "\u534E\u8BED\u53E3\u7891\u5267\u96C6\u699C", v: "tv_chinese_best_weekly" }, { n: "\u5168\u7403\u53E3\u7891\u5267\u96C6\u699C", v: "tv_global_best_weekly" }, { n: "\u56FD\u5185\u53E3\u7891\u7EFC\u827A\u699C", v: "show_chinese_best_weekly" }, { n: "\u56FD\u5916\u53E3\u7891\u7EFC\u827A\u699C", v: "show_global_best_weekly" }] }] } } async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = "msearch:" + r.id, r.title === void 0 ? i.vod_name = r.target.title : i.vod_name = r.title, r.pic === void 0 ? i.vod_pic = r.target.cover_url : i.vod_pic = r.pic.normal, r.rating === void 0 ? i.vod_remarks = "\u8BC4\u5206:" + r.target.rating.value.toString() : i.vod_remarks = "\u8BC4\u5206:" + r.rating.value.toString(), n.push(i) } return n } get_tags(e) { let n = []; for (let r of Object.keys(e)) r !== "sort" && n.push(e[r]); return n.join(",") } sign(e, n, r = "GET") { let i = "bf7dddc7c9cfe6f7", l = "%2F" + e.split("/").slice(3).join("%2F"), s = [r.toLocaleUpperCase(), l, n.toString()].join("&"); return Ve.HmacSHA1(s, i).toString(Ve.enc.Base64) } async setHomeVod() { let e = this.siteUrl + "/subject_collection/subject_real_time_hotest/items", n = await this.fetch(e, { apikey: this.apiKey }, this.getHeader()); if (!B.isEmpty(n)) { let i = JSON.parse(n).subject_collection_items; this.homeVodList = await this.parseVodShortListFromJson(i) } } async setCategory(e, n, r, i) { let l = i.sort ?? "show_hot", s = this.get_tags(i); this.count = 0, this.limit = 20, this.total = 0; let a = 0; parseInt(n) > 1 && (a = (parseInt(n) - 1) * this.limit); let o = "", u = { start: a.toString(), count: this.limit.toString() }, c = "items"; switch (e) { case "hot_gaia": l = i.sort ?? "recommend"; let m = i.area ?? "\u5168\u90E8"; u.sort = l, u.area = m, o = "/movie/hot_gaia"; break; case "tv_hot": o = "/subject_collection/" + (i.type ?? "tv_hot") + "/items", c = "subject_collection_items"; break; case "show_hot": o = "/subject_collection/" + (i.type ?? "show_hot") + "/items", c = "subject_collection_items"; break; case "movie": u.sort = l, u.tags = s, o = "/movie/recommend"; break; case "tv": u.sort = l, u.tags = s, o = "/tv/recommend"; break; case "rank_list_movie": o = "/subject_collection/" + (i.\u699C\u5355 ?? "movie_real_time_hotest") + "/items", c = "subject_collection_items"; break; case "rank_list_tv": o = "/subject_collection/" + (i.\u699C\u5355 ?? "tv_real_time_hotest") + "/items", c = "subject_collection_items"; break; default: break }u.apikey = this.apiKey; let f = await this.fetch(this.siteUrl + o, u, this.getHeader()); if (!B.isEmpty(f)) { let d = JSON.parse(f)[c]; this.vodList = await this.parseVodShortListFromJson(d) } } async setSearch(e, n, r) { let i = "https://frodo.douban.com/api/v2", l = "0dad551ec0f84ed02907ff5c42e8ec70", s = i + "/search/movie", a = new Date, o = a.getFullYear().toString() + ("0" + (a.getMonth() + 1)).slice(-2).toString() + a.getDate().toString(), u = 20, c = { _sig: this.sign(s, o), _ts: o, apiKey: l, count: u, os_rom: "android", q: encodeURIComponent(e), start: parseInt(r) }, f = await this.fetch(s, c, this.getSearchHeader()); if (!B.isEmpty(f)) { let m = JSON.parse(f); this.vodList = await this.parseVodShortListFromJson(m.items); let d = parseInt(r), y = d; this.vodList.length === u && (y = d + 1), this.result.setPage(d, y, u, y) } } }, Nn = new ES; var bS = class extends Re { constructor() { super() } getName() { return Nn.getName() } getAppName() { return Nn.getAppName() } getJSName() { return Nn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Nn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Nn.initCookie(e.server.config.bilicookie), await Nn.spiderInit(e), Nn.cfgObj.code = 0, Nn.catOpenStatus = !0, Nn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Nn.setClasses(), this.classes = Nn.classes } async setFilterObj() { await Nn.setFilterObj(), this.filterObj = Nn.filterObj } async setHomeVod() { await Nn.setHomeVod(), this.homeVodList = Nn.homeVodList } async setCategory(e, n, r, i) { await Nn.setCategory(e, n, r, i), this.vodList = Nn.vodList } async setDetail(e) { await Nn.setDetail(e), this.vodDetail = Nn.vodDetail } async setPlay(e, n, r) { await Nn.setPlay(e, n, r), this.playUrl = Nn.playUrl, this.result = Nn.result } async setSearch(e, n, r) { await Nn.setSearch(e, n, r), this.vodList = Nn.vodList, this.result = Nn.result } async setProxy(e, n) { return await Nn.proxy(e, n) } }, xo = new bS; async function pW(t, e) { return await xo.init(t, e) } async function fW(t, e) { return await xo.home(t, e) } async function tAe(t, e) { return await xo.homeVod(t, e) } async function dW(t, e) { return await xo.category(t, e) } async function hW(t, e) { return await xo.detail(t, e) } async function mW(t, e) { return await xo.play(t, e) } async function yW(t, e) { return await xo.search(t, e) } async function nAe(t, e) { return await xo.proxy(t, e) } var gW = { meta: { key: Nn.getJSName(), name: Nn.getName(), type: Nn.getType() }, api: async t => { t.post("/init", pW), t.post("/home", fW), t.post("/category", dW), t.post("/detail", hW), t.post("/play", mW), t.post("/search", yW), t.get("/proxy/:what/:ids/:end", nAe) }, spider: { init: pW, home: fW, homeVod: tAe, category: dW, detail: hW, play: mW, search: yW } }; var wS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.6080yy3.com" } getAppName() { return "\u65B0\u89C6\u89C9\u5F71\u9662" } getName() { return "\u{1F43C}\u2503\u65B0\u89C6\u89C9\u5F71\u9662\u2503\u{1F43C}" } getJSName() { return "newvision" } getType() { return 3 } async setClasses() { let e = await this.getHtml(), n = e(e('[class="nav-menu-items"]')[0]).find("a"); for (let r of n) { let i = Te(/\/vodtype\/(.*?).html/, r.attribs.href), l = r.attribs.title; vp(i) && this.classes.push(this.getTypeDic(l, i)) } } async getFilter(e) { let n = e("[class='scroll-content']").slice(1), r = [], i = [3, 1, 11, 2]; for (let l = 0; l < n.length; l++) { let s = e(e(n[l]).find("a")[0]).text(), a = { key: s, name: s, value: [] }; a.name = s, a.value.push({ n: "\u5168\u90E8", v: "0" }); for (let o of e(n[l]).find("a").slice(1)) { let u = Te(/\/vodshow\/(.*?).html/, o.attribs.href).split("-"); a.value.push({ n: e(o).text(), v: decodeURIComponent(u[i[l]]) }) } r.push(a) } return r } async setFilterObj() { for (let e of this.classes) { let n = e.type_id; if (n !== "\u6700\u8FD1\u66F4\u65B0") { let r = this.siteUrl + `/vodshow/${n}-----------.html`, i = await this.getHtml(r); this.filterObj[n] = await this.getFilter(i) } } } async parseVodShortListFromDoc(e) { let n = e(".module-item"), r = []; for (let i of n) { let l = new Ne, s = e(i).find(".module-item-cover .module-item-pic a").first(); l.vod_id = s.attr("href"), l.vod_name = s.attr("title"), l.vod_pic = e(i).find(".module-item-cover .module-item-pic img").first().attr("data-src"), l.vod_pic.indexOf("img.php?url=") > 0 && (l.vod_pic = l.vod_pic.split("img.php?url=")[1]), l.vod_remarks = e(i).find(".module-item-text").first().text(), r.push(l) } return r } async parseVodShortListFromJson(e) { let n = []; for (let r of e.Data.result) { let i = new Ne; i.vod_id = r.vod_url.replaceAll(this.siteUrl, ""), i.vod_pic = r.vod_pic, i.vod_name = r.vod_name, n.push(i) } return n } async parseVodDetailFromDoc(e) {
let n = e.html(), r = new Be, i = e('[class="box view-heading"]'); r.vod_name = e(e(i).find('[class="page-title"]')).text(); let l = e(e(i).find('[class="tag-link"]').find("a")); r.vod_area = e(e(i).find('[class="tag-link"]').slice(-1)[0]).text(); let s = []; for (let d of l) s.push(e(d).text()); r.type_name = s.join("/"); let a = e(i).find('[class="video-info-items"]'); r.vod_director = e(e(a[0]).find("a")).text(); let o = []; for (let d of e(a[1]).find("a")) o.push(e(d).text()); r.vod_pic = e(e(i).find('[class="module-item-pic"]')).find("img")[0].attribs["data-src"], r.vod_actor = o.join("/"), r.vod_year = e(e(a[2]).find('[class="video-info-item"]')).text(), r.vod_remarks = e(e(a[3]).find('[class="video-info-item"]')).text(), r.vod_content = e(e(a[5]).find('[class="video-info-item video-info-content vod_content"]')).text().replaceAll(`
`, " ").replaceAll(" \u6536\u8D77", ""); let u = e('[class="module-tab-item tab-item"]'), c = e('[class="scroll-content"]'), f = [], m = []; for (let d = 0; d < u.length; d++) { let _ = u[d].attribs["data-dropdown-value"]; if (_.indexOf("\u5938\u514B") === -1) { f.push(_); let S = []; for (let w of e(c[d]).find("a")) { let E = e(w).text(), g = w.attribs.href; S.push(E + "$" + g) } m.push(S.join("#")) } } return r.vod_play_from = f.join("$$$"), r.vod_play_url = m.join("$$$"), r
} async setHomeVod() { let e = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setCategory(e, n, r, i) { let l = [e.toString(), "", "", "", "", "", "", "", n.toString(), "", "", ""], s = [3, 11, 1, 2]; i.\u5168\u90E8\u5267\u60C5 !== void 0 && i.\u5168\u90E8\u5267\u60C5 !== "0" && (l[s[0]] = i.\u5168\u90E8\u5267\u60C5), i.\u5168\u90E8\u65F6\u95F4 !== void 0 && i.\u5168\u90E8\u65F6\u95F4 !== "0" && (l[s[1]] = i.\u5168\u90E8\u65F6\u95F4), i.\u5168\u90E8\u5730\u533A !== void 0 && i.\u5168\u90E8\u5730\u533A !== "0" && (l[s[2]] = i.\u5168\u90E8\u5730\u533A), i.\u65F6\u95F4\u6392\u5E8F !== void 0 && i.\u65F6\u95F4\u6392\u5E8F !== "0" && (l[s[3]] = i.\u65F6\u95F4\u6392\u5E8F); let a = this.siteUrl + "/index.php/vodshow/" + l.join("-") + ".html", o = await this.getHtml(a); this.vodList = await this.parseVodShortListFromDoc(o) } async setDetail(e) { let n = await this.getHtml(this.siteUrl + e); this.vodDetail = await this.parseVodDetailFromDoc(n) } uic(e, n) { let r = Ve.enc.Utf8.parse("2890" + n + "tB959C"), i = Ve.enc.Utf8.parse("2F131BE91247866E"), l = Ve.AES.decrypt(e, r, { iv: i, mode: Ve.mode.CBC, padding: Ve.pad.Pkcs7 }); return Ve.enc.Utf8.stringify(l) } async setPlay(e, n, r) { let l = (await this.getHtml(this.siteUrl + n))('[id="bfurl"]')[0].attribs.href; if (l.indexOf("http") > -1) this.playUrl = l; else { let s = "https://jiexi.xn--1lq90i13mxk5bolhm8k.xn--fiqs8s/player/ec.php?code=ak&if=1&url=" + l, o = (await this.getHtml(s)).html(), u = JSON.parse(Te(/let ConFig = (.*?),box = /, o)); this.playUrl = this.uic(u.url, u.config.uid) } } async setSearch(e, n) { let r = `http://123.207.150.253/zxapi/public/?service=App.F.Fetch&req_p=${e}&type=6080`, i = await this.fetch(r, null, this.getHeader()); this.vodList = await this.parseVodShortListFromJson(JSON.parse(i)) }
}, Cn = new wS; var SS = class extends Re { constructor() { super() } getName() { return Cn.getName() } getAppName() { return Cn.getAppName() } getJSName() { return Cn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Cn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Cn.initCookie(e.server.config.bilicookie), await Cn.spiderInit(e), Cn.cfgObj.code = 0, Cn.catOpenStatus = !0, Cn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Cn.setClasses(), this.classes = Cn.classes } async setFilterObj() { await Cn.setFilterObj(), this.filterObj = Cn.filterObj } async setHomeVod() { await Cn.setHomeVod(), this.homeVodList = Cn.homeVodList } async setCategory(e, n, r, i) { await Cn.setCategory(e, n, r, i), this.vodList = Cn.vodList } async setDetail(e) { await Cn.setDetail(e), this.vodDetail = Cn.vodDetail } async setPlay(e, n, r) { await Cn.setPlay(e, n, r), this.playUrl = Cn.playUrl, this.result = Cn.result } async setSearch(e, n, r) { await Cn.setSearch(e, n, r), this.vodList = Cn.vodList, this.result = Cn.result } async setProxy(e, n) { return await Cn.proxy(e, n) } }, Ao = new SS; async function vW(t, e) { return await Ao.init(t, e) } async function _W(t, e) { return await Ao.home(t, e) } async function rAe(t, e) { return await Ao.homeVod(t, e) } async function EW(t, e) { return await Ao.category(t, e) } async function bW(t, e) { return await Ao.detail(t, e) } async function wW(t, e) { return await Ao.play(t, e) } async function SW(t, e) { return await Ao.search(t, e) } async function iAe(t, e) { return await Ao.proxy(t, e) } var TW = { meta: { key: Cn.getJSName(), name: Cn.getName(), type: Cn.getType() }, api: async t => { t.post("/init", vW), t.post("/home", _W), t.post("/category", EW), t.post("/detail", bW), t.post("/play", wW), t.post("/search", SW), t.get("/proxy/:what/:ids/:end", iAe) }, spider: { init: vW, home: _W, homeVod: rAe, category: EW, detail: bW, play: wW, search: SW } }; function lAe(t) { return t.replace(/<\/?[^>]+(>|$)/g, "").replace(/&.{1,5};/g, "").replace(/\s{2,}/g, " ") } function sAe(t, e) { return e.trim().replaceAll(t, "").replace(/<|>|《|》/g, "").replace(/\$|#/g, " ").trim() } var TS = class extends Fe { constructor() { super(), this.siteUrl = "http://ys.changmengyun.com" } getName() { return "\u{1F383}\u2503\u5357\u74DC\u5F71\u89C6\u2503\u{1F383}" } getAppName() { return "\u5357\u74DC\u5F71\u89C6" } getJSName() { return "nangua" } getType() { return 3 } async init(e) { await super.init(e), this.danmuStaus = !0 } getHeader() { let e = new Date().getTime().toString(); return { version_name: "1.0.6", version_code: "6", package_name: "com.app.nanguatv", sign: Ve.MD5("c431ea542cee9679#uBFszdEM0oL0JRn@" + e).toString().toLowerCase(), imei: "c431ea542cee9679", timeMillis: e, "User-Agent": "okhttp/4.6.0" } } async setClasses() { let e = JSON.parse(await this.fetch(this.siteUrl + "/api.php/provide/home_nav", null, this.getHeader())); for (let n in e) e[n].name !== "\u7CBE\u9009" && this.classes.push({ type_id: e[n].id, type_name: e[n].name }) } async setFilterObj() { this.filterObj = { 2: [{ key: "class", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "\u7C7B\u578B" }, { n: "\u56FD\u4EA7\u5267", v: "\u56FD\u4EA7\u5267" }, { n: "\u6E2F\u53F0\u5267", v: "\u6E2F\u53F0\u5267" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "\u5730\u533A" }, { n: "\u5185\u5730", v: "\u5185\u5730" }, { n: "\u9999\u6E2F\u5730\u533A", v: "\u9999\u6E2F\u5730\u533A" }, { n: "\u53F0\u6E7E\u5730\u533A", v: "\u53F0\u6E7E\u5730\u533A" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "\u5E74\u4EFD" }, { n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "10\u5E74\u4EE3", v: "10\u5E74\u4EE3" }, { n: "00\u5E74\u4EE3", v: "00\u5E74\u4EE3" }, { n: "90\u5E74\u4EE3", v: "90\u5E74\u4EE3" }, { n: "80\u5E74\u4EE3", v: "80\u5E74\u4EE3" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u64AD\u699C", v: "\u70ED\u64AD\u699C" }, { n: "\u597D\u8BC4\u699C", v: "\u597D\u8BC4\u699C" }, { n: "\u65B0\u4E0A\u7EBF", v: "\u65B0\u4E0A\u7EBF" }] }], 1: [{ key: "class", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "\u7C7B\u578B" }, { n: "\u52A8\u4F5C\u7247", v: "\u52A8\u4F5C\u7247" }, { n: "\u559C\u5267\u7247", v: "\u559C\u5267\u7247" }, { n: "\u7231\u60C5\u7247", v: "\u7231\u60C5\u7247" }, { n: "\u79D1\u5E7B\u7247", v: "\u79D1\u5E7B\u7247" }, { n: "\u6050\u6016\u7247", v: "\u6050\u6016\u7247" }, { n: "\u5267\u60C5\u7247", v: "\u5267\u60C5\u7247" }, { n: "\u6218\u4E89\u7247", v: "\u6218\u4E89\u7247" }, { n: "\u60CA\u609A\u7247", v: "\u60CA\u609A\u7247" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "\u5730\u533A" }, { n: "\u534E\u8BED", v: "\u534E\u8BED" }, { n: "\u9999\u6E2F\u5730\u533A", v: "\u9999\u6E2F\u5730\u533A" }, { n: "\u7F8E\u56FD", v: "\u7F8E\u56FD" }, { n: "\u6B27\u6D32", v: "\u6B27\u6D32" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u53F0\u6E7E\u5730\u533A", v: "\u53F0\u6E7E\u5730\u533A" }, { n: "\u6CF0\u56FD", v: "\u6CF0\u56FD" }, { n: "\u53F0\u6E7E\u5730\u533A", v: "\u53F0\u6E7E\u5730\u533A" }, { n: "\u5370\u5EA6", v: "\u5370\u5EA6" }, { n: "\u5176\u5B83", v: "\u5176\u5B83" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "\u5E74\u4EFD" }, { n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "10\u5E74\u4EE3", v: "10\u5E74\u4EE3" }, { n: "00\u5E74\u4EE3", v: "00\u5E74\u4EE3" }, { n: "90\u5E74\u4EE3", v: "90\u5E74\u4EE3" }, { n: "80\u5E74\u4EE3", v: "80\u5E74\u4EE3" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u64AD\u699C", v: "\u70ED\u64AD\u699C" }, { n: "\u597D\u8BC4\u699C", v: "\u597D\u8BC4\u699C" }, { n: "\u65B0\u4E0A\u7EBF", v: "\u65B0\u4E0A\u7EBF" }] }], 4: [{ key: "class", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "\u7C7B\u578B" }, { n: "\u56FD\u4EA7\u6F2B", v: "\u56FD\u4EA7\u6F2B" }, { n: "\u6B27\u7F8E\u6F2B", v: "\u6B27\u7F8E\u6F2B" }, { n: "\u65E5\u97E9\u6F2B", v: "\u65E5\u97E9\u6F2B" }, { n: "\u6E2F\u53F0\u6F2B", v: "\u6E2F\u53F0\u6F2B" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "\u5730\u533A" }, { n: "\u4E2D\u56FD\u5927\u9646", v: "\u4E2D\u56FD\u5927\u9646" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u6B27\u7F8E", v: "\u6B27\u7F8E" }, { n: "\u5176\u5B83", v: "\u5176\u5B83" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "\u5E74\u4EFD" }, { n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "10\u5E74\u4EE3", v: "10\u5E74\u4EE3" }, { n: "00\u5E74\u4EE3", v: "00\u5E74\u4EE3" }, { n: "90\u5E74\u4EE3", v: "90\u5E74\u4EE3" }, { n: "80\u5E74\u4EE3", v: "80\u5E74\u4EE3" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u64AD\u699C", v: "\u70ED\u64AD\u699C" }, { n: "\u65B0\u4E0A\u7EBF", v: "\u65B0\u4E0A\u7EBF" }] }, { key: "total", name: "\u72B6\u6001", value: [{ n: "\u5168\u90E8", v: "\u72B6\u6001" }, { n: "\u8FDE\u8F7D", v: "\u8FDE\u8F7D" }, { n: "\u5B8C\u7ED3", v: "\u5B8C\u7ED3" }] }], 3: [{ key: "class", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "\u7C7B\u578B" }, { n: "\u5927\u9646", v: "\u5927\u9646" }, { n: "\u6E2F\u53F0", v: "\u6E2F\u53F0" }, { n: "\u65E5\u97E9", v: "\u65E5\u97E9" }, { n: "\u6B27\u7F8E", v: "\u6B27\u7F8E" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "\u5730\u533A" }, { n: "\u5185\u5730", v: "\u5185\u5730" }, { n: "\u6E2F\u53F0", v: "\u6E2F\u53F0" }, { n: "\u65E5\u97E9", v: "\u65E5\u97E9" }, { n: "\u6B27\u7F8E", v: "\u6B27\u7F8E" }, { n: "\u5176\u5B83", v: "\u5176\u5B83" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "\u5E74\u4EFD" }, { n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "10\u5E74\u4EE3", v: "10\u5E74\u4EE3" }, { n: "00\u5E74\u4EE3", v: "00\u5E74\u4EE3" }, { n: "90\u5E74\u4EE3", v: "90\u5E74\u4EE3" }, { n: "80\u5E74\u4EE3", v: "80\u5E74\u4EE3" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u64AD\u699C", v: "\u70ED\u64AD\u699C" }, { n: "\u65B0\u4E0A\u7EBF", v: "\u65B0\u4E0A\u7EBF" }] }], 46: [{ key: "class", name: "\u7C7B\u578B", value: [{ n: "\u5168\u90E8", v: "\u7C7B\u578B" }, { n: "\u65E5\u97E9\u5267", v: "\u65E5\u97E9\u5267" }, { n: "\u6B27\u7F8E\u5267", v: "\u6B27\u7F8E\u5267" }, { n: "\u6D77\u5916\u5267", v: "\u6D77\u5916\u5267" }] }, { key: "area", name: "\u5730\u533A", value: [{ n: "\u5168\u90E8", v: "\u5730\u533A" }, { n: "\u97E9\u56FD", v: "\u97E9\u56FD" }, { n: "\u7F8E\u5267", v: "\u7F8E\u5267" }, { n: "\u65E5\u672C", v: "\u65E5\u672C" }, { n: "\u6CF0\u56FD", v: "\u6CF0\u56FD" }, { n: "\u82F1\u56FD", v: "\u82F1\u56FD" }, { n: "\u65B0\u52A0\u5761", v: "\u65B0\u52A0\u5761" }, { n: "\u5176\u4ED6", v: "\u5176\u4ED6" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "\u5E74\u4EFD" }, { n: "2024", v: "2024" }, { n: "2023", v: "2023" }, { n: "2022", v: "2022" }, { n: "2021", v: "2021" }, { n: "2020", v: "2020" }, { n: "2019", v: "2019" }, { n: "2018", v: "2018" }, { n: "2017", v: "2017" }, { n: "2016", v: "2016" }, { n: "2015", v: "2015" }, { n: "10\u5E74\u4EE3", v: "10\u5E74\u4EE3" }, { n: "00\u5E74\u4EE3", v: "00\u5E74\u4EE3" }, { n: "90\u5E74\u4EE3", v: "90\u5E74\u4EE3" }, { n: "80\u5E74\u4EE3", v: "80\u5E74\u4EE3" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u64AD\u699C", v: "\u70ED\u64AD\u699C" }, { n: "\u597D\u8BC4\u699C", v: "\u597D\u8BC4\u699C" }, { n: "\u65B0\u4E0A\u7EBF", v: "\u65B0\u4E0A\u7EBF" }] }] } } async parseVodShortListFromJSONByHome(e) { let n = []; for (let r of e.video) { let i = await this.parseVodShortListFromJson(r.data); n.push(...i) } return n } async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = r.id, i.vod_name = r.name, i.vod_pic = r.img, i.vod_remarks = r.remarks, B.isEmpty(i.vod_remarks) && (i.vod_remarks = r.msg), n.push(i) } return n } async parseVodShortListFromJsonBySearch(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = r.id, i.vod_name = r.video_name, i.vod_remarks = r.qingxidu, i.vod_pic = JV(r.img), n.push(i) } return n } async parseVodDetailfromJson(e) { let n = new Be; n.vod_id = e.id, n.vod_name = e.name, n.vod_pic = e.img, n.type_name = e.type, n.vod_year = e.year, n.vod_content = lAe(e.info), n.vod_remarks = "\u66F4\u65B0\u81F3: " + e.msg + " / \u8BC4\u5206: " + e.score; let r = e.player_info, i = {}; r.forEach(function (a) { a.video_info.forEach(function (u) { let c = a.show, f = sAe(n.vod_name, u.name); f.length === 0 && (f = u.name.trim()), i.hasOwnProperty(c) || (i[c] = []), i[c].push(f + "$" + u.url) }) }), n.vod_play_from = B.keys(i).join("$$$"); let l = B.values(i), s = []; return l.forEach(function (a) { s.push(a.join("#")) }), n.vod_play_url = s.join("$$$"), n } async setHomeVod() { let e = JSON.parse(await this.fetch(this.siteUrl + "/api.php/provide/home_data?app=ylys&devices=android&imei=c431ea542cee9679&deviceModel=Subsystem%20for%20Android(TM)&deviceVersion=33&appVersionName=1.0.9&deviceScreen=427*250&appVersionCode=9&deviceBrand=Windows", null, this.getHeader())); this.homeVodList = await this.parseVodShortListFromJSONByHome(e) } async setCategory(e, n, r, i) { (n <= 0 || typeof n > "u") && (n = 1); let l = this.siteUrl + "/api.php/provide/vod_list?app=ylys&id=" + e + "&page=" + n + "&imei=c431ea542cee9679&"; l += iu("area={{ext.area}}&year={{ext.year}}&type={{ext.class}}&total={{ext.total}}&order={{ext.by}}", { ext: i }); let s = JSON.parse(await this.fetch(l, null, this.getHeader())).list; this.vodList = await this.parseVodShortListFromJson(s); let a = JSON.parse(await this.fetch(this.siteUrl + "/api.php/provide/vod_list?app=ylys&id=" + e + "&page=" + (parseInt(n) + 1) + "&imei=c431ea542cee9679&", null, this.getHeader())).msg; this.count = a === "ok" ? parseInt(n) + 1 : parseInt(n), this.limit = 20, this.total = this.limit * this.count } async setDetail(e) { let n = JSON.parse(await this.fetch(this.siteUrl + "/api.php/provide/vod_detail?app=ylys&imei=c431ea542cee9679&id=" + e, null, this.getHeader())).data; this.vodDetail = await this.parseVodDetailfromJson(n) } async setSearch(e, n, r) { let i = parseInt(r), l = 20, s = JSON.parse(await this.fetch(this.siteUrl + "/api.php/provide/search_result_more?app=ylys&video_name=" + e + `&pageSize=${l}&tid=0&imei=c431ea542cee9679&page=${r}`, null, this.getHeader())).data; this.vodList = await this.parseVodShortListFromJsonBySearch(s); let a = i; this.vodList.length === l && (a = i + 1), this.result.setPage(i, a, l, a) } async setPlay(e, n, r) { try { if (n.indexOf("m3u8") !== -1) this.playUrl = n.split("url=")[1]; else if (n.indexOf(",") !== -1) { let i = n.split(",")[1], l = JSON.parse(await this.fetch(i, null, this.getHeader())); this.playUrl = l.data.url } else { let i = JSON.parse(await this.fetch(n, null, this.getHeader())); this.playUrl = i.data.url } } catch { await this.jadeLog.error("\u64AD\u653E\u5931\u8D25") } } }, Rn = new TS; var xS = class extends Re { constructor() { super() } getName() { return Rn.getName() } getAppName() { return Rn.getAppName() } getJSName() { return Rn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Rn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Rn.initCookie(e.server.config.bilicookie), await Rn.spiderInit(e), Rn.cfgObj.code = 0, Rn.catOpenStatus = !0, Rn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Rn.setClasses(), this.classes = Rn.classes } async setFilterObj() { await Rn.setFilterObj(), this.filterObj = Rn.filterObj } async setHomeVod() { await Rn.setHomeVod(), this.homeVodList = Rn.homeVodList } async setCategory(e, n, r, i) { await Rn.setCategory(e, n, r, i), this.vodList = Rn.vodList } async setDetail(e) { await Rn.setDetail(e), this.vodDetail = Rn.vodDetail } async setPlay(e, n, r) { await Rn.setPlay(e, n, r), this.playUrl = Rn.playUrl, this.result = Rn.result } async setSearch(e, n, r) { await Rn.setSearch(e, n, r), this.vodList = Rn.vodList, this.result = Rn.result } async setProxy(e, n) { return await Rn.proxy(e, n) } }, Oo = new xS; async function xW(t, e) { return await Oo.init(t, e) } async function AW(t, e) { return await Oo.home(t, e) } async function aAe(t, e) { return await Oo.homeVod(t, e) } async function OW(t, e) { return await Oo.category(t, e) } async function NW(t, e) { return await Oo.detail(t, e) } async function CW(t, e) { return await Oo.play(t, e) } async function RW(t, e) { return await Oo.search(t, e) } async function oAe(t, e) { return await Oo.proxy(t, e) } var IW = { meta: { key: Rn.getJSName(), name: Rn.getName(), type: Rn.getType() }, api: async t => { t.post("/init", xW), t.post("/home", AW), t.post("/category", OW), t.post("/detail", NW), t.post("/play", CW), t.post("/search", RW), t.get("/proxy/:what/:ids/:end", oAe) }, spider: { init: xW, home: AW, homeVod: aAe, category: OW, detail: NW, play: CW, search: RW } }; var AS = class extends uo { constructor() { super(), this.siteUrl = "http://cj.ffzyapi.com", this.remove18 = !0, this.type_id_18 = 34 } getAppName() { return "\u975E\u51E1\u8D44\u6E90" } getName() { return "\u{1F957}\u2503\u975E\u51E1\u8D44\u6E90\u2503\u{1F957}" } getJSName() { return "feifan" } getType() { return 3 } async spiderInit(e) { await super.spiderInit(e) } async init(e) { await super.init(e), await this.spiderInit(null) } }, In = new AS; var OS = class extends Re { constructor() { super() } getName() { return In.getName() } getAppName() { return In.getAppName() } getJSName() { return In.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await In.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await In.initCookie(e.server.config.bilicookie), await In.spiderInit(e), In.cfgObj.code = 0, In.catOpenStatus = !0, In.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await In.setClasses(), this.classes = In.classes } async setFilterObj() { await In.setFilterObj(), this.filterObj = In.filterObj } async setHomeVod() { await In.setHomeVod(), this.homeVodList = In.homeVodList } async setCategory(e, n, r, i) { await In.setCategory(e, n, r, i), this.vodList = In.vodList } async setDetail(e) { await In.setDetail(e), this.vodDetail = In.vodDetail } async setPlay(e, n, r) { await In.setPlay(e, n, r), this.playUrl = In.playUrl, this.result = In.result } async setSearch(e, n, r) { await In.setSearch(e, n, r), this.vodList = In.vodList, this.result = In.result } async setProxy(e, n) { return await In.proxy(e, n) } }, No = new OS; async function kW(t, e) { return await No.init(t, e) } async function DW(t, e) { return await No.home(t, e) } async function uAe(t, e) { return await No.homeVod(t, e) } async function PW(t, e) { return await No.category(t, e) } async function LW(t, e) { return await No.detail(t, e) } async function FW(t, e) { return await No.play(t, e) } async function jW(t, e) { return await No.search(t, e) } async function cAe(t, e) { return await No.proxy(t, e) } var UW = { meta: { key: In.getJSName(), name: In.getName(), type: In.getType() }, api: async t => { t.post("/init", kW), t.post("/home", DW), t.post("/category", PW), t.post("/detail", LW), t.post("/play", FW), t.post("/search", jW), t.get("/proxy/:what/:ids/:end", cAe) }, spider: { init: kW, home: DW, homeVod: uAe, category: PW, detail: LW, play: FW, search: jW } }; var NS = class extends Fe { constructor() { super(), this.siteUrl = "http://api2.rinhome.com" } getName() { return "\u{1F33C}\u2503\u8350\u7247\u2503\u{1F33C}" } getAppName() { return "\u8350\u7247" } getJSName() { return "jianpian" } getType() { return 3 } getHeader() { return { "User-Agent": "jianpian-android/360", JPAUTH: "y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv", Referer: "www.jianpianapp.com" } } async spiderInit(e = null) { e !== null ? this.jsBase = await js2Proxy(e, "img", this.getHeader()) : this.jsBase = await js2Proxy(!0, this.siteType, this.siteKey, "img/", this.getHeader()) } async init(e) { await super.init(e), this.danmuStaus = !0, await this.spiderInit(null) } async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = r.id, r.path !== void 0 ? this.catOpenStatus ? i.vod_pic = this.jsBase + ti(r.path) : i.vod_pic = r.path + "@Referer=www.jianpianapp.com@User-Agent=jianpian-version353@JPAUTH=y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv" : this.catOpenStatus ? i.vod_pic = this.jsBase + ti(r.thumbnail) : i.vod_pic = r.thumbnail + "@Referer=www.jianpianapp.com@User-Agent=jianpian-version353@JPAUTH=y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiE", i.vod_name = r.title, this.catOpenStatus ? i.vod_remarks = `\u8BC4\u5206:${r.score}` : r.playlist !== void 0 ? i.vod_remarks = `\u8BC4\u5206:${r.score} ` + r.playlist.title : i.vod_remarks = `\u8BC4\u5206:${r.score}`, n.push(i) } return n } objToList(e, n, r = "*") { let i = []; for (let l of e) i.push(l[n]); return i.join(r) } async parseVodDetailfromJson(e) { let n = new Be; n.vod_id = e.id, n.vod_year = e.year.title, n.vod_pic = this.jsBase + ti(e.thumbnail), n.type_name = e.category[0].title, n.vod_name = e.title, n.vod_content = e.description, n.vod_area = e.area.title, n.vod_director = this.objToList(e.directors, "name"), n.vod_actor = this.objToList(e.actors, "name"), n.vod_remarks = "\u8BC4\u5206:" + e.score; let r = [{ btbo_downlist: "btbo" }, { xunlei_downlist: "\u8FC5\u96F7" }, { m3u8_downlist: "m3u8" }, { new_ftp_list: "new_ftp" }, { new_m3u8_list: "new_m3u8" }], i = {}, l = []; for (let s of r) { let a = Object.keys(s)[0], o = Object.values(s)[0]; if (e[a].length > 0) { let u = []; for (let c of e[a]) u.push(c.title + "$" + c.url); l.indexOf(u.join("#")) === -1 ? (l.push(u.join("#")), i[o] = u.join("#")) : await this.jadeLog.warning(`key\u4E3A:${a},\u64AD\u653E\u94FE\u63A5\u91CD\u590D,\u65E0\u9700\u4FDD\u5B58`) } } return n.vod_play_url = B.values(i).join("$$$"), n.vod_play_from = B.keys(i).join("$$$"), n } async setClasses() { let e = ["\u5168\u90E8", "\u7535\u5F71", "\u7535\u89C6\u5267", "\u52A8\u6F2B", "\u7EFC\u827A"], n = ["0", "1", "2", "3", "4"]; for (let r = 0; r < e.length; r++) { let i = e[r], l = n[r]; this.classes.push({ type_name: i, type_id: l }) } } async setFilterObj() { this.filterObj = { 0: [{ key: "area", name: "\u5730\u5340", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "\u56FD\u4EA7", v: "1" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "3" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "6" }, { n: "\u7F8E\u56FD", v: "5" }, { n: "\u97E9\u56FD", v: "18" }, { n: "\u65E5\u672C", v: "2" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "2024", v: "119" }, { n: "2023", v: "153" }, { n: "2022", v: "101" }, { n: "2021", v: "118" }, { n: "2020", v: "16" }, { n: "2019", v: "7" }, { n: "2018", v: "2" }, { n: "2017", v: "3" }, { n: "2016", v: "22" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u95E8", v: "hot" }, { n: "\u66F4\u65B0", v: "updata" }, { n: "\u8BC4\u5206", v: "rating" }] }], 1: [{ key: "area", name: "\u5730\u5340", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "\u56FD\u4EA7", v: "1" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "3" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "6" }, { n: "\u7F8E\u56FD", v: "5" }, { n: "\u97E9\u56FD", v: "18" }, { n: "\u65E5\u672C", v: "2" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "2024", v: "119" }, { n: "2023", v: "153" }, { n: "2022", v: "101" }, { n: "2021", v: "118" }, { n: "2020", v: "16" }, { n: "2019", v: "7" }, { n: "2018", v: "2" }, { n: "2017", v: "3" }, { n: "2016", v: "22" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u95E8", v: "hot" }, { n: "\u66F4\u65B0", v: "updata" }, { n: "\u8BC4\u5206", v: "rating" }] }], 2: [{ key: "area", name: "\u5730\u5340", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "\u56FD\u4EA7", v: "1" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "3" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "6" }, { n: "\u7F8E\u56FD", v: "5" }, { n: "\u97E9\u56FD", v: "18" }, { n: "\u65E5\u672C", v: "2" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "2024", v: "119" }, { n: "2023", v: "153" }, { n: "2022", v: "101" }, { n: "2021", v: "118" }, { n: "2020", v: "16" }, { n: "2019", v: "7" }, { n: "2018", v: "2" }, { n: "2017", v: "3" }, { n: "2016", v: "22" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u95E8", v: "hot" }, { n: "\u66F4\u65B0", v: "updata" }, { n: "\u8BC4\u5206", v: "rating" }] }], 3: [{ key: "area", name: "\u5730\u5340", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "\u56FD\u4EA7", v: "1" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "3" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "6" }, { n: "\u7F8E\u56FD", v: "5" }, { n: "\u97E9\u56FD", v: "18" }, { n: "\u65E5\u672C", v: "2" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "2024", v: "119" }, { n: "2023", v: "153" }, { n: "2022", v: "101" }, { n: "2021", v: "118" }, { n: "2020", v: "16" }, { n: "2019", v: "7" }, { n: "2018", v: "2" }, { n: "2017", v: "3" }, { n: "2016", v: "22" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u95E8", v: "hot" }, { n: "\u66F4\u65B0", v: "updata" }, { n: "\u8BC4\u5206", v: "rating" }] }], 4: [{ key: "area", name: "\u5730\u5340", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "\u56FD\u4EA7", v: "1" }, { n: "\u4E2D\u56FD\u9999\u6E2F", v: "3" }, { n: "\u4E2D\u56FD\u53F0\u6E7E", v: "6" }, { n: "\u7F8E\u56FD", v: "5" }, { n: "\u97E9\u56FD", v: "18" }, { n: "\u65E5\u672C", v: "2" }] }, { key: "year", name: "\u5E74\u4EFD", value: [{ n: "\u5168\u90E8", v: "0" }, { n: "2024", v: "119" }, { n: "2023", v: "153" }, { n: "2022", v: "101" }, { n: "2021", v: "118" }, { n: "2020", v: "16" }, { n: "2019", v: "7" }, { n: "2018", v: "2" }, { n: "2017", v: "3" }, { n: "2016", v: "22" }] }, { key: "by", name: "\u6392\u5E8F", value: [{ n: "\u70ED\u95E8", v: "hot" }, { n: "\u66F4\u65B0", v: "updata" }, { n: "\u8BC4\u5206", v: "rating" }] }] } } async setHomeVod() { let e = await this.fetch(this.siteUrl + "/api/tag/hand?code=unknown601193cf375db73d&channel=wandoujia", null, this.getHeader()); if (!B.isEmpty(e)) { let r = JSON.parse(e).data[0].video; this.homeVodList = await this.parseVodShortListFromJson(r) } } async setCategory(e, n, r, i) { let l = i.cateId ?? e, s = i.area ?? "0", a = i.year ?? "0", o = i.by ?? "hot"; this.limit = 24; let u = this.siteUrl + `/api/crumb/list?area=${s}&category_id=${l}&page=${n}&type=0&limit=24&sort=${o}&year=${a}`; await this.jadeLog.debug(`\u5206\u7C7BURL:${u}`); let c = await this.fetch(u, null, this.getHeader()); if (!B.isEmpty(c)) { let m = JSON.parse(c).data; this.vodList = await this.parseVodShortListFromJson(m) } } async setDetail(e) { let n = this.siteUrl + "/api/node/detail?channel=wandoujia&token=&id=" + e, r = await this.fetch(n, null, this.getHeader()); if (!B.isEmpty(r)) { let l = JSON.parse(r).data; this.vodDetail = await this.parseVodDetailfromJson(l) } } async setSearch(e, n) { let r = this.siteUrl + "/api/video/search?page=1&key=" + e, i = await this.fetch(r, null, this.getHeader()); if (!B.isEmpty(i)) { let s = JSON.parse(i).data; this.vodList = await this.parseVodShortListFromJson(s) } } async setPlay(e, n, r) { await this.jadeLog.debug(`\u64AD\u653E\u94FE\u63A5\u4E3A:${n}`), this.playUrl = n } }, kn = new NS; var CS = class extends Re { constructor() { super() } getName() { return kn.getName() } getAppName() { return kn.getAppName() } getJSName() { return kn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await kn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await kn.initCookie(e.server.config.bilicookie), await kn.spiderInit(e), kn.cfgObj.code = 0, kn.catOpenStatus = !0, kn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await kn.setClasses(), this.classes = kn.classes } async setFilterObj() { await kn.setFilterObj(), this.filterObj = kn.filterObj } async setHomeVod() { await kn.setHomeVod(), this.homeVodList = kn.homeVodList } async setCategory(e, n, r, i) { await kn.setCategory(e, n, r, i), this.vodList = kn.vodList } async setDetail(e) { await kn.setDetail(e), this.vodDetail = kn.vodDetail } async setPlay(e, n, r) { await kn.setPlay(e, n, r), this.playUrl = kn.playUrl, this.result = kn.result } async setSearch(e, n, r) { await kn.setSearch(e, n, r), this.vodList = kn.vodList, this.result = kn.result } async setProxy(e, n) { return await kn.proxy(e, n) } }, Co = new CS; async function MW(t, e) { return await Co.init(t, e) } async function $W(t, e) { return await Co.home(t, e) } async function pAe(t, e) { return await Co.homeVod(t, e) } async function BW(t, e) { return await Co.category(t, e) } async function HW(t, e) { return await Co.detail(t, e) } async function VW(t, e) { return await Co.play(t, e) } async function qW(t, e) { return await Co.search(t, e) } async function fAe(t, e) { return await Co.proxy(t, e) } var zW = { meta: { key: kn.getJSName(), name: kn.getName(), type: kn.getType() }, api: async t => { t.post("/init", MW), t.post("/home", $W), t.post("/category", BW), t.post("/detail", HW), t.post("/play", VW), t.post("/search", qW), t.get("/proxy/:what/:ids/:end", fAe) }, spider: { init: MW, home: $W, homeVod: pAe, category: BW, detail: HW, play: VW, search: qW } }; var RS = class extends Fe { constructor() { super(), this.siteUrl = "https://api.gquaxhce.com", this.nextObj = {} } async init(e) { await super.init(e), this.danmuStaus = !0 } getRequestId() { let e = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "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", "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"], n = ""; for (let r = 0; r < 32; r++)n = n + e[B.random(0, e.length)]; return n.toString() } getName() { return "\u{1F6EB}\u2503\u4E00\u8D77\u770B\u2503\u{1F6EB}" } getAppName() { return "\u4E00\u8D77\u770B" } getJSName() { return "yiqikan" } getType() { return 3 } getHeader() { let e = super.getHeader(); return e.Connection = "keep-alive", e.Host = "api.gquaxhce.com", e } getParams(e = null) { let n = this.getRequestId(), r = "e6ddefe09e0349739874563459f56c54", i = "m.yqktv888.com", l = GV(), s = "3359de478f8d45638125e446a10ec541", a = { appId: r }; if (!B.isEmpty(e)) for (let o of Object.keys(e)) !B.isEmpty(e[o]) && (o === "epId" || o === "nextCount" || o === "nextVal" || o === "queryValueJson" || o === "keyword") && (a[o] = e[o]); if (a.reqDomain = i, a.requestId = n, a.udid = l, !B.isEmpty(e)) for (let o of Object.keys(e)) !B.isEmpty(e[o]) && (o === "vodId" || o === "vodResolution") && (a[o] = e[o]); return a.appKey = s, a.sign = md5X(u0(a)), delete a.appKey, a } async setClasses() { let e = JSON.parse(await this.post(this.siteUrl + "/v1/api/home/header", this.getParams(), this.getHeader(), "raw")); for (let n of e.data.channelList) this.classes.push(this.getTypeDic(n.channelName, n.channelId)) } async parseVodShortListFromJson(e) { let n = []; for (let r of e) { let i = new Ne; i.vod_id = r.vodId, i.vod_name = r.vodName, i.vod_remarks = r.watchingCountDesc, i.vod_pic = r.coverImg, n.push(i) } return n } async parseVodDetailfromJson(e) { let n = new Be; n.vod_name = e.vodName, n.vod_content = e.intro, n.vod_area = e.areaName, n.vod_year = e.year, n.type_name = e.channelName, n.vod_remarks = "\u8BC4\u5206:" + e.score.toString(), n.vod_pic = e.coverImg, n.vod_actor = ab(e.actorList, "vodWorkerName"), n.vod_director = ab(e.directorList, "vodWorkerName"); let r = {}; for (let i of e.playerList) { let l = []; for (let s of i.epList) { let a = s.epId, o = s.epName; l.push(o + "$" + a) } r[i.playerName] = l.join("#") } return n.vod_play_url = B.values(r).join("$$$"), n.vod_play_from = B.keys(r).join("$$$"), n } async setHomeVod() { let e = await this.post(this.siteUrl + "/v1/api/home/body", this.getParams(), this.getHeader(), "raw"), n = JSON.parse(e); n.result ? this.homeVodList = await this.parseVodShortListFromJson(n.data.hotVodList) : await this.jadeLog.error(`\u83B7\u53D6\u9996\u9875\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${n.msg}`) } async setCategory(e, n, r, i) { let l = this.siteUrl + "/v1/api/search/queryNow"; this.limit = 18; let s = {}; B.isEmpty(this.nextObj[e]) || (s.nextVal = this.nextObj[e]), s.nextCount = 18, s.queryValueJson = JSON.stringify([{ filerName: "channelId", filerValue: e.toString() }]).replaceAll("\\\\", ""); let a = await this.post(l, this.getParams(s), this.getHeader(), "raw"), o = JSON.parse(a); o.result ? (o.data.hasNext && (this.nextObj[e] = o.data.nextVal), this.vodList = await this.parseVodShortListFromJson(o.data.items)) : await this.jadeLog.error(`\u83B7\u53D6\u5206\u7C7B\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${o.msg}`) } async setDetail(e) { let n = this.siteUrl + "/v1/api/vodInfo/detail", r = { vodId: e }, i = await this.post(n, this.getParams(r), this.getHeader(), "raw"), l = JSON.parse(i); l.result ? this.vodDetail = await this.parseVodDetailfromJson(l.data) : await this.jadeLog.error(`\u83B7\u53D6\u8BE6\u60C5\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${l.msg}`) } async setPlay(e, n, r) { let i = this.siteUrl + "/v1/api/vodInfo/getEpDetail", l = { epId: n }, s = await this.post(i, this.getParams(l), this.getHeader(), "raw"), a = JSON.parse(s), o = "1"; if (a.result) { if (a.data.resolutionItems.length > 0) { o = a.data.resolutionItems.slice(-1)[0].vodResolution.toString(); let u = this.siteUrl + "/v1/api/vodInfo/getPlayUrl", c = { epId: n, vodResolution: o }, f = await this.post(u, this.getParams(c), this.getHeader(), "raw"), m = JSON.parse(f); m.result ? this.playUrl = m.data : await this.jadeLog.error(`\u83B7\u53D6\u64AD\u653E\u94FE\u63A5\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${a.msg}`) } } else await this.jadeLog.error(`\u83B7\u53D6\u64AD\u653E\u8BE6\u60C5\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${a.msg}`) } async setSearch(e, n) { let r = this.siteUrl + "/v1/api/search/search", i = { nextCount: 15, nextVal: "", keyword: e }, l = await this.post(r, this.getParams(i), this.getHeader(), "raw"), s = JSON.parse(l); s.result ? this.vodList = await this.parseVodShortListFromJson(s.data.items) : await this.jadeLog.error(`\u83B7\u53D6\u8BE6\u60C5\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${s.msg}`) } }, Dn = new RS; var IS = class extends Re { constructor() { super() } getName() { return Dn.getName() } getAppName() { return Dn.getAppName() } getJSName() { return Dn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Dn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Dn.initCookie(e.server.config.bilicookie), await Dn.spiderInit(e), Dn.cfgObj.code = 0, Dn.catOpenStatus = !0, Dn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Dn.setClasses(), this.classes = Dn.classes } async setFilterObj() { await Dn.setFilterObj(), this.filterObj = Dn.filterObj } async setHomeVod() { await Dn.setHomeVod(), this.homeVodList = Dn.homeVodList } async setCategory(e, n, r, i) { await Dn.setCategory(e, n, r, i), this.vodList = Dn.vodList } async setDetail(e) { await Dn.setDetail(e), this.vodDetail = Dn.vodDetail } async setPlay(e, n, r) { await Dn.setPlay(e, n, r), this.playUrl = Dn.playUrl, this.result = Dn.result } async setSearch(e, n, r) { await Dn.setSearch(e, n, r), this.vodList = Dn.vodList, this.result = Dn.result } async setProxy(e, n) { return await Dn.proxy(e, n) } }, Ro = new IS; async function GW(t, e) { return await Ro.init(t, e) } async function JW(t, e) { return await Ro.home(t, e) } async function dAe(t, e) { return await Ro.homeVod(t, e) } async function KW(t, e) { return await Ro.category(t, e) } async function XW(t, e) { return await Ro.detail(t, e) } async function WW(t, e) { return await Ro.play(t, e) } async function YW(t, e) { return await Ro.search(t, e) } async function hAe(t, e) { return await Ro.proxy(t, e) } var QW = { meta: { key: Dn.getJSName(), name: Dn.getName(), type: Dn.getType() }, api: async t => { t.post("/init", GW), t.post("/home", JW), t.post("/category", KW), t.post("/detail", XW), t.post("/play", WW), t.post("/search", YW), t.get("/proxy/:what/:ids/:end", hAe) }, spider: { init: GW, home: JW, homeVod: dAe, category: KW, detail: XW, play: WW, search: YW } }; var kS = class extends Fe {
constructor() { super(), this.siteUrl = "https://aiyingshis.com" } getName() { return "\u{1F680}\u200D\u2503\u7231\u5F71\u89C6\u2503\u{1F680}" } getAppName() { return "\u7231\u5F71\u89C6" } getJSName() { return "aiyingshi" } getType() { return 3 } async parseVodShortListFromDoc(e) { let n = e(".module-item"), r = []; for (let i of n) { let l = new Ne, s = e(i).find(".module-item-cover .module-item-pic a").first(); l.vod_id = s.attr("href"), l.vod_name = s.attr("title"); let a = e(i).find(".module-item-cover .module-item-pic img").first().attr("data-src"); a.indexOf("img.php?url=") > 0 ? a = a.split("img.php?url=")[1] : a.indexOf("https:") === -1 && a.indexOf("http:") === -1 && (a = "https:" + a), l.vod_pic = a, l.vod_remarks = e(i).find(".module-item-text").first().text(), l.vod_name !== void 0 && r.push(l) } return r } async parseVodDetailFromDoc(e) {
let n = new Be; n.vod_name = e(".page-title")[0].children[0].data, n.vod_pic = e(e('[class="video-cover"]')).find(".lazyload")[0].attribs["data-src"]; let r = e(e(".video-info-aux")).text().replaceAll(" ", "").split(`
`), i = []; for (let m of r) B.isEmpty(m.replaceAll(" ", "").replaceAll("/", "")) || i.push(m.replaceAll(" ", "").replaceAll("/", "")); n.type_name = i.slice(0, 2).join("*"); let l = e('[class="video-info-items"]'); n.vod_director = e(l[0]).find("a")[0].children[0].data; let s = e(l[1]).find("a"), a = []; for (let m of s) a.push(m.children[0].data); n.vod_actor = a.join(" * "), n.vod_year = i[2], n.vod_remarks = e(e(l[3]).find(".video-info-item")).text(), n.vod_content = e(e(l[5]).find(".video-info-item")).text(), n.vod_area = i[3], n.vod_content = n.vod_content.replace("[\u6536\u8D77\u90E8\u5206]", "").replace("[\u5C55\u5F00\u5168\u90E8]", "").replaceAll(" ", "").replaceAll(`
`, ""); let o = e(e('[class="module-tab-content"]')[0]).find("span"), u = e('[class="module-list module-player-list tab-list sort-list "]'), c = []; for (let m of o) c.push(e(m).text()); let f = []; for (let m of u) { let d = e(e(m).find('[class="sort-item"]')).find("a"), y = []; for (let _ of d) { let S = e(_).text(), w = _.attribs.href, E = S + "$" + w; y.push(E) } f.push(y.join("#")) } return n.vod_play_from = c.join("$$$"), n.vod_play_url = B.values(f).join("$$$"), n
} async parseVodShortListFromDocBySearch(e) { let n = e(".module-search-item"), r = []; for (let i of n) { let l = new Ne; l.vod_id = e(i).find(".video-serial")[0].attribs.href, l.vod_name = e(i).find(".video-serial")[0].attribs.title, l.vod_pic = e(i).find(".module-item-pic > img")[0].attribs["data-src"], l.vod_remarks = "", r.push(l) } return r } async setClasses() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e), r = n(n('[class="nav-menu-items"]')[0]).find("li"); for (let i of r.slice(0, 6)) { let l = n(n(i).find("span")).text(); if (l !== "\u9996\u9875") { let a = { type_id: n(i).find("a")[0].attribs.href.split("/").slice(-1)[0].split(".")[0], type_name: l }; this.classes.push(a) } } } } async getFilter(e) { let n = e('[class="scroll-content"]').slice(1), r = []; for (let i = 0; i < n.length; i++) { let l = { key: (i + 1).toString(), name: "", value: [] }; if (i < n.length - 1) { l.name = e(e(n[i]).find("a")[0]).text(), l.value.push({ n: "\u5168\u90E8", v: "0" }); for (let s of e(n[i]).find("a").slice(1)) e(e(n[i]).find("a")[0]).text() === "\u5168\u90E8\u7C7B\u578B" ? l.value.push({ n: e(s).text(), v: s.attribs.href.split("/").slice(-1)[0].split(".")[0] }) : l.value.push({ n: e(s).text(), v: e(s).text() }); r.push(l) } else l.name = e(e(n[i]).find("a")[0]).text(), l.value = [{ n: "\u5168\u90E8", v: "0" }, { n: e(e(n[i]).find("a")[1]).text(), v: "hits" }, { n: e(e(n[i]).find("a")[2]).text(), v: "score" }], r.push(l) } return r } async setFilterObj() { for (let e of this.classes) { let n = e.type_id; if (n !== "/" && n !== "\u6700\u8FD1\u66F4\u65B0") { let r = this.siteUrl + `/vodshow/id/${n}.html`, i = await this.fetch(r, null, this.getHeader()); if (i != null) { let l = $e(i); this.filterObj[n] = await this.getFilter(l) } } } } async setHomeVod() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e); this.homeVodList = await this.parseVodShortListFromDoc(n) } } getExtend(e, n, r = "") { return e !== void 0 && e !== "0" ? r + e : n } async getCateUrl(e, n, r) { e = this.getExtend(r[1], e); let i = this.getExtend(r[2], "", "/area/"), l = this.getExtend(r[3], "", "/lang/"), s = this.getExtend(r[4], "", "/year/"), a = this.getExtend(r[5], "", "/letter/"), o = this.getExtend(r[6], "", "/by/"); return this.siteUrl + `/vodshow${o}${i}/id/${e}${l}${a}${s}/page/${n}.html` } async setCategory(e, n, r, i) { let l = await this.getCateUrl(e, n, i), s = await this.fetch(l, null, this.getHeader()); if (!B.isEmpty(s)) { let a = $e(s); this.vodList = await this.parseVodShortListFromDoc(a); let o = Te(/\$\("\.mac_total"\)\.text\('(\d+)'\)/, s); this.limit = 72, o.length > 0 && (this.total = parseInt(o)), this.total <= this.limit ? this.count = 1 : this.count = Math.ceil(this.total / this.limit) } } async setDetail(e) { let n = this.siteUrl + e, r = await this.fetch(n, null, this.getHeader()); if (!B.isEmpty(r)) { let i = $e(r); this.vodDetail = await this.parseVodDetailFromDoc(i) } } async setPlay(e, n, r) { let i = await this.fetch(this.siteUrl + n, null, this.getHeader()); if (!B.isEmpty(i)) { let l = Te(/<script type="text\/javascript">var player_aaaa=(.*?)<\/script>/, i), s = JSON.parse(l); this.playUrl = s.url } } async setSearch(e, n) { let r = this.siteUrl + `/vodsearch/wd/${e}.html`, i = await this.fetch(r, null, this.getHeader()); if (!B.isEmpty(i)) { let l = $e(i); this.vodList = await this.parseVodShortListFromDocBySearch(l) } }
}, Pn = new kS; var DS = class extends Re { constructor() { super() } getName() { return Pn.getName() } getAppName() { return Pn.getAppName() } getJSName() { return Pn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Pn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Pn.initCookie(e.server.config.bilicookie), await Pn.spiderInit(e), Pn.cfgObj.code = 0, Pn.catOpenStatus = !0, Pn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Pn.setClasses(), this.classes = Pn.classes } async setFilterObj() { await Pn.setFilterObj(), this.filterObj = Pn.filterObj } async setHomeVod() { await Pn.setHomeVod(), this.homeVodList = Pn.homeVodList } async setCategory(e, n, r, i) { await Pn.setCategory(e, n, r, i), this.vodList = Pn.vodList } async setDetail(e) { await Pn.setDetail(e), this.vodDetail = Pn.vodDetail } async setPlay(e, n, r) { await Pn.setPlay(e, n, r), this.playUrl = Pn.playUrl, this.result = Pn.result } async setSearch(e, n, r) { await Pn.setSearch(e, n, r), this.vodList = Pn.vodList, this.result = Pn.result } async setProxy(e, n) { return await Pn.proxy(e, n) } }, Io = new DS; async function ZW(t, e) { return await Io.init(t, e) } async function eY(t, e) { return await Io.home(t, e) } async function mAe(t, e) { return await Io.homeVod(t, e) } async function tY(t, e) { return await Io.category(t, e) } async function nY(t, e) { return await Io.detail(t, e) } async function rY(t, e) { return await Io.play(t, e) } async function iY(t, e) { return await Io.search(t, e) } async function yAe(t, e) { return await Io.proxy(t, e) } var lY = { meta: { key: Pn.getJSName(), name: Pn.getName(), type: Pn.getType() }, api: async t => { t.post("/init", ZW), t.post("/home", eY), t.post("/category", tY), t.post("/detail", nY), t.post("/play", rY), t.post("/search", iY), t.get("/proxy/:what/:ids/:end", yAe) }, spider: { init: ZW, home: eY, homeVod: mAe, category: tY, detail: nY, play: rY, search: iY } }; var gAe = "diao.com", wf = class { constructor() { this.channelMsg = "", this.channelStatus = 0, this.channelList = [], this.channelFilters = {} } fromJsonString(e, n = 0) { let r = JSON.parse(e); this.channelMsg = r.msg, this.channelStatus = r.status; let i = []; for (let l of r.list) { let s = new PS; switch (n) { case 0: s.fromJson(l), i.push(s); break; case 1: l.channelName !== "\u5348\u591C\u573A" && l.channelName !== "\u5348\u591C\u76F4\u64AD" && (s.fromJson(l), i.push(s)); break; case 2: (l.channelName === "\u5348\u591C\u573A" || l.channelName === "\u5348\u591C\u76F4\u64AD") && (s.fromJson(l), i.push(s)); break } } this.channelList = i, this.channelFilters = r.filter } setChannelFilters(e) { this.channelFilters = JSON.parse(e) } getValues(e, n, r) { let i = []; i.push({ n: "\u5168\u90E8", v: "0" }); for (let l of e) i.push({ n: l[n], v: l[r].toString() }); return i } getFilters() { let e = {}; for (let n of this.channelList) { e[n.channelId] = []; let r = this.channelFilters.sortsMap[parseInt(n.channelId)], i = this.getValues(r, "title", "id"); e[n.channelId].push({ key: "1", name: "\u6392\u5E8F", value: i }); let l = this.channelFilters.typesMap[parseInt(n.channelId)], s = this.getValues(l, "showTypeName", "showTypeId"); e[n.channelId].push({ key: "2", name: "\u7C7B\u578B", value: s }); let a = this.getValues(this.channelFilters.regions, "regionName", "regionId"); e[n.channelId].push({ key: "3", name: "\u5730\u533A", value: a }); let o = this.getValues(this.channelFilters.langs, "langName", "langId"); e[n.channelId].push({ key: "4", name: "\u8BED\u8A00", value: o }); let u = this.getValues(this.channelFilters.yearRanges, "name", "code"); e[n.channelId].push({ key: "5", name: "\u5E74\u4EFD", value: u }) } return e } getChannelFilters() { return this.channelFilters } getChannelMsg() { return this.channelMsg } getChannelStatus() { return this.channelStatus } getChannelList() { return this.channelList } getClassList() { let e = []; for (let n of this.channelList) e.push({ type_id: n.channelId, type_name: n.channelName }); return e } async save() { return await local.set("niba", "niba_channel", this.toString()), this } clear() { this.channelMsg = "", this.channelStatus = 0, this.channelList = [] } async clearCache() { this.clear(), await local.set("niba", "niba_channel", "{}") } toString() { let e = { msg: this.getChannelMsg(), status: this.getChannelStatus(), list: this.getChannelList(), filter: this.getChannelFilters() }; return JSON.stringify(e) } }; var PS = class { constructor() { this.channelId = 0, this.channelName = "" } fromJsonString(e) { let n = JSON.parse(e); this.channelId = n.channelId, this.channelName = n.channelName } fromJson(e) { this.channelId = e.channelId, this.channelName = e.channelName } getChannelName() { return this.channelName } getChannelId() { return this.channelId } }; function vAe(t) { return !isNaN(parseInt(t)) } function sY(t, e, n) { let r = [], i = []; for (let l of t) { let s = ""; vAe(l.episodeName) ? s = "\u7B2C" + l.episodeName + "\u96C6" : s = l.episodeName, r.push(s + "$" + l.playIdCode + "@" + n) } for (let l = 0; l < e.length; l++)i.push(r.join("#")); return { vod_play_url: i.join("$$$"), vod_play_from: e.map(l => l).join("$$$") } } function ko() { return { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36", Referer: "https://m.nivod.tv/", "Content-Type": "application/x-www-form-urlencoded" } } function _Ae(t) { return Ve.MD5(t).toString() } async function Do(t = null) { let e = { _ts: Date.now(), app_version: "1.0", platform: "3", market_id: "web_nivod", device_code: "web", versioncode: 1, oid: "8ca275aa5e12ba504b266d4c70d95d77a0c2eac5726198ea" }, n = []; for (let s of Object.keys(e).sort()) n.push(`${s}=${e[s]}`); let r = "&__BODY::"; if (t !== null) { let s = []; for (let a of Object.keys(t).sort()) s.push(`${a}=${t[a]}`); r = r + s.join("&") + "&" } let i = "__QUERY::" + n.join("&") + r + "__KEY::2x_Give_it_a_shot", l = _Ae(i); return n.push(`sign=${l}`), "?" + n.join("&") } function Po(t) { let e = Ve.enc.Utf8.parse(gAe); return Ve.DES.decrypt({ ciphertext: Ve.enc.Hex.parse(t) }, e, { mode: Ve.mode.ECB, padding: Ve.pad.Pkcs7 }).toString(Ve.enc.Utf8) } var LS = class extends Fe { constructor() { super(), this.siteUrl = "https://api.nivodz.com" } getName() { return "\u{1F451}\u200D\u2503\u6CE5\u89C6\u9891\u2503\u5899\u{1F451}" } getAppName() { return "\u6CE5\u89C6\u9891" } getJSName() { return "nivod" } getType() { return 3 } async setClasses() { this.Remove18ChannelCode = parseInt(this.cfgObj.code); let e = this.siteUrl + "/show/channel/list/WEB/3.2" + await Do(), n = Po(await this.post(e, null, ko())); if (n !== null) { let r = new wf; r.fromJsonString(n, this.Remove18ChannelCode); let i = this.siteUrl + "/show/filter/condition/WEB/3.2" + await Do(), l = Po(await this.post(i, null, ko())); l !== null && (r.setChannelFilters(l), this.classes = r.getClassList(), this.filterObj = r.getFilters()) } } async parseVodShortListFromJson(e) { let n = []; for (let r of e) for (let i of r.rows) for (let l of i.cells) { let s = new Ne; s.vod_id = l.show.showIdCode, s.vod_pic = l.img, s.vod_name = l.title, s.vod_remarks = this.getVodRemarks(l.show.hot, l.show.playResolutions), n.push(s) } return n } async parseVodDetailfromJson(e) { let n = new Be; return n.vod_id = e.showIdCode, n.vod_name = e.showTitle, n.vod_remarks = this.getVodRemarks(e.hot, e.playResolutions), n.vod_pic = e.showImg, n.vod_director = e.director, n.vod_actor = e.actors, n.vod_year = e.postYear, n.vod_content = e.showDesc, n.type_name = e.showTypeName, n.vod_area = e.regionName, n } getVodRemarks(e, n) { let r; return this.catOpenStatus ? r = `\u6E05\u6670\u5EA6:${n[0]}` : r = `\u6E05\u6670\u5EA6:${n[0]},\u70ED\u5EA6:${Math.floor(parseInt(e) / 1e3).toString()}k`, r } getExtendDic(e, n) { return e[5] === void 0 || e[5] === "0" ? delete n.year_range : n.year_range = e[5], e[1] !== void 0 && (n.sort_by = e[1]), e[2] !== void 0 && (n.show_type_id = e[2]), e[3] !== void 0 && (n.region_id = e[3]), e[4] !== void 0 && (n.lang_id = e[4]), n } async setHomeVod() { let e = this.siteUrl + "/index/mobile/WAP/3.0" + await Do(), n = Po(await this.post(e, null, ko())); if (n !== null) { let i = JSON.parse(n).list; for (let l of i) for (let s of l.rows) for (let a of s.cells) { let o = new Ne; o.vod_id = a.show.showIdCode, o.vod_pic = a.img, o.vod_name = a.title, o.vod_remarks = this.getVodRemarks(a.show.hot, a.show.playResolutions), this.homeVodList.push(o) } } } async setCategory(e, n, r, i) { let l = { sort_by: "0", channel_id: e.toString(), show_type_id: "0", region_id: "0", lang_id: "0", year_range: "2023", start: ((parseInt(n) - 1) * 20).toString() }; this.limit = 20, l = this.getExtendDic(i, l); let s = this.siteUrl + "/show/filter/WEB/3.2" + await Do(l), a = Po(await this.post(s, l, ko())); if (a != null) { let o = JSON.parse(a); for (let u of o.list) { let c = new Ne; c.vod_id = u.showIdCode, c.vod_name = u.showTitle, c.vod_pic = u.showImg, c.vod_remarks = this.getVodRemarks(u.hot, u.playResolutions), this.vodList.push(c) } } } async setDetail(e) { let n = { show_id_code: e.toString() }, r = this.siteUrl + "/show/detail/WEB/3.2" + await Do(n), i = Po(await this.post(r, n, ko())); if (i != null) { let s = JSON.parse(i).entity; this.vodDetail = await this.parseVodDetailfromJson(s); let a = sY(s.plays, ["\u539F\u753B"], e.toString()); this.vodDetail.vod_play_from = a.vod_play_from, this.vodDetail.vod_play_url = a.vod_play_url } } async setSearch(e, n) { let r = { cat_id: "1", keyword: e, keyword_type: "0", start: "0" }, i = this.siteUrl + "/show/search/WEB/3.2" + await Do(r), l = Po(await this.post(i, r, ko())); if (l != null) { let s = JSON.parse(l); for (let a of s.list) { let o = await this.parseVodDetailfromJson(a); this.vodList.push(o) } } } async setPlay(e, n, r) { let i = n.split("@")[0], s = { show_id_code: n.split("@")[1], play_id_code: i }, a = this.siteUrl + "/show/play/info/WEB/3.2" + await Do(s), o = Po(await this.post(a, s, ko())); if (o != null) { let u = JSON.parse(o); this.playUrl = u.entity.playUrl } } }, Ln = new LS; var FS = class extends Re { constructor() { super() } getName() { return Ln.getName() } getAppName() { return Ln.getAppName() } getJSName() { return Ln.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Ln.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Ln.initCookie(e.server.config.bilicookie), await Ln.spiderInit(e), Ln.cfgObj.code = 0, Ln.catOpenStatus = !0, Ln.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Ln.setClasses(), this.classes = Ln.classes } async setFilterObj() { await Ln.setFilterObj(), this.filterObj = Ln.filterObj } async setHomeVod() { await Ln.setHomeVod(), this.homeVodList = Ln.homeVodList } async setCategory(e, n, r, i) { await Ln.setCategory(e, n, r, i), this.vodList = Ln.vodList } async setDetail(e) { await Ln.setDetail(e), this.vodDetail = Ln.vodDetail } async setPlay(e, n, r) { await Ln.setPlay(e, n, r), this.playUrl = Ln.playUrl, this.result = Ln.result } async setSearch(e, n, r) { await Ln.setSearch(e, n, r), this.vodList = Ln.vodList, this.result = Ln.result } async setProxy(e, n) { return await Ln.proxy(e, n) } }, Lo = new FS; async function aY(t, e) { return await Lo.init(t, e) } async function oY(t, e) { return await Lo.home(t, e) } async function EAe(t, e) { return await Lo.homeVod(t, e) } async function uY(t, e) { return await Lo.category(t, e) } async function cY(t, e) { return await Lo.detail(t, e) } async function pY(t, e) { return await Lo.play(t, e) } async function fY(t, e) { return await Lo.search(t, e) } async function bAe(t, e) { return await Lo.proxy(t, e) } var dY = { meta: { key: Ln.getJSName(), name: Ln.getName(), type: Ln.getType() }, api: async t => { t.post("/init", aY), t.post("/home", oY), t.post("/category", uY), t.post("/detail", cY), t.post("/play", pY), t.post("/search", fY), t.get("/proxy/:what/:ids/:end", bAe) }, spider: { init: aY, home: oY, homeVod: EAe, category: uY, detail: cY, play: pY, search: fY } }; var jS = class extends Fe { constructor() { super(), this.isJustLive = !1, this.dataFrom = "", this.customArea = "", this.huYaPlayForamtObj = { AL: "\u84DD\u51498M", TX: "\u84DD\u51494M", HW: "\u8D85\u6E05", HS: "\u6D41\u7545" }, this.livePlayForamtObj = { HD: "\u84DD\u51498M", LD: "\u84DD\u51494M", SD: "\u8D85\u6E05", OD: "\u6D41\u7545" } } getName() { return "\u{1F42F}\u2503\u864E\u7259\u76F4\u64AD\u2503\u{1F42F}" } getAppName() { return "\u864E\u7259\u76F4\u64AD" } getJSName() { return "huya" } getType() { return 3 } async spiderInit() { this.cfgObj.hasOwnProperty("custom") && (this.customArea = this.cfgObj.custom), this.cfgObj.hasOwnProperty("from") && (this.dataFrom = this.cfgObj.from), this.dataFrom !== "justlive" ? this.siteUrl = "https://www.huya.com" : (this.siteUrl = "http://live.yj1211.work", this.isJustLive = !0) } async init(e) { await super.init(e), await this.spiderInit() } getHeader() { let e = super.getHeader(); return e["User-Agent"] = Y2, e } async setClasses() { this.classes = [{ type_id: "1", type_name: "\u7F51\u6E38" }, { type_id: "2", type_name: "\u5355\u673A" }, { type_id: "3", type_name: "\u624B\u6E38" }, { type_id: "8", type_name: "\u5A31\u4E50" }] } async setFilterObj() { if (this.filterObj = { 1: [{ key: "cateId", name: "\u5206\u7C7B", init: "1", value: [{ n: "\u82F1\u96C4\u8054\u76DF", v: "1" }, { n: "CS2", v: "862" }, { n: "\u7A7F\u8D8A\u706B\u7EBF", v: "4" }, { n: "lol\u4E91\u9876\u4E4B\u5F08", v: "5485" }, { n: "\u65E0\u754F\u5951\u7EA6", v: "5937" }, { n: "CFHD", v: "6079" }, { n: "\u9006\u6218", v: "135" }, { n: "\u7089\u77F3\u4F20\u8BF4", v: "393" }, { n: "DOTA2", v: "7" }, { n: "\u5730\u4E0B\u57CE\u4E0E\u52C7\u58EB", v: "2" }, { n: "\u9B54\u517D\u4E16\u754C", v: "8" }, { n: "\u5766\u514B\u4E16\u754C", v: "802" }, { n: "DOTA1", v: "6" }, { n: "\u68A6\u4E09\u56FD", v: "489" }, { n: "\u9B54\u517D\u4E89\u97383", v: "4615" }, { n: "\u95EE\u9053", v: "107" }, { n: "\u547D\u8FD0\u65B9\u821F", v: "3058" }, { n: "QQ\u98DE\u8F66", v: "9" }, { n: "\u661F\u9645\u4E89\u9738", v: "5" }, { n: "\u7F51\u6E38\u7ADE\u6280", v: "100023" }, { n: "\u5C04\u51FB\u7EFC\u5408\u6E38\u620F", v: "100141" }, { n: "\u66B4\u96EA\u4E13\u533A", v: "100043" }, { n: "\u5F69\u8679\u5C9BOnline", v: "683" }, { n: "\u5251\u7075", v: "897" }, { n: "\u519B\u4E8B\u6E38\u620F", v: "100133" }, { n: "\u5192\u9669\u5C9B", v: "2243" }, { n: "\u6697\u9ED1\u7834\u574F\u795E", v: "1123" }, { n: "\u8BDB\u4ED93", v: "1646" }, { n: "\u70ED\u8840\u6C5F\u6E56", v: "387" }, { n: "\u82F1\u9B42\u4E4B\u5203", v: "1830" }, { n: "\u6B66\u6797\u5916\u4F20\u4E00\u4E16\u7434\u7F18", v: "1661" }, { n: "\u8D77\u51E1\uFF1A\u7FA4\u96C4\u9010\u9E7F", v: "1612" }, { n: "\u795E\u6B664\u7535\u8111\u7248", v: "3227" }, { n: "\u9F99\u4E4B\u8C37", v: "15" }, { n: "\u7089\u77F3\u6218\u68CB", v: "5751" }, { n: "\u5FA1\u9F99\u5728\u5929", v: "675" }, { n: "\u9006\u6C34\u5BD2", v: "2952" }, { n: "\u5343\u5E743", v: "878" }, { n: "\u6C38\u6052\u4E4B\u5854", v: "446" }, { n: "\u4F53\u80B2\u6E38\u620F", v: "100135" }, { n: "\u5BFB\u4ED9", v: "734" }, { n: "\u6218\u8230\u4E16\u754C", v: "1947" }, { n: "QQ\u4E09\u56FD", v: "1090" }, { n: "\u6D41\u653E\u4E4B\u8DEF", v: "427" }, { n: "\u53CD\u6050\u7CBE\u82F1Online", v: "1918" }, { n: "\u53CD\u6050\u884C\u52A8online", v: "861" }, { n: "\u5F81\u9014", v: "2715" }, { n: "\u6218\u4E89\u96F7\u9706", v: "624" }, { n: "\u4E1D\u8DEF\u4F20\u8BF42", v: "1026" }, { n: "\u661F\u9645\u6218\u7532", v: "627" }, { n: "NBA2KOL\u7CFB\u5217", v: "3959" }, { n: "\u4E5D\u9634\u771F\u7ECF", v: "1009" }, { n: "\u8DD1\u8DD1\u5361\u4E01\u8F66", v: "162" }, { n: "\u8BDB\u4ED9\u4E16\u754C", v: "7749" }, { n: "QQ\u534E\u590F", v: "1878" }, { n: "\u5929\u6DAF\u660E\u6708\u5200", v: "1219" }, { n: "\u5927\u8BDD\u897F\u6E38\uFF1A\u5F52\u6765", v: "8239" }, { n: "\u8352\u91CE\u884C\u52A8PC\u7248", v: "3185" }, { n: "\u65B0\u5251\u4FA0\u60C5\u7F18", v: "586" }, { n: "\u5251\u7F513", v: "900" }, { n: "\u751F\u6B7B\u72D9\u51FB2", v: "6091" }, { n: "\u5168\u7403\u4F7F\u547D", v: "939" }, { n: "\u68A6\u60F3\u4E16\u754C3", v: "486" }, { n: "\u67AA\u795E\u7EAA", v: "496" }, { n: "\u65B0\u5929\u9F99\u516B\u90E8", v: "5671" }, { n: "\u94C1\u7532\u96C4\u5175", v: "2765" }, { n: "\u795E\u6CE3", v: "2531" }, { n: "\u6597\u6218\u795E", v: "591" }, { n: "\u9020\u68A6\u897F\u6E38OL", v: "6815" }, { n: "\u5929\u5802", v: "1966" }, { n: "\u5927\u8BDD\u897F\u6E382", v: "2975" }, { n: "\u4F7F\u547D\u53EC\u5524\uFF1A\u6218\u533A", v: "5911" }, { n: "\u5E0C\u671BOL", v: "1161" }, { n: "\u6781\u5149\u4E16\u754C \u5F11\u795E\u4F20", v: "514" }, { n: "\u5B88\u671B\u5148\u950B\u5F52\u6765", v: "2174" }, { n: "QQ\u81EA\u7531\u5E7B\u60F3", v: "1862" }, { n: "\u547D\u8FD02", v: "2942" }, { n: "\u5947\u8FF9\u4E16\u754C2", v: "766" }, { n: "\u5766\u514B\u5927\u6218", v: "4359" }, { n: "\u751F\u6B7B\u72D9\u51FB", v: "2471" }, { n: "\u5929\u7FFC\u51B3", v: "779" }, { n: "QQ\u5E7B\u60F3", v: "2419" }, { n: "\u65B0\u98DE\u98DE(FlyFF)", v: "1582" }, { n: "\u5200\u5251\u82F1\u96C4", v: "915" }, { n: "FIFA Online\u7CFB\u5217", v: "100079" }, { n: "\u5168\u7403\u4F7F\u547D3", v: "2953" }, { n: "\u5B8C\u7F8E\u7AEF\u6E38\u7CFB\u5217", v: "3034" }, { n: "\u6218\u610F", v: "2599" }, { n: "\u6CE1\u6CE1\u5802", v: "440" }, { n: "\u8D5B\u5C14\u53F7", v: "2755" }, { n: "\u5927\u5510\u65E0\u53CC\u96F6", v: "1584" }, { n: "QQ\u70AB\u821E", v: "2440" }, { n: "007\uFF1A\u4F20\u5947", v: "1135" }, { n: "\u5929\u4E0B", v: "1597" }, { n: "\u5929\u8C15", v: "1899" }, { n: "\u65B0\u5029\u5973\u5E7D\u9B42", v: "1579" }, { n: "\u4F20\u4E16\u65E0\u53CC", v: "984" }, { n: "\u5251\u4FA0\u4E16\u754C", v: "903" }, { n: "Warhaven", v: "9053" }, { n: "\u8BFA\u4E9A\u4F20\u8BF4", v: "190" }, { n: "\u65B0\u6311\u6218", v: "583" }, { n: "\u8D85\u6FC0\u6597\u68A6\u5883", v: "5691" }, { n: "QQ\u97F3\u901F", v: "1085" }, { n: "\u5F81\u90142", v: "677" }, { n: "\u5F81\u7A0B", v: "678" }, { n: "\u8700\u95E8", v: "4711" }, { n: "\u5B8C\u7F8E\u4E16\u754C\uFF1A\u8BF8\u795E\u4E4B\u6218", v: "7217" }, { n: "\u6218\u4E4B\u5203\uFF1A\u5E78\u5B58\u8005", v: "8627" }, { n: "\u9ECE\u660E\u4E4B\u5149", v: "41" }, { n: "\u5929\u547D\u897F\u6E38", v: "1086" }, { n: "\u70AB\u821E\u65F6\u4EE3", v: "3353" }, { n: "\u8363\u8A89\u7A7A\u95F4", v: "225" }, { n: "\u5361\u62C9\u5F7C\u4E18", v: "9073" }, { n: "\u6210\u5409\u601D\u6C57\u6000\u65E7\u7248", v: "640" }, { n: "\u82F1\u96C4\u5E74\u4EE33", v: "1232" }, { n: "\u5929\u4E66\u5947\u8C08", v: "2225" }, { n: "\u52B2\u821E\u56E2", v: "2420" }, { n: "\u8FDC\u5F81Online\u68A6\u60F3\u7248", v: "142" }, { n: "\u5947\u8FF9\uFF1A\u4F20\u5947", v: "3917" }, { n: "\u5C01\u5370\u8005", v: "2294" }, { n: "\u4E0A\u53E4\u4E16\u7EAA", v: "1046" }, { n: "\u68A6\u5E7B\u8BDB\u4ED92", v: "488" }, { n: "TERA Online", v: "1072" }, { n: "\u501A\u5929\u2161", v: "959" }, { n: "\u8857\u5934\u7BEE\u7403", v: "206" }, { n: "\u6C38\u6052\u8F6E\u56DE\uFF1A\u65E0\u9650", v: "7847" }, { n: "\u706B\u7EBF\u7CBE\u82F1", v: "2550" }, { n: "\u5FCD\u8005\u6751\u5927\u62182", v: "2369" }, { n: "\u9886\u5730\u4EBA\u751F", v: "2282" }, { n: "\u4ED9\u4FA0\u4E16\u754C", v: "995" }, { n: "\u6D1B\u5947\u82F1\u96C4\u4F20", v: "432" }, { n: "KARDS", v: "8261" }, { n: "\u65E0\u9650\u6CD5\u5219", v: "3189" }, { n: "\u5168\u9762\u6218\u4E89\uFF1A\u7ADE\u6280\u573A", v: "5901" }, { n: "\u81EA\u7531\u7BEE\u7403", v: "243" }, { n: "FC Online4", v: "3683" }, { n: "\u6218\u5730\u4E4B\u738B", v: "618" }, { n: "\u53E4\u5251\u5947\u8C2DOL", v: "1892" }, { n: "QQ\u4ED9\u4FA0\u4F20", v: "2291" }, { n: "300\u82F1\u96C4", v: "1132" }] }], 2: [{ key: "cateId", name: "\u5206\u7C7B", init: "2793", value: [{ n: "\u5929\u5929\u5403\u9E21", v: "2793" }, { n: "\u6C38\u52AB\u65E0\u95F4", v: "6219" }, { n: "\u4E3B\u673A\u6E38\u620F", v: "100032" }, { n: "\u731B\u517D\u6D3E\u5BF9", v: "6165" }, { n: "\u4E92\u52A8\u70B9\u64AD", v: "5907" }, { n: "\u6211\u7684\u4E16\u754C", v: "1732" }, { n: "\u65B9\u821F", v: "1997" }, { n: "\u5355\u673A\u70ED\u6E38", v: "100002" }, { n: "\u6000\u65E7\u6E38\u620F", v: "100125" }, { n: "\u9003\u79BB\u5854\u79D1\u592B", v: "3493" }, { n: "\u4FC4\u7F57\u65AF\u9493\u9C7C4", v: "5495" }, { n: "\u90E8\u843D\uFF1A\u4E0A\u5347", v: "1318" }, { n: "Dark and Darker", v: "7905" }, { n: "The Front", v: "9497" }, { n: "Apex\u82F1\u96C4", v: "5011" }, { n: "\u751F\u5316\u5371\u673A4\u91CD\u5236\u7248", v: "8013" }, { n: "DayZ\u72EC\u7ACB\u7248", v: "1125" }, { n: "\u661F\u7A7A", v: "7857" }, { n: "\u4E92\u52A8\u5267\u6E38", v: "6919" }, { n: "\u827E\u5C14\u767B\u6CD5\u73AF", v: "5801" }, { n: "\u6050\u60E7\u4E4B\u95F4", v: "6679" }, { n: "SCUM", v: "4245" }, { n: "Dread Hunger", v: "7601" }, { n: "\u585E\u5C14\u8FBE\u4F20\u8BF4\uFF1A\u738B\u56FD\u4E4B\u6CEA", v: "7883" }, { n: "\u6B27\u6D32\u5361\u8F66\u6A21\u62DF", v: "475" }, { n: "\u6D1B\u514B\u738B\u56FD", v: "2864" }, { n: "\u5367\u9F99\uFF1A\u82CD\u5929\u9668\u843D", v: "7859" }, { n: "\u65E0\u4EBA\u6DF1\u7A7A", v: "2566" }, { n: "\u5E1D\u56FD\u795E\u8BDD", v: "6821" }, { n: "\u9965\u8352", v: "74" }, { n: "\u68EE\u6797\u4E4B\u5B50", v: "7943" }, { n: "\u661F\u7403\u5927\u6218\u7CFB\u5217", v: "554" }, { n: "\u6781\u9650\u7ADE\u901F\uFF1A\u5730\u5E73\u7EBF", v: "2634" }, { n: "\u6700\u7EC8\u5E7B\u60F316", v: "7869" }, { n: "Among Us", v: "6163" }, { n: "\u602A\u7269\u730E\u4EBA\uFF1A\u5D1B\u8D77", v: "6479" }, { n: "\u602A\u7269\u730E\u4EBA\u7269\u8BED", v: "7101" }, { n: "\u9A91\u9A6C\u4E0E\u780D\u6740\u7CFB\u5217", v: "4783" }, { n: "\u8352\u91CE\u5927\u9556\u5BA22", v: "4319" }, { n: "\u592A\u8352\u521D\u5883", v: "7685" }, { n: "\u7F57\u5E03\u4E50\u601D", v: "5771" }, { n: "\u53EA\u72FC\uFF1A\u5F71\u901D\u4E8C\u5EA6", v: "4505" }, { n: "\u53CC\u4EBA\u6210\u884C", v: "6737" }, { n: "\u91CD\u751F\u8FB9\u7F18", v: "6201" }, { n: "\u6D77\u8D3C\u738B \u5BFB\u79D8\u4E16\u754C", v: "5097" }, { n: "\u6218\u795E\uFF1A\u8BF8\u795E\u9EC4\u660F", v: "7771" }, { n: "\u6050\u9B3C\u75C7", v: "6205" }, { n: "\u9B3C\u8C37\u516B\u8352", v: "6571" }, { n: "\u970D\u683C\u6C83\u8328\u4E4B\u9057", v: "7881" }, { n: "\u5168\u9762\u6218\u4E89", v: "3521" }, { n: "\u4EC1\u738B2", v: "5795" }, { n: "\u5965\u62C9\u661F", v: "2846" }, { n: "\u751C\u871C\u4E4B\u5BB6", v: "6739" }, { n: "\u4ED9\u5251\u5947\u4FA0\u4F20\u4E03", v: "6509" }, { n: "\u6D88\u901D\u7684\u5149\u82922", v: "7581" }, { n: "\u6E21\u795E\u8BB0", v: "6231" }, { n: "\u5F52\u5BB6\u5F02\u9014", v: "2949" }, { n: "\u535A\u5FB7\u4E4B\u95E83", v: "6147" }, { n: "\u770B\u95E8\u72D7\uFF1A\u519B\u56E2", v: "6155" }, { n: "\u4F7F\u547D\u53EC\u5524\u7CFB\u5217", v: "100137" }, { n: "\u80B2\u78A7\u6E38\u620F", v: "100139" }, { n: "\u5E1D\u56FD\u65F6\u4EE34", v: "4835" }, { n: "\u82F1\u7075\u795E\u6BBF", v: "6609" }, { n: "\u86EE\u8352\u5FD7\u5F02\uFF1A\u8D77\u6E90", v: "9709" }, { n: "\u5C9B", v: "3019" }, { n: "\u6C99\u76D2\u4E0E\u526F\u672C", v: "9151" }, { n: "\u626B\u96F7", v: "2349" }, { n: "\u8857\u673A\u6E38\u620F", v: "5999" }, { n: "\u5E7D\u7075\u7EBF\uFF1A\u4E1C\u4EAC", v: "7669" }, { n: "\u602A\u7269\u730E\u4EBA\u4E16\u754C", v: "3519" }, { n: "\u76D7\u8D3C\u4E4B\u6D77", v: "3641" }, { n: "\u7EB8\u4EBA", v: "5257" }, { n: "\u9ED1\u8272\u50CF\u7D20\u4EBA", v: "28" }, { n: "\u5BF9\u9A6C\u5C9B\u4E4B\u9B42", v: "6039" }, { n: "\u745E\u5947\u4E0E\u53EE\u5F53", v: "2455" }, { n: "\u6E2F\u8BE1\u5B9E\u5F55", v: "5853" }, { n: "\u5251\u58EB", v: "1467" }, { n: "\u9B54\u6CD5\u95E8\u4E4B\u82F1\u96C4\u65E0\u654C\u7CFB\u5217", v: "2096" }, { n: "\u661F\u9732\u8C37\u7269\u8BED", v: "2443" }, { n: "\u4ED9\u5251\u5947\u4FA0\u4F20\u56DB", v: "1659" }, { n: "\u4F24\u5BB3\u4E16\u754C", v: "2337" }, { n: "\u7981\u95ED\u6C42\u751F", v: "6065" }, { n: "\u771F\u4E09\u56FD\u65E0\u53CC", v: "1599" }, { n: "\u6050\u6016\u9ECE\u660E", v: "3435" }, { n: "\u5176\u4ED6\u5355\u673A", v: "3069" }, { n: "\u5E7D\u7075\u884C\u52A8\uFF1A\u8352\u91CE", v: "2794" }, { n: "\u8FB9\u7F18", v: "151" }, { n: "\u963F\u51E1\u8FBE", v: "106" }, { n: "\u5168\u9762\u6218\u4E89\uFF1A\u4E09\u56FD", v: "3004" }, { n: "\u9ECE\u660E\u4E4B\u661F", v: "40" }, { n: "\u7FFC\u661F\u6C42\u751F", v: "7463" }, { n: "\u9ECE\u660E\u4F20\u8BF4", v: "39" }, { n: "\u6076\u9B54\u4E4B\u9B42", v: "6151" }, { n: "\u827E\u5170\u5C9B", v: "3855" }, { n: "\u9F99\u4E0E\u5730\u4E0B\u57CE\uFF1A\u79D8\u5F71\u5386\u4EE3\u8BB0HD", v: "17" }, { n: "\u9F99\u4E0E\u5730\u4E0B\u57CE\uFF1A\u5315\u9996\u8C37", v: "18" }, { n: "\u6C99\u77F3\u9547\u65F6\u5149", v: "7687" }, { n: "\u4E09\u56FD\u5FD7\u66F9\u64CD\u4F20", v: "2592" }, { n: "FIFA\u8DB3\u7403", v: "1888" }, { n: "\u6700\u7EC8\u5E7B\u60F37\uFF1A\u91CD\u5236\u7248", v: "5809" }, { n: "\u56DB\u6D77\u5144\u5F1F", v: "5995" }, { n: "\u6700\u7EC8\u5E7B\u60F3\uFF1A\u8D77\u6E90", v: "7653" }, { n: "\u6454\u8DE4\u57CE\u5927\u4E71\u6597", v: "7773" }, { n: "\u97F3\u4E50\u6E38\u620F", v: "2761" }, { n: "\u7CBE\u7075\u4E0E\u8424\u706B\u610F\u5FD7", v: "5895" }, { n: "\u6865\u6881\u5EFA\u9020\u5E08", v: "3275" }, { n: "\u54C8\u8FEA\u65AF", v: "6153" }, { n: "\u5C0F\u7F07\u5A1C\u7684\u5947\u5E7B\u4E4B\u5730", v: "7647" }, { n: "\u5B9D\u53EF\u68A6\uFF1A\u5251\u76FE", v: "5715" }, { n: "\u8FB9\u5883", v: "4779" }, { n: "\u4EBA\u7C7B\u4E00\u8D25\u6D82\u5730", v: "3289" }, { n: "\u7CD6\u8C46\u4EBA\uFF1A\u7EC8\u6781\u6DD8\u6C70\u8D5B", v: "6083" }, { n: "\u7CBE\u7075\u5B9D\u53EF\u68A6Let's Go", v: "4375" }, { n: "\u6218\u952440K\uFF1A\u6697\u6F6E", v: "3016" }, { n: "\u77F3\u6CB9\u9A9A\u52A8", v: "2585" }, { n: "\u7D2B\u585E\u79CB\u98CE", v: "6045" }, { n: "\u963F\u5C14\u6BD4\u6069", v: "8115" }, { n: "\u730E\u4EBA\uFF1A\u8352\u91CE\u7684\u53EC\u5524", v: "2906" }, { n: "FIFA 23", v: "7789" }, { n: "\u90FD\u5E02\uFF1A\u5929\u9645\u7EBF", v: "2201" }, { n: "\u4E50\u9AD8\u5927\u7535\u5F71\uFF1A\u6E38\u620F\u7248", v: "1439" }, { n: "\u5168\u9762\u6218\u4E89\uFF1A\u963F\u63D0\u62C9", v: "2383" }, { n: "\u65A9\u5996\u884C", v: "6105" }, { n: "\u9A6C\u91CC\u5965\u8D5B\u8F668", v: "5947" }, { n: "\u590D\u4EC7\u8005\u8054\u76DF", v: "6121" }, { n: "\u9713\u8679\u6DF1\u6E0A", v: "5743" }] }], 3: [{ key: "cateId", name: "\u5206\u7C7B", init: "2336", value: [{ n: "\u738B\u8005\u8363\u8000", v: "2336" }, { n: "\u548C\u5E73\u7CBE\u82F1", v: "3203" }, { n: "\u82F1\u96C4\u8054\u76DF\u624B\u6E38", v: "6203" }, { n: "CF\u624B\u6E38", v: "2413" }, { n: "\u91D1\u94F2\u94F2\u4E4B\u6218", v: "7185" }, { n: "\u4E09\u56FD\u6740", v: "1669" }, { n: "\u539F\u795E", v: "5489" }, { n: "\u68CB\u724C\u684C\u6E38", v: "100036" }, { n: "\u7EFC\u5408\u624B\u6E38", v: "100029" }, { n: "\u52B2\u4E50\u5E7B\u60F3", v: "7691" }, { n: "\u65B0\u6E38\u5E7F\u573A", v: "100052" }, { n: "\u5D29\u574F\uFF1A\u661F\u7A79\u94C1\u9053", v: "7349" }, { n: "\u706B\u5F71\u5FCD\u8005\u624B\u6E38", v: "2429" }, { n: "\u7B2C\u4E94\u4EBA\u683C", v: "3115" }, { n: "\u95EE\u9053\u624B\u6E38", v: "2477" }, { n: "\u6697\u533A\u7A81\u56F4", v: "7209" }, { n: "QQ\u98DE\u8F66\u624B\u6E38", v: "2928" }, { n: "\u7403\u7403\u5927\u4F5C\u6218", v: "2411" }, { n: "\u660E\u65E5\u4E4B\u540E", v: "3483" }, { n: "\u7687\u5BA4\u6218\u4E89", v: "2439" }, { n: "COD\u624B\u6E38", v: "4769" }, { n: "\u624B\u6E38\u4F11\u95F2", v: "100004" }, { n: "\u4E8C\u6B21\u5143\u624B\u6E38", v: "100091" }, { n: "\u6478\u4E86\u4E2A\u9C7C", v: "9283" }, { n: "MMORPG", v: "100273" }, { n: "\u52A8\u4F5C\u6E38\u620F", v: "100197" }, { n: "\u6218\u4E89\u51B2\u7A81", v: "7449" }, { n: "\u738B\u8005\u6A21\u62DF\u6218", v: "5699" }, { n: "\u9006\u6C34\u5BD2\u624B\u6E38", v: "7725" }, { n: "\u5E7B\u5854", v: "6437" }, { n: "\u6B22\u4E50\u6597\u5730\u4E3B", v: "1749" }, { n: "\u795E\u6B664\u624B\u6E38", v: "3135" }, { n: "\u9634\u9633\u5E08", v: "2598" }, { n: "DNF\u624B\u6E38", v: "4921" }, { n: "\u6B22\u4E50\u9EBB\u5C06", v: "1751" }, { n: "\u82F1\u96C4\u8054\u76DF\u7535\u7ADE\u7ECF\u7406", v: "7177" }, { n: "\u72FC\u4EBA\u6740\u624B\u6E38", v: "100049" }, { n: "\u65B0\u5929\u9F99\u516B\u90E8\u624B\u6E38", v: "6945" }, { n: "\u4E2D\u56FD\u8C61\u68CB", v: "1671" }, { n: "\u5929\u5929\u8C61\u68CB", v: "4997" }, { n: "\u4F20\u5947\u4E16\u754C3D", v: "3961" }, { n: "\u5FA1\u9F99\u5728\u5929\u624B\u6E38", v: "2568" }, { n: "\u9AD8\u80FD\u82F1\u96C4", v: "8359" }, { n: "\u5929\u9F99\u516B\u90E8\u624B\u6E38", v: "2852" }, { n: "\u4E09\u56FD\u5FD7\u6218\u7565\u7248", v: "5619" }, { n: "\u5FCD\u8005\u5FC5\u987B\u6B7B3", v: "4041" }, { n: "SKY\u5149\u9047", v: "3719" }, { n: "\u864E\u7259\u9886\u4E3B\u4E89\u9738", v: "7529" }, { n: "\u4E91\u4E0A\u57CE\u4E4B\u6B4C", v: "5977" }, { n: "\u6676\u6838", v: "7279" }, { n: "\u4ED9\u5883\u4F20\u8BF4RO", v: "2675" }, { n: "\u5929\u5929\u72FC\u4EBA", v: "2774" }, { n: "JJ\u68CB\u724C", v: "3841" }, { n: "\u5947\u8FF9MU\uFF1A\u89C9\u9192", v: "3116" }, { n: "\u6307\u5C16\u56DB\u5DDD\u9EBB\u5C06", v: "7215" }, { n: "\u90E8\u843D\u51B2\u7A81", v: "1797" }, { n: "\u65B0\u5251\u4FA0\u60C5\u7F18\u624B\u6E38", v: "6259" }, { n: "\u840C\u5BA0\u8FDC\u5F81", v: "9385" }, { n: "\u6697\u9ED1\u7834\u574F\u795E\uFF1A\u4E0D\u673D", v: "6385" }, { n: "\u82F1\u96C4\u6740", v: "2688" }, { n: "\u70ED\u8840\u6C5F\u6E56\u624B\u6E38", v: "2817" }, { n: "\u86CB\u4ED4\u6D3E\u5BF9", v: "6909" }, { n: "\u5B8C\u7F8E\u4E16\u754C\u624B\u6E38", v: "4237" }, { n: "\u5DC5\u5CF0\u6218\u8230", v: "2502" }, { n: "\u72FC\u4EBA\u6740", v: "2785" }, { n: "\u6597\u7F57\u5927\u9646\uFF1A\u9B42\u5E08\u5BF9\u51B3", v: "6745" }, { n: "\u6B66\u4FA0\u4E42\u624B\u6E38", v: "4929" }, { n: "\u8BDB\u4ED9\u624B\u6E38", v: "2647" }, { n: "\u6597\u7834\u82CD\u7A79\u624B\u6E38", v: "4337" }, { n: "\u8FF7\u4F60\u4E16\u754C", v: "2683" }, { n: "\u98CE\u4E91", v: "3061" }, { n: "\u5984\u60F3\u5C71\u6D77", v: "6007" }, { n: "\u66D9\u5149\u82F1\u96C4", v: "6169" }, { n: "\u4E09\u56FD\u6218\u7EAA2", v: "6049" }, { n: "\u68A6\u5E7B\u65B0\u8BDB\u4ED9", v: "5975" }, { n: "\u9ECE\u660E\u89C9\u9192\uFF1A\u751F\u673A", v: "6131" }, { n: "\u8FDC\u5F81", v: "7837" }, { n: "\u822A\u6D77\u738B\uFF1A\u71C3\u70E7\u610F\u5FD7", v: "3943" }, { n: "\u706B\u70AC\u4E4B\u5149\uFF1A\u65E0\u9650", v: "6399" }, { n: "\u5DC5\u5CF0\u6781\u901F", v: "6979" }, { n: "\u5723\u5883\u4E4B\u5854", v: "7055" }, { n: "\u9B54\u529B\u5B9D\u8D1D", v: "2891" }, { n: "\u9999\u80A0\u6D3E\u5BF9", v: "3639" }, { n: "\u521B\u9020\u4E0E\u9B54\u6CD5", v: "2931" }, { n: "JJ\u6597\u5730\u4E3B", v: "6271" }, { n: "\u6C38\u6052\u7EAA\u5143\uFF1A\u6212", v: "2646" }, { n: "\u5929\u6DAF\u660E\u6708\u5200\u624B\u6E38", v: "5115" }, { n: "\u72FC\u4EBA\u6740\u5B98\u65B9", v: "3679" }, { n: "\u6DF7\u6C8C\u8D77\u6E90", v: "5985" }, { n: "\u591A\u591A\u81EA\u8D70\u68CB", v: "5133" }, { n: "\u68A6\u5E7B\u8BDB\u4ED9\u624B\u6E38", v: "2672" }, { n: "\u9E3F\u56FE\u4E4B\u4E0B", v: "6027" }, { n: "\u65B0\u7B11\u50B2\u6C5F\u6E56", v: "5669" }, { n: "\u51E1\u4EBA\u4FEE\u4ED9\u4F20\uFF1A\u4EBA\u754C\u7BC7", v: "8297" }, { n: "\u591A\u4E50\u68CB\u724C", v: "6209" }, { n: "\u53E3\u888B\u89C9\u9192", v: "5953" }, { n: "\u8DD1\u8DD1\u5361\u4E01\u8F66\u624B\u6E38", v: "2620" }, { n: "\u5976\u5757", v: "2775" }, { n: "\u6708\u5706\u4E4B\u591C", v: "4339" }, { n: "\u7387\u571F\u4E4B\u6EE8", v: "2691" }, { n: "\u5F81\u90142\u624B\u6E38", v: "2811" }, { n: "\u82F1\u9B42\u4E4B\u5203\u53E3\u888B\u7248", v: "2760" }, { n: "\u7CBE\u7075\u76DB\u5178\uFF1A\u9ECE\u660E", v: "6123" }, { n: "\u65B9\u821F\u624B\u6E38", v: "4035" }, { n: "\u63BC\u86CB", v: "6225" }, { n: "\u7EDD\u4E16\u4ED9\u738B", v: "6619" }, { n: "\u6D41\u661F\u7FA4\u4FA0\u4F20", v: "3927" }, { n: "\u5BFB\u4ED9\u624B\u6E38", v: "2979" }, { n: "\u4E00\u68A6\u6C5F\u6E56", v: "3082" }, { n: "Lost Light\uFF08\u8424\u706B\u7A81\u51FB\u56FD\u9645\u670D\uFF09", v: "6859" }, { n: "\u5F39\u5E55\u4E91\u6E38\u620F", v: "7001" }, { n: "\u730E\u9B42\u89C9\u9192", v: "3071" }, { n: "\u5192\u9669\u5C9B\uFF1A\u67AB\u4E4B\u4F20\u8BF4", v: "8005" }, { n: "\u5F81\u9014\u624B\u6E38", v: "2556" }, { n: "\u6D77\u5C9B\u5947\u5175", v: "2624" }, { n: "\u5029\u5973\u5E7D\u9B42\u624B\u6E38", v: "2503" }, { n: "\u8D85\u51E1\u5148\u950B", v: "6507" }, { n: "\u9F99\u4E4B\u8C372\u624B\u6E38", v: "2736" }, { n: "\u5D29\u574F3", v: "2639" }, { n: "\u732B\u548C\u8001\u9F20", v: "2758" }, { n: "\u4E03\u4EBA\u4F20\u5947\uFF1A\u5149\u4E0E\u6697\u4E4B\u4EA4\u6218", v: "8125" }, { n: "JJ\u9EBB\u5C06", v: "9487" }, { n: "\u62C9\u8F70\u897F\u6E38", v: "9543" }, { n: "\u4E09\u56FD\u6218\u7EAA", v: "6047" }, { n: "\u81EA\u7531\u5E7B\u60F3\u624B\u6E38", v: "4015" }, { n: "\u79E6\u65F6\u660E\u6708\u4E16\u754C", v: "5279" }, { n: "\u65B0\u6597\u7F57\u5927\u9646", v: "6657" }, { n: "\u65B0\u795E\u9B54\u5927\u9646", v: "5939" }, { n: "\u9003\u8DD1\u5427\uFF01\u5C11\u5E74", v: "4137" }, { n: "\u592A\u53E4\u795E\u738B2", v: "6649" }, { n: "\u5251\u4FA0\u4E16\u754C3", v: "7183" }, { n: "\u5929\u5929\u5403\u9E21\u624B\u673A\u7248", v: "4341" }, { n: "\u65F6\u7A7A\u730E\u4EBA3", v: "6411" }, { n: "\u5408\u91D1\u5F39\u5934\uFF1A\u89C9\u9192", v: "6931" }, { n: "\u660E\u65E5\u65B9\u821F", v: "4925" }, { n: "\u539F\u59CB\u5F81\u9014", v: "7713" }, { n: "\u5947\u8FF9\uFF1A\u6700\u5F3A\u8005", v: "3215" }, { n: "\u5929\u5929\u9177\u8DD1", v: "1715" }, { n: "FC \u8DB3\u7403\u4E16\u754C", v: "3873" }, { n: "\u4E07\u56FD\u89C9\u9192", v: "6159" }, { n: "\u673A\u52A8\u90FD\u5E02\u963F\u5C14\u6CD5", v: "5411" }, { n: "\u822A\u6D77\u738B\u70ED\u8840\u822A\u7EBF", v: "6181" }, { n: "\u5E7B\u4E16\u4E5D\u6B4C", v: "7199" }, { n: "\u690D\u7269\u5927\u6218\u50F5\u5C38", v: "485" }, { n: "\u65E0\u6094\u534E\u590F", v: "7063" }, { n: "\u65F6\u7A7A\u730E\u4EBA", v: "1742" }, { n: "\u8352\u91CE\u4E71\u6597", v: "4613" }, { n: "\u62F3\u768798\u7EC8\u6781\u4E4B\u6218OL", v: "2687" }, { n: "\u86C7\u86C7\u4E89\u9738", v: "2680" }, { n: "\u738B\u724C\u7ADE\u901F", v: "6463" }, { n: "\u91CD\u8FD4\u5E1D\u56FD", v: "6955" }, { n: "\u541E\u566C\u661F\u7A7A\uFF1A\u9ECE\u660E", v: "6651" }, { n: "\u53E3\u888B\u5996\u602A", v: "2541" }, { n: "QQ\u70AB\u821E\u624B\u6E38", v: "2991" }, { n: "\u4E00\u62F3\u8D85\u4EBA\uFF1A\u6700\u5F3A\u4E4B\u7537", v: "4629" }, { n: "\u8363\u8000\u65B0\u4E09\u56FD", v: "6943" }, { n: "\u5C11\u5E74\u4E09\u56FD\u5FD72", v: "6125" }, { n: "\u6211\u7684\u8D77\u6E90", v: "5365" }, { n: "\u51B3\u6218\u5E73\u5B89\u4EAC", v: "3064" }, { n: "\u5251\u70752", v: "7223" }, { n: "\u5F00\u5FC3\u6D88\u6D88\u4E50", v: "1712" }, { n: "\u5C0F\u5C0F\u8681\u56FD", v: "7803" }, { n: "\u6700\u5F3ANBA", v: "2988" }, { n: "\u5251\u4FA0\u60C5\u7F18\u624B\u6E38", v: "2621" }, { n: "\u957F\u5B89\u5E7B\u60F3", v: "6727" }, { n: "\u6211\u53EBMT4", v: "4087" }, { n: "\u5168\u660E\u661F\u8857\u7403\u6D3E\u5BF9", v: "8401" }, { n: "\u5927\u8BDD\u897F\u6E38\u624B\u6E38", v: "2626" }, { n: "\u8363\u8000\u5927\u5929\u4F7F", v: "6477" }, { n: "\u9547\u9B42\u8857\uFF1A\u5929\u751F\u4E3A\u738B", v: "6557" }, { n: "\u6469\u5C14\u5E84\u56ED", v: "5981" }, { n: "\u6E38\u620F\u738B\uFF1A\u51B3\u6597\u94FE\u63A5", v: "4451" }, { n: "\u5251\u4FA0\u4E16\u754C2\u624B\u6E38", v: "3150" }, { n: "\u9752\u4E91\u8BC02", v: "6009" }, { n: "\u6218\u5730\u65E0\u7586", v: "7909" }, { n: "\u4E00\u5FF5\u900D\u9065", v: "6419" }, { n: "\u6C38\u52AB\u65E0\u95F4\u624B\u6E38", v: "7579" }, { n: "\u5C18\u767D\u7981\u533A", v: "7297" }, { n: "\u5143\u68A6\u4E4B\u661F", v: "9521" }, { n: "\u4E0D\u826F\u4EBA3", v: "5891" }, { n: "\u5251\u7075\uFF1A\u9769\u547D", v: "4545" }, { n: "\u9B54\u529B\u5B9D\u8D1D\uFF1A\u65C5\u4EBA", v: "7573" }, { n: "\u7C73\u52A0\u5C0F\u9547", v: "7269" }, { n: "\u9F99\u6B66\u624B\u6E38", v: "5219" }, { n: "\u6597\u7F57\u5927\u96462\uFF1A\u7EDD\u4E16\u5510\u95E8", v: "6581" }, { n: "\u897F\u884C\u7EAA\u71C3\u9B42", v: "8303" }, { n: "\u5766\u514B\u4E16\u754C\u95EA\u51FB\u6218", v: "4977" }, { n: "\u519B\u68CB", v: "2561" }, { n: "\u9965\u8352\uFF1A\u65B0\u5BB6", v: "6491" }, { n: "\u62F3\u7687\u547D\u8FD0", v: "3379" }, { n: "\u5B9E\u51B5\u8DB3\u7403", v: "3741" }, { n: "\u6218\u8230\u4E16\u754C\u95EA\u51FB\u6218", v: "4101" }, { n: "\u65F6\u7A7A\u53EC\u5524", v: "2551" }, { n: "\u738B\u724C\u6218\u4E89\uFF1A\u6587\u660E\u91CD\u542F", v: "5479" }, { n: "\u96C0\u9B42\u9EBB\u5C06", v: "7107" }, { n: "\u6B22\u4E50\u5347\u7EA7", v: "3925" }, { n: "\u7EFF\u8272\u5F81\u9014", v: "4227" }, { n: "\u5F39\u5F39\u5802\u624B\u6E38", v: "2857" }, { n: "\u592A\u6781\u718A\u732B3\uFF1A\u730E\u9F99", v: "2778" }, { n: "\u54C8\u5229\u6CE2\u7279\uFF1A\u9B54\u6CD5\u89C9\u9192", v: "5835" }, { n: "\u5929\u5730\u52AB\uFF1A\u5E7D\u57CE\u518D\u4E34", v: "5987" }, { n: "\u70ED\u8840\u8857\u7BEE", v: "5859" }, { n: "\u795E\u96D5\u4FA0\u4FA3\u624B\u6E38", v: "1781" }, { n: "\u5C71\u6D77\u955C\u82B1", v: "5089" }, { n: "\u4E09\u56FD\u5FD7\u6218\u68CB\u7248", v: "7937" }, { n: "\u795E\u96D5\u4FA0\u4FA32", v: "4209" }, { n: "\u4ED9\u9B54\u51B3", v: "1674" }, { n: "\u738B\u8005\u8363\u8000\u661F\u4E4B\u7834\u6653", v: "7927" }, { n: "\u6211\u5728\u6C5F\u6E56\u4E4B\u795E\u9B54\u9053", v: "7699" }, { n: "\u68A6\u5E7B\u6A21\u62DF\u6218", v: "3481" }, { n: "\u5355\u673A\u624B\u6E38", v: "2777" }, { n: "\u6597\u7F57\u5927\u9646-\u6597\u795E\u518D\u4E34", v: "6631" }, { n: "\u672A\u6765\u4E4B\u5F79", v: "6831" }, { n: "\u98CE\u4E91\u5C9B\u884C\u52A8", v: "4695" }, { n: "\u65B0\u6E38\u63A8\u8350", v: "3160" }, { n: "\u706B\u5F71\u5FCD\u8005OL", v: "3901" }, { n: "\u4E5D\u7075\u795E\u57DF", v: "7719" }, { n: "\u6B66\u52A8\u4E7E\u5764", v: "3829" }, { n: "\u79E6\u65F6\u660E\u67082", v: "1784" }, { n: "\u6587\u660E\u4E0E\u5F81\u670D", v: "7071" }, { n: "\u6218\u53CC\uFF1A\u5E15\u5F25\u4EC0", v: "4133" }, { n: "\u5927\u822A\u6D77\u65F6\u4EE3\uFF1A\u6D77\u4E0A\u9738\u4E3B", v: "6929" }, { n: "\u5251\u7F511\uFF1A\u5F52\u6765", v: "7361" }, { n: "\u7EDD\u533A\u96F6", v: "7711" }, { n: "\u9ED1\u8272\u6C99\u6F20\u624B\u6E38", v: "7287" }, { n: "\u864E\u7259\u5403\u9E21", v: "7465" }, { n: "\u4E00\u5251\u65A9\u4ED9", v: "6843" }, { n: "\u4F20\u5947\u5929\u4E0B", v: "6927" }, { n: "\u6597\u6597\u5802", v: "7133" }, { n: "\u6597\u7F57\u5927\u9646", v: "6119" }, { n: "\u5929\u8C15\u624B\u6E38", v: "5925" }, { n: "\u574E\u516C\u9A91\u51A0\u5251", v: "6641" }, { n: "\u6700\u7EC8\u5E7B\u60F3\u89C9\u9192", v: "2721" }, { n: "\u795E\u5C06\u4E09\u56FD", v: "6621" }, { n: "\u704C\u7BEE\u9AD8\u624B\u6B63\u7248\u6388\u6743\u624B\u6E38", v: "5399" }, { n: "\u5251\u4E0E\u5BB6\u56ED", v: "2838" }, { n: "\u6781\u65E0\u53CC2", v: "7825" }, { n: "\u5149\u660E\u5927\u9646", v: "2832" }, { n: "\u8352\u91CE\u884C\u52A8", v: "3084" }, { n: "\u6218\u6597\u6CD5\u5219", v: "9513" }, { n: "\u75AF\u72C2\u539F\u59CB\u4EBA", v: "4619" }, { n: "\u9006\u6218\u624B\u6E38", v: "7575" }, { n: "\u77F3\u5668\u65F6\u4EE3\uFF1A\u89C9\u9192", v: "9159" }] }], 8: [{ key: "cateId", name: "\u5206\u7C7B", init: "1663", value: [{ n: "\u661F\u79C0", v: "1663" }, { n: "\u6237\u5916", v: "2165" }, { n: "\u4E00\u8D77\u770B", v: "2135" }, { n: "\u4E8C\u6B21\u5143", v: "2633" }, { n: "\u865A\u62DF\u5076\u50CF", v: "6055" }, { n: "\u65C5\u6E38", v: "6791" }, { n: "\u653E\u6620\u5385", v: "6245" }, { n: "\u5A31\u4E50\u5929\u5730", v: "100022" }, { n: "\u4EA4\u53CB", v: "4079" }, { n: "\u7EC4\u961F", v: "5367" }, { n: "\u5403\u559D\u73A9\u4E50", v: "100044" }, { n: "\u539F\u521B", v: "6861" }, { n: "\u864E\u7259\u6587\u5316", v: "4089" }, { n: "\u4F53\u80B2", v: "2356" }, { n: "\u864E\u7259\u5730\u65B9", v: "5123" }, { n: "\u989C\u503C", v: "2168" }, { n: "\u79D1\u6280", v: "2408" }, { n: "\u97F3\u4E50", v: "3793" }, { n: "\u8DA3\u5206\u4EAB", v: "5883" }, { n: "\u4E00\u8D77\u4E70", v: "7759" }, { n: "\u6D3E\u5BF9", v: "7785" }] }] }, this.customArea.length > 0) { let e = this.customArea.split("#"); this.classes.unshift({ type_id: "custom", type_name: "\u81EA\u9009" }); let n = B.map(e, i => { let l = i.split(","); return { n: l[1], v: l[0] } }), r = n[0]; this.filterObj.custom = [{ key: "cateId", name: "\u5206\u7C7B", init: r.v, value: n }] } if (this.isJustLive) { let e = Object.keys(this.filterObj); for (let n of e) { let r = this.filterObj[n]; for (let i of r) i.value = B.map(i.value, l => (l.v === i.init && (i.init = l.n), { n: l.n, v: l.n })) } } this.classes.unshift({ type_id: "home", type_name: "\u9996\u9875" }) } async setHome(e) { await this.setClasses(), await this.setFilterObj() } async parseVodShortListFromJson(e) { let n = []; if (this.isJustLive) for (let r of e.data) { let i = new Ne; i.vod_id = r.roomId, i.vod_name = r.ownerName + r.roomName, i.vod_pic = r.roomPic, i.vod_remarks = r.categoryName, n.push(i) } else for (let r of e.data.datas) { let i = new Ne; i.vod_id = r.profileRoom, i.vod_name = r.nick + r.introduction, i.vod_pic = r.screenshot, i.vod_remarks = r.gameFullName, n.push(i) } return n } getPlayUrlData(e, n) { let r = e.sHlsUrl + "/" + e.sStreamName + "." + e.sHlsUrlSuffix, l = unescape(e.sHlsAntiCode).split("&"); l = l.filter(N => N !== ""); let s = {}; for (let N of l) { let [R, U] = N.split("="); s[R] = U } let a = zV(s.fm), u = vi(a).split("_")[0], c = s.ctype || "", f = s.txyp || "", m = s.fs || "", d = s.t || "", y = 1463993859134, _ = Date.now(), S = Math.floor(_ + y), w = (Math.floor(_ / 1e3) + 3600).toString(16), E = S + "|" + c + "|" + d, g = sb(E), v = u + "_" + y + "_" + e.sStreamName + "_" + g + "_" + w, x = sb(v), O = `${r}?wsSecret=${x}&wsTime=${w}&seqid=${S}&ctype=${c}&ver=1&txyp=${f}&fs=${m}&ratio=${n}&u=${y}&t=${d}&sv=2107230339`; return { cdnType: e.sCdnType, playUrl: O } } async parseVodDetailfromJson(e, n, r) { let i = new Be; i.vod_name = e.introduction ?? e.sIntroduction, i.vod_pic = e.screenshot ?? e.sScreenshot, i.vod_remarks = e.gameFullName ?? e.sGameFullName, i.type_name = e.gameFullName ?? e.sGameFullName, i.vod_director = e.nick ?? e.sNick, i.vod_content = e.activityCount ?? e.lActivityCount, i.vod_content = i.vod_content + "\u4EBA\u5728\u7EBF"; let l = [], s = []; for (let a of n) { let o = []; for (let u of r) { let c = this.huYaPlayForamtObj[a.sCdnType]; if (c === u.sDisplayName) { let f = this.getPlayUrlData(a, u.iBitRate); l.push(c), o.push("\u864E\u7259\u76F4\u64AD$" + f.playUrl), s.push(o.join("#")); break } } } return i.vod_play_from = l.join("$$$"), i.vod_play_url = s.join("$$$"), i } async parseVodDetailFromDoc(e, n) { let r = new Be; r.vod_name = e.data.roomName, r.vod_director = e.data.ownerName, r.vod_pic = e.data.roomPic, r.vod_remarks = e.data.categoryName, r.vod_content = e.data.online + "\u4EBA\u5728\u7EBF"; let i = [], l = []; for (let s of Object.keys(this.livePlayForamtObj)) { let a = []; n.data.hasOwnProperty(s) && (i.push(this.livePlayForamtObj[s]), a.push("JustLive$" + n.data[s]), l.push(a.join("#"))) } return r.vod_play_from = i.join("$$$"), r.vod_play_url = l.join("$$$"), r } async parseVodShortListFromDocBySearch(e) { let n = []; for (let r of e.response[3].docs) { let i = new Ne; i.vod_id = r.room_id, i.vod_name = r.game_nick + r.game_introduction, i.vod_pic = r.game_screenshot, i.vod_remarks = r.game_name, n.push(i) } return n } async setCategory(e, n, r, i) { (n <= 0 || typeof n > "u") && (n = 1); let l = "", s = {}; this.isJustLive ? (e === "home" ? l = this.siteUrl + "/api/live/getRecommendByPlatform?platform=huya&size=20&page=" + n : l = this.siteUrl + "/api/live/getRecommendByPlatformArea?platform=huya&size=20&area=" + i.cateId + "&page=" + n, s = JSON.parse(await this.fetch(l, null, this.getHeader()))) : (e === "home" ? l = this.siteUrl + "/cache.php?m=LiveList&do=getLiveListByPage&tagAll=1&page=" + n : l = this.siteUrl + "/cache.php?m=LiveList&do=getLiveListByPage&gameId=" + i.cateId + "&tagAll=0&page=" + n, s = JSON.parse(await this.fetch(l, null, this.getHeader()))), this.vodList = await this.parseVodShortListFromJson(s) } async setDetail(e) { let n = null, r = null; if (this.isJustLive) { await this.jadeLog.debug("JustLive", !0); let i = await this.fetch(this.siteUrl + `/api/live/getRoomInfo?platform=huya&roomId=${e}`, null, this.getHeader()), l = await this.fetch(this.siteUrl + `/api/live/getRealUrl?platform=huya&roomId=${e}`, null, this.getHeader()), s = JSON.parse(i), a = JSON.parse(l); this.vodDetail = await this.parseVodDetailFromDoc(s, a) } else { await this.jadeLog.debug("\u864E\u7259\u76F4\u64AD", !0); let i = await this.fetch("https://mp.huya.com/cache.php?m=Live&do=profileRoom&roomid=" + e, null, this.getHeader()), l = JSON.parse(i); n = l.data.liveData; let s = JSON.parse(n.bitRateInfo); r = l.data.stream.baseSteamInfoList, this.vodDetail = await this.parseVodDetailfromJson(n, r, s) } } async setSearch(e, n) { let r = await this.fetch("https://search.cdn.huya.com/?m=Search&do=getSearchContent&q=" + e + "&uid=0&v=4&typ=-5&livestate=0&rows=40&start=0", null, this.getHeader()), i = JSON.parse(r); this.vodList = await this.parseVodShortListFromDocBySearch(i) } }, Fn = new jS; var US = class extends Re { constructor() { super() } getName() { return Fn.getName() } getAppName() { return Fn.getAppName() } getJSName() { return Fn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Fn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Fn.initCookie(e.server.config.bilicookie), await Fn.spiderInit(e), Fn.cfgObj.code = 0, Fn.catOpenStatus = !0, Fn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Fn.setClasses(), this.classes = Fn.classes } async setFilterObj() { await Fn.setFilterObj(), this.filterObj = Fn.filterObj } async setHomeVod() { await Fn.setHomeVod(), this.homeVodList = Fn.homeVodList } async setCategory(e, n, r, i) { await Fn.setCategory(e, n, r, i), this.vodList = Fn.vodList } async setDetail(e) { await Fn.setDetail(e), this.vodDetail = Fn.vodDetail } async setPlay(e, n, r) { await Fn.setPlay(e, n, r), this.playUrl = Fn.playUrl, this.result = Fn.result } async setSearch(e, n, r) { await Fn.setSearch(e, n, r), this.vodList = Fn.vodList, this.result = Fn.result } async setProxy(e, n) { return await Fn.proxy(e, n) } }, Fo = new US; async function hY(t, e) { return await Fo.init(t, e) } async function mY(t, e) { return await Fo.home(t, e) } async function wAe(t, e) { return await Fo.homeVod(t, e) } async function yY(t, e) { return await Fo.category(t, e) } async function gY(t, e) { return await Fo.detail(t, e) } async function vY(t, e) { return await Fo.play(t, e) } async function _Y(t, e) { return await Fo.search(t, e) } async function SAe(t, e) { return await Fo.proxy(t, e) } var EY = { meta: { key: Fn.getJSName(), name: Fn.getName(), type: Fn.getType() }, api: async t => { t.post("/init", hY), t.post("/home", mY), t.post("/category", yY), t.post("/detail", gY), t.post("/play", vY), t.post("/search", _Y), t.get("/proxy/:what/:ids/:end", SAe) }, spider: { init: hY, home: mY, homeVod: wAe, category: yY, detail: gY, play: vY, search: _Y } }; var MS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.dygangs.xyz" } getAppName() { return "\u7535\u5F71\u6E2F" } getName() { return "\u{1F3D6}\uFE0F\u2503\u7535\u5F71\u6E2F\u2503\u{1F3D6}\uFE0F" } getJSName() { return "dygangs" } getType() { return 3 } async setClasses() { let e = await this.getHtml(), n = e(e('[class="top-nav"]')[0]).find("a"); for (let r of n) { let i = r.attribs.href.replaceAll(this.siteUrl, ""), l = e(r).text(); i !== "/" && this.classes.push(this.getTypeDic(l, i)) } } async getFilter(e, n) { let r = e('[class="nav-down-2 clearfix"]')[n], i = []; if (r !== void 0) { let l = "\u6309\u7C7B\u578B", s = { key: l, name: l, value: [] }; s.name = l, s.value.push({ n: "\u5168\u90E8", v: "0" }); for (let a of e(r).find("a")) { let o = e(a).html(), u = a.attribs.href.split("/").slice(-2)[0]; s.value.push({ n: o, v: u }) } i.push(s) } return i } async setFilterObj() { let e = 0; for (let n of this.classes.slice(1, 5)) { let r = n.type_id; if (r !== "\u6700\u8FD1\u66F4\u65B0") { let i = this.siteUrl + `${r}`, l = await this.getHtml(i); this.filterObj[r] = await this.getFilter(l, e) } e = e + 1 } } parseVodShortFromElement(e, n) {
let r = new Ne; return r.vod_id = n.attribs.href, r.vod_name = n.attribs.title, r.vod_pic = e(n).find("img")[0].attribs["data-original"], r.vod_remarks = e(e(n).find("i")[0]).text().replaceAll(" ", "").replaceAll(`
`, ""), B.isEmpty(r.vod_pic) && (r.vod_pic = Q2 + "/resources/dygang.jpg"), r
} async parseVodShortListFromDoc(e) { let n = [], r = e('[class="index-tj-l"]').find("li"); for (let i of r) { let l = e(i).find("a")[0], s = this.parseVodShortFromElement(e, l); n.push(s) } return n } async parseVodShortListFromDocByCategory(e) { let n = [], r = e('[class="index-area clearfix"]').find("li"); for (let i of r) { let l = e(i).find("a")[0], s = this.parseVodShortFromElement(e, l); n.push(s) } return n } async parseVodDetailFromDoc(e) {
let n = new Be, r = e('[ class="ct mb clearfix"]'); n.vod_pic = e(r).find("img")[0].attribs.src, n.vod_name = Te(/◎片  名 (.*?)<br>/, e(r).html()), n.vod_area = Te(/◎产  地 (.*?)<br>/, e(r).html()), n.vod_year = Te(/◎年  代 (.*?)<br>/, e(r).html()), n.type_name = Te(/◎类  别 (.*?)<br>/, e(r).html()), n.vod_remarks = Te(/◎集  数 (.*?)<br>/, e(r).html()); let i = Te(/◎主  演 (.*?)<\/p>/s, e(r).html()); B.isEmpty(i) && (i = Te(/◎演  员 (.*?)<\/p>/s, e(r).html())); let l = []; for (let f of i.split(`
`)) l.push(f.replaceAll("\u3000\u3000\u3000\u3000&nbsp; \u3000", "").replaceAll("<br>", "").replaceAll("\u3000\u3000\u3000\u3000\u3000", "")); n.vod_actor = l.join("/"), n.vod_director = Te(/◎导  演 (.*?)<br>/, e(r).html()), n.vod_content = Te(/◎简  介<\/p>(.*?)<br>/s, e(r).html()).replaceAll("<p>", "").replaceAll(`
`, ""), B.isEmpty(n.vod_content) && (n.vod_content = Te(/◎简  介<br>(.*?)<\/p>/s, e(r).html()).replaceAll("<p>", "").replaceAll(`
`, "")); let s = [], a = [], o = e('[class="playfrom tab8 clearfix"]'), u = e('[class="videourl clearfix"]'); for (let f = 0; f < o.length; f++) { let m = o[f], d = e(e(m).find("li")).html(); s.push(d.replaceAll('<i class="playerico ico-Azhan"></i> ', "")); let y = []; for (let _ of e(u[f]).find("a")) { let S = _.attribs.title, w = _.attribs.href; y.push(S + "$" + w) } a.push(y.join("#")) } let c = e(e(r).find("span")[0]).find("span"); if (c.length > 0) { let f = e(c).html(); s.push(Te(/【(.*?)】/, f.replaceAll("\u4E0B\u8F7D\u5730\u5740", "\u78C1\u529B\u94FE\u63A5"))); let m = []; for (let d of e(e(e(r).find("tbody")).find("tr")).find("a")) { let y = e(d).html().replaceAll(".mp4", ""), _ = d.attribs.href; m.push(y + "$" + _) } a.push(m.join("#")) } return n.vod_play_from = s.join("$$$"), n.vod_play_url = a.join("$$$"), n
} async setHomeVod() { let e = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setCategory(e, n, r, i) { let l = this.siteUrl + e; i.\u6309\u7C7B\u578B !== void 0 && i.\u6309\u7C7B\u578B !== "0" && (l = l + `${i.\u6309\u7C7B\u578B}/`), parseInt(n) > 1 && (l = l + `index_${n}.html`); let s = await this.getHtml(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) } async setDetail(e) { let n = await this.getHtml(e); this.vodDetail = await this.parseVodDetailFromDoc(n) } async setSearch(e, n) { let r = this.siteUrl + "/e/search/index.php", i = { keyboard: e, submit: "\u641C \u7D22", show: "title,zhuyan", tempid: "1" }, l = await this.post(r, i, this.getHeader()), s = $e(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) } async setPlay(e, n, r) { if (n.indexOf("http") > -1) { let i = await this.getHtml(n), l = Te(/url: '(.*?)',/, i.html()); if (B.isEmpty(l)) { let s = i(i('[class="video"]')[0]).find("iframe")[0].attribs.src, a = await this.fetch(s, null, { "User-Agent": zr }); if (this.playUrl = Te(/url: '(.*?)',/, a), B.isEmpty(this.playUrl)) { let o = qV(s); this.playUrl = o + Te(/var main = "(.*?)";/, a) } } else this.playUrl = l } else this.playUrl = n }
}, jn = new MS; var $S = class extends Re { constructor() { super() } getName() { return jn.getName() } getAppName() { return jn.getAppName() } getJSName() { return jn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await jn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await jn.initCookie(e.server.config.bilicookie), await jn.spiderInit(e), jn.cfgObj.code = 0, jn.catOpenStatus = !0, jn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await jn.setClasses(), this.classes = jn.classes } async setFilterObj() { await jn.setFilterObj(), this.filterObj = jn.filterObj } async setHomeVod() { await jn.setHomeVod(), this.homeVodList = jn.homeVodList } async setCategory(e, n, r, i) { await jn.setCategory(e, n, r, i), this.vodList = jn.vodList } async setDetail(e) { await jn.setDetail(e), this.vodDetail = jn.vodDetail } async setPlay(e, n, r) { await jn.setPlay(e, n, r), this.playUrl = jn.playUrl, this.result = jn.result } async setSearch(e, n, r) { await jn.setSearch(e, n, r), this.vodList = jn.vodList, this.result = jn.result } async setProxy(e, n) { return await jn.proxy(e, n) } }, jo = new $S; async function bY(t, e) { return await jo.init(t, e) } async function wY(t, e) { return await jo.home(t, e) } async function TAe(t, e) { return await jo.homeVod(t, e) } async function SY(t, e) { return await jo.category(t, e) } async function TY(t, e) { return await jo.detail(t, e) } async function xY(t, e) { return await jo.play(t, e) } async function AY(t, e) { return await jo.search(t, e) } async function xAe(t, e) { return await jo.proxy(t, e) } var OY = { meta: { key: jn.getJSName(), name: jn.getName(), type: jn.getType() }, api: async t => { t.post("/init", bY), t.post("/home", wY), t.post("/category", SY), t.post("/detail", TY), t.post("/play", xY), t.post("/search", AY), t.get("/proxy/:what/:ids/:end", xAe) }, spider: { init: bY, home: wY, homeVod: TAe, category: SY, detail: TY, play: xY, search: AY } }; var BS = class extends Fe {
constructor() { super(), this.siteUrl = "https://tvfan.xxooo.cf", this.woggTypeObj = { \u73A9\u5076\u7535\u5F71: "\u7535\u5F71", \u73A9\u5076\u5267\u96C6: "\u7535\u89C6\u5267" } } async init(e) { await super.init(e), await qi(this.cfgObj.token), this.danmuStaus = !0 } getName() { return "\u{1F482}\u200D\u2503\u963F\u91CC\u73A9\u5076\u2503\u{1F482}" } getAppName() { return "\u963F\u91CC\u73A9\u5076" } getJSName() { return "wogg" } getType() { return 3 } async parseVodShortListFromDoc(e) { let n = e(".module-item"), r = []; for (let i of n) { let l = new Ne, s = e(i).find(".module-item-cover .module-item-pic a").first(); l.vod_id = s.attr("href"), l.vod_name = s.attr("title"), l.vod_pic = e(i).find(".module-item-cover .module-item-pic img").first().attr("data-src"), l.vod_pic.indexOf("img.php?url=") > 0 && (l.vod_pic = l.vod_pic.split("img.php?url=")[1]), l.vod_remarks = e(i).find(".module-item-text").first().text(), r.push(l) } return r } async parseVodDetailFromDoc(e) { let n = new Be; n.vod_name = e(".page-title")[0].children[0].data, n.vod_pic = e(e(".mobile-play")).find(".lazyload")[0].attribs["data-src"], n.type_name = this.woggTypeObj[e('[class="video-info-aux"]').find("a")[0].attribs.title]; let r = e(".video-info-items"); n.vod_director = e(r[0]).find("a")[0].children[0].data; let i = e(r[1]).find("a"), l = []; for (let o of i) o.children.length > 0 && l.push(o.children[0].data); n.vod_actor = l.join(" * "), n.vod_year = e(r[2]).find("a")[0].children[0].data, n.vod_remarks = `${e(r[3]).find("div")[0].children[0].data}, \u5236\u4F5C\u4EBA:Jade`, n.vod_content = e(r[4]).find("p")[0].children[0].data, n.vod_content = n.vod_content.replace("[\u6536\u8D77\u90E8\u5206]", "").replace("[\u5C55\u5F00\u5168\u90E8]", ""); let s = [], a = e(".module-row-info"); for (let o of a) { let c = e(o).find("p")[0].children[0].data.match(lu); B.isEmpty(c) || s.push(c[1]) } if (s.length > 0) { let o = await Tl(s, n.type_name); n.vod_play_url = o.vod_play_url, n.vod_play_from = o.vod_play_from } else await this.jadeLog.warning("\u83B7\u53D6\u8BE6\u60C5\u754C\u9762\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:\u6CA1\u6709\u5206\u4EAB\u94FE\u63A5"); return n } async parseVodShortListFromDocBySearch(e) { let n = e(".module-search-item"), r = []; for (let i of n) { let l = new Ne; l.vod_id = e(i).find(".video-serial")[0].attribs.href, l.vod_name = e(i).find(".video-serial")[0].attribs.title, l.vod_pic = e(i).find(".module-item-pic > img")[0].attribs["data-src"], l.vod_remarks = "", r.push(l) } return r } get_extend_sort_dic(e) { let n = {}; return e < 4 ? n = { 1: 3, 2: 1, 3: 4, 4: 11, 5: 5, 6: 2 } : e === 4 ? n = { 1: 1, 2: 11, 3: 5, 4: 2 } : e === 6 ? n = { 1: 3, 2: 1, 3: 11, 4: 5, 5: 2 } : e === 5 && (n = { 1: 5, 2: 2 }), n } async setClasses() {
let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) {
let r = $e(e)(".nav-link"); for (let i of r) {
let l = parseInt(i.attribs.href.split("/").slice(-1)[0].split(".html")[0]), s = i.children.slice(-1)[0].data.replace(`
`, "").replace(" ", "").replace("\u73A9\u5076", ""), a = { type_id: l, type_name: s }; this.classes.push(a)
}
}
} async getFilter(e) { let n = e("[class='scroll-content']").slice(1), r = []; for (let i = 0; i < n.length; i++) { let l = { key: (i + 1).toString(), name: "", value: [] }; if (i < n.length - 1) { l.name = e(e(n[i]).find("a")[0]).text(), l.value.push({ n: "\u5168\u90E8", v: "0" }); for (let s of e(n[i]).find("a").slice(1)) l.value.push({ n: e(s).text(), v: e(s).text() }); r.push(l) } else l.name = e(e(n[i]).find("a")[0]).text(), l.value = [{ n: "\u5168\u90E8", v: "0" }, { n: e(e(n[i]).find("a")[1]).text(), v: "hits" }, { n: e(e(n[i]).find("a")[2]).text(), v: "score" }], r.push(l) } return r } async setFilterObj() { for (let e of this.classes) { let n = e.type_id; if (n !== "/" && n !== "\u6700\u8FD1\u66F4\u65B0") { let r = this.siteUrl + `/index.php/vodshow/${n}--------1---.html`, i = await this.fetch(r, null, this.getHeader()); if (i != null) { let l = $e(i); this.filterObj[n] = await this.getFilter(l) } } } } async setHomeVod() { let e = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(e)) { let n = $e(e); this.homeVodList = await this.parseVodShortListFromDoc(n) } } async setCategory(e, n, r, i) { let l = [e.toString(), "", "", "", "", "", "", "", n.toString(), "", "", ""], s = this.get_extend_sort_dic(parseInt(e)); for (let u of Object.keys(s)) i[u] === "0" ? l[s[u]] = "" : l[s[u]] = i[u]; let a = this.siteUrl + "/index.php/vodshow/" + l.join("-") + ".html", o = await this.fetch(a, null, this.getHeader()); if (!B.isEmpty(o)) { let u = $e(o); this.vodList = await this.parseVodShortListFromDoc(u); let c = Te(/\$\("\.mac_total"\)\.text\('(\d+)'\)/, o); this.limit = 72, c.length > 0 && (this.total = parseInt(c)), this.total <= this.limit ? this.count = 1 : this.count = Math.ceil(this.total / this.limit) } } async setDetail(e) { let n = this.siteUrl + e, r = await this.fetch(n, null, this.getHeader()); if (!B.isEmpty(r)) { let i = $e(r); this.vodDetail = await this.parseVodDetailFromDoc(i) } } async setPlay(e, n, r) { let i = await xl(e, n, r); this.playUrl = JSON.parse(i).url } async setSearch(e, n) { let r = this.siteUrl + "/index.php/vodsearch/-------------.html?wd=" + e, i = await this.fetch(r, null, this.getHeader()); if (!B.isEmpty(i)) { let l = $e(i); this.vodList = await this.parseVodShortListFromDocBySearch(l) } }
}, Un = new BS; var HS = class extends Re { constructor() { super() } getName() { return Un.getName() } getAppName() { return Un.getAppName() } getJSName() { return Un.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Un.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Un.initCookie(e.server.config.bilicookie), await Un.spiderInit(e), Un.cfgObj.code = 0, Un.catOpenStatus = !0, Un.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Un.setClasses(), this.classes = Un.classes } async setFilterObj() { await Un.setFilterObj(), this.filterObj = Un.filterObj } async setHomeVod() { await Un.setHomeVod(), this.homeVodList = Un.homeVodList } async setCategory(e, n, r, i) { await Un.setCategory(e, n, r, i), this.vodList = Un.vodList } async setDetail(e) { await Un.setDetail(e), this.vodDetail = Un.vodDetail } async setPlay(e, n, r) { await Un.setPlay(e, n, r), this.playUrl = Un.playUrl, this.result = Un.result } async setSearch(e, n, r) { await Un.setSearch(e, n, r), this.vodList = Un.vodList, this.result = Un.result } async setProxy(e, n) { return await Un.proxy(e, n) } }, Uo = new HS; async function NY(t, e) { return await Uo.init(t, e) } async function CY(t, e) { return await Uo.home(t, e) } async function AAe(t, e) { return await Uo.homeVod(t, e) } async function RY(t, e) { return await Uo.category(t, e) } async function IY(t, e) { return await Uo.detail(t, e) } async function kY(t, e) { return await Uo.play(t, e) } async function DY(t, e) { return await Uo.search(t, e) } async function OAe(t, e) { return await Uo.proxy(t, e) } var PY = { meta: { key: Un.getJSName(), name: Un.getName(), type: Un.getType() }, api: async t => { t.post("/init", NY), t.post("/home", CY), t.post("/category", RY), t.post("/detail", IY), t.post("/play", kY), t.post("/search", DY), t.get("/proxy/:what/:ids/:end", OAe) }, spider: { init: NY, home: CY, homeVod: AAe, category: RY, detail: IY, play: kY, search: DY } }; var VS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.pansearch.me/" } getName() { return "\u{1F5C2}\uFE0F\u2503\u963F\u91CC\u76D8\u641C\u2503\u{1F5C2}\uFE0F" } getAppName() { return "\u963F\u91CC\u76D8\u641C" } getJSName() { return "pan_search" } getType() { return 3 } getSearchHeader() { let e = this.getHeader(); return e["x-nextjs-data"] = "1", e } async init(e) { await super.init(e), await qi(this.cfgObj.token) } async parseVodDetailfromJson(e) {
let n = JSON.parse(e), r = new Be, i = n.content.split(`
`); r.vod_name = i[0].replaceAll(/<\\?[^>]+>/g, "").replace("\u540D\u79F0\uFF1A", ""); let l = new Date(n.time); r.vod_remarks = l.toLocaleDateString().replace(/\//g, "-") + " " + l.toTimeString().substr(0, 8), r.vod_pic = n.image; let s = ""; for (let a of i) a.indexOf("\u63CF\u8FF0") > -1 && (r.vod_content = a.replace("\u63CF\u8FF0\uFF1A", "").replaceAll(/<\\?[^>]+>/g, "")), a.indexOf("\u6807\u7B7E\uFF1A") > -1 && (r.type_name = a.replace("\u{1F3F7} \u6807\u7B7E\uFF1A", "")), a.indexOf("\u94FE\u63A5\uFF1A") > -1 && (s = a.replaceAll(/<\\?[^>]+>/g, "").replace("\u94FE\u63A5\uFF1A", "")); try { let a = await Tl([s]); r.vod_play_url = a.vod_play_url, r.vod_play_from = a.vod_play_from } catch (a) { await this.jadeLog.error(`\u83B7\u53D6\u963F\u91CC\u89C6\u9891\u64AD\u653E\u5931\u8D25,\u5931\u8D25\u539F\u56E0\u4E3A:${a}`) } return r
} async parseVodShortListFromDocBySearch(e, n) {
let r = [], i = JSON.parse(e("script[id=__NEXT_DATA__]")[0].children[0].data).buildId, l = this.siteUrl + "_next/data/" + i + "/search.json?keyword=" + encodeURIComponent(n) + "&pan=aliyundrive", s = await this.fetch(l, null, this.getSearchHeader()); if (B.isEmpty(s)) await this.jadeLog.error("\u641C\u7D22\u9875\u9762\u89E3\u6790\u5931\u8D25", !0); else {
let a = JSON.parse(s).pageProps.data.data; for (let o of a) {
let u = new Ne; u.vod_id = JSON.stringify(o); let c = o.content.split(`
`); u.vod_name = c[0].replaceAll(/<\\?[^>]+>/g, "").replace("\u540D\u79F0\uFF1A", ""); let f = new Date(o.time); u.vod_remarks = f.toLocaleDateString().replace(/\//g, "-") + " " + f.toTimeString().substr(0, 8), u.vod_pic = o.image, r.push(u)
} return r
}
} async setDetail(e) { this.vodDetail = await this.parseVodDetailfromJson(e) } async setSearch(e, n) { let r = await this.fetch(this.siteUrl, null, this.getHeader()); if (!B.isEmpty(r)) { let i = $e(r); this.vodList = await this.parseVodShortListFromDocBySearch(i, e) } } async play(e, n, r) { return await xl(e, n, r) }
}, Mn = new VS; var qS = class extends Re { constructor() { super() } getName() { return Mn.getName() } getAppName() { return Mn.getAppName() } getJSName() { return Mn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Mn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Mn.initCookie(e.server.config.bilicookie), await Mn.spiderInit(e), Mn.cfgObj.code = 0, Mn.catOpenStatus = !0, Mn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Mn.setClasses(), this.classes = Mn.classes } async setFilterObj() { await Mn.setFilterObj(), this.filterObj = Mn.filterObj } async setHomeVod() { await Mn.setHomeVod(), this.homeVodList = Mn.homeVodList } async setCategory(e, n, r, i) { await Mn.setCategory(e, n, r, i), this.vodList = Mn.vodList } async setDetail(e) { await Mn.setDetail(e), this.vodDetail = Mn.vodDetail } async setPlay(e, n, r) { await Mn.setPlay(e, n, r), this.playUrl = Mn.playUrl, this.result = Mn.result } async setSearch(e, n, r) { await Mn.setSearch(e, n, r), this.vodList = Mn.vodList, this.result = Mn.result } async setProxy(e, n) { return await Mn.proxy(e, n) } }, Mo = new qS; async function LY(t, e) { return await Mo.init(t, e) } async function FY(t, e) { return await Mo.home(t, e) } async function NAe(t, e) { return await Mo.homeVod(t, e) } async function jY(t, e) { return await Mo.category(t, e) } async function UY(t, e) { return await Mo.detail(t, e) } async function MY(t, e) { return await Mo.play(t, e) } async function $Y(t, e) { return await Mo.search(t, e) } async function CAe(t, e) { return await Mo.proxy(t, e) } var BY = { meta: { key: Mn.getJSName(), name: Mn.getName(), type: Mn.getType() }, api: async t => { t.post("/init", LY), t.post("/home", FY), t.post("/category", jY), t.post("/detail", UY), t.post("/play", MY), t.post("/search", $Y), t.get("/proxy/:what/:ids/:end", CAe) }, spider: { init: LY, home: FY, homeVod: NAe, category: jY, detail: UY, play: MY, search: $Y } }; var RAe = ["4k", "4K"], zS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.alypw.com" } async init(e) { await super.init(e), await qi(this.cfgObj.token) } getName() { return "\u{1F94F}\u200D\u2503\u963F\u91CC\u4E91\u76D8\u5206\u4EAB\u2503\u{1F94F}\u200D" } getAppName() { return "\u963F\u91CC\u4E91\u76D8\u5206\u4EAB" } getJSName() { return "aliyunpanshare" } getType() { return 3 } getRemarks(e, n) { if (B.isEmpty(e)) { for (let r of RAe) if (n.indexOf(r) > -1) return r } else return e } parseVodName(e) { let n = Te(/\[阿里云盘](.*?) /, e); return e.indexOf("\u5408\u96C6") > -1 || (B.isEmpty(n) && (n = Te(/\[阿里云盘](.*?)/, e)), n.indexOf("[") > -1 && (n = n.split("[")[0]), n.indexOf("\u3010") > -1 && (n = n.split("\u3010")[0]), n === "4K") ? "" : n } async parseVodShortListFromDoc(e) { let n = [], r = e(e('[class="hometab"]').find('[class="box"]')).find("li"); for (let i of r) { let l = e(i).find('[class="imgr"]')[0], s = new Ne; s.vod_id = e(l).find("a")[0].attribs.href; let a = e(l).find("a")[0].attribs.title; s.vod_name = this.parseVodName(a), s.vod_pic = e(i).find("img")[0].attribs.src, s.vod_remarks = this.getRemarks(Te(/【(.*?)】/, a), a), n.push(s) } return n } async parseVodShortListFromDocByCategory(e) { let n = [], r = e('[class="main container"]'), i = e(e(r).find('[class="list"]')).find("li"); i.length === 0 && (i = e(r).find("li")); for (let l of i) { let s = e(l).find("img")[0].attribs.alt.replaceAll("<strong>", "").replaceAll("</strong>", ""), a = new Ne; a.vod_id = e(l).find("a")[0].attribs.href, a.vod_name = this.parseVodName(s), a.vod_pic = e(l).find("img")[0].attribs.src, a.vod_remarks = this.getRemarks(Te(/【(.*?)】/, s), s), B.isEmpty(a.vod_name) || n.push(a) } return n } async parseVodDetailFromDoc(e) {
let n = e('[class="mainl"]'), r = e(e(n).find('[class="title"]')[0]).text(), i = new Be; i.vod_name = Te(/\[阿里云盘](.*?) /, r), i.vod_remarks = this.getRemarks(Te(/【(.*?)】/, r), r); let l = e(n).find('[class="article_content"]'); i.vod_pic = e(l).find("p>img")[0].attribs.src; let s = e(l).find("p"), a = ""; for (let f of s) a = a + e(f).text() + `
`; let o = [], u = Te(lu, a).split(`
`); for (let f of u) { let m = f.match(lu); B.isEmpty(m) || o.push(m[1]) } let c = await Tl(o); return i.vod_play_url = c.vod_play_url, i.vod_play_from = c.vod_play_from, i.type_name = Te(/标签(.*?)\n/, a).replaceAll("\uFF1A", ""), i.vod_content = Te(/描述(.*?)\n/, a).replaceAll("\uFF1A", ""), i
} async setClasses() { let e = await this.getHtml(), n = e("[id^='navbar-category']").find("a"), r = ["\u5F71", "\u5267", "4K", "\u89C6", "\u97F3", "\u6F14", "\u52A8\u6F2B"]; for (let i of n) { let l = e(i).text(), s = i.attribs.href, a = !1; for (let o of r) l.indexOf(o) > -1 && (a = !0); a && this.classes.push(this.getTypeDic(l, s)) } } async setHomeVod() { let e = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setCategory(e, n, r, i) { let l = e.split(".html")[0] + "_" + n + ".html", s = await this.getHtml(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) } async setDetail(e) { let n = await this.getHtml(e); this.vodDetail = await this.parseVodDetailFromDoc(n) } async setPlay(e, n, r) { let i = await xl(e, n, r); this.playUrl = JSON.parse(i).url } async setSearch(e, n) { let r = this.siteUrl + `/search.php?q=${e}`, i = await this.getHtml(r); this.vodList = await this.parseVodShortListFromDocByCategory(i) }
}, $n = new zS; var GS = class extends Re { constructor() { super() } getName() { return $n.getName() } getAppName() { return $n.getAppName() } getJSName() { return $n.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await $n.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await $n.initCookie(e.server.config.bilicookie), await $n.spiderInit(e), $n.cfgObj.code = 0, $n.catOpenStatus = !0, $n.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await $n.setClasses(), this.classes = $n.classes } async setFilterObj() { await $n.setFilterObj(), this.filterObj = $n.filterObj } async setHomeVod() { await $n.setHomeVod(), this.homeVodList = $n.homeVodList } async setCategory(e, n, r, i) { await $n.setCategory(e, n, r, i), this.vodList = $n.vodList } async setDetail(e) { await $n.setDetail(e), this.vodDetail = $n.vodDetail } async setPlay(e, n, r) { await $n.setPlay(e, n, r), this.playUrl = $n.playUrl, this.result = $n.result } async setSearch(e, n, r) { await $n.setSearch(e, n, r), this.vodList = $n.vodList, this.result = $n.result } async setProxy(e, n) { return await $n.proxy(e, n) } }, $o = new GS; async function HY(t, e) { return await $o.init(t, e) } async function VY(t, e) { return await $o.home(t, e) } async function IAe(t, e) { return await $o.homeVod(t, e) } async function qY(t, e) { return await $o.category(t, e) } async function zY(t, e) { return await $o.detail(t, e) } async function GY(t, e) { return await $o.play(t, e) } async function JY(t, e) { return await $o.search(t, e) } async function kAe(t, e) { return await $o.proxy(t, e) } var KY = { meta: { key: $n.getJSName(), name: $n.getName(), type: $n.getType() }, api: async t => { t.post("/init", HY), t.post("/home", VY), t.post("/category", qY), t.post("/detail", zY), t.post("/play", GY), t.post("/search", JY), t.get("/proxy/:what/:ids/:end", kAe) }, spider: { init: HY, home: VY, homeVod: IAe, category: qY, detail: zY, play: GY, search: JY } }; var JS = class extends Fe { constructor() { super(), this.siteUrl = "https://www.cilixiong.com", this.cateObj = { "/movie/": "1", "/drama/": "2" } } getAppName() { return "\u78C1\u529B\u718A" } getName() { return "\u{1F43B}\u2503\u78C1\u529B\u718A\u2503\u{1F43B}" } getJSName() { return "cilixiong" } getType() { return 3 } async setClasses() { let e = await this.getHtml(), n = e('[class="nav col-12 col-lg-auto me-lg-auto mb-2 justify-content-center mb-md-0"]').find("li"); for (let r of n) { let i = e(r).find("a")[0], l = e(i).text(), s = i.attribs.href; l !== "\u9996\u9875" && l !== "\u699C\u5355" && l !== "\u7559\u8A00" && this.classes.push(this.getTypeDic(l, s)) } } async getFilter(e) { let n = [], r = e('[class="nav small"]'), i = 1; for (let l of r) { let s = e(e(l).find("li")[0]).text().replaceAll("\uFF1A", ""), a = { key: i.toString(), name: s, value: [] }; for (let o of e(l).find("li").slice(1)) { let u = e(o).find("a")[0], c = u.attribs.href.split("-")[i]; a.value.push({ n: e(u).text(), v: c }) } i = i + 1, n.push(a) } return n } async setFilterObj() { for (let e of this.classes) { let n = e.type_id; if (n !== "\u6700\u8FD1\u66F4\u65B0") { let r = await this.getHtml(this.siteUrl + n); this.filterObj[n] = await this.getFilter(r) } } } async parseVodShortListFromDoc(e) { let n = [], r = e('[class="col"]'); for (let i of r) { let l = new Ne; l.vod_id = e(i).find("a")[0].attribs.href, l.vod_pic = Te(/background-image: url\('(.*?)'\)/, e(i).find('[class="card-img"]')[0].attribs.style), l.vod_name = e(e(i).find("h2")).text(); let s = e(e(i).find('[class="rank bg-success p-1"]')).text(); l.vod_remarks = "\u8BC4\u5206:" + s, s !== "AD" && n.push(l) } return n } async parseVodShortListFromDocBySearch(e) { let n = [], r = e('[class="card card-cover h-100 overflow-hidden text-bg-dark rounded-4 shadow-lg position-relative"]'); for (let i of r) { let l = new Ne; l.vod_id = e(i).find("a")[0].attribs.href, l.vod_name = e(e(i).find('[class="pt-5 lh-1 pb-2 h4"]')).text(), l.vod_pic = Te(/background-image: url\('(.*?)'\)/, e(i).find('[class="card-img"]')[0].attribs.style), l.vod_remarks = "\u8BC4\u5206:" + e(e(i).find('[class="rank bg-success p-1"]')).text(), n.push(l) } return n } async parseVodDetailFromDoc(e) { let n = new Be, r = e('[class="row row-cols-1 row-cols-lg-3 align-items-stretch g-4 p-5 text-white"]'); n.vod_pic = e(r).find("img")[0].attribs.src, n.vod_name = e(e(r).find("h1")).text(); let i = e(r).find('[class="mb-2"]').slice(1); for (let c of i) { let f = e(c).text(); f.indexOf("\u8C46\u74E3\u8BC4\u5206") > -1 && (n.vod_remarks = f), f.indexOf("\u7C7B\u578B") > -1 && (n.type_name = f.replaceAll("\uFF1A", "").replace("\u7C7B\u578B", "").replaceAll(":", "")), f.indexOf("\u4E0A\u6620\u5730\u533A") > -1 && (n.vod_area = f.replaceAll("\uFF1A", "").replace("\u4E0A\u6620\u5730\u533A", "").replaceAll(":", "")), f.indexOf("\u4E3B\u6F14") > -1 && (n.vod_actor = f.replaceAll("\uFF1A", "").replace("\u4E3B\u6F14", "").replaceAll(":", "")), f.indexOf("\u4E0A\u6620\u65E5\u671F") > -1 && (n.vod_year = f.replaceAll("\uFF1A", "").replace("\u4E0A\u6620\u65E5\u671F", "").replaceAll(":", "")) } n.vod_content = e(e(r).find('[class="mv_card_box"]')).text(); let l = {}, s = e('[class="row col-md-12 embed_video"]'), a = 1; for (let c of s) { let f = [], m = e(e(c).find("iframe"))[0].attribs.src; f.push("\u64AD\u653E$" + m), l["\u5728\u7EBF\u64AD\u653E" + a.toString() + "\u7B2C\u4E00\u96C6\u5728\u7EBF\u64AD\u653E\u9884\u89C8"] = f.join("#"), a = a + 1 } let o = 1, u = e('[class="row col-md-12 text-white p-3 pt-1"]').find('[class="container"]'); for (let c of u) { let f = [], m = e(e(c).find("a"))[0], d = m.attribs.href, y = e(m).text(); d.startsWith("magnet") && f.push(y + "$" + d), f.length > 0 && (l["\u78C1\u529B\u94FE\u63A5-" + o] = f.join("#"), o = o + 1) } return n.vod_play_from = Object.keys(l).join("$$$"), n.vod_play_url = Object.values(l).join("$$$"), n } async setHomeVod() { let e = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setCategory(e, n, r, i) { let l = i[1] ?? "0", s = i[2] ?? "0", a = parseInt(n) - 1, o = this.siteUrl + "/" + this.cateObj[e] + `-${l}-${s}-${a}.html`; await this.jadeLog.debug(`\u5206\u7C7BURL:${o}`); let u = await this.getHtml(o); this.vodList = await this.parseVodShortListFromDoc(u) } async setDetail(e) { let n = await this.getHtml(this.siteUrl + e); this.vodDetail = await this.parseVodDetailFromDoc(n) } async setPlay(e, n, r) { if (e.indexOf("\u5728\u7EBF\u64AD\u653E") > -1) { let i = await this.getHtml(this.siteUrl + n); this.playUrl = Te(/const source = '(.*?)'/, i.html()) } else this.playUrl = n } async setSearch(e, n) { let r = { classid: "1,2", show: "title", tempid: "1", keyboard: e }, i = await this.post(this.siteUrl + "/e/search/index.php", r, this.getHeader()), l = $e(i); this.vodList = await this.parseVodShortListFromDocBySearch(l) } }, Bn = new JS; var KS = class extends Re { constructor() { super() } getName() { return Bn.getName() } getAppName() { return Bn.getAppName() } getJSName() { return Bn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Bn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Bn.initCookie(e.server.config.bilicookie), await Bn.spiderInit(e), Bn.cfgObj.code = 0, Bn.catOpenStatus = !0, Bn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Bn.setClasses(), this.classes = Bn.classes } async setFilterObj() { await Bn.setFilterObj(), this.filterObj = Bn.filterObj } async setHomeVod() { await Bn.setHomeVod(), this.homeVodList = Bn.homeVodList } async setCategory(e, n, r, i) { await Bn.setCategory(e, n, r, i), this.vodList = Bn.vodList } async setDetail(e) { await Bn.setDetail(e), this.vodDetail = Bn.vodDetail } async setPlay(e, n, r) { await Bn.setPlay(e, n, r), this.playUrl = Bn.playUrl, this.result = Bn.result } async setSearch(e, n, r) { await Bn.setSearch(e, n, r), this.vodList = Bn.vodList, this.result = Bn.result } async setProxy(e, n) { return await Bn.proxy(e, n) } }, Bo = new KS; async function XY(t, e) { return await Bo.init(t, e) } async function WY(t, e) { return await Bo.home(t, e) } async function DAe(t, e) { return await Bo.homeVod(t, e) } async function YY(t, e) { return await Bo.category(t, e) } async function QY(t, e) { return await Bo.detail(t, e) } async function ZY(t, e) { return await Bo.play(t, e) } async function eQ(t, e) { return await Bo.search(t, e) } async function PAe(t, e) { return await Bo.proxy(t, e) } var tQ = { meta: { key: Bn.getJSName(), name: Bn.getName(), type: Bn.getType() }, api: async t => { t.post("/init", XY), t.post("/home", WY), t.post("/category", YY), t.post("/detail", QY), t.post("/play", ZY), t.post("/search", eQ), t.get("/proxy/:what/:ids/:end", PAe) }, spider: { init: XY, home: WY, homeVod: DAe, category: YY, detail: QY, play: ZY, search: eQ } }; var XS = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.mxdm6.com/" } getName() { return "\u{1F352}\u2503MX\u52A8\u6F2B\u2503\u{1F352}" } getAppName() { return "MX\u52A8\u6F2B" } getJSName() { return "mxanime" } getType() { return 3 } async setClasses() { let t = await this.getHtml(), e = t(t('[class="nav-menu-items"]')[0]).find('[class="nav-menu-item "]'); for (let n of e) { let r = t(n).find("a")[0], i = r.attribs.title, l = r.attribs.href; i !== "\u840C\u56FE" && this.classes.push(this.getTypeDic(i, Te(/type\/(.*?).html/, l))) } } async getFilter(t) { let e = t('[class="library-box scroll-box"]'), n = []; for (let r = 0; r < e.length; r++) { let i = { key: (r + 1).toString(), name: "", value: [] }; if (r < e.length - 1) { i.name = t(t(e[r]).find("a")[0]).text(), i.value.push({ n: "\u5168\u90E8", v: "0" }); for (let l of t(e[r]).find("a").slice(1)) i.value.push({ n: t(l).text(), v: t(l).text() }); n.push(i) } else i.name = t(t(e[r]).find("a")[0]).text(), i.value = [{ n: "\u5168\u90E8", v: "0" }, { n: t(t(e[r]).find("a")[1]).text(), v: "hits" }, { n: t(t(e[r]).find("a")[2]).text(), v: "score" }], n.push(i) } return n } async setFilterObj() { for (let t of this.classes) { let e = t.type_id; if (e !== "\u6700\u8FD1\u66F4\u65B0") { let n = await this.getHtml(this.siteUrl + `/type/${e}.html`); this.filterObj[e] = await this.getFilter(n) } } } parseVodShortFromElement(t, e) { let n = new Ne, r = t(t(e).find('[class="module-item-titlebox"]')).find("a")[0]; return n.vod_id = r.attribs.href, n.vod_name = r.attribs.title, n.vod_pic = t(t(e).find('[class="module-item-pic"]')).find("img")[0].attribs["data-src"], n.vod_remarks = t(t(e).find('[class="module-item-text"]')).text(), n } async parseVodShortListFromDoc(t) { let e = [], n = t('[class="module-list module-lines-list mxone-box"]').find('[class="module-item"]'); for (let r of n) { let i = await this.parseVodShortFromElement(t, r); e.push(i) } return e } async parseVodShortListFromDocByCategory(t) { let e = [], n = t('[class="module-item"]'); for (let r of n) { let i = await this.parseVodShortFromElement(t, r); e.push(i) } return e } async parseVodShortListFromDocBySearch(t) { let e = [], n = t('[class="module-search-item"]'); for (let r of n) { let i = new Ne, l = t(r).find('[class="video-serial"]')[0]; i.vod_id = l.attribs.href, i.vod_name = l.attribs.title, i.vod_pic = t(t(r).find('[class="module-item-pic"]')).find("img")[0].attribs["data-src"]; let s = t(t(r).find('[class="video-info-item video-info-actor"]').slice(-1)[0]).find("a"), a = []; for (let o of s) { let u = o.children[0].data; a.push(u) } i.vod_remarks = a.join("*"), e.push(i) } return e } async parseVodDetailFromDoc(t) {
let e = new Be, n = t('[class="video-info"]'); e.vod_pic = t('[class="module-item-pic"]').find("img")[0].attribs["data-src"], e.vod_name = t(t(n).find('[class="page-title"]')).text(); let r = t(n).find('[class="video-info-items"]'); for (let o of r) {
let u = t(o).text().replaceAll(`
`, "").replaceAll(" ", "").replaceAll(" ", "") + "end"; if (u.indexOf("\u5E74\u4EFD") > -1 && (e.vod_year = Te(/年份:(.*?)end/, u).replaceAll("/", "")), u.indexOf("\u5907\u6CE8") > -1) { let c = Te(/备注:(.*?)end/, u); e.vod_remarks = Te(/备注:\/(.*?)end/, u) } u.indexOf("\u6807\u7B7E") > -1 && (e.type_name = Te(/标签:(.*?)end/, u)), u.indexOf("\u5267\u60C5") > -1 && (e.vod_content = Te(/剧情:(.*?)end/, u))
} let i = t('[class="module-tab-item tab-item"]'), l = t('[class="scroll-content"]'), s = [], a = []; for (let o = 0; o < i.length; o++) { let u = i[o]; s.push(u.attribs["data-dropdown-value"]); let c = []; for (let f of t(l[o]).find("a")) { let m = t(f).text(), d = f.attribs.href; c.push(m + "$" + d) } a.push(c.join("#")) } return e.vod_play_from = s.join("$$$"), e.vod_play_url = a.join("$$$"), e
} async setHomeVod() { let t = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(t) } getExtendValue(t, e) { return t[e] === void 0 || t[e] === "0" ? "" : t[e] } async setCategory(t, e, n, r) { await this.jadeLog.debug(`extend:${JSON.stringify(r)}`); let i = this.getExtendValue(r, "1"), l = this.getExtendValue(r, "2"), s = this.getExtendValue(r, "3"), a = this.getExtendValue(r, "4"), o = [t.toString(), "", a, i, "", s, "", "", e.toString(), "", "", l], u = this.siteUrl + "/show/" + o.join("-") + ".html", c = await this.getHtml(u); this.vodList = await this.parseVodShortListFromDocByCategory(c) } async setDetail(t) { let e = await this.getHtml(this.siteUrl + t); this.vodDetail = await this.parseVodDetailFromDoc(e) } async setSearch(t, e) { let n = this.siteUrl + `/search/${t}-------------.html`, r = await this.getHtml(n); this.vodList = await this.parseVodShortListFromDocBySearch(r) } async setPlay(t, e, n) { let r = await this.getHtml(this.siteUrl + e), l = "https://danmu.yhdmjx.com/m3u8.php?url=" + JSON.parse(Te(/var player_aaaa=(.*?)<\/script>/, r.html())).url, s = await await this.fetch(l, null, this.getHeader()), a = s.match(/"url": getVideoInfo\("(.*?)"\),/)[1], o = s.match(/<script>var bt_token = "(.*?)"/)[1], u = await await this.fetch("https://danmu.yhdmjx.com/js/play.js", null, this.getHeader()); u = u.match(/var _token_key=CryptoJS\['enc'\]\['Utf8'\]\[_0x17f1\('67','qETJ'\)\]\((.*?\))/)[1], u = this.decrypt_token_key(u), this.playUrl = await this.getVideoInfo(a, u, o) } decrypt_token_key(toekn_key) { var _0xod4 = "jsjiami.com.v6", _0x175e = [_0xod4, "JMOsw6omwoDCmw==", "wp3DkSx5Eg==", "HB7CscOJfS3DuUjDv2bDjsOmwr3Cm8KcwoI=", "fR/Dqg==", "ShRGTcKa", "w5Y8VBs=", "esKYKQ==", "FgIdwrPDnMKOw7k=", "HhXCmA==", "woNrRsKSwpnDvcKfw4g=", "ezBn", "w43DkcK5w4MaJiE=", "w44Ob8KjwrjCrMKtUA==", "HwtswqI=", "YsKnwrRawro=", "Sm/CpQXCjz4RH8ORSXw=", "IsO6w64=", "T8OeAQ==", "VcK4Hg==", "csOmfBJ4", "d8OAcA5L", "Tn4RL2s=", "w7goGizCmw==", "w6XDlcOGwpoY", "TsK7wpNPwrg=", "w7J1CzLCnsO+HA==", "w4XDkcK0w5YXPg==", "S8KoCcKS", "PcKWHcK/Eg==", "Z2oMJ3rCiw==", "YsKMG8KMwo0=", "QsOecgRIwp4=", "dFzDkUUxw48Qw7nCmX3CicODCMKnw74IOg==", "acO2KU1B", "wrAnw6DDrg==", "w5MsScKwwoA=", "wohZG8KhBg==", "b8OieSpZ", "w4ZmEsORw6I=", "w7jDhxvCh8KY", "w7wQa8KFwr0=", "IMObw4E3wqU=", "JsOjw5Erwrg=", "w6MwcsKOwqU=", "b8KIwqF0wrs=", "XhXDvT52", "wrDCmirChSE=", "w5t1wpvDuwE=", "XA7CtsKeEA==", "wonCvVthw78=", "U8KPP8KMwq4=", "wp7DhCxjGTU=", "woPDoBdiEQ==", "HjzCrE/Dvg==", "SsOQOWHCgg==", "w6NdwoXCkMOx", "w6shYWQ/", "eE/Cgg==", "XW/Csj7CmDoA", "w680OynCgcK5BA8=", "w4PDoMOTwrog", "w5R7wqbCpMOPwrMxUcOiM8OuMVLCisKKFsOXAcOWY8O6w5hM", "WwjDoht0", "PzXCiHHDiA==", "QMOFaMKcfQ==", "bz9bVsK+", "w7Npwp/DsB9ONw==", "EcOPBQ3Cig==", "woHDnzk=", "DsKQLxtd", "R8OCJmk=", "wp55O8On", "bkXCmhTCqg==", "w7vDgx3Cg8KU", "w6nDo8KdAn8=", "O8KwP8KEDw==", "wqzCtCHCtCg=", "w5nDgmYhw5c=", "wp0OZsK+w4A=", "wrFxe8KFwp/DvcKew4EbN8K7BMORMx3DuxtOVELChsOEIQ==", "BMKWRDc=", "IS5dw6nDhQ==", "w6geeG8t", "SsK/wohywpc=", "LBlnw7jDkA==", "wodiLsOg", "Ig5Ow7/Dlw==", "TMOOewRZwoQ=", "LjnClV7DvA==", "woZsO8KcPQ==", "eWvClMKeKQ==", "wq1KWsKswr8=", "w4p+AGFa", "C8O7F8K2CQcKFxxgwo5sfh3DpAFV", "w6XDqMKoCw==", "w6Z8wqnCpMOe", "w6x/CHRhXhV/w7I=", "wrvClndGw5Y=", "VsKcwo5RwoA=", "ZcK2BMKmLQ==", "BCcPwofDvQ==", "eGEsF20=", "eMOcUglq", "w4U9XEAMw4/Dm3rCuzpxTg/DvyDDvMONH8OTwpTCtsKbw6k=", "VwXDkTxG", "CzHCrl3DkQ==", "w7PDkVovw4o=", "dsONYDdj", "w79pwr3Duh4=", "w55kwoLCpMOR", "w6gbc8KGwpw=", "bCnCtMKCCg==", "Php5w64=", "w7x8wpfDtiQ=", "w4TDk2AB", "w7lowoHDtgQ=", "DB/CsnjDuQ==", "woTDl8K3wp4S", "wr0Ewq7Dq8Oh", "GmHCpGxN", "w5/Dm2XDpw==", "w5bDpsOCwqoA", "YMKowphwwqc=", "ahFuVsK9", "w57DtEsbw7k=", "w6LDo8Kq", "UsKzE8KO", "w6xlBFl9", "WMOgIXbCiw==", "DBhjw5fDhQ==", "w6pUwoHCnsOs", "ZF7CtsKiHg==", "wos4w7wCwr0c", "JlXCjlpyw5pMw6s=", "TcO1N8K4wqE=", "SMOzTcKYRw==", "w4HDosOzwrUc", "wqxdwqE2wrY=", "A8OPGQjChw==", "wpkxasOxBQ==", "wpIZSA==", "VsOnEEvChg==", "bMOSZy93", "c8OwZsKnRQ==", "SsK/wpBHwoQ=", "ccOsHVFf", "w6ZKYMO8w6rDr8OrCHxdwqtdwrDDksOMccKZwobDpQPDgsOrAMKXF8OMPcOySsKuL8KLwq8vwr/DkjbDqsOCbRrCkcOTTFfDlsKkw7PChCM1wqTDisKawpHDt8KCQRY3w6DDgMKVw6M=", "w7hYwq3ClsOa", "Fic5wqLDiw==", "KcKqHCVV", "wqvDucKSwrs/", "YcOfQcKPSQ==", "wpjClmNRw7U=", "wpHClSnCizg=", "w4PDh8Kw", "JsOYGwnCpw==", "w5vDksK8w6sl", "U8ORCHt+Rw==", "woVxO8OSJQ==", "b37Chw/Clw==", "w6ViBXZlQg==", "UwPCucKQCgU=", "UMOeZgs=", "MTLCtW7Dq2o=", "wqAQwr/DqcOi", "DiLDtsOOZsKEbsOrGm03EcKEwr/CplQ=", "dzPDnRhP", "wplgT8KBwow=", "XUzCg8KF", "K8KTCcKrCQ==", "w6ZKJMOw", "LxTCmn/DsA==", "wooObcKBw6g=", "w5djwofDoTQ=", "VMOHeAts", "Kw96w7bDig==", "wogpw6crwps=", "PDzDn8OcWQ==", "wrfCoWxfw4E=", "wrrDv8KDwoI+", "w7hnwrjCssOq", "w4LDrMOwwpMp", "S2vCvyjCjic=", "w6DDoT7CtcKNwoo=", "wp1Lw5zCpj4=", "RsOEGcKVwps=", "woxlwo0twoM=", "MAZYw7TDmg==", "w7ENEC7CgA==", "wolVw4jCryEqVMOYdg==", "wp45w6cCwqY=", "w6UhVHs1", "QBZFW8KH", "Ozhvw7vDkQ==", "E8O4DAXCnA==", "AcOXR8OZ", "w4NhwqbCk8O6", "f8OyScKpRRJTBQd9w4t3PgzCtRMQwrjDrUZ9Z8Od", "A8OHw7Inwoc=", "wqlQE8KHDg==", "wqYbZMOVMg==", "w57DuVwAw60=", "W8OyQMKtVAk=", "w60PBwXCng==", "w4h7w70gw55WbHfDuR0VQ8K+asOxwoJn", "w5rDhMK2w5gX", "N0HCklc=", "w58TTsK4wrg=", "w7dXNMOhw79pwqBMw70=", "SsKQCcKf", "KSXCumrDug==", "woc1w7gUwrEEw7s=", "wplowqIvwoFGMQ==", "acO9DcK+", "UMKBwpJNwp1ZfA==", "wpV+NsKCLQ==", "w5PDrMOrwo4iwrcU", "XHjCoyPCkw==", "w5kOUsKkwqXCqcKm", "QMKRAcKDDMK+AA==", "bMKoNcKgwrc=", "w6k0HTPClw==", "wpUYYcOcBA==", "w6k6BjnCnMK9", "w5HDnncPw60=", "jEsjiamLiI.coRVzmBz.v6gWBKxrg=="]; (function (t, e, n) { var r = function (i, l, s, a, o) { l = l >> 8, o = "po"; var u = "shift", c = "push"; if (l < i) { for (; --i;)a = t[u](), l === i ? (l = a, s = t[o + "p"]()) : l && s.replace(/[ELIRVzBzgWBKxrg=]/g, "") === l && t[c](a); t[c](t[u]()) } return 672972 }; return r(++e, n) >> e ^ n })(_0x175e, 348, 89088); var _0x17f1 = function (t, e) { t = ~~"0x".concat(t); var n = _0x175e[t]; if (_0x17f1.nIHPps === void 0) { (function () { var l = typeof window < "u" ? window : typeof process == "object" && typeof require == "function" && typeof global == "object" ? global : this, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" })(); var r = function (l, s) { var a = [], o = 0, u, c = "", f = ""; l = atob(l); for (var m = 0, d = l.length; m < d; m++)f += "%" + ("00" + l.charCodeAt(m).toString(16)).slice(-2); l = decodeURIComponent(f); for (var y = 0; y < 256; y++)a[y] = y; for (y = 0; y < 256; y++)o = (o + a[y] + s.charCodeAt(y % s.length)) % 256, u = a[y], a[y] = a[o], a[o] = u; y = 0, o = 0; for (var _ = 0; _ < l.length; _++)y = (y + 1) % 256, o = (o + a[y]) % 256, u = a[y], a[y] = a[o], a[o] = u, c += String.fromCharCode(l.charCodeAt(_) ^ a[(a[y] + a[o]) % 256]); return c }; _0x17f1.RtnfNa = r, _0x17f1.afYpDj = {}, _0x17f1.nIHPps = !0 } var i = _0x17f1.afYpDj[t]; return i === void 0 ? (_0x17f1.OqAPEJ === void 0 && (_0x17f1.OqAPEJ = !0), n = _0x17f1.RtnfNa(n, e), _0x17f1.afYpDj[t] = n) : n = i, n }; return eval(toekn_key) } async getVideoInfo(t, e, n) { var r = r || function (l, s) { var a = {}, o = a.lib = {}, u = function () { }, c = o.Base = { extend: function (E) { u.prototype = this; var g = new u; return E && g.mixIn(E), g.hasOwnProperty("init") || (g.init = function () { g.$super.init.apply(this, arguments) }), g.init.prototype = g, g.$super = this, g }, create: function () { var E = this.extend(); return E.init.apply(E, arguments), E }, init: function () { }, mixIn: function (E) { for (var g in E) E.hasOwnProperty(g) && (this[g] = E[g]); E.hasOwnProperty("toString") && (this.toString = E.toString) }, clone: function () { return this.init.prototype.extend(this) } }, f = o.WordArray = c.extend({ init: function (E, g) { E = this.words = E || [], this.sigBytes = g != s ? g : 4 * E.length }, toString: function (E) { return (E || d).stringify(this) }, concat: function (E) { var g = this.words, v = E.words, x = this.sigBytes; if (E = E.sigBytes, this.clamp(), x % 4) for (var O = 0; O < E; O++)g[x + O >>> 2] |= (v[O >>> 2] >>> 24 - 8 * (O % 4) & 255) << 24 - 8 * ((x + O) % 4); else if (65535 < v.length) for (O = 0; O < E; O += 4)g[x + O >>> 2] = v[O >>> 2]; else g.push.apply(g, v); return this.sigBytes += E, this }, clamp: function () { var E = this.words, g = this.sigBytes; E[g >>> 2] &= 4294967295 << 32 - 8 * (g % 4), E.length = l.ceil(g / 4) }, clone: function () { var E = c.clone.call(this); return E.words = this.words.slice(0), E }, random: function (E) { for (var g = [], v = 0; v < E; v += 4)g.push(4294967296 * l.random() | 0); return new f.init(g, E) } }), m = a.enc = {}, d = m.Hex = { stringify: function (E) { var g = E.words; E = E.sigBytes; for (var v = [], x = 0; x < E; x++) { var O = g[x >>> 2] >>> 24 - 8 * (x % 4) & 255; v.push((O >>> 4).toString(16)), v.push((O & 15).toString(16)) } return v.join("") }, parse: function (E) { for (var g = E.length, v = [], x = 0; x < g; x += 2)v[x >>> 3] |= parseInt(E.substr(x, 2), 16) << 24 - 4 * (x % 8); return new f.init(v, g / 2) } }, y = m.Latin1 = { stringify: function (E) { var g = E.words; E = E.sigBytes; for (var v = [], x = 0; x < E; x++)v.push(String.fromCharCode(g[x >>> 2] >>> 24 - 8 * (x % 4) & 255)); return v.join("") }, parse: function (E) { for (var g = E.length, v = [], x = 0; x < g; x++)v[x >>> 2] |= (E.charCodeAt(x) & 255) << 24 - 8 * (x % 4); return new f.init(v, g) } }, _ = m.Utf8 = { stringify: function (E) { try { return decodeURIComponent(escape(y.stringify(E))) } catch { throw Error("Malformed UTF-8 data") } }, parse: function (E) { return y.parse(unescape(encodeURIComponent(E))) } }, S = o.BufferedBlockAlgorithm = c.extend({ reset: function () { this._data = new f.init, this._nDataBytes = 0 }, _append: function (E) { typeof E == "string" && (E = _.parse(E)), this._data.concat(E), this._nDataBytes += E.sigBytes }, _process: function (E) { var g = this._data, v = g.words, x = g.sigBytes, O = this.blockSize, N = x / (4 * O), N = E ? l.ceil(N) : l.max((N | 0) - this._minBufferSize, 0); if (E = N * O, x = l.min(4 * E, x), E) { for (var R = 0; R < E; R += O)this._doProcessBlock(v, R); R = v.splice(0, E), g.sigBytes -= x } return new f.init(R, x) }, clone: function () { var E = c.clone.call(this); return E._data = this._data.clone(), E }, _minBufferSize: 0 }); o.Hasher = S.extend({ cfg: c.extend(), init: function (E) { this.cfg = this.cfg.extend(E), this.reset() }, reset: function () { S.reset.call(this), this._doReset() }, update: function (E) { return this._append(E), this._process(), this }, finalize: function (E) { return E && this._append(E), this._doFinalize() }, blockSize: 16, _createHelper: function (E) { return function (g, v) { return new E.init(v).finalize(g) } }, _createHmacHelper: function (E) { return function (g, v) { return new w.HMAC.init(E, v).finalize(g) } } }); var w = a.algo = {}; return a }(Math); (function () { var l = r, s = l.lib.WordArray; l.enc.Base64 = { stringify: function (a) { var o = a.words, u = a.sigBytes, c = this._map; a.clamp(), a = []; for (var f = 0; f < u; f += 3)for (var m = (o[f >>> 2] >>> 24 - 8 * (f % 4) & 255) << 16 | (o[f + 1 >>> 2] >>> 24 - 8 * ((f + 1) % 4) & 255) << 8 | o[f + 2 >>> 2] >>> 24 - 8 * ((f + 2) % 4) & 255, d = 0; 4 > d && f + .75 * d < u; d++)a.push(c.charAt(m >>> 6 * (3 - d) & 63)); if (o = c.charAt(64)) for (; a.length % 4;)a.push(o); return a.join("") }, parse: function (a) { var o = a.length, u = this._map, c = u.charAt(64); c && (c = a.indexOf(c), c != -1 && (o = c)); for (var c = [], f = 0, m = 0; m < o; m++)if (m % 4) { var d = u.indexOf(a.charAt(m - 1)) << 2 * (m % 4), y = u.indexOf(a.charAt(m)) >>> 6 - 2 * (m % 4); c[f >>> 2] |= (d | y) << 24 - 8 * (f % 4), f++ } return s.create(c, f) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } })(), function (l) { function s(S, w, E, g, v, x, O) { return S = S + (w & E | ~w & g) + v + O, (S << x | S >>> 32 - x) + w } function a(S, w, E, g, v, x, O) { return S = S + (w & g | E & ~g) + v + O, (S << x | S >>> 32 - x) + w } function o(S, w, E, g, v, x, O) { return S = S + (w ^ E ^ g) + v + O, (S << x | S >>> 32 - x) + w } function u(S, w, E, g, v, x, O) { return S = S + (E ^ (w | ~g)) + v + O, (S << x | S >>> 32 - x) + w } for (var c = r, d = c.lib, f = d.WordArray, m = d.Hasher, d = c.algo, y = [], _ = 0; 64 > _; _++)y[_] = 4294967296 * l.abs(l.sin(_ + 1)) | 0; d = d.MD5 = m.extend({ _doReset: function () { this._hash = new f.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (S, w) { for (var E = 0; 16 > E; E++) { var g = w + E, v = S[g]; S[g] = (v << 8 | v >>> 24) & 16711935 | (v << 24 | v >>> 8) & 4278255360 } var E = this._hash.words, g = S[w + 0], v = S[w + 1], x = S[w + 2], O = S[w + 3], N = S[w + 4], R = S[w + 5], U = S[w + 6], F = S[w + 7], te = S[w + 8], Q = S[w + 9], W = S[w + 10], ce = S[w + 11], we = S[w + 12], se = S[w + 13], ee = S[w + 14], me = S[w + 15], P = E[0], q = E[1], V = E[2], G = E[3], P = s(P, q, V, G, g, 7, y[0]), G = s(G, P, q, V, v, 12, y[1]), V = s(V, G, P, q, x, 17, y[2]), q = s(q, V, G, P, O, 22, y[3]), P = s(P, q, V, G, N, 7, y[4]), G = s(G, P, q, V, R, 12, y[5]), V = s(V, G, P, q, U, 17, y[6]), q = s(q, V, G, P, F, 22, y[7]), P = s(P, q, V, G, te, 7, y[8]), G = s(G, P, q, V, Q, 12, y[9]), V = s(V, G, P, q, W, 17, y[10]), q = s(q, V, G, P, ce, 22, y[11]), P = s(P, q, V, G, we, 7, y[12]), G = s(G, P, q, V, se, 12, y[13]), V = s(V, G, P, q, ee, 17, y[14]), q = s(q, V, G, P, me, 22, y[15]), P = a(P, q, V, G, v, 5, y[16]), G = a(G, P, q, V, U, 9, y[17]), V = a(V, G, P, q, ce, 14, y[18]), q = a(q, V, G, P, g, 20, y[19]), P = a(P, q, V, G, R, 5, y[20]), G = a(G, P, q, V, W, 9, y[21]), V = a(V, G, P, q, me, 14, y[22]), q = a(q, V, G, P, N, 20, y[23]), P = a(P, q, V, G, Q, 5, y[24]), G = a(G, P, q, V, ee, 9, y[25]), V = a(V, G, P, q, O, 14, y[26]), q = a(q, V, G, P, te, 20, y[27]), P = a(P, q, V, G, se, 5, y[28]), G = a(G, P, q, V, x, 9, y[29]), V = a(V, G, P, q, F, 14, y[30]), q = a(q, V, G, P, we, 20, y[31]), P = o(P, q, V, G, R, 4, y[32]), G = o(G, P, q, V, te, 11, y[33]), V = o(V, G, P, q, ce, 16, y[34]), q = o(q, V, G, P, ee, 23, y[35]), P = o(P, q, V, G, v, 4, y[36]), G = o(G, P, q, V, N, 11, y[37]), V = o(V, G, P, q, F, 16, y[38]), q = o(q, V, G, P, W, 23, y[39]), P = o(P, q, V, G, se, 4, y[40]), G = o(G, P, q, V, g, 11, y[41]), V = o(V, G, P, q, O, 16, y[42]), q = o(q, V, G, P, U, 23, y[43]), P = o(P, q, V, G, Q, 4, y[44]), G = o(G, P, q, V, we, 11, y[45]), V = o(V, G, P, q, me, 16, y[46]), q = o(q, V, G, P, x, 23, y[47]), P = u(P, q, V, G, g, 6, y[48]), G = u(G, P, q, V, F, 10, y[49]), V = u(V, G, P, q, ee, 15, y[50]), q = u(q, V, G, P, R, 21, y[51]), P = u(P, q, V, G, we, 6, y[52]), G = u(G, P, q, V, O, 10, y[53]), V = u(V, G, P, q, W, 15, y[54]), q = u(q, V, G, P, v, 21, y[55]), P = u(P, q, V, G, te, 6, y[56]), G = u(G, P, q, V, me, 10, y[57]), V = u(V, G, P, q, U, 15, y[58]), q = u(q, V, G, P, se, 21, y[59]), P = u(P, q, V, G, N, 6, y[60]), G = u(G, P, q, V, ce, 10, y[61]), V = u(V, G, P, q, x, 15, y[62]), q = u(q, V, G, P, Q, 21, y[63]); E[0] = E[0] + P | 0, E[1] = E[1] + q | 0, E[2] = E[2] + V | 0, E[3] = E[3] + G | 0 }, _doFinalize: function () { var S = this._data, w = S.words, E = 8 * this._nDataBytes, g = 8 * S.sigBytes; w[g >>> 5] |= 128 << 24 - g % 32; var v = l.floor(E / 4294967296); for (w[(g + 64 >>> 9 << 4) + 15] = (v << 8 | v >>> 24) & 16711935 | (v << 24 | v >>> 8) & 4278255360, w[(g + 64 >>> 9 << 4) + 14] = (E << 8 | E >>> 24) & 16711935 | (E << 24 | E >>> 8) & 4278255360, S.sigBytes = 4 * (w.length + 1), this._process(), S = this._hash, w = S.words, E = 0; 4 > E; E++)g = w[E], w[E] = (g << 8 | g >>> 24) & 16711935 | (g << 24 | g >>> 8) & 4278255360; return S }, clone: function () { var S = m.clone.call(this); return S._hash = this._hash.clone(), S } }), c.MD5 = m._createHelper(d), c.HmacMD5 = m._createHmacHelper(d) }(Math), function () { var l = r, o = l.lib, s = o.Base, a = o.WordArray, o = l.algo, u = o.EvpKDF = s.extend({ cfg: s.extend({ keySize: 4, hasher: o.MD5, iterations: 1 }), init: function (c) { this.cfg = this.cfg.extend(c) }, compute: function (c, f) { for (var S = this.cfg, m = S.hasher.create(), d = a.create(), y = d.words, _ = S.keySize, S = S.iterations; y.length < _;) { w && m.update(w); var w = m.update(c).finalize(f); m.reset(); for (var E = 1; E < S; E++)w = m.finalize(w), m.reset(); d.concat(w) } return d.sigBytes = 4 * _, d } }); l.EvpKDF = function (c, f, m) { return u.create(m).compute(c, f) } }(), r.lib.Cipher || function (l) { var E = r, s = E.lib, a = s.Base, o = s.WordArray, u = s.BufferedBlockAlgorithm, c = E.enc.Base64, f = E.algo.EvpKDF, m = s.Cipher = u.extend({ cfg: a.extend(), createEncryptor: function (v, x) { return this.create(this._ENC_XFORM_MODE, v, x) }, createDecryptor: function (v, x) { return this.create(this._DEC_XFORM_MODE, v, x) }, init: function (v, x, O) { this.cfg = this.cfg.extend(O), this._xformMode = v, this._key = x, this.reset() }, reset: function () { u.reset.call(this), this._doReset() }, process: function (v) { return this._append(v), this._process() }, finalize: function (v) { return v && this._append(v), this._doFinalize() }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function (v) { return { encrypt: function (x, O, N) { return (typeof O == "string" ? g : w).encrypt(v, x, O, N) }, decrypt: function (x, O, N) { return (typeof O == "string" ? g : w).decrypt(v, x, O, N) } } } }); s.StreamCipher = m.extend({ _doFinalize: function () { return this._process(!0) }, blockSize: 1 }); var S = E.mode = {}, d = function (v, x, O) { var N = this._iv; N ? this._iv = l : N = this._prevBlock; for (var R = 0; R < O; R++)v[x + R] ^= N[R] }, y = (s.BlockCipherMode = a.extend({ createEncryptor: function (v, x) { return this.Encryptor.create(v, x) }, createDecryptor: function (v, x) { return this.Decryptor.create(v, x) }, init: function (v, x) { this._cipher = v, this._iv = x } })).extend(); y.Encryptor = y.extend({ processBlock: function (v, x) { var O = this._cipher, N = O.blockSize; d.call(this, v, x, N), O.encryptBlock(v, x), this._prevBlock = v.slice(x, x + N) } }), y.Decryptor = y.extend({ processBlock: function (v, x) { var O = this._cipher, N = O.blockSize, R = v.slice(x, x + N); O.decryptBlock(v, x), d.call(this, v, x, N), this._prevBlock = R } }), S = S.CBC = y, y = (E.pad = {}).Pkcs7 = { pad: function (v, x) { for (var O = 4 * x, O = O - v.sigBytes % O, N = O << 24 | O << 16 | O << 8 | O, R = [], U = 0; U < O; U += 4)R.push(N); O = o.create(R, O), v.concat(O) }, unpad: function (v) { v.sigBytes -= v.words[v.sigBytes - 1 >>> 2] & 255 } }, s.BlockCipher = m.extend({ cfg: m.cfg.extend({ mode: S, padding: y }), reset: function () { m.reset.call(this); var x = this.cfg, v = x.iv, x = x.mode; if (this._xformMode == this._ENC_XFORM_MODE) var O = x.createEncryptor; else O = x.createDecryptor, this._minBufferSize = 1; this._mode = O.call(x, this, v && v.words) }, _doProcessBlock: function (v, x) { this._mode.processBlock(v, x) }, _doFinalize: function () { var v = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { v.pad(this._data, this.blockSize); var x = this._process(!0) } else x = this._process(!0), v.unpad(x); return x }, blockSize: 4 }); var _ = s.CipherParams = a.extend({ init: function (v) { this.mixIn(v) }, toString: function (v) { return (v || this.formatter).stringify(this) } }), S = (E.format = {}).OpenSSL = { stringify: function (v) { var x = v.ciphertext; return v = v.salt, (v ? o.create([1398893684, 1701076831]).concat(v).concat(x) : x).toString(c) }, parse: function (v) { v = c.parse(v); var x = v.words; if (x[0] == 1398893684 && x[1] == 1701076831) { var O = o.create(x.slice(2, 4)); x.splice(0, 4), v.sigBytes -= 16 } return _.create({ ciphertext: v, salt: O }) } }, w = s.SerializableCipher = a.extend({ cfg: a.extend({ format: S }), encrypt: function (v, x, O, N) { N = this.cfg.extend(N); var R = v.createEncryptor(O, N); return x = R.finalize(x), R = R.cfg, _.create({ ciphertext: x, key: O, iv: R.iv, algorithm: v, mode: R.mode, padding: R.padding, blockSize: v.blockSize, formatter: N.format }) }, decrypt: function (v, x, O, N) { return N = this.cfg.extend(N), x = this._parse(x, N.format), v.createDecryptor(O, N).finalize(x.ciphertext) }, _parse: function (v, x) { return typeof v == "string" ? x.parse(v, this) : v } }), E = (E.kdf = {}).OpenSSL = { execute: function (v, x, O, N) { return N || (N = o.random(8)), v = f.create({ keySize: x + O }).compute(v, N), O = o.create(v.words.slice(x), 4 * O), v.sigBytes = 4 * x, _.create({ key: v, iv: O, salt: N }) } }, g = s.PasswordBasedCipher = w.extend({ cfg: w.cfg.extend({ kdf: E }), encrypt: function (v, x, O, N) { return N = this.cfg.extend(N), O = N.kdf.execute(O, v.keySize, v.ivSize), N.iv = O.iv, v = w.encrypt.call(this, v, x, O.key, N), v.mixIn(O), v }, decrypt: function (v, x, O, N) { return N = this.cfg.extend(N), x = this._parse(x, N.format), O = N.kdf.execute(O, v.keySize, v.ivSize, x.salt), N.iv = O.iv, w.decrypt.call(this, v, x, O.key, N) } }) }(), function () { for (var l = r, s = l.lib.BlockCipher, te = l.algo, a = [], o = [], u = [], c = [], f = [], m = [], d = [], y = [], _ = [], S = [], w = [], E = 0; 256 > E; E++)w[E] = 128 > E ? E << 1 : E << 1 ^ 283; for (var g = 0, v = 0, E = 0; 256 > E; E++) { var x = v ^ v << 1 ^ v << 2 ^ v << 3 ^ v << 4, x = x >>> 8 ^ x & 255 ^ 99; a[g] = x, o[x] = g; var O = w[g], N = w[O], R = w[N], U = 257 * w[x] ^ 16843008 * x; u[g] = U << 24 | U >>> 8, c[g] = U << 16 | U >>> 16, f[g] = U << 8 | U >>> 24, m[g] = U, U = 16843009 * R ^ 65537 * N ^ 257 * O ^ 16843008 * g, d[x] = U << 24 | U >>> 8, y[x] = U << 16 | U >>> 16, _[x] = U << 8 | U >>> 24, S[x] = U, g ? (g = O ^ w[w[w[R ^ O]]], v ^= w[w[v]]) : g = v = 1 } var F = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], te = te.AES = s.extend({ _doReset: function () { for (var ce = this._key, Q = ce.words, W = ce.sigBytes / 4, ce = 4 * ((this._nRounds = W + 6) + 1), we = this._keySchedule = [], se = 0; se < ce; se++)if (se < W) we[se] = Q[se]; else { var ee = we[se - 1]; se % W ? 6 < W && se % W == 4 && (ee = a[ee >>> 24] << 24 | a[ee >>> 16 & 255] << 16 | a[ee >>> 8 & 255] << 8 | a[ee & 255]) : (ee = ee << 8 | ee >>> 24, ee = a[ee >>> 24] << 24 | a[ee >>> 16 & 255] << 16 | a[ee >>> 8 & 255] << 8 | a[ee & 255], ee ^= F[se / W | 0] << 24), we[se] = we[se - W] ^ ee } for (Q = this._invKeySchedule = [], W = 0; W < ce; W++)se = ce - W, ee = W % 4 ? we[se] : we[se - 4], Q[W] = 4 > W || 4 >= se ? ee : d[a[ee >>> 24]] ^ y[a[ee >>> 16 & 255]] ^ _[a[ee >>> 8 & 255]] ^ S[a[ee & 255]] }, encryptBlock: function (Q, W) { this._doCryptBlock(Q, W, this._keySchedule, u, c, f, m, a) }, decryptBlock: function (Q, W) { var ce = Q[W + 1]; Q[W + 1] = Q[W + 3], Q[W + 3] = ce, this._doCryptBlock(Q, W, this._invKeySchedule, d, y, _, S, o), ce = Q[W + 1], Q[W + 1] = Q[W + 3], Q[W + 3] = ce }, _doCryptBlock: function (Q, W, ce, we, se, ee, me, P) { for (var G = this._nRounds, ze = Q[W] ^ ce[0], Ue = Q[W + 1] ^ ce[1], $t = Q[W + 2] ^ ce[2], pt = Q[W + 3] ^ ce[3], V = 4, q = 1; q < G; q++)var Zn = we[ze >>> 24] ^ se[Ue >>> 16 & 255] ^ ee[$t >>> 8 & 255] ^ me[pt & 255] ^ ce[V++], Tt = we[Ue >>> 24] ^ se[$t >>> 16 & 255] ^ ee[pt >>> 8 & 255] ^ me[ze & 255] ^ ce[V++], Qe = we[$t >>> 24] ^ se[pt >>> 16 & 255] ^ ee[ze >>> 8 & 255] ^ me[Ue & 255] ^ ce[V++], pt = we[pt >>> 24] ^ se[ze >>> 16 & 255] ^ ee[Ue >>> 8 & 255] ^ me[$t & 255] ^ ce[V++], ze = Zn, Ue = Tt, $t = Qe; Zn = (P[ze >>> 24] << 24 | P[Ue >>> 16 & 255] << 16 | P[$t >>> 8 & 255] << 8 | P[pt & 255]) ^ ce[V++], Tt = (P[Ue >>> 24] << 24 | P[$t >>> 16 & 255] << 16 | P[pt >>> 8 & 255] << 8 | P[ze & 255]) ^ ce[V++], Qe = (P[$t >>> 24] << 24 | P[pt >>> 16 & 255] << 16 | P[ze >>> 8 & 255] << 8 | P[Ue & 255]) ^ ce[V++], pt = (P[pt >>> 24] << 24 | P[ze >>> 16 & 255] << 16 | P[Ue >>> 8 & 255] << 8 | P[$t & 255]) ^ ce[V++], Q[W] = Zn, Q[W + 1] = Tt, Q[W + 2] = Qe, Q[W + 3] = pt }, keySize: 8 }); l.AES = s._createHelper(te) }(), n = r.enc.Utf8.parse(n), e = r.enc.Utf8.parse(e); let i = r.AES.decrypt(t, e, { iv: n, mode: r.mode.CBC }); return r.enc.Utf8.stringify(i).toString() }
}, Mt = new XS; async function LAe(t) { await Mt.init(t) } async function FAe(t) { return await Mt.home(t) } async function jAe() { return await Mt.homeVod() } async function UAe(t, e, n, r) { return await Mt.category(t, e, n, r) } async function MAe(t) { return await Mt.detail(t) } async function $Ae(t, e, n) { return await Mt.play(t, e, n) } async function BAe(t, e) { return await Mt.search(t, e) } async function HAe(t, e) { return await Mt.proxy(t, e) } function iVe() { return { init: LAe, home: FAe, homeVod: jAe, category: UAe, detail: MAe, play: $Ae, proxy: HAe, search: BAe } } var WS = class extends Re { constructor() { super() } getName() { return Mt.getName() } getAppName() { return Mt.getAppName() } getJSName() { return Mt.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Mt.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Mt.initCookie(e.server.config.bilicookie), await Mt.spiderInit(e), Mt.cfgObj.code = 0, Mt.catOpenStatus = !0, Mt.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Mt.setClasses(), this.classes = Mt.classes } async setFilterObj() { await Mt.setFilterObj(), this.filterObj = Mt.filterObj } async setHomeVod() { await Mt.setHomeVod(), this.homeVodList = Mt.homeVodList } async setCategory(e, n, r, i) { await Mt.setCategory(e, n, r, i), this.vodList = Mt.vodList } async setDetail(e) { await Mt.setDetail(e), this.vodDetail = Mt.vodDetail } async setPlay(e, n, r) { await Mt.setPlay(e, n, r), this.playUrl = Mt.playUrl, this.result = Mt.result } async setSearch(e, n, r) { await Mt.setSearch(e, n, r), this.vodList = Mt.vodList, this.result = Mt.result } async setProxy(e, n) { return await Mt.proxy(e, n) } }, Ho = new WS; async function nQ(t, e) { return await Ho.init(t, e) } async function rQ(t, e) { return await Ho.home(t, e) } async function VAe(t, e) { return await Ho.homeVod(t, e) } async function iQ(t, e) { return await Ho.category(t, e) } async function lQ(t, e) { return await Ho.detail(t, e) } async function sQ(t, e) { return await Ho.play(t, e) } async function aQ(t, e) { return await Ho.search(t, e) } async function qAe(t, e) { return await Ho.proxy(t, e) } var oQ = { meta: { key: Mt.getJSName(), name: Mt.getName(), type: Mt.getType() }, api: async t => { t.post("/init", nQ), t.post("/home", rQ), t.post("/category", iQ), t.post("/detail", lQ), t.post("/play", sQ), t.post("/search", aQ), t.get("/proxy/:what/:ids/:end", qAe) }, spider: { init: nQ, home: rQ, homeVod: VAe, category: iQ, detail: lQ, play: sQ, search: aQ } }; var YS = class extends z5 { constructor() { super(), this.siteUrl = "http://v.rbotv.cn", this.cookie = "", this.extendObj = { extend: "\u7C7B\u578B", area: "\u5730\u533A", lang: "\u8BED\u8A00", year: "\u5E74\u4EE3" }, this.parseMap = {} } getName() { return "\u{1F6F6}\u2503\u72EC\u64AD\u5F71\u89C6\u2503\u{1F6F6}" } getAppName() { return "\u72EC\u64AD\u5F71\u89C6" } getJSName() { return "dubo" } getType() { return 3 } async init(e) { await super.init(e), this.danmuStaus = !1 } }, Hn = new YS; var QS = class extends Re { constructor() { super() } getName() { return Hn.getName() } getAppName() { return Hn.getAppName() } getJSName() { return Hn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Hn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Hn.initCookie(e.server.config.bilicookie), await Hn.spiderInit(e), Hn.cfgObj.code = 0, Hn.catOpenStatus = !0, Hn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Hn.setClasses(), this.classes = Hn.classes } async setFilterObj() { await Hn.setFilterObj(), this.filterObj = Hn.filterObj } async setHomeVod() { await Hn.setHomeVod(), this.homeVodList = Hn.homeVodList } async setCategory(e, n, r, i) { await Hn.setCategory(e, n, r, i), this.vodList = Hn.vodList } async setDetail(e) { await Hn.setDetail(e), this.vodDetail = Hn.vodDetail } async setPlay(e, n, r) { await Hn.setPlay(e, n, r), this.playUrl = Hn.playUrl, this.result = Hn.result } async setSearch(e, n, r) { await Hn.setSearch(e, n, r), this.vodList = Hn.vodList, this.result = Hn.result } async setProxy(e, n) { return await Hn.proxy(e, n) } }, Vo = new QS; async function uQ(t, e) { return await Vo.init(t, e) } async function cQ(t, e) { return await Vo.home(t, e) } async function zAe(t, e) { return await Vo.homeVod(t, e) } async function pQ(t, e) { return await Vo.category(t, e) } async function fQ(t, e) { return await Vo.detail(t, e) } async function dQ(t, e) { return await Vo.play(t, e) } async function hQ(t, e) { return await Vo.search(t, e) } async function GAe(t, e) { return await Vo.proxy(t, e) } var mQ = { meta: { key: Hn.getJSName(), name: Hn.getName(), type: Hn.getType() }, api: async t => { t.post("/init", uQ), t.post("/home", cQ), t.post("/category", pQ), t.post("/detail", fQ), t.post("/play", dQ), t.post("/search", hQ), t.get("/proxy/:what/:ids/:end", GAe) }, spider: { init: uQ, home: cQ, homeVod: zAe, category: pQ, detail: fQ, play: dQ, search: hQ } }; var ZS = class extends Fe { constructor() { super(), this.siteUrl = "https://www.histar.tv", this.apiUrl = "https://aws.ulivetv.net" } getAppName() { return "\u661F\u89C6\u754C" } getName() { return "\u2604\uFE0F\u2503\u661F\u89C6\u754C\u2503\u5899\u2604\uFE0F" } getJSName() { return "star" } getType() { return 3 } getApiHeader() { return { "User-Agent": Y2, "Content-Type": "application/json" } } async setClasses() { let e = await this.getHtml(), n = e(e('[class="nav_nav__zgz60"]')[0]).find("a"); for (let r of n) { let i = r.attribs.href, l = e(r).text(); i !== "/" && l !== "\u7535\u89C6\u76F4\u64AD" && this.classes.push(this.getTypeDic(l, i)) } } convertTypeData(e, n, r) { if (!e || !e[n] || e[n].length <= 2) return null; let i = e[n]; n === "time" && (i = i.sort((s, a) => a - s), i.pop()); let l = B.map(i, s => { let a, o; return s instanceof Array ? (a = s[0], o = s[0]) : (a = s.toString(), o = s.toString()), { n: a, v: o } }); return l.unshift({ n: "\u5168\u90E8", v: "" }), { key: n, name: r, init: "", value: l } } async getFilter(e) { let n = e("#__NEXT_DATA__")[0].children[0].data, r = JSON.parse(n).props.pageProps.filterCondition, i = this.convertTypeData(r, "label", "\u7C7B\u578B"), l = this.convertTypeData(r, "country", "\u5730\u533A"), s = this.convertTypeData(r, "time", "\u5E74\u4EFD"); return [i, l, s] } async setFilterObj() { for (let e of this.classes.slice(1, 5)) { let n = e.type_id; if (n !== "\u6700\u8FD1\u66F4\u65B0") { let r = this.siteUrl + `${n}/all/all/all`, i = await this.getHtml(r); this.filterObj[n] = await this.getFilter(i) } } } parseVodShortFromtJson(e) { let n = new Ne; return n.vod_id = e.id, n.vod_name = e.name, n.vod_pic = e.img, B.isEmpty(n.vod_pic) && (n.vod_pic = e.picurl ?? ""), n.vod_remarks = e.countStr, B.isEmpty(n.vod_remarks) && (n.vod_remarks = e.time), n } async parseVodShortListFromJson(e) { let n = []; for (let r of e) if (r.name !== "\u7535\u89C6\u76F4\u64AD") { let l = r.cards; for (let s of l) { let a = this.parseVodShortFromtJson(s); n.push(a) } } return n } async parseVodShortListFromJsonByCategory(e) { let n = []; for (let r of e.list) { let i = this.parseVodShortFromtJson(r); n.push(i) } return n } getObjectValues(e, n) { let r = []; for (let i of e) r.push(i[n]); return r } async parseVodDetailfromJson(e) { let n = e.collectionInfo, r = new Be; r.vod_name = n.name, r.type_name = n.chname, r.vod_pic = n.picurl, r.vod_area = n.country, r.vod_remarks = n.countStr, r.vod_actor = this.getObjectValues(n.actor, "name").join("/"), r.vod_director = this.getObjectValues(n.director, "name").join("/"), r.vod_content = n.desc; let i = n.videosGroup, l = {}; return B.each(i, s => { let a = s.name, o = "", u = s.videos, c = B.map(u, f => { let m = "\u7B2C" + f.eporder + "\u96C6", d = f.purl; return m + "$" + d }); B.isEmpty(c) || (o = c.join("#"), l[a] = o) }), r.vod_play_from = B.keys(l).join("$$$"), r.vod_play_url = B.values(l).join("$$$"), r } async setHomeVod() { let e = await this.fetch(this.apiUrl + "/v3/web/api/home?chName=\u9996\u9875", null, this.getApiHeader()), n = JSON.parse(e).data.cardsGroup; this.homeVodList = await this.parseVodShortListFromJson(n) } getClassChName(e) { for (let n of this.classes) if (e === n.type_id) return n.type_name } async setCategory(e, n, r, i) { this.limit = 16; let l = { chName: this.getClassChName(e), page: parseInt(n), pageSize: this.limit }; if (i.label !== void 0 && (l.label = i.label), i.country !== void 0 && (l.country = i.country), i.time !== void 0) { let o = parseInt(i.time); l.startTime = o, l.endTime = o } let s = await this.post(this.apiUrl + "/v3/web/api/filter", JSON.stringify(l), { "User-Agent": Y2, "Content-Type": "application/json" }, ""), a = JSON.parse(s).data; this.vodList = await this.parseVodShortListFromJsonByCategory(a), this.count = Math.floor(a.total / this.limit), this.total = a.total } async setDetail(e) { let r = (await this.getHtml(this.siteUrl + "/vod/detail/" + e))("#__NEXT_DATA__")[0].children[0].data, i = JSON.parse(r).props.pageProps; this.vodDetail = await this.parseVodDetailfromJson(i) } async setSearch(e, n) { let i = { word: e, page: 1, pageSize: 20 }, l = await this.post(this.apiUrl + "/v3/web/api/search", JSON.stringify(i), this.getApiHeader(), ""), s = JSON.parse(l).data; this.vodList = await this.parseVodShortListFromJsonByCategory(s) } }, Vn = new ZS; var eT = class extends Re { constructor() { super() } getName() { return Vn.getName() } getAppName() { return Vn.getAppName() } getJSName() { return Vn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Vn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Vn.initCookie(e.server.config.bilicookie), await Vn.spiderInit(e), Vn.cfgObj.code = 0, Vn.catOpenStatus = !0, Vn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Vn.setClasses(), this.classes = Vn.classes } async setFilterObj() { await Vn.setFilterObj(), this.filterObj = Vn.filterObj } async setHomeVod() { await Vn.setHomeVod(), this.homeVodList = Vn.homeVodList } async setCategory(e, n, r, i) { await Vn.setCategory(e, n, r, i), this.vodList = Vn.vodList } async setDetail(e) { await Vn.setDetail(e), this.vodDetail = Vn.vodDetail } async setPlay(e, n, r) { await Vn.setPlay(e, n, r), this.playUrl = Vn.playUrl, this.result = Vn.result } async setSearch(e, n, r) { await Vn.setSearch(e, n, r), this.vodList = Vn.vodList, this.result = Vn.result } async setProxy(e, n) { return await Vn.proxy(e, n) } }, qo = new eT; async function yQ(t, e) { return await qo.init(t, e) } async function gQ(t, e) { return await qo.home(t, e) } async function JAe(t, e) { return await qo.homeVod(t, e) } async function vQ(t, e) { return await qo.category(t, e) } async function _Q(t, e) { return await qo.detail(t, e) } async function EQ(t, e) { return await qo.play(t, e) } async function bQ(t, e) { return await qo.search(t, e) } async function KAe(t, e) { return await qo.proxy(t, e) } var wQ = { meta: { key: Vn.getJSName(), name: Vn.getName(), type: Vn.getType() }, api: async t => { t.post("/init", yQ), t.post("/home", gQ), t.post("/category", vQ), t.post("/detail", _Q), t.post("/play", EQ), t.post("/search", bQ), t.get("/proxy/:what/:ids/:end", KAe) }, spider: { init: yQ, home: gQ, homeVod: JAe, category: vQ, detail: _Q, play: EQ, search: bQ } }; var Ei = class { constructor() { this.book_id = "", this.book_name = "", this.book_pic = "", this.book_remarks = "" } to_dict() { return JSON.stringify(this) } load_dic(e) { let n = JSON.parse(e); for (let r in n) this[r] = n[r] } }, zo = class extends Ei { constructor() { super(), this.book_year = "", this.book_director = "", this.book_content = "", this.volumes = "", this.urls = "" } to_short() { let e = new Ei; return e.load_dic(this.to_dict()), e.to_dict() } load_dic(e) { let n = JSON.parse(e); for (let r in n) this[r] = n[r], console.log(r) } }; var tT = class extends Fe { constructor() { super(), this.siteUrl = "http://m.dj0898.com" } getName() { return "\u{1F3B5}\u2503\u4E16\u7EAADJ\u97F3\u4E50\u7F51\u2503\u{1F3B5}" } getAppName() { return "\u4E16\u7EAADJ\u97F3\u4E50\u7F51" } getJSName() { return "dj0898_book_open" } getType() { return 10 } async parseVodShortListFromDoc(e) { let n = [], r = e("ul.djddv_djList > li"); for (let i of r) { let l = new Ei, s = e(i).find("a")[1]; l.book_id = s.attribs.href, l.book_pic = e(i).find("img:first")[0].attribs.src; let a = e(i).find("strong:first")[0]; l.book_name = a.children[0].data, l.book_remarks = "\u{1F3B5}" + e(i).find("font")[5].children[0].data || "", n.push(l) } return n } async parseVodShortListFromDocByCategory(e) { let n = e("ul.djddv_djList > li"), r = B.map(n, l => { let s = e(l).find("a")[1], a = e(l).find("img:first")[0], o = e(l).find("strong:first")[0], u = e(l).find("font")[5]; return { book_id: s.attribs.href, book_name: o.children[0].data, book_pic: a.attribs.src, book_remarks: "\u{1F3B5}" + u.children[0].data || "" } }), i = e("ul.page_link > li > a:contains(\xA0)").length > 0; return this.page = i ? parseInt(this.page) + 1 : parseInt(this.page), r } async parseVodShortListFromDocBySearch(e) { let n = e("ul.djddv_djList > li"); return B.map(n, r => { let i = e(r).find("a")[1], l = e(r).find("img:first")[0], s = e(r).find("strong:first")[0], a = e(r).find("font:first")[0]; return { book_id: i.attribs.href, book_name: s.children[0].data, book_pic: l.attribs.src, book_remarks: "\u{1F3B5}" + a.children[0].data || "" } }) } async parseVodDetailFromDoc(e) { let n = { book_id: e, audio: 1, type_name: "", book_year: "", book_area: "", book_remarks: "", book_actor: "", book_director: "", book_content: "" }, r = ["\u70B9\u51FB\u64AD\u653E$" + n.book_id]; return n.volumes = "\u4E16\u7EAADJ\u97F3\u4E50\u7F51", n.urls = r.join("#"), n } async setClasses() { this.classes = [{ type_id: 1, type_name: "\u{1F3A7}\u4E32\u70E7\u821E\u66F2" }, { type_id: 2, type_name: "\u{1F3A7}\u5916\u6587\u821E\u66F2" }, { type_id: 3, type_name: "\u{1F3A7}\u65E9\u573A\u6696\u573A" }, { type_id: 4, type_name: "\u{1F3A7}\u4E2D\u6587\u821E\u66F2" }, { type_id: 5, type_name: "\u{1F3A7}\u5176\u4ED6\u821E\u66F2" }, { type_id: 6, type_name: "\u{1F3A7}\u56FD\u5916\u7535\u97F3" }, { type_id: 8, type_name: "\u{1F3A7}\u6162\u6B4C\u8FDE\u7248" }, { type_id: 9, type_name: "\u{1F3A7}\u9152\u5427\u6F6E\u6B4C" }, { type_id: 10, type_name: "\u{1F3A7}\u4E2D\u6587\u4E32\u70E7" }, { type_id: 11, type_name: "\u{1F3A7}\u5916\u6587\u4E32\u70E7" }, { type_id: 12, type_name: "\u{1F3A7}\u4E2D\u5916\u4E32\u70E7" }, { type_id: 13, type_name: "\u{1F3A7}\u8F66\u8F7D\u4E32\u70E7" }, { type_id: 14, type_name: "\u{1F3A7}\u8D8A\u9F13\u4E32\u70E7" }, { type_id: 40, type_name: "\u{1F3A7}3D/\u73AF\u7ED5" }, { type_id: 45, type_name: "\u{1F3A7}\u53E3\u6C34\u65CB\u5F8B" }, { type_id: 46, type_name: "\u{1F3A7}\u7CBE\u54C1\u6536\u85CF" }, { type_id: 47, type_name: "\u{1F3A7}\u5F00\u573A\u821E\u66F2" }, { type_id: 48, type_name: "\u{1F3A7}\u5370\u5EA6\u821E\u66F2" }, { type_id: 49, type_name: "\u{1F3A7}\u7F16\u6392\u5957\u66F2" }, { type_id: 20, type_name: "\u{1F3A7}DuTch" }, { type_id: 21, type_name: "\u{1F3A7}Mash up" }, { type_id: 22, type_name: "\u{1F3A7}ClubHouse" }, { type_id: 23, type_name: "\u{1F3A7}ElectroHouse" }, { type_id: 24, type_name: "\u{1F3A7}\u8D8A\u5357\u9F13Dj" }, { type_id: 30, type_name: "\u{1F3A7}Funky" }, { type_id: 31, type_name: "\u{1F3A7}Reggae" }, { type_id: 32, type_name: "\u{1F3A7}Rnb" }, { type_id: 33, type_name: "\u{1F3A7}Hip Hop" }, { type_id: 34, type_name: "\u{1F3A7}Dubstep" }, { type_id: 8017, type_name: "\u{1F3A7}Hardstyle" }, { type_id: 8018, type_name: "\u{1F3A7}Hands Up" }] } async setFilterObj() { } async setHomeVod() { let e = await this.getHtml(this.siteUrl + "/dance/lists/id/10/1"); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setCategory(e, n, r, i) { let l = this.siteUrl + "/dance/lists/id/" + e + "/" + n, s = await this.getHtml(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) } async setDetail(e) { this.vodDetail = await this.parseVodDetailFromDoc(e) } async setPlay(e, n, r) { let l = (await this.getHtml(n))("body audio[src*=http]"); this.playUrl = l[0].attribs.src } async setSearch(e, n) { let r = await this.getHtml(this.siteUrl + "/index.php/dance/so/key?key=" + e + "&cid=0&p=1"); this.vodList = await this.parseVodShortListFromDocBySearch(r) } }, qn = new tT; var nT = class extends Re { constructor() { super() } getName() { return qn.getName() } getAppName() { return qn.getAppName() } getJSName() { return qn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await qn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await qn.initCookie(e.server.config.bilicookie), await qn.spiderInit(e), qn.cfgObj.code = 0, qn.catOpenStatus = !0, qn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await qn.setClasses(), this.classes = qn.classes } async setFilterObj() { await qn.setFilterObj(), this.filterObj = qn.filterObj } async setHomeVod() { await qn.setHomeVod(), this.homeVodList = qn.homeVodList } async setCategory(e, n, r, i) { await qn.setCategory(e, n, r, i), this.vodList = qn.vodList } async setDetail(e) { await qn.setDetail(e), this.vodDetail = qn.vodDetail } async setPlay(e, n, r) { await qn.setPlay(e, n, r), this.playUrl = qn.playUrl, this.result = qn.result } async setSearch(e, n, r) { await qn.setSearch(e, n, r), this.vodList = qn.vodList, this.result = qn.result } async setProxy(e, n) { return await qn.proxy(e, n) } }, Go = new nT; async function SQ(t, e) { return await Go.init(t, e) } async function TQ(t, e) { return await Go.home(t, e) } async function XAe(t, e) { return await Go.homeVod(t, e) } async function xQ(t, e) { return await Go.category(t, e) } async function AQ(t, e) { return await Go.detail(t, e) } async function OQ(t, e) { return await Go.play(t, e) } async function NQ(t, e) { return await Go.search(t, e) } async function WAe(t, e) { return await Go.proxy(t, e) } var CQ = { meta: { key: qn.getJSName(), name: qn.getName(), type: qn.getType() }, api: async t => { t.post("/init", SQ), t.post("/home", TQ), t.post("/category", xQ), t.post("/detail", AQ), t.post("/play", OQ), t.post("/search", NQ), t.get("/proxy/:what/:ids/:end", WAe) }, spider: { init: SQ, home: TQ, homeVod: XAe, category: xQ, detail: AQ, play: OQ, search: NQ } }; function YAe(t) { return t.trim().replace(/<|>|《|》/g, "").replace(/\$|#/g, " ").trim() } var rT = class extends Fe { constructor() { super(), this.siteUrl = "https://api.bookan.com.cn" } getName() { return "\u{1F3B5}\u2503\u770B\u4E66\u2503\u{1F3B5}" } getAppName() { return "\u770B\u4E66" } getJSName() { return "bookan" } getType() { return 10 } async parseVodShortListFromJson(e) { let n = []; for (let r of e.list) n.push({ book_id: r.id, book_name: r.name, book_pic: r.cover, book_remarks: r.extra.author }); return n } async setClasses() { this.classes = [{ type_id: "1305", type_name: "\u5C11\u5E74\u8BFB\u7269" }, { type_id: "1304", type_name: "\u513F\u7AE5\u6587\u5B66" }, { type_id: "1320", type_name: "\u56FD\u5B66\u7ECF\u5178" }, { type_id: "1306", type_name: "\u6587\u827A\u5C11\u5E74" }, { type_id: "1309", type_name: "\u80B2\u513F\u5FC3\u7ECF" }, { type_id: "1310", type_name: "\u5FC3\u7406\u54F2\u5B66" }, { type_id: "1307", type_name: "\u9752\u6625\u52B1\u5FD7" }, { type_id: "1312", type_name: "\u5386\u53F2\u5C0F\u8BF4" }, { type_id: "1303", type_name: "\u6545\u4E8B\u4F1A" }, { type_id: "1317", type_name: "\u97F3\u4E50\u620F\u5267" }, { type_id: "1319", type_name: "\u76F8\u58F0\u8BC4\u4E66" }] } async setCategory(e, n, r, i) { let l = await this.fetch(`${this.siteUrl}/voice/book/list?instance_id=25304&page=${n}&category_id=${e}&num=24`, null, this.getHeader()), s = JSON.parse(l).data; this.vodList = await this.parseVodShortListFromJson(s) } async parseVodDetailfromJson(e) { let n = { audio: 1, type_name: "", book_year: "", book_area: "", book_remarks: "", book_actor: "", book_director: "", book_content: "" }, r = B.map(e.list, function (i) { return YAe(i.title) + "$" + i.file }).join("#"); return n.volumes = "\u4E66\u5377", n.urls = r, n } async setDetail(e) { let n = await this.fetch(`${this.siteUrl}/voice/album/units?album_id=${e}&page=1&num=200&order=1`, null, this.getHeader()), r = JSON.parse(n).data; this.vodDetail = await this.parseVodDetailfromJson(r), this.vodDetail.book_id = e } async play(e, n, r) { return JSON.stringify({ parse: 0, url: n }) } async setSearch(e, n) { let r = await this.fetch(`https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=${e}&pageNum=1&limitNum=20`, null, this.getHeader()), i = JSON.parse(r).data; this.vodList = await this.parseVodShortListFromJson(i) } }, zn = new rT; var iT = class extends Re { constructor() { super() } getName() { return zn.getName() } getAppName() { return zn.getAppName() } getJSName() { return zn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await zn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await zn.initCookie(e.server.config.bilicookie), await zn.spiderInit(e), zn.cfgObj.code = 0, zn.catOpenStatus = !0, zn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await zn.setClasses(), this.classes = zn.classes } async setFilterObj() { await zn.setFilterObj(), this.filterObj = zn.filterObj } async setHomeVod() { await zn.setHomeVod(), this.homeVodList = zn.homeVodList } async setCategory(e, n, r, i) { await zn.setCategory(e, n, r, i), this.vodList = zn.vodList } async setDetail(e) { await zn.setDetail(e), this.vodDetail = zn.vodDetail } async setPlay(e, n, r) { await zn.setPlay(e, n, r), this.playUrl = zn.playUrl, this.result = zn.result } async setSearch(e, n, r) { await zn.setSearch(e, n, r), this.vodList = zn.vodList, this.result = zn.result } async setProxy(e, n) { return await zn.proxy(e, n) } }, Jo = new iT; async function RQ(t, e) { return await Jo.init(t, e) } async function IQ(t, e) { return await Jo.home(t, e) } async function QAe(t, e) { return await Jo.homeVod(t, e) } async function kQ(t, e) { return await Jo.category(t, e) } async function DQ(t, e) { return await Jo.detail(t, e) } async function PQ(t, e) { return await Jo.play(t, e) } async function LQ(t, e) { return await Jo.search(t, e) } async function ZAe(t, e) { return await Jo.proxy(t, e) } var FQ = { meta: { key: zn.getJSName(), name: zn.getName(), type: zn.getType() }, api: async t => { t.post("/init", RQ), t.post("/home", IQ), t.post("/category", kQ), t.post("/detail", DQ), t.post("/play", PQ), t.post("/search", LQ), t.get("/proxy/:what/:ids/:end", ZAe) }, spider: { init: RQ, home: IQ, homeVod: QAe, category: kQ, detail: DQ, play: PQ, search: LQ } }; var lT = class extends Fe { constructor() { super(), this.siteUrl = "https://www.copymanga.tv" } getName() { return "\u{1F9D1}\u200D\u{1F3A8}|\u62F7\u8D1D\u6F2B\u753B|\u{1F9D1}\u200D\u{1F3A8}" } getAppName() { return "\u62F7\u8D1D\u6F2B\u753B" } getJSName() { return "copymanga" } getType() { return 20 } async setClasses() { this.classes.push(this.getTypeDic("\u5168\u90E8", "c1")) } async getFilter(t) { let e = { key: "region", name: "\u5730\u5340", init: "" }, n = []; n.push({ n: "\u5168\u90E8", v: "" }), n.push({ n: "\u65E5\u6F2B", v: "0" }), n.push({ n: "\u97D3\u6F2B", v: "1" }), n.push({ n: "\u7F8E\u6F2B", v: "2" }), e.value = n; let r = { key: "ordering", name: "\u6392\u5E8F", init: "-datetime_updated" }, i = []; i.push({ n: "\u66F4\u65B0\u6642\u9593\u2193", v: "-datetime_updated" }), i.push({ n: "\u66F4\u65B0\u6642\u9593\u2191", v: "datetime_updated" }), i.push({ n: "\u71B1\u9580\u2193", v: "-popular" }), i.push({ n: "\u71B1\u9580\u2191", v: "popular" }), r.value = i; let l = { key: "sort", name: "\u72C0\u614B", init: "" }, s = []; s.push({ n: "\u5168\u90E8", v: "" }), s.push({ n: "\u9023\u8F09\u4E2D", v: "0" }), s.push({ n: "\u5DF2\u5B8C\u7D50", v: "1" }), s.push({ n: "\u77ED\u7BC7", v: "2" }), l.value = s; let a = [], o = [{ n: "\u5168\u90E8", v: "" }]; for (let u of t('div.classify-right>a[href*="theme="]')) o.push({ n: t(u).text().trim(), v: u.attribs.href.match(/.*?theme=(.*)&/)[1] }); return a.push({ key: "theme", name: "", init: "", wrap: 1, value: o }), a.push(e), a.push(l), a.push(r), a } async setFilterObj() { let t = await this.getHtml(this.siteUrl + "/comics"); this.filterObj.c1 = await this.getFilter(t) } parseVodShortFromJson(t) { let e = new Ei; return e.book_id = t.path_word, e.book_name = t.name, e.book_pic = t.cover, e.book_remarks = t.author ? t.author[0].name : "", e } async parseVodShortListFromDocByCategory($) { let list = eval($('div[class="row exemptComic-box"]')[0].attribs.list), books = []; for (let t of list) { let e = this.parseVodShortFromJson(t); books.push(e) } return books } async parseVodShortListFromDoc(t) { let e = t('[class="container edit"]').find('[class="col-auto"]'), n = []; for (let r of e) { let i = new Ei; i.book_id = t(r).find("a")[0].attribs.href.split("/comic/")[1], i.book_pic = t(r).find("img")[0].attribs["data-src"], i.book_name = t(t(r).find("p")).text(), n.push(i) } return n } async parseVodDetailFromDoc(t, e) { let n = new zo; n.book_pic = t('[class="comicParticulars-left-img loadingIcon"]').find("img")[0].attribs["data-src"], n.book_name = t("h6").text().trim(), n.book_director = t('span.comicParticulars-right-txt>a[href*="/author/"]').map((c, f) => t(f).text().trim()).get().join("/"), n.book_content = t("p.intro").text().trim(); let r = JSON.parse(await this.fetch(this.siteUrl + `/comicdetail/${e}/chapters`, null, this.getHeader())).results, i = Ve.enc.Utf8.parse("xxxmanga.woo.key"), l = Ve.enc.Utf8.parse(r.substr(0, 16)), s = Ve.enc.Hex.parse(r.substr(16)), a = Ve.AES.decrypt({ ciphertext: s }, i, { iv: l, padding: Ve.pad.Pkcs7 }); a = Ve.enc.Utf8.stringify(a); let u = JSON.parse(a).groups.default.chapters.map(c => c.name + "$" + e + "|" + c.id).join("#"); return n.volumes = "\u9ED8\u8A8D", n.urls = u, n.book_id = e, n } async parseVodShortListFromJson(t) { let e = []; for (let n of t) e.push(this.parseVodShortFromJson(n)); return e } async setHomeVod() { let t = await this.getHtml(this.siteUrl); this.homeVodList = await this.parseVodShortListFromDoc(t) } async setCategory(t, e, n, r) { let i = e || 1; i === 0 && (i = 1); let l = this.siteUrl + `/comics?theme=${r.theme || ""}&region=${r.region || ""}&status=${r.status || ""}&ordering=${r.ordering || "-datetime_updated"}`; i > 1 && (l += "&offset=" + (i - 1) * 50 + "&limit=50"); let s = await this.getHtml(l); this.vodList = await this.parseVodShortListFromDocByCategory(s) } async setDetail(t) { let e = await this.getHtml(this.siteUrl + `/comic/${t}`); this.vodDetail = await this.parseVodDetailFromDoc(e, t) } async setPlay(t, e, n) { let r = e.split("|"), l = (await this.getHtml(this.siteUrl + `/comic/${r[0]}/chapter/${r[1]}`))("div.imageData")[0].attribs.contentkey, s = Ve.enc.Utf8.parse("xxxmanga.woo.key"), a = Ve.enc.Utf8.parse(l.substr(0, 16)), o = Ve.enc.Hex.parse(l.substr(16)), u = Ve.AES.decrypt({ ciphertext: o }, s, { iv: a, padding: Ve.pad.Pkcs7 }); u = Ve.enc.Utf8.stringify(u); let c = JSON.parse(u), f = []; for (let m = 0; m < c.length; m++) { let d = c[m]; f[m] = d.url } this.playUrl = { content: f } } async setSearch(t, e) { let n = 1, r = `${this.siteUrl}/api/kb/web/searcha/comics?offset=${n > 1 ? ((n - 1) * 12).toString() : ""}&platform=2&limit=12&q=${t}&q_type=`, i = JSON.parse(await this.fetch(r, null, this.getHeader())).results.list; this.vodList = await this.parseVodShortListFromJson(i) } }, Vt = new lT; async function eOe(t) { await Vt.init(t) } async function tOe(t) { return await Vt.home(t) } async function nOe() { return await Vt.homeVod() } async function rOe(t, e, n, r) { return await Vt.category(t, e, n, r) } async function iOe(t) { return await Vt.detail(t) } async function lOe(t, e, n) { return await Vt.play(t, e, n) } async function sOe(t, e) { return await Vt.search(t, e) } function UVe() { return { init: eOe, home: tOe, homeVod: nOe, category: rOe, detail: iOe, play: lOe, search: sOe } } var sT = class extends Re { constructor() { super() } getName() { return Vt.getName() } getAppName() { return Vt.getAppName() } getJSName() { return Vt.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Vt.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Vt.initCookie(e.server.config.bilicookie), await Vt.spiderInit(e), Vt.cfgObj.code = 0, Vt.catOpenStatus = !0, Vt.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Vt.setClasses(), this.classes = Vt.classes } async setFilterObj() { await Vt.setFilterObj(), this.filterObj = Vt.filterObj } async setHomeVod() { await Vt.setHomeVod(), this.homeVodList = Vt.homeVodList } async setCategory(e, n, r, i) { await Vt.setCategory(e, n, r, i), this.vodList = Vt.vodList } async setDetail(e) { await Vt.setDetail(e), this.vodDetail = Vt.vodDetail } async setPlay(e, n, r) { await Vt.setPlay(e, n, r), this.playUrl = Vt.playUrl, this.result = Vt.result } async setSearch(e, n, r) { await Vt.setSearch(e, n, r), this.vodList = Vt.vodList, this.result = Vt.result } async setProxy(e, n) { return await Vt.proxy(e, n) } }, Ko = new sT; async function jQ(t, e) { return await Ko.init(t, e) } async function UQ(t, e) { return await Ko.home(t, e) } async function aOe(t, e) { return await Ko.homeVod(t, e) } async function MQ(t, e) { return await Ko.category(t, e) } async function $Q(t, e) { return await Ko.detail(t, e) } async function BQ(t, e) { return await Ko.play(t, e) } async function HQ(t, e) { return await Ko.search(t, e) } async function oOe(t, e) { return await Ko.proxy(t, e) } var VQ = { meta: { key: Vt.getJSName(), name: Vt.getName(), type: Vt.getType() }, api: async t => { t.post("/init", jQ), t.post("/home", UQ), t.post("/category", MQ), t.post("/detail", $Q), t.post("/play", BQ), t.post("/search", HQ), t.get("/proxy/:what/:ids/:end", oOe) }, spider: { init: jQ, home: UQ, homeVod: aOe, category: MQ, detail: $Q, play: BQ, search: HQ } }; var aT = class extends Fe {
constructor() { super(), this.siteUrl = "https://m.13bqg.com" } getAppName() { return "\u7B14\u8DA3\u9601" } getJSName() { return "bqg_open" } getType() { return 10 } getName() { return "\u{1F4DA}\uFE0E\u2503\u7B14\u8DA3\u9601\u2503\u{1F4DA}\uFE0E" } async spiderInit(e = null) { e !== null ? this.jsBase = await js2Proxy(e, "img", this.getHeader()) : this.jsBase = await js2Proxy(!0, this.siteType, this.siteKey, "img/", this.getHeader()) } async init(e) { await super.init(e), await this.spiderInit(null) } async parseVodShortListFromDoc(e) { let n = [], r = e('[class="block"]'); for (let i of e(r[0]).find("li")) { let l = new Ei, s = e(i).find("span"); l.book_remarks = e(s[0]).text(), l.book_name = e(s[1]).text(), l.book_id = e(s[1]).find("a")[0].attribs.href, l.book_pic = this.jsBase + ti(l.book_id), n.push(l) } return n } async parseVodShortListFromDocByCategory(e) { let n = []; for (let r of e("div.item")) { let i = new Ei; i.book_id = e(r).find("a:first")[0].attribs.href; let l = e(r).find("img:first")[0]; i.book_name = l.attribs.alt, i.book_pic = l.attribs.src, i.book_remarks = e(r).find("span:first")[0].children[0].data.trim(), n.push(i) } return n } async parseVodDetailFromDoc(e, n) { let r = new zo; if (r.book_name = e("[property$=book_name]")[0].attribs.content, r.book_year = e("[property$=update_time]")[0].attribs.content, r.book_director = e("[property$=author]")[0].attribs.content, r.book_content = e("[property$=description]")[0].attribs.content, r.book_pic = e(e('[class="cover"]')).find("img")[0].attribs.src, r.book_id = n, n !== void 0) { e = await this.getHtml(this.siteUrl + n + "list.html"); let i = [], l = e('dl>dd>a[href*="/html/"]'); for (let s of l) { let a = e(s).text().trim(), o = s.attribs.href; i.push(a + "$" + o) } r.volumes = "\u5168\u5377", r.urls = i.join("#") } return r } async setClasses() { let e = await this.getHtml(); for (let n of e('div.nav > ul > li > a[href!="/"]')) this.classes.push({ type_id: n.attribs.href.replace(/\//g, ""), type_name: n.children[0].data.trim(), tline: 2 }) } async setHomeVod() { let e = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setDetail(e) { let n = await this.getHtml(this.siteUrl + e); this.vodDetail = await this.parseVodDetailFromDoc(n, e) } async setCategory(e, n, r, i) { let l = await this.getHtml(this.siteUrl + `/${e}/${n}.html`); this.vodList = await this.parseVodShortListFromDocByCategory(l) } async setPlay(e, n, r) {
try {
let i = ""; for (; ;) {
let l = await this.getHtml(this.siteUrl + n); if (i += l("#chaptercontent").html().replace(/<br>|请收藏.*?<\/p>/g, `
`).trim(), n = l("a.Readpage_down")[0].attribs.href, n.indexOf("_") < 0) break
} this.playUrl = {
content: i + `
`}
} catch { this.playUrl = { content: "" } }
} async search(e, n) { let r = await req(`${this.siteUrl}/user/hm.html?q=${encodeURIComponent(e)}`, { headers: { accept: "application/json", "User-Agent": Y2, Referer: `${this.siteUrl}/s?q=${encodeURIComponent(e)}` } }), l = (B.isArray(r.headers["set-cookie"]) ? r.headers["set-cookie"].join(";;;") : r.headers["set-cookie"]).split(";;;"), s = {}; for (let c of l) { let f = c.trim(), m = f.indexOf("="), d = f.substr(0, m); s[d] = f.substr(m + 1, f.indexOf(";") - m - 1) } let a = await req(`${this.siteUrl}/user/search.html?q=${encodeURIComponent(e)}&so=undefined`, { headers: { accept: "application/json", "User-Agent": Y2, cookie: "hm=" + s.hm, Referer: `${this.siteUrl}/s?q=${encodeURIComponent(e)}` } }), o = JSON.parse(a.content), u = []; for (let c of o) u.push({ book_id: c.url_list, book_name: c.articlename, book_pic: c.url_img, book_remarks: c.author }); return { tline: 2, list: u } } async proxy(e, n) { await this.jadeLog.debug(`\u6B63\u5728\u8BBE\u7F6E\u53CD\u5411\u4EE3\u7406 segments = ${e.join(",")},headers = ${JSON.stringify(n)}`); let r = e[0], i = vi(e[1]); if (r === "img") { await this.jadeLog.debug(`\u53CD\u5411\u4EE3\u7406ID\u4E3A:${i}`); let l = await this.getHtml(this.siteUrl + i), s = await this.parseVodDetailFromDoc(l), a; return B.isEmpty(n) ? a = await req(s.book_pic, { buffer: 2, headers: { Referer: i, "User-Agent": zr } }) : a = await req(s.book_pic, { buffer: 2, headers: n }), JSON.stringify({ code: a.code, buffer: 2, content: a.content, headers: a.headers }) } return JSON.stringify({ code: 500, content: "" }) }
}, Gn = new aT; var oT = class extends Re { constructor() { super() } getName() { return Gn.getName() } getAppName() { return Gn.getAppName() } getJSName() { return Gn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Gn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Gn.initCookie(e.server.config.bilicookie), await Gn.spiderInit(e), Gn.cfgObj.code = 0, Gn.catOpenStatus = !0, Gn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Gn.setClasses(), this.classes = Gn.classes } async setFilterObj() { await Gn.setFilterObj(), this.filterObj = Gn.filterObj } async setHomeVod() { await Gn.setHomeVod(), this.homeVodList = Gn.homeVodList } async setCategory(e, n, r, i) { await Gn.setCategory(e, n, r, i), this.vodList = Gn.vodList } async setDetail(e) { await Gn.setDetail(e), this.vodDetail = Gn.vodDetail } async setPlay(e, n, r) { await Gn.setPlay(e, n, r), this.playUrl = Gn.playUrl, this.result = Gn.result } async setSearch(e, n, r) { await Gn.setSearch(e, n, r), this.vodList = Gn.vodList, this.result = Gn.result } async setProxy(e, n) { return await Gn.proxy(e, n) } }, Xo = new oT; async function qQ(t, e) { return await Xo.init(t, e) } async function zQ(t, e) { return await Xo.home(t, e) } async function uOe(t, e) { return await Xo.homeVod(t, e) } async function GQ(t, e) { return await Xo.category(t, e) } async function JQ(t, e) { return await Xo.detail(t, e) } async function KQ(t, e) { return await Xo.play(t, e) } async function XQ(t, e) { return await Xo.search(t, e) } async function cOe(t, e) { return await Xo.proxy(t, e) } var WQ = { meta: { key: Gn.getJSName(), name: Gn.getName(), type: Gn.getType() }, api: async t => { t.post("/init", qQ), t.post("/home", zQ), t.post("/category", GQ), t.post("/detail", JQ), t.post("/play", KQ), t.post("/search", XQ), t.get("/proxy/:what/:ids/:end", cOe) }, spider: { init: qQ, home: zQ, homeVod: uOe, category: GQ, detail: JQ, play: KQ, search: XQ } }; var uT = class extends Fe {
constructor() { super(), this.siteUrl = "https://www.diyi69.com" } getAppName() { return "\u516D\u4E5D\u4E66\u5427" } getJSName() { return "liujiushu" } getType() { return 10 } getName() { return "\u{1F4DA}\uFE0E\u2503\u516D\u4E5D\u4E66\u5427\u2503\u{1F4DA}\uFE0E" } async spiderInit(e = null) { e !== null ? this.jsBase = await js2Proxy(e, "img", this.getHeader()) : this.jsBase = await js2Proxy(!0, this.siteType, this.siteKey, "img/", this.getHeader()) } async init(e) { await super.init(e), await this.spiderInit(null) } parseVodShortFromElement(e, n) { let r = new Ei, i = e(n).find("a"); return r.book_remarks = e(i[2]).text(), r.book_name = e(i[1]).text(), r.book_id = i[0].attribs.href, r.book_pic = e(n).find("img")[0].attribs.src, r } async parseVodShortListFromDoc(e) { let n = [], r = e(e('[class="flex"]')[0]).find("li"); for (let i of r) { let l = this.parseVodShortFromElement(e, i); n.push(l) } return n } async parseVodShortListFromDocByCategory(e) { let n = e("ul.flex > li"), r = []; for (let i of n) { let l = new Ei; l.book_id = e(i).find("a:first")[0].attribs.href; let s = e(i).find("img:first")[0]; l.book_name = s.attribs.title, l.book_pic = s.attribs["data-original"], l.book_remarks = e(e(i).find("em:first")).text(), r.push(l) } return r } async parseVodShortListFromDocBySearch(e) { let n = [], r = e("li.searchresult"); for (let i of r) { let l = new Ei, s = e(i).find("a"); l.book_remarks = e(s[2]).text(), l.book_name = e(s[1]).text(), l.book_id = s[0].attribs.href, l.book_pic = e(s[0]).find("img")[0].attribs["data-original"], n.push(l) } return n } async parseVodDetailFromDoc(e, n) { let r = e.html(), i = new zo; i.book_name = e("[property$=title]")[0].attribs.content, i.book_year = e("[property$=update_time]")[0].attribs.content, i.book_director = e("[property$=author]")[0].attribs.content, i.book_content = e("[property$=description]")[0].attribs.content, i.book_remarks = e("[property$=category]")[0].attribs.content, i.book_pic = e("div.novel_info_main>img")[0].attribs.src, i.book_id = n; let l = {}, s = e('[class="flex ulcard"]').find("li"), a = e('[class="section chapter_list"]'); for (let o = 0; o < s.length; o++) { let u = s[o], c = a[o], f = []; for (let d of e(c).find("a")) { let y = e(d).text(), _ = y + "-" + d.attribs.href; f.push(y + "$" + _) } let m = e(e(c).find('[class="title jcc"]')).text(); B.isEmpty(m) ? l[e(u).text()] = f.join("#") : l[m] = f.join("#") } return i.volumes = B.keys(l).join("$$$"), i.urls = B.values(l).join("$$$"), i } async setClasses() { let e = await this.getHtml(); for (let n of e('div.navigation > nav > a[href!="/"]')) { let r = n.attribs.href.split("/").slice(0, 3); this.classes.push({ type_id: r.join("/"), type_name: n.children[0].data.trim(), tline: 2 }) } } async setHomeVod() { let e = await this.getHtml(); this.homeVodList = await this.parseVodShortListFromDoc(e) } async setDetail(e) { let n = await this.getHtml(this.siteUrl + e); this.vodDetail = await this.parseVodDetailFromDoc(n, e) } async setCategory(e, n, r, i) { let l = await this.getHtml(this.siteUrl + `${e}/${n}.html`); this.vodList = await this.parseVodShortListFromDocByCategory(l) } async setPlay(e, n, r) {
let i = n.split("-"); n = i[1]; let l = i[0] + `
`; for (; ;) {
let s = await this.getHtml(this.siteUrl + n); if (l += Ep(s('[class="content"]').html().trim().replaceAll("<p>", " ").replaceAll("</p>", `
`)), n = s('[id="next_url"]')[0].attribs.href, n.indexOf("_") < 0) break
} this.playUrl = { content: l }
} async setSearch(e, n) { let r = { searchkey: e, searchtype: "all", Submit: "" }, i = await this.fetch(this.siteUrl + "/search/", r, this.getHeader()), l = $e(i); this.vodList = await this.parseVodShortListFromDocBySearch(l) } async proxy(e, n) { await this.jadeLog.debug(`\u6B63\u5728\u8BBE\u7F6E\u53CD\u5411\u4EE3\u7406 segments = ${e.join(",")},headers = ${JSON.stringify(n)}`); let r = e[0], i = vi(e[1]); if (r === "img") { await this.jadeLog.debug(`\u53CD\u5411\u4EE3\u7406ID\u4E3A:${i}`); let l = await this.getHtml(this.siteUrl + i), s = await this.parseVodDetailFromDoc(l), a; return B.isEmpty(n) ? a = await req(s.book_pic, { buffer: 2, headers: { Referer: i, "User-Agent": zr } }) : a = await req(s.book_pic, { buffer: 2, headers: n }), JSON.stringify({ code: a.code, buffer: 2, content: a.content, headers: a.headers }) } return JSON.stringify({ code: 500, content: "" }) }
}, Jn = new uT; var cT = class extends Re { constructor() { super() } getName() { return Jn.getName() } getAppName() { return Jn.getAppName() } getJSName() { return Jn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Jn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Jn.initCookie(e.server.config.bilicookie), await Jn.spiderInit(e), Jn.cfgObj.code = 0, Jn.catOpenStatus = !0, Jn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Jn.setClasses(), this.classes = Jn.classes } async setFilterObj() { await Jn.setFilterObj(), this.filterObj = Jn.filterObj } async setHomeVod() { await Jn.setHomeVod(), this.homeVodList = Jn.homeVodList } async setCategory(e, n, r, i) { await Jn.setCategory(e, n, r, i), this.vodList = Jn.vodList } async setDetail(e) { await Jn.setDetail(e), this.vodDetail = Jn.vodDetail } async setPlay(e, n, r) { await Jn.setPlay(e, n, r), this.playUrl = Jn.playUrl, this.result = Jn.result } async setSearch(e, n, r) { await Jn.setSearch(e, n, r), this.vodList = Jn.vodList, this.result = Jn.result } async setProxy(e, n) { return await Jn.proxy(e, n) } }, Wo = new cT; async function YQ(t, e) { return await Wo.init(t, e) } async function QQ(t, e) { return await Wo.home(t, e) } async function pOe(t, e) { return await Wo.homeVod(t, e) } async function ZQ(t, e) { return await Wo.category(t, e) } async function eZ(t, e) { return await Wo.detail(t, e) } async function tZ(t, e) { return await Wo.play(t, e) } async function nZ(t, e) { return await Wo.search(t, e) } async function fOe(t, e) { return await Wo.proxy(t, e) } var rZ = { meta: { key: Jn.getJSName(), name: Jn.getName(), type: Jn.getType() }, api: async t => { t.post("/init", YQ), t.post("/home", QQ), t.post("/category", ZQ), t.post("/detail", eZ), t.post("/play", tZ), t.post("/search", nZ), t.get("/proxy/:what/:ids/:end", fOe) }, spider: { init: YQ, home: QQ, homeVod: pOe, category: ZQ, detail: eZ, play: tZ, search: nZ } }; function sZ(t) { this._parameters = {}, this._loadParameters(t || {}) } sZ.prototype = { _loadParameters: function (t) { t instanceof Array ? this._loadParametersFromArray(t) : typeof t == "object" && this._loadParametersFromObject(t) }, _loadParametersFromArray: function (t) { var e; for (e = 0; e < t.length; e++)this._loadParametersFromObject(t[e]) }, _loadParametersFromObject: function (t) { var e; for (e in t) if (t.hasOwnProperty(e)) { var n = this._getStringFromParameter(t[e]); this._loadParameterValue(e, n) } }, _loadParameterValue: function (t, e) { var n; if (e instanceof Array) { for (n = 0; n < e.length; n++) { var r = this._getStringFromParameter(e[n]); this._addParameter(t, r) } e.length == 0 && this._addParameter(t, "") } else this._addParameter(t, e) }, _getStringFromParameter: function (t) { var e = t || ""; try { (typeof t == "number" || typeof t == "boolean") && (e = t.toString()) } catch { } return e }, _addParameter: function (t, e) { this._parameters[t] || (this._parameters[t] = []), this._parameters[t].push(e) }, get: function () { return this._parameters } }; function dOe(t) { return t ? decodeURIComponent(t) : "" } function hOe(t) { let e = [], n = []; for (let a in t) e.push(G5(a)); e.sort(); for (let a = 0; a < e.length; a++) { let o = e[a]; var r, i, l = dOe(o), s = t[l]; for (s.sort(), r = 0; r < s.length; r++)i = G5(s[r]), n.push(o + "=" + i) } return n.join("&") } function iZ(t = 10) { let e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", n = ""; for (let r = 0; r < t; r++)n += e.charAt(Math.floor(Math.random() * e.length)); return n } function G5(t) { return t ? encodeURIComponent(t).replace(/[!'()]/g, escape).replace(/\*/g, "%2A") : "" } function lZ(t, e, n, r = "f3ac5b086f3eab260520d8e3049561e6") { e = e.split("?")[0], e = e.startsWith("http") ? e : "https://api.audiomack.com/v1" + e; let i = new sZ(n).get(), l = t.toUpperCase(), s = hOe(i), a = G5(l) + "&" + G5(e) + "&" + G5(s); return Ve.HmacSHA1(a, r + "&").toString(Ve.enc.Base64) } var pT = class extends Fe { constructor() { super(), this.siteUrl = "https://api.audiomack.com/v1" } getName() { return "\u{1F3B5}\u2503\u97F3\u58F0\u2503\u{1F3B5}" } getAppName() { return "\u97F3\u58F0" } getJSName() { return "audiomack" } getType() { return 10 } async parseVodShortListFromJson(e) { let n = []; for (let r of e.results.playlists) { let i = new Ei; i.book_id = r.id, i.book_pic = r.image, i.book_name = r.title, i.book_remarks = r.description, n.push(i) } return n } async setClasses() { this.classes = [{ type_name: "\u63A8\u8350\u699C\u5355", type_id: "\u6700\u8FD1\u66F4\u65B0" }]; let e = [{ title: "All Genres", url_slug: "null" }, { title: "Afrosounds", url_slug: "afrobeats" }, { title: "Hip-Hop/Rap", url_slug: "rap" }, { title: "Latin", url_slug: "latin" }, { title: "Caribbean", url_slug: "caribbean" }, { title: "Pop", url_slug: "pop" }, { title: "R&B", url_slug: "rb" }, { title: "Gospel", url_slug: "gospel" }, { title: "Electronic", url_slug: "electronic" }, { title: "Rock", url_slug: "rock" }, { title: "Punjabi", url_slug: "punjabi" }, { title: "Country", url_slug: "country" }, { title: "Instrumental", url_slug: "instrumental" }, { title: "Podcast", url_slug: "podcast" }]; for (let n of e) this.classes.push(this.getTypeDic(n.title, n.url_slug)) } async setHomeVod() { let e = { id: "34", title: "What's New", url_slug: "whats-new" }, n = { featured: "yes", limit: 20, oauth_consumer_key: "audiomack-js", oauth_nonce: iZ(32), oauth_signature_method: "HMAC-SHA1", oauth_timestamp: Math.round(Date.now() / 1e3), oauth_version: "1.0", page: 1, slug: e.url_slug }, r = lZ("GET", "/playlist/categories", n), i = this.siteUrl + "/playlist/categories", l = await this.fetch(i, Object.assign(Object.assign({}, n), { oauth_signature: r }), this.getHeader()); this.homeVodList = await this.parseVodShortListFromJson(JSON.parse(l)) } async setCategory(e, n, r, i) { let l; e === "null" ? l = `/music/page/${n}` : l = `/music/${e}/page/${n}`; let s = `https://api.audiomack.com/v1${l}`, a = { oauth_consumer_key: "audiomack-js", oauth_nonce: iZ(32), oauth_signature_method: "HMAC-SHA1", oauth_timestamp: Math.round(Date.now() / 1e3), oauth_version: "1.0", type: "song" }, o = lZ("GET", l, a), u = await this.fetch(s, Object.assign(Object.assign({}, a), { oauth_signature: o }), this.getHeader()), c = 0 } }, Kn = new pT; var fT = class extends Re { constructor() { super() } getName() { return Kn.getName() } getAppName() { return Kn.getAppName() } getJSName() { return Kn.getJSName() } async init(e, n) { dataBase = e.server.db, this.getAppName().indexOf("\u963F\u91CC") > -1 || this.getAppName() === "push_agent" ? await Kn.initAli(e.server.config.alitoken) : this.getAppName() === "\u54D4\u54E9\u54D4\u54E9" && await Kn.initCookie(e.server.config.bilicookie), await Kn.spiderInit(e), Kn.cfgObj.code = 0, Kn.catOpenStatus = !0, Kn.classes.push({ type_name: "\u6700\u8FD1\u66F4\u65B0", type_id: "\u6700\u8FD1\u66F4\u65B0" }), await super.init(e, n) } async setClasses() { await Kn.setClasses(), this.classes = Kn.classes } async setFilterObj() { await Kn.setFilterObj(), this.filterObj = Kn.filterObj } async setHomeVod() { await Kn.setHomeVod(), this.homeVodList = Kn.homeVodList } async setCategory(e, n, r, i) { await Kn.setCategory(e, n, r, i), this.vodList = Kn.vodList } async setDetail(e) { await Kn.setDetail(e), this.vodDetail = Kn.vodDetail } async setPlay(e, n, r) { await Kn.setPlay(e, n, r), this.playUrl = Kn.playUrl, this.result = Kn.result } async setSearch(e, n, r) { await Kn.setSearch(e, n, r), this.vodList = Kn.vodList, this.result = Kn.result } async setProxy(e, n) { return await Kn.proxy(e, n) } }, Yo = new fT; async function aZ(t, e) { return await Yo.init(t, e) } async function oZ(t, e) { return await Yo.home(t, e) } async function mOe(t, e) { return await Yo.homeVod(t, e) } async function uZ(t, e) { return await Yo.category(t, e) } async function cZ(t, e) { return await Yo.detail(t, e) } async function pZ(t, e) { return await Yo.play(t, e) } async function fZ(t, e) { return await Yo.search(t, e) } async function yOe(t, e) { return await Yo.proxy(t, e) } var dZ = { meta: { key: Kn.getJSName(), name: Kn.getName(), type: Kn.getType() }, api: async t => { t.post("/init", aZ), t.post("/home", oZ), t.post("/category", uZ), t.post("/detail", cZ), t.post("/play", pZ), t.post("/search", fZ), t.get("/proxy/:what/:ids/:end", yOe) }, spider: { init: aZ, home: oZ, homeVod: mOe, category: uZ, detail: cZ, play: pZ, search: fZ } }; var Eu = async function (t, e = {}) { e.method == "POST" && e.data && (e.body = JSON.stringify(e.data), e.headers = Object.assign({ "content-type": "application/json" }, e.headers)); let n = await req(t, e); return n.json = () => n.data ? n.data : null, n.text = () => n.content, n };["get", "post"].forEach(t => { Eu[t] = function (e, n = {}) { return Eu(e, Object.assign(n, { method: t.toUpperCase() })) } }); var K5 = {}, J5 = {}; async function dT(t) { let e = t.indexOf("/", 1), n = t.substring(1, e), r = t.substring(e); return { drives: await gOe(n), path: r } } async function gOe(t) { let { settings: e, api: n, server: r } = K5[t]; if (e.v3 == null) { e.v3 = !1; let i = (await Eu.get(r + "/api/public/settings")).json().data; Array.isArray(i) ? (e.title = i.find(l => l.key == "title")?.value, e.v3 = !1, e.version = i.find(l => l.key == "version")?.value, e.enableSearch = i.find(l => l.key == "enable search")?.value == "true") : (e.title = i.title, e.v3 = !0, e.version = i.version, e.enableSearch = !1), n.path = e.v3 ? "/api/fs/list" : "/api/public/path", n.file = e.v3 ? "/api/fs/get" : "/api/public/path", n.search = (e.v3, "/api/public/search"), n.other = e.v3 ? "/api/fs/other" : null } return K5[t] } async function vOe(t, e) { return t.server.config.alist.forEach(n => K5[n.name] = { name: n.name, server: n.server.endsWith("/") ? n.server.substring(0, n.server.length - 1) : n.server, startPage: n.startPage || "/", showAll: n.showAll === !0, params: n.params || {}, _path_param: n.params ? Object.keys(n.params).sort(function (r, i) { return i.length - r.length }) : [], settings: {}, api: {}, getParams(r) { let i = this._path_param.find(l => r.startsWith(l)); return Object.assign({}, this.params[i], { path: r }) }, async getPath(r) { let i = (await Eu.post(this.server + this.api.path, { data: this.getParams(r) })).json(); return this.settings.v3 ? i.data.content : i.data.files }, async getFile(r) { let i = (await Eu.post(this.server + this.api.file, { data: this.getParams(r) })).json(), l = this.settings.v3 ? i.data : i.data.files[0]; return this.settings.v3 || (l.raw_url = l.url), l }, async getOther(r, i) { let l = this.getParams(i); return l.method = r, (await Eu.post(this.server + this.api.other, { data: l })).json() }, isFolder(r) { return r.type == 1 }, isVideo(r) { return this.settings.v3 ? r.type == 2 : r.type == 3 }, isSubtitle(r) { return r.type == 1 ? !1 : [".srt", ".ass", ".scc", ".stl", ".ttml"].some(l => r.name.endsWith(l)) }, getType(r) { let i = this.isVideo(r); return this.isFolder(r) ? 0 : i ? 10 : 1 }, getPic(r) { return (this.settings.v3 ? r.thumb : r.thumbnail) || (this.isFolder(r) ? "http://img1.3png.com/281e284a670865a71d91515866552b5f172b.png" : "") }, getSize(r) { let i = r.size || 0; if (i <= 0) return ""; let l = ""; return i > 1024 * 1024 * 1024 * 1024 ? (i /= 1024 * 1024 * 1024 * 1024, l = "TB") : i > 1024 * 1024 * 1024 ? (i /= 1024 * 1024 * 1024, l = "GB") : i > 1024 * 1024 ? (i /= 1024 * 1024, l = "MB") : (i /= 1024, l = "KB"), i.toFixed(2) + l }, getRemark(r) { return "" } }), {} } async function _Oe(t, e) { let n = t.body.path, r = t.body.page || 1; for (let f in J5) delete J5[f]; if (r = r || 1, r == 0 && r == 1, n === "/" || n === "") { let f = Object.keys(K5).map(function (m) { let d = K5[m]; return { name: d.name, path: "/" + d.name + d.startPage, type: 0, thumb: "" } }); return { parent: "", page: r, pagecount: r, list: f } } let { drives: i, path: l } = await dT(n), s = n.endsWith("/") ? n : n + "/", a = await i.getPath(l), o = [], u = [], c = []; return a.forEach(f => { i.isSubtitle(f) && o.push(f.name); let m = i.isVideo(f); if (!i.showAll && !i.isFolder(f) && !m) return; let d = { name: f.name.replaceAll("$", "_").replaceAll("#", "_"), path: s + f.name + (i.isFolder(f) ? "/" : ""), thumb: i.getPic(f), type: i.getType(f), size: i.getSize(f), remark: i.getRemark(f) }; i.isVideo(f) && u.push(d), c.push(d) }), o.length > 0 && u.forEach(f => { var m = findBestLCS(f.name, o); m.bestMatch && (J5[f.path] = [s + m.bestMatch.target]) }), { parent: s, page: r, pagecount: r, list: c } } async function EOe(t, e) { let n = t.body.path, { drives: r, path: i } = await dT(n), l = await r.getFile(i), s = []; if (J5[n]) for (let a of J5[n]) try { let o = await dT(a), u = await r.getFile(o.path); s.push(u.raw_url) } catch { } if ((l.provider === "AliyundriveShare2Open" || l.provider == "AliyundriveOpen") && r.api.other) { let a = ["\u539F\u753B", l.raw_url]; try { let u = await r.getOther("video_preview", i); for (let c of u.data.video_preview_play_info.live_transcoding_task_list) c.status === "finished" && (a.push(c.template_id), a.push(c.url)) } catch { } return { name: l.name, url: a, size: r.getSize(l), remark: r.getRemark(l), header: {}, extra: { subt: s } } } else if (l.provider === "123Pan") { let a = l.raw_url; try { a = (await Eu.get(a)).json().data.redirect_url } catch { } return { name: l.name, url: a, size: r.getSize(l), remark: r.getRemark(l), header: {}, extra: { subt: s } } } else return { name: l.name, url: l.raw_url, size: r.getSize(l), remark: r.getRemark(l), header: {}, extra: { subt: s } } } async function bOe(t, e) { try { let n = function (s) { s.statusCode && s.statusCode == 500 && console.error(s) }, r = t.server.prefix, i = {}, l = await t.server.inject().post(`${r}/init`); return i.init = l.json(), n(l.json()), l = await t.server.inject().post(`${r}/dir`).payload({ path: "/", page: 1 }), i.dir = l.json(), n(l.json()), l = await t.server.inject().post(`${r}/file`).payload({ path: "/\u{1F409}\u795E\u65CF\u4E5D\u5E1D/\u5929\u7FFC\u4E91\u76D8/\u97F3\u4E50/\u5468\u6770\u4F26 - \u4E03\u91CC\u9999.flac" }), i.file = l.json(), n(l.json()), i } catch (n) { return console.error(n), e.code(500), { err: n.message, tip: "check debug console output" } } } var hZ = { meta: { key: "alist", name: "Alist", type: 40 }, api: async t => { t.post("/init", vOe), t.post("/dir", _Oe), t.post("/file", EOe), t.get("/test", bOe) } }; var mZ = [xK, kK, MK, GK, eX, aX, hX, bX, NX, LX, HX, VX, WX, rW, cW, gW, TW, IW, UW, zW, QW, lY, dY, EY, OY, PY, BY, KY, tQ, oQ, mQ, wQ, CQ, FQ, VQ, WQ, rZ, dZ, hZ], yZ = "/spider"; async function hT(t) { mZ.forEach(e => { let n = yZ + "/" + e.meta.key + "/" + e.meta.type; t.register(e.api, { prefix: n }), t.register(async r => { r.get(n, async function (i, l) { l.send({ run: e.api }) }) }), console.log("Register spider: " + n) }), t.register(async e => { e.get("/check", async function (n, r) { r.send({ run: !e.stop }) }), e.get("/config", async function (n, r) { let i = { video: { sites: [] }, read: { sites: [] }, comic: { sites: [] }, music: { sites: [] }, pan: { sites: [] }, color: e.config.color || [] }; mZ.forEach(l => { let s = Object.assign({}, l.meta); s.api = yZ + "/" + s.key + "/" + s.type, s.key = "nodejs_" + s.key; let a = l.meta.type; a < 10 ? i.video.sites.push(s) : a >= 10 && a < 20 ? i.read.sites.push(s) : a >= 20 && a < 30 ? i.comic.sites.push(s) : a >= 30 && a < 40 ? i.music.sites.push(s) : a >= 40 && a < 50 && i.pan.sites.push(s) }), r.send(i) }) }) } var Cf = Yr(DZ(), 1); var jl = null, kT = new j0("\u670D\u52A1\u7BA1\u7406", "DEBUG"); async function jOe(t) { jl = (0, PZ.default)({ serverFactory: catServerFactory, forceCloseConnections: !0, logger: process.env.NODE_ENV !== "development", maxParamLength: 10240 }), jl.messageToDart = async (e, n) => { try { e.prefix || (e.prefix = n ? n.server.prefix : ""), console.log(e); let r = catDartServerPort(); if (r == 0) return null; let i = ["https://jx.xmflv.com/?url=", "https://jx.quankan.app/?url=", "https://jx.yparse.com/index.php?url="]; for (let l of i) { e.opt.url = l + e.opt.url, e.opt.timeout = Math.floor(parseInt(e.opt.timeout) / i.length), await kT.debug(`\u55C5\u63A2,\u8BF7\u6C42URL\u4E3A:${`http://127.0.0.1:${r}/msg`},\u4F20\u53C2:${JSON.stringify(e)}`); let s = await L0.post(`http://127.0.0.1:${r}/msg`, e); if (s.data === "sniff timeout") { await kT.debug(`\u55C5\u63A2\u5931\u8D25,\u8FD4\u56DE\u7ED3\u679C\u4E3A:${JSON.stringify(s.data)},\u7EE7\u7EED\u55C5\u63A2`); continue } return await kT.debug(`\u55C5\u63A2\u6210\u529F,\u8FD4\u56DE\u7ED3\u679C\u4E3A:${JSON.stringify(s.data)},headers:${JSON.stringify(s.headers)}`), s.data } } catch { return null } }, jl.address = function () { let e = this.server.address(); return e.url = `http://${e.address}:${e.port}`, e.dynamic = "js2p://_WEB_", e }, jl.addHook("onError", async (e, n, r) => (console.error(r), r.statusCode || (r.statusCode = 500), r)), jl.stop = !1, jl.config = t, jl.db = new Cf.JsonDB(new Cf.Config((process.env.NODE_PATH || ".") + "/db.json", !0, !0, "/", !0)), jl.register(hT), jl.listen({ port: process.env.DEV_HTTP_PORT || 0, host: "127.0.0.1" }) } async function UOe() { jl && (jl.close(), jl.stop = !0), jl = null } 0 && (module.exports = { start, stop });
/*! Bundled license information:
uri-js/dist/es5/uri.all.js:
(** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js *)
forwarded/index.js:
(*!
* forwarded
* Copyright(c) 2014-2017 Douglas Christopher Wilson
* MIT Licensed
*)
proxy-addr/index.js:
(*!
* proxy-addr
* Copyright(c) 2014-2016 Douglas Christopher Wilson
* MIT Licensed
*)
toad-cache/dist/toad-cache.cjs:
(**
* toad-cache
*
* @copyright 2024 Igor Savin <kibertoad@gmail.com>
* @license MIT
* @version 3.7.0
*)
cookie/index.js:
(*!
* cookie
* Copyright(c) 2012-2014 Roman Shtylman
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
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
*)
rwlock/lib/lock.js:
(*! ReadWriteLock - v5.0.0 - 2015-01-16
* Author: Alberto La Rocca <a71104@gmail.com> (https://github.com/71104)
* Released under the MIT license
* Copyright (c) 2015 Alberto La Rocca *)
*/