strudel/packages/react/dist/index.es.js
2022-11-12 12:07:02 +01:00

5730 lines
273 KiB
JavaScript

import he, { useCallback as Ze, useRef as pt, useEffect as dt, useState as Ve, useMemo as Ai, useLayoutEffect as Ei } from "react";
import br from "@uiw/react-codemirror";
import { Decoration as Pe, EditorView as Fi } from "@codemirror/view";
import { StateEffect as vi, StateField as xi } from "@codemirror/state";
import { javascript as Sr } from "@codemirror/lang-javascript";
import { tags as ie } from "@lezer/highlight";
import { createTheme as Br } from "@uiw/codemirror-themes";
import { useInView as _r } from "react-hook-inview";
import { webaudioOutput as wr, getAudioContext as kr } from "@strudel.cycles/webaudio";
import * as Ir from "@strudel.cycles/core";
import { isNote as Pr } from "@strudel.cycles/core";
const Lr = Br({
theme: "dark",
settings: {
background: "#222",
foreground: "#75baff",
caret: "#ffcc00",
selection: "rgba(128, 203, 196, 0.5)",
selectionMatch: "#036dd626",
lineHighlight: "#00000050",
gutterBackground: "transparent",
gutterForeground: "#8a919966"
},
styles: [
{ tag: ie.keyword, color: "#c792ea" },
{ tag: ie.operator, color: "#89ddff" },
{ tag: ie.special(ie.variableName), color: "#eeffff" },
{ tag: ie.typeName, color: "#c3e88d" },
{ tag: ie.atom, color: "#f78c6c" },
{ tag: ie.number, color: "#c3e88d" },
{ tag: ie.definition(ie.variableName), color: "#82aaff" },
{ tag: ie.string, color: "#c3e88d" },
{ tag: ie.special(ie.string), color: "#c3e88d" },
{ tag: ie.comment, color: "#7d8799" },
{ tag: ie.variableName, color: "#c792ea" },
{ tag: ie.tagName, color: "#c3e88d" },
{ tag: ie.bracket, color: "#525154" },
{ tag: ie.meta, color: "#ffcb6b" },
{ tag: ie.attributeName, color: "#c792ea" },
{ tag: ie.propertyName, color: "#c792ea" },
{ tag: ie.className, color: "#decb6b" },
{ tag: ie.invalid, color: "#ffffff" }
]
});
const Pt = vi.define(), Nr = xi.define({
create() {
return Pe.none;
},
update(e, t) {
try {
for (let i of t.effects)
if (i.is(Pt))
if (i.value) {
const u = Pe.mark({ attributes: { style: "background-color: #FFCA2880" } });
e = Pe.set([u.range(0, t.newDoc.length)]);
} else
e = Pe.set([]);
return e;
} catch (i) {
return console.warn("flash error", i), e;
}
},
provide: (e) => Fi.decorations.from(e)
}), Tr = (e) => {
e.dispatch({ effects: Pt.of(!0) }), setTimeout(() => {
e.dispatch({ effects: Pt.of(!1) });
}, 200);
}, ht = vi.define(), Rr = xi.define({
create() {
return Pe.none;
},
update(e, t) {
try {
for (let i of t.effects)
if (i.is(ht)) {
const u = i.value.map(
(n) => (n.context.locations || []).map(({ start: c, end: a }) => {
const f = n.context.color || "#FFCA28";
let p = t.newDoc.line(c.line).from + c.column, D = t.newDoc.line(a.line).from + a.column;
const m = t.newDoc.length;
return p > m || D > m ? void 0 : Pe.mark({ attributes: { style: `outline: 1.5px solid ${f};` } }).range(p, D);
})
).flat().filter(Boolean) || [];
e = Pe.set(u, !0);
}
return e;
} catch {
return Pe.set([]);
}
},
provide: (e) => Fi.decorations.from(e)
}), Mr = [Sr(), Lr, Rr, Nr];
function Or({ value: e, onChange: t, onViewChanged: i, onSelectionChange: u, options: n, editorDidMount: c }) {
const a = Ze(
(D) => {
t?.(D);
},
[t]
), f = Ze(
(D) => {
i?.(D);
},
[i]
), p = Ze(
(D) => {
D.selectionSet && u && u?.(D.state.selection);
},
[u]
);
return /* @__PURE__ */ he.createElement(he.Fragment, null, /* @__PURE__ */ he.createElement(br, {
value: e,
onChange: a,
onCreateEditor: f,
onUpdate: p,
extensions: Mr
}));
}
function ti(...e) {
return e.filter(Boolean).join(" ");
}
function Vr({ view: e, pattern: t, active: i, getTime: u }) {
const n = pt([]), c = pt();
dt(() => {
if (e)
if (t && i) {
let f = function() {
try {
const p = u(), m = [Math.max(c.current || p, p - 1 / 10, 0), p + 1 / 60];
c.current = m[1], n.current = n.current.filter((g) => g.whole.end > p);
const v = t.queryArc(...m).filter((g) => g.hasOnset());
n.current = n.current.concat(v), e.dispatch({ effects: ht.of(n.current) });
} catch {
e.dispatch({ effects: ht.of([]) });
}
a = requestAnimationFrame(f);
}, a = requestAnimationFrame(f);
return () => {
cancelAnimationFrame(a);
};
} else
n.current = [], e.dispatch({ effects: ht.of([]) });
}, [t, i, e]);
}
const qr = "_container_3i85k_1", Ur = "_header_3i85k_5", jr = "_buttons_3i85k_9", Wr = "_button_3i85k_9", Gr = "_buttonDisabled_3i85k_17", zr = "_error_3i85k_21", Hr = "_body_3i85k_25", Ie = {
container: qr,
header: Ur,
buttons: jr,
button: Wr,
buttonDisabled: Gr,
error: zr,
body: Hr
};
function ii({ type: e }) {
return /* @__PURE__ */ he.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
className: "sc-h-5 sc-w-5",
viewBox: "0 0 20 20",
fill: "currentColor"
}, {
refresh: /* @__PURE__ */ he.createElement("path", {
fillRule: "evenodd",
d: "M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",
clipRule: "evenodd"
}),
play: /* @__PURE__ */ he.createElement("path", {
fillRule: "evenodd",
d: "M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",
clipRule: "evenodd"
}),
pause: /* @__PURE__ */ he.createElement("path", {
fillRule: "evenodd",
d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",
clipRule: "evenodd"
})
}[e]);
}
function Kr(e, t, i = 0.05, u = 0.1, n = 0.1) {
let c = 0, a = 0, f = 10 ** 4, p = 0.01;
const D = (I) => i = I(i);
n = n || u / 2;
const m = () => {
const I = e(), P = I + u + n;
for (a === 0 && (a = I + p); a < P; )
a = Math.round(a * f) / f, a >= I && t(a, i, c), a < I && console.log("TOO LATE", a), a += i, c++;
};
let v;
const g = () => {
A(), m(), v = setInterval(m, u * 1e3);
}, A = () => v !== void 0 && clearInterval(v);
return { setDuration: D, start: g, stop: () => {
c = 0, a = 0, A();
}, pause: () => A(), duration: i, getPhase: () => a };
}
const yi = "strudel.log";
function Le(e, t, i = {}) {
console.log(`%c${e}`, "background-color: black;color:white;border-radius:15px"), typeof CustomEvent < "u" && document.dispatchEvent(
new CustomEvent(yi, {
detail: {
message: e,
type: t,
data: i
}
})
);
}
Le.key = yi;
class Qr {
worker;
pattern;
started = !1;
cps = 1;
getTime;
phase = 0;
constructor({ interval: t, onTrigger: i, onToggle: u, onError: n, getTime: c, latency: a = 0.1 }) {
this.getTime = c, this.onToggle = u, this.latency = a;
const f = (p) => Math.round(p * 1e3) / 1e3;
this.clock = Kr(
c,
(p, D, m) => {
m === 0 && (this.origin = p);
const v = f(p - this.origin);
this.phase = v - a;
const g = f(v + D), A = c();
try {
this.pattern.queryArc(v, g).forEach((C) => {
if (C.part.begin.equals(C.whole.begin)) {
const x = C.whole.begin + this.origin - A + a, I = C.duration * 1;
i?.(C, x, I);
}
});
} catch (E) {
Le(`[cyclist] error: ${E.message}`), n?.(E);
}
},
t
);
}
getPhase(t = !0) {
return this.phase - (t ? this.latency : 0);
}
setStarted(t) {
this.started = t, this.onToggle?.(t);
}
start() {
if (!this.pattern)
throw new Error("Scheduler: no pattern set! call .setPattern first.");
Le("[cyclist] start"), this.clock.start(), this.setStarted(!0);
}
pause() {
Le("[cyclist] pause"), this.clock.pause(), this.setStarted(!1);
}
stop() {
Le("[cyclist] stop"), this.clock.stop(), this.setStarted(!1);
}
setPattern(t, i = !1) {
this.pattern = t, i && !this.started && this.start();
}
setCps(t = 1) {
this.cps = t;
}
log(t, i, u) {
const n = u.filter((c) => c.hasOnset());
console.log(`${t.toFixed(4)} - ${i.toFixed(4)} ${Array(n.length).fill("I").join("")}`);
}
}
const { isPattern: Yr, Pattern: Xr } = Ir;
let Lt = !1;
const $r = async (...e) => {
Lt && console.warn("evalScope was called more than once."), Lt = !0;
const t = await Promise.allSettled(e), i = t.filter((u) => u.status === "fulfilled").map((u) => u.value);
t.forEach((u, n) => {
u.status === "rejected" && console.warn(`evalScope: module with index ${n} could not be loaded:`, u.reason);
}), Object.assign(globalThis, ...i, Xr.prototype.bootstrap());
};
function Zr(e, t = {}) {
const { wrapExpression: i = !0, wrapAsync: u = !0 } = t;
i && (e = `{${e}}`), u && (e = `(async ()=>${e})()`);
const n = `"use strict";return (${e})`;
return Function(n)();
}
const Jr = async (e, t) => {
Lt || await $r(), t && (e = t(e));
let u = await Zr(e, { wrapExpression: !!t });
if (!Yr(u)) {
console.log("evaluated", u);
const n = `got "${typeof u}" instead of pattern`;
throw new Error(n + (typeof u == "function" ? ", did you forget to call a function?" : "."));
}
return { mode: "javascript", pattern: u };
};
function eu({
interval: e,
defaultOutput: t,
onSchedulerError: i,
onEvalError: u,
beforeEval: n,
afterEval: c,
getTime: a,
transpiler: f,
onToggle: p
}) {
const D = new Qr({
interval: e,
onTrigger: async (E, C, x) => {
try {
if (!E.context.onTrigger)
return await t(E, C, x);
const I = 1;
return await E.context.onTrigger(a() + C, E, a(), I);
} catch (I) {
Le(`[cyclist] error: ${I.message}`, "error");
}
},
onError: i,
getTime: a,
onToggle: p
});
return { scheduler: D, evaluate: async (E, C = !0) => {
if (!E)
throw new Error("no code to evaluate");
try {
n({ code: E });
const { pattern: x } = await Jr(E, f);
return Le("[eval] code updated"), D.setPattern(x, C), c({ code: E, pattern: x }), x;
} catch (x) {
Le(`[eval] error: ${x.message}`, "error"), u?.(x);
}
}, start: () => D.start(), stop: () => D.stop(), pause: () => D.pause() };
}
var tu = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, bi = {}, Si = {};
(function(e) {
(function t(i) {
var u, n, c, a, f, p;
function D(F) {
var S = {}, B, w;
for (B in F)
F.hasOwnProperty(B) && (w = F[B], typeof w == "object" && w !== null ? S[B] = D(w) : S[B] = w);
return S;
}
function m(F, S) {
var B, w, W, N;
for (w = F.length, W = 0; w; )
B = w >>> 1, N = W + B, S(F[N]) ? w = B : (W = N + 1, w -= B + 1);
return W;
}
u = {
AssignmentExpression: "AssignmentExpression",
AssignmentPattern: "AssignmentPattern",
ArrayExpression: "ArrayExpression",
ArrayPattern: "ArrayPattern",
ArrowFunctionExpression: "ArrowFunctionExpression",
AwaitExpression: "AwaitExpression",
BlockStatement: "BlockStatement",
BinaryExpression: "BinaryExpression",
BreakStatement: "BreakStatement",
CallExpression: "CallExpression",
CatchClause: "CatchClause",
ChainExpression: "ChainExpression",
ClassBody: "ClassBody",
ClassDeclaration: "ClassDeclaration",
ClassExpression: "ClassExpression",
ComprehensionBlock: "ComprehensionBlock",
ComprehensionExpression: "ComprehensionExpression",
ConditionalExpression: "ConditionalExpression",
ContinueStatement: "ContinueStatement",
DebuggerStatement: "DebuggerStatement",
DirectiveStatement: "DirectiveStatement",
DoWhileStatement: "DoWhileStatement",
EmptyStatement: "EmptyStatement",
ExportAllDeclaration: "ExportAllDeclaration",
ExportDefaultDeclaration: "ExportDefaultDeclaration",
ExportNamedDeclaration: "ExportNamedDeclaration",
ExportSpecifier: "ExportSpecifier",
ExpressionStatement: "ExpressionStatement",
ForStatement: "ForStatement",
ForInStatement: "ForInStatement",
ForOfStatement: "ForOfStatement",
FunctionDeclaration: "FunctionDeclaration",
FunctionExpression: "FunctionExpression",
GeneratorExpression: "GeneratorExpression",
Identifier: "Identifier",
IfStatement: "IfStatement",
ImportExpression: "ImportExpression",
ImportDeclaration: "ImportDeclaration",
ImportDefaultSpecifier: "ImportDefaultSpecifier",
ImportNamespaceSpecifier: "ImportNamespaceSpecifier",
ImportSpecifier: "ImportSpecifier",
Literal: "Literal",
LabeledStatement: "LabeledStatement",
LogicalExpression: "LogicalExpression",
MemberExpression: "MemberExpression",
MetaProperty: "MetaProperty",
MethodDefinition: "MethodDefinition",
ModuleSpecifier: "ModuleSpecifier",
NewExpression: "NewExpression",
ObjectExpression: "ObjectExpression",
ObjectPattern: "ObjectPattern",
PrivateIdentifier: "PrivateIdentifier",
Program: "Program",
Property: "Property",
PropertyDefinition: "PropertyDefinition",
RestElement: "RestElement",
ReturnStatement: "ReturnStatement",
SequenceExpression: "SequenceExpression",
SpreadElement: "SpreadElement",
Super: "Super",
SwitchStatement: "SwitchStatement",
SwitchCase: "SwitchCase",
TaggedTemplateExpression: "TaggedTemplateExpression",
TemplateElement: "TemplateElement",
TemplateLiteral: "TemplateLiteral",
ThisExpression: "ThisExpression",
ThrowStatement: "ThrowStatement",
TryStatement: "TryStatement",
UnaryExpression: "UnaryExpression",
UpdateExpression: "UpdateExpression",
VariableDeclaration: "VariableDeclaration",
VariableDeclarator: "VariableDeclarator",
WhileStatement: "WhileStatement",
WithStatement: "WithStatement",
YieldExpression: "YieldExpression"
}, c = {
AssignmentExpression: ["left", "right"],
AssignmentPattern: ["left", "right"],
ArrayExpression: ["elements"],
ArrayPattern: ["elements"],
ArrowFunctionExpression: ["params", "body"],
AwaitExpression: ["argument"],
BlockStatement: ["body"],
BinaryExpression: ["left", "right"],
BreakStatement: ["label"],
CallExpression: ["callee", "arguments"],
CatchClause: ["param", "body"],
ChainExpression: ["expression"],
ClassBody: ["body"],
ClassDeclaration: ["id", "superClass", "body"],
ClassExpression: ["id", "superClass", "body"],
ComprehensionBlock: ["left", "right"],
ComprehensionExpression: ["blocks", "filter", "body"],
ConditionalExpression: ["test", "consequent", "alternate"],
ContinueStatement: ["label"],
DebuggerStatement: [],
DirectiveStatement: [],
DoWhileStatement: ["body", "test"],
EmptyStatement: [],
ExportAllDeclaration: ["source"],
ExportDefaultDeclaration: ["declaration"],
ExportNamedDeclaration: ["declaration", "specifiers", "source"],
ExportSpecifier: ["exported", "local"],
ExpressionStatement: ["expression"],
ForStatement: ["init", "test", "update", "body"],
ForInStatement: ["left", "right", "body"],
ForOfStatement: ["left", "right", "body"],
FunctionDeclaration: ["id", "params", "body"],
FunctionExpression: ["id", "params", "body"],
GeneratorExpression: ["blocks", "filter", "body"],
Identifier: [],
IfStatement: ["test", "consequent", "alternate"],
ImportExpression: ["source"],
ImportDeclaration: ["specifiers", "source"],
ImportDefaultSpecifier: ["local"],
ImportNamespaceSpecifier: ["local"],
ImportSpecifier: ["imported", "local"],
Literal: [],
LabeledStatement: ["label", "body"],
LogicalExpression: ["left", "right"],
MemberExpression: ["object", "property"],
MetaProperty: ["meta", "property"],
MethodDefinition: ["key", "value"],
ModuleSpecifier: [],
NewExpression: ["callee", "arguments"],
ObjectExpression: ["properties"],
ObjectPattern: ["properties"],
PrivateIdentifier: [],
Program: ["body"],
Property: ["key", "value"],
PropertyDefinition: ["key", "value"],
RestElement: ["argument"],
ReturnStatement: ["argument"],
SequenceExpression: ["expressions"],
SpreadElement: ["argument"],
Super: [],
SwitchStatement: ["discriminant", "cases"],
SwitchCase: ["test", "consequent"],
TaggedTemplateExpression: ["tag", "quasi"],
TemplateElement: [],
TemplateLiteral: ["quasis", "expressions"],
ThisExpression: [],
ThrowStatement: ["argument"],
TryStatement: ["block", "handler", "finalizer"],
UnaryExpression: ["argument"],
UpdateExpression: ["argument"],
VariableDeclaration: ["declarations"],
VariableDeclarator: ["id", "init"],
WhileStatement: ["test", "body"],
WithStatement: ["object", "body"],
YieldExpression: ["argument"]
}, a = {}, f = {}, p = {}, n = {
Break: a,
Skip: f,
Remove: p
};
function v(F, S) {
this.parent = F, this.key = S;
}
v.prototype.replace = function(S) {
this.parent[this.key] = S;
}, v.prototype.remove = function() {
return Array.isArray(this.parent) ? (this.parent.splice(this.key, 1), !0) : (this.replace(null), !1);
};
function g(F, S, B, w) {
this.node = F, this.path = S, this.wrap = B, this.ref = w;
}
function A() {
}
A.prototype.path = function() {
var S, B, w, W, N, G;
function q(R, j) {
if (Array.isArray(j))
for (w = 0, W = j.length; w < W; ++w)
R.push(j[w]);
else
R.push(j);
}
if (!this.__current.path)
return null;
for (N = [], S = 2, B = this.__leavelist.length; S < B; ++S)
G = this.__leavelist[S], q(N, G.path);
return q(N, this.__current.path), N;
}, A.prototype.type = function() {
var F = this.current();
return F.type || this.__current.wrap;
}, A.prototype.parents = function() {
var S, B, w;
for (w = [], S = 1, B = this.__leavelist.length; S < B; ++S)
w.push(this.__leavelist[S].node);
return w;
}, A.prototype.current = function() {
return this.__current.node;
}, A.prototype.__execute = function(S, B) {
var w, W;
return W = void 0, w = this.__current, this.__current = B, this.__state = null, S && (W = S.call(this, B.node, this.__leavelist[this.__leavelist.length - 1].node)), this.__current = w, W;
}, A.prototype.notify = function(S) {
this.__state = S;
}, A.prototype.skip = function() {
this.notify(f);
}, A.prototype.break = function() {
this.notify(a);
}, A.prototype.remove = function() {
this.notify(p);
}, A.prototype.__initialize = function(F, S) {
this.visitor = S, this.root = F, this.__worklist = [], this.__leavelist = [], this.__current = null, this.__state = null, this.__fallback = null, S.fallback === "iteration" ? this.__fallback = Object.keys : typeof S.fallback == "function" && (this.__fallback = S.fallback), this.__keys = c, S.keys && (this.__keys = Object.assign(Object.create(this.__keys), S.keys));
};
function E(F) {
return F == null ? !1 : typeof F == "object" && typeof F.type == "string";
}
function C(F, S) {
return (F === u.ObjectExpression || F === u.ObjectPattern) && S === "properties";
}
function x(F, S) {
for (var B = F.length - 1; B >= 0; --B)
if (F[B].node === S)
return !0;
return !1;
}
A.prototype.traverse = function(S, B) {
var w, W, N, G, q, R, j, J, ne, te, Y, ge;
for (this.__initialize(S, B), ge = {}, w = this.__worklist, W = this.__leavelist, w.push(new g(S, null, null, null)), W.push(new g(null, null, null, null)); w.length; ) {
if (N = w.pop(), N === ge) {
if (N = W.pop(), R = this.__execute(B.leave, N), this.__state === a || R === a)
return;
continue;
}
if (N.node) {
if (R = this.__execute(B.enter, N), this.__state === a || R === a)
return;
if (w.push(ge), W.push(N), this.__state === f || R === f)
continue;
if (G = N.node, q = G.type || N.wrap, te = this.__keys[q], !te)
if (this.__fallback)
te = this.__fallback(G);
else
throw new Error("Unknown node type " + q + ".");
for (J = te.length; (J -= 1) >= 0; )
if (j = te[J], Y = G[j], !!Y) {
if (Array.isArray(Y)) {
for (ne = Y.length; (ne -= 1) >= 0; )
if (!!Y[ne] && !x(W, Y[ne])) {
if (C(q, te[J]))
N = new g(Y[ne], [j, ne], "Property", null);
else if (E(Y[ne]))
N = new g(Y[ne], [j, ne], null, null);
else
continue;
w.push(N);
}
} else if (E(Y)) {
if (x(W, Y))
continue;
w.push(new g(Y, j, null, null));
}
}
}
}
}, A.prototype.replace = function(S, B) {
var w, W, N, G, q, R, j, J, ne, te, Y, ge, ye;
function T(Re) {
var Ke, Qe, $, De;
if (Re.ref.remove()) {
for (Qe = Re.ref.key, De = Re.ref.parent, Ke = w.length; Ke--; )
if ($ = w[Ke], $.ref && $.ref.parent === De) {
if ($.ref.key < Qe)
break;
--$.ref.key;
}
}
}
for (this.__initialize(S, B), Y = {}, w = this.__worklist, W = this.__leavelist, ge = {
root: S
}, R = new g(S, null, null, new v(ge, "root")), w.push(R), W.push(R); w.length; ) {
if (R = w.pop(), R === Y) {
if (R = W.pop(), q = this.__execute(B.leave, R), q !== void 0 && q !== a && q !== f && q !== p && R.ref.replace(q), (this.__state === p || q === p) && T(R), this.__state === a || q === a)
return ge.root;
continue;
}
if (q = this.__execute(B.enter, R), q !== void 0 && q !== a && q !== f && q !== p && (R.ref.replace(q), R.node = q), (this.__state === p || q === p) && (T(R), R.node = null), this.__state === a || q === a)
return ge.root;
if (N = R.node, !!N && (w.push(Y), W.push(R), !(this.__state === f || q === f))) {
if (G = N.type || R.wrap, ne = this.__keys[G], !ne)
if (this.__fallback)
ne = this.__fallback(N);
else
throw new Error("Unknown node type " + G + ".");
for (j = ne.length; (j -= 1) >= 0; )
if (ye = ne[j], te = N[ye], !!te)
if (Array.isArray(te)) {
for (J = te.length; (J -= 1) >= 0; )
if (!!te[J]) {
if (C(G, ne[j]))
R = new g(te[J], [ye, J], "Property", new v(te, J));
else if (E(te[J]))
R = new g(te[J], [ye, J], null, new v(te, J));
else
continue;
w.push(R);
}
} else
E(te) && w.push(new g(te, ye, null, new v(N, ye)));
}
}
return ge.root;
};
function I(F, S) {
var B = new A();
return B.traverse(F, S);
}
function P(F, S) {
var B = new A();
return B.replace(F, S);
}
function O(F, S) {
var B;
return B = m(S, function(W) {
return W.range[0] > F.range[0];
}), F.extendedRange = [F.range[0], F.range[1]], B !== S.length && (F.extendedRange[1] = S[B].range[0]), B -= 1, B >= 0 && (F.extendedRange[0] = S[B].range[1]), F;
}
function y(F, S, B) {
var w = [], W, N, G, q;
if (!F.range)
throw new Error("attachComments needs range information");
if (!B.length) {
if (S.length) {
for (G = 0, N = S.length; G < N; G += 1)
W = D(S[G]), W.extendedRange = [0, F.range[0]], w.push(W);
F.leadingComments = w;
}
return F;
}
for (G = 0, N = S.length; G < N; G += 1)
w.push(O(D(S[G]), B));
return q = 0, I(F, {
enter: function(R) {
for (var j; q < w.length && (j = w[q], !(j.extendedRange[1] > R.range[0])); )
j.extendedRange[1] === R.range[0] ? (R.leadingComments || (R.leadingComments = []), R.leadingComments.push(j), w.splice(q, 1)) : q += 1;
if (q === w.length)
return n.Break;
if (w[q].extendedRange[0] > R.range[1])
return n.Skip;
}
}), q = 0, I(F, {
leave: function(R) {
for (var j; q < w.length && (j = w[q], !(R.range[1] < j.extendedRange[0])); )
R.range[1] === j.extendedRange[0] ? (R.trailingComments || (R.trailingComments = []), R.trailingComments.push(j), w.splice(q, 1)) : q += 1;
if (q === w.length)
return n.Break;
if (w[q].extendedRange[0] > R.range[1])
return n.Skip;
}
}), F;
}
return i.Syntax = u, i.traverse = I, i.replace = P, i.attachComments = y, i.VisitorKeys = c, i.VisitorOption = n, i.Controller = A, i.cloneEnvironment = function() {
return t({});
}, i;
})(e);
})(Si);
var ft = {}, Bi = { exports: {} };
(function() {
function e(a) {
if (a == null)
return !1;
switch (a.type) {
case "ArrayExpression":
case "AssignmentExpression":
case "BinaryExpression":
case "CallExpression":
case "ConditionalExpression":
case "FunctionExpression":
case "Identifier":
case "Literal":
case "LogicalExpression":
case "MemberExpression":
case "NewExpression":
case "ObjectExpression":
case "SequenceExpression":
case "ThisExpression":
case "UnaryExpression":
case "UpdateExpression":
return !0;
}
return !1;
}
function t(a) {
if (a == null)
return !1;
switch (a.type) {
case "DoWhileStatement":
case "ForInStatement":
case "ForStatement":
case "WhileStatement":
return !0;
}
return !1;
}
function i(a) {
if (a == null)
return !1;
switch (a.type) {
case "BlockStatement":
case "BreakStatement":
case "ContinueStatement":
case "DebuggerStatement":
case "DoWhileStatement":
case "EmptyStatement":
case "ExpressionStatement":
case "ForInStatement":
case "ForStatement":
case "IfStatement":
case "LabeledStatement":
case "ReturnStatement":
case "SwitchStatement":
case "ThrowStatement":
case "TryStatement":
case "VariableDeclaration":
case "WhileStatement":
case "WithStatement":
return !0;
}
return !1;
}
function u(a) {
return i(a) || a != null && a.type === "FunctionDeclaration";
}
function n(a) {
switch (a.type) {
case "IfStatement":
return a.alternate != null ? a.alternate : a.consequent;
case "LabeledStatement":
case "ForStatement":
case "ForInStatement":
case "WhileStatement":
case "WithStatement":
return a.body;
}
return null;
}
function c(a) {
var f;
if (a.type !== "IfStatement" || a.alternate == null)
return !1;
f = a.consequent;
do {
if (f.type === "IfStatement" && f.alternate == null)
return !0;
f = n(f);
} while (f);
return !1;
}
Bi.exports = {
isExpression: e,
isStatement: i,
isIterationStatement: t,
isSourceElement: u,
isProblematicIfStatement: c,
trailingStatement: n
};
})();
var Mt = { exports: {} };
(function() {
var e, t, i, u, n, c;
t = {
NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/
}, e = {
NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,
NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
};
function a(x) {
return 48 <= x && x <= 57;
}
function f(x) {
return 48 <= x && x <= 57 || 97 <= x && x <= 102 || 65 <= x && x <= 70;
}
function p(x) {
return x >= 48 && x <= 55;
}
i = [
5760,
8192,
8193,
8194,
8195,
8196,
8197,
8198,
8199,
8200,
8201,
8202,
8239,
8287,
12288,
65279
];
function D(x) {
return x === 32 || x === 9 || x === 11 || x === 12 || x === 160 || x >= 5760 && i.indexOf(x) >= 0;
}
function m(x) {
return x === 10 || x === 13 || x === 8232 || x === 8233;
}
function v(x) {
if (x <= 65535)
return String.fromCharCode(x);
var I = String.fromCharCode(Math.floor((x - 65536) / 1024) + 55296), P = String.fromCharCode((x - 65536) % 1024 + 56320);
return I + P;
}
for (u = new Array(128), c = 0; c < 128; ++c)
u[c] = c >= 97 && c <= 122 || c >= 65 && c <= 90 || c === 36 || c === 95;
for (n = new Array(128), c = 0; c < 128; ++c)
n[c] = c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c === 36 || c === 95;
function g(x) {
return x < 128 ? u[x] : t.NonAsciiIdentifierStart.test(v(x));
}
function A(x) {
return x < 128 ? n[x] : t.NonAsciiIdentifierPart.test(v(x));
}
function E(x) {
return x < 128 ? u[x] : e.NonAsciiIdentifierStart.test(v(x));
}
function C(x) {
return x < 128 ? n[x] : e.NonAsciiIdentifierPart.test(v(x));
}
Mt.exports = {
isDecimalDigit: a,
isHexDigit: f,
isOctalDigit: p,
isWhiteSpace: D,
isLineTerminator: m,
isIdentifierStartES5: g,
isIdentifierPartES5: A,
isIdentifierStartES6: E,
isIdentifierPartES6: C
};
})();
var _i = { exports: {} };
(function() {
var e = Mt.exports;
function t(g) {
switch (g) {
case "implements":
case "interface":
case "package":
case "private":
case "protected":
case "public":
case "static":
case "let":
return !0;
default:
return !1;
}
}
function i(g, A) {
return !A && g === "yield" ? !1 : u(g, A);
}
function u(g, A) {
if (A && t(g))
return !0;
switch (g.length) {
case 2:
return g === "if" || g === "in" || g === "do";
case 3:
return g === "var" || g === "for" || g === "new" || g === "try";
case 4:
return g === "this" || g === "else" || g === "case" || g === "void" || g === "with" || g === "enum";
case 5:
return g === "while" || g === "break" || g === "catch" || g === "throw" || g === "const" || g === "yield" || g === "class" || g === "super";
case 6:
return g === "return" || g === "typeof" || g === "delete" || g === "switch" || g === "export" || g === "import";
case 7:
return g === "default" || g === "finally" || g === "extends";
case 8:
return g === "function" || g === "continue" || g === "debugger";
case 10:
return g === "instanceof";
default:
return !1;
}
}
function n(g, A) {
return g === "null" || g === "true" || g === "false" || i(g, A);
}
function c(g, A) {
return g === "null" || g === "true" || g === "false" || u(g, A);
}
function a(g) {
return g === "eval" || g === "arguments";
}
function f(g) {
var A, E, C;
if (g.length === 0 || (C = g.charCodeAt(0), !e.isIdentifierStartES5(C)))
return !1;
for (A = 1, E = g.length; A < E; ++A)
if (C = g.charCodeAt(A), !e.isIdentifierPartES5(C))
return !1;
return !0;
}
function p(g, A) {
return (g - 55296) * 1024 + (A - 56320) + 65536;
}
function D(g) {
var A, E, C, x, I;
if (g.length === 0)
return !1;
for (I = e.isIdentifierStartES6, A = 0, E = g.length; A < E; ++A) {
if (C = g.charCodeAt(A), 55296 <= C && C <= 56319) {
if (++A, A >= E || (x = g.charCodeAt(A), !(56320 <= x && x <= 57343)))
return !1;
C = p(C, x);
}
if (!I(C))
return !1;
I = e.isIdentifierPartES6;
}
return !0;
}
function m(g, A) {
return f(g) && !n(g, A);
}
function v(g, A) {
return D(g) && !c(g, A);
}
_i.exports = {
isKeywordES5: i,
isKeywordES6: u,
isReservedWordES5: n,
isReservedWordES6: c,
isRestrictedWord: a,
isIdentifierNameES5: f,
isIdentifierNameES6: D,
isIdentifierES5: m,
isIdentifierES6: v
};
})();
(function() {
ft.ast = Bi.exports, ft.code = Mt.exports, ft.keyword = _i.exports;
})();
var Xe = {}, vt = {}, lt = {}, ct = {}, ri;
function iu() {
if (ri)
return ct;
ri = 1;
var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
return ct.encode = function(t) {
if (0 <= t && t < e.length)
return e[t];
throw new TypeError("Must be between 0 and 63: " + t);
}, ct.decode = function(t) {
var i = 65, u = 90, n = 97, c = 122, a = 48, f = 57, p = 43, D = 47, m = 26, v = 52;
return i <= t && t <= u ? t - i : n <= t && t <= c ? t - n + m : a <= t && t <= f ? t - a + v : t == p ? 62 : t == D ? 63 : -1;
}, ct;
}
var ui;
function wi() {
if (ui)
return lt;
ui = 1;
var e = iu(), t = 5, i = 1 << t, u = i - 1, n = i;
function c(f) {
return f < 0 ? (-f << 1) + 1 : (f << 1) + 0;
}
function a(f) {
var p = (f & 1) === 1, D = f >> 1;
return p ? -D : D;
}
return lt.encode = function(p) {
var D = "", m, v = c(p);
do
m = v & u, v >>>= t, v > 0 && (m |= n), D += e.encode(m);
while (v > 0);
return D;
}, lt.decode = function(p, D, m) {
var v = p.length, g = 0, A = 0, E, C;
do {
if (D >= v)
throw new Error("Expected more digits in base 64 VLQ value.");
if (C = e.decode(p.charCodeAt(D++)), C === -1)
throw new Error("Invalid base64 digit: " + p.charAt(D - 1));
E = !!(C & n), C &= u, g = g + (C << A), A += t;
} while (E);
m.value = a(g), m.rest = D;
}, lt;
}
var xt = {}, ni;
function it() {
return ni || (ni = 1, function(e) {
function t(y, F, S) {
if (F in y)
return y[F];
if (arguments.length === 3)
return S;
throw new Error('"' + F + '" is a required argument.');
}
e.getArg = t;
var i = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/, u = /^data:.+\,.+$/;
function n(y) {
var F = y.match(i);
return F ? {
scheme: F[1],
auth: F[2],
host: F[3],
port: F[4],
path: F[5]
} : null;
}
e.urlParse = n;
function c(y) {
var F = "";
return y.scheme && (F += y.scheme + ":"), F += "//", y.auth && (F += y.auth + "@"), y.host && (F += y.host), y.port && (F += ":" + y.port), y.path && (F += y.path), F;
}
e.urlGenerate = c;
function a(y) {
var F = y, S = n(y);
if (S) {
if (!S.path)
return y;
F = S.path;
}
for (var B = e.isAbsolute(F), w = F.split(/\/+/), W, N = 0, G = w.length - 1; G >= 0; G--)
W = w[G], W === "." ? w.splice(G, 1) : W === ".." ? N++ : N > 0 && (W === "" ? (w.splice(G + 1, N), N = 0) : (w.splice(G, 2), N--));
return F = w.join("/"), F === "" && (F = B ? "/" : "."), S ? (S.path = F, c(S)) : F;
}
e.normalize = a;
function f(y, F) {
y === "" && (y = "."), F === "" && (F = ".");
var S = n(F), B = n(y);
if (B && (y = B.path || "/"), S && !S.scheme)
return B && (S.scheme = B.scheme), c(S);
if (S || F.match(u))
return F;
if (B && !B.host && !B.path)
return B.host = F, c(B);
var w = F.charAt(0) === "/" ? F : a(y.replace(/\/+$/, "") + "/" + F);
return B ? (B.path = w, c(B)) : w;
}
e.join = f, e.isAbsolute = function(y) {
return y.charAt(0) === "/" || i.test(y);
};
function p(y, F) {
y === "" && (y = "."), y = y.replace(/\/$/, "");
for (var S = 0; F.indexOf(y + "/") !== 0; ) {
var B = y.lastIndexOf("/");
if (B < 0 || (y = y.slice(0, B), y.match(/^([^\/]+:\/)?\/*$/)))
return F;
++S;
}
return Array(S + 1).join("../") + F.substr(y.length + 1);
}
e.relative = p;
var D = function() {
var y = /* @__PURE__ */ Object.create(null);
return !("__proto__" in y);
}();
function m(y) {
return y;
}
function v(y) {
return A(y) ? "$" + y : y;
}
e.toSetString = D ? m : v;
function g(y) {
return A(y) ? y.slice(1) : y;
}
e.fromSetString = D ? m : g;
function A(y) {
if (!y)
return !1;
var F = y.length;
if (F < 9 || y.charCodeAt(F - 1) !== 95 || y.charCodeAt(F - 2) !== 95 || y.charCodeAt(F - 3) !== 111 || y.charCodeAt(F - 4) !== 116 || y.charCodeAt(F - 5) !== 111 || y.charCodeAt(F - 6) !== 114 || y.charCodeAt(F - 7) !== 112 || y.charCodeAt(F - 8) !== 95 || y.charCodeAt(F - 9) !== 95)
return !1;
for (var S = F - 10; S >= 0; S--)
if (y.charCodeAt(S) !== 36)
return !1;
return !0;
}
function E(y, F, S) {
var B = x(y.source, F.source);
return B !== 0 || (B = y.originalLine - F.originalLine, B !== 0) || (B = y.originalColumn - F.originalColumn, B !== 0 || S) || (B = y.generatedColumn - F.generatedColumn, B !== 0) || (B = y.generatedLine - F.generatedLine, B !== 0) ? B : x(y.name, F.name);
}
e.compareByOriginalPositions = E;
function C(y, F, S) {
var B = y.generatedLine - F.generatedLine;
return B !== 0 || (B = y.generatedColumn - F.generatedColumn, B !== 0 || S) || (B = x(y.source, F.source), B !== 0) || (B = y.originalLine - F.originalLine, B !== 0) || (B = y.originalColumn - F.originalColumn, B !== 0) ? B : x(y.name, F.name);
}
e.compareByGeneratedPositionsDeflated = C;
function x(y, F) {
return y === F ? 0 : y === null ? 1 : F === null ? -1 : y > F ? 1 : -1;
}
function I(y, F) {
var S = y.generatedLine - F.generatedLine;
return S !== 0 || (S = y.generatedColumn - F.generatedColumn, S !== 0) || (S = x(y.source, F.source), S !== 0) || (S = y.originalLine - F.originalLine, S !== 0) || (S = y.originalColumn - F.originalColumn, S !== 0) ? S : x(y.name, F.name);
}
e.compareByGeneratedPositionsInflated = I;
function P(y) {
return JSON.parse(y.replace(/^\)]}'[^\n]*\n/, ""));
}
e.parseSourceMapInput = P;
function O(y, F, S) {
if (F = F || "", y && (y[y.length - 1] !== "/" && F[0] !== "/" && (y += "/"), F = y + F), S) {
var B = n(S);
if (!B)
throw new Error("sourceMapURL could not be parsed");
if (B.path) {
var w = B.path.lastIndexOf("/");
w >= 0 && (B.path = B.path.substring(0, w + 1));
}
F = f(c(B), F);
}
return a(F);
}
e.computeSourceURL = O;
}(xt)), xt;
}
var yt = {}, si;
function ki() {
if (si)
return yt;
si = 1;
var e = it(), t = Object.prototype.hasOwnProperty, i = typeof Map < "u";
function u() {
this._array = [], this._set = i ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null);
}
return u.fromArray = function(c, a) {
for (var f = new u(), p = 0, D = c.length; p < D; p++)
f.add(c[p], a);
return f;
}, u.prototype.size = function() {
return i ? this._set.size : Object.getOwnPropertyNames(this._set).length;
}, u.prototype.add = function(c, a) {
var f = i ? c : e.toSetString(c), p = i ? this.has(c) : t.call(this._set, f), D = this._array.length;
(!p || a) && this._array.push(c), p || (i ? this._set.set(c, D) : this._set[f] = D);
}, u.prototype.has = function(c) {
if (i)
return this._set.has(c);
var a = e.toSetString(c);
return t.call(this._set, a);
}, u.prototype.indexOf = function(c) {
if (i) {
var a = this._set.get(c);
if (a >= 0)
return a;
} else {
var f = e.toSetString(c);
if (t.call(this._set, f))
return this._set[f];
}
throw new Error('"' + c + '" is not in the set.');
}, u.prototype.at = function(c) {
if (c >= 0 && c < this._array.length)
return this._array[c];
throw new Error("No element indexed by " + c);
}, u.prototype.toArray = function() {
return this._array.slice();
}, yt.ArraySet = u, yt;
}
var bt = {}, ai;
function ru() {
if (ai)
return bt;
ai = 1;
var e = it();
function t(u, n) {
var c = u.generatedLine, a = n.generatedLine, f = u.generatedColumn, p = n.generatedColumn;
return a > c || a == c && p >= f || e.compareByGeneratedPositionsInflated(u, n) <= 0;
}
function i() {
this._array = [], this._sorted = !0, this._last = { generatedLine: -1, generatedColumn: 0 };
}
return i.prototype.unsortedForEach = function(n, c) {
this._array.forEach(n, c);
}, i.prototype.add = function(n) {
t(this._last, n) ? (this._last = n, this._array.push(n)) : (this._sorted = !1, this._array.push(n));
}, i.prototype.toArray = function() {
return this._sorted || (this._array.sort(e.compareByGeneratedPositionsInflated), this._sorted = !0), this._array;
}, bt.MappingList = i, bt;
}
var oi;
function Ii() {
if (oi)
return vt;
oi = 1;
var e = wi(), t = it(), i = ki().ArraySet, u = ru().MappingList;
function n(c) {
c || (c = {}), this._file = t.getArg(c, "file", null), this._sourceRoot = t.getArg(c, "sourceRoot", null), this._skipValidation = t.getArg(c, "skipValidation", !1), this._sources = new i(), this._names = new i(), this._mappings = new u(), this._sourcesContents = null;
}
return n.prototype._version = 3, n.fromSourceMap = function(a) {
var f = a.sourceRoot, p = new n({
file: a.file,
sourceRoot: f
});
return a.eachMapping(function(D) {
var m = {
generated: {
line: D.generatedLine,
column: D.generatedColumn
}
};
D.source != null && (m.source = D.source, f != null && (m.source = t.relative(f, m.source)), m.original = {
line: D.originalLine,
column: D.originalColumn
}, D.name != null && (m.name = D.name)), p.addMapping(m);
}), a.sources.forEach(function(D) {
var m = D;
f !== null && (m = t.relative(f, D)), p._sources.has(m) || p._sources.add(m);
var v = a.sourceContentFor(D);
v != null && p.setSourceContent(D, v);
}), p;
}, n.prototype.addMapping = function(a) {
var f = t.getArg(a, "generated"), p = t.getArg(a, "original", null), D = t.getArg(a, "source", null), m = t.getArg(a, "name", null);
this._skipValidation || this._validateMapping(f, p, D, m), D != null && (D = String(D), this._sources.has(D) || this._sources.add(D)), m != null && (m = String(m), this._names.has(m) || this._names.add(m)), this._mappings.add({
generatedLine: f.line,
generatedColumn: f.column,
originalLine: p != null && p.line,
originalColumn: p != null && p.column,
source: D,
name: m
});
}, n.prototype.setSourceContent = function(a, f) {
var p = a;
this._sourceRoot != null && (p = t.relative(this._sourceRoot, p)), f != null ? (this._sourcesContents || (this._sourcesContents = /* @__PURE__ */ Object.create(null)), this._sourcesContents[t.toSetString(p)] = f) : this._sourcesContents && (delete this._sourcesContents[t.toSetString(p)], Object.keys(this._sourcesContents).length === 0 && (this._sourcesContents = null));
}, n.prototype.applySourceMap = function(a, f, p) {
var D = f;
if (f == null) {
if (a.file == null)
throw new Error(
`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`
);
D = a.file;
}
var m = this._sourceRoot;
m != null && (D = t.relative(m, D));
var v = new i(), g = new i();
this._mappings.unsortedForEach(function(A) {
if (A.source === D && A.originalLine != null) {
var E = a.originalPositionFor({
line: A.originalLine,
column: A.originalColumn
});
E.source != null && (A.source = E.source, p != null && (A.source = t.join(p, A.source)), m != null && (A.source = t.relative(m, A.source)), A.originalLine = E.line, A.originalColumn = E.column, E.name != null && (A.name = E.name));
}
var C = A.source;
C != null && !v.has(C) && v.add(C);
var x = A.name;
x != null && !g.has(x) && g.add(x);
}, this), this._sources = v, this._names = g, a.sources.forEach(function(A) {
var E = a.sourceContentFor(A);
E != null && (p != null && (A = t.join(p, A)), m != null && (A = t.relative(m, A)), this.setSourceContent(A, E));
}, this);
}, n.prototype._validateMapping = function(a, f, p, D) {
if (f && typeof f.line != "number" && typeof f.column != "number")
throw new Error(
"original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values."
);
if (!(a && "line" in a && "column" in a && a.line > 0 && a.column >= 0 && !f && !p && !D)) {
if (a && "line" in a && "column" in a && f && "line" in f && "column" in f && a.line > 0 && a.column >= 0 && f.line > 0 && f.column >= 0 && p)
return;
throw new Error("Invalid mapping: " + JSON.stringify({
generated: a,
source: p,
original: f,
name: D
}));
}
}, n.prototype._serializeMappings = function() {
for (var a = 0, f = 1, p = 0, D = 0, m = 0, v = 0, g = "", A, E, C, x, I = this._mappings.toArray(), P = 0, O = I.length; P < O; P++) {
if (E = I[P], A = "", E.generatedLine !== f)
for (a = 0; E.generatedLine !== f; )
A += ";", f++;
else if (P > 0) {
if (!t.compareByGeneratedPositionsInflated(E, I[P - 1]))
continue;
A += ",";
}
A += e.encode(E.generatedColumn - a), a = E.generatedColumn, E.source != null && (x = this._sources.indexOf(E.source), A += e.encode(x - v), v = x, A += e.encode(E.originalLine - 1 - D), D = E.originalLine - 1, A += e.encode(E.originalColumn - p), p = E.originalColumn, E.name != null && (C = this._names.indexOf(E.name), A += e.encode(C - m), m = C)), g += A;
}
return g;
}, n.prototype._generateSourcesContent = function(a, f) {
return a.map(function(p) {
if (!this._sourcesContents)
return null;
f != null && (p = t.relative(f, p));
var D = t.toSetString(p);
return Object.prototype.hasOwnProperty.call(this._sourcesContents, D) ? this._sourcesContents[D] : null;
}, this);
}, n.prototype.toJSON = function() {
var a = {
version: this._version,
sources: this._sources.toArray(),
names: this._names.toArray(),
mappings: this._serializeMappings()
};
return this._file != null && (a.file = this._file), this._sourceRoot != null && (a.sourceRoot = this._sourceRoot), this._sourcesContents && (a.sourcesContent = this._generateSourcesContent(a.sources, a.sourceRoot)), a;
}, n.prototype.toString = function() {
return JSON.stringify(this.toJSON());
}, vt.SourceMapGenerator = n, vt;
}
var $e = {}, St = {}, li;
function uu() {
return li || (li = 1, function(e) {
e.GREATEST_LOWER_BOUND = 1, e.LEAST_UPPER_BOUND = 2;
function t(i, u, n, c, a, f) {
var p = Math.floor((u - i) / 2) + i, D = a(n, c[p], !0);
return D === 0 ? p : D > 0 ? u - p > 1 ? t(p, u, n, c, a, f) : f == e.LEAST_UPPER_BOUND ? u < c.length ? u : -1 : p : p - i > 1 ? t(i, p, n, c, a, f) : f == e.LEAST_UPPER_BOUND ? p : i < 0 ? -1 : i;
}
e.search = function(u, n, c, a) {
if (n.length === 0)
return -1;
var f = t(
-1,
n.length,
u,
n,
c,
a || e.GREATEST_LOWER_BOUND
);
if (f < 0)
return -1;
for (; f - 1 >= 0 && c(n[f], n[f - 1], !0) === 0; )
--f;
return f;
};
}(St)), St;
}
var Bt = {}, ci;
function nu() {
if (ci)
return Bt;
ci = 1;
function e(u, n, c) {
var a = u[n];
u[n] = u[c], u[c] = a;
}
function t(u, n) {
return Math.round(u + Math.random() * (n - u));
}
function i(u, n, c, a) {
if (c < a) {
var f = t(c, a), p = c - 1;
e(u, f, a);
for (var D = u[a], m = c; m < a; m++)
n(u[m], D) <= 0 && (p += 1, e(u, p, m));
e(u, p + 1, m);
var v = p + 1;
i(u, n, c, v - 1), i(u, n, v + 1, a);
}
}
return Bt.quickSort = function(u, n) {
i(u, n, 0, u.length - 1);
}, Bt;
}
var hi;
function su() {
if (hi)
return $e;
hi = 1;
var e = it(), t = uu(), i = ki().ArraySet, u = wi(), n = nu().quickSort;
function c(D, m) {
var v = D;
return typeof D == "string" && (v = e.parseSourceMapInput(D)), v.sections != null ? new p(v, m) : new a(v, m);
}
c.fromSourceMap = function(D, m) {
return a.fromSourceMap(D, m);
}, c.prototype._version = 3, c.prototype.__generatedMappings = null, Object.defineProperty(c.prototype, "_generatedMappings", {
configurable: !0,
enumerable: !0,
get: function() {
return this.__generatedMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__generatedMappings;
}
}), c.prototype.__originalMappings = null, Object.defineProperty(c.prototype, "_originalMappings", {
configurable: !0,
enumerable: !0,
get: function() {
return this.__originalMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__originalMappings;
}
}), c.prototype._charIsMappingSeparator = function(m, v) {
var g = m.charAt(v);
return g === ";" || g === ",";
}, c.prototype._parseMappings = function(m, v) {
throw new Error("Subclasses must implement _parseMappings");
}, c.GENERATED_ORDER = 1, c.ORIGINAL_ORDER = 2, c.GREATEST_LOWER_BOUND = 1, c.LEAST_UPPER_BOUND = 2, c.prototype.eachMapping = function(m, v, g) {
var A = v || null, E = g || c.GENERATED_ORDER, C;
switch (E) {
case c.GENERATED_ORDER:
C = this._generatedMappings;
break;
case c.ORIGINAL_ORDER:
C = this._originalMappings;
break;
default:
throw new Error("Unknown order of iteration.");
}
var x = this.sourceRoot;
C.map(function(I) {
var P = I.source === null ? null : this._sources.at(I.source);
return P = e.computeSourceURL(x, P, this._sourceMapURL), {
source: P,
generatedLine: I.generatedLine,
generatedColumn: I.generatedColumn,
originalLine: I.originalLine,
originalColumn: I.originalColumn,
name: I.name === null ? null : this._names.at(I.name)
};
}, this).forEach(m, A);
}, c.prototype.allGeneratedPositionsFor = function(m) {
var v = e.getArg(m, "line"), g = {
source: e.getArg(m, "source"),
originalLine: v,
originalColumn: e.getArg(m, "column", 0)
};
if (g.source = this._findSourceIndex(g.source), g.source < 0)
return [];
var A = [], E = this._findMapping(
g,
this._originalMappings,
"originalLine",
"originalColumn",
e.compareByOriginalPositions,
t.LEAST_UPPER_BOUND
);
if (E >= 0) {
var C = this._originalMappings[E];
if (m.column === void 0)
for (var x = C.originalLine; C && C.originalLine === x; )
A.push({
line: e.getArg(C, "generatedLine", null),
column: e.getArg(C, "generatedColumn", null),
lastColumn: e.getArg(C, "lastGeneratedColumn", null)
}), C = this._originalMappings[++E];
else
for (var I = C.originalColumn; C && C.originalLine === v && C.originalColumn == I; )
A.push({
line: e.getArg(C, "generatedLine", null),
column: e.getArg(C, "generatedColumn", null),
lastColumn: e.getArg(C, "lastGeneratedColumn", null)
}), C = this._originalMappings[++E];
}
return A;
}, $e.SourceMapConsumer = c;
function a(D, m) {
var v = D;
typeof D == "string" && (v = e.parseSourceMapInput(D));
var g = e.getArg(v, "version"), A = e.getArg(v, "sources"), E = e.getArg(v, "names", []), C = e.getArg(v, "sourceRoot", null), x = e.getArg(v, "sourcesContent", null), I = e.getArg(v, "mappings"), P = e.getArg(v, "file", null);
if (g != this._version)
throw new Error("Unsupported version: " + g);
C && (C = e.normalize(C)), A = A.map(String).map(e.normalize).map(function(O) {
return C && e.isAbsolute(C) && e.isAbsolute(O) ? e.relative(C, O) : O;
}), this._names = i.fromArray(E.map(String), !0), this._sources = i.fromArray(A, !0), this._absoluteSources = this._sources.toArray().map(function(O) {
return e.computeSourceURL(C, O, m);
}), this.sourceRoot = C, this.sourcesContent = x, this._mappings = I, this._sourceMapURL = m, this.file = P;
}
a.prototype = Object.create(c.prototype), a.prototype.consumer = c, a.prototype._findSourceIndex = function(D) {
var m = D;
if (this.sourceRoot != null && (m = e.relative(this.sourceRoot, m)), this._sources.has(m))
return this._sources.indexOf(m);
var v;
for (v = 0; v < this._absoluteSources.length; ++v)
if (this._absoluteSources[v] == D)
return v;
return -1;
}, a.fromSourceMap = function(m, v) {
var g = Object.create(a.prototype), A = g._names = i.fromArray(m._names.toArray(), !0), E = g._sources = i.fromArray(m._sources.toArray(), !0);
g.sourceRoot = m._sourceRoot, g.sourcesContent = m._generateSourcesContent(
g._sources.toArray(),
g.sourceRoot
), g.file = m._file, g._sourceMapURL = v, g._absoluteSources = g._sources.toArray().map(function(S) {
return e.computeSourceURL(g.sourceRoot, S, v);
});
for (var C = m._mappings.toArray().slice(), x = g.__generatedMappings = [], I = g.__originalMappings = [], P = 0, O = C.length; P < O; P++) {
var y = C[P], F = new f();
F.generatedLine = y.generatedLine, F.generatedColumn = y.generatedColumn, y.source && (F.source = E.indexOf(y.source), F.originalLine = y.originalLine, F.originalColumn = y.originalColumn, y.name && (F.name = A.indexOf(y.name)), I.push(F)), x.push(F);
}
return n(g.__originalMappings, e.compareByOriginalPositions), g;
}, a.prototype._version = 3, Object.defineProperty(a.prototype, "sources", {
get: function() {
return this._absoluteSources.slice();
}
});
function f() {
this.generatedLine = 0, this.generatedColumn = 0, this.source = null, this.originalLine = null, this.originalColumn = null, this.name = null;
}
a.prototype._parseMappings = function(m, v) {
for (var g = 1, A = 0, E = 0, C = 0, x = 0, I = 0, P = m.length, O = 0, y = {}, F = {}, S = [], B = [], w, W, N, G, q; O < P; )
if (m.charAt(O) === ";")
g++, O++, A = 0;
else if (m.charAt(O) === ",")
O++;
else {
for (w = new f(), w.generatedLine = g, G = O; G < P && !this._charIsMappingSeparator(m, G); G++)
;
if (W = m.slice(O, G), N = y[W], N)
O += W.length;
else {
for (N = []; O < G; )
u.decode(m, O, F), q = F.value, O = F.rest, N.push(q);
if (N.length === 2)
throw new Error("Found a source, but no line and column");
if (N.length === 3)
throw new Error("Found a source and line, but no column");
y[W] = N;
}
w.generatedColumn = A + N[0], A = w.generatedColumn, N.length > 1 && (w.source = x + N[1], x += N[1], w.originalLine = E + N[2], E = w.originalLine, w.originalLine += 1, w.originalColumn = C + N[3], C = w.originalColumn, N.length > 4 && (w.name = I + N[4], I += N[4])), B.push(w), typeof w.originalLine == "number" && S.push(w);
}
n(B, e.compareByGeneratedPositionsDeflated), this.__generatedMappings = B, n(S, e.compareByOriginalPositions), this.__originalMappings = S;
}, a.prototype._findMapping = function(m, v, g, A, E, C) {
if (m[g] <= 0)
throw new TypeError("Line must be greater than or equal to 1, got " + m[g]);
if (m[A] < 0)
throw new TypeError("Column must be greater than or equal to 0, got " + m[A]);
return t.search(m, v, E, C);
}, a.prototype.computeColumnSpans = function() {
for (var m = 0; m < this._generatedMappings.length; ++m) {
var v = this._generatedMappings[m];
if (m + 1 < this._generatedMappings.length) {
var g = this._generatedMappings[m + 1];
if (v.generatedLine === g.generatedLine) {
v.lastGeneratedColumn = g.generatedColumn - 1;
continue;
}
}
v.lastGeneratedColumn = 1 / 0;
}
}, a.prototype.originalPositionFor = function(m) {
var v = {
generatedLine: e.getArg(m, "line"),
generatedColumn: e.getArg(m, "column")
}, g = this._findMapping(
v,
this._generatedMappings,
"generatedLine",
"generatedColumn",
e.compareByGeneratedPositionsDeflated,
e.getArg(m, "bias", c.GREATEST_LOWER_BOUND)
);
if (g >= 0) {
var A = this._generatedMappings[g];
if (A.generatedLine === v.generatedLine) {
var E = e.getArg(A, "source", null);
E !== null && (E = this._sources.at(E), E = e.computeSourceURL(this.sourceRoot, E, this._sourceMapURL));
var C = e.getArg(A, "name", null);
return C !== null && (C = this._names.at(C)), {
source: E,
line: e.getArg(A, "originalLine", null),
column: e.getArg(A, "originalColumn", null),
name: C
};
}
}
return {
source: null,
line: null,
column: null,
name: null
};
}, a.prototype.hasContentsOfAllSources = function() {
return this.sourcesContent ? this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(m) {
return m == null;
}) : !1;
}, a.prototype.sourceContentFor = function(m, v) {
if (!this.sourcesContent)
return null;
var g = this._findSourceIndex(m);
if (g >= 0)
return this.sourcesContent[g];
var A = m;
this.sourceRoot != null && (A = e.relative(this.sourceRoot, A));
var E;
if (this.sourceRoot != null && (E = e.urlParse(this.sourceRoot))) {
var C = A.replace(/^file:\/\//, "");
if (E.scheme == "file" && this._sources.has(C))
return this.sourcesContent[this._sources.indexOf(C)];
if ((!E.path || E.path == "/") && this._sources.has("/" + A))
return this.sourcesContent[this._sources.indexOf("/" + A)];
}
if (v)
return null;
throw new Error('"' + A + '" is not in the SourceMap.');
}, a.prototype.generatedPositionFor = function(m) {
var v = e.getArg(m, "source");
if (v = this._findSourceIndex(v), v < 0)
return {
line: null,
column: null,
lastColumn: null
};
var g = {
source: v,
originalLine: e.getArg(m, "line"),
originalColumn: e.getArg(m, "column")
}, A = this._findMapping(
g,
this._originalMappings,
"originalLine",
"originalColumn",
e.compareByOriginalPositions,
e.getArg(m, "bias", c.GREATEST_LOWER_BOUND)
);
if (A >= 0) {
var E = this._originalMappings[A];
if (E.source === g.source)
return {
line: e.getArg(E, "generatedLine", null),
column: e.getArg(E, "generatedColumn", null),
lastColumn: e.getArg(E, "lastGeneratedColumn", null)
};
}
return {
line: null,
column: null,
lastColumn: null
};
}, $e.BasicSourceMapConsumer = a;
function p(D, m) {
var v = D;
typeof D == "string" && (v = e.parseSourceMapInput(D));
var g = e.getArg(v, "version"), A = e.getArg(v, "sections");
if (g != this._version)
throw new Error("Unsupported version: " + g);
this._sources = new i(), this._names = new i();
var E = {
line: -1,
column: 0
};
this._sections = A.map(function(C) {
if (C.url)
throw new Error("Support for url field in sections not implemented.");
var x = e.getArg(C, "offset"), I = e.getArg(x, "line"), P = e.getArg(x, "column");
if (I < E.line || I === E.line && P < E.column)
throw new Error("Section offsets must be ordered and non-overlapping.");
return E = x, {
generatedOffset: {
generatedLine: I + 1,
generatedColumn: P + 1
},
consumer: new c(e.getArg(C, "map"), m)
};
});
}
return p.prototype = Object.create(c.prototype), p.prototype.constructor = c, p.prototype._version = 3, Object.defineProperty(p.prototype, "sources", {
get: function() {
for (var D = [], m = 0; m < this._sections.length; m++)
for (var v = 0; v < this._sections[m].consumer.sources.length; v++)
D.push(this._sections[m].consumer.sources[v]);
return D;
}
}), p.prototype.originalPositionFor = function(m) {
var v = {
generatedLine: e.getArg(m, "line"),
generatedColumn: e.getArg(m, "column")
}, g = t.search(
v,
this._sections,
function(E, C) {
var x = E.generatedLine - C.generatedOffset.generatedLine;
return x || E.generatedColumn - C.generatedOffset.generatedColumn;
}
), A = this._sections[g];
return A ? A.consumer.originalPositionFor({
line: v.generatedLine - (A.generatedOffset.generatedLine - 1),
column: v.generatedColumn - (A.generatedOffset.generatedLine === v.generatedLine ? A.generatedOffset.generatedColumn - 1 : 0),
bias: m.bias
}) : {
source: null,
line: null,
column: null,
name: null
};
}, p.prototype.hasContentsOfAllSources = function() {
return this._sections.every(function(m) {
return m.consumer.hasContentsOfAllSources();
});
}, p.prototype.sourceContentFor = function(m, v) {
for (var g = 0; g < this._sections.length; g++) {
var A = this._sections[g], E = A.consumer.sourceContentFor(m, !0);
if (E)
return E;
}
if (v)
return null;
throw new Error('"' + m + '" is not in the SourceMap.');
}, p.prototype.generatedPositionFor = function(m) {
for (var v = 0; v < this._sections.length; v++) {
var g = this._sections[v];
if (g.consumer._findSourceIndex(e.getArg(m, "source")) !== -1) {
var A = g.consumer.generatedPositionFor(m);
if (A) {
var E = {
line: A.line + (g.generatedOffset.generatedLine - 1),
column: A.column + (g.generatedOffset.generatedLine === A.line ? g.generatedOffset.generatedColumn - 1 : 0)
};
return E;
}
}
}
return {
line: null,
column: null
};
}, p.prototype._parseMappings = function(m, v) {
this.__generatedMappings = [], this.__originalMappings = [];
for (var g = 0; g < this._sections.length; g++)
for (var A = this._sections[g], E = A.consumer._generatedMappings, C = 0; C < E.length; C++) {
var x = E[C], I = A.consumer._sources.at(x.source);
I = e.computeSourceURL(A.consumer.sourceRoot, I, this._sourceMapURL), this._sources.add(I), I = this._sources.indexOf(I);
var P = null;
x.name && (P = A.consumer._names.at(x.name), this._names.add(P), P = this._names.indexOf(P));
var O = {
source: I,
generatedLine: x.generatedLine + (A.generatedOffset.generatedLine - 1),
generatedColumn: x.generatedColumn + (A.generatedOffset.generatedLine === x.generatedLine ? A.generatedOffset.generatedColumn - 1 : 0),
originalLine: x.originalLine,
originalColumn: x.originalColumn,
name: P
};
this.__generatedMappings.push(O), typeof O.originalLine == "number" && this.__originalMappings.push(O);
}
n(this.__generatedMappings, e.compareByGeneratedPositionsDeflated), n(this.__originalMappings, e.compareByOriginalPositions);
}, $e.IndexedSourceMapConsumer = p, $e;
}
var _t = {}, fi;
function au() {
if (fi)
return _t;
fi = 1;
var e = Ii().SourceMapGenerator, t = it(), i = /(\r?\n)/, u = 10, n = "$$$isSourceNode$$$";
function c(a, f, p, D, m) {
this.children = [], this.sourceContents = {}, this.line = a ?? null, this.column = f ?? null, this.source = p ?? null, this.name = m ?? null, this[n] = !0, D != null && this.add(D);
}
return c.fromStringWithSourceMap = function(f, p, D) {
var m = new c(), v = f.split(i), g = 0, A = function() {
var P = y(), O = y() || "";
return P + O;
function y() {
return g < v.length ? v[g++] : void 0;
}
}, E = 1, C = 0, x = null;
return p.eachMapping(function(P) {
if (x !== null)
if (E < P.generatedLine)
I(x, A()), E++, C = 0;
else {
var O = v[g] || "", y = O.substr(0, P.generatedColumn - C);
v[g] = O.substr(P.generatedColumn - C), C = P.generatedColumn, I(x, y), x = P;
return;
}
for (; E < P.generatedLine; )
m.add(A()), E++;
if (C < P.generatedColumn) {
var O = v[g] || "";
m.add(O.substr(0, P.generatedColumn)), v[g] = O.substr(P.generatedColumn), C = P.generatedColumn;
}
x = P;
}, this), g < v.length && (x && I(x, A()), m.add(v.splice(g).join(""))), p.sources.forEach(function(P) {
var O = p.sourceContentFor(P);
O != null && (D != null && (P = t.join(D, P)), m.setSourceContent(P, O));
}), m;
function I(P, O) {
if (P === null || P.source === void 0)
m.add(O);
else {
var y = D ? t.join(D, P.source) : P.source;
m.add(new c(
P.originalLine,
P.originalColumn,
y,
O,
P.name
));
}
}
}, c.prototype.add = function(f) {
if (Array.isArray(f))
f.forEach(function(p) {
this.add(p);
}, this);
else if (f[n] || typeof f == "string")
f && this.children.push(f);
else
throw new TypeError(
"Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + f
);
return this;
}, c.prototype.prepend = function(f) {
if (Array.isArray(f))
for (var p = f.length - 1; p >= 0; p--)
this.prepend(f[p]);
else if (f[n] || typeof f == "string")
this.children.unshift(f);
else
throw new TypeError(
"Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + f
);
return this;
}, c.prototype.walk = function(f) {
for (var p, D = 0, m = this.children.length; D < m; D++)
p = this.children[D], p[n] ? p.walk(f) : p !== "" && f(p, {
source: this.source,
line: this.line,
column: this.column,
name: this.name
});
}, c.prototype.join = function(f) {
var p, D, m = this.children.length;
if (m > 0) {
for (p = [], D = 0; D < m - 1; D++)
p.push(this.children[D]), p.push(f);
p.push(this.children[D]), this.children = p;
}
return this;
}, c.prototype.replaceRight = function(f, p) {
var D = this.children[this.children.length - 1];
return D[n] ? D.replaceRight(f, p) : typeof D == "string" ? this.children[this.children.length - 1] = D.replace(f, p) : this.children.push("".replace(f, p)), this;
}, c.prototype.setSourceContent = function(f, p) {
this.sourceContents[t.toSetString(f)] = p;
}, c.prototype.walkSourceContents = function(f) {
for (var p = 0, D = this.children.length; p < D; p++)
this.children[p][n] && this.children[p].walkSourceContents(f);
for (var m = Object.keys(this.sourceContents), p = 0, D = m.length; p < D; p++)
f(t.fromSetString(m[p]), this.sourceContents[m[p]]);
}, c.prototype.toString = function() {
var f = "";
return this.walk(function(p) {
f += p;
}), f;
}, c.prototype.toStringWithSourceMap = function(f) {
var p = {
code: "",
line: 1,
column: 0
}, D = new e(f), m = !1, v = null, g = null, A = null, E = null;
return this.walk(function(C, x) {
p.code += C, x.source !== null && x.line !== null && x.column !== null ? ((v !== x.source || g !== x.line || A !== x.column || E !== x.name) && D.addMapping({
source: x.source,
original: {
line: x.line,
column: x.column
},
generated: {
line: p.line,
column: p.column
},
name: x.name
}), v = x.source, g = x.line, A = x.column, E = x.name, m = !0) : m && (D.addMapping({
generated: {
line: p.line,
column: p.column
}
}), v = null, m = !1);
for (var I = 0, P = C.length; I < P; I++)
C.charCodeAt(I) === u ? (p.line++, p.column = 0, I + 1 === P ? (v = null, m = !1) : m && D.addMapping({
source: x.source,
original: {
line: x.line,
column: x.column
},
generated: {
line: p.line,
column: p.column
},
name: x.name
})) : p.column++;
}), this.walkSourceContents(function(C, x) {
D.setSourceContent(C, x);
}), { code: p.code, map: D };
}, _t.SourceNode = c, _t;
}
var pi;
function ou() {
return pi || (pi = 1, Xe.SourceMapGenerator = Ii().SourceMapGenerator, Xe.SourceMapConsumer = su().SourceMapConsumer, Xe.SourceNode = au().SourceNode), Xe;
}
const lu = "escodegen", cu = "ECMAScript code generator", hu = "http://github.com/estools/escodegen", fu = "escodegen.js", pu = {
esgenerate: "./bin/esgenerate.js",
escodegen: "./bin/escodegen.js"
}, du = [
"LICENSE.BSD",
"README.md",
"bin",
"escodegen.js",
"package.json"
], Du = "2.0.0", mu = {
node: ">=6.0"
}, gu = [
{
name: "Yusuke Suzuki",
email: "utatane.tea@gmail.com",
web: "http://github.com/Constellation"
}
], Cu = {
type: "git",
url: "http://github.com/estools/escodegen.git"
}, Au = {
estraverse: "^5.2.0",
esutils: "^2.0.2",
esprima: "^4.0.1",
optionator: "^0.8.1"
}, Eu = {
"source-map": "~0.6.1"
}, Fu = {
acorn: "^7.3.1",
bluebird: "^3.4.7",
"bower-registry-client": "^1.0.0",
chai: "^4.2.0",
"chai-exclude": "^2.0.2",
"commonjs-everywhere": "^0.9.7",
gulp: "^3.8.10",
"gulp-eslint": "^3.0.1",
"gulp-mocha": "^3.0.1",
semver: "^5.1.0"
}, vu = "BSD-2-Clause", xu = {
test: "gulp travis",
"unit-test": "gulp test",
lint: "gulp lint",
release: "node tools/release.js",
"build-min": "./node_modules/.bin/cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js",
build: "./node_modules/.bin/cjsify -a path: tools/entry-point.js > escodegen.browser.js"
}, yu = {
name: lu,
description: cu,
homepage: hu,
main: fu,
bin: pu,
files: du,
version: Du,
engines: mu,
maintainers: gu,
repository: Cu,
dependencies: Au,
optionalDependencies: Eu,
devDependencies: Fu,
license: vu,
scripts: xu
};
(function(e) {
(function() {
var t, i, u, n, c, a, f, p, D, m, v, g, A, E, C, x, I, P, O, y, F, S, B, w, W, N;
c = Si, a = ft, t = c.Syntax;
function G(r) {
return ue.Expression.hasOwnProperty(r.type);
}
function q(r) {
return ue.Statement.hasOwnProperty(r.type);
}
i = {
Sequence: 0,
Yield: 1,
Assignment: 1,
Conditional: 2,
ArrowFunction: 2,
LogicalOR: 3,
LogicalAND: 4,
BitwiseOR: 5,
BitwiseXOR: 6,
BitwiseAND: 7,
Equality: 8,
Relational: 9,
BitwiseSHIFT: 10,
Additive: 11,
Multiplicative: 12,
Exponentiation: 13,
Await: 14,
Unary: 14,
Postfix: 15,
OptionalChaining: 16,
Call: 17,
New: 18,
TaggedTemplate: 19,
Member: 20,
Primary: 21
}, u = {
"||": i.LogicalOR,
"&&": i.LogicalAND,
"|": i.BitwiseOR,
"^": i.BitwiseXOR,
"&": i.BitwiseAND,
"==": i.Equality,
"!=": i.Equality,
"===": i.Equality,
"!==": i.Equality,
is: i.Equality,
isnt: i.Equality,
"<": i.Relational,
">": i.Relational,
"<=": i.Relational,
">=": i.Relational,
in: i.Relational,
instanceof: i.Relational,
"<<": i.BitwiseSHIFT,
">>": i.BitwiseSHIFT,
">>>": i.BitwiseSHIFT,
"+": i.Additive,
"-": i.Additive,
"*": i.Multiplicative,
"%": i.Multiplicative,
"/": i.Multiplicative,
"**": i.Exponentiation
};
var R = 1, j = 1 << 1, J = 1 << 2, ne = 1 << 3, te = 1 << 4, Y = 1 << 5, ge = j | J, ye = R | j, T = R | j | J, Re = R, Ke = J, Qe = R | J, $ = R, De = R | Y, st = 0, hr = R | te, fr = R | ne;
function Ht() {
return {
indent: null,
base: null,
parse: null,
comment: !1,
format: {
indent: {
style: " ",
base: 0,
adjustMultilineComment: !1
},
newline: `
`,
space: " ",
json: !1,
renumber: !1,
hexadecimal: !1,
quotes: "single",
escapeless: !1,
compact: !1,
parentheses: !0,
semicolons: !0,
safeConcatenation: !1,
preserveBlankLines: !1
},
moz: {
comprehensionExpressionStartsWithAssignment: !1,
starlessGenerator: !1
},
sourceMap: null,
sourceMapRoot: null,
sourceMapWithCode: !1,
directive: !1,
raw: !0,
verbatim: null,
sourceCode: null
};
}
function Me(r, o) {
var s = "";
for (o |= 0; o > 0; o >>>= 1, r += r)
o & 1 && (s += r);
return s;
}
function pr(r) {
return /[\r\n]/g.test(r);
}
function le(r) {
var o = r.length;
return o && a.code.isLineTerminator(r.charCodeAt(o - 1));
}
function Kt(r, o) {
var s;
for (s in o)
o.hasOwnProperty(s) && (r[s] = o[s]);
return r;
}
function at(r, o) {
var s, l;
function d(b) {
return typeof b == "object" && b instanceof Object && !(b instanceof RegExp);
}
for (s in o)
o.hasOwnProperty(s) && (l = o[s], d(l) ? d(r[s]) ? at(r[s], l) : r[s] = at({}, l) : r[s] = l);
return r;
}
function dr(r) {
var o, s, l, d, b;
if (r !== r)
throw new Error("Numeric literal whose value is NaN");
if (r < 0 || r === 0 && 1 / r < 0)
throw new Error("Numeric literal whose value is negative");
if (r === 1 / 0)
return D ? "null" : m ? "1e400" : "1e+400";
if (o = "" + r, !m || o.length < 3)
return o;
for (s = o.indexOf("."), !D && o.charCodeAt(0) === 48 && s === 1 && (s = 0, o = o.slice(1)), l = o, o = o.replace("e+", "e"), d = 0, (b = l.indexOf("e")) > 0 && (d = +l.slice(b + 1), l = l.slice(0, b)), s >= 0 && (d -= l.length - s - 1, l = +(l.slice(0, s) + l.slice(s + 1)) + ""), b = 0; l.charCodeAt(l.length + b - 1) === 48; )
--b;
return b !== 0 && (d -= b, l = l.slice(0, b)), d !== 0 && (l += "e" + d), (l.length < o.length || v && r > 1e12 && Math.floor(r) === r && (l = "0x" + r.toString(16)).length < o.length) && +l === r && (o = l), o;
}
function Qt(r, o) {
return (r & -2) === 8232 ? (o ? "u" : "\\u") + (r === 8232 ? "2028" : "2029") : r === 10 || r === 13 ? (o ? "" : "\\") + (r === 10 ? "n" : "r") : String.fromCharCode(r);
}
function Dr(r) {
var o, s, l, d, b, _, k, L;
if (s = r.toString(), r.source) {
if (o = s.match(/\/([^/]*)$/), !o)
return s;
for (l = o[1], s = "", k = !1, L = !1, d = 0, b = r.source.length; d < b; ++d)
_ = r.source.charCodeAt(d), L ? (s += Qt(_, L), L = !1) : (k ? _ === 93 && (k = !1) : _ === 47 ? s += "\\" : _ === 91 && (k = !0), s += Qt(_, L), L = _ === 92);
return "/" + s + "/" + l;
}
return s;
}
function mr(r, o) {
var s;
return r === 8 ? "\\b" : r === 12 ? "\\f" : r === 9 ? "\\t" : (s = r.toString(16).toUpperCase(), D || r > 255 ? "\\u" + "0000".slice(s.length) + s : r === 0 && !a.code.isDecimalDigit(o) ? "\\0" : r === 11 ? "\\x0B" : "\\x" + "00".slice(s.length) + s);
}
function gr(r) {
if (r === 92)
return "\\\\";
if (r === 10)
return "\\n";
if (r === 13)
return "\\r";
if (r === 8232)
return "\\u2028";
if (r === 8233)
return "\\u2029";
throw new Error("Incorrectly classified character");
}
function Cr(r) {
var o, s, l, d;
for (d = g === "double" ? '"' : "'", o = 0, s = r.length; o < s; ++o)
if (l = r.charCodeAt(o), l === 39) {
d = '"';
break;
} else if (l === 34) {
d = "'";
break;
} else
l === 92 && ++o;
return d + r + d;
}
function Ar(r) {
var o = "", s, l, d, b = 0, _ = 0, k, L;
for (s = 0, l = r.length; s < l; ++s) {
if (d = r.charCodeAt(s), d === 39)
++b;
else if (d === 34)
++_;
else if (d === 47 && D)
o += "\\";
else if (a.code.isLineTerminator(d) || d === 92) {
o += gr(d);
continue;
} else if (!a.code.isIdentifierPartES5(d) && (D && d < 32 || !D && !A && (d < 32 || d > 126))) {
o += mr(d, r.charCodeAt(s + 1));
continue;
}
o += String.fromCharCode(d);
}
if (k = !(g === "double" || g === "auto" && _ < b), L = k ? "'" : '"', !(k ? b : _))
return L + o + L;
for (r = o, o = L, s = 0, l = r.length; s < l; ++s)
d = r.charCodeAt(s), (d === 39 && k || d === 34 && !k) && (o += "\\"), o += String.fromCharCode(d);
return o + L;
}
function Yt(r) {
var o, s, l, d = "";
for (o = 0, s = r.length; o < s; ++o)
l = r[o], d += Array.isArray(l) ? Yt(l) : l;
return d;
}
function Z(r, o) {
if (!S)
return Array.isArray(r) ? Yt(r) : r;
if (o == null) {
if (r instanceof n)
return r;
o = {};
}
return o.loc == null ? new n(null, null, S, r, o.name || null) : new n(o.loc.start.line, o.loc.start.column, S === !0 ? o.loc.source || null : S, r, o.name || null);
}
function ce() {
return C || " ";
}
function U(r, o) {
var s, l, d, b;
return s = Z(r).toString(), s.length === 0 ? [o] : (l = Z(o).toString(), l.length === 0 ? [r] : (d = s.charCodeAt(s.length - 1), b = l.charCodeAt(0), (d === 43 || d === 45) && d === b || a.code.isIdentifierPartES5(d) && a.code.isIdentifierPartES5(b) || d === 47 && b === 105 ? [r, ce(), o] : a.code.isWhiteSpace(d) || a.code.isLineTerminator(d) || a.code.isWhiteSpace(b) || a.code.isLineTerminator(b) ? [r, o] : [r, C, o]));
}
function fe(r) {
return [f, r];
}
function re(r) {
var o;
o = f, f += p, r(f), f = o;
}
function Er(r) {
var o;
for (o = r.length - 1; o >= 0 && !a.code.isLineTerminator(r.charCodeAt(o)); --o)
;
return r.length - 1 - o;
}
function Fr(r, o) {
var s, l, d, b, _, k, L, K;
for (s = r.split(/\r\n|[\r\n]/), k = Number.MAX_VALUE, l = 1, d = s.length; l < d; ++l) {
for (b = s[l], _ = 0; _ < b.length && a.code.isWhiteSpace(b.charCodeAt(_)); )
++_;
k > _ && (k = _);
}
for (typeof o < "u" ? (L = f, s[1][k] === "*" && (o += " "), f = o) : (k & 1 && --k, L = f), l = 1, d = s.length; l < d; ++l)
K = Z(fe(s[l].slice(k))), s[l] = S ? K.join("") : K;
return f = L, s.join(`
`);
}
function Be(r, o) {
if (r.type === "Line") {
if (le(r.value))
return "//" + r.value;
var s = "//" + r.value;
return w || (s += `
`), s;
}
return y.format.indent.adjustMultilineComment && /[\n\r]/.test(r.value) ? Fr("/*" + r.value + "*/", o) : "/*" + r.value + "*/";
}
function Xt(r, o) {
var s, l, d, b, _, k, L, K, ae, Oe, je, Jt, ei, be;
if (r.leadingComments && r.leadingComments.length > 0) {
if (b = o, w) {
for (d = r.leadingComments[0], o = [], K = d.extendedRange, ae = d.range, je = B.substring(K[0], ae[0]), be = (je.match(/\n/g) || []).length, be > 0 ? (o.push(Me(`
`, be)), o.push(fe(Be(d)))) : (o.push(je), o.push(Be(d))), Oe = ae, s = 1, l = r.leadingComments.length; s < l; s++)
d = r.leadingComments[s], ae = d.range, Jt = B.substring(Oe[1], ae[0]), be = (Jt.match(/\n/g) || []).length, o.push(Me(`
`, be)), o.push(fe(Be(d))), Oe = ae;
ei = B.substring(ae[1], K[1]), be = (ei.match(/\n/g) || []).length, o.push(Me(`
`, be));
} else
for (d = r.leadingComments[0], o = [], P && r.type === t.Program && r.body.length === 0 && o.push(`
`), o.push(Be(d)), le(Z(o).toString()) || o.push(`
`), s = 1, l = r.leadingComments.length; s < l; ++s)
d = r.leadingComments[s], L = [Be(d)], le(Z(L).toString()) || L.push(`
`), o.push(fe(L));
o.push(fe(b));
}
if (r.trailingComments)
if (w)
d = r.trailingComments[0], K = d.extendedRange, ae = d.range, je = B.substring(K[0], ae[0]), be = (je.match(/\n/g) || []).length, be > 0 ? (o.push(Me(`
`, be)), o.push(fe(Be(d)))) : (o.push(je), o.push(Be(d)));
else
for (_ = !le(Z(o).toString()), k = Me(" ", Er(Z([f, o, p]).toString())), s = 0, l = r.trailingComments.length; s < l; ++s)
d = r.trailingComments[s], _ ? (s === 0 ? o = [o, p] : o = [o, k], o.push(Be(d, k))) : o = [o, fe(Be(d))], s !== l - 1 && !le(Z(o).toString()) && (o = [o, `
`]);
return o;
}
function Ue(r, o, s) {
var l, d = 0;
for (l = r; l < o; l++)
B[l] === `
` && d++;
for (l = 1; l < d; l++)
s.push(E);
}
function se(r, o, s) {
return o < s ? ["(", r, ")"] : r;
}
function $t(r) {
var o, s, l;
for (l = r.split(/\r\n|\n/), o = 1, s = l.length; o < s; o++)
l[o] = E + f + l[o];
return l;
}
function vr(r, o) {
var s, l, d;
return s = r[y.verbatim], typeof s == "string" ? l = se($t(s), i.Sequence, o) : (l = $t(s.content), d = s.precedence != null ? s.precedence : i.Sequence, l = se(l, d, o)), Z(l, r);
}
function ue() {
}
ue.prototype.maybeBlock = function(r, o) {
var s, l, d = this;
return l = !y.comment || !r.leadingComments, r.type === t.BlockStatement && l ? [C, this.generateStatement(r, o)] : r.type === t.EmptyStatement && l ? ";" : (re(function() {
s = [
E,
fe(d.generateStatement(r, o))
];
}), s);
}, ue.prototype.maybeBlockSuffix = function(r, o) {
var s = le(Z(o).toString());
return r.type === t.BlockStatement && (!y.comment || !r.leadingComments) && !s ? [o, C] : s ? [o, f] : [o, E, f];
};
function me(r) {
return Z(r.name, r);
}
function Ye(r, o) {
return r.async ? "async" + (o ? ce() : C) : "";
}
function ot(r) {
var o = r.generator && !y.moz.starlessGenerator;
return o ? "*" + C : "";
}
function Zt(r) {
var o = r.value, s = "";
return o.async && (s += Ye(o, !r.computed)), o.generator && (s += ot(o) ? "*" : ""), s;
}
ue.prototype.generatePattern = function(r, o, s) {
return r.type === t.Identifier ? me(r) : this.generateExpression(r, o, s);
}, ue.prototype.generateFunctionParams = function(r) {
var o, s, l, d;
if (d = !1, r.type === t.ArrowFunctionExpression && !r.rest && (!r.defaults || r.defaults.length === 0) && r.params.length === 1 && r.params[0].type === t.Identifier)
l = [Ye(r, !0), me(r.params[0])];
else {
for (l = r.type === t.ArrowFunctionExpression ? [Ye(r, !1)] : [], l.push("("), r.defaults && (d = !0), o = 0, s = r.params.length; o < s; ++o)
d && r.defaults[o] ? l.push(this.generateAssignment(r.params[o], r.defaults[o], "=", i.Assignment, T)) : l.push(this.generatePattern(r.params[o], i.Assignment, T)), o + 1 < s && l.push("," + C);
r.rest && (r.params.length && l.push("," + C), l.push("..."), l.push(me(r.rest))), l.push(")");
}
return l;
}, ue.prototype.generateFunctionBody = function(r) {
var o, s;
return o = this.generateFunctionParams(r), r.type === t.ArrowFunctionExpression && (o.push(C), o.push("=>")), r.expression ? (o.push(C), s = this.generateExpression(r.body, i.Assignment, T), s.toString().charAt(0) === "{" && (s = ["(", s, ")"]), o.push(s)) : o.push(this.maybeBlock(r.body, fr)), o;
}, ue.prototype.generateIterationForStatement = function(r, o, s) {
var l = ["for" + (o.await ? ce() + "await" : "") + C + "("], d = this;
return re(function() {
o.left.type === t.VariableDeclaration ? re(function() {
l.push(o.left.kind + ce()), l.push(d.generateStatement(o.left.declarations[0], st));
}) : l.push(d.generateExpression(o.left, i.Call, T)), l = U(l, r), l = [U(
l,
d.generateExpression(o.right, i.Assignment, T)
), ")"];
}), l.push(this.maybeBlock(o.body, s)), l;
}, ue.prototype.generatePropertyKey = function(r, o) {
var s = [];
return o && s.push("["), s.push(this.generateExpression(r, i.Assignment, T)), o && s.push("]"), s;
}, ue.prototype.generateAssignment = function(r, o, s, l, d) {
return i.Assignment < l && (d |= R), se(
[
this.generateExpression(r, i.Call, d),
C + s + C,
this.generateExpression(o, i.Assignment, d)
],
i.Assignment,
l
);
}, ue.prototype.semicolon = function(r) {
return !I && r & Y ? "" : ";";
}, ue.Statement = {
BlockStatement: function(r, o) {
var s, l, d = ["{", E], b = this;
return re(function() {
r.body.length === 0 && w && (s = r.range, s[1] - s[0] > 2 && (l = B.substring(s[0] + 1, s[1] - 1), l[0] === `
` && (d = ["{"]), d.push(l)));
var _, k, L, K;
for (K = $, o & ne && (K |= te), _ = 0, k = r.body.length; _ < k; ++_)
w && (_ === 0 && (r.body[0].leadingComments && (s = r.body[0].leadingComments[0].extendedRange, l = B.substring(s[0], s[1]), l[0] === `
` && (d = ["{"])), r.body[0].leadingComments || Ue(r.range[0], r.body[0].range[0], d)), _ > 0 && !r.body[_ - 1].trailingComments && !r.body[_].leadingComments && Ue(r.body[_ - 1].range[1], r.body[_].range[0], d)), _ === k - 1 && (K |= Y), r.body[_].leadingComments && w ? L = b.generateStatement(r.body[_], K) : L = fe(b.generateStatement(r.body[_], K)), d.push(L), le(Z(L).toString()) || w && _ < k - 1 && r.body[_ + 1].leadingComments || d.push(E), w && _ === k - 1 && (r.body[_].trailingComments || Ue(r.body[_].range[1], r.range[1], d));
}), d.push(fe("}")), d;
},
BreakStatement: function(r, o) {
return r.label ? "break " + r.label.name + this.semicolon(o) : "break" + this.semicolon(o);
},
ContinueStatement: function(r, o) {
return r.label ? "continue " + r.label.name + this.semicolon(o) : "continue" + this.semicolon(o);
},
ClassBody: function(r, o) {
var s = ["{", E], l = this;
return re(function(d) {
var b, _;
for (b = 0, _ = r.body.length; b < _; ++b)
s.push(d), s.push(l.generateExpression(r.body[b], i.Sequence, T)), b + 1 < _ && s.push(E);
}), le(Z(s).toString()) || s.push(E), s.push(f), s.push("}"), s;
},
ClassDeclaration: function(r, o) {
var s, l;
return s = ["class"], r.id && (s = U(s, this.generateExpression(r.id, i.Sequence, T))), r.superClass && (l = U("extends", this.generateExpression(r.superClass, i.Unary, T)), s = U(s, l)), s.push(C), s.push(this.generateStatement(r.body, De)), s;
},
DirectiveStatement: function(r, o) {
return y.raw && r.raw ? r.raw + this.semicolon(o) : Cr(r.directive) + this.semicolon(o);
},
DoWhileStatement: function(r, o) {
var s = U("do", this.maybeBlock(r.body, $));
return s = this.maybeBlockSuffix(r.body, s), U(s, [
"while" + C + "(",
this.generateExpression(r.test, i.Sequence, T),
")" + this.semicolon(o)
]);
},
CatchClause: function(r, o) {
var s, l = this;
return re(function() {
var d;
r.param ? (s = [
"catch" + C + "(",
l.generateExpression(r.param, i.Sequence, T),
")"
], r.guard && (d = l.generateExpression(r.guard, i.Sequence, T), s.splice(2, 0, " if ", d))) : s = ["catch"];
}), s.push(this.maybeBlock(r.body, $)), s;
},
DebuggerStatement: function(r, o) {
return "debugger" + this.semicolon(o);
},
EmptyStatement: function(r, o) {
return ";";
},
ExportDefaultDeclaration: function(r, o) {
var s = ["export"], l;
return l = o & Y ? De : $, s = U(s, "default"), q(r.declaration) ? s = U(s, this.generateStatement(r.declaration, l)) : s = U(s, this.generateExpression(r.declaration, i.Assignment, T) + this.semicolon(o)), s;
},
ExportNamedDeclaration: function(r, o) {
var s = ["export"], l, d = this;
return l = o & Y ? De : $, r.declaration ? U(s, this.generateStatement(r.declaration, l)) : (r.specifiers && (r.specifiers.length === 0 ? s = U(s, "{" + C + "}") : r.specifiers[0].type === t.ExportBatchSpecifier ? s = U(s, this.generateExpression(r.specifiers[0], i.Sequence, T)) : (s = U(s, "{"), re(function(b) {
var _, k;
for (s.push(E), _ = 0, k = r.specifiers.length; _ < k; ++_)
s.push(b), s.push(d.generateExpression(r.specifiers[_], i.Sequence, T)), _ + 1 < k && s.push("," + E);
}), le(Z(s).toString()) || s.push(E), s.push(f + "}")), r.source ? s = U(s, [
"from" + C,
this.generateExpression(r.source, i.Sequence, T),
this.semicolon(o)
]) : s.push(this.semicolon(o))), s);
},
ExportAllDeclaration: function(r, o) {
return [
"export" + C,
"*" + C,
"from" + C,
this.generateExpression(r.source, i.Sequence, T),
this.semicolon(o)
];
},
ExpressionStatement: function(r, o) {
var s, l;
function d(k) {
var L;
return k.slice(0, 5) !== "class" ? !1 : (L = k.charCodeAt(5), L === 123 || a.code.isWhiteSpace(L) || a.code.isLineTerminator(L));
}
function b(k) {
var L;
return k.slice(0, 8) !== "function" ? !1 : (L = k.charCodeAt(8), L === 40 || a.code.isWhiteSpace(L) || L === 42 || a.code.isLineTerminator(L));
}
function _(k) {
var L, K, ae;
if (k.slice(0, 5) !== "async" || !a.code.isWhiteSpace(k.charCodeAt(5)))
return !1;
for (K = 6, ae = k.length; K < ae && a.code.isWhiteSpace(k.charCodeAt(K)); ++K)
;
return K === ae || k.slice(K, K + 8) !== "function" ? !1 : (L = k.charCodeAt(K + 8), L === 40 || a.code.isWhiteSpace(L) || L === 42 || a.code.isLineTerminator(L));
}
return s = [this.generateExpression(r.expression, i.Sequence, T)], l = Z(s).toString(), l.charCodeAt(0) === 123 || d(l) || b(l) || _(l) || O && o & te && r.expression.type === t.Literal && typeof r.expression.value == "string" ? s = ["(", s, ")" + this.semicolon(o)] : s.push(this.semicolon(o)), s;
},
ImportDeclaration: function(r, o) {
var s, l, d = this;
return r.specifiers.length === 0 ? [
"import",
C,
this.generateExpression(r.source, i.Sequence, T),
this.semicolon(o)
] : (s = [
"import"
], l = 0, r.specifiers[l].type === t.ImportDefaultSpecifier && (s = U(s, [
this.generateExpression(r.specifiers[l], i.Sequence, T)
]), ++l), r.specifiers[l] && (l !== 0 && s.push(","), r.specifiers[l].type === t.ImportNamespaceSpecifier ? s = U(s, [
C,
this.generateExpression(r.specifiers[l], i.Sequence, T)
]) : (s.push(C + "{"), r.specifiers.length - l === 1 ? (s.push(C), s.push(this.generateExpression(r.specifiers[l], i.Sequence, T)), s.push(C + "}" + C)) : (re(function(b) {
var _, k;
for (s.push(E), _ = l, k = r.specifiers.length; _ < k; ++_)
s.push(b), s.push(d.generateExpression(r.specifiers[_], i.Sequence, T)), _ + 1 < k && s.push("," + E);
}), le(Z(s).toString()) || s.push(E), s.push(f + "}" + C)))), s = U(s, [
"from" + C,
this.generateExpression(r.source, i.Sequence, T),
this.semicolon(o)
]), s);
},
VariableDeclarator: function(r, o) {
var s = o & R ? T : ge;
return r.init ? [
this.generateExpression(r.id, i.Assignment, s),
C,
"=",
C,
this.generateExpression(r.init, i.Assignment, s)
] : this.generatePattern(r.id, i.Assignment, s);
},
VariableDeclaration: function(r, o) {
var s, l, d, b, _, k = this;
s = [r.kind], _ = o & R ? $ : st;
function L() {
for (b = r.declarations[0], y.comment && b.leadingComments ? (s.push(`
`), s.push(fe(k.generateStatement(b, _)))) : (s.push(ce()), s.push(k.generateStatement(b, _))), l = 1, d = r.declarations.length; l < d; ++l)
b = r.declarations[l], y.comment && b.leadingComments ? (s.push("," + E), s.push(fe(k.generateStatement(b, _)))) : (s.push("," + C), s.push(k.generateStatement(b, _)));
}
return r.declarations.length > 1 ? re(L) : L(), s.push(this.semicolon(o)), s;
},
ThrowStatement: function(r, o) {
return [U(
"throw",
this.generateExpression(r.argument, i.Sequence, T)
), this.semicolon(o)];
},
TryStatement: function(r, o) {
var s, l, d, b;
if (s = ["try", this.maybeBlock(r.block, $)], s = this.maybeBlockSuffix(r.block, s), r.handlers)
for (l = 0, d = r.handlers.length; l < d; ++l)
s = U(s, this.generateStatement(r.handlers[l], $)), (r.finalizer || l + 1 !== d) && (s = this.maybeBlockSuffix(r.handlers[l].body, s));
else {
for (b = r.guardedHandlers || [], l = 0, d = b.length; l < d; ++l)
s = U(s, this.generateStatement(b[l], $)), (r.finalizer || l + 1 !== d) && (s = this.maybeBlockSuffix(b[l].body, s));
if (r.handler)
if (Array.isArray(r.handler))
for (l = 0, d = r.handler.length; l < d; ++l)
s = U(s, this.generateStatement(r.handler[l], $)), (r.finalizer || l + 1 !== d) && (s = this.maybeBlockSuffix(r.handler[l].body, s));
else
s = U(s, this.generateStatement(r.handler, $)), r.finalizer && (s = this.maybeBlockSuffix(r.handler.body, s));
}
return r.finalizer && (s = U(s, ["finally", this.maybeBlock(r.finalizer, $)])), s;
},
SwitchStatement: function(r, o) {
var s, l, d, b, _, k = this;
if (re(function() {
s = [
"switch" + C + "(",
k.generateExpression(r.discriminant, i.Sequence, T),
")" + C + "{" + E
];
}), r.cases)
for (_ = $, d = 0, b = r.cases.length; d < b; ++d)
d === b - 1 && (_ |= Y), l = fe(this.generateStatement(r.cases[d], _)), s.push(l), le(Z(l).toString()) || s.push(E);
return s.push(fe("}")), s;
},
SwitchCase: function(r, o) {
var s, l, d, b, _, k = this;
return re(function() {
for (r.test ? s = [
U("case", k.generateExpression(r.test, i.Sequence, T)),
":"
] : s = ["default:"], d = 0, b = r.consequent.length, b && r.consequent[0].type === t.BlockStatement && (l = k.maybeBlock(r.consequent[0], $), s.push(l), d = 1), d !== b && !le(Z(s).toString()) && s.push(E), _ = $; d < b; ++d)
d === b - 1 && o & Y && (_ |= Y), l = fe(k.generateStatement(r.consequent[d], _)), s.push(l), d + 1 !== b && !le(Z(l).toString()) && s.push(E);
}), s;
},
IfStatement: function(r, o) {
var s, l, d, b = this;
return re(function() {
s = [
"if" + C + "(",
b.generateExpression(r.test, i.Sequence, T),
")"
];
}), d = o & Y, l = $, d && (l |= Y), r.alternate ? (s.push(this.maybeBlock(r.consequent, $)), s = this.maybeBlockSuffix(r.consequent, s), r.alternate.type === t.IfStatement ? s = U(s, ["else ", this.generateStatement(r.alternate, l)]) : s = U(s, U("else", this.maybeBlock(r.alternate, l)))) : s.push(this.maybeBlock(r.consequent, l)), s;
},
ForStatement: function(r, o) {
var s, l = this;
return re(function() {
s = ["for" + C + "("], r.init ? r.init.type === t.VariableDeclaration ? s.push(l.generateStatement(r.init, st)) : (s.push(l.generateExpression(r.init, i.Sequence, ge)), s.push(";")) : s.push(";"), r.test && (s.push(C), s.push(l.generateExpression(r.test, i.Sequence, T))), s.push(";"), r.update && (s.push(C), s.push(l.generateExpression(r.update, i.Sequence, T))), s.push(")");
}), s.push(this.maybeBlock(r.body, o & Y ? De : $)), s;
},
ForInStatement: function(r, o) {
return this.generateIterationForStatement("in", r, o & Y ? De : $);
},
ForOfStatement: function(r, o) {
return this.generateIterationForStatement("of", r, o & Y ? De : $);
},
LabeledStatement: function(r, o) {
return [r.label.name + ":", this.maybeBlock(r.body, o & Y ? De : $)];
},
Program: function(r, o) {
var s, l, d, b, _;
for (b = r.body.length, s = [P && b > 0 ? `
` : ""], _ = hr, d = 0; d < b; ++d)
!P && d === b - 1 && (_ |= Y), w && (d === 0 && (r.body[0].leadingComments || Ue(r.range[0], r.body[d].range[0], s)), d > 0 && !r.body[d - 1].trailingComments && !r.body[d].leadingComments && Ue(r.body[d - 1].range[1], r.body[d].range[0], s)), l = fe(this.generateStatement(r.body[d], _)), s.push(l), d + 1 < b && !le(Z(l).toString()) && (w && r.body[d + 1].leadingComments || s.push(E)), w && d === b - 1 && (r.body[d].trailingComments || Ue(r.body[d].range[1], r.range[1], s));
return s;
},
FunctionDeclaration: function(r, o) {
return [
Ye(r, !0),
"function",
ot(r) || ce(),
r.id ? me(r.id) : "",
this.generateFunctionBody(r)
];
},
ReturnStatement: function(r, o) {
return r.argument ? [U(
"return",
this.generateExpression(r.argument, i.Sequence, T)
), this.semicolon(o)] : ["return" + this.semicolon(o)];
},
WhileStatement: function(r, o) {
var s, l = this;
return re(function() {
s = [
"while" + C + "(",
l.generateExpression(r.test, i.Sequence, T),
")"
];
}), s.push(this.maybeBlock(r.body, o & Y ? De : $)), s;
},
WithStatement: function(r, o) {
var s, l = this;
return re(function() {
s = [
"with" + C + "(",
l.generateExpression(r.object, i.Sequence, T),
")"
];
}), s.push(this.maybeBlock(r.body, o & Y ? De : $)), s;
}
}, Kt(ue.prototype, ue.Statement), ue.Expression = {
SequenceExpression: function(r, o, s) {
var l, d, b;
for (i.Sequence < o && (s |= R), l = [], d = 0, b = r.expressions.length; d < b; ++d)
l.push(this.generateExpression(r.expressions[d], i.Assignment, s)), d + 1 < b && l.push("," + C);
return se(l, i.Sequence, o);
},
AssignmentExpression: function(r, o, s) {
return this.generateAssignment(r.left, r.right, r.operator, o, s);
},
ArrowFunctionExpression: function(r, o, s) {
return se(this.generateFunctionBody(r), i.ArrowFunction, o);
},
ConditionalExpression: function(r, o, s) {
return i.Conditional < o && (s |= R), se(
[
this.generateExpression(r.test, i.LogicalOR, s),
C + "?" + C,
this.generateExpression(r.consequent, i.Assignment, s),
C + ":" + C,
this.generateExpression(r.alternate, i.Assignment, s)
],
i.Conditional,
o
);
},
LogicalExpression: function(r, o, s) {
return this.BinaryExpression(r, o, s);
},
BinaryExpression: function(r, o, s) {
var l, d, b, _, k, L;
return _ = u[r.operator], d = r.operator === "**" ? i.Postfix : _, b = r.operator === "**" ? _ : _ + 1, _ < o && (s |= R), k = this.generateExpression(r.left, d, s), L = k.toString(), L.charCodeAt(L.length - 1) === 47 && a.code.isIdentifierPartES5(r.operator.charCodeAt(0)) ? l = [k, ce(), r.operator] : l = U(k, r.operator), k = this.generateExpression(r.right, b, s), r.operator === "/" && k.toString().charAt(0) === "/" || r.operator.slice(-1) === "<" && k.toString().slice(0, 3) === "!--" ? (l.push(ce()), l.push(k)) : l = U(l, k), r.operator === "in" && !(s & R) ? ["(", l, ")"] : se(l, _, o);
},
CallExpression: function(r, o, s) {
var l, d, b;
for (l = [this.generateExpression(r.callee, i.Call, ye)], r.optional && l.push("?."), l.push("("), d = 0, b = r.arguments.length; d < b; ++d)
l.push(this.generateExpression(r.arguments[d], i.Assignment, T)), d + 1 < b && l.push("," + C);
return l.push(")"), s & j ? se(l, i.Call, o) : ["(", l, ")"];
},
ChainExpression: function(r, o, s) {
i.OptionalChaining < o && (s |= j);
var l = this.generateExpression(r.expression, i.OptionalChaining, s);
return se(l, i.OptionalChaining, o);
},
NewExpression: function(r, o, s) {
var l, d, b, _, k;
if (d = r.arguments.length, k = s & J && !x && d === 0 ? Qe : Re, l = U(
"new",
this.generateExpression(r.callee, i.New, k)
), !(s & J) || x || d > 0) {
for (l.push("("), b = 0, _ = d; b < _; ++b)
l.push(this.generateExpression(r.arguments[b], i.Assignment, T)), b + 1 < _ && l.push("," + C);
l.push(")");
}
return se(l, i.New, o);
},
MemberExpression: function(r, o, s) {
var l, d;
return l = [this.generateExpression(r.object, i.Call, s & j ? ye : Re)], r.computed ? (r.optional && l.push("?."), l.push("["), l.push(this.generateExpression(r.property, i.Sequence, s & j ? T : Qe)), l.push("]")) : (!r.optional && r.object.type === t.Literal && typeof r.object.value == "number" && (d = Z(l).toString(), d.indexOf(".") < 0 && !/[eExX]/.test(d) && a.code.isDecimalDigit(d.charCodeAt(d.length - 1)) && !(d.length >= 2 && d.charCodeAt(0) === 48) && l.push(" ")), l.push(r.optional ? "?." : "."), l.push(me(r.property))), se(l, i.Member, o);
},
MetaProperty: function(r, o, s) {
var l;
return l = [], l.push(typeof r.meta == "string" ? r.meta : me(r.meta)), l.push("."), l.push(typeof r.property == "string" ? r.property : me(r.property)), se(l, i.Member, o);
},
UnaryExpression: function(r, o, s) {
var l, d, b, _, k;
return d = this.generateExpression(r.argument, i.Unary, T), C === "" ? l = U(r.operator, d) : (l = [r.operator], r.operator.length > 2 ? l = U(l, d) : (_ = Z(l).toString(), k = _.charCodeAt(_.length - 1), b = d.toString().charCodeAt(0), ((k === 43 || k === 45) && k === b || a.code.isIdentifierPartES5(k) && a.code.isIdentifierPartES5(b)) && l.push(ce()), l.push(d))), se(l, i.Unary, o);
},
YieldExpression: function(r, o, s) {
var l;
return r.delegate ? l = "yield*" : l = "yield", r.argument && (l = U(
l,
this.generateExpression(r.argument, i.Yield, T)
)), se(l, i.Yield, o);
},
AwaitExpression: function(r, o, s) {
var l = U(
r.all ? "await*" : "await",
this.generateExpression(r.argument, i.Await, T)
);
return se(l, i.Await, o);
},
UpdateExpression: function(r, o, s) {
return r.prefix ? se(
[
r.operator,
this.generateExpression(r.argument, i.Unary, T)
],
i.Unary,
o
) : se(
[
this.generateExpression(r.argument, i.Postfix, T),
r.operator
],
i.Postfix,
o
);
},
FunctionExpression: function(r, o, s) {
var l = [
Ye(r, !0),
"function"
];
return r.id ? (l.push(ot(r) || ce()), l.push(me(r.id))) : l.push(ot(r) || C), l.push(this.generateFunctionBody(r)), l;
},
ArrayPattern: function(r, o, s) {
return this.ArrayExpression(r, o, s, !0);
},
ArrayExpression: function(r, o, s, l) {
var d, b, _ = this;
return r.elements.length ? (b = l ? !1 : r.elements.length > 1, d = ["[", b ? E : ""], re(function(k) {
var L, K;
for (L = 0, K = r.elements.length; L < K; ++L)
r.elements[L] ? (d.push(b ? k : ""), d.push(_.generateExpression(r.elements[L], i.Assignment, T))) : (b && d.push(k), L + 1 === K && d.push(",")), L + 1 < K && d.push("," + (b ? E : C));
}), b && !le(Z(d).toString()) && d.push(E), d.push(b ? f : ""), d.push("]"), d) : "[]";
},
RestElement: function(r, o, s) {
return "..." + this.generatePattern(r.argument);
},
ClassExpression: function(r, o, s) {
var l, d;
return l = ["class"], r.id && (l = U(l, this.generateExpression(r.id, i.Sequence, T))), r.superClass && (d = U("extends", this.generateExpression(r.superClass, i.Unary, T)), l = U(l, d)), l.push(C), l.push(this.generateStatement(r.body, De)), l;
},
MethodDefinition: function(r, o, s) {
var l, d;
return r.static ? l = ["static" + C] : l = [], r.kind === "get" || r.kind === "set" ? d = [
U(r.kind, this.generatePropertyKey(r.key, r.computed)),
this.generateFunctionBody(r.value)
] : d = [
Zt(r),
this.generatePropertyKey(r.key, r.computed),
this.generateFunctionBody(r.value)
], U(l, d);
},
Property: function(r, o, s) {
return r.kind === "get" || r.kind === "set" ? [
r.kind,
ce(),
this.generatePropertyKey(r.key, r.computed),
this.generateFunctionBody(r.value)
] : r.shorthand ? r.value.type === "AssignmentPattern" ? this.AssignmentPattern(r.value, i.Sequence, T) : this.generatePropertyKey(r.key, r.computed) : r.method ? [
Zt(r),
this.generatePropertyKey(r.key, r.computed),
this.generateFunctionBody(r.value)
] : [
this.generatePropertyKey(r.key, r.computed),
":" + C,
this.generateExpression(r.value, i.Assignment, T)
];
},
ObjectExpression: function(r, o, s) {
var l, d, b, _ = this;
return r.properties.length ? (l = r.properties.length > 1, re(function() {
b = _.generateExpression(r.properties[0], i.Sequence, T);
}), !l && !pr(Z(b).toString()) ? ["{", C, b, C, "}"] : (re(function(k) {
var L, K;
if (d = ["{", E, k, b], l)
for (d.push("," + E), L = 1, K = r.properties.length; L < K; ++L)
d.push(k), d.push(_.generateExpression(r.properties[L], i.Sequence, T)), L + 1 < K && d.push("," + E);
}), le(Z(d).toString()) || d.push(E), d.push(f), d.push("}"), d)) : "{}";
},
AssignmentPattern: function(r, o, s) {
return this.generateAssignment(r.left, r.right, "=", o, s);
},
ObjectPattern: function(r, o, s) {
var l, d, b, _, k, L = this;
if (!r.properties.length)
return "{}";
if (_ = !1, r.properties.length === 1)
k = r.properties[0], k.type === t.Property && k.value.type !== t.Identifier && (_ = !0);
else
for (d = 0, b = r.properties.length; d < b; ++d)
if (k = r.properties[d], k.type === t.Property && !k.shorthand) {
_ = !0;
break;
}
return l = ["{", _ ? E : ""], re(function(K) {
var ae, Oe;
for (ae = 0, Oe = r.properties.length; ae < Oe; ++ae)
l.push(_ ? K : ""), l.push(L.generateExpression(r.properties[ae], i.Sequence, T)), ae + 1 < Oe && l.push("," + (_ ? E : C));
}), _ && !le(Z(l).toString()) && l.push(E), l.push(_ ? f : ""), l.push("}"), l;
},
ThisExpression: function(r, o, s) {
return "this";
},
Super: function(r, o, s) {
return "super";
},
Identifier: function(r, o, s) {
return me(r);
},
ImportDefaultSpecifier: function(r, o, s) {
return me(r.id || r.local);
},
ImportNamespaceSpecifier: function(r, o, s) {
var l = ["*"], d = r.id || r.local;
return d && l.push(C + "as" + ce() + me(d)), l;
},
ImportSpecifier: function(r, o, s) {
var l = r.imported, d = [l.name], b = r.local;
return b && b.name !== l.name && d.push(ce() + "as" + ce() + me(b)), d;
},
ExportSpecifier: function(r, o, s) {
var l = r.local, d = [l.name], b = r.exported;
return b && b.name !== l.name && d.push(ce() + "as" + ce() + me(b)), d;
},
Literal: function(r, o, s) {
var l;
if (r.hasOwnProperty("raw") && F && y.raw)
try {
if (l = F(r.raw).body[0].expression, l.type === t.Literal && l.value === r.value)
return r.raw;
} catch {
}
return r.regex ? "/" + r.regex.pattern + "/" + r.regex.flags : r.value === null ? "null" : typeof r.value == "string" ? Ar(r.value) : typeof r.value == "number" ? dr(r.value) : typeof r.value == "boolean" ? r.value ? "true" : "false" : Dr(r.value);
},
GeneratorExpression: function(r, o, s) {
return this.ComprehensionExpression(r, o, s);
},
ComprehensionExpression: function(r, o, s) {
var l, d, b, _, k = this;
return l = r.type === t.GeneratorExpression ? ["("] : ["["], y.moz.comprehensionExpressionStartsWithAssignment && (_ = this.generateExpression(r.body, i.Assignment, T), l.push(_)), r.blocks && re(function() {
for (d = 0, b = r.blocks.length; d < b; ++d)
_ = k.generateExpression(r.blocks[d], i.Sequence, T), d > 0 || y.moz.comprehensionExpressionStartsWithAssignment ? l = U(l, _) : l.push(_);
}), r.filter && (l = U(l, "if" + C), _ = this.generateExpression(r.filter, i.Sequence, T), l = U(l, ["(", _, ")"])), y.moz.comprehensionExpressionStartsWithAssignment || (_ = this.generateExpression(r.body, i.Assignment, T), l = U(l, _)), l.push(r.type === t.GeneratorExpression ? ")" : "]"), l;
},
ComprehensionBlock: function(r, o, s) {
var l;
return r.left.type === t.VariableDeclaration ? l = [
r.left.kind,
ce(),
this.generateStatement(r.left.declarations[0], st)
] : l = this.generateExpression(r.left, i.Call, T), l = U(l, r.of ? "of" : "in"), l = U(l, this.generateExpression(r.right, i.Sequence, T)), ["for" + C + "(", l, ")"];
},
SpreadElement: function(r, o, s) {
return [
"...",
this.generateExpression(r.argument, i.Assignment, T)
];
},
TaggedTemplateExpression: function(r, o, s) {
var l = ye;
s & j || (l = Re);
var d = [
this.generateExpression(r.tag, i.Call, l),
this.generateExpression(r.quasi, i.Primary, Ke)
];
return se(d, i.TaggedTemplate, o);
},
TemplateElement: function(r, o, s) {
return r.value.raw;
},
TemplateLiteral: function(r, o, s) {
var l, d, b;
for (l = ["`"], d = 0, b = r.quasis.length; d < b; ++d)
l.push(this.generateExpression(r.quasis[d], i.Primary, T)), d + 1 < b && (l.push("${" + C), l.push(this.generateExpression(r.expressions[d], i.Sequence, T)), l.push(C + "}"));
return l.push("`"), l;
},
ModuleSpecifier: function(r, o, s) {
return this.Literal(r, o, s);
},
ImportExpression: function(r, o, s) {
return se([
"import(",
this.generateExpression(r.source, i.Assignment, T),
")"
], i.Call, o);
}
}, Kt(ue.prototype, ue.Expression), ue.prototype.generateExpression = function(r, o, s) {
var l, d;
return d = r.type || t.Property, y.verbatim && r.hasOwnProperty(y.verbatim) ? vr(r, o) : (l = this[d](r, o, s), y.comment && (l = Xt(r, l)), Z(l, r));
}, ue.prototype.generateStatement = function(r, o) {
var s, l;
return s = this[r.type](r, o), y.comment && (s = Xt(r, s)), l = Z(s).toString(), r.type === t.Program && !P && E === "" && l.charAt(l.length - 1) === `
` && (s = S ? Z(s).replaceRight(/\s+$/, "") : l.replace(/\s+$/, "")), Z(s, r);
};
function xr(r) {
var o;
if (o = new ue(), q(r))
return o.generateStatement(r, $);
if (G(r))
return o.generateExpression(r, i.Sequence, T);
throw new Error("Unknown node type: " + r.type);
}
function yr(r, o) {
var s = Ht(), l, d;
return o != null ? (typeof o.indent == "string" && (s.format.indent.style = o.indent), typeof o.base == "number" && (s.format.indent.base = o.base), o = at(s, o), p = o.format.indent.style, typeof o.base == "string" ? f = o.base : f = Me(p, o.format.indent.base)) : (o = s, p = o.format.indent.style, f = Me(p, o.format.indent.base)), D = o.format.json, m = o.format.renumber, v = D ? !1 : o.format.hexadecimal, g = D ? "double" : o.format.quotes, A = o.format.escapeless, E = o.format.newline, C = o.format.space, o.format.compact && (E = C = p = f = ""), x = o.format.parentheses, I = o.format.semicolons, P = o.format.safeConcatenation, O = o.directive, F = D ? null : o.parse, S = o.sourceMap, B = o.sourceCode, w = o.format.preserveBlankLines && B !== null, y = o, S && (e.browser ? n = tu.sourceMap.SourceNode : n = ou().SourceNode), l = xr(r), S ? (d = l.toStringWithSourceMap({
file: o.file,
sourceRoot: o.sourceMapRoot
}), o.sourceContent && d.map.setSourceContent(
o.sourceMap,
o.sourceContent
), o.sourceMapWithCode ? d : d.map.toString()) : (d = { code: l.toString(), map: null }, o.sourceMapWithCode ? d : d.code);
}
W = {
indent: {
style: "",
base: 0
},
renumber: !0,
hexadecimal: !0,
quotes: "auto",
escapeless: !0,
compact: !0,
parentheses: !1,
semicolons: !1
}, N = Ht().format, e.version = yu.version, e.generate = yr, e.attachComments = c.attachComments, e.Precedence = at({}, i), e.browser = !1, e.FORMAT_MINIFY = W, e.FORMAT_DEFAULTS = N;
})();
})(bi);
var bu = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239], Pi = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938], Su = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F", Li = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC", wt = {
3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
5: "class enum extends super const export import",
6: "enum",
strict: "implements interface let package private protected public static yield",
strictBind: "eval arguments"
}, kt = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this", Bu = {
5: kt,
"5module": kt + " export import",
6: kt + " const class extends export import super"
}, _u = /^in(stanceof)?$/, wu = new RegExp("[" + Li + "]"), ku = new RegExp("[" + Li + Su + "]");
function Nt(e, t) {
for (var i = 65536, u = 0; u < t.length; u += 2) {
if (i += t[u], i > e)
return !1;
if (i += t[u + 1], i >= e)
return !0;
}
}
function we(e, t) {
return e < 65 ? e === 36 : e < 91 ? !0 : e < 97 ? e === 95 : e < 123 ? !0 : e <= 65535 ? e >= 170 && wu.test(String.fromCharCode(e)) : t === !1 ? !1 : Nt(e, Pi);
}
function We(e, t) {
return e < 48 ? e === 36 : e < 58 ? !0 : e < 65 ? !1 : e < 91 ? !0 : e < 97 ? e === 95 : e < 123 ? !0 : e <= 65535 ? e >= 170 && ku.test(String.fromCharCode(e)) : t === !1 ? !1 : Nt(e, Pi) || Nt(e, bu);
}
var X = function(t, i) {
i === void 0 && (i = {}), this.label = t, this.keyword = i.keyword, this.beforeExpr = !!i.beforeExpr, this.startsExpr = !!i.startsExpr, this.isLoop = !!i.isLoop, this.isAssign = !!i.isAssign, this.prefix = !!i.prefix, this.postfix = !!i.postfix, this.binop = i.binop || null, this.updateContext = null;
};
function Ce(e, t) {
return new X(e, { beforeExpr: !0, binop: t });
}
var Ae = { beforeExpr: !0 }, de = { startsExpr: !0 }, Ot = {};
function Q(e, t) {
return t === void 0 && (t = {}), t.keyword = e, Ot[e] = new X(e, t);
}
var h = {
num: new X("num", de),
regexp: new X("regexp", de),
string: new X("string", de),
name: new X("name", de),
privateId: new X("privateId", de),
eof: new X("eof"),
bracketL: new X("[", { beforeExpr: !0, startsExpr: !0 }),
bracketR: new X("]"),
braceL: new X("{", { beforeExpr: !0, startsExpr: !0 }),
braceR: new X("}"),
parenL: new X("(", { beforeExpr: !0, startsExpr: !0 }),
parenR: new X(")"),
comma: new X(",", Ae),
semi: new X(";", Ae),
colon: new X(":", Ae),
dot: new X("."),
question: new X("?", Ae),
questionDot: new X("?."),
arrow: new X("=>", Ae),
template: new X("template"),
invalidTemplate: new X("invalidTemplate"),
ellipsis: new X("...", Ae),
backQuote: new X("`", de),
dollarBraceL: new X("${", { beforeExpr: !0, startsExpr: !0 }),
eq: new X("=", { beforeExpr: !0, isAssign: !0 }),
assign: new X("_=", { beforeExpr: !0, isAssign: !0 }),
incDec: new X("++/--", { prefix: !0, postfix: !0, startsExpr: !0 }),
prefix: new X("!/~", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
logicalOR: Ce("||", 1),
logicalAND: Ce("&&", 2),
bitwiseOR: Ce("|", 3),
bitwiseXOR: Ce("^", 4),
bitwiseAND: Ce("&", 5),
equality: Ce("==/!=/===/!==", 6),
relational: Ce("</>/<=/>=", 7),
bitShift: Ce("<</>>/>>>", 8),
plusMin: new X("+/-", { beforeExpr: !0, binop: 9, prefix: !0, startsExpr: !0 }),
modulo: Ce("%", 10),
star: Ce("*", 10),
slash: Ce("/", 10),
starstar: new X("**", { beforeExpr: !0 }),
coalesce: Ce("??", 1),
_break: Q("break"),
_case: Q("case", Ae),
_catch: Q("catch"),
_continue: Q("continue"),
_debugger: Q("debugger"),
_default: Q("default", Ae),
_do: Q("do", { isLoop: !0, beforeExpr: !0 }),
_else: Q("else", Ae),
_finally: Q("finally"),
_for: Q("for", { isLoop: !0 }),
_function: Q("function", de),
_if: Q("if"),
_return: Q("return", Ae),
_switch: Q("switch"),
_throw: Q("throw", Ae),
_try: Q("try"),
_var: Q("var"),
_const: Q("const"),
_while: Q("while", { isLoop: !0 }),
_with: Q("with"),
_new: Q("new", { beforeExpr: !0, startsExpr: !0 }),
_this: Q("this", de),
_super: Q("super", de),
_class: Q("class", de),
_extends: Q("extends", Ae),
_export: Q("export"),
_import: Q("import", de),
_null: Q("null", de),
_true: Q("true", de),
_false: Q("false", de),
_in: Q("in", { beforeExpr: !0, binop: 7 }),
_instanceof: Q("instanceof", { beforeExpr: !0, binop: 7 }),
_typeof: Q("typeof", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
_void: Q("void", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
_delete: Q("delete", { beforeExpr: !0, prefix: !0, startsExpr: !0 })
}, Fe = /\r\n?|\n|\u2028|\u2029/, Iu = new RegExp(Fe.source, "g");
function Ge(e) {
return e === 10 || e === 13 || e === 8232 || e === 8233;
}
function Ni(e, t, i) {
i === void 0 && (i = e.length);
for (var u = t; u < i; u++) {
var n = e.charCodeAt(u);
if (Ge(n))
return u < i - 1 && n === 13 && e.charCodeAt(u + 1) === 10 ? u + 2 : u + 1;
}
return -1;
}
var Ti = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/, Ee = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, Ri = Object.prototype, Pu = Ri.hasOwnProperty, Lu = Ri.toString, rt = Object.hasOwn || function(e, t) {
return Pu.call(e, t);
}, di = Array.isArray || function(e) {
return Lu.call(e) === "[object Array]";
};
function qe(e) {
return new RegExp("^(?:" + e.replace(/ /g, "|") + ")$");
}
function Ne(e) {
return e <= 65535 ? String.fromCharCode(e) : (e -= 65536, String.fromCharCode((e >> 10) + 55296, (e & 1023) + 56320));
}
var Nu = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/, et = function(t, i) {
this.line = t, this.column = i;
};
et.prototype.offset = function(t) {
return new et(this.line, this.column + t);
};
var Ct = function(t, i, u) {
this.start = i, this.end = u, t.sourceFile !== null && (this.source = t.sourceFile);
};
function Mi(e, t) {
for (var i = 1, u = 0; ; ) {
var n = Ni(e, u, t);
if (n < 0)
return new et(i, t - u);
++i, u = n;
}
}
var Tt = {
ecmaVersion: null,
sourceType: "script",
onInsertedSemicolon: null,
onTrailingComma: null,
allowReserved: null,
allowReturnOutsideFunction: !1,
allowImportExportEverywhere: !1,
allowAwaitOutsideFunction: null,
allowSuperOutsideMethod: null,
allowHashBang: !1,
locations: !1,
onToken: null,
onComment: null,
ranges: !1,
program: null,
sourceFile: null,
directSourceFile: null,
preserveParens: !1
}, Di = !1;
function Tu(e) {
var t = {};
for (var i in Tt)
t[i] = e && rt(e, i) ? e[i] : Tt[i];
if (t.ecmaVersion === "latest" ? t.ecmaVersion = 1e8 : t.ecmaVersion == null ? (!Di && typeof console == "object" && console.warn && (Di = !0, console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required.
Defaulting to 2020, but this will stop working in the future.`)), t.ecmaVersion = 11) : t.ecmaVersion >= 2015 && (t.ecmaVersion -= 2009), t.allowReserved == null && (t.allowReserved = t.ecmaVersion < 5), e.allowHashBang == null && (t.allowHashBang = t.ecmaVersion >= 14), di(t.onToken)) {
var u = t.onToken;
t.onToken = function(n) {
return u.push(n);
};
}
return di(t.onComment) && (t.onComment = Ru(t, t.onComment)), t;
}
function Ru(e, t) {
return function(i, u, n, c, a, f) {
var p = {
type: i ? "Block" : "Line",
value: u,
start: n,
end: c
};
e.locations && (p.loc = new Ct(this, a, f)), e.ranges && (p.range = [n, c]), t.push(p);
};
}
var tt = 1, ze = 2, Vt = 4, Oi = 8, Vi = 16, qi = 32, qt = 64, Ui = 128, ut = 256, Ut = tt | ze | ut;
function jt(e, t) {
return ze | (e ? Vt : 0) | (t ? Oi : 0);
}
var Dt = 0, Wt = 1, _e = 2, ji = 3, Wi = 4, Gi = 5, oe = function(t, i, u) {
this.options = t = Tu(t), this.sourceFile = t.sourceFile, this.keywords = qe(Bu[t.ecmaVersion >= 6 ? 6 : t.sourceType === "module" ? "5module" : 5]);
var n = "";
t.allowReserved !== !0 && (n = wt[t.ecmaVersion >= 6 ? 6 : t.ecmaVersion === 5 ? 5 : 3], t.sourceType === "module" && (n += " await")), this.reservedWords = qe(n);
var c = (n ? n + " " : "") + wt.strict;
this.reservedWordsStrict = qe(c), this.reservedWordsStrictBind = qe(c + " " + wt.strictBind), this.input = String(i), this.containsEsc = !1, u ? (this.pos = u, this.lineStart = this.input.lastIndexOf(`
`, u - 1) + 1, this.curLine = this.input.slice(0, this.lineStart).split(Fe).length) : (this.pos = this.lineStart = 0, this.curLine = 1), this.type = h.eof, this.value = null, this.start = this.end = this.pos, this.startLoc = this.endLoc = this.curPosition(), this.lastTokEndLoc = this.lastTokStartLoc = null, this.lastTokStart = this.lastTokEnd = this.pos, this.context = this.initialContext(), this.exprAllowed = !0, this.inModule = t.sourceType === "module", this.strict = this.inModule || this.strictDirective(this.pos), this.potentialArrowAt = -1, this.potentialArrowInForAwait = !1, this.yieldPos = this.awaitPos = this.awaitIdentPos = 0, this.labels = [], this.undefinedExports = /* @__PURE__ */ Object.create(null), this.pos === 0 && t.allowHashBang && this.input.slice(0, 2) === "#!" && this.skipLineComment(2), this.scopeStack = [], this.enterScope(tt), this.regexpState = null, this.privateNameStack = [];
}, Se = { inFunction: { configurable: !0 }, inGenerator: { configurable: !0 }, inAsync: { configurable: !0 }, canAwait: { configurable: !0 }, allowSuper: { configurable: !0 }, allowDirectSuper: { configurable: !0 }, treatFunctionsAsVar: { configurable: !0 }, allowNewDotTarget: { configurable: !0 }, inClassStaticBlock: { configurable: !0 } };
oe.prototype.parse = function() {
var t = this.options.program || this.startNode();
return this.nextToken(), this.parseTopLevel(t);
};
Se.inFunction.get = function() {
return (this.currentVarScope().flags & ze) > 0;
};
Se.inGenerator.get = function() {
return (this.currentVarScope().flags & Oi) > 0 && !this.currentVarScope().inClassFieldInit;
};
Se.inAsync.get = function() {
return (this.currentVarScope().flags & Vt) > 0 && !this.currentVarScope().inClassFieldInit;
};
Se.canAwait.get = function() {
for (var e = this.scopeStack.length - 1; e >= 0; e--) {
var t = this.scopeStack[e];
if (t.inClassFieldInit || t.flags & ut)
return !1;
if (t.flags & ze)
return (t.flags & Vt) > 0;
}
return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction;
};
Se.allowSuper.get = function() {
var e = this.currentThisScope(), t = e.flags, i = e.inClassFieldInit;
return (t & qt) > 0 || i || this.options.allowSuperOutsideMethod;
};
Se.allowDirectSuper.get = function() {
return (this.currentThisScope().flags & Ui) > 0;
};
Se.treatFunctionsAsVar.get = function() {
return this.treatFunctionsAsVarInScope(this.currentScope());
};
Se.allowNewDotTarget.get = function() {
var e = this.currentThisScope(), t = e.flags, i = e.inClassFieldInit;
return (t & (ze | ut)) > 0 || i;
};
Se.inClassStaticBlock.get = function() {
return (this.currentVarScope().flags & ut) > 0;
};
oe.extend = function() {
for (var t = [], i = arguments.length; i--; )
t[i] = arguments[i];
for (var u = this, n = 0; n < t.length; n++)
u = t[n](u);
return u;
};
oe.parse = function(t, i) {
return new this(i, t).parse();
};
oe.parseExpressionAt = function(t, i, u) {
var n = new this(u, t, i);
return n.nextToken(), n.parseExpression();
};
oe.tokenizer = function(t, i) {
return new this(i, t);
};
Object.defineProperties(oe.prototype, Se);
var pe = oe.prototype, Mu = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
pe.strictDirective = function(e) {
if (this.options.ecmaVersion < 5)
return !1;
for (; ; ) {
Ee.lastIndex = e, e += Ee.exec(this.input)[0].length;
var t = Mu.exec(this.input.slice(e));
if (!t)
return !1;
if ((t[1] || t[2]) === "use strict") {
Ee.lastIndex = e + t[0].length;
var i = Ee.exec(this.input), u = i.index + i[0].length, n = this.input.charAt(u);
return n === ";" || n === "}" || Fe.test(i[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(n) || n === "!" && this.input.charAt(u + 1) === "=");
}
e += t[0].length, Ee.lastIndex = e, e += Ee.exec(this.input)[0].length, this.input[e] === ";" && e++;
}
};
pe.eat = function(e) {
return this.type === e ? (this.next(), !0) : !1;
};
pe.isContextual = function(e) {
return this.type === h.name && this.value === e && !this.containsEsc;
};
pe.eatContextual = function(e) {
return this.isContextual(e) ? (this.next(), !0) : !1;
};
pe.expectContextual = function(e) {
this.eatContextual(e) || this.unexpected();
};
pe.canInsertSemicolon = function() {
return this.type === h.eof || this.type === h.braceR || Fe.test(this.input.slice(this.lastTokEnd, this.start));
};
pe.insertSemicolon = function() {
if (this.canInsertSemicolon())
return this.options.onInsertedSemicolon && this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc), !0;
};
pe.semicolon = function() {
!this.eat(h.semi) && !this.insertSemicolon() && this.unexpected();
};
pe.afterTrailingComma = function(e, t) {
if (this.type === e)
return this.options.onTrailingComma && this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc), t || this.next(), !0;
};
pe.expect = function(e) {
this.eat(e) || this.unexpected();
};
pe.unexpected = function(e) {
this.raise(e ?? this.start, "Unexpected token");
};
var At = function() {
this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1;
};
pe.checkPatternErrors = function(e, t) {
if (!!e) {
e.trailingComma > -1 && this.raiseRecoverable(e.trailingComma, "Comma is not permitted after the rest element");
var i = t ? e.parenthesizedAssign : e.parenthesizedBind;
i > -1 && this.raiseRecoverable(i, t ? "Assigning to rvalue" : "Parenthesized pattern");
}
};
pe.checkExpressionErrors = function(e, t) {
if (!e)
return !1;
var i = e.shorthandAssign, u = e.doubleProto;
if (!t)
return i >= 0 || u >= 0;
i >= 0 && this.raise(i, "Shorthand property assignments are valid only in destructuring patterns"), u >= 0 && this.raiseRecoverable(u, "Redefinition of __proto__ property");
};
pe.checkYieldAwaitInDefaultParams = function() {
this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos) && this.raise(this.yieldPos, "Yield expression cannot be a default value"), this.awaitPos && this.raise(this.awaitPos, "Await expression cannot be a default value");
};
pe.isSimpleAssignTarget = function(e) {
return e.type === "ParenthesizedExpression" ? this.isSimpleAssignTarget(e.expression) : e.type === "Identifier" || e.type === "MemberExpression";
};
var V = oe.prototype;
V.parseTopLevel = function(e) {
var t = /* @__PURE__ */ Object.create(null);
for (e.body || (e.body = []); this.type !== h.eof; ) {
var i = this.parseStatement(null, !0, t);
e.body.push(i);
}
if (this.inModule)
for (var u = 0, n = Object.keys(this.undefinedExports); u < n.length; u += 1) {
var c = n[u];
this.raiseRecoverable(this.undefinedExports[c].start, "Export '" + c + "' is not defined");
}
return this.adaptDirectivePrologue(e.body), this.next(), e.sourceType = this.options.sourceType, this.finishNode(e, "Program");
};
var Gt = { kind: "loop" }, Ou = { kind: "switch" };
V.isLet = function(e) {
if (this.options.ecmaVersion < 6 || !this.isContextual("let"))
return !1;
Ee.lastIndex = this.pos;
var t = Ee.exec(this.input), i = this.pos + t[0].length, u = this.input.charCodeAt(i);
if (u === 91 || u === 92 || u > 55295 && u < 56320)
return !0;
if (e)
return !1;
if (u === 123)
return !0;
if (we(u, !0)) {
for (var n = i + 1; We(u = this.input.charCodeAt(n), !0); )
++n;
if (u === 92 || u > 55295 && u < 56320)
return !0;
var c = this.input.slice(i, n);
if (!_u.test(c))
return !0;
}
return !1;
};
V.isAsyncFunction = function() {
if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
return !1;
Ee.lastIndex = this.pos;
var e = Ee.exec(this.input), t = this.pos + e[0].length, i;
return !Fe.test(this.input.slice(this.pos, t)) && this.input.slice(t, t + 8) === "function" && (t + 8 === this.input.length || !(We(i = this.input.charCodeAt(t + 8)) || i > 55295 && i < 56320));
};
V.parseStatement = function(e, t, i) {
var u = this.type, n = this.startNode(), c;
switch (this.isLet(e) && (u = h._var, c = "let"), u) {
case h._break:
case h._continue:
return this.parseBreakContinueStatement(n, u.keyword);
case h._debugger:
return this.parseDebuggerStatement(n);
case h._do:
return this.parseDoStatement(n);
case h._for:
return this.parseForStatement(n);
case h._function:
return e && (this.strict || e !== "if" && e !== "label") && this.options.ecmaVersion >= 6 && this.unexpected(), this.parseFunctionStatement(n, !1, !e);
case h._class:
return e && this.unexpected(), this.parseClass(n, !0);
case h._if:
return this.parseIfStatement(n);
case h._return:
return this.parseReturnStatement(n);
case h._switch:
return this.parseSwitchStatement(n);
case h._throw:
return this.parseThrowStatement(n);
case h._try:
return this.parseTryStatement(n);
case h._const:
case h._var:
return c = c || this.value, e && c !== "var" && this.unexpected(), this.parseVarStatement(n, c);
case h._while:
return this.parseWhileStatement(n);
case h._with:
return this.parseWithStatement(n);
case h.braceL:
return this.parseBlock(!0, n);
case h.semi:
return this.parseEmptyStatement(n);
case h._export:
case h._import:
if (this.options.ecmaVersion > 10 && u === h._import) {
Ee.lastIndex = this.pos;
var a = Ee.exec(this.input), f = this.pos + a[0].length, p = this.input.charCodeAt(f);
if (p === 40 || p === 46)
return this.parseExpressionStatement(n, this.parseExpression());
}
return this.options.allowImportExportEverywhere || (t || this.raise(this.start, "'import' and 'export' may only appear at the top level"), this.inModule || this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'")), u === h._import ? this.parseImport(n) : this.parseExport(n, i);
default:
if (this.isAsyncFunction())
return e && this.unexpected(), this.next(), this.parseFunctionStatement(n, !0, !e);
var D = this.value, m = this.parseExpression();
return u === h.name && m.type === "Identifier" && this.eat(h.colon) ? this.parseLabeledStatement(n, D, m, e) : this.parseExpressionStatement(n, m);
}
};
V.parseBreakContinueStatement = function(e, t) {
var i = t === "break";
this.next(), this.eat(h.semi) || this.insertSemicolon() ? e.label = null : this.type !== h.name ? this.unexpected() : (e.label = this.parseIdent(), this.semicolon());
for (var u = 0; u < this.labels.length; ++u) {
var n = this.labels[u];
if ((e.label == null || n.name === e.label.name) && (n.kind != null && (i || n.kind === "loop") || e.label && i))
break;
}
return u === this.labels.length && this.raise(e.start, "Unsyntactic " + t), this.finishNode(e, i ? "BreakStatement" : "ContinueStatement");
};
V.parseDebuggerStatement = function(e) {
return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
};
V.parseDoStatement = function(e) {
return this.next(), this.labels.push(Gt), e.body = this.parseStatement("do"), this.labels.pop(), this.expect(h._while), e.test = this.parseParenExpression(), this.options.ecmaVersion >= 6 ? this.eat(h.semi) : this.semicolon(), this.finishNode(e, "DoWhileStatement");
};
V.parseForStatement = function(e) {
this.next();
var t = this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await") ? this.lastTokStart : -1;
if (this.labels.push(Gt), this.enterScope(0), this.expect(h.parenL), this.type === h.semi)
return t > -1 && this.unexpected(t), this.parseFor(e, null);
var i = this.isLet();
if (this.type === h._var || this.type === h._const || i) {
var u = this.startNode(), n = i ? "let" : this.value;
return this.next(), this.parseVar(u, !0, n), this.finishNode(u, "VariableDeclaration"), (this.type === h._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && u.declarations.length === 1 ? (this.options.ecmaVersion >= 9 && (this.type === h._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.parseForIn(e, u)) : (t > -1 && this.unexpected(t), this.parseFor(e, u));
}
var c = this.isContextual("let"), a = !1, f = new At(), p = this.parseExpression(t > -1 ? "await" : !0, f);
return this.type === h._in || (a = this.options.ecmaVersion >= 6 && this.isContextual("of")) ? (this.options.ecmaVersion >= 9 && (this.type === h._in ? t > -1 && this.unexpected(t) : e.await = t > -1), c && a && this.raise(p.start, "The left-hand side of a for-of loop may not start with 'let'."), this.toAssignable(p, !1, f), this.checkLValPattern(p), this.parseForIn(e, p)) : (this.checkExpressionErrors(f, !0), t > -1 && this.unexpected(t), this.parseFor(e, p));
};
V.parseFunctionStatement = function(e, t, i) {
return this.next(), this.parseFunction(e, Je | (i ? 0 : Rt), !1, t);
};
V.parseIfStatement = function(e) {
return this.next(), e.test = this.parseParenExpression(), e.consequent = this.parseStatement("if"), e.alternate = this.eat(h._else) ? this.parseStatement("if") : null, this.finishNode(e, "IfStatement");
};
V.parseReturnStatement = function(e) {
return !this.inFunction && !this.options.allowReturnOutsideFunction && this.raise(this.start, "'return' outside of function"), this.next(), this.eat(h.semi) || this.insertSemicolon() ? e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
};
V.parseSwitchStatement = function(e) {
this.next(), e.discriminant = this.parseParenExpression(), e.cases = [], this.expect(h.braceL), this.labels.push(Ou), this.enterScope(0);
for (var t, i = !1; this.type !== h.braceR; )
if (this.type === h._case || this.type === h._default) {
var u = this.type === h._case;
t && this.finishNode(t, "SwitchCase"), e.cases.push(t = this.startNode()), t.consequent = [], this.next(), u ? t.test = this.parseExpression() : (i && this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"), i = !0, t.test = null), this.expect(h.colon);
} else
t || this.unexpected(), t.consequent.push(this.parseStatement(null));
return this.exitScope(), t && this.finishNode(t, "SwitchCase"), this.next(), this.labels.pop(), this.finishNode(e, "SwitchStatement");
};
V.parseThrowStatement = function(e) {
return this.next(), Fe.test(this.input.slice(this.lastTokEnd, this.start)) && this.raise(this.lastTokEnd, "Illegal newline after throw"), e.argument = this.parseExpression(), this.semicolon(), this.finishNode(e, "ThrowStatement");
};
var Vu = [];
V.parseTryStatement = function(e) {
if (this.next(), e.block = this.parseBlock(), e.handler = null, this.type === h._catch) {
var t = this.startNode();
if (this.next(), this.eat(h.parenL)) {
t.param = this.parseBindingAtom();
var i = t.param.type === "Identifier";
this.enterScope(i ? qi : 0), this.checkLValPattern(t.param, i ? Wi : _e), this.expect(h.parenR);
} else
this.options.ecmaVersion < 10 && this.unexpected(), t.param = null, this.enterScope(0);
t.body = this.parseBlock(!1), this.exitScope(), e.handler = this.finishNode(t, "CatchClause");
}
return e.finalizer = this.eat(h._finally) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(e.start, "Missing catch or finally clause"), this.finishNode(e, "TryStatement");
};
V.parseVarStatement = function(e, t) {
return this.next(), this.parseVar(e, !1, t), this.semicolon(), this.finishNode(e, "VariableDeclaration");
};
V.parseWhileStatement = function(e) {
return this.next(), e.test = this.parseParenExpression(), this.labels.push(Gt), e.body = this.parseStatement("while"), this.labels.pop(), this.finishNode(e, "WhileStatement");
};
V.parseWithStatement = function(e) {
return this.strict && this.raise(this.start, "'with' in strict mode"), this.next(), e.object = this.parseParenExpression(), e.body = this.parseStatement("with"), this.finishNode(e, "WithStatement");
};
V.parseEmptyStatement = function(e) {
return this.next(), this.finishNode(e, "EmptyStatement");
};
V.parseLabeledStatement = function(e, t, i, u) {
for (var n = 0, c = this.labels; n < c.length; n += 1) {
var a = c[n];
a.name === t && this.raise(i.start, "Label '" + t + "' is already declared");
}
for (var f = this.type.isLoop ? "loop" : this.type === h._switch ? "switch" : null, p = this.labels.length - 1; p >= 0; p--) {
var D = this.labels[p];
if (D.statementStart === e.start)
D.statementStart = this.start, D.kind = f;
else
break;
}
return this.labels.push({ name: t, kind: f, statementStart: this.start }), e.body = this.parseStatement(u ? u.indexOf("label") === -1 ? u + "label" : u : "label"), this.labels.pop(), e.label = i, this.finishNode(e, "LabeledStatement");
};
V.parseExpressionStatement = function(e, t) {
return e.expression = t, this.semicolon(), this.finishNode(e, "ExpressionStatement");
};
V.parseBlock = function(e, t, i) {
for (e === void 0 && (e = !0), t === void 0 && (t = this.startNode()), t.body = [], this.expect(h.braceL), e && this.enterScope(0); this.type !== h.braceR; ) {
var u = this.parseStatement(null);
t.body.push(u);
}
return i && (this.strict = !1), this.next(), e && this.exitScope(), this.finishNode(t, "BlockStatement");
};
V.parseFor = function(e, t) {
return e.init = t, this.expect(h.semi), e.test = this.type === h.semi ? null : this.parseExpression(), this.expect(h.semi), e.update = this.type === h.parenR ? null : this.parseExpression(), this.expect(h.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, "ForStatement");
};
V.parseForIn = function(e, t) {
var i = this.type === h._in;
return this.next(), t.type === "VariableDeclaration" && t.declarations[0].init != null && (!i || this.options.ecmaVersion < 8 || this.strict || t.kind !== "var" || t.declarations[0].id.type !== "Identifier") && this.raise(
t.start,
(i ? "for-in" : "for-of") + " loop variable declaration may not have an initializer"
), e.left = t, e.right = i ? this.parseExpression() : this.parseMaybeAssign(), this.expect(h.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement");
};
V.parseVar = function(e, t, i) {
for (e.declarations = [], e.kind = i; ; ) {
var u = this.startNode();
if (this.parseVarId(u, i), this.eat(h.eq) ? u.init = this.parseMaybeAssign(t) : i === "const" && !(this.type === h._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) ? this.unexpected() : u.id.type !== "Identifier" && !(t && (this.type === h._in || this.isContextual("of"))) ? this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value") : u.init = null, e.declarations.push(this.finishNode(u, "VariableDeclarator")), !this.eat(h.comma))
break;
}
return e;
};
V.parseVarId = function(e, t) {
e.id = this.parseBindingAtom(), this.checkLValPattern(e.id, t === "var" ? Wt : _e, !1);
};
var Je = 1, Rt = 2, zi = 4;
V.parseFunction = function(e, t, i, u, n) {
this.initFunction(e), (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !u) && (this.type === h.star && t & Rt && this.unexpected(), e.generator = this.eat(h.star)), this.options.ecmaVersion >= 8 && (e.async = !!u), t & Je && (e.id = t & zi && this.type !== h.name ? null : this.parseIdent(), e.id && !(t & Rt) && this.checkLValSimple(e.id, this.strict || e.generator || e.async ? this.treatFunctionsAsVar ? Wt : _e : ji));
var c = this.yieldPos, a = this.awaitPos, f = this.awaitIdentPos;
return this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(jt(e.async, e.generator)), t & Je || (e.id = this.type === h.name ? this.parseIdent() : null), this.parseFunctionParams(e), this.parseFunctionBody(e, i, !1, n), this.yieldPos = c, this.awaitPos = a, this.awaitIdentPos = f, this.finishNode(e, t & Je ? "FunctionDeclaration" : "FunctionExpression");
};
V.parseFunctionParams = function(e) {
this.expect(h.parenL), e.params = this.parseBindingList(h.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams();
};
V.parseClass = function(e, t) {
this.next();
var i = this.strict;
this.strict = !0, this.parseClassId(e, t), this.parseClassSuper(e);
var u = this.enterClassBody(), n = this.startNode(), c = !1;
for (n.body = [], this.expect(h.braceL); this.type !== h.braceR; ) {
var a = this.parseClassElement(e.superClass !== null);
a && (n.body.push(a), a.type === "MethodDefinition" && a.kind === "constructor" ? (c && this.raise(a.start, "Duplicate constructor in the same class"), c = !0) : a.key && a.key.type === "PrivateIdentifier" && qu(u, a) && this.raiseRecoverable(a.key.start, "Identifier '#" + a.key.name + "' has already been declared"));
}
return this.strict = i, this.next(), e.body = this.finishNode(n, "ClassBody"), this.exitClassBody(), this.finishNode(e, t ? "ClassDeclaration" : "ClassExpression");
};
V.parseClassElement = function(e) {
if (this.eat(h.semi))
return null;
var t = this.options.ecmaVersion, i = this.startNode(), u = "", n = !1, c = !1, a = "method", f = !1;
if (this.eatContextual("static")) {
if (t >= 13 && this.eat(h.braceL))
return this.parseClassStaticBlock(i), i;
this.isClassElementNameStart() || this.type === h.star ? f = !0 : u = "static";
}
if (i.static = f, !u && t >= 8 && this.eatContextual("async") && ((this.isClassElementNameStart() || this.type === h.star) && !this.canInsertSemicolon() ? c = !0 : u = "async"), !u && (t >= 9 || !c) && this.eat(h.star) && (n = !0), !u && !c && !n) {
var p = this.value;
(this.eatContextual("get") || this.eatContextual("set")) && (this.isClassElementNameStart() ? a = p : u = p);
}
if (u ? (i.computed = !1, i.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc), i.key.name = u, this.finishNode(i.key, "Identifier")) : this.parseClassElementName(i), t < 13 || this.type === h.parenL || a !== "method" || n || c) {
var D = !i.static && mt(i, "constructor"), m = D && e;
D && a !== "method" && this.raise(i.key.start, "Constructor can't have get/set modifier"), i.kind = D ? "constructor" : a, this.parseClassMethod(i, n, c, m);
} else
this.parseClassField(i);
return i;
};
V.isClassElementNameStart = function() {
return this.type === h.name || this.type === h.privateId || this.type === h.num || this.type === h.string || this.type === h.bracketL || this.type.keyword;
};
V.parseClassElementName = function(e) {
this.type === h.privateId ? (this.value === "constructor" && this.raise(this.start, "Classes can't have an element named '#constructor'"), e.computed = !1, e.key = this.parsePrivateIdent()) : this.parsePropertyName(e);
};
V.parseClassMethod = function(e, t, i, u) {
var n = e.key;
e.kind === "constructor" ? (t && this.raise(n.start, "Constructor can't be a generator"), i && this.raise(n.start, "Constructor can't be an async method")) : e.static && mt(e, "prototype") && this.raise(n.start, "Classes may not have a static property named prototype");
var c = e.value = this.parseMethod(t, i, u);
return e.kind === "get" && c.params.length !== 0 && this.raiseRecoverable(c.start, "getter should have no params"), e.kind === "set" && c.params.length !== 1 && this.raiseRecoverable(c.start, "setter should have exactly one param"), e.kind === "set" && c.params[0].type === "RestElement" && this.raiseRecoverable(c.params[0].start, "Setter cannot use rest params"), this.finishNode(e, "MethodDefinition");
};
V.parseClassField = function(e) {
if (mt(e, "constructor") ? this.raise(e.key.start, "Classes can't have a field named 'constructor'") : e.static && mt(e, "prototype") && this.raise(e.key.start, "Classes can't have a static field named 'prototype'"), this.eat(h.eq)) {
var t = this.currentThisScope(), i = t.inClassFieldInit;
t.inClassFieldInit = !0, e.value = this.parseMaybeAssign(), t.inClassFieldInit = i;
} else
e.value = null;
return this.semicolon(), this.finishNode(e, "PropertyDefinition");
};
V.parseClassStaticBlock = function(e) {
e.body = [];
var t = this.labels;
for (this.labels = [], this.enterScope(ut | qt); this.type !== h.braceR; ) {
var i = this.parseStatement(null);
e.body.push(i);
}
return this.next(), this.exitScope(), this.labels = t, this.finishNode(e, "StaticBlock");
};
V.parseClassId = function(e, t) {
this.type === h.name ? (e.id = this.parseIdent(), t && this.checkLValSimple(e.id, _e, !1)) : (t === !0 && this.unexpected(), e.id = null);
};
V.parseClassSuper = function(e) {
e.superClass = this.eat(h._extends) ? this.parseExprSubscripts(!1) : null;
};
V.enterClassBody = function() {
var e = { declared: /* @__PURE__ */ Object.create(null), used: [] };
return this.privateNameStack.push(e), e.declared;
};
V.exitClassBody = function() {
for (var e = this.privateNameStack.pop(), t = e.declared, i = e.used, u = this.privateNameStack.length, n = u === 0 ? null : this.privateNameStack[u - 1], c = 0; c < i.length; ++c) {
var a = i[c];
rt(t, a.name) || (n ? n.used.push(a) : this.raiseRecoverable(a.start, "Private field '#" + a.name + "' must be declared in an enclosing class"));
}
};
function qu(e, t) {
var i = t.key.name, u = e[i], n = "true";
return t.type === "MethodDefinition" && (t.kind === "get" || t.kind === "set") && (n = (t.static ? "s" : "i") + t.kind), u === "iget" && n === "iset" || u === "iset" && n === "iget" || u === "sget" && n === "sset" || u === "sset" && n === "sget" ? (e[i] = "true", !1) : u ? !0 : (e[i] = n, !1);
}
function mt(e, t) {
var i = e.computed, u = e.key;
return !i && (u.type === "Identifier" && u.name === t || u.type === "Literal" && u.value === t);
}
V.parseExport = function(e, t) {
if (this.next(), this.eat(h.star))
return this.options.ecmaVersion >= 11 && (this.eatContextual("as") ? (e.exported = this.parseModuleExportName(), this.checkExport(t, e.exported, this.lastTokStart)) : e.exported = null), this.expectContextual("from"), this.type !== h.string && this.unexpected(), e.source = this.parseExprAtom(), this.semicolon(), this.finishNode(e, "ExportAllDeclaration");
if (this.eat(h._default)) {
this.checkExport(t, "default", this.lastTokStart);
var i;
if (this.type === h._function || (i = this.isAsyncFunction())) {
var u = this.startNode();
this.next(), i && this.next(), e.declaration = this.parseFunction(u, Je | zi, !1, i);
} else if (this.type === h._class) {
var n = this.startNode();
e.declaration = this.parseClass(n, "nullableID");
} else
e.declaration = this.parseMaybeAssign(), this.semicolon();
return this.finishNode(e, "ExportDefaultDeclaration");
}
if (this.shouldParseExportStatement())
e.declaration = this.parseStatement(null), e.declaration.type === "VariableDeclaration" ? this.checkVariableExport(t, e.declaration.declarations) : this.checkExport(t, e.declaration.id, e.declaration.id.start), e.specifiers = [], e.source = null;
else {
if (e.declaration = null, e.specifiers = this.parseExportSpecifiers(t), this.eatContextual("from"))
this.type !== h.string && this.unexpected(), e.source = this.parseExprAtom();
else {
for (var c = 0, a = e.specifiers; c < a.length; c += 1) {
var f = a[c];
this.checkUnreserved(f.local), this.checkLocalExport(f.local), f.local.type === "Literal" && this.raise(f.local.start, "A string literal cannot be used as an exported binding without `from`.");
}
e.source = null;
}
this.semicolon();
}
return this.finishNode(e, "ExportNamedDeclaration");
};
V.checkExport = function(e, t, i) {
!e || (typeof t != "string" && (t = t.type === "Identifier" ? t.name : t.value), rt(e, t) && this.raiseRecoverable(i, "Duplicate export '" + t + "'"), e[t] = !0);
};
V.checkPatternExport = function(e, t) {
var i = t.type;
if (i === "Identifier")
this.checkExport(e, t, t.start);
else if (i === "ObjectPattern")
for (var u = 0, n = t.properties; u < n.length; u += 1) {
var c = n[u];
this.checkPatternExport(e, c);
}
else if (i === "ArrayPattern")
for (var a = 0, f = t.elements; a < f.length; a += 1) {
var p = f[a];
p && this.checkPatternExport(e, p);
}
else
i === "Property" ? this.checkPatternExport(e, t.value) : i === "AssignmentPattern" ? this.checkPatternExport(e, t.left) : i === "RestElement" ? this.checkPatternExport(e, t.argument) : i === "ParenthesizedExpression" && this.checkPatternExport(e, t.expression);
};
V.checkVariableExport = function(e, t) {
if (!!e)
for (var i = 0, u = t; i < u.length; i += 1) {
var n = u[i];
this.checkPatternExport(e, n.id);
}
};
V.shouldParseExportStatement = function() {
return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction();
};
V.parseExportSpecifiers = function(e) {
var t = [], i = !0;
for (this.expect(h.braceL); !this.eat(h.braceR); ) {
if (i)
i = !1;
else if (this.expect(h.comma), this.afterTrailingComma(h.braceR))
break;
var u = this.startNode();
u.local = this.parseModuleExportName(), u.exported = this.eatContextual("as") ? this.parseModuleExportName() : u.local, this.checkExport(
e,
u.exported,
u.exported.start
), t.push(this.finishNode(u, "ExportSpecifier"));
}
return t;
};
V.parseImport = function(e) {
return this.next(), this.type === h.string ? (e.specifiers = Vu, e.source = this.parseExprAtom()) : (e.specifiers = this.parseImportSpecifiers(), this.expectContextual("from"), e.source = this.type === h.string ? this.parseExprAtom() : this.unexpected()), this.semicolon(), this.finishNode(e, "ImportDeclaration");
};
V.parseImportSpecifiers = function() {
var e = [], t = !0;
if (this.type === h.name) {
var i = this.startNode();
if (i.local = this.parseIdent(), this.checkLValSimple(i.local, _e), e.push(this.finishNode(i, "ImportDefaultSpecifier")), !this.eat(h.comma))
return e;
}
if (this.type === h.star) {
var u = this.startNode();
return this.next(), this.expectContextual("as"), u.local = this.parseIdent(), this.checkLValSimple(u.local, _e), e.push(this.finishNode(u, "ImportNamespaceSpecifier")), e;
}
for (this.expect(h.braceL); !this.eat(h.braceR); ) {
if (t)
t = !1;
else if (this.expect(h.comma), this.afterTrailingComma(h.braceR))
break;
var n = this.startNode();
n.imported = this.parseModuleExportName(), this.eatContextual("as") ? n.local = this.parseIdent() : (this.checkUnreserved(n.imported), n.local = n.imported), this.checkLValSimple(n.local, _e), e.push(this.finishNode(n, "ImportSpecifier"));
}
return e;
};
V.parseModuleExportName = function() {
if (this.options.ecmaVersion >= 13 && this.type === h.string) {
var e = this.parseLiteral(this.value);
return Nu.test(e.value) && this.raise(e.start, "An export name cannot include a lone surrogate."), e;
}
return this.parseIdent(!0);
};
V.adaptDirectivePrologue = function(e) {
for (var t = 0; t < e.length && this.isDirectiveCandidate(e[t]); ++t)
e[t].directive = e[t].expression.raw.slice(1, -1);
};
V.isDirectiveCandidate = function(e) {
return this.options.ecmaVersion >= 5 && e.type === "ExpressionStatement" && e.expression.type === "Literal" && typeof e.expression.value == "string" && (this.input[e.start] === '"' || this.input[e.start] === "'");
};
var xe = oe.prototype;
xe.toAssignable = function(e, t, i) {
if (this.options.ecmaVersion >= 6 && e)
switch (e.type) {
case "Identifier":
this.inAsync && e.name === "await" && this.raise(e.start, "Cannot use 'await' as identifier inside an async function");
break;
case "ObjectPattern":
case "ArrayPattern":
case "AssignmentPattern":
case "RestElement":
break;
case "ObjectExpression":
e.type = "ObjectPattern", i && this.checkPatternErrors(i, !0);
for (var u = 0, n = e.properties; u < n.length; u += 1) {
var c = n[u];
this.toAssignable(c, t), c.type === "RestElement" && (c.argument.type === "ArrayPattern" || c.argument.type === "ObjectPattern") && this.raise(c.argument.start, "Unexpected token");
}
break;
case "Property":
e.kind !== "init" && this.raise(e.key.start, "Object pattern can't contain getter or setter"), this.toAssignable(e.value, t);
break;
case "ArrayExpression":
e.type = "ArrayPattern", i && this.checkPatternErrors(i, !0), this.toAssignableList(e.elements, t);
break;
case "SpreadElement":
e.type = "RestElement", this.toAssignable(e.argument, t), e.argument.type === "AssignmentPattern" && this.raise(e.argument.start, "Rest elements cannot have a default value");
break;
case "AssignmentExpression":
e.operator !== "=" && this.raise(e.left.end, "Only '=' operator can be used for specifying default value."), e.type = "AssignmentPattern", delete e.operator, this.toAssignable(e.left, t);
break;
case "ParenthesizedExpression":
this.toAssignable(e.expression, t, i);
break;
case "ChainExpression":
this.raiseRecoverable(e.start, "Optional chaining cannot appear in left-hand side");
break;
case "MemberExpression":
if (!t)
break;
default:
this.raise(e.start, "Assigning to rvalue");
}
else
i && this.checkPatternErrors(i, !0);
return e;
};
xe.toAssignableList = function(e, t) {
for (var i = e.length, u = 0; u < i; u++) {
var n = e[u];
n && this.toAssignable(n, t);
}
if (i) {
var c = e[i - 1];
this.options.ecmaVersion === 6 && t && c && c.type === "RestElement" && c.argument.type !== "Identifier" && this.unexpected(c.argument.start);
}
return e;
};
xe.parseSpread = function(e) {
var t = this.startNode();
return this.next(), t.argument = this.parseMaybeAssign(!1, e), this.finishNode(t, "SpreadElement");
};
xe.parseRestBinding = function() {
var e = this.startNode();
return this.next(), this.options.ecmaVersion === 6 && this.type !== h.name && this.unexpected(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
};
xe.parseBindingAtom = function() {
if (this.options.ecmaVersion >= 6)
switch (this.type) {
case h.bracketL:
var e = this.startNode();
return this.next(), e.elements = this.parseBindingList(h.bracketR, !0, !0), this.finishNode(e, "ArrayPattern");
case h.braceL:
return this.parseObj(!0);
}
return this.parseIdent();
};
xe.parseBindingList = function(e, t, i) {
for (var u = [], n = !0; !this.eat(e); )
if (n ? n = !1 : this.expect(h.comma), t && this.type === h.comma)
u.push(null);
else {
if (i && this.afterTrailingComma(e))
break;
if (this.type === h.ellipsis) {
var c = this.parseRestBinding();
this.parseBindingListItem(c), u.push(c), this.type === h.comma && this.raise(this.start, "Comma is not permitted after the rest element"), this.expect(e);
break;
} else {
var a = this.parseMaybeDefault(this.start, this.startLoc);
this.parseBindingListItem(a), u.push(a);
}
}
return u;
};
xe.parseBindingListItem = function(e) {
return e;
};
xe.parseMaybeDefault = function(e, t, i) {
if (i = i || this.parseBindingAtom(), this.options.ecmaVersion < 6 || !this.eat(h.eq))
return i;
var u = this.startNodeAt(e, t);
return u.left = i, u.right = this.parseMaybeAssign(), this.finishNode(u, "AssignmentPattern");
};
xe.checkLValSimple = function(e, t, i) {
t === void 0 && (t = Dt);
var u = t !== Dt;
switch (e.type) {
case "Identifier":
this.strict && this.reservedWordsStrictBind.test(e.name) && this.raiseRecoverable(e.start, (u ? "Binding " : "Assigning to ") + e.name + " in strict mode"), u && (t === _e && e.name === "let" && this.raiseRecoverable(e.start, "let is disallowed as a lexically bound name"), i && (rt(i, e.name) && this.raiseRecoverable(e.start, "Argument name clash"), i[e.name] = !0), t !== Gi && this.declareName(e.name, t, e.start));
break;
case "ChainExpression":
this.raiseRecoverable(e.start, "Optional chaining cannot appear in left-hand side");
break;
case "MemberExpression":
u && this.raiseRecoverable(e.start, "Binding member expression");
break;
case "ParenthesizedExpression":
return u && this.raiseRecoverable(e.start, "Binding parenthesized expression"), this.checkLValSimple(e.expression, t, i);
default:
this.raise(e.start, (u ? "Binding" : "Assigning to") + " rvalue");
}
};
xe.checkLValPattern = function(e, t, i) {
switch (t === void 0 && (t = Dt), e.type) {
case "ObjectPattern":
for (var u = 0, n = e.properties; u < n.length; u += 1) {
var c = n[u];
this.checkLValInnerPattern(c, t, i);
}
break;
case "ArrayPattern":
for (var a = 0, f = e.elements; a < f.length; a += 1) {
var p = f[a];
p && this.checkLValInnerPattern(p, t, i);
}
break;
default:
this.checkLValSimple(e, t, i);
}
};
xe.checkLValInnerPattern = function(e, t, i) {
switch (t === void 0 && (t = Dt), e.type) {
case "Property":
this.checkLValInnerPattern(e.value, t, i);
break;
case "AssignmentPattern":
this.checkLValPattern(e.left, t, i);
break;
case "RestElement":
this.checkLValPattern(e.argument, t, i);
break;
default:
this.checkLValPattern(e, t, i);
}
};
var ve = function(t, i, u, n, c) {
this.token = t, this.isExpr = !!i, this.preserveSpace = !!u, this.override = n, this.generator = !!c;
}, ee = {
b_stat: new ve("{", !1),
b_expr: new ve("{", !0),
b_tmpl: new ve("${", !1),
p_stat: new ve("(", !1),
p_expr: new ve("(", !0),
q_tmpl: new ve("`", !0, !0, function(e) {
return e.tryReadTemplateToken();
}),
f_stat: new ve("function", !1),
f_expr: new ve("function", !0),
f_expr_gen: new ve("function", !0, !1, null, !0),
f_gen: new ve("function", !1, !1, null, !0)
}, He = oe.prototype;
He.initialContext = function() {
return [ee.b_stat];
};
He.curContext = function() {
return this.context[this.context.length - 1];
};
He.braceIsBlock = function(e) {
var t = this.curContext();
return t === ee.f_expr || t === ee.f_stat ? !0 : e === h.colon && (t === ee.b_stat || t === ee.b_expr) ? !t.isExpr : e === h._return || e === h.name && this.exprAllowed ? Fe.test(this.input.slice(this.lastTokEnd, this.start)) : e === h._else || e === h.semi || e === h.eof || e === h.parenR || e === h.arrow ? !0 : e === h.braceL ? t === ee.b_stat : e === h._var || e === h._const || e === h.name ? !1 : !this.exprAllowed;
};
He.inGeneratorContext = function() {
for (var e = this.context.length - 1; e >= 1; e--) {
var t = this.context[e];
if (t.token === "function")
return t.generator;
}
return !1;
};
He.updateContext = function(e) {
var t, i = this.type;
i.keyword && e === h.dot ? this.exprAllowed = !1 : (t = i.updateContext) ? t.call(this, e) : this.exprAllowed = i.beforeExpr;
};
He.overrideContext = function(e) {
this.curContext() !== e && (this.context[this.context.length - 1] = e);
};
h.parenR.updateContext = h.braceR.updateContext = function() {
if (this.context.length === 1) {
this.exprAllowed = !0;
return;
}
var e = this.context.pop();
e === ee.b_stat && this.curContext().token === "function" && (e = this.context.pop()), this.exprAllowed = !e.isExpr;
};
h.braceL.updateContext = function(e) {
this.context.push(this.braceIsBlock(e) ? ee.b_stat : ee.b_expr), this.exprAllowed = !0;
};
h.dollarBraceL.updateContext = function() {
this.context.push(ee.b_tmpl), this.exprAllowed = !0;
};
h.parenL.updateContext = function(e) {
var t = e === h._if || e === h._for || e === h._with || e === h._while;
this.context.push(t ? ee.p_stat : ee.p_expr), this.exprAllowed = !0;
};
h.incDec.updateContext = function() {
};
h._function.updateContext = h._class.updateContext = function(e) {
e.beforeExpr && e !== h._else && !(e === h.semi && this.curContext() !== ee.p_stat) && !(e === h._return && Fe.test(this.input.slice(this.lastTokEnd, this.start))) && !((e === h.colon || e === h.braceL) && this.curContext() === ee.b_stat) ? this.context.push(ee.f_expr) : this.context.push(ee.f_stat), this.exprAllowed = !1;
};
h.backQuote.updateContext = function() {
this.curContext() === ee.q_tmpl ? this.context.pop() : this.context.push(ee.q_tmpl), this.exprAllowed = !1;
};
h.star.updateContext = function(e) {
if (e === h._function) {
var t = this.context.length - 1;
this.context[t] === ee.f_expr ? this.context[t] = ee.f_expr_gen : this.context[t] = ee.f_gen;
}
this.exprAllowed = !0;
};
h.name.updateContext = function(e) {
var t = !1;
this.options.ecmaVersion >= 6 && e !== h.dot && (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) && (t = !0), this.exprAllowed = t;
};
var z = oe.prototype;
z.checkPropClash = function(e, t, i) {
if (!(this.options.ecmaVersion >= 9 && e.type === "SpreadElement") && !(this.options.ecmaVersion >= 6 && (e.computed || e.method || e.shorthand))) {
var u = e.key, n;
switch (u.type) {
case "Identifier":
n = u.name;
break;
case "Literal":
n = String(u.value);
break;
default:
return;
}
var c = e.kind;
if (this.options.ecmaVersion >= 6) {
n === "__proto__" && c === "init" && (t.proto && (i ? i.doubleProto < 0 && (i.doubleProto = u.start) : this.raiseRecoverable(u.start, "Redefinition of __proto__ property")), t.proto = !0);
return;
}
n = "$" + n;
var a = t[n];
if (a) {
var f;
c === "init" ? f = this.strict && a.init || a.get || a.set : f = a.init || a[c], f && this.raiseRecoverable(u.start, "Redefinition of property");
} else
a = t[n] = {
init: !1,
get: !1,
set: !1
};
a[c] = !0;
}
};
z.parseExpression = function(e, t) {
var i = this.start, u = this.startLoc, n = this.parseMaybeAssign(e, t);
if (this.type === h.comma) {
var c = this.startNodeAt(i, u);
for (c.expressions = [n]; this.eat(h.comma); )
c.expressions.push(this.parseMaybeAssign(e, t));
return this.finishNode(c, "SequenceExpression");
}
return n;
};
z.parseMaybeAssign = function(e, t, i) {
if (this.isContextual("yield")) {
if (this.inGenerator)
return this.parseYield(e);
this.exprAllowed = !1;
}
var u = !1, n = -1, c = -1, a = -1;
t ? (n = t.parenthesizedAssign, c = t.trailingComma, a = t.doubleProto, t.parenthesizedAssign = t.trailingComma = -1) : (t = new At(), u = !0);
var f = this.start, p = this.startLoc;
(this.type === h.parenL || this.type === h.name) && (this.potentialArrowAt = this.start, this.potentialArrowInForAwait = e === "await");
var D = this.parseMaybeConditional(e, t);
if (i && (D = i.call(this, D, f, p)), this.type.isAssign) {
var m = this.startNodeAt(f, p);
return m.operator = this.value, this.type === h.eq && (D = this.toAssignable(D, !1, t)), u || (t.parenthesizedAssign = t.trailingComma = t.doubleProto = -1), t.shorthandAssign >= D.start && (t.shorthandAssign = -1), this.type === h.eq ? this.checkLValPattern(D) : this.checkLValSimple(D), m.left = D, this.next(), m.right = this.parseMaybeAssign(e), a > -1 && (t.doubleProto = a), this.finishNode(m, "AssignmentExpression");
} else
u && this.checkExpressionErrors(t, !0);
return n > -1 && (t.parenthesizedAssign = n), c > -1 && (t.trailingComma = c), D;
};
z.parseMaybeConditional = function(e, t) {
var i = this.start, u = this.startLoc, n = this.parseExprOps(e, t);
if (this.checkExpressionErrors(t))
return n;
if (this.eat(h.question)) {
var c = this.startNodeAt(i, u);
return c.test = n, c.consequent = this.parseMaybeAssign(), this.expect(h.colon), c.alternate = this.parseMaybeAssign(e), this.finishNode(c, "ConditionalExpression");
}
return n;
};
z.parseExprOps = function(e, t) {
var i = this.start, u = this.startLoc, n = this.parseMaybeUnary(t, !1, !1, e);
return this.checkExpressionErrors(t) || n.start === i && n.type === "ArrowFunctionExpression" ? n : this.parseExprOp(n, i, u, -1, e);
};
z.parseExprOp = function(e, t, i, u, n) {
var c = this.type.binop;
if (c != null && (!n || this.type !== h._in) && c > u) {
var a = this.type === h.logicalOR || this.type === h.logicalAND, f = this.type === h.coalesce;
f && (c = h.logicalAND.binop);
var p = this.value;
this.next();
var D = this.start, m = this.startLoc, v = this.parseExprOp(this.parseMaybeUnary(null, !1, !1, n), D, m, c, n), g = this.buildBinary(t, i, e, v, p, a || f);
return (a && this.type === h.coalesce || f && (this.type === h.logicalOR || this.type === h.logicalAND)) && this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"), this.parseExprOp(g, t, i, u, n);
}
return e;
};
z.buildBinary = function(e, t, i, u, n, c) {
u.type === "PrivateIdentifier" && this.raise(u.start, "Private identifier can only be left side of binary expression");
var a = this.startNodeAt(e, t);
return a.left = i, a.operator = n, a.right = u, this.finishNode(a, c ? "LogicalExpression" : "BinaryExpression");
};
z.parseMaybeUnary = function(e, t, i, u) {
var n = this.start, c = this.startLoc, a;
if (this.isContextual("await") && this.canAwait)
a = this.parseAwait(u), t = !0;
else if (this.type.prefix) {
var f = this.startNode(), p = this.type === h.incDec;
f.operator = this.value, f.prefix = !0, this.next(), f.argument = this.parseMaybeUnary(null, !0, p, u), this.checkExpressionErrors(e, !0), p ? this.checkLValSimple(f.argument) : this.strict && f.operator === "delete" && f.argument.type === "Identifier" ? this.raiseRecoverable(f.start, "Deleting local variable in strict mode") : f.operator === "delete" && Hi(f.argument) ? this.raiseRecoverable(f.start, "Private fields can not be deleted") : t = !0, a = this.finishNode(f, p ? "UpdateExpression" : "UnaryExpression");
} else if (!t && this.type === h.privateId)
(u || this.privateNameStack.length === 0) && this.unexpected(), a = this.parsePrivateIdent(), this.type !== h._in && this.unexpected();
else {
if (a = this.parseExprSubscripts(e, u), this.checkExpressionErrors(e))
return a;
for (; this.type.postfix && !this.canInsertSemicolon(); ) {
var D = this.startNodeAt(n, c);
D.operator = this.value, D.prefix = !1, D.argument = a, this.checkLValSimple(a), this.next(), a = this.finishNode(D, "UpdateExpression");
}
}
if (!i && this.eat(h.starstar))
if (t)
this.unexpected(this.lastTokStart);
else
return this.buildBinary(n, c, a, this.parseMaybeUnary(null, !1, !1, u), "**", !1);
else
return a;
};
function Hi(e) {
return e.type === "MemberExpression" && e.property.type === "PrivateIdentifier" || e.type === "ChainExpression" && Hi(e.expression);
}
z.parseExprSubscripts = function(e, t) {
var i = this.start, u = this.startLoc, n = this.parseExprAtom(e, t);
if (n.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")")
return n;
var c = this.parseSubscripts(n, i, u, !1, t);
return e && c.type === "MemberExpression" && (e.parenthesizedAssign >= c.start && (e.parenthesizedAssign = -1), e.parenthesizedBind >= c.start && (e.parenthesizedBind = -1), e.trailingComma >= c.start && (e.trailingComma = -1)), c;
};
z.parseSubscripts = function(e, t, i, u, n) {
for (var c = this.options.ecmaVersion >= 8 && e.type === "Identifier" && e.name === "async" && this.lastTokEnd === e.end && !this.canInsertSemicolon() && e.end - e.start === 5 && this.potentialArrowAt === e.start, a = !1; ; ) {
var f = this.parseSubscript(e, t, i, u, c, a, n);
if (f.optional && (a = !0), f === e || f.type === "ArrowFunctionExpression") {
if (a) {
var p = this.startNodeAt(t, i);
p.expression = f, f = this.finishNode(p, "ChainExpression");
}
return f;
}
e = f;
}
};
z.parseSubscript = function(e, t, i, u, n, c, a) {
var f = this.options.ecmaVersion >= 11, p = f && this.eat(h.questionDot);
u && p && this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions");
var D = this.eat(h.bracketL);
if (D || p && this.type !== h.parenL && this.type !== h.backQuote || this.eat(h.dot)) {
var m = this.startNodeAt(t, i);
m.object = e, D ? (m.property = this.parseExpression(), this.expect(h.bracketR)) : this.type === h.privateId && e.type !== "Super" ? m.property = this.parsePrivateIdent() : m.property = this.parseIdent(this.options.allowReserved !== "never"), m.computed = !!D, f && (m.optional = p), e = this.finishNode(m, "MemberExpression");
} else if (!u && this.eat(h.parenL)) {
var v = new At(), g = this.yieldPos, A = this.awaitPos, E = this.awaitIdentPos;
this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0;
var C = this.parseExprList(h.parenR, this.options.ecmaVersion >= 8, !1, v);
if (n && !p && !this.canInsertSemicolon() && this.eat(h.arrow))
return this.checkPatternErrors(v, !1), this.checkYieldAwaitInDefaultParams(), this.awaitIdentPos > 0 && this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"), this.yieldPos = g, this.awaitPos = A, this.awaitIdentPos = E, this.parseArrowExpression(this.startNodeAt(t, i), C, !0, a);
this.checkExpressionErrors(v, !0), this.yieldPos = g || this.yieldPos, this.awaitPos = A || this.awaitPos, this.awaitIdentPos = E || this.awaitIdentPos;
var x = this.startNodeAt(t, i);
x.callee = e, x.arguments = C, f && (x.optional = p), e = this.finishNode(x, "CallExpression");
} else if (this.type === h.backQuote) {
(p || c) && this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
var I = this.startNodeAt(t, i);
I.tag = e, I.quasi = this.parseTemplate({ isTagged: !0 }), e = this.finishNode(I, "TaggedTemplateExpression");
}
return e;
};
z.parseExprAtom = function(e, t) {
this.type === h.slash && this.readRegexp();
var i, u = this.potentialArrowAt === this.start;
switch (this.type) {
case h._super:
return this.allowSuper || this.raise(this.start, "'super' keyword outside a method"), i = this.startNode(), this.next(), this.type === h.parenL && !this.allowDirectSuper && this.raise(i.start, "super() call outside constructor of a subclass"), this.type !== h.dot && this.type !== h.bracketL && this.type !== h.parenL && this.unexpected(), this.finishNode(i, "Super");
case h._this:
return i = this.startNode(), this.next(), this.finishNode(i, "ThisExpression");
case h.name:
var n = this.start, c = this.startLoc, a = this.containsEsc, f = this.parseIdent(!1);
if (this.options.ecmaVersion >= 8 && !a && f.name === "async" && !this.canInsertSemicolon() && this.eat(h._function))
return this.overrideContext(ee.f_expr), this.parseFunction(this.startNodeAt(n, c), 0, !1, !0, t);
if (u && !this.canInsertSemicolon()) {
if (this.eat(h.arrow))
return this.parseArrowExpression(this.startNodeAt(n, c), [f], !1, t);
if (this.options.ecmaVersion >= 8 && f.name === "async" && this.type === h.name && !a && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc))
return f = this.parseIdent(!1), (this.canInsertSemicolon() || !this.eat(h.arrow)) && this.unexpected(), this.parseArrowExpression(this.startNodeAt(n, c), [f], !0, t);
}
return f;
case h.regexp:
var p = this.value;
return i = this.parseLiteral(p.value), i.regex = { pattern: p.pattern, flags: p.flags }, i;
case h.num:
case h.string:
return this.parseLiteral(this.value);
case h._null:
case h._true:
case h._false:
return i = this.startNode(), i.value = this.type === h._null ? null : this.type === h._true, i.raw = this.type.keyword, this.next(), this.finishNode(i, "Literal");
case h.parenL:
var D = this.start, m = this.parseParenAndDistinguishExpression(u, t);
return e && (e.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(m) && (e.parenthesizedAssign = D), e.parenthesizedBind < 0 && (e.parenthesizedBind = D)), m;
case h.bracketL:
return i = this.startNode(), this.next(), i.elements = this.parseExprList(h.bracketR, !0, !0, e), this.finishNode(i, "ArrayExpression");
case h.braceL:
return this.overrideContext(ee.b_expr), this.parseObj(!1, e);
case h._function:
return i = this.startNode(), this.next(), this.parseFunction(i, 0);
case h._class:
return this.parseClass(this.startNode(), !1);
case h._new:
return this.parseNew();
case h.backQuote:
return this.parseTemplate();
case h._import:
return this.options.ecmaVersion >= 11 ? this.parseExprImport() : this.unexpected();
default:
this.unexpected();
}
};
z.parseExprImport = function() {
var e = this.startNode();
this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword import");
var t = this.parseIdent(!0);
switch (this.type) {
case h.parenL:
return this.parseDynamicImport(e);
case h.dot:
return e.meta = t, this.parseImportMeta(e);
default:
this.unexpected();
}
};
z.parseDynamicImport = function(e) {
if (this.next(), e.source = this.parseMaybeAssign(), !this.eat(h.parenR)) {
var t = this.start;
this.eat(h.comma) && this.eat(h.parenR) ? this.raiseRecoverable(t, "Trailing comma is not allowed in import()") : this.unexpected(t);
}
return this.finishNode(e, "ImportExpression");
};
z.parseImportMeta = function(e) {
this.next();
var t = this.containsEsc;
return e.property = this.parseIdent(!0), e.property.name !== "meta" && this.raiseRecoverable(e.property.start, "The only valid meta property for import is 'import.meta'"), t && this.raiseRecoverable(e.start, "'import.meta' must not contain escaped characters"), this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere && this.raiseRecoverable(e.start, "Cannot use 'import.meta' outside a module"), this.finishNode(e, "MetaProperty");
};
z.parseLiteral = function(e) {
var t = this.startNode();
return t.value = e, t.raw = this.input.slice(this.start, this.end), t.raw.charCodeAt(t.raw.length - 1) === 110 && (t.bigint = t.raw.slice(0, -1).replace(/_/g, "")), this.next(), this.finishNode(t, "Literal");
};
z.parseParenExpression = function() {
this.expect(h.parenL);
var e = this.parseExpression();
return this.expect(h.parenR), e;
};
z.parseParenAndDistinguishExpression = function(e, t) {
var i = this.start, u = this.startLoc, n, c = this.options.ecmaVersion >= 8;
if (this.options.ecmaVersion >= 6) {
this.next();
var a = this.start, f = this.startLoc, p = [], D = !0, m = !1, v = new At(), g = this.yieldPos, A = this.awaitPos, E;
for (this.yieldPos = 0, this.awaitPos = 0; this.type !== h.parenR; )
if (D ? D = !1 : this.expect(h.comma), c && this.afterTrailingComma(h.parenR, !0)) {
m = !0;
break;
} else if (this.type === h.ellipsis) {
E = this.start, p.push(this.parseParenItem(this.parseRestBinding())), this.type === h.comma && this.raise(this.start, "Comma is not permitted after the rest element");
break;
} else
p.push(this.parseMaybeAssign(!1, v, this.parseParenItem));
var C = this.lastTokEnd, x = this.lastTokEndLoc;
if (this.expect(h.parenR), e && !this.canInsertSemicolon() && this.eat(h.arrow))
return this.checkPatternErrors(v, !1), this.checkYieldAwaitInDefaultParams(), this.yieldPos = g, this.awaitPos = A, this.parseParenArrowList(i, u, p, t);
(!p.length || m) && this.unexpected(this.lastTokStart), E && this.unexpected(E), this.checkExpressionErrors(v, !0), this.yieldPos = g || this.yieldPos, this.awaitPos = A || this.awaitPos, p.length > 1 ? (n = this.startNodeAt(a, f), n.expressions = p, this.finishNodeAt(n, "SequenceExpression", C, x)) : n = p[0];
} else
n = this.parseParenExpression();
if (this.options.preserveParens) {
var I = this.startNodeAt(i, u);
return I.expression = n, this.finishNode(I, "ParenthesizedExpression");
} else
return n;
};
z.parseParenItem = function(e) {
return e;
};
z.parseParenArrowList = function(e, t, i, u) {
return this.parseArrowExpression(this.startNodeAt(e, t), i, !1, u);
};
var Uu = [];
z.parseNew = function() {
this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword new");
var e = this.startNode(), t = this.parseIdent(!0);
if (this.options.ecmaVersion >= 6 && this.eat(h.dot)) {
e.meta = t;
var i = this.containsEsc;
return e.property = this.parseIdent(!0), e.property.name !== "target" && this.raiseRecoverable(e.property.start, "The only valid meta property for new is 'new.target'"), i && this.raiseRecoverable(e.start, "'new.target' must not contain escaped characters"), this.allowNewDotTarget || this.raiseRecoverable(e.start, "'new.target' can only be used in functions and class static block"), this.finishNode(e, "MetaProperty");
}
var u = this.start, n = this.startLoc, c = this.type === h._import;
return e.callee = this.parseSubscripts(this.parseExprAtom(), u, n, !0, !1), c && e.callee.type === "ImportExpression" && this.raise(u, "Cannot use new with import()"), this.eat(h.parenL) ? e.arguments = this.parseExprList(h.parenR, this.options.ecmaVersion >= 8, !1) : e.arguments = Uu, this.finishNode(e, "NewExpression");
};
z.parseTemplateElement = function(e) {
var t = e.isTagged, i = this.startNode();
return this.type === h.invalidTemplate ? (t || this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"), i.value = {
raw: this.value,
cooked: null
}) : i.value = {
raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, `
`),
cooked: this.value
}, this.next(), i.tail = this.type === h.backQuote, this.finishNode(i, "TemplateElement");
};
z.parseTemplate = function(e) {
e === void 0 && (e = {});
var t = e.isTagged;
t === void 0 && (t = !1);
var i = this.startNode();
this.next(), i.expressions = [];
var u = this.parseTemplateElement({ isTagged: t });
for (i.quasis = [u]; !u.tail; )
this.type === h.eof && this.raise(this.pos, "Unterminated template literal"), this.expect(h.dollarBraceL), i.expressions.push(this.parseExpression()), this.expect(h.braceR), i.quasis.push(u = this.parseTemplateElement({ isTagged: t }));
return this.next(), this.finishNode(i, "TemplateLiteral");
};
z.isAsyncProp = function(e) {
return !e.computed && e.key.type === "Identifier" && e.key.name === "async" && (this.type === h.name || this.type === h.num || this.type === h.string || this.type === h.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === h.star) && !Fe.test(this.input.slice(this.lastTokEnd, this.start));
};
z.parseObj = function(e, t) {
var i = this.startNode(), u = !0, n = {};
for (i.properties = [], this.next(); !this.eat(h.braceR); ) {
if (u)
u = !1;
else if (this.expect(h.comma), this.options.ecmaVersion >= 5 && this.afterTrailingComma(h.braceR))
break;
var c = this.parseProperty(e, t);
e || this.checkPropClash(c, n, t), i.properties.push(c);
}
return this.finishNode(i, e ? "ObjectPattern" : "ObjectExpression");
};
z.parseProperty = function(e, t) {
var i = this.startNode(), u, n, c, a;
if (this.options.ecmaVersion >= 9 && this.eat(h.ellipsis))
return e ? (i.argument = this.parseIdent(!1), this.type === h.comma && this.raise(this.start, "Comma is not permitted after the rest element"), this.finishNode(i, "RestElement")) : (i.argument = this.parseMaybeAssign(!1, t), this.type === h.comma && t && t.trailingComma < 0 && (t.trailingComma = this.start), this.finishNode(i, "SpreadElement"));
this.options.ecmaVersion >= 6 && (i.method = !1, i.shorthand = !1, (e || t) && (c = this.start, a = this.startLoc), e || (u = this.eat(h.star)));
var f = this.containsEsc;
return this.parsePropertyName(i), !e && !f && this.options.ecmaVersion >= 8 && !u && this.isAsyncProp(i) ? (n = !0, u = this.options.ecmaVersion >= 9 && this.eat(h.star), this.parsePropertyName(i, t)) : n = !1, this.parsePropertyValue(i, e, u, n, c, a, t, f), this.finishNode(i, "Property");
};
z.parsePropertyValue = function(e, t, i, u, n, c, a, f) {
if ((i || u) && this.type === h.colon && this.unexpected(), this.eat(h.colon))
e.value = t ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(!1, a), e.kind = "init";
else if (this.options.ecmaVersion >= 6 && this.type === h.parenL)
t && this.unexpected(), e.kind = "init", e.method = !0, e.value = this.parseMethod(i, u);
else if (!t && !f && this.options.ecmaVersion >= 5 && !e.computed && e.key.type === "Identifier" && (e.key.name === "get" || e.key.name === "set") && this.type !== h.comma && this.type !== h.braceR && this.type !== h.eq) {
(i || u) && this.unexpected(), e.kind = e.key.name, this.parsePropertyName(e), e.value = this.parseMethod(!1);
var p = e.kind === "get" ? 0 : 1;
if (e.value.params.length !== p) {
var D = e.value.start;
e.kind === "get" ? this.raiseRecoverable(D, "getter should have no params") : this.raiseRecoverable(D, "setter should have exactly one param");
} else
e.kind === "set" && e.value.params[0].type === "RestElement" && this.raiseRecoverable(e.value.params[0].start, "Setter cannot use rest params");
} else
this.options.ecmaVersion >= 6 && !e.computed && e.key.type === "Identifier" ? ((i || u) && this.unexpected(), this.checkUnreserved(e.key), e.key.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = n), e.kind = "init", t ? e.value = this.parseMaybeDefault(n, c, this.copyNode(e.key)) : this.type === h.eq && a ? (a.shorthandAssign < 0 && (a.shorthandAssign = this.start), e.value = this.parseMaybeDefault(n, c, this.copyNode(e.key))) : e.value = this.copyNode(e.key), e.shorthand = !0) : this.unexpected();
};
z.parsePropertyName = function(e) {
if (this.options.ecmaVersion >= 6) {
if (this.eat(h.bracketL))
return e.computed = !0, e.key = this.parseMaybeAssign(), this.expect(h.bracketR), e.key;
e.computed = !1;
}
return e.key = this.type === h.num || this.type === h.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never");
};
z.initFunction = function(e) {
e.id = null, this.options.ecmaVersion >= 6 && (e.generator = e.expression = !1), this.options.ecmaVersion >= 8 && (e.async = !1);
};
z.parseMethod = function(e, t, i) {
var u = this.startNode(), n = this.yieldPos, c = this.awaitPos, a = this.awaitIdentPos;
return this.initFunction(u), this.options.ecmaVersion >= 6 && (u.generator = e), this.options.ecmaVersion >= 8 && (u.async = !!t), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(jt(t, u.generator) | qt | (i ? Ui : 0)), this.expect(h.parenL), u.params = this.parseBindingList(h.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(), this.parseFunctionBody(u, !1, !0, !1), this.yieldPos = n, this.awaitPos = c, this.awaitIdentPos = a, this.finishNode(u, "FunctionExpression");
};
z.parseArrowExpression = function(e, t, i, u) {
var n = this.yieldPos, c = this.awaitPos, a = this.awaitIdentPos;
return this.enterScope(jt(i, !1) | Vi), this.initFunction(e), this.options.ecmaVersion >= 8 && (e.async = !!i), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, e.params = this.toAssignableList(t, !0), this.parseFunctionBody(e, !0, !1, u), this.yieldPos = n, this.awaitPos = c, this.awaitIdentPos = a, this.finishNode(e, "ArrowFunctionExpression");
};
z.parseFunctionBody = function(e, t, i, u) {
var n = t && this.type !== h.braceL, c = this.strict, a = !1;
if (n)
e.body = this.parseMaybeAssign(u), e.expression = !0, this.checkParams(e, !1);
else {
var f = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(e.params);
(!c || f) && (a = this.strictDirective(this.end), a && f && this.raiseRecoverable(e.start, "Illegal 'use strict' directive in function with non-simple parameter list"));
var p = this.labels;
this.labels = [], a && (this.strict = !0), this.checkParams(e, !c && !a && !t && !i && this.isSimpleParamList(e.params)), this.strict && e.id && this.checkLValSimple(e.id, Gi), e.body = this.parseBlock(!1, void 0, a && !c), e.expression = !1, this.adaptDirectivePrologue(e.body.body), this.labels = p;
}
this.exitScope();
};
z.isSimpleParamList = function(e) {
for (var t = 0, i = e; t < i.length; t += 1) {
var u = i[t];
if (u.type !== "Identifier")
return !1;
}
return !0;
};
z.checkParams = function(e, t) {
for (var i = /* @__PURE__ */ Object.create(null), u = 0, n = e.params; u < n.length; u += 1) {
var c = n[u];
this.checkLValInnerPattern(c, Wt, t ? null : i);
}
};
z.parseExprList = function(e, t, i, u) {
for (var n = [], c = !0; !this.eat(e); ) {
if (c)
c = !1;
else if (this.expect(h.comma), t && this.afterTrailingComma(e))
break;
var a = void 0;
i && this.type === h.comma ? a = null : this.type === h.ellipsis ? (a = this.parseSpread(u), u && this.type === h.comma && u.trailingComma < 0 && (u.trailingComma = this.start)) : a = this.parseMaybeAssign(!1, u), n.push(a);
}
return n;
};
z.checkUnreserved = function(e) {
var t = e.start, i = e.end, u = e.name;
if (this.inGenerator && u === "yield" && this.raiseRecoverable(t, "Cannot use 'yield' as identifier inside a generator"), this.inAsync && u === "await" && this.raiseRecoverable(t, "Cannot use 'await' as identifier inside an async function"), this.currentThisScope().inClassFieldInit && u === "arguments" && this.raiseRecoverable(t, "Cannot use 'arguments' in class field initializer"), this.inClassStaticBlock && (u === "arguments" || u === "await") && this.raise(t, "Cannot use " + u + " in class static initialization block"), this.keywords.test(u) && this.raise(t, "Unexpected keyword '" + u + "'"), !(this.options.ecmaVersion < 6 && this.input.slice(t, i).indexOf("\\") !== -1)) {
var n = this.strict ? this.reservedWordsStrict : this.reservedWords;
n.test(u) && (!this.inAsync && u === "await" && this.raiseRecoverable(t, "Cannot use keyword 'await' outside an async function"), this.raiseRecoverable(t, "The keyword '" + u + "' is reserved"));
}
};
z.parseIdent = function(e, t) {
var i = this.startNode();
return this.type === h.name ? i.name = this.value : this.type.keyword ? (i.name = this.type.keyword, (i.name === "class" || i.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46) && this.context.pop()) : this.unexpected(), this.next(!!e), this.finishNode(i, "Identifier"), e || (this.checkUnreserved(i), i.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = i.start)), i;
};
z.parsePrivateIdent = function() {
var e = this.startNode();
return this.type === h.privateId ? e.name = this.value : this.unexpected(), this.next(), this.finishNode(e, "PrivateIdentifier"), this.privateNameStack.length === 0 ? this.raise(e.start, "Private field '#" + e.name + "' must be declared in an enclosing class") : this.privateNameStack[this.privateNameStack.length - 1].used.push(e), e;
};
z.parseYield = function(e) {
this.yieldPos || (this.yieldPos = this.start);
var t = this.startNode();
return this.next(), this.type === h.semi || this.canInsertSemicolon() || this.type !== h.star && !this.type.startsExpr ? (t.delegate = !1, t.argument = null) : (t.delegate = this.eat(h.star), t.argument = this.parseMaybeAssign(e)), this.finishNode(t, "YieldExpression");
};
z.parseAwait = function(e) {
this.awaitPos || (this.awaitPos = this.start);
var t = this.startNode();
return this.next(), t.argument = this.parseMaybeUnary(null, !0, !1, e), this.finishNode(t, "AwaitExpression");
};
var gt = oe.prototype;
gt.raise = function(e, t) {
var i = Mi(this.input, e);
t += " (" + i.line + ":" + i.column + ")";
var u = new SyntaxError(t);
throw u.pos = e, u.loc = i, u.raisedAt = this.pos, u;
};
gt.raiseRecoverable = gt.raise;
gt.curPosition = function() {
if (this.options.locations)
return new et(this.curLine, this.pos - this.lineStart);
};
var Te = oe.prototype, ju = function(t) {
this.flags = t, this.var = [], this.lexical = [], this.functions = [], this.inClassFieldInit = !1;
};
Te.enterScope = function(e) {
this.scopeStack.push(new ju(e));
};
Te.exitScope = function() {
this.scopeStack.pop();
};
Te.treatFunctionsAsVarInScope = function(e) {
return e.flags & ze || !this.inModule && e.flags & tt;
};
Te.declareName = function(e, t, i) {
var u = !1;
if (t === _e) {
var n = this.currentScope();
u = n.lexical.indexOf(e) > -1 || n.functions.indexOf(e) > -1 || n.var.indexOf(e) > -1, n.lexical.push(e), this.inModule && n.flags & tt && delete this.undefinedExports[e];
} else if (t === Wi) {
var c = this.currentScope();
c.lexical.push(e);
} else if (t === ji) {
var a = this.currentScope();
this.treatFunctionsAsVar ? u = a.lexical.indexOf(e) > -1 : u = a.lexical.indexOf(e) > -1 || a.var.indexOf(e) > -1, a.functions.push(e);
} else
for (var f = this.scopeStack.length - 1; f >= 0; --f) {
var p = this.scopeStack[f];
if (p.lexical.indexOf(e) > -1 && !(p.flags & qi && p.lexical[0] === e) || !this.treatFunctionsAsVarInScope(p) && p.functions.indexOf(e) > -1) {
u = !0;
break;
}
if (p.var.push(e), this.inModule && p.flags & tt && delete this.undefinedExports[e], p.flags & Ut)
break;
}
u && this.raiseRecoverable(i, "Identifier '" + e + "' has already been declared");
};
Te.checkLocalExport = function(e) {
this.scopeStack[0].lexical.indexOf(e.name) === -1 && this.scopeStack[0].var.indexOf(e.name) === -1 && (this.undefinedExports[e.name] = e);
};
Te.currentScope = function() {
return this.scopeStack[this.scopeStack.length - 1];
};
Te.currentVarScope = function() {
for (var e = this.scopeStack.length - 1; ; e--) {
var t = this.scopeStack[e];
if (t.flags & Ut)
return t;
}
};
Te.currentThisScope = function() {
for (var e = this.scopeStack.length - 1; ; e--) {
var t = this.scopeStack[e];
if (t.flags & Ut && !(t.flags & Vi))
return t;
}
};
var Et = function(t, i, u) {
this.type = "", this.start = i, this.end = 0, t.options.locations && (this.loc = new Ct(t, u)), t.options.directSourceFile && (this.sourceFile = t.options.directSourceFile), t.options.ranges && (this.range = [i, 0]);
}, nt = oe.prototype;
nt.startNode = function() {
return new Et(this, this.start, this.startLoc);
};
nt.startNodeAt = function(e, t) {
return new Et(this, e, t);
};
function Ki(e, t, i, u) {
return e.type = t, e.end = i, this.options.locations && (e.loc.end = u), this.options.ranges && (e.range[1] = i), e;
}
nt.finishNode = function(e, t) {
return Ki.call(this, e, t, this.lastTokEnd, this.lastTokEndLoc);
};
nt.finishNodeAt = function(e, t, i, u) {
return Ki.call(this, e, t, i, u);
};
nt.copyNode = function(e) {
var t = new Et(this, e.start, this.startLoc);
for (var i in e)
t[i] = e[i];
return t;
};
var Qi = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS", Yi = Qi + " Extended_Pictographic", Xi = Yi, $i = Xi + " EBase EComp EMod EPres ExtPict", Wu = $i, Gu = {
9: Qi,
10: Yi,
11: Xi,
12: $i,
13: Wu
}, mi = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu", Zi = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb", Ji = Zi + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd", er = Ji + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho", tr = er + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi", zu = tr + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith", Hu = {
9: Zi,
10: Ji,
11: er,
12: tr,
13: zu
}, ir = {};
function Ku(e) {
var t = ir[e] = {
binary: qe(Gu[e] + " " + mi),
nonBinary: {
General_Category: qe(mi),
Script: qe(Hu[e])
}
};
t.nonBinary.Script_Extensions = t.nonBinary.Script, t.nonBinary.gc = t.nonBinary.General_Category, t.nonBinary.sc = t.nonBinary.Script, t.nonBinary.scx = t.nonBinary.Script_Extensions;
}
for (var It = 0, gi = [9, 10, 11, 12, 13]; It < gi.length; It += 1) {
var Qu = gi[It];
Ku(Qu);
}
var M = oe.prototype, ke = function(t) {
this.parser = t, this.validFlags = "gim" + (t.options.ecmaVersion >= 6 ? "uy" : "") + (t.options.ecmaVersion >= 9 ? "s" : "") + (t.options.ecmaVersion >= 13 ? "d" : ""), this.unicodeProperties = ir[t.options.ecmaVersion >= 13 ? 13 : t.options.ecmaVersion], this.source = "", this.flags = "", this.start = 0, this.switchU = !1, this.switchN = !1, this.pos = 0, this.lastIntValue = 0, this.lastStringValue = "", this.lastAssertionIsQuantifiable = !1, this.numCapturingParens = 0, this.maxBackReference = 0, this.groupNames = [], this.backReferenceNames = [];
};
ke.prototype.reset = function(t, i, u) {
var n = u.indexOf("u") !== -1;
this.start = t | 0, this.source = i + "", this.flags = u, this.switchU = n && this.parser.options.ecmaVersion >= 6, this.switchN = n && this.parser.options.ecmaVersion >= 9;
};
ke.prototype.raise = function(t) {
this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + t);
};
ke.prototype.at = function(t, i) {
i === void 0 && (i = !1);
var u = this.source, n = u.length;
if (t >= n)
return -1;
var c = u.charCodeAt(t);
if (!(i || this.switchU) || c <= 55295 || c >= 57344 || t + 1 >= n)
return c;
var a = u.charCodeAt(t + 1);
return a >= 56320 && a <= 57343 ? (c << 10) + a - 56613888 : c;
};
ke.prototype.nextIndex = function(t, i) {
i === void 0 && (i = !1);
var u = this.source, n = u.length;
if (t >= n)
return n;
var c = u.charCodeAt(t), a;
return !(i || this.switchU) || c <= 55295 || c >= 57344 || t + 1 >= n || (a = u.charCodeAt(t + 1)) < 56320 || a > 57343 ? t + 1 : t + 2;
};
ke.prototype.current = function(t) {
return t === void 0 && (t = !1), this.at(this.pos, t);
};
ke.prototype.lookahead = function(t) {
return t === void 0 && (t = !1), this.at(this.nextIndex(this.pos, t), t);
};
ke.prototype.advance = function(t) {
t === void 0 && (t = !1), this.pos = this.nextIndex(this.pos, t);
};
ke.prototype.eat = function(t, i) {
return i === void 0 && (i = !1), this.current(i) === t ? (this.advance(i), !0) : !1;
};
M.validateRegExpFlags = function(e) {
for (var t = e.validFlags, i = e.flags, u = 0; u < i.length; u++) {
var n = i.charAt(u);
t.indexOf(n) === -1 && this.raise(e.start, "Invalid regular expression flag"), i.indexOf(n, u + 1) > -1 && this.raise(e.start, "Duplicate regular expression flag");
}
};
M.validateRegExpPattern = function(e) {
this.regexp_pattern(e), !e.switchN && this.options.ecmaVersion >= 9 && e.groupNames.length > 0 && (e.switchN = !0, this.regexp_pattern(e));
};
M.regexp_pattern = function(e) {
e.pos = 0, e.lastIntValue = 0, e.lastStringValue = "", e.lastAssertionIsQuantifiable = !1, e.numCapturingParens = 0, e.maxBackReference = 0, e.groupNames.length = 0, e.backReferenceNames.length = 0, this.regexp_disjunction(e), e.pos !== e.source.length && (e.eat(41) && e.raise("Unmatched ')'"), (e.eat(93) || e.eat(125)) && e.raise("Lone quantifier brackets")), e.maxBackReference > e.numCapturingParens && e.raise("Invalid escape");
for (var t = 0, i = e.backReferenceNames; t < i.length; t += 1) {
var u = i[t];
e.groupNames.indexOf(u) === -1 && e.raise("Invalid named capture referenced");
}
};
M.regexp_disjunction = function(e) {
for (this.regexp_alternative(e); e.eat(124); )
this.regexp_alternative(e);
this.regexp_eatQuantifier(e, !0) && e.raise("Nothing to repeat"), e.eat(123) && e.raise("Lone quantifier brackets");
};
M.regexp_alternative = function(e) {
for (; e.pos < e.source.length && this.regexp_eatTerm(e); )
;
};
M.regexp_eatTerm = function(e) {
return this.regexp_eatAssertion(e) ? (e.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(e) && e.switchU && e.raise("Invalid quantifier"), !0) : (e.switchU ? this.regexp_eatAtom(e) : this.regexp_eatExtendedAtom(e)) ? (this.regexp_eatQuantifier(e), !0) : !1;
};
M.regexp_eatAssertion = function(e) {
var t = e.pos;
if (e.lastAssertionIsQuantifiable = !1, e.eat(94) || e.eat(36))
return !0;
if (e.eat(92)) {
if (e.eat(66) || e.eat(98))
return !0;
e.pos = t;
}
if (e.eat(40) && e.eat(63)) {
var i = !1;
if (this.options.ecmaVersion >= 9 && (i = e.eat(60)), e.eat(61) || e.eat(33))
return this.regexp_disjunction(e), e.eat(41) || e.raise("Unterminated group"), e.lastAssertionIsQuantifiable = !i, !0;
}
return e.pos = t, !1;
};
M.regexp_eatQuantifier = function(e, t) {
return t === void 0 && (t = !1), this.regexp_eatQuantifierPrefix(e, t) ? (e.eat(63), !0) : !1;
};
M.regexp_eatQuantifierPrefix = function(e, t) {
return e.eat(42) || e.eat(43) || e.eat(63) || this.regexp_eatBracedQuantifier(e, t);
};
M.regexp_eatBracedQuantifier = function(e, t) {
var i = e.pos;
if (e.eat(123)) {
var u = 0, n = -1;
if (this.regexp_eatDecimalDigits(e) && (u = e.lastIntValue, e.eat(44) && this.regexp_eatDecimalDigits(e) && (n = e.lastIntValue), e.eat(125)))
return n !== -1 && n < u && !t && e.raise("numbers out of order in {} quantifier"), !0;
e.switchU && !t && e.raise("Incomplete quantifier"), e.pos = i;
}
return !1;
};
M.regexp_eatAtom = function(e) {
return this.regexp_eatPatternCharacters(e) || e.eat(46) || this.regexp_eatReverseSolidusAtomEscape(e) || this.regexp_eatCharacterClass(e) || this.regexp_eatUncapturingGroup(e) || this.regexp_eatCapturingGroup(e);
};
M.regexp_eatReverseSolidusAtomEscape = function(e) {
var t = e.pos;
if (e.eat(92)) {
if (this.regexp_eatAtomEscape(e))
return !0;
e.pos = t;
}
return !1;
};
M.regexp_eatUncapturingGroup = function(e) {
var t = e.pos;
if (e.eat(40)) {
if (e.eat(63) && e.eat(58)) {
if (this.regexp_disjunction(e), e.eat(41))
return !0;
e.raise("Unterminated group");
}
e.pos = t;
}
return !1;
};
M.regexp_eatCapturingGroup = function(e) {
if (e.eat(40)) {
if (this.options.ecmaVersion >= 9 ? this.regexp_groupSpecifier(e) : e.current() === 63 && e.raise("Invalid group"), this.regexp_disjunction(e), e.eat(41))
return e.numCapturingParens += 1, !0;
e.raise("Unterminated group");
}
return !1;
};
M.regexp_eatExtendedAtom = function(e) {
return e.eat(46) || this.regexp_eatReverseSolidusAtomEscape(e) || this.regexp_eatCharacterClass(e) || this.regexp_eatUncapturingGroup(e) || this.regexp_eatCapturingGroup(e) || this.regexp_eatInvalidBracedQuantifier(e) || this.regexp_eatExtendedPatternCharacter(e);
};
M.regexp_eatInvalidBracedQuantifier = function(e) {
return this.regexp_eatBracedQuantifier(e, !0) && e.raise("Nothing to repeat"), !1;
};
M.regexp_eatSyntaxCharacter = function(e) {
var t = e.current();
return rr(t) ? (e.lastIntValue = t, e.advance(), !0) : !1;
};
function rr(e) {
return e === 36 || e >= 40 && e <= 43 || e === 46 || e === 63 || e >= 91 && e <= 94 || e >= 123 && e <= 125;
}
M.regexp_eatPatternCharacters = function(e) {
for (var t = e.pos, i = 0; (i = e.current()) !== -1 && !rr(i); )
e.advance();
return e.pos !== t;
};
M.regexp_eatExtendedPatternCharacter = function(e) {
var t = e.current();
return t !== -1 && t !== 36 && !(t >= 40 && t <= 43) && t !== 46 && t !== 63 && t !== 91 && t !== 94 && t !== 124 ? (e.advance(), !0) : !1;
};
M.regexp_groupSpecifier = function(e) {
if (e.eat(63)) {
if (this.regexp_eatGroupName(e)) {
e.groupNames.indexOf(e.lastStringValue) !== -1 && e.raise("Duplicate capture group name"), e.groupNames.push(e.lastStringValue);
return;
}
e.raise("Invalid group");
}
};
M.regexp_eatGroupName = function(e) {
if (e.lastStringValue = "", e.eat(60)) {
if (this.regexp_eatRegExpIdentifierName(e) && e.eat(62))
return !0;
e.raise("Invalid capture group name");
}
return !1;
};
M.regexp_eatRegExpIdentifierName = function(e) {
if (e.lastStringValue = "", this.regexp_eatRegExpIdentifierStart(e)) {
for (e.lastStringValue += Ne(e.lastIntValue); this.regexp_eatRegExpIdentifierPart(e); )
e.lastStringValue += Ne(e.lastIntValue);
return !0;
}
return !1;
};
M.regexp_eatRegExpIdentifierStart = function(e) {
var t = e.pos, i = this.options.ecmaVersion >= 11, u = e.current(i);
return e.advance(i), u === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, i) && (u = e.lastIntValue), Yu(u) ? (e.lastIntValue = u, !0) : (e.pos = t, !1);
};
function Yu(e) {
return we(e, !0) || e === 36 || e === 95;
}
M.regexp_eatRegExpIdentifierPart = function(e) {
var t = e.pos, i = this.options.ecmaVersion >= 11, u = e.current(i);
return e.advance(i), u === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, i) && (u = e.lastIntValue), Xu(u) ? (e.lastIntValue = u, !0) : (e.pos = t, !1);
};
function Xu(e) {
return We(e, !0) || e === 36 || e === 95 || e === 8204 || e === 8205;
}
M.regexp_eatAtomEscape = function(e) {
return this.regexp_eatBackReference(e) || this.regexp_eatCharacterClassEscape(e) || this.regexp_eatCharacterEscape(e) || e.switchN && this.regexp_eatKGroupName(e) ? !0 : (e.switchU && (e.current() === 99 && e.raise("Invalid unicode escape"), e.raise("Invalid escape")), !1);
};
M.regexp_eatBackReference = function(e) {
var t = e.pos;
if (this.regexp_eatDecimalEscape(e)) {
var i = e.lastIntValue;
if (e.switchU)
return i > e.maxBackReference && (e.maxBackReference = i), !0;
if (i <= e.numCapturingParens)
return !0;
e.pos = t;
}
return !1;
};
M.regexp_eatKGroupName = function(e) {
if (e.eat(107)) {
if (this.regexp_eatGroupName(e))
return e.backReferenceNames.push(e.lastStringValue), !0;
e.raise("Invalid named reference");
}
return !1;
};
M.regexp_eatCharacterEscape = function(e) {
return this.regexp_eatControlEscape(e) || this.regexp_eatCControlLetter(e) || this.regexp_eatZero(e) || this.regexp_eatHexEscapeSequence(e) || this.regexp_eatRegExpUnicodeEscapeSequence(e, !1) || !e.switchU && this.regexp_eatLegacyOctalEscapeSequence(e) || this.regexp_eatIdentityEscape(e);
};
M.regexp_eatCControlLetter = function(e) {
var t = e.pos;
if (e.eat(99)) {
if (this.regexp_eatControlLetter(e))
return !0;
e.pos = t;
}
return !1;
};
M.regexp_eatZero = function(e) {
return e.current() === 48 && !Ft(e.lookahead()) ? (e.lastIntValue = 0, e.advance(), !0) : !1;
};
M.regexp_eatControlEscape = function(e) {
var t = e.current();
return t === 116 ? (e.lastIntValue = 9, e.advance(), !0) : t === 110 ? (e.lastIntValue = 10, e.advance(), !0) : t === 118 ? (e.lastIntValue = 11, e.advance(), !0) : t === 102 ? (e.lastIntValue = 12, e.advance(), !0) : t === 114 ? (e.lastIntValue = 13, e.advance(), !0) : !1;
};
M.regexp_eatControlLetter = function(e) {
var t = e.current();
return ur(t) ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
function ur(e) {
return e >= 65 && e <= 90 || e >= 97 && e <= 122;
}
M.regexp_eatRegExpUnicodeEscapeSequence = function(e, t) {
t === void 0 && (t = !1);
var i = e.pos, u = t || e.switchU;
if (e.eat(117)) {
if (this.regexp_eatFixedHexDigits(e, 4)) {
var n = e.lastIntValue;
if (u && n >= 55296 && n <= 56319) {
var c = e.pos;
if (e.eat(92) && e.eat(117) && this.regexp_eatFixedHexDigits(e, 4)) {
var a = e.lastIntValue;
if (a >= 56320 && a <= 57343)
return e.lastIntValue = (n - 55296) * 1024 + (a - 56320) + 65536, !0;
}
e.pos = c, e.lastIntValue = n;
}
return !0;
}
if (u && e.eat(123) && this.regexp_eatHexDigits(e) && e.eat(125) && $u(e.lastIntValue))
return !0;
u && e.raise("Invalid unicode escape"), e.pos = i;
}
return !1;
};
function $u(e) {
return e >= 0 && e <= 1114111;
}
M.regexp_eatIdentityEscape = function(e) {
if (e.switchU)
return this.regexp_eatSyntaxCharacter(e) ? !0 : e.eat(47) ? (e.lastIntValue = 47, !0) : !1;
var t = e.current();
return t !== 99 && (!e.switchN || t !== 107) ? (e.lastIntValue = t, e.advance(), !0) : !1;
};
M.regexp_eatDecimalEscape = function(e) {
e.lastIntValue = 0;
var t = e.current();
if (t >= 49 && t <= 57) {
do
e.lastIntValue = 10 * e.lastIntValue + (t - 48), e.advance();
while ((t = e.current()) >= 48 && t <= 57);
return !0;
}
return !1;
};
M.regexp_eatCharacterClassEscape = function(e) {
var t = e.current();
if (Zu(t))
return e.lastIntValue = -1, e.advance(), !0;
if (e.switchU && this.options.ecmaVersion >= 9 && (t === 80 || t === 112)) {
if (e.lastIntValue = -1, e.advance(), e.eat(123) && this.regexp_eatUnicodePropertyValueExpression(e) && e.eat(125))
return !0;
e.raise("Invalid property name");
}
return !1;
};
function Zu(e) {
return e === 100 || e === 68 || e === 115 || e === 83 || e === 119 || e === 87;
}
M.regexp_eatUnicodePropertyValueExpression = function(e) {
var t = e.pos;
if (this.regexp_eatUnicodePropertyName(e) && e.eat(61)) {
var i = e.lastStringValue;
if (this.regexp_eatUnicodePropertyValue(e)) {
var u = e.lastStringValue;
return this.regexp_validateUnicodePropertyNameAndValue(e, i, u), !0;
}
}
if (e.pos = t, this.regexp_eatLoneUnicodePropertyNameOrValue(e)) {
var n = e.lastStringValue;
return this.regexp_validateUnicodePropertyNameOrValue(e, n), !0;
}
return !1;
};
M.regexp_validateUnicodePropertyNameAndValue = function(e, t, i) {
rt(e.unicodeProperties.nonBinary, t) || e.raise("Invalid property name"), e.unicodeProperties.nonBinary[t].test(i) || e.raise("Invalid property value");
};
M.regexp_validateUnicodePropertyNameOrValue = function(e, t) {
e.unicodeProperties.binary.test(t) || e.raise("Invalid property name");
};
M.regexp_eatUnicodePropertyName = function(e) {
var t = 0;
for (e.lastStringValue = ""; nr(t = e.current()); )
e.lastStringValue += Ne(t), e.advance();
return e.lastStringValue !== "";
};
function nr(e) {
return ur(e) || e === 95;
}
M.regexp_eatUnicodePropertyValue = function(e) {
var t = 0;
for (e.lastStringValue = ""; Ju(t = e.current()); )
e.lastStringValue += Ne(t), e.advance();
return e.lastStringValue !== "";
};
function Ju(e) {
return nr(e) || Ft(e);
}
M.regexp_eatLoneUnicodePropertyNameOrValue = function(e) {
return this.regexp_eatUnicodePropertyValue(e);
};
M.regexp_eatCharacterClass = function(e) {
if (e.eat(91)) {
if (e.eat(94), this.regexp_classRanges(e), e.eat(93))
return !0;
e.raise("Unterminated character class");
}
return !1;
};
M.regexp_classRanges = function(e) {
for (; this.regexp_eatClassAtom(e); ) {
var t = e.lastIntValue;
if (e.eat(45) && this.regexp_eatClassAtom(e)) {
var i = e.lastIntValue;
e.switchU && (t === -1 || i === -1) && e.raise("Invalid character class"), t !== -1 && i !== -1 && t > i && e.raise("Range out of order in character class");
}
}
};
M.regexp_eatClassAtom = function(e) {
var t = e.pos;
if (e.eat(92)) {
if (this.regexp_eatClassEscape(e))
return !0;
if (e.switchU) {
var i = e.current();
(i === 99 || or(i)) && e.raise("Invalid class escape"), e.raise("Invalid escape");
}
e.pos = t;
}
var u = e.current();
return u !== 93 ? (e.lastIntValue = u, e.advance(), !0) : !1;
};
M.regexp_eatClassEscape = function(e) {
var t = e.pos;
if (e.eat(98))
return e.lastIntValue = 8, !0;
if (e.switchU && e.eat(45))
return e.lastIntValue = 45, !0;
if (!e.switchU && e.eat(99)) {
if (this.regexp_eatClassControlLetter(e))
return !0;
e.pos = t;
}
return this.regexp_eatCharacterClassEscape(e) || this.regexp_eatCharacterEscape(e);
};
M.regexp_eatClassControlLetter = function(e) {
var t = e.current();
return Ft(t) || t === 95 ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
M.regexp_eatHexEscapeSequence = function(e) {
var t = e.pos;
if (e.eat(120)) {
if (this.regexp_eatFixedHexDigits(e, 2))
return !0;
e.switchU && e.raise("Invalid escape"), e.pos = t;
}
return !1;
};
M.regexp_eatDecimalDigits = function(e) {
var t = e.pos, i = 0;
for (e.lastIntValue = 0; Ft(i = e.current()); )
e.lastIntValue = 10 * e.lastIntValue + (i - 48), e.advance();
return e.pos !== t;
};
function Ft(e) {
return e >= 48 && e <= 57;
}
M.regexp_eatHexDigits = function(e) {
var t = e.pos, i = 0;
for (e.lastIntValue = 0; sr(i = e.current()); )
e.lastIntValue = 16 * e.lastIntValue + ar(i), e.advance();
return e.pos !== t;
};
function sr(e) {
return e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102;
}
function ar(e) {
return e >= 65 && e <= 70 ? 10 + (e - 65) : e >= 97 && e <= 102 ? 10 + (e - 97) : e - 48;
}
M.regexp_eatLegacyOctalEscapeSequence = function(e) {
if (this.regexp_eatOctalDigit(e)) {
var t = e.lastIntValue;
if (this.regexp_eatOctalDigit(e)) {
var i = e.lastIntValue;
t <= 3 && this.regexp_eatOctalDigit(e) ? e.lastIntValue = t * 64 + i * 8 + e.lastIntValue : e.lastIntValue = t * 8 + i;
} else
e.lastIntValue = t;
return !0;
}
return !1;
};
M.regexp_eatOctalDigit = function(e) {
var t = e.current();
return or(t) ? (e.lastIntValue = t - 48, e.advance(), !0) : (e.lastIntValue = 0, !1);
};
function or(e) {
return e >= 48 && e <= 55;
}
M.regexp_eatFixedHexDigits = function(e, t) {
var i = e.pos;
e.lastIntValue = 0;
for (var u = 0; u < t; ++u) {
var n = e.current();
if (!sr(n))
return e.pos = i, !1;
e.lastIntValue = 16 * e.lastIntValue + ar(n), e.advance();
}
return !0;
};
var zt = function(t) {
this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, t.options.locations && (this.loc = new Ct(t, t.startLoc, t.endLoc)), t.options.ranges && (this.range = [t.start, t.end]);
}, H = oe.prototype;
H.next = function(e) {
!e && this.type.keyword && this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword), this.options.onToken && this.options.onToken(new zt(this)), this.lastTokEnd = this.end, this.lastTokStart = this.start, this.lastTokEndLoc = this.endLoc, this.lastTokStartLoc = this.startLoc, this.nextToken();
};
H.getToken = function() {
return this.next(), new zt(this);
};
typeof Symbol < "u" && (H[Symbol.iterator] = function() {
var e = this;
return {
next: function() {
var t = e.getToken();
return {
done: t.type === h.eof,
value: t
};
}
};
});
H.nextToken = function() {
var e = this.curContext();
if ((!e || !e.preserveSpace) && this.skipSpace(), this.start = this.pos, this.options.locations && (this.startLoc = this.curPosition()), this.pos >= this.input.length)
return this.finishToken(h.eof);
if (e.override)
return e.override(this);
this.readToken(this.fullCharCodeAtPos());
};
H.readToken = function(e) {
return we(e, this.options.ecmaVersion >= 6) || e === 92 ? this.readWord() : this.getTokenFromCode(e);
};
H.fullCharCodeAtPos = function() {
var e = this.input.charCodeAt(this.pos);
if (e <= 55295 || e >= 56320)
return e;
var t = this.input.charCodeAt(this.pos + 1);
return t <= 56319 || t >= 57344 ? e : (e << 10) + t - 56613888;
};
H.skipBlockComment = function() {
var e = this.options.onComment && this.curPosition(), t = this.pos, i = this.input.indexOf("*/", this.pos += 2);
if (i === -1 && this.raise(this.pos - 2, "Unterminated comment"), this.pos = i + 2, this.options.locations)
for (var u = void 0, n = t; (u = Ni(this.input, n, this.pos)) > -1; )
++this.curLine, n = this.lineStart = u;
this.options.onComment && this.options.onComment(
!0,
this.input.slice(t + 2, i),
t,
this.pos,
e,
this.curPosition()
);
};
H.skipLineComment = function(e) {
for (var t = this.pos, i = this.options.onComment && this.curPosition(), u = this.input.charCodeAt(this.pos += e); this.pos < this.input.length && !Ge(u); )
u = this.input.charCodeAt(++this.pos);
this.options.onComment && this.options.onComment(
!1,
this.input.slice(t + e, this.pos),
t,
this.pos,
i,
this.curPosition()
);
};
H.skipSpace = function() {
e:
for (; this.pos < this.input.length; ) {
var e = this.input.charCodeAt(this.pos);
switch (e) {
case 32:
case 160:
++this.pos;
break;
case 13:
this.input.charCodeAt(this.pos + 1) === 10 && ++this.pos;
case 10:
case 8232:
case 8233:
++this.pos, this.options.locations && (++this.curLine, this.lineStart = this.pos);
break;
case 47:
switch (this.input.charCodeAt(this.pos + 1)) {
case 42:
this.skipBlockComment();
break;
case 47:
this.skipLineComment(2);
break;
default:
break e;
}
break;
default:
if (e > 8 && e < 14 || e >= 5760 && Ti.test(String.fromCharCode(e)))
++this.pos;
else
break e;
}
}
};
H.finishToken = function(e, t) {
this.end = this.pos, this.options.locations && (this.endLoc = this.curPosition());
var i = this.type;
this.type = e, this.value = t, this.updateContext(i);
};
H.readToken_dot = function() {
var e = this.input.charCodeAt(this.pos + 1);
if (e >= 48 && e <= 57)
return this.readNumber(!0);
var t = this.input.charCodeAt(this.pos + 2);
return this.options.ecmaVersion >= 6 && e === 46 && t === 46 ? (this.pos += 3, this.finishToken(h.ellipsis)) : (++this.pos, this.finishToken(h.dot));
};
H.readToken_slash = function() {
var e = this.input.charCodeAt(this.pos + 1);
return this.exprAllowed ? (++this.pos, this.readRegexp()) : e === 61 ? this.finishOp(h.assign, 2) : this.finishOp(h.slash, 1);
};
H.readToken_mult_modulo_exp = function(e) {
var t = this.input.charCodeAt(this.pos + 1), i = 1, u = e === 42 ? h.star : h.modulo;
return this.options.ecmaVersion >= 7 && e === 42 && t === 42 && (++i, u = h.starstar, t = this.input.charCodeAt(this.pos + 2)), t === 61 ? this.finishOp(h.assign, i + 1) : this.finishOp(u, i);
};
H.readToken_pipe_amp = function(e) {
var t = this.input.charCodeAt(this.pos + 1);
if (t === e) {
if (this.options.ecmaVersion >= 12) {
var i = this.input.charCodeAt(this.pos + 2);
if (i === 61)
return this.finishOp(h.assign, 3);
}
return this.finishOp(e === 124 ? h.logicalOR : h.logicalAND, 2);
}
return t === 61 ? this.finishOp(h.assign, 2) : this.finishOp(e === 124 ? h.bitwiseOR : h.bitwiseAND, 1);
};
H.readToken_caret = function() {
var e = this.input.charCodeAt(this.pos + 1);
return e === 61 ? this.finishOp(h.assign, 2) : this.finishOp(h.bitwiseXOR, 1);
};
H.readToken_plus_min = function(e) {
var t = this.input.charCodeAt(this.pos + 1);
return t === e ? t === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && (this.lastTokEnd === 0 || Fe.test(this.input.slice(this.lastTokEnd, this.pos))) ? (this.skipLineComment(3), this.skipSpace(), this.nextToken()) : this.finishOp(h.incDec, 2) : t === 61 ? this.finishOp(h.assign, 2) : this.finishOp(h.plusMin, 1);
};
H.readToken_lt_gt = function(e) {
var t = this.input.charCodeAt(this.pos + 1), i = 1;
return t === e ? (i = e === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2, this.input.charCodeAt(this.pos + i) === 61 ? this.finishOp(h.assign, i + 1) : this.finishOp(h.bitShift, i)) : t === 33 && e === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45 ? (this.skipLineComment(4), this.skipSpace(), this.nextToken()) : (t === 61 && (i = 2), this.finishOp(h.relational, i));
};
H.readToken_eq_excl = function(e) {
var t = this.input.charCodeAt(this.pos + 1);
return t === 61 ? this.finishOp(h.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) : e === 61 && t === 62 && this.options.ecmaVersion >= 6 ? (this.pos += 2, this.finishToken(h.arrow)) : this.finishOp(e === 61 ? h.eq : h.prefix, 1);
};
H.readToken_question = function() {
var e = this.options.ecmaVersion;
if (e >= 11) {
var t = this.input.charCodeAt(this.pos + 1);
if (t === 46) {
var i = this.input.charCodeAt(this.pos + 2);
if (i < 48 || i > 57)
return this.finishOp(h.questionDot, 2);
}
if (t === 63) {
if (e >= 12) {
var u = this.input.charCodeAt(this.pos + 2);
if (u === 61)
return this.finishOp(h.assign, 3);
}
return this.finishOp(h.coalesce, 2);
}
}
return this.finishOp(h.question, 1);
};
H.readToken_numberSign = function() {
var e = this.options.ecmaVersion, t = 35;
if (e >= 13 && (++this.pos, t = this.fullCharCodeAtPos(), we(t, !0) || t === 92))
return this.finishToken(h.privateId, this.readWord1());
this.raise(this.pos, "Unexpected character '" + Ne(t) + "'");
};
H.getTokenFromCode = function(e) {
switch (e) {
case 46:
return this.readToken_dot();
case 40:
return ++this.pos, this.finishToken(h.parenL);
case 41:
return ++this.pos, this.finishToken(h.parenR);
case 59:
return ++this.pos, this.finishToken(h.semi);
case 44:
return ++this.pos, this.finishToken(h.comma);
case 91:
return ++this.pos, this.finishToken(h.bracketL);
case 93:
return ++this.pos, this.finishToken(h.bracketR);
case 123:
return ++this.pos, this.finishToken(h.braceL);
case 125:
return ++this.pos, this.finishToken(h.braceR);
case 58:
return ++this.pos, this.finishToken(h.colon);
case 96:
if (this.options.ecmaVersion < 6)
break;
return ++this.pos, this.finishToken(h.backQuote);
case 48:
var t = this.input.charCodeAt(this.pos + 1);
if (t === 120 || t === 88)
return this.readRadixNumber(16);
if (this.options.ecmaVersion >= 6) {
if (t === 111 || t === 79)
return this.readRadixNumber(8);
if (t === 98 || t === 66)
return this.readRadixNumber(2);
}
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
return this.readNumber(!1);
case 34:
case 39:
return this.readString(e);
case 47:
return this.readToken_slash();
case 37:
case 42:
return this.readToken_mult_modulo_exp(e);
case 124:
case 38:
return this.readToken_pipe_amp(e);
case 94:
return this.readToken_caret();
case 43:
case 45:
return this.readToken_plus_min(e);
case 60:
case 62:
return this.readToken_lt_gt(e);
case 61:
case 33:
return this.readToken_eq_excl(e);
case 63:
return this.readToken_question();
case 126:
return this.finishOp(h.prefix, 1);
case 35:
return this.readToken_numberSign();
}
this.raise(this.pos, "Unexpected character '" + Ne(e) + "'");
};
H.finishOp = function(e, t) {
var i = this.input.slice(this.pos, this.pos + t);
return this.pos += t, this.finishToken(e, i);
};
H.readRegexp = function() {
for (var e, t, i = this.pos; ; ) {
this.pos >= this.input.length && this.raise(i, "Unterminated regular expression");
var u = this.input.charAt(this.pos);
if (Fe.test(u) && this.raise(i, "Unterminated regular expression"), e)
e = !1;
else {
if (u === "[")
t = !0;
else if (u === "]" && t)
t = !1;
else if (u === "/" && !t)
break;
e = u === "\\";
}
++this.pos;
}
var n = this.input.slice(i, this.pos);
++this.pos;
var c = this.pos, a = this.readWord1();
this.containsEsc && this.unexpected(c);
var f = this.regexpState || (this.regexpState = new ke(this));
f.reset(i, n, a), this.validateRegExpFlags(f), this.validateRegExpPattern(f);
var p = null;
try {
p = new RegExp(n, a);
} catch {
}
return this.finishToken(h.regexp, { pattern: n, flags: a, value: p });
};
H.readInt = function(e, t, i) {
for (var u = this.options.ecmaVersion >= 12 && t === void 0, n = i && this.input.charCodeAt(this.pos) === 48, c = this.pos, a = 0, f = 0, p = 0, D = t ?? 1 / 0; p < D; ++p, ++this.pos) {
var m = this.input.charCodeAt(this.pos), v = void 0;
if (u && m === 95) {
n && this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"), f === 95 && this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"), p === 0 && this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"), f = m;
continue;
}
if (m >= 97 ? v = m - 97 + 10 : m >= 65 ? v = m - 65 + 10 : m >= 48 && m <= 57 ? v = m - 48 : v = 1 / 0, v >= e)
break;
f = m, a = a * e + v;
}
return u && f === 95 && this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"), this.pos === c || t != null && this.pos - c !== t ? null : a;
};
function en(e, t) {
return t ? parseInt(e, 8) : parseFloat(e.replace(/_/g, ""));
}
function lr(e) {
return typeof BigInt != "function" ? null : BigInt(e.replace(/_/g, ""));
}
H.readRadixNumber = function(e) {
var t = this.pos;
this.pos += 2;
var i = this.readInt(e);
return i == null && this.raise(this.start + 2, "Expected number in radix " + e), this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110 ? (i = lr(this.input.slice(t, this.pos)), ++this.pos) : we(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(h.num, i);
};
H.readNumber = function(e) {
var t = this.pos;
!e && this.readInt(10, void 0, !0) === null && this.raise(t, "Invalid number");
var i = this.pos - t >= 2 && this.input.charCodeAt(t) === 48;
i && this.strict && this.raise(t, "Invalid number");
var u = this.input.charCodeAt(this.pos);
if (!i && !e && this.options.ecmaVersion >= 11 && u === 110) {
var n = lr(this.input.slice(t, this.pos));
return ++this.pos, we(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(h.num, n);
}
i && /[89]/.test(this.input.slice(t, this.pos)) && (i = !1), u === 46 && !i && (++this.pos, this.readInt(10), u = this.input.charCodeAt(this.pos)), (u === 69 || u === 101) && !i && (u = this.input.charCodeAt(++this.pos), (u === 43 || u === 45) && ++this.pos, this.readInt(10) === null && this.raise(t, "Invalid number")), we(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number");
var c = en(this.input.slice(t, this.pos), i);
return this.finishToken(h.num, c);
};
H.readCodePoint = function() {
var e = this.input.charCodeAt(this.pos), t;
if (e === 123) {
this.options.ecmaVersion < 6 && this.unexpected();
var i = ++this.pos;
t = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos), ++this.pos, t > 1114111 && this.invalidStringToken(i, "Code point out of bounds");
} else
t = this.readHexChar(4);
return t;
};
H.readString = function(e) {
for (var t = "", i = ++this.pos; ; ) {
this.pos >= this.input.length && this.raise(this.start, "Unterminated string constant");
var u = this.input.charCodeAt(this.pos);
if (u === e)
break;
u === 92 ? (t += this.input.slice(i, this.pos), t += this.readEscapedChar(!1), i = this.pos) : u === 8232 || u === 8233 ? (this.options.ecmaVersion < 10 && this.raise(this.start, "Unterminated string constant"), ++this.pos, this.options.locations && (this.curLine++, this.lineStart = this.pos)) : (Ge(u) && this.raise(this.start, "Unterminated string constant"), ++this.pos);
}
return t += this.input.slice(i, this.pos++), this.finishToken(h.string, t);
};
var cr = {};
H.tryReadTemplateToken = function() {
this.inTemplateElement = !0;
try {
this.readTmplToken();
} catch (e) {
if (e === cr)
this.readInvalidTemplateToken();
else
throw e;
}
this.inTemplateElement = !1;
};
H.invalidStringToken = function(e, t) {
if (this.inTemplateElement && this.options.ecmaVersion >= 9)
throw cr;
this.raise(e, t);
};
H.readTmplToken = function() {
for (var e = "", t = this.pos; ; ) {
this.pos >= this.input.length && this.raise(this.start, "Unterminated template");
var i = this.input.charCodeAt(this.pos);
if (i === 96 || i === 36 && this.input.charCodeAt(this.pos + 1) === 123)
return this.pos === this.start && (this.type === h.template || this.type === h.invalidTemplate) ? i === 36 ? (this.pos += 2, this.finishToken(h.dollarBraceL)) : (++this.pos, this.finishToken(h.backQuote)) : (e += this.input.slice(t, this.pos), this.finishToken(h.template, e));
if (i === 92)
e += this.input.slice(t, this.pos), e += this.readEscapedChar(!0), t = this.pos;
else if (Ge(i)) {
switch (e += this.input.slice(t, this.pos), ++this.pos, i) {
case 13:
this.input.charCodeAt(this.pos) === 10 && ++this.pos;
case 10:
e += `
`;
break;
default:
e += String.fromCharCode(i);
break;
}
this.options.locations && (++this.curLine, this.lineStart = this.pos), t = this.pos;
} else
++this.pos;
}
};
H.readInvalidTemplateToken = function() {
for (; this.pos < this.input.length; this.pos++)
switch (this.input[this.pos]) {
case "\\":
++this.pos;
break;
case "$":
if (this.input[this.pos + 1] !== "{")
break;
case "`":
return this.finishToken(h.invalidTemplate, this.input.slice(this.start, this.pos));
}
this.raise(this.start, "Unterminated template");
};
H.readEscapedChar = function(e) {
var t = this.input.charCodeAt(++this.pos);
switch (++this.pos, t) {
case 110:
return `
`;
case 114:
return "\r";
case 120:
return String.fromCharCode(this.readHexChar(2));
case 117:
return Ne(this.readCodePoint());
case 116:
return " ";
case 98:
return "\b";
case 118:
return "\v";
case 102:
return "\f";
case 13:
this.input.charCodeAt(this.pos) === 10 && ++this.pos;
case 10:
return this.options.locations && (this.lineStart = this.pos, ++this.curLine), "";
case 56:
case 57:
if (this.strict && this.invalidStringToken(
this.pos - 1,
"Invalid escape sequence"
), e) {
var i = this.pos - 1;
return this.invalidStringToken(
i,
"Invalid escape sequence in template string"
), null;
}
default:
if (t >= 48 && t <= 55) {
var u = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0], n = parseInt(u, 8);
return n > 255 && (u = u.slice(0, -1), n = parseInt(u, 8)), this.pos += u.length - 1, t = this.input.charCodeAt(this.pos), (u !== "0" || t === 56 || t === 57) && (this.strict || e) && this.invalidStringToken(
this.pos - 1 - u.length,
e ? "Octal literal in template string" : "Octal literal in strict mode"
), String.fromCharCode(n);
}
return Ge(t) ? "" : String.fromCharCode(t);
}
};
H.readHexChar = function(e) {
var t = this.pos, i = this.readInt(16, e);
return i === null && this.invalidStringToken(t, "Bad character escape sequence"), i;
};
H.readWord1 = function() {
this.containsEsc = !1;
for (var e = "", t = !0, i = this.pos, u = this.options.ecmaVersion >= 6; this.pos < this.input.length; ) {
var n = this.fullCharCodeAtPos();
if (We(n, u))
this.pos += n <= 65535 ? 1 : 2;
else if (n === 92) {
this.containsEsc = !0, e += this.input.slice(i, this.pos);
var c = this.pos;
this.input.charCodeAt(++this.pos) !== 117 && this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"), ++this.pos;
var a = this.readCodePoint();
(t ? we : We)(a, u) || this.invalidStringToken(c, "Invalid Unicode escape"), e += Ne(a), i = this.pos;
} else
break;
t = !1;
}
return e + this.input.slice(i, this.pos);
};
H.readWord = function() {
var e = this.readWord1(), t = h.name;
return this.keywords.test(e) && (t = Ot[e]), this.finishToken(t, e);
};
var tn = "8.8.1";
oe.acorn = {
Parser: oe,
version: tn,
defaultOptions: Tt,
Position: et,
SourceLocation: Ct,
getLineInfo: Mi,
Node: Et,
TokenType: X,
tokTypes: h,
keywordTypes: Ot,
TokContext: ve,
tokContexts: ee,
isIdentifierChar: We,
isIdentifierStart: we,
Token: zt,
isNewLine: Ge,
lineBreak: Fe,
lineBreakG: Iu,
nonASCIIwhitespace: Ti
};
function rn(e, t) {
return oe.parse(e, t);
}
class un {
constructor() {
this.should_skip = !1, this.should_remove = !1, this.replacement = null, this.context = {
skip: () => this.should_skip = !0,
remove: () => this.should_remove = !0,
replace: (t) => this.replacement = t
};
}
replace(t, i, u, n) {
t && (u !== null ? t[i][u] = n : t[i] = n);
}
remove(t, i, u) {
t && (u !== null ? t[i].splice(u, 1) : delete t[i]);
}
}
class nn extends un {
constructor(t, i) {
super(), this.enter = t, this.leave = i;
}
visit(t, i, u, n) {
if (t) {
if (this.enter) {
const c = this.should_skip, a = this.should_remove, f = this.replacement;
this.should_skip = !1, this.should_remove = !1, this.replacement = null, this.enter.call(this.context, t, i, u, n), this.replacement && (t = this.replacement, this.replace(i, u, n, t)), this.should_remove && this.remove(i, u, n);
const p = this.should_skip, D = this.should_remove;
if (this.should_skip = c, this.should_remove = a, this.replacement = f, p)
return t;
if (D)
return null;
}
for (const c in t) {
const a = t[c];
if (typeof a == "object")
if (Array.isArray(a))
for (let f = 0; f < a.length; f += 1)
a[f] !== null && typeof a[f].type == "string" && (this.visit(a[f], t, c, f) || f--);
else
a !== null && typeof a.type == "string" && this.visit(a, t, c, null);
}
if (this.leave) {
const c = this.replacement, a = this.should_remove;
this.replacement = null, this.should_remove = !1, this.leave.call(this.context, t, i, u, n), this.replacement && (t = this.replacement, this.replace(i, u, n, t)), this.should_remove && this.remove(i, u, n);
const f = this.should_remove;
if (this.replacement = c, this.should_remove = a, f)
return null;
}
}
return t;
}
}
function sn(e, { enter: t, leave: i }) {
return new nn(t, i).visit(e, null);
}
function an(e, t = {}) {
const { wrapAsync: i = !1, addReturn: u = !0, simpleLocs: n = !1 } = t;
let c = rn(e, {
ecmaVersion: 2022,
allowAwaitOutsideFunction: !0,
locations: !0
});
sn(c, {
enter(p, D, m, v) {
if (ln(p, D)) {
const { quasis: g, start: A, end: E } = p, { raw: C } = g[0].value;
return this.skip(), this.replace(Ci(C, p, n));
}
if (on(p)) {
const { value: g, start: A, end: E } = p;
return this.skip(), this.replace(Ci(g, p, n));
}
if (p.type === "Identifier" && Pr(p.name))
return this.skip(), this.replace({ type: "Literal", value: p.name });
},
leave(p, D, m, v) {
}
});
const { body: a } = c;
if (!a?.[a.length - 1]?.expression)
throw new Error("unexpected ast format without body expression");
if (u) {
const { expression: p } = a[a.length - 1];
a[a.length - 1] = {
type: "ReturnStatement",
argument: p
};
}
const f = bi.generate(c);
return i ? `(async ()=>{${f}})()` : f;
}
function on(e, t, i) {
const { raw: u, type: n } = e;
return n !== "Literal" ? !1 : u[0] === '"';
}
function ln(e, t) {
return e.type === "TemplateLiteral" && t.type !== "TaggedTemplateExpression";
}
function Ci(e, t, i) {
let u;
const { start: n, end: c } = t;
if (i)
u = [
{
type: "Literal",
value: n
},
{
type: "Literal",
value: c
}
];
else {
const {
loc: {
start: { line: a, column: f },
end: { line: p, column: D }
}
} = t;
u = [
{
type: "ArrayExpression",
elements: [a, f, n].map((m) => ({
type: "Literal",
value: m
}))
},
{
type: "ArrayExpression",
elements: [p, D, c].map((m) => ({
type: "Literal",
value: m
}))
}
];
}
return {
type: "CallExpression",
callee: {
type: "MemberExpression",
object: {
type: "CallExpression",
callee: {
type: "Identifier",
name: "mini"
},
arguments: [{ type: "Literal", value: e }],
optional: !1
},
property: {
type: "Identifier",
name: "withMiniLocation"
}
},
arguments: u,
optional: !1
};
}
function cn({
defaultOutput: e,
interval: t,
getTime: i,
evalOnMount: u = !1,
initialCode: n = "",
autolink: c = !1,
afterEval: a,
onEvalError: f
}) {
const [p, D] = Ve(), [m, v] = Ve(), [g, A] = Ve(n), [E, C] = Ve(g), [x, I] = Ve(), [P, O] = Ve(!1), y = g !== E, { scheduler: F, evaluate: S, start: B, stop: w, pause: W } = Ai(
() => eu({
interval: t,
defaultOutput: e,
onSchedulerError: D,
onEvalError: (j) => {
v(j), f?.(j);
},
getTime: i,
transpiler: an,
beforeEval: ({ code: j }) => {
A(j);
},
afterEval: ({ pattern: j, code: J }) => {
C(J), I(j), v(), D(), c && (window.location.hash = "#" + encodeURIComponent(btoa(J))), a?.();
},
onToggle: (j) => O(j)
}),
[e, t, i]
), N = Ze(async (j = !0) => S(g, j), [S, g]), G = pt();
return dt(() => {
!G.current && u && g && (G.current = !0, N());
}, [N, u, g]), dt(() => () => {
F.stop();
}, [F]), {
code: g,
setCode: A,
error: p || m,
schedulerError: p,
scheduler: F,
evalError: m,
evaluate: S,
activateCode: N,
activeCode: E,
isDirty: y,
pattern: x,
started: P,
start: B,
stop: w,
pause: W,
togglePlay: async () => {
P ? F.pause() : await N();
}
};
}
const hn = () => kr().currentTime;
function vn({ tune: e, hideOutsideView: t = !1, init: i, enableKeyboard: u }) {
const {
code: n,
setCode: c,
evaluate: a,
activateCode: f,
error: p,
isDirty: D,
activeCode: m,
pattern: v,
started: g,
scheduler: A,
togglePlay: E,
stop: C
} = cn({
initialCode: e,
defaultOutput: wr,
getTime: hn
}), [x, I] = Ve(), [P, O] = _r({
threshold: 0.01
}), y = pt(), F = Ai(() => ((O || !t) && (y.current = !0), O || y.current), [O, t]);
return Vr({
view: x,
pattern: v,
active: g && !m?.includes("strudel disable-highlighting"),
getTime: () => A.getPhase()
}), Ei(() => {
if (u) {
const S = async (B) => {
(B.ctrlKey || B.altKey) && (B.code === "Enter" ? (B.preventDefault(), Tr(x), await f()) : B.code === "Period" && (C(), B.preventDefault()));
};
return window.addEventListener("keydown", S, !0), () => window.removeEventListener("keydown", S, !0);
}
}, [u, v, n, a, C, x]), /* @__PURE__ */ he.createElement("div", {
className: Ie.container,
ref: P
}, /* @__PURE__ */ he.createElement("div", {
className: Ie.header
}, /* @__PURE__ */ he.createElement("div", {
className: Ie.buttons
}, /* @__PURE__ */ he.createElement("button", {
className: ti(Ie.button, g ? "sc-animate-pulse" : ""),
onClick: () => E()
}, /* @__PURE__ */ he.createElement(ii, {
type: g ? "pause" : "play"
})), /* @__PURE__ */ he.createElement("button", {
className: ti(D ? Ie.button : Ie.buttonDisabled),
onClick: () => f()
}, /* @__PURE__ */ he.createElement(ii, {
type: "refresh"
}))), p && /* @__PURE__ */ he.createElement("div", {
className: Ie.error
}, p.message)), /* @__PURE__ */ he.createElement("div", {
className: Ie.body
}, F && /* @__PURE__ */ he.createElement(Or, {
value: n,
onChange: c,
onViewChanged: I
})));
}
function xn(e) {
return dt(() => (window.addEventListener("message", e), () => window.removeEventListener("message", e)), [e]), Ze((t) => window.postMessage(t, "*"), []);
}
const yn = (e) => Ei(() => (window.addEventListener("keydown", e, !0), () => window.removeEventListener("keydown", e, !0)), [e]);
export {
Or as CodeMirror,
vn as MiniRepl,
ti as cx,
Tr as flash,
Vr as useHighlighting,
yn as useKeydown,
xn as usePostMessage,
cn as useStrudel
};