var Rm = Object.defineProperty; var E1 = (n) => { throw TypeError(n); }; var Om = (n, e, t) => e in n ? Rm(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t; var Oe = (n, e, t) => Om(n, typeof e != "symbol" ? e + "" : e, t), qm = (n, e, t) => e.has(n) || E1("Cannot " + t); var S1 = (n, e, t) => e.has(n) ? E1("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(n) : e.set(n, t); var yi = (n, e, t) => (qm(n, e, "access private method"), t); const { SvelteComponent: Pm, assign: Hm, children: Um, claim_element: Vm, create_slot: Gm, detach: x1, element: jm, get_all_dirty_from_scope: Wm, get_slot_changes: Xm, get_spread_update: Ym, init: Zm, insert_hydration: Km, safe_not_equal: Jm, set_dynamic_element_data: T1, set_style: St, toggle_class: p0, transition_in: yd, transition_out: kd, update_slot_base: Qm } = window.__gradio__svelte__internal; function $m(n) { let e, t, r; const a = ( /*#slots*/ n[22].default ), i = Gm( a, n, /*$$scope*/ n[21], null ); let l = [ { "data-testid": ( /*test_id*/ n[10] ) }, { id: ( /*elem_id*/ n[5] ) }, { class: t = "block " + /*elem_classes*/ n[6].join(" ") + " svelte-1ezsyiy" } ], s = {}; for (let o = 0; o < l.length; o += 1) s = Hm(s, l[o]); return { c() { e = jm( /*tag*/ n[18] ), i && i.c(), this.h(); }, l(o) { e = Vm( o, /*tag*/ (n[18] || "null").toUpperCase(), { "data-testid": !0, id: !0, class: !0 } ); var u = Um(e); i && i.l(u), u.forEach(x1), this.h(); }, h() { T1( /*tag*/ n[18] )(e, s), p0( e, "hidden", /*visible*/ n[13] === !1 ), p0( e, "padded", /*padding*/ n[9] ), p0( e, "flex", /*flex*/ n[0] ), p0( e, "border_focus", /*border_mode*/ n[8] === "focus" ), p0( e, "border_contrast", /*border_mode*/ n[8] === "contrast" ), p0(e, "hide-container", !/*explicit_call*/ n[11] && !/*container*/ n[12]), St( e, "height", /*get_dimension*/ n[19]( /*height*/ n[1] ) ), St( e, "min-height", /*get_dimension*/ n[19]( /*min_height*/ n[2] ) ), St( e, "max-height", /*get_dimension*/ n[19]( /*max_height*/ n[3] ) ), St(e, "width", typeof /*width*/ n[4] == "number" ? `calc(min(${/*width*/ n[4]}px, 100%))` : ( /*get_dimension*/ n[19]( /*width*/ n[4] ) )), St( e, "border-style", /*variant*/ n[7] ), St( e, "overflow", /*allow_overflow*/ n[14] ? ( /*overflow_behavior*/ n[15] ) : "hidden" ), St( e, "flex-grow", /*scale*/ n[16] ), St(e, "min-width", `calc(min(${/*min_width*/ n[17]}px, 100%))`), St(e, "border-width", "var(--block-border-width)"); }, m(o, u) { Km(o, e, u), i && i.m(e, null), r = !0; }, p(o, u) { i && i.p && (!r || u & /*$$scope*/ 2097152) && Qm( i, a, o, /*$$scope*/ o[21], r ? Xm( a, /*$$scope*/ o[21], u, null ) : Wm( /*$$scope*/ o[21] ), null ), T1( /*tag*/ o[18] )(e, s = Ym(l, [ (!r || u & /*test_id*/ 1024) && { "data-testid": ( /*test_id*/ o[10] ) }, (!r || u & /*elem_id*/ 32) && { id: ( /*elem_id*/ o[5] ) }, (!r || u & /*elem_classes*/ 64 && t !== (t = "block " + /*elem_classes*/ o[6].join(" ") + " svelte-1ezsyiy")) && { class: t } ])), p0( e, "hidden", /*visible*/ o[13] === !1 ), p0( e, "padded", /*padding*/ o[9] ), p0( e, "flex", /*flex*/ o[0] ), p0( e, "border_focus", /*border_mode*/ o[8] === "focus" ), p0( e, "border_contrast", /*border_mode*/ o[8] === "contrast" ), p0(e, "hide-container", !/*explicit_call*/ o[11] && !/*container*/ o[12]), u & /*height*/ 2 && St( e, "height", /*get_dimension*/ o[19]( /*height*/ o[1] ) ), u & /*min_height*/ 4 && St( e, "min-height", /*get_dimension*/ o[19]( /*min_height*/ o[2] ) ), u & /*max_height*/ 8 && St( e, "max-height", /*get_dimension*/ o[19]( /*max_height*/ o[3] ) ), u & /*width*/ 16 && St(e, "width", typeof /*width*/ o[4] == "number" ? `calc(min(${/*width*/ o[4]}px, 100%))` : ( /*get_dimension*/ o[19]( /*width*/ o[4] ) )), u & /*variant*/ 128 && St( e, "border-style", /*variant*/ o[7] ), u & /*allow_overflow, overflow_behavior*/ 49152 && St( e, "overflow", /*allow_overflow*/ o[14] ? ( /*overflow_behavior*/ o[15] ) : "hidden" ), u & /*scale*/ 65536 && St( e, "flex-grow", /*scale*/ o[16] ), u & /*min_width*/ 131072 && St(e, "min-width", `calc(min(${/*min_width*/ o[17]}px, 100%))`); }, i(o) { r || (yd(i, o), r = !0); }, o(o) { kd(i, o), r = !1; }, d(o) { o && x1(e), i && i.d(o); } }; } function e2(n) { let e, t = ( /*tag*/ n[18] && $m(n) ); return { c() { t && t.c(); }, l(r) { t && t.l(r); }, m(r, a) { t && t.m(r, a), e = !0; }, p(r, [a]) { /*tag*/ r[18] && t.p(r, a); }, i(r) { e || (yd(t, r), e = !0); }, o(r) { kd(t, r), e = !1; }, d(r) { t && t.d(r); } }; } function t2(n, e, t) { let { $$slots: r = {}, $$scope: a } = e, { height: i = void 0 } = e, { min_height: l = void 0 } = e, { max_height: s = void 0 } = e, { width: o = void 0 } = e, { elem_id: u = "" } = e, { elem_classes: c = [] } = e, { variant: d = "solid" } = e, { border_mode: h = "base" } = e, { padding: p = !0 } = e, { type: _ = "normal" } = e, { test_id: b = void 0 } = e, { explicit_call: D = !1 } = e, { container: y = !0 } = e, { visible: k = !0 } = e, { allow_overflow: w = !0 } = e, { overflow_behavior: E = "auto" } = e, { scale: S = null } = e, { min_width: T = 0 } = e, { flex: C = !1 } = e; k || (C = !1); let F = _ === "fieldset" ? "fieldset" : "div"; const B = (I) => { if (I !== void 0) { if (typeof I == "number") return I + "px"; if (typeof I == "string") return I; } }; return n.$$set = (I) => { "height" in I && t(1, i = I.height), "min_height" in I && t(2, l = I.min_height), "max_height" in I && t(3, s = I.max_height), "width" in I && t(4, o = I.width), "elem_id" in I && t(5, u = I.elem_id), "elem_classes" in I && t(6, c = I.elem_classes), "variant" in I && t(7, d = I.variant), "border_mode" in I && t(8, h = I.border_mode), "padding" in I && t(9, p = I.padding), "type" in I && t(20, _ = I.type), "test_id" in I && t(10, b = I.test_id), "explicit_call" in I && t(11, D = I.explicit_call), "container" in I && t(12, y = I.container), "visible" in I && t(13, k = I.visible), "allow_overflow" in I && t(14, w = I.allow_overflow), "overflow_behavior" in I && t(15, E = I.overflow_behavior), "scale" in I && t(16, S = I.scale), "min_width" in I && t(17, T = I.min_width), "flex" in I && t(0, C = I.flex), "$$scope" in I && t(21, a = I.$$scope); }, [ C, i, l, s, o, u, c, d, h, p, b, D, y, k, w, E, S, T, F, B, _, a, r ]; } class Dd extends Pm { constructor(e) { super(), Zm(this, e, t2, e2, Jm, { height: 1, min_height: 2, max_height: 3, width: 4, elem_id: 5, elem_classes: 6, variant: 7, border_mode: 8, padding: 9, type: 20, test_id: 10, explicit_call: 11, container: 12, visible: 13, allow_overflow: 14, overflow_behavior: 15, scale: 16, min_width: 17, flex: 0 }); } } const r2 = [ { color: "red", primary: 600, secondary: 100 }, { color: "green", primary: 600, secondary: 100 }, { color: "blue", primary: 600, secondary: 100 }, { color: "yellow", primary: 500, secondary: 100 }, { color: "purple", primary: 600, secondary: 100 }, { color: "teal", primary: 600, secondary: 100 }, { color: "orange", primary: 600, secondary: 100 }, { color: "cyan", primary: 600, secondary: 100 }, { color: "lime", primary: 500, secondary: 100 }, { color: "pink", primary: 600, secondary: 100 } ], C1 = { inherit: "inherit", current: "currentColor", transparent: "transparent", black: "#000", white: "#fff", slate: { 50: "#f8fafc", 100: "#f1f5f9", 200: "#e2e8f0", 300: "#cbd5e1", 400: "#94a3b8", 500: "#64748b", 600: "#475569", 700: "#334155", 800: "#1e293b", 900: "#0f172a", 950: "#020617" }, gray: { 50: "#f9fafb", 100: "#f3f4f6", 200: "#e5e7eb", 300: "#d1d5db", 400: "#9ca3af", 500: "#6b7280", 600: "#4b5563", 700: "#374151", 800: "#1f2937", 900: "#111827", 950: "#030712" }, zinc: { 50: "#fafafa", 100: "#f4f4f5", 200: "#e4e4e7", 300: "#d4d4d8", 400: "#a1a1aa", 500: "#71717a", 600: "#52525b", 700: "#3f3f46", 800: "#27272a", 900: "#18181b", 950: "#09090b" }, neutral: { 50: "#fafafa", 100: "#f5f5f5", 200: "#e5e5e5", 300: "#d4d4d4", 400: "#a3a3a3", 500: "#737373", 600: "#525252", 700: "#404040", 800: "#262626", 900: "#171717", 950: "#0a0a0a" }, stone: { 50: "#fafaf9", 100: "#f5f5f4", 200: "#e7e5e4", 300: "#d6d3d1", 400: "#a8a29e", 500: "#78716c", 600: "#57534e", 700: "#44403c", 800: "#292524", 900: "#1c1917", 950: "#0c0a09" }, red: { 50: "#fef2f2", 100: "#fee2e2", 200: "#fecaca", 300: "#fca5a5", 400: "#f87171", 500: "#ef4444", 600: "#dc2626", 700: "#b91c1c", 800: "#991b1b", 900: "#7f1d1d", 950: "#450a0a" }, orange: { 50: "#fff7ed", 100: "#ffedd5", 200: "#fed7aa", 300: "#fdba74", 400: "#fb923c", 500: "#f97316", 600: "#ea580c", 700: "#c2410c", 800: "#9a3412", 900: "#7c2d12", 950: "#431407" }, amber: { 50: "#fffbeb", 100: "#fef3c7", 200: "#fde68a", 300: "#fcd34d", 400: "#fbbf24", 500: "#f59e0b", 600: "#d97706", 700: "#b45309", 800: "#92400e", 900: "#78350f", 950: "#451a03" }, yellow: { 50: "#fefce8", 100: "#fef9c3", 200: "#fef08a", 300: "#fde047", 400: "#facc15", 500: "#eab308", 600: "#ca8a04", 700: "#a16207", 800: "#854d0e", 900: "#713f12", 950: "#422006" }, lime: { 50: "#f7fee7", 100: "#ecfccb", 200: "#d9f99d", 300: "#bef264", 400: "#a3e635", 500: "#84cc16", 600: "#65a30d", 700: "#4d7c0f", 800: "#3f6212", 900: "#365314", 950: "#1a2e05" }, green: { 50: "#f0fdf4", 100: "#dcfce7", 200: "#bbf7d0", 300: "#86efac", 400: "#4ade80", 500: "#22c55e", 600: "#16a34a", 700: "#15803d", 800: "#166534", 900: "#14532d", 950: "#052e16" }, emerald: { 50: "#ecfdf5", 100: "#d1fae5", 200: "#a7f3d0", 300: "#6ee7b7", 400: "#34d399", 500: "#10b981", 600: "#059669", 700: "#047857", 800: "#065f46", 900: "#064e3b", 950: "#022c22" }, teal: { 50: "#f0fdfa", 100: "#ccfbf1", 200: "#99f6e4", 300: "#5eead4", 400: "#2dd4bf", 500: "#14b8a6", 600: "#0d9488", 700: "#0f766e", 800: "#115e59", 900: "#134e4a", 950: "#042f2e" }, cyan: { 50: "#ecfeff", 100: "#cffafe", 200: "#a5f3fc", 300: "#67e8f9", 400: "#22d3ee", 500: "#06b6d4", 600: "#0891b2", 700: "#0e7490", 800: "#155e75", 900: "#164e63", 950: "#083344" }, sky: { 50: "#f0f9ff", 100: "#e0f2fe", 200: "#bae6fd", 300: "#7dd3fc", 400: "#38bdf8", 500: "#0ea5e9", 600: "#0284c7", 700: "#0369a1", 800: "#075985", 900: "#0c4a6e", 950: "#082f49" }, blue: { 50: "#eff6ff", 100: "#dbeafe", 200: "#bfdbfe", 300: "#93c5fd", 400: "#60a5fa", 500: "#3b82f6", 600: "#2563eb", 700: "#1d4ed8", 800: "#1e40af", 900: "#1e3a8a", 950: "#172554" }, indigo: { 50: "#eef2ff", 100: "#e0e7ff", 200: "#c7d2fe", 300: "#a5b4fc", 400: "#818cf8", 500: "#6366f1", 600: "#4f46e5", 700: "#4338ca", 800: "#3730a3", 900: "#312e81", 950: "#1e1b4b" }, violet: { 50: "#f5f3ff", 100: "#ede9fe", 200: "#ddd6fe", 300: "#c4b5fd", 400: "#a78bfa", 500: "#8b5cf6", 600: "#7c3aed", 700: "#6d28d9", 800: "#5b21b6", 900: "#4c1d95", 950: "#2e1065" }, purple: { 50: "#faf5ff", 100: "#f3e8ff", 200: "#e9d5ff", 300: "#d8b4fe", 400: "#c084fc", 500: "#a855f7", 600: "#9333ea", 700: "#7e22ce", 800: "#6b21a8", 900: "#581c87", 950: "#3b0764" }, fuchsia: { 50: "#fdf4ff", 100: "#fae8ff", 200: "#f5d0fe", 300: "#f0abfc", 400: "#e879f9", 500: "#d946ef", 600: "#c026d3", 700: "#a21caf", 800: "#86198f", 900: "#701a75", 950: "#4a044e" }, pink: { 50: "#fdf2f8", 100: "#fce7f3", 200: "#fbcfe8", 300: "#f9a8d4", 400: "#f472b6", 500: "#ec4899", 600: "#db2777", 700: "#be185d", 800: "#9d174d", 900: "#831843", 950: "#500724" }, rose: { 50: "#fff1f2", 100: "#ffe4e6", 200: "#fecdd3", 300: "#fda4af", 400: "#fb7185", 500: "#f43f5e", 600: "#e11d48", 700: "#be123c", 800: "#9f1239", 900: "#881337", 950: "#4c0519" } }; r2.reduce( (n, { color: e, primary: t, secondary: r }) => ({ ...n, [e]: { primary: C1[e][t], secondary: C1[e][r] } }), {} ); const { SvelteComponent: n2, append_hydration: a2, attr: B0, children: F1, claim_svg_element: M1, detach: ws, init: i2, insert_hydration: l2, noop: ys, safe_not_equal: s2, svg_element: z1 } = window.__gradio__svelte__internal; function o2(n) { let e, t; return { c() { e = z1("svg"), t = z1("circle"), this.h(); }, l(r) { e = M1(r, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0, class: !0 }); var a = F1(e); t = M1(a, "circle", { cx: !0, cy: !0, r: !0 }), F1(t).forEach(ws), a.forEach(ws), this.h(); }, h() { B0(t, "cx", "12"), B0(t, "cy", "12"), B0(t, "r", "10"), B0(e, "xmlns", "http://www.w3.org/2000/svg"), B0(e, "width", "100%"), B0(e, "height", "100%"), B0(e, "viewBox", "0 0 24 24"), B0(e, "stroke-width", "1.5"), B0(e, "stroke-linecap", "round"), B0(e, "stroke-linejoin", "round"), B0(e, "class", "feather feather-circle"); }, m(r, a) { l2(r, e, a), a2(e, t); }, p: ys, i: ys, o: ys, d(r) { r && ws(e); } }; } class Xl extends n2 { constructor(e) { super(), i2(this, e, null, o2, s2, {}); } } const { SvelteComponent: u2, append_hydration: ks, attr: I0, children: ki, claim_svg_element: Di, detach: da, init: c2, insert_hydration: f2, noop: Ds, safe_not_equal: h2, set_style: Z0, svg_element: Ai } = window.__gradio__svelte__internal; function d2(n) { let e, t, r, a; return { c() { e = Ai("svg"), t = Ai("g"), r = Ai("path"), a = Ai("path"), this.h(); }, l(i) { e = Di(i, "svg", { width: !0, height: !0, viewBox: !0, version: !0, xmlns: !0, "xmlns:xlink": !0, "xml:space": !0, stroke: !0, style: !0 }); var l = ki(e); t = Di(l, "g", { transform: !0 }); var s = ki(t); r = Di(s, "path", { d: !0, style: !0 }), ki(r).forEach(da), s.forEach(da), a = Di(l, "path", { d: !0, style: !0 }), ki(a).forEach(da), l.forEach(da), this.h(); }, h() { I0(r, "d", "M18,6L6.087,17.913"), Z0(r, "fill", "none"), Z0(r, "fill-rule", "nonzero"), Z0(r, "stroke-width", "2px"), I0(t, "transform", "matrix(1.14096,-0.140958,-0.140958,1.14096,-0.0559523,0.0559523)"), I0(a, "d", "M4.364,4.364L19.636,19.636"), Z0(a, "fill", "none"), Z0(a, "fill-rule", "nonzero"), Z0(a, "stroke-width", "2px"), I0(e, "width", "100%"), I0(e, "height", "100%"), I0(e, "viewBox", "0 0 24 24"), I0(e, "version", "1.1"), I0(e, "xmlns", "http://www.w3.org/2000/svg"), I0(e, "xmlns:xlink", "http://www.w3.org/1999/xlink"), I0(e, "xml:space", "preserve"), I0(e, "stroke", "currentColor"), Z0(e, "fill-rule", "evenodd"), Z0(e, "clip-rule", "evenodd"), Z0(e, "stroke-linecap", "round"), Z0(e, "stroke-linejoin", "round"); }, m(i, l) { f2(i, e, l), ks(e, t), ks(t, r), ks(e, a); }, p: Ds, i: Ds, o: Ds, d(i) { i && da(e); } }; } class m2 extends u2 { constructor(e) { super(), c2(this, e, null, d2, h2, {}); } } const { SvelteComponent: p2, append_hydration: g2, attr: Pn, children: B1, claim_svg_element: I1, detach: As, init: _2, insert_hydration: v2, noop: Es, safe_not_equal: b2, svg_element: L1 } = window.__gradio__svelte__internal; function w2(n) { let e, t; return { c() { e = L1("svg"), t = L1("path"), this.h(); }, l(r) { e = I1(r, "svg", { class: !0, xmlns: !0, width: !0, height: !0, viewBox: !0 }); var a = B1(e); t = I1(a, "path", { d: !0 }), B1(t).forEach(As), a.forEach(As), this.h(); }, h() { Pn(t, "d", "M5 8l4 4 4-4z"), Pn(e, "class", "dropdown-arrow svelte-145leq6"), Pn(e, "xmlns", "http://www.w3.org/2000/svg"), Pn(e, "width", "100%"), Pn(e, "height", "100%"), Pn(e, "viewBox", "0 0 18 18"); }, m(r, a) { v2(r, e, a), g2(e, t); }, p: Es, i: Es, o: Es, d(r) { r && As(e); } }; } class Yl extends p2 { constructor(e) { super(), _2(this, e, null, w2, b2, {}); } } const { SvelteComponent: y2, append_hydration: k2, attr: Ei, children: N1, claim_svg_element: R1, detach: Ss, init: D2, insert_hydration: A2, noop: xs, safe_not_equal: E2, svg_element: O1 } = window.__gradio__svelte__internal; function S2(n) { let e, t; return { c() { e = O1("svg"), t = O1("path"), this.h(); }, l(r) { e = R1(r, "svg", { xmlns: !0, viewBox: !0 }); var a = N1(e); t = R1(a, "path", { fill: !0, d: !0 }), N1(t).forEach(Ss), a.forEach(Ss), this.h(); }, h() { Ei(t, "fill", "currentColor"), Ei(t, "d", "M13.75 2a2.25 2.25 0 0 1 2.236 2.002V4h1.764A2.25 2.25 0 0 1 20 6.25V11h-1.5V6.25a.75.75 0 0 0-.75-.75h-2.129c-.404.603-1.091 1-1.871 1h-3.5c-.78 0-1.467-.397-1.871-1H6.25a.75.75 0 0 0-.75.75v13.5c0 .414.336.75.75.75h4.78a4 4 0 0 0 .505 1.5H6.25A2.25 2.25 0 0 1 4 19.75V6.25A2.25 2.25 0 0 1 6.25 4h1.764a2.25 2.25 0 0 1 2.236-2zm2.245 2.096L16 4.25q0-.078-.005-.154M13.75 3.5h-3.5a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5M15 12a3 3 0 0 0-3 3v5c0 .556.151 1.077.415 1.524l3.494-3.494a2.25 2.25 0 0 1 3.182 0l3.494 3.494c.264-.447.415-.968.415-1.524v-5a3 3 0 0 0-3-3zm0 11a3 3 0 0 1-1.524-.415l3.494-3.494a.75.75 0 0 1 1.06 0l3.494 3.494A3 3 0 0 1 20 23zm5-7a1 1 0 1 1 0-2 1 1 0 0 1 0 2"), Ei(e, "xmlns", "http://www.w3.org/2000/svg"), Ei(e, "viewBox", "0 0 24 24"); }, m(r, a) { A2(r, e, a), k2(e, t); }, p: xs, i: xs, o: xs, d(r) { r && Ss(e); } }; } class x2 extends y2 { constructor(e) { super(), D2(this, e, null, S2, E2, {}); } } const { SvelteComponent: T2, append_hydration: Si, attr: st, children: ma, claim_svg_element: pa, detach: Hn, init: C2, insert_hydration: F2, noop: Ts, safe_not_equal: M2, svg_element: ga } = window.__gradio__svelte__internal; function z2(n) { let e, t, r, a, i; return { c() { e = ga("svg"), t = ga("path"), r = ga("path"), a = ga("line"), i = ga("line"), this.h(); }, l(l) { e = pa(l, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0, fill: !0, stroke: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0, class: !0 }); var s = ma(e); t = pa(s, "path", { d: !0 }), ma(t).forEach(Hn), r = pa(s, "path", { d: !0 }), ma(r).forEach(Hn), a = pa(s, "line", { x1: !0, y1: !0, x2: !0, y2: !0 }), ma(a).forEach(Hn), i = pa(s, "line", { x1: !0, y1: !0, x2: !0, y2: !0 }), ma(i).forEach(Hn), s.forEach(Hn), this.h(); }, h() { st(t, "d", "M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"), st(r, "d", "M19 10v2a7 7 0 0 1-14 0v-2"), st(a, "x1", "12"), st(a, "y1", "19"), st(a, "x2", "12"), st(a, "y2", "23"), st(i, "x1", "8"), st(i, "y1", "23"), st(i, "x2", "16"), st(i, "y2", "23"), st(e, "xmlns", "http://www.w3.org/2000/svg"), st(e, "width", "100%"), st(e, "height", "100%"), st(e, "viewBox", "0 0 24 24"), st(e, "fill", "none"), st(e, "stroke", "currentColor"), st(e, "stroke-width", "2"), st(e, "stroke-linecap", "round"), st(e, "stroke-linejoin", "round"), st(e, "class", "feather feather-mic"); }, m(l, s) { F2(l, e, s), Si(e, t), Si(e, r), Si(e, a), Si(e, i); }, p: Ts, i: Ts, o: Ts, d(l) { l && Hn(e); } }; } class Cn extends T2 { constructor(e) { super(), C2(this, e, null, z2, M2, {}); } } const { SvelteComponent: B2, append_hydration: Cs, attr: xt, children: xi, claim_svg_element: Ti, detach: _a, init: I2, insert_hydration: L2, noop: Fs, safe_not_equal: N2, svg_element: Ci } = window.__gradio__svelte__internal; function R2(n) { let e, t, r, a; return { c() { e = Ci("svg"), t = Ci("path"), r = Ci("circle"), a = Ci("circle"), this.h(); }, l(i) { e = Ti(i, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0, fill: !0, stroke: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0, class: !0 }); var l = xi(e); t = Ti(l, "path", { d: !0 }), xi(t).forEach(_a), r = Ti(l, "circle", { cx: !0, cy: !0, r: !0 }), xi(r).forEach(_a), a = Ti(l, "circle", { cx: !0, cy: !0, r: !0 }), xi(a).forEach(_a), l.forEach(_a), this.h(); }, h() { xt(t, "d", "M9 18V5l12-2v13"), xt(r, "cx", "6"), xt(r, "cy", "18"), xt(r, "r", "3"), xt(a, "cx", "18"), xt(a, "cy", "16"), xt(a, "r", "3"), xt(e, "xmlns", "http://www.w3.org/2000/svg"), xt(e, "width", "100%"), xt(e, "height", "100%"), xt(e, "viewBox", "0 0 24 24"), xt(e, "fill", "none"), xt(e, "stroke", "currentColor"), xt(e, "stroke-width", "1.5"), xt(e, "stroke-linecap", "round"), xt(e, "stroke-linejoin", "round"), xt(e, "class", "feather feather-music"); }, m(i, l) { L2(i, e, l), Cs(e, t), Cs(e, r), Cs(e, a); }, p: Fs, i: Fs, o: Fs, d(i) { i && _a(e); } }; } class Au extends B2 { constructor(e) { super(), I2(this, e, null, R2, N2, {}); } } const { SvelteComponent: O2, append_hydration: q2, attr: vt, children: q1, claim_svg_element: P1, detach: Ms, init: P2, insert_hydration: H2, noop: H1, safe_not_equal: U2, svg_element: U1 } = window.__gradio__svelte__internal; function V2(n) { let e, t, r; return { c() { e = U1("svg"), t = U1("rect"), this.h(); }, l(a) { e = P1(a, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0, fill: !0, stroke: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0, class: !0 }); var i = q1(e); t = P1(i, "rect", { x: !0, y: !0, width: !0, height: !0, rx: !0, ry: !0 }), q1(t).forEach(Ms), i.forEach(Ms), this.h(); }, h() { vt(t, "x", "3"), vt(t, "y", "3"), vt(t, "width", "18"), vt(t, "height", "18"), vt(t, "rx", "2"), vt(t, "ry", "2"), vt(e, "xmlns", "http://www.w3.org/2000/svg"), vt(e, "width", "100%"), vt(e, "height", "100%"), vt(e, "viewBox", "0 0 24 24"), vt( e, "fill", /*fill*/ n[0] ), vt(e, "stroke", "currentColor"), vt(e, "stroke-width", r = `${/*stroke_width*/ n[1]}`), vt(e, "stroke-linecap", "round"), vt(e, "stroke-linejoin", "round"), vt(e, "class", "feather feather-square"); }, m(a, i) { H2(a, e, i), q2(e, t); }, p(a, [i]) { i & /*fill*/ 1 && vt( e, "fill", /*fill*/ a[0] ), i & /*stroke_width*/ 2 && r !== (r = `${/*stroke_width*/ a[1]}`) && vt(e, "stroke-width", r); }, i: H1, o: H1, d(a) { a && Ms(e); } }; } function G2(n, e, t) { let { fill: r = "currentColor" } = e, { stroke_width: a = 1.5 } = e; return n.$$set = (i) => { "fill" in i && t(0, r = i.fill), "stroke_width" in i && t(1, a = i.stroke_width); }, [r, a]; } let Ad = class extends O2 { constructor(e) { super(), P2(this, e, G2, V2, U2, { fill: 0, stroke_width: 1 }); } }; const { SvelteComponent: j2, append_hydration: zs, attr: Nt, children: Fi, claim_svg_element: Mi, detach: va, init: W2, insert_hydration: X2, noop: Bs, safe_not_equal: Y2, svg_element: zi } = window.__gradio__svelte__internal; function Z2(n) { let e, t, r, a; return { c() { e = zi("svg"), t = zi("path"), r = zi("polyline"), a = zi("line"), this.h(); }, l(i) { e = Mi(i, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0, fill: !0, stroke: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0, class: !0 }); var l = Fi(e); t = Mi(l, "path", { d: !0 }), Fi(t).forEach(va), r = Mi(l, "polyline", { points: !0 }), Fi(r).forEach(va), a = Mi(l, "line", { x1: !0, y1: !0, x2: !0, y2: !0 }), Fi(a).forEach(va), l.forEach(va), this.h(); }, h() { Nt(t, "d", "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"), Nt(r, "points", "17 8 12 3 7 8"), Nt(a, "x1", "12"), Nt(a, "y1", "3"), Nt(a, "x2", "12"), Nt(a, "y2", "15"), Nt(e, "xmlns", "http://www.w3.org/2000/svg"), Nt(e, "width", "90%"), Nt(e, "height", "90%"), Nt(e, "viewBox", "0 0 24 24"), Nt(e, "fill", "none"), Nt(e, "stroke", "currentColor"), Nt(e, "stroke-width", "2"), Nt(e, "stroke-linecap", "round"), Nt(e, "stroke-linejoin", "round"), Nt(e, "class", "feather feather-upload"); }, m(i, l) { X2(i, e, l), zs(e, t), zs(e, r), zs(e, a); }, p: Bs, i: Bs, o: Bs, d(i) { i && va(e); } }; } class K2 extends j2 { constructor(e) { super(), W2(this, e, null, Z2, Y2, {}); } } const { SvelteComponent: J2, append_hydration: V1, attr: Tt, children: Is, claim_svg_element: Ls, detach: Bi, init: Q2, insert_hydration: $2, noop: Ns, safe_not_equal: e5, svg_element: Rs } = window.__gradio__svelte__internal; function t5(n) { let e, t, r; return { c() { e = Rs("svg"), t = Rs("polygon"), r = Rs("rect"), this.h(); }, l(a) { e = Ls(a, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0, fill: !0, stroke: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0, class: !0 }); var i = Is(e); t = Ls(i, "polygon", { points: !0 }), Is(t).forEach(Bi), r = Ls(i, "rect", { x: !0, y: !0, width: !0, height: !0, rx: !0, ry: !0 }), Is(r).forEach(Bi), i.forEach(Bi), this.h(); }, h() { Tt(t, "points", "23 7 16 12 23 17 23 7"), Tt(r, "x", "1"), Tt(r, "y", "5"), Tt(r, "width", "15"), Tt(r, "height", "14"), Tt(r, "rx", "2"), Tt(r, "ry", "2"), Tt(e, "xmlns", "http://www.w3.org/2000/svg"), Tt(e, "width", "100%"), Tt(e, "height", "100%"), Tt(e, "viewBox", "0 0 24 24"), Tt(e, "fill", "none"), Tt(e, "stroke", "currentColor"), Tt(e, "stroke-width", "1.5"), Tt(e, "stroke-linecap", "round"), Tt(e, "stroke-linejoin", "round"), Tt(e, "class", "feather feather-video"); }, m(a, i) { $2(a, e, i), V1(e, t), V1(e, r); }, p: Ns, i: Ns, o: Ns, d(a) { a && Bi(e); } }; } class Eu extends J2 { constructor(e) { super(), Q2(this, e, null, t5, e5, {}); } } const { SvelteComponent: r5, append_hydration: ba, attr: bt, children: wa, claim_svg_element: ya, claim_text: n5, detach: Un, init: a5, insert_hydration: i5, noop: Os, safe_not_equal: l5, svg_element: ka, text: s5 } = window.__gradio__svelte__internal; function o5(n) { let e, t, r, a, i, l; return { c() { e = ka("svg"), t = ka("title"), r = s5("High volume"), a = ka("path"), i = ka("path"), l = ka("path"), this.h(); }, l(s) { e = ya(s, "svg", { width: !0, height: !0, viewBox: !0, "stroke-width": !0, fill: !0, stroke: !0, xmlns: !0, color: !0 }); var o = wa(e); t = ya(o, "title", {}); var u = wa(t); r = n5(u, "High volume"), u.forEach(Un), a = ya(o, "path", { d: !0, "stroke-width": !0 }), wa(a).forEach(Un), i = ya(o, "path", { d: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0 }), wa(i).forEach(Un), l = ya(o, "path", { d: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0 }), wa(l).forEach(Un), o.forEach(Un), this.h(); }, h() { bt(a, "d", "M1 13.8571V10.1429C1 9.03829 1.89543 8.14286 3 8.14286H5.9C6.09569 8.14286 6.28708 8.08544 6.45046 7.97772L12.4495 4.02228C13.1144 3.5839 14 4.06075 14 4.85714V19.1429C14 19.9392 13.1144 20.4161 12.4495 19.9777L6.45046 16.0223C6.28708 15.9146 6.09569 15.8571 5.9 15.8571H3C1.89543 15.8571 1 14.9617 1 13.8571Z"), bt(a, "stroke-width", "1.5"), bt(i, "d", "M17.5 7.5C17.5 7.5 19 9 19 11.5C19 14 17.5 15.5 17.5 15.5"), bt(i, "stroke-width", "1.5"), bt(i, "stroke-linecap", "round"), bt(i, "stroke-linejoin", "round"), bt(l, "d", "M20.5 4.5C20.5 4.5 23 7 23 11.5C23 16 20.5 18.5 20.5 18.5"), bt(l, "stroke-width", "1.5"), bt(l, "stroke-linecap", "round"), bt(l, "stroke-linejoin", "round"), bt(e, "width", "100%"), bt(e, "height", "100%"), bt(e, "viewBox", "0 0 24 24"), bt(e, "stroke-width", "1.5"), bt(e, "fill", "none"), bt(e, "stroke", "currentColor"), bt(e, "xmlns", "http://www.w3.org/2000/svg"), bt(e, "color", "currentColor"); }, m(s, o) { i5(s, e, o), ba(e, t), ba(t, r), ba(e, a), ba(e, i), ba(e, l); }, p: Os, i: Os, o: Os, d(s) { s && Un(e); } }; } class El extends r5 { constructor(e) { super(), a5(this, e, null, o5, l5, {}); } } const { SvelteComponent: u5, append_hydration: Ur, attr: ht, children: Vr, claim_svg_element: Gr, claim_text: c5, detach: br, init: f5, insert_hydration: h5, noop: qs, safe_not_equal: d5, svg_element: jr, text: m5 } = window.__gradio__svelte__internal; function p5(n) { let e, t, r, a, i, l, s, o, u; return { c() { e = jr("svg"), t = jr("title"), r = m5("Muted volume"), a = jr("g"), i = jr("path"), l = jr("path"), s = jr("defs"), o = jr("clipPath"), u = jr("rect"), this.h(); }, l(c) { e = Gr(c, "svg", { width: !0, height: !0, viewBox: !0, "stroke-width": !0, fill: !0, xmlns: !0, stroke: !0, color: !0 }); var d = Vr(e); t = Gr(d, "title", {}); var h = Vr(t); r = c5(h, "Muted volume"), h.forEach(br), a = Gr(d, "g", { "clip-path": !0 }); var p = Vr(a); i = Gr(p, "path", { d: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-linejoin": !0 }), Vr(i).forEach(br), l = Gr(p, "path", { d: !0, "stroke-width": !0 }), Vr(l).forEach(br), p.forEach(br), s = Gr(d, "defs", {}); var _ = Vr(s); o = Gr(_, "clipPath", { id: !0 }); var b = Vr(o); u = Gr(b, "rect", { width: !0, height: !0, fill: !0 }), Vr(u).forEach(br), b.forEach(br), _.forEach(br), d.forEach(br), this.h(); }, h() { ht(i, "d", "M18 14L20.0005 12M22 10L20.0005 12M20.0005 12L18 10M20.0005 12L22 14"), ht(i, "stroke-width", "1.5"), ht(i, "stroke-linecap", "round"), ht(i, "stroke-linejoin", "round"), ht(l, "d", "M2 13.8571V10.1429C2 9.03829 2.89543 8.14286 4 8.14286H6.9C7.09569 8.14286 7.28708 8.08544 7.45046 7.97772L13.4495 4.02228C14.1144 3.5839 15 4.06075 15 4.85714V19.1429C15 19.9392 14.1144 20.4161 13.4495 19.9777L7.45046 16.0223C7.28708 15.9146 7.09569 15.8571 6.9 15.8571H4C2.89543 15.8571 2 14.9617 2 13.8571Z"), ht(l, "stroke-width", "1.5"), ht(a, "clip-path", "url(#clip0_3173_16686)"), ht(u, "width", "24"), ht(u, "height", "24"), ht(u, "fill", "white"), ht(o, "id", "clip0_3173_16686"), ht(e, "width", "100%"), ht(e, "height", "100%"), ht(e, "viewBox", "0 0 24 24"), ht(e, "stroke-width", "1.5"), ht(e, "fill", "none"), ht(e, "xmlns", "http://www.w3.org/2000/svg"), ht(e, "stroke", "currentColor"), ht(e, "color", "currentColor"); }, m(c, d) { h5(c, e, d), Ur(e, t), Ur(t, r), Ur(e, a), Ur(a, i), Ur(a, l), Ur(e, s), Ur(s, o), Ur(o, u); }, p: qs, i: qs, o: qs, d(c) { c && br(e); } }; } class Sl extends u5 { constructor(e) { super(), f5(this, e, null, p5, d5, {}); } } const { SvelteComponent: g5, append_hydration: G1, attr: Wr, children: Ps, claim_svg_element: Hs, detach: Ii, init: _5, insert_hydration: v5, noop: Us, safe_not_equal: b5, svg_element: Vs } = window.__gradio__svelte__internal; function w5(n) { let e, t, r; return { c() { e = Vs("svg"), t = Vs("path"), r = Vs("path"), this.h(); }, l(a) { e = Hs(a, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0 }); var i = Ps(e); t = Hs(i, "path", { fill: !0, d: !0 }), Ps(t).forEach(Ii), r = Hs(i, "path", { fill: !0, d: !0 }), Ps(r).forEach(Ii), i.forEach(Ii), this.h(); }, h() { Wr(t, "fill", "currentColor"), Wr(t, "d", "M12 2c-4.963 0-9 4.038-9 9c0 3.328 1.82 6.232 4.513 7.79l-2.067 1.378A1 1 0 0 0 6 22h12a1 1 0 0 0 .555-1.832l-2.067-1.378C19.18 17.232 21 14.328 21 11c0-4.962-4.037-9-9-9zm0 16c-3.859 0-7-3.141-7-7c0-3.86 3.141-7 7-7s7 3.14 7 7c0 3.859-3.141 7-7 7z"), Wr(r, "fill", "currentColor"), Wr(r, "d", "M12 6c-2.757 0-5 2.243-5 5s2.243 5 5 5s5-2.243 5-5s-2.243-5-5-5zm0 8c-1.654 0-3-1.346-3-3s1.346-3 3-3s3 1.346 3 3s-1.346 3-3 3z"), Wr(e, "xmlns", "http://www.w3.org/2000/svg"), Wr(e, "width", "100%"), Wr(e, "height", "100%"), Wr(e, "viewBox", "0 0 24 24"); }, m(a, i) { v5(a, e, i), G1(e, t), G1(e, r); }, p: Us, i: Us, o: Us, d(a) { a && Ii(e); } }; } let j1 = class extends g5 { constructor(e) { super(), _5(this, e, null, w5, b5, {}); } }; const { SvelteComponent: y5, append_hydration: W1, attr: wt, children: Gs, claim_svg_element: js, detach: Li, init: k5, insert_hydration: D5, noop: Ws, safe_not_equal: A5, svg_element: Xs } = window.__gradio__svelte__internal; function E5(n) { let e, t, r; return { c() { e = Xs("svg"), t = Xs("circle"), r = Xs("animateTransform"), this.h(); }, l(a) { e = js(a, "svg", { xmlns: !0, width: !0, height: !0, viewBox: !0, class: !0 }); var i = Gs(e); t = js(i, "circle", { cx: !0, cy: !0, r: !0, fill: !0, "stroke-width": !0, "stroke-linecap": !0, "stroke-dasharray": !0, "stroke-dashoffset": !0 }); var l = Gs(t); r = js(l, "animateTransform", { attributeName: !0, type: !0, from: !0, to: !0, repeatCount: !0 }), Gs(r).forEach(Li), l.forEach(Li), i.forEach(Li), this.h(); }, h() { wt(r, "attributeName", "transform"), wt(r, "type", "rotate"), wt(r, "from", "0 25 25"), wt(r, "to", "360 25 25"), wt(r, "repeatCount", "indefinite"), wt(t, "cx", "25"), wt(t, "cy", "25"), wt(t, "r", "20"), wt(t, "fill", "none"), wt(t, "stroke-width", "3.0"), wt(t, "stroke-linecap", "round"), wt(t, "stroke-dasharray", "94.2477796076938 94.2477796076938"), wt(t, "stroke-dashoffset", "0"), wt(e, "xmlns", "http://www.w3.org/2000/svg"), wt(e, "width", "100%"), wt(e, "height", "100%"), wt(e, "viewBox", "0 0 50 50"), wt(e, "class", "svelte-pb9pol"); }, m(a, i) { D5(a, e, i), W1(e, t), W1(t, r); }, p: Ws, i: Ws, o: Ws, d(a) { a && Li(e); } }; } class Su extends y5 { constructor(e) { super(), k5(this, e, null, E5, A5, {}); } } class u0 { // The + prefix indicates that these fields aren't writeable // Lexer holding the input string. // Start offset, zero-based inclusive. // End offset, zero-based exclusive. constructor(e, t, r) { this.lexer = void 0, this.start = void 0, this.end = void 0, this.lexer = e, this.start = t, this.end = r; } /** * Merges two `SourceLocation`s from location providers, given they are * provided in order of appearance. * - Returns the first one's location if only the first is provided. * - Returns a merged range of the first and the last if both are provided * and their lexers match. * - Otherwise, returns null. */ static range(e, t) { return t ? !e || !e.loc || !t.loc || e.loc.lexer !== t.loc.lexer ? null : new u0(e.loc.lexer, e.loc.start, t.loc.end) : e && e.loc; } } class S0 { // don't expand the token // used in \noexpand constructor(e, t) { this.text = void 0, this.loc = void 0, this.noexpand = void 0, this.treatAsRelax = void 0, this.text = e, this.loc = t; } /** * Given a pair of tokens (this and endToken), compute a `Token` encompassing * the whole input range enclosed by these two. */ range(e, t) { return new S0(t, u0.range(this, e)); } } class G { // Error start position based on passed-in Token or ParseNode. // Length of affected text based on passed-in Token or ParseNode. // The underlying error message without any context added. constructor(e, t) { this.name = void 0, this.position = void 0, this.length = void 0, this.rawMessage = void 0; var r = "KaTeX parse error: " + e, a, i, l = t && t.loc; if (l && l.start <= l.end) { var s = l.lexer.input; a = l.start, i = l.end, a === s.length ? r += " at end of input: " : r += " at position " + (a + 1) + ": "; var o = s.slice(a, i).replace(/[^]/g, "$&̲"), u; a > 15 ? u = "…" + s.slice(a - 15, a) : u = s.slice(0, a); var c; i + 15 < s.length ? c = s.slice(i, i + 15) + "…" : c = s.slice(i), r += u + o + c; } var d = new Error(r); return d.name = "ParseError", d.__proto__ = G.prototype, d.position = a, a != null && i != null && (d.length = i - a), d.rawMessage = e, d; } } G.prototype.__proto__ = Error.prototype; var S5 = function(e, t) { return e.indexOf(t) !== -1; }, x5 = function(e, t) { return e === void 0 ? t : e; }, T5 = /([A-Z])/g, C5 = function(e) { return e.replace(T5, "-$1").toLowerCase(); }, F5 = { "&": "&", ">": ">", "<": "<", '"': """, "'": "'" }, M5 = /[&><"']/g; function z5(n) { return String(n).replace(M5, (e) => F5[e]); } var Ed = function n(e) { return e.type === "ordgroup" || e.type === "color" ? e.body.length === 1 ? n(e.body[0]) : e : e.type === "font" ? n(e.body) : e; }, B5 = function(e) { var t = Ed(e); return t.type === "mathord" || t.type === "textord" || t.type === "atom"; }, I5 = function(e) { if (!e) throw new Error("Expected non-null, but got " + String(e)); return e; }, L5 = function(e) { var t = /^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e); return t ? t[2] !== ":" || !/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1]) ? null : t[1].toLowerCase() : "_relative"; }, re = { contains: S5, deflt: x5, escape: z5, hyphenate: C5, getBaseElem: Ed, isCharacterBox: B5, protocolFromUrl: L5 }, gl = { displayMode: { type: "boolean", description: "Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.", cli: "-d, --display-mode" }, output: { type: { enum: ["htmlAndMathml", "html", "mathml"] }, description: "Determines the markup language of the output.", cli: "-F, --format " }, leqno: { type: "boolean", description: "Render display math in leqno style (left-justified tags)." }, fleqn: { type: "boolean", description: "Render display math flush left." }, throwOnError: { type: "boolean", default: !0, cli: "-t, --no-throw-on-error", cliDescription: "Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error." }, errorColor: { type: "string", default: "#cc0000", cli: "-c, --error-color ", cliDescription: "A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.", cliProcessor: (n) => "#" + n }, macros: { type: "object", cli: "-m, --macro ", cliDescription: "Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).", cliDefault: [], cliProcessor: (n, e) => (e.push(n), e) }, minRuleThickness: { type: "number", description: "Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.", processor: (n) => Math.max(0, n), cli: "--min-rule-thickness ", cliProcessor: parseFloat }, colorIsTextColor: { type: "boolean", description: "Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.", cli: "-b, --color-is-text-color" }, strict: { type: [{ enum: ["warn", "ignore", "error"] }, "boolean", "function"], description: "Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.", cli: "-S, --strict", cliDefault: !1 }, trust: { type: ["boolean", "function"], description: "Trust the input, enabling all HTML features such as \\url.", cli: "-T, --trust" }, maxSize: { type: "number", default: 1 / 0, description: "If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large", processor: (n) => Math.max(0, n), cli: "-s, --max-size ", cliProcessor: parseInt }, maxExpand: { type: "number", default: 1e3, description: "Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.", processor: (n) => Math.max(0, n), cli: "-e, --max-expand ", cliProcessor: (n) => n === "Infinity" ? 1 / 0 : parseInt(n) }, globalGroup: { type: "boolean", cli: !1 } }; function N5(n) { if (n.default) return n.default; var e = n.type, t = Array.isArray(e) ? e[0] : e; if (typeof t != "string") return t.enum[0]; switch (t) { case "boolean": return !1; case "string": return ""; case "number": return 0; case "object": return {}; } } class xu { constructor(e) { this.displayMode = void 0, this.output = void 0, this.leqno = void 0, this.fleqn = void 0, this.throwOnError = void 0, this.errorColor = void 0, this.macros = void 0, this.minRuleThickness = void 0, this.colorIsTextColor = void 0, this.strict = void 0, this.trust = void 0, this.maxSize = void 0, this.maxExpand = void 0, this.globalGroup = void 0, e = e || {}; for (var t in gl) if (gl.hasOwnProperty(t)) { var r = gl[t]; this[t] = e[t] !== void 0 ? r.processor ? r.processor(e[t]) : e[t] : N5(r); } } /** * Report nonstrict (non-LaTeX-compatible) input. * Can safely not be called if `this.strict` is false in JavaScript. */ reportNonstrict(e, t, r) { var a = this.strict; if (typeof a == "function" && (a = a(e, t, r)), !(!a || a === "ignore")) { if (a === !0 || a === "error") throw new G("LaTeX-incompatible input and strict mode is set to 'error': " + (t + " [" + e + "]"), r); a === "warn" ? typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (t + " [" + e + "]")) : typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + a + "': " + t + " [" + e + "]")); } } /** * Check whether to apply strict (LaTeX-adhering) behavior for unusual * input (like `\\`). Unlike `nonstrict`, will not throw an error; * instead, "error" translates to a return value of `true`, while "ignore" * translates to a return value of `false`. May still print a warning: * "warn" prints a warning and returns `false`. * This is for the second category of `errorCode`s listed in the README. */ useStrictBehavior(e, t, r) { var a = this.strict; if (typeof a == "function") try { a = a(e, t, r); } catch { a = "error"; } return !a || a === "ignore" ? !1 : a === !0 || a === "error" ? !0 : a === "warn" ? (typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (t + " [" + e + "]")), !1) : (typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + a + "': " + t + " [" + e + "]")), !1); } /** * Check whether to test potentially dangerous input, and return * `true` (trusted) or `false` (untrusted). The sole argument `context` * should be an object with `command` field specifying the relevant LaTeX * command (as a string starting with `\`), and any other arguments, etc. * If `context` has a `url` field, a `protocol` field will automatically * get added by this function (changing the specified object). */ isTrusted(e) { if (e.url && !e.protocol) { var t = re.protocolFromUrl(e.url); if (t == null) return !1; e.protocol = t; } var r = typeof this.trust == "function" ? this.trust(e) : this.trust; return !!r; } } class Xr { constructor(e, t, r) { this.id = void 0, this.size = void 0, this.cramped = void 0, this.id = e, this.size = t, this.cramped = r; } /** * Get the style of a superscript given a base in the current style. */ sup() { return $0[R5[this.id]]; } /** * Get the style of a subscript given a base in the current style. */ sub() { return $0[O5[this.id]]; } /** * Get the style of a fraction numerator given the fraction in the current * style. */ fracNum() { return $0[q5[this.id]]; } /** * Get the style of a fraction denominator given the fraction in the current * style. */ fracDen() { return $0[P5[this.id]]; } /** * Get the cramped version of a style (in particular, cramping a cramped style * doesn't change the style). */ cramp() { return $0[H5[this.id]]; } /** * Get a text or display version of this style. */ text() { return $0[U5[this.id]]; } /** * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle) */ isTight() { return this.size >= 2; } } var Tu = 0, xl = 1, ra = 2, Tr = 3, Xa = 4, k0 = 5, sa = 6, Vt = 7, $0 = [new Xr(Tu, 0, !1), new Xr(xl, 0, !0), new Xr(ra, 1, !1), new Xr(Tr, 1, !0), new Xr(Xa, 2, !1), new Xr(k0, 2, !0), new Xr(sa, 3, !1), new Xr(Vt, 3, !0)], R5 = [Xa, k0, Xa, k0, sa, Vt, sa, Vt], O5 = [k0, k0, k0, k0, Vt, Vt, Vt, Vt], q5 = [ra, Tr, Xa, k0, sa, Vt, sa, Vt], P5 = [Tr, Tr, k0, k0, Vt, Vt, Vt, Vt], H5 = [xl, xl, Tr, Tr, k0, k0, Vt, Vt], U5 = [Tu, xl, ra, Tr, ra, Tr, ra, Tr], ae = { DISPLAY: $0[Tu], TEXT: $0[ra], SCRIPT: $0[Xa], SCRIPTSCRIPT: $0[sa] }, Xo = [{ // Latin characters beyond the Latin-1 characters we have metrics for. // Needed for Czech, Hungarian and Turkish text, for example. name: "latin", blocks: [ [256, 591], // Latin Extended-A and Latin Extended-B [768, 879] // Combining Diacritical marks ] }, { // The Cyrillic script used by Russian and related languages. // A Cyrillic subset used to be supported as explicitly defined // symbols in symbols.js name: "cyrillic", blocks: [[1024, 1279]] }, { // Armenian name: "armenian", blocks: [[1328, 1423]] }, { // The Brahmic scripts of South and Southeast Asia // Devanagari (0900–097F) // Bengali (0980–09FF) // Gurmukhi (0A00–0A7F) // Gujarati (0A80–0AFF) // Oriya (0B00–0B7F) // Tamil (0B80–0BFF) // Telugu (0C00–0C7F) // Kannada (0C80–0CFF) // Malayalam (0D00–0D7F) // Sinhala (0D80–0DFF) // Thai (0E00–0E7F) // Lao (0E80–0EFF) // Tibetan (0F00–0FFF) // Myanmar (1000–109F) name: "brahmic", blocks: [[2304, 4255]] }, { name: "georgian", blocks: [[4256, 4351]] }, { // Chinese and Japanese. // The "k" in cjk is for Korean, but we've separated Korean out name: "cjk", blocks: [ [12288, 12543], // CJK symbols and punctuation, Hiragana, Katakana [19968, 40879], // CJK ideograms [65280, 65376] // Fullwidth punctuation // TODO: add halfwidth Katakana and Romanji glyphs ] }, { // Korean name: "hangul", blocks: [[44032, 55215]] }]; function V5(n) { for (var e = 0; e < Xo.length; e++) for (var t = Xo[e], r = 0; r < t.blocks.length; r++) { var a = t.blocks[r]; if (n >= a[0] && n <= a[1]) return t.name; } return null; } var _l = []; Xo.forEach((n) => n.blocks.forEach((e) => _l.push(...e))); function Sd(n) { for (var e = 0; e < _l.length; e += 2) if (n >= _l[e] && n <= _l[e + 1]) return !0; return !1; } var Vn = 80, G5 = function(e, t) { return "M95," + (622 + e + t) + ` c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 c69,-144,104.5,-217.7,106.5,-221 l` + e / 2.075 + " -" + e + ` c5.3,-9.3,12,-14,20,-14 H400000v` + (40 + e) + `H845.2724 s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M` + (834 + e) + " " + t + "h400000v" + (40 + e) + "h-400000z"; }, j5 = function(e, t) { return "M263," + (601 + e + t) + `c0.7,0,18,39.7,52,119 c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 c340,-704.7,510.7,-1060.3,512,-1067 l` + e / 2.084 + " -" + e + ` c4.7,-7.3,11,-11,19,-11 H40000v` + (40 + e) + `H1012.3 s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z M` + (1001 + e) + " " + t + "h400000v" + (40 + e) + "h-400000z"; }, W5 = function(e, t) { return "M983 " + (10 + e + t) + ` l` + e / 3.13 + " -" + e + ` c4,-6.7,10,-10,18,-10 H400000v` + (40 + e) + ` H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 c53.7,-170.3,84.5,-266.8,92.5,-289.5z M` + (1001 + e) + " " + t + "h400000v" + (40 + e) + "h-400000z"; }, X5 = function(e, t) { return "M424," + (2398 + e + t) + ` c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 l` + e / 4.223 + " -" + e + `c4,-6.7,10,-10,18,-10 H400000 v` + (40 + e) + `H1014.6 s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 c-2,6,-10,9,-24,9 c-8,0,-12,-0.7,-12,-2z M` + (1001 + e) + " " + t + ` h400000v` + (40 + e) + "h-400000z"; }, Y5 = function(e, t) { return "M473," + (2713 + e + t) + ` c339.3,-1799.3,509.3,-2700,510,-2702 l` + e / 5.298 + " -" + e + ` c3.3,-7.3,9.3,-11,18,-11 H400000v` + (40 + e) + `H1017.7 s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, 606zM` + (1001 + e) + " " + t + "h400000v" + (40 + e) + "H1017.7z"; }, Z5 = function(e) { var t = e / 2; return "M400000 " + e + " H0 L" + t + " 0 l65 45 L145 " + (e - 80) + " H400000z"; }, K5 = function(e, t, r) { var a = r - 54 - t - e; return "M702 " + (e + t) + "H400000" + (40 + e) + ` H742v` + a + `l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 219 661 l218 661zM702 ` + t + "H400000v" + (40 + e) + "H742z"; }, J5 = function(e, t, r) { t = 1e3 * t; var a = ""; switch (e) { case "sqrtMain": a = G5(t, Vn); break; case "sqrtSize1": a = j5(t, Vn); break; case "sqrtSize2": a = W5(t, Vn); break; case "sqrtSize3": a = X5(t, Vn); break; case "sqrtSize4": a = Y5(t, Vn); break; case "sqrtTall": a = K5(t, Vn, r); } return a; }, Q5 = function(e, t) { switch (e) { case "⎜": return "M291 0 H417 V" + t + " H291z M291 0 H417 V" + t + " H291z"; case "∣": return "M145 0 H188 V" + t + " H145z M145 0 H188 V" + t + " H145z"; case "∥": return "M145 0 H188 V" + t + " H145z M145 0 H188 V" + t + " H145z" + ("M367 0 H410 V" + t + " H367z M367 0 H410 V" + t + " H367z"); case "⎟": return "M457 0 H583 V" + t + " H457z M457 0 H583 V" + t + " H457z"; case "⎢": return "M319 0 H403 V" + t + " H319z M319 0 H403 V" + t + " H319z"; case "⎥": return "M263 0 H347 V" + t + " H263z M263 0 H347 V" + t + " H263z"; case "⎪": return "M384 0 H504 V" + t + " H384z M384 0 H504 V" + t + " H384z"; case "⏐": return "M312 0 H355 V" + t + " H312z M312 0 H355 V" + t + " H312z"; case "‖": return "M257 0 H300 V" + t + " H257z M257 0 H300 V" + t + " H257z" + ("M478 0 H521 V" + t + " H478z M478 0 H521 V" + t + " H478z"); default: return ""; } }, X1 = { // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main doubleleftarrow: `M262 157 l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 -86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 -2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z m8 0v40h399730v-40zm0 194v40h399730v-40z`, // doublerightarrow is from glyph U+21D2 in font KaTeX Main doublerightarrow: `M399738 392l -10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 -33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 -17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 -13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 -107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`, // leftarrow is from glyph U+2190 in font KaTeX Main leftarrow: `M400000 241H110l3-3c68.7-52.7 113.7-120 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 -5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 l-3-3h399890zM100 241v40h399900v-40z`, // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular leftbrace: `M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 -45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 5-6 9-10 13-.7 1-7.3 1-20 1H6z`, leftbraceunder: `M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 -331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`, // overgroup is from the MnSymbol package (public domain) leftgroup: `M400000 80 H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 435 0h399565z`, leftgroupunder: `M400000 262 H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 435 219h399565z`, // Harpoons are from glyph U+21BD in font KaTeX Main leftharpoon: `M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 -3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 -18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 -196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`, leftharpoonplus: `M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 -4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 -10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z m0 0v40h400000v-40z`, leftharpoondown: `M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 -152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`, leftharpoondownplus: `M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 -2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`, // hook is from glyph U+21A9 in font KaTeX Main lefthook: `M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 -83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 -68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 71.5 23h399859zM103 281v-40h399897v40z`, leftlinesegment: `M40 281 V428 H0 V94 H40 V241 H400000 v40z M40 281 V428 H0 V94 H40 V241 H400000 v40z`, leftmapsto: `M40 281 V448H0V74H40V241H400000v40z M40 281 V448H0V74H40V241H400000v40z`, // tofrom is from glyph U+21C4 in font KaTeX AMS Regular leftToFrom: `M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 -.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`, longequal: `M0 50 h400000 v40H0z m0 194h40000v40H0z M0 50 h400000 v40H0z m0 194h40000v40H0z`, midbrace: `M200428 334 c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 -53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`, midbraceunder: `M199572 214 c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 -5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`, oiintSize1: `M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 -320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`, oiintSize2: `M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 -451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 c0 110 84 276 504 276s502.4-166 502.4-276z`, oiiintSize1: `M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 -480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`, oiiintSize2: `M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 -707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`, rightarrow: `M0 241v40h399891c-47.3 35.3-84 78-110 128 -16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 -40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 -12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 151.7 139 205zm0 0v40h399900v-40z`, rightbrace: `M400000 542l -6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`, rightbraceunder: `M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 -174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`, rightgroup: `M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 3-1 3-3v-38c-76-158-257-219-435-219H0z`, rightgroupunder: `M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`, rightharpoon: `M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 -3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 -10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5zm0 0v40h399900v-40z`, rightharpoonplus: `M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 -18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`, rightharpoondown: `M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 -7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 -27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`, rightharpoondownplus: `M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 -64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z m0-194v40h400000v-40zm0 0v40h400000v-40z`, righthook: `M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 -13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`, rightlinesegment: `M399960 241 V94 h40 V428 h-40 V281 H0 v-40z M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`, rightToFrom: `M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 -52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 -167z M100 147v40h399900v-40zM0 341v40h399900v-40z`, // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular twoheadleftarrow: `M0 167c68 40 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 -70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 -40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 -37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`, twoheadrightarrow: `M400000 167 c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 -19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`, // tilde1 is a modified version of a glyph from the MnSymbol package tilde1: `M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 -2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 -68.267.847-113-73.952-191-73.952z`, // ditto tilde2, tilde3, & tilde4 tilde2: `M344 55.266c-142 0-300.638 81.316-311.5 86.418 -8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 181.476 676 181.476c-149 0-189-126.21-332-126.21z`, tilde3: `M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 -11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 -338 0-409-156.573-744-156.573z`, tilde4: `M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 -11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 -175.236-744-175.236z`, // vec is from glyph U+20D7 in font KaTeX Main vec: `M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 -1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 -7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 c-16-25.333-24-45-24-59z`, // widehat1 is a modified version of a glyph from the MnSymbol package widehat1: `M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`, // ditto widehat2, widehat3, & widehat4 widehat2: `M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 -11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`, widehat3: `M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 -11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`, widehat4: `M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 -11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`, // widecheck paths are all inverted versions of widehat widecheck1: `M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, -5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`, widecheck2: `M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, -11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`, widecheck3: `M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, -11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`, widecheck4: `M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, -11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`, // The next ten paths support reaction arrows from the mhchem package. // Arrows for \ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX // baraboveleftarrow is mostly from glyph U+2190 in font KaTeX Main baraboveleftarrow: `M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`, // rightarrowabovebar is mostly from glyph U+2192, KaTeX Main rightarrowabovebar: `M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 -27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 -84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 -119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 -12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`, // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end. // Ref from mhchem.sty: \rlap{\raisebox{-.22ex}{$\kern0.5em baraboveshortleftharpoon: `M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`, rightharpoonaboveshortbar: `M0,241 l0,40c399126,0,399993,0,399993,0 c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, -231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`, shortbaraboveleftharpoon: `M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, 1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, -152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`, shortrightharpoonabovebar: `M53,241l0,40c398570,0,399437,0,399437,0 c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, -231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z` }, $5 = function(e, t) { switch (e) { case "lbrack": return "M403 1759 V84 H666 V0 H319 V1759 v" + t + ` v1759 h347 v-84 H403z M403 1759 V0 H319 V1759 v` + t + " v1759 h84z"; case "rbrack": return "M347 1759 V0 H0 V84 H263 V1759 v" + t + ` v1759 H0 v84 H347z M347 1759 V0 H263 V1759 v` + t + " v1759 h84z"; case "vert": return "M145 15 v585 v" + t + ` v585 c2.667,10,9.667,15,21,15 c10,0,16.667,-5,20,-15 v-585 v` + -t + ` v-585 c-2.667,-10,-9.667,-15,-21,-15 c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` + t + " v585 h43z"; case "doublevert": return "M145 15 v585 v" + t + ` v585 c2.667,10,9.667,15,21,15 c10,0,16.667,-5,20,-15 v-585 v` + -t + ` v-585 c-2.667,-10,-9.667,-15,-21,-15 c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` + t + ` v585 h43z M367 15 v585 v` + t + ` v585 c2.667,10,9.667,15,21,15 c10,0,16.667,-5,20,-15 v-585 v` + -t + ` v-585 c-2.667,-10,-9.667,-15,-21,-15 c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v` + t + " v585 h43z"; case "lfloor": return "M319 602 V0 H403 V602 v" + t + ` v1715 h263 v84 H319z MM319 602 V0 H403 V602 v` + t + " v1715 H319z"; case "rfloor": return "M319 602 V0 H403 V602 v" + t + ` v1799 H0 v-84 H319z MM319 602 V0 H403 V602 v` + t + " v1715 H319z"; case "lceil": return "M403 1759 V84 H666 V0 H319 V1759 v" + t + ` v602 h84z M403 1759 V0 H319 V1759 v` + t + " v602 h84z"; case "rceil": return "M347 1759 V0 H0 V84 H263 V1759 v" + t + ` v602 h84z M347 1759 V0 h-84 V1759 v` + t + " v602 h84z"; case "lparen": return `M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, -36,557 l0,` + (t + 84) + `c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, 949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, -544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 l0,-` + (t + 92) + `c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, -210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`; case "rparen": return `M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, 63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,` + (t + 9) + ` c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 l0,-` + (t + 144) + `c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, -470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`; default: throw new Error("Unknown stretchy delimiter."); } }; class ti { // HtmlDomNode // Never used; needed for satisfying interface. constructor(e) { this.children = void 0, this.classes = void 0, this.height = void 0, this.depth = void 0, this.maxFontSize = void 0, this.style = void 0, this.children = e, this.classes = [], this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = {}; } hasClass(e) { return re.contains(this.classes, e); } /** Convert the fragment into a node. */ toNode() { for (var e = document.createDocumentFragment(), t = 0; t < this.children.length; t++) e.appendChild(this.children[t].toNode()); return e; } /** Convert the fragment into HTML markup. */ toMarkup() { for (var e = "", t = 0; t < this.children.length; t++) e += this.children[t].toMarkup(); return e; } /** * Converts the math node into a string, similar to innerText. Applies to * MathDomNode's only. */ toText() { var e = (t) => t.toText(); return this.children.map(e).join(""); } } var rr = { "AMS-Regular": { 32: [0, 0, 0, 0, 0.25], 65: [0, 0.68889, 0, 0, 0.72222], 66: [0, 0.68889, 0, 0, 0.66667], 67: [0, 0.68889, 0, 0, 0.72222], 68: [0, 0.68889, 0, 0, 0.72222], 69: [0, 0.68889, 0, 0, 0.66667], 70: [0, 0.68889, 0, 0, 0.61111], 71: [0, 0.68889, 0, 0, 0.77778], 72: [0, 0.68889, 0, 0, 0.77778], 73: [0, 0.68889, 0, 0, 0.38889], 74: [0.16667, 0.68889, 0, 0, 0.5], 75: [0, 0.68889, 0, 0, 0.77778], 76: [0, 0.68889, 0, 0, 0.66667], 77: [0, 0.68889, 0, 0, 0.94445], 78: [0, 0.68889, 0, 0, 0.72222], 79: [0.16667, 0.68889, 0, 0, 0.77778], 80: [0, 0.68889, 0, 0, 0.61111], 81: [0.16667, 0.68889, 0, 0, 0.77778], 82: [0, 0.68889, 0, 0, 0.72222], 83: [0, 0.68889, 0, 0, 0.55556], 84: [0, 0.68889, 0, 0, 0.66667], 85: [0, 0.68889, 0, 0, 0.72222], 86: [0, 0.68889, 0, 0, 0.72222], 87: [0, 0.68889, 0, 0, 1], 88: [0, 0.68889, 0, 0, 0.72222], 89: [0, 0.68889, 0, 0, 0.72222], 90: [0, 0.68889, 0, 0, 0.66667], 107: [0, 0.68889, 0, 0, 0.55556], 160: [0, 0, 0, 0, 0.25], 165: [0, 0.675, 0.025, 0, 0.75], 174: [0.15559, 0.69224, 0, 0, 0.94666], 240: [0, 0.68889, 0, 0, 0.55556], 295: [0, 0.68889, 0, 0, 0.54028], 710: [0, 0.825, 0, 0, 2.33334], 732: [0, 0.9, 0, 0, 2.33334], 770: [0, 0.825, 0, 0, 2.33334], 771: [0, 0.9, 0, 0, 2.33334], 989: [0.08167, 0.58167, 0, 0, 0.77778], 1008: [0, 0.43056, 0.04028, 0, 0.66667], 8245: [0, 0.54986, 0, 0, 0.275], 8463: [0, 0.68889, 0, 0, 0.54028], 8487: [0, 0.68889, 0, 0, 0.72222], 8498: [0, 0.68889, 0, 0, 0.55556], 8502: [0, 0.68889, 0, 0, 0.66667], 8503: [0, 0.68889, 0, 0, 0.44445], 8504: [0, 0.68889, 0, 0, 0.66667], 8513: [0, 0.68889, 0, 0, 0.63889], 8592: [-0.03598, 0.46402, 0, 0, 0.5], 8594: [-0.03598, 0.46402, 0, 0, 0.5], 8602: [-0.13313, 0.36687, 0, 0, 1], 8603: [-0.13313, 0.36687, 0, 0, 1], 8606: [0.01354, 0.52239, 0, 0, 1], 8608: [0.01354, 0.52239, 0, 0, 1], 8610: [0.01354, 0.52239, 0, 0, 1.11111], 8611: [0.01354, 0.52239, 0, 0, 1.11111], 8619: [0, 0.54986, 0, 0, 1], 8620: [0, 0.54986, 0, 0, 1], 8621: [-0.13313, 0.37788, 0, 0, 1.38889], 8622: [-0.13313, 0.36687, 0, 0, 1], 8624: [0, 0.69224, 0, 0, 0.5], 8625: [0, 0.69224, 0, 0, 0.5], 8630: [0, 0.43056, 0, 0, 1], 8631: [0, 0.43056, 0, 0, 1], 8634: [0.08198, 0.58198, 0, 0, 0.77778], 8635: [0.08198, 0.58198, 0, 0, 0.77778], 8638: [0.19444, 0.69224, 0, 0, 0.41667], 8639: [0.19444, 0.69224, 0, 0, 0.41667], 8642: [0.19444, 0.69224, 0, 0, 0.41667], 8643: [0.19444, 0.69224, 0, 0, 0.41667], 8644: [0.1808, 0.675, 0, 0, 1], 8646: [0.1808, 0.675, 0, 0, 1], 8647: [0.1808, 0.675, 0, 0, 1], 8648: [0.19444, 0.69224, 0, 0, 0.83334], 8649: [0.1808, 0.675, 0, 0, 1], 8650: [0.19444, 0.69224, 0, 0, 0.83334], 8651: [0.01354, 0.52239, 0, 0, 1], 8652: [0.01354, 0.52239, 0, 0, 1], 8653: [-0.13313, 0.36687, 0, 0, 1], 8654: [-0.13313, 0.36687, 0, 0, 1], 8655: [-0.13313, 0.36687, 0, 0, 1], 8666: [0.13667, 0.63667, 0, 0, 1], 8667: [0.13667, 0.63667, 0, 0, 1], 8669: [-0.13313, 0.37788, 0, 0, 1], 8672: [-0.064, 0.437, 0, 0, 1.334], 8674: [-0.064, 0.437, 0, 0, 1.334], 8705: [0, 0.825, 0, 0, 0.5], 8708: [0, 0.68889, 0, 0, 0.55556], 8709: [0.08167, 0.58167, 0, 0, 0.77778], 8717: [0, 0.43056, 0, 0, 0.42917], 8722: [-0.03598, 0.46402, 0, 0, 0.5], 8724: [0.08198, 0.69224, 0, 0, 0.77778], 8726: [0.08167, 0.58167, 0, 0, 0.77778], 8733: [0, 0.69224, 0, 0, 0.77778], 8736: [0, 0.69224, 0, 0, 0.72222], 8737: [0, 0.69224, 0, 0, 0.72222], 8738: [0.03517, 0.52239, 0, 0, 0.72222], 8739: [0.08167, 0.58167, 0, 0, 0.22222], 8740: [0.25142, 0.74111, 0, 0, 0.27778], 8741: [0.08167, 0.58167, 0, 0, 0.38889], 8742: [0.25142, 0.74111, 0, 0, 0.5], 8756: [0, 0.69224, 0, 0, 0.66667], 8757: [0, 0.69224, 0, 0, 0.66667], 8764: [-0.13313, 0.36687, 0, 0, 0.77778], 8765: [-0.13313, 0.37788, 0, 0, 0.77778], 8769: [-0.13313, 0.36687, 0, 0, 0.77778], 8770: [-0.03625, 0.46375, 0, 0, 0.77778], 8774: [0.30274, 0.79383, 0, 0, 0.77778], 8776: [-0.01688, 0.48312, 0, 0, 0.77778], 8778: [0.08167, 0.58167, 0, 0, 0.77778], 8782: [0.06062, 0.54986, 0, 0, 0.77778], 8783: [0.06062, 0.54986, 0, 0, 0.77778], 8785: [0.08198, 0.58198, 0, 0, 0.77778], 8786: [0.08198, 0.58198, 0, 0, 0.77778], 8787: [0.08198, 0.58198, 0, 0, 0.77778], 8790: [0, 0.69224, 0, 0, 0.77778], 8791: [0.22958, 0.72958, 0, 0, 0.77778], 8796: [0.08198, 0.91667, 0, 0, 0.77778], 8806: [0.25583, 0.75583, 0, 0, 0.77778], 8807: [0.25583, 0.75583, 0, 0, 0.77778], 8808: [0.25142, 0.75726, 0, 0, 0.77778], 8809: [0.25142, 0.75726, 0, 0, 0.77778], 8812: [0.25583, 0.75583, 0, 0, 0.5], 8814: [0.20576, 0.70576, 0, 0, 0.77778], 8815: [0.20576, 0.70576, 0, 0, 0.77778], 8816: [0.30274, 0.79383, 0, 0, 0.77778], 8817: [0.30274, 0.79383, 0, 0, 0.77778], 8818: [0.22958, 0.72958, 0, 0, 0.77778], 8819: [0.22958, 0.72958, 0, 0, 0.77778], 8822: [0.1808, 0.675, 0, 0, 0.77778], 8823: [0.1808, 0.675, 0, 0, 0.77778], 8828: [0.13667, 0.63667, 0, 0, 0.77778], 8829: [0.13667, 0.63667, 0, 0, 0.77778], 8830: [0.22958, 0.72958, 0, 0, 0.77778], 8831: [0.22958, 0.72958, 0, 0, 0.77778], 8832: [0.20576, 0.70576, 0, 0, 0.77778], 8833: [0.20576, 0.70576, 0, 0, 0.77778], 8840: [0.30274, 0.79383, 0, 0, 0.77778], 8841: [0.30274, 0.79383, 0, 0, 0.77778], 8842: [0.13597, 0.63597, 0, 0, 0.77778], 8843: [0.13597, 0.63597, 0, 0, 0.77778], 8847: [0.03517, 0.54986, 0, 0, 0.77778], 8848: [0.03517, 0.54986, 0, 0, 0.77778], 8858: [0.08198, 0.58198, 0, 0, 0.77778], 8859: [0.08198, 0.58198, 0, 0, 0.77778], 8861: [0.08198, 0.58198, 0, 0, 0.77778], 8862: [0, 0.675, 0, 0, 0.77778], 8863: [0, 0.675, 0, 0, 0.77778], 8864: [0, 0.675, 0, 0, 0.77778], 8865: [0, 0.675, 0, 0, 0.77778], 8872: [0, 0.69224, 0, 0, 0.61111], 8873: [0, 0.69224, 0, 0, 0.72222], 8874: [0, 0.69224, 0, 0, 0.88889], 8876: [0, 0.68889, 0, 0, 0.61111], 8877: [0, 0.68889, 0, 0, 0.61111], 8878: [0, 0.68889, 0, 0, 0.72222], 8879: [0, 0.68889, 0, 0, 0.72222], 8882: [0.03517, 0.54986, 0, 0, 0.77778], 8883: [0.03517, 0.54986, 0, 0, 0.77778], 8884: [0.13667, 0.63667, 0, 0, 0.77778], 8885: [0.13667, 0.63667, 0, 0, 0.77778], 8888: [0, 0.54986, 0, 0, 1.11111], 8890: [0.19444, 0.43056, 0, 0, 0.55556], 8891: [0.19444, 0.69224, 0, 0, 0.61111], 8892: [0.19444, 0.69224, 0, 0, 0.61111], 8901: [0, 0.54986, 0, 0, 0.27778], 8903: [0.08167, 0.58167, 0, 0, 0.77778], 8905: [0.08167, 0.58167, 0, 0, 0.77778], 8906: [0.08167, 0.58167, 0, 0, 0.77778], 8907: [0, 0.69224, 0, 0, 0.77778], 8908: [0, 0.69224, 0, 0, 0.77778], 8909: [-0.03598, 0.46402, 0, 0, 0.77778], 8910: [0, 0.54986, 0, 0, 0.76042], 8911: [0, 0.54986, 0, 0, 0.76042], 8912: [0.03517, 0.54986, 0, 0, 0.77778], 8913: [0.03517, 0.54986, 0, 0, 0.77778], 8914: [0, 0.54986, 0, 0, 0.66667], 8915: [0, 0.54986, 0, 0, 0.66667], 8916: [0, 0.69224, 0, 0, 0.66667], 8918: [0.0391, 0.5391, 0, 0, 0.77778], 8919: [0.0391, 0.5391, 0, 0, 0.77778], 8920: [0.03517, 0.54986, 0, 0, 1.33334], 8921: [0.03517, 0.54986, 0, 0, 1.33334], 8922: [0.38569, 0.88569, 0, 0, 0.77778], 8923: [0.38569, 0.88569, 0, 0, 0.77778], 8926: [0.13667, 0.63667, 0, 0, 0.77778], 8927: [0.13667, 0.63667, 0, 0, 0.77778], 8928: [0.30274, 0.79383, 0, 0, 0.77778], 8929: [0.30274, 0.79383, 0, 0, 0.77778], 8934: [0.23222, 0.74111, 0, 0, 0.77778], 8935: [0.23222, 0.74111, 0, 0, 0.77778], 8936: [0.23222, 0.74111, 0, 0, 0.77778], 8937: [0.23222, 0.74111, 0, 0, 0.77778], 8938: [0.20576, 0.70576, 0, 0, 0.77778], 8939: [0.20576, 0.70576, 0, 0, 0.77778], 8940: [0.30274, 0.79383, 0, 0, 0.77778], 8941: [0.30274, 0.79383, 0, 0, 0.77778], 8994: [0.19444, 0.69224, 0, 0, 0.77778], 8995: [0.19444, 0.69224, 0, 0, 0.77778], 9416: [0.15559, 0.69224, 0, 0, 0.90222], 9484: [0, 0.69224, 0, 0, 0.5], 9488: [0, 0.69224, 0, 0, 0.5], 9492: [0, 0.37788, 0, 0, 0.5], 9496: [0, 0.37788, 0, 0, 0.5], 9585: [0.19444, 0.68889, 0, 0, 0.88889], 9586: [0.19444, 0.74111, 0, 0, 0.88889], 9632: [0, 0.675, 0, 0, 0.77778], 9633: [0, 0.675, 0, 0, 0.77778], 9650: [0, 0.54986, 0, 0, 0.72222], 9651: [0, 0.54986, 0, 0, 0.72222], 9654: [0.03517, 0.54986, 0, 0, 0.77778], 9660: [0, 0.54986, 0, 0, 0.72222], 9661: [0, 0.54986, 0, 0, 0.72222], 9664: [0.03517, 0.54986, 0, 0, 0.77778], 9674: [0.11111, 0.69224, 0, 0, 0.66667], 9733: [0.19444, 0.69224, 0, 0, 0.94445], 10003: [0, 0.69224, 0, 0, 0.83334], 10016: [0, 0.69224, 0, 0, 0.83334], 10731: [0.11111, 0.69224, 0, 0, 0.66667], 10846: [0.19444, 0.75583, 0, 0, 0.61111], 10877: [0.13667, 0.63667, 0, 0, 0.77778], 10878: [0.13667, 0.63667, 0, 0, 0.77778], 10885: [0.25583, 0.75583, 0, 0, 0.77778], 10886: [0.25583, 0.75583, 0, 0, 0.77778], 10887: [0.13597, 0.63597, 0, 0, 0.77778], 10888: [0.13597, 0.63597, 0, 0, 0.77778], 10889: [0.26167, 0.75726, 0, 0, 0.77778], 10890: [0.26167, 0.75726, 0, 0, 0.77778], 10891: [0.48256, 0.98256, 0, 0, 0.77778], 10892: [0.48256, 0.98256, 0, 0, 0.77778], 10901: [0.13667, 0.63667, 0, 0, 0.77778], 10902: [0.13667, 0.63667, 0, 0, 0.77778], 10933: [0.25142, 0.75726, 0, 0, 0.77778], 10934: [0.25142, 0.75726, 0, 0, 0.77778], 10935: [0.26167, 0.75726, 0, 0, 0.77778], 10936: [0.26167, 0.75726, 0, 0, 0.77778], 10937: [0.26167, 0.75726, 0, 0, 0.77778], 10938: [0.26167, 0.75726, 0, 0, 0.77778], 10949: [0.25583, 0.75583, 0, 0, 0.77778], 10950: [0.25583, 0.75583, 0, 0, 0.77778], 10955: [0.28481, 0.79383, 0, 0, 0.77778], 10956: [0.28481, 0.79383, 0, 0, 0.77778], 57350: [0.08167, 0.58167, 0, 0, 0.22222], 57351: [0.08167, 0.58167, 0, 0, 0.38889], 57352: [0.08167, 0.58167, 0, 0, 0.77778], 57353: [0, 0.43056, 0.04028, 0, 0.66667], 57356: [0.25142, 0.75726, 0, 0, 0.77778], 57357: [0.25142, 0.75726, 0, 0, 0.77778], 57358: [0.41951, 0.91951, 0, 0, 0.77778], 57359: [0.30274, 0.79383, 0, 0, 0.77778], 57360: [0.30274, 0.79383, 0, 0, 0.77778], 57361: [0.41951, 0.91951, 0, 0, 0.77778], 57366: [0.25142, 0.75726, 0, 0, 0.77778], 57367: [0.25142, 0.75726, 0, 0, 0.77778], 57368: [0.25142, 0.75726, 0, 0, 0.77778], 57369: [0.25142, 0.75726, 0, 0, 0.77778], 57370: [0.13597, 0.63597, 0, 0, 0.77778], 57371: [0.13597, 0.63597, 0, 0, 0.77778] }, "Caligraphic-Regular": { 32: [0, 0, 0, 0, 0.25], 65: [0, 0.68333, 0, 0.19445, 0.79847], 66: [0, 0.68333, 0.03041, 0.13889, 0.65681], 67: [0, 0.68333, 0.05834, 0.13889, 0.52653], 68: [0, 0.68333, 0.02778, 0.08334, 0.77139], 69: [0, 0.68333, 0.08944, 0.11111, 0.52778], 70: [0, 0.68333, 0.09931, 0.11111, 0.71875], 71: [0.09722, 0.68333, 0.0593, 0.11111, 0.59487], 72: [0, 0.68333, 965e-5, 0.11111, 0.84452], 73: [0, 0.68333, 0.07382, 0, 0.54452], 74: [0.09722, 0.68333, 0.18472, 0.16667, 0.67778], 75: [0, 0.68333, 0.01445, 0.05556, 0.76195], 76: [0, 0.68333, 0, 0.13889, 0.68972], 77: [0, 0.68333, 0, 0.13889, 1.2009], 78: [0, 0.68333, 0.14736, 0.08334, 0.82049], 79: [0, 0.68333, 0.02778, 0.11111, 0.79611], 80: [0, 0.68333, 0.08222, 0.08334, 0.69556], 81: [0.09722, 0.68333, 0, 0.11111, 0.81667], 82: [0, 0.68333, 0, 0.08334, 0.8475], 83: [0, 0.68333, 0.075, 0.13889, 0.60556], 84: [0, 0.68333, 0.25417, 0, 0.54464], 85: [0, 0.68333, 0.09931, 0.08334, 0.62583], 86: [0, 0.68333, 0.08222, 0, 0.61278], 87: [0, 0.68333, 0.08222, 0.08334, 0.98778], 88: [0, 0.68333, 0.14643, 0.13889, 0.7133], 89: [0.09722, 0.68333, 0.08222, 0.08334, 0.66834], 90: [0, 0.68333, 0.07944, 0.13889, 0.72473], 160: [0, 0, 0, 0, 0.25] }, "Fraktur-Regular": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69141, 0, 0, 0.29574], 34: [0, 0.69141, 0, 0, 0.21471], 38: [0, 0.69141, 0, 0, 0.73786], 39: [0, 0.69141, 0, 0, 0.21201], 40: [0.24982, 0.74947, 0, 0, 0.38865], 41: [0.24982, 0.74947, 0, 0, 0.38865], 42: [0, 0.62119, 0, 0, 0.27764], 43: [0.08319, 0.58283, 0, 0, 0.75623], 44: [0, 0.10803, 0, 0, 0.27764], 45: [0.08319, 0.58283, 0, 0, 0.75623], 46: [0, 0.10803, 0, 0, 0.27764], 47: [0.24982, 0.74947, 0, 0, 0.50181], 48: [0, 0.47534, 0, 0, 0.50181], 49: [0, 0.47534, 0, 0, 0.50181], 50: [0, 0.47534, 0, 0, 0.50181], 51: [0.18906, 0.47534, 0, 0, 0.50181], 52: [0.18906, 0.47534, 0, 0, 0.50181], 53: [0.18906, 0.47534, 0, 0, 0.50181], 54: [0, 0.69141, 0, 0, 0.50181], 55: [0.18906, 0.47534, 0, 0, 0.50181], 56: [0, 0.69141, 0, 0, 0.50181], 57: [0.18906, 0.47534, 0, 0, 0.50181], 58: [0, 0.47534, 0, 0, 0.21606], 59: [0.12604, 0.47534, 0, 0, 0.21606], 61: [-0.13099, 0.36866, 0, 0, 0.75623], 63: [0, 0.69141, 0, 0, 0.36245], 65: [0, 0.69141, 0, 0, 0.7176], 66: [0, 0.69141, 0, 0, 0.88397], 67: [0, 0.69141, 0, 0, 0.61254], 68: [0, 0.69141, 0, 0, 0.83158], 69: [0, 0.69141, 0, 0, 0.66278], 70: [0.12604, 0.69141, 0, 0, 0.61119], 71: [0, 0.69141, 0, 0, 0.78539], 72: [0.06302, 0.69141, 0, 0, 0.7203], 73: [0, 0.69141, 0, 0, 0.55448], 74: [0.12604, 0.69141, 0, 0, 0.55231], 75: [0, 0.69141, 0, 0, 0.66845], 76: [0, 0.69141, 0, 0, 0.66602], 77: [0, 0.69141, 0, 0, 1.04953], 78: [0, 0.69141, 0, 0, 0.83212], 79: [0, 0.69141, 0, 0, 0.82699], 80: [0.18906, 0.69141, 0, 0, 0.82753], 81: [0.03781, 0.69141, 0, 0, 0.82699], 82: [0, 0.69141, 0, 0, 0.82807], 83: [0, 0.69141, 0, 0, 0.82861], 84: [0, 0.69141, 0, 0, 0.66899], 85: [0, 0.69141, 0, 0, 0.64576], 86: [0, 0.69141, 0, 0, 0.83131], 87: [0, 0.69141, 0, 0, 1.04602], 88: [0, 0.69141, 0, 0, 0.71922], 89: [0.18906, 0.69141, 0, 0, 0.83293], 90: [0.12604, 0.69141, 0, 0, 0.60201], 91: [0.24982, 0.74947, 0, 0, 0.27764], 93: [0.24982, 0.74947, 0, 0, 0.27764], 94: [0, 0.69141, 0, 0, 0.49965], 97: [0, 0.47534, 0, 0, 0.50046], 98: [0, 0.69141, 0, 0, 0.51315], 99: [0, 0.47534, 0, 0, 0.38946], 100: [0, 0.62119, 0, 0, 0.49857], 101: [0, 0.47534, 0, 0, 0.40053], 102: [0.18906, 0.69141, 0, 0, 0.32626], 103: [0.18906, 0.47534, 0, 0, 0.5037], 104: [0.18906, 0.69141, 0, 0, 0.52126], 105: [0, 0.69141, 0, 0, 0.27899], 106: [0, 0.69141, 0, 0, 0.28088], 107: [0, 0.69141, 0, 0, 0.38946], 108: [0, 0.69141, 0, 0, 0.27953], 109: [0, 0.47534, 0, 0, 0.76676], 110: [0, 0.47534, 0, 0, 0.52666], 111: [0, 0.47534, 0, 0, 0.48885], 112: [0.18906, 0.52396, 0, 0, 0.50046], 113: [0.18906, 0.47534, 0, 0, 0.48912], 114: [0, 0.47534, 0, 0, 0.38919], 115: [0, 0.47534, 0, 0, 0.44266], 116: [0, 0.62119, 0, 0, 0.33301], 117: [0, 0.47534, 0, 0, 0.5172], 118: [0, 0.52396, 0, 0, 0.5118], 119: [0, 0.52396, 0, 0, 0.77351], 120: [0.18906, 0.47534, 0, 0, 0.38865], 121: [0.18906, 0.47534, 0, 0, 0.49884], 122: [0.18906, 0.47534, 0, 0, 0.39054], 160: [0, 0, 0, 0, 0.25], 8216: [0, 0.69141, 0, 0, 0.21471], 8217: [0, 0.69141, 0, 0, 0.21471], 58112: [0, 0.62119, 0, 0, 0.49749], 58113: [0, 0.62119, 0, 0, 0.4983], 58114: [0.18906, 0.69141, 0, 0, 0.33328], 58115: [0.18906, 0.69141, 0, 0, 0.32923], 58116: [0.18906, 0.47534, 0, 0, 0.50343], 58117: [0, 0.69141, 0, 0, 0.33301], 58118: [0, 0.62119, 0, 0, 0.33409], 58119: [0, 0.47534, 0, 0, 0.50073] }, "Main-Bold": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69444, 0, 0, 0.35], 34: [0, 0.69444, 0, 0, 0.60278], 35: [0.19444, 0.69444, 0, 0, 0.95833], 36: [0.05556, 0.75, 0, 0, 0.575], 37: [0.05556, 0.75, 0, 0, 0.95833], 38: [0, 0.69444, 0, 0, 0.89444], 39: [0, 0.69444, 0, 0, 0.31944], 40: [0.25, 0.75, 0, 0, 0.44722], 41: [0.25, 0.75, 0, 0, 0.44722], 42: [0, 0.75, 0, 0, 0.575], 43: [0.13333, 0.63333, 0, 0, 0.89444], 44: [0.19444, 0.15556, 0, 0, 0.31944], 45: [0, 0.44444, 0, 0, 0.38333], 46: [0, 0.15556, 0, 0, 0.31944], 47: [0.25, 0.75, 0, 0, 0.575], 48: [0, 0.64444, 0, 0, 0.575], 49: [0, 0.64444, 0, 0, 0.575], 50: [0, 0.64444, 0, 0, 0.575], 51: [0, 0.64444, 0, 0, 0.575], 52: [0, 0.64444, 0, 0, 0.575], 53: [0, 0.64444, 0, 0, 0.575], 54: [0, 0.64444, 0, 0, 0.575], 55: [0, 0.64444, 0, 0, 0.575], 56: [0, 0.64444, 0, 0, 0.575], 57: [0, 0.64444, 0, 0, 0.575], 58: [0, 0.44444, 0, 0, 0.31944], 59: [0.19444, 0.44444, 0, 0, 0.31944], 60: [0.08556, 0.58556, 0, 0, 0.89444], 61: [-0.10889, 0.39111, 0, 0, 0.89444], 62: [0.08556, 0.58556, 0, 0, 0.89444], 63: [0, 0.69444, 0, 0, 0.54305], 64: [0, 0.69444, 0, 0, 0.89444], 65: [0, 0.68611, 0, 0, 0.86944], 66: [0, 0.68611, 0, 0, 0.81805], 67: [0, 0.68611, 0, 0, 0.83055], 68: [0, 0.68611, 0, 0, 0.88194], 69: [0, 0.68611, 0, 0, 0.75555], 70: [0, 0.68611, 0, 0, 0.72361], 71: [0, 0.68611, 0, 0, 0.90416], 72: [0, 0.68611, 0, 0, 0.9], 73: [0, 0.68611, 0, 0, 0.43611], 74: [0, 0.68611, 0, 0, 0.59444], 75: [0, 0.68611, 0, 0, 0.90138], 76: [0, 0.68611, 0, 0, 0.69166], 77: [0, 0.68611, 0, 0, 1.09166], 78: [0, 0.68611, 0, 0, 0.9], 79: [0, 0.68611, 0, 0, 0.86388], 80: [0, 0.68611, 0, 0, 0.78611], 81: [0.19444, 0.68611, 0, 0, 0.86388], 82: [0, 0.68611, 0, 0, 0.8625], 83: [0, 0.68611, 0, 0, 0.63889], 84: [0, 0.68611, 0, 0, 0.8], 85: [0, 0.68611, 0, 0, 0.88472], 86: [0, 0.68611, 0.01597, 0, 0.86944], 87: [0, 0.68611, 0.01597, 0, 1.18888], 88: [0, 0.68611, 0, 0, 0.86944], 89: [0, 0.68611, 0.02875, 0, 0.86944], 90: [0, 0.68611, 0, 0, 0.70277], 91: [0.25, 0.75, 0, 0, 0.31944], 92: [0.25, 0.75, 0, 0, 0.575], 93: [0.25, 0.75, 0, 0, 0.31944], 94: [0, 0.69444, 0, 0, 0.575], 95: [0.31, 0.13444, 0.03194, 0, 0.575], 97: [0, 0.44444, 0, 0, 0.55902], 98: [0, 0.69444, 0, 0, 0.63889], 99: [0, 0.44444, 0, 0, 0.51111], 100: [0, 0.69444, 0, 0, 0.63889], 101: [0, 0.44444, 0, 0, 0.52708], 102: [0, 0.69444, 0.10903, 0, 0.35139], 103: [0.19444, 0.44444, 0.01597, 0, 0.575], 104: [0, 0.69444, 0, 0, 0.63889], 105: [0, 0.69444, 0, 0, 0.31944], 106: [0.19444, 0.69444, 0, 0, 0.35139], 107: [0, 0.69444, 0, 0, 0.60694], 108: [0, 0.69444, 0, 0, 0.31944], 109: [0, 0.44444, 0, 0, 0.95833], 110: [0, 0.44444, 0, 0, 0.63889], 111: [0, 0.44444, 0, 0, 0.575], 112: [0.19444, 0.44444, 0, 0, 0.63889], 113: [0.19444, 0.44444, 0, 0, 0.60694], 114: [0, 0.44444, 0, 0, 0.47361], 115: [0, 0.44444, 0, 0, 0.45361], 116: [0, 0.63492, 0, 0, 0.44722], 117: [0, 0.44444, 0, 0, 0.63889], 118: [0, 0.44444, 0.01597, 0, 0.60694], 119: [0, 0.44444, 0.01597, 0, 0.83055], 120: [0, 0.44444, 0, 0, 0.60694], 121: [0.19444, 0.44444, 0.01597, 0, 0.60694], 122: [0, 0.44444, 0, 0, 0.51111], 123: [0.25, 0.75, 0, 0, 0.575], 124: [0.25, 0.75, 0, 0, 0.31944], 125: [0.25, 0.75, 0, 0, 0.575], 126: [0.35, 0.34444, 0, 0, 0.575], 160: [0, 0, 0, 0, 0.25], 163: [0, 0.69444, 0, 0, 0.86853], 168: [0, 0.69444, 0, 0, 0.575], 172: [0, 0.44444, 0, 0, 0.76666], 176: [0, 0.69444, 0, 0, 0.86944], 177: [0.13333, 0.63333, 0, 0, 0.89444], 184: [0.17014, 0, 0, 0, 0.51111], 198: [0, 0.68611, 0, 0, 1.04166], 215: [0.13333, 0.63333, 0, 0, 0.89444], 216: [0.04861, 0.73472, 0, 0, 0.89444], 223: [0, 0.69444, 0, 0, 0.59722], 230: [0, 0.44444, 0, 0, 0.83055], 247: [0.13333, 0.63333, 0, 0, 0.89444], 248: [0.09722, 0.54167, 0, 0, 0.575], 305: [0, 0.44444, 0, 0, 0.31944], 338: [0, 0.68611, 0, 0, 1.16944], 339: [0, 0.44444, 0, 0, 0.89444], 567: [0.19444, 0.44444, 0, 0, 0.35139], 710: [0, 0.69444, 0, 0, 0.575], 711: [0, 0.63194, 0, 0, 0.575], 713: [0, 0.59611, 0, 0, 0.575], 714: [0, 0.69444, 0, 0, 0.575], 715: [0, 0.69444, 0, 0, 0.575], 728: [0, 0.69444, 0, 0, 0.575], 729: [0, 0.69444, 0, 0, 0.31944], 730: [0, 0.69444, 0, 0, 0.86944], 732: [0, 0.69444, 0, 0, 0.575], 733: [0, 0.69444, 0, 0, 0.575], 915: [0, 0.68611, 0, 0, 0.69166], 916: [0, 0.68611, 0, 0, 0.95833], 920: [0, 0.68611, 0, 0, 0.89444], 923: [0, 0.68611, 0, 0, 0.80555], 926: [0, 0.68611, 0, 0, 0.76666], 928: [0, 0.68611, 0, 0, 0.9], 931: [0, 0.68611, 0, 0, 0.83055], 933: [0, 0.68611, 0, 0, 0.89444], 934: [0, 0.68611, 0, 0, 0.83055], 936: [0, 0.68611, 0, 0, 0.89444], 937: [0, 0.68611, 0, 0, 0.83055], 8211: [0, 0.44444, 0.03194, 0, 0.575], 8212: [0, 0.44444, 0.03194, 0, 1.14999], 8216: [0, 0.69444, 0, 0, 0.31944], 8217: [0, 0.69444, 0, 0, 0.31944], 8220: [0, 0.69444, 0, 0, 0.60278], 8221: [0, 0.69444, 0, 0, 0.60278], 8224: [0.19444, 0.69444, 0, 0, 0.51111], 8225: [0.19444, 0.69444, 0, 0, 0.51111], 8242: [0, 0.55556, 0, 0, 0.34444], 8407: [0, 0.72444, 0.15486, 0, 0.575], 8463: [0, 0.69444, 0, 0, 0.66759], 8465: [0, 0.69444, 0, 0, 0.83055], 8467: [0, 0.69444, 0, 0, 0.47361], 8472: [0.19444, 0.44444, 0, 0, 0.74027], 8476: [0, 0.69444, 0, 0, 0.83055], 8501: [0, 0.69444, 0, 0, 0.70277], 8592: [-0.10889, 0.39111, 0, 0, 1.14999], 8593: [0.19444, 0.69444, 0, 0, 0.575], 8594: [-0.10889, 0.39111, 0, 0, 1.14999], 8595: [0.19444, 0.69444, 0, 0, 0.575], 8596: [-0.10889, 0.39111, 0, 0, 1.14999], 8597: [0.25, 0.75, 0, 0, 0.575], 8598: [0.19444, 0.69444, 0, 0, 1.14999], 8599: [0.19444, 0.69444, 0, 0, 1.14999], 8600: [0.19444, 0.69444, 0, 0, 1.14999], 8601: [0.19444, 0.69444, 0, 0, 1.14999], 8636: [-0.10889, 0.39111, 0, 0, 1.14999], 8637: [-0.10889, 0.39111, 0, 0, 1.14999], 8640: [-0.10889, 0.39111, 0, 0, 1.14999], 8641: [-0.10889, 0.39111, 0, 0, 1.14999], 8656: [-0.10889, 0.39111, 0, 0, 1.14999], 8657: [0.19444, 0.69444, 0, 0, 0.70277], 8658: [-0.10889, 0.39111, 0, 0, 1.14999], 8659: [0.19444, 0.69444, 0, 0, 0.70277], 8660: [-0.10889, 0.39111, 0, 0, 1.14999], 8661: [0.25, 0.75, 0, 0, 0.70277], 8704: [0, 0.69444, 0, 0, 0.63889], 8706: [0, 0.69444, 0.06389, 0, 0.62847], 8707: [0, 0.69444, 0, 0, 0.63889], 8709: [0.05556, 0.75, 0, 0, 0.575], 8711: [0, 0.68611, 0, 0, 0.95833], 8712: [0.08556, 0.58556, 0, 0, 0.76666], 8715: [0.08556, 0.58556, 0, 0, 0.76666], 8722: [0.13333, 0.63333, 0, 0, 0.89444], 8723: [0.13333, 0.63333, 0, 0, 0.89444], 8725: [0.25, 0.75, 0, 0, 0.575], 8726: [0.25, 0.75, 0, 0, 0.575], 8727: [-0.02778, 0.47222, 0, 0, 0.575], 8728: [-0.02639, 0.47361, 0, 0, 0.575], 8729: [-0.02639, 0.47361, 0, 0, 0.575], 8730: [0.18, 0.82, 0, 0, 0.95833], 8733: [0, 0.44444, 0, 0, 0.89444], 8734: [0, 0.44444, 0, 0, 1.14999], 8736: [0, 0.69224, 0, 0, 0.72222], 8739: [0.25, 0.75, 0, 0, 0.31944], 8741: [0.25, 0.75, 0, 0, 0.575], 8743: [0, 0.55556, 0, 0, 0.76666], 8744: [0, 0.55556, 0, 0, 0.76666], 8745: [0, 0.55556, 0, 0, 0.76666], 8746: [0, 0.55556, 0, 0, 0.76666], 8747: [0.19444, 0.69444, 0.12778, 0, 0.56875], 8764: [-0.10889, 0.39111, 0, 0, 0.89444], 8768: [0.19444, 0.69444, 0, 0, 0.31944], 8771: [222e-5, 0.50222, 0, 0, 0.89444], 8773: [0.027, 0.638, 0, 0, 0.894], 8776: [0.02444, 0.52444, 0, 0, 0.89444], 8781: [222e-5, 0.50222, 0, 0, 0.89444], 8801: [222e-5, 0.50222, 0, 0, 0.89444], 8804: [0.19667, 0.69667, 0, 0, 0.89444], 8805: [0.19667, 0.69667, 0, 0, 0.89444], 8810: [0.08556, 0.58556, 0, 0, 1.14999], 8811: [0.08556, 0.58556, 0, 0, 1.14999], 8826: [0.08556, 0.58556, 0, 0, 0.89444], 8827: [0.08556, 0.58556, 0, 0, 0.89444], 8834: [0.08556, 0.58556, 0, 0, 0.89444], 8835: [0.08556, 0.58556, 0, 0, 0.89444], 8838: [0.19667, 0.69667, 0, 0, 0.89444], 8839: [0.19667, 0.69667, 0, 0, 0.89444], 8846: [0, 0.55556, 0, 0, 0.76666], 8849: [0.19667, 0.69667, 0, 0, 0.89444], 8850: [0.19667, 0.69667, 0, 0, 0.89444], 8851: [0, 0.55556, 0, 0, 0.76666], 8852: [0, 0.55556, 0, 0, 0.76666], 8853: [0.13333, 0.63333, 0, 0, 0.89444], 8854: [0.13333, 0.63333, 0, 0, 0.89444], 8855: [0.13333, 0.63333, 0, 0, 0.89444], 8856: [0.13333, 0.63333, 0, 0, 0.89444], 8857: [0.13333, 0.63333, 0, 0, 0.89444], 8866: [0, 0.69444, 0, 0, 0.70277], 8867: [0, 0.69444, 0, 0, 0.70277], 8868: [0, 0.69444, 0, 0, 0.89444], 8869: [0, 0.69444, 0, 0, 0.89444], 8900: [-0.02639, 0.47361, 0, 0, 0.575], 8901: [-0.02639, 0.47361, 0, 0, 0.31944], 8902: [-0.02778, 0.47222, 0, 0, 0.575], 8968: [0.25, 0.75, 0, 0, 0.51111], 8969: [0.25, 0.75, 0, 0, 0.51111], 8970: [0.25, 0.75, 0, 0, 0.51111], 8971: [0.25, 0.75, 0, 0, 0.51111], 8994: [-0.13889, 0.36111, 0, 0, 1.14999], 8995: [-0.13889, 0.36111, 0, 0, 1.14999], 9651: [0.19444, 0.69444, 0, 0, 1.02222], 9657: [-0.02778, 0.47222, 0, 0, 0.575], 9661: [0.19444, 0.69444, 0, 0, 1.02222], 9667: [-0.02778, 0.47222, 0, 0, 0.575], 9711: [0.19444, 0.69444, 0, 0, 1.14999], 9824: [0.12963, 0.69444, 0, 0, 0.89444], 9825: [0.12963, 0.69444, 0, 0, 0.89444], 9826: [0.12963, 0.69444, 0, 0, 0.89444], 9827: [0.12963, 0.69444, 0, 0, 0.89444], 9837: [0, 0.75, 0, 0, 0.44722], 9838: [0.19444, 0.69444, 0, 0, 0.44722], 9839: [0.19444, 0.69444, 0, 0, 0.44722], 10216: [0.25, 0.75, 0, 0, 0.44722], 10217: [0.25, 0.75, 0, 0, 0.44722], 10815: [0, 0.68611, 0, 0, 0.9], 10927: [0.19667, 0.69667, 0, 0, 0.89444], 10928: [0.19667, 0.69667, 0, 0, 0.89444], 57376: [0.19444, 0.69444, 0, 0, 0] }, "Main-BoldItalic": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69444, 0.11417, 0, 0.38611], 34: [0, 0.69444, 0.07939, 0, 0.62055], 35: [0.19444, 0.69444, 0.06833, 0, 0.94444], 37: [0.05556, 0.75, 0.12861, 0, 0.94444], 38: [0, 0.69444, 0.08528, 0, 0.88555], 39: [0, 0.69444, 0.12945, 0, 0.35555], 40: [0.25, 0.75, 0.15806, 0, 0.47333], 41: [0.25, 0.75, 0.03306, 0, 0.47333], 42: [0, 0.75, 0.14333, 0, 0.59111], 43: [0.10333, 0.60333, 0.03306, 0, 0.88555], 44: [0.19444, 0.14722, 0, 0, 0.35555], 45: [0, 0.44444, 0.02611, 0, 0.41444], 46: [0, 0.14722, 0, 0, 0.35555], 47: [0.25, 0.75, 0.15806, 0, 0.59111], 48: [0, 0.64444, 0.13167, 0, 0.59111], 49: [0, 0.64444, 0.13167, 0, 0.59111], 50: [0, 0.64444, 0.13167, 0, 0.59111], 51: [0, 0.64444, 0.13167, 0, 0.59111], 52: [0.19444, 0.64444, 0.13167, 0, 0.59111], 53: [0, 0.64444, 0.13167, 0, 0.59111], 54: [0, 0.64444, 0.13167, 0, 0.59111], 55: [0.19444, 0.64444, 0.13167, 0, 0.59111], 56: [0, 0.64444, 0.13167, 0, 0.59111], 57: [0, 0.64444, 0.13167, 0, 0.59111], 58: [0, 0.44444, 0.06695, 0, 0.35555], 59: [0.19444, 0.44444, 0.06695, 0, 0.35555], 61: [-0.10889, 0.39111, 0.06833, 0, 0.88555], 63: [0, 0.69444, 0.11472, 0, 0.59111], 64: [0, 0.69444, 0.09208, 0, 0.88555], 65: [0, 0.68611, 0, 0, 0.86555], 66: [0, 0.68611, 0.0992, 0, 0.81666], 67: [0, 0.68611, 0.14208, 0, 0.82666], 68: [0, 0.68611, 0.09062, 0, 0.87555], 69: [0, 0.68611, 0.11431, 0, 0.75666], 70: [0, 0.68611, 0.12903, 0, 0.72722], 71: [0, 0.68611, 0.07347, 0, 0.89527], 72: [0, 0.68611, 0.17208, 0, 0.8961], 73: [0, 0.68611, 0.15681, 0, 0.47166], 74: [0, 0.68611, 0.145, 0, 0.61055], 75: [0, 0.68611, 0.14208, 0, 0.89499], 76: [0, 0.68611, 0, 0, 0.69777], 77: [0, 0.68611, 0.17208, 0, 1.07277], 78: [0, 0.68611, 0.17208, 0, 0.8961], 79: [0, 0.68611, 0.09062, 0, 0.85499], 80: [0, 0.68611, 0.0992, 0, 0.78721], 81: [0.19444, 0.68611, 0.09062, 0, 0.85499], 82: [0, 0.68611, 0.02559, 0, 0.85944], 83: [0, 0.68611, 0.11264, 0, 0.64999], 84: [0, 0.68611, 0.12903, 0, 0.7961], 85: [0, 0.68611, 0.17208, 0, 0.88083], 86: [0, 0.68611, 0.18625, 0, 0.86555], 87: [0, 0.68611, 0.18625, 0, 1.15999], 88: [0, 0.68611, 0.15681, 0, 0.86555], 89: [0, 0.68611, 0.19803, 0, 0.86555], 90: [0, 0.68611, 0.14208, 0, 0.70888], 91: [0.25, 0.75, 0.1875, 0, 0.35611], 93: [0.25, 0.75, 0.09972, 0, 0.35611], 94: [0, 0.69444, 0.06709, 0, 0.59111], 95: [0.31, 0.13444, 0.09811, 0, 0.59111], 97: [0, 0.44444, 0.09426, 0, 0.59111], 98: [0, 0.69444, 0.07861, 0, 0.53222], 99: [0, 0.44444, 0.05222, 0, 0.53222], 100: [0, 0.69444, 0.10861, 0, 0.59111], 101: [0, 0.44444, 0.085, 0, 0.53222], 102: [0.19444, 0.69444, 0.21778, 0, 0.4], 103: [0.19444, 0.44444, 0.105, 0, 0.53222], 104: [0, 0.69444, 0.09426, 0, 0.59111], 105: [0, 0.69326, 0.11387, 0, 0.35555], 106: [0.19444, 0.69326, 0.1672, 0, 0.35555], 107: [0, 0.69444, 0.11111, 0, 0.53222], 108: [0, 0.69444, 0.10861, 0, 0.29666], 109: [0, 0.44444, 0.09426, 0, 0.94444], 110: [0, 0.44444, 0.09426, 0, 0.64999], 111: [0, 0.44444, 0.07861, 0, 0.59111], 112: [0.19444, 0.44444, 0.07861, 0, 0.59111], 113: [0.19444, 0.44444, 0.105, 0, 0.53222], 114: [0, 0.44444, 0.11111, 0, 0.50167], 115: [0, 0.44444, 0.08167, 0, 0.48694], 116: [0, 0.63492, 0.09639, 0, 0.385], 117: [0, 0.44444, 0.09426, 0, 0.62055], 118: [0, 0.44444, 0.11111, 0, 0.53222], 119: [0, 0.44444, 0.11111, 0, 0.76777], 120: [0, 0.44444, 0.12583, 0, 0.56055], 121: [0.19444, 0.44444, 0.105, 0, 0.56166], 122: [0, 0.44444, 0.13889, 0, 0.49055], 126: [0.35, 0.34444, 0.11472, 0, 0.59111], 160: [0, 0, 0, 0, 0.25], 168: [0, 0.69444, 0.11473, 0, 0.59111], 176: [0, 0.69444, 0, 0, 0.94888], 184: [0.17014, 0, 0, 0, 0.53222], 198: [0, 0.68611, 0.11431, 0, 1.02277], 216: [0.04861, 0.73472, 0.09062, 0, 0.88555], 223: [0.19444, 0.69444, 0.09736, 0, 0.665], 230: [0, 0.44444, 0.085, 0, 0.82666], 248: [0.09722, 0.54167, 0.09458, 0, 0.59111], 305: [0, 0.44444, 0.09426, 0, 0.35555], 338: [0, 0.68611, 0.11431, 0, 1.14054], 339: [0, 0.44444, 0.085, 0, 0.82666], 567: [0.19444, 0.44444, 0.04611, 0, 0.385], 710: [0, 0.69444, 0.06709, 0, 0.59111], 711: [0, 0.63194, 0.08271, 0, 0.59111], 713: [0, 0.59444, 0.10444, 0, 0.59111], 714: [0, 0.69444, 0.08528, 0, 0.59111], 715: [0, 0.69444, 0, 0, 0.59111], 728: [0, 0.69444, 0.10333, 0, 0.59111], 729: [0, 0.69444, 0.12945, 0, 0.35555], 730: [0, 0.69444, 0, 0, 0.94888], 732: [0, 0.69444, 0.11472, 0, 0.59111], 733: [0, 0.69444, 0.11472, 0, 0.59111], 915: [0, 0.68611, 0.12903, 0, 0.69777], 916: [0, 0.68611, 0, 0, 0.94444], 920: [0, 0.68611, 0.09062, 0, 0.88555], 923: [0, 0.68611, 0, 0, 0.80666], 926: [0, 0.68611, 0.15092, 0, 0.76777], 928: [0, 0.68611, 0.17208, 0, 0.8961], 931: [0, 0.68611, 0.11431, 0, 0.82666], 933: [0, 0.68611, 0.10778, 0, 0.88555], 934: [0, 0.68611, 0.05632, 0, 0.82666], 936: [0, 0.68611, 0.10778, 0, 0.88555], 937: [0, 0.68611, 0.0992, 0, 0.82666], 8211: [0, 0.44444, 0.09811, 0, 0.59111], 8212: [0, 0.44444, 0.09811, 0, 1.18221], 8216: [0, 0.69444, 0.12945, 0, 0.35555], 8217: [0, 0.69444, 0.12945, 0, 0.35555], 8220: [0, 0.69444, 0.16772, 0, 0.62055], 8221: [0, 0.69444, 0.07939, 0, 0.62055] }, "Main-Italic": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69444, 0.12417, 0, 0.30667], 34: [0, 0.69444, 0.06961, 0, 0.51444], 35: [0.19444, 0.69444, 0.06616, 0, 0.81777], 37: [0.05556, 0.75, 0.13639, 0, 0.81777], 38: [0, 0.69444, 0.09694, 0, 0.76666], 39: [0, 0.69444, 0.12417, 0, 0.30667], 40: [0.25, 0.75, 0.16194, 0, 0.40889], 41: [0.25, 0.75, 0.03694, 0, 0.40889], 42: [0, 0.75, 0.14917, 0, 0.51111], 43: [0.05667, 0.56167, 0.03694, 0, 0.76666], 44: [0.19444, 0.10556, 0, 0, 0.30667], 45: [0, 0.43056, 0.02826, 0, 0.35778], 46: [0, 0.10556, 0, 0, 0.30667], 47: [0.25, 0.75, 0.16194, 0, 0.51111], 48: [0, 0.64444, 0.13556, 0, 0.51111], 49: [0, 0.64444, 0.13556, 0, 0.51111], 50: [0, 0.64444, 0.13556, 0, 0.51111], 51: [0, 0.64444, 0.13556, 0, 0.51111], 52: [0.19444, 0.64444, 0.13556, 0, 0.51111], 53: [0, 0.64444, 0.13556, 0, 0.51111], 54: [0, 0.64444, 0.13556, 0, 0.51111], 55: [0.19444, 0.64444, 0.13556, 0, 0.51111], 56: [0, 0.64444, 0.13556, 0, 0.51111], 57: [0, 0.64444, 0.13556, 0, 0.51111], 58: [0, 0.43056, 0.0582, 0, 0.30667], 59: [0.19444, 0.43056, 0.0582, 0, 0.30667], 61: [-0.13313, 0.36687, 0.06616, 0, 0.76666], 63: [0, 0.69444, 0.1225, 0, 0.51111], 64: [0, 0.69444, 0.09597, 0, 0.76666], 65: [0, 0.68333, 0, 0, 0.74333], 66: [0, 0.68333, 0.10257, 0, 0.70389], 67: [0, 0.68333, 0.14528, 0, 0.71555], 68: [0, 0.68333, 0.09403, 0, 0.755], 69: [0, 0.68333, 0.12028, 0, 0.67833], 70: [0, 0.68333, 0.13305, 0, 0.65277], 71: [0, 0.68333, 0.08722, 0, 0.77361], 72: [0, 0.68333, 0.16389, 0, 0.74333], 73: [0, 0.68333, 0.15806, 0, 0.38555], 74: [0, 0.68333, 0.14028, 0, 0.525], 75: [0, 0.68333, 0.14528, 0, 0.76888], 76: [0, 0.68333, 0, 0, 0.62722], 77: [0, 0.68333, 0.16389, 0, 0.89666], 78: [0, 0.68333, 0.16389, 0, 0.74333], 79: [0, 0.68333, 0.09403, 0, 0.76666], 80: [0, 0.68333, 0.10257, 0, 0.67833], 81: [0.19444, 0.68333, 0.09403, 0, 0.76666], 82: [0, 0.68333, 0.03868, 0, 0.72944], 83: [0, 0.68333, 0.11972, 0, 0.56222], 84: [0, 0.68333, 0.13305, 0, 0.71555], 85: [0, 0.68333, 0.16389, 0, 0.74333], 86: [0, 0.68333, 0.18361, 0, 0.74333], 87: [0, 0.68333, 0.18361, 0, 0.99888], 88: [0, 0.68333, 0.15806, 0, 0.74333], 89: [0, 0.68333, 0.19383, 0, 0.74333], 90: [0, 0.68333, 0.14528, 0, 0.61333], 91: [0.25, 0.75, 0.1875, 0, 0.30667], 93: [0.25, 0.75, 0.10528, 0, 0.30667], 94: [0, 0.69444, 0.06646, 0, 0.51111], 95: [0.31, 0.12056, 0.09208, 0, 0.51111], 97: [0, 0.43056, 0.07671, 0, 0.51111], 98: [0, 0.69444, 0.06312, 0, 0.46], 99: [0, 0.43056, 0.05653, 0, 0.46], 100: [0, 0.69444, 0.10333, 0, 0.51111], 101: [0, 0.43056, 0.07514, 0, 0.46], 102: [0.19444, 0.69444, 0.21194, 0, 0.30667], 103: [0.19444, 0.43056, 0.08847, 0, 0.46], 104: [0, 0.69444, 0.07671, 0, 0.51111], 105: [0, 0.65536, 0.1019, 0, 0.30667], 106: [0.19444, 0.65536, 0.14467, 0, 0.30667], 107: [0, 0.69444, 0.10764, 0, 0.46], 108: [0, 0.69444, 0.10333, 0, 0.25555], 109: [0, 0.43056, 0.07671, 0, 0.81777], 110: [0, 0.43056, 0.07671, 0, 0.56222], 111: [0, 0.43056, 0.06312, 0, 0.51111], 112: [0.19444, 0.43056, 0.06312, 0, 0.51111], 113: [0.19444, 0.43056, 0.08847, 0, 0.46], 114: [0, 0.43056, 0.10764, 0, 0.42166], 115: [0, 0.43056, 0.08208, 0, 0.40889], 116: [0, 0.61508, 0.09486, 0, 0.33222], 117: [0, 0.43056, 0.07671, 0, 0.53666], 118: [0, 0.43056, 0.10764, 0, 0.46], 119: [0, 0.43056, 0.10764, 0, 0.66444], 120: [0, 0.43056, 0.12042, 0, 0.46389], 121: [0.19444, 0.43056, 0.08847, 0, 0.48555], 122: [0, 0.43056, 0.12292, 0, 0.40889], 126: [0.35, 0.31786, 0.11585, 0, 0.51111], 160: [0, 0, 0, 0, 0.25], 168: [0, 0.66786, 0.10474, 0, 0.51111], 176: [0, 0.69444, 0, 0, 0.83129], 184: [0.17014, 0, 0, 0, 0.46], 198: [0, 0.68333, 0.12028, 0, 0.88277], 216: [0.04861, 0.73194, 0.09403, 0, 0.76666], 223: [0.19444, 0.69444, 0.10514, 0, 0.53666], 230: [0, 0.43056, 0.07514, 0, 0.71555], 248: [0.09722, 0.52778, 0.09194, 0, 0.51111], 338: [0, 0.68333, 0.12028, 0, 0.98499], 339: [0, 0.43056, 0.07514, 0, 0.71555], 710: [0, 0.69444, 0.06646, 0, 0.51111], 711: [0, 0.62847, 0.08295, 0, 0.51111], 713: [0, 0.56167, 0.10333, 0, 0.51111], 714: [0, 0.69444, 0.09694, 0, 0.51111], 715: [0, 0.69444, 0, 0, 0.51111], 728: [0, 0.69444, 0.10806, 0, 0.51111], 729: [0, 0.66786, 0.11752, 0, 0.30667], 730: [0, 0.69444, 0, 0, 0.83129], 732: [0, 0.66786, 0.11585, 0, 0.51111], 733: [0, 0.69444, 0.1225, 0, 0.51111], 915: [0, 0.68333, 0.13305, 0, 0.62722], 916: [0, 0.68333, 0, 0, 0.81777], 920: [0, 0.68333, 0.09403, 0, 0.76666], 923: [0, 0.68333, 0, 0, 0.69222], 926: [0, 0.68333, 0.15294, 0, 0.66444], 928: [0, 0.68333, 0.16389, 0, 0.74333], 931: [0, 0.68333, 0.12028, 0, 0.71555], 933: [0, 0.68333, 0.11111, 0, 0.76666], 934: [0, 0.68333, 0.05986, 0, 0.71555], 936: [0, 0.68333, 0.11111, 0, 0.76666], 937: [0, 0.68333, 0.10257, 0, 0.71555], 8211: [0, 0.43056, 0.09208, 0, 0.51111], 8212: [0, 0.43056, 0.09208, 0, 1.02222], 8216: [0, 0.69444, 0.12417, 0, 0.30667], 8217: [0, 0.69444, 0.12417, 0, 0.30667], 8220: [0, 0.69444, 0.1685, 0, 0.51444], 8221: [0, 0.69444, 0.06961, 0, 0.51444], 8463: [0, 0.68889, 0, 0, 0.54028] }, "Main-Regular": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69444, 0, 0, 0.27778], 34: [0, 0.69444, 0, 0, 0.5], 35: [0.19444, 0.69444, 0, 0, 0.83334], 36: [0.05556, 0.75, 0, 0, 0.5], 37: [0.05556, 0.75, 0, 0, 0.83334], 38: [0, 0.69444, 0, 0, 0.77778], 39: [0, 0.69444, 0, 0, 0.27778], 40: [0.25, 0.75, 0, 0, 0.38889], 41: [0.25, 0.75, 0, 0, 0.38889], 42: [0, 0.75, 0, 0, 0.5], 43: [0.08333, 0.58333, 0, 0, 0.77778], 44: [0.19444, 0.10556, 0, 0, 0.27778], 45: [0, 0.43056, 0, 0, 0.33333], 46: [0, 0.10556, 0, 0, 0.27778], 47: [0.25, 0.75, 0, 0, 0.5], 48: [0, 0.64444, 0, 0, 0.5], 49: [0, 0.64444, 0, 0, 0.5], 50: [0, 0.64444, 0, 0, 0.5], 51: [0, 0.64444, 0, 0, 0.5], 52: [0, 0.64444, 0, 0, 0.5], 53: [0, 0.64444, 0, 0, 0.5], 54: [0, 0.64444, 0, 0, 0.5], 55: [0, 0.64444, 0, 0, 0.5], 56: [0, 0.64444, 0, 0, 0.5], 57: [0, 0.64444, 0, 0, 0.5], 58: [0, 0.43056, 0, 0, 0.27778], 59: [0.19444, 0.43056, 0, 0, 0.27778], 60: [0.0391, 0.5391, 0, 0, 0.77778], 61: [-0.13313, 0.36687, 0, 0, 0.77778], 62: [0.0391, 0.5391, 0, 0, 0.77778], 63: [0, 0.69444, 0, 0, 0.47222], 64: [0, 0.69444, 0, 0, 0.77778], 65: [0, 0.68333, 0, 0, 0.75], 66: [0, 0.68333, 0, 0, 0.70834], 67: [0, 0.68333, 0, 0, 0.72222], 68: [0, 0.68333, 0, 0, 0.76389], 69: [0, 0.68333, 0, 0, 0.68056], 70: [0, 0.68333, 0, 0, 0.65278], 71: [0, 0.68333, 0, 0, 0.78472], 72: [0, 0.68333, 0, 0, 0.75], 73: [0, 0.68333, 0, 0, 0.36111], 74: [0, 0.68333, 0, 0, 0.51389], 75: [0, 0.68333, 0, 0, 0.77778], 76: [0, 0.68333, 0, 0, 0.625], 77: [0, 0.68333, 0, 0, 0.91667], 78: [0, 0.68333, 0, 0, 0.75], 79: [0, 0.68333, 0, 0, 0.77778], 80: [0, 0.68333, 0, 0, 0.68056], 81: [0.19444, 0.68333, 0, 0, 0.77778], 82: [0, 0.68333, 0, 0, 0.73611], 83: [0, 0.68333, 0, 0, 0.55556], 84: [0, 0.68333, 0, 0, 0.72222], 85: [0, 0.68333, 0, 0, 0.75], 86: [0, 0.68333, 0.01389, 0, 0.75], 87: [0, 0.68333, 0.01389, 0, 1.02778], 88: [0, 0.68333, 0, 0, 0.75], 89: [0, 0.68333, 0.025, 0, 0.75], 90: [0, 0.68333, 0, 0, 0.61111], 91: [0.25, 0.75, 0, 0, 0.27778], 92: [0.25, 0.75, 0, 0, 0.5], 93: [0.25, 0.75, 0, 0, 0.27778], 94: [0, 0.69444, 0, 0, 0.5], 95: [0.31, 0.12056, 0.02778, 0, 0.5], 97: [0, 0.43056, 0, 0, 0.5], 98: [0, 0.69444, 0, 0, 0.55556], 99: [0, 0.43056, 0, 0, 0.44445], 100: [0, 0.69444, 0, 0, 0.55556], 101: [0, 0.43056, 0, 0, 0.44445], 102: [0, 0.69444, 0.07778, 0, 0.30556], 103: [0.19444, 0.43056, 0.01389, 0, 0.5], 104: [0, 0.69444, 0, 0, 0.55556], 105: [0, 0.66786, 0, 0, 0.27778], 106: [0.19444, 0.66786, 0, 0, 0.30556], 107: [0, 0.69444, 0, 0, 0.52778], 108: [0, 0.69444, 0, 0, 0.27778], 109: [0, 0.43056, 0, 0, 0.83334], 110: [0, 0.43056, 0, 0, 0.55556], 111: [0, 0.43056, 0, 0, 0.5], 112: [0.19444, 0.43056, 0, 0, 0.55556], 113: [0.19444, 0.43056, 0, 0, 0.52778], 114: [0, 0.43056, 0, 0, 0.39167], 115: [0, 0.43056, 0, 0, 0.39445], 116: [0, 0.61508, 0, 0, 0.38889], 117: [0, 0.43056, 0, 0, 0.55556], 118: [0, 0.43056, 0.01389, 0, 0.52778], 119: [0, 0.43056, 0.01389, 0, 0.72222], 120: [0, 0.43056, 0, 0, 0.52778], 121: [0.19444, 0.43056, 0.01389, 0, 0.52778], 122: [0, 0.43056, 0, 0, 0.44445], 123: [0.25, 0.75, 0, 0, 0.5], 124: [0.25, 0.75, 0, 0, 0.27778], 125: [0.25, 0.75, 0, 0, 0.5], 126: [0.35, 0.31786, 0, 0, 0.5], 160: [0, 0, 0, 0, 0.25], 163: [0, 0.69444, 0, 0, 0.76909], 167: [0.19444, 0.69444, 0, 0, 0.44445], 168: [0, 0.66786, 0, 0, 0.5], 172: [0, 0.43056, 0, 0, 0.66667], 176: [0, 0.69444, 0, 0, 0.75], 177: [0.08333, 0.58333, 0, 0, 0.77778], 182: [0.19444, 0.69444, 0, 0, 0.61111], 184: [0.17014, 0, 0, 0, 0.44445], 198: [0, 0.68333, 0, 0, 0.90278], 215: [0.08333, 0.58333, 0, 0, 0.77778], 216: [0.04861, 0.73194, 0, 0, 0.77778], 223: [0, 0.69444, 0, 0, 0.5], 230: [0, 0.43056, 0, 0, 0.72222], 247: [0.08333, 0.58333, 0, 0, 0.77778], 248: [0.09722, 0.52778, 0, 0, 0.5], 305: [0, 0.43056, 0, 0, 0.27778], 338: [0, 0.68333, 0, 0, 1.01389], 339: [0, 0.43056, 0, 0, 0.77778], 567: [0.19444, 0.43056, 0, 0, 0.30556], 710: [0, 0.69444, 0, 0, 0.5], 711: [0, 0.62847, 0, 0, 0.5], 713: [0, 0.56778, 0, 0, 0.5], 714: [0, 0.69444, 0, 0, 0.5], 715: [0, 0.69444, 0, 0, 0.5], 728: [0, 0.69444, 0, 0, 0.5], 729: [0, 0.66786, 0, 0, 0.27778], 730: [0, 0.69444, 0, 0, 0.75], 732: [0, 0.66786, 0, 0, 0.5], 733: [0, 0.69444, 0, 0, 0.5], 915: [0, 0.68333, 0, 0, 0.625], 916: [0, 0.68333, 0, 0, 0.83334], 920: [0, 0.68333, 0, 0, 0.77778], 923: [0, 0.68333, 0, 0, 0.69445], 926: [0, 0.68333, 0, 0, 0.66667], 928: [0, 0.68333, 0, 0, 0.75], 931: [0, 0.68333, 0, 0, 0.72222], 933: [0, 0.68333, 0, 0, 0.77778], 934: [0, 0.68333, 0, 0, 0.72222], 936: [0, 0.68333, 0, 0, 0.77778], 937: [0, 0.68333, 0, 0, 0.72222], 8211: [0, 0.43056, 0.02778, 0, 0.5], 8212: [0, 0.43056, 0.02778, 0, 1], 8216: [0, 0.69444, 0, 0, 0.27778], 8217: [0, 0.69444, 0, 0, 0.27778], 8220: [0, 0.69444, 0, 0, 0.5], 8221: [0, 0.69444, 0, 0, 0.5], 8224: [0.19444, 0.69444, 0, 0, 0.44445], 8225: [0.19444, 0.69444, 0, 0, 0.44445], 8230: [0, 0.123, 0, 0, 1.172], 8242: [0, 0.55556, 0, 0, 0.275], 8407: [0, 0.71444, 0.15382, 0, 0.5], 8463: [0, 0.68889, 0, 0, 0.54028], 8465: [0, 0.69444, 0, 0, 0.72222], 8467: [0, 0.69444, 0, 0.11111, 0.41667], 8472: [0.19444, 0.43056, 0, 0.11111, 0.63646], 8476: [0, 0.69444, 0, 0, 0.72222], 8501: [0, 0.69444, 0, 0, 0.61111], 8592: [-0.13313, 0.36687, 0, 0, 1], 8593: [0.19444, 0.69444, 0, 0, 0.5], 8594: [-0.13313, 0.36687, 0, 0, 1], 8595: [0.19444, 0.69444, 0, 0, 0.5], 8596: [-0.13313, 0.36687, 0, 0, 1], 8597: [0.25, 0.75, 0, 0, 0.5], 8598: [0.19444, 0.69444, 0, 0, 1], 8599: [0.19444, 0.69444, 0, 0, 1], 8600: [0.19444, 0.69444, 0, 0, 1], 8601: [0.19444, 0.69444, 0, 0, 1], 8614: [0.011, 0.511, 0, 0, 1], 8617: [0.011, 0.511, 0, 0, 1.126], 8618: [0.011, 0.511, 0, 0, 1.126], 8636: [-0.13313, 0.36687, 0, 0, 1], 8637: [-0.13313, 0.36687, 0, 0, 1], 8640: [-0.13313, 0.36687, 0, 0, 1], 8641: [-0.13313, 0.36687, 0, 0, 1], 8652: [0.011, 0.671, 0, 0, 1], 8656: [-0.13313, 0.36687, 0, 0, 1], 8657: [0.19444, 0.69444, 0, 0, 0.61111], 8658: [-0.13313, 0.36687, 0, 0, 1], 8659: [0.19444, 0.69444, 0, 0, 0.61111], 8660: [-0.13313, 0.36687, 0, 0, 1], 8661: [0.25, 0.75, 0, 0, 0.61111], 8704: [0, 0.69444, 0, 0, 0.55556], 8706: [0, 0.69444, 0.05556, 0.08334, 0.5309], 8707: [0, 0.69444, 0, 0, 0.55556], 8709: [0.05556, 0.75, 0, 0, 0.5], 8711: [0, 0.68333, 0, 0, 0.83334], 8712: [0.0391, 0.5391, 0, 0, 0.66667], 8715: [0.0391, 0.5391, 0, 0, 0.66667], 8722: [0.08333, 0.58333, 0, 0, 0.77778], 8723: [0.08333, 0.58333, 0, 0, 0.77778], 8725: [0.25, 0.75, 0, 0, 0.5], 8726: [0.25, 0.75, 0, 0, 0.5], 8727: [-0.03472, 0.46528, 0, 0, 0.5], 8728: [-0.05555, 0.44445, 0, 0, 0.5], 8729: [-0.05555, 0.44445, 0, 0, 0.5], 8730: [0.2, 0.8, 0, 0, 0.83334], 8733: [0, 0.43056, 0, 0, 0.77778], 8734: [0, 0.43056, 0, 0, 1], 8736: [0, 0.69224, 0, 0, 0.72222], 8739: [0.25, 0.75, 0, 0, 0.27778], 8741: [0.25, 0.75, 0, 0, 0.5], 8743: [0, 0.55556, 0, 0, 0.66667], 8744: [0, 0.55556, 0, 0, 0.66667], 8745: [0, 0.55556, 0, 0, 0.66667], 8746: [0, 0.55556, 0, 0, 0.66667], 8747: [0.19444, 0.69444, 0.11111, 0, 0.41667], 8764: [-0.13313, 0.36687, 0, 0, 0.77778], 8768: [0.19444, 0.69444, 0, 0, 0.27778], 8771: [-0.03625, 0.46375, 0, 0, 0.77778], 8773: [-0.022, 0.589, 0, 0, 0.778], 8776: [-0.01688, 0.48312, 0, 0, 0.77778], 8781: [-0.03625, 0.46375, 0, 0, 0.77778], 8784: [-0.133, 0.673, 0, 0, 0.778], 8801: [-0.03625, 0.46375, 0, 0, 0.77778], 8804: [0.13597, 0.63597, 0, 0, 0.77778], 8805: [0.13597, 0.63597, 0, 0, 0.77778], 8810: [0.0391, 0.5391, 0, 0, 1], 8811: [0.0391, 0.5391, 0, 0, 1], 8826: [0.0391, 0.5391, 0, 0, 0.77778], 8827: [0.0391, 0.5391, 0, 0, 0.77778], 8834: [0.0391, 0.5391, 0, 0, 0.77778], 8835: [0.0391, 0.5391, 0, 0, 0.77778], 8838: [0.13597, 0.63597, 0, 0, 0.77778], 8839: [0.13597, 0.63597, 0, 0, 0.77778], 8846: [0, 0.55556, 0, 0, 0.66667], 8849: [0.13597, 0.63597, 0, 0, 0.77778], 8850: [0.13597, 0.63597, 0, 0, 0.77778], 8851: [0, 0.55556, 0, 0, 0.66667], 8852: [0, 0.55556, 0, 0, 0.66667], 8853: [0.08333, 0.58333, 0, 0, 0.77778], 8854: [0.08333, 0.58333, 0, 0, 0.77778], 8855: [0.08333, 0.58333, 0, 0, 0.77778], 8856: [0.08333, 0.58333, 0, 0, 0.77778], 8857: [0.08333, 0.58333, 0, 0, 0.77778], 8866: [0, 0.69444, 0, 0, 0.61111], 8867: [0, 0.69444, 0, 0, 0.61111], 8868: [0, 0.69444, 0, 0, 0.77778], 8869: [0, 0.69444, 0, 0, 0.77778], 8872: [0.249, 0.75, 0, 0, 0.867], 8900: [-0.05555, 0.44445, 0, 0, 0.5], 8901: [-0.05555, 0.44445, 0, 0, 0.27778], 8902: [-0.03472, 0.46528, 0, 0, 0.5], 8904: [5e-3, 0.505, 0, 0, 0.9], 8942: [0.03, 0.903, 0, 0, 0.278], 8943: [-0.19, 0.313, 0, 0, 1.172], 8945: [-0.1, 0.823, 0, 0, 1.282], 8968: [0.25, 0.75, 0, 0, 0.44445], 8969: [0.25, 0.75, 0, 0, 0.44445], 8970: [0.25, 0.75, 0, 0, 0.44445], 8971: [0.25, 0.75, 0, 0, 0.44445], 8994: [-0.14236, 0.35764, 0, 0, 1], 8995: [-0.14236, 0.35764, 0, 0, 1], 9136: [0.244, 0.744, 0, 0, 0.412], 9137: [0.244, 0.745, 0, 0, 0.412], 9651: [0.19444, 0.69444, 0, 0, 0.88889], 9657: [-0.03472, 0.46528, 0, 0, 0.5], 9661: [0.19444, 0.69444, 0, 0, 0.88889], 9667: [-0.03472, 0.46528, 0, 0, 0.5], 9711: [0.19444, 0.69444, 0, 0, 1], 9824: [0.12963, 0.69444, 0, 0, 0.77778], 9825: [0.12963, 0.69444, 0, 0, 0.77778], 9826: [0.12963, 0.69444, 0, 0, 0.77778], 9827: [0.12963, 0.69444, 0, 0, 0.77778], 9837: [0, 0.75, 0, 0, 0.38889], 9838: [0.19444, 0.69444, 0, 0, 0.38889], 9839: [0.19444, 0.69444, 0, 0, 0.38889], 10216: [0.25, 0.75, 0, 0, 0.38889], 10217: [0.25, 0.75, 0, 0, 0.38889], 10222: [0.244, 0.744, 0, 0, 0.412], 10223: [0.244, 0.745, 0, 0, 0.412], 10229: [0.011, 0.511, 0, 0, 1.609], 10230: [0.011, 0.511, 0, 0, 1.638], 10231: [0.011, 0.511, 0, 0, 1.859], 10232: [0.024, 0.525, 0, 0, 1.609], 10233: [0.024, 0.525, 0, 0, 1.638], 10234: [0.024, 0.525, 0, 0, 1.858], 10236: [0.011, 0.511, 0, 0, 1.638], 10815: [0, 0.68333, 0, 0, 0.75], 10927: [0.13597, 0.63597, 0, 0, 0.77778], 10928: [0.13597, 0.63597, 0, 0, 0.77778], 57376: [0.19444, 0.69444, 0, 0, 0] }, "Math-BoldItalic": { 32: [0, 0, 0, 0, 0.25], 48: [0, 0.44444, 0, 0, 0.575], 49: [0, 0.44444, 0, 0, 0.575], 50: [0, 0.44444, 0, 0, 0.575], 51: [0.19444, 0.44444, 0, 0, 0.575], 52: [0.19444, 0.44444, 0, 0, 0.575], 53: [0.19444, 0.44444, 0, 0, 0.575], 54: [0, 0.64444, 0, 0, 0.575], 55: [0.19444, 0.44444, 0, 0, 0.575], 56: [0, 0.64444, 0, 0, 0.575], 57: [0.19444, 0.44444, 0, 0, 0.575], 65: [0, 0.68611, 0, 0, 0.86944], 66: [0, 0.68611, 0.04835, 0, 0.8664], 67: [0, 0.68611, 0.06979, 0, 0.81694], 68: [0, 0.68611, 0.03194, 0, 0.93812], 69: [0, 0.68611, 0.05451, 0, 0.81007], 70: [0, 0.68611, 0.15972, 0, 0.68889], 71: [0, 0.68611, 0, 0, 0.88673], 72: [0, 0.68611, 0.08229, 0, 0.98229], 73: [0, 0.68611, 0.07778, 0, 0.51111], 74: [0, 0.68611, 0.10069, 0, 0.63125], 75: [0, 0.68611, 0.06979, 0, 0.97118], 76: [0, 0.68611, 0, 0, 0.75555], 77: [0, 0.68611, 0.11424, 0, 1.14201], 78: [0, 0.68611, 0.11424, 0, 0.95034], 79: [0, 0.68611, 0.03194, 0, 0.83666], 80: [0, 0.68611, 0.15972, 0, 0.72309], 81: [0.19444, 0.68611, 0, 0, 0.86861], 82: [0, 0.68611, 421e-5, 0, 0.87235], 83: [0, 0.68611, 0.05382, 0, 0.69271], 84: [0, 0.68611, 0.15972, 0, 0.63663], 85: [0, 0.68611, 0.11424, 0, 0.80027], 86: [0, 0.68611, 0.25555, 0, 0.67778], 87: [0, 0.68611, 0.15972, 0, 1.09305], 88: [0, 0.68611, 0.07778, 0, 0.94722], 89: [0, 0.68611, 0.25555, 0, 0.67458], 90: [0, 0.68611, 0.06979, 0, 0.77257], 97: [0, 0.44444, 0, 0, 0.63287], 98: [0, 0.69444, 0, 0, 0.52083], 99: [0, 0.44444, 0, 0, 0.51342], 100: [0, 0.69444, 0, 0, 0.60972], 101: [0, 0.44444, 0, 0, 0.55361], 102: [0.19444, 0.69444, 0.11042, 0, 0.56806], 103: [0.19444, 0.44444, 0.03704, 0, 0.5449], 104: [0, 0.69444, 0, 0, 0.66759], 105: [0, 0.69326, 0, 0, 0.4048], 106: [0.19444, 0.69326, 0.0622, 0, 0.47083], 107: [0, 0.69444, 0.01852, 0, 0.6037], 108: [0, 0.69444, 88e-4, 0, 0.34815], 109: [0, 0.44444, 0, 0, 1.0324], 110: [0, 0.44444, 0, 0, 0.71296], 111: [0, 0.44444, 0, 0, 0.58472], 112: [0.19444, 0.44444, 0, 0, 0.60092], 113: [0.19444, 0.44444, 0.03704, 0, 0.54213], 114: [0, 0.44444, 0.03194, 0, 0.5287], 115: [0, 0.44444, 0, 0, 0.53125], 116: [0, 0.63492, 0, 0, 0.41528], 117: [0, 0.44444, 0, 0, 0.68102], 118: [0, 0.44444, 0.03704, 0, 0.56666], 119: [0, 0.44444, 0.02778, 0, 0.83148], 120: [0, 0.44444, 0, 0, 0.65903], 121: [0.19444, 0.44444, 0.03704, 0, 0.59028], 122: [0, 0.44444, 0.04213, 0, 0.55509], 160: [0, 0, 0, 0, 0.25], 915: [0, 0.68611, 0.15972, 0, 0.65694], 916: [0, 0.68611, 0, 0, 0.95833], 920: [0, 0.68611, 0.03194, 0, 0.86722], 923: [0, 0.68611, 0, 0, 0.80555], 926: [0, 0.68611, 0.07458, 0, 0.84125], 928: [0, 0.68611, 0.08229, 0, 0.98229], 931: [0, 0.68611, 0.05451, 0, 0.88507], 933: [0, 0.68611, 0.15972, 0, 0.67083], 934: [0, 0.68611, 0, 0, 0.76666], 936: [0, 0.68611, 0.11653, 0, 0.71402], 937: [0, 0.68611, 0.04835, 0, 0.8789], 945: [0, 0.44444, 0, 0, 0.76064], 946: [0.19444, 0.69444, 0.03403, 0, 0.65972], 947: [0.19444, 0.44444, 0.06389, 0, 0.59003], 948: [0, 0.69444, 0.03819, 0, 0.52222], 949: [0, 0.44444, 0, 0, 0.52882], 950: [0.19444, 0.69444, 0.06215, 0, 0.50833], 951: [0.19444, 0.44444, 0.03704, 0, 0.6], 952: [0, 0.69444, 0.03194, 0, 0.5618], 953: [0, 0.44444, 0, 0, 0.41204], 954: [0, 0.44444, 0, 0, 0.66759], 955: [0, 0.69444, 0, 0, 0.67083], 956: [0.19444, 0.44444, 0, 0, 0.70787], 957: [0, 0.44444, 0.06898, 0, 0.57685], 958: [0.19444, 0.69444, 0.03021, 0, 0.50833], 959: [0, 0.44444, 0, 0, 0.58472], 960: [0, 0.44444, 0.03704, 0, 0.68241], 961: [0.19444, 0.44444, 0, 0, 0.6118], 962: [0.09722, 0.44444, 0.07917, 0, 0.42361], 963: [0, 0.44444, 0.03704, 0, 0.68588], 964: [0, 0.44444, 0.13472, 0, 0.52083], 965: [0, 0.44444, 0.03704, 0, 0.63055], 966: [0.19444, 0.44444, 0, 0, 0.74722], 967: [0.19444, 0.44444, 0, 0, 0.71805], 968: [0.19444, 0.69444, 0.03704, 0, 0.75833], 969: [0, 0.44444, 0.03704, 0, 0.71782], 977: [0, 0.69444, 0, 0, 0.69155], 981: [0.19444, 0.69444, 0, 0, 0.7125], 982: [0, 0.44444, 0.03194, 0, 0.975], 1009: [0.19444, 0.44444, 0, 0, 0.6118], 1013: [0, 0.44444, 0, 0, 0.48333], 57649: [0, 0.44444, 0, 0, 0.39352], 57911: [0.19444, 0.44444, 0, 0, 0.43889] }, "Math-Italic": { 32: [0, 0, 0, 0, 0.25], 48: [0, 0.43056, 0, 0, 0.5], 49: [0, 0.43056, 0, 0, 0.5], 50: [0, 0.43056, 0, 0, 0.5], 51: [0.19444, 0.43056, 0, 0, 0.5], 52: [0.19444, 0.43056, 0, 0, 0.5], 53: [0.19444, 0.43056, 0, 0, 0.5], 54: [0, 0.64444, 0, 0, 0.5], 55: [0.19444, 0.43056, 0, 0, 0.5], 56: [0, 0.64444, 0, 0, 0.5], 57: [0.19444, 0.43056, 0, 0, 0.5], 65: [0, 0.68333, 0, 0.13889, 0.75], 66: [0, 0.68333, 0.05017, 0.08334, 0.75851], 67: [0, 0.68333, 0.07153, 0.08334, 0.71472], 68: [0, 0.68333, 0.02778, 0.05556, 0.82792], 69: [0, 0.68333, 0.05764, 0.08334, 0.7382], 70: [0, 0.68333, 0.13889, 0.08334, 0.64306], 71: [0, 0.68333, 0, 0.08334, 0.78625], 72: [0, 0.68333, 0.08125, 0.05556, 0.83125], 73: [0, 0.68333, 0.07847, 0.11111, 0.43958], 74: [0, 0.68333, 0.09618, 0.16667, 0.55451], 75: [0, 0.68333, 0.07153, 0.05556, 0.84931], 76: [0, 0.68333, 0, 0.02778, 0.68056], 77: [0, 0.68333, 0.10903, 0.08334, 0.97014], 78: [0, 0.68333, 0.10903, 0.08334, 0.80347], 79: [0, 0.68333, 0.02778, 0.08334, 0.76278], 80: [0, 0.68333, 0.13889, 0.08334, 0.64201], 81: [0.19444, 0.68333, 0, 0.08334, 0.79056], 82: [0, 0.68333, 773e-5, 0.08334, 0.75929], 83: [0, 0.68333, 0.05764, 0.08334, 0.6132], 84: [0, 0.68333, 0.13889, 0.08334, 0.58438], 85: [0, 0.68333, 0.10903, 0.02778, 0.68278], 86: [0, 0.68333, 0.22222, 0, 0.58333], 87: [0, 0.68333, 0.13889, 0, 0.94445], 88: [0, 0.68333, 0.07847, 0.08334, 0.82847], 89: [0, 0.68333, 0.22222, 0, 0.58056], 90: [0, 0.68333, 0.07153, 0.08334, 0.68264], 97: [0, 0.43056, 0, 0, 0.52859], 98: [0, 0.69444, 0, 0, 0.42917], 99: [0, 0.43056, 0, 0.05556, 0.43276], 100: [0, 0.69444, 0, 0.16667, 0.52049], 101: [0, 0.43056, 0, 0.05556, 0.46563], 102: [0.19444, 0.69444, 0.10764, 0.16667, 0.48959], 103: [0.19444, 0.43056, 0.03588, 0.02778, 0.47697], 104: [0, 0.69444, 0, 0, 0.57616], 105: [0, 0.65952, 0, 0, 0.34451], 106: [0.19444, 0.65952, 0.05724, 0, 0.41181], 107: [0, 0.69444, 0.03148, 0, 0.5206], 108: [0, 0.69444, 0.01968, 0.08334, 0.29838], 109: [0, 0.43056, 0, 0, 0.87801], 110: [0, 0.43056, 0, 0, 0.60023], 111: [0, 0.43056, 0, 0.05556, 0.48472], 112: [0.19444, 0.43056, 0, 0.08334, 0.50313], 113: [0.19444, 0.43056, 0.03588, 0.08334, 0.44641], 114: [0, 0.43056, 0.02778, 0.05556, 0.45116], 115: [0, 0.43056, 0, 0.05556, 0.46875], 116: [0, 0.61508, 0, 0.08334, 0.36111], 117: [0, 0.43056, 0, 0.02778, 0.57246], 118: [0, 0.43056, 0.03588, 0.02778, 0.48472], 119: [0, 0.43056, 0.02691, 0.08334, 0.71592], 120: [0, 0.43056, 0, 0.02778, 0.57153], 121: [0.19444, 0.43056, 0.03588, 0.05556, 0.49028], 122: [0, 0.43056, 0.04398, 0.05556, 0.46505], 160: [0, 0, 0, 0, 0.25], 915: [0, 0.68333, 0.13889, 0.08334, 0.61528], 916: [0, 0.68333, 0, 0.16667, 0.83334], 920: [0, 0.68333, 0.02778, 0.08334, 0.76278], 923: [0, 0.68333, 0, 0.16667, 0.69445], 926: [0, 0.68333, 0.07569, 0.08334, 0.74236], 928: [0, 0.68333, 0.08125, 0.05556, 0.83125], 931: [0, 0.68333, 0.05764, 0.08334, 0.77986], 933: [0, 0.68333, 0.13889, 0.05556, 0.58333], 934: [0, 0.68333, 0, 0.08334, 0.66667], 936: [0, 0.68333, 0.11, 0.05556, 0.61222], 937: [0, 0.68333, 0.05017, 0.08334, 0.7724], 945: [0, 0.43056, 37e-4, 0.02778, 0.6397], 946: [0.19444, 0.69444, 0.05278, 0.08334, 0.56563], 947: [0.19444, 0.43056, 0.05556, 0, 0.51773], 948: [0, 0.69444, 0.03785, 0.05556, 0.44444], 949: [0, 0.43056, 0, 0.08334, 0.46632], 950: [0.19444, 0.69444, 0.07378, 0.08334, 0.4375], 951: [0.19444, 0.43056, 0.03588, 0.05556, 0.49653], 952: [0, 0.69444, 0.02778, 0.08334, 0.46944], 953: [0, 0.43056, 0, 0.05556, 0.35394], 954: [0, 0.43056, 0, 0, 0.57616], 955: [0, 0.69444, 0, 0, 0.58334], 956: [0.19444, 0.43056, 0, 0.02778, 0.60255], 957: [0, 0.43056, 0.06366, 0.02778, 0.49398], 958: [0.19444, 0.69444, 0.04601, 0.11111, 0.4375], 959: [0, 0.43056, 0, 0.05556, 0.48472], 960: [0, 0.43056, 0.03588, 0, 0.57003], 961: [0.19444, 0.43056, 0, 0.08334, 0.51702], 962: [0.09722, 0.43056, 0.07986, 0.08334, 0.36285], 963: [0, 0.43056, 0.03588, 0, 0.57141], 964: [0, 0.43056, 0.1132, 0.02778, 0.43715], 965: [0, 0.43056, 0.03588, 0.02778, 0.54028], 966: [0.19444, 0.43056, 0, 0.08334, 0.65417], 967: [0.19444, 0.43056, 0, 0.05556, 0.62569], 968: [0.19444, 0.69444, 0.03588, 0.11111, 0.65139], 969: [0, 0.43056, 0.03588, 0, 0.62245], 977: [0, 0.69444, 0, 0.08334, 0.59144], 981: [0.19444, 0.69444, 0, 0.08334, 0.59583], 982: [0, 0.43056, 0.02778, 0, 0.82813], 1009: [0.19444, 0.43056, 0, 0.08334, 0.51702], 1013: [0, 0.43056, 0, 0.05556, 0.4059], 57649: [0, 0.43056, 0, 0.02778, 0.32246], 57911: [0.19444, 0.43056, 0, 0.08334, 0.38403] }, "SansSerif-Bold": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69444, 0, 0, 0.36667], 34: [0, 0.69444, 0, 0, 0.55834], 35: [0.19444, 0.69444, 0, 0, 0.91667], 36: [0.05556, 0.75, 0, 0, 0.55], 37: [0.05556, 0.75, 0, 0, 1.02912], 38: [0, 0.69444, 0, 0, 0.83056], 39: [0, 0.69444, 0, 0, 0.30556], 40: [0.25, 0.75, 0, 0, 0.42778], 41: [0.25, 0.75, 0, 0, 0.42778], 42: [0, 0.75, 0, 0, 0.55], 43: [0.11667, 0.61667, 0, 0, 0.85556], 44: [0.10556, 0.13056, 0, 0, 0.30556], 45: [0, 0.45833, 0, 0, 0.36667], 46: [0, 0.13056, 0, 0, 0.30556], 47: [0.25, 0.75, 0, 0, 0.55], 48: [0, 0.69444, 0, 0, 0.55], 49: [0, 0.69444, 0, 0, 0.55], 50: [0, 0.69444, 0, 0, 0.55], 51: [0, 0.69444, 0, 0, 0.55], 52: [0, 0.69444, 0, 0, 0.55], 53: [0, 0.69444, 0, 0, 0.55], 54: [0, 0.69444, 0, 0, 0.55], 55: [0, 0.69444, 0, 0, 0.55], 56: [0, 0.69444, 0, 0, 0.55], 57: [0, 0.69444, 0, 0, 0.55], 58: [0, 0.45833, 0, 0, 0.30556], 59: [0.10556, 0.45833, 0, 0, 0.30556], 61: [-0.09375, 0.40625, 0, 0, 0.85556], 63: [0, 0.69444, 0, 0, 0.51945], 64: [0, 0.69444, 0, 0, 0.73334], 65: [0, 0.69444, 0, 0, 0.73334], 66: [0, 0.69444, 0, 0, 0.73334], 67: [0, 0.69444, 0, 0, 0.70278], 68: [0, 0.69444, 0, 0, 0.79445], 69: [0, 0.69444, 0, 0, 0.64167], 70: [0, 0.69444, 0, 0, 0.61111], 71: [0, 0.69444, 0, 0, 0.73334], 72: [0, 0.69444, 0, 0, 0.79445], 73: [0, 0.69444, 0, 0, 0.33056], 74: [0, 0.69444, 0, 0, 0.51945], 75: [0, 0.69444, 0, 0, 0.76389], 76: [0, 0.69444, 0, 0, 0.58056], 77: [0, 0.69444, 0, 0, 0.97778], 78: [0, 0.69444, 0, 0, 0.79445], 79: [0, 0.69444, 0, 0, 0.79445], 80: [0, 0.69444, 0, 0, 0.70278], 81: [0.10556, 0.69444, 0, 0, 0.79445], 82: [0, 0.69444, 0, 0, 0.70278], 83: [0, 0.69444, 0, 0, 0.61111], 84: [0, 0.69444, 0, 0, 0.73334], 85: [0, 0.69444, 0, 0, 0.76389], 86: [0, 0.69444, 0.01528, 0, 0.73334], 87: [0, 0.69444, 0.01528, 0, 1.03889], 88: [0, 0.69444, 0, 0, 0.73334], 89: [0, 0.69444, 0.0275, 0, 0.73334], 90: [0, 0.69444, 0, 0, 0.67223], 91: [0.25, 0.75, 0, 0, 0.34306], 93: [0.25, 0.75, 0, 0, 0.34306], 94: [0, 0.69444, 0, 0, 0.55], 95: [0.35, 0.10833, 0.03056, 0, 0.55], 97: [0, 0.45833, 0, 0, 0.525], 98: [0, 0.69444, 0, 0, 0.56111], 99: [0, 0.45833, 0, 0, 0.48889], 100: [0, 0.69444, 0, 0, 0.56111], 101: [0, 0.45833, 0, 0, 0.51111], 102: [0, 0.69444, 0.07639, 0, 0.33611], 103: [0.19444, 0.45833, 0.01528, 0, 0.55], 104: [0, 0.69444, 0, 0, 0.56111], 105: [0, 0.69444, 0, 0, 0.25556], 106: [0.19444, 0.69444, 0, 0, 0.28611], 107: [0, 0.69444, 0, 0, 0.53056], 108: [0, 0.69444, 0, 0, 0.25556], 109: [0, 0.45833, 0, 0, 0.86667], 110: [0, 0.45833, 0, 0, 0.56111], 111: [0, 0.45833, 0, 0, 0.55], 112: [0.19444, 0.45833, 0, 0, 0.56111], 113: [0.19444, 0.45833, 0, 0, 0.56111], 114: [0, 0.45833, 0.01528, 0, 0.37222], 115: [0, 0.45833, 0, 0, 0.42167], 116: [0, 0.58929, 0, 0, 0.40417], 117: [0, 0.45833, 0, 0, 0.56111], 118: [0, 0.45833, 0.01528, 0, 0.5], 119: [0, 0.45833, 0.01528, 0, 0.74445], 120: [0, 0.45833, 0, 0, 0.5], 121: [0.19444, 0.45833, 0.01528, 0, 0.5], 122: [0, 0.45833, 0, 0, 0.47639], 126: [0.35, 0.34444, 0, 0, 0.55], 160: [0, 0, 0, 0, 0.25], 168: [0, 0.69444, 0, 0, 0.55], 176: [0, 0.69444, 0, 0, 0.73334], 180: [0, 0.69444, 0, 0, 0.55], 184: [0.17014, 0, 0, 0, 0.48889], 305: [0, 0.45833, 0, 0, 0.25556], 567: [0.19444, 0.45833, 0, 0, 0.28611], 710: [0, 0.69444, 0, 0, 0.55], 711: [0, 0.63542, 0, 0, 0.55], 713: [0, 0.63778, 0, 0, 0.55], 728: [0, 0.69444, 0, 0, 0.55], 729: [0, 0.69444, 0, 0, 0.30556], 730: [0, 0.69444, 0, 0, 0.73334], 732: [0, 0.69444, 0, 0, 0.55], 733: [0, 0.69444, 0, 0, 0.55], 915: [0, 0.69444, 0, 0, 0.58056], 916: [0, 0.69444, 0, 0, 0.91667], 920: [0, 0.69444, 0, 0, 0.85556], 923: [0, 0.69444, 0, 0, 0.67223], 926: [0, 0.69444, 0, 0, 0.73334], 928: [0, 0.69444, 0, 0, 0.79445], 931: [0, 0.69444, 0, 0, 0.79445], 933: [0, 0.69444, 0, 0, 0.85556], 934: [0, 0.69444, 0, 0, 0.79445], 936: [0, 0.69444, 0, 0, 0.85556], 937: [0, 0.69444, 0, 0, 0.79445], 8211: [0, 0.45833, 0.03056, 0, 0.55], 8212: [0, 0.45833, 0.03056, 0, 1.10001], 8216: [0, 0.69444, 0, 0, 0.30556], 8217: [0, 0.69444, 0, 0, 0.30556], 8220: [0, 0.69444, 0, 0, 0.55834], 8221: [0, 0.69444, 0, 0, 0.55834] }, "SansSerif-Italic": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69444, 0.05733, 0, 0.31945], 34: [0, 0.69444, 316e-5, 0, 0.5], 35: [0.19444, 0.69444, 0.05087, 0, 0.83334], 36: [0.05556, 0.75, 0.11156, 0, 0.5], 37: [0.05556, 0.75, 0.03126, 0, 0.83334], 38: [0, 0.69444, 0.03058, 0, 0.75834], 39: [0, 0.69444, 0.07816, 0, 0.27778], 40: [0.25, 0.75, 0.13164, 0, 0.38889], 41: [0.25, 0.75, 0.02536, 0, 0.38889], 42: [0, 0.75, 0.11775, 0, 0.5], 43: [0.08333, 0.58333, 0.02536, 0, 0.77778], 44: [0.125, 0.08333, 0, 0, 0.27778], 45: [0, 0.44444, 0.01946, 0, 0.33333], 46: [0, 0.08333, 0, 0, 0.27778], 47: [0.25, 0.75, 0.13164, 0, 0.5], 48: [0, 0.65556, 0.11156, 0, 0.5], 49: [0, 0.65556, 0.11156, 0, 0.5], 50: [0, 0.65556, 0.11156, 0, 0.5], 51: [0, 0.65556, 0.11156, 0, 0.5], 52: [0, 0.65556, 0.11156, 0, 0.5], 53: [0, 0.65556, 0.11156, 0, 0.5], 54: [0, 0.65556, 0.11156, 0, 0.5], 55: [0, 0.65556, 0.11156, 0, 0.5], 56: [0, 0.65556, 0.11156, 0, 0.5], 57: [0, 0.65556, 0.11156, 0, 0.5], 58: [0, 0.44444, 0.02502, 0, 0.27778], 59: [0.125, 0.44444, 0.02502, 0, 0.27778], 61: [-0.13, 0.37, 0.05087, 0, 0.77778], 63: [0, 0.69444, 0.11809, 0, 0.47222], 64: [0, 0.69444, 0.07555, 0, 0.66667], 65: [0, 0.69444, 0, 0, 0.66667], 66: [0, 0.69444, 0.08293, 0, 0.66667], 67: [0, 0.69444, 0.11983, 0, 0.63889], 68: [0, 0.69444, 0.07555, 0, 0.72223], 69: [0, 0.69444, 0.11983, 0, 0.59722], 70: [0, 0.69444, 0.13372, 0, 0.56945], 71: [0, 0.69444, 0.11983, 0, 0.66667], 72: [0, 0.69444, 0.08094, 0, 0.70834], 73: [0, 0.69444, 0.13372, 0, 0.27778], 74: [0, 0.69444, 0.08094, 0, 0.47222], 75: [0, 0.69444, 0.11983, 0, 0.69445], 76: [0, 0.69444, 0, 0, 0.54167], 77: [0, 0.69444, 0.08094, 0, 0.875], 78: [0, 0.69444, 0.08094, 0, 0.70834], 79: [0, 0.69444, 0.07555, 0, 0.73611], 80: [0, 0.69444, 0.08293, 0, 0.63889], 81: [0.125, 0.69444, 0.07555, 0, 0.73611], 82: [0, 0.69444, 0.08293, 0, 0.64584], 83: [0, 0.69444, 0.09205, 0, 0.55556], 84: [0, 0.69444, 0.13372, 0, 0.68056], 85: [0, 0.69444, 0.08094, 0, 0.6875], 86: [0, 0.69444, 0.1615, 0, 0.66667], 87: [0, 0.69444, 0.1615, 0, 0.94445], 88: [0, 0.69444, 0.13372, 0, 0.66667], 89: [0, 0.69444, 0.17261, 0, 0.66667], 90: [0, 0.69444, 0.11983, 0, 0.61111], 91: [0.25, 0.75, 0.15942, 0, 0.28889], 93: [0.25, 0.75, 0.08719, 0, 0.28889], 94: [0, 0.69444, 0.0799, 0, 0.5], 95: [0.35, 0.09444, 0.08616, 0, 0.5], 97: [0, 0.44444, 981e-5, 0, 0.48056], 98: [0, 0.69444, 0.03057, 0, 0.51667], 99: [0, 0.44444, 0.08336, 0, 0.44445], 100: [0, 0.69444, 0.09483, 0, 0.51667], 101: [0, 0.44444, 0.06778, 0, 0.44445], 102: [0, 0.69444, 0.21705, 0, 0.30556], 103: [0.19444, 0.44444, 0.10836, 0, 0.5], 104: [0, 0.69444, 0.01778, 0, 0.51667], 105: [0, 0.67937, 0.09718, 0, 0.23889], 106: [0.19444, 0.67937, 0.09162, 0, 0.26667], 107: [0, 0.69444, 0.08336, 0, 0.48889], 108: [0, 0.69444, 0.09483, 0, 0.23889], 109: [0, 0.44444, 0.01778, 0, 0.79445], 110: [0, 0.44444, 0.01778, 0, 0.51667], 111: [0, 0.44444, 0.06613, 0, 0.5], 112: [0.19444, 0.44444, 0.0389, 0, 0.51667], 113: [0.19444, 0.44444, 0.04169, 0, 0.51667], 114: [0, 0.44444, 0.10836, 0, 0.34167], 115: [0, 0.44444, 0.0778, 0, 0.38333], 116: [0, 0.57143, 0.07225, 0, 0.36111], 117: [0, 0.44444, 0.04169, 0, 0.51667], 118: [0, 0.44444, 0.10836, 0, 0.46111], 119: [0, 0.44444, 0.10836, 0, 0.68334], 120: [0, 0.44444, 0.09169, 0, 0.46111], 121: [0.19444, 0.44444, 0.10836, 0, 0.46111], 122: [0, 0.44444, 0.08752, 0, 0.43472], 126: [0.35, 0.32659, 0.08826, 0, 0.5], 160: [0, 0, 0, 0, 0.25], 168: [0, 0.67937, 0.06385, 0, 0.5], 176: [0, 0.69444, 0, 0, 0.73752], 184: [0.17014, 0, 0, 0, 0.44445], 305: [0, 0.44444, 0.04169, 0, 0.23889], 567: [0.19444, 0.44444, 0.04169, 0, 0.26667], 710: [0, 0.69444, 0.0799, 0, 0.5], 711: [0, 0.63194, 0.08432, 0, 0.5], 713: [0, 0.60889, 0.08776, 0, 0.5], 714: [0, 0.69444, 0.09205, 0, 0.5], 715: [0, 0.69444, 0, 0, 0.5], 728: [0, 0.69444, 0.09483, 0, 0.5], 729: [0, 0.67937, 0.07774, 0, 0.27778], 730: [0, 0.69444, 0, 0, 0.73752], 732: [0, 0.67659, 0.08826, 0, 0.5], 733: [0, 0.69444, 0.09205, 0, 0.5], 915: [0, 0.69444, 0.13372, 0, 0.54167], 916: [0, 0.69444, 0, 0, 0.83334], 920: [0, 0.69444, 0.07555, 0, 0.77778], 923: [0, 0.69444, 0, 0, 0.61111], 926: [0, 0.69444, 0.12816, 0, 0.66667], 928: [0, 0.69444, 0.08094, 0, 0.70834], 931: [0, 0.69444, 0.11983, 0, 0.72222], 933: [0, 0.69444, 0.09031, 0, 0.77778], 934: [0, 0.69444, 0.04603, 0, 0.72222], 936: [0, 0.69444, 0.09031, 0, 0.77778], 937: [0, 0.69444, 0.08293, 0, 0.72222], 8211: [0, 0.44444, 0.08616, 0, 0.5], 8212: [0, 0.44444, 0.08616, 0, 1], 8216: [0, 0.69444, 0.07816, 0, 0.27778], 8217: [0, 0.69444, 0.07816, 0, 0.27778], 8220: [0, 0.69444, 0.14205, 0, 0.5], 8221: [0, 0.69444, 316e-5, 0, 0.5] }, "SansSerif-Regular": { 32: [0, 0, 0, 0, 0.25], 33: [0, 0.69444, 0, 0, 0.31945], 34: [0, 0.69444, 0, 0, 0.5], 35: [0.19444, 0.69444, 0, 0, 0.83334], 36: [0.05556, 0.75, 0, 0, 0.5], 37: [0.05556, 0.75, 0, 0, 0.83334], 38: [0, 0.69444, 0, 0, 0.75834], 39: [0, 0.69444, 0, 0, 0.27778], 40: [0.25, 0.75, 0, 0, 0.38889], 41: [0.25, 0.75, 0, 0, 0.38889], 42: [0, 0.75, 0, 0, 0.5], 43: [0.08333, 0.58333, 0, 0, 0.77778], 44: [0.125, 0.08333, 0, 0, 0.27778], 45: [0, 0.44444, 0, 0, 0.33333], 46: [0, 0.08333, 0, 0, 0.27778], 47: [0.25, 0.75, 0, 0, 0.5], 48: [0, 0.65556, 0, 0, 0.5], 49: [0, 0.65556, 0, 0, 0.5], 50: [0, 0.65556, 0, 0, 0.5], 51: [0, 0.65556, 0, 0, 0.5], 52: [0, 0.65556, 0, 0, 0.5], 53: [0, 0.65556, 0, 0, 0.5], 54: [0, 0.65556, 0, 0, 0.5], 55: [0, 0.65556, 0, 0, 0.5], 56: [0, 0.65556, 0, 0, 0.5], 57: [0, 0.65556, 0, 0, 0.5], 58: [0, 0.44444, 0, 0, 0.27778], 59: [0.125, 0.44444, 0, 0, 0.27778], 61: [-0.13, 0.37, 0, 0, 0.77778], 63: [0, 0.69444, 0, 0, 0.47222], 64: [0, 0.69444, 0, 0, 0.66667], 65: [0, 0.69444, 0, 0, 0.66667], 66: [0, 0.69444, 0, 0, 0.66667], 67: [0, 0.69444, 0, 0, 0.63889], 68: [0, 0.69444, 0, 0, 0.72223], 69: [0, 0.69444, 0, 0, 0.59722], 70: [0, 0.69444, 0, 0, 0.56945], 71: [0, 0.69444, 0, 0, 0.66667], 72: [0, 0.69444, 0, 0, 0.70834], 73: [0, 0.69444, 0, 0, 0.27778], 74: [0, 0.69444, 0, 0, 0.47222], 75: [0, 0.69444, 0, 0, 0.69445], 76: [0, 0.69444, 0, 0, 0.54167], 77: [0, 0.69444, 0, 0, 0.875], 78: [0, 0.69444, 0, 0, 0.70834], 79: [0, 0.69444, 0, 0, 0.73611], 80: [0, 0.69444, 0, 0, 0.63889], 81: [0.125, 0.69444, 0, 0, 0.73611], 82: [0, 0.69444, 0, 0, 0.64584], 83: [0, 0.69444, 0, 0, 0.55556], 84: [0, 0.69444, 0, 0, 0.68056], 85: [0, 0.69444, 0, 0, 0.6875], 86: [0, 0.69444, 0.01389, 0, 0.66667], 87: [0, 0.69444, 0.01389, 0, 0.94445], 88: [0, 0.69444, 0, 0, 0.66667], 89: [0, 0.69444, 0.025, 0, 0.66667], 90: [0, 0.69444, 0, 0, 0.61111], 91: [0.25, 0.75, 0, 0, 0.28889], 93: [0.25, 0.75, 0, 0, 0.28889], 94: [0, 0.69444, 0, 0, 0.5], 95: [0.35, 0.09444, 0.02778, 0, 0.5], 97: [0, 0.44444, 0, 0, 0.48056], 98: [0, 0.69444, 0, 0, 0.51667], 99: [0, 0.44444, 0, 0, 0.44445], 100: [0, 0.69444, 0, 0, 0.51667], 101: [0, 0.44444, 0, 0, 0.44445], 102: [0, 0.69444, 0.06944, 0, 0.30556], 103: [0.19444, 0.44444, 0.01389, 0, 0.5], 104: [0, 0.69444, 0, 0, 0.51667], 105: [0, 0.67937, 0, 0, 0.23889], 106: [0.19444, 0.67937, 0, 0, 0.26667], 107: [0, 0.69444, 0, 0, 0.48889], 108: [0, 0.69444, 0, 0, 0.23889], 109: [0, 0.44444, 0, 0, 0.79445], 110: [0, 0.44444, 0, 0, 0.51667], 111: [0, 0.44444, 0, 0, 0.5], 112: [0.19444, 0.44444, 0, 0, 0.51667], 113: [0.19444, 0.44444, 0, 0, 0.51667], 114: [0, 0.44444, 0.01389, 0, 0.34167], 115: [0, 0.44444, 0, 0, 0.38333], 116: [0, 0.57143, 0, 0, 0.36111], 117: [0, 0.44444, 0, 0, 0.51667], 118: [0, 0.44444, 0.01389, 0, 0.46111], 119: [0, 0.44444, 0.01389, 0, 0.68334], 120: [0, 0.44444, 0, 0, 0.46111], 121: [0.19444, 0.44444, 0.01389, 0, 0.46111], 122: [0, 0.44444, 0, 0, 0.43472], 126: [0.35, 0.32659, 0, 0, 0.5], 160: [0, 0, 0, 0, 0.25], 168: [0, 0.67937, 0, 0, 0.5], 176: [0, 0.69444, 0, 0, 0.66667], 184: [0.17014, 0, 0, 0, 0.44445], 305: [0, 0.44444, 0, 0, 0.23889], 567: [0.19444, 0.44444, 0, 0, 0.26667], 710: [0, 0.69444, 0, 0, 0.5], 711: [0, 0.63194, 0, 0, 0.5], 713: [0, 0.60889, 0, 0, 0.5], 714: [0, 0.69444, 0, 0, 0.5], 715: [0, 0.69444, 0, 0, 0.5], 728: [0, 0.69444, 0, 0, 0.5], 729: [0, 0.67937, 0, 0, 0.27778], 730: [0, 0.69444, 0, 0, 0.66667], 732: [0, 0.67659, 0, 0, 0.5], 733: [0, 0.69444, 0, 0, 0.5], 915: [0, 0.69444, 0, 0, 0.54167], 916: [0, 0.69444, 0, 0, 0.83334], 920: [0, 0.69444, 0, 0, 0.77778], 923: [0, 0.69444, 0, 0, 0.61111], 926: [0, 0.69444, 0, 0, 0.66667], 928: [0, 0.69444, 0, 0, 0.70834], 931: [0, 0.69444, 0, 0, 0.72222], 933: [0, 0.69444, 0, 0, 0.77778], 934: [0, 0.69444, 0, 0, 0.72222], 936: [0, 0.69444, 0, 0, 0.77778], 937: [0, 0.69444, 0, 0, 0.72222], 8211: [0, 0.44444, 0.02778, 0, 0.5], 8212: [0, 0.44444, 0.02778, 0, 1], 8216: [0, 0.69444, 0, 0, 0.27778], 8217: [0, 0.69444, 0, 0, 0.27778], 8220: [0, 0.69444, 0, 0, 0.5], 8221: [0, 0.69444, 0, 0, 0.5] }, "Script-Regular": { 32: [0, 0, 0, 0, 0.25], 65: [0, 0.7, 0.22925, 0, 0.80253], 66: [0, 0.7, 0.04087, 0, 0.90757], 67: [0, 0.7, 0.1689, 0, 0.66619], 68: [0, 0.7, 0.09371, 0, 0.77443], 69: [0, 0.7, 0.18583, 0, 0.56162], 70: [0, 0.7, 0.13634, 0, 0.89544], 71: [0, 0.7, 0.17322, 0, 0.60961], 72: [0, 0.7, 0.29694, 0, 0.96919], 73: [0, 0.7, 0.19189, 0, 0.80907], 74: [0.27778, 0.7, 0.19189, 0, 1.05159], 75: [0, 0.7, 0.31259, 0, 0.91364], 76: [0, 0.7, 0.19189, 0, 0.87373], 77: [0, 0.7, 0.15981, 0, 1.08031], 78: [0, 0.7, 0.3525, 0, 0.9015], 79: [0, 0.7, 0.08078, 0, 0.73787], 80: [0, 0.7, 0.08078, 0, 1.01262], 81: [0, 0.7, 0.03305, 0, 0.88282], 82: [0, 0.7, 0.06259, 0, 0.85], 83: [0, 0.7, 0.19189, 0, 0.86767], 84: [0, 0.7, 0.29087, 0, 0.74697], 85: [0, 0.7, 0.25815, 0, 0.79996], 86: [0, 0.7, 0.27523, 0, 0.62204], 87: [0, 0.7, 0.27523, 0, 0.80532], 88: [0, 0.7, 0.26006, 0, 0.94445], 89: [0, 0.7, 0.2939, 0, 0.70961], 90: [0, 0.7, 0.24037, 0, 0.8212], 160: [0, 0, 0, 0, 0.25] }, "Size1-Regular": { 32: [0, 0, 0, 0, 0.25], 40: [0.35001, 0.85, 0, 0, 0.45834], 41: [0.35001, 0.85, 0, 0, 0.45834], 47: [0.35001, 0.85, 0, 0, 0.57778], 91: [0.35001, 0.85, 0, 0, 0.41667], 92: [0.35001, 0.85, 0, 0, 0.57778], 93: [0.35001, 0.85, 0, 0, 0.41667], 123: [0.35001, 0.85, 0, 0, 0.58334], 125: [0.35001, 0.85, 0, 0, 0.58334], 160: [0, 0, 0, 0, 0.25], 710: [0, 0.72222, 0, 0, 0.55556], 732: [0, 0.72222, 0, 0, 0.55556], 770: [0, 0.72222, 0, 0, 0.55556], 771: [0, 0.72222, 0, 0, 0.55556], 8214: [-99e-5, 0.601, 0, 0, 0.77778], 8593: [1e-5, 0.6, 0, 0, 0.66667], 8595: [1e-5, 0.6, 0, 0, 0.66667], 8657: [1e-5, 0.6, 0, 0, 0.77778], 8659: [1e-5, 0.6, 0, 0, 0.77778], 8719: [0.25001, 0.75, 0, 0, 0.94445], 8720: [0.25001, 0.75, 0, 0, 0.94445], 8721: [0.25001, 0.75, 0, 0, 1.05556], 8730: [0.35001, 0.85, 0, 0, 1], 8739: [-599e-5, 0.606, 0, 0, 0.33333], 8741: [-599e-5, 0.606, 0, 0, 0.55556], 8747: [0.30612, 0.805, 0.19445, 0, 0.47222], 8748: [0.306, 0.805, 0.19445, 0, 0.47222], 8749: [0.306, 0.805, 0.19445, 0, 0.47222], 8750: [0.30612, 0.805, 0.19445, 0, 0.47222], 8896: [0.25001, 0.75, 0, 0, 0.83334], 8897: [0.25001, 0.75, 0, 0, 0.83334], 8898: [0.25001, 0.75, 0, 0, 0.83334], 8899: [0.25001, 0.75, 0, 0, 0.83334], 8968: [0.35001, 0.85, 0, 0, 0.47222], 8969: [0.35001, 0.85, 0, 0, 0.47222], 8970: [0.35001, 0.85, 0, 0, 0.47222], 8971: [0.35001, 0.85, 0, 0, 0.47222], 9168: [-99e-5, 0.601, 0, 0, 0.66667], 10216: [0.35001, 0.85, 0, 0, 0.47222], 10217: [0.35001, 0.85, 0, 0, 0.47222], 10752: [0.25001, 0.75, 0, 0, 1.11111], 10753: [0.25001, 0.75, 0, 0, 1.11111], 10754: [0.25001, 0.75, 0, 0, 1.11111], 10756: [0.25001, 0.75, 0, 0, 0.83334], 10758: [0.25001, 0.75, 0, 0, 0.83334] }, "Size2-Regular": { 32: [0, 0, 0, 0, 0.25], 40: [0.65002, 1.15, 0, 0, 0.59722], 41: [0.65002, 1.15, 0, 0, 0.59722], 47: [0.65002, 1.15, 0, 0, 0.81111], 91: [0.65002, 1.15, 0, 0, 0.47222], 92: [0.65002, 1.15, 0, 0, 0.81111], 93: [0.65002, 1.15, 0, 0, 0.47222], 123: [0.65002, 1.15, 0, 0, 0.66667], 125: [0.65002, 1.15, 0, 0, 0.66667], 160: [0, 0, 0, 0, 0.25], 710: [0, 0.75, 0, 0, 1], 732: [0, 0.75, 0, 0, 1], 770: [0, 0.75, 0, 0, 1], 771: [0, 0.75, 0, 0, 1], 8719: [0.55001, 1.05, 0, 0, 1.27778], 8720: [0.55001, 1.05, 0, 0, 1.27778], 8721: [0.55001, 1.05, 0, 0, 1.44445], 8730: [0.65002, 1.15, 0, 0, 1], 8747: [0.86225, 1.36, 0.44445, 0, 0.55556], 8748: [0.862, 1.36, 0.44445, 0, 0.55556], 8749: [0.862, 1.36, 0.44445, 0, 0.55556], 8750: [0.86225, 1.36, 0.44445, 0, 0.55556], 8896: [0.55001, 1.05, 0, 0, 1.11111], 8897: [0.55001, 1.05, 0, 0, 1.11111], 8898: [0.55001, 1.05, 0, 0, 1.11111], 8899: [0.55001, 1.05, 0, 0, 1.11111], 8968: [0.65002, 1.15, 0, 0, 0.52778], 8969: [0.65002, 1.15, 0, 0, 0.52778], 8970: [0.65002, 1.15, 0, 0, 0.52778], 8971: [0.65002, 1.15, 0, 0, 0.52778], 10216: [0.65002, 1.15, 0, 0, 0.61111], 10217: [0.65002, 1.15, 0, 0, 0.61111], 10752: [0.55001, 1.05, 0, 0, 1.51112], 10753: [0.55001, 1.05, 0, 0, 1.51112], 10754: [0.55001, 1.05, 0, 0, 1.51112], 10756: [0.55001, 1.05, 0, 0, 1.11111], 10758: [0.55001, 1.05, 0, 0, 1.11111] }, "Size3-Regular": { 32: [0, 0, 0, 0, 0.25], 40: [0.95003, 1.45, 0, 0, 0.73611], 41: [0.95003, 1.45, 0, 0, 0.73611], 47: [0.95003, 1.45, 0, 0, 1.04445], 91: [0.95003, 1.45, 0, 0, 0.52778], 92: [0.95003, 1.45, 0, 0, 1.04445], 93: [0.95003, 1.45, 0, 0, 0.52778], 123: [0.95003, 1.45, 0, 0, 0.75], 125: [0.95003, 1.45, 0, 0, 0.75], 160: [0, 0, 0, 0, 0.25], 710: [0, 0.75, 0, 0, 1.44445], 732: [0, 0.75, 0, 0, 1.44445], 770: [0, 0.75, 0, 0, 1.44445], 771: [0, 0.75, 0, 0, 1.44445], 8730: [0.95003, 1.45, 0, 0, 1], 8968: [0.95003, 1.45, 0, 0, 0.58334], 8969: [0.95003, 1.45, 0, 0, 0.58334], 8970: [0.95003, 1.45, 0, 0, 0.58334], 8971: [0.95003, 1.45, 0, 0, 0.58334], 10216: [0.95003, 1.45, 0, 0, 0.75], 10217: [0.95003, 1.45, 0, 0, 0.75] }, "Size4-Regular": { 32: [0, 0, 0, 0, 0.25], 40: [1.25003, 1.75, 0, 0, 0.79167], 41: [1.25003, 1.75, 0, 0, 0.79167], 47: [1.25003, 1.75, 0, 0, 1.27778], 91: [1.25003, 1.75, 0, 0, 0.58334], 92: [1.25003, 1.75, 0, 0, 1.27778], 93: [1.25003, 1.75, 0, 0, 0.58334], 123: [1.25003, 1.75, 0, 0, 0.80556], 125: [1.25003, 1.75, 0, 0, 0.80556], 160: [0, 0, 0, 0, 0.25], 710: [0, 0.825, 0, 0, 1.8889], 732: [0, 0.825, 0, 0, 1.8889], 770: [0, 0.825, 0, 0, 1.8889], 771: [0, 0.825, 0, 0, 1.8889], 8730: [1.25003, 1.75, 0, 0, 1], 8968: [1.25003, 1.75, 0, 0, 0.63889], 8969: [1.25003, 1.75, 0, 0, 0.63889], 8970: [1.25003, 1.75, 0, 0, 0.63889], 8971: [1.25003, 1.75, 0, 0, 0.63889], 9115: [0.64502, 1.155, 0, 0, 0.875], 9116: [1e-5, 0.6, 0, 0, 0.875], 9117: [0.64502, 1.155, 0, 0, 0.875], 9118: [0.64502, 1.155, 0, 0, 0.875], 9119: [1e-5, 0.6, 0, 0, 0.875], 9120: [0.64502, 1.155, 0, 0, 0.875], 9121: [0.64502, 1.155, 0, 0, 0.66667], 9122: [-99e-5, 0.601, 0, 0, 0.66667], 9123: [0.64502, 1.155, 0, 0, 0.66667], 9124: [0.64502, 1.155, 0, 0, 0.66667], 9125: [-99e-5, 0.601, 0, 0, 0.66667], 9126: [0.64502, 1.155, 0, 0, 0.66667], 9127: [1e-5, 0.9, 0, 0, 0.88889], 9128: [0.65002, 1.15, 0, 0, 0.88889], 9129: [0.90001, 0, 0, 0, 0.88889], 9130: [0, 0.3, 0, 0, 0.88889], 9131: [1e-5, 0.9, 0, 0, 0.88889], 9132: [0.65002, 1.15, 0, 0, 0.88889], 9133: [0.90001, 0, 0, 0, 0.88889], 9143: [0.88502, 0.915, 0, 0, 1.05556], 10216: [1.25003, 1.75, 0, 0, 0.80556], 10217: [1.25003, 1.75, 0, 0, 0.80556], 57344: [-499e-5, 0.605, 0, 0, 1.05556], 57345: [-499e-5, 0.605, 0, 0, 1.05556], 57680: [0, 0.12, 0, 0, 0.45], 57681: [0, 0.12, 0, 0, 0.45], 57682: [0, 0.12, 0, 0, 0.45], 57683: [0, 0.12, 0, 0, 0.45] }, "Typewriter-Regular": { 32: [0, 0, 0, 0, 0.525], 33: [0, 0.61111, 0, 0, 0.525], 34: [0, 0.61111, 0, 0, 0.525], 35: [0, 0.61111, 0, 0, 0.525], 36: [0.08333, 0.69444, 0, 0, 0.525], 37: [0.08333, 0.69444, 0, 0, 0.525], 38: [0, 0.61111, 0, 0, 0.525], 39: [0, 0.61111, 0, 0, 0.525], 40: [0.08333, 0.69444, 0, 0, 0.525], 41: [0.08333, 0.69444, 0, 0, 0.525], 42: [0, 0.52083, 0, 0, 0.525], 43: [-0.08056, 0.53055, 0, 0, 0.525], 44: [0.13889, 0.125, 0, 0, 0.525], 45: [-0.08056, 0.53055, 0, 0, 0.525], 46: [0, 0.125, 0, 0, 0.525], 47: [0.08333, 0.69444, 0, 0, 0.525], 48: [0, 0.61111, 0, 0, 0.525], 49: [0, 0.61111, 0, 0, 0.525], 50: [0, 0.61111, 0, 0, 0.525], 51: [0, 0.61111, 0, 0, 0.525], 52: [0, 0.61111, 0, 0, 0.525], 53: [0, 0.61111, 0, 0, 0.525], 54: [0, 0.61111, 0, 0, 0.525], 55: [0, 0.61111, 0, 0, 0.525], 56: [0, 0.61111, 0, 0, 0.525], 57: [0, 0.61111, 0, 0, 0.525], 58: [0, 0.43056, 0, 0, 0.525], 59: [0.13889, 0.43056, 0, 0, 0.525], 60: [-0.05556, 0.55556, 0, 0, 0.525], 61: [-0.19549, 0.41562, 0, 0, 0.525], 62: [-0.05556, 0.55556, 0, 0, 0.525], 63: [0, 0.61111, 0, 0, 0.525], 64: [0, 0.61111, 0, 0, 0.525], 65: [0, 0.61111, 0, 0, 0.525], 66: [0, 0.61111, 0, 0, 0.525], 67: [0, 0.61111, 0, 0, 0.525], 68: [0, 0.61111, 0, 0, 0.525], 69: [0, 0.61111, 0, 0, 0.525], 70: [0, 0.61111, 0, 0, 0.525], 71: [0, 0.61111, 0, 0, 0.525], 72: [0, 0.61111, 0, 0, 0.525], 73: [0, 0.61111, 0, 0, 0.525], 74: [0, 0.61111, 0, 0, 0.525], 75: [0, 0.61111, 0, 0, 0.525], 76: [0, 0.61111, 0, 0, 0.525], 77: [0, 0.61111, 0, 0, 0.525], 78: [0, 0.61111, 0, 0, 0.525], 79: [0, 0.61111, 0, 0, 0.525], 80: [0, 0.61111, 0, 0, 0.525], 81: [0.13889, 0.61111, 0, 0, 0.525], 82: [0, 0.61111, 0, 0, 0.525], 83: [0, 0.61111, 0, 0, 0.525], 84: [0, 0.61111, 0, 0, 0.525], 85: [0, 0.61111, 0, 0, 0.525], 86: [0, 0.61111, 0, 0, 0.525], 87: [0, 0.61111, 0, 0, 0.525], 88: [0, 0.61111, 0, 0, 0.525], 89: [0, 0.61111, 0, 0, 0.525], 90: [0, 0.61111, 0, 0, 0.525], 91: [0.08333, 0.69444, 0, 0, 0.525], 92: [0.08333, 0.69444, 0, 0, 0.525], 93: [0.08333, 0.69444, 0, 0, 0.525], 94: [0, 0.61111, 0, 0, 0.525], 95: [0.09514, 0, 0, 0, 0.525], 96: [0, 0.61111, 0, 0, 0.525], 97: [0, 0.43056, 0, 0, 0.525], 98: [0, 0.61111, 0, 0, 0.525], 99: [0, 0.43056, 0, 0, 0.525], 100: [0, 0.61111, 0, 0, 0.525], 101: [0, 0.43056, 0, 0, 0.525], 102: [0, 0.61111, 0, 0, 0.525], 103: [0.22222, 0.43056, 0, 0, 0.525], 104: [0, 0.61111, 0, 0, 0.525], 105: [0, 0.61111, 0, 0, 0.525], 106: [0.22222, 0.61111, 0, 0, 0.525], 107: [0, 0.61111, 0, 0, 0.525], 108: [0, 0.61111, 0, 0, 0.525], 109: [0, 0.43056, 0, 0, 0.525], 110: [0, 0.43056, 0, 0, 0.525], 111: [0, 0.43056, 0, 0, 0.525], 112: [0.22222, 0.43056, 0, 0, 0.525], 113: [0.22222, 0.43056, 0, 0, 0.525], 114: [0, 0.43056, 0, 0, 0.525], 115: [0, 0.43056, 0, 0, 0.525], 116: [0, 0.55358, 0, 0, 0.525], 117: [0, 0.43056, 0, 0, 0.525], 118: [0, 0.43056, 0, 0, 0.525], 119: [0, 0.43056, 0, 0, 0.525], 120: [0, 0.43056, 0, 0, 0.525], 121: [0.22222, 0.43056, 0, 0, 0.525], 122: [0, 0.43056, 0, 0, 0.525], 123: [0.08333, 0.69444, 0, 0, 0.525], 124: [0.08333, 0.69444, 0, 0, 0.525], 125: [0.08333, 0.69444, 0, 0, 0.525], 126: [0, 0.61111, 0, 0, 0.525], 127: [0, 0.61111, 0, 0, 0.525], 160: [0, 0, 0, 0, 0.525], 176: [0, 0.61111, 0, 0, 0.525], 184: [0.19445, 0, 0, 0, 0.525], 305: [0, 0.43056, 0, 0, 0.525], 567: [0.22222, 0.43056, 0, 0, 0.525], 711: [0, 0.56597, 0, 0, 0.525], 713: [0, 0.56555, 0, 0, 0.525], 714: [0, 0.61111, 0, 0, 0.525], 715: [0, 0.61111, 0, 0, 0.525], 728: [0, 0.61111, 0, 0, 0.525], 730: [0, 0.61111, 0, 0, 0.525], 770: [0, 0.61111, 0, 0, 0.525], 771: [0, 0.61111, 0, 0, 0.525], 776: [0, 0.61111, 0, 0, 0.525], 915: [0, 0.61111, 0, 0, 0.525], 916: [0, 0.61111, 0, 0, 0.525], 920: [0, 0.61111, 0, 0, 0.525], 923: [0, 0.61111, 0, 0, 0.525], 926: [0, 0.61111, 0, 0, 0.525], 928: [0, 0.61111, 0, 0, 0.525], 931: [0, 0.61111, 0, 0, 0.525], 933: [0, 0.61111, 0, 0, 0.525], 934: [0, 0.61111, 0, 0, 0.525], 936: [0, 0.61111, 0, 0, 0.525], 937: [0, 0.61111, 0, 0, 0.525], 8216: [0, 0.61111, 0, 0, 0.525], 8217: [0, 0.61111, 0, 0, 0.525], 8242: [0, 0.61111, 0, 0, 0.525], 9251: [0.11111, 0.21944, 0, 0, 0.525] } }, Ni = { slant: [0.25, 0.25, 0.25], // sigma1 space: [0, 0, 0], // sigma2 stretch: [0, 0, 0], // sigma3 shrink: [0, 0, 0], // sigma4 xHeight: [0.431, 0.431, 0.431], // sigma5 quad: [1, 1.171, 1.472], // sigma6 extraSpace: [0, 0, 0], // sigma7 num1: [0.677, 0.732, 0.925], // sigma8 num2: [0.394, 0.384, 0.387], // sigma9 num3: [0.444, 0.471, 0.504], // sigma10 denom1: [0.686, 0.752, 1.025], // sigma11 denom2: [0.345, 0.344, 0.532], // sigma12 sup1: [0.413, 0.503, 0.504], // sigma13 sup2: [0.363, 0.431, 0.404], // sigma14 sup3: [0.289, 0.286, 0.294], // sigma15 sub1: [0.15, 0.143, 0.2], // sigma16 sub2: [0.247, 0.286, 0.4], // sigma17 supDrop: [0.386, 0.353, 0.494], // sigma18 subDrop: [0.05, 0.071, 0.1], // sigma19 delim1: [2.39, 1.7, 1.98], // sigma20 delim2: [1.01, 1.157, 1.42], // sigma21 axisHeight: [0.25, 0.25, 0.25], // sigma22 // These font metrics are extracted from TeX by using tftopl on cmex10.tfm; // they correspond to the font parameters of the extension fonts (family 3). // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to // match cmex7, we'd use cmex7.tfm values for script and scriptscript // values. defaultRuleThickness: [0.04, 0.049, 0.049], // xi8; cmex7: 0.049 bigOpSpacing1: [0.111, 0.111, 0.111], // xi9 bigOpSpacing2: [0.166, 0.166, 0.166], // xi10 bigOpSpacing3: [0.2, 0.2, 0.2], // xi11 bigOpSpacing4: [0.6, 0.611, 0.611], // xi12; cmex7: 0.611 bigOpSpacing5: [0.1, 0.143, 0.143], // xi13; cmex7: 0.143 // The \sqrt rule width is taken from the height of the surd character. // Since we use the same font at all sizes, this thickness doesn't scale. sqrtRuleThickness: [0.04, 0.04, 0.04], // This value determines how large a pt is, for metrics which are defined // in terms of pts. // This value is also used in katex.scss; if you change it make sure the // values match. ptPerEm: [10, 10, 10], // The space between adjacent `|` columns in an array definition. From // `\showthe\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm. doubleRuleSep: [0.2, 0.2, 0.2], // The width of separator lines in {array} environments. From // `\showthe\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm. arrayRuleWidth: [0.04, 0.04, 0.04], // Two values from LaTeX source2e: fboxsep: [0.3, 0.3, 0.3], // 3 pt / ptPerEm fboxrule: [0.04, 0.04, 0.04] // 0.4 pt / ptPerEm }, Y1 = { // Latin-1 Å: "A", Ð: "D", Þ: "o", å: "a", ð: "d", þ: "o", // Cyrillic А: "A", Б: "B", В: "B", Г: "F", Д: "A", Е: "E", Ж: "K", З: "3", И: "N", Й: "N", К: "K", Л: "N", М: "M", Н: "H", О: "O", П: "N", Р: "P", С: "C", Т: "T", У: "y", Ф: "O", Х: "X", Ц: "U", Ч: "h", Ш: "W", Щ: "W", Ъ: "B", Ы: "X", Ь: "B", Э: "3", Ю: "X", Я: "R", а: "a", б: "b", в: "a", г: "r", д: "y", е: "e", ж: "m", з: "e", и: "n", й: "n", к: "n", л: "n", м: "m", н: "n", о: "o", п: "n", р: "p", с: "c", т: "o", у: "y", ф: "b", х: "x", ц: "n", ч: "n", ш: "w", щ: "w", ъ: "a", ы: "m", ь: "a", э: "e", ю: "m", я: "r" }; function e3(n, e) { rr[n] = e; } function Cu(n, e, t) { if (!rr[e]) throw new Error("Font metrics not found for font: " + e + "."); var r = n.charCodeAt(0), a = rr[e][r]; if (!a && n[0] in Y1 && (r = Y1[n[0]].charCodeAt(0), a = rr[e][r]), !a && t === "text" && Sd(r) && (a = rr[e][77]), a) return { depth: a[0], height: a[1], italic: a[2], skew: a[3], width: a[4] }; } var Ys = {}; function t3(n) { var e; if (n >= 5 ? e = 0 : n >= 3 ? e = 1 : e = 2, !Ys[e]) { var t = Ys[e] = { cssEmPerMu: Ni.quad[e] / 18 }; for (var r in Ni) Ni.hasOwnProperty(r) && (t[r] = Ni[r][e]); } return Ys[e]; } var r3 = [ // Each element contains [textsize, scriptsize, scriptscriptsize]. // The size mappings are taken from TeX with \normalsize=10pt. [1, 1, 1], // size1: [5, 5, 5] \tiny [2, 1, 1], // size2: [6, 5, 5] [3, 1, 1], // size3: [7, 5, 5] \scriptsize [4, 2, 1], // size4: [8, 6, 5] \footnotesize [5, 2, 1], // size5: [9, 6, 5] \small [6, 3, 1], // size6: [10, 7, 5] \normalsize [7, 4, 2], // size7: [12, 8, 6] \large [8, 6, 3], // size8: [14.4, 10, 7] \Large [9, 7, 6], // size9: [17.28, 12, 10] \LARGE [10, 8, 7], // size10: [20.74, 14.4, 12] \huge [11, 10, 9] // size11: [24.88, 20.74, 17.28] \HUGE ], Z1 = [ // fontMetrics.js:getGlobalMetrics also uses size indexes, so if // you change size indexes, change that function. 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.2, 1.44, 1.728, 2.074, 2.488 ], K1 = function(e, t) { return t.size < 2 ? e : r3[e - 1][t.size - 1]; }; class Dr { // A font family applies to a group of fonts (i.e. SansSerif), while a font // represents a specific font (i.e. SansSerif Bold). // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm /** * The base size index. */ constructor(e) { this.style = void 0, this.color = void 0, this.size = void 0, this.textSize = void 0, this.phantom = void 0, this.font = void 0, this.fontFamily = void 0, this.fontWeight = void 0, this.fontShape = void 0, this.sizeMultiplier = void 0, this.maxSize = void 0, this.minRuleThickness = void 0, this._fontMetrics = void 0, this.style = e.style, this.color = e.color, this.size = e.size || Dr.BASESIZE, this.textSize = e.textSize || this.size, this.phantom = !!e.phantom, this.font = e.font || "", this.fontFamily = e.fontFamily || "", this.fontWeight = e.fontWeight || "", this.fontShape = e.fontShape || "", this.sizeMultiplier = Z1[this.size - 1], this.maxSize = e.maxSize, this.minRuleThickness = e.minRuleThickness, this._fontMetrics = void 0; } /** * Returns a new options object with the same properties as "this". Properties * from "extension" will be copied to the new options object. */ extend(e) { var t = { style: this.style, size: this.size, textSize: this.textSize, color: this.color, phantom: this.phantom, font: this.font, fontFamily: this.fontFamily, fontWeight: this.fontWeight, fontShape: this.fontShape, maxSize: this.maxSize, minRuleThickness: this.minRuleThickness }; for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]); return new Dr(t); } /** * Return an options object with the given style. If `this.style === style`, * returns `this`. */ havingStyle(e) { return this.style === e ? this : this.extend({ style: e, size: K1(this.textSize, e) }); } /** * Return an options object with a cramped version of the current style. If * the current style is cramped, returns `this`. */ havingCrampedStyle() { return this.havingStyle(this.style.cramp()); } /** * Return an options object with the given size and in at least `\textstyle`. * Returns `this` if appropriate. */ havingSize(e) { return this.size === e && this.textSize === e ? this : this.extend({ style: this.style.text(), size: e, textSize: e, sizeMultiplier: Z1[e - 1] }); } /** * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted, * changes to at least `\textstyle`. */ havingBaseStyle(e) { e = e || this.style.text(); var t = K1(Dr.BASESIZE, e); return this.size === t && this.textSize === Dr.BASESIZE && this.style === e ? this : this.extend({ style: e, size: t }); } /** * Remove the effect of sizing changes such as \Huge. * Keep the effect of the current style, such as \scriptstyle. */ havingBaseSizing() { var e; switch (this.style.id) { case 4: case 5: e = 3; break; case 6: case 7: e = 1; break; default: e = 6; } return this.extend({ style: this.style.text(), size: e }); } /** * Create a new options object with the given color. */ withColor(e) { return this.extend({ color: e }); } /** * Create a new options object with "phantom" set to true. */ withPhantom() { return this.extend({ phantom: !0 }); } /** * Creates a new options object with the given math font or old text font. * @type {[type]} */ withFont(e) { return this.extend({ font: e }); } /** * Create a new options objects with the given fontFamily. */ withTextFontFamily(e) { return this.extend({ fontFamily: e, font: "" }); } /** * Creates a new options object with the given font weight */ withTextFontWeight(e) { return this.extend({ fontWeight: e, font: "" }); } /** * Creates a new options object with the given font weight */ withTextFontShape(e) { return this.extend({ fontShape: e, font: "" }); } /** * Return the CSS sizing classes required to switch from enclosing options * `oldOptions` to `this`. Returns an array of classes. */ sizingClasses(e) { return e.size !== this.size ? ["sizing", "reset-size" + e.size, "size" + this.size] : []; } /** * Return the CSS sizing classes required to switch to the base size. Like * `this.havingSize(BASESIZE).sizingClasses(this)`. */ baseSizingClasses() { return this.size !== Dr.BASESIZE ? ["sizing", "reset-size" + this.size, "size" + Dr.BASESIZE] : []; } /** * Return the font metrics for this size. */ fontMetrics() { return this._fontMetrics || (this._fontMetrics = t3(this.size)), this._fontMetrics; } /** * Gets the CSS color of the current options object */ getColor() { return this.phantom ? "transparent" : this.color; } } Dr.BASESIZE = 6; var Yo = { // https://en.wikibooks.org/wiki/LaTeX/Lengths and // https://tex.stackexchange.com/a/8263 pt: 1, // TeX point mm: 7227 / 2540, // millimeter cm: 7227 / 254, // centimeter in: 72.27, // inch bp: 803 / 800, // big (PostScript) points pc: 12, // pica dd: 1238 / 1157, // didot cc: 14856 / 1157, // cicero (12 didot) nd: 685 / 642, // new didot nc: 1370 / 107, // new cicero (12 new didot) sp: 1 / 65536, // scaled point (TeX's internal smallest unit) // https://tex.stackexchange.com/a/41371 px: 803 / 800 // \pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX }, n3 = { ex: !0, em: !0, mu: !0 }, xd = function(e) { return typeof e != "string" && (e = e.unit), e in Yo || e in n3 || e === "ex"; }, Ye = function(e, t) { var r; if (e.unit in Yo) r = Yo[e.unit] / t.fontMetrics().ptPerEm / t.sizeMultiplier; else if (e.unit === "mu") r = t.fontMetrics().cssEmPerMu; else { var a; if (t.style.isTight() ? a = t.havingStyle(t.style.text()) : a = t, e.unit === "ex") r = a.fontMetrics().xHeight; else if (e.unit === "em") r = a.fontMetrics().quad; else throw new G("Invalid unit: '" + e.unit + "'"); a !== t && (r *= a.sizeMultiplier / t.sizeMultiplier); } return Math.min(e.number * r, t.maxSize); }, X = function(e) { return +e.toFixed(4) + "em"; }, on = function(e) { return e.filter((t) => t).join(" "); }, Td = function(e, t, r) { if (this.classes = e || [], this.attributes = {}, this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = r || {}, t) { t.style.isTight() && this.classes.push("mtight"); var a = t.getColor(); a && (this.style.color = a); } }, Cd = function(e) { var t = document.createElement(e); t.className = on(this.classes); for (var r in this.style) this.style.hasOwnProperty(r) && (t.style[r] = this.style[r]); for (var a in this.attributes) this.attributes.hasOwnProperty(a) && t.setAttribute(a, this.attributes[a]); for (var i = 0; i < this.children.length; i++) t.appendChild(this.children[i].toNode()); return t; }, Fd = function(e) { var t = "<" + e; this.classes.length && (t += ' class="' + re.escape(on(this.classes)) + '"'); var r = ""; for (var a in this.style) this.style.hasOwnProperty(a) && (r += re.hyphenate(a) + ":" + this.style[a] + ";"); r && (t += ' style="' + re.escape(r) + '"'); for (var i in this.attributes) this.attributes.hasOwnProperty(i) && (t += " " + i + '="' + re.escape(this.attributes[i]) + '"'); t += ">"; for (var l = 0; l < this.children.length; l++) t += this.children[l].toMarkup(); return t += "", t; }; class ri { constructor(e, t, r, a) { this.children = void 0, this.attributes = void 0, this.classes = void 0, this.height = void 0, this.depth = void 0, this.width = void 0, this.maxFontSize = void 0, this.style = void 0, Td.call(this, e, r, a), this.children = t || []; } /** * Sets an arbitrary attribute on the span. Warning: use this wisely. Not * all browsers support attributes the same, and having too many custom * attributes is probably bad. */ setAttribute(e, t) { this.attributes[e] = t; } hasClass(e) { return re.contains(this.classes, e); } toNode() { return Cd.call(this, "span"); } toMarkup() { return Fd.call(this, "span"); } } class Fu { constructor(e, t, r, a) { this.children = void 0, this.attributes = void 0, this.classes = void 0, this.height = void 0, this.depth = void 0, this.maxFontSize = void 0, this.style = void 0, Td.call(this, t, a), this.children = r || [], this.setAttribute("href", e); } setAttribute(e, t) { this.attributes[e] = t; } hasClass(e) { return re.contains(this.classes, e); } toNode() { return Cd.call(this, "a"); } toMarkup() { return Fd.call(this, "a"); } } class a3 { constructor(e, t, r) { this.src = void 0, this.alt = void 0, this.classes = void 0, this.height = void 0, this.depth = void 0, this.maxFontSize = void 0, this.style = void 0, this.alt = t, this.src = e, this.classes = ["mord"], this.style = r; } hasClass(e) { return re.contains(this.classes, e); } toNode() { var e = document.createElement("img"); e.src = this.src, e.alt = this.alt, e.className = "mord"; for (var t in this.style) this.style.hasOwnProperty(t) && (e.style[t] = this.style[t]); return e; } toMarkup() { var e = '' + re.escape(this.alt) + ' 0 && (t = document.createElement("span"), t.style.marginRight = X(this.italic)), this.classes.length > 0 && (t = t || document.createElement("span"), t.className = on(this.classes)); for (var r in this.style) this.style.hasOwnProperty(r) && (t = t || document.createElement("span"), t.style[r] = this.style[r]); return t ? (t.appendChild(e), t) : e; } /** * Creates markup for a symbol node. */ toMarkup() { var e = !1, t = " 0 && (r += "margin-right:" + this.italic + "em;"); for (var a in this.style) this.style.hasOwnProperty(a) && (r += re.hyphenate(a) + ":" + this.style[a] + ";"); r && (e = !0, t += ' style="' + re.escape(r) + '"'); var i = re.escape(this.text); return e ? (t += ">", t += i, t += "", t) : i; } } class Br { constructor(e, t) { this.children = void 0, this.attributes = void 0, this.children = e || [], this.attributes = t || {}; } toNode() { var e = "http://www.w3.org/2000/svg", t = document.createElementNS(e, "svg"); for (var r in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, r) && t.setAttribute(r, this.attributes[r]); for (var a = 0; a < this.children.length; a++) t.appendChild(this.children[a].toNode()); return t; } toMarkup() { var e = '' : ''; } } class Zo { constructor(e) { this.attributes = void 0, this.attributes = e || {}; } toNode() { var e = "http://www.w3.org/2000/svg", t = document.createElementNS(e, "line"); for (var r in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, r) && t.setAttribute(r, this.attributes[r]); return t; } toMarkup() { var e = " but got " + String(n) + "."); } var s3 = { bin: 1, close: 1, inner: 1, open: 1, punct: 1, rel: 1 }, o3 = { "accent-token": 1, mathord: 1, "op-token": 1, spacing: 1, textord: 1 }, Ne = { math: {}, text: {} }; function f(n, e, t, r, a, i) { Ne[n][a] = { font: e, group: t, replace: r }, i && r && (Ne[n][r] = Ne[n][a]); } var m = "math", H = "text", g = "main", A = "ams", Ge = "accent-token", J = "bin", Kt = "close", oa = "inner", ne = "mathord", ct = "op-token", d0 = "open", Zl = "punct", x = "rel", Pr = "spacing", M = "textord"; f(m, g, x, "≡", "\\equiv", !0); f(m, g, x, "≺", "\\prec", !0); f(m, g, x, "≻", "\\succ", !0); f(m, g, x, "∼", "\\sim", !0); f(m, g, x, "⊥", "\\perp"); f(m, g, x, "⪯", "\\preceq", !0); f(m, g, x, "⪰", "\\succeq", !0); f(m, g, x, "≃", "\\simeq", !0); f(m, g, x, "∣", "\\mid", !0); f(m, g, x, "≪", "\\ll", !0); f(m, g, x, "≫", "\\gg", !0); f(m, g, x, "≍", "\\asymp", !0); f(m, g, x, "∥", "\\parallel"); f(m, g, x, "⋈", "\\bowtie", !0); f(m, g, x, "⌣", "\\smile", !0); f(m, g, x, "⊑", "\\sqsubseteq", !0); f(m, g, x, "⊒", "\\sqsupseteq", !0); f(m, g, x, "≐", "\\doteq", !0); f(m, g, x, "⌢", "\\frown", !0); f(m, g, x, "∋", "\\ni", !0); f(m, g, x, "∝", "\\propto", !0); f(m, g, x, "⊢", "\\vdash", !0); f(m, g, x, "⊣", "\\dashv", !0); f(m, g, x, "∋", "\\owns"); f(m, g, Zl, ".", "\\ldotp"); f(m, g, Zl, "⋅", "\\cdotp"); f(m, g, M, "#", "\\#"); f(H, g, M, "#", "\\#"); f(m, g, M, "&", "\\&"); f(H, g, M, "&", "\\&"); f(m, g, M, "ℵ", "\\aleph", !0); f(m, g, M, "∀", "\\forall", !0); f(m, g, M, "ℏ", "\\hbar", !0); f(m, g, M, "∃", "\\exists", !0); f(m, g, M, "∇", "\\nabla", !0); f(m, g, M, "♭", "\\flat", !0); f(m, g, M, "ℓ", "\\ell", !0); f(m, g, M, "♮", "\\natural", !0); f(m, g, M, "♣", "\\clubsuit", !0); f(m, g, M, "℘", "\\wp", !0); f(m, g, M, "♯", "\\sharp", !0); f(m, g, M, "♢", "\\diamondsuit", !0); f(m, g, M, "ℜ", "\\Re", !0); f(m, g, M, "♡", "\\heartsuit", !0); f(m, g, M, "ℑ", "\\Im", !0); f(m, g, M, "♠", "\\spadesuit", !0); f(m, g, M, "§", "\\S", !0); f(H, g, M, "§", "\\S"); f(m, g, M, "¶", "\\P", !0); f(H, g, M, "¶", "\\P"); f(m, g, M, "†", "\\dag"); f(H, g, M, "†", "\\dag"); f(H, g, M, "†", "\\textdagger"); f(m, g, M, "‡", "\\ddag"); f(H, g, M, "‡", "\\ddag"); f(H, g, M, "‡", "\\textdaggerdbl"); f(m, g, Kt, "⎱", "\\rmoustache", !0); f(m, g, d0, "⎰", "\\lmoustache", !0); f(m, g, Kt, "⟯", "\\rgroup", !0); f(m, g, d0, "⟮", "\\lgroup", !0); f(m, g, J, "∓", "\\mp", !0); f(m, g, J, "⊖", "\\ominus", !0); f(m, g, J, "⊎", "\\uplus", !0); f(m, g, J, "⊓", "\\sqcap", !0); f(m, g, J, "∗", "\\ast"); f(m, g, J, "⊔", "\\sqcup", !0); f(m, g, J, "◯", "\\bigcirc", !0); f(m, g, J, "∙", "\\bullet", !0); f(m, g, J, "‡", "\\ddagger"); f(m, g, J, "≀", "\\wr", !0); f(m, g, J, "⨿", "\\amalg"); f(m, g, J, "&", "\\And"); f(m, g, x, "⟵", "\\longleftarrow", !0); f(m, g, x, "⇐", "\\Leftarrow", !0); f(m, g, x, "⟸", "\\Longleftarrow", !0); f(m, g, x, "⟶", "\\longrightarrow", !0); f(m, g, x, "⇒", "\\Rightarrow", !0); f(m, g, x, "⟹", "\\Longrightarrow", !0); f(m, g, x, "↔", "\\leftrightarrow", !0); f(m, g, x, "⟷", "\\longleftrightarrow", !0); f(m, g, x, "⇔", "\\Leftrightarrow", !0); f(m, g, x, "⟺", "\\Longleftrightarrow", !0); f(m, g, x, "↦", "\\mapsto", !0); f(m, g, x, "⟼", "\\longmapsto", !0); f(m, g, x, "↗", "\\nearrow", !0); f(m, g, x, "↩", "\\hookleftarrow", !0); f(m, g, x, "↪", "\\hookrightarrow", !0); f(m, g, x, "↘", "\\searrow", !0); f(m, g, x, "↼", "\\leftharpoonup", !0); f(m, g, x, "⇀", "\\rightharpoonup", !0); f(m, g, x, "↙", "\\swarrow", !0); f(m, g, x, "↽", "\\leftharpoondown", !0); f(m, g, x, "⇁", "\\rightharpoondown", !0); f(m, g, x, "↖", "\\nwarrow", !0); f(m, g, x, "⇌", "\\rightleftharpoons", !0); f(m, A, x, "≮", "\\nless", !0); f(m, A, x, "", "\\@nleqslant"); f(m, A, x, "", "\\@nleqq"); f(m, A, x, "⪇", "\\lneq", !0); f(m, A, x, "≨", "\\lneqq", !0); f(m, A, x, "", "\\@lvertneqq"); f(m, A, x, "⋦", "\\lnsim", !0); f(m, A, x, "⪉", "\\lnapprox", !0); f(m, A, x, "⊀", "\\nprec", !0); f(m, A, x, "⋠", "\\npreceq", !0); f(m, A, x, "⋨", "\\precnsim", !0); f(m, A, x, "⪹", "\\precnapprox", !0); f(m, A, x, "≁", "\\nsim", !0); f(m, A, x, "", "\\@nshortmid"); f(m, A, x, "∤", "\\nmid", !0); f(m, A, x, "⊬", "\\nvdash", !0); f(m, A, x, "⊭", "\\nvDash", !0); f(m, A, x, "⋪", "\\ntriangleleft"); f(m, A, x, "⋬", "\\ntrianglelefteq", !0); f(m, A, x, "⊊", "\\subsetneq", !0); f(m, A, x, "", "\\@varsubsetneq"); f(m, A, x, "⫋", "\\subsetneqq", !0); f(m, A, x, "", "\\@varsubsetneqq"); f(m, A, x, "≯", "\\ngtr", !0); f(m, A, x, "", "\\@ngeqslant"); f(m, A, x, "", "\\@ngeqq"); f(m, A, x, "⪈", "\\gneq", !0); f(m, A, x, "≩", "\\gneqq", !0); f(m, A, x, "", "\\@gvertneqq"); f(m, A, x, "⋧", "\\gnsim", !0); f(m, A, x, "⪊", "\\gnapprox", !0); f(m, A, x, "⊁", "\\nsucc", !0); f(m, A, x, "⋡", "\\nsucceq", !0); f(m, A, x, "⋩", "\\succnsim", !0); f(m, A, x, "⪺", "\\succnapprox", !0); f(m, A, x, "≆", "\\ncong", !0); f(m, A, x, "", "\\@nshortparallel"); f(m, A, x, "∦", "\\nparallel", !0); f(m, A, x, "⊯", "\\nVDash", !0); f(m, A, x, "⋫", "\\ntriangleright"); f(m, A, x, "⋭", "\\ntrianglerighteq", !0); f(m, A, x, "", "\\@nsupseteqq"); f(m, A, x, "⊋", "\\supsetneq", !0); f(m, A, x, "", "\\@varsupsetneq"); f(m, A, x, "⫌", "\\supsetneqq", !0); f(m, A, x, "", "\\@varsupsetneqq"); f(m, A, x, "⊮", "\\nVdash", !0); f(m, A, x, "⪵", "\\precneqq", !0); f(m, A, x, "⪶", "\\succneqq", !0); f(m, A, x, "", "\\@nsubseteqq"); f(m, A, J, "⊴", "\\unlhd"); f(m, A, J, "⊵", "\\unrhd"); f(m, A, x, "↚", "\\nleftarrow", !0); f(m, A, x, "↛", "\\nrightarrow", !0); f(m, A, x, "⇍", "\\nLeftarrow", !0); f(m, A, x, "⇏", "\\nRightarrow", !0); f(m, A, x, "↮", "\\nleftrightarrow", !0); f(m, A, x, "⇎", "\\nLeftrightarrow", !0); f(m, A, x, "△", "\\vartriangle"); f(m, A, M, "ℏ", "\\hslash"); f(m, A, M, "▽", "\\triangledown"); f(m, A, M, "◊", "\\lozenge"); f(m, A, M, "Ⓢ", "\\circledS"); f(m, A, M, "®", "\\circledR"); f(H, A, M, "®", "\\circledR"); f(m, A, M, "∡", "\\measuredangle", !0); f(m, A, M, "∄", "\\nexists"); f(m, A, M, "℧", "\\mho"); f(m, A, M, "Ⅎ", "\\Finv", !0); f(m, A, M, "⅁", "\\Game", !0); f(m, A, M, "‵", "\\backprime"); f(m, A, M, "▲", "\\blacktriangle"); f(m, A, M, "▼", "\\blacktriangledown"); f(m, A, M, "■", "\\blacksquare"); f(m, A, M, "⧫", "\\blacklozenge"); f(m, A, M, "★", "\\bigstar"); f(m, A, M, "∢", "\\sphericalangle", !0); f(m, A, M, "∁", "\\complement", !0); f(m, A, M, "ð", "\\eth", !0); f(H, g, M, "ð", "ð"); f(m, A, M, "╱", "\\diagup"); f(m, A, M, "╲", "\\diagdown"); f(m, A, M, "□", "\\square"); f(m, A, M, "□", "\\Box"); f(m, A, M, "◊", "\\Diamond"); f(m, A, M, "¥", "\\yen", !0); f(H, A, M, "¥", "\\yen", !0); f(m, A, M, "✓", "\\checkmark", !0); f(H, A, M, "✓", "\\checkmark"); f(m, A, M, "ℶ", "\\beth", !0); f(m, A, M, "ℸ", "\\daleth", !0); f(m, A, M, "ℷ", "\\gimel", !0); f(m, A, M, "ϝ", "\\digamma", !0); f(m, A, M, "ϰ", "\\varkappa"); f(m, A, d0, "┌", "\\@ulcorner", !0); f(m, A, Kt, "┐", "\\@urcorner", !0); f(m, A, d0, "└", "\\@llcorner", !0); f(m, A, Kt, "┘", "\\@lrcorner", !0); f(m, A, x, "≦", "\\leqq", !0); f(m, A, x, "⩽", "\\leqslant", !0); f(m, A, x, "⪕", "\\eqslantless", !0); f(m, A, x, "≲", "\\lesssim", !0); f(m, A, x, "⪅", "\\lessapprox", !0); f(m, A, x, "≊", "\\approxeq", !0); f(m, A, J, "⋖", "\\lessdot"); f(m, A, x, "⋘", "\\lll", !0); f(m, A, x, "≶", "\\lessgtr", !0); f(m, A, x, "⋚", "\\lesseqgtr", !0); f(m, A, x, "⪋", "\\lesseqqgtr", !0); f(m, A, x, "≑", "\\doteqdot"); f(m, A, x, "≓", "\\risingdotseq", !0); f(m, A, x, "≒", "\\fallingdotseq", !0); f(m, A, x, "∽", "\\backsim", !0); f(m, A, x, "⋍", "\\backsimeq", !0); f(m, A, x, "⫅", "\\subseteqq", !0); f(m, A, x, "⋐", "\\Subset", !0); f(m, A, x, "⊏", "\\sqsubset", !0); f(m, A, x, "≼", "\\preccurlyeq", !0); f(m, A, x, "⋞", "\\curlyeqprec", !0); f(m, A, x, "≾", "\\precsim", !0); f(m, A, x, "⪷", "\\precapprox", !0); f(m, A, x, "⊲", "\\vartriangleleft"); f(m, A, x, "⊴", "\\trianglelefteq"); f(m, A, x, "⊨", "\\vDash", !0); f(m, A, x, "⊪", "\\Vvdash", !0); f(m, A, x, "⌣", "\\smallsmile"); f(m, A, x, "⌢", "\\smallfrown"); f(m, A, x, "≏", "\\bumpeq", !0); f(m, A, x, "≎", "\\Bumpeq", !0); f(m, A, x, "≧", "\\geqq", !0); f(m, A, x, "⩾", "\\geqslant", !0); f(m, A, x, "⪖", "\\eqslantgtr", !0); f(m, A, x, "≳", "\\gtrsim", !0); f(m, A, x, "⪆", "\\gtrapprox", !0); f(m, A, J, "⋗", "\\gtrdot"); f(m, A, x, "⋙", "\\ggg", !0); f(m, A, x, "≷", "\\gtrless", !0); f(m, A, x, "⋛", "\\gtreqless", !0); f(m, A, x, "⪌", "\\gtreqqless", !0); f(m, A, x, "≖", "\\eqcirc", !0); f(m, A, x, "≗", "\\circeq", !0); f(m, A, x, "≜", "\\triangleq", !0); f(m, A, x, "∼", "\\thicksim"); f(m, A, x, "≈", "\\thickapprox"); f(m, A, x, "⫆", "\\supseteqq", !0); f(m, A, x, "⋑", "\\Supset", !0); f(m, A, x, "⊐", "\\sqsupset", !0); f(m, A, x, "≽", "\\succcurlyeq", !0); f(m, A, x, "⋟", "\\curlyeqsucc", !0); f(m, A, x, "≿", "\\succsim", !0); f(m, A, x, "⪸", "\\succapprox", !0); f(m, A, x, "⊳", "\\vartriangleright"); f(m, A, x, "⊵", "\\trianglerighteq"); f(m, A, x, "⊩", "\\Vdash", !0); f(m, A, x, "∣", "\\shortmid"); f(m, A, x, "∥", "\\shortparallel"); f(m, A, x, "≬", "\\between", !0); f(m, A, x, "⋔", "\\pitchfork", !0); f(m, A, x, "∝", "\\varpropto"); f(m, A, x, "◀", "\\blacktriangleleft"); f(m, A, x, "∴", "\\therefore", !0); f(m, A, x, "∍", "\\backepsilon"); f(m, A, x, "▶", "\\blacktriangleright"); f(m, A, x, "∵", "\\because", !0); f(m, A, x, "⋘", "\\llless"); f(m, A, x, "⋙", "\\gggtr"); f(m, A, J, "⊲", "\\lhd"); f(m, A, J, "⊳", "\\rhd"); f(m, A, x, "≂", "\\eqsim", !0); f(m, g, x, "⋈", "\\Join"); f(m, A, x, "≑", "\\Doteq", !0); f(m, A, J, "∔", "\\dotplus", !0); f(m, A, J, "∖", "\\smallsetminus"); f(m, A, J, "⋒", "\\Cap", !0); f(m, A, J, "⋓", "\\Cup", !0); f(m, A, J, "⩞", "\\doublebarwedge", !0); f(m, A, J, "⊟", "\\boxminus", !0); f(m, A, J, "⊞", "\\boxplus", !0); f(m, A, J, "⋇", "\\divideontimes", !0); f(m, A, J, "⋉", "\\ltimes", !0); f(m, A, J, "⋊", "\\rtimes", !0); f(m, A, J, "⋋", "\\leftthreetimes", !0); f(m, A, J, "⋌", "\\rightthreetimes", !0); f(m, A, J, "⋏", "\\curlywedge", !0); f(m, A, J, "⋎", "\\curlyvee", !0); f(m, A, J, "⊝", "\\circleddash", !0); f(m, A, J, "⊛", "\\circledast", !0); f(m, A, J, "⋅", "\\centerdot"); f(m, A, J, "⊺", "\\intercal", !0); f(m, A, J, "⋒", "\\doublecap"); f(m, A, J, "⋓", "\\doublecup"); f(m, A, J, "⊠", "\\boxtimes", !0); f(m, A, x, "⇢", "\\dashrightarrow", !0); f(m, A, x, "⇠", "\\dashleftarrow", !0); f(m, A, x, "⇇", "\\leftleftarrows", !0); f(m, A, x, "⇆", "\\leftrightarrows", !0); f(m, A, x, "⇚", "\\Lleftarrow", !0); f(m, A, x, "↞", "\\twoheadleftarrow", !0); f(m, A, x, "↢", "\\leftarrowtail", !0); f(m, A, x, "↫", "\\looparrowleft", !0); f(m, A, x, "⇋", "\\leftrightharpoons", !0); f(m, A, x, "↶", "\\curvearrowleft", !0); f(m, A, x, "↺", "\\circlearrowleft", !0); f(m, A, x, "↰", "\\Lsh", !0); f(m, A, x, "⇈", "\\upuparrows", !0); f(m, A, x, "↿", "\\upharpoonleft", !0); f(m, A, x, "⇃", "\\downharpoonleft", !0); f(m, g, x, "⊶", "\\origof", !0); f(m, g, x, "⊷", "\\imageof", !0); f(m, A, x, "⊸", "\\multimap", !0); f(m, A, x, "↭", "\\leftrightsquigarrow", !0); f(m, A, x, "⇉", "\\rightrightarrows", !0); f(m, A, x, "⇄", "\\rightleftarrows", !0); f(m, A, x, "↠", "\\twoheadrightarrow", !0); f(m, A, x, "↣", "\\rightarrowtail", !0); f(m, A, x, "↬", "\\looparrowright", !0); f(m, A, x, "↷", "\\curvearrowright", !0); f(m, A, x, "↻", "\\circlearrowright", !0); f(m, A, x, "↱", "\\Rsh", !0); f(m, A, x, "⇊", "\\downdownarrows", !0); f(m, A, x, "↾", "\\upharpoonright", !0); f(m, A, x, "⇂", "\\downharpoonright", !0); f(m, A, x, "⇝", "\\rightsquigarrow", !0); f(m, A, x, "⇝", "\\leadsto"); f(m, A, x, "⇛", "\\Rrightarrow", !0); f(m, A, x, "↾", "\\restriction"); f(m, g, M, "‘", "`"); f(m, g, M, "$", "\\$"); f(H, g, M, "$", "\\$"); f(H, g, M, "$", "\\textdollar"); f(m, g, M, "%", "\\%"); f(H, g, M, "%", "\\%"); f(m, g, M, "_", "\\_"); f(H, g, M, "_", "\\_"); f(H, g, M, "_", "\\textunderscore"); f(m, g, M, "∠", "\\angle", !0); f(m, g, M, "∞", "\\infty", !0); f(m, g, M, "′", "\\prime"); f(m, g, M, "△", "\\triangle"); f(m, g, M, "Γ", "\\Gamma", !0); f(m, g, M, "Δ", "\\Delta", !0); f(m, g, M, "Θ", "\\Theta", !0); f(m, g, M, "Λ", "\\Lambda", !0); f(m, g, M, "Ξ", "\\Xi", !0); f(m, g, M, "Π", "\\Pi", !0); f(m, g, M, "Σ", "\\Sigma", !0); f(m, g, M, "Υ", "\\Upsilon", !0); f(m, g, M, "Φ", "\\Phi", !0); f(m, g, M, "Ψ", "\\Psi", !0); f(m, g, M, "Ω", "\\Omega", !0); f(m, g, M, "A", "Α"); f(m, g, M, "B", "Β"); f(m, g, M, "E", "Ε"); f(m, g, M, "Z", "Ζ"); f(m, g, M, "H", "Η"); f(m, g, M, "I", "Ι"); f(m, g, M, "K", "Κ"); f(m, g, M, "M", "Μ"); f(m, g, M, "N", "Ν"); f(m, g, M, "O", "Ο"); f(m, g, M, "P", "Ρ"); f(m, g, M, "T", "Τ"); f(m, g, M, "X", "Χ"); f(m, g, M, "¬", "\\neg", !0); f(m, g, M, "¬", "\\lnot"); f(m, g, M, "⊤", "\\top"); f(m, g, M, "⊥", "\\bot"); f(m, g, M, "∅", "\\emptyset"); f(m, A, M, "∅", "\\varnothing"); f(m, g, ne, "α", "\\alpha", !0); f(m, g, ne, "β", "\\beta", !0); f(m, g, ne, "γ", "\\gamma", !0); f(m, g, ne, "δ", "\\delta", !0); f(m, g, ne, "ϵ", "\\epsilon", !0); f(m, g, ne, "ζ", "\\zeta", !0); f(m, g, ne, "η", "\\eta", !0); f(m, g, ne, "θ", "\\theta", !0); f(m, g, ne, "ι", "\\iota", !0); f(m, g, ne, "κ", "\\kappa", !0); f(m, g, ne, "λ", "\\lambda", !0); f(m, g, ne, "μ", "\\mu", !0); f(m, g, ne, "ν", "\\nu", !0); f(m, g, ne, "ξ", "\\xi", !0); f(m, g, ne, "ο", "\\omicron", !0); f(m, g, ne, "π", "\\pi", !0); f(m, g, ne, "ρ", "\\rho", !0); f(m, g, ne, "σ", "\\sigma", !0); f(m, g, ne, "τ", "\\tau", !0); f(m, g, ne, "υ", "\\upsilon", !0); f(m, g, ne, "ϕ", "\\phi", !0); f(m, g, ne, "χ", "\\chi", !0); f(m, g, ne, "ψ", "\\psi", !0); f(m, g, ne, "ω", "\\omega", !0); f(m, g, ne, "ε", "\\varepsilon", !0); f(m, g, ne, "ϑ", "\\vartheta", !0); f(m, g, ne, "ϖ", "\\varpi", !0); f(m, g, ne, "ϱ", "\\varrho", !0); f(m, g, ne, "ς", "\\varsigma", !0); f(m, g, ne, "φ", "\\varphi", !0); f(m, g, J, "∗", "*", !0); f(m, g, J, "+", "+"); f(m, g, J, "−", "-", !0); f(m, g, J, "⋅", "\\cdot", !0); f(m, g, J, "∘", "\\circ", !0); f(m, g, J, "÷", "\\div", !0); f(m, g, J, "±", "\\pm", !0); f(m, g, J, "×", "\\times", !0); f(m, g, J, "∩", "\\cap", !0); f(m, g, J, "∪", "\\cup", !0); f(m, g, J, "∖", "\\setminus", !0); f(m, g, J, "∧", "\\land"); f(m, g, J, "∨", "\\lor"); f(m, g, J, "∧", "\\wedge", !0); f(m, g, J, "∨", "\\vee", !0); f(m, g, M, "√", "\\surd"); f(m, g, d0, "⟨", "\\langle", !0); f(m, g, d0, "∣", "\\lvert"); f(m, g, d0, "∥", "\\lVert"); f(m, g, Kt, "?", "?"); f(m, g, Kt, "!", "!"); f(m, g, Kt, "⟩", "\\rangle", !0); f(m, g, Kt, "∣", "\\rvert"); f(m, g, Kt, "∥", "\\rVert"); f(m, g, x, "=", "="); f(m, g, x, ":", ":"); f(m, g, x, "≈", "\\approx", !0); f(m, g, x, "≅", "\\cong", !0); f(m, g, x, "≥", "\\ge"); f(m, g, x, "≥", "\\geq", !0); f(m, g, x, "←", "\\gets"); f(m, g, x, ">", "\\gt", !0); f(m, g, x, "∈", "\\in", !0); f(m, g, x, "", "\\@not"); f(m, g, x, "⊂", "\\subset", !0); f(m, g, x, "⊃", "\\supset", !0); f(m, g, x, "⊆", "\\subseteq", !0); f(m, g, x, "⊇", "\\supseteq", !0); f(m, A, x, "⊈", "\\nsubseteq", !0); f(m, A, x, "⊉", "\\nsupseteq", !0); f(m, g, x, "⊨", "\\models"); f(m, g, x, "←", "\\leftarrow", !0); f(m, g, x, "≤", "\\le"); f(m, g, x, "≤", "\\leq", !0); f(m, g, x, "<", "\\lt", !0); f(m, g, x, "→", "\\rightarrow", !0); f(m, g, x, "→", "\\to"); f(m, A, x, "≱", "\\ngeq", !0); f(m, A, x, "≰", "\\nleq", !0); f(m, g, Pr, " ", "\\ "); f(m, g, Pr, " ", "\\space"); f(m, g, Pr, " ", "\\nobreakspace"); f(H, g, Pr, " ", "\\ "); f(H, g, Pr, " ", " "); f(H, g, Pr, " ", "\\space"); f(H, g, Pr, " ", "\\nobreakspace"); f(m, g, Pr, null, "\\nobreak"); f(m, g, Pr, null, "\\allowbreak"); f(m, g, Zl, ",", ","); f(m, g, Zl, ";", ";"); f(m, A, J, "⊼", "\\barwedge", !0); f(m, A, J, "⊻", "\\veebar", !0); f(m, g, J, "⊙", "\\odot", !0); f(m, g, J, "⊕", "\\oplus", !0); f(m, g, J, "⊗", "\\otimes", !0); f(m, g, M, "∂", "\\partial", !0); f(m, g, J, "⊘", "\\oslash", !0); f(m, A, J, "⊚", "\\circledcirc", !0); f(m, A, J, "⊡", "\\boxdot", !0); f(m, g, J, "△", "\\bigtriangleup"); f(m, g, J, "▽", "\\bigtriangledown"); f(m, g, J, "†", "\\dagger"); f(m, g, J, "⋄", "\\diamond"); f(m, g, J, "⋆", "\\star"); f(m, g, J, "◃", "\\triangleleft"); f(m, g, J, "▹", "\\triangleright"); f(m, g, d0, "{", "\\{"); f(H, g, M, "{", "\\{"); f(H, g, M, "{", "\\textbraceleft"); f(m, g, Kt, "}", "\\}"); f(H, g, M, "}", "\\}"); f(H, g, M, "}", "\\textbraceright"); f(m, g, d0, "{", "\\lbrace"); f(m, g, Kt, "}", "\\rbrace"); f(m, g, d0, "[", "\\lbrack", !0); f(H, g, M, "[", "\\lbrack", !0); f(m, g, Kt, "]", "\\rbrack", !0); f(H, g, M, "]", "\\rbrack", !0); f(m, g, d0, "(", "\\lparen", !0); f(m, g, Kt, ")", "\\rparen", !0); f(H, g, M, "<", "\\textless", !0); f(H, g, M, ">", "\\textgreater", !0); f(m, g, d0, "⌊", "\\lfloor", !0); f(m, g, Kt, "⌋", "\\rfloor", !0); f(m, g, d0, "⌈", "\\lceil", !0); f(m, g, Kt, "⌉", "\\rceil", !0); f(m, g, M, "\\", "\\backslash"); f(m, g, M, "∣", "|"); f(m, g, M, "∣", "\\vert"); f(H, g, M, "|", "\\textbar", !0); f(m, g, M, "∥", "\\|"); f(m, g, M, "∥", "\\Vert"); f(H, g, M, "∥", "\\textbardbl"); f(H, g, M, "~", "\\textasciitilde"); f(H, g, M, "\\", "\\textbackslash"); f(H, g, M, "^", "\\textasciicircum"); f(m, g, x, "↑", "\\uparrow", !0); f(m, g, x, "⇑", "\\Uparrow", !0); f(m, g, x, "↓", "\\downarrow", !0); f(m, g, x, "⇓", "\\Downarrow", !0); f(m, g, x, "↕", "\\updownarrow", !0); f(m, g, x, "⇕", "\\Updownarrow", !0); f(m, g, ct, "∐", "\\coprod"); f(m, g, ct, "⋁", "\\bigvee"); f(m, g, ct, "⋀", "\\bigwedge"); f(m, g, ct, "⨄", "\\biguplus"); f(m, g, ct, "⋂", "\\bigcap"); f(m, g, ct, "⋃", "\\bigcup"); f(m, g, ct, "∫", "\\int"); f(m, g, ct, "∫", "\\intop"); f(m, g, ct, "∬", "\\iint"); f(m, g, ct, "∭", "\\iiint"); f(m, g, ct, "∏", "\\prod"); f(m, g, ct, "∑", "\\sum"); f(m, g, ct, "⨂", "\\bigotimes"); f(m, g, ct, "⨁", "\\bigoplus"); f(m, g, ct, "⨀", "\\bigodot"); f(m, g, ct, "∮", "\\oint"); f(m, g, ct, "∯", "\\oiint"); f(m, g, ct, "∰", "\\oiiint"); f(m, g, ct, "⨆", "\\bigsqcup"); f(m, g, ct, "∫", "\\smallint"); f(H, g, oa, "…", "\\textellipsis"); f(m, g, oa, "…", "\\mathellipsis"); f(H, g, oa, "…", "\\ldots", !0); f(m, g, oa, "…", "\\ldots", !0); f(m, g, oa, "⋯", "\\@cdots", !0); f(m, g, oa, "⋱", "\\ddots", !0); f(m, g, M, "⋮", "\\varvdots"); f(m, g, Ge, "ˊ", "\\acute"); f(m, g, Ge, "ˋ", "\\grave"); f(m, g, Ge, "¨", "\\ddot"); f(m, g, Ge, "~", "\\tilde"); f(m, g, Ge, "ˉ", "\\bar"); f(m, g, Ge, "˘", "\\breve"); f(m, g, Ge, "ˇ", "\\check"); f(m, g, Ge, "^", "\\hat"); f(m, g, Ge, "⃗", "\\vec"); f(m, g, Ge, "˙", "\\dot"); f(m, g, Ge, "˚", "\\mathring"); f(m, g, ne, "", "\\@imath"); f(m, g, ne, "", "\\@jmath"); f(m, g, M, "ı", "ı"); f(m, g, M, "ȷ", "ȷ"); f(H, g, M, "ı", "\\i", !0); f(H, g, M, "ȷ", "\\j", !0); f(H, g, M, "ß", "\\ss", !0); f(H, g, M, "æ", "\\ae", !0); f(H, g, M, "œ", "\\oe", !0); f(H, g, M, "ø", "\\o", !0); f(H, g, M, "Æ", "\\AE", !0); f(H, g, M, "Œ", "\\OE", !0); f(H, g, M, "Ø", "\\O", !0); f(H, g, Ge, "ˊ", "\\'"); f(H, g, Ge, "ˋ", "\\`"); f(H, g, Ge, "ˆ", "\\^"); f(H, g, Ge, "˜", "\\~"); f(H, g, Ge, "ˉ", "\\="); f(H, g, Ge, "˘", "\\u"); f(H, g, Ge, "˙", "\\."); f(H, g, Ge, "¸", "\\c"); f(H, g, Ge, "˚", "\\r"); f(H, g, Ge, "ˇ", "\\v"); f(H, g, Ge, "¨", '\\"'); f(H, g, Ge, "˝", "\\H"); f(H, g, Ge, "◯", "\\textcircled"); var Md = { "--": !0, "---": !0, "``": !0, "''": !0 }; f(H, g, M, "–", "--", !0); f(H, g, M, "–", "\\textendash"); f(H, g, M, "—", "---", !0); f(H, g, M, "—", "\\textemdash"); f(H, g, M, "‘", "`", !0); f(H, g, M, "‘", "\\textquoteleft"); f(H, g, M, "’", "'", !0); f(H, g, M, "’", "\\textquoteright"); f(H, g, M, "“", "``", !0); f(H, g, M, "“", "\\textquotedblleft"); f(H, g, M, "”", "''", !0); f(H, g, M, "”", "\\textquotedblright"); f(m, g, M, "°", "\\degree", !0); f(H, g, M, "°", "\\degree"); f(H, g, M, "°", "\\textdegree", !0); f(m, g, M, "£", "\\pounds"); f(m, g, M, "£", "\\mathsterling", !0); f(H, g, M, "£", "\\pounds"); f(H, g, M, "£", "\\textsterling", !0); f(m, A, M, "✠", "\\maltese"); f(H, A, M, "✠", "\\maltese"); var Q1 = '0123456789/@."'; for (var Zs = 0; Zs < Q1.length; Zs++) { var $1 = Q1.charAt(Zs); f(m, g, M, $1, $1); } var ec = '0123456789!@*()-=+";:?/.,'; for (var Ks = 0; Ks < ec.length; Ks++) { var tc = ec.charAt(Ks); f(H, g, M, tc, tc); } var Tl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; for (var Js = 0; Js < Tl.length; Js++) { var Ri = Tl.charAt(Js); f(m, g, ne, Ri, Ri), f(H, g, M, Ri, Ri); } f(m, A, M, "C", "ℂ"); f(H, A, M, "C", "ℂ"); f(m, A, M, "H", "ℍ"); f(H, A, M, "H", "ℍ"); f(m, A, M, "N", "ℕ"); f(H, A, M, "N", "ℕ"); f(m, A, M, "P", "ℙ"); f(H, A, M, "P", "ℙ"); f(m, A, M, "Q", "ℚ"); f(H, A, M, "Q", "ℚ"); f(m, A, M, "R", "ℝ"); f(H, A, M, "R", "ℝ"); f(m, A, M, "Z", "ℤ"); f(H, A, M, "Z", "ℤ"); f(m, g, ne, "h", "ℎ"); f(H, g, ne, "h", "ℎ"); var oe = ""; for (var Ht = 0; Ht < Tl.length; Ht++) { var $e = Tl.charAt(Ht); oe = String.fromCharCode(55349, 56320 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56372 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56424 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56580 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56684 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56736 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56788 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56840 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56944 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), Ht < 26 && (oe = String.fromCharCode(55349, 56632 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe), oe = String.fromCharCode(55349, 56476 + Ht), f(m, g, ne, $e, oe), f(H, g, M, $e, oe)); } oe = "𝕜"; f(m, g, ne, "k", oe); f(H, g, M, "k", oe); for (var vn = 0; vn < 10; vn++) { var Yr = vn.toString(); oe = String.fromCharCode(55349, 57294 + vn), f(m, g, ne, Yr, oe), f(H, g, M, Yr, oe), oe = String.fromCharCode(55349, 57314 + vn), f(m, g, ne, Yr, oe), f(H, g, M, Yr, oe), oe = String.fromCharCode(55349, 57324 + vn), f(m, g, ne, Yr, oe), f(H, g, M, Yr, oe), oe = String.fromCharCode(55349, 57334 + vn), f(m, g, ne, Yr, oe), f(H, g, M, Yr, oe); } var Ko = "ÐÞþ"; for (var Qs = 0; Qs < Ko.length; Qs++) { var Oi = Ko.charAt(Qs); f(m, g, ne, Oi, Oi), f(H, g, M, Oi, Oi); } var qi = [ ["mathbf", "textbf", "Main-Bold"], // A-Z bold upright ["mathbf", "textbf", "Main-Bold"], // a-z bold upright ["mathnormal", "textit", "Math-Italic"], // A-Z italic ["mathnormal", "textit", "Math-Italic"], // a-z italic ["boldsymbol", "boldsymbol", "Main-BoldItalic"], // A-Z bold italic ["boldsymbol", "boldsymbol", "Main-BoldItalic"], // a-z bold italic // Map fancy A-Z letters to script, not calligraphic. // This aligns with unicode-math and math fonts (except Cambria Math). ["mathscr", "textscr", "Script-Regular"], // A-Z script ["", "", ""], // a-z script. No font ["", "", ""], // A-Z bold script. No font ["", "", ""], // a-z bold script. No font ["mathfrak", "textfrak", "Fraktur-Regular"], // A-Z Fraktur ["mathfrak", "textfrak", "Fraktur-Regular"], // a-z Fraktur ["mathbb", "textbb", "AMS-Regular"], // A-Z double-struck ["mathbb", "textbb", "AMS-Regular"], // k double-struck // Note that we are using a bold font, but font metrics for regular Fraktur. ["mathboldfrak", "textboldfrak", "Fraktur-Regular"], // A-Z bold Fraktur ["mathboldfrak", "textboldfrak", "Fraktur-Regular"], // a-z bold Fraktur ["mathsf", "textsf", "SansSerif-Regular"], // A-Z sans-serif ["mathsf", "textsf", "SansSerif-Regular"], // a-z sans-serif ["mathboldsf", "textboldsf", "SansSerif-Bold"], // A-Z bold sans-serif ["mathboldsf", "textboldsf", "SansSerif-Bold"], // a-z bold sans-serif ["mathitsf", "textitsf", "SansSerif-Italic"], // A-Z italic sans-serif ["mathitsf", "textitsf", "SansSerif-Italic"], // a-z italic sans-serif ["", "", ""], // A-Z bold italic sans. No font ["", "", ""], // a-z bold italic sans. No font ["mathtt", "texttt", "Typewriter-Regular"], // A-Z monospace ["mathtt", "texttt", "Typewriter-Regular"] // a-z monospace ], rc = [ ["mathbf", "textbf", "Main-Bold"], // 0-9 bold ["", "", ""], // 0-9 double-struck. No KaTeX font. ["mathsf", "textsf", "SansSerif-Regular"], // 0-9 sans-serif ["mathboldsf", "textboldsf", "SansSerif-Bold"], // 0-9 bold sans-serif ["mathtt", "texttt", "Typewriter-Regular"] // 0-9 monospace ], u3 = function(e, t) { var r = e.charCodeAt(0), a = e.charCodeAt(1), i = (r - 55296) * 1024 + (a - 56320) + 65536, l = t === "math" ? 0 : 1; if (119808 <= i && i < 120484) { var s = Math.floor((i - 119808) / 26); return [qi[s][2], qi[s][l]]; } else if (120782 <= i && i <= 120831) { var o = Math.floor((i - 120782) / 10); return [rc[o][2], rc[o][l]]; } else { if (i === 120485 || i === 120486) return [qi[0][2], qi[0][l]]; if (120486 < i && i < 120782) return ["", ""]; throw new G("Unsupported character: " + e); } }, Kl = function(e, t, r) { return Ne[r][e] && Ne[r][e].replace && (e = Ne[r][e].replace), { value: e, metrics: Cu(e, t, r) }; }, q0 = function(e, t, r, a, i) { var l = Kl(e, t, r), s = l.metrics; e = l.value; var o; if (s) { var u = s.italic; (r === "text" || a && a.font === "mathit") && (u = 0), o = new x0(e, s.height, s.depth, u, s.skew, s.width, i); } else typeof console < "u" && console.warn("No character metrics " + ("for '" + e + "' in style '" + t + "' and mode '" + r + "'")), o = new x0(e, 0, 0, 0, 0, 0, i); if (a) { o.maxFontSize = a.sizeMultiplier, a.style.isTight() && o.classes.push("mtight"); var c = a.getColor(); c && (o.style.color = c); } return o; }, c3 = function(e, t, r, a) { return a === void 0 && (a = []), r.font === "boldsymbol" && Kl(e, "Main-Bold", t).metrics ? q0(e, "Main-Bold", t, r, a.concat(["mathbf"])) : e === "\\" || Ne[t][e].font === "main" ? q0(e, "Main-Regular", t, r, a) : q0(e, "AMS-Regular", t, r, a.concat(["amsrm"])); }, f3 = function(e, t, r, a, i) { return i !== "textord" && Kl(e, "Math-BoldItalic", t).metrics ? { fontName: "Math-BoldItalic", fontClass: "boldsymbol" } : { fontName: "Main-Bold", fontClass: "mathbf" }; }, h3 = function(e, t, r) { var a = e.mode, i = e.text, l = ["mord"], s = a === "math" || a === "text" && t.font, o = s ? t.font : t.fontFamily, u = "", c = ""; if (i.charCodeAt(0) === 55349 && ([u, c] = u3(i, a)), u.length > 0) return q0(i, u, a, t, l.concat(c)); if (o) { var d, h; if (o === "boldsymbol") { var p = f3(i, a, t, l, r); d = p.fontName, h = [p.fontClass]; } else s ? (d = Id[o].fontName, h = [o]) : (d = Pi(o, t.fontWeight, t.fontShape), h = [o, t.fontWeight, t.fontShape]); if (Kl(i, d, a).metrics) return q0(i, d, a, t, l.concat(h)); if (Md.hasOwnProperty(i) && d.slice(0, 10) === "Typewriter") { for (var _ = [], b = 0; b < i.length; b++) _.push(q0(i[b], d, a, t, l.concat(h))); return Bd(_); } } if (r === "mathord") return q0(i, "Math-Italic", a, t, l.concat(["mathnormal"])); if (r === "textord") { var D = Ne[a][i] && Ne[a][i].font; if (D === "ams") { var y = Pi("amsrm", t.fontWeight, t.fontShape); return q0(i, y, a, t, l.concat("amsrm", t.fontWeight, t.fontShape)); } else if (D === "main" || !D) { var k = Pi("textrm", t.fontWeight, t.fontShape); return q0(i, k, a, t, l.concat(t.fontWeight, t.fontShape)); } else { var w = Pi(D, t.fontWeight, t.fontShape); return q0(i, w, a, t, l.concat(w, t.fontWeight, t.fontShape)); } } else throw new Error("unexpected type: " + r + " in makeOrd"); }, d3 = (n, e) => { if (on(n.classes) !== on(e.classes) || n.skew !== e.skew || n.maxFontSize !== e.maxFontSize) return !1; if (n.classes.length === 1) { var t = n.classes[0]; if (t === "mbin" || t === "mord") return !1; } for (var r in n.style) if (n.style.hasOwnProperty(r) && n.style[r] !== e.style[r]) return !1; for (var a in e.style) if (e.style.hasOwnProperty(a) && n.style[a] !== e.style[a]) return !1; return !0; }, m3 = (n) => { for (var e = 0; e < n.length - 1; e++) { var t = n[e], r = n[e + 1]; t instanceof x0 && r instanceof x0 && d3(t, r) && (t.text += r.text, t.height = Math.max(t.height, r.height), t.depth = Math.max(t.depth, r.depth), t.italic = r.italic, n.splice(e + 1, 1), e--); } return n; }, Mu = function(e) { for (var t = 0, r = 0, a = 0, i = 0; i < e.children.length; i++) { var l = e.children[i]; l.height > t && (t = l.height), l.depth > r && (r = l.depth), l.maxFontSize > a && (a = l.maxFontSize); } e.height = t, e.depth = r, e.maxFontSize = a; }, e0 = function(e, t, r, a) { var i = new ri(e, t, r, a); return Mu(i), i; }, zd = (n, e, t, r) => new ri(n, e, t, r), p3 = function(e, t, r) { var a = e0([e], [], t); return a.height = Math.max(r || t.fontMetrics().defaultRuleThickness, t.minRuleThickness), a.style.borderBottomWidth = X(a.height), a.maxFontSize = 1, a; }, g3 = function(e, t, r, a) { var i = new Fu(e, t, r, a); return Mu(i), i; }, Bd = function(e) { var t = new ti(e); return Mu(t), t; }, _3 = function(e, t) { return e instanceof ti ? e0([], [e], t) : e; }, v3 = function(e) { if (e.positionType === "individualShift") { for (var t = e.children, r = [t[0]], a = -t[0].shift - t[0].elem.depth, i = a, l = 1; l < t.length; l++) { var s = -t[l].shift - i - t[l].elem.depth, o = s - (t[l - 1].elem.height + t[l - 1].elem.depth); i = i + s, r.push({ type: "kern", size: o }), r.push(t[l]); } return { children: r, depth: a }; } var u; if (e.positionType === "top") { for (var c = e.positionData, d = 0; d < e.children.length; d++) { var h = e.children[d]; c -= h.type === "kern" ? h.size : h.elem.height + h.elem.depth; } u = c; } else if (e.positionType === "bottom") u = -e.positionData; else { var p = e.children[0]; if (p.type !== "elem") throw new Error('First child must have type "elem".'); if (e.positionType === "shift") u = -p.elem.depth - e.positionData; else if (e.positionType === "firstBaseline") u = -p.elem.depth; else throw new Error("Invalid positionType " + e.positionType + "."); } return { children: e.children, depth: u }; }, b3 = function(e, t) { for (var { children: r, depth: a } = v3(e), i = 0, l = 0; l < r.length; l++) { var s = r[l]; if (s.type === "elem") { var o = s.elem; i = Math.max(i, o.maxFontSize, o.height); } } i += 2; var u = e0(["pstrut"], []); u.style.height = X(i); for (var c = [], d = a, h = a, p = a, _ = 0; _ < r.length; _++) { var b = r[_]; if (b.type === "kern") p += b.size; else { var D = b.elem, y = b.wrapperClasses || [], k = b.wrapperStyle || {}, w = e0(y, [u, D], void 0, k); w.style.top = X(-i - p - D.depth), b.marginLeft && (w.style.marginLeft = b.marginLeft), b.marginRight && (w.style.marginRight = b.marginRight), c.push(w), p += D.height + D.depth; } d = Math.min(d, p), h = Math.max(h, p); } var E = e0(["vlist"], c); E.style.height = X(h); var S; if (d < 0) { var T = e0([], []), C = e0(["vlist"], [T]); C.style.height = X(-d); var F = e0(["vlist-s"], [new x0("​")]); S = [e0(["vlist-r"], [E, F]), e0(["vlist-r"], [C])]; } else S = [e0(["vlist-r"], [E])]; var B = e0(["vlist-t"], S); return S.length === 2 && B.classes.push("vlist-t2"), B.height = h, B.depth = -d, B; }, w3 = (n, e) => { var t = e0(["mspace"], [], e), r = Ye(n, e); return t.style.marginRight = X(r), t; }, Pi = function(e, t, r) { var a = ""; switch (e) { case "amsrm": a = "AMS"; break; case "textrm": a = "Main"; break; case "textsf": a = "SansSerif"; break; case "texttt": a = "Typewriter"; break; default: a = e; } var i; return t === "textbf" && r === "textit" ? i = "BoldItalic" : t === "textbf" ? i = "Bold" : t === "textit" ? i = "Italic" : i = "Regular", a + "-" + i; }, Id = { // styles mathbf: { variant: "bold", fontName: "Main-Bold" }, mathrm: { variant: "normal", fontName: "Main-Regular" }, textit: { variant: "italic", fontName: "Main-Italic" }, mathit: { variant: "italic", fontName: "Main-Italic" }, mathnormal: { variant: "italic", fontName: "Math-Italic" }, // "boldsymbol" is missing because they require the use of multiple fonts: // Math-BoldItalic and Main-Bold. This is handled by a special case in // makeOrd which ends up calling boldsymbol. // families mathbb: { variant: "double-struck", fontName: "AMS-Regular" }, mathcal: { variant: "script", fontName: "Caligraphic-Regular" }, mathfrak: { variant: "fraktur", fontName: "Fraktur-Regular" }, mathscr: { variant: "script", fontName: "Script-Regular" }, mathsf: { variant: "sans-serif", fontName: "SansSerif-Regular" }, mathtt: { variant: "monospace", fontName: "Typewriter-Regular" } }, Ld = { // path, width, height vec: ["vec", 0.471, 0.714], // values from the font glyph oiintSize1: ["oiintSize1", 0.957, 0.499], // oval to overlay the integrand oiintSize2: ["oiintSize2", 1.472, 0.659], oiiintSize1: ["oiiintSize1", 1.304, 0.499], oiiintSize2: ["oiiintSize2", 1.98, 0.659] }, y3 = function(e, t) { var [r, a, i] = Ld[e], l = new un(r), s = new Br([l], { width: X(a), height: X(i), // Override CSS rule `.katex svg { width: 100% }` style: "width:" + X(a), viewBox: "0 0 " + 1e3 * a + " " + 1e3 * i, preserveAspectRatio: "xMinYMin" }), o = zd(["overlay"], [s], t); return o.height = i, o.style.height = X(i), o.style.width = X(a), o; }, R = { fontMap: Id, makeSymbol: q0, mathsym: c3, makeSpan: e0, makeSvgSpan: zd, makeLineSpan: p3, makeAnchor: g3, makeFragment: Bd, wrapFragment: _3, makeVList: b3, makeOrd: h3, makeGlue: w3, staticSvg: y3, svgData: Ld, tryCombineChars: m3 }, Xe = { number: 3, unit: "mu" }, bn = { number: 4, unit: "mu" }, wr = { number: 5, unit: "mu" }, k3 = { mord: { mop: Xe, mbin: bn, mrel: wr, minner: Xe }, mop: { mord: Xe, mop: Xe, mrel: wr, minner: Xe }, mbin: { mord: bn, mop: bn, mopen: bn, minner: bn }, mrel: { mord: wr, mop: wr, mopen: wr, minner: wr }, mopen: {}, mclose: { mop: Xe, mbin: bn, mrel: wr, minner: Xe }, mpunct: { mord: Xe, mop: Xe, mrel: wr, mopen: Xe, mclose: Xe, mpunct: Xe, minner: Xe }, minner: { mord: Xe, mop: Xe, mbin: bn, mrel: wr, mopen: Xe, mpunct: Xe, minner: Xe } }, D3 = { mord: { mop: Xe }, mop: { mord: Xe, mop: Xe }, mbin: {}, mrel: {}, mopen: {}, mclose: { mop: Xe }, mpunct: {}, minner: { mop: Xe } }, Nd = {}, Cl = {}, Fl = {}; function Y(n) { for (var { type: e, names: t, props: r, handler: a, htmlBuilder: i, mathmlBuilder: l } = n, s = { type: e, numArgs: r.numArgs, argTypes: r.argTypes, allowedInArgument: !!r.allowedInArgument, allowedInText: !!r.allowedInText, allowedInMath: r.allowedInMath === void 0 ? !0 : r.allowedInMath, numOptionalArgs: r.numOptionalArgs || 0, infix: !!r.infix, primitive: !!r.primitive, handler: a }, o = 0; o < t.length; ++o) Nd[t[o]] = s; e && (i && (Cl[e] = i), l && (Fl[e] = l)); } function Bn(n) { var { type: e, htmlBuilder: t, mathmlBuilder: r } = n; Y({ type: e, names: [], props: { numArgs: 0 }, handler() { throw new Error("Should never be called."); }, htmlBuilder: t, mathmlBuilder: r }); } var Ml = function(e) { return e.type === "ordgroup" && e.body.length === 1 ? e.body[0] : e; }, tt = function(e) { return e.type === "ordgroup" ? e.body : [e]; }, Ir = R.makeSpan, A3 = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"], E3 = ["rightmost", "mrel", "mclose", "mpunct"], S3 = { display: ae.DISPLAY, text: ae.TEXT, script: ae.SCRIPT, scriptscript: ae.SCRIPTSCRIPT }, x3 = { mord: "mord", mop: "mop", mbin: "mbin", mrel: "mrel", mopen: "mopen", mclose: "mclose", mpunct: "mpunct", minner: "minner" }, gt = function(e, t, r, a) { a === void 0 && (a = [null, null]); for (var i = [], l = 0; l < e.length; l++) { var s = Se(e[l], t); if (s instanceof ti) { var o = s.children; i.push(...o); } else i.push(s); } if (R.tryCombineChars(i), !r) return i; var u = t; if (e.length === 1) { var c = e[0]; c.type === "sizing" ? u = t.havingSize(c.size) : c.type === "styling" && (u = t.havingStyle(S3[c.style])); } var d = Ir([a[0] || "leftmost"], [], t), h = Ir([a[1] || "rightmost"], [], t), p = r === "root"; return nc(i, (_, b) => { var D = b.classes[0], y = _.classes[0]; D === "mbin" && re.contains(E3, y) ? b.classes[0] = "mord" : y === "mbin" && re.contains(A3, D) && (_.classes[0] = "mord"); }, { node: d }, h, p), nc(i, (_, b) => { var D = Jo(b), y = Jo(_), k = D && y ? _.hasClass("mtight") ? D3[D][y] : k3[D][y] : null; if (k) return R.makeGlue(k, u); }, { node: d }, h, p), i; }, nc = function n(e, t, r, a, i) { a && e.push(a); for (var l = 0; l < e.length; l++) { var s = e[l], o = Rd(s); if (o) { n(o.children, t, r, null, i); continue; } var u = !s.hasClass("mspace"); if (u) { var c = t(s, r.node); c && (r.insertAfter ? r.insertAfter(c) : (e.unshift(c), l++)); } u ? r.node = s : i && s.hasClass("newline") && (r.node = Ir(["leftmost"])), r.insertAfter = /* @__PURE__ */ ((d) => (h) => { e.splice(d + 1, 0, h), l++; })(l); } a && e.pop(); }, Rd = function(e) { return e instanceof ti || e instanceof Fu || e instanceof ri && e.hasClass("enclosing") ? e : null; }, T3 = function n(e, t) { var r = Rd(e); if (r) { var a = r.children; if (a.length) { if (t === "right") return n(a[a.length - 1], "right"); if (t === "left") return n(a[0], "left"); } } return e; }, Jo = function(e, t) { return e ? (t && (e = T3(e, t)), x3[e.classes[0]] || null) : null; }, Ya = function(e, t) { var r = ["nulldelimiter"].concat(e.baseSizingClasses()); return Ir(t.concat(r)); }, Se = function(e, t, r) { if (!e) return Ir(); if (Cl[e.type]) { var a = Cl[e.type](e, t); if (r && t.size !== r.size) { a = Ir(t.sizingClasses(r), [a], t); var i = t.sizeMultiplier / r.sizeMultiplier; a.height *= i, a.depth *= i; } return a; } else throw new G("Got group of unknown type: '" + e.type + "'"); }; function Hi(n, e) { var t = Ir(["base"], n, e), r = Ir(["strut"]); return r.style.height = X(t.height + t.depth), t.depth && (r.style.verticalAlign = X(-t.depth)), t.children.unshift(r), t; } function Qo(n, e) { var t = null; n.length === 1 && n[0].type === "tag" && (t = n[0].tag, n = n[0].body); var r = gt(n, e, "root"), a; r.length === 2 && r[1].hasClass("tag") && (a = r.pop()); for (var i = [], l = [], s = 0; s < r.length; s++) if (l.push(r[s]), r[s].hasClass("mbin") || r[s].hasClass("mrel") || r[s].hasClass("allowbreak")) { for (var o = !1; s < r.length - 1 && r[s + 1].hasClass("mspace") && !r[s + 1].hasClass("newline"); ) s++, l.push(r[s]), r[s].hasClass("nobreak") && (o = !0); o || (i.push(Hi(l, e)), l = []); } else r[s].hasClass("newline") && (l.pop(), l.length > 0 && (i.push(Hi(l, e)), l = []), i.push(r[s])); l.length > 0 && i.push(Hi(l, e)); var u; t ? (u = Hi(gt(t, e, !0)), u.classes = ["tag"], i.push(u)) : a && i.push(a); var c = Ir(["katex-html"], i); if (c.setAttribute("aria-hidden", "true"), u) { var d = u.children[0]; d.style.height = X(c.height + c.depth), c.depth && (d.style.verticalAlign = X(-c.depth)); } return c; } function Od(n) { return new ti(n); } class y0 { constructor(e, t, r) { this.type = void 0, this.attributes = void 0, this.children = void 0, this.classes = void 0, this.type = e, this.attributes = {}, this.children = t || [], this.classes = r || []; } /** * Sets an attribute on a MathML node. MathML depends on attributes to convey a * semantic content, so this is used heavily. */ setAttribute(e, t) { this.attributes[e] = t; } /** * Gets an attribute on a MathML node. */ getAttribute(e) { return this.attributes[e]; } /** * Converts the math node into a MathML-namespaced DOM element. */ toNode() { var e = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type); for (var t in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, t) && e.setAttribute(t, this.attributes[t]); this.classes.length > 0 && (e.className = on(this.classes)); for (var r = 0; r < this.children.length; r++) e.appendChild(this.children[r].toNode()); return e; } /** * Converts the math node into an HTML markup string. */ toMarkup() { var e = "<" + this.type; for (var t in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, t) && (e += " " + t + '="', e += re.escape(this.attributes[t]), e += '"'); this.classes.length > 0 && (e += ' class ="' + re.escape(on(this.classes)) + '"'), e += ">"; for (var r = 0; r < this.children.length; r++) e += this.children[r].toMarkup(); return e += "", e; } /** * Converts the math node into a string, similar to innerText, but escaped. */ toText() { return this.children.map((e) => e.toText()).join(""); } } class Oa { constructor(e) { this.text = void 0, this.text = e; } /** * Converts the text node into a DOM text node. */ toNode() { return document.createTextNode(this.text); } /** * Converts the text node into escaped HTML markup * (representing the text itself). */ toMarkup() { return re.escape(this.toText()); } /** * Converts the text node into a string * (representing the text itself). */ toText() { return this.text; } } class C3 { /** * Create a Space node with width given in CSS ems. */ constructor(e) { this.width = void 0, this.character = void 0, this.width = e, e >= 0.05555 && e <= 0.05556 ? this.character = " " : e >= 0.1666 && e <= 0.1667 ? this.character = " " : e >= 0.2222 && e <= 0.2223 ? this.character = " " : e >= 0.2777 && e <= 0.2778 ? this.character = "  " : e >= -0.05556 && e <= -0.05555 ? this.character = " ⁣" : e >= -0.1667 && e <= -0.1666 ? this.character = " ⁣" : e >= -0.2223 && e <= -0.2222 ? this.character = " ⁣" : e >= -0.2778 && e <= -0.2777 ? this.character = " ⁣" : this.character = null; } /** * Converts the math node into a MathML-namespaced DOM element. */ toNode() { if (this.character) return document.createTextNode(this.character); var e = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace"); return e.setAttribute("width", X(this.width)), e; } /** * Converts the math node into an HTML markup string. */ toMarkup() { return this.character ? "" + this.character + "" : ''; } /** * Converts the math node into a string, similar to innerText. */ toText() { return this.character ? this.character : " "; } } var U = { MathNode: y0, TextNode: Oa, SpaceNode: C3, newDocumentFragment: Od }, T0 = function(e, t, r) { return Ne[t][e] && Ne[t][e].replace && e.charCodeAt(0) !== 55349 && !(Md.hasOwnProperty(e) && r && (r.fontFamily && r.fontFamily.slice(4, 6) === "tt" || r.font && r.font.slice(4, 6) === "tt")) && (e = Ne[t][e].replace), new U.TextNode(e); }, zu = function(e) { return e.length === 1 ? e[0] : new U.MathNode("mrow", e); }, Bu = function(e, t) { if (t.fontFamily === "texttt") return "monospace"; if (t.fontFamily === "textsf") return t.fontShape === "textit" && t.fontWeight === "textbf" ? "sans-serif-bold-italic" : t.fontShape === "textit" ? "sans-serif-italic" : t.fontWeight === "textbf" ? "bold-sans-serif" : "sans-serif"; if (t.fontShape === "textit" && t.fontWeight === "textbf") return "bold-italic"; if (t.fontShape === "textit") return "italic"; if (t.fontWeight === "textbf") return "bold"; var r = t.font; if (!r || r === "mathnormal") return null; var a = e.mode; if (r === "mathit") return "italic"; if (r === "boldsymbol") return e.type === "textord" ? "bold" : "bold-italic"; if (r === "mathbf") return "bold"; if (r === "mathbb") return "double-struck"; if (r === "mathfrak") return "fraktur"; if (r === "mathscr" || r === "mathcal") return "script"; if (r === "mathsf") return "sans-serif"; if (r === "mathtt") return "monospace"; var i = e.text; if (re.contains(["\\imath", "\\jmath"], i)) return null; Ne[a][i] && Ne[a][i].replace && (i = Ne[a][i].replace); var l = R.fontMap[r].fontName; return Cu(i, l, a) ? R.fontMap[r].variant : null; }, a0 = function(e, t, r) { if (e.length === 1) { var a = Ie(e[0], t); return r && a instanceof y0 && a.type === "mo" && (a.setAttribute("lspace", "0em"), a.setAttribute("rspace", "0em")), [a]; } for (var i = [], l, s = 0; s < e.length; s++) { var o = Ie(e[s], t); if (o instanceof y0 && l instanceof y0) { if (o.type === "mtext" && l.type === "mtext" && o.getAttribute("mathvariant") === l.getAttribute("mathvariant")) { l.children.push(...o.children); continue; } else if (o.type === "mn" && l.type === "mn") { l.children.push(...o.children); continue; } else if (o.type === "mi" && o.children.length === 1 && l.type === "mn") { var u = o.children[0]; if (u instanceof Oa && u.text === ".") { l.children.push(...o.children); continue; } } else if (l.type === "mi" && l.children.length === 1) { var c = l.children[0]; if (c instanceof Oa && c.text === "̸" && (o.type === "mo" || o.type === "mi" || o.type === "mn")) { var d = o.children[0]; d instanceof Oa && d.text.length > 0 && (d.text = d.text.slice(0, 1) + "̸" + d.text.slice(1), i.pop()); } } } i.push(o), l = o; } return i; }, cn = function(e, t, r) { return zu(a0(e, t, r)); }, Ie = function(e, t) { if (!e) return new U.MathNode("mrow"); if (Fl[e.type]) { var r = Fl[e.type](e, t); return r; } else throw new G("Got group of unknown type: '" + e.type + "'"); }; function ac(n, e, t, r, a) { var i = a0(n, t), l; i.length === 1 && i[0] instanceof y0 && re.contains(["mrow", "mtable"], i[0].type) ? l = i[0] : l = new U.MathNode("mrow", i); var s = new U.MathNode("annotation", [new U.TextNode(e)]); s.setAttribute("encoding", "application/x-tex"); var o = new U.MathNode("semantics", [l, s]), u = new U.MathNode("math", [o]); u.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML"), r && u.setAttribute("display", "block"); var c = a ? "katex" : "katex-mathml"; return R.makeSpan([c], [u]); } var qd = function(e) { return new Dr({ style: e.displayMode ? ae.DISPLAY : ae.TEXT, maxSize: e.maxSize, minRuleThickness: e.minRuleThickness }); }, Pd = function(e, t) { if (t.displayMode) { var r = ["katex-display"]; t.leqno && r.push("leqno"), t.fleqn && r.push("fleqn"), e = R.makeSpan(r, [e]); } return e; }, F3 = function(e, t, r) { var a = qd(r), i; if (r.output === "mathml") return ac(e, t, a, r.displayMode, !0); if (r.output === "html") { var l = Qo(e, a); i = R.makeSpan(["katex"], [l]); } else { var s = ac(e, t, a, r.displayMode, !1), o = Qo(e, a); i = R.makeSpan(["katex"], [s, o]); } return Pd(i, r); }, M3 = function(e, t, r) { var a = qd(r), i = Qo(e, a), l = R.makeSpan(["katex"], [i]); return Pd(l, r); }, z3 = { widehat: "^", widecheck: "ˇ", widetilde: "~", utilde: "~", overleftarrow: "←", underleftarrow: "←", xleftarrow: "←", overrightarrow: "→", underrightarrow: "→", xrightarrow: "→", underbrace: "⏟", overbrace: "⏞", overgroup: "⏠", undergroup: "⏡", overleftrightarrow: "↔", underleftrightarrow: "↔", xleftrightarrow: "↔", Overrightarrow: "⇒", xRightarrow: "⇒", overleftharpoon: "↼", xleftharpoonup: "↼", overrightharpoon: "⇀", xrightharpoonup: "⇀", xLeftarrow: "⇐", xLeftrightarrow: "⇔", xhookleftarrow: "↩", xhookrightarrow: "↪", xmapsto: "↦", xrightharpoondown: "⇁", xleftharpoondown: "↽", xrightleftharpoons: "⇌", xleftrightharpoons: "⇋", xtwoheadleftarrow: "↞", xtwoheadrightarrow: "↠", xlongequal: "=", xtofrom: "⇄", xrightleftarrows: "⇄", xrightequilibrium: "⇌", // Not a perfect match. xleftequilibrium: "⇋", // None better available. "\\cdrightarrow": "→", "\\cdleftarrow": "←", "\\cdlongequal": "=" }, B3 = function(e) { var t = new U.MathNode("mo", [new U.TextNode(z3[e.replace(/^\\/, "")])]); return t.setAttribute("stretchy", "true"), t; }, I3 = { // path(s), minWidth, height, align overrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"], overleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"], underrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"], underleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"], xrightarrow: [["rightarrow"], 1.469, 522, "xMaxYMin"], "\\cdrightarrow": [["rightarrow"], 3, 522, "xMaxYMin"], // CD minwwidth2.5pc xleftarrow: [["leftarrow"], 1.469, 522, "xMinYMin"], "\\cdleftarrow": [["leftarrow"], 3, 522, "xMinYMin"], Overrightarrow: [["doublerightarrow"], 0.888, 560, "xMaxYMin"], xRightarrow: [["doublerightarrow"], 1.526, 560, "xMaxYMin"], xLeftarrow: [["doubleleftarrow"], 1.526, 560, "xMinYMin"], overleftharpoon: [["leftharpoon"], 0.888, 522, "xMinYMin"], xleftharpoonup: [["leftharpoon"], 0.888, 522, "xMinYMin"], xleftharpoondown: [["leftharpoondown"], 0.888, 522, "xMinYMin"], overrightharpoon: [["rightharpoon"], 0.888, 522, "xMaxYMin"], xrightharpoonup: [["rightharpoon"], 0.888, 522, "xMaxYMin"], xrightharpoondown: [["rightharpoondown"], 0.888, 522, "xMaxYMin"], xlongequal: [["longequal"], 0.888, 334, "xMinYMin"], "\\cdlongequal": [["longequal"], 3, 334, "xMinYMin"], xtwoheadleftarrow: [["twoheadleftarrow"], 0.888, 334, "xMinYMin"], xtwoheadrightarrow: [["twoheadrightarrow"], 0.888, 334, "xMaxYMin"], overleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522], overbrace: [["leftbrace", "midbrace", "rightbrace"], 1.6, 548], underbrace: [["leftbraceunder", "midbraceunder", "rightbraceunder"], 1.6, 548], underleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522], xleftrightarrow: [["leftarrow", "rightarrow"], 1.75, 522], xLeftrightarrow: [["doubleleftarrow", "doublerightarrow"], 1.75, 560], xrightleftharpoons: [["leftharpoondownplus", "rightharpoonplus"], 1.75, 716], xleftrightharpoons: [["leftharpoonplus", "rightharpoondownplus"], 1.75, 716], xhookleftarrow: [["leftarrow", "righthook"], 1.08, 522], xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522], overlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522], underlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522], overgroup: [["leftgroup", "rightgroup"], 0.888, 342], undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342], xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522], xtofrom: [["leftToFrom", "rightToFrom"], 1.75, 528], // The next three arrows are from the mhchem package. // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the // document as \xrightarrow or \xrightleftharpoons. Those have // min-length = 1.75em, so we set min-length on these next three to match. xrightleftarrows: [["baraboveleftarrow", "rightarrowabovebar"], 1.75, 901], xrightequilibrium: [["baraboveshortleftharpoon", "rightharpoonaboveshortbar"], 1.75, 716], xleftequilibrium: [["shortbaraboveleftharpoon", "shortrightharpoonabovebar"], 1.75, 716] }, L3 = function(e) { return e.type === "ordgroup" ? e.body.length : 1; }, N3 = function(e, t) { function r() { var s = 4e5, o = e.label.slice(1); if (re.contains(["widehat", "widecheck", "widetilde", "utilde"], o)) { var u = e, c = L3(u.base), d, h, p; if (c > 5) o === "widehat" || o === "widecheck" ? (d = 420, s = 2364, p = 0.42, h = o + "4") : (d = 312, s = 2340, p = 0.34, h = "tilde4"); else { var _ = [1, 1, 2, 2, 3, 3][c]; o === "widehat" || o === "widecheck" ? (s = [0, 1062, 2364, 2364, 2364][_], d = [0, 239, 300, 360, 420][_], p = [0, 0.24, 0.3, 0.3, 0.36, 0.42][_], h = o + _) : (s = [0, 600, 1033, 2339, 2340][_], d = [0, 260, 286, 306, 312][_], p = [0, 0.26, 0.286, 0.3, 0.306, 0.34][_], h = "tilde" + _); } var b = new un(h), D = new Br([b], { width: "100%", height: X(p), viewBox: "0 0 " + s + " " + d, preserveAspectRatio: "none" }); return { span: R.makeSvgSpan([], [D], t), minWidth: 0, height: p }; } else { var y = [], k = I3[o], [w, E, S] = k, T = S / 1e3, C = w.length, F, B; if (C === 1) { var I = k[3]; F = ["hide-tail"], B = [I]; } else if (C === 2) F = ["halfarrow-left", "halfarrow-right"], B = ["xMinYMin", "xMaxYMin"]; else if (C === 3) F = ["brace-left", "brace-center", "brace-right"], B = ["xMinYMin", "xMidYMin", "xMaxYMin"]; else throw new Error(`Correct katexImagesData or update code here to support ` + C + " children."); for (var L = 0; L < C; L++) { var P = new un(w[L]), Z = new Br([P], { width: "400em", height: X(T), viewBox: "0 0 " + s + " " + S, preserveAspectRatio: B[L] + " slice" }), O = R.makeSvgSpan([F[L]], [Z], t); if (C === 1) return { span: O, minWidth: E, height: T }; O.style.height = X(T), y.push(O); } return { span: R.makeSpan(["stretchy"], y, t), minWidth: E, height: T }; } } var { span: a, minWidth: i, height: l } = r(); return a.height = l, a.style.height = X(l), i > 0 && (a.style.minWidth = X(i)), a; }, R3 = function(e, t, r, a, i) { var l, s = e.height + e.depth + r + a; if (/fbox|color|angl/.test(t)) { if (l = R.makeSpan(["stretchy", t], [], i), t === "fbox") { var o = i.color && i.getColor(); o && (l.style.borderColor = o); } } else { var u = []; /^[bx]cancel$/.test(t) && u.push(new Zo({ x1: "0", y1: "0", x2: "100%", y2: "100%", "stroke-width": "0.046em" })), /^x?cancel$/.test(t) && u.push(new Zo({ x1: "0", y1: "100%", x2: "100%", y2: "0", "stroke-width": "0.046em" })); var c = new Br(u, { width: "100%", height: X(s) }); l = R.makeSvgSpan([], [c], i); } return l.height = s, l.style.height = X(s), l; }, Lr = { encloseSpan: R3, mathMLnode: B3, svgSpan: N3 }; function pe(n, e) { if (!n || n.type !== e) throw new Error("Expected node of type " + e + ", but got " + (n ? "node of type " + n.type : String(n))); return n; } function Iu(n) { var e = Jl(n); if (!e) throw new Error("Expected node of symbol group type, but got " + (n ? "node of type " + n.type : String(n))); return e; } function Jl(n) { return n && (n.type === "atom" || o3.hasOwnProperty(n.type)) ? n : null; } var Lu = (n, e) => { var t, r, a; n && n.type === "supsub" ? (r = pe(n.base, "accent"), t = r.base, n.base = t, a = l3(Se(n, e)), n.base = r) : (r = pe(n, "accent"), t = r.base); var i = Se(t, e.havingCrampedStyle()), l = r.isShifty && re.isCharacterBox(t), s = 0; if (l) { var o = re.getBaseElem(t), u = Se(o, e.havingCrampedStyle()); s = J1(u).skew; } var c = r.label === "\\c", d = c ? i.height + i.depth : Math.min(i.height, e.fontMetrics().xHeight), h; if (r.isStretchy) h = Lr.svgSpan(r, e), h = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: i }, { type: "elem", elem: h, wrapperClasses: ["svg-align"], wrapperStyle: s > 0 ? { width: "calc(100% - " + X(2 * s) + ")", marginLeft: X(2 * s) } : void 0 }] }, e); else { var p, _; r.label === "\\vec" ? (p = R.staticSvg("vec", e), _ = R.svgData.vec[1]) : (p = R.makeOrd({ mode: r.mode, text: r.label }, e, "textord"), p = J1(p), p.italic = 0, _ = p.width, c && (d += p.depth)), h = R.makeSpan(["accent-body"], [p]); var b = r.label === "\\textcircled"; b && (h.classes.push("accent-full"), d = i.height); var D = s; b || (D -= _ / 2), h.style.left = X(D), r.label === "\\textcircled" && (h.style.top = ".2em"), h = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: i }, { type: "kern", size: -d }, { type: "elem", elem: h }] }, e); } var y = R.makeSpan(["mord", "accent"], [h], e); return a ? (a.children[0] = y, a.height = Math.max(y.height, a.height), a.classes[0] = "mord", a) : y; }, Hd = (n, e) => { var t = n.isStretchy ? Lr.mathMLnode(n.label) : new U.MathNode("mo", [T0(n.label, n.mode)]), r = new U.MathNode("mover", [Ie(n.base, e), t]); return r.setAttribute("accent", "true"), r; }, O3 = new RegExp(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"].map((n) => "\\" + n).join("|")); Y({ type: "accent", names: ["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring", "\\widecheck", "\\widehat", "\\widetilde", "\\overrightarrow", "\\overleftarrow", "\\Overrightarrow", "\\overleftrightarrow", "\\overgroup", "\\overlinesegment", "\\overleftharpoon", "\\overrightharpoon"], props: { numArgs: 1 }, handler: (n, e) => { var t = Ml(e[0]), r = !O3.test(n.funcName), a = !r || n.funcName === "\\widehat" || n.funcName === "\\widetilde" || n.funcName === "\\widecheck"; return { type: "accent", mode: n.parser.mode, label: n.funcName, isStretchy: r, isShifty: a, base: t }; }, htmlBuilder: Lu, mathmlBuilder: Hd }); Y({ type: "accent", names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\c", "\\r", "\\H", "\\v", "\\textcircled"], props: { numArgs: 1, allowedInText: !0, allowedInMath: !0, // unless in strict mode argTypes: ["primitive"] }, handler: (n, e) => { var t = e[0], r = n.parser.mode; return r === "math" && (n.parser.settings.reportNonstrict("mathVsTextAccents", "LaTeX's accent " + n.funcName + " works only in text mode"), r = "text"), { type: "accent", mode: r, label: n.funcName, isStretchy: !1, isShifty: !0, base: t }; }, htmlBuilder: Lu, mathmlBuilder: Hd }); Y({ type: "accentUnder", names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"], props: { numArgs: 1 }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = e[0]; return { type: "accentUnder", mode: t.mode, label: r, base: a }; }, htmlBuilder: (n, e) => { var t = Se(n.base, e), r = Lr.svgSpan(n, e), a = n.label === "\\utilde" ? 0.12 : 0, i = R.makeVList({ positionType: "top", positionData: t.height, children: [{ type: "elem", elem: r, wrapperClasses: ["svg-align"] }, { type: "kern", size: a }, { type: "elem", elem: t }] }, e); return R.makeSpan(["mord", "accentunder"], [i], e); }, mathmlBuilder: (n, e) => { var t = Lr.mathMLnode(n.label), r = new U.MathNode("munder", [Ie(n.base, e), t]); return r.setAttribute("accentunder", "true"), r; } }); var Ui = (n) => { var e = new U.MathNode("mpadded", n ? [n] : []); return e.setAttribute("width", "+0.6em"), e.setAttribute("lspace", "0.3em"), e; }; Y({ type: "xArrow", names: [ "\\xleftarrow", "\\xrightarrow", "\\xLeftarrow", "\\xRightarrow", "\\xleftrightarrow", "\\xLeftrightarrow", "\\xhookleftarrow", "\\xhookrightarrow", "\\xmapsto", "\\xrightharpoondown", "\\xrightharpoonup", "\\xleftharpoondown", "\\xleftharpoonup", "\\xrightleftharpoons", "\\xleftrightharpoons", "\\xlongequal", "\\xtwoheadrightarrow", "\\xtwoheadleftarrow", "\\xtofrom", // The next 3 functions are here to support the mhchem extension. // Direct use of these functions is discouraged and may break someday. "\\xrightleftarrows", "\\xrightequilibrium", "\\xleftequilibrium", // The next 3 functions are here only to support the {CD} environment. "\\\\cdrightarrow", "\\\\cdleftarrow", "\\\\cdlongequal" ], props: { numArgs: 1, numOptionalArgs: 1 }, handler(n, e, t) { var { parser: r, funcName: a } = n; return { type: "xArrow", mode: r.mode, label: a, body: e[0], below: t[0] }; }, // Flow is unable to correctly infer the type of `group`, even though it's // unambiguously determined from the passed-in `type` above. htmlBuilder(n, e) { var t = e.style, r = e.havingStyle(t.sup()), a = R.wrapFragment(Se(n.body, r, e), e), i = n.label.slice(0, 2) === "\\x" ? "x" : "cd"; a.classes.push(i + "-arrow-pad"); var l; n.below && (r = e.havingStyle(t.sub()), l = R.wrapFragment(Se(n.below, r, e), e), l.classes.push(i + "-arrow-pad")); var s = Lr.svgSpan(n, e), o = -e.fontMetrics().axisHeight + 0.5 * s.height, u = -e.fontMetrics().axisHeight - 0.5 * s.height - 0.111; (a.depth > 0.25 || n.label === "\\xleftequilibrium") && (u -= a.depth); var c; if (l) { var d = -e.fontMetrics().axisHeight + l.height + 0.5 * s.height + 0.111; c = R.makeVList({ positionType: "individualShift", children: [{ type: "elem", elem: a, shift: u }, { type: "elem", elem: s, shift: o }, { type: "elem", elem: l, shift: d }] }, e); } else c = R.makeVList({ positionType: "individualShift", children: [{ type: "elem", elem: a, shift: u }, { type: "elem", elem: s, shift: o }] }, e); return c.children[0].children[0].children[1].classes.push("svg-align"), R.makeSpan(["mrel", "x-arrow"], [c], e); }, mathmlBuilder(n, e) { var t = Lr.mathMLnode(n.label); t.setAttribute("minsize", n.label.charAt(0) === "x" ? "1.75em" : "3.0em"); var r; if (n.body) { var a = Ui(Ie(n.body, e)); if (n.below) { var i = Ui(Ie(n.below, e)); r = new U.MathNode("munderover", [t, i, a]); } else r = new U.MathNode("mover", [t, a]); } else if (n.below) { var l = Ui(Ie(n.below, e)); r = new U.MathNode("munder", [t, l]); } else r = Ui(), r = new U.MathNode("mover", [t, r]); return r; } }); var q3 = R.makeSpan; function Ud(n, e) { var t = gt(n.body, e, !0); return q3([n.mclass], t, e); } function Vd(n, e) { var t, r = a0(n.body, e); return n.mclass === "minner" ? t = new U.MathNode("mpadded", r) : n.mclass === "mord" ? n.isCharacterBox ? (t = r[0], t.type = "mi") : t = new U.MathNode("mi", r) : (n.isCharacterBox ? (t = r[0], t.type = "mo") : t = new U.MathNode("mo", r), n.mclass === "mbin" ? (t.attributes.lspace = "0.22em", t.attributes.rspace = "0.22em") : n.mclass === "mpunct" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0.17em") : n.mclass === "mopen" || n.mclass === "mclose" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0em") : n.mclass === "minner" && (t.attributes.lspace = "0.0556em", t.attributes.width = "+0.1111em")), t; } Y({ type: "mclass", names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"], props: { numArgs: 1, primitive: !0 }, handler(n, e) { var { parser: t, funcName: r } = n, a = e[0]; return { type: "mclass", mode: t.mode, mclass: "m" + r.slice(5), // TODO(kevinb): don't prefix with 'm' body: tt(a), isCharacterBox: re.isCharacterBox(a) }; }, htmlBuilder: Ud, mathmlBuilder: Vd }); var Ql = (n) => { var e = n.type === "ordgroup" && n.body.length ? n.body[0] : n; return e.type === "atom" && (e.family === "bin" || e.family === "rel") ? "m" + e.family : "mord"; }; Y({ type: "mclass", names: ["\\@binrel"], props: { numArgs: 2 }, handler(n, e) { var { parser: t } = n; return { type: "mclass", mode: t.mode, mclass: Ql(e[0]), body: tt(e[1]), isCharacterBox: re.isCharacterBox(e[1]) }; } }); Y({ type: "mclass", names: ["\\stackrel", "\\overset", "\\underset"], props: { numArgs: 2 }, handler(n, e) { var { parser: t, funcName: r } = n, a = e[1], i = e[0], l; r !== "\\stackrel" ? l = Ql(a) : l = "mrel"; var s = { type: "op", mode: a.mode, limits: !0, alwaysHandleSupSub: !0, parentIsSupSub: !1, symbol: !1, suppressBaseShift: r !== "\\stackrel", body: tt(a) }, o = { type: "supsub", mode: i.mode, base: s, sup: r === "\\underset" ? null : i, sub: r === "\\underset" ? i : null }; return { type: "mclass", mode: t.mode, mclass: l, body: [o], isCharacterBox: re.isCharacterBox(o) }; }, htmlBuilder: Ud, mathmlBuilder: Vd }); Y({ type: "pmb", names: ["\\pmb"], props: { numArgs: 1, allowedInText: !0 }, handler(n, e) { var { parser: t } = n; return { type: "pmb", mode: t.mode, mclass: Ql(e[0]), body: tt(e[0]) }; }, htmlBuilder(n, e) { var t = gt(n.body, e, !0), r = R.makeSpan([n.mclass], t, e); return r.style.textShadow = "0.02em 0.01em 0.04px", r; }, mathmlBuilder(n, e) { var t = a0(n.body, e), r = new U.MathNode("mstyle", t); return r.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px"), r; } }); var P3 = { ">": "\\\\cdrightarrow", "<": "\\\\cdleftarrow", "=": "\\\\cdlongequal", A: "\\uparrow", V: "\\downarrow", "|": "\\Vert", ".": "no arrow" }, ic = () => ({ type: "styling", body: [], mode: "math", style: "display" }), lc = (n) => n.type === "textord" && n.text === "@", H3 = (n, e) => (n.type === "mathord" || n.type === "atom") && n.text === e; function U3(n, e, t) { var r = P3[n]; switch (r) { case "\\\\cdrightarrow": case "\\\\cdleftarrow": return t.callFunction(r, [e[0]], [e[1]]); case "\\uparrow": case "\\downarrow": { var a = t.callFunction("\\\\cdleft", [e[0]], []), i = { type: "atom", text: r, mode: "math", family: "rel" }, l = t.callFunction("\\Big", [i], []), s = t.callFunction("\\\\cdright", [e[1]], []), o = { type: "ordgroup", mode: "math", body: [a, l, s] }; return t.callFunction("\\\\cdparent", [o], []); } case "\\\\cdlongequal": return t.callFunction("\\\\cdlongequal", [], []); case "\\Vert": { var u = { type: "textord", text: "\\Vert", mode: "math" }; return t.callFunction("\\Big", [u], []); } default: return { type: "textord", text: " ", mode: "math" }; } } function V3(n) { var e = []; for (n.gullet.beginGroup(), n.gullet.macros.set("\\cr", "\\\\\\relax"), n.gullet.beginGroup(); ; ) { e.push(n.parseExpression(!1, "\\\\")), n.gullet.endGroup(), n.gullet.beginGroup(); var t = n.fetch().text; if (t === "&" || t === "\\\\") n.consume(); else if (t === "\\end") { e[e.length - 1].length === 0 && e.pop(); break; } else throw new G("Expected \\\\ or \\cr or \\end", n.nextToken); } for (var r = [], a = [r], i = 0; i < e.length; i++) { for (var l = e[i], s = ic(), o = 0; o < l.length; o++) if (!lc(l[o])) s.body.push(l[o]); else { r.push(s), o += 1; var u = Iu(l[o]).text, c = new Array(2); if (c[0] = { type: "ordgroup", mode: "math", body: [] }, c[1] = { type: "ordgroup", mode: "math", body: [] }, !("=|.".indexOf(u) > -1)) if ("<>AV".indexOf(u) > -1) for (var d = 0; d < 2; d++) { for (var h = !0, p = o + 1; p < l.length; p++) { if (H3(l[p], u)) { h = !1, o = p; break; } if (lc(l[p])) throw new G("Missing a " + u + " character to complete a CD arrow.", l[p]); c[d].body.push(l[p]); } if (h) throw new G("Missing a " + u + " character to complete a CD arrow.", l[o]); } else throw new G('Expected one of "<>AV=|." after @', l[o]); var _ = U3(u, c, n), b = { type: "styling", body: [_], mode: "math", style: "display" // CD is always displaystyle. }; r.push(b), s = ic(); } i % 2 === 0 ? r.push(s) : r.shift(), r = [], a.push(r); } n.gullet.endGroup(), n.gullet.endGroup(); var D = new Array(a[0].length).fill({ type: "align", align: "c", pregap: 0.25, // CD package sets \enskip between columns. postgap: 0.25 // So pre and post each get half an \enskip, i.e. 0.25em. }); return { type: "array", mode: "math", body: a, arraystretch: 1, addJot: !0, rowGaps: [null], cols: D, colSeparationType: "CD", hLinesBeforeRow: new Array(a.length + 1).fill([]) }; } Y({ type: "cdlabel", names: ["\\\\cdleft", "\\\\cdright"], props: { numArgs: 1 }, handler(n, e) { var { parser: t, funcName: r } = n; return { type: "cdlabel", mode: t.mode, side: r.slice(4), label: e[0] }; }, htmlBuilder(n, e) { var t = e.havingStyle(e.style.sup()), r = R.wrapFragment(Se(n.label, t, e), e); return r.classes.push("cd-label-" + n.side), r.style.bottom = X(0.8 - r.depth), r.height = 0, r.depth = 0, r; }, mathmlBuilder(n, e) { var t = new U.MathNode("mrow", [Ie(n.label, e)]); return t = new U.MathNode("mpadded", [t]), t.setAttribute("width", "0"), n.side === "left" && t.setAttribute("lspace", "-1width"), t.setAttribute("voffset", "0.7em"), t = new U.MathNode("mstyle", [t]), t.setAttribute("displaystyle", "false"), t.setAttribute("scriptlevel", "1"), t; } }); Y({ type: "cdlabelparent", names: ["\\\\cdparent"], props: { numArgs: 1 }, handler(n, e) { var { parser: t } = n; return { type: "cdlabelparent", mode: t.mode, fragment: e[0] }; }, htmlBuilder(n, e) { var t = R.wrapFragment(Se(n.fragment, e), e); return t.classes.push("cd-vert-arrow"), t; }, mathmlBuilder(n, e) { return new U.MathNode("mrow", [Ie(n.fragment, e)]); } }); Y({ type: "textord", names: ["\\@char"], props: { numArgs: 1, allowedInText: !0 }, handler(n, e) { for (var { parser: t } = n, r = pe(e[0], "ordgroup"), a = r.body, i = "", l = 0; l < a.length; l++) { var s = pe(a[l], "textord"); i += s.text; } var o = parseInt(i), u; if (isNaN(o)) throw new G("\\@char has non-numeric argument " + i); if (o < 0 || o >= 1114111) throw new G("\\@char with invalid code point " + i); return o <= 65535 ? u = String.fromCharCode(o) : (o -= 65536, u = String.fromCharCode((o >> 10) + 55296, (o & 1023) + 56320)), { type: "textord", mode: t.mode, text: u }; } }); var Gd = (n, e) => { var t = gt(n.body, e.withColor(n.color), !1); return R.makeFragment(t); }, jd = (n, e) => { var t = a0(n.body, e.withColor(n.color)), r = new U.MathNode("mstyle", t); return r.setAttribute("mathcolor", n.color), r; }; Y({ type: "color", names: ["\\textcolor"], props: { numArgs: 2, allowedInText: !0, argTypes: ["color", "original"] }, handler(n, e) { var { parser: t } = n, r = pe(e[0], "color-token").color, a = e[1]; return { type: "color", mode: t.mode, color: r, body: tt(a) }; }, htmlBuilder: Gd, mathmlBuilder: jd }); Y({ type: "color", names: ["\\color"], props: { numArgs: 1, allowedInText: !0, argTypes: ["color"] }, handler(n, e) { var { parser: t, breakOnTokenText: r } = n, a = pe(e[0], "color-token").color; t.gullet.macros.set("\\current@color", a); var i = t.parseExpression(!0, r); return { type: "color", mode: t.mode, color: a, body: i }; }, htmlBuilder: Gd, mathmlBuilder: jd }); Y({ type: "cr", names: ["\\\\"], props: { numArgs: 0, numOptionalArgs: 0, allowedInText: !0 }, handler(n, e, t) { var { parser: r } = n, a = r.gullet.future().text === "[" ? r.parseSizeGroup(!0) : null, i = !r.settings.displayMode || !r.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode"); return { type: "cr", mode: r.mode, newLine: i, size: a && pe(a, "size").value }; }, // The following builders are called only at the top level, // not within tabular/array environments. htmlBuilder(n, e) { var t = R.makeSpan(["mspace"], [], e); return n.newLine && (t.classes.push("newline"), n.size && (t.style.marginTop = X(Ye(n.size, e)))), t; }, mathmlBuilder(n, e) { var t = new U.MathNode("mspace"); return n.newLine && (t.setAttribute("linebreak", "newline"), n.size && t.setAttribute("height", X(Ye(n.size, e)))), t; } }); var $o = { "\\global": "\\global", "\\long": "\\\\globallong", "\\\\globallong": "\\\\globallong", "\\def": "\\gdef", "\\gdef": "\\gdef", "\\edef": "\\xdef", "\\xdef": "\\xdef", "\\let": "\\\\globallet", "\\futurelet": "\\\\globalfuture" }, Wd = (n) => { var e = n.text; if (/^(?:[\\{}$&#^_]|EOF)$/.test(e)) throw new G("Expected a control sequence", n); return e; }, G3 = (n) => { var e = n.gullet.popToken(); return e.text === "=" && (e = n.gullet.popToken(), e.text === " " && (e = n.gullet.popToken())), e; }, Xd = (n, e, t, r) => { var a = n.gullet.macros.get(t.text); a == null && (t.noexpand = !0, a = { tokens: [t], numArgs: 0, // reproduce the same behavior in expansion unexpandable: !n.gullet.isExpandable(t.text) }), n.gullet.macros.set(e, a, r); }; Y({ type: "internal", names: [ "\\global", "\\long", "\\\\globallong" // can’t be entered directly ], props: { numArgs: 0, allowedInText: !0 }, handler(n) { var { parser: e, funcName: t } = n; e.consumeSpaces(); var r = e.fetch(); if ($o[r.text]) return (t === "\\global" || t === "\\\\globallong") && (r.text = $o[r.text]), pe(e.parseFunction(), "internal"); throw new G("Invalid token after macro prefix", r); } }); Y({ type: "internal", names: ["\\def", "\\gdef", "\\edef", "\\xdef"], props: { numArgs: 0, allowedInText: !0, primitive: !0 }, handler(n) { var { parser: e, funcName: t } = n, r = e.gullet.popToken(), a = r.text; if (/^(?:[\\{}$&#^_]|EOF)$/.test(a)) throw new G("Expected a control sequence", r); for (var i = 0, l, s = [[]]; e.gullet.future().text !== "{"; ) if (r = e.gullet.popToken(), r.text === "#") { if (e.gullet.future().text === "{") { l = e.gullet.future(), s[i].push("{"); break; } if (r = e.gullet.popToken(), !/^[1-9]$/.test(r.text)) throw new G('Invalid argument number "' + r.text + '"'); if (parseInt(r.text) !== i + 1) throw new G('Argument number "' + r.text + '" out of order'); i++, s.push([]); } else { if (r.text === "EOF") throw new G("Expected a macro definition"); s[i].push(r.text); } var { tokens: o } = e.gullet.consumeArg(); return l && o.unshift(l), (t === "\\edef" || t === "\\xdef") && (o = e.gullet.expandTokens(o), o.reverse()), e.gullet.macros.set(a, { tokens: o, numArgs: i, delimiters: s }, t === $o[t]), { type: "internal", mode: e.mode }; } }); Y({ type: "internal", names: [ "\\let", "\\\\globallet" // can’t be entered directly ], props: { numArgs: 0, allowedInText: !0, primitive: !0 }, handler(n) { var { parser: e, funcName: t } = n, r = Wd(e.gullet.popToken()); e.gullet.consumeSpaces(); var a = G3(e); return Xd(e, r, a, t === "\\\\globallet"), { type: "internal", mode: e.mode }; } }); Y({ type: "internal", names: [ "\\futurelet", "\\\\globalfuture" // can’t be entered directly ], props: { numArgs: 0, allowedInText: !0, primitive: !0 }, handler(n) { var { parser: e, funcName: t } = n, r = Wd(e.gullet.popToken()), a = e.gullet.popToken(), i = e.gullet.popToken(); return Xd(e, r, i, t === "\\\\globalfuture"), e.gullet.pushToken(i), e.gullet.pushToken(a), { type: "internal", mode: e.mode }; } }); var La = function(e, t, r) { var a = Ne.math[e] && Ne.math[e].replace, i = Cu(a || e, t, r); if (!i) throw new Error("Unsupported symbol " + e + " and font size " + t + "."); return i; }, Nu = function(e, t, r, a) { var i = r.havingBaseStyle(t), l = R.makeSpan(a.concat(i.sizingClasses(r)), [e], r), s = i.sizeMultiplier / r.sizeMultiplier; return l.height *= s, l.depth *= s, l.maxFontSize = i.sizeMultiplier, l; }, Yd = function(e, t, r) { var a = t.havingBaseStyle(r), i = (1 - t.sizeMultiplier / a.sizeMultiplier) * t.fontMetrics().axisHeight; e.classes.push("delimcenter"), e.style.top = X(i), e.height -= i, e.depth += i; }, j3 = function(e, t, r, a, i, l) { var s = R.makeSymbol(e, "Main-Regular", i, a), o = Nu(s, t, a, l); return r && Yd(o, a, t), o; }, W3 = function(e, t, r, a) { return R.makeSymbol(e, "Size" + t + "-Regular", r, a); }, Zd = function(e, t, r, a, i, l) { var s = W3(e, t, i, a), o = Nu(R.makeSpan(["delimsizing", "size" + t], [s], a), ae.TEXT, a, l); return r && Yd(o, a, ae.TEXT), o; }, $s = function(e, t, r) { var a; t === "Size1-Regular" ? a = "delim-size1" : a = "delim-size4"; var i = R.makeSpan(["delimsizinginner", a], [R.makeSpan([], [R.makeSymbol(e, t, r)])]); return { type: "elem", elem: i }; }, eo = function(e, t, r) { var a = rr["Size4-Regular"][e.charCodeAt(0)] ? rr["Size4-Regular"][e.charCodeAt(0)][4] : rr["Size1-Regular"][e.charCodeAt(0)][4], i = new un("inner", Q5(e, Math.round(1e3 * t))), l = new Br([i], { width: X(a), height: X(t), // Override CSS rule `.katex svg { width: 100% }` style: "width:" + X(a), viewBox: "0 0 " + 1e3 * a + " " + Math.round(1e3 * t), preserveAspectRatio: "xMinYMin" }), s = R.makeSvgSpan([], [l], r); return s.height = t, s.style.height = X(t), s.style.width = X(a), { type: "elem", elem: s }; }, eu = 8e-3, Vi = { type: "kern", size: -1 * eu }, X3 = ["|", "\\lvert", "\\rvert", "\\vert"], Y3 = ["\\|", "\\lVert", "\\rVert", "\\Vert"], Kd = function(e, t, r, a, i, l) { var s, o, u, c, d = "", h = 0; s = u = c = e, o = null; var p = "Size1-Regular"; e === "\\uparrow" ? u = c = "⏐" : e === "\\Uparrow" ? u = c = "‖" : e === "\\downarrow" ? s = u = "⏐" : e === "\\Downarrow" ? s = u = "‖" : e === "\\updownarrow" ? (s = "\\uparrow", u = "⏐", c = "\\downarrow") : e === "\\Updownarrow" ? (s = "\\Uparrow", u = "‖", c = "\\Downarrow") : re.contains(X3, e) ? (u = "∣", d = "vert", h = 333) : re.contains(Y3, e) ? (u = "∥", d = "doublevert", h = 556) : e === "[" || e === "\\lbrack" ? (s = "⎡", u = "⎢", c = "⎣", p = "Size4-Regular", d = "lbrack", h = 667) : e === "]" || e === "\\rbrack" ? (s = "⎤", u = "⎥", c = "⎦", p = "Size4-Regular", d = "rbrack", h = 667) : e === "\\lfloor" || e === "⌊" ? (u = s = "⎢", c = "⎣", p = "Size4-Regular", d = "lfloor", h = 667) : e === "\\lceil" || e === "⌈" ? (s = "⎡", u = c = "⎢", p = "Size4-Regular", d = "lceil", h = 667) : e === "\\rfloor" || e === "⌋" ? (u = s = "⎥", c = "⎦", p = "Size4-Regular", d = "rfloor", h = 667) : e === "\\rceil" || e === "⌉" ? (s = "⎤", u = c = "⎥", p = "Size4-Regular", d = "rceil", h = 667) : e === "(" || e === "\\lparen" ? (s = "⎛", u = "⎜", c = "⎝", p = "Size4-Regular", d = "lparen", h = 875) : e === ")" || e === "\\rparen" ? (s = "⎞", u = "⎟", c = "⎠", p = "Size4-Regular", d = "rparen", h = 875) : e === "\\{" || e === "\\lbrace" ? (s = "⎧", o = "⎨", c = "⎩", u = "⎪", p = "Size4-Regular") : e === "\\}" || e === "\\rbrace" ? (s = "⎫", o = "⎬", c = "⎭", u = "⎪", p = "Size4-Regular") : e === "\\lgroup" || e === "⟮" ? (s = "⎧", c = "⎩", u = "⎪", p = "Size4-Regular") : e === "\\rgroup" || e === "⟯" ? (s = "⎫", c = "⎭", u = "⎪", p = "Size4-Regular") : e === "\\lmoustache" || e === "⎰" ? (s = "⎧", c = "⎭", u = "⎪", p = "Size4-Regular") : (e === "\\rmoustache" || e === "⎱") && (s = "⎫", c = "⎩", u = "⎪", p = "Size4-Regular"); var _ = La(s, p, i), b = _.height + _.depth, D = La(u, p, i), y = D.height + D.depth, k = La(c, p, i), w = k.height + k.depth, E = 0, S = 1; if (o !== null) { var T = La(o, p, i); E = T.height + T.depth, S = 2; } var C = b + w + E, F = Math.max(0, Math.ceil((t - C) / (S * y))), B = C + F * S * y, I = a.fontMetrics().axisHeight; r && (I *= a.sizeMultiplier); var L = B / 2 - I, P = []; if (d.length > 0) { var Z = B - b - w, O = Math.round(B * 1e3), se = $5(d, Math.round(Z * 1e3)), K = new un(d, se), he = (h / 1e3).toFixed(3) + "em", ue = (O / 1e3).toFixed(3) + "em", Ae = new Br([K], { width: he, height: ue, viewBox: "0 0 " + h + " " + O }), ye = R.makeSvgSpan([], [Ae], a); ye.height = O / 1e3, ye.style.width = he, ye.style.height = ue, P.push({ type: "elem", elem: ye }); } else { if (P.push($s(c, p, i)), P.push(Vi), o === null) { var $ = B - b - w + 2 * eu; P.push(eo(u, $, a)); } else { var de = (B - b - w - E) / 2 + 2 * eu; P.push(eo(u, de, a)), P.push(Vi), P.push($s(o, p, i)), P.push(Vi), P.push(eo(u, de, a)); } P.push(Vi), P.push($s(s, p, i)); } var ce = a.havingBaseStyle(ae.TEXT), Ce = R.makeVList({ positionType: "bottom", positionData: L, children: P }, ce); return Nu(R.makeSpan(["delimsizing", "mult"], [Ce], ce), ae.TEXT, a, l); }, to = 80, ro = 0.08, no = function(e, t, r, a, i) { var l = J5(e, a, r), s = new un(e, l), o = new Br([s], { // Note: 1000:1 ratio of viewBox to document em width. width: "400em", height: X(t), viewBox: "0 0 400000 " + r, preserveAspectRatio: "xMinYMin slice" }); return R.makeSvgSpan(["hide-tail"], [o], i); }, Z3 = function(e, t) { var r = t.havingBaseSizing(), a = e4("\\surd", e * r.sizeMultiplier, $d, r), i = r.sizeMultiplier, l = Math.max(0, t.minRuleThickness - t.fontMetrics().sqrtRuleThickness), s, o = 0, u = 0, c = 0, d; return a.type === "small" ? (c = 1e3 + 1e3 * l + to, e < 1 ? i = 1 : e < 1.4 && (i = 0.7), o = (1 + l + ro) / i, u = (1 + l) / i, s = no("sqrtMain", o, c, l, t), s.style.minWidth = "0.853em", d = 0.833 / i) : a.type === "large" ? (c = (1e3 + to) * qa[a.size], u = (qa[a.size] + l) / i, o = (qa[a.size] + l + ro) / i, s = no("sqrtSize" + a.size, o, c, l, t), s.style.minWidth = "1.02em", d = 1 / i) : (o = e + l + ro, u = e + l, c = Math.floor(1e3 * e + l) + to, s = no("sqrtTall", o, c, l, t), s.style.minWidth = "0.742em", d = 1.056), s.height = u, s.style.height = X(o), { span: s, advanceWidth: d, // Calculate the actual line width. // This actually should depend on the chosen font -- e.g. \boldmath // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and // have thicker rules. ruleWidth: (t.fontMetrics().sqrtRuleThickness + l) * i }; }, Jd = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "⌊", "⌋", "\\lceil", "\\rceil", "⌈", "⌉", "\\surd"], K3 = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "⟮", "⟯", "\\lmoustache", "\\rmoustache", "⎰", "⎱"], Qd = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"], qa = [0, 1.2, 1.8, 2.4, 3], J3 = function(e, t, r, a, i) { if (e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle"), re.contains(Jd, e) || re.contains(Qd, e)) return Zd(e, t, !1, r, a, i); if (re.contains(K3, e)) return Kd(e, qa[t], !1, r, a, i); throw new G("Illegal delimiter: '" + e + "'"); }, Q3 = [{ type: "small", style: ae.SCRIPTSCRIPT }, { type: "small", style: ae.SCRIPT }, { type: "small", style: ae.TEXT }, { type: "large", size: 1 }, { type: "large", size: 2 }, { type: "large", size: 3 }, { type: "large", size: 4 }], $3 = [{ type: "small", style: ae.SCRIPTSCRIPT }, { type: "small", style: ae.SCRIPT }, { type: "small", style: ae.TEXT }, { type: "stack" }], $d = [{ type: "small", style: ae.SCRIPTSCRIPT }, { type: "small", style: ae.SCRIPT }, { type: "small", style: ae.TEXT }, { type: "large", size: 1 }, { type: "large", size: 2 }, { type: "large", size: 3 }, { type: "large", size: 4 }, { type: "stack" }], e6 = function(e) { if (e.type === "small") return "Main-Regular"; if (e.type === "large") return "Size" + e.size + "-Regular"; if (e.type === "stack") return "Size4-Regular"; throw new Error("Add support for delim type '" + e.type + "' here."); }, e4 = function(e, t, r, a) { for (var i = Math.min(2, 3 - a.style.size), l = i; l < r.length && r[l].type !== "stack"; l++) { var s = La(e, e6(r[l]), "math"), o = s.height + s.depth; if (r[l].type === "small") { var u = a.havingBaseStyle(r[l].style); o *= u.sizeMultiplier; } if (o > t) return r[l]; } return r[r.length - 1]; }, t4 = function(e, t, r, a, i, l) { e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle"); var s; re.contains(Qd, e) ? s = Q3 : re.contains(Jd, e) ? s = $d : s = $3; var o = e4(e, t, s, a); return o.type === "small" ? j3(e, o.style, r, a, i, l) : o.type === "large" ? Zd(e, o.size, r, a, i, l) : Kd(e, t, r, a, i, l); }, t6 = function(e, t, r, a, i, l) { var s = a.fontMetrics().axisHeight * a.sizeMultiplier, o = 901, u = 5 / a.fontMetrics().ptPerEm, c = Math.max(t - s, r + s), d = Math.max( // In real TeX, calculations are done using integral values which are // 65536 per pt, or 655360 per em. So, the division here truncates in // TeX but doesn't here, producing different results. If we wanted to // exactly match TeX's calculation, we could do // Math.floor(655360 * maxDistFromAxis / 500) * // delimiterFactor / 655360 // (To see the difference, compare // x^{x^{\left(\rule{0.1em}{0.68em}\right)}} // in TeX and KaTeX) c / 500 * o, 2 * c - u ); return t4(e, d, !0, a, i, l); }, Cr = { sqrtImage: Z3, sizedDelim: J3, sizeToMaxHeight: qa, customSizedDelim: t4, leftRightDelim: t6 }, sc = { "\\bigl": { mclass: "mopen", size: 1 }, "\\Bigl": { mclass: "mopen", size: 2 }, "\\biggl": { mclass: "mopen", size: 3 }, "\\Biggl": { mclass: "mopen", size: 4 }, "\\bigr": { mclass: "mclose", size: 1 }, "\\Bigr": { mclass: "mclose", size: 2 }, "\\biggr": { mclass: "mclose", size: 3 }, "\\Biggr": { mclass: "mclose", size: 4 }, "\\bigm": { mclass: "mrel", size: 1 }, "\\Bigm": { mclass: "mrel", size: 2 }, "\\biggm": { mclass: "mrel", size: 3 }, "\\Biggm": { mclass: "mrel", size: 4 }, "\\big": { mclass: "mord", size: 1 }, "\\Big": { mclass: "mord", size: 2 }, "\\bigg": { mclass: "mord", size: 3 }, "\\Bigg": { mclass: "mord", size: 4 } }, r6 = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "⌊", "⌋", "\\lceil", "\\rceil", "⌈", "⌉", "<", ">", "\\langle", "⟨", "\\rangle", "⟩", "\\lt", "\\gt", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "⟮", "⟯", "\\lmoustache", "\\rmoustache", "⎰", "⎱", "/", "\\backslash", "|", "\\vert", "\\|", "\\Vert", "\\uparrow", "\\Uparrow", "\\downarrow", "\\Downarrow", "\\updownarrow", "\\Updownarrow", "."]; function $l(n, e) { var t = Jl(n); if (t && re.contains(r6, t.text)) return t; throw t ? new G("Invalid delimiter '" + t.text + "' after '" + e.funcName + "'", n) : new G("Invalid delimiter type '" + n.type + "'", n); } Y({ type: "delimsizing", names: ["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"], props: { numArgs: 1, argTypes: ["primitive"] }, handler: (n, e) => { var t = $l(e[0], n); return { type: "delimsizing", mode: n.parser.mode, size: sc[n.funcName].size, mclass: sc[n.funcName].mclass, delim: t.text }; }, htmlBuilder: (n, e) => n.delim === "." ? R.makeSpan([n.mclass]) : Cr.sizedDelim(n.delim, n.size, e, n.mode, [n.mclass]), mathmlBuilder: (n) => { var e = []; n.delim !== "." && e.push(T0(n.delim, n.mode)); var t = new U.MathNode("mo", e); n.mclass === "mopen" || n.mclass === "mclose" ? t.setAttribute("fence", "true") : t.setAttribute("fence", "false"), t.setAttribute("stretchy", "true"); var r = X(Cr.sizeToMaxHeight[n.size]); return t.setAttribute("minsize", r), t.setAttribute("maxsize", r), t; } }); function oc(n) { if (!n.body) throw new Error("Bug: The leftright ParseNode wasn't fully parsed."); } Y({ type: "leftright-right", names: ["\\right"], props: { numArgs: 1, primitive: !0 }, handler: (n, e) => { var t = n.parser.gullet.macros.get("\\current@color"); if (t && typeof t != "string") throw new G("\\current@color set to non-string in \\right"); return { type: "leftright-right", mode: n.parser.mode, delim: $l(e[0], n).text, color: t // undefined if not set via \color }; } }); Y({ type: "leftright", names: ["\\left"], props: { numArgs: 1, primitive: !0 }, handler: (n, e) => { var t = $l(e[0], n), r = n.parser; ++r.leftrightDepth; var a = r.parseExpression(!1); --r.leftrightDepth, r.expect("\\right", !1); var i = pe(r.parseFunction(), "leftright-right"); return { type: "leftright", mode: r.mode, body: a, left: t.text, right: i.delim, rightColor: i.color }; }, htmlBuilder: (n, e) => { oc(n); for (var t = gt(n.body, e, !0, ["mopen", "mclose"]), r = 0, a = 0, i = !1, l = 0; l < t.length; l++) t[l].isMiddle ? i = !0 : (r = Math.max(t[l].height, r), a = Math.max(t[l].depth, a)); r *= e.sizeMultiplier, a *= e.sizeMultiplier; var s; if (n.left === "." ? s = Ya(e, ["mopen"]) : s = Cr.leftRightDelim(n.left, r, a, e, n.mode, ["mopen"]), t.unshift(s), i) for (var o = 1; o < t.length; o++) { var u = t[o], c = u.isMiddle; c && (t[o] = Cr.leftRightDelim(c.delim, r, a, c.options, n.mode, [])); } var d; if (n.right === ".") d = Ya(e, ["mclose"]); else { var h = n.rightColor ? e.withColor(n.rightColor) : e; d = Cr.leftRightDelim(n.right, r, a, h, n.mode, ["mclose"]); } return t.push(d), R.makeSpan(["minner"], t, e); }, mathmlBuilder: (n, e) => { oc(n); var t = a0(n.body, e); if (n.left !== ".") { var r = new U.MathNode("mo", [T0(n.left, n.mode)]); r.setAttribute("fence", "true"), t.unshift(r); } if (n.right !== ".") { var a = new U.MathNode("mo", [T0(n.right, n.mode)]); a.setAttribute("fence", "true"), n.rightColor && a.setAttribute("mathcolor", n.rightColor), t.push(a); } return zu(t); } }); Y({ type: "middle", names: ["\\middle"], props: { numArgs: 1, primitive: !0 }, handler: (n, e) => { var t = $l(e[0], n); if (!n.parser.leftrightDepth) throw new G("\\middle without preceding \\left", t); return { type: "middle", mode: n.parser.mode, delim: t.text }; }, htmlBuilder: (n, e) => { var t; if (n.delim === ".") t = Ya(e, []); else { t = Cr.sizedDelim(n.delim, 1, e, n.mode, []); var r = { delim: n.delim, options: e }; t.isMiddle = r; } return t; }, mathmlBuilder: (n, e) => { var t = n.delim === "\\vert" || n.delim === "|" ? T0("|", "text") : T0(n.delim, n.mode), r = new U.MathNode("mo", [t]); return r.setAttribute("fence", "true"), r.setAttribute("lspace", "0.05em"), r.setAttribute("rspace", "0.05em"), r; } }); var Ru = (n, e) => { var t = R.wrapFragment(Se(n.body, e), e), r = n.label.slice(1), a = e.sizeMultiplier, i, l = 0, s = re.isCharacterBox(n.body); if (r === "sout") i = R.makeSpan(["stretchy", "sout"]), i.height = e.fontMetrics().defaultRuleThickness / a, l = -0.5 * e.fontMetrics().xHeight; else if (r === "phase") { var o = Ye({ number: 0.6, unit: "pt" }, e), u = Ye({ number: 0.35, unit: "ex" }, e), c = e.havingBaseSizing(); a = a / c.sizeMultiplier; var d = t.height + t.depth + o + u; t.style.paddingLeft = X(d / 2 + o); var h = Math.floor(1e3 * d * a), p = Z5(h), _ = new Br([new un("phase", p)], { width: "400em", height: X(h / 1e3), viewBox: "0 0 400000 " + h, preserveAspectRatio: "xMinYMin slice" }); i = R.makeSvgSpan(["hide-tail"], [_], e), i.style.height = X(d), l = t.depth + o + u; } else { /cancel/.test(r) ? s || t.classes.push("cancel-pad") : r === "angl" ? t.classes.push("anglpad") : t.classes.push("boxpad"); var b = 0, D = 0, y = 0; /box/.test(r) ? (y = Math.max( e.fontMetrics().fboxrule, // default e.minRuleThickness // User override. ), b = e.fontMetrics().fboxsep + (r === "colorbox" ? 0 : y), D = b) : r === "angl" ? (y = Math.max(e.fontMetrics().defaultRuleThickness, e.minRuleThickness), b = 4 * y, D = Math.max(0, 0.25 - t.depth)) : (b = s ? 0.2 : 0, D = b), i = Lr.encloseSpan(t, r, b, D, e), /fbox|boxed|fcolorbox/.test(r) ? (i.style.borderStyle = "solid", i.style.borderWidth = X(y)) : r === "angl" && y !== 0.049 && (i.style.borderTopWidth = X(y), i.style.borderRightWidth = X(y)), l = t.depth + D, n.backgroundColor && (i.style.backgroundColor = n.backgroundColor, n.borderColor && (i.style.borderColor = n.borderColor)); } var k; if (n.backgroundColor) k = R.makeVList({ positionType: "individualShift", children: [ // Put the color background behind inner; { type: "elem", elem: i, shift: l }, { type: "elem", elem: t, shift: 0 } ] }, e); else { var w = /cancel|phase/.test(r) ? ["svg-align"] : []; k = R.makeVList({ positionType: "individualShift", children: [ // Write the \cancel stroke on top of inner. { type: "elem", elem: t, shift: 0 }, { type: "elem", elem: i, shift: l, wrapperClasses: w } ] }, e); } return /cancel/.test(r) && (k.height = t.height, k.depth = t.depth), /cancel/.test(r) && !s ? R.makeSpan(["mord", "cancel-lap"], [k], e) : R.makeSpan(["mord"], [k], e); }, Ou = (n, e) => { var t = 0, r = new U.MathNode(n.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [Ie(n.body, e)]); switch (n.label) { case "\\cancel": r.setAttribute("notation", "updiagonalstrike"); break; case "\\bcancel": r.setAttribute("notation", "downdiagonalstrike"); break; case "\\phase": r.setAttribute("notation", "phasorangle"); break; case "\\sout": r.setAttribute("notation", "horizontalstrike"); break; case "\\fbox": r.setAttribute("notation", "box"); break; case "\\angl": r.setAttribute("notation", "actuarial"); break; case "\\fcolorbox": case "\\colorbox": if (t = e.fontMetrics().fboxsep * e.fontMetrics().ptPerEm, r.setAttribute("width", "+" + 2 * t + "pt"), r.setAttribute("height", "+" + 2 * t + "pt"), r.setAttribute("lspace", t + "pt"), r.setAttribute("voffset", t + "pt"), n.label === "\\fcolorbox") { var a = Math.max( e.fontMetrics().fboxrule, // default e.minRuleThickness // user override ); r.setAttribute("style", "border: " + a + "em solid " + String(n.borderColor)); } break; case "\\xcancel": r.setAttribute("notation", "updiagonalstrike downdiagonalstrike"); break; } return n.backgroundColor && r.setAttribute("mathbackground", n.backgroundColor), r; }; Y({ type: "enclose", names: ["\\colorbox"], props: { numArgs: 2, allowedInText: !0, argTypes: ["color", "text"] }, handler(n, e, t) { var { parser: r, funcName: a } = n, i = pe(e[0], "color-token").color, l = e[1]; return { type: "enclose", mode: r.mode, label: a, backgroundColor: i, body: l }; }, htmlBuilder: Ru, mathmlBuilder: Ou }); Y({ type: "enclose", names: ["\\fcolorbox"], props: { numArgs: 3, allowedInText: !0, argTypes: ["color", "color", "text"] }, handler(n, e, t) { var { parser: r, funcName: a } = n, i = pe(e[0], "color-token").color, l = pe(e[1], "color-token").color, s = e[2]; return { type: "enclose", mode: r.mode, label: a, backgroundColor: l, borderColor: i, body: s }; }, htmlBuilder: Ru, mathmlBuilder: Ou }); Y({ type: "enclose", names: ["\\fbox"], props: { numArgs: 1, argTypes: ["hbox"], allowedInText: !0 }, handler(n, e) { var { parser: t } = n; return { type: "enclose", mode: t.mode, label: "\\fbox", body: e[0] }; } }); Y({ type: "enclose", names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"], props: { numArgs: 1 }, handler(n, e) { var { parser: t, funcName: r } = n, a = e[0]; return { type: "enclose", mode: t.mode, label: r, body: a }; }, htmlBuilder: Ru, mathmlBuilder: Ou }); Y({ type: "enclose", names: ["\\angl"], props: { numArgs: 1, argTypes: ["hbox"], allowedInText: !1 }, handler(n, e) { var { parser: t } = n; return { type: "enclose", mode: t.mode, label: "\\angl", body: e[0] }; } }); var r4 = {}; function dr(n) { for (var { type: e, names: t, props: r, handler: a, htmlBuilder: i, mathmlBuilder: l } = n, s = { type: e, numArgs: r.numArgs || 0, allowedInText: !1, numOptionalArgs: 0, handler: a }, o = 0; o < t.length; ++o) r4[t[o]] = s; i && (Cl[e] = i), l && (Fl[e] = l); } var n4 = {}; function v(n, e) { n4[n] = e; } function uc(n) { var e = []; n.consumeSpaces(); var t = n.fetch().text; for (t === "\\relax" && (n.consume(), n.consumeSpaces(), t = n.fetch().text); t === "\\hline" || t === "\\hdashline"; ) n.consume(), e.push(t === "\\hdashline"), n.consumeSpaces(), t = n.fetch().text; return e; } var es = (n) => { var e = n.parser.settings; if (!e.displayMode) throw new G("{" + n.envName + "} can be used only in display mode."); }; function qu(n) { if (n.indexOf("ed") === -1) return n.indexOf("*") === -1; } function dn(n, e, t) { var { hskipBeforeAndAfter: r, addJot: a, cols: i, arraystretch: l, colSeparationType: s, autoTag: o, singleRow: u, emptySingleRow: c, maxNumCols: d, leqno: h } = e; if (n.gullet.beginGroup(), u || n.gullet.macros.set("\\cr", "\\\\\\relax"), !l) { var p = n.gullet.expandMacroAsText("\\arraystretch"); if (p == null) l = 1; else if (l = parseFloat(p), !l || l < 0) throw new G("Invalid \\arraystretch: " + p); } n.gullet.beginGroup(); var _ = [], b = [_], D = [], y = [], k = o != null ? [] : void 0; function w() { o && n.gullet.macros.set("\\@eqnsw", "1", !0); } function E() { k && (n.gullet.macros.get("\\df@tag") ? (k.push(n.subparse([new S0("\\df@tag")])), n.gullet.macros.set("\\df@tag", void 0, !0)) : k.push(!!o && n.gullet.macros.get("\\@eqnsw") === "1")); } for (w(), y.push(uc(n)); ; ) { var S = n.parseExpression(!1, u ? "\\end" : "\\\\"); n.gullet.endGroup(), n.gullet.beginGroup(), S = { type: "ordgroup", mode: n.mode, body: S }, t && (S = { type: "styling", mode: n.mode, style: t, body: [S] }), _.push(S); var T = n.fetch().text; if (T === "&") { if (d && _.length === d) { if (u || s) throw new G("Too many tab characters: &", n.nextToken); n.settings.reportNonstrict("textEnv", "Too few columns specified in the {array} column argument."); } n.consume(); } else if (T === "\\end") { E(), _.length === 1 && S.type === "styling" && S.body[0].body.length === 0 && (b.length > 1 || !c) && b.pop(), y.length < b.length + 1 && y.push([]); break; } else if (T === "\\\\") { n.consume(); var C = void 0; n.gullet.future().text !== " " && (C = n.parseSizeGroup(!0)), D.push(C ? C.value : null), E(), y.push(uc(n)), _ = [], b.push(_), w(); } else throw new G("Expected & or \\\\ or \\cr or \\end", n.nextToken); } return n.gullet.endGroup(), n.gullet.endGroup(), { type: "array", mode: n.mode, addJot: a, arraystretch: l, body: b, cols: i, rowGaps: D, hskipBeforeAndAfter: r, hLinesBeforeRow: y, colSeparationType: s, tags: k, leqno: h }; } function Pu(n) { return n.slice(0, 1) === "d" ? "display" : "text"; } var mr = function(e, t) { var r, a, i = e.body.length, l = e.hLinesBeforeRow, s = 0, o = new Array(i), u = [], c = Math.max( // From LaTeX \showthe\arrayrulewidth. Equals 0.04 em. t.fontMetrics().arrayRuleWidth, t.minRuleThickness // User override. ), d = 1 / t.fontMetrics().ptPerEm, h = 5 * d; if (e.colSeparationType && e.colSeparationType === "small") { var p = t.havingStyle(ae.SCRIPT).sizeMultiplier; h = 0.2778 * (p / t.sizeMultiplier); } var _ = e.colSeparationType === "CD" ? Ye({ number: 3, unit: "ex" }, t) : 12 * d, b = 3 * d, D = e.arraystretch * _, y = 0.7 * D, k = 0.3 * D, w = 0; function E(Ot) { for (var qt = 0; qt < Ot.length; ++qt) qt > 0 && (w += 0.25), u.push({ pos: w, isDashed: Ot[qt] }); } for (E(l[0]), r = 0; r < e.body.length; ++r) { var S = e.body[r], T = y, C = k; s < S.length && (s = S.length); var F = new Array(S.length); for (a = 0; a < S.length; ++a) { var B = Se(S[a], t); C < B.depth && (C = B.depth), T < B.height && (T = B.height), F[a] = B; } var I = e.rowGaps[r], L = 0; I && (L = Ye(I, t), L > 0 && (L += k, C < L && (C = L), L = 0)), e.addJot && (C += b), F.height = T, F.depth = C, w += T, F.pos = w, w += C + L, o[r] = F, E(l[r + 1]); } var P = w / 2 + t.fontMetrics().axisHeight, Z = e.cols || [], O = [], se, K, he = []; if (e.tags && e.tags.some((Ot) => Ot)) for (r = 0; r < i; ++r) { var ue = o[r], Ae = ue.pos - P, ye = e.tags[r], $ = void 0; ye === !0 ? $ = R.makeSpan(["eqn-num"], [], t) : ye === !1 ? $ = R.makeSpan([], [], t) : $ = R.makeSpan([], gt(ye, t, !0), t), $.depth = ue.depth, $.height = ue.height, he.push({ type: "elem", elem: $, shift: Ae }); } for ( a = 0, K = 0; // Continue while either there are more columns or more column // descriptions, so trailing separators don't get lost. a < s || K < Z.length; ++a, ++K ) { for (var de = Z[K] || {}, ce = !0; de.type === "separator"; ) { if (ce || (se = R.makeSpan(["arraycolsep"], []), se.style.width = X(t.fontMetrics().doubleRuleSep), O.push(se)), de.separator === "|" || de.separator === ":") { var Ce = de.separator === "|" ? "solid" : "dashed", V = R.makeSpan(["vertical-separator"], [], t); V.style.height = X(w), V.style.borderRightWidth = X(c), V.style.borderRightStyle = Ce, V.style.margin = "0 " + X(-c / 2); var j = w - P; j && (V.style.verticalAlign = X(-j)), O.push(V); } else throw new G("Invalid separator type: " + de.separator); K++, de = Z[K] || {}, ce = !1; } if (!(a >= s)) { var ge = void 0; (a > 0 || e.hskipBeforeAndAfter) && (ge = re.deflt(de.pregap, h), ge !== 0 && (se = R.makeSpan(["arraycolsep"], []), se.style.width = X(ge), O.push(se))); var ke = []; for (r = 0; r < i; ++r) { var Te = o[r], ze = Te[a]; if (ze) { var Le = Te.pos - P; ze.depth = Te.depth, ze.height = Te.height, ke.push({ type: "elem", elem: ze, shift: Le }); } } ke = R.makeVList({ positionType: "individualShift", children: ke }, t), ke = R.makeSpan(["col-align-" + (de.align || "c")], [ke]), O.push(ke), (a < s - 1 || e.hskipBeforeAndAfter) && (ge = re.deflt(de.postgap, h), ge !== 0 && (se = R.makeSpan(["arraycolsep"], []), se.style.width = X(ge), O.push(se))); } } if (o = R.makeSpan(["mtable"], O), u.length > 0) { for (var je = R.makeLineSpan("hline", t, c), ft = R.makeLineSpan("hdashline", t, c), We = [{ type: "elem", elem: o, shift: 0 }]; u.length > 0; ) { var qe = u.pop(), Pe = qe.pos - P; qe.isDashed ? We.push({ type: "elem", elem: ft, shift: Pe }) : We.push({ type: "elem", elem: je, shift: Pe }); } o = R.makeVList({ positionType: "individualShift", children: We }, t); } if (he.length === 0) return R.makeSpan(["mord"], [o], t); var lt = R.makeVList({ positionType: "individualShift", children: he }, t); return lt = R.makeSpan(["tag"], [lt], t), R.makeFragment([o, lt]); }, n6 = { c: "center ", l: "left ", r: "right " }, pr = function(e, t) { for (var r = [], a = new U.MathNode("mtd", [], ["mtr-glue"]), i = new U.MathNode("mtd", [], ["mml-eqn-num"]), l = 0; l < e.body.length; l++) { for (var s = e.body[l], o = [], u = 0; u < s.length; u++) o.push(new U.MathNode("mtd", [Ie(s[u], t)])); e.tags && e.tags[l] && (o.unshift(a), o.push(a), e.leqno ? o.unshift(i) : o.push(i)), r.push(new U.MathNode("mtr", o)); } var c = new U.MathNode("mtable", r), d = e.arraystretch === 0.5 ? 0.1 : 0.16 + e.arraystretch - 1 + (e.addJot ? 0.09 : 0); c.setAttribute("rowspacing", X(d)); var h = "", p = ""; if (e.cols && e.cols.length > 0) { var _ = e.cols, b = "", D = !1, y = 0, k = _.length; _[0].type === "separator" && (h += "top ", y = 1), _[_.length - 1].type === "separator" && (h += "bottom ", k -= 1); for (var w = y; w < k; w++) _[w].type === "align" ? (p += n6[_[w].align], D && (b += "none "), D = !0) : _[w].type === "separator" && D && (b += _[w].separator === "|" ? "solid " : "dashed ", D = !1); c.setAttribute("columnalign", p.trim()), /[sd]/.test(b) && c.setAttribute("columnlines", b.trim()); } if (e.colSeparationType === "align") { for (var E = e.cols || [], S = "", T = 1; T < E.length; T++) S += T % 2 ? "0em " : "1em "; c.setAttribute("columnspacing", S.trim()); } else e.colSeparationType === "alignat" || e.colSeparationType === "gather" ? c.setAttribute("columnspacing", "0em") : e.colSeparationType === "small" ? c.setAttribute("columnspacing", "0.2778em") : e.colSeparationType === "CD" ? c.setAttribute("columnspacing", "0.5em") : c.setAttribute("columnspacing", "1em"); var C = "", F = e.hLinesBeforeRow; h += F[0].length > 0 ? "left " : "", h += F[F.length - 1].length > 0 ? "right " : ""; for (var B = 1; B < F.length - 1; B++) C += F[B].length === 0 ? "none " : F[B][0] ? "dashed " : "solid "; return /[sd]/.test(C) && c.setAttribute("rowlines", C.trim()), h !== "" && (c = new U.MathNode("menclose", [c]), c.setAttribute("notation", h.trim())), e.arraystretch && e.arraystretch < 1 && (c = new U.MathNode("mstyle", [c]), c.setAttribute("scriptlevel", "1")), c; }, a4 = function(e, t) { e.envName.indexOf("ed") === -1 && es(e); var r = [], a = e.envName.indexOf("at") > -1 ? "alignat" : "align", i = e.envName === "split", l = dn(e.parser, { cols: r, addJot: !0, autoTag: i ? void 0 : qu(e.envName), emptySingleRow: !0, colSeparationType: a, maxNumCols: i ? 2 : void 0, leqno: e.parser.settings.leqno }, "display"), s, o = 0, u = { type: "ordgroup", mode: e.mode, body: [] }; if (t[0] && t[0].type === "ordgroup") { for (var c = "", d = 0; d < t[0].body.length; d++) { var h = pe(t[0].body[d], "textord"); c += h.text; } s = Number(c), o = s * 2; } var p = !o; l.body.forEach(function(y) { for (var k = 1; k < y.length; k += 2) { var w = pe(y[k], "styling"), E = pe(w.body[0], "ordgroup"); E.body.unshift(u); } if (p) o < y.length && (o = y.length); else { var S = y.length / 2; if (s < S) throw new G("Too many math in a row: " + ("expected " + s + ", but got " + S), y[0]); } }); for (var _ = 0; _ < o; ++_) { var b = "r", D = 0; _ % 2 === 1 ? b = "l" : _ > 0 && p && (D = 1), r[_] = { type: "align", align: b, pregap: D, postgap: 0 }; } return l.colSeparationType = p ? "align" : "alignat", l; }; dr({ type: "array", names: ["array", "darray"], props: { numArgs: 1 }, handler(n, e) { var t = Jl(e[0]), r = t ? [e[0]] : pe(e[0], "ordgroup").body, a = r.map(function(l) { var s = Iu(l), o = s.text; if ("lcr".indexOf(o) !== -1) return { type: "align", align: o }; if (o === "|") return { type: "separator", separator: "|" }; if (o === ":") return { type: "separator", separator: ":" }; throw new G("Unknown column alignment: " + o, l); }), i = { cols: a, hskipBeforeAndAfter: !0, // \@preamble in lttab.dtx maxNumCols: a.length }; return dn(n.parser, i, Pu(n.envName)); }, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix", "matrix*", "pmatrix*", "bmatrix*", "Bmatrix*", "vmatrix*", "Vmatrix*"], props: { numArgs: 0 }, handler(n) { var e = { matrix: null, pmatrix: ["(", ")"], bmatrix: ["[", "]"], Bmatrix: ["\\{", "\\}"], vmatrix: ["|", "|"], Vmatrix: ["\\Vert", "\\Vert"] }[n.envName.replace("*", "")], t = "c", r = { hskipBeforeAndAfter: !1, cols: [{ type: "align", align: t }] }; if (n.envName.charAt(n.envName.length - 1) === "*") { var a = n.parser; if (a.consumeSpaces(), a.fetch().text === "[") { if (a.consume(), a.consumeSpaces(), t = a.fetch().text, "lcr".indexOf(t) === -1) throw new G("Expected l or c or r", a.nextToken); a.consume(), a.consumeSpaces(), a.expect("]"), a.consume(), r.cols = [{ type: "align", align: t }]; } } var i = dn(n.parser, r, Pu(n.envName)), l = Math.max(0, ...i.body.map((s) => s.length)); return i.cols = new Array(l).fill({ type: "align", align: t }), e ? { type: "leftright", mode: n.mode, body: [i], left: e[0], right: e[1], rightColor: void 0 // \right uninfluenced by \color in array } : i; }, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["smallmatrix"], props: { numArgs: 0 }, handler(n) { var e = { arraystretch: 0.5 }, t = dn(n.parser, e, "script"); return t.colSeparationType = "small", t; }, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["subarray"], props: { numArgs: 1 }, handler(n, e) { var t = Jl(e[0]), r = t ? [e[0]] : pe(e[0], "ordgroup").body, a = r.map(function(l) { var s = Iu(l), o = s.text; if ("lc".indexOf(o) !== -1) return { type: "align", align: o }; throw new G("Unknown column alignment: " + o, l); }); if (a.length > 1) throw new G("{subarray} can contain only one column"); var i = { cols: a, hskipBeforeAndAfter: !1, arraystretch: 0.5 }; if (i = dn(n.parser, i, "script"), i.body.length > 0 && i.body[0].length > 1) throw new G("{subarray} can contain only one column"); return i; }, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["cases", "dcases", "rcases", "drcases"], props: { numArgs: 0 }, handler(n) { var e = { arraystretch: 1.2, cols: [{ type: "align", align: "l", pregap: 0, // TODO(kevinb) get the current style. // For now we use the metrics for TEXT style which is what we were // doing before. Before attempting to get the current style we // should look at TeX's behavior especially for \over and matrices. postgap: 1 /* 1em quad */ }, { type: "align", align: "l", pregap: 0, postgap: 0 }] }, t = dn(n.parser, e, Pu(n.envName)); return { type: "leftright", mode: n.mode, body: [t], left: n.envName.indexOf("r") > -1 ? "." : "\\{", right: n.envName.indexOf("r") > -1 ? "\\}" : ".", rightColor: void 0 }; }, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["align", "align*", "aligned", "split"], props: { numArgs: 0 }, handler: a4, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["gathered", "gather", "gather*"], props: { numArgs: 0 }, handler(n) { re.contains(["gather", "gather*"], n.envName) && es(n); var e = { cols: [{ type: "align", align: "c" }], addJot: !0, colSeparationType: "gather", autoTag: qu(n.envName), emptySingleRow: !0, leqno: n.parser.settings.leqno }; return dn(n.parser, e, "display"); }, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["alignat", "alignat*", "alignedat"], props: { numArgs: 1 }, handler: a4, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["equation", "equation*"], props: { numArgs: 0 }, handler(n) { es(n); var e = { autoTag: qu(n.envName), emptySingleRow: !0, singleRow: !0, maxNumCols: 1, leqno: n.parser.settings.leqno }; return dn(n.parser, e, "display"); }, htmlBuilder: mr, mathmlBuilder: pr }); dr({ type: "array", names: ["CD"], props: { numArgs: 0 }, handler(n) { return es(n), V3(n.parser); }, htmlBuilder: mr, mathmlBuilder: pr }); v("\\nonumber", "\\gdef\\@eqnsw{0}"); v("\\notag", "\\nonumber"); Y({ type: "text", // Doesn't matter what this is. names: ["\\hline", "\\hdashline"], props: { numArgs: 0, allowedInText: !0, allowedInMath: !0 }, handler(n, e) { throw new G(n.funcName + " valid only within array environment"); } }); var cc = r4; Y({ type: "environment", names: ["\\begin", "\\end"], props: { numArgs: 1, argTypes: ["text"] }, handler(n, e) { var { parser: t, funcName: r } = n, a = e[0]; if (a.type !== "ordgroup") throw new G("Invalid environment name", a); for (var i = "", l = 0; l < a.body.length; ++l) i += pe(a.body[l], "textord").text; if (r === "\\begin") { if (!cc.hasOwnProperty(i)) throw new G("No such environment: " + i, a); var s = cc[i], { args: o, optArgs: u } = t.parseArguments("\\begin{" + i + "}", s), c = { mode: t.mode, envName: i, parser: t }, d = s.handler(c, o, u); t.expect("\\end", !1); var h = t.nextToken, p = pe(t.parseFunction(), "environment"); if (p.name !== i) throw new G("Mismatch: \\begin{" + i + "} matched by \\end{" + p.name + "}", h); return d; } return { type: "environment", mode: t.mode, name: i, nameGroup: a }; } }); var i4 = (n, e) => { var t = n.font, r = e.withFont(t); return Se(n.body, r); }, l4 = (n, e) => { var t = n.font, r = e.withFont(t); return Ie(n.body, r); }, fc = { "\\Bbb": "\\mathbb", "\\bold": "\\mathbf", "\\frak": "\\mathfrak", "\\bm": "\\boldsymbol" }; Y({ type: "font", names: [ // styles, except \boldsymbol defined below "\\mathrm", "\\mathit", "\\mathbf", "\\mathnormal", // families "\\mathbb", "\\mathcal", "\\mathfrak", "\\mathscr", "\\mathsf", "\\mathtt", // aliases, except \bm defined below "\\Bbb", "\\bold", "\\frak" ], props: { numArgs: 1, allowedInArgument: !0 }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = Ml(e[0]), i = r; return i in fc && (i = fc[i]), { type: "font", mode: t.mode, font: i.slice(1), body: a }; }, htmlBuilder: i4, mathmlBuilder: l4 }); Y({ type: "mclass", names: ["\\boldsymbol", "\\bm"], props: { numArgs: 1 }, handler: (n, e) => { var { parser: t } = n, r = e[0], a = re.isCharacterBox(r); return { type: "mclass", mode: t.mode, mclass: Ql(r), body: [{ type: "font", mode: t.mode, font: "boldsymbol", body: r }], isCharacterBox: a }; } }); Y({ type: "font", names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"], props: { numArgs: 0, allowedInText: !0 }, handler: (n, e) => { var { parser: t, funcName: r, breakOnTokenText: a } = n, { mode: i } = t, l = t.parseExpression(!0, a), s = "math" + r.slice(1); return { type: "font", mode: i, font: s, body: { type: "ordgroup", mode: t.mode, body: l } }; }, htmlBuilder: i4, mathmlBuilder: l4 }); var s4 = (n, e) => { var t = e; return n === "display" ? t = t.id >= ae.SCRIPT.id ? t.text() : ae.DISPLAY : n === "text" && t.size === ae.DISPLAY.size ? t = ae.TEXT : n === "script" ? t = ae.SCRIPT : n === "scriptscript" && (t = ae.SCRIPTSCRIPT), t; }, Hu = (n, e) => { var t = s4(n.size, e.style), r = t.fracNum(), a = t.fracDen(), i; i = e.havingStyle(r); var l = Se(n.numer, i, e); if (n.continued) { var s = 8.5 / e.fontMetrics().ptPerEm, o = 3.5 / e.fontMetrics().ptPerEm; l.height = l.height < s ? s : l.height, l.depth = l.depth < o ? o : l.depth; } i = e.havingStyle(a); var u = Se(n.denom, i, e), c, d, h; n.hasBarLine ? (n.barSize ? (d = Ye(n.barSize, e), c = R.makeLineSpan("frac-line", e, d)) : c = R.makeLineSpan("frac-line", e), d = c.height, h = c.height) : (c = null, d = 0, h = e.fontMetrics().defaultRuleThickness); var p, _, b; t.size === ae.DISPLAY.size || n.size === "display" ? (p = e.fontMetrics().num1, d > 0 ? _ = 3 * h : _ = 7 * h, b = e.fontMetrics().denom1) : (d > 0 ? (p = e.fontMetrics().num2, _ = h) : (p = e.fontMetrics().num3, _ = 3 * h), b = e.fontMetrics().denom2); var D; if (c) { var k = e.fontMetrics().axisHeight; p - l.depth - (k + 0.5 * d) < _ && (p += _ - (p - l.depth - (k + 0.5 * d))), k - 0.5 * d - (u.height - b) < _ && (b += _ - (k - 0.5 * d - (u.height - b))); var w = -(k - 0.5 * d); D = R.makeVList({ positionType: "individualShift", children: [{ type: "elem", elem: u, shift: b }, { type: "elem", elem: c, shift: w }, { type: "elem", elem: l, shift: -p }] }, e); } else { var y = p - l.depth - (u.height - b); y < _ && (p += 0.5 * (_ - y), b += 0.5 * (_ - y)), D = R.makeVList({ positionType: "individualShift", children: [{ type: "elem", elem: u, shift: b }, { type: "elem", elem: l, shift: -p }] }, e); } i = e.havingStyle(t), D.height *= i.sizeMultiplier / e.sizeMultiplier, D.depth *= i.sizeMultiplier / e.sizeMultiplier; var E; t.size === ae.DISPLAY.size ? E = e.fontMetrics().delim1 : t.size === ae.SCRIPTSCRIPT.size ? E = e.havingStyle(ae.SCRIPT).fontMetrics().delim2 : E = e.fontMetrics().delim2; var S, T; return n.leftDelim == null ? S = Ya(e, ["mopen"]) : S = Cr.customSizedDelim(n.leftDelim, E, !0, e.havingStyle(t), n.mode, ["mopen"]), n.continued ? T = R.makeSpan([]) : n.rightDelim == null ? T = Ya(e, ["mclose"]) : T = Cr.customSizedDelim(n.rightDelim, E, !0, e.havingStyle(t), n.mode, ["mclose"]), R.makeSpan(["mord"].concat(i.sizingClasses(e)), [S, R.makeSpan(["mfrac"], [D]), T], e); }, Uu = (n, e) => { var t = new U.MathNode("mfrac", [Ie(n.numer, e), Ie(n.denom, e)]); if (!n.hasBarLine) t.setAttribute("linethickness", "0px"); else if (n.barSize) { var r = Ye(n.barSize, e); t.setAttribute("linethickness", X(r)); } var a = s4(n.size, e.style); if (a.size !== e.style.size) { t = new U.MathNode("mstyle", [t]); var i = a.size === ae.DISPLAY.size ? "true" : "false"; t.setAttribute("displaystyle", i), t.setAttribute("scriptlevel", "0"); } if (n.leftDelim != null || n.rightDelim != null) { var l = []; if (n.leftDelim != null) { var s = new U.MathNode("mo", [new U.TextNode(n.leftDelim.replace("\\", ""))]); s.setAttribute("fence", "true"), l.push(s); } if (l.push(t), n.rightDelim != null) { var o = new U.MathNode("mo", [new U.TextNode(n.rightDelim.replace("\\", ""))]); o.setAttribute("fence", "true"), l.push(o); } return zu(l); } return t; }; Y({ type: "genfrac", names: [ "\\dfrac", "\\frac", "\\tfrac", "\\dbinom", "\\binom", "\\tbinom", "\\\\atopfrac", // can’t be entered directly "\\\\bracefrac", "\\\\brackfrac" // ditto ], props: { numArgs: 2, allowedInArgument: !0 }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = e[0], i = e[1], l, s = null, o = null, u = "auto"; switch (r) { case "\\dfrac": case "\\frac": case "\\tfrac": l = !0; break; case "\\\\atopfrac": l = !1; break; case "\\dbinom": case "\\binom": case "\\tbinom": l = !1, s = "(", o = ")"; break; case "\\\\bracefrac": l = !1, s = "\\{", o = "\\}"; break; case "\\\\brackfrac": l = !1, s = "[", o = "]"; break; default: throw new Error("Unrecognized genfrac command"); } switch (r) { case "\\dfrac": case "\\dbinom": u = "display"; break; case "\\tfrac": case "\\tbinom": u = "text"; break; } return { type: "genfrac", mode: t.mode, continued: !1, numer: a, denom: i, hasBarLine: l, leftDelim: s, rightDelim: o, size: u, barSize: null }; }, htmlBuilder: Hu, mathmlBuilder: Uu }); Y({ type: "genfrac", names: ["\\cfrac"], props: { numArgs: 2 }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = e[0], i = e[1]; return { type: "genfrac", mode: t.mode, continued: !0, numer: a, denom: i, hasBarLine: !0, leftDelim: null, rightDelim: null, size: "display", barSize: null }; } }); Y({ type: "infix", names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"], props: { numArgs: 0, infix: !0 }, handler(n) { var { parser: e, funcName: t, token: r } = n, a; switch (t) { case "\\over": a = "\\frac"; break; case "\\choose": a = "\\binom"; break; case "\\atop": a = "\\\\atopfrac"; break; case "\\brace": a = "\\\\bracefrac"; break; case "\\brack": a = "\\\\brackfrac"; break; default: throw new Error("Unrecognized infix genfrac command"); } return { type: "infix", mode: e.mode, replaceWith: a, token: r }; } }); var hc = ["display", "text", "script", "scriptscript"], dc = function(e) { var t = null; return e.length > 0 && (t = e, t = t === "." ? null : t), t; }; Y({ type: "genfrac", names: ["\\genfrac"], props: { numArgs: 6, allowedInArgument: !0, argTypes: ["math", "math", "size", "text", "math", "math"] }, handler(n, e) { var { parser: t } = n, r = e[4], a = e[5], i = Ml(e[0]), l = i.type === "atom" && i.family === "open" ? dc(i.text) : null, s = Ml(e[1]), o = s.type === "atom" && s.family === "close" ? dc(s.text) : null, u = pe(e[2], "size"), c, d = null; u.isBlank ? c = !0 : (d = u.value, c = d.number > 0); var h = "auto", p = e[3]; if (p.type === "ordgroup") { if (p.body.length > 0) { var _ = pe(p.body[0], "textord"); h = hc[Number(_.text)]; } } else p = pe(p, "textord"), h = hc[Number(p.text)]; return { type: "genfrac", mode: t.mode, numer: r, denom: a, continued: !1, hasBarLine: c, barSize: d, leftDelim: l, rightDelim: o, size: h }; }, htmlBuilder: Hu, mathmlBuilder: Uu }); Y({ type: "infix", names: ["\\above"], props: { numArgs: 1, argTypes: ["size"], infix: !0 }, handler(n, e) { var { parser: t, funcName: r, token: a } = n; return { type: "infix", mode: t.mode, replaceWith: "\\\\abovefrac", size: pe(e[0], "size").value, token: a }; } }); Y({ type: "genfrac", names: ["\\\\abovefrac"], props: { numArgs: 3, argTypes: ["math", "size", "math"] }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = e[0], i = I5(pe(e[1], "infix").size), l = e[2], s = i.number > 0; return { type: "genfrac", mode: t.mode, numer: a, denom: l, continued: !1, hasBarLine: s, barSize: i, leftDelim: null, rightDelim: null, size: "auto" }; }, htmlBuilder: Hu, mathmlBuilder: Uu }); var o4 = (n, e) => { var t = e.style, r, a; n.type === "supsub" ? (r = n.sup ? Se(n.sup, e.havingStyle(t.sup()), e) : Se(n.sub, e.havingStyle(t.sub()), e), a = pe(n.base, "horizBrace")) : a = pe(n, "horizBrace"); var i = Se(a.base, e.havingBaseStyle(ae.DISPLAY)), l = Lr.svgSpan(a, e), s; if (a.isOver ? (s = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: i }, { type: "kern", size: 0.1 }, { type: "elem", elem: l }] }, e), s.children[0].children[0].children[1].classes.push("svg-align")) : (s = R.makeVList({ positionType: "bottom", positionData: i.depth + 0.1 + l.height, children: [{ type: "elem", elem: l }, { type: "kern", size: 0.1 }, { type: "elem", elem: i }] }, e), s.children[0].children[0].children[0].classes.push("svg-align")), r) { var o = R.makeSpan(["mord", a.isOver ? "mover" : "munder"], [s], e); a.isOver ? s = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: o }, { type: "kern", size: 0.2 }, { type: "elem", elem: r }] }, e) : s = R.makeVList({ positionType: "bottom", positionData: o.depth + 0.2 + r.height + r.depth, children: [{ type: "elem", elem: r }, { type: "kern", size: 0.2 }, { type: "elem", elem: o }] }, e); } return R.makeSpan(["mord", a.isOver ? "mover" : "munder"], [s], e); }, a6 = (n, e) => { var t = Lr.mathMLnode(n.label); return new U.MathNode(n.isOver ? "mover" : "munder", [Ie(n.base, e), t]); }; Y({ type: "horizBrace", names: ["\\overbrace", "\\underbrace"], props: { numArgs: 1 }, handler(n, e) { var { parser: t, funcName: r } = n; return { type: "horizBrace", mode: t.mode, label: r, isOver: /^\\over/.test(r), base: e[0] }; }, htmlBuilder: o4, mathmlBuilder: a6 }); Y({ type: "href", names: ["\\href"], props: { numArgs: 2, argTypes: ["url", "original"], allowedInText: !0 }, handler: (n, e) => { var { parser: t } = n, r = e[1], a = pe(e[0], "url").url; return t.settings.isTrusted({ command: "\\href", url: a }) ? { type: "href", mode: t.mode, href: a, body: tt(r) } : t.formatUnsupportedCmd("\\href"); }, htmlBuilder: (n, e) => { var t = gt(n.body, e, !1); return R.makeAnchor(n.href, [], t, e); }, mathmlBuilder: (n, e) => { var t = cn(n.body, e); return t instanceof y0 || (t = new y0("mrow", [t])), t.setAttribute("href", n.href), t; } }); Y({ type: "href", names: ["\\url"], props: { numArgs: 1, argTypes: ["url"], allowedInText: !0 }, handler: (n, e) => { var { parser: t } = n, r = pe(e[0], "url").url; if (!t.settings.isTrusted({ command: "\\url", url: r })) return t.formatUnsupportedCmd("\\url"); for (var a = [], i = 0; i < r.length; i++) { var l = r[i]; l === "~" && (l = "\\textasciitilde"), a.push({ type: "textord", mode: "text", text: l }); } var s = { type: "text", mode: t.mode, font: "\\texttt", body: a }; return { type: "href", mode: t.mode, href: r, body: tt(s) }; } }); Y({ type: "hbox", names: ["\\hbox"], props: { numArgs: 1, argTypes: ["text"], allowedInText: !0, primitive: !0 }, handler(n, e) { var { parser: t } = n; return { type: "hbox", mode: t.mode, body: tt(e[0]) }; }, htmlBuilder(n, e) { var t = gt(n.body, e, !1); return R.makeFragment(t); }, mathmlBuilder(n, e) { return new U.MathNode("mrow", a0(n.body, e)); } }); Y({ type: "html", names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"], props: { numArgs: 2, argTypes: ["raw", "original"], allowedInText: !0 }, handler: (n, e) => { var { parser: t, funcName: r, token: a } = n, i = pe(e[0], "raw").string, l = e[1]; t.settings.strict && t.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode"); var s, o = {}; switch (r) { case "\\htmlClass": o.class = i, s = { command: "\\htmlClass", class: i }; break; case "\\htmlId": o.id = i, s = { command: "\\htmlId", id: i }; break; case "\\htmlStyle": o.style = i, s = { command: "\\htmlStyle", style: i }; break; case "\\htmlData": { for (var u = i.split(","), c = 0; c < u.length; c++) { var d = u[c].split("="); if (d.length !== 2) throw new G("Error parsing key-value for \\htmlData"); o["data-" + d[0].trim()] = d[1].trim(); } s = { command: "\\htmlData", attributes: o }; break; } default: throw new Error("Unrecognized html command"); } return t.settings.isTrusted(s) ? { type: "html", mode: t.mode, attributes: o, body: tt(l) } : t.formatUnsupportedCmd(r); }, htmlBuilder: (n, e) => { var t = gt(n.body, e, !1), r = ["enclosing"]; n.attributes.class && r.push(...n.attributes.class.trim().split(/\s+/)); var a = R.makeSpan(r, t, e); for (var i in n.attributes) i !== "class" && n.attributes.hasOwnProperty(i) && a.setAttribute(i, n.attributes[i]); return a; }, mathmlBuilder: (n, e) => cn(n.body, e) }); Y({ type: "htmlmathml", names: ["\\html@mathml"], props: { numArgs: 2, allowedInText: !0 }, handler: (n, e) => { var { parser: t } = n; return { type: "htmlmathml", mode: t.mode, html: tt(e[0]), mathml: tt(e[1]) }; }, htmlBuilder: (n, e) => { var t = gt(n.html, e, !1); return R.makeFragment(t); }, mathmlBuilder: (n, e) => cn(n.mathml, e) }); var ao = function(e) { if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e)) return { number: +e, unit: "bp" }; var t = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e); if (!t) throw new G("Invalid size: '" + e + "' in \\includegraphics"); var r = { number: +(t[1] + t[2]), // sign + magnitude, cast to number unit: t[3] }; if (!xd(r)) throw new G("Invalid unit: '" + r.unit + "' in \\includegraphics."); return r; }; Y({ type: "includegraphics", names: ["\\includegraphics"], props: { numArgs: 1, numOptionalArgs: 1, argTypes: ["raw", "url"], allowedInText: !1 }, handler: (n, e, t) => { var { parser: r } = n, a = { number: 0, unit: "em" }, i = { number: 0.9, unit: "em" }, l = { number: 0, unit: "em" }, s = ""; if (t[0]) for (var o = pe(t[0], "raw").string, u = o.split(","), c = 0; c < u.length; c++) { var d = u[c].split("="); if (d.length === 2) { var h = d[1].trim(); switch (d[0].trim()) { case "alt": s = h; break; case "width": a = ao(h); break; case "height": i = ao(h); break; case "totalheight": l = ao(h); break; default: throw new G("Invalid key: '" + d[0] + "' in \\includegraphics."); } } } var p = pe(e[0], "url").url; return s === "" && (s = p, s = s.replace(/^.*[\\/]/, ""), s = s.substring(0, s.lastIndexOf("."))), r.settings.isTrusted({ command: "\\includegraphics", url: p }) ? { type: "includegraphics", mode: r.mode, alt: s, width: a, height: i, totalheight: l, src: p } : r.formatUnsupportedCmd("\\includegraphics"); }, htmlBuilder: (n, e) => { var t = Ye(n.height, e), r = 0; n.totalheight.number > 0 && (r = Ye(n.totalheight, e) - t); var a = 0; n.width.number > 0 && (a = Ye(n.width, e)); var i = { height: X(t + r) }; a > 0 && (i.width = X(a)), r > 0 && (i.verticalAlign = X(-r)); var l = new a3(n.src, n.alt, i); return l.height = t, l.depth = r, l; }, mathmlBuilder: (n, e) => { var t = new U.MathNode("mglyph", []); t.setAttribute("alt", n.alt); var r = Ye(n.height, e), a = 0; if (n.totalheight.number > 0 && (a = Ye(n.totalheight, e) - r, t.setAttribute("valign", X(-a))), t.setAttribute("height", X(r + a)), n.width.number > 0) { var i = Ye(n.width, e); t.setAttribute("width", X(i)); } return t.setAttribute("src", n.src), t; } }); Y({ type: "kern", names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"], props: { numArgs: 1, argTypes: ["size"], primitive: !0, allowedInText: !0 }, handler(n, e) { var { parser: t, funcName: r } = n, a = pe(e[0], "size"); if (t.settings.strict) { var i = r[1] === "m", l = a.value.unit === "mu"; i ? (l || t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " supports only mu units, " + ("not " + a.value.unit + " units")), t.mode !== "math" && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " works only in math mode")) : l && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " doesn't support mu units"); } return { type: "kern", mode: t.mode, dimension: a.value }; }, htmlBuilder(n, e) { return R.makeGlue(n.dimension, e); }, mathmlBuilder(n, e) { var t = Ye(n.dimension, e); return new U.SpaceNode(t); } }); Y({ type: "lap", names: ["\\mathllap", "\\mathrlap", "\\mathclap"], props: { numArgs: 1, allowedInText: !0 }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = e[0]; return { type: "lap", mode: t.mode, alignment: r.slice(5), body: a }; }, htmlBuilder: (n, e) => { var t; n.alignment === "clap" ? (t = R.makeSpan([], [Se(n.body, e)]), t = R.makeSpan(["inner"], [t], e)) : t = R.makeSpan(["inner"], [Se(n.body, e)]); var r = R.makeSpan(["fix"], []), a = R.makeSpan([n.alignment], [t, r], e), i = R.makeSpan(["strut"]); return i.style.height = X(a.height + a.depth), a.depth && (i.style.verticalAlign = X(-a.depth)), a.children.unshift(i), a = R.makeSpan(["thinbox"], [a], e), R.makeSpan(["mord", "vbox"], [a], e); }, mathmlBuilder: (n, e) => { var t = new U.MathNode("mpadded", [Ie(n.body, e)]); if (n.alignment !== "rlap") { var r = n.alignment === "llap" ? "-1" : "-0.5"; t.setAttribute("lspace", r + "width"); } return t.setAttribute("width", "0px"), t; } }); Y({ type: "styling", names: ["\\(", "$"], props: { numArgs: 0, allowedInText: !0, allowedInMath: !1 }, handler(n, e) { var { funcName: t, parser: r } = n, a = r.mode; r.switchMode("math"); var i = t === "\\(" ? "\\)" : "$", l = r.parseExpression(!1, i); return r.expect(i), r.switchMode(a), { type: "styling", mode: r.mode, style: "text", body: l }; } }); Y({ type: "text", // Doesn't matter what this is. names: ["\\)", "\\]"], props: { numArgs: 0, allowedInText: !0, allowedInMath: !1 }, handler(n, e) { throw new G("Mismatched " + n.funcName); } }); var mc = (n, e) => { switch (e.style.size) { case ae.DISPLAY.size: return n.display; case ae.TEXT.size: return n.text; case ae.SCRIPT.size: return n.script; case ae.SCRIPTSCRIPT.size: return n.scriptscript; default: return n.text; } }; Y({ type: "mathchoice", names: ["\\mathchoice"], props: { numArgs: 4, primitive: !0 }, handler: (n, e) => { var { parser: t } = n; return { type: "mathchoice", mode: t.mode, display: tt(e[0]), text: tt(e[1]), script: tt(e[2]), scriptscript: tt(e[3]) }; }, htmlBuilder: (n, e) => { var t = mc(n, e), r = gt(t, e, !1); return R.makeFragment(r); }, mathmlBuilder: (n, e) => { var t = mc(n, e); return cn(t, e); } }); var u4 = (n, e, t, r, a, i, l) => { n = R.makeSpan([], [n]); var s = t && re.isCharacterBox(t), o, u; if (e) { var c = Se(e, r.havingStyle(a.sup()), r); u = { elem: c, kern: Math.max(r.fontMetrics().bigOpSpacing1, r.fontMetrics().bigOpSpacing3 - c.depth) }; } if (t) { var d = Se(t, r.havingStyle(a.sub()), r); o = { elem: d, kern: Math.max(r.fontMetrics().bigOpSpacing2, r.fontMetrics().bigOpSpacing4 - d.height) }; } var h; if (u && o) { var p = r.fontMetrics().bigOpSpacing5 + o.elem.height + o.elem.depth + o.kern + n.depth + l; h = R.makeVList({ positionType: "bottom", positionData: p, children: [{ type: "kern", size: r.fontMetrics().bigOpSpacing5 }, { type: "elem", elem: o.elem, marginLeft: X(-i) }, { type: "kern", size: o.kern }, { type: "elem", elem: n }, { type: "kern", size: u.kern }, { type: "elem", elem: u.elem, marginLeft: X(i) }, { type: "kern", size: r.fontMetrics().bigOpSpacing5 }] }, r); } else if (o) { var _ = n.height - l; h = R.makeVList({ positionType: "top", positionData: _, children: [{ type: "kern", size: r.fontMetrics().bigOpSpacing5 }, { type: "elem", elem: o.elem, marginLeft: X(-i) }, { type: "kern", size: o.kern }, { type: "elem", elem: n }] }, r); } else if (u) { var b = n.depth + l; h = R.makeVList({ positionType: "bottom", positionData: b, children: [{ type: "elem", elem: n }, { type: "kern", size: u.kern }, { type: "elem", elem: u.elem, marginLeft: X(i) }, { type: "kern", size: r.fontMetrics().bigOpSpacing5 }] }, r); } else return n; var D = [h]; if (o && i !== 0 && !s) { var y = R.makeSpan(["mspace"], [], r); y.style.marginRight = X(i), D.unshift(y); } return R.makeSpan(["mop", "op-limits"], D, r); }, c4 = ["\\smallint"], ua = (n, e) => { var t, r, a = !1, i; n.type === "supsub" ? (t = n.sup, r = n.sub, i = pe(n.base, "op"), a = !0) : i = pe(n, "op"); var l = e.style, s = !1; l.size === ae.DISPLAY.size && i.symbol && !re.contains(c4, i.name) && (s = !0); var o; if (i.symbol) { var u = s ? "Size2-Regular" : "Size1-Regular", c = ""; if ((i.name === "\\oiint" || i.name === "\\oiiint") && (c = i.name.slice(1), i.name = c === "oiint" ? "\\iint" : "\\iiint"), o = R.makeSymbol(i.name, u, "math", e, ["mop", "op-symbol", s ? "large-op" : "small-op"]), c.length > 0) { var d = o.italic, h = R.staticSvg(c + "Size" + (s ? "2" : "1"), e); o = R.makeVList({ positionType: "individualShift", children: [{ type: "elem", elem: o, shift: 0 }, { type: "elem", elem: h, shift: s ? 0.08 : 0 }] }, e), i.name = "\\" + c, o.classes.unshift("mop"), o.italic = d; } } else if (i.body) { var p = gt(i.body, e, !0); p.length === 1 && p[0] instanceof x0 ? (o = p[0], o.classes[0] = "mop") : o = R.makeSpan(["mop"], p, e); } else { for (var _ = [], b = 1; b < i.name.length; b++) _.push(R.mathsym(i.name[b], i.mode, e)); o = R.makeSpan(["mop"], _, e); } var D = 0, y = 0; return (o instanceof x0 || i.name === "\\oiint" || i.name === "\\oiiint") && !i.suppressBaseShift && (D = (o.height - o.depth) / 2 - e.fontMetrics().axisHeight, y = o.italic), a ? u4(o, t, r, e, l, y, D) : (D && (o.style.position = "relative", o.style.top = X(D)), o); }, ni = (n, e) => { var t; if (n.symbol) t = new y0("mo", [T0(n.name, n.mode)]), re.contains(c4, n.name) && t.setAttribute("largeop", "false"); else if (n.body) t = new y0("mo", a0(n.body, e)); else { t = new y0("mi", [new Oa(n.name.slice(1))]); var r = new y0("mo", [T0("⁡", "text")]); n.parentIsSupSub ? t = new y0("mrow", [t, r]) : t = Od([t, r]); } return t; }, i6 = { "∏": "\\prod", "∐": "\\coprod", "∑": "\\sum", "⋀": "\\bigwedge", "⋁": "\\bigvee", "⋂": "\\bigcap", "⋃": "\\bigcup", "⨀": "\\bigodot", "⨁": "\\bigoplus", "⨂": "\\bigotimes", "⨄": "\\biguplus", "⨆": "\\bigsqcup" }; Y({ type: "op", names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "∏", "∐", "∑", "⋀", "⋁", "⋂", "⋃", "⨀", "⨁", "⨂", "⨄", "⨆"], props: { numArgs: 0 }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = r; return a.length === 1 && (a = i6[a]), { type: "op", mode: t.mode, limits: !0, parentIsSupSub: !1, symbol: !0, name: a }; }, htmlBuilder: ua, mathmlBuilder: ni }); Y({ type: "op", names: ["\\mathop"], props: { numArgs: 1, primitive: !0 }, handler: (n, e) => { var { parser: t } = n, r = e[0]; return { type: "op", mode: t.mode, limits: !1, parentIsSupSub: !1, symbol: !1, body: tt(r) }; }, htmlBuilder: ua, mathmlBuilder: ni }); var l6 = { "∫": "\\int", "∬": "\\iint", "∭": "\\iiint", "∮": "\\oint", "∯": "\\oiint", "∰": "\\oiiint" }; Y({ type: "op", names: ["\\arcsin", "\\arccos", "\\arctan", "\\arctg", "\\arcctg", "\\arg", "\\ch", "\\cos", "\\cosec", "\\cosh", "\\cot", "\\cotg", "\\coth", "\\csc", "\\ctg", "\\cth", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\sh", "\\tan", "\\tanh", "\\tg", "\\th"], props: { numArgs: 0 }, handler(n) { var { parser: e, funcName: t } = n; return { type: "op", mode: e.mode, limits: !1, parentIsSupSub: !1, symbol: !1, name: t }; }, htmlBuilder: ua, mathmlBuilder: ni }); Y({ type: "op", names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"], props: { numArgs: 0 }, handler(n) { var { parser: e, funcName: t } = n; return { type: "op", mode: e.mode, limits: !0, parentIsSupSub: !1, symbol: !1, name: t }; }, htmlBuilder: ua, mathmlBuilder: ni }); Y({ type: "op", names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "∫", "∬", "∭", "∮", "∯", "∰"], props: { numArgs: 0 }, handler(n) { var { parser: e, funcName: t } = n, r = t; return r.length === 1 && (r = l6[r]), { type: "op", mode: e.mode, limits: !1, parentIsSupSub: !1, symbol: !0, name: r }; }, htmlBuilder: ua, mathmlBuilder: ni }); var f4 = (n, e) => { var t, r, a = !1, i; n.type === "supsub" ? (t = n.sup, r = n.sub, i = pe(n.base, "operatorname"), a = !0) : i = pe(n, "operatorname"); var l; if (i.body.length > 0) { for (var s = i.body.map((d) => { var h = d.text; return typeof h == "string" ? { type: "textord", mode: d.mode, text: h } : d; }), o = gt(s, e.withFont("mathrm"), !0), u = 0; u < o.length; u++) { var c = o[u]; c instanceof x0 && (c.text = c.text.replace(/\u2212/, "-").replace(/\u2217/, "*")); } l = R.makeSpan(["mop"], o, e); } else l = R.makeSpan(["mop"], [], e); return a ? u4(l, t, r, e, e.style, 0, 0) : l; }, s6 = (n, e) => { for (var t = a0(n.body, e.withFont("mathrm")), r = !0, a = 0; a < t.length; a++) { var i = t[a]; if (!(i instanceof U.SpaceNode)) if (i instanceof U.MathNode) switch (i.type) { case "mi": case "mn": case "ms": case "mspace": case "mtext": break; case "mo": { var l = i.children[0]; i.children.length === 1 && l instanceof U.TextNode ? l.text = l.text.replace(/\u2212/, "-").replace(/\u2217/, "*") : r = !1; break; } default: r = !1; } else r = !1; } if (r) { var s = t.map((c) => c.toText()).join(""); t = [new U.TextNode(s)]; } var o = new U.MathNode("mi", t); o.setAttribute("mathvariant", "normal"); var u = new U.MathNode("mo", [T0("⁡", "text")]); return n.parentIsSupSub ? new U.MathNode("mrow", [o, u]) : U.newDocumentFragment([o, u]); }; Y({ type: "operatorname", names: ["\\operatorname@", "\\operatornamewithlimits"], props: { numArgs: 1 }, handler: (n, e) => { var { parser: t, funcName: r } = n, a = e[0]; return { type: "operatorname", mode: t.mode, body: tt(a), alwaysHandleSupSub: r === "\\operatornamewithlimits", limits: !1, parentIsSupSub: !1 }; }, htmlBuilder: f4, mathmlBuilder: s6 }); v("\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@"); Bn({ type: "ordgroup", htmlBuilder(n, e) { return n.semisimple ? R.makeFragment(gt(n.body, e, !1)) : R.makeSpan(["mord"], gt(n.body, e, !0), e); }, mathmlBuilder(n, e) { return cn(n.body, e, !0); } }); Y({ type: "overline", names: ["\\overline"], props: { numArgs: 1 }, handler(n, e) { var { parser: t } = n, r = e[0]; return { type: "overline", mode: t.mode, body: r }; }, htmlBuilder(n, e) { var t = Se(n.body, e.havingCrampedStyle()), r = R.makeLineSpan("overline-line", e), a = e.fontMetrics().defaultRuleThickness, i = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: t }, { type: "kern", size: 3 * a }, { type: "elem", elem: r }, { type: "kern", size: a }] }, e); return R.makeSpan(["mord", "overline"], [i], e); }, mathmlBuilder(n, e) { var t = new U.MathNode("mo", [new U.TextNode("‾")]); t.setAttribute("stretchy", "true"); var r = new U.MathNode("mover", [Ie(n.body, e), t]); return r.setAttribute("accent", "true"), r; } }); Y({ type: "phantom", names: ["\\phantom"], props: { numArgs: 1, allowedInText: !0 }, handler: (n, e) => { var { parser: t } = n, r = e[0]; return { type: "phantom", mode: t.mode, body: tt(r) }; }, htmlBuilder: (n, e) => { var t = gt(n.body, e.withPhantom(), !1); return R.makeFragment(t); }, mathmlBuilder: (n, e) => { var t = a0(n.body, e); return new U.MathNode("mphantom", t); } }); Y({ type: "hphantom", names: ["\\hphantom"], props: { numArgs: 1, allowedInText: !0 }, handler: (n, e) => { var { parser: t } = n, r = e[0]; return { type: "hphantom", mode: t.mode, body: r }; }, htmlBuilder: (n, e) => { var t = R.makeSpan([], [Se(n.body, e.withPhantom())]); if (t.height = 0, t.depth = 0, t.children) for (var r = 0; r < t.children.length; r++) t.children[r].height = 0, t.children[r].depth = 0; return t = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: t }] }, e), R.makeSpan(["mord"], [t], e); }, mathmlBuilder: (n, e) => { var t = a0(tt(n.body), e), r = new U.MathNode("mphantom", t), a = new U.MathNode("mpadded", [r]); return a.setAttribute("height", "0px"), a.setAttribute("depth", "0px"), a; } }); Y({ type: "vphantom", names: ["\\vphantom"], props: { numArgs: 1, allowedInText: !0 }, handler: (n, e) => { var { parser: t } = n, r = e[0]; return { type: "vphantom", mode: t.mode, body: r }; }, htmlBuilder: (n, e) => { var t = R.makeSpan(["inner"], [Se(n.body, e.withPhantom())]), r = R.makeSpan(["fix"], []); return R.makeSpan(["mord", "rlap"], [t, r], e); }, mathmlBuilder: (n, e) => { var t = a0(tt(n.body), e), r = new U.MathNode("mphantom", t), a = new U.MathNode("mpadded", [r]); return a.setAttribute("width", "0px"), a; } }); Y({ type: "raisebox", names: ["\\raisebox"], props: { numArgs: 2, argTypes: ["size", "hbox"], allowedInText: !0 }, handler(n, e) { var { parser: t } = n, r = pe(e[0], "size").value, a = e[1]; return { type: "raisebox", mode: t.mode, dy: r, body: a }; }, htmlBuilder(n, e) { var t = Se(n.body, e), r = Ye(n.dy, e); return R.makeVList({ positionType: "shift", positionData: -r, children: [{ type: "elem", elem: t }] }, e); }, mathmlBuilder(n, e) { var t = new U.MathNode("mpadded", [Ie(n.body, e)]), r = n.dy.number + n.dy.unit; return t.setAttribute("voffset", r), t; } }); Y({ type: "internal", names: ["\\relax"], props: { numArgs: 0, allowedInText: !0 }, handler(n) { var { parser: e } = n; return { type: "internal", mode: e.mode }; } }); Y({ type: "rule", names: ["\\rule"], props: { numArgs: 2, numOptionalArgs: 1, argTypes: ["size", "size", "size"] }, handler(n, e, t) { var { parser: r } = n, a = t[0], i = pe(e[0], "size"), l = pe(e[1], "size"); return { type: "rule", mode: r.mode, shift: a && pe(a, "size").value, width: i.value, height: l.value }; }, htmlBuilder(n, e) { var t = R.makeSpan(["mord", "rule"], [], e), r = Ye(n.width, e), a = Ye(n.height, e), i = n.shift ? Ye(n.shift, e) : 0; return t.style.borderRightWidth = X(r), t.style.borderTopWidth = X(a), t.style.bottom = X(i), t.width = r, t.height = a + i, t.depth = -i, t.maxFontSize = a * 1.125 * e.sizeMultiplier, t; }, mathmlBuilder(n, e) { var t = Ye(n.width, e), r = Ye(n.height, e), a = n.shift ? Ye(n.shift, e) : 0, i = e.color && e.getColor() || "black", l = new U.MathNode("mspace"); l.setAttribute("mathbackground", i), l.setAttribute("width", X(t)), l.setAttribute("height", X(r)); var s = new U.MathNode("mpadded", [l]); return a >= 0 ? s.setAttribute("height", X(a)) : (s.setAttribute("height", X(a)), s.setAttribute("depth", X(-a))), s.setAttribute("voffset", X(a)), s; } }); function h4(n, e, t) { for (var r = gt(n, e, !1), a = e.sizeMultiplier / t.sizeMultiplier, i = 0; i < r.length; i++) { var l = r[i].classes.indexOf("sizing"); l < 0 ? Array.prototype.push.apply(r[i].classes, e.sizingClasses(t)) : r[i].classes[l + 1] === "reset-size" + e.size && (r[i].classes[l + 1] = "reset-size" + t.size), r[i].height *= a, r[i].depth *= a; } return R.makeFragment(r); } var pc = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"], o6 = (n, e) => { var t = e.havingSize(n.size); return h4(n.body, t, e); }; Y({ type: "sizing", names: pc, props: { numArgs: 0, allowedInText: !0 }, handler: (n, e) => { var { breakOnTokenText: t, funcName: r, parser: a } = n, i = a.parseExpression(!1, t); return { type: "sizing", mode: a.mode, // Figure out what size to use based on the list of functions above size: pc.indexOf(r) + 1, body: i }; }, htmlBuilder: o6, mathmlBuilder: (n, e) => { var t = e.havingSize(n.size), r = a0(n.body, t), a = new U.MathNode("mstyle", r); return a.setAttribute("mathsize", X(t.sizeMultiplier)), a; } }); Y({ type: "smash", names: ["\\smash"], props: { numArgs: 1, numOptionalArgs: 1, allowedInText: !0 }, handler: (n, e, t) => { var { parser: r } = n, a = !1, i = !1, l = t[0] && pe(t[0], "ordgroup"); if (l) for (var s = "", o = 0; o < l.body.length; ++o) { var u = l.body[o]; if (s = u.text, s === "t") a = !0; else if (s === "b") i = !0; else { a = !1, i = !1; break; } } else a = !0, i = !0; var c = e[0]; return { type: "smash", mode: r.mode, body: c, smashHeight: a, smashDepth: i }; }, htmlBuilder: (n, e) => { var t = R.makeSpan([], [Se(n.body, e)]); if (!n.smashHeight && !n.smashDepth) return t; if (n.smashHeight && (t.height = 0, t.children)) for (var r = 0; r < t.children.length; r++) t.children[r].height = 0; if (n.smashDepth && (t.depth = 0, t.children)) for (var a = 0; a < t.children.length; a++) t.children[a].depth = 0; var i = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: t }] }, e); return R.makeSpan(["mord"], [i], e); }, mathmlBuilder: (n, e) => { var t = new U.MathNode("mpadded", [Ie(n.body, e)]); return n.smashHeight && t.setAttribute("height", "0px"), n.smashDepth && t.setAttribute("depth", "0px"), t; } }); Y({ type: "sqrt", names: ["\\sqrt"], props: { numArgs: 1, numOptionalArgs: 1 }, handler(n, e, t) { var { parser: r } = n, a = t[0], i = e[0]; return { type: "sqrt", mode: r.mode, body: i, index: a }; }, htmlBuilder(n, e) { var t = Se(n.body, e.havingCrampedStyle()); t.height === 0 && (t.height = e.fontMetrics().xHeight), t = R.wrapFragment(t, e); var r = e.fontMetrics(), a = r.defaultRuleThickness, i = a; e.style.id < ae.TEXT.id && (i = e.fontMetrics().xHeight); var l = a + i / 4, s = t.height + t.depth + l + a, { span: o, ruleWidth: u, advanceWidth: c } = Cr.sqrtImage(s, e), d = o.height - u; d > t.height + t.depth + l && (l = (l + d - t.height - t.depth) / 2); var h = o.height - t.height - l - u; t.style.paddingLeft = X(c); var p = R.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: t, wrapperClasses: ["svg-align"] }, { type: "kern", size: -(t.height + h) }, { type: "elem", elem: o }, { type: "kern", size: u }] }, e); if (n.index) { var _ = e.havingStyle(ae.SCRIPTSCRIPT), b = Se(n.index, _, e), D = 0.6 * (p.height - p.depth), y = R.makeVList({ positionType: "shift", positionData: -D, children: [{ type: "elem", elem: b }] }, e), k = R.makeSpan(["root"], [y]); return R.makeSpan(["mord", "sqrt"], [k, p], e); } else return R.makeSpan(["mord", "sqrt"], [p], e); }, mathmlBuilder(n, e) { var { body: t, index: r } = n; return r ? new U.MathNode("mroot", [Ie(t, e), Ie(r, e)]) : new U.MathNode("msqrt", [Ie(t, e)]); } }); var gc = { display: ae.DISPLAY, text: ae.TEXT, script: ae.SCRIPT, scriptscript: ae.SCRIPTSCRIPT }; Y({ type: "styling", names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"], props: { numArgs: 0, allowedInText: !0, primitive: !0 }, handler(n, e) { var { breakOnTokenText: t, funcName: r, parser: a } = n, i = a.parseExpression(!0, t), l = r.slice(1, r.length - 5); return { type: "styling", mode: a.mode, // Figure out what style to use by pulling out the style from // the function name style: l, body: i }; }, htmlBuilder(n, e) { var t = gc[n.style], r = e.havingStyle(t).withFont(""); return h4(n.body, r, e); }, mathmlBuilder(n, e) { var t = gc[n.style], r = e.havingStyle(t), a = a0(n.body, r), i = new U.MathNode("mstyle", a), l = { display: ["0", "true"], text: ["0", "false"], script: ["1", "false"], scriptscript: ["2", "false"] }, s = l[n.style]; return i.setAttribute("scriptlevel", s[0]), i.setAttribute("displaystyle", s[1]), i; } }); var u6 = function(e, t) { var r = e.base; if (r) if (r.type === "op") { var a = r.limits && (t.style.size === ae.DISPLAY.size || r.alwaysHandleSupSub); return a ? ua : null; } else if (r.type === "operatorname") { var i = r.alwaysHandleSupSub && (t.style.size === ae.DISPLAY.size || r.limits); return i ? f4 : null; } else { if (r.type === "accent") return re.isCharacterBox(r.base) ? Lu : null; if (r.type === "horizBrace") { var l = !e.sub; return l === r.isOver ? o4 : null; } else return null; } else return null; }; Bn({ type: "supsub", htmlBuilder(n, e) { var t = u6(n, e); if (t) return t(n, e); var { base: r, sup: a, sub: i } = n, l = Se(r, e), s, o, u = e.fontMetrics(), c = 0, d = 0, h = r && re.isCharacterBox(r); if (a) { var p = e.havingStyle(e.style.sup()); s = Se(a, p, e), h || (c = l.height - p.fontMetrics().supDrop * p.sizeMultiplier / e.sizeMultiplier); } if (i) { var _ = e.havingStyle(e.style.sub()); o = Se(i, _, e), h || (d = l.depth + _.fontMetrics().subDrop * _.sizeMultiplier / e.sizeMultiplier); } var b; e.style === ae.DISPLAY ? b = u.sup1 : e.style.cramped ? b = u.sup3 : b = u.sup2; var D = e.sizeMultiplier, y = X(0.5 / u.ptPerEm / D), k = null; if (o) { var w = n.base && n.base.type === "op" && n.base.name && (n.base.name === "\\oiint" || n.base.name === "\\oiiint"); (l instanceof x0 || w) && (k = X(-l.italic)); } var E; if (s && o) { c = Math.max(c, b, s.depth + 0.25 * u.xHeight), d = Math.max(d, u.sub2); var S = u.defaultRuleThickness, T = 4 * S; if (c - s.depth - (o.height - d) < T) { d = T - (c - s.depth) + o.height; var C = 0.8 * u.xHeight - (c - s.depth); C > 0 && (c += C, d -= C); } var F = [{ type: "elem", elem: o, shift: d, marginRight: y, marginLeft: k }, { type: "elem", elem: s, shift: -c, marginRight: y }]; E = R.makeVList({ positionType: "individualShift", children: F }, e); } else if (o) { d = Math.max(d, u.sub1, o.height - 0.8 * u.xHeight); var B = [{ type: "elem", elem: o, marginLeft: k, marginRight: y }]; E = R.makeVList({ positionType: "shift", positionData: d, children: B }, e); } else if (s) c = Math.max(c, b, s.depth + 0.25 * u.xHeight), E = R.makeVList({ positionType: "shift", positionData: -c, children: [{ type: "elem", elem: s, marginRight: y }] }, e); else throw new Error("supsub must have either sup or sub."); var I = Jo(l, "right") || "mord"; return R.makeSpan([I], [l, R.makeSpan(["msupsub"], [E])], e); }, mathmlBuilder(n, e) { var t = !1, r, a; n.base && n.base.type === "horizBrace" && (a = !!n.sup, a === n.base.isOver && (t = !0, r = n.base.isOver)), n.base && (n.base.type === "op" || n.base.type === "operatorname") && (n.base.parentIsSupSub = !0); var i = [Ie(n.base, e)]; n.sub && i.push(Ie(n.sub, e)), n.sup && i.push(Ie(n.sup, e)); var l; if (t) l = r ? "mover" : "munder"; else if (n.sub) if (n.sup) { var u = n.base; u && u.type === "op" && u.limits && e.style === ae.DISPLAY || u && u.type === "operatorname" && u.alwaysHandleSupSub && (e.style === ae.DISPLAY || u.limits) ? l = "munderover" : l = "msubsup"; } else { var o = n.base; o && o.type === "op" && o.limits && (e.style === ae.DISPLAY || o.alwaysHandleSupSub) || o && o.type === "operatorname" && o.alwaysHandleSupSub && (o.limits || e.style === ae.DISPLAY) ? l = "munder" : l = "msub"; } else { var s = n.base; s && s.type === "op" && s.limits && (e.style === ae.DISPLAY || s.alwaysHandleSupSub) || s && s.type === "operatorname" && s.alwaysHandleSupSub && (s.limits || e.style === ae.DISPLAY) ? l = "mover" : l = "msup"; } return new U.MathNode(l, i); } }); Bn({ type: "atom", htmlBuilder(n, e) { return R.mathsym(n.text, n.mode, e, ["m" + n.family]); }, mathmlBuilder(n, e) { var t = new U.MathNode("mo", [T0(n.text, n.mode)]); if (n.family === "bin") { var r = Bu(n, e); r === "bold-italic" && t.setAttribute("mathvariant", r); } else n.family === "punct" ? t.setAttribute("separator", "true") : (n.family === "open" || n.family === "close") && t.setAttribute("stretchy", "false"); return t; } }); var d4 = { mi: "italic", mn: "normal", mtext: "normal" }; Bn({ type: "mathord", htmlBuilder(n, e) { return R.makeOrd(n, e, "mathord"); }, mathmlBuilder(n, e) { var t = new U.MathNode("mi", [T0(n.text, n.mode, e)]), r = Bu(n, e) || "italic"; return r !== d4[t.type] && t.setAttribute("mathvariant", r), t; } }); Bn({ type: "textord", htmlBuilder(n, e) { return R.makeOrd(n, e, "textord"); }, mathmlBuilder(n, e) { var t = T0(n.text, n.mode, e), r = Bu(n, e) || "normal", a; return n.mode === "text" ? a = new U.MathNode("mtext", [t]) : /[0-9]/.test(n.text) ? a = new U.MathNode("mn", [t]) : n.text === "\\prime" ? a = new U.MathNode("mo", [t]) : a = new U.MathNode("mi", [t]), r !== d4[a.type] && a.setAttribute("mathvariant", r), a; } }); var io = { "\\nobreak": "nobreak", "\\allowbreak": "allowbreak" }, lo = { " ": {}, "\\ ": {}, "~": { className: "nobreak" }, "\\space": {}, "\\nobreakspace": { className: "nobreak" } }; Bn({ type: "spacing", htmlBuilder(n, e) { if (lo.hasOwnProperty(n.text)) { var t = lo[n.text].className || ""; if (n.mode === "text") { var r = R.makeOrd(n, e, "textord"); return r.classes.push(t), r; } else return R.makeSpan(["mspace", t], [R.mathsym(n.text, n.mode, e)], e); } else { if (io.hasOwnProperty(n.text)) return R.makeSpan(["mspace", io[n.text]], [], e); throw new G('Unknown type of space "' + n.text + '"'); } }, mathmlBuilder(n, e) { var t; if (lo.hasOwnProperty(n.text)) t = new U.MathNode("mtext", [new U.TextNode(" ")]); else { if (io.hasOwnProperty(n.text)) return new U.MathNode("mspace"); throw new G('Unknown type of space "' + n.text + '"'); } return t; } }); var _c = () => { var n = new U.MathNode("mtd", []); return n.setAttribute("width", "50%"), n; }; Bn({ type: "tag", mathmlBuilder(n, e) { var t = new U.MathNode("mtable", [new U.MathNode("mtr", [_c(), new U.MathNode("mtd", [cn(n.body, e)]), _c(), new U.MathNode("mtd", [cn(n.tag, e)])])]); return t.setAttribute("width", "100%"), t; } }); var vc = { "\\text": void 0, "\\textrm": "textrm", "\\textsf": "textsf", "\\texttt": "texttt", "\\textnormal": "textrm" }, bc = { "\\textbf": "textbf", "\\textmd": "textmd" }, c6 = { "\\textit": "textit", "\\textup": "textup" }, wc = (n, e) => { var t = n.font; if (t) { if (vc[t]) return e.withTextFontFamily(vc[t]); if (bc[t]) return e.withTextFontWeight(bc[t]); if (t === "\\emph") return e.fontShape === "textit" ? e.withTextFontShape("textup") : e.withTextFontShape("textit"); } else return e; return e.withTextFontShape(c6[t]); }; Y({ type: "text", names: [ // Font families "\\text", "\\textrm", "\\textsf", "\\texttt", "\\textnormal", // Font weights "\\textbf", "\\textmd", // Font Shapes "\\textit", "\\textup", "\\emph" ], props: { numArgs: 1, argTypes: ["text"], allowedInArgument: !0, allowedInText: !0 }, handler(n, e) { var { parser: t, funcName: r } = n, a = e[0]; return { type: "text", mode: t.mode, body: tt(a), font: r }; }, htmlBuilder(n, e) { var t = wc(n, e), r = gt(n.body, t, !0); return R.makeSpan(["mord", "text"], r, t); }, mathmlBuilder(n, e) { var t = wc(n, e); return cn(n.body, t); } }); Y({ type: "underline", names: ["\\underline"], props: { numArgs: 1, allowedInText: !0 }, handler(n, e) { var { parser: t } = n; return { type: "underline", mode: t.mode, body: e[0] }; }, htmlBuilder(n, e) { var t = Se(n.body, e), r = R.makeLineSpan("underline-line", e), a = e.fontMetrics().defaultRuleThickness, i = R.makeVList({ positionType: "top", positionData: t.height, children: [{ type: "kern", size: a }, { type: "elem", elem: r }, { type: "kern", size: 3 * a }, { type: "elem", elem: t }] }, e); return R.makeSpan(["mord", "underline"], [i], e); }, mathmlBuilder(n, e) { var t = new U.MathNode("mo", [new U.TextNode("‾")]); t.setAttribute("stretchy", "true"); var r = new U.MathNode("munder", [Ie(n.body, e), t]); return r.setAttribute("accentunder", "true"), r; } }); Y({ type: "vcenter", names: ["\\vcenter"], props: { numArgs: 1, argTypes: ["original"], // In LaTeX, \vcenter can act only on a box. allowedInText: !1 }, handler(n, e) { var { parser: t } = n; return { type: "vcenter", mode: t.mode, body: e[0] }; }, htmlBuilder(n, e) { var t = Se(n.body, e), r = e.fontMetrics().axisHeight, a = 0.5 * (t.height - r - (t.depth + r)); return R.makeVList({ positionType: "shift", positionData: a, children: [{ type: "elem", elem: t }] }, e); }, mathmlBuilder(n, e) { return new U.MathNode("mpadded", [Ie(n.body, e)], ["vcenter"]); } }); Y({ type: "verb", names: ["\\verb"], props: { numArgs: 0, allowedInText: !0 }, handler(n, e, t) { throw new G("\\verb ended by end of line instead of matching delimiter"); }, htmlBuilder(n, e) { for (var t = yc(n), r = [], a = e.havingStyle(e.style.text()), i = 0; i < t.length; i++) { var l = t[i]; l === "~" && (l = "\\textasciitilde"), r.push(R.makeSymbol(l, "Typewriter-Regular", n.mode, a, ["mord", "texttt"])); } return R.makeSpan(["mord", "text"].concat(a.sizingClasses(e)), R.tryCombineChars(r), a); }, mathmlBuilder(n, e) { var t = new U.TextNode(yc(n)), r = new U.MathNode("mtext", [t]); return r.setAttribute("mathvariant", "monospace"), r; } }); var yc = (n) => n.body.replace(/ /g, n.star ? "␣" : " "), an = Nd, m4 = `[ \r ]`, f6 = "\\\\[a-zA-Z@]+", h6 = "\\\\[^\uD800-\uDFFF]", d6 = "(" + f6 + ")" + m4 + "*", m6 = `\\\\( |[ \r ]+ ?)[ \r ]*`, tu = "[̀-ͯ]", p6 = new RegExp(tu + "+$"), g6 = "(" + m4 + "+)|" + // whitespace (m6 + "|") + // \whitespace "([!-\\[\\]-‧‪-퟿豈-￿]" + // single codepoint (tu + "*") + // ...plus accents "|[\uD800-\uDBFF][\uDC00-\uDFFF]" + // surrogate pair (tu + "*") + // ...plus accents "|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5" + // \verb unstarred ("|" + d6) + // \macroName + spaces ("|" + h6 + ")"); class kc { // Category codes. The lexer only supports comment characters (14) for now. // MacroExpander additionally distinguishes active (13). constructor(e, t) { this.input = void 0, this.settings = void 0, this.tokenRegex = void 0, this.catcodes = void 0, this.input = e, this.settings = t, this.tokenRegex = new RegExp(g6, "g"), this.catcodes = { "%": 14, // comment character "~": 13 // active character }; } setCatcode(e, t) { this.catcodes[e] = t; } /** * This function lexes a single token. */ lex() { var e = this.input, t = this.tokenRegex.lastIndex; if (t === e.length) return new S0("EOF", new u0(this, t, t)); var r = this.tokenRegex.exec(e); if (r === null || r.index !== t) throw new G("Unexpected character: '" + e[t] + "'", new S0(e[t], new u0(this, t, t + 1))); var a = r[6] || r[3] || (r[2] ? "\\ " : " "); if (this.catcodes[a] === 14) { var i = e.indexOf(` `, this.tokenRegex.lastIndex); return i === -1 ? (this.tokenRegex.lastIndex = e.length, this.settings.reportNonstrict("commentAtEnd", "% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")) : this.tokenRegex.lastIndex = i + 1, this.lex(); } return new S0(a, new u0(this, t, this.tokenRegex.lastIndex)); } } class _6 { /** * Both arguments are optional. The first argument is an object of * built-in mappings which never change. The second argument is an object * of initial (global-level) mappings, which will constantly change * according to any global/top-level `set`s done. */ constructor(e, t) { e === void 0 && (e = {}), t === void 0 && (t = {}), this.current = void 0, this.builtins = void 0, this.undefStack = void 0, this.current = t, this.builtins = e, this.undefStack = []; } /** * Start a new nested group, affecting future local `set`s. */ beginGroup() { this.undefStack.push({}); } /** * End current nested group, restoring values before the group began. */ endGroup() { if (this.undefStack.length === 0) throw new G("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug"); var e = this.undefStack.pop(); for (var t in e) e.hasOwnProperty(t) && (e[t] == null ? delete this.current[t] : this.current[t] = e[t]); } /** * Ends all currently nested groups (if any), restoring values before the * groups began. Useful in case of an error in the middle of parsing. */ endGroups() { for (; this.undefStack.length > 0; ) this.endGroup(); } /** * Detect whether `name` has a definition. Equivalent to * `get(name) != null`. */ has(e) { return this.current.hasOwnProperty(e) || this.builtins.hasOwnProperty(e); } /** * Get the current value of a name, or `undefined` if there is no value. * * Note: Do not use `if (namespace.get(...))` to detect whether a macro * is defined, as the definition may be the empty string which evaluates * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or * `if (namespace.has(...))`. */ get(e) { return this.current.hasOwnProperty(e) ? this.current[e] : this.builtins[e]; } /** * Set the current value of a name, and optionally set it globally too. * Local set() sets the current value and (when appropriate) adds an undo * operation to the undo stack. Global set() may change the undo * operation at every level, so takes time linear in their number. * A value of undefined means to delete existing definitions. */ set(e, t, r) { if (r === void 0 && (r = !1), r) { for (var a = 0; a < this.undefStack.length; a++) delete this.undefStack[a][e]; this.undefStack.length > 0 && (this.undefStack[this.undefStack.length - 1][e] = t); } else { var i = this.undefStack[this.undefStack.length - 1]; i && !i.hasOwnProperty(e) && (i[e] = this.current[e]); } t == null ? delete this.current[e] : this.current[e] = t; } } var v6 = n4; v("\\noexpand", function(n) { var e = n.popToken(); return n.isExpandable(e.text) && (e.noexpand = !0, e.treatAsRelax = !0), { tokens: [e], numArgs: 0 }; }); v("\\expandafter", function(n) { var e = n.popToken(); return n.expandOnce(!0), { tokens: [e], numArgs: 0 }; }); v("\\@firstoftwo", function(n) { var e = n.consumeArgs(2); return { tokens: e[0], numArgs: 0 }; }); v("\\@secondoftwo", function(n) { var e = n.consumeArgs(2); return { tokens: e[1], numArgs: 0 }; }); v("\\@ifnextchar", function(n) { var e = n.consumeArgs(3); n.consumeSpaces(); var t = n.future(); return e[0].length === 1 && e[0][0].text === t.text ? { tokens: e[1], numArgs: 0 } : { tokens: e[2], numArgs: 0 }; }); v("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}"); v("\\TextOrMath", function(n) { var e = n.consumeArgs(2); return n.mode === "text" ? { tokens: e[0], numArgs: 0 } : { tokens: e[1], numArgs: 0 }; }); var Dc = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, a: 10, A: 10, b: 11, B: 11, c: 12, C: 12, d: 13, D: 13, e: 14, E: 14, f: 15, F: 15 }; v("\\char", function(n) { var e = n.popToken(), t, r = ""; if (e.text === "'") t = 8, e = n.popToken(); else if (e.text === '"') t = 16, e = n.popToken(); else if (e.text === "`") if (e = n.popToken(), e.text[0] === "\\") r = e.text.charCodeAt(1); else { if (e.text === "EOF") throw new G("\\char` missing argument"); r = e.text.charCodeAt(0); } else t = 10; if (t) { if (r = Dc[e.text], r == null || r >= t) throw new G("Invalid base-" + t + " digit " + e.text); for (var a; (a = Dc[n.future().text]) != null && a < t; ) r *= t, r += a, n.popToken(); } return "\\@char{" + r + "}"; }); var Vu = (n, e, t) => { var r = n.consumeArg().tokens; if (r.length !== 1) throw new G("\\newcommand's first argument must be a macro name"); var a = r[0].text, i = n.isDefined(a); if (i && !e) throw new G("\\newcommand{" + a + "} attempting to redefine " + (a + "; use \\renewcommand")); if (!i && !t) throw new G("\\renewcommand{" + a + "} when command " + a + " does not yet exist; use \\newcommand"); var l = 0; if (r = n.consumeArg().tokens, r.length === 1 && r[0].text === "[") { for (var s = "", o = n.expandNextToken(); o.text !== "]" && o.text !== "EOF"; ) s += o.text, o = n.expandNextToken(); if (!s.match(/^\s*[0-9]+\s*$/)) throw new G("Invalid number of arguments: " + s); l = parseInt(s), r = n.consumeArg().tokens; } return n.macros.set(a, { tokens: r, numArgs: l }), ""; }; v("\\newcommand", (n) => Vu(n, !1, !0)); v("\\renewcommand", (n) => Vu(n, !0, !1)); v("\\providecommand", (n) => Vu(n, !0, !0)); v("\\message", (n) => { var e = n.consumeArgs(1)[0]; return console.log(e.reverse().map((t) => t.text).join("")), ""; }); v("\\errmessage", (n) => { var e = n.consumeArgs(1)[0]; return console.error(e.reverse().map((t) => t.text).join("")), ""; }); v("\\show", (n) => { var e = n.popToken(), t = e.text; return console.log(e, n.macros.get(t), an[t], Ne.math[t], Ne.text[t]), ""; }); v("\\bgroup", "{"); v("\\egroup", "}"); v("~", "\\nobreakspace"); v("\\lq", "`"); v("\\rq", "'"); v("\\aa", "\\r a"); v("\\AA", "\\r A"); v("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`©}"); v("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"); v("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"); v("ℬ", "\\mathscr{B}"); v("ℰ", "\\mathscr{E}"); v("ℱ", "\\mathscr{F}"); v("ℋ", "\\mathscr{H}"); v("ℐ", "\\mathscr{I}"); v("ℒ", "\\mathscr{L}"); v("ℳ", "\\mathscr{M}"); v("ℛ", "\\mathscr{R}"); v("ℭ", "\\mathfrak{C}"); v("ℌ", "\\mathfrak{H}"); v("ℨ", "\\mathfrak{Z}"); v("\\Bbbk", "\\Bbb{k}"); v("·", "\\cdotp"); v("\\llap", "\\mathllap{\\textrm{#1}}"); v("\\rlap", "\\mathrlap{\\textrm{#1}}"); v("\\clap", "\\mathclap{\\textrm{#1}}"); v("\\mathstrut", "\\vphantom{(}"); v("\\underbar", "\\underline{\\text{#1}}"); v("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'); v("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"); v("\\ne", "\\neq"); v("≠", "\\neq"); v("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"); v("∉", "\\notin"); v("≘", "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"); v("≙", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"); v("≚", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"); v("≛", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"); v("≝", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"); v("≞", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"); v("≟", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"); v("⟂", "\\perp"); v("‼", "\\mathclose{!\\mkern-0.8mu!}"); v("∌", "\\notni"); v("⌜", "\\ulcorner"); v("⌝", "\\urcorner"); v("⌞", "\\llcorner"); v("⌟", "\\lrcorner"); v("©", "\\copyright"); v("®", "\\textregistered"); v("️", "\\textregistered"); v("\\ulcorner", '\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'); v("\\urcorner", '\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'); v("\\llcorner", '\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'); v("\\lrcorner", '\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'); v("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}"); v("⋮", "\\vdots"); v("\\varGamma", "\\mathit{\\Gamma}"); v("\\varDelta", "\\mathit{\\Delta}"); v("\\varTheta", "\\mathit{\\Theta}"); v("\\varLambda", "\\mathit{\\Lambda}"); v("\\varXi", "\\mathit{\\Xi}"); v("\\varPi", "\\mathit{\\Pi}"); v("\\varSigma", "\\mathit{\\Sigma}"); v("\\varUpsilon", "\\mathit{\\Upsilon}"); v("\\varPhi", "\\mathit{\\Phi}"); v("\\varPsi", "\\mathit{\\Psi}"); v("\\varOmega", "\\mathit{\\Omega}"); v("\\substack", "\\begin{subarray}{c}#1\\end{subarray}"); v("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"); v("\\boxed", "\\fbox{$\\displaystyle{#1}$}"); v("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;"); v("\\implies", "\\DOTSB\\;\\Longrightarrow\\;"); v("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;"); var Ac = { ",": "\\dotsc", "\\not": "\\dotsb", // \keybin@ checks for the following: "+": "\\dotsb", "=": "\\dotsb", "<": "\\dotsb", ">": "\\dotsb", "-": "\\dotsb", "*": "\\dotsb", ":": "\\dotsb", // Symbols whose definition starts with \DOTSB: "\\DOTSB": "\\dotsb", "\\coprod": "\\dotsb", "\\bigvee": "\\dotsb", "\\bigwedge": "\\dotsb", "\\biguplus": "\\dotsb", "\\bigcap": "\\dotsb", "\\bigcup": "\\dotsb", "\\prod": "\\dotsb", "\\sum": "\\dotsb", "\\bigotimes": "\\dotsb", "\\bigoplus": "\\dotsb", "\\bigodot": "\\dotsb", "\\bigsqcup": "\\dotsb", "\\And": "\\dotsb", "\\longrightarrow": "\\dotsb", "\\Longrightarrow": "\\dotsb", "\\longleftarrow": "\\dotsb", "\\Longleftarrow": "\\dotsb", "\\longleftrightarrow": "\\dotsb", "\\Longleftrightarrow": "\\dotsb", "\\mapsto": "\\dotsb", "\\longmapsto": "\\dotsb", "\\hookrightarrow": "\\dotsb", "\\doteq": "\\dotsb", // Symbols whose definition starts with \mathbin: "\\mathbin": "\\dotsb", // Symbols whose definition starts with \mathrel: "\\mathrel": "\\dotsb", "\\relbar": "\\dotsb", "\\Relbar": "\\dotsb", "\\xrightarrow": "\\dotsb", "\\xleftarrow": "\\dotsb", // Symbols whose definition starts with \DOTSI: "\\DOTSI": "\\dotsi", "\\int": "\\dotsi", "\\oint": "\\dotsi", "\\iint": "\\dotsi", "\\iiint": "\\dotsi", "\\iiiint": "\\dotsi", "\\idotsint": "\\dotsi", // Symbols whose definition starts with \DOTSX: "\\DOTSX": "\\dotsx" }; v("\\dots", function(n) { var e = "\\dotso", t = n.expandAfterFuture().text; return t in Ac ? e = Ac[t] : (t.slice(0, 4) === "\\not" || t in Ne.math && re.contains(["bin", "rel"], Ne.math[t].group)) && (e = "\\dotsb"), e; }); var Gu = { // \rightdelim@ checks for the following: ")": !0, "]": !0, "\\rbrack": !0, "\\}": !0, "\\rbrace": !0, "\\rangle": !0, "\\rceil": !0, "\\rfloor": !0, "\\rgroup": !0, "\\rmoustache": !0, "\\right": !0, "\\bigr": !0, "\\biggr": !0, "\\Bigr": !0, "\\Biggr": !0, // \extra@ also tests for the following: $: !0, // \extrap@ checks for the following: ";": !0, ".": !0, ",": !0 }; v("\\dotso", function(n) { var e = n.future().text; return e in Gu ? "\\ldots\\," : "\\ldots"; }); v("\\dotsc", function(n) { var e = n.future().text; return e in Gu && e !== "," ? "\\ldots\\," : "\\ldots"; }); v("\\cdots", function(n) { var e = n.future().text; return e in Gu ? "\\@cdots\\," : "\\@cdots"; }); v("\\dotsb", "\\cdots"); v("\\dotsm", "\\cdots"); v("\\dotsi", "\\!\\cdots"); v("\\dotsx", "\\ldots\\,"); v("\\DOTSI", "\\relax"); v("\\DOTSB", "\\relax"); v("\\DOTSX", "\\relax"); v("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"); v("\\,", "\\tmspace+{3mu}{.1667em}"); v("\\thinspace", "\\,"); v("\\>", "\\mskip{4mu}"); v("\\:", "\\tmspace+{4mu}{.2222em}"); v("\\medspace", "\\:"); v("\\;", "\\tmspace+{5mu}{.2777em}"); v("\\thickspace", "\\;"); v("\\!", "\\tmspace-{3mu}{.1667em}"); v("\\negthinspace", "\\!"); v("\\negmedspace", "\\tmspace-{4mu}{.2222em}"); v("\\negthickspace", "\\tmspace-{5mu}{.277em}"); v("\\enspace", "\\kern.5em "); v("\\enskip", "\\hskip.5em\\relax"); v("\\quad", "\\hskip1em\\relax"); v("\\qquad", "\\hskip2em\\relax"); v("\\tag", "\\@ifstar\\tag@literal\\tag@paren"); v("\\tag@paren", "\\tag@literal{({#1})}"); v("\\tag@literal", (n) => { if (n.macros.get("\\df@tag")) throw new G("Multiple \\tag"); return "\\gdef\\df@tag{\\text{#1}}"; }); v("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"); v("\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"); v("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}"); v("\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"); v("\\newline", "\\\\\\relax"); v("\\TeX", "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}"); var p4 = X(rr["Main-Regular"][84][1] - 0.7 * rr["Main-Regular"][65][1]); v("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + p4 + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}"); v("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + p4 + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}"); v("\\hspace", "\\@ifstar\\@hspacer\\@hspace"); v("\\@hspace", "\\hskip #1\\relax"); v("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax"); v("\\ordinarycolon", ":"); v("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}"); v("\\dblcolon", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'); v("\\coloneqq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'); v("\\Coloneqq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'); v("\\coloneq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'); v("\\Coloneq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'); v("\\eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'); v("\\Eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'); v("\\eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'); v("\\Eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'); v("\\colonapprox", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'); v("\\Colonapprox", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'); v("\\colonsim", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'); v("\\Colonsim", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'); v("∷", "\\dblcolon"); v("∹", "\\eqcolon"); v("≔", "\\coloneqq"); v("≕", "\\eqqcolon"); v("⩴", "\\Coloneqq"); v("\\ratio", "\\vcentcolon"); v("\\coloncolon", "\\dblcolon"); v("\\colonequals", "\\coloneqq"); v("\\coloncolonequals", "\\Coloneqq"); v("\\equalscolon", "\\eqqcolon"); v("\\equalscoloncolon", "\\Eqqcolon"); v("\\colonminus", "\\coloneq"); v("\\coloncolonminus", "\\Coloneq"); v("\\minuscolon", "\\eqcolon"); v("\\minuscoloncolon", "\\Eqcolon"); v("\\coloncolonapprox", "\\Colonapprox"); v("\\coloncolonsim", "\\Colonsim"); v("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"); v("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"); v("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"); v("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"); v("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"); v("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}"); v("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}"); v("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}"); v("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}"); v("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}"); v("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}"); v("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}"); v("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}"); v("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{≩}"); v("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{≨}"); v("\\ngeqq", "\\html@mathml{\\@ngeqq}{≱}"); v("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{≱}"); v("\\nleqq", "\\html@mathml{\\@nleqq}{≰}"); v("\\nleqslant", "\\html@mathml{\\@nleqslant}{≰}"); v("\\nshortmid", "\\html@mathml{\\@nshortmid}{∤}"); v("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{∦}"); v("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{⊈}"); v("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{⊉}"); v("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{⊊}"); v("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{⫋}"); v("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{⊋}"); v("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{⫌}"); v("\\imath", "\\html@mathml{\\@imath}{ı}"); v("\\jmath", "\\html@mathml{\\@jmath}{ȷ}"); v("\\llbracket", "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"); v("\\rrbracket", "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"); v("⟦", "\\llbracket"); v("⟧", "\\rrbracket"); v("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"); v("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"); v("⦃", "\\lBrace"); v("⦄", "\\rBrace"); v("\\minuso", "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"); v("⦵", "\\minuso"); v("\\darr", "\\downarrow"); v("\\dArr", "\\Downarrow"); v("\\Darr", "\\Downarrow"); v("\\lang", "\\langle"); v("\\rang", "\\rangle"); v("\\uarr", "\\uparrow"); v("\\uArr", "\\Uparrow"); v("\\Uarr", "\\Uparrow"); v("\\N", "\\mathbb{N}"); v("\\R", "\\mathbb{R}"); v("\\Z", "\\mathbb{Z}"); v("\\alef", "\\aleph"); v("\\alefsym", "\\aleph"); v("\\Alpha", "\\mathrm{A}"); v("\\Beta", "\\mathrm{B}"); v("\\bull", "\\bullet"); v("\\Chi", "\\mathrm{X}"); v("\\clubs", "\\clubsuit"); v("\\cnums", "\\mathbb{C}"); v("\\Complex", "\\mathbb{C}"); v("\\Dagger", "\\ddagger"); v("\\diamonds", "\\diamondsuit"); v("\\empty", "\\emptyset"); v("\\Epsilon", "\\mathrm{E}"); v("\\Eta", "\\mathrm{H}"); v("\\exist", "\\exists"); v("\\harr", "\\leftrightarrow"); v("\\hArr", "\\Leftrightarrow"); v("\\Harr", "\\Leftrightarrow"); v("\\hearts", "\\heartsuit"); v("\\image", "\\Im"); v("\\infin", "\\infty"); v("\\Iota", "\\mathrm{I}"); v("\\isin", "\\in"); v("\\Kappa", "\\mathrm{K}"); v("\\larr", "\\leftarrow"); v("\\lArr", "\\Leftarrow"); v("\\Larr", "\\Leftarrow"); v("\\lrarr", "\\leftrightarrow"); v("\\lrArr", "\\Leftrightarrow"); v("\\Lrarr", "\\Leftrightarrow"); v("\\Mu", "\\mathrm{M}"); v("\\natnums", "\\mathbb{N}"); v("\\Nu", "\\mathrm{N}"); v("\\Omicron", "\\mathrm{O}"); v("\\plusmn", "\\pm"); v("\\rarr", "\\rightarrow"); v("\\rArr", "\\Rightarrow"); v("\\Rarr", "\\Rightarrow"); v("\\real", "\\Re"); v("\\reals", "\\mathbb{R}"); v("\\Reals", "\\mathbb{R}"); v("\\Rho", "\\mathrm{P}"); v("\\sdot", "\\cdot"); v("\\sect", "\\S"); v("\\spades", "\\spadesuit"); v("\\sub", "\\subset"); v("\\sube", "\\subseteq"); v("\\supe", "\\supseteq"); v("\\Tau", "\\mathrm{T}"); v("\\thetasym", "\\vartheta"); v("\\weierp", "\\wp"); v("\\Zeta", "\\mathrm{Z}"); v("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}"); v("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}"); v("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits"); v("\\bra", "\\mathinner{\\langle{#1}|}"); v("\\ket", "\\mathinner{|{#1}\\rangle}"); v("\\braket", "\\mathinner{\\langle{#1}\\rangle}"); v("\\Bra", "\\left\\langle#1\\right|"); v("\\Ket", "\\left|#1\\right\\rangle"); var g4 = (n) => (e) => { var t = e.consumeArg().tokens, r = e.consumeArg().tokens, a = e.consumeArg().tokens, i = e.consumeArg().tokens, l = e.macros.get("|"), s = e.macros.get("\\|"); e.macros.beginGroup(); var o = (d) => (h) => { n && (h.macros.set("|", l), a.length && h.macros.set("\\|", s)); var p = d; if (!d && a.length) { var _ = h.future(); _.text === "|" && (h.popToken(), p = !0); } return { tokens: p ? a : r, numArgs: 0 }; }; e.macros.set("|", o(!1)), a.length && e.macros.set("\\|", o(!0)); var u = e.consumeArg().tokens, c = e.expandTokens([ ...i, ...u, ...t // reversed ]); return e.macros.endGroup(), { tokens: c.reverse(), numArgs: 0 }; }; v("\\bra@ket", g4(!1)); v("\\bra@set", g4(!0)); v("\\Braket", "\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"); v("\\Set", "\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"); v("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"); v("\\angln", "{\\angl n}"); v("\\blue", "\\textcolor{##6495ed}{#1}"); v("\\orange", "\\textcolor{##ffa500}{#1}"); v("\\pink", "\\textcolor{##ff00af}{#1}"); v("\\red", "\\textcolor{##df0030}{#1}"); v("\\green", "\\textcolor{##28ae7b}{#1}"); v("\\gray", "\\textcolor{gray}{#1}"); v("\\purple", "\\textcolor{##9d38bd}{#1}"); v("\\blueA", "\\textcolor{##ccfaff}{#1}"); v("\\blueB", "\\textcolor{##80f6ff}{#1}"); v("\\blueC", "\\textcolor{##63d9ea}{#1}"); v("\\blueD", "\\textcolor{##11accd}{#1}"); v("\\blueE", "\\textcolor{##0c7f99}{#1}"); v("\\tealA", "\\textcolor{##94fff5}{#1}"); v("\\tealB", "\\textcolor{##26edd5}{#1}"); v("\\tealC", "\\textcolor{##01d1c1}{#1}"); v("\\tealD", "\\textcolor{##01a995}{#1}"); v("\\tealE", "\\textcolor{##208170}{#1}"); v("\\greenA", "\\textcolor{##b6ffb0}{#1}"); v("\\greenB", "\\textcolor{##8af281}{#1}"); v("\\greenC", "\\textcolor{##74cf70}{#1}"); v("\\greenD", "\\textcolor{##1fab54}{#1}"); v("\\greenE", "\\textcolor{##0d923f}{#1}"); v("\\goldA", "\\textcolor{##ffd0a9}{#1}"); v("\\goldB", "\\textcolor{##ffbb71}{#1}"); v("\\goldC", "\\textcolor{##ff9c39}{#1}"); v("\\goldD", "\\textcolor{##e07d10}{#1}"); v("\\goldE", "\\textcolor{##a75a05}{#1}"); v("\\redA", "\\textcolor{##fca9a9}{#1}"); v("\\redB", "\\textcolor{##ff8482}{#1}"); v("\\redC", "\\textcolor{##f9685d}{#1}"); v("\\redD", "\\textcolor{##e84d39}{#1}"); v("\\redE", "\\textcolor{##bc2612}{#1}"); v("\\maroonA", "\\textcolor{##ffbde0}{#1}"); v("\\maroonB", "\\textcolor{##ff92c6}{#1}"); v("\\maroonC", "\\textcolor{##ed5fa6}{#1}"); v("\\maroonD", "\\textcolor{##ca337c}{#1}"); v("\\maroonE", "\\textcolor{##9e034e}{#1}"); v("\\purpleA", "\\textcolor{##ddd7ff}{#1}"); v("\\purpleB", "\\textcolor{##c6b9fc}{#1}"); v("\\purpleC", "\\textcolor{##aa87ff}{#1}"); v("\\purpleD", "\\textcolor{##7854ab}{#1}"); v("\\purpleE", "\\textcolor{##543b78}{#1}"); v("\\mintA", "\\textcolor{##f5f9e8}{#1}"); v("\\mintB", "\\textcolor{##edf2df}{#1}"); v("\\mintC", "\\textcolor{##e0e5cc}{#1}"); v("\\grayA", "\\textcolor{##f6f7f7}{#1}"); v("\\grayB", "\\textcolor{##f0f1f2}{#1}"); v("\\grayC", "\\textcolor{##e3e5e6}{#1}"); v("\\grayD", "\\textcolor{##d6d8da}{#1}"); v("\\grayE", "\\textcolor{##babec2}{#1}"); v("\\grayF", "\\textcolor{##888d93}{#1}"); v("\\grayG", "\\textcolor{##626569}{#1}"); v("\\grayH", "\\textcolor{##3b3e40}{#1}"); v("\\grayI", "\\textcolor{##21242c}{#1}"); v("\\kaBlue", "\\textcolor{##314453}{#1}"); v("\\kaGreen", "\\textcolor{##71B307}{#1}"); var _4 = { "^": !0, // Parser.js _: !0, // Parser.js "\\limits": !0, // Parser.js "\\nolimits": !0 // Parser.js }; class b6 { constructor(e, t, r) { this.settings = void 0, this.expansionCount = void 0, this.lexer = void 0, this.macros = void 0, this.stack = void 0, this.mode = void 0, this.settings = t, this.expansionCount = 0, this.feed(e), this.macros = new _6(v6, t.macros), this.mode = r, this.stack = []; } /** * Feed a new input string to the same MacroExpander * (with existing macros etc.). */ feed(e) { this.lexer = new kc(e, this.settings); } /** * Switches between "text" and "math" modes. */ switchMode(e) { this.mode = e; } /** * Start a new group nesting within all namespaces. */ beginGroup() { this.macros.beginGroup(); } /** * End current group nesting within all namespaces. */ endGroup() { this.macros.endGroup(); } /** * Ends all currently nested groups (if any), restoring values before the * groups began. Useful in case of an error in the middle of parsing. */ endGroups() { this.macros.endGroups(); } /** * Returns the topmost token on the stack, without expanding it. * Similar in behavior to TeX's `\futurelet`. */ future() { return this.stack.length === 0 && this.pushToken(this.lexer.lex()), this.stack[this.stack.length - 1]; } /** * Remove and return the next unexpanded token. */ popToken() { return this.future(), this.stack.pop(); } /** * Add a given token to the token stack. In particular, this get be used * to put back a token returned from one of the other methods. */ pushToken(e) { this.stack.push(e); } /** * Append an array of tokens to the token stack. */ pushTokens(e) { this.stack.push(...e); } /** * Find an macro argument without expanding tokens and append the array of * tokens to the token stack. Uses Token as a container for the result. */ scanArgument(e) { var t, r, a; if (e) { if (this.consumeSpaces(), this.future().text !== "[") return null; t = this.popToken(), { tokens: a, end: r } = this.consumeArg(["]"]); } else ({ tokens: a, start: t, end: r } = this.consumeArg()); return this.pushToken(new S0("EOF", r.loc)), this.pushTokens(a), t.range(r, ""); } /** * Consume all following space tokens, without expansion. */ consumeSpaces() { for (; ; ) { var e = this.future(); if (e.text === " ") this.stack.pop(); else break; } } /** * Consume an argument from the token stream, and return the resulting array * of tokens and start/end token. */ consumeArg(e) { var t = [], r = e && e.length > 0; r || this.consumeSpaces(); var a = this.future(), i, l = 0, s = 0; do { if (i = this.popToken(), t.push(i), i.text === "{") ++l; else if (i.text === "}") { if (--l, l === -1) throw new G("Extra }", i); } else if (i.text === "EOF") throw new G("Unexpected end of input in a macro argument, expected '" + (e && r ? e[s] : "}") + "'", i); if (e && r) if ((l === 0 || l === 1 && e[s] === "{") && i.text === e[s]) { if (++s, s === e.length) { t.splice(-s, s); break; } } else s = 0; } while (l !== 0 || r); return a.text === "{" && t[t.length - 1].text === "}" && (t.pop(), t.shift()), t.reverse(), { tokens: t, start: a, end: i }; } /** * Consume the specified number of (delimited) arguments from the token * stream and return the resulting array of arguments. */ consumeArgs(e, t) { if (t) { if (t.length !== e + 1) throw new G("The length of delimiters doesn't match the number of args!"); for (var r = t[0], a = 0; a < r.length; a++) { var i = this.popToken(); if (r[a] !== i.text) throw new G("Use of the macro doesn't match its definition", i); } } for (var l = [], s = 0; s < e; s++) l.push(this.consumeArg(t && t[s + 1]).tokens); return l; } /** * Increment `expansionCount` by the specified amount. * Throw an error if it exceeds `maxExpand`. */ countExpansion(e) { if (this.expansionCount += e, this.expansionCount > this.settings.maxExpand) throw new G("Too many expansions: infinite loop or need to increase maxExpand setting"); } /** * Expand the next token only once if possible. * * If the token is expanded, the resulting tokens will be pushed onto * the stack in reverse order, and the number of such tokens will be * returned. This number might be zero or positive. * * If not, the return value is `false`, and the next token remains at the * top of the stack. * * In either case, the next token will be on the top of the stack, * or the stack will be empty (in case of empty expansion * and no other tokens). * * Used to implement `expandAfterFuture` and `expandNextToken`. * * If expandableOnly, only expandable tokens are expanded and * an undefined control sequence results in an error. */ expandOnce(e) { var t = this.popToken(), r = t.text, a = t.noexpand ? null : this._getExpansion(r); if (a == null || e && a.unexpandable) { if (e && a == null && r[0] === "\\" && !this.isDefined(r)) throw new G("Undefined control sequence: " + r); return this.pushToken(t), !1; } this.countExpansion(1); var i = a.tokens, l = this.consumeArgs(a.numArgs, a.delimiters); if (a.numArgs) { i = i.slice(); for (var s = i.length - 1; s >= 0; --s) { var o = i[s]; if (o.text === "#") { if (s === 0) throw new G("Incomplete placeholder at end of macro body", o); if (o = i[--s], o.text === "#") i.splice(s + 1, 1); else if (/^[1-9]$/.test(o.text)) i.splice(s, 2, ...l[+o.text - 1]); else throw new G("Not a valid argument number", o); } } } return this.pushTokens(i), i.length; } /** * Expand the next token only once (if possible), and return the resulting * top token on the stack (without removing anything from the stack). * Similar in behavior to TeX's `\expandafter\futurelet`. * Equivalent to expandOnce() followed by future(). */ expandAfterFuture() { return this.expandOnce(), this.future(); } /** * Recursively expand first token, then return first non-expandable token. */ expandNextToken() { for (; ; ) if (this.expandOnce() === !1) { var e = this.stack.pop(); return e.treatAsRelax && (e.text = "\\relax"), e; } throw new Error(); } /** * Fully expand the given macro name and return the resulting list of * tokens, or return `undefined` if no such macro is defined. */ expandMacro(e) { return this.macros.has(e) ? this.expandTokens([new S0(e)]) : void 0; } /** * Fully expand the given token stream and return the resulting list of * tokens. Note that the input tokens are in reverse order, but the * output tokens are in forward order. */ expandTokens(e) { var t = [], r = this.stack.length; for (this.pushTokens(e); this.stack.length > r; ) if (this.expandOnce(!0) === !1) { var a = this.stack.pop(); a.treatAsRelax && (a.noexpand = !1, a.treatAsRelax = !1), t.push(a); } return this.countExpansion(t.length), t; } /** * Fully expand the given macro name and return the result as a string, * or return `undefined` if no such macro is defined. */ expandMacroAsText(e) { var t = this.expandMacro(e); return t && t.map((r) => r.text).join(""); } /** * Returns the expanded macro as a reversed array of tokens and a macro * argument count. Or returns `null` if no such macro. */ _getExpansion(e) { var t = this.macros.get(e); if (t == null) return t; if (e.length === 1) { var r = this.lexer.catcodes[e]; if (r != null && r !== 13) return; } var a = typeof t == "function" ? t(this) : t; if (typeof a == "string") { var i = 0; if (a.indexOf("#") !== -1) for (var l = a.replace(/##/g, ""); l.indexOf("#" + (i + 1)) !== -1; ) ++i; for (var s = new kc(a, this.settings), o = [], u = s.lex(); u.text !== "EOF"; ) o.push(u), u = s.lex(); o.reverse(); var c = { tokens: o, numArgs: i }; return c; } return a; } /** * Determine whether a command is currently "defined" (has some * functionality), meaning that it's a macro (in the current group), * a function, a symbol, or one of the special commands listed in * `implicitCommands`. */ isDefined(e) { return this.macros.has(e) || an.hasOwnProperty(e) || Ne.math.hasOwnProperty(e) || Ne.text.hasOwnProperty(e) || _4.hasOwnProperty(e); } /** * Determine whether a command is expandable. */ isExpandable(e) { var t = this.macros.get(e); return t != null ? typeof t == "string" || typeof t == "function" || !t.unexpandable : an.hasOwnProperty(e) && !an[e].primitive; } } var Ec = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/, Gi = Object.freeze({ "₊": "+", "₋": "-", "₌": "=", "₍": "(", "₎": ")", "₀": "0", "₁": "1", "₂": "2", "₃": "3", "₄": "4", "₅": "5", "₆": "6", "₇": "7", "₈": "8", "₉": "9", "ₐ": "a", "ₑ": "e", "ₕ": "h", "ᵢ": "i", "ⱼ": "j", "ₖ": "k", "ₗ": "l", "ₘ": "m", "ₙ": "n", "ₒ": "o", "ₚ": "p", "ᵣ": "r", "ₛ": "s", "ₜ": "t", "ᵤ": "u", "ᵥ": "v", "ₓ": "x", "ᵦ": "β", "ᵧ": "γ", "ᵨ": "ρ", "ᵩ": "ϕ", "ᵪ": "χ", "⁺": "+", "⁻": "-", "⁼": "=", "⁽": "(", "⁾": ")", "⁰": "0", "¹": "1", "²": "2", "³": "3", "⁴": "4", "⁵": "5", "⁶": "6", "⁷": "7", "⁸": "8", "⁹": "9", "ᴬ": "A", "ᴮ": "B", "ᴰ": "D", "ᴱ": "E", "ᴳ": "G", "ᴴ": "H", "ᴵ": "I", "ᴶ": "J", "ᴷ": "K", "ᴸ": "L", "ᴹ": "M", "ᴺ": "N", "ᴼ": "O", "ᴾ": "P", "ᴿ": "R", "ᵀ": "T", "ᵁ": "U", "ⱽ": "V", "ᵂ": "W", "ᵃ": "a", "ᵇ": "b", "ᶜ": "c", "ᵈ": "d", "ᵉ": "e", "ᶠ": "f", "ᵍ": "g", ʰ: "h", "ⁱ": "i", ʲ: "j", "ᵏ": "k", ˡ: "l", "ᵐ": "m", ⁿ: "n", "ᵒ": "o", "ᵖ": "p", ʳ: "r", ˢ: "s", "ᵗ": "t", "ᵘ": "u", "ᵛ": "v", ʷ: "w", ˣ: "x", ʸ: "y", "ᶻ": "z", "ᵝ": "β", "ᵞ": "γ", "ᵟ": "δ", "ᵠ": "ϕ", "ᵡ": "χ", "ᶿ": "θ" }), so = { "́": { text: "\\'", math: "\\acute" }, "̀": { text: "\\`", math: "\\grave" }, "̈": { text: '\\"', math: "\\ddot" }, "̃": { text: "\\~", math: "\\tilde" }, "̄": { text: "\\=", math: "\\bar" }, "̆": { text: "\\u", math: "\\breve" }, "̌": { text: "\\v", math: "\\check" }, "̂": { text: "\\^", math: "\\hat" }, "̇": { text: "\\.", math: "\\dot" }, "̊": { text: "\\r", math: "\\mathring" }, "̋": { text: "\\H" }, "̧": { text: "\\c" } }, Sc = { á: "á", à: "à", ä: "ä", ǟ: "ǟ", ã: "ã", ā: "ā", ă: "ă", ắ: "ắ", ằ: "ằ", ẵ: "ẵ", ǎ: "ǎ", â: "â", ấ: "ấ", ầ: "ầ", ẫ: "ẫ", ȧ: "ȧ", ǡ: "ǡ", å: "å", ǻ: "ǻ", ḃ: "ḃ", ć: "ć", ḉ: "ḉ", č: "č", ĉ: "ĉ", ċ: "ċ", ç: "ç", ď: "ď", ḋ: "ḋ", ḑ: "ḑ", é: "é", è: "è", ë: "ë", ẽ: "ẽ", ē: "ē", ḗ: "ḗ", ḕ: "ḕ", ĕ: "ĕ", ḝ: "ḝ", ě: "ě", ê: "ê", ế: "ế", ề: "ề", ễ: "ễ", ė: "ė", ȩ: "ȩ", ḟ: "ḟ", ǵ: "ǵ", ḡ: "ḡ", ğ: "ğ", ǧ: "ǧ", ĝ: "ĝ", ġ: "ġ", ģ: "ģ", ḧ: "ḧ", ȟ: "ȟ", ĥ: "ĥ", ḣ: "ḣ", ḩ: "ḩ", í: "í", ì: "ì", ï: "ï", ḯ: "ḯ", ĩ: "ĩ", ī: "ī", ĭ: "ĭ", ǐ: "ǐ", î: "î", ǰ: "ǰ", ĵ: "ĵ", ḱ: "ḱ", ǩ: "ǩ", ķ: "ķ", ĺ: "ĺ", ľ: "ľ", ļ: "ļ", ḿ: "ḿ", ṁ: "ṁ", ń: "ń", ǹ: "ǹ", ñ: "ñ", ň: "ň", ṅ: "ṅ", ņ: "ņ", ó: "ó", ò: "ò", ö: "ö", ȫ: "ȫ", õ: "õ", ṍ: "ṍ", ṏ: "ṏ", ȭ: "ȭ", ō: "ō", ṓ: "ṓ", ṑ: "ṑ", ŏ: "ŏ", ǒ: "ǒ", ô: "ô", ố: "ố", ồ: "ồ", ỗ: "ỗ", ȯ: "ȯ", ȱ: "ȱ", ő: "ő", ṕ: "ṕ", ṗ: "ṗ", ŕ: "ŕ", ř: "ř", ṙ: "ṙ", ŗ: "ŗ", ś: "ś", ṥ: "ṥ", š: "š", ṧ: "ṧ", ŝ: "ŝ", ṡ: "ṡ", ş: "ş", ẗ: "ẗ", ť: "ť", ṫ: "ṫ", ţ: "ţ", ú: "ú", ù: "ù", ü: "ü", ǘ: "ǘ", ǜ: "ǜ", ǖ: "ǖ", ǚ: "ǚ", ũ: "ũ", ṹ: "ṹ", ū: "ū", ṻ: "ṻ", ŭ: "ŭ", ǔ: "ǔ", û: "û", ů: "ů", ű: "ű", ṽ: "ṽ", ẃ: "ẃ", ẁ: "ẁ", ẅ: "ẅ", ŵ: "ŵ", ẇ: "ẇ", ẘ: "ẘ", ẍ: "ẍ", ẋ: "ẋ", ý: "ý", ỳ: "ỳ", ÿ: "ÿ", ỹ: "ỹ", ȳ: "ȳ", ŷ: "ŷ", ẏ: "ẏ", ẙ: "ẙ", ź: "ź", ž: "ž", ẑ: "ẑ", ż: "ż", Á: "Á", À: "À", Ä: "Ä", Ǟ: "Ǟ", Ã: "Ã", Ā: "Ā", Ă: "Ă", Ắ: "Ắ", Ằ: "Ằ", Ẵ: "Ẵ", Ǎ: "Ǎ", Â: "Â", Ấ: "Ấ", Ầ: "Ầ", Ẫ: "Ẫ", Ȧ: "Ȧ", Ǡ: "Ǡ", Å: "Å", Ǻ: "Ǻ", Ḃ: "Ḃ", Ć: "Ć", Ḉ: "Ḉ", Č: "Č", Ĉ: "Ĉ", Ċ: "Ċ", Ç: "Ç", Ď: "Ď", Ḋ: "Ḋ", Ḑ: "Ḑ", É: "É", È: "È", Ë: "Ë", Ẽ: "Ẽ", Ē: "Ē", Ḗ: "Ḗ", Ḕ: "Ḕ", Ĕ: "Ĕ", Ḝ: "Ḝ", Ě: "Ě", Ê: "Ê", Ế: "Ế", Ề: "Ề", Ễ: "Ễ", Ė: "Ė", Ȩ: "Ȩ", Ḟ: "Ḟ", Ǵ: "Ǵ", Ḡ: "Ḡ", Ğ: "Ğ", Ǧ: "Ǧ", Ĝ: "Ĝ", Ġ: "Ġ", Ģ: "Ģ", Ḧ: "Ḧ", Ȟ: "Ȟ", Ĥ: "Ĥ", Ḣ: "Ḣ", Ḩ: "Ḩ", Í: "Í", Ì: "Ì", Ï: "Ï", Ḯ: "Ḯ", Ĩ: "Ĩ", Ī: "Ī", Ĭ: "Ĭ", Ǐ: "Ǐ", Î: "Î", İ: "İ", Ĵ: "Ĵ", Ḱ: "Ḱ", Ǩ: "Ǩ", Ķ: "Ķ", Ĺ: "Ĺ", Ľ: "Ľ", Ļ: "Ļ", Ḿ: "Ḿ", Ṁ: "Ṁ", Ń: "Ń", Ǹ: "Ǹ", Ñ: "Ñ", Ň: "Ň", Ṅ: "Ṅ", Ņ: "Ņ", Ó: "Ó", Ò: "Ò", Ö: "Ö", Ȫ: "Ȫ", Õ: "Õ", Ṍ: "Ṍ", Ṏ: "Ṏ", Ȭ: "Ȭ", Ō: "Ō", Ṓ: "Ṓ", Ṑ: "Ṑ", Ŏ: "Ŏ", Ǒ: "Ǒ", Ô: "Ô", Ố: "Ố", Ồ: "Ồ", Ỗ: "Ỗ", Ȯ: "Ȯ", Ȱ: "Ȱ", Ő: "Ő", Ṕ: "Ṕ", Ṗ: "Ṗ", Ŕ: "Ŕ", Ř: "Ř", Ṙ: "Ṙ", Ŗ: "Ŗ", Ś: "Ś", Ṥ: "Ṥ", Š: "Š", Ṧ: "Ṧ", Ŝ: "Ŝ", Ṡ: "Ṡ", Ş: "Ş", Ť: "Ť", Ṫ: "Ṫ", Ţ: "Ţ", Ú: "Ú", Ù: "Ù", Ü: "Ü", Ǘ: "Ǘ", Ǜ: "Ǜ", Ǖ: "Ǖ", Ǚ: "Ǚ", Ũ: "Ũ", Ṹ: "Ṹ", Ū: "Ū", Ṻ: "Ṻ", Ŭ: "Ŭ", Ǔ: "Ǔ", Û: "Û", Ů: "Ů", Ű: "Ű", Ṽ: "Ṽ", Ẃ: "Ẃ", Ẁ: "Ẁ", Ẅ: "Ẅ", Ŵ: "Ŵ", Ẇ: "Ẇ", Ẍ: "Ẍ", Ẋ: "Ẋ", Ý: "Ý", Ỳ: "Ỳ", Ÿ: "Ÿ", Ỹ: "Ỹ", Ȳ: "Ȳ", Ŷ: "Ŷ", Ẏ: "Ẏ", Ź: "Ź", Ž: "Ž", Ẑ: "Ẑ", Ż: "Ż", ά: "ά", ὰ: "ὰ", ᾱ: "ᾱ", ᾰ: "ᾰ", έ: "έ", ὲ: "ὲ", ή: "ή", ὴ: "ὴ", ί: "ί", ὶ: "ὶ", ϊ: "ϊ", ΐ: "ΐ", ῒ: "ῒ", ῑ: "ῑ", ῐ: "ῐ", ό: "ό", ὸ: "ὸ", ύ: "ύ", ὺ: "ὺ", ϋ: "ϋ", ΰ: "ΰ", ῢ: "ῢ", ῡ: "ῡ", ῠ: "ῠ", ώ: "ώ", ὼ: "ὼ", Ύ: "Ύ", Ὺ: "Ὺ", Ϋ: "Ϋ", Ῡ: "Ῡ", Ῠ: "Ῠ", Ώ: "Ώ", Ὼ: "Ὼ" }; class ts { constructor(e, t) { this.mode = void 0, this.gullet = void 0, this.settings = void 0, this.leftrightDepth = void 0, this.nextToken = void 0, this.mode = "math", this.gullet = new b6(e, t, this.mode), this.settings = t, this.leftrightDepth = 0; } /** * Checks a result to make sure it has the right type, and throws an * appropriate error otherwise. */ expect(e, t) { if (t === void 0 && (t = !0), this.fetch().text !== e) throw new G("Expected '" + e + "', got '" + this.fetch().text + "'", this.fetch()); t && this.consume(); } /** * Discards the current lookahead token, considering it consumed. */ consume() { this.nextToken = null; } /** * Return the current lookahead token, or if there isn't one (at the * beginning, or if the previous lookahead token was consume()d), * fetch the next token as the new lookahead token and return it. */ fetch() { return this.nextToken == null && (this.nextToken = this.gullet.expandNextToken()), this.nextToken; } /** * Switches between "text" and "math" modes. */ switchMode(e) { this.mode = e, this.gullet.switchMode(e); } /** * Main parsing function, which parses an entire input. */ parse() { this.settings.globalGroup || this.gullet.beginGroup(), this.settings.colorIsTextColor && this.gullet.macros.set("\\color", "\\textcolor"); try { var e = this.parseExpression(!1); return this.expect("EOF"), this.settings.globalGroup || this.gullet.endGroup(), e; } finally { this.gullet.endGroups(); } } /** * Fully parse a separate sequence of tokens as a separate job. * Tokens should be specified in reverse order, as in a MacroDefinition. */ subparse(e) { var t = this.nextToken; this.consume(), this.gullet.pushToken(new S0("}")), this.gullet.pushTokens(e); var r = this.parseExpression(!1); return this.expect("}"), this.nextToken = t, r; } /** * Parses an "expression", which is a list of atoms. * * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This * happens when functions have higher precedence han infix * nodes in implicit parses. * * `breakOnTokenText`: The text of the token that the expression should end * with, or `null` if something else should end the * expression. */ parseExpression(e, t) { for (var r = []; ; ) { this.mode === "math" && this.consumeSpaces(); var a = this.fetch(); if (ts.endOfExpression.indexOf(a.text) !== -1 || t && a.text === t || e && an[a.text] && an[a.text].infix) break; var i = this.parseAtom(t); if (i) { if (i.type === "internal") continue; } else break; r.push(i); } return this.mode === "text" && this.formLigatures(r), this.handleInfixNodes(r); } /** * Rewrites infix operators such as \over with corresponding commands such * as \frac. * * There can only be one infix operator per group. If there's more than one * then the expression is ambiguous. This can be resolved by adding {}. */ handleInfixNodes(e) { for (var t = -1, r, a = 0; a < e.length; a++) if (e[a].type === "infix") { if (t !== -1) throw new G("only one infix operator per group", e[a].token); t = a, r = e[a].replaceWith; } if (t !== -1 && r) { var i, l, s = e.slice(0, t), o = e.slice(t + 1); s.length === 1 && s[0].type === "ordgroup" ? i = s[0] : i = { type: "ordgroup", mode: this.mode, body: s }, o.length === 1 && o[0].type === "ordgroup" ? l = o[0] : l = { type: "ordgroup", mode: this.mode, body: o }; var u; return r === "\\\\abovefrac" ? u = this.callFunction(r, [i, e[t], l], []) : u = this.callFunction(r, [i, l], []), [u]; } else return e; } /** * Handle a subscript or superscript with nice errors. */ handleSupSubscript(e) { var t = this.fetch(), r = t.text; this.consume(), this.consumeSpaces(); var a = this.parseGroup(e); if (!a) throw new G("Expected group after '" + r + "'", t); return a; } /** * Converts the textual input of an unsupported command into a text node * contained within a color node whose color is determined by errorColor */ formatUnsupportedCmd(e) { for (var t = [], r = 0; r < e.length; r++) t.push({ type: "textord", mode: "text", text: e[r] }); var a = { type: "text", mode: this.mode, body: t }, i = { type: "color", mode: this.mode, color: this.settings.errorColor, body: [a] }; return i; } /** * Parses a group with optional super/subscripts. */ parseAtom(e) { var t = this.parseGroup("atom", e); if (this.mode === "text") return t; for (var r, a; ; ) { this.consumeSpaces(); var i = this.fetch(); if (i.text === "\\limits" || i.text === "\\nolimits") { if (t && t.type === "op") { var l = i.text === "\\limits"; t.limits = l, t.alwaysHandleSupSub = !0; } else if (t && t.type === "operatorname") t.alwaysHandleSupSub && (t.limits = i.text === "\\limits"); else throw new G("Limit controls must follow a math operator", i); this.consume(); } else if (i.text === "^") { if (r) throw new G("Double superscript", i); r = this.handleSupSubscript("superscript"); } else if (i.text === "_") { if (a) throw new G("Double subscript", i); a = this.handleSupSubscript("subscript"); } else if (i.text === "'") { if (r) throw new G("Double superscript", i); var s = { type: "textord", mode: this.mode, text: "\\prime" }, o = [s]; for (this.consume(); this.fetch().text === "'"; ) o.push(s), this.consume(); this.fetch().text === "^" && o.push(this.handleSupSubscript("superscript")), r = { type: "ordgroup", mode: this.mode, body: o }; } else if (Gi[i.text]) { var u = Ec.test(i.text), c = []; for (c.push(new S0(Gi[i.text])), this.consume(); ; ) { var d = this.fetch().text; if (!Gi[d] || Ec.test(d) !== u) break; c.unshift(new S0(Gi[d])), this.consume(); } var h = this.subparse(c); u ? a = { type: "ordgroup", mode: "math", body: h } : r = { type: "ordgroup", mode: "math", body: h }; } else break; } return r || a ? { type: "supsub", mode: this.mode, base: t, sup: r, sub: a } : t; } /** * Parses an entire function, including its base and all of its arguments. */ parseFunction(e, t) { var r = this.fetch(), a = r.text, i = an[a]; if (!i) return null; if (this.consume(), t && t !== "atom" && !i.allowedInArgument) throw new G("Got function '" + a + "' with no arguments" + (t ? " as " + t : ""), r); if (this.mode === "text" && !i.allowedInText) throw new G("Can't use function '" + a + "' in text mode", r); if (this.mode === "math" && i.allowedInMath === !1) throw new G("Can't use function '" + a + "' in math mode", r); var { args: l, optArgs: s } = this.parseArguments(a, i); return this.callFunction(a, l, s, r, e); } /** * Call a function handler with a suitable context and arguments. */ callFunction(e, t, r, a, i) { var l = { funcName: e, parser: this, token: a, breakOnTokenText: i }, s = an[e]; if (s && s.handler) return s.handler(l, t, r); throw new G("No function handler for " + e); } /** * Parses the arguments of a function or environment */ parseArguments(e, t) { var r = t.numArgs + t.numOptionalArgs; if (r === 0) return { args: [], optArgs: [] }; for (var a = [], i = [], l = 0; l < r; l++) { var s = t.argTypes && t.argTypes[l], o = l < t.numOptionalArgs; (t.primitive && s == null || // \sqrt expands into primitive if optional argument doesn't exist t.type === "sqrt" && l === 1 && i[0] == null) && (s = "primitive"); var u = this.parseGroupOfType("argument to '" + e + "'", s, o); if (o) i.push(u); else if (u != null) a.push(u); else throw new G("Null argument, please report this as a bug"); } return { args: a, optArgs: i }; } /** * Parses a group when the mode is changing. */ parseGroupOfType(e, t, r) { switch (t) { case "color": return this.parseColorGroup(r); case "size": return this.parseSizeGroup(r); case "url": return this.parseUrlGroup(r); case "math": case "text": return this.parseArgumentGroup(r, t); case "hbox": { var a = this.parseArgumentGroup(r, "text"); return a != null ? { type: "styling", mode: a.mode, body: [a], style: "text" // simulate \textstyle } : null; } case "raw": { var i = this.parseStringGroup("raw", r); return i != null ? { type: "raw", mode: "text", string: i.text } : null; } case "primitive": { if (r) throw new G("A primitive argument cannot be optional"); var l = this.parseGroup(e); if (l == null) throw new G("Expected group as " + e, this.fetch()); return l; } case "original": case null: case void 0: return this.parseArgumentGroup(r); default: throw new G("Unknown group type as " + e, this.fetch()); } } /** * Discard any space tokens, fetching the next non-space token. */ consumeSpaces() { for (; this.fetch().text === " "; ) this.consume(); } /** * Parses a group, essentially returning the string formed by the * brace-enclosed tokens plus some position information. */ parseStringGroup(e, t) { var r = this.gullet.scanArgument(t); if (r == null) return null; for (var a = "", i; (i = this.fetch()).text !== "EOF"; ) a += i.text, this.consume(); return this.consume(), r.text = a, r; } /** * Parses a regex-delimited group: the largest sequence of tokens * whose concatenated strings match `regex`. Returns the string * formed by the tokens plus some position information. */ parseRegexGroup(e, t) { for (var r = this.fetch(), a = r, i = "", l; (l = this.fetch()).text !== "EOF" && e.test(i + l.text); ) a = l, i += a.text, this.consume(); if (i === "") throw new G("Invalid " + t + ": '" + r.text + "'", r); return r.range(a, i); } /** * Parses a color description. */ parseColorGroup(e) { var t = this.parseStringGroup("color", e); if (t == null) return null; var r = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(t.text); if (!r) throw new G("Invalid color: '" + t.text + "'", t); var a = r[0]; return /^[0-9a-f]{6}$/i.test(a) && (a = "#" + a), { type: "color-token", mode: this.mode, color: a }; } /** * Parses a size specification, consisting of magnitude and unit. */ parseSizeGroup(e) { var t, r = !1; if (this.gullet.consumeSpaces(), !e && this.gullet.future().text !== "{" ? t = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size") : t = this.parseStringGroup("size", e), !t) return null; !e && t.text.length === 0 && (t.text = "0pt", r = !0); var a = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text); if (!a) throw new G("Invalid size: '" + t.text + "'", t); var i = { number: +(a[1] + a[2]), // sign + magnitude, cast to number unit: a[3] }; if (!xd(i)) throw new G("Invalid unit: '" + i.unit + "'", t); return { type: "size", mode: this.mode, value: i, isBlank: r }; } /** * Parses an URL, checking escaped letters and allowed protocols, * and setting the catcode of % as an active character (as in \hyperref). */ parseUrlGroup(e) { this.gullet.lexer.setCatcode("%", 13), this.gullet.lexer.setCatcode("~", 12); var t = this.parseStringGroup("url", e); if (this.gullet.lexer.setCatcode("%", 14), this.gullet.lexer.setCatcode("~", 13), t == null) return null; var r = t.text.replace(/\\([#$%&~_^{}])/g, "$1"); return { type: "url", mode: this.mode, url: r }; } /** * Parses an argument with the mode specified. */ parseArgumentGroup(e, t) { var r = this.gullet.scanArgument(e); if (r == null) return null; var a = this.mode; t && this.switchMode(t), this.gullet.beginGroup(); var i = this.parseExpression(!1, "EOF"); this.expect("EOF"), this.gullet.endGroup(); var l = { type: "ordgroup", mode: this.mode, loc: r.loc, body: i }; return t && this.switchMode(a), l; } /** * Parses an ordinary group, which is either a single nucleus (like "x") * or an expression in braces (like "{x+y}") or an implicit group, a group * that starts at the current position, and ends right before a higher explicit * group ends, or at EOF. */ parseGroup(e, t) { var r = this.fetch(), a = r.text, i; if (a === "{" || a === "\\begingroup") { this.consume(); var l = a === "{" ? "}" : "\\endgroup"; this.gullet.beginGroup(); var s = this.parseExpression(!1, l), o = this.fetch(); this.expect(l), this.gullet.endGroup(), i = { type: "ordgroup", mode: this.mode, loc: u0.range(r, o), body: s, // A group formed by \begingroup...\endgroup is a semi-simple group // which doesn't affect spacing in math mode, i.e., is transparent. // https://tex.stackexchange.com/questions/1930/when-should-one- // use-begingroup-instead-of-bgroup semisimple: a === "\\begingroup" || void 0 }; } else if (i = this.parseFunction(t, e) || this.parseSymbol(), i == null && a[0] === "\\" && !_4.hasOwnProperty(a)) { if (this.settings.throwOnError) throw new G("Undefined control sequence: " + a, r); i = this.formatUnsupportedCmd(a), this.consume(); } return i; } /** * Form ligature-like combinations of characters for text mode. * This includes inputs like "--", "---", "``" and "''". * The result will simply replace multiple textord nodes with a single * character in each value by a single textord node having multiple * characters in its value. The representation is still ASCII source. * The group will be modified in place. */ formLigatures(e) { for (var t = e.length - 1, r = 0; r < t; ++r) { var a = e[r], i = a.text; i === "-" && e[r + 1].text === "-" && (r + 1 < t && e[r + 2].text === "-" ? (e.splice(r, 3, { type: "textord", mode: "text", loc: u0.range(a, e[r + 2]), text: "---" }), t -= 2) : (e.splice(r, 2, { type: "textord", mode: "text", loc: u0.range(a, e[r + 1]), text: "--" }), t -= 1)), (i === "'" || i === "`") && e[r + 1].text === i && (e.splice(r, 2, { type: "textord", mode: "text", loc: u0.range(a, e[r + 1]), text: i + i }), t -= 1); } } /** * Parse a single symbol out of the string. Here, we handle single character * symbols and special functions like \verb. */ parseSymbol() { var e = this.fetch(), t = e.text; if (/^\\verb[^a-zA-Z]/.test(t)) { this.consume(); var r = t.slice(5), a = r.charAt(0) === "*"; if (a && (r = r.slice(1)), r.length < 2 || r.charAt(0) !== r.slice(-1)) throw new G(`\\verb assertion failed -- please report what input caused this bug`); return r = r.slice(1, -1), { type: "verb", mode: "text", body: r, star: a }; } Sc.hasOwnProperty(t[0]) && !Ne[this.mode][t[0]] && (this.settings.strict && this.mode === "math" && this.settings.reportNonstrict("unicodeTextInMathMode", 'Accented Unicode text character "' + t[0] + '" used in math mode', e), t = Sc[t[0]] + t.slice(1)); var i = p6.exec(t); i && (t = t.substring(0, i.index), t === "i" ? t = "ı" : t === "j" && (t = "ȷ")); var l; if (Ne[this.mode][t]) { this.settings.strict && this.mode === "math" && Ko.indexOf(t) >= 0 && this.settings.reportNonstrict("unicodeTextInMathMode", 'Latin-1/Unicode text character "' + t[0] + '" used in math mode', e); var s = Ne[this.mode][t].group, o = u0.range(e), u; if (s3.hasOwnProperty(s)) { var c = s; u = { type: "atom", mode: this.mode, family: c, loc: o, text: t }; } else u = { type: s, mode: this.mode, loc: o, text: t }; l = u; } else if (t.charCodeAt(0) >= 128) this.settings.strict && (Sd(t.charCodeAt(0)) ? this.mode === "math" && this.settings.reportNonstrict("unicodeTextInMathMode", 'Unicode text character "' + t[0] + '" used in math mode', e) : this.settings.reportNonstrict("unknownSymbol", 'Unrecognized Unicode character "' + t[0] + '"' + (" (" + t.charCodeAt(0) + ")"), e)), l = { type: "textord", mode: "text", loc: u0.range(e), text: t }; else return null; if (this.consume(), i) for (var d = 0; d < i[0].length; d++) { var h = i[0][d]; if (!so[h]) throw new G("Unknown accent ' " + h + "'", e); var p = so[h][this.mode] || so[h].text; if (!p) throw new G("Accent " + h + " unsupported in " + this.mode + " mode", e); l = { type: "accent", mode: this.mode, loc: u0.range(e), label: p, isStretchy: !1, isShifty: !0, // $FlowFixMe base: l }; } return l; } } ts.endOfExpression = ["}", "\\endgroup", "\\end", "\\right", "&"]; var ju = function(e, t) { if (!(typeof e == "string" || e instanceof String)) throw new TypeError("KaTeX can only parse string typed expression"); var r = new ts(e, t); delete r.gullet.macros.current["\\df@tag"]; var a = r.parse(); if (delete r.gullet.macros.current["\\current@color"], delete r.gullet.macros.current["\\color"], r.gullet.macros.get("\\df@tag")) { if (!t.displayMode) throw new G("\\tag works only in display equations"); a = [{ type: "tag", mode: "text", body: a, tag: r.subparse([new S0("\\df@tag")]) }]; } return a; }, v4 = function(e, t, r) { t.textContent = ""; var a = Wu(e, r).toNode(); t.appendChild(a); }; typeof document < "u" && document.compatMode !== "CSS1Compat" && (typeof console < "u" && console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype."), v4 = function() { throw new G("KaTeX doesn't work in quirks mode."); }); var w6 = function(e, t) { var r = Wu(e, t).toMarkup(); return r; }, y6 = function(e, t) { var r = new xu(t); return ju(e, r); }, b4 = function(e, t, r) { if (r.throwOnError || !(e instanceof G)) throw e; var a = R.makeSpan(["katex-error"], [new x0(t)]); return a.setAttribute("title", e.toString()), a.setAttribute("style", "color:" + r.errorColor), a; }, Wu = function(e, t) { var r = new xu(t); try { var a = ju(e, r); return F3(a, e, r); } catch (i) { return b4(i, e, r); } }, k6 = function(e, t) { var r = new xu(t); try { var a = ju(e, r); return M3(a, e, r); } catch (i) { return b4(i, e, r); } }, ru = { /** * Current KaTeX version */ version: "0.16.11", /** * Renders the given LaTeX into an HTML+MathML combination, and adds * it as a child to the specified DOM node. */ render: v4, /** * Renders the given LaTeX into an HTML+MathML combination string, * for sending to the client. */ renderToString: w6, /** * KaTeX error, usually during parsing. */ ParseError: G, /** * The shema of Settings */ SETTINGS_SCHEMA: gl, /** * Parses the given LaTeX into KaTeX's internal parse tree structure, * without rendering to HTML or MathML. * * NOTE: This method is not currently recommended for public use. * The internal tree representation is unstable and is very likely * to change. Use at your own risk. */ __parse: y6, /** * Renders the given LaTeX into an HTML+MathML internal DOM tree * representation, without flattening that representation to a string. * * NOTE: This method is not currently recommended for public use. * The internal tree representation is unstable and is very likely * to change. Use at your own risk. */ __renderToDomTree: Wu, /** * Renders the given LaTeX into an HTML internal DOM tree representation, * without MathML and without flattening that representation to a string. * * NOTE: This method is not currently recommended for public use. * The internal tree representation is unstable and is very likely * to change. Use at your own risk. */ __renderToHTMLTree: k6, /** * extends internal font metrics object with a new object * each key in the new object represents a font name */ __setFontMetrics: e3, /** * adds a new symbol to builtin symbols table */ __defineSymbol: f, /** * adds a new function to builtin function list, * which directly produce parse tree elements * and have their own html/mathml builders */ __defineFunction: Y, /** * adds a new macro to builtin macro list */ __defineMacro: v, /** * Expose the dom tree node types, which can be useful for type checking nodes. * * NOTE: This method is not currently recommended for public use. * The internal tree representation is unstable and is very likely * to change. Use at your own risk. */ __domTree: { Span: ri, Anchor: Fu, SymbolNode: x0, SvgNode: Br, PathNode: un, LineNode: Zo } }; const ry = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: ru }, Symbol.toStringTag, { value: "Module" })); var D6 = function(e, t, r) { for (var a = r, i = 0, l = e.length; a < t.length; ) { var s = t[a]; if (i <= 0 && t.slice(a, a + l) === e) return a; s === "\\" ? a++ : s === "{" ? i++ : s === "}" && i--, a++; } return -1; }, A6 = function(e) { return e.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&"); }, E6 = /^\\begin{/, S6 = function(e, t) { for (var r, a = [], i = new RegExp("(" + t.map((u) => A6(u.left)).join("|") + ")"); r = e.search(i), r !== -1; ) { r > 0 && (a.push({ type: "text", data: e.slice(0, r) }), e = e.slice(r)); var l = t.findIndex((u) => e.startsWith(u.left)); if (r = D6(t[l].right, e, t[l].left.length), r === -1) break; var s = e.slice(0, r + t[l].right.length), o = E6.test(s) ? s : e.slice(t[l].left.length, r); a.push({ type: "math", data: o, rawData: s, display: t[l].display }), e = e.slice(r + t[l].right.length); } return e !== "" && a.push({ type: "text", data: e }), a; }, x6 = function(e, t) { var r = S6(e, t.delimiters); if (r.length === 1 && r[0].type === "text") return null; for (var a = document.createDocumentFragment(), i = 0; i < r.length; i++) if (r[i].type === "text") a.appendChild(document.createTextNode(r[i].data)); else { var l = document.createElement("span"), s = r[i].data; t.displayMode = r[i].display; try { t.preProcess && (s = t.preProcess(s)), ru.render(s, l, t); } catch (o) { if (!(o instanceof ru.ParseError)) throw o; t.errorCallback("KaTeX auto-render: Failed to parse `" + r[i].data + "` with ", o), a.appendChild(document.createTextNode(r[i].rawData)); continue; } a.appendChild(l); } return a; }, T6 = function n(e, t) { for (var r = 0; r < e.childNodes.length; r++) { var a = e.childNodes[r]; if (a.nodeType === 3) { for (var i = a.textContent, l = a.nextSibling, s = 0; l && l.nodeType === Node.TEXT_NODE; ) i += l.textContent, l = l.nextSibling, s++; var o = x6(i, t); if (o) { for (var u = 0; u < s; u++) a.nextSibling.remove(); r += o.childNodes.length - 1, e.replaceChild(o, a); } else r += s; } else a.nodeType === 1 && function() { var c = " " + a.className + " ", d = t.ignoredTags.indexOf(a.nodeName.toLowerCase()) === -1 && t.ignoredClasses.every((h) => c.indexOf(" " + h + " ") === -1); d && n(a, t); }(); } }, C6 = function(e, t) { if (!e) throw new Error("No element provided to render"); var r = {}; for (var a in t) t.hasOwnProperty(a) && (r[a] = t[a]); r.delimiters = r.delimiters || [ { left: "$$", right: "$$", display: !0 }, { left: "\\(", right: "\\)", display: !1 }, // LaTeX uses $…$, but it ruins the display of normal `$` in text: // {left: "$", right: "$", display: false}, // $ must come after $$ // Render AMS environments even if outside $$…$$ delimiters. { left: "\\begin{equation}", right: "\\end{equation}", display: !0 }, { left: "\\begin{align}", right: "\\end{align}", display: !0 }, { left: "\\begin{alignat}", right: "\\end{alignat}", display: !0 }, { left: "\\begin{gather}", right: "\\end{gather}", display: !0 }, { left: "\\begin{CD}", right: "\\end{CD}", display: !0 }, { left: "\\[", right: "\\]", display: !0 } ], r.ignoredTags = r.ignoredTags || ["script", "noscript", "style", "textarea", "pre", "code", "option"], r.ignoredClasses = r.ignoredClasses || [], r.errorCallback = r.errorCallback || console.error, r.macros = r.macros || {}, T6(e, r); }; function Xu() { return { async: !1, breaks: !1, extensions: null, gfm: !0, hooks: null, pedantic: !1, renderer: null, silent: !1, tokenizer: null, walkTokens: null }; } let In = Xu(); function w4(n) { In = n; } const y4 = /[&<>"']/, F6 = new RegExp(y4.source, "g"), k4 = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, M6 = new RegExp(k4.source, "g"), z6 = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, xc = (n) => z6[n]; function c0(n, e) { if (e) { if (y4.test(n)) return n.replace(F6, xc); } else if (k4.test(n)) return n.replace(M6, xc); return n; } const B6 = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig; function I6(n) { return n.replace(B6, (e, t) => (t = t.toLowerCase(), t === "colon" ? ":" : t.charAt(0) === "#" ? t.charAt(1) === "x" ? String.fromCharCode(parseInt(t.substring(2), 16)) : String.fromCharCode(+t.substring(1)) : "")); } const L6 = /(^|[^\[])\^/g; function Me(n, e) { let t = typeof n == "string" ? n : n.source; e = e || ""; const r = { replace: (a, i) => { let l = typeof i == "string" ? i : i.source; return l = l.replace(L6, "$1"), t = t.replace(a, l), r; }, getRegex: () => new RegExp(t, e) }; return r; } function Tc(n) { try { n = encodeURI(n).replace(/%25/g, "%"); } catch { return null; } return n; } const Pa = { exec: () => null }; function Cc(n, e) { const t = n.replace(/\|/g, (i, l, s) => { let o = !1, u = l; for (; --u >= 0 && s[u] === "\\"; ) o = !o; return o ? "|" : " |"; }), r = t.split(/ \|/); let a = 0; if (r[0].trim() || r.shift(), r.length > 0 && !r[r.length - 1].trim() && r.pop(), e) if (r.length > e) r.splice(e); else for (; r.length < e; ) r.push(""); for (; a < r.length; a++) r[a] = r[a].trim().replace(/\\\|/g, "|"); return r; } function ji(n, e, t) { const r = n.length; if (r === 0) return ""; let a = 0; for (; a < r; ) { const i = n.charAt(r - a - 1); if (i === e && !t) a++; else if (i !== e && t) a++; else break; } return n.slice(0, r - a); } function N6(n, e) { if (n.indexOf(e[1]) === -1) return -1; let t = 0; for (let r = 0; r < n.length; r++) if (n[r] === "\\") r++; else if (n[r] === e[0]) t++; else if (n[r] === e[1] && (t--, t < 0)) return r; return -1; } function Fc(n, e, t, r) { const a = e.href, i = e.title ? c0(e.title) : null, l = n[1].replace(/\\([\[\]])/g, "$1"); if (n[0].charAt(0) !== "!") { r.state.inLink = !0; const s = { type: "link", raw: t, href: a, title: i, text: l, tokens: r.inlineTokens(l) }; return r.state.inLink = !1, s; } return { type: "image", raw: t, href: a, title: i, text: c0(l) }; } function R6(n, e) { const t = n.match(/^(\s+)(?:```)/); if (t === null) return e; const r = t[1]; return e.split(` `).map((a) => { const i = a.match(/^\s+/); if (i === null) return a; const [l] = i; return l.length >= r.length ? a.slice(r.length) : a; }).join(` `); } class zl { // set by the lexer constructor(e) { Oe(this, "options"); Oe(this, "rules"); // set by the lexer Oe(this, "lexer"); this.options = e || In; } space(e) { const t = this.rules.block.newline.exec(e); if (t && t[0].length > 0) return { type: "space", raw: t[0] }; } code(e) { const t = this.rules.block.code.exec(e); if (t) { const r = t[0].replace(/^ {1,4}/gm, ""); return { type: "code", raw: t[0], codeBlockStyle: "indented", text: this.options.pedantic ? r : ji(r, ` `) }; } } fences(e) { const t = this.rules.block.fences.exec(e); if (t) { const r = t[0], a = R6(r, t[3] || ""); return { type: "code", raw: r, lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2], text: a }; } } heading(e) { const t = this.rules.block.heading.exec(e); if (t) { let r = t[2].trim(); if (/#$/.test(r)) { const a = ji(r, "#"); (this.options.pedantic || !a || / $/.test(a)) && (r = a.trim()); } return { type: "heading", raw: t[0], depth: t[1].length, text: r, tokens: this.lexer.inline(r) }; } } hr(e) { const t = this.rules.block.hr.exec(e); if (t) return { type: "hr", raw: t[0] }; } blockquote(e) { const t = this.rules.block.blockquote.exec(e); if (t) { let r = t[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g, ` $1`); r = ji(r.replace(/^ *>[ \t]?/gm, ""), ` `); const a = this.lexer.state.top; this.lexer.state.top = !0; const i = this.lexer.blockTokens(r); return this.lexer.state.top = a, { type: "blockquote", raw: t[0], tokens: i, text: r }; } } list(e) { let t = this.rules.block.list.exec(e); if (t) { let r = t[1].trim(); const a = r.length > 1, i = { type: "list", raw: "", ordered: a, start: a ? +r.slice(0, -1) : "", loose: !1, items: [] }; r = a ? `\\d{1,9}\\${r.slice(-1)}` : `\\${r}`, this.options.pedantic && (r = a ? r : "[*+-]"); const l = new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`); let s = "", o = "", u = !1; for (; e; ) { let c = !1; if (!(t = l.exec(e)) || this.rules.block.hr.test(e)) break; s = t[0], e = e.substring(s.length); let d = t[2].split(` `, 1)[0].replace(/^\t+/, (y) => " ".repeat(3 * y.length)), h = e.split(` `, 1)[0], p = 0; this.options.pedantic ? (p = 2, o = d.trimStart()) : (p = t[2].search(/[^ ]/), p = p > 4 ? 1 : p, o = d.slice(p), p += t[1].length); let _ = !1; if (!d && /^ *$/.test(h) && (s += h + ` `, e = e.substring(h.length + 1), c = !0), !c) { const y = new RegExp(`^ {0,${Math.min(3, p - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), k = new RegExp(`^ {0,${Math.min(3, p - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), w = new RegExp(`^ {0,${Math.min(3, p - 1)}}(?:\`\`\`|~~~)`), E = new RegExp(`^ {0,${Math.min(3, p - 1)}}#`); for (; e; ) { const S = e.split(` `, 1)[0]; if (h = S, this.options.pedantic && (h = h.replace(/^ {1,4}(?=( {4})*[^ ])/g, " ")), w.test(h) || E.test(h) || y.test(h) || k.test(e)) break; if (h.search(/[^ ]/) >= p || !h.trim()) o += ` ` + h.slice(p); else { if (_ || d.search(/[^ ]/) >= 4 || w.test(d) || E.test(d) || k.test(d)) break; o += ` ` + h; } !_ && !h.trim() && (_ = !0), s += S + ` `, e = e.substring(S.length + 1), d = h.slice(p); } } i.loose || (u ? i.loose = !0 : /\n *\n *$/.test(s) && (u = !0)); let b = null, D; this.options.gfm && (b = /^\[[ xX]\] /.exec(o), b && (D = b[0] !== "[ ] ", o = o.replace(/^\[[ xX]\] +/, ""))), i.items.push({ type: "list_item", raw: s, task: !!b, checked: D, loose: !1, text: o, tokens: [] }), i.raw += s; } i.items[i.items.length - 1].raw = s.trimEnd(), i.items[i.items.length - 1].text = o.trimEnd(), i.raw = i.raw.trimEnd(); for (let c = 0; c < i.items.length; c++) if (this.lexer.state.top = !1, i.items[c].tokens = this.lexer.blockTokens(i.items[c].text, []), !i.loose) { const d = i.items[c].tokens.filter((p) => p.type === "space"), h = d.length > 0 && d.some((p) => /\n.*\n/.test(p.raw)); i.loose = h; } if (i.loose) for (let c = 0; c < i.items.length; c++) i.items[c].loose = !0; return i; } } html(e) { const t = this.rules.block.html.exec(e); if (t) return { type: "html", block: !0, raw: t[0], pre: t[1] === "pre" || t[1] === "script" || t[1] === "style", text: t[0] }; } def(e) { const t = this.rules.block.def.exec(e); if (t) { const r = t[1].toLowerCase().replace(/\s+/g, " "), a = t[2] ? t[2].replace(/^<(.*)>$/, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", i = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3]; return { type: "def", tag: r, raw: t[0], href: a, title: i }; } } table(e) { const t = this.rules.block.table.exec(e); if (!t || !/[:|]/.test(t[2])) return; const r = Cc(t[1]), a = t[2].replace(/^\||\| *$/g, "").split("|"), i = t[3] && t[3].trim() ? t[3].replace(/\n[ \t]*$/, "").split(` `) : [], l = { type: "table", raw: t[0], header: [], align: [], rows: [] }; if (r.length === a.length) { for (const s of a) /^ *-+: *$/.test(s) ? l.align.push("right") : /^ *:-+: *$/.test(s) ? l.align.push("center") : /^ *:-+ *$/.test(s) ? l.align.push("left") : l.align.push(null); for (const s of r) l.header.push({ text: s, tokens: this.lexer.inline(s) }); for (const s of i) l.rows.push(Cc(s, l.header.length).map((o) => ({ text: o, tokens: this.lexer.inline(o) }))); return l; } } lheading(e) { const t = this.rules.block.lheading.exec(e); if (t) return { type: "heading", raw: t[0], depth: t[2].charAt(0) === "=" ? 1 : 2, text: t[1], tokens: this.lexer.inline(t[1]) }; } paragraph(e) { const t = this.rules.block.paragraph.exec(e); if (t) { const r = t[1].charAt(t[1].length - 1) === ` ` ? t[1].slice(0, -1) : t[1]; return { type: "paragraph", raw: t[0], text: r, tokens: this.lexer.inline(r) }; } } text(e) { const t = this.rules.block.text.exec(e); if (t) return { type: "text", raw: t[0], text: t[0], tokens: this.lexer.inline(t[0]) }; } escape(e) { const t = this.rules.inline.escape.exec(e); if (t) return { type: "escape", raw: t[0], text: c0(t[1]) }; } tag(e) { const t = this.rules.inline.tag.exec(e); if (t) return !this.lexer.state.inLink && /^/i.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(t[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0]) && (this.lexer.state.inRawBlock = !1), { type: "html", raw: t[0], inLink: this.lexer.state.inLink, inRawBlock: this.lexer.state.inRawBlock, block: !1, text: t[0] }; } link(e) { const t = this.rules.inline.link.exec(e); if (t) { const r = t[2].trim(); if (!this.options.pedantic && /^$/.test(r)) return; const l = ji(r.slice(0, -1), "\\"); if ((r.length - l.length) % 2 === 0) return; } else { const l = N6(t[2], "()"); if (l > -1) { const o = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + l; t[2] = t[2].substring(0, l), t[0] = t[0].substring(0, o).trim(), t[3] = ""; } } let a = t[2], i = ""; if (this.options.pedantic) { const l = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a); l && (a = l[1], i = l[3]); } else i = t[3] ? t[3].slice(1, -1) : ""; return a = a.trim(), /^$/.test(r) ? a = a.slice(1) : a = a.slice(1, -1)), Fc(t, { href: a && a.replace(this.rules.inline.anyPunctuation, "$1"), title: i && i.replace(this.rules.inline.anyPunctuation, "$1") }, t[0], this.lexer); } } reflink(e, t) { let r; if ((r = this.rules.inline.reflink.exec(e)) || (r = this.rules.inline.nolink.exec(e))) { const a = (r[2] || r[1]).replace(/\s+/g, " "), i = t[a.toLowerCase()]; if (!i) { const l = r[0].charAt(0); return { type: "text", raw: l, text: l }; } return Fc(r, i, r[0], this.lexer); } } emStrong(e, t, r = "") { let a = this.rules.inline.emStrongLDelim.exec(e); if (!a || a[3] && r.match(/[\p{L}\p{N}]/u)) return; if (!(a[1] || a[2] || "") || !r || this.rules.inline.punctuation.exec(r)) { const l = [...a[0]].length - 1; let s, o, u = l, c = 0; const d = a[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd; for (d.lastIndex = 0, t = t.slice(-1 * e.length + l); (a = d.exec(t)) != null; ) { if (s = a[1] || a[2] || a[3] || a[4] || a[5] || a[6], !s) continue; if (o = [...s].length, a[3] || a[4]) { u += o; continue; } else if ((a[5] || a[6]) && l % 3 && !((l + o) % 3)) { c += o; continue; } if (u -= o, u > 0) continue; o = Math.min(o, o + u + c); const h = [...a[0]][0].length, p = e.slice(0, l + a.index + h + o); if (Math.min(l, o) % 2) { const b = p.slice(1, -1); return { type: "em", raw: p, text: b, tokens: this.lexer.inlineTokens(b) }; } const _ = p.slice(2, -2); return { type: "strong", raw: p, text: _, tokens: this.lexer.inlineTokens(_) }; } } } codespan(e) { const t = this.rules.inline.code.exec(e); if (t) { let r = t[2].replace(/\n/g, " "); const a = /[^ ]/.test(r), i = /^ /.test(r) && / $/.test(r); return a && i && (r = r.substring(1, r.length - 1)), r = c0(r, !0), { type: "codespan", raw: t[0], text: r }; } } br(e) { const t = this.rules.inline.br.exec(e); if (t) return { type: "br", raw: t[0] }; } del(e) { const t = this.rules.inline.del.exec(e); if (t) return { type: "del", raw: t[0], text: t[2], tokens: this.lexer.inlineTokens(t[2]) }; } autolink(e) { const t = this.rules.inline.autolink.exec(e); if (t) { let r, a; return t[2] === "@" ? (r = c0(t[1]), a = "mailto:" + r) : (r = c0(t[1]), a = r), { type: "link", raw: t[0], text: r, href: a, tokens: [ { type: "text", raw: r, text: r } ] }; } } url(e) { var r; let t; if (t = this.rules.inline.url.exec(e)) { let a, i; if (t[2] === "@") a = c0(t[0]), i = "mailto:" + a; else { let l; do l = t[0], t[0] = ((r = this.rules.inline._backpedal.exec(t[0])) == null ? void 0 : r[0]) ?? ""; while (l !== t[0]); a = c0(t[0]), t[1] === "www." ? i = "http://" + t[0] : i = t[0]; } return { type: "link", raw: t[0], text: a, href: i, tokens: [ { type: "text", raw: a, text: a } ] }; } } inlineText(e) { const t = this.rules.inline.text.exec(e); if (t) { let r; return this.lexer.state.inRawBlock ? r = t[0] : r = c0(t[0]), { type: "text", raw: t[0], text: r }; } } } const O6 = /^(?: *(?:\n|$))+/, q6 = /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/, P6 = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, ai = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, H6 = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, D4 = /(?:[*+-]|\d{1,9}[.)])/, A4 = Me(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g, D4).replace(/blockCode/g, / {4}/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).getRegex(), Yu = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, U6 = /^[^\n]+/, Zu = /(?!\s*\])(?:\\.|[^\[\]\\])+/, V6 = Me(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label", Zu).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), G6 = Me(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, D4).getRegex(), rs = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", Ku = /|$))/, j6 = Me("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))", "i").replace("comment", Ku).replace("tag", rs).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), E4 = Me(Yu).replace("hr", ai).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", rs).getRegex(), W6 = Me(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", E4).getRegex(), Ju = { blockquote: W6, code: q6, def: V6, fences: P6, heading: H6, hr: ai, html: j6, lheading: A4, list: G6, newline: O6, paragraph: E4, table: Pa, text: U6 }, Mc = Me("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", ai).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", " {4}[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", rs).getRegex(), X6 = { ...Ju, table: Mc, paragraph: Me(Yu).replace("hr", ai).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", Mc).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", rs).getRegex() }, Y6 = { ...Ju, html: Me(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", Ku).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, heading: /^(#{1,6})(.*)(?:\n+|$)/, fences: Pa, // fences not supported lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, paragraph: Me(Yu).replace("hr", ai).replace("heading", ` *#{1,6} *[^ ]`).replace("lheading", A4).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() }, S4 = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, Z6 = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, x4 = /^( {2,}|\\)\n(?!\s*$)/, K6 = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g, $6 = Me(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/, "u").replace(/punct/g, ii).getRegex(), e7 = Me("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])", "gu").replace(/punct/g, ii).getRegex(), t7 = Me("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])", "gu").replace(/punct/g, ii).getRegex(), r7 = Me(/\\([punct])/, "gu").replace(/punct/g, ii).getRegex(), n7 = Me(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), a7 = Me(Ku).replace("(?:-->|$)", "-->").getRegex(), i7 = Me("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment", a7).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), Bl = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/, l7 = Me(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label", Bl).replace("href", /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), T4 = Me(/^!?\[(label)\]\[(ref)\]/).replace("label", Bl).replace("ref", Zu).getRegex(), C4 = Me(/^!?\[(ref)\](?:\[\])?/).replace("ref", Zu).getRegex(), s7 = Me("reflink|nolink(?!\\()", "g").replace("reflink", T4).replace("nolink", C4).getRegex(), Qu = { _backpedal: Pa, // only used for GFM url anyPunctuation: r7, autolink: n7, blockSkip: Q6, br: x4, code: Z6, del: Pa, emStrongLDelim: $6, emStrongRDelimAst: e7, emStrongRDelimUnd: t7, escape: S4, link: l7, nolink: C4, punctuation: J6, reflink: T4, reflinkSearch: s7, tag: i7, text: K6, url: Pa }, o7 = { ...Qu, link: Me(/^!?\[(label)\]\((.*?)\)/).replace("label", Bl).getRegex(), reflink: Me(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", Bl).getRegex() }, nu = { ...Qu, escape: Me(S4).replace("])", "~|])").getRegex(), url: Me(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/, text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\ o + " ".repeat(u.length)); let r, a, i, l; for (; e; ) if (!(this.options.extensions && this.options.extensions.block && this.options.extensions.block.some((s) => (r = s.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1))) { if (r = this.tokenizer.space(e)) { e = e.substring(r.raw.length), r.raw.length === 1 && t.length > 0 ? t[t.length - 1].raw += ` ` : t.push(r); continue; } if (r = this.tokenizer.code(e)) { e = e.substring(r.raw.length), a = t[t.length - 1], a && (a.type === "paragraph" || a.type === "text") ? (a.raw += ` ` + r.raw, a.text += ` ` + r.text, this.inlineQueue[this.inlineQueue.length - 1].src = a.text) : t.push(r); continue; } if (r = this.tokenizer.fences(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.heading(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.hr(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.blockquote(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.list(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.html(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.def(e)) { e = e.substring(r.raw.length), a = t[t.length - 1], a && (a.type === "paragraph" || a.type === "text") ? (a.raw += ` ` + r.raw, a.text += ` ` + r.raw, this.inlineQueue[this.inlineQueue.length - 1].src = a.text) : this.tokens.links[r.tag] || (this.tokens.links[r.tag] = { href: r.href, title: r.title }); continue; } if (r = this.tokenizer.table(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.lheading(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (i = e, this.options.extensions && this.options.extensions.startBlock) { let s = 1 / 0; const o = e.slice(1); let u; this.options.extensions.startBlock.forEach((c) => { u = c.call({ lexer: this }, o), typeof u == "number" && u >= 0 && (s = Math.min(s, u)); }), s < 1 / 0 && s >= 0 && (i = e.substring(0, s + 1)); } if (this.state.top && (r = this.tokenizer.paragraph(i))) { a = t[t.length - 1], l && a.type === "paragraph" ? (a.raw += ` ` + r.raw, a.text += ` ` + r.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = a.text) : t.push(r), l = i.length !== e.length, e = e.substring(r.raw.length); continue; } if (r = this.tokenizer.text(e)) { e = e.substring(r.raw.length), a = t[t.length - 1], a && a.type === "text" ? (a.raw += ` ` + r.raw, a.text += ` ` + r.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = a.text) : t.push(r); continue; } if (e) { const s = "Infinite loop on byte: " + e.charCodeAt(0); if (this.options.silent) { console.error(s); break; } else throw new Error(s); } } return this.state.top = !0, t; } inline(e, t = []) { return this.inlineQueue.push({ src: e, tokens: t }), t; } /** * Lexing/Compiling */ inlineTokens(e, t = []) { let r, a, i, l = e, s, o, u; if (this.tokens.links) { const c = Object.keys(this.tokens.links); if (c.length > 0) for (; (s = this.tokenizer.rules.inline.reflinkSearch.exec(l)) != null; ) c.includes(s[0].slice(s[0].lastIndexOf("[") + 1, -1)) && (l = l.slice(0, s.index) + "[" + "a".repeat(s[0].length - 2) + "]" + l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)); } for (; (s = this.tokenizer.rules.inline.blockSkip.exec(l)) != null; ) l = l.slice(0, s.index) + "[" + "a".repeat(s[0].length - 2) + "]" + l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex); for (; (s = this.tokenizer.rules.inline.anyPunctuation.exec(l)) != null; ) l = l.slice(0, s.index) + "++" + l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex); for (; e; ) if (o || (u = ""), o = !1, !(this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some((c) => (r = c.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1))) { if (r = this.tokenizer.escape(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.tag(e)) { e = e.substring(r.raw.length), a = t[t.length - 1], a && r.type === "text" && a.type === "text" ? (a.raw += r.raw, a.text += r.text) : t.push(r); continue; } if (r = this.tokenizer.link(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.reflink(e, this.tokens.links)) { e = e.substring(r.raw.length), a = t[t.length - 1], a && r.type === "text" && a.type === "text" ? (a.raw += r.raw, a.text += r.text) : t.push(r); continue; } if (r = this.tokenizer.emStrong(e, l, u)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.codespan(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.br(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.del(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (r = this.tokenizer.autolink(e)) { e = e.substring(r.raw.length), t.push(r); continue; } if (!this.state.inLink && (r = this.tokenizer.url(e))) { e = e.substring(r.raw.length), t.push(r); continue; } if (i = e, this.options.extensions && this.options.extensions.startInline) { let c = 1 / 0; const d = e.slice(1); let h; this.options.extensions.startInline.forEach((p) => { h = p.call({ lexer: this }, d), typeof h == "number" && h >= 0 && (c = Math.min(c, h)); }), c < 1 / 0 && c >= 0 && (i = e.substring(0, c + 1)); } if (r = this.tokenizer.inlineText(i)) { e = e.substring(r.raw.length), r.raw.slice(-1) !== "_" && (u = r.raw.slice(-1)), o = !0, a = t[t.length - 1], a && a.type === "text" ? (a.raw += r.raw, a.text += r.text) : t.push(r); continue; } if (e) { const c = "Infinite loop on byte: " + e.charCodeAt(0); if (this.options.silent) { console.error(c); break; } else throw new Error(c); } } return t; } } class Il { constructor(e) { Oe(this, "options"); this.options = e || In; } code(e, t, r) { var i; const a = (i = (t || "").match(/^\S*/)) == null ? void 0 : i[0]; return e = e.replace(/\n$/, "") + ` `, a ? '
' + (r ? e : c0(e, !0)) + `
` : "
" + (r ? e : c0(e, !0)) + `
`; } blockquote(e) { return `
${e}
`; } html(e, t) { return e; } heading(e, t, r) { return `${e} `; } hr() { return `
`; } list(e, t, r) { const a = t ? "ol" : "ul", i = t && r !== 1 ? ' start="' + r + '"' : ""; return "<" + a + i + `> ` + e + " `; } listitem(e, t, r) { return `
  • ${e}
  • `; } checkbox(e) { return "'; } paragraph(e) { return `

    ${e}

    `; } table(e, t) { return t && (t = `${t}`), ` ` + e + ` ` + t + `
    `; } tablerow(e) { return ` ${e} `; } tablecell(e, t) { const r = t.header ? "th" : "td"; return (t.align ? `<${r} align="${t.align}">` : `<${r}>`) + e + ` `; } /** * span level renderer */ strong(e) { return `${e}`; } em(e) { return `${e}`; } codespan(e) { return `${e}`; } br() { return "
    "; } del(e) { return `${e}`; } link(e, t, r) { const a = Tc(e); if (a === null) return r; e = a; let i = '
    ", i; } image(e, t, r) { const a = Tc(e); if (a === null) return r; e = a; let i = `${r} 0 && h.tokens[0].type === "paragraph" ? (h.tokens[0].text = D + " " + h.tokens[0].text, h.tokens[0].tokens && h.tokens[0].tokens.length > 0 && h.tokens[0].tokens[0].type === "text" && (h.tokens[0].tokens[0].text = D + " " + h.tokens[0].tokens[0].text)) : h.tokens.unshift({ type: "text", text: D + " " }) : b += D + " "; } b += this.parse(h.tokens, u), c += this.renderer.listitem(b, _, !!p); } r += this.renderer.list(c, s, o); continue; } case "html": { const l = i; r += this.renderer.html(l.text, l.block); continue; } case "paragraph": { const l = i; r += this.renderer.paragraph(this.parseInline(l.tokens)); continue; } case "text": { let l = i, s = l.tokens ? this.parseInline(l.tokens) : l.text; for (; a + 1 < e.length && e[a + 1].type === "text"; ) l = e[++a], s += ` ` + (l.tokens ? this.parseInline(l.tokens) : l.text); r += t ? this.renderer.paragraph(s) : s; continue; } default: { const l = 'Token with "' + i.type + '" type was not found.'; if (this.options.silent) return console.error(l), ""; throw new Error(l); } } } return r; } /** * Parse Inline Tokens */ parseInline(e, t) { t = t || this.renderer; let r = ""; for (let a = 0; a < e.length; a++) { const i = e[a]; if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[i.type]) { const l = this.options.extensions.renderers[i.type].call({ parser: this }, i); if (l !== !1 || !["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text"].includes(i.type)) { r += l || ""; continue; } } switch (i.type) { case "escape": { const l = i; r += t.text(l.text); break; } case "html": { const l = i; r += t.html(l.text); break; } case "link": { const l = i; r += t.link(l.href, l.title, this.parseInline(l.tokens, t)); break; } case "image": { const l = i; r += t.image(l.href, l.title, l.text); break; } case "strong": { const l = i; r += t.strong(this.parseInline(l.tokens, t)); break; } case "em": { const l = i; r += t.em(this.parseInline(l.tokens, t)); break; } case "codespan": { const l = i; r += t.codespan(l.text); break; } case "br": { r += t.br(); break; } case "del": { const l = i; r += t.del(this.parseInline(l.tokens, t)); break; } case "text": { const l = i; r += t.text(l.text); break; } default: { const l = 'Token with "' + i.type + '" type was not found.'; if (this.options.silent) return console.error(l), ""; throw new Error(l); } } } return r; } } class Ha { constructor(e) { Oe(this, "options"); this.options = e || In; } /** * Process markdown before marked */ preprocess(e) { return e; } /** * Process HTML after marked is finished */ postprocess(e) { return e; } /** * Process all tokens before walk tokens */ processAllTokens(e) { return e; } } Oe(Ha, "passThroughHooks", /* @__PURE__ */ new Set([ "preprocess", "postprocess", "processAllTokens" ])); var zn, au, M4; class F4 { constructor(...e) { S1(this, zn); Oe(this, "defaults", Xu()); Oe(this, "options", this.setOptions); Oe(this, "parse", yi(this, zn, au).call(this, nr.lex, ar.parse)); Oe(this, "parseInline", yi(this, zn, au).call(this, nr.lexInline, ar.parseInline)); Oe(this, "Parser", ar); Oe(this, "Renderer", Il); Oe(this, "TextRenderer", $u); Oe(this, "Lexer", nr); Oe(this, "Tokenizer", zl); Oe(this, "Hooks", Ha); this.use(...e); } /** * Run callback for every token */ walkTokens(e, t) { var a, i; let r = []; for (const l of e) switch (r = r.concat(t.call(this, l)), l.type) { case "table": { const s = l; for (const o of s.header) r = r.concat(this.walkTokens(o.tokens, t)); for (const o of s.rows) for (const u of o) r = r.concat(this.walkTokens(u.tokens, t)); break; } case "list": { const s = l; r = r.concat(this.walkTokens(s.items, t)); break; } default: { const s = l; (i = (a = this.defaults.extensions) == null ? void 0 : a.childTokens) != null && i[s.type] ? this.defaults.extensions.childTokens[s.type].forEach((o) => { const u = s[o].flat(1 / 0); r = r.concat(this.walkTokens(u, t)); }) : s.tokens && (r = r.concat(this.walkTokens(s.tokens, t))); } } return r; } use(...e) { const t = this.defaults.extensions || { renderers: {}, childTokens: {} }; return e.forEach((r) => { const a = { ...r }; if (a.async = this.defaults.async || a.async || !1, r.extensions && (r.extensions.forEach((i) => { if (!i.name) throw new Error("extension name required"); if ("renderer" in i) { const l = t.renderers[i.name]; l ? t.renderers[i.name] = function(...s) { let o = i.renderer.apply(this, s); return o === !1 && (o = l.apply(this, s)), o; } : t.renderers[i.name] = i.renderer; } if ("tokenizer" in i) { if (!i.level || i.level !== "block" && i.level !== "inline") throw new Error("extension level must be 'block' or 'inline'"); const l = t[i.level]; l ? l.unshift(i.tokenizer) : t[i.level] = [i.tokenizer], i.start && (i.level === "block" ? t.startBlock ? t.startBlock.push(i.start) : t.startBlock = [i.start] : i.level === "inline" && (t.startInline ? t.startInline.push(i.start) : t.startInline = [i.start])); } "childTokens" in i && i.childTokens && (t.childTokens[i.name] = i.childTokens); }), a.extensions = t), r.renderer) { const i = this.defaults.renderer || new Il(this.defaults); for (const l in r.renderer) { if (!(l in i)) throw new Error(`renderer '${l}' does not exist`); if (l === "options") continue; const s = l, o = r.renderer[s], u = i[s]; i[s] = (...c) => { let d = o.apply(i, c); return d === !1 && (d = u.apply(i, c)), d || ""; }; } a.renderer = i; } if (r.tokenizer) { const i = this.defaults.tokenizer || new zl(this.defaults); for (const l in r.tokenizer) { if (!(l in i)) throw new Error(`tokenizer '${l}' does not exist`); if (["options", "rules", "lexer"].includes(l)) continue; const s = l, o = r.tokenizer[s], u = i[s]; i[s] = (...c) => { let d = o.apply(i, c); return d === !1 && (d = u.apply(i, c)), d; }; } a.tokenizer = i; } if (r.hooks) { const i = this.defaults.hooks || new Ha(); for (const l in r.hooks) { if (!(l in i)) throw new Error(`hook '${l}' does not exist`); if (l === "options") continue; const s = l, o = r.hooks[s], u = i[s]; Ha.passThroughHooks.has(l) ? i[s] = (c) => { if (this.defaults.async) return Promise.resolve(o.call(i, c)).then((h) => u.call(i, h)); const d = o.call(i, c); return u.call(i, d); } : i[s] = (...c) => { let d = o.apply(i, c); return d === !1 && (d = u.apply(i, c)), d; }; } a.hooks = i; } if (r.walkTokens) { const i = this.defaults.walkTokens, l = r.walkTokens; a.walkTokens = function(s) { let o = []; return o.push(l.call(this, s)), i && (o = o.concat(i.call(this, s))), o; }; } this.defaults = { ...this.defaults, ...a }; }), this; } setOptions(e) { return this.defaults = { ...this.defaults, ...e }, this; } lexer(e, t) { return nr.lex(e, t ?? this.defaults); } parser(e, t) { return ar.parse(e, t ?? this.defaults); } } zn = new WeakSet(), au = function(e, t) { return (r, a) => { const i = { ...a }, l = { ...this.defaults, ...i }; this.defaults.async === !0 && i.async === !1 && (l.silent || console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."), l.async = !0); const s = yi(this, zn, M4).call(this, !!l.silent, !!l.async); if (typeof r > "u" || r === null) return s(new Error("marked(): input parameter is undefined or null")); if (typeof r != "string") return s(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(r) + ", string expected")); if (l.hooks && (l.hooks.options = l), l.async) return Promise.resolve(l.hooks ? l.hooks.preprocess(r) : r).then((o) => e(o, l)).then((o) => l.hooks ? l.hooks.processAllTokens(o) : o).then((o) => l.walkTokens ? Promise.all(this.walkTokens(o, l.walkTokens)).then(() => o) : o).then((o) => t(o, l)).then((o) => l.hooks ? l.hooks.postprocess(o) : o).catch(s); try { l.hooks && (r = l.hooks.preprocess(r)); let o = e(r, l); l.hooks && (o = l.hooks.processAllTokens(o)), l.walkTokens && this.walkTokens(o, l.walkTokens); let u = t(o, l); return l.hooks && (u = l.hooks.postprocess(u)), u; } catch (o) { return s(o); } }; }, M4 = function(e, t) { return (r) => { if (r.message += ` Please report this to https://github.com/markedjs/marked.`, e) { const a = "

    An error occurred:

    " + c0(r.message + "", !0) + "
    "; return t ? Promise.resolve(a) : a; } if (t) return Promise.reject(r); throw r; }; }; const Fn = new F4(); function Fe(n, e) { return Fn.parse(n, e); } Fe.options = Fe.setOptions = function(n) { return Fn.setOptions(n), Fe.defaults = Fn.defaults, w4(Fe.defaults), Fe; }; Fe.getDefaults = Xu; Fe.defaults = In; Fe.use = function(...n) { return Fn.use(...n), Fe.defaults = Fn.defaults, w4(Fe.defaults), Fe; }; Fe.walkTokens = function(n, e) { return Fn.walkTokens(n, e); }; Fe.parseInline = Fn.parseInline; Fe.Parser = ar; Fe.parser = ar.parse; Fe.Renderer = Il; Fe.TextRenderer = $u; Fe.Lexer = nr; Fe.lexer = nr.lex; Fe.Tokenizer = zl; Fe.Hooks = Ha; Fe.parse = Fe; Fe.options; Fe.setOptions; Fe.use; Fe.walkTokens; Fe.parseInline; ar.parse; nr.lex; function c7(n) { if (typeof n == "function" && (n = { highlight: n }), !n || typeof n.highlight != "function") throw new Error("Must provide highlight function"); return typeof n.langPrefix != "string" && (n.langPrefix = "language-"), typeof n.emptyLangClass != "string" && (n.emptyLangClass = ""), { async: !!n.async, walkTokens(e) { if (e.type !== "code") return; const t = zc(e.lang); if (n.async) return Promise.resolve(n.highlight(e.text, t, e.lang || "")).then(Bc(e)); const r = n.highlight(e.text, t, e.lang || ""); if (r instanceof Promise) throw new Error("markedHighlight is not set to async but the highlight function is async. Set the async option to true on markedHighlight to await the async highlight function."); Bc(e)(r); }, useNewRenderer: !0, renderer: { code(e, t, r) { typeof e == "object" && (r = e.escaped, t = e.lang, e = e.text); const a = zc(t), i = a ? n.langPrefix + Lc(a) : n.emptyLangClass, l = i ? ` class="${i}"` : ""; return e = e.replace(/\n$/, ""), `
    ${r ? e : Lc(e, !0)}
    
    `; } } }; } function zc(n) { return (n || "").match(/\S*/)[0]; } function Bc(n) { return (e) => { typeof e == "string" && e !== n.text && (n.escaped = !0, n.text = e); }; } const z4 = /[&<>"']/, f7 = new RegExp(z4.source, "g"), B4 = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, h7 = new RegExp(B4.source, "g"), d7 = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, Ic = (n) => d7[n]; function Lc(n, e) { if (e) { if (z4.test(n)) return n.replace(f7, Ic); } else if (B4.test(n)) return n.replace(h7, Ic); return n; } const m7 = /[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g, p7 = Object.hasOwnProperty; class ns { /** * Create a new slug class. */ constructor() { this.occurrences, this.reset(); } /** * Generate a unique slug. * * Tracks previously generated slugs: repeated calls with the same value * will result in different slugs. * Use the `slug` function to get same slugs. * * @param {string} value * String of text to slugify * @param {boolean} [maintainCase=false] * Keep the current case, otherwise make all lowercase * @return {string} * A unique slug string */ slug(e, t) { const r = this; let a = g7(e, t === !0); const i = a; for (; p7.call(r.occurrences, a); ) r.occurrences[i]++, a = i + "-" + r.occurrences[i]; return r.occurrences[a] = 0, a; } /** * Reset - Forget all previous slugs * * @return void */ reset() { this.occurrences = /* @__PURE__ */ Object.create(null); } } function g7(n, e) { return typeof n != "string" ? "" : (e || (n = n.toLowerCase()), n.replace(m7, "").replace(/ /g, "-")); } let I4 = new ns(), L4 = []; function _7({ prefix: n = "", globalSlugs: e = !1 } = {}) { return { headerIds: !1, // prevent deprecation warning; remove this once headerIds option is removed hooks: { preprocess(t) { return e || v7(), t; } }, renderer: { heading(t, r, a) { a = a.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi, ""); const i = `${n}${I4.slug(a)}`, l = { level: r, text: t, id: i }; return L4.push(l), `${t} `; } } }; } function v7() { L4 = [], I4 = new ns(); } var Nc = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; function ny(n) { return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n; } var N4 = { exports: {} }; (function(n) { var e = typeof window < "u" ? window : typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? self : {}; /** * Prism: Lightweight, robust, elegant syntax highlighting * * @license MIT * @author Lea Verou * @namespace * @public */ var t = function(r) { var a = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i, i = 0, l = {}, s = { /** * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load * additional languages or plugins yourself. * * By setting this value to `true`, Prism will not automatically highlight all code elements on the page. * * You obviously have to change this value before the automatic highlighting started. To do this, you can add an * empty Prism object into the global scope before loading the Prism script like this: * * ```js * window.Prism = window.Prism || {}; * Prism.manual = true; * // add a new