import { n as __esmMin } from "./rolldown-runtime-CE-6LUnI.js";
//#region ../../node_modules/.pnpm/prettier@3.9.6/node_modules/prettier/plugins/angular.mjs
function pr(t) {
	return typeof t == "string" ? (e) => e === t : (e) => t.test(e);
}
function An(t, e, n) {
	let s = pr(e);
	for (let i = n; i < t.length; i++) {
		let r = t[i];
		if (s(r)) return i;
	}
	throw new Error(`Cannot find character ${e} from index ${n} in ${JSON.stringify(t)}`);
}
function Pn(t) {
	return t.slice(0, 1).toLowerCase() + t.slice(1);
}
function Be(t) {
	let { start: e, end: n } = t;
	return {
		start: e,
		end: n,
		range: [e, n]
	};
}
function Nn(t) {
	return !!t.extra?.parenthesized;
}
function ye(t) {
	return t.type === "TSNonNullExpression" && !Nn(t) ? ye(t.expression) : (t.type === "OptionalCallExpression" || t.type === "OptionalMemberExpression") && !Nn(t);
}
function fr() {
	return K || (K = yt(), B(x.HTML, void 0, [["iframe", ["srcdoc"]], ["*", ["innerHTML", "outerHTML"]]]), B(x.STYLE, void 0, [["*", ["style"]]]), B(x.URL, void 0, [
		["*", ["formAction"]],
		["area", ["href"]],
		["a", ["href", "xlink:href"]],
		["form", ["action"]],
		["img", ["src"]],
		["video", ["src"]]
	]), B(x.URL, hr, [["*", ["href", "xlink:href"]]]), B(x.RESOURCE_URL, void 0, [
		["base", ["href"]],
		["embed", ["src"]],
		["frame", ["src"]],
		["iframe", ["src"]],
		["link", ["href"]],
		["object", ["codebase", "data"]]
	]), B(x.URL, Ln, [["a", ["href", "xlink:href"]]]), B(x.ATTRIBUTE_NO_BINDING, Ln, [
		["animate", [
			"attributeName",
			"values",
			"to",
			"from"
		]],
		["set", ["to", "attributeName"]],
		["animateMotion", ["attributeName"]],
		["animateTransform", ["attributeName"]]
	]), B(x.ATTRIBUTE_NO_BINDING, void 0, [["unknown", [
		"attributeName",
		"values",
		"to",
		"from",
		"sandbox",
		"allow",
		"allowFullscreen",
		"referrerPolicy",
		"csp",
		"fetchPriority",
		"credentialless"
	]], ["iframe", [
		"sandbox",
		"allow",
		"allowFullscreen",
		"referrerPolicy",
		"csp",
		"fetchPriority",
		"credentialless"
	]]]), K);
}
function B(t, e, n) {
	let s = e ?? Bs;
	for (let [i, r] of n) {
		let a = i.toLowerCase();
		for (let u of r) {
			let h = u.toLowerCase(), d = K[h] ?? (K[h] = yt()), g = d[s] ?? (d[s] = yt());
			g[a] = t;
		}
	}
}
function dr(t, e, n) {
	let i = fr()[e.toLowerCase()];
	if (!i) return x.NONE;
	let r = t.toLowerCase(), a;
	if (n) {
		let u = i[n];
		u && (a = u[r] ?? u[$n]);
	}
	if (a === void 0) {
		let u = i[Bs];
		u && (a = u[r] ?? u[$n]);
	}
	return a ?? x.NONE;
}
function mr(t, e) {
	return t == null || e == null ? t == e : t.isEquivalent(e);
}
function gr(t, e, n) {
	let s = t.length;
	if (s !== e.length) return !1;
	for (let i = 0; i < s; i++) if (!n(t[i], e[i])) return !1;
	return !0;
}
function ue(t, e) {
	return gr(t, e, (n, s) => n.isEquivalent(s));
}
function wr(t) {
	return t.replace(vr, (...e) => e[1].toUpperCase());
}
function ot(t, e = !0) {
	if (t[0] != ":") return [null, t];
	let n = t.indexOf(":", 1);
	if (n === -1) {
		if (e) throw new Error(`Unsupported format "${t}" expecting ":namespace:name"`);
		return [null, t];
	}
	return [t.slice(1, n), t.slice(n + 1)];
}
function Kn(t) {
	return ot(t)[1] === "ng-container";
}
function Zn(t) {
	return ot(t)[1] === "ng-content";
}
function Fr(t) {
	return t >= Fs && t <= Vs || t == Gs;
}
function X(t) {
	return Ir <= t && t <= Nr;
}
function en(t) {
	return t >= js && t <= zs || t >= pn && t <= hn;
}
function rs(t) {
	return t === Us || t === Hs || t === Zt;
}
function Ce(t, e, n) {
	return new I(t, e, f.Character, n, String.fromCharCode(n));
}
function no(t, e, n) {
	return new I(t, e, f.Identifier, 0, n);
}
function so(t, e, n) {
	return new I(t, e, f.PrivateIdentifier, 0, n);
}
function io(t, e, n) {
	return new I(t, e, f.Keyword, 0, n);
}
function F(t, e, n) {
	return new I(t, e, f.Operator, 0, n);
}
function ro(t, e, n) {
	return new I(t, e, f.Number, n, "");
}
function oo(t, e, n) {
	return new I(t, e, f.Error, 0, n);
}
function ao(t, e, n) {
	return new I(t, e, f.RegExpBody, 0, n);
}
function lo(t, e, n) {
	return new I(t, e, f.RegExpFlags, 0, n);
}
function Ts(t) {
	return js <= t && t <= zs || pn <= t && t <= hn || t == at || t == un;
}
function ks(t) {
	return en(t) || X(t) || t == at || t == un;
}
function co(t) {
	return t == Lr || t == Ar;
}
function uo(t) {
	return t == qs || t == Ws;
}
function po(t) {
	switch (t) {
		case Mr: return Ve;
		case $r: return Er;
		case Rr: return Cr;
		case Or: return Fs;
		case Br: return yr;
		default: return t;
	}
}
function ho(t) {
	let e = parseInt(t);
	if (isNaN(e)) throw new Error("Invalid integer literal when parsing " + t);
	return e;
}
function H(t) {
	return t.start.toString() || "(unknown)";
}
function le(t, e, n, s) {
	n.length > 0 && (n = ` ${n} `);
	let i = H(s);
	return new Re(s, `Parser Error: ${t}${n}[${e}] in ${i}`);
}
function fo(t) {
	let e = /* @__PURE__ */ new Map(), n = 0, s = 0, i = 0;
	for (; i < t.length;) {
		let r = t[i];
		if (r.type === 9) {
			let [a, u] = r.parts;
			n += u.length, s += a.length;
		} else {
			let a = r.parts.reduce((u, h) => u + h.length, 0);
			s += a, n += a;
		}
		e.set(s, n), i++;
	}
	return e;
}
function Fe(t) {
	let [n, s] = ot(t.toLowerCase(), !1);
	return n === mo || n === go ? `:${n}:${s}` : s;
}
function Co(t) {
	switch (t) {
		case "width":
		case "height":
		case "minWidth":
		case "minHeight":
		case "maxWidth":
		case "maxHeight":
		case "left":
		case "top":
		case "bottom":
		case "right":
		case "fontSize":
		case "outlineWidth":
		case "outlineOffset":
		case "paddingTop":
		case "paddingLeft":
		case "paddingBottom":
		case "paddingRight":
		case "marginTop":
		case "marginLeft":
		case "marginBottom":
		case "marginRight":
		case "borderRadius":
		case "borderWidth":
		case "borderTopWidth":
		case "borderLeftWidth":
		case "borderRightWidth":
		case "borderBottomWidth":
		case "textIndent": return !0;
		default: return !1;
	}
}
function ei(t) {
	let e = new et(t, ko), n = new Ze(e, 0, 0, 0), s = n.moveBy(t.length);
	return {
		text: t,
		file: e,
		start: n,
		end: s,
		sourceSpan: new tt(n, s)
	};
}
function ti() {
	return _o ?? (_o = new ge(new Oe()));
}
function No(t) {
	let e = Io(t);
	return e === null ? [] : [{
		type: "CommentLine",
		value: t.slice(e + 2),
		...Be({
			start: e,
			end: t.length
		})
	}];
}
function ni(t) {
	let { result: e } = t;
	if (e.errors.length !== 0) {
		let [n] = e.errors;
		if (!(n instanceof Re)) throw n;
		let { message: s } = n;
		{
			let a = s.match(/ in .*?@\d+:\d+$/);
			a && (s = s.slice(0, a.index));
		}
		let i = t.start;
		{
			let a = s.match(/at column (?<index>\d+)/);
			a && (s = s.slice(0, a.index), i = i.moveBy(Number(a.groups.index)));
		}
		let r = new SyntaxError(s.trim(), { cause: n });
		throw Object.assign(r, {
			location: i,
			span: n.span
		}), r.cause ?? (r.cause = n), r;
	}
	return t;
}
function Fo(t) {
	return this[t < 0 ? this.length + t : t];
}
function Gi(t) {
	return t instanceof Me;
}
function Xi(t) {
	return t instanceof de;
}
function er(t, e) {
	return new Ho(t, e).expressions;
}
function Wo(t, e) {
	let n = /* @__PURE__ */ new SyntaxError(t + " (" + e.loc.start.line + ":" + e.loc.start.column + ")");
	return Object.assign(n, e);
}
function nr(t) {
	let e = new Set(t);
	return (n) => e.has(n?.type);
}
function En(t) {
	return t.range?.[1] ?? t.end;
}
function ie(t) {
	let e = t.range?.[0] ?? t.start, n = (t.declaration?.decorators ?? t.decorators)?.[0];
	return n ? Math.min(ie(n), e) : e;
}
function re(t) {
	let { type: e } = t;
	return e === "IfStatement" ? re(t.alternate ?? t.consequent) : e === "ForInStatement" || e === "ForOfStatement" || e === "ForStatement" || e === "LabeledStatement" || e === "WithStatement" || e === "WhileStatement" ? re(t.body) : Xo.get(e)?.(t) ?? En(t);
}
function Jo(t) {
	let { type: e = "JsExpressionRoot", expression: n, comments: s = n?.comments ?? [], text: i, rootMarker: r } = t, a = {
		type: e,
		comments: s,
		range: [0, i.length],
		rootMarker: r
	};
	return n && (delete n.comments, a.node = n), a;
}
function Yo(t) {
	if (!t?.location) return t;
	let { message: e, location: { line: n, col: s } } = t;
	return tr(e, {
		loc: { start: {
			line: n + 1,
			column: Math.max(s, 1)
		} },
		cause: t
	});
}
function gt(t) {
	return {
		astFormat: "estree",
		parse(e) {
			let n;
			try {
				n = t(e);
			} catch (i) {
				throw Yo(i);
			}
			let { comments: s } = n;
			return delete n.comments, t === mt && n.type !== "NGChainedExpression" && (n = {
				...n,
				type: "NGChainedExpression",
				expressions: [n]
			}), rr({
				type: "NGRoot",
				expression: n,
				comments: s,
				text: e
			});
		},
		locStart: ie,
		locEnd: re
	};
}
var lr, cr, ur, kn, _n, vt, z, De, wt, w, In, or, Cn, x, K, Ln, hr, Bs, $n, yt, Mn, Rn, On, Dn, Bn, Fn, Vn, Hn, Un, Wn, qn, jn, zn, p, y, Et, Ct, bt, Tt, kt, He, _t, It, S, Nt, At, Pt, Lt, $t, Mt, pe, he, Ue, o, c, vr, Dt, Xn, ee, v, Le, N, fe, Bt, Ft, Vt, ke, Ht, qe, Ut, _e, Wt, A, qt, jt, zt, Sr, E, Ie, je, ze, Ge, Gt, Xe, Xt, Qe, Je, Ye, $e, Qt, Jt, Yt, D, U, de, Me, Kt, Qn, Jn, M, Yn, Ee, Fs, Ve, yr, Er, Cr, Vs, br, Hs, Tr, un, kr, es, Us, Q, L, ts, Ws, V, qs, G, Ke, J, Te, _r, C, ns, ss, Ir, Nr, pn, Ar, hn, ce, St, Z, Pr, at, js, Lr, $r, Mr, Rr, Or, Dr, Br, zs, Ne, is, oe, Gs, Zt, Ze, et, tt, nt, Re, os, as, ls, Vr, Xs, Hr, tn, fn, qr, jr, Qs, zr, Gr, Xr, l, te, cs, us, R, ps, hs, fs, ds, O, ms, gs, q, Es, Cs, Zr, bs, Ys, f, W, to, Oe, I, Ae, be, rn, on, an, ge, ae, _s, Y, ln, mo, go, cn, vo, wo, So, xo, yo, Ks, Eo, it, Is, Ns, As, Zs, Ps, Ls, $s, Ms, Rs, Os, ko, _o, Io, ct, si, ii, oi, ai, ut, li, ci, ui, Ao, pi, hi, Po, fi, Lo, $o, di, mi, gi, vi, wi, Si, xi, yi, Ei, Mo, Ro, Oo, Do, pt, Ci, bi, Ti, ki, _i, Ii, Ni, Ai, Pi, Li, $i, Mi, Ri, dn, Oi, Di, Bi, Fi, Bo, Vi, Ui, ht, Wi, qi, ji, zi, ft, we, se, m, Qi, T, gn, vn, wn, Ji, Yi, Ki, Zi, Se, Ho, dt, mt, Sn, xn, yn, tr, qo, jo, zo, sr, Go, ir, Xo, rr, Ko, Zo, ea, ta;
var init_angular = __esmMin((() => {
	lr = Object.defineProperty;
	cr = Object.getPrototypeOf;
	ur = Reflect.get;
	kn = (t) => {
		throw TypeError(t);
	};
	_n = (t, e) => {
		for (var n in e) lr(t, n, {
			get: e[n],
			enumerable: !0
		});
	};
	vt = (t, e, n) => e.has(t) || kn("Cannot " + n);
	z = (t, e, n) => (vt(t, e, "read from private field"), n ? n.call(t) : e.get(t));
	De = (t, e, n) => e.has(t) ? kn("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n);
	wt = (t, e, n, s) => (vt(t, e, "write to private field"), s ? s.call(t, n) : e.set(t, n), n);
	w = (t, e, n) => (vt(t, e, "access private method"), n);
	In = (t, e, n) => ur(cr(t), n, e);
	or = {};
	_n(or, { parsers: () => Cn });
	Cn = {};
	_n(Cn, {
		__ng_action: () => Ko,
		__ng_binding: () => Zo,
		__ng_directive: () => ta,
		__ng_interpolation: () => ea
	});
	new RegExp(`(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`, "g");
	(function(t) {
		t[t.NONE = 0] = "NONE", t[t.HTML = 1] = "HTML", t[t.STYLE = 2] = "STYLE", t[t.SCRIPT = 3] = "SCRIPT", t[t.URL = 4] = "URL", t[t.RESOURCE_URL = 5] = "RESOURCE_URL", t[t.ATTRIBUTE_NO_BINDING = 6] = "ATTRIBUTE_NO_BINDING";
	})(x || (x = {}));
	Ln = "svg";
	hr = "math";
	Bs = "";
	$n = "*";
	yt = () => Object.create(null);
	(function(t) {
		t[t.Emulated = 0] = "Emulated", t[t.None = 2] = "None", t[t.ShadowDom = 3] = "ShadowDom", t[t.ExperimentalIsolatedShadowDom = 4] = "ExperimentalIsolatedShadowDom";
	})(Mn || (Mn = {}));
	(function(t) {
		t[t.OnPush = 0] = "OnPush", t[t.Default = 1] = "Default", t[t.Eager = 1] = "Eager";
	})(Rn || (Rn = {}));
	(function(t) {
		t[t.None = 0] = "None", t[t.SignalBased = 1] = "SignalBased", t[t.HasDecoratorInputTransform = 2] = "HasDecoratorInputTransform";
	})(On || (On = {}));
	Dn = { name: "custom-elements" };
	Bn = { name: "no-errors-schema" };
	(function(t) {
		t[t.Error = 0] = "Error", t[t.Warning = 1] = "Warning", t[t.Ignore = 2] = "Ignore";
	})(Fn || (Fn = {}));
	(function(t) {
		t[t.Directive = 0] = "Directive", t[t.Component = 1] = "Component", t[t.Injectable = 2] = "Injectable", t[t.Pipe = 3] = "Pipe", t[t.NgModule = 4] = "NgModule", t[t.Service = 5] = "Service";
	})(Vn || (Vn = {}));
	(function(t) {
		t[t.Directive = 0] = "Directive", t[t.Pipe = 1] = "Pipe", t[t.NgModule = 2] = "NgModule";
	})(Hn || (Hn = {}));
	(function(t) {
		t[t.Emulated = 0] = "Emulated", t[t.None = 2] = "None", t[t.ShadowDom = 3] = "ShadowDom", t[t.ExperimentalIsolatedShadowDom = 4] = "ExperimentalIsolatedShadowDom";
	})(Un || (Un = {}));
	(function(t) {
		t[t.Little = 0] = "Little", t[t.Big = 1] = "Big";
	})(Wn || (Wn = {}));
	(function(t) {
		t[t.None = 0] = "None", t[t.Const = 1] = "Const";
	})(qn || (qn = {}));
	(function(t) {
		t[t.Dynamic = 0] = "Dynamic", t[t.Bool = 1] = "Bool", t[t.String = 2] = "String", t[t.Int = 3] = "Int", t[t.Number = 4] = "Number", t[t.Function = 5] = "Function", t[t.Inferred = 6] = "Inferred", t[t.None = 7] = "None";
	})(jn || (jn = {}));
	(function(t) {
		t[t.Minus = 0] = "Minus", t[t.Plus = 1] = "Plus";
	})(zn || (zn = {}));
	(function(t) {
		t[t.Equals = 0] = "Equals", t[t.NotEquals = 1] = "NotEquals", t[t.Assign = 2] = "Assign", t[t.Identical = 3] = "Identical", t[t.NotIdentical = 4] = "NotIdentical", t[t.Minus = 5] = "Minus", t[t.Plus = 6] = "Plus", t[t.Divide = 7] = "Divide", t[t.Multiply = 8] = "Multiply", t[t.Modulo = 9] = "Modulo", t[t.And = 10] = "And", t[t.Or = 11] = "Or", t[t.BitwiseOr = 12] = "BitwiseOr", t[t.BitwiseAnd = 13] = "BitwiseAnd", t[t.Lower = 14] = "Lower", t[t.LowerEquals = 15] = "LowerEquals", t[t.Bigger = 16] = "Bigger", t[t.BiggerEquals = 17] = "BiggerEquals", t[t.NullishCoalesce = 18] = "NullishCoalesce", t[t.Exponentiation = 19] = "Exponentiation", t[t.In = 20] = "In", t[t.InstanceOf = 21] = "InstanceOf", t[t.AdditionAssignment = 22] = "AdditionAssignment", t[t.SubtractionAssignment = 23] = "SubtractionAssignment", t[t.MultiplicationAssignment = 24] = "MultiplicationAssignment", t[t.DivisionAssignment = 25] = "DivisionAssignment", t[t.RemainderAssignment = 26] = "RemainderAssignment", t[t.ExponentiationAssignment = 27] = "ExponentiationAssignment", t[t.AndAssignment = 28] = "AndAssignment", t[t.OrAssignment = 29] = "OrAssignment", t[t.NullishCoalesceAssignment = 30] = "NullishCoalesceAssignment";
	})(p || (p = {}));
	y = class {
		leadingComments;
		type;
		sourceSpan;
		constructor(e, n, s) {
			this.leadingComments = s, this.type = e || null, this.sourceSpan = n || null;
		}
		prop(e, n) {
			return new Nt(this, e, null, n);
		}
		key(e, n, s) {
			return new At(this, e, n, s);
		}
		callFn(e, n, s, i) {
			return new bt(this, e, null, n, s, i);
		}
		instantiate(e, n, s, i) {
			return new Tt(this, e, n, s);
		}
		conditional(e, n = null, s, i) {
			return new It(this, e, n, null, s);
		}
		equals(e, n) {
			return new S(p.Equals, this, e, null, n);
		}
		notEquals(e, n) {
			return new S(p.NotEquals, this, e, null, n);
		}
		identical(e, n) {
			return new S(p.Identical, this, e, null, n);
		}
		notIdentical(e, n) {
			return new S(p.NotIdentical, this, e, null, n);
		}
		minus(e, n) {
			return new S(p.Minus, this, e, null, n);
		}
		plus(e, n) {
			return new S(p.Plus, this, e, null, n);
		}
		divide(e, n) {
			return new S(p.Divide, this, e, null, n);
		}
		multiply(e, n) {
			return new S(p.Multiply, this, e, null, n);
		}
		modulo(e, n) {
			return new S(p.Modulo, this, e, null, n);
		}
		power(e, n) {
			return new S(p.Exponentiation, this, e, null, n);
		}
		and(e, n) {
			return new S(p.And, this, e, null, n);
		}
		bitwiseOr(e, n) {
			return new S(p.BitwiseOr, this, e, null, n);
		}
		bitwiseAnd(e, n) {
			return new S(p.BitwiseAnd, this, e, null, n);
		}
		or(e, n) {
			return new S(p.Or, this, e, null, n);
		}
		lower(e, n) {
			return new S(p.Lower, this, e, null, n);
		}
		lowerEquals(e, n) {
			return new S(p.LowerEquals, this, e, null, n);
		}
		bigger(e, n) {
			return new S(p.Bigger, this, e, null, n);
		}
		biggerEquals(e, n) {
			return new S(p.BiggerEquals, this, e, null, n);
		}
		isBlank(e) {
			return this.equals(TYPED_NULL_EXPR, e);
		}
		nullishCoalesce(e, n) {
			return new S(p.NullishCoalesce, this, e, null, n);
		}
		toStmt(e) {
			return new Ue(this, null, e);
		}
	};
	Et = class t extends y {
		name;
		constructor(e, n, s, i) {
			super(n, s, i), this.name = e;
		}
		isEquivalent(e) {
			return e instanceof t && this.name === e.name;
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitReadVarExpr(this, n);
		}
		clone() {
			return new t(this.name, this.type, this.sourceSpan);
		}
		set(e) {
			return new S(p.Assign, this, e, null, this.sourceSpan);
		}
	};
	Ct = class t extends y {
		expr;
		constructor(e, n, s, i) {
			super(n, s, i), this.expr = e;
		}
		visitExpression(e, n) {
			return e.visitTypeofExpr(this, n);
		}
		isEquivalent(e) {
			return e instanceof t && e.expr.isEquivalent(this.expr);
		}
		isConstant() {
			return this.expr.isConstant();
		}
		clone() {
			return new t(this.expr.clone());
		}
	};
	bt = class t extends y {
		fn;
		args;
		pure;
		isOptional;
		constructor(e, n, s, i, r = !1, a, u = !1) {
			super(s, i, a), this.fn = e, this.args = n, this.pure = r, this.isOptional = u;
		}
		get receiver() {
			return this.fn;
		}
		isEquivalent(e) {
			return e instanceof t && this.fn.isEquivalent(e.fn) && ue(this.args, e.args) && this.pure === e.pure;
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitInvokeFunctionExpr(this, n);
		}
		clone() {
			return new t(this.fn.clone(), this.args.map((e) => e.clone()), this.type, this.sourceSpan, this.pure, [], this.isOptional);
		}
	};
	Tt = class t extends y {
		classExpr;
		args;
		constructor(e, n, s, i, r) {
			super(s, i, r), this.classExpr = e, this.args = n;
		}
		isEquivalent(e) {
			return e instanceof t && this.classExpr.isEquivalent(e.classExpr) && ue(this.args, e.args);
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitInstantiateExpr(this, n);
		}
		clone() {
			return new t(this.classExpr.clone(), this.args.map((e) => e.clone()), this.type, this.sourceSpan);
		}
	};
	kt = class t extends y {
		body;
		flags;
		constructor(e, n, s, i) {
			super(null, s, i), this.body = e, this.flags = n;
		}
		isEquivalent(e) {
			return e instanceof t && this.body === e.body && this.flags === e.flags;
		}
		isConstant() {
			return !0;
		}
		visitExpression(e, n) {
			return e.visitRegularExpressionLiteral(this, n);
		}
		clone() {
			return new t(this.body, this.flags, this.sourceSpan);
		}
	};
	He = class t extends y {
		value;
		constructor(e, n, s, i) {
			super(n, s, i), this.value = e;
		}
		isEquivalent(e) {
			return e instanceof t && this.value === e.value;
		}
		isConstant() {
			return !0;
		}
		visitExpression(e, n) {
			return e.visitLiteralExpr(this, n);
		}
		clone() {
			return new t(this.value, this.type, this.sourceSpan);
		}
	};
	_t = class t extends y {
		value;
		typeParams;
		constructor(e, n, s = null, i, r) {
			super(n, i, r), this.value = e, this.typeParams = s;
		}
		isEquivalent(e) {
			return e instanceof t && this.value.name === e.value.name && this.value.moduleName === e.value.moduleName;
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitExternalExpr(this, n);
		}
		clone() {
			return new t(this.value, this.type, this.typeParams, this.sourceSpan);
		}
	};
	It = class t extends y {
		condition;
		falseCase;
		trueCase;
		constructor(e, n, s = null, i, r, a) {
			super(i || n.type, r, a), this.condition = e, this.falseCase = s, this.trueCase = n;
		}
		isEquivalent(e) {
			return e instanceof t && this.condition.isEquivalent(e.condition) && this.trueCase.isEquivalent(e.trueCase) && mr(this.falseCase, e.falseCase);
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitConditionalExpr(this, n);
		}
		clone() {
			return new t(this.condition.clone(), this.trueCase.clone(), this.falseCase?.clone(), this.type, this.sourceSpan);
		}
	};
	S = class t extends y {
		operator;
		rhs;
		lhs;
		constructor(e, n, s, i, r, a) {
			super(i || n.type, r, a), this.operator = e, this.rhs = s, this.lhs = n;
		}
		isEquivalent(e) {
			return e instanceof t && this.operator === e.operator && this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs);
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitBinaryOperatorExpr(this, n);
		}
		clone() {
			return new t(this.operator, this.lhs.clone(), this.rhs.clone(), this.type, this.sourceSpan);
		}
		isAssignment() {
			let e = this.operator;
			return e === p.Assign || e === p.AdditionAssignment || e === p.SubtractionAssignment || e === p.MultiplicationAssignment || e === p.DivisionAssignment || e === p.RemainderAssignment || e === p.ExponentiationAssignment || e === p.AndAssignment || e === p.OrAssignment || e === p.NullishCoalesceAssignment;
		}
	};
	Nt = class t extends y {
		receiver;
		name;
		isOptional;
		constructor(e, n, s, i, r, a = !1) {
			super(s, i, r), this.receiver = e, this.name = n, this.isOptional = a;
		}
		get index() {
			return this.name;
		}
		isEquivalent(e) {
			return e instanceof t && this.receiver.isEquivalent(e.receiver) && this.name === e.name && this.isOptional === e.isOptional;
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitReadPropExpr(this, n);
		}
		set(e) {
			return new S(p.Assign, this.receiver.prop(this.name), e, null, this.sourceSpan);
		}
		clone() {
			return new t(this.receiver.clone(), this.name, this.type, this.sourceSpan, [], this.isOptional);
		}
	};
	At = class t extends y {
		receiver;
		index;
		isOptional;
		constructor(e, n, s, i, r, a = !1) {
			super(s, i, r), this.receiver = e, this.index = n, this.isOptional = a;
		}
		isEquivalent(e) {
			return e instanceof t && this.receiver.isEquivalent(e.receiver) && this.index.isEquivalent(e.index) && this.isOptional === e.isOptional;
		}
		isConstant() {
			return !1;
		}
		visitExpression(e, n) {
			return e.visitReadKeyExpr(this, n);
		}
		set(e) {
			return new S(p.Assign, this.receiver.key(this.index), e, null, this.sourceSpan);
		}
		clone() {
			return new t(this.receiver.clone(), this.index.clone(), this.type, this.sourceSpan, [], this.isOptional);
		}
	};
	Pt = class t extends y {
		entries;
		constructor(e, n, s, i) {
			super(n, s, i), this.entries = e;
		}
		isConstant() {
			return this.entries.every((e) => e.isConstant());
		}
		isEquivalent(e) {
			return e instanceof t && ue(this.entries, e.entries);
		}
		visitExpression(e, n) {
			return e.visitLiteralArrayExpr(this, n);
		}
		clone() {
			return new t(this.entries.map((e) => e.clone()), this.type, this.sourceSpan);
		}
	};
	Lt = class t {
		expression;
		constructor(e) {
			this.expression = e;
		}
		isEquivalent(e) {
			return e instanceof t && this.expression.isEquivalent(e.expression);
		}
		clone() {
			return new t(this.expression.clone());
		}
		isConstant() {
			return this.expression.isConstant();
		}
	};
	$t = class t extends y {
		entries;
		valueType = null;
		constructor(e, n, s, i) {
			super(n, s, i), this.entries = e, n && (this.valueType = n.valueType);
		}
		isEquivalent(e) {
			return e instanceof t && ue(this.entries, e.entries);
		}
		isConstant() {
			return this.entries.every((e) => e.isConstant());
		}
		visitExpression(e, n) {
			return e.visitLiteralMapExpr(this, n);
		}
		clone() {
			let e = this.entries.map((n) => n.clone());
			return new t(e, this.type, this.sourceSpan);
		}
	};
	Mt = class t extends y {
		expression;
		constructor(e, n, s) {
			super(null, n, s), this.expression = e;
		}
		isEquivalent(e) {
			return e instanceof t && this.expression.isEquivalent(e.expression);
		}
		isConstant() {
			return this.expression.isConstant();
		}
		visitExpression(e, n) {
			return e.visitSpreadElementExpr(this, n);
		}
		clone() {
			return new t(this.expression.clone(), this.sourceSpan);
		}
	};
	(function(t) {
		t[t.None = 0] = "None", t[t.Final = 1] = "Final", t[t.Private = 2] = "Private", t[t.Exported = 4] = "Exported", t[t.Static = 8] = "Static";
	})(pe || (pe = {}));
	he = class {
		modifiers;
		sourceSpan;
		leadingComments;
		constructor(e = pe.None, n = null, s) {
			this.modifiers = e, this.sourceSpan = n, this.leadingComments = s;
		}
		hasModifier(e) {
			return (this.modifiers & e) !== 0;
		}
		addLeadingComment(e) {
			this.leadingComments = this.leadingComments ?? [], this.leadingComments.push(e);
		}
	};
	Ue = class t extends he {
		expr;
		constructor(e, n, s) {
			super(pe.None, n, s), this.expr = e;
		}
		isEquivalent(e) {
			return e instanceof t && this.expr.isEquivalent(e.expr);
		}
		visitStatement(e, n) {
			return e.visitExpressionStmt(this, n);
		}
	};
	(class t {
		static INSTANCE = new t();
		keyOf(e) {
			if (e instanceof He && typeof e.value == "string") return `"${e.value}"`;
			if (e instanceof He) return String(e.value);
			if (e instanceof kt) return `/${e.body}/${e.flags ?? ""}`;
			if (e instanceof Pt) {
				let n = [];
				for (let s of e.entries) n.push(this.keyOf(s));
				return `[${n.join(",")}]`;
			} else if (e instanceof $t) {
				let n = [];
				for (let s of e.entries) if (s instanceof Lt) n.push("..." + this.keyOf(s.expression));
				else {
					let i = s.key;
					s.quoted && (i = `"${i}"`), n.push(i + ":" + this.keyOf(s.value));
				}
				return `{${n.join(",")}}`;
			} else {
				if (e instanceof _t) return `import("${e.value.moduleName}", ${e.value.name})`;
				if (e instanceof Et) return `read(${e.name})`;
				if (e instanceof Ct) return `typeof(${this.keyOf(e.expr)})`;
				if (e instanceof Mt) return `...${this.keyOf(e.expression)}`;
				throw new Error(`${this.constructor.name} does not handle expressions of type ${e.constructor.name}`);
			}
		}
	});
	o = "@angular/core";
	c = class {
		static core = {
			name: null,
			moduleName: o
		};
		static namespaceHTML = {
			name: "ɵɵnamespaceHTML",
			moduleName: o
		};
		static namespaceMathML = {
			name: "ɵɵnamespaceMathML",
			moduleName: o
		};
		static namespaceSVG = {
			name: "ɵɵnamespaceSVG",
			moduleName: o
		};
		static element = {
			name: "ɵɵelement",
			moduleName: o
		};
		static elementStart = {
			name: "ɵɵelementStart",
			moduleName: o
		};
		static elementEnd = {
			name: "ɵɵelementEnd",
			moduleName: o
		};
		static domElement = {
			name: "ɵɵdomElement",
			moduleName: o
		};
		static domElementStart = {
			name: "ɵɵdomElementStart",
			moduleName: o
		};
		static domElementEnd = {
			name: "ɵɵdomElementEnd",
			moduleName: o
		};
		static domElementContainer = {
			name: "ɵɵdomElementContainer",
			moduleName: o
		};
		static domElementContainerStart = {
			name: "ɵɵdomElementContainerStart",
			moduleName: o
		};
		static domElementContainerEnd = {
			name: "ɵɵdomElementContainerEnd",
			moduleName: o
		};
		static domTemplate = {
			name: "ɵɵdomTemplate",
			moduleName: o
		};
		static domListener = {
			name: "ɵɵdomListener",
			moduleName: o
		};
		static advance = {
			name: "ɵɵadvance",
			moduleName: o
		};
		static syntheticHostProperty = {
			name: "ɵɵsyntheticHostProperty",
			moduleName: o
		};
		static syntheticHostListener = {
			name: "ɵɵsyntheticHostListener",
			moduleName: o
		};
		static attribute = {
			name: "ɵɵattribute",
			moduleName: o
		};
		static classProp = {
			name: "ɵɵclassProp",
			moduleName: o
		};
		static elementContainerStart = {
			name: "ɵɵelementContainerStart",
			moduleName: o
		};
		static elementContainerEnd = {
			name: "ɵɵelementContainerEnd",
			moduleName: o
		};
		static elementContainer = {
			name: "ɵɵelementContainer",
			moduleName: o
		};
		static styleMap = {
			name: "ɵɵstyleMap",
			moduleName: o
		};
		static classMap = {
			name: "ɵɵclassMap",
			moduleName: o
		};
		static styleProp = {
			name: "ɵɵstyleProp",
			moduleName: o
		};
		static interpolate = {
			name: "ɵɵinterpolate",
			moduleName: o
		};
		static interpolate1 = {
			name: "ɵɵinterpolate1",
			moduleName: o
		};
		static interpolate2 = {
			name: "ɵɵinterpolate2",
			moduleName: o
		};
		static interpolate3 = {
			name: "ɵɵinterpolate3",
			moduleName: o
		};
		static interpolate4 = {
			name: "ɵɵinterpolate4",
			moduleName: o
		};
		static interpolate5 = {
			name: "ɵɵinterpolate5",
			moduleName: o
		};
		static interpolate6 = {
			name: "ɵɵinterpolate6",
			moduleName: o
		};
		static interpolate7 = {
			name: "ɵɵinterpolate7",
			moduleName: o
		};
		static interpolate8 = {
			name: "ɵɵinterpolate8",
			moduleName: o
		};
		static interpolateV = {
			name: "ɵɵinterpolateV",
			moduleName: o
		};
		static nextContext = {
			name: "ɵɵnextContext",
			moduleName: o
		};
		static resetView = {
			name: "ɵɵresetView",
			moduleName: o
		};
		static templateCreate = {
			name: "ɵɵtemplate",
			moduleName: o
		};
		static defer = {
			name: "ɵɵdefer",
			moduleName: o
		};
		static deferWhen = {
			name: "ɵɵdeferWhen",
			moduleName: o
		};
		static deferOnIdle = {
			name: "ɵɵdeferOnIdle",
			moduleName: o
		};
		static deferOnImmediate = {
			name: "ɵɵdeferOnImmediate",
			moduleName: o
		};
		static deferOnTimer = {
			name: "ɵɵdeferOnTimer",
			moduleName: o
		};
		static deferOnHover = {
			name: "ɵɵdeferOnHover",
			moduleName: o
		};
		static deferOnInteraction = {
			name: "ɵɵdeferOnInteraction",
			moduleName: o
		};
		static deferOnViewport = {
			name: "ɵɵdeferOnViewport",
			moduleName: o
		};
		static deferPrefetchWhen = {
			name: "ɵɵdeferPrefetchWhen",
			moduleName: o
		};
		static deferPrefetchOnIdle = {
			name: "ɵɵdeferPrefetchOnIdle",
			moduleName: o
		};
		static deferPrefetchOnImmediate = {
			name: "ɵɵdeferPrefetchOnImmediate",
			moduleName: o
		};
		static deferPrefetchOnTimer = {
			name: "ɵɵdeferPrefetchOnTimer",
			moduleName: o
		};
		static deferPrefetchOnHover = {
			name: "ɵɵdeferPrefetchOnHover",
			moduleName: o
		};
		static deferPrefetchOnInteraction = {
			name: "ɵɵdeferPrefetchOnInteraction",
			moduleName: o
		};
		static deferPrefetchOnViewport = {
			name: "ɵɵdeferPrefetchOnViewport",
			moduleName: o
		};
		static deferHydrateWhen = {
			name: "ɵɵdeferHydrateWhen",
			moduleName: o
		};
		static deferHydrateNever = {
			name: "ɵɵdeferHydrateNever",
			moduleName: o
		};
		static deferHydrateOnIdle = {
			name: "ɵɵdeferHydrateOnIdle",
			moduleName: o
		};
		static deferHydrateOnImmediate = {
			name: "ɵɵdeferHydrateOnImmediate",
			moduleName: o
		};
		static deferHydrateOnTimer = {
			name: "ɵɵdeferHydrateOnTimer",
			moduleName: o
		};
		static deferHydrateOnHover = {
			name: "ɵɵdeferHydrateOnHover",
			moduleName: o
		};
		static deferHydrateOnInteraction = {
			name: "ɵɵdeferHydrateOnInteraction",
			moduleName: o
		};
		static deferHydrateOnViewport = {
			name: "ɵɵdeferHydrateOnViewport",
			moduleName: o
		};
		static deferEnableTimerScheduling = {
			name: "ɵɵdeferEnableTimerScheduling",
			moduleName: o
		};
		static enableIncrementalHydrationRuntime = {
			name: "ɵɵenableIncrementalHydrationRuntime",
			moduleName: o
		};
		static conditionalCreate = {
			name: "ɵɵconditionalCreate",
			moduleName: o
		};
		static conditionalBranchCreate = {
			name: "ɵɵconditionalBranchCreate",
			moduleName: o
		};
		static conditional = {
			name: "ɵɵconditional",
			moduleName: o
		};
		static repeater = {
			name: "ɵɵrepeater",
			moduleName: o
		};
		static repeaterCreate = {
			name: "ɵɵrepeaterCreate",
			moduleName: o
		};
		static repeaterTrackByIndex = {
			name: "ɵɵrepeaterTrackByIndex",
			moduleName: o
		};
		static repeaterTrackByIdentity = {
			name: "ɵɵrepeaterTrackByIdentity",
			moduleName: o
		};
		static componentInstance = {
			name: "ɵɵcomponentInstance",
			moduleName: o
		};
		static text = {
			name: "ɵɵtext",
			moduleName: o
		};
		static enableBindings = {
			name: "ɵɵenableBindings",
			moduleName: o
		};
		static disableBindings = {
			name: "ɵɵdisableBindings",
			moduleName: o
		};
		static getCurrentView = {
			name: "ɵɵgetCurrentView",
			moduleName: o
		};
		static textInterpolate = {
			name: "ɵɵtextInterpolate",
			moduleName: o
		};
		static textInterpolate1 = {
			name: "ɵɵtextInterpolate1",
			moduleName: o
		};
		static textInterpolate2 = {
			name: "ɵɵtextInterpolate2",
			moduleName: o
		};
		static textInterpolate3 = {
			name: "ɵɵtextInterpolate3",
			moduleName: o
		};
		static textInterpolate4 = {
			name: "ɵɵtextInterpolate4",
			moduleName: o
		};
		static textInterpolate5 = {
			name: "ɵɵtextInterpolate5",
			moduleName: o
		};
		static textInterpolate6 = {
			name: "ɵɵtextInterpolate6",
			moduleName: o
		};
		static textInterpolate7 = {
			name: "ɵɵtextInterpolate7",
			moduleName: o
		};
		static textInterpolate8 = {
			name: "ɵɵtextInterpolate8",
			moduleName: o
		};
		static textInterpolateV = {
			name: "ɵɵtextInterpolateV",
			moduleName: o
		};
		static restoreView = {
			name: "ɵɵrestoreView",
			moduleName: o
		};
		static pureFunction0 = {
			name: "ɵɵpureFunction0",
			moduleName: o
		};
		static pureFunction1 = {
			name: "ɵɵpureFunction1",
			moduleName: o
		};
		static pureFunction2 = {
			name: "ɵɵpureFunction2",
			moduleName: o
		};
		static pureFunction3 = {
			name: "ɵɵpureFunction3",
			moduleName: o
		};
		static pureFunction4 = {
			name: "ɵɵpureFunction4",
			moduleName: o
		};
		static pureFunction5 = {
			name: "ɵɵpureFunction5",
			moduleName: o
		};
		static pureFunction6 = {
			name: "ɵɵpureFunction6",
			moduleName: o
		};
		static pureFunction7 = {
			name: "ɵɵpureFunction7",
			moduleName: o
		};
		static pureFunction8 = {
			name: "ɵɵpureFunction8",
			moduleName: o
		};
		static pureFunctionV = {
			name: "ɵɵpureFunctionV",
			moduleName: o
		};
		static pipeBind1 = {
			name: "ɵɵpipeBind1",
			moduleName: o
		};
		static pipeBind2 = {
			name: "ɵɵpipeBind2",
			moduleName: o
		};
		static pipeBind3 = {
			name: "ɵɵpipeBind3",
			moduleName: o
		};
		static pipeBind4 = {
			name: "ɵɵpipeBind4",
			moduleName: o
		};
		static pipeBindV = {
			name: "ɵɵpipeBindV",
			moduleName: o
		};
		static domProperty = {
			name: "ɵɵdomProperty",
			moduleName: o
		};
		static ariaProperty = {
			name: "ɵɵariaProperty",
			moduleName: o
		};
		static property = {
			name: "ɵɵproperty",
			moduleName: o
		};
		static control = {
			name: "ɵɵcontrol",
			moduleName: o
		};
		static controlCreate = {
			name: "ɵɵcontrolCreate",
			moduleName: o
		};
		static animationEnterListener = {
			name: "ɵɵanimateEnterListener",
			moduleName: o
		};
		static animationLeaveListener = {
			name: "ɵɵanimateLeaveListener",
			moduleName: o
		};
		static animationEnter = {
			name: "ɵɵanimateEnter",
			moduleName: o
		};
		static animationLeave = {
			name: "ɵɵanimateLeave",
			moduleName: o
		};
		static i18n = {
			name: "ɵɵi18n",
			moduleName: o
		};
		static i18nAttributes = {
			name: "ɵɵi18nAttributes",
			moduleName: o
		};
		static i18nExp = {
			name: "ɵɵi18nExp",
			moduleName: o
		};
		static i18nStart = {
			name: "ɵɵi18nStart",
			moduleName: o
		};
		static i18nEnd = {
			name: "ɵɵi18nEnd",
			moduleName: o
		};
		static i18nApply = {
			name: "ɵɵi18nApply",
			moduleName: o
		};
		static i18nPostprocess = {
			name: "ɵɵi18nPostprocess",
			moduleName: o
		};
		static pipe = {
			name: "ɵɵpipe",
			moduleName: o
		};
		static projection = {
			name: "ɵɵprojection",
			moduleName: o
		};
		static projectionDef = {
			name: "ɵɵprojectionDef",
			moduleName: o
		};
		static reference = {
			name: "ɵɵreference",
			moduleName: o
		};
		static inject = {
			name: "ɵɵinject",
			moduleName: o
		};
		static injectAttribute = {
			name: "ɵɵinjectAttribute",
			moduleName: o
		};
		static directiveInject = {
			name: "ɵɵdirectiveInject",
			moduleName: o
		};
		static invalidFactory = {
			name: "ɵɵinvalidFactory",
			moduleName: o
		};
		static invalidFactoryDep = {
			name: "ɵɵinvalidFactoryDep",
			moduleName: o
		};
		static templateRefExtractor = {
			name: "ɵɵtemplateRefExtractor",
			moduleName: o
		};
		static forwardRef = {
			name: "forwardRef",
			moduleName: o
		};
		static resolveForwardRef = {
			name: "resolveForwardRef",
			moduleName: o
		};
		static replaceMetadata = {
			name: "ɵɵreplaceMetadata",
			moduleName: o
		};
		static getReplaceMetadataURL = {
			name: "ɵɵgetReplaceMetadataURL",
			moduleName: o
		};
		static ɵɵdefineInjectable = {
			name: "ɵɵdefineInjectable",
			moduleName: o
		};
		static declareInjectable = {
			name: "ɵɵngDeclareInjectable",
			moduleName: o
		};
		static InjectableDeclaration = {
			name: "ɵɵInjectableDeclaration",
			moduleName: o
		};
		static defineService = {
			name: "ɵɵdefineService",
			moduleName: o
		};
		static declareService = {
			name: "ɵɵngDeclareService",
			moduleName: o
		};
		static resolveWindow = {
			name: "ɵɵresolveWindow",
			moduleName: o
		};
		static resolveDocument = {
			name: "ɵɵresolveDocument",
			moduleName: o
		};
		static resolveBody = {
			name: "ɵɵresolveBody",
			moduleName: o
		};
		static getComponentDepsFactory = {
			name: "ɵɵgetComponentDepsFactory",
			moduleName: o
		};
		static defineComponent = {
			name: "ɵɵdefineComponent",
			moduleName: o
		};
		static declareComponent = {
			name: "ɵɵngDeclareComponent",
			moduleName: o
		};
		static setComponentScope = {
			name: "ɵɵsetComponentScope",
			moduleName: o
		};
		static ChangeDetectionStrategy = {
			name: "ChangeDetectionStrategy",
			moduleName: o
		};
		static ViewEncapsulation = {
			name: "ViewEncapsulation",
			moduleName: o
		};
		static ComponentDeclaration = {
			name: "ɵɵComponentDeclaration",
			moduleName: o
		};
		static FactoryDeclaration = {
			name: "ɵɵFactoryDeclaration",
			moduleName: o
		};
		static declareFactory = {
			name: "ɵɵngDeclareFactory",
			moduleName: o
		};
		static FactoryTarget = {
			name: "ɵɵFactoryTarget",
			moduleName: o
		};
		static defineDirective = {
			name: "ɵɵdefineDirective",
			moduleName: o
		};
		static declareDirective = {
			name: "ɵɵngDeclareDirective",
			moduleName: o
		};
		static DirectiveDeclaration = {
			name: "ɵɵDirectiveDeclaration",
			moduleName: o
		};
		static InjectorDef = {
			name: "ɵɵInjectorDef",
			moduleName: o
		};
		static InjectorDeclaration = {
			name: "ɵɵInjectorDeclaration",
			moduleName: o
		};
		static defineInjector = {
			name: "ɵɵdefineInjector",
			moduleName: o
		};
		static declareInjector = {
			name: "ɵɵngDeclareInjector",
			moduleName: o
		};
		static NgModuleDeclaration = {
			name: "ɵɵNgModuleDeclaration",
			moduleName: o
		};
		static ModuleWithProviders = {
			name: "ModuleWithProviders",
			moduleName: o
		};
		static defineNgModule = {
			name: "ɵɵdefineNgModule",
			moduleName: o
		};
		static declareNgModule = {
			name: "ɵɵngDeclareNgModule",
			moduleName: o
		};
		static setNgModuleScope = {
			name: "ɵɵsetNgModuleScope",
			moduleName: o
		};
		static registerNgModuleType = {
			name: "ɵɵregisterNgModuleType",
			moduleName: o
		};
		static PipeDeclaration = {
			name: "ɵɵPipeDeclaration",
			moduleName: o
		};
		static definePipe = {
			name: "ɵɵdefinePipe",
			moduleName: o
		};
		static declarePipe = {
			name: "ɵɵngDeclarePipe",
			moduleName: o
		};
		static declareClassMetadata = {
			name: "ɵɵngDeclareClassMetadata",
			moduleName: o
		};
		static declareClassMetadataAsync = {
			name: "ɵɵngDeclareClassMetadataAsync",
			moduleName: o
		};
		static setClassMetadata = {
			name: "ɵsetClassMetadata",
			moduleName: o
		};
		static setClassMetadataAsync = {
			name: "ɵsetClassMetadataAsync",
			moduleName: o
		};
		static setClassDebugInfo = {
			name: "ɵsetClassDebugInfo",
			moduleName: o
		};
		static queryRefresh = {
			name: "ɵɵqueryRefresh",
			moduleName: o
		};
		static viewQuery = {
			name: "ɵɵviewQuery",
			moduleName: o
		};
		static loadQuery = {
			name: "ɵɵloadQuery",
			moduleName: o
		};
		static contentQuery = {
			name: "ɵɵcontentQuery",
			moduleName: o
		};
		static viewQuerySignal = {
			name: "ɵɵviewQuerySignal",
			moduleName: o
		};
		static contentQuerySignal = {
			name: "ɵɵcontentQuerySignal",
			moduleName: o
		};
		static queryAdvance = {
			name: "ɵɵqueryAdvance",
			moduleName: o
		};
		static twoWayProperty = {
			name: "ɵɵtwoWayProperty",
			moduleName: o
		};
		static twoWayBindingSet = {
			name: "ɵɵtwoWayBindingSet",
			moduleName: o
		};
		static twoWayListener = {
			name: "ɵɵtwoWayListener",
			moduleName: o
		};
		static declareLet = {
			name: "ɵɵdeclareLet",
			moduleName: o
		};
		static storeLet = {
			name: "ɵɵstoreLet",
			moduleName: o
		};
		static readContextLet = {
			name: "ɵɵreadContextLet",
			moduleName: o
		};
		static arrowFunction = {
			name: "ɵɵarrowFunction",
			moduleName: o
		};
		static attachSourceLocations = {
			name: "ɵɵattachSourceLocations",
			moduleName: o
		};
		static NgOnChangesFeature = {
			name: "ɵɵNgOnChangesFeature",
			moduleName: o
		};
		static ControlFeature = {
			name: "ɵɵControlFeature",
			moduleName: o
		};
		static InheritDefinitionFeature = {
			name: "ɵɵInheritDefinitionFeature",
			moduleName: o
		};
		static ProvidersFeature = {
			name: "ɵɵProvidersFeature",
			moduleName: o
		};
		static HostDirectivesFeature = {
			name: "ɵɵHostDirectivesFeature",
			moduleName: o
		};
		static ExternalStylesFeature = {
			name: "ɵɵExternalStylesFeature",
			moduleName: o
		};
		static listener = {
			name: "ɵɵlistener",
			moduleName: o
		};
		static getInheritedFactory = {
			name: "ɵɵgetInheritedFactory",
			moduleName: o
		};
		static sanitizeHtml = {
			name: "ɵɵsanitizeHtml",
			moduleName: o
		};
		static sanitizeStyle = {
			name: "ɵɵsanitizeStyle",
			moduleName: o
		};
		static validateAttribute = {
			name: "ɵɵvalidateAttribute",
			moduleName: o
		};
		static sanitizeResourceUrl = {
			name: "ɵɵsanitizeResourceUrl",
			moduleName: o
		};
		static sanitizeScript = {
			name: "ɵɵsanitizeScript",
			moduleName: o
		};
		static sanitizeUrl = {
			name: "ɵɵsanitizeUrl",
			moduleName: o
		};
		static sanitizeUrlOrResourceUrl = {
			name: "ɵɵsanitizeUrlOrResourceUrl",
			moduleName: o
		};
		static trustConstantHtml = {
			name: "ɵɵtrustConstantHtml",
			moduleName: o
		};
		static trustConstantResourceUrl = {
			name: "ɵɵtrustConstantResourceUrl",
			moduleName: o
		};
		static inputDecorator = {
			name: "Input",
			moduleName: o
		};
		static outputDecorator = {
			name: "Output",
			moduleName: o
		};
		static viewChildDecorator = {
			name: "ViewChild",
			moduleName: o
		};
		static viewChildrenDecorator = {
			name: "ViewChildren",
			moduleName: o
		};
		static contentChildDecorator = {
			name: "ContentChild",
			moduleName: o
		};
		static contentChildrenDecorator = {
			name: "ContentChildren",
			moduleName: o
		};
		static InputSignalBrandWriteType = {
			name: "ɵINPUT_SIGNAL_BRAND_WRITE_TYPE",
			moduleName: o
		};
		static UnwrapDirectiveSignalInputs = {
			name: "ɵUnwrapDirectiveSignalInputs",
			moduleName: o
		};
		static unwrapWritableSignal = {
			name: "ɵunwrapWritableSignal",
			moduleName: o
		};
		static assertType = {
			name: "ɵassertType",
			moduleName: o
		};
	};
	vr = /-+([a-z0-9])/g;
	Dt = class {
		full;
		major;
		minor;
		patch;
		constructor(e) {
			this.full = e;
			let n = e.split(".");
			this.major = n[0], this.minor = n[1], this.patch = n.slice(2).join(".");
		}
	};
	p.And, p.Bigger, p.BiggerEquals, p.BitwiseOr, p.BitwiseAnd, p.Divide, p.Assign, p.Equals, p.Identical, p.Lower, p.LowerEquals, p.Minus, p.Modulo, p.Exponentiation, p.Multiply, p.NotEquals, p.NotIdentical, p.NullishCoalesce, p.Or, p.Plus, p.In, p.InstanceOf, p.AdditionAssignment, p.SubtractionAssignment, p.MultiplicationAssignment, p.DivisionAssignment, p.RemainderAssignment, p.ExponentiationAssignment, p.AndAssignment, p.OrAssignment, p.NullishCoalesceAssignment;
	(function(t) {
		t[t.Class = 0] = "Class", t[t.Function = 1] = "Function";
	})(Xn || (Xn = {}));
	ee = class {
		start;
		end;
		constructor(e, n) {
			this.start = e, this.end = n;
		}
		toAbsolute(e) {
			return new D(e + this.start, e + this.end);
		}
	};
	v = class {
		span;
		sourceSpan;
		constructor(e, n) {
			this.span = e, this.sourceSpan = n;
		}
		toString() {
			return "AST";
		}
	};
	Le = class extends v {
		nameSpan;
		constructor(e, n, s) {
			super(e, n), this.nameSpan = s;
		}
	};
	N = class extends v {
		visit(e, n = null) {
			return e.visitEmptyExpr?.(this, n);
		}
	};
	fe = class extends v {
		visit(e, n = null) {
			return e.visitImplicitReceiver(this, n);
		}
	};
	Bt = class extends v {
		visit(e, n = null) {
			return e.visitThisReceiver?.(this, n);
		}
	};
	Ft = class extends v {
		expressions;
		constructor(e, n, s) {
			super(e, n), this.expressions = s;
		}
		visit(e, n = null) {
			return e.visitChain(this, n);
		}
	};
	Vt = class extends v {
		condition;
		trueExp;
		falseExp;
		constructor(e, n, s, i, r) {
			super(e, n), this.condition = s, this.trueExp = i, this.falseExp = r;
		}
		visit(e, n = null) {
			return e.visitConditional(this, n);
		}
	};
	ke = class extends Le {
		receiver;
		name;
		constructor(e, n, s, i, r) {
			super(e, n, s), this.receiver = i, this.name = r;
		}
		visit(e, n = null) {
			return e.visitPropertyRead(this, n);
		}
	};
	Ht = class extends Le {
		receiver;
		name;
		constructor(e, n, s, i, r) {
			super(e, n, s), this.receiver = i, this.name = r;
		}
		visit(e, n = null) {
			return e.visitSafePropertyRead(this, n);
		}
	};
	qe = class extends v {
		receiver;
		key;
		constructor(e, n, s, i) {
			super(e, n), this.receiver = s, this.key = i;
		}
		visit(e, n = null) {
			return e.visitKeyedRead(this, n);
		}
	};
	Ut = class extends v {
		receiver;
		key;
		constructor(e, n, s, i) {
			super(e, n), this.receiver = s, this.key = i;
		}
		visit(e, n = null) {
			return e.visitSafeKeyedRead(this, n);
		}
	};
	(function(t) {
		t[t.ReferencedByName = 0] = "ReferencedByName", t[t.ReferencedDirectly = 1] = "ReferencedDirectly";
	})(_e || (_e = {}));
	Wt = class extends Le {
		exp;
		name;
		args;
		type;
		constructor(e, n, s, i, r, a, u) {
			super(e, n, u), this.exp = s, this.name = i, this.args = r, this.type = a;
		}
		visit(e, n = null) {
			return e.visitPipe(this, n);
		}
	};
	A = class extends v {
		value;
		constructor(e, n, s) {
			super(e, n), this.value = s;
		}
		visit(e, n = null) {
			return e.visitLiteralPrimitive(this, n);
		}
	};
	qt = class extends v {
		expressions;
		constructor(e, n, s) {
			super(e, n), this.expressions = s;
		}
		visit(e, n = null) {
			return e.visitLiteralArray(this, n);
		}
	};
	jt = class extends v {
		expression;
		constructor(e, n, s) {
			super(e, n), this.expression = s;
		}
		visit(e, n = null) {
			return e.visitSpreadElement(this, n);
		}
	};
	zt = class extends v {
		keys;
		values;
		constructor(e, n, s, i) {
			super(e, n), this.keys = s, this.values = i;
		}
		visit(e, n = null) {
			return e.visitLiteralMap(this, n);
		}
	};
	Sr = class extends v {
		strings;
		expressions;
		constructor(e, n, s, i) {
			super(e, n), this.strings = s, this.expressions = i;
		}
		visit(e, n = null) {
			return e.visitInterpolation(this, n);
		}
	};
	E = class extends v {
		operation;
		left;
		right;
		constructor(e, n, s, i, r) {
			super(e, n), this.operation = s, this.left = i, this.right = r;
		}
		visit(e, n = null) {
			return e.visitBinary(this, n);
		}
		static isAssignmentOperation(e) {
			return e === "=" || e === "+=" || e === "-=" || e === "*=" || e === "/=" || e === "%=" || e === "**=" || e === "&&=" || e === "||=" || e === "??=";
		}
	};
	Ie = class t extends E {
		operator;
		expr;
		left = null;
		right = null;
		operation = null;
		static createMinus(e, n, s) {
			return new t(e, n, "-", s, "-", new A(e, n, 0), s);
		}
		static createPlus(e, n, s) {
			return new t(e, n, "+", s, "-", s, new A(e, n, 0));
		}
		constructor(e, n, s, i, r, a, u) {
			super(e, n, r, a, u), this.operator = s, this.expr = i;
		}
		visit(e, n = null) {
			return e.visitUnary !== void 0 ? e.visitUnary(this, n) : e.visitBinary(this, n);
		}
	};
	je = class extends v {
		expression;
		constructor(e, n, s) {
			super(e, n), this.expression = s;
		}
		visit(e, n = null) {
			return e.visitPrefixNot(this, n);
		}
	};
	ze = class extends v {
		expression;
		constructor(e, n, s) {
			super(e, n), this.expression = s;
		}
		visit(e, n = null) {
			return e.visitTypeofExpression(this, n);
		}
	};
	Ge = class extends v {
		expression;
		constructor(e, n, s) {
			super(e, n), this.expression = s;
		}
		visit(e, n = null) {
			return e.visitVoidExpression(this, n);
		}
	};
	Gt = class extends v {
		expression;
		constructor(e, n, s) {
			super(e, n), this.expression = s;
		}
		visit(e, n = null) {
			return e.visitNonNullAssert(this, n);
		}
	};
	Xe = class extends v {
		receiver;
		args;
		argumentSpan;
		constructor(e, n, s, i, r) {
			super(e, n), this.receiver = s, this.args = i, this.argumentSpan = r;
		}
		visit(e, n = null) {
			return e.visitCall(this, n);
		}
	};
	Xt = class extends v {
		receiver;
		args;
		argumentSpan;
		constructor(e, n, s, i, r) {
			super(e, n), this.receiver = s, this.args = i, this.argumentSpan = r;
		}
		visit(e, n = null) {
			return e.visitSafeCall(this, n);
		}
	};
	Qe = class extends v {
		tag;
		template;
		constructor(e, n, s, i) {
			super(e, n), this.tag = s, this.template = i;
		}
		visit(e, n) {
			return e.visitTaggedTemplateLiteral(this, n);
		}
	};
	Je = class extends v {
		elements;
		expressions;
		constructor(e, n, s, i) {
			super(e, n), this.elements = s, this.expressions = i;
		}
		visit(e, n) {
			return e.visitTemplateLiteral(this, n);
		}
	};
	Ye = class extends v {
		text;
		constructor(e, n, s) {
			super(e, n), this.text = s;
		}
		visit(e, n) {
			return e.visitTemplateLiteralElement(this, n);
		}
	};
	$e = class extends v {
		expression;
		constructor(e, n, s) {
			super(e, n), this.expression = s;
		}
		visit(e, n) {
			return e.visitParenthesizedExpression(this, n);
		}
	};
	Qt = class {
		name;
		span;
		sourceSpan;
		constructor(e, n, s) {
			this.name = e, this.span = n, this.sourceSpan = s;
		}
	};
	Jt = class extends v {
		parameters;
		body;
		constructor(e, n, s, i) {
			super(e, n), this.parameters = s, this.body = i;
		}
		visit(e, n) {
			return e.visitArrowFunction(this, n);
		}
	};
	Yt = class extends v {
		body;
		flags;
		constructor(e, n, s, i) {
			super(e, n), this.body = s, this.flags = i;
		}
		visit(e, n) {
			return e.visitRegularExpressionLiteral(this, n);
		}
	};
	D = class {
		start;
		end;
		constructor(e, n) {
			this.start = e, this.end = n;
		}
	};
	U = class extends v {
		ast;
		source;
		location;
		errors;
		constructor(e, n, s, i, r) {
			super(new ee(0, n === null ? 0 : n.length), new D(i, n === null ? i : i + n.length)), this.ast = e, this.source = n, this.location = s, this.errors = r;
		}
		visit(e, n = null) {
			return e.visitASTWithSource ? e.visitASTWithSource(this, n) : this.ast.visit(e, n);
		}
		toString() {
			return `${this.source} in ${this.location}`;
		}
	};
	de = class {
		sourceSpan;
		key;
		value;
		constructor(e, n, s) {
			this.sourceSpan = e, this.key = n, this.value = s;
		}
	};
	Me = class {
		sourceSpan;
		key;
		value;
		constructor(e, n, s) {
			this.sourceSpan = e, this.key = n, this.value = s;
		}
	};
	Kt = class {
		visit(e, n) {
			e.visit(this, n);
		}
		visitUnary(e, n) {
			this.visit(e.expr, n);
		}
		visitBinary(e, n) {
			this.visit(e.left, n), this.visit(e.right, n);
		}
		visitChain(e, n) {
			this.visitAll(e.expressions, n);
		}
		visitConditional(e, n) {
			this.visit(e.condition, n), this.visit(e.trueExp, n), this.visit(e.falseExp, n);
		}
		visitPipe(e, n) {
			this.visit(e.exp, n), this.visitAll(e.args, n);
		}
		visitImplicitReceiver(e, n) {}
		visitThisReceiver(e, n) {}
		visitInterpolation(e, n) {
			this.visitAll(e.expressions, n);
		}
		visitKeyedRead(e, n) {
			this.visit(e.receiver, n), this.visit(e.key, n);
		}
		visitLiteralArray(e, n) {
			this.visitAll(e.expressions, n);
		}
		visitLiteralMap(e, n) {
			this.visitAll(e.values, n);
		}
		visitLiteralPrimitive(e, n) {}
		visitPrefixNot(e, n) {
			this.visit(e.expression, n);
		}
		visitTypeofExpression(e, n) {
			this.visit(e.expression, n);
		}
		visitVoidExpression(e, n) {
			this.visit(e.expression, n);
		}
		visitNonNullAssert(e, n) {
			this.visit(e.expression, n);
		}
		visitPropertyRead(e, n) {
			this.visit(e.receiver, n);
		}
		visitSafePropertyRead(e, n) {
			this.visit(e.receiver, n);
		}
		visitSafeKeyedRead(e, n) {
			this.visit(e.receiver, n), this.visit(e.key, n);
		}
		visitCall(e, n) {
			this.visit(e.receiver, n), this.visitAll(e.args, n);
		}
		visitSafeCall(e, n) {
			this.visit(e.receiver, n), this.visitAll(e.args, n);
		}
		visitTemplateLiteral(e, n) {
			for (let s = 0; s < e.elements.length; s++) {
				this.visit(e.elements[s], n);
				let i = s < e.expressions.length ? e.expressions[s] : null;
				i !== null && this.visit(i, n);
			}
		}
		visitTemplateLiteralElement(e, n) {}
		visitTaggedTemplateLiteral(e, n) {
			this.visit(e.tag, n), this.visit(e.template, n);
		}
		visitParenthesizedExpression(e, n) {
			this.visit(e.expression, n);
		}
		visitArrowFunction(e, n) {
			this.visit(e.body, n);
		}
		visitRegularExpressionLiteral(e, n) {}
		visitSpreadElement(e, n) {
			this.visit(e.expression, n);
		}
		visitEmptyExpr(e, n) {}
		visitAll(e, n) {
			for (let s of e) this.visit(s, n);
		}
	};
	(function(t) {
		t[t.DEFAULT = 0] = "DEFAULT", t[t.LITERAL_ATTR = 1] = "LITERAL_ATTR", t[t.LEGACY_ANIMATION = 2] = "LEGACY_ANIMATION", t[t.TWO_WAY = 3] = "TWO_WAY", t[t.ANIMATION = 4] = "ANIMATION";
	})(Qn || (Qn = {}));
	(function(t) {
		t[t.Regular = 0] = "Regular", t[t.LegacyAnimation = 1] = "LegacyAnimation", t[t.TwoWay = 2] = "TwoWay", t[t.Animation = 3] = "Animation";
	})(Jn || (Jn = {}));
	(function(t) {
		t[t.Property = 0] = "Property", t[t.Attribute = 1] = "Attribute", t[t.Class = 2] = "Class", t[t.Style = 3] = "Style", t[t.LegacyAnimation = 4] = "LegacyAnimation", t[t.TwoWay = 5] = "TwoWay", t[t.Animation = 6] = "Animation";
	})(M || (M = {}));
	(function(t) {
		t[t.RAW_TEXT = 0] = "RAW_TEXT", t[t.ESCAPABLE_RAW_TEXT = 1] = "ESCAPABLE_RAW_TEXT", t[t.PARSABLE_DATA = 2] = "PARSABLE_DATA";
	})(Yn || (Yn = {}));
	Ee = 0;
	Fs = 9;
	Ve = 10;
	yr = 11;
	Er = 12;
	Cr = 13;
	Vs = 32;
	br = 33;
	Hs = 34;
	Tr = 35;
	un = 36;
	kr = 37;
	es = 38;
	Us = 39;
	Q = 40;
	L = 41;
	ts = 42;
	Ws = 43;
	V = 44;
	qs = 45;
	G = 46;
	Ke = 47;
	J = 58;
	Te = 59;
	_r = 60;
	C = 61;
	ns = 62;
	ss = 63;
	Ir = 48;
	Nr = 57;
	pn = 65;
	Ar = 69;
	hn = 90;
	ce = 91;
	St = 92;
	Z = 93;
	Pr = 94;
	at = 95;
	js = 97;
	Lr = 101;
	$r = 102;
	Mr = 110;
	Rr = 114;
	Or = 116;
	Dr = 117;
	Br = 118;
	zs = 122;
	Ne = 123;
	is = 124;
	oe = 125;
	Gs = 160;
	Zt = 96;
	Ze = class t {
		file;
		offset;
		line;
		col;
		constructor(e, n, s, i) {
			this.file = e, this.offset = n, this.line = s, this.col = i;
		}
		toString() {
			return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;
		}
		moveBy(e) {
			let n = this.file.content, s = n.length, i = this.offset, r = this.line, a = this.col;
			for (; i > 0 && e < 0;) if (i--, e++, n.charCodeAt(i) == Ve) {
				r--;
				let h = n.substring(0, i - 1).lastIndexOf(String.fromCharCode(Ve));
				a = h > 0 ? i - h : i;
			} else a--;
			for (; i < s && e > 0;) {
				let u = n.charCodeAt(i);
				i++, e--, u == Ve ? (r++, a = 0) : a++;
			}
			return new t(this.file, i, r, a);
		}
		getContext(e, n) {
			let s = this.file.content, i = this.offset;
			if (i != null) {
				i > s.length - 1 && (i = s.length - 1);
				let r = i, a = 0, u = 0;
				for (; a < e && i > 0 && (i--, a++, !(s[i] == `
` && ++u == n)););
				for (a = 0, u = 0; a < e && r < s.length - 1 && (r++, a++, !(s[r] == `
` && ++u == n)););
				return {
					before: s.substring(i, this.offset),
					after: s.substring(this.offset, r + 1)
				};
			}
			return null;
		}
	};
	et = class {
		content;
		url;
		constructor(e, n) {
			this.content = e, this.url = n;
		}
	};
	tt = class {
		start;
		end;
		fullStart;
		details;
		constructor(e, n, s = e, i = null) {
			this.start = e, this.end = n, this.fullStart = s, this.details = i;
		}
		toString() {
			return this.start.file.content.substring(this.start.offset, this.end.offset);
		}
	};
	(function(t) {
		t[t.WARNING = 0] = "WARNING", t[t.ERROR = 1] = "ERROR";
	})(nt || (nt = {}));
	Re = class extends Error {
		span;
		msg;
		level;
		relatedError;
		constructor(e, n, s = nt.ERROR, i) {
			super(n), this.span = e, this.msg = n, this.level = s, this.relatedError = i, Object.setPrototypeOf(this, new.target.prototype);
		}
		contextualMessage() {
			let e = this.span.start.getContext(100, 3);
			return e ? `${this.msg} ("${e.before}[${nt[this.level]} ->]${e.after}")` : this.msg;
		}
		toString() {
			let e = this.span.details ? `, ${this.span.details}` : "";
			return `${this.contextualMessage()}: ${this.span.start}${e}`;
		}
	};
	(function(t) {
		t[t.Inline = 0] = "Inline", t[t.SideEffect = 1] = "SideEffect", t[t.Omit = 2] = "Omit";
	})(os || (os = {}));
	(function(t) {
		t[t.Global = 0] = "Global", t[t.Local = 1] = "Local", t[t.Isolated = 2] = "Isolated";
	})(as || (as = {}));
	(function(t) {
		t[t.Directive = 0] = "Directive", t[t.Pipe = 1] = "Pipe", t[t.NgModule = 2] = "NgModule";
	})(ls || (ls = {}));
	Vr = "(:(where|is)\\()?";
	Xs = "-shadowcsshost";
	Hr = "-shadowcsscontext";
	tn = "[^)(]*";
	fn = `(?:\\((${`(?:\\(${`(?:\\(${tn}\\)|${tn})+?`}\\)|${tn})+?`})\\))`;
	new RegExp("(:nth-[-\\w]+)" + fn, "g");
	new RegExp(Xs + fn + "?([^,{]*)", "gim");
	qr = Hr + fn + "([^{]*)";
	new RegExp(`${Vr}(${qr})`, "gim");
	jr = Xs + "-no-combinator";
	new RegExp(`${jr}(?![^(]*\\))`, "g");
	Qs = "%COMMENT%";
	new RegExp(Qs, "g");
	new RegExp(`(\\s*(?:${Qs}\\s*)*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))`, "g");
	zr = "%COMMA_IN_PLACEHOLDER%";
	Gr = "%SEMI_IN_PLACEHOLDER%";
	Xr = "%COLON_IN_PLACEHOLDER%";
	new RegExp(zr, "g");
	new RegExp(Gr, "g");
	new RegExp(Xr, "g");
	(function(t) {
		t[t.ListEnd = 0] = "ListEnd", t[t.Statement = 1] = "Statement", t[t.Variable = 2] = "Variable", t[t.ElementStart = 3] = "ElementStart", t[t.Element = 4] = "Element", t[t.Template = 5] = "Template", t[t.ElementEnd = 6] = "ElementEnd", t[t.ContainerStart = 7] = "ContainerStart", t[t.Container = 8] = "Container", t[t.ContainerEnd = 9] = "ContainerEnd", t[t.DisableBindings = 10] = "DisableBindings", t[t.ConditionalCreate = 11] = "ConditionalCreate", t[t.ConditionalBranchCreate = 12] = "ConditionalBranchCreate", t[t.Conditional = 13] = "Conditional", t[t.EnableBindings = 14] = "EnableBindings", t[t.Text = 15] = "Text", t[t.Listener = 16] = "Listener", t[t.InterpolateText = 17] = "InterpolateText", t[t.Binding = 18] = "Binding", t[t.Property = 19] = "Property", t[t.StyleProp = 20] = "StyleProp", t[t.ClassProp = 21] = "ClassProp", t[t.StyleMap = 22] = "StyleMap", t[t.ClassMap = 23] = "ClassMap", t[t.Advance = 24] = "Advance", t[t.Pipe = 25] = "Pipe", t[t.Attribute = 26] = "Attribute", t[t.ExtractedAttribute = 27] = "ExtractedAttribute", t[t.Defer = 28] = "Defer", t[t.DeferOn = 29] = "DeferOn", t[t.DeferWhen = 30] = "DeferWhen", t[t.I18nMessage = 31] = "I18nMessage", t[t.DomProperty = 32] = "DomProperty", t[t.Namespace = 33] = "Namespace", t[t.ProjectionDef = 34] = "ProjectionDef", t[t.EnableIncrementalHydrationRuntime = 35] = "EnableIncrementalHydrationRuntime", t[t.Projection = 36] = "Projection", t[t.RepeaterCreate = 37] = "RepeaterCreate", t[t.Repeater = 38] = "Repeater", t[t.TwoWayProperty = 39] = "TwoWayProperty", t[t.TwoWayListener = 40] = "TwoWayListener", t[t.DeclareLet = 41] = "DeclareLet", t[t.StoreLet = 42] = "StoreLet", t[t.I18nStart = 43] = "I18nStart", t[t.I18n = 44] = "I18n", t[t.I18nEnd = 45] = "I18nEnd", t[t.I18nExpression = 46] = "I18nExpression", t[t.I18nApply = 47] = "I18nApply", t[t.IcuStart = 48] = "IcuStart", t[t.IcuEnd = 49] = "IcuEnd", t[t.IcuPlaceholder = 50] = "IcuPlaceholder", t[t.I18nContext = 51] = "I18nContext", t[t.I18nAttributes = 52] = "I18nAttributes", t[t.SourceLocation = 53] = "SourceLocation", t[t.Animation = 54] = "Animation", t[t.AnimationString = 55] = "AnimationString", t[t.AnimationBinding = 56] = "AnimationBinding", t[t.AnimationListener = 57] = "AnimationListener", t[t.Control = 58] = "Control", t[t.ControlCreate = 59] = "ControlCreate";
	})(l || (l = {}));
	(function(t) {
		t[t.LexicalRead = 0] = "LexicalRead", t[t.Context = 1] = "Context", t[t.TrackContext = 2] = "TrackContext", t[t.ReadVariable = 3] = "ReadVariable", t[t.NextContext = 4] = "NextContext", t[t.Reference = 5] = "Reference", t[t.StoreLet = 6] = "StoreLet", t[t.ContextLetReference = 7] = "ContextLetReference", t[t.GetCurrentView = 8] = "GetCurrentView", t[t.RestoreView = 9] = "RestoreView", t[t.ResetView = 10] = "ResetView", t[t.PureFunctionExpr = 11] = "PureFunctionExpr", t[t.PureFunctionParameterExpr = 12] = "PureFunctionParameterExpr", t[t.PipeBinding = 13] = "PipeBinding", t[t.PipeBindingVariadic = 14] = "PipeBindingVariadic", t[t.SafePropertyRead = 15] = "SafePropertyRead", t[t.SafeKeyedRead = 16] = "SafeKeyedRead", t[t.SafeNavigationMigration = 17] = "SafeNavigationMigration", t[t.SafeTernaryExpr = 18] = "SafeTernaryExpr", t[t.EmptyExpr = 19] = "EmptyExpr", t[t.AssignTemporaryExpr = 20] = "AssignTemporaryExpr", t[t.ReadTemporaryExpr = 21] = "ReadTemporaryExpr", t[t.SlotLiteralExpr = 22] = "SlotLiteralExpr", t[t.ConditionalCase = 23] = "ConditionalCase", t[t.ConstCollected = 24] = "ConstCollected", t[t.TwoWayBindingSet = 25] = "TwoWayBindingSet", t[t.ArrowFunction = 26] = "ArrowFunction";
	})(te || (te = {}));
	(function(t) {
		t[t.None = 0] = "None", t[t.AlwaysInline = 1] = "AlwaysInline";
	})(cs || (cs = {}));
	(function(t) {
		t[t.Context = 0] = "Context", t[t.Identifier = 1] = "Identifier", t[t.SavedView = 2] = "SavedView", t[t.Alias = 3] = "Alias";
	})(us || (us = {}));
	(function(t) {
		t[t.Attribute = 0] = "Attribute", t[t.ClassName = 1] = "ClassName", t[t.StyleProperty = 2] = "StyleProperty", t[t.Property = 3] = "Property", t[t.Template = 4] = "Template", t[t.I18n = 5] = "I18n", t[t.LegacyAnimation = 6] = "LegacyAnimation", t[t.TwoWayProperty = 7] = "TwoWayProperty", t[t.Animation = 8] = "Animation";
	})(R || (R = {}));
	(function(t) {
		t[t.Creation = 0] = "Creation", t[t.Postproccessing = 1] = "Postproccessing";
	})(ps || (ps = {}));
	(function(t) {
		t[t.I18nText = 0] = "I18nText", t[t.I18nAttribute = 1] = "I18nAttribute";
	})(hs || (hs = {}));
	(function(t) {
		t[t.None = 0] = "None", t[t.ElementTag = 1] = "ElementTag", t[t.TemplateTag = 2] = "TemplateTag", t[t.OpenTag = 4] = "OpenTag", t[t.CloseTag = 8] = "CloseTag", t[t.ExpressionIndex = 16] = "ExpressionIndex";
	})(fs || (fs = {}));
	(function(t) {
		t[t.HTML = 0] = "HTML", t[t.SVG = 1] = "SVG", t[t.Math = 2] = "Math";
	})(ds || (ds = {}));
	(function(t) {
		t[t.Idle = 0] = "Idle", t[t.Immediate = 1] = "Immediate", t[t.Timer = 2] = "Timer", t[t.Hover = 3] = "Hover", t[t.Interaction = 4] = "Interaction", t[t.Viewport = 5] = "Viewport", t[t.Never = 6] = "Never";
	})(O || (O = {}));
	(function(t) {
		t[t.RootI18n = 0] = "RootI18n", t[t.Icu = 1] = "Icu", t[t.Attr = 2] = "Attr";
	})(ms || (ms = {}));
	(function(t) {
		t[t.NgTemplate = 0] = "NgTemplate", t[t.Structural = 1] = "Structural", t[t.Block = 2] = "Block";
	})(gs || (gs = {}));
	(function(t) {
		t[t.None = 0] = "None", t[t.InChildOperation = 1] = "InChildOperation", t[t.InArrowFunctionOperation = 2] = "InArrowFunctionOperation", t[t.InSafeNavigationMigration = 4] = "InSafeNavigationMigration";
	})(q || (q = {}));
	l.Element, l.ElementStart, l.Container, l.ContainerStart, l.Template, l.RepeaterCreate, l.ConditionalCreate, l.ConditionalBranchCreate;
	(function(t) {
		t[t.Tmpl = 0] = "Tmpl", t[t.Host = 1] = "Host", t[t.Both = 2] = "Both";
	})(Es || (Es = {}));
	(function(t) {
		t[t.Full = 0] = "Full", t[t.DomOnly = 1] = "DomOnly";
	})(Cs || (Cs = {}));
	c.ariaProperty, c.ariaProperty, c.attribute, c.attribute, c.classProp, c.classProp, c.element, c.element, c.elementContainer, c.elementContainer, c.elementContainerEnd, c.elementContainerEnd, c.elementContainerStart, c.elementContainerStart, c.elementEnd, c.elementEnd, c.elementStart, c.elementStart, c.domProperty, c.domProperty, c.i18nExp, c.i18nExp, c.listener, c.listener, c.listener, c.listener, c.property, c.property, c.styleProp, c.styleProp, c.syntheticHostListener, c.syntheticHostListener, c.syntheticHostProperty, c.syntheticHostProperty, c.templateCreate, c.templateCreate, c.twoWayProperty, c.twoWayProperty, c.twoWayListener, c.twoWayListener, c.declareLet, c.declareLet, c.conditionalCreate, c.conditionalBranchCreate, c.conditionalBranchCreate, c.conditionalBranchCreate, c.domElement, c.domElement, c.domElementStart, c.domElementStart, c.domElementEnd, c.domElementEnd, c.domElementContainer, c.domElementContainer, c.domElementContainerStart, c.domElementContainerStart, c.domElementContainerEnd, c.domElementContainerEnd, c.domListener, c.domListener, c.domTemplate, c.domTemplate, c.animationEnter, c.animationEnter, c.animationLeave, c.animationLeave, c.animationEnterListener, c.animationEnterListener, c.animationLeaveListener, c.animationLeaveListener;
	p.And, p.Bigger, p.BiggerEquals, p.BitwiseOr, p.BitwiseAnd, p.Divide, p.Assign, p.Equals, p.Identical, p.Lower, p.LowerEquals, p.Minus, p.Modulo, p.Exponentiation, p.Multiply, p.NotEquals, p.NotIdentical, p.NullishCoalesce, p.Or, p.Plus, p.In, p.InstanceOf, p.AdditionAssignment, p.SubtractionAssignment, p.MultiplicationAssignment, p.DivisionAssignment, p.RemainderAssignment, p.ExponentiationAssignment, p.AndAssignment, p.OrAssignment, p.NullishCoalesceAssignment;
	Object.freeze([]);
	l.Property, l.Property, l.Property, l.Attribute, l.Attribute, l.Property, l.TwoWayProperty;
	l.Container, l.ContainerStart, l.ContainerEnd, l.Element, l.ElementStart, l.ElementEnd, l.Template;
	l.ElementEnd, l.ElementStart, l.Element, l.ContainerEnd, l.ContainerStart, l.Container, l.I18nEnd, l.I18nStart, l.I18n;
	l.Pipe;
	Zr = {};
	Zr.ngsp = "";
	(function(t) {
		t.HEX = "hexadecimal", t.DEC = "decimal";
	})(bs || (bs = {}));
	Ys = ` \f
\r	\v\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`;
	new RegExp(`[^${Ys}]`);
	new RegExp(`[${Ys}]{2,}`, "g");
	(function(t) {
		t[t.Character = 0] = "Character", t[t.Identifier = 1] = "Identifier", t[t.PrivateIdentifier = 2] = "PrivateIdentifier", t[t.Keyword = 3] = "Keyword", t[t.String = 4] = "String", t[t.Operator = 5] = "Operator", t[t.Number = 6] = "Number", t[t.RegExpBody = 7] = "RegExpBody", t[t.RegExpFlags = 8] = "RegExpFlags", t[t.Error = 9] = "Error";
	})(f || (f = {}));
	(function(t) {
		t[t.Plain = 0] = "Plain", t[t.TemplateLiteralPart = 1] = "TemplateLiteralPart", t[t.TemplateLiteralEnd = 2] = "TemplateLiteralEnd";
	})(W || (W = {}));
	to = [
		"var",
		"let",
		"as",
		"null",
		"undefined",
		"true",
		"false",
		"if",
		"else",
		"this",
		"typeof",
		"void",
		"in",
		"instanceof"
	];
	Oe = class {
		tokenize(e) {
			return new rn(e).scan();
		}
	};
	I = class {
		index;
		end;
		type;
		numValue;
		strValue;
		constructor(e, n, s, i, r) {
			this.index = e, this.end = n, this.type = s, this.numValue = i, this.strValue = r;
		}
		isCharacter(e) {
			return this.type === f.Character && this.numValue === e;
		}
		isNumber() {
			return this.type === f.Number;
		}
		isString() {
			return this.type === f.String;
		}
		isOperator(e) {
			return this.type === f.Operator && this.strValue === e;
		}
		isIdentifier() {
			return this.type === f.Identifier;
		}
		isPrivateIdentifier() {
			return this.type === f.PrivateIdentifier;
		}
		isKeyword() {
			return this.type === f.Keyword;
		}
		isKeywordLet() {
			return this.type === f.Keyword && this.strValue === "let";
		}
		isKeywordAs() {
			return this.type === f.Keyword && this.strValue === "as";
		}
		isKeywordNull() {
			return this.type === f.Keyword && this.strValue === "null";
		}
		isKeywordUndefined() {
			return this.type === f.Keyword && this.strValue === "undefined";
		}
		isKeywordTrue() {
			return this.type === f.Keyword && this.strValue === "true";
		}
		isKeywordFalse() {
			return this.type === f.Keyword && this.strValue === "false";
		}
		isKeywordThis() {
			return this.type === f.Keyword && this.strValue === "this";
		}
		isKeywordTypeof() {
			return this.type === f.Keyword && this.strValue === "typeof";
		}
		isKeywordVoid() {
			return this.type === f.Keyword && this.strValue === "void";
		}
		isKeywordIn() {
			return this.type === f.Keyword && this.strValue === "in";
		}
		isKeywordInstanceOf() {
			return this.type === f.Keyword && this.strValue === "instanceof";
		}
		isError() {
			return this.type === f.Error;
		}
		isRegExpBody() {
			return this.type === f.RegExpBody;
		}
		isRegExpFlags() {
			return this.type === f.RegExpFlags;
		}
		toNumber() {
			return this.type === f.Number ? this.numValue : -1;
		}
		isTemplateLiteralPart() {
			return this.isString() && this.kind === W.TemplateLiteralPart;
		}
		isTemplateLiteralEnd() {
			return this.isString() && this.kind === W.TemplateLiteralEnd;
		}
		isTemplateLiteralInterpolationStart() {
			return this.isOperator("${");
		}
		toString() {
			switch (this.type) {
				case f.Character:
				case f.Identifier:
				case f.Keyword:
				case f.Operator:
				case f.PrivateIdentifier:
				case f.String:
				case f.Error:
				case f.RegExpBody:
				case f.RegExpFlags: return this.strValue;
				case f.Number: return this.numValue.toString();
				default: return null;
			}
		}
	};
	Ae = class extends I {
		kind;
		constructor(e, n, s, i) {
			super(e, n, f.String, 0, s), this.kind = i;
		}
	};
	be = new I(-1, -1, f.Character, 0, "");
	rn = class {
		input;
		tokens = [];
		length;
		peek = 0;
		index = -1;
		braceStack = [];
		constructor(e) {
			this.input = e, this.length = e.length, this.advance();
		}
		scan() {
			let e = this.scanToken();
			for (; e !== null;) this.tokens.push(e), e = this.scanToken();
			return this.tokens;
		}
		advance() {
			this.peek = ++this.index >= this.length ? Ee : this.input.charCodeAt(this.index);
		}
		scanToken() {
			let e = this.input, n = this.length, s = this.peek, i = this.index;
			for (; s <= Vs;) if (++i >= n) {
				s = Ee;
				break;
			} else s = e.charCodeAt(i);
			if (this.peek = s, this.index = i, i >= n) return null;
			if (Ts(s)) return this.scanIdentifier();
			if (X(s)) return this.scanNumber(i);
			let r = i;
			switch (s) {
				case G: return this.advance(), X(this.peek) ? this.scanNumber(r) : this.peek !== G ? Ce(r, this.index, G) : (this.advance(), this.peek === G ? (this.advance(), F(r, this.index, "...")) : this.error(`Unexpected character [${String.fromCharCode(s)}]`, 0));
				case Q:
				case L:
				case ce:
				case Z:
				case V:
				case J:
				case Te: return this.scanCharacter(r, s);
				case Ne: return this.scanOpenBrace(r, s);
				case oe: return this.scanCloseBrace(r, s);
				case Us:
				case Hs: return this.scanString();
				case Zt: return this.advance(), this.scanTemplateLiteralPart(r);
				case Tr: return this.scanPrivateIdentifier();
				case Ws: return this.scanComplexOperator(r, "+", C, "=");
				case qs: return this.scanComplexOperator(r, "-", C, "=");
				case Ke: return this.isStartOfRegex() ? this.scanRegex(i) : this.scanComplexOperator(r, "/", C, "=");
				case kr: return this.scanComplexOperator(r, "%", C, "=");
				case Pr: return this.scanOperator(r, "^");
				case ts: return this.scanStar(r);
				case ss: return this.scanQuestion(r);
				case _r:
				case ns: return this.scanComplexOperator(r, String.fromCharCode(s), C, "=");
				case br: return this.scanComplexOperator(r, "!", C, "=", C, "=");
				case C: return this.scanEquals(r);
				case es: return this.scanComplexOperator(r, "&", es, "&", C, "=");
				case is: return this.scanComplexOperator(r, "|", is, "|", C, "=");
				case Gs:
					for (; Fr(this.peek);) this.advance();
					return this.scanToken();
			}
			return this.advance(), this.error(`Unexpected character [${String.fromCharCode(s)}]`, 0);
		}
		scanCharacter(e, n) {
			return this.advance(), Ce(e, this.index, n);
		}
		scanOperator(e, n) {
			return this.advance(), F(e, this.index, n);
		}
		scanOpenBrace(e, n) {
			return this.braceStack.push("expression"), this.advance(), Ce(e, this.index, n);
		}
		scanCloseBrace(e, n) {
			return this.advance(), this.braceStack.pop() === "interpolation" ? (this.tokens.push(Ce(e, this.index, oe)), this.scanTemplateLiteralPart(this.index)) : Ce(e, this.index, n);
		}
		scanComplexOperator(e, n, s, i, r, a) {
			this.advance();
			let u = n;
			return this.peek == s && (this.advance(), u += i), r != null && this.peek == r && (this.advance(), u += a), F(e, this.index, u);
		}
		scanEquals(e) {
			this.advance();
			let n = "=";
			if (this.peek === C) this.advance(), n += "=";
			else if (this.peek === ns) return this.advance(), n += ">", F(e, this.index, n);
			return this.peek === C && (this.advance(), n += "="), F(e, this.index, n);
		}
		scanIdentifier() {
			let e = this.index;
			for (this.advance(); ks(this.peek);) this.advance();
			let n = this.input.substring(e, this.index);
			return to.indexOf(n) > -1 ? io(e, this.index, n) : no(e, this.index, n);
		}
		scanPrivateIdentifier() {
			let e = this.index;
			if (this.advance(), !Ts(this.peek)) return this.error("Invalid character [#]", -1);
			for (; ks(this.peek);) this.advance();
			let n = this.input.substring(e, this.index);
			return so(e, this.index, n);
		}
		scanNumber(e) {
			let n = this.index === e, s = !1;
			for (this.advance();;) {
				if (!X(this.peek)) if (this.peek === at) {
					if (!X(this.input.charCodeAt(this.index - 1)) || !X(this.input.charCodeAt(this.index + 1))) return this.error("Invalid numeric separator", 0);
					s = !0;
				} else if (this.peek === G) n = !1;
				else if (co(this.peek)) {
					if (this.advance(), uo(this.peek) && this.advance(), !X(this.peek)) return this.error("Invalid exponent", -1);
					n = !1;
				} else break;
				this.advance();
			}
			let i = this.input.substring(e, this.index);
			s && (i = i.replace(/_/g, ""));
			let r = n ? ho(i) : parseFloat(i);
			return ro(e, this.index, r);
		}
		scanString() {
			let e = this.index, n = this.peek;
			this.advance();
			let s = "", i = this.index, r = this.input;
			for (; this.peek != n;) if (this.peek == St) {
				let u = this.scanStringBackslash(s, i);
				if (typeof u != "string") return u;
				s = u, i = this.index;
			} else {
				if (this.peek == Ee) return this.error("Unterminated quote", 0);
				this.advance();
			}
			let a = r.substring(i, this.index);
			return this.advance(), new Ae(e, this.index, s + a, W.Plain);
		}
		scanQuestion(e) {
			this.advance();
			let n = "?";
			return this.peek === ss ? (n += "?", this.advance(), this.peek === C && (n += "=", this.advance())) : this.peek === G && (n += ".", this.advance()), F(e, this.index, n);
		}
		scanTemplateLiteralPart(e) {
			let n = "", s = this.index;
			for (; this.peek !== Zt;) if (this.peek === St) {
				let r = this.scanStringBackslash(n, s);
				if (typeof r != "string") return r;
				n = r, s = this.index;
			} else if (this.peek === un) {
				let r = this.index;
				if (this.advance(), this.peek === Ne) return this.braceStack.push("interpolation"), this.tokens.push(new Ae(e, r, n + this.input.substring(s, r), W.TemplateLiteralPart)), this.advance(), F(r, this.index, this.input.substring(r, this.index));
			} else {
				if (this.peek === Ee) return this.error("Unterminated template literal", 0);
				this.advance();
			}
			let i = this.input.substring(s, this.index);
			return this.advance(), new Ae(e, this.index, n + i, W.TemplateLiteralEnd);
		}
		error(e, n) {
			let s = this.index + n;
			return oo(s, this.index, `Lexer Error: ${e} at column ${s} in expression [${this.input}]`);
		}
		scanStringBackslash(e, n) {
			e += this.input.substring(n, this.index);
			let s;
			if (this.advance(), this.peek === Dr) {
				let i = this.input.substring(this.index + 1, this.index + 5);
				if (/^[0-9a-f]+$/i.test(i)) s = parseInt(i, 16);
				else return this.error(`Invalid unicode escape [\\u${i}]`, 0);
				for (let r = 0; r < 5; r++) this.advance();
			} else s = po(this.peek), this.advance();
			return e += String.fromCharCode(s), e;
		}
		scanStar(e) {
			this.advance();
			let n = "*";
			return this.peek === ts ? (n += "*", this.advance(), this.peek === C && (n += "=", this.advance())) : this.peek === C && (n += "=", this.advance()), F(e, this.index, n);
		}
		isStartOfRegex() {
			if (this.tokens.length === 0) return !0;
			let e = this.tokens[this.tokens.length - 1];
			if (e.isOperator("!")) {
				let n = this.tokens.length > 1 ? this.tokens[this.tokens.length - 2] : null;
				return n === null || n.type !== f.Identifier && !n.isCharacter(L) && !n.isCharacter(Z);
			}
			return e.type === f.Operator || e.isCharacter(Q) || e.isCharacter(ce) || e.isCharacter(V) || e.isCharacter(J);
		}
		scanRegex(e) {
			this.advance();
			let n = this.index, s = !1, i = !1;
			for (;;) {
				let h = this.peek;
				if (h === Ee) return this.error("Unterminated regular expression", 0);
				if (s) s = !1;
				else if (h === St) s = !0;
				else if (h === ce) i = !0;
				else if (h === Z) i = !1;
				else if (h === Ke && !i) break;
				this.advance();
			}
			let r = this.input.substring(n, this.index);
			this.advance();
			let a = ao(e, this.index, r), u = this.scanRegexFlags(this.index);
			return u !== null ? (this.tokens.push(a), u) : a;
		}
		scanRegexFlags(e) {
			if (!en(this.peek)) return null;
			for (; en(this.peek);) this.advance();
			return lo(e, this.index, this.input.substring(e, this.index));
		}
	};
	on = class {
		strings;
		expressions;
		offsets;
		constructor(e, n, s) {
			this.strings = e, this.expressions = n, this.offsets = s;
		}
	};
	an = class {
		templateBindings;
		warnings;
		errors;
		constructor(e, n, s) {
			this.templateBindings = e, this.warnings = n, this.errors = s;
		}
	};
	ge = class {
		_lexer;
		_supportsDirectPipeReferences;
		constructor(e, n = !1) {
			this._lexer = e, this._supportsDirectPipeReferences = n;
		}
		parseAction(e, n, s) {
			let i = [];
			this._checkNoInterpolation(i, e, n);
			let { stripped: r } = this._stripComments(e);
			return new U(new Y(e, n, s, this._lexer.tokenize(r), 1, i, 0, this._supportsDirectPipeReferences).parseChain(), e, H(n), s, i);
		}
		parseBinding(e, n, s) {
			let i = [];
			return new U(this._parseBindingAst(e, n, s, i), e, H(n), s, i);
		}
		checkSimpleExpression(e) {
			let n = new ln();
			return e.visit(n), n.errors;
		}
		parseSimpleBinding(e, n, s) {
			let i = [], r = this._parseBindingAst(e, n, s, i), a = this.checkSimpleExpression(r);
			return a.length > 0 && i.push(le(`Host binding expression cannot contain ${a.join(" ")}`, e, "", n)), new U(r, e, H(n), s, i);
		}
		_parseBindingAst(e, n, s, i) {
			this._checkNoInterpolation(i, e, n);
			let { stripped: r } = this._stripComments(e);
			return new Y(e, n, s, this._lexer.tokenize(r), 0, i, 0, this._supportsDirectPipeReferences).parseChain();
		}
		parseTemplateBindings(e, n, s, i, r) {
			return new Y(n, s, r, this._lexer.tokenize(n), 0, [], 0, this._supportsDirectPipeReferences).parseTemplateBindings({
				source: e,
				span: new D(i, i + e.length)
			});
		}
		parseInterpolation(e, n, s, i) {
			let r = [], { strings: a, expressions: u, offsets: h } = this.splitInterpolation(e, n, r, i);
			if (u.length === 0) return null;
			let d = [];
			for (let g = 0; g < u.length; ++g) {
				let P = i?.[g * 2 + 1]?.sourceSpan, k = u[g].text, { stripped: _, hasComments: b } = this._stripComments(k), j = this._lexer.tokenize(_);
				if (b && _.trim().length === 0 && j.length === 0) {
					r.push(le("Interpolation expression cannot only contain a comment", e, `at column ${u[g].start} in`, n));
					continue;
				}
				let xe = new Y(P ? k : e, P || n, s, j, 0, r, h[g], this._supportsDirectPipeReferences).parseChain();
				d.push(xe);
			}
			return this.createInterpolationAst(a.map((g) => g.text), d, e, H(n), s, r);
		}
		parseInterpolationExpression(e, n, s) {
			let { stripped: i } = this._stripComments(e), r = this._lexer.tokenize(i), a = [], u = new Y(e, n, s, r, 0, a, 0, this._supportsDirectPipeReferences).parseChain();
			return this.createInterpolationAst(["", ""], [u], e, H(n), s, a);
		}
		createInterpolationAst(e, n, s, i, r, a) {
			let u = new ee(0, s.length);
			return new U(new Sr(u, u.toAbsolute(r), e, n), s, i, r, a);
		}
		splitInterpolation(e, n, s, i) {
			let r = [], a = [], u = [], h = i ? fo(i) : null, d = 0, g = !1, P = !1, k = "{{", _ = "}}";
			for (; d < e.length;) if (g) {
				let b = d, j = b + 2, xe = this._getInterpolationEndIndex(e, _, j);
				if (xe === -1) {
					g = !1, P = !0;
					break;
				}
				let bn = xe + 2, Tn = e.substring(j, xe);
				Tn.trim().length === 0 && s.push(le("Blank expressions are not allowed in interpolated strings", e, `at column ${d} in`, n)), a.push({
					text: Tn,
					start: b,
					end: bn
				});
				let ar = (h?.get(b) ?? b) + 2;
				u.push(ar), d = bn, g = !1;
			} else {
				let b = d;
				d = e.indexOf(k, d), d === -1 && (d = e.length);
				let j = e.substring(b, d);
				r.push({
					text: j,
					start: b,
					end: d
				}), g = !0;
			}
			if (!g) if (P) {
				let b = r[r.length - 1];
				b.text += e.substring(d), b.end = e.length;
			} else r.push({
				text: e.substring(d),
				start: d,
				end: e.length
			});
			return new on(r, a, u);
		}
		wrapLiteralPrimitive(e, n, s) {
			let i = new ee(0, e == null ? 0 : e.length);
			return new U(new A(i, i.toAbsolute(s), e), e, typeof n == "string" ? n : H(n), s, []);
		}
		_stripComments(e) {
			let n = this._commentStart(e);
			return n != null ? {
				stripped: e.substring(0, n),
				hasComments: !0
			} : {
				stripped: e,
				hasComments: !1
			};
		}
		_commentStart(e) {
			let n = null;
			for (let s = 0; s < e.length - 1; s++) {
				let i = e.charCodeAt(s), r = e.charCodeAt(s + 1);
				if (i === Ke && r == Ke && n == null) return s;
				n === i ? n = null : n == null && rs(i) && (n = i);
			}
			return null;
		}
		_checkNoInterpolation(e, n, s) {
			let i = -1, r = -1;
			for (let a of this._forEachUnquotedChar(n, 0)) if (i === -1) n.startsWith("{{") && (i = a);
			else if (r = this._getInterpolationEndIndex(n, "}}", a), r > -1) break;
			i > -1 && r > -1 && e.push(le("Got interpolation ({{}}) where expression was expected", n, `at column ${i} in`, s));
		}
		_getInterpolationEndIndex(e, n, s) {
			for (let i of this._forEachUnquotedChar(e, s)) {
				if (e.startsWith(n, i)) return i;
				if (e.startsWith("//", i)) return e.indexOf(n, i);
			}
			return -1;
		}
		*_forEachUnquotedChar(e, n) {
			let s = null, i = 0;
			for (let r = n; r < e.length; r++) {
				let a = e[r];
				rs(e.charCodeAt(r)) && (s === null || s === a) && i % 2 === 0 ? s = s === null ? a : null : s === null && (yield r), i = a === "\\" ? i + 1 : 0;
			}
		}
	};
	(function(t) {
		t[t.None = 0] = "None", t[t.Writable = 1] = "Writable";
	})(ae || (ae = {}));
	_s = /* @__PURE__ */ new Set([
		"d",
		"g",
		"i",
		"m",
		"s",
		"u",
		"v",
		"y"
	]);
	Y = class {
		input;
		parseSourceSpan;
		absoluteOffset;
		tokens;
		parseFlags;
		errors;
		offset;
		supportsDirectPipeReferences;
		rparensExpected = 0;
		rbracketsExpected = 0;
		rbracesExpected = 0;
		context = ae.None;
		sourceSpanCache = /* @__PURE__ */ new Map();
		index = 0;
		constructor(e, n, s, i, r, a, u, h) {
			this.input = e, this.parseSourceSpan = n, this.absoluteOffset = s, this.tokens = i, this.parseFlags = r, this.errors = a, this.offset = u, this.supportsDirectPipeReferences = h;
		}
		peek(e) {
			let n = this.index + e;
			return n < this.tokens.length ? this.tokens[n] : be;
		}
		get next() {
			return this.peek(0);
		}
		get atEOF() {
			return this.index >= this.tokens.length;
		}
		get inputIndex() {
			return this.atEOF ? this.currentEndIndex : this.next.index + this.offset;
		}
		get currentEndIndex() {
			return this.index > 0 ? this.peek(-1).end + this.offset : this.tokens.length === 0 ? this.input.length + this.offset : this.next.index + this.offset;
		}
		get currentAbsoluteOffset() {
			return this.absoluteOffset + this.inputIndex;
		}
		span(e, n) {
			let s = this.currentEndIndex;
			if (n !== void 0 && n > this.currentEndIndex && (s = n), e > s) {
				let i = s;
				s = e, e = i;
			}
			return new ee(e, s);
		}
		sourceSpan(e, n) {
			let s = `${e}@${this.inputIndex}:${n}`;
			return this.sourceSpanCache.has(s) || this.sourceSpanCache.set(s, this.span(e, n).toAbsolute(this.absoluteOffset)), this.sourceSpanCache.get(s);
		}
		advance() {
			this.index++;
		}
		withContext(e, n) {
			this.context |= e;
			let s = n();
			return this.context ^= e, s;
		}
		consumeOptionalCharacter(e) {
			return this.next.isCharacter(e) ? (this.advance(), !0) : !1;
		}
		peekKeywordLet() {
			return this.next.isKeywordLet();
		}
		peekKeywordAs() {
			return this.next.isKeywordAs();
		}
		expectCharacter(e) {
			this.consumeOptionalCharacter(e) || this.error(`Missing expected ${String.fromCharCode(e)}`);
		}
		consumeOptionalOperator(e) {
			return this.next.isOperator(e) ? (this.advance(), !0) : !1;
		}
		isAssignmentOperator(e) {
			return e.type === f.Operator && E.isAssignmentOperation(e.strValue);
		}
		expectOperator(e) {
			this.consumeOptionalOperator(e) || this.error(`Missing expected operator ${e}`);
		}
		prettyPrintToken(e) {
			return e === be ? "end of input" : `token ${e}`;
		}
		expectIdentifierOrKeyword() {
			let e = this.next;
			return !e.isIdentifier() && !e.isKeyword() ? (e.isPrivateIdentifier() ? this._reportErrorForPrivateIdentifier(e, "expected identifier or keyword") : this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier or keyword`), null) : (this.advance(), e.toString());
		}
		expectIdentifierOrKeywordOrString() {
			let e = this.next;
			return !e.isIdentifier() && !e.isKeyword() && !e.isString() ? (e.isPrivateIdentifier() ? this._reportErrorForPrivateIdentifier(e, "expected identifier, keyword or string") : this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier, keyword, or string`), "") : (this.advance(), e.toString());
		}
		parseChain() {
			let e = [], n = this.inputIndex;
			for (; this.index < this.tokens.length;) {
				let s = this.parsePipe();
				if (e.push(s), this.consumeOptionalCharacter(Te)) for (this.parseFlags & 1 || this.error("Binding expression cannot contain chained expression"); this.consumeOptionalCharacter(Te););
				else if (this.index < this.tokens.length) {
					let i = this.index;
					if (this.error(`Unexpected token '${this.next}'`), this.index === i) break;
				}
			}
			if (e.length === 0) {
				let s = this.offset, i = this.offset + this.input.length;
				return new N(this.span(s, i), this.sourceSpan(s, i));
			}
			return e.length == 1 ? e[0] : new Ft(this.span(n), this.sourceSpan(n), e);
		}
		parsePipe() {
			let e = this.inputIndex, n = this.parseExpression();
			if (this.consumeOptionalOperator("|")) {
				this.parseFlags & 1 && this.error("Cannot have a pipe in an action expression");
				do {
					let s = this.inputIndex, i = this.expectIdentifierOrKeyword(), r, a;
					i !== null ? r = this.sourceSpan(s) : (i = "", a = this.next.index !== -1 ? this.next.index : this.input.length + this.offset, r = new ee(a, a).toAbsolute(this.absoluteOffset));
					let u = [];
					for (; this.consumeOptionalCharacter(J);) u.push(this.parseExpression());
					let h;
					if (this.supportsDirectPipeReferences) {
						let d = i.charCodeAt(0);
						h = d === at || d >= pn && d <= hn ? _e.ReferencedDirectly : _e.ReferencedByName;
					} else h = _e.ReferencedByName;
					n = new Wt(this.span(e), this.sourceSpan(e, a), n, i, u, h, r);
				} while (this.consumeOptionalOperator("|"));
			}
			return n;
		}
		parseExpression() {
			return this.parseConditional();
		}
		parseConditional() {
			let e = this.inputIndex, n = this.parseLogicalOr();
			if (this.consumeOptionalOperator("?")) {
				let s = this.parsePipe(), i;
				if (this.consumeOptionalCharacter(J)) i = this.parsePipe();
				else {
					let r = this.inputIndex, a = this.input.substring(e, r);
					this.error(`Conditional expression ${a} requires all 3 expressions`), i = new N(this.span(e), this.sourceSpan(e));
				}
				return new Vt(this.span(e), this.sourceSpan(e), n, s, i);
			} else return n;
		}
		parseLogicalOr() {
			let e = this.inputIndex, n = this.parseLogicalAnd();
			for (; this.consumeOptionalOperator("||");) {
				let s = this.parseLogicalAnd();
				n = new E(this.span(e), this.sourceSpan(e), "||", n, s);
			}
			return n;
		}
		parseLogicalAnd() {
			let e = this.inputIndex, n = this.parseNullishCoalescing();
			for (; this.consumeOptionalOperator("&&");) {
				let s = this.parseNullishCoalescing();
				n = new E(this.span(e), this.sourceSpan(e), "&&", n, s);
			}
			return n;
		}
		parseNullishCoalescing() {
			let e = this.inputIndex, n = this.parseEquality();
			for (; this.consumeOptionalOperator("??");) {
				let s = this.parseEquality();
				n = new E(this.span(e), this.sourceSpan(e), "??", n, s);
			}
			return n;
		}
		parseEquality() {
			let e = this.inputIndex, n = this.parseRelational();
			for (; this.next.type == f.Operator;) {
				let s = this.next.strValue;
				switch (s) {
					case "==":
					case "===":
					case "!=":
					case "!==":
						this.advance();
						let i = this.parseRelational();
						n = new E(this.span(e), this.sourceSpan(e), s, n, i);
						continue;
				}
				break;
			}
			return n;
		}
		parseRelational() {
			let e = this.inputIndex, n = this.parseAdditive();
			for (; this.next.type == f.Operator || this.next.isKeywordIn() || this.next.isKeywordInstanceOf();) {
				let s = this.next.strValue;
				switch (s) {
					case "<":
					case ">":
					case "<=":
					case ">=":
					case "in":
					case "instanceof":
						this.advance();
						let i = this.parseAdditive();
						n = new E(this.span(e), this.sourceSpan(e), s, n, i);
						continue;
				}
				break;
			}
			return n;
		}
		parseAdditive() {
			let e = this.inputIndex, n = this.parseMultiplicative();
			for (; this.next.type == f.Operator;) {
				let s = this.next.strValue;
				switch (s) {
					case "+":
					case "-":
						this.advance();
						let i = this.parseMultiplicative();
						n = new E(this.span(e), this.sourceSpan(e), s, n, i);
						continue;
				}
				break;
			}
			return n;
		}
		parseMultiplicative() {
			let e = this.inputIndex, n = this.parseExponentiation();
			for (; this.next.type == f.Operator;) {
				let s = this.next.strValue;
				switch (s) {
					case "*":
					case "%":
					case "/":
						this.advance();
						let i = this.parseExponentiation();
						n = new E(this.span(e), this.sourceSpan(e), s, n, i);
						continue;
				}
				break;
			}
			return n;
		}
		parseExponentiation() {
			let e = this.inputIndex, n = this.parsePrefix();
			for (; this.next.type == f.Operator && this.next.strValue === "**";) {
				(n instanceof Ie || n instanceof je || n instanceof ze || n instanceof Ge) && this.error("Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence"), this.advance();
				let s = this.parseExponentiation();
				n = new E(this.span(e), this.sourceSpan(e), "**", n, s);
			}
			return n;
		}
		parsePrefix() {
			if (this.next.type == f.Operator) {
				let e = this.inputIndex, n = this.next.strValue, s;
				switch (n) {
					case "+": return this.advance(), s = this.parsePrefix(), Ie.createPlus(this.span(e), this.sourceSpan(e), s);
					case "-": return this.advance(), s = this.parsePrefix(), Ie.createMinus(this.span(e), this.sourceSpan(e), s);
					case "!": return this.advance(), s = this.parsePrefix(), new je(this.span(e), this.sourceSpan(e), s);
				}
			} else if (this.next.isKeywordTypeof()) {
				let e = this.inputIndex;
				this.advance();
				let n = this.parsePrefix();
				return new ze(this.span(e), this.sourceSpan(e), n);
			} else if (this.next.isKeywordVoid()) {
				let e = this.inputIndex;
				this.advance();
				let n = this.parsePrefix();
				return new Ge(this.span(e), this.sourceSpan(e), n);
			}
			return this.parseCallChain();
		}
		parseCallChain() {
			let e = this.inputIndex, n = this.parsePrimary();
			for (;;) if (this.consumeOptionalCharacter(G)) n = this.parseAccessMember(n, e, !1);
			else if (this.consumeOptionalOperator("?.")) this.consumeOptionalCharacter(Q) ? n = this.parseCall(n, e, !0) : n = this.consumeOptionalCharacter(ce) ? this.parseKeyedReadOrWrite(n, e, !0) : this.parseAccessMember(n, e, !0);
			else if (this.consumeOptionalCharacter(ce)) n = this.parseKeyedReadOrWrite(n, e, !1);
			else if (this.consumeOptionalCharacter(Q)) n = this.parseCall(n, e, !1);
			else if (this.consumeOptionalOperator("!")) n = new Gt(this.span(e), this.sourceSpan(e), n);
			else if (this.next.isTemplateLiteralEnd()) n = this.parseNoInterpolationTaggedTemplateLiteral(n, e);
			else if (this.next.isTemplateLiteralPart()) n = this.parseTaggedTemplateLiteral(n, e);
			else return n;
		}
		parsePrimary() {
			let e = this.inputIndex;
			if (this.isArrowFunction()) return this.parseArrowFunction(e);
			if (this.consumeOptionalCharacter(Q)) {
				this.rparensExpected++;
				let n = this.parsePipe();
				return this.consumeOptionalCharacter(L) || (this.error("Missing closing parentheses"), this.consumeOptionalCharacter(L)), this.rparensExpected--, new $e(this.span(e), this.sourceSpan(e), n);
			} else {
				if (this.next.isKeywordNull()) return this.advance(), new A(this.span(e), this.sourceSpan(e), null);
				if (this.next.isKeywordUndefined()) return this.advance(), new A(this.span(e), this.sourceSpan(e), void 0);
				if (this.next.isKeywordTrue()) return this.advance(), new A(this.span(e), this.sourceSpan(e), !0);
				if (this.next.isKeywordFalse()) return this.advance(), new A(this.span(e), this.sourceSpan(e), !1);
				if (this.next.isKeywordThis()) return this.advance(), new Bt(this.span(e), this.sourceSpan(e));
				if (this.consumeOptionalCharacter(ce)) return this.parseLiteralArray(e);
				if (this.next.isCharacter(Ne)) return this.parseLiteralMap();
				if (this.next.isIdentifier()) return this.parseAccessMember(new fe(this.span(e), this.sourceSpan(e)), e, !1);
				if (this.next.isNumber()) {
					let n = this.next.toNumber();
					return this.advance(), new A(this.span(e), this.sourceSpan(e), n);
				} else {
					if (this.next.isTemplateLiteralEnd()) return this.parseNoInterpolationTemplateLiteral();
					if (this.next.isTemplateLiteralPart()) return this.parseTemplateLiteral();
					if (this.next.isString() && this.next.kind === W.Plain) {
						let n = this.next.toString();
						return this.advance(), new A(this.span(e), this.sourceSpan(e), n);
					} else return this.next.isPrivateIdentifier() ? (this._reportErrorForPrivateIdentifier(this.next, null), new N(this.span(e), this.sourceSpan(e))) : this.next.isRegExpBody() ? this.parseRegularExpressionLiteral() : this.index >= this.tokens.length ? (this.error(`Unexpected end of expression: ${this.input}`), new N(this.span(e), this.sourceSpan(e))) : (this.error(`Unexpected token ${this.next}`), new N(this.span(e), this.sourceSpan(e)));
				}
			}
		}
		parseLiteralArray(e) {
			this.rbracketsExpected++;
			let n = [];
			do
				if (this.next.isOperator("...")) n.push(this.parseSpreadElement());
				else if (!this.next.isCharacter(Z)) n.push(this.parsePipe());
				else break;
			while (this.consumeOptionalCharacter(V));
			return this.rbracketsExpected--, this.expectCharacter(Z), new qt(this.span(e), this.sourceSpan(e), n);
		}
		parseLiteralMap() {
			let e = [], n = [], s = this.inputIndex;
			if (this.expectCharacter(Ne), !this.consumeOptionalCharacter(oe)) {
				this.rbracesExpected++;
				do {
					let i = this.inputIndex;
					if (this.next.isOperator("...")) {
						this.advance(), e.push({
							kind: "spread",
							span: this.span(i),
							sourceSpan: this.sourceSpan(i)
						}), n.push(this.parsePipe());
						continue;
					}
					let r = this.next.isString(), a = this.expectIdentifierOrKeywordOrString(), u = this.span(i), h = this.sourceSpan(i), d = {
						kind: "property",
						key: a,
						quoted: r,
						span: u,
						sourceSpan: h
					};
					e.push(d), r ? (this.expectCharacter(J), n.push(this.parsePipe())) : this.consumeOptionalCharacter(J) ? n.push(this.parsePipe()) : (d.isShorthandInitialized = !0, n.push(new ke(u, h, h, new fe(u, h), a)));
				} while (this.consumeOptionalCharacter(V) && !this.next.isCharacter(oe));
				this.rbracesExpected--, this.expectCharacter(oe);
			}
			return new zt(this.span(s), this.sourceSpan(s), e, n);
		}
		parseAccessMember(e, n, s) {
			let i = this.inputIndex, r = this.withContext(ae.Writable, () => {
				let u = this.expectIdentifierOrKeyword() ?? "";
				return u.length === 0 && this.error("Expected identifier for property access", e.span.end), u;
			}), a = this.sourceSpan(i);
			if (s) return this.isAssignmentOperator(this.next) ? (this.advance(), this.error("The '?.' operator cannot be used in the assignment"), new N(this.span(n), this.sourceSpan(n))) : new Ht(this.span(n), this.sourceSpan(n), a, e, r);
			if (this.isAssignmentOperator(this.next)) {
				let u = this.next.strValue;
				if (!(this.parseFlags & 1)) return this.advance(), this.error("Bindings cannot contain assignments"), new N(this.span(n), this.sourceSpan(n));
				let h = new ke(this.span(n), this.sourceSpan(n), a, e, r);
				this.advance();
				let d = this.parseConditional();
				return new E(this.span(n), this.sourceSpan(n), u, h, d);
			} else return new ke(this.span(n), this.sourceSpan(n), a, e, r);
		}
		parseCall(e, n, s) {
			let i = this.inputIndex;
			this.rparensExpected++;
			let r = this.parseCallArguments(), a = this.span(i, this.inputIndex).toAbsolute(this.absoluteOffset);
			this.expectCharacter(L), this.rparensExpected--;
			let u = this.span(n), h = this.sourceSpan(n);
			return s ? new Xt(u, h, e, r, a) : new Xe(u, h, e, r, a);
		}
		parseCallArguments() {
			if (this.next.isCharacter(L)) return [];
			let e = [];
			do
				e.push(this.next.isOperator("...") ? this.parseSpreadElement() : this.parsePipe());
			while (this.consumeOptionalCharacter(V));
			return e;
		}
		parseSpreadElement() {
			this.next.isOperator("...") || this.error("Spread element must start with '...' operator");
			let e = this.inputIndex;
			this.advance();
			let n = this.parsePipe();
			return new jt(this.span(e), this.sourceSpan(e), n);
		}
		expectTemplateBindingKey() {
			let e = "", n = !1, s = this.currentAbsoluteOffset;
			do
				e += this.expectIdentifierOrKeywordOrString(), n = this.consumeOptionalOperator("-"), n && (e += "-");
			while (n);
			return {
				source: e,
				span: new D(s, s + e.length)
			};
		}
		parseTemplateBindings(e) {
			let n = [];
			for (n.push(...this.parseDirectiveKeywordBindings(e)); this.index < this.tokens.length;) {
				let s = this.parseLetBinding();
				if (s) n.push(s);
				else {
					let i = this.expectTemplateBindingKey(), r = this.parseAsBinding(i);
					r ? n.push(r) : (i.source = e.source + i.source.charAt(0).toUpperCase() + i.source.substring(1), n.push(...this.parseDirectiveKeywordBindings(i)));
				}
				this.consumeStatementTerminator();
			}
			return new an(n, [], this.errors);
		}
		parseKeyedReadOrWrite(e, n, s) {
			return this.withContext(ae.Writable, () => {
				this.rbracketsExpected++;
				let i = this.parsePipe();
				if (i instanceof N && this.error("Key access cannot be empty"), this.rbracketsExpected--, this.expectCharacter(Z), this.isAssignmentOperator(this.next)) {
					let r = this.next.strValue;
					if (s) this.advance(), this.error("The '?.' operator cannot be used in the assignment");
					else {
						let a = new qe(this.span(n), this.sourceSpan(n), e, i);
						this.advance();
						let u = this.parseConditional();
						return new E(this.span(n), this.sourceSpan(n), r, a, u);
					}
				} else return s ? new Ut(this.span(n), this.sourceSpan(n), e, i) : new qe(this.span(n), this.sourceSpan(n), e, i);
				return new N(this.span(n), this.sourceSpan(n));
			});
		}
		parseDirectiveKeywordBindings(e) {
			let n = [];
			this.consumeOptionalCharacter(J);
			let s = this.getDirectiveBoundTarget(), i = this.currentAbsoluteOffset, r = this.parseAsBinding(e);
			r || (this.consumeStatementTerminator(), i = this.currentAbsoluteOffset);
			let a = new D(e.span.start, i);
			return n.push(new Me(a, e, s)), r && n.push(r), n;
		}
		getDirectiveBoundTarget() {
			if (this.next === be || this.peekKeywordAs() || this.peekKeywordLet()) return null;
			let e = this.parsePipe(), { start: n, end: s } = e.span;
			return new U(e, this.input.substring(n, s), H(this.parseSourceSpan), this.absoluteOffset + n, this.errors);
		}
		parseAsBinding(e) {
			if (!this.peekKeywordAs()) return null;
			this.advance();
			let n = this.expectTemplateBindingKey();
			this.consumeStatementTerminator();
			return new de(new D(e.span.start, this.currentAbsoluteOffset), n, e);
		}
		parseLetBinding() {
			if (!this.peekKeywordLet()) return null;
			let e = this.currentAbsoluteOffset;
			this.advance();
			let n = this.expectTemplateBindingKey(), s = null;
			this.consumeOptionalOperator("=") && (s = this.expectTemplateBindingKey()), this.consumeStatementTerminator();
			return new de(new D(e, this.currentAbsoluteOffset), n, s);
		}
		parseNoInterpolationTaggedTemplateLiteral(e, n) {
			let s = this.parseNoInterpolationTemplateLiteral();
			return new Qe(this.span(n), this.sourceSpan(n), e, s);
		}
		parseNoInterpolationTemplateLiteral() {
			let e = this.next.strValue, n = this.inputIndex;
			this.advance();
			let s = this.span(n), i = this.sourceSpan(n);
			return new Je(s, i, [new Ye(s, i, e)], []);
		}
		parseTaggedTemplateLiteral(e, n) {
			let s = this.parseTemplateLiteral();
			return new Qe(this.span(n), this.sourceSpan(n), e, s);
		}
		parseTemplateLiteral() {
			let e = [], n = [], s = this.inputIndex;
			for (; this.next !== be;) {
				let i = this.next;
				if (i.isTemplateLiteralPart() || i.isTemplateLiteralEnd()) {
					let r = this.inputIndex;
					if (this.advance(), e.push(new Ye(this.span(r), this.sourceSpan(r), i.strValue)), i.isTemplateLiteralEnd()) break;
				} else if (i.isTemplateLiteralInterpolationStart()) {
					this.advance(), this.rbracesExpected++;
					let r = this.parsePipe();
					r instanceof N ? this.error("Template literal interpolation cannot be empty") : n.push(r), this.rbracesExpected--;
				} else this.advance();
			}
			return new Je(this.span(s), this.sourceSpan(s), e, n);
		}
		parseRegularExpressionLiteral() {
			let e = this.next;
			if (this.advance(), !e.isRegExpBody()) return new N(this.span(this.inputIndex), this.sourceSpan(this.inputIndex));
			let n = null;
			if (this.next.isRegExpFlags()) {
				n = this.next, this.advance();
				let r = /* @__PURE__ */ new Set();
				for (let a = 0; a < n.strValue.length; a++) {
					let u = n.strValue[a];
					_s.has(u) ? r.has(u) ? this.error(`Duplicate regular expression flag "${u}"`, n.index + a) : r.add(u) : this.error(`Unsupported regular expression flag "${u}". The supported flags are: ` + Array.from(_s, (h) => `"${h}"`).join(", "), n.index + a);
				}
			}
			let s = e.index, i = n ? n.end : e.end;
			return new Yt(this.span(s, i), this.sourceSpan(s, i), e.strValue, n ? n.strValue : null);
		}
		parseArrowFunction(e) {
			let n;
			if (this.next.isIdentifier()) {
				let i = this.next;
				this.advance(), n = [this.getArrowFunctionIdentifierArg(i)];
			} else this.next.isCharacter(Q) ? (this.rparensExpected++, this.advance(), n = this.parseArrowFunctionParameters(), this.rparensExpected--) : (n = [], this.error(`Unexpected token ${this.next}`));
			this.expectOperator("=>");
			let s;
			if (this.next.isCharacter(Ne)) this.error("Multi-line arrow functions are not supported. If you meant to return an object literal, wrap it with parentheses."), s = new N(this.span(e), this.sourceSpan(e));
			else {
				let i = this.parseFlags;
				this.parseFlags = 1, s = this.parseExpression(), this.parseFlags = i;
			}
			return new Jt(this.span(e), this.sourceSpan(e), n, s);
		}
		parseArrowFunctionParameters() {
			let e = [];
			if (!this.consumeOptionalCharacter(L)) for (; this.next !== be;) if (this.next.isIdentifier()) {
				let n = this.next;
				if (this.advance(), e.push(this.getArrowFunctionIdentifierArg(n)), this.consumeOptionalCharacter(L)) break;
				this.expectCharacter(V);
			} else {
				this.error(`Unexpected token ${this.next}`);
				break;
			}
			return e;
		}
		getArrowFunctionIdentifierArg(e) {
			return new Qt(e.strValue, this.span(e.index), this.sourceSpan(e.index));
		}
		isArrowFunction() {
			let e = this.index, n = this.tokens;
			if (e > n.length - 2) return !1;
			if (n[e].isIdentifier() && n[e + 1].isOperator("=>")) return !0;
			if (n[e].isCharacter(Q)) {
				let s = e + 1;
				for (; s < n.length && !(!n[s].isIdentifier() && !n[s].isCharacter(V)); s++);
				return s < n.length - 1 && n[s].isCharacter(L) && n[s + 1].isOperator("=>");
			}
			return !1;
		}
		consumeStatementTerminator() {
			this.consumeOptionalCharacter(Te) || this.consumeOptionalCharacter(V);
		}
		error(e, n = this.index) {
			this.errors.push(le(e, this.input, this.getErrorLocationText(n), this.parseSourceSpan)), this.skip();
		}
		getErrorLocationText(e) {
			return e < this.tokens.length ? `at column ${this.tokens[e].index + 1} in` : "at the end of the expression";
		}
		_reportErrorForPrivateIdentifier(e, n) {
			let s = `Private identifiers are not supported. Unexpected private identifier: ${e}`;
			n !== null && (s += `, ${n}`), this.error(s);
		}
		skip() {
			let e = this.next;
			for (; this.index < this.tokens.length && !e.isCharacter(Te) && !e.isOperator("|") && (this.rparensExpected <= 0 || !e.isCharacter(L)) && (this.rbracesExpected <= 0 || !e.isCharacter(oe)) && (this.rbracketsExpected <= 0 || !e.isCharacter(Z)) && (!(this.context & ae.Writable) || !this.isAssignmentOperator(e));) this.next.isError() && this.errors.push(le(this.next.toString(), this.input, this.getErrorLocationText(this.next.index), this.parseSourceSpan)), this.advance(), e = this.next;
		}
	};
	ln = class extends Kt {
		errors = [];
		visitPipe() {
			this.errors.push("pipes");
		}
	};
	mo = "svg";
	go = "math";
	cn = class {};
	vo = "boolean";
	wo = "number";
	So = "string";
	xo = "object";
	yo = [
		"[Element]|textContent,%ariaActiveDescendantElement,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColIndexText,%ariaColSpan,%ariaControlsElements,%ariaCurrent,%ariaDescribedByElements,%ariaDescription,%ariaDetailsElements,%ariaDisabled,%ariaErrorMessageElements,%ariaExpanded,%ariaFlowToElements,%ariaHasPopup,%ariaHidden,%ariaInvalid,%ariaKeyShortcuts,%ariaLabel,%ariaLabelledByElements,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaOwnsElements,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowIndexText,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored",
		"[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,!inert,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy",
		"abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,search,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy",
		"media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume",
		":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex",
		":svg:graphics^:svg:|",
		":svg:animation^:svg:|*begin,*end,*repeat",
		":svg:geometry^:svg:|",
		":svg:componentTransferFunction^:svg:|",
		":svg:gradient^:svg:|",
		":svg:textContent^:svg:graphics|",
		":svg:textPositioning^:svg:textContent|",
		"a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username",
		"area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username",
		"audio^media|",
		"br^[HTMLElement]|clear",
		"base^[HTMLElement]|href,target",
		"body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink",
		"button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value",
		"canvas^[HTMLElement]|#height,#width",
		"content^[HTMLElement]|select",
		"dl^[HTMLElement]|!compact",
		"data^[HTMLElement]|value",
		"datalist^[HTMLElement]|",
		"details^[HTMLElement]|!open",
		"dialog^[HTMLElement]|!open,returnValue",
		"dir^[HTMLElement]|!compact",
		"div^[HTMLElement]|align",
		"embed^[HTMLElement]|align,height,name,src,type,width",
		"fieldset^[HTMLElement]|!disabled,name",
		"font^[HTMLElement]|color,face,size",
		"form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target",
		"frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src",
		"frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows",
		"geolocation^[HTMLElement]|accuracymode,!autolocate,*location,*promptaction,*promptdismiss,*validationstatuschange,!watch",
		"hr^[HTMLElement]|align,color,!noShade,size,width",
		"head^[HTMLElement]|",
		"h1,h2,h3,h4,h5,h6^[HTMLElement]|align",
		"html^[HTMLElement]|version",
		"iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,!credentialless,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width",
		"img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width",
		"input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width",
		"li^[HTMLElement]|type,#value",
		"label^[HTMLElement]|htmlFor",
		"legend^[HTMLElement]|align",
		"link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type",
		"map^[HTMLElement]|name",
		"marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width",
		"menu^[HTMLElement]|!compact",
		"meta^[HTMLElement]|content,httpEquiv,media,name,scheme",
		"meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value",
		"ins,del^[HTMLElement]|cite,dateTime",
		"ol^[HTMLElement]|!compact,!reversed,#start,type",
		"object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width",
		"optgroup^[HTMLElement]|!disabled,label",
		"option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value",
		"output^[HTMLElement]|defaultValue,%htmlFor,name,value",
		"p^[HTMLElement]|align",
		"param^[HTMLElement]|name,type,value,valueType",
		"picture^[HTMLElement]|",
		"pre^[HTMLElement]|#width",
		"progress^[HTMLElement]|#max,#value",
		"q,blockquote,cite^[HTMLElement]|",
		"script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type",
		"select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value",
		"selectedcontent^[HTMLElement]|",
		"slot^[HTMLElement]|name",
		"source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width",
		"span^[HTMLElement]|",
		"style^[HTMLElement]|!disabled,media,type",
		"search^[HTMLELement]|",
		"caption^[HTMLElement]|align",
		"th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width",
		"col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width",
		"table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width",
		"tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign",
		"tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign",
		"template^[HTMLElement]|",
		"textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap",
		"time^[HTMLElement]|dateTime",
		"title^[HTMLElement]|text",
		"track^[HTMLElement]|!default,kind,label,src,srclang",
		"ul^[HTMLElement]|!compact,type",
		"unknown^[HTMLElement]|",
		"video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width",
		":svg:a^:svg:graphics|",
		":svg:animate^:svg:animation|",
		":svg:animateMotion^:svg:animation|",
		":svg:animateTransform^:svg:animation|",
		":svg:circle^:svg:geometry|",
		":svg:clipPath^:svg:graphics|",
		":svg:defs^:svg:graphics|",
		":svg:desc^:svg:|",
		":svg:discard^:svg:|",
		":svg:ellipse^:svg:geometry|",
		":svg:feBlend^:svg:|",
		":svg:feColorMatrix^:svg:|",
		":svg:feComponentTransfer^:svg:|",
		":svg:feComposite^:svg:|",
		":svg:feConvolveMatrix^:svg:|",
		":svg:feDiffuseLighting^:svg:|",
		":svg:feDisplacementMap^:svg:|",
		":svg:feDistantLight^:svg:|",
		":svg:feDropShadow^:svg:|",
		":svg:feFlood^:svg:|",
		":svg:feFuncA^:svg:componentTransferFunction|",
		":svg:feFuncB^:svg:componentTransferFunction|",
		":svg:feFuncG^:svg:componentTransferFunction|",
		":svg:feFuncR^:svg:componentTransferFunction|",
		":svg:feGaussianBlur^:svg:|",
		":svg:feImage^:svg:|",
		":svg:feMerge^:svg:|",
		":svg:feMergeNode^:svg:|",
		":svg:feMorphology^:svg:|",
		":svg:feOffset^:svg:|",
		":svg:fePointLight^:svg:|",
		":svg:feSpecularLighting^:svg:|",
		":svg:feSpotLight^:svg:|",
		":svg:feTile^:svg:|",
		":svg:feTurbulence^:svg:|",
		":svg:filter^:svg:|",
		":svg:foreignObject^:svg:graphics|",
		":svg:g^:svg:graphics|",
		":svg:image^:svg:graphics|decoding",
		":svg:line^:svg:geometry|",
		":svg:linearGradient^:svg:gradient|",
		":svg:mpath^:svg:|",
		":svg:marker^:svg:|",
		":svg:mask^:svg:|",
		":svg:metadata^:svg:|",
		":svg:path^:svg:geometry|",
		":svg:pattern^:svg:|",
		":svg:polygon^:svg:geometry|",
		":svg:polyline^:svg:geometry|",
		":svg:radialGradient^:svg:gradient|",
		":svg:rect^:svg:geometry|",
		":svg:svg^:svg:graphics|#currentScale,#zoomAndPan",
		":svg:script^:svg:|type",
		":svg:set^:svg:animation|",
		":svg:stop^:svg:|",
		":svg:style^:svg:|!disabled,media,title,type",
		":svg:switch^:svg:graphics|",
		":svg:symbol^:svg:|",
		":svg:tspan^:svg:textPositioning|",
		":svg:text^:svg:textPositioning|",
		":svg:textPath^:svg:textContent|",
		":svg:title^:svg:|",
		":svg:use^:svg:graphics|",
		":svg:view^:svg:|#zoomAndPan",
		"data^[HTMLElement]|value",
		"keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name",
		"menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default",
		"summary^[HTMLElement]|",
		"time^[HTMLElement]|dateTime",
		":svg:cursor^:svg:|",
		":math:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforeinput,*beforematch,*beforetoggle,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contentvisibilityautostatechange,*contextlost,*contextmenu,*contextrestored,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*scrollend,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex",
		":math:math^:math:|",
		":math:maction^:math:|",
		":math:menclose^:math:|",
		":math:merror^:math:|",
		":math:mfenced^:math:|",
		":math:mfrac^:math:|",
		":math:mi^:math:|",
		":math:mmultiscripts^:math:|",
		":math:mn^:math:|",
		":math:mo^:math:|",
		":math:mover^:math:|",
		":math:mpadded^:math:|",
		":math:mphantom^:math:|",
		":math:mroot^:math:|",
		":math:mrow^:math:|",
		":math:ms^:math:|",
		":math:mspace^:math:|",
		":math:msqrt^:math:|",
		":math:mstyle^:math:|",
		":math:msub^:math:|",
		":math:msubsup^:math:|",
		":math:msup^:math:|",
		":math:mtable^:math:|",
		":math:mtd^:math:|",
		":math:mtext^:math:|",
		":math:mtr^:math:|",
		":math:munder^:math:|",
		":math:munderover^:math:|",
		":math:semantics^:math:|"
	];
	Ks = new Map(Object.entries({
		class: "className",
		for: "htmlFor",
		formaction: "formAction",
		innerHtml: "innerHTML",
		readonly: "readOnly",
		tabindex: "tabIndex",
		"aria-activedescendant": "ariaActiveDescendantElement",
		"aria-atomic": "ariaAtomic",
		"aria-autocomplete": "ariaAutoComplete",
		"aria-busy": "ariaBusy",
		"aria-checked": "ariaChecked",
		"aria-colcount": "ariaColCount",
		"aria-colindex": "ariaColIndex",
		"aria-colindextext": "ariaColIndexText",
		"aria-colspan": "ariaColSpan",
		"aria-controls": "ariaControlsElements",
		"aria-current": "ariaCurrent",
		"aria-describedby": "ariaDescribedByElements",
		"aria-description": "ariaDescription",
		"aria-details": "ariaDetailsElements",
		"aria-disabled": "ariaDisabled",
		"aria-errormessage": "ariaErrorMessageElements",
		"aria-expanded": "ariaExpanded",
		"aria-flowto": "ariaFlowToElements",
		"aria-haspopup": "ariaHasPopup",
		"aria-hidden": "ariaHidden",
		"aria-invalid": "ariaInvalid",
		"aria-keyshortcuts": "ariaKeyShortcuts",
		"aria-label": "ariaLabel",
		"aria-labelledby": "ariaLabelledByElements",
		"aria-level": "ariaLevel",
		"aria-live": "ariaLive",
		"aria-modal": "ariaModal",
		"aria-multiline": "ariaMultiLine",
		"aria-multiselectable": "ariaMultiSelectable",
		"aria-orientation": "ariaOrientation",
		"aria-owns": "ariaOwnsElements",
		"aria-placeholder": "ariaPlaceholder",
		"aria-posinset": "ariaPosInSet",
		"aria-pressed": "ariaPressed",
		"aria-readonly": "ariaReadOnly",
		"aria-required": "ariaRequired",
		"aria-roledescription": "ariaRoleDescription",
		"aria-rowcount": "ariaRowCount",
		"aria-rowindex": "ariaRowIndex",
		"aria-rowindextext": "ariaRowIndexText",
		"aria-rowspan": "ariaRowSpan",
		"aria-selected": "ariaSelected",
		"aria-setsize": "ariaSetSize",
		"aria-sort": "ariaSort",
		"aria-valuemax": "ariaValueMax",
		"aria-valuemin": "ariaValueMin",
		"aria-valuenow": "ariaValueNow",
		"aria-valuetext": "ariaValueText"
	}));
	Eo = Array.from(Ks).reduce((t, [e, n]) => (t.set(e, n), t), /* @__PURE__ */ new Map());
	it = class extends cn {
		_schema = /* @__PURE__ */ new Map();
		_eventSchema = /* @__PURE__ */ new Map();
		constructor() {
			super(), yo.forEach((e) => {
				let n = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set(), [i, r] = e.split("|"), a = r.split(","), [u, h] = i.split("^");
				u.split(",").forEach((g) => {
					this._schema.set(g.toLowerCase(), n), this._eventSchema.set(g.toLowerCase(), s);
				});
				let d = h && this._schema.get(h.toLowerCase());
				if (d) {
					for (let [g, P] of d) n.set(g, P);
					for (let g of this._eventSchema.get(h.toLowerCase())) s.add(g);
				}
				a.forEach((g) => {
					if (g.length > 0) switch (g[0]) {
						case "*":
							s.add(g.substring(1));
							break;
						case "!":
							n.set(g.substring(1), vo);
							break;
						case "#":
							n.set(g.substring(1), wo);
							break;
						case "%":
							n.set(g.substring(1), xo);
							break;
						default: n.set(g, So);
					}
				});
			});
		}
		hasProperty(e, n, s) {
			if (s.some((a) => a.name === Bn.name)) return !0;
			let i = Fe(e);
			if (i.includes("-")) {
				if (Kn(i) || Zn(i)) return !1;
				if (s.some((a) => a.name === Dn.name)) return !0;
			}
			return (this._schema.get(i) || this._schema.get("unknown")).has(n);
		}
		hasElement(e, n) {
			if (n.some((i) => i.name === Bn.name)) return !0;
			let s = Fe(e);
			return s.includes("-") && (Kn(s) || Zn(s) || n.some((i) => i.name === Dn.name)) ? !0 : this._schema.has(s);
		}
		securityContext(e, n, s) {
			s && (n = this.getMappedPropName(n));
			let [i, r] = ot(e, !1);
			return dr(r, n, i);
		}
		getMappedPropName(e) {
			return Ks.get(e) ?? e;
		}
		getDefaultComponentElementName() {
			return "ng-component";
		}
		validateProperty(e) {
			return e.toLowerCase().startsWith("on") ? {
				error: !0,
				msg: `Binding to event property '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...
If '${e}' is a directive input, make sure the directive is imported by the current module.`
			} : { error: !1 };
		}
		validateAttribute(e) {
			return e.toLowerCase().startsWith("on") ? {
				error: !0,
				msg: `Binding to event attribute '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...`
			} : { error: !1 };
		}
		allKnownElementNames() {
			return Array.from(this._schema.keys());
		}
		allKnownAttributesOfElement(e) {
			let n = Fe(e), s = this._schema.get(n) || this._schema.get("unknown");
			return Array.from(s.keys()).map((i) => Eo.get(i) ?? i);
		}
		allKnownEventsOfElement(e) {
			let n = Fe(e);
			return Array.from(this._eventSchema.get(n) ?? []);
		}
		normalizeAnimationStyleProperty(e) {
			return wr(e);
		}
		normalizeAnimationStyleValue(e, n, s) {
			let i = "", r = s.toString().trim(), a = null;
			if (Co(e) && s !== 0 && s !== "0") if (typeof s == "number") i = "px";
			else {
				let u = s.match(/^[+-]?[\d\.]+([a-z]*)$/);
				u && u[1].length == 0 && (a = `Please provide a CSS unit value for ${n}:${s}`);
			}
			return {
				error: a,
				value: r + i
			};
		}
	};
	new ge(new Oe());
	l.StyleMap, l.ClassMap, l.StyleProp, l.ClassProp, l.Attribute, l.Property, l.Attribute, l.Control;
	l.DomProperty, l.DomProperty, l.Attribute, l.StyleMap, l.ClassMap, l.StyleProp, l.ClassProp;
	l.Listener, l.TwoWayListener, l.AnimationListener, l.StyleMap, l.ClassMap, l.StyleProp, l.ClassProp, l.Property, l.TwoWayProperty, l.DomProperty, l.Attribute, l.Animation, l.Control;
	O.Idle, c.deferOnIdle, c.deferPrefetchOnIdle, c.deferHydrateOnIdle, O.Immediate, c.deferOnImmediate, c.deferPrefetchOnImmediate, c.deferHydrateOnImmediate, O.Timer, c.deferOnTimer, c.deferPrefetchOnTimer, c.deferHydrateOnTimer, O.Hover, c.deferOnHover, c.deferPrefetchOnHover, c.deferHydrateOnHover, O.Interaction, c.deferOnInteraction, c.deferPrefetchOnInteraction, c.deferHydrateOnInteraction, O.Viewport, c.deferOnViewport, c.deferPrefetchOnViewport, c.deferHydrateOnViewport, O.Never, c.deferHydrateNever, c.deferHydrateNever, c.deferHydrateNever;
	c.pipeBind1, c.pipeBind2, c.pipeBind3, c.pipeBind4;
	c.interpolate, c.interpolate1, c.interpolate2, c.interpolate3, c.interpolate4, c.interpolate5, c.interpolate6, c.interpolate7, c.interpolate8, c.interpolateV;
	c.resolveWindow, c.resolveDocument, c.resolveBody;
	x.HTML, c.sanitizeHtml, x.RESOURCE_URL, c.sanitizeResourceUrl, x.SCRIPT, c.sanitizeScript, x.STYLE, c.sanitizeStyle, x.URL, c.sanitizeUrl, x.ATTRIBUTE_NO_BINDING, c.validateAttribute;
	x.HTML, c.trustConstantHtml, x.RESOURCE_URL, c.trustConstantResourceUrl;
	(function(t) {
		t[t.None = 0] = "None", t[t.ViewContextRead = 1] = "ViewContextRead", t[t.ViewContextWrite = 2] = "ViewContextWrite", t[t.SideEffectful = 4] = "SideEffectful";
	})(Is || (Is = {}));
	M.Property, R.Property, M.TwoWay, R.TwoWayProperty, M.Attribute, R.Attribute, M.Class, R.ClassName, M.Style, R.StyleProperty, M.LegacyAnimation, R.LegacyAnimation, M.Animation, R.Animation;
	(function(t) {
		t[t.NG_CONTENT = 0] = "NG_CONTENT", t[t.STYLE = 1] = "STYLE", t[t.STYLESHEET = 2] = "STYLESHEET", t[t.SCRIPT = 3] = "SCRIPT", t[t.OTHER = 4] = "OTHER";
	})(Ns || (Ns = {}));
	(function(t) {
		t.IDLE = "idle", t.TIMER = "timer", t.INTERACTION = "interaction", t.IMMEDIATE = "immediate", t.HOVER = "hover", t.VIEWPORT = "viewport", t.NEVER = "never";
	})(As || (As = {}));
	Zs = "%COMP%";
	`${Zs}`;
	`${Zs}`;
	(function(t) {
		t[t.Selector = 0] = "Selector", t[t.HostDirective = 1] = "HostDirective";
	})(Ps || (Ps = {}));
	(function(t) {
		t[t.Extract = 0] = "Extract", t[t.Merge = 1] = "Merge";
	})(Ls || (Ls = {}));
	new Dt("22.0.6");
	(function(t) {
		t.DIAGNOSTIC = "D", t.EXPRESSION_TYPE_IDENTIFIER = "T";
	})($s || ($s = {}));
	(function(t) {
		t.DIRECTIVE = "DIR", t.HOST_DIRECTIVE = "HOSTDIR", t.COMPONENT_COMPLETION = "COMPCOMP", t.EVENT_PARAMETER = "EP", t.VARIABLE_AS_EXPRESSION = "VAE";
	})(Ms || (Ms = {}));
	(function(t) {
		t[t.Error = 0] = "Error", t[t.Warning = 1] = "Warning";
	})(Rs || (Rs = {}));
	(function(t) {
		t[t.UseEmitter = 0] = "UseEmitter", t[t.CopyClassNodes = 1] = "CopyClassNodes", t[t.FallbackToAny = 2] = "FallbackToAny";
	})(Os || (Os = {}));
	(class t {
		static SINGLETON = new t();
		static veWillInferAnyFor(e) {
			let n = t.SINGLETON;
			return e instanceof Xe ? e.visit(n) : e.receiver.visit(n);
		}
		visitUnary(e) {
			return e.expr.visit(this);
		}
		visitBinary(e) {
			return e.left.visit(this) || e.right.visit(this);
		}
		visitChain() {
			return !1;
		}
		visitConditional(e) {
			return e.condition.visit(this) || e.trueExp.visit(this) || e.falseExp.visit(this);
		}
		visitCall() {
			return !0;
		}
		visitSafeCall() {
			return !1;
		}
		visitImplicitReceiver() {
			return !1;
		}
		visitThisReceiver() {
			return !1;
		}
		visitInterpolation(e) {
			return e.expressions.some((n) => n.visit(this));
		}
		visitKeyedRead() {
			return !1;
		}
		visitLiteralArray() {
			return !0;
		}
		visitLiteralMap() {
			return !0;
		}
		visitLiteralPrimitive() {
			return !1;
		}
		visitPipe() {
			return !0;
		}
		visitPrefixNot(e) {
			return e.expression.visit(this);
		}
		visitTypeofExpression(e) {
			return e.expression.visit(this);
		}
		visitVoidExpression(e) {
			return e.expression.visit(this);
		}
		visitNonNullAssert(e) {
			return e.expression.visit(this);
		}
		visitPropertyRead() {
			return !1;
		}
		visitSafePropertyRead() {
			return !1;
		}
		visitSafeKeyedRead() {
			return !1;
		}
		visitTemplateLiteral() {
			return !1;
		}
		visitTemplateLiteralElement() {
			return !1;
		}
		visitTaggedTemplateLiteral() {
			return !1;
		}
		visitParenthesizedExpression(e) {
			return e.expression.visit(this);
		}
		visitRegularExpressionLiteral() {
			return !1;
		}
		visitSpreadElement(e) {
			return e.expression.visit(this);
		}
		visitArrowFunction(e, n) {
			return !1;
		}
	});
	new it();
	new it();
	ko = "test.html";
	Io = (t) => ge.prototype._commentStart(t);
	ct = (t) => (e) => {
		let n = ei(e);
		return ni({
			...n,
			result: ti()[t](e, n.sourceSpan, 0),
			comments: No(e)
		});
	};
	si = ct("parseAction");
	ii = ct("parseBinding");
	oi = ct("parseInterpolationExpression");
	ai = (t) => {
		let e = ei(t);
		return ni({
			...e,
			result: ti().parseTemplateBindings("", t, e.sourceSpan, 0, 0),
			comments: []
		});
	};
	ut = class {
		text;
		constructor(t) {
			this.text = t;
		}
		getCharacterIndex(t, e) {
			return An(this.text, t, e);
		}
		transformSpan(t) {
			return Be(t);
		}
		createNode(t, e) {
			let n = t.start, s = t.end, i = t.range;
			e && (Array.isArray(e) ? ([n, s] = e, i = e) : ({start: n, end: s} = e.sourceSpan ?? e, i = [n, s]));
			i ? [n, s] = i : typeof n == "number" && typeof s == "number" && (i = [n, s]);
			if (!(typeof n == "number" && typeof s == "number" && i)) throw new Error("Missing location information");
			let r = {
				...t,
				start: n,
				end: s,
				range: i
			};
			switch (r.type) {
				case "NumericLiteral":
				case "StringLiteral":
				case "RegExpLiteral": {
					let a = this.text.slice(n, s), { value: u } = r;
					r.extra = {
						...r.extra,
						raw: a,
						rawValue: u
					};
					break;
				}
			}
			return r;
		}
	};
	li = Object.defineProperty;
	ci = (t, e) => {
		let n = {};
		for (var s in t) li(n, s, {
			get: t[s],
			enumerable: !0
		});
		return e || li(n, Symbol.toStringTag, { value: "Module" }), n;
	};
	ui = (t, e) => ({
		type: "ArrayExpression",
		elements: e.transformChildren(t.expressions)
	});
	Ao = {
		id: null,
		generator: !1,
		async: !1,
		expression: !0
	};
	pi = (t, e) => ({
		type: "ArrowFunctionExpression",
		params: t.parameters.map((n) => e.createNode({
			type: "Identifier",
			name: n.name
		}, n.sourceSpan)),
		body: e.transformChild(t.body),
		...Ao
	});
	hi = (t, e) => e.transformChild(t.ast);
	Po = (t) => t === "&&" || t === "||" || t === "??";
	fi = (t, e) => {
		let { operation: n } = t, [s, i] = e.transformChildren([t.left, t.right]);
		return Po(n) ? {
			type: "LogicalExpression",
			operator: n,
			left: s,
			right: i
		} : E.isAssignmentOperation(n) ? {
			type: "AssignmentExpression",
			left: s,
			right: i,
			operator: n
		} : {
			left: s,
			right: i,
			type: "BinaryExpression",
			operator: n
		};
	};
	Lo = { optional: !1 };
	$o = { optional: !0 };
	di = ({ optional: t }) => (e, n) => {
		let s = n.transformChildren(e.args), i = n.transformChild(e.receiver);
		return t || ye(i) ? {
			type: "OptionalCallExpression",
			callee: i,
			arguments: s,
			optional: t
		} : {
			type: "CallExpression",
			callee: i,
			arguments: s
		};
	};
	mi = di(Lo);
	gi = di($o);
	vi = (t, e) => ({
		type: "NGChainedExpression",
		expressions: e.transformChildren(t.expressions)
	});
	wi = (t, e) => {
		let [n, s, i] = e.transformChildren([
			t.condition,
			t.trueExp,
			t.falseExp
		]);
		return {
			type: "ConditionalExpression",
			test: n,
			consequent: s,
			alternate: i
		};
	};
	Si = () => ({ type: "NGEmptyExpression" });
	xi = (t, e) => {
		let { expressions: n } = t;
		if (n.length !== 1) throw new Error("Unexpected 'Interpolation'");
		return e.transformChild(n[0]);
	};
	yi = (t) => {
		let { value: e } = t;
		switch (typeof e) {
			case "boolean": return {
				type: "BooleanLiteral",
				value: e
			};
			case "number": return {
				type: "NumericLiteral",
				value: e
			};
			case "object": return { type: "NullLiteral" };
			case "string": return {
				type: "StringLiteral",
				value: e
			};
			case "undefined": return {
				type: "Identifier",
				name: "undefined"
			};
			default: throw new Error(`Unexpected 'LiteralPrimitive' value type ${typeof e}`);
		}
	};
	Ei = (t) => ({
		type: "RegExpLiteral",
		pattern: t.body,
		flags: t.flags ?? ""
	});
	Mo = {
		computed: !0,
		optional: !1
	};
	Ro = {
		computed: !0,
		optional: !0
	};
	Oo = {
		computed: !1,
		optional: !1
	};
	Do = {
		computed: !1,
		optional: !0
	};
	pt = ({ computed: t, optional: e }) => (n, s) => {
		let { receiver: i } = n, r;
		if (t) {
			let { key: u } = n;
			r = s.transformChild(u);
		} else {
			let u = i instanceof fe, { name: h, nameSpan: d } = n;
			if (r = s.create({
				type: "Identifier",
				name: h
			}, d, u ? s.ancestors : []), u) return r;
		}
		let a = s.transformChild(i);
		return e || ye(a) ? {
			type: "OptionalMemberExpression",
			optional: e,
			property: r,
			object: a,
			computed: t
		} : {
			type: "MemberExpression",
			property: r,
			object: a,
			computed: t
		};
	};
	Ci = pt(Mo);
	bi = pt(Ro);
	Ti = pt(Oo);
	ki = pt(Do);
	_i = (t, e) => ({
		type: "TSNonNullExpression",
		expression: e.transformChild(t.expression)
	});
	Ii = (t, e) => {
		let { keys: n, values: s } = t, i = (r, a = t) => e.create(r, a, [t, ...e.ancestors]);
		return {
			type: "ObjectExpression",
			properties: n.map((r, a) => {
				let u = s[a], h = [r.sourceSpan.start, u.sourceSpan.end];
				if (r.kind === "spread") return i({
					type: "SpreadElement",
					argument: e.transformChild(u)
				}, h);
				let d = !!r.isShorthandInitialized;
				return i({
					type: "ObjectProperty",
					key: i(r.quoted ? {
						type: "StringLiteral",
						value: r.key
					} : {
						type: "Identifier",
						name: r.key
					}, r.sourceSpan),
					value: e.transformChild(u),
					shorthand: d,
					computed: !1,
					method: !1
				}, h);
			})
		};
	};
	Ni = (t, e) => e.transformChild(t.expression);
	Ai = (t, e) => ({
		type: "NGPipeExpression",
		left: e.transformChild(t.exp),
		right: e.create({
			type: "Identifier",
			name: t.name
		}, t.nameSpan),
		arguments: e.transformChildren(t.args)
	});
	Pi = (t, e) => ({
		type: "SpreadElement",
		argument: e.transformChild(t.expression)
	});
	Li = (t, e) => ({
		type: "TaggedTemplateExpression",
		tag: e.transformChild(t.tag),
		quasi: e.transformChild(t.template)
	});
	$i = (t, e) => ({
		type: "TemplateLiteral",
		quasis: e.transformChildren(t.elements),
		expressions: e.transformChildren(t.expressions)
	});
	Mi = (t, e) => {
		let [n] = e.ancestors, { elements: s } = n, i = s.indexOf(t), r = i === 0, a = i === s.length - 1, u = t.sourceSpan.end - (a ? 1 : 0), h = t.sourceSpan.start + (r ? 1 : 0), d = e.text.slice(h, u);
		return {
			type: "TemplateElement",
			value: {
				cooked: t.text,
				raw: d
			},
			tail: a,
			range: [h, u]
		};
	};
	Ri = () => ({ type: "ThisExpression" });
	dn = (t) => (e, n) => ({
		type: "UnaryExpression",
		prefix: !0,
		operator: t,
		argument: n.transformChild(e.expression)
	});
	Oi = dn("!");
	Di = dn("typeof");
	Bi = dn("void");
	Fi = (t, e) => ({
		type: "UnaryExpression",
		prefix: !0,
		argument: e.transformChild(t.expr),
		operator: t.operator
	});
	Bo = (t) => {
		throw new Error(`Unexpected node type '${t.constructor.name}'`);
	};
	Vi = Bo;
	Ui = ci({
		visitASTWithSource: () => hi,
		visitArrowFunction: () => pi,
		visitBinary: () => fi,
		visitCall: () => mi,
		visitChain: () => vi,
		visitConditional: () => wi,
		visitEmptyExpr: () => Si,
		visitImplicitReceiver: () => Vi,
		visitInterpolation: () => xi,
		visitKeyedRead: () => Ci,
		visitLiteralArray: () => ui,
		visitLiteralMap: () => Ii,
		visitLiteralPrimitive: () => yi,
		visitNonNullAssert: () => _i,
		visitParenthesizedExpression: () => Ni,
		visitPipe: () => Ai,
		visitPrefixNot: () => Oi,
		visitPropertyRead: () => Ti,
		visitRegularExpressionLiteral: () => Ei,
		visitSafeCall: () => gi,
		visitSafeKeyedRead: () => bi,
		visitSafePropertyRead: () => ki,
		visitSpreadElement: () => Pi,
		visitTaggedTemplateLiteral: () => Li,
		visitTemplateLiteral: () => $i,
		visitTemplateLiteralElement: () => Mi,
		visitThisReceiver: () => Ri,
		visitTypeofExpression: () => Di,
		visitUnary: () => Fi,
		visitVoidExpression: () => Bi
	});
	ht = class mn extends ut {
		node;
		ancestors;
		constructor({ node: e, text: n, ancestors: s = [] }) {
			super(n), this.node = e, this.ancestors = s;
		}
		create(e, n, s = this.ancestors) {
			return s[0] instanceof $e && (e.extra = {
				...e.extra,
				parenthesized: !0
			}), super.createNode(e, e.range ?? n ?? this.node);
		}
		transformChild(e) {
			return new mn({
				node: e,
				ancestors: [this.node, ...this.ancestors],
				text: this.text
			}).transform();
		}
		transformChildren(e) {
			return e.map((n) => this.transformChild(n));
		}
		transform() {
			let { node: e } = this, n = e.visit(Ui, this);
			return this.create(n, this.node);
		}
		static transform(e, n) {
			return new mn({
				node: e,
				text: n,
				ancestors: []
			}).transform();
		}
	};
	Wi = class extends ht {
		constructor(t) {
			super({
				node: t,
				text: t.source
			});
		}
	};
	qi = (t, e) => ht.transform(t, e);
	ji = (t) => new Wi(t).transform();
	zi = (t, e) => (n, s, ...i) => n | 1 && s == null ? void 0 : (e.call(s) ?? s[t]).apply(s, i);
	ft = zi("at", function() {
		if (Array.isArray(this) || typeof this == "string") return Fo;
	});
	Ho = (Se = class extends ut {
		constructor(n, s) {
			super(s);
			De(this, m);
			De(this, we);
			De(this, se);
			wt(this, we, n), wt(this, se, s);
			for (let i of n) w(this, m, Ji).call(this, i);
		}
		get expressions() {
			return w(this, m, Ki).call(this);
		}
	}, we = /* @__PURE__ */ new WeakMap(), se = /* @__PURE__ */ new WeakMap(), m = /* @__PURE__ */ new WeakSet(), Qi = function() {
		return z(this, we)[0].key;
	}, T = function(n, s) {
		return In(Se.prototype, this, "createNode").call(this, n, s);
	}, gn = function(n) {
		return qi(n, this.text);
	}, vn = function(n) {
		return Pn(n.slice(z(this, m, Qi).source.length));
	}, wn = function(n) {
		let s = z(this, se);
		if (s[n.start] !== "\"" && s[n.start] !== "'") return;
		let i = s[n.start], r = !1;
		for (let a = n.start + 1; a < s.length; a++) switch (s[a]) {
			case i: if (!r) {
				n.end = a + 1;
				return;
			}
			default:
				r = !1;
				break;
			case "\\":
				r = !r;
				break;
		}
	}, Ji = function(n) {
		w(this, m, wn).call(this, n.key.span), Xi(n) && n.value && w(this, m, wn).call(this, n.value.span);
	}, Yi = function(n) {
		if (!n.value || n.value.source) return n.value;
		let s = this.getCharacterIndex(/\S/, n.sourceSpan.start);
		return {
			source: "$implicit",
			span: {
				start: s,
				end: s
			}
		};
	}, Ki = function() {
		let n = z(this, we), [s] = n, i = z(this, se).slice(s.sourceSpan.start, s.sourceSpan.end).trim().length === 0 ? n.slice(1) : n, r = [], a = null;
		for (let [u, h] of i.entries()) {
			if (a && Gi(a) && Xi(h) && h.value && h.value.source === a.key.source) {
				let d = w(this, m, T).call(this, {
					type: "NGMicrosyntaxKey",
					name: h.key.source
				}, h.key.span), g = (_, b) => ({
					..._,
					...this.transformSpan({
						start: _.start,
						end: b
					})
				}), P = (_) => ({
					...g(_, d.end),
					alias: d
				}), k = r.pop();
				if (k.type === "NGMicrosyntaxExpression") r.push(P(k));
				else if (k.type === "NGMicrosyntaxKeyedExpression") {
					let _ = P(k.expression);
					r.push(g({
						...k,
						expression: _
					}, _.end));
				} else throw new Error(`Unexpected type ${k.type}`);
			} else r.push(w(this, m, Zi).call(this, h, u));
			a = h;
		}
		return w(this, m, T).call(this, {
			type: "NGMicrosyntax",
			body: r
		}, r.length === 0 ? n[0].sourceSpan : {
			start: r[0].start,
			end: ft(0, r, -1).end
		});
	}, Zi = function(n, s) {
		if (Gi(n)) {
			let { key: i, value: r } = n;
			return r ? s === 0 ? w(this, m, T).call(this, {
				type: "NGMicrosyntaxExpression",
				expression: w(this, m, gn).call(this, r.ast),
				alias: null
			}, r) : w(this, m, T).call(this, {
				type: "NGMicrosyntaxKeyedExpression",
				key: w(this, m, T).call(this, {
					type: "NGMicrosyntaxKey",
					name: w(this, m, vn).call(this, i.source)
				}, i.span),
				expression: w(this, m, T).call(this, {
					type: "NGMicrosyntaxExpression",
					expression: w(this, m, gn).call(this, r.ast),
					alias: null
				}, r)
			}, [i.span.start, r.sourceSpan.end]) : w(this, m, T).call(this, {
				type: "NGMicrosyntaxKey",
				name: w(this, m, vn).call(this, i.source)
			}, i.span);
		} else {
			let { key: i, sourceSpan: r } = n;
			if (/^let\s$/.test(z(this, se).slice(r.start, r.start + 4))) {
				let { value: a } = n;
				return w(this, m, T).call(this, {
					type: "NGMicrosyntaxLet",
					key: w(this, m, T).call(this, {
						type: "NGMicrosyntaxKey",
						name: i.source
					}, i.span),
					value: a ? w(this, m, T).call(this, {
						type: "NGMicrosyntaxKey",
						name: a.source
					}, a.span) : null
				}, [r.start, a ? a.span.end : i.span.end]);
			} else {
				let a = w(this, m, Yi).call(this, n);
				return w(this, m, T).call(this, {
					type: "NGMicrosyntaxAs",
					key: w(this, m, T).call(this, {
						type: "NGMicrosyntaxKey",
						name: a.source
					}, a.span),
					alias: w(this, m, T).call(this, {
						type: "NGMicrosyntaxKey",
						name: i.source
					}, i.span)
				}, [a.span.start, i.span.end]);
			}
		}
	}, Se);
	dt = (t) => (e) => {
		let { result: n, comments: s } = t(e);
		return Object.assign(ji(n), { comments: s });
	};
	mt = dt(si);
	Sn = dt(ii);
	xn = dt(oi);
	yn = (t) => er(ai(t).result.templateBindings, t);
	tr = Wo;
	qo = 5;
	jo = 8;
	zo = 8;
	sr = (t) => (e) => e.label ? re(e.label) : ie(e) + t;
	Go = (t) => t.__contentEnd ?? En(t);
	ir = [
		"ExpressionStatement",
		"Directive",
		"ImportDeclaration",
		"ExportDefaultDeclaration",
		"ExportNamedDeclaration",
		"ExportAllDeclaration",
		"ReturnStatement",
		"ThrowStatement",
		"DoWhileStatement"
	];
	Xo = new Map([
		["BreakStatement", sr(qo)],
		["ContinueStatement", sr(jo)],
		["DebuggerStatement", (t) => ie(t) + zo],
		["VariableDeclaration", (t) => re(ft(0, t.declarations, -1))],
		...ir.map((t) => [t, Go])
	]);
	nr(ir);
	rr = Jo;
	Ko = gt(mt);
	Zo = gt(Sn);
	ea = gt(xn);
	ta = gt(yn);
}));
//#endregion
init_angular();
export { or as default, Cn as parsers, init_angular as t };
