UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

19,819 lines 917 kB
;
(function () {
  System.register(["./chunk-legacy-Re9CbdfL.js", "./vue.runtime.esm-bundler-legacy--Sn1h8On.js", "./src-legacy-uZTNWMC0.js", "./_plugin-vue_export-helper-legacy-DZMI5HPp.js"], function (_export, _context) {
    "use strict";

    var __export, toDisplayString, createElementBlock, createCommentVNode, unref, defineComponent, createBlock, renderSlot, openBlock, normalizeClass, createBaseVNode, N8nIcon_default, __plugin_vue_export_helper_default, __vite_style__, yu$1, He$1, Au$1, Bu$1, wu$1, xu$1, sr$1, _u$1, At$2, We, ar$1, Me$2, vu$1, bu$1, Dr$2, pe$1, it$1, Tn$1, xo$1, _o$1, kn, Pn$1, $n$1, ir$1, Ou$1, ne$1, lr$1, cr$1, fr$1, pr$1, Nu$1, Tu$1, ku$1, Ae$1, Ve$1, U$1, W, z$1, L$1, P$1, I, x$1, S, _, R$1, Y$1, j, B$1, N$1, b$1, Ue$2, G$1, Pu$1, xt, Q$1, Er$2, we$1, hr$1, K$1, ze$1, xr$2, de$1, _r$2, _e$2, vt$2, Ke$1, vr$2, q$1, qe, ve$1, Yu$1, y, Sr$1, kr$2, ju$1, Oe$2, H$1, J, Te$2, me$1, te$1, Nt$2, tt$1, St$2, Mr$2, $r$2, ke$1, Vr$2, zr$2, T, rt$1, nt$1, M$1, V$2, kt$2, Gr$2, Qu$1, X$1, Pt$1, It$1, Xr$2, Le$1, tn$1, Pe$2, Ie$1, rn$1, co, un$1, ie$2, Yt$1, an$1, le$1, st$1, he$1, Dn$1, cn$1, Wt$1, jt$1, dn$1, at$1, Fo$1, O$1, Dt$1, lt$1, ct$1, ft$1, dt$1, Ft$1, mt$1, Re$2, wn$1, xn$1, _n$1, vn$1, Et$2, Gt$1, bn$1, Bo$1, Kt, Nn$1, se$1, Vn$1, ce$1, zn$1, Kn$1, qn$1, jo$1, Jn$1, Ho$1, Qn$1, Vo$1, uu$1, tu, nr$1, Go$1, Ko$1, qo$1, fu$1, or$1, Ce$1, ge$2, je$2, gt$1, pu$1, du$1, Fu$1, mu$1, Eu$1, hu$1, Cu$1, pi$1, di$1, $s$1, je$1, Vs$1, qs$1, zs$1, Ks$1, Hs$1, Ws$1, Js$1, vt$1, At$1, kt$1, _e$1, ls$1, cs$1, ps$1, us$1, fs$1, ds$1, ms$1, Oe$1, Tr$1, St$1, Pe$1, ge$1, wt$1, xs$1, Te$1, Er$1, Ts$1, Fe, As$1, Be$1, Re$1, Dr$1, ie$1, Mr$1, Or$1, Fr, Br$1, Ss$1, Rr$1, ws$1, Ur$1, _r$1, G, Ns$1, Ue$1, re$1, zr$1, ks$1, vs, V$1, Kr$1, Xr$1, Fs$1, Ls$1, Ds$1, Ms, Os$1, Bs$1, Gr$1, Rs, Us$1, Nt$1, js, Qr$1, Ln$1, estree_exports, Wa, Js, Ar, qs, pt, Ws, Gs, _s, Us, ws, Ga, N, Ua, O, Ns, Ys, $s, Ha, et, Ge, Ks, zs, Ue, te, Lt, wt, Ot, w, dr, Qs, xr, Zs, tt, Qt, uo, hr, gr, v, re, Sr, ru, Br, vt, iu, U, se, kr, Do, we, _t, X, De, Eo, Co, pu, L, q, To, xo, su, br, _n, ho, wn, On, g, Eu, pe, Te, Ne, _r, go, Jt, Cu, rt, _e, nt, Xe, Ye, st, le, Pe, xe, He, Ve, $e, me, je, ve, jr, ut, Bo, Jn, Ct, Au, qn, Tu, Ke, vr, ke, Ee, Gn, ko, x, E, F, Rr, Un, bu, Kn, yt, ge, de, ku, Vo, $o, Ko, ip, ap, Ru, Dp, Se, at, ar, Wu, Gu, ns, Hu, Vu, ss, Mp, Rp, Ku, zu, Qu, Yp, Hp, ri, Vp, Zu, $p, ei, Kp, ni, oi, ci, ec, Be, mi, ac, ps, Me, Re, ls, Nr, ms, mc, Xr, bc, Ci, kc, Dt, lr, Mc, ki, Uc, Yc, Zc, el, nl, Ri, sl, ul, qi, ln, pl, cl, Wi, Ze, mn, yl, ds, Vi, Tl, Ki, Cn, Dr, Zi, ea, fr, la, Ll, Rl, Gl, Ls, Vl, Ia, Kl, La, Os, Oa, em, Er, kt, va, rm, nm, $d, NDVEmptyState_vue_vue_type_script_setup_true_lang_default, empty, title, description, wide, NDVEmptyState_vue_vue_type_style_index_0_lang_module_default, cssModules, NDVEmptyState_default;
    function Z() {}
    function Su$1(e, t, r, n, o) {
      for (var u = [], i; t;) u.push(t), i = t.previousComponent, delete t.previousComponent, t = i;
      u.reverse();
      for (var s = 0, a = u.length, D$1 = 0, l$1 = 0; s < a; s++) {
        var d$1 = u[s];
        if (d$1.removed) {
          if (d$1.value = e.join(n.slice(l$1, l$1 + d$1.count)), l$1 += d$1.count, s && u[s - 1].added) {
            var p = u[s - 1];
            u[s - 1] = u[s], u[s] = p;
          }
        } else {
          if (!d$1.added && o) {
            var f$1 = r.slice(D$1, D$1 + d$1.count);
            f$1 = f$1.map(function (F$1, m) {
              var E$1 = n[l$1 + m];
              return E$1.length > F$1.length ? E$1 : F$1;
            }), d$1.value = e.join(f$1);
          } else d$1.value = e.join(r.slice(D$1, D$1 + d$1.count));
          D$1 += d$1.count, d$1.added || (l$1 += d$1.count);
        }
      }
      var c = u[a - 1];
      return a > 1 && typeof c.value == "string" && (c.added || c.removed) && e.equals("", c.value) && (u[a - 2].value += c.value, u.pop()), u;
    }
    function $e$1(e) {
      "@babel/helpers - typeof";

      return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? $e$1 = function (t) {
        return typeof t;
      } : $e$1 = function (t) {
        return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
      }, $e$1(e);
    }
    function Bt$1(e, t, r, n, o) {
      t = t || [], r = r || [], n && (e = n(o, e));
      var u;
      for (u = 0; u < t.length; u += 1) if (t[u] === e) return r[u];
      var i;
      if (ku$1.call(e) === "[object Array]") {
        for (t.push(e), i = new Array(e.length), r.push(i), u = 0; u < e.length; u += 1) i[u] = Bt$1(e[u], t, r, n, o);
        return t.pop(), r.pop(), i;
      }
      if (e && e.toJSON && (e = e.toJSON()), $e$1(e) === "object" && e !== null) {
        t.push(e), i = {}, r.push(i);
        var s = [],
          a;
        for (a in e) e.hasOwnProperty(a) && s.push(a);
        for (s.sort(), u = 0; u < s.length; u += 1) a = s[u], i[a] = Bt$1(e[a], t, r, n, a);
        t.pop(), r.pop();
      } else i = e;
      return i;
    }
    function dr$2(e, t, r) {
      return Ve$1.diff(e, t, r);
    }
    function Fr$1(e) {
      let t = e.indexOf("\r");
      return t >= 0 ? e.charAt(t + 1) === `
` ? "crlf" : "cr" : "lf";
    }
    function Be$2(e) {
      switch (e) {
        case "cr":
          return "\r";
        case "crlf":
          return `\r
`;
        default:
          return `
`;
      }
    }
    function wt$2(e, t) {
      let r;
      switch (t) {
        case `
`:
          r = /\n/gu;
          break;
        case "\r":
          r = /\r/gu;
          break;
        case `\r
`:
          r = /\r\n/gu;
          break;
        default:
          throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`);
      }
      let n = e.match(r);
      return n ? n.length : 0;
    }
    function mr$2(e) {
      return ne$1(!1, e, /\r\n?/gu, `
`);
    }
    function Lu$1(e) {
      if (typeof e == "string") return U$1;
      if (Array.isArray(e)) return W;
      if (!e) return;
      let {
        type: t
      } = e;
      if (Ue$2.has(t)) return t;
    }
    function Iu$1(e) {
      let t = e === null ? "null" : typeof e;
      if (t !== "string" && t !== "object") return `Unexpected doc '${t}', 
Expected it to be 'string' or 'object'.`;
      if (G$1(e)) throw new Error("doc is valid.");
      let r = Object.prototype.toString.call(e);
      if (r !== "[object Object]") return `Unexpected doc '${r}'.`;
      let n = Pu$1([...Ue$2].map(o => `'${o}'`));
      return `Unexpected doc.type '${e.type}'.
Expected it to be ${n}.`;
    }
    function Ru$1(e, t, r, n) {
      let o = [e];
      for (; o.length > 0;) {
        let u = o.pop();
        if (u === Er$2) {
          r(o.pop());
          continue;
        }
        r && o.push(u, Er$2);
        let i = G$1(u);
        if (!i) throw new Q$1(u);
        if ((t == null ? void 0 : t(u)) !== !1) switch (i) {
          case W:
          case S:
            {
              let s = i === W ? u : u.parts;
              for (let D$1 = s.length - 1; D$1 >= 0; --D$1) o.push(s[D$1]);
              break;
            }
          case _:
            o.push(u.flatContents, u.breakContents);
            break;
          case x$1:
            if (n && u.expandedStates) for (let s = u.expandedStates.length, a = s - 1; a >= 0; --a) o.push(u.expandedStates[a]);else o.push(u.contents);
            break;
          case P$1:
          case L$1:
          case R$1:
          case N$1:
          case Y$1:
            o.push(u.contents);
            break;
          case U$1:
          case z$1:
          case I:
          case j:
          case B$1:
          case b$1:
            break;
          default:
            throw new Q$1(u);
        }
      }
    }
    function De$1(e) {
      return K$1(e), {
        type: L$1,
        contents: e
      };
    }
    function ae$2(e, t) {
      return K$1(t), {
        type: P$1,
        contents: t,
        n: e
      };
    }
    function _t$1(e, t = {}) {
      return K$1(e), ze$1(t.expandedStates, !0), {
        type: x$1,
        id: t.id,
        contents: e,
        break: !!t.shouldBreak,
        expandedStates: t.expandedStates
      };
    }
    function Cr$1(e) {
      return ae$2(Number.NEGATIVE_INFINITY, e);
    }
    function gr$2(e) {
      return ae$2({
        type: "root"
      }, e);
    }
    function yr$2(e) {
      return ae$2(-1, e);
    }
    function Ar$2(e, t) {
      return _t$1(e[0], {
        ...t,
        expandedStates: e
      });
    }
    function Ge$1(e) {
      return ze$1(e), {
        type: S,
        parts: e
      };
    }
    function Br$2(e, t = "", r = {}) {
      return K$1(e), t !== "" && K$1(t), {
        type: _,
        breakContents: e,
        flatContents: t,
        groupId: r.groupId
      };
    }
    function wr$2(e, t) {
      return K$1(e), {
        type: R$1,
        contents: e,
        groupId: t.groupId,
        negate: t.negate
      };
    }
    function xe$1(e) {
      return K$1(e), {
        type: Y$1,
        contents: e
      };
    }
    function be$2(e, t) {
      K$1(e), ze$1(t);
      let r = [];
      for (let n = 0; n < t.length; n++) n !== 0 && r.push(e), r.push(t[n]);
      return r;
    }
    function Je$1(e, t, r) {
      K$1(e);
      let n = e;
      if (t > 0) {
        for (let o = 0; o < Math.floor(t / r); ++o) n = De$1(n);
        n = ae$2(t % r, n), n = ae$2(Number.NEGATIVE_INFINITY, n);
      }
      return n;
    }
    function br$2(e, t) {
      return K$1(t), e ? {
        type: N$1,
        label: e,
        contents: t
      } : t;
    }
    function ee(e) {
      var t;
      if (!e) return "";
      if (Array.isArray(e)) {
        let r = [];
        for (let n of e) if (Array.isArray(n)) r.push(...ee(n));else {
          let o = ee(n);
          o !== "" && r.push(o);
        }
        return r;
      }
      return e.type === _ ? {
        ...e,
        breakContents: ee(e.breakContents),
        flatContents: ee(e.flatContents)
      } : e.type === x$1 ? {
        ...e,
        contents: ee(e.contents),
        expandedStates: (t = e.expandedStates) == null ? void 0 : t.map(ee)
      } : e.type === S ? {
        type: "fill",
        parts: e.parts.map(ee)
      } : e.contents ? {
        ...e,
        contents: ee(e.contents)
      } : e;
    }
    function Or$2(e) {
      let t = Object.create(null),
        r = /* @__PURE__ */new Set();
      return n(ee(e));
      function n(u, i, s) {
        var a, D$1;
        if (typeof u == "string") return JSON.stringify(u);
        if (Array.isArray(u)) {
          let l$1 = u.map(n).filter(Boolean);
          return l$1.length === 1 ? l$1[0] : `[${l$1.join(", ")}]`;
        }
        if (u.type === B$1) {
          let l$1 = ((a = s == null ? void 0 : s[i + 1]) == null ? void 0 : a.type) === b$1;
          return u.literal ? l$1 ? "literalline" : "literallineWithoutBreakParent" : u.hard ? l$1 ? "hardline" : "hardlineWithoutBreakParent" : u.soft ? "softline" : "line";
        }
        if (u.type === b$1) return ((D$1 = s == null ? void 0 : s[i - 1]) == null ? void 0 : D$1.type) === B$1 && s[i - 1].hard ? void 0 : "breakParent";
        if (u.type === I) return "trim";
        if (u.type === L$1) return "indent(" + n(u.contents) + ")";
        if (u.type === P$1) return u.n === Number.NEGATIVE_INFINITY ? "dedentToRoot(" + n(u.contents) + ")" : u.n < 0 ? "dedent(" + n(u.contents) + ")" : u.n.type === "root" ? "markAsRoot(" + n(u.contents) + ")" : "align(" + JSON.stringify(u.n) + ", " + n(u.contents) + ")";
        if (u.type === _) return "ifBreak(" + n(u.breakContents) + (u.flatContents ? ", " + n(u.flatContents) : "") + (u.groupId ? (u.flatContents ? "" : ", \"\"") + `, { groupId: ${o(u.groupId)} }` : "") + ")";
        if (u.type === R$1) {
          let l$1 = [];
          u.negate && l$1.push("negate: true"), u.groupId && l$1.push(`groupId: ${o(u.groupId)}`);
          let d$1 = l$1.length > 0 ? `, { ${l$1.join(", ")} }` : "";
          return `indentIfBreak(${n(u.contents)}${d$1})`;
        }
        if (u.type === x$1) {
          let l$1 = [];
          u.break && u.break !== "propagated" && l$1.push("shouldBreak: true"), u.id && l$1.push(`id: ${o(u.id)}`);
          let d$1 = l$1.length > 0 ? `, { ${l$1.join(", ")} }` : "";
          return u.expandedStates ? `conditionalGroup([${u.expandedStates.map(f$1 => n(f$1)).join(",")}]${d$1})` : `group(${n(u.contents)}${d$1})`;
        }
        if (u.type === S) return `fill([${u.parts.map(l$1 => n(l$1)).join(", ")}])`;
        if (u.type === Y$1) return "lineSuffix(" + n(u.contents) + ")";
        if (u.type === j) return "lineSuffixBoundary";
        if (u.type === N$1) return `label(${JSON.stringify(u.label)}, ${n(u.contents)})`;
        throw new Error("Unknown doc type " + u.type);
      }
      function o(u) {
        if (typeof u != "symbol") return JSON.stringify(String(u));
        if (u in t) return t[u];
        let i = u.description || "symbol";
        for (let s = 0;; s++) {
          let a = i + (s > 0 ? ` #${s}` : "");
          if (!r.has(a)) return r.add(a), t[u] = `Symbol.for(${JSON.stringify(a)})`;
        }
      }
    }
    function Nr$1(e) {
      return e === 12288 || e >= 65281 && e <= 65376 || e >= 65504 && e <= 65510;
    }
    function Tr$2(e) {
      return e >= 4352 && e <= 4447 || e === 8986 || e === 8987 || e === 9001 || e === 9002 || e >= 9193 && e <= 9196 || e === 9200 || e === 9203 || e === 9725 || e === 9726 || e === 9748 || e === 9749 || e >= 9800 && e <= 9811 || e === 9855 || e === 9875 || e === 9889 || e === 9898 || e === 9899 || e === 9917 || e === 9918 || e === 9924 || e === 9925 || e === 9934 || e === 9940 || e === 9962 || e === 9970 || e === 9971 || e === 9973 || e === 9978 || e === 9981 || e === 9989 || e === 9994 || e === 9995 || e === 10024 || e === 10060 || e === 10062 || e >= 10067 && e <= 10069 || e === 10071 || e >= 10133 && e <= 10135 || e === 10160 || e === 10175 || e === 11035 || e === 11036 || e === 11088 || e === 11093 || e >= 11904 && e <= 11929 || e >= 11931 && e <= 12019 || e >= 12032 && e <= 12245 || e >= 12272 && e <= 12287 || e >= 12289 && e <= 12350 || e >= 12353 && e <= 12438 || e >= 12441 && e <= 12543 || e >= 12549 && e <= 12591 || e >= 12593 && e <= 12686 || e >= 12688 && e <= 12771 || e >= 12783 && e <= 12830 || e >= 12832 && e <= 12871 || e >= 12880 && e <= 19903 || e >= 19968 && e <= 42124 || e >= 42128 && e <= 42182 || e >= 43360 && e <= 43388 || e >= 44032 && e <= 55203 || e >= 63744 && e <= 64255 || e >= 65040 && e <= 65049 || e >= 65072 && e <= 65106 || e >= 65108 && e <= 65126 || e >= 65128 && e <= 65131 || e >= 94176 && e <= 94180 || e === 94192 || e === 94193 || e >= 94208 && e <= 100343 || e >= 100352 && e <= 101589 || e >= 101632 && e <= 101640 || e >= 110576 && e <= 110579 || e >= 110581 && e <= 110587 || e === 110589 || e === 110590 || e >= 110592 && e <= 110882 || e === 110898 || e >= 110928 && e <= 110930 || e === 110933 || e >= 110948 && e <= 110951 || e >= 110960 && e <= 111355 || e === 126980 || e === 127183 || e === 127374 || e >= 127377 && e <= 127386 || e >= 127488 && e <= 127490 || e >= 127504 && e <= 127547 || e >= 127552 && e <= 127560 || e === 127568 || e === 127569 || e >= 127584 && e <= 127589 || e >= 127744 && e <= 127776 || e >= 127789 && e <= 127797 || e >= 127799 && e <= 127868 || e >= 127870 && e <= 127891 || e >= 127904 && e <= 127946 || e >= 127951 && e <= 127955 || e >= 127968 && e <= 127984 || e === 127988 || e >= 127992 && e <= 128062 || e === 128064 || e >= 128066 && e <= 128252 || e >= 128255 && e <= 128317 || e >= 128331 && e <= 128334 || e >= 128336 && e <= 128359 || e === 128378 || e === 128405 || e === 128406 || e === 128420 || e >= 128507 && e <= 128591 || e >= 128640 && e <= 128709 || e === 128716 || e >= 128720 && e <= 128722 || e >= 128725 && e <= 128727 || e >= 128732 && e <= 128735 || e === 128747 || e === 128748 || e >= 128756 && e <= 128764 || e >= 128992 && e <= 129003 || e === 129008 || e >= 129292 && e <= 129338 || e >= 129340 && e <= 129349 || e >= 129351 && e <= 129535 || e >= 129648 && e <= 129660 || e >= 129664 && e <= 129672 || e >= 129680 && e <= 129725 || e >= 129727 && e <= 129733 || e >= 129742 && e <= 129755 || e >= 129760 && e <= 129768 || e >= 129776 && e <= 129784 || e >= 131072 && e <= 196605 || e >= 196608 && e <= 262141;
    }
    function Hu$1(e) {
      if (!e) return 0;
      if (!ju$1.test(e)) return e.length;
      e = e.replace(Sr$1(), "  ");
      let t = 0;
      for (let r of e) {
        let n = r.codePointAt(0);
        n <= 31 || n >= 127 && n <= 159 || n >= 768 && n <= 879 || (t += kr$2(n) ? 1 : 2);
      }
      return t;
    }
    function Ne$1(e, t) {
      if (typeof e == "string") return t(e);
      let r = /* @__PURE__ */new Map();
      return n(e);
      function n(u) {
        if (r.has(u)) return r.get(u);
        let i = o(u);
        return r.set(u, i), i;
      }
      function o(u) {
        switch (G$1(u)) {
          case W:
            return t(u.map(n));
          case S:
            return t({
              ...u,
              parts: u.parts.map(n)
            });
          case _:
            return t({
              ...u,
              breakContents: n(u.breakContents),
              flatContents: n(u.flatContents)
            });
          case x$1:
            {
              let {
                expandedStates: i,
                contents: s
              } = u;
              return i ? (i = i.map(n), s = i[0]) : s = n(s), t({
                ...u,
                contents: s,
                expandedStates: i
              });
            }
          case P$1:
          case L$1:
          case R$1:
          case N$1:
          case Y$1:
            return t({
              ...u,
              contents: n(u.contents)
            });
          case U$1:
          case z$1:
          case I:
          case j:
          case B$1:
          case b$1:
            return t(u);
          default:
            throw new Q$1(u);
        }
      }
    }
    function Xe$1(e, t, r) {
      let n = r,
        o = !1;
      function u(i) {
        if (o) return !1;
        let s = t(i);
        s !== void 0 && (o = !0, n = s);
      }
      return we$1(e, u), n;
    }
    function Wu$1(e) {
      if (e.type === x$1 && e.break || e.type === B$1 && e.hard || e.type === b$1) return !0;
    }
    function Ir$2(e) {
      return Xe$1(e, Wu$1, !1);
    }
    function Lr$2(e) {
      if (e.length > 0) {
        let t = y(!1, e, -1);
        !t.expandedStates && !t.break && (t.break = "propagated");
      }
      return null;
    }
    function Rr$2(e) {
      let t = /* @__PURE__ */new Set(),
        r = [];
      function n(u) {
        if (u.type === b$1 && Lr$2(r), u.type === x$1) {
          if (r.push(u), t.has(u)) return !1;
          t.add(u);
        }
      }
      function o(u) {
        u.type === x$1 && r.pop().break && Lr$2(r);
      }
      we$1(e, n, o, !0);
    }
    function Mu$1(e) {
      return e.type === B$1 && !e.hard ? e.soft ? "" : " " : e.type === _ ? e.flatContents : e;
    }
    function Yr$1(e) {
      return Ne$1(e, Mu$1);
    }
    function Pr$2(e) {
      for (e = [...e]; e.length >= 2 && y(!1, e, -2).type === B$1 && y(!1, e, -1).type === b$1;) e.length -= 2;
      if (e.length > 0) {
        let t = Se$1(y(!1, e, -1));
        e[e.length - 1] = t;
      }
      return e;
    }
    function Se$1(e) {
      switch (G$1(e)) {
        case L$1:
        case R$1:
        case x$1:
        case Y$1:
        case N$1:
          {
            let t = Se$1(e.contents);
            return {
              ...e,
              contents: t
            };
          }
        case _:
          return {
            ...e,
            breakContents: Se$1(e.breakContents),
            flatContents: Se$1(e.flatContents)
          };
        case S:
          return {
            ...e,
            parts: Pr$2(e.parts)
          };
        case W:
          return Pr$2(e);
        case U$1:
          return e.replace(/[\n\r]*$/u, "");
        case P$1:
        case z$1:
        case I:
        case j:
        case B$1:
        case b$1:
          break;
        default:
          throw new Q$1(e);
      }
      return e;
    }
    function Ze$1(e) {
      return Se$1(Vu$1(e));
    }
    function $u$1(e) {
      switch (G$1(e)) {
        case S:
          if (e.parts.every(t => t === "")) return "";
          break;
        case x$1:
          if (!e.contents && !e.id && !e.break && !e.expandedStates) return "";
          if (e.contents.type === x$1 && e.contents.id === e.id && e.contents.break === e.break && e.contents.expandedStates === e.expandedStates) return e.contents;
          break;
        case P$1:
        case L$1:
        case R$1:
        case Y$1:
          if (!e.contents) return "";
          break;
        case _:
          if (!e.flatContents && !e.breakContents) return "";
          break;
        case W:
          {
            let t = [];
            for (let r of e) {
              if (!r) continue;
              let [n, ...o] = Array.isArray(r) ? r : [r];
              typeof n == "string" && typeof y(!1, t, -1) == "string" ? t[t.length - 1] += n : t.push(n), t.push(...o);
            }
            return t.length === 0 ? "" : t.length === 1 ? t[0] : t;
          }
        case U$1:
        case z$1:
        case I:
        case j:
        case B$1:
        case N$1:
        case b$1:
          break;
        default:
          throw new Q$1(e);
      }
      return e;
    }
    function Vu$1(e) {
      return Ne$1(e, t => $u$1(t));
    }
    function jr$2(e, t = qe) {
      return Ne$1(e, r => typeof r == "string" ? be$2(t, r.split(`
`)) : r);
    }
    function Uu$1(e) {
      if (e.type === B$1) return !0;
    }
    function Hr$2(e) {
      return Xe$1(e, Uu$1, !1);
    }
    function Qe$1(e, t) {
      return e.type === N$1 ? {
        ...e,
        contents: t(e.contents)
      } : t(e);
    }
    function Wr$2() {
      return {
        value: "",
        length: 0,
        queue: []
      };
    }
    function zu$1(e, t) {
      return bt$1(e, {
        type: "indent"
      }, t);
    }
    function Gu$1(e, t, r) {
      return t === Number.NEGATIVE_INFINITY ? e.root || Wr$2() : t < 0 ? bt$1(e, {
        type: "dedent"
      }, r) : t ? t.type === "root" ? {
        ...e,
        root: e
      } : bt$1(e, {
        type: typeof t == "string" ? "stringAlign" : "numberAlign",
        n: t
      }, r) : e;
    }
    function bt$1(e, t, r) {
      let n = t.type === "dedent" ? e.queue.slice(0, -1) : [...e.queue, t],
        o = "",
        u = 0,
        i = 0,
        s = 0;
      for (let c of n) switch (c.type) {
        case "indent":
          l$1(), r.useTabs ? a(1) : D$1(r.tabWidth);
          break;
        case "stringAlign":
          l$1(), o += c.n, u += c.n.length;
          break;
        case "numberAlign":
          i += 1, s += c.n;
          break;
        default:
          throw new Error(`Unexpected type '${c.type}'`);
      }
      return f$1(), {
        ...e,
        value: o,
        length: u,
        queue: n
      };
      function a(c) {
        o += "	".repeat(c), u += r.tabWidth * c;
      }
      function D$1(c) {
        o += " ".repeat(c), u += c;
      }
      function l$1() {
        r.useTabs ? d$1() : f$1();
      }
      function d$1() {
        i > 0 && a(i), p();
      }
      function f$1() {
        s > 0 && D$1(s), p();
      }
      function p() {
        i = 0, s = 0;
      }
    }
    function Ot$1(e) {
      let t = 0,
        r = 0,
        n = e.length;
      e: for (; n--;) {
        let o = e[n];
        if (o === Te$2) {
          r++;
          continue;
        }
        for (let u = o.length - 1; u >= 0; u--) {
          let i = o[u];
          if (i === " " || i === "	") t++;else {
            e[n] = o.slice(0, u + 1);
            break e;
          }
        }
      }
      if (t > 0 || r > 0) for (e.length = n + 1; r-- > 0;) e.push(Te$2);
      return t;
    }
    function et$1(e, t, r, n, o, u) {
      if (r === Number.POSITIVE_INFINITY) return !0;
      let i = t.length,
        s = [e],
        a = [];
      for (; r >= 0;) {
        if (s.length === 0) {
          if (i === 0) return !0;
          s.push(t[--i]);
          continue;
        }
        let {
            mode: D$1,
            doc: l$1
          } = s.pop(),
          d$1 = G$1(l$1);
        switch (d$1) {
          case U$1:
            a.push(l$1), r -= Oe$2(l$1);
            break;
          case W:
          case S:
            {
              let f$1 = d$1 === W ? l$1 : l$1.parts;
              for (let p = f$1.length - 1; p >= 0; p--) s.push({
                mode: D$1,
                doc: f$1[p]
              });
              break;
            }
          case L$1:
          case P$1:
          case R$1:
          case N$1:
            s.push({
              mode: D$1,
              doc: l$1.contents
            });
            break;
          case I:
            r += Ot$1(a);
            break;
          case x$1:
            {
              if (u && l$1.break) return !1;
              let f$1 = l$1.break ? H$1 : D$1,
                p = l$1.expandedStates && f$1 === H$1 ? y(!1, l$1.expandedStates, -1) : l$1.contents;
              s.push({
                mode: f$1,
                doc: p
              });
              break;
            }
          case _:
            {
              let p = (l$1.groupId ? o[l$1.groupId] || J : D$1) === H$1 ? l$1.breakContents : l$1.flatContents;
              p && s.push({
                mode: D$1,
                doc: p
              });
              break;
            }
          case B$1:
            if (D$1 === H$1 || l$1.hard) return !0;
            l$1.soft || (a.push(" "), r--);
            break;
          case Y$1:
            n = !0;
            break;
          case j:
            if (n) return !1;
            break;
        }
      }
      return !1;
    }
    function Fe$1(e, t) {
      let r = {},
        n = t.printWidth,
        o = Be$2(t.endOfLine),
        u = 0,
        i = [{
          ind: Wr$2(),
          mode: H$1,
          doc: e
        }],
        s = [],
        a = !1,
        D$1 = [],
        l$1 = 0;
      for (Rr$2(e); i.length > 0;) {
        let {
          ind: f$1,
          mode: p,
          doc: c
        } = i.pop();
        switch (G$1(c)) {
          case U$1:
            {
              let F$1 = o !== `
` ? ne$1(!1, c, `
`, o) : c;
              s.push(F$1), i.length > 0 && (u += Oe$2(F$1));
              break;
            }
          case W:
            for (let F$1 = c.length - 1; F$1 >= 0; F$1--) i.push({
              ind: f$1,
              mode: p,
              doc: c[F$1]
            });
            break;
          case z$1:
            if (l$1 >= 2) throw new Error("There are too many 'cursor' in doc.");
            s.push(Te$2), l$1++;
            break;
          case L$1:
            i.push({
              ind: zu$1(f$1, t),
              mode: p,
              doc: c.contents
            });
            break;
          case P$1:
            i.push({
              ind: Gu$1(f$1, c.n, t),
              mode: p,
              doc: c.contents
            });
            break;
          case I:
            u -= Ot$1(s);
            break;
          case x$1:
            switch (p) {
              case J:
                if (!a) {
                  i.push({
                    ind: f$1,
                    mode: c.break ? H$1 : J,
                    doc: c.contents
                  });
                  break;
                }
              case H$1:
                {
                  a = !1;
                  let F$1 = {
                      ind: f$1,
                      mode: J,
                      doc: c.contents
                    },
                    m = n - u,
                    E$1 = D$1.length > 0;
                  if (!c.break && et$1(F$1, i, m, E$1, r)) i.push(F$1);else if (c.expandedStates) {
                    let A = y(!1, c.expandedStates, -1);
                    if (c.break) {
                      i.push({
                        ind: f$1,
                        mode: H$1,
                        doc: A
                      });
                      break;
                    } else for (let w$1 = 1; w$1 < c.expandedStates.length + 1; w$1++) if (w$1 >= c.expandedStates.length) {
                      i.push({
                        ind: f$1,
                        mode: H$1,
                        doc: A
                      });
                      break;
                    } else {
                      let C = {
                        ind: f$1,
                        mode: J,
                        doc: c.expandedStates[w$1]
                      };
                      if (et$1(C, i, m, E$1, r)) {
                        i.push(C);
                        break;
                      }
                    }
                  } else i.push({
                    ind: f$1,
                    mode: H$1,
                    doc: c.contents
                  });
                  break;
                }
            }
            c.id && (r[c.id] = y(!1, i, -1).mode);
            break;
          case S:
            {
              let F$1 = n - u,
                {
                  parts: m
                } = c;
              if (m.length === 0) break;
              let [E$1, A] = m,
                w$1 = {
                  ind: f$1,
                  mode: J,
                  doc: E$1
                },
                h = {
                  ind: f$1,
                  mode: H$1,
                  doc: E$1
                },
                C = et$1(w$1, [], F$1, D$1.length > 0, r, !0);
              if (m.length === 1) {
                C ? i.push(w$1) : i.push(h);
                break;
              }
              let k$1 = {
                  ind: f$1,
                  mode: J,
                  doc: A
                },
                v$1 = {
                  ind: f$1,
                  mode: H$1,
                  doc: A
                };
              if (m.length === 2) {
                C ? i.push(k$1, w$1) : i.push(v$1, h);
                break;
              }
              m.splice(0, 2);
              let $$1 = {
                  ind: f$1,
                  mode: p,
                  doc: Ge$1(m)
                },
                ye$1 = m[0];
              et$1({
                ind: f$1,
                mode: J,
                doc: [E$1, A, ye$1]
              }, [], F$1, D$1.length > 0, r, !0) ? i.push($$1, k$1, w$1) : C ? i.push($$1, v$1, w$1) : i.push($$1, v$1, h);
              break;
            }
          case _:
          case R$1:
            {
              let F$1 = c.groupId ? r[c.groupId] : p;
              if (F$1 === H$1) {
                let m = c.type === _ ? c.breakContents : c.negate ? c.contents : De$1(c.contents);
                m && i.push({
                  ind: f$1,
                  mode: p,
                  doc: m
                });
              }
              if (F$1 === J) {
                let m = c.type === _ ? c.flatContents : c.negate ? De$1(c.contents) : c.contents;
                m && i.push({
                  ind: f$1,
                  mode: p,
                  doc: m
                });
              }
              break;
            }
          case Y$1:
            D$1.push({
              ind: f$1,
              mode: p,
              doc: c.contents
            });
            break;
          case j:
            D$1.length > 0 && i.push({
              ind: f$1,
              mode: p,
              doc: _e$2
            });
            break;
          case B$1:
            switch (p) {
              case J:
                if (c.hard) a = !0;else {
                  c.soft || (s.push(" "), u += 1);
                  break;
                }
              case H$1:
                if (D$1.length > 0) {
                  i.push({
                    ind: f$1,
                    mode: p,
                    doc: c
                  }, ...D$1.reverse()), D$1.length = 0;
                  break;
                }
                c.literal ? f$1.root ? (s.push(o, f$1.root.value), u = f$1.root.length) : (s.push(o), u = 0) : (u -= Ot$1(s), s.push(o + f$1.value), u = f$1.length);
                break;
            }
            break;
          case N$1:
            i.push({
              ind: f$1,
              mode: p,
              doc: c.contents
            });
            break;
          case b$1:
            break;
          default:
            throw new Q$1(c);
        }
        i.length === 0 && D$1.length > 0 && (i.push(...D$1.reverse()), D$1.length = 0);
      }
      let d$1 = s.indexOf(Te$2);
      if (d$1 !== -1) {
        let f$1 = s.indexOf(Te$2, d$1 + 1),
          p = s.slice(0, d$1).join(""),
          c = s.slice(d$1 + 1, f$1).join(""),
          F$1 = s.slice(f$1 + 1).join("");
        return {
          formatted: p + c + F$1,
          cursorNodeStart: p.length,
          cursorNodeText: c
        };
      }
      return {
        formatted: s.join("")
      };
    }
    function Ku$1(e, t, r = 0) {
      let n = 0;
      for (let o = r; o < e.length; ++o) e[o] === "	" ? n = n + t - n % t : n++;
      return n;
    }
    function qu$1(e) {
      return e !== null && typeof e == "object";
    }
    function* Tt$1(e, t) {
      let {
          getVisitorKeys: r,
          filter: n = () => !0
        } = t,
        o = u => Vr$2(u) && n(u);
      for (let u of r(e)) {
        let i = e[u];
        if (Array.isArray(i)) for (let s of i) o(s) && (yield s);else o(i) && (yield i);
      }
    }
    function* Ur$2(e, t) {
      let r = [e];
      for (let n = 0; n < r.length; n++) {
        let o = r[n];
        for (let u of Tt$1(o, t)) yield u, r.push(u);
      }
    }
    function Ee$1(e) {
      return (t, r, n) => {
        let o = !!(n != null && n.backwards);
        if (r === !1) return !1;
        let {
            length: u
          } = t,
          i = r;
        for (; i >= 0 && i < u;) {
          let s = t.charAt(i);
          if (e instanceof RegExp) {
            if (!e.test(s)) return i;
          } else if (!e.includes(s)) return i;
          o ? i-- : i++;
        }
        return i === -1 || i === u ? i : !1;
      };
    }
    function Ju$1(e, t, r) {
      let n = !!(r != null && r.backwards);
      if (t === !1) return !1;
      let o = e.charAt(t);
      if (n) {
        if (e.charAt(t - 1) === "\r" && o === `
`) return t - 2;
        if (o === `
` || o === "\r" || o === "\u2028" || o === "\u2029") return t - 1;
      } else {
        if (o === "\r" && e.charAt(t + 1) === `
`) return t + 2;
        if (o === `
` || o === "\r" || o === "\u2028" || o === "\u2029") return t + 1;
      }
      return t;
    }
    function Xu$1(e, t, r = {}) {
      let n = T(e, r.backwards ? t - 1 : t, r);
      return n !== M$1(e, n, r);
    }
    function Zu$1(e) {
      return Array.isArray(e) && e.length > 0;
    }
    function eo$1(e) {
      return e ? t => e(t, Gr$2) : Qu$1;
    }
    function to$1(e) {
      let t = e.type || e.kind || "(unknown type)",
        r = String(e.name || e.id && (typeof e.id == "object" ? e.id.name : e.id) || e.key && (typeof e.key == "object" ? e.key.name : e.key) || e.value && (typeof e.value == "object" ? "" : String(e.value)) || e.operator || "");
      return r.length > 20 && (r = r.slice(0, 19) + "…"), t + (r ? " " + r : "");
    }
    function Lt$1(e, t) {
      (e.comments ?? (e.comments = [])).push(t), t.printed = !1, t.nodeDescription = to$1(e);
    }
    function ue(e, t) {
      t.leading = !0, t.trailing = !1, Lt$1(e, t);
    }
    function re$2(e, t, r) {
      t.leading = !1, t.trailing = !1, r && (t.marker = r), Lt$1(e, t);
    }
    function oe$1(e, t) {
      t.leading = !1, t.trailing = !0, Lt$1(e, t);
    }
    function ut$1(e, t) {
      if (Pt$1.has(e)) return Pt$1.get(e);
      let {
        printer: {
          getCommentChildNodes: r,
          canAttachComment: n,
          getVisitorKeys: o
        },
        locStart: u,
        locEnd: i
      } = t;
      if (!n) return [];
      let s = ((r == null ? void 0 : r(e, t)) ?? [...Tt$1(e, {
        getVisitorKeys: X$1(o)
      })]).flatMap(a => n(a) ? [a] : ut$1(a, t));
      return s.sort((a, D$1) => u(a) - u(D$1) || i(a) - i(D$1)), Pt$1.set(e, s), s;
    }
    function qr$2(e, t, r, n) {
      let {
          locStart: o,
          locEnd: u
        } = r,
        i = o(t),
        s = u(t),
        a = ut$1(e, r),
        D$1,
        l$1,
        d$1 = 0,
        f$1 = a.length;
      for (; d$1 < f$1;) {
        let p = d$1 + f$1 >> 1,
          c = a[p],
          F$1 = o(c),
          m = u(c);
        if (F$1 <= i && s <= m) return qr$2(c, t, r, c);
        if (m <= i) {
          D$1 = c, d$1 = p + 1;
          continue;
        }
        if (s <= F$1) {
          l$1 = c, f$1 = p;
          continue;
        }
        throw new Error("Comment location overlaps with node location");
      }
      if ((n == null ? void 0 : n.type) === "TemplateLiteral") {
        let {
            quasis: p
          } = n,
          c = Rt$1(p, t, r);
        D$1 && Rt$1(p, D$1, r) !== c && (D$1 = null), l$1 && Rt$1(p, l$1, r) !== c && (l$1 = null);
      }
      return {
        enclosingNode: n,
        precedingNode: D$1,
        followingNode: l$1
      };
    }
    function Jr$2(e, t) {
      let {
        comments: r
      } = e;
      if (delete e.comments, !kt$2(r) || !t.printer.canAttachComment) return;
      let n = [],
        {
          locStart: o,
          locEnd: u,
          printer: {
            experimentalFeatures: {
              avoidAstMutation: i = !1
            } = {},
            handleComments: s = {}
          },
          originalText: a
        } = t,
        {
          ownLine: D$1 = It$1,
          endOfLine: l$1 = It$1,
          remaining: d$1 = It$1
        } = s,
        f$1 = r.map((p, c) => ({
          ...qr$2(e, p, t),
          comment: p,
          text: a,
          options: t,
          ast: e,
          isLastComment: r.length - 1 === c
        }));
      for (let [p, c] of f$1.entries()) {
        let {
          comment: F$1,
          precedingNode: m,
          enclosingNode: E$1,
          followingNode: A,
          text: w$1,
          options: h,
          ast: C,
          isLastComment: k$1
        } = c;
        if (h.parser === "json" || h.parser === "json5" || h.parser === "jsonc" || h.parser === "__js_expression" || h.parser === "__ts_expression" || h.parser === "__vue_expression" || h.parser === "__vue_ts_expression") {
          if (o(F$1) - o(C) <= 0) {
            ue(C, F$1);
            continue;
          }
          if (u(F$1) - u(C) >= 0) {
            oe$1(C, F$1);
            continue;
          }
        }
        let v$1;
        if (i ? v$1 = [c] : (F$1.enclosingNode = E$1, F$1.precedingNode = m, F$1.followingNode = A, v$1 = [F$1, w$1, h, C, k$1]), ro$1(w$1, h, f$1, p)) F$1.placement = "ownLine", D$1(...v$1) || (A ? ue(A, F$1) : m ? oe$1(m, F$1) : E$1 ? re$2(E$1, F$1) : re$2(C, F$1));else if (no$1(w$1, h, f$1, p)) F$1.placement = "endOfLine", l$1(...v$1) || (m ? oe$1(m, F$1) : A ? ue(A, F$1) : E$1 ? re$2(E$1, F$1) : re$2(C, F$1));else if (F$1.placement = "remaining", !d$1(...v$1)) if (m && A) {
          let $$1 = n.length;
          $$1 > 0 && n[$$1 - 1].followingNode !== A && Kr$2(n, h), n.push(c);
        } else m ? oe$1(m, F$1) : A ? ue(A, F$1) : E$1 ? re$2(E$1, F$1) : re$2(C, F$1);
      }
      if (Kr$2(n, t), !i) for (let p of r) delete p.precedingNode, delete p.enclosingNode, delete p.followingNode;
    }
    function ro$1(e, t, r, n) {
      let {
          comment: o,
          precedingNode: u
        } = r[n],
        {
          locStart: i,
          locEnd: s
        } = t,
        a = i(o);
      if (u) for (let D$1 = n - 1; D$1 >= 0; D$1--) {
        let {
          comment: l$1,
          precedingNode: d$1
        } = r[D$1];
        if (d$1 !== u || !Xr$2(e.slice(s(l$1), a))) break;
        a = i(l$1);
      }
      return V$2(e, a, {
        backwards: !0
      });
    }
    function no$1(e, t, r, n) {
      let {
          comment: o,
          followingNode: u
        } = r[n],
        {
          locStart: i,
          locEnd: s
        } = t,
        a = s(o);
      if (u) for (let D$1 = n + 1; D$1 < r.length; D$1++) {
        let {
          comment: l$1,
          followingNode: d$1
        } = r[D$1];
        if (d$1 !== u || !Xr$2(e.slice(a, i(l$1)))) break;
        a = s(l$1);
      }
      return V$2(e, a);
    }
    function Kr$2(e, t) {
      var s, a;
      let r = e.length;
      if (r === 0) return;
      let {
          precedingNode: n,
          followingNode: o
        } = e[0],
        u = t.locStart(o),
        i;
      for (i = r; i > 0; --i) {
        let {
          comment: D$1,
          precedingNode: l$1,
          followingNode: d$1
        } = e[i - 1];
        ke$1.strictEqual(l$1, n), ke$1.strictEqual(d$1, o);
        let f$1 = t.originalText.slice(t.locEnd(D$1), u);
        if (((a = (s = t.printer).isGap) == null ? void 0 : a.call(s, f$1, t)) ?? /^[\s(]*$/u.test(f$1)) u = t.locStart(D$1);else break;
      }
      for (let [D$1, {
        comment: l$1
      }] of e.entries()) D$1 < i ? oe$1(n, l$1) : ue(o, l$1);
      for (let D$1 of [n, o]) D$1.comments && D$1.comments.length > 1 && D$1.comments.sort((l$1, d$1) => t.locStart(l$1) - t.locStart(d$1));
      e.length = 0;
    }
    function Rt$1(e, t, r) {
      let n = r.locStart(t) - 1;
      for (let o = 1; o < e.length; ++o) if (n < r.locStart(e[o])) return o - 1;
      return 0;
    }
    function uo$1(e, t) {
      let r = t - 1;
      r = T(e, r, {
        backwards: !0
      }), r = M$1(e, r, {
        backwards: !0
      }), r = T(e, r, {
        backwards: !0
      });
      let n = M$1(e, r, {
        backwards: !0
      });
      return r !== n;
    }
    function Zr$1(e, t) {
      let r = e.node;
      return r.printed = !0, t.printer.printComment(e, t);
    }
    function oo$1(e, t) {
      var l$1;
      let r = e.node,
        n = [Zr$1(e, t)],
        {
          printer: o,
          originalText: u,
          locStart: i,
          locEnd: s
        } = t;
      if ((l$1 = o.isBlockComment) == null ? void 0 : l$1.call(o, r)) {
        let d$1 = V$2(u, s(r)) ? V$2(u, i(r), {
          backwards: !0
        }) ? q$1 : Ke$1 : " ";
        n.push(d$1);
      } else n.push(q$1);
      let D$1 = M$1(u, T(u, s(r)));
      return D$1 !== !1 && V$2(u, D$1) && n.push(q$1), n;
    }
    function io$1(e, t, r) {
      var D$1;
      let n = e.node,
        o = Zr$1(e, t),
        {
          printer: u,
          originalText: i,
          locStart: s
        } = t,
        a = (D$1 = u.isBlockComment) == null ? void 0 : D$1.call(u, n);
      if (r != null && r.hasLineSuffix && !(r != null && r.isBlock) || V$2(i, s(n), {
        backwards: !0
      })) return {
        doc: xe$1([q$1, Le$1(i, s(n)) ? q$1 : "", o]),
        isBlock: a,
        hasLineSuffix: !0
      };
      return !a || r != null && r.hasLineSuffix ? {
        doc: [xe$1([" ", o]), de$1],
        isBlock: a,
        hasLineSuffix: !0
      } : {
        doc: [" ", o],
        isBlock: a,
        hasLineSuffix: !1
      };
    }
    function so$1(e, t) {
      let r = e.node;
      if (!r) return {};
      let n = t[Symbol.for("printedComments")];
      if ((r.comments || []).filter(a => !n.has(a)).length === 0) return {
        leading: "",
        trailing: ""
      };
      let u = [],
        i = [],
        s;
      return e.each(() => {
        let a = e.node;
        if (n != null && n.has(a)) return;
        let {
          leading: D$1,
          trailing: l$1
        } = a;
        D$1 ? u.push(oo$1(e, t)) : l$1 && (s = io$1(e, t, s), i.push(s.doc));
      }, "comments"), {
        leading: u,
        trailing: i
      };
    }
    function Qr$2(e, t, r) {
      let {
        leading: n,
        trailing: o
      } = so$1(e, r);
      return !n && !o ? t : Qe$1(t, u => [n, u, o]);
    }
    function en$1(e) {
      let {
        [Symbol.for("comments")]: t,
        [Symbol.for("printedComments")]: r
      } = e;
      for (let n of t) {
        if (!n.printed && !r.has(n)) throw new Error("Comment \"" + n.value.trim() + "\" was not printed. Please report this error!");
        delete n.printed;
      }
    }
    function ao(e) {
      return () => {};
    }
    function ot$1({
      plugins: e = [],
      showDeprecated: t = !1
    } = {}) {
      let r = e.flatMap(o => o.languages ?? []),
        n = [];
      for (let o of lo$1(Object.assign({}, ...e.map(({
        options: u
      }) => u), rn$1))) !t && o.deprecated || (Array.isArray(o.choices) && (t || (o.choices = o.choices.filter(u => !u.deprecated)), o.name === "parser" && (o.choices = [...o.choices, ...Do$1(o.choices, r, e)])), o.pluginDefaults = Object.fromEntries(e.filter(u => {
        var i;
        return ((i = u.defaultOptions) == null ? void 0 : i[o.name]) !== void 0;
      }).map(u => [u.name, u.defaultOptions[o.name]])), n.push(o));
      return {
        languages: r,
        options: n
      };
    }
    function* Do$1(e, t, r) {
      let n = new Set(e.map(o => o.value));
      for (let o of t) if (o.parsers) {
        for (let u of o.parsers) if (!n.has(u)) {
          n.add(u);
          let i = r.find(a => a.parsers && Object.prototype.hasOwnProperty.call(a.parsers, u)),
            s = o.name;
          i != null && i.name && (s += ` (plugin: ${i.name})`), yield {
            value: u,
            description: s
          };
        }
      }
    }
    function lo$1(e) {
      let t = [];
      for (let [r, n] of Object.entries(e)) {
        let o = {
          name: r,
          ...n
        };
        Array.isArray(o.default) && (o.default = y(!1, o.default, -1).value), t.push(o);
      }
      return t;
    }
    function nn$1(e, t) {
      if (!t) return;
      let r = co(t).toLowerCase();
      return e.find(({
        filenames: n
      }) => n == null ? void 0 : n.some(o => o.toLowerCase() === r)) ?? e.find(({
        extensions: n
      }) => n == null ? void 0 : n.some(o => r.endsWith(o)));
    }
    function fo$1(e, t) {
      if (t) return e.find(({
        name: r
      }) => r.toLowerCase() === t) ?? e.find(({
        aliases: r
      }) => r == null ? void 0 : r.includes(t)) ?? e.find(({
        extensions: r
      }) => r == null ? void 0 : r.includes(`.${t}`));
    }
    function po(e, t) {
      let r = e.plugins.flatMap(o => o.languages ?? []),
        n = fo$1(r, t.language) ?? nn$1(r, t.physicalFile) ?? nn$1(r, t.file) ?? (t.physicalFile, void 0);
      return n == null ? void 0 : n.parsers[0];
    }
    function ln$1(e, t, r, n) {
      return [`Invalid ${le$1.default.red(n.key(e))} value.`, `Expected ${le$1.default.blue(r)},`, `but received ${t === st$1 ? le$1.default.gray("nothing") : le$1.default.red(n.value(t))}.`].join(" ");
    }
    function fn$1({
      text: e,
      list: t
    }, r) {
      let n = [];
      return e && n.push(`- ${le$1.default.blue(e)}`), t && n.push([`- ${le$1.default.blue(t.title)}:`].concat(t.values.map(o => fn$1(o, r - Dn$1.length).replace(/^|\n/g, `$&${Dn$1}`))).join(`
`)), pn$1(n, r);
    }
    function pn$1(e, t) {
      if (e.length === 1) return e[0];
      let [r, n] = e,
        [o, u] = e.map(i => i.split(`
`, 1)[0].length);
      return o > t && o > u ? n : r;
    }
    function Ht$1(e, t) {
      if (e === t) return 0;
      let r = e;
      e.length > t.length && (e = t, t = r);
      let n = e.length,
        o = t.length;
      for (; n > 0 && e.charCodeAt(~-n) === t.charCodeAt(~-o);) n--, o--;
      let u = 0;
      for (; u < n && e.charCodeAt(u) === t.charCodeAt(u);) u++;
      if (n -= u, o -= u, n === 0) return o;
      let i,
        s,
        a,
        D$1,
        l$1 = 0,
        d$1 = 0;
      for (; l$1 < n;) dn$1[l$1] = e.charCodeAt(u + l$1), jt$1[l$1] = ++l$1;
      for (; d$1 < o;) for (i = t.charCodeAt(u + d$1), a = d$1++, s = d$1, l$1 = 0; l$1 < n; l$1++) D$1 = i === dn$1[l$1] ? a : a + 1, a = jt$1[l$1], s = jt$1[l$1] = a > s ? D$1 > s ? s + 1 : D$1 : D$1 > a ? a + 1 : D$1;
      return s;
    }
    function mo$1(e, t) {
      let r = new e(t),
        n = Object.create(r);
      for (let o of Fo$1) o in t && (n[o] = Eo$1(t[o], r, O$1.prototype[o].length));
      return n;
    }
    function Eo$1(e, t, r) {
      return typeof e == "function" ? (...n) => e(...n.slice(0, r - 1), t, ...n.slice(r - 1)) : () => e;
    }
    function Fn$1({
      from: e,
      to: t
    }) {
      return {
        from: [e],
        to: t
      };
    }
    function En$1(e, t) {
      let r = Object.create(null);
      for (let n of e) {
        let o = n[t];
        if (r[o]) throw new Error(`Duplicate ${t} ${JSON.stringify(o)}`);
        r[o] = n;
      }
      return r;
    }
    function hn$1(e, t) {
      let r = /* @__PURE__ */new Map();
      for (let n of e) {
        let o = n[t];
        if (r.has(o)) throw new Error(`Duplicate ${t} ${JSON.stringify(o)}`);
        r.set(o, n);
      }
      return r;
    }
    function Cn$1() {
      let e = Object.create(null);
      return t => {
        let r = JSON.stringify(t);
        return e[r] ? !0 : (e[r] = !0, !1);
      };
    }
    function gn$1(e, t) {
      let r = [],
        n = [];
      for (let o of e) t(o) ? r.push(o) : n.push(o);
      return [r, n];
    }
    function yn$1(e) {
      return e === Math.floor(e);
    }
    function An$1(e, t) {
      if (e === t) return 0;
      let r = typeof e,
        n = typeof t,
        o = ["undefined", "object", "boolean", "number", "string"];
      return r !== n ? o.indexOf(r) - o.indexOf(n) : r !== "string" ? Number(e) - Number(t) : e.localeCompare(t);
    }
    function Bn$1(e) {
      return (...t) => {
        let r = e(...t);
        return typeof r == "string" ? new Error(r) : r;
      };
    }
    function Mt$1(e) {
      return e === void 0 ? {} : e;
    }
    function $t(e) {
      if (typeof e == "string") return {
        text: e
      };
      let {
        text: t,
        list: r
      } = e;
      return ho$1((t || r) !== void 0, "Unexpected `expected` result, there should be at least one field."), r ? {
        text: t,
        list: {
          title: r.title,
          values: r.values.map($t)
        }
      } : {
        text: t
      };
    }
    function Vt$1(e, t) {
      return e === !0 ? !0 : e === !1 ? {
        value: t
      } : e;
    }
    function Ut$1(e, t, r = !1) {
      return e === !1 ? !1 : e === !0 ? r ? !0 : [{
        value: t
      }] : "value" in e ? [e] : e.length === 0 ? !1 : e;
    }
    function mn$1(e, t) {
      return typeof e == "string" || "key" in e ? {
        from: t,
        to: e
      } : "from" in e ? {
        from: e.from,
        to: e.to
      } : {
        from: t,
        to: e.to
      };
    }
    function pt$1(e, t) {
      return e === void 0 ? [] : Array.isArray(e) ? e.map(r => mn$1(r, t)) : [mn$1(e, t)];
    }
    function zt(e, t) {
      let r = pt$1(typeof e == "object" && "redirect" in e ? e.redirect : e, t);
      return r.length === 0 ? {
        remain: t,
        redirect: r
      } : typeof e == "object" && "remain" in e ? {
        remain: e.remain,
        redirect: r
      } : {
        redirect: r
      };
    }
    function ho$1(e, t) {
      if (!e) throw new Error(t);
    }
    function go$1(e, t, {
      logger: r = !1,
      isCLI: n = !1,
      passThrough: o = !1,
      FlagSchema: u,
      descriptor: i
    } = {}) {
      if (n) {
        if (!u) throw new Error("'FlagSchema' option is required.");
        if (!i) throw new Error("'descriptor' option is required.");
      } else i = ie$2;
      let s = o ? Array.isArray(o) ? (f$1, p) => o.includes(f$1) ? {
          [f$1]: p
        } : void 0 : (f$1, p) => ({
          [f$1]: p
        }) : (f$1, p, c) => {
          let {
            _: F$1,
            ...m
          } = c.schemas;
          return at$1(f$1, p, {
            ...c,
            schemas: m
          });
        },
        D$1 = new Et$2(yo$1(t, {
          isCLI: n,
          FlagSchema: u
        }), {
          logger: r,
          unknown: s,
          descriptor: i
        }),
        l$1 = r !== !1;
      l$1 && Gt$1 && (D$1._hasDeprecationWarned = Gt$1);
      let d$1 = D$1.normalize(e);
      return l$1 && (Gt$1 = D$1._hasDeprecationWarned), d$1;
    }
    function yo$1(e, {
      isCLI: t,
      FlagSchema: r
    }) {
      let n = [];
      t && n.push(lt$1.create({
        name: "_"
      }));
      for (let o of e) n.push(Ao$1(o, {
        isCLI: t,
        optionInfos: e,
        FlagSchema: r
      })), o.alias && t && n.push(Dt$1.create({
        name: o.alias,
        sourceName: o.name
      }));
      return n;
    }
    function Ao$1(e, {
      isCLI: t,
      optionInfos: r,
      FlagSchema: n
    }) {
      let {
          name: o
        } = e,
        u = {
          name: o
        },
        i,
        s = {};
      switch (e.type) {
        case "int":
          i = mt$1, t && (u.preprocess = Number);
          break;
        case "string":
          i = Re$2;
          break;
        case "choice":
          i = dt$1, u.choices = e.choices.map(a => a != null && a.redirect ? {
            ...a,
            redirect: {
              to: {
                key: e.name,
                value: a.redirect
              }
            }
          } : a);
          break;
        case "boolean":
          i = ft$1;
          break;
        case "flag":
          i = n, u.flags = r.flatMap(a => [a.alias, a.description && a.name, a.oppositeDescription && `no-${a.name}`].filter(Boolean));
          break;
        case "path":
          i = Re$2;
          break;
        default:
          throw new Error(`Unexpected type ${e.type}`);
      }
      if (e.exception ? u.validate = (a, D$1, l$1) => e.exception(a) || D$1.validate(a, l$1) : u.validate = (a, D$1, l$1) => a === void 0 || D$1.validate(a, l$1), e.redirect && (s.redirect = a => a ? {
        to: typeof e.redirect == "string" ? e.redirect : {
          key: e.redirect.option,
          value: e.redirect.value
        }
      } : void 0), e.deprecated && (s.deprecated = !0), t && !e.array) {
        let a = u.preprocess || (D$1 => D$1);
        u.preprocess = (D$1, l$1, d$1) => l$1.preprocess(a(Array.isArray(D$1) ? y(!1, D$1, -1) : D$1), d$1);
      }
      return e.array ? ct$1.create({
        ...(t ? {
          preprocess: a => Array.isArray(a) ? a : [a]
        } : {}),
        ...s,
        valueSchema: i.create(u)
      }) : i.create({
        ...u,
        ...s
      });
    }
    function qt$1(e, t) {
      if (!t) throw new Error("parserName is required.");
      let r = Kt(!1, e, o => o.parsers && Object.prototype.hasOwnProperty.call(o.parsers, t));
      if (r) return r;
      let n = `Couldn't resolve parser "${t}".`;
      throw n += " Plugins must be explicitly added to the standalone bundle.", new Pe$2(n);
    }
    function On$1(e, t) {
      if (!t) throw new Error("astFormat is required.");
      let r = Kt(!1, e, o => o.printers && Object.prototype.hasOwnProperty.call(o.printers, t));
      if (r) return r;
      let n = `Couldn't find plugin for AST format "${t}".`;
      throw n += " Plugins must be explicitly added to the standalone bundle.", new Pe$2(n);
    }
    function ht$1({
      plugins: e,
      parser: t
    }) {
      return Jt$1(qt$1(e, t), t);
    }
    function Jt$1(e, t) {
      let r = e.parsers[t];
      return typeof r == "function" ? r() : r;
    }
    function Sn$1(e, t) {
      let r = e.printers[t];
      return typeof r == "function" ? r() : r;
    }
    async function wo$1(e, t = {}) {
      var d$1;
      let r = {
        ...e
      };
      if (!r.parser) if (r.filepath) {
        if (r.parser = un$1(r, {
          physicalFile: r.filepath
        }), !r.parser) throw new Ie$1(`No parser could be inferred for file "${r.filepath}".`);
      } else throw new Ie$1("No parser and no file path given, couldn't infer a parser.");
      let n = ot$1({
          plugins: e.plugins,
          showDeprecated: !0
        }).options,
        o = {
          ...Nn$1,
          ...Object.fromEntries(n.filter(f$1 => f$1.default !== void 0).map(f$1 => [f$1.name, f$1.default]))
        },
        u = qt$1(r.plugins, r.parser),
        i = await Jt$1(u, r.parser);
      r.astFormat = i.astFormat, r.locEnd = i.locEnd, r.locStart = i.locStart;
      let s = (d$1 = u.printers) != null && d$1[i.astFormat] ? u : On$1(r.plugins, i.astFormat);
      r.printer = await Sn$1(s, i.astFormat);
      let D$1 = s.defaultOptions ? Object.fromEntries(Object.entries(s.defaultOptions).filter(([, f$1]) => f$1 !== void 0)) : {},
        l$1 = {
          ...o,
          ...D$1
        };
      for (let [f$1, p] of Object.entries(l$1)) (r[f$1] === null || r[f$1] === void 0) && (r[f$1] = p);
      return r.parser === "json" && (r.trailingComma = "none"), bn$1(r, n, {
        passThrough: Object.keys(Nn$1),
        ...t
      });
    }
    async function ko$1(e, t) {
      let r = await ht$1(t),
        n = r.preprocess ? r.preprocess(e, t) : e;
      t.originalText = n;
      let o;
      try {
        o = await r.parse(n, t, t);
      } catch (u) {
        Lo$1(u, e);
      }
      return {
        text: n,
        ast: o
      };
    }
    function Lo$1(e, t) {
      let {
        loc: r
      } = e;
      if (r) {
        let n = (0, Vn$1.codeFrameColumns)(t, r, {
          highlightCode: !0
        });
        throw e.message += `
` + n, e.codeFrame = n, e;
      }
      throw e;
    }
    async function Un$1(e, t, r, n, o) {
      let {
        embeddedLanguageFormatting: u,
        printer: {
          embed: i,
          hasPrettierIgnore: s = () => !1,
          getVisitorKeys: a
        }
      } = r;
      if (!i || u !== "auto") return;
      if (i.length > 2) throw new Error("printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed");
      let D$1 = X$1(i.getVisitorKeys ?? a),
        l$1 = [];
      p();
      let d$1 = e.stack;
      for (let {
        print: c,
        node: F$1,
        pathStack: m
      } of l$1) try {
        e.stack = m;
        let E$1 = await c(f$1, t, e, r);
        E$1 && o.set(F$1, E$1);
      } catch (E$1) {
        if (globalThis.PRETTIER_DEBUG) throw E$1;
      }
      e.stack = d$1;
      function f$1(c, F$1) {
        return Po$1(c, F$1, r, n);
      }
      function p() {
        let {
          node: c
        } = e;
        if (c === null || typeof c != "object" || s(e)) return;
        for (let m of D$1(c)) Array.isArray(c[m]) ? e.each(p, m) : e.call(p, m);
        let F$1 = i(e, r);
        if (F$1) {
          if (typeof F$1 == "function") {
            l$1.push({
              print: F$1,
              node: c,
              pathStack: [...e.stack]
            });
            return;
          }
          o.set(c, F$1);
        }
      }
    }
    async function Po$1(e, t, r, n) {
      let o = await se$1({
          ...r,
          ...t,
          parentParser: r.parser,
          originalText: e
        }, {
          passThrough: !0
        }),
        {
          ast: u
        } = await ce$1(e, o);
      return Ze$1(await n(u, o));
    }
    function Io$1(e, t) {
      let {
          originalText: r,
          [Symbol.for("comments")]: n,
          locStart: o,
          locEnd: u,
          [Symbol.for("printedComments")]: i
        } = t,
        {
          node: s
        } = e,
        a = o(s),
        D$1 = u(s);
      for (let l$1 of n) o(l$1) >= a && u(l$1) <= D$1 && i.add(l$1);
      return r.slice(a, D$1);
    }
    async function Ye$1(e, t) {
      ({
        ast: e
      } = await Qt$1(e, t));
      let r = /* @__PURE__ */new Map(),
        n = new Mr$2(e),
        o = tn$1(t),
        u = /* @__PURE__ */new Map();
      await Un$1(n, s, t, Ye$1, u);
      let i = await Gn$1(n, t, s, void 0, u);
      return en$1(t), i;
      function s(D$1, l$1) {
        return D$1 === void 0 || D$1 === n ? a(l$1) : Array.isArray(D$1) ? n.call(() => a(l$1), ...D$1) : n.call(() => a(l$1), D$1);
      }
      function a(D$1) {
        o(n);
        let l$1 = n.node;
        if (l$1 == null) return "";
        let d$1 = l$1 && typeof l$1 == "object" && D$1 === void 0;
        if (d$1 && r.has(l$1)) return r.get(l$1);
        let f$1 = Gn$1(n, t, s, D$1, u);
        return d$1 && r.set(l$1, f$1), f$1;
      }
    }
    function Gn$1(e, t, r, n, o) {
      var a;
      let {
          node: u
        } = e,
        {
          printer: i
        } = t,
        s;
      return (a = i.hasPrettierIgnore) != null && a.call(i, e) ? s = zn$1(e, t) : o.has(u) ? s = o.get(u) : s = i.print(e, t, r, n), u === t.cursorNode && (s = Qe$1(s, D$1 => [ve$1, D$1, ve$1])), i.printComment && (!i.willPrintOwnComments || !i.willPrintOwnComments(e, t)) && (s = Qr$2(e, s, t)), s;
    }
    async function Qt$1(e, t) {
      let r = e.comments ?? [];
      t[Symbol.for("comments")] = r, t[Symbol.for("tokens")] = e.tokens ?? [], t[Symbol.for("printedComments")] = /* @__PURE__ */new Set(), Jr$2(e, t);
      let {
        printer: {
          preprocess: n
        }
      } = t;
      return e = n ? await n(e, t) : e, {
        ast: e,
        comments: r
      };
    }
    function Ro$1(e, t) {
      let {
          cursorOffset: r,
          locStart: n,
          locEnd: o
        } = t,
        u = X$1(t.printer.getVisitorKeys),
        i = a => n(a) <= r && o(a) >= r,
        s = e;
      for (let a of Ur$2(e, {
        getVisitorKeys: u,
        filter: i
      })) s = a;
      return s;
    }
    function Yo$1(e, t) {
      let {
        printer: {
          massageAstNode: r,
          getVisitorKeys: n
        }
      } = t;
      if (!r) return e;
      let o = X$1(n),
        u = r.ignoredProperties ?? /* @__PURE__ */new Set();
      return i(e);
      function i(s, a) {
        if (!(s !== null && typeof s == "object")) return s;
        if (Array.isArray(s)) return s.map(f$1 => i(f$1, a)).filter(Boolean);
        let D$1 = {},
          l$1 = new Set(o(s));
        for (let f$1 in s) !Object.prototype.hasOwnProperty.call(s, f$1) || u.has(f$1) || (l$1.has(f$1) ? D$1[f$1] = i(s[f$1], s) : D$1[f$1] = s[f$1]);
        let d$1 = r(s, D$1, a);
        if (d$1 !== null) return d$1 ?? D$1;
      }
    }
    function Wo$1(e, t) {
      let r = [e.node, ...e.parentNodes],
        n = new Set([t.node, ...t.parentNodes]);
      return r.find(o => Qn$1.has(o.type) && n.has(o));
    }
    function Xn$1(e) {
      let t = Jn$1(!1, e, r => r.type !== "Program" && r.type !== "File");
      return t === -1 ? e : e.slice(0, t + 1);
    }
    function Mo$1(e, t, {
      locStart: r,
      locEnd: n
    }) {
      let o = e.node,
        u = t.node;
      if (o === u) return {
        startNode: o,
        endNode: u
      };
      let i = r(e.node);
      for (let a of Xn$1(t.parentNodes)) if (r(a) >= i) u = a;else break;
      let s = n(t.node);
      for (let a of Xn$1(e.parentNodes)) {
        if (n(a) <= s) o = a;else break;
        if (o === u) break;
      }
      return {
        startNode: o,
        endNode: u
      };
    }
    function er$1(e, t, r, n, o = [], u) {
      let {
          locStart: i,
          locEnd: s
        } = r,
        a = i(e),
        D$1 = s(e);
      if (!(t > D$1 || t < a || u === "rangeEnd" && t === a || u === "rangeStart" && t === D$1)) {
        for (let l$1 of ut$1(e, r)) {
          let d$1 = er$1(l$1, t, r, n, [e, ...o], u);
          if (d$1) return d$1;
        }
        if (!n || n(e, o[0])) return {
          node: e,
          parentNodes: o
        };
      }
    }
    function $o$1(e, t) {
      return t !== "DeclareExportDeclaration" && e !== "TypeParameterDeclaration" && (e === "Directive" || e === "TypeAlias" || e === "TSExportAssignment" || e.startsWith("Declare") || e.startsWith("TSDeclare") || e.endsWith("Statement") || e.endsWith("Declaration"));
    }
    function Zn$1(e, t, r) {
      if (!t) return !1;
      switch (e.parser) {
        case "flow":
        case "babel":
        case "babel-flow":
        case "babel-ts":
        case "typescript":
        case "acorn":
        case "espree":
        case "meriyah":
        case "__babel_estree":
          return $o$1(t.type, r == null ? void 0 : r.type);
        case "json":
        case "json5":
        case "jsonc":
        case "json-stringify":
          return Qn$1.has(t.type);
        case "graphql":
          return Vo$1.has(t.kind);
        case "vue":
          return t.tag !== "root";
      }
      return !1;
    }
    function eu$1(e, t, r) {
      let {
        rangeStart: n,
        rangeEnd: o,
        locStart: u,
        locEnd: i
      } = t;
      ke$1.ok(o > n);
      let s = e.slice(n, o).search(/\S/u),
        a = s === -1;
      if (!a) for (n += s; o > n && !/\S/u.test(e[o - 1]); --o);
      let D$1 = er$1(r, n, t, (p, c) => Zn$1(t, p, c), [], "rangeStart"),
        l$1 = a ? D$1 : er$1(r, o, t, p => Zn$1(t, p), [], "rangeEnd");
      if (!D$1 || !l$1) return {
        rangeStart: 0,
        rangeEnd: 0
      };
      let d$1, f$1;
      if (Ho$1(t)) {
        let p = Wo$1(D$1, l$1);
        d$1 = p, f$1 = p;
      } else ({
        startNode: d$1,
        endNode: f$1
      } = Mo$1(D$1, l$1, t));
      return {
        rangeStart: Math.min(u(d$1), u(f$1)),
        rangeEnd: Math.max(i(d$1), i(f$1))
      };
    }
    async function ou$1(e, t, r = 0) {
      if (!e || e.trim().length === 0) return {
        formatted: "",
        cursorOffset: -1,
        comments: []
      };
      let {
        ast: n,
        text: o
      } = await ce$1(e, t);
      t.cursorOffset >= 0 && (t.cursorNode = Kn$1(n, t));
      let u = await Ye$1(n, t, r);
      r > 0 && (u = Je$1([q$1, u], r, t.tabWidth));
      let i = Fe$1(u, t);
      if (r > 0) {
        let a = i.formatted.trim();
        i.cursorNodeStart !== void 0 && (i.cursorNodeStart -= i.formatted.indexOf(a)), i.formatted = a + Be$2(t.endOfLine);
      }
      let s = t[Symbol.for("comments")];
      if (t.cursorOffset >= 0) {
        let a, D$1, l$1, d$1, f$1;
        if (t.cursorNode && i.cursorNodeText ? (a = t.locStart(t.cursorNode), D$1 = o.slice(a, t.locEnd(t.cursorNode)), l$1 = t.cursorOffset - a, d$1 = i.cursorNodeStart, f$1 = i.cursorNodeText) : (a = 0, D$1 = o, l$1 = t.cursorOffset, d$1 = 0, f$1 = i.formatted), D$1 === f$1) return {
          formatted: i.formatted,
          cursorOffset: d$1 + l$1,
          comments: s
        };
        let p = D$1.split("");
        p.splice(l$1, 0, tu);
        let F$1 = dr$2(p, f$1.split("")),
          m = d$1;
        for (let E$1 of F$1) if (E$1.removed) {
          if (E$1.value.includes(tu)) break;
        } else m += E$1.count;
        return {
          formatted: i.formatted,
          cursorOffset: m,
          comments: s
        };
      }
      return {
        formatted: i.formatted,
        cursorOffset: -1,
        comments: s
      };
    }
    async function Uo$1(e, t) {
      let {
          ast: r,
          text: n
        } = await ce$1(e, t),
        {
          rangeStart: o,
          rangeEnd: u
        } = eu$1(n, t, r),
        i = n.slice(o, u),
        s = Math.min(o, n.lastIndexOf(`
`, o) + 1),
        a = n.slice(s, o).match(/^\s*/u)[0],
        D$1 = me$1(a, t.tabWidth),
        l$1 = await ou$1(i, {
          ...t,
          rangeStart: 0,
          rangeEnd: Number.POSITIVE_INFINITY,
          cursorOffset: t.cursorOffset > o && t.cursorOffset <= u ? t.cursorOffset - o : -1,
          endOfLine: "lf"
        }, D$1),
        d$1 = l$1.formatted.trimEnd(),
        {
          cursorOffset: f$1
        } = t;
      f$1 > u ? f$1 += d$1.length - i.length : l$1.cursorOffset >= 0 && (f$1 = l$1.cursorOffset + o);
      let p = n.slice(0, o) + d$1 + n.slice(u);
      if (t.endOfLine !== "lf") {
        let c = Be$2(t.endOfLine);
        f$1 >= 0 && c === `\r
` && (f$1 += wt$2(p.slice(0, f$1), `
`)), p = ne$1(!1, p, `
`, c);
      }
      return {
        formatted: p,
        cursorOffset: f$1,
        comments: l$1.comments
      };
    }
    function tr$1(e, t, r) {
      return typeof t != "number" || Number.isNaN(t) || t < 0 || t > e.length ? r : t;
    }
    function ru$1(e, t) {
      let {
        cursorOffset: r,
        rangeStart: n,
        rangeEnd: o
      } = t;
      return r = tr$1(e, r, -1), n = tr$1(e, n, 0), o = tr$1(e, o, e.length), {
        ...t,
        cursorOffset: r,
        rangeStart: n,
        rangeEnd: o
      };
    }
    function iu$1(e, t) {
      let {
          cursorOffset: r,
          rangeStart: n,
          rangeEnd: o,
          endOfLine: u
        } = ru$1(e, t),
        i = e.charAt(0) === uu$1;
      if (i && (e = e.slice(1), r--, n--, o--), u === "auto" && (u = Fr$1(e)), e.includes("\r")) {
        let s = a => wt$2(e.slice(0, Math.max(a, 0)), `\r
`);
        r -= s(r), n -= s(n), o -= s(o), e = mr$2(e);
      }
      return {
        hasBOM: i,
        text: e,
        options: ru$1(e, {
          ...t,
          cursorOffset: r,
          rangeStart: n,
          rangeEnd: o,
          endOfLine: u
        })
      };
    }
    async function nu$1(e, t) {
      let r = await ht$1(t);
      return !r.hasPragma || r.hasPragma(e);
    }
    async function rr$1(e, t) {
      let {
        hasBOM: r,
        text: n,
        options: o
      } = iu$1(e, await se$1(t));
      if (o.rangeStart >= o.rangeEnd && n !== "" || o.requirePragma && !(await nu$1(n, o))) return {
        formatted: e,
        cursorOffset: t.cursorOffset,
        comments: []
      };
      let u;
      return o.rangeStart > 0 || o.rangeEnd < n.length ? u = await Uo$1(n, o) : (!o.requirePragma && o.insertPragma && o.printer.insertPragma && !(await nu$1(n, o)) && (n = o.printer.insertPragma(n)), u = await ou$1(n, o)), r && (u.formatted = uu$1 + u.formatted, u.cursorOffset >= 0 && u.cursorOffset++), u;
    }
    async function su$1(e, t, r) {
      let {
          text: n,
          options: o
        } = iu$1(e, await se$1(t)),
        u = await ce$1(n, o);
      return r && (r.preprocessForPrint && (u.ast = await Qt$1(u.ast, o)), r.massage && (u.ast = qn$1(u.ast, o))), u;
    }
    async function au$1(e, t) {
      t = await se$1(t);
      return Fe$1(await Ye$1(e, t), t);
    }
    async function Du$1(e, t) {
      let {
        formatted: n
      } = await rr$1(Or$2(e), {
        ...t,
        parser: "__js_expression"
      });
      return n;
    }
    async function lu$1(e, t) {
      t = await se$1(t);
      let {
        ast: r
      } = await ce$1(e, t);
      return Ye$1(r, t);
    }
    async function cu$1(e, t) {
      return Fe$1(e, await se$1(t));
    }
    function Jo$1(e, t) {
      if (t === !1) return !1;
      if (e.charAt(t) === "/" && e.charAt(t + 1) === "*") {
        for (let r = t + 2; r < e.length; ++r) if (e.charAt(r) === "*" && e.charAt(r + 1) === "/") return r + 2;
      }
      return t;
    }
    function Xo$1(e, t) {
      return t === !1 ? !1 : e.charAt(t) === "/" && e.charAt(t + 1) === "/" ? nt$1(e, t) : t;
    }
    function Zo$1(e, t) {
      let r = null,
        n = t;
      for (; n !== r;) r = n, n = T(e, n), n = Ce$1(e, n), n = ge$2(e, n), n = M$1(e, n);
      return n;
    }
    function Qo$1(e, t) {
      let r = null,
        n = t;
      for (; n !== r;) r = n, n = rt$1(e, n), n = Ce$1(e, n), n = T(e, n);
      return n = ge$2(e, n), n = M$1(e, n), n !== !1 && V$2(e, n);
    }
    function ei$1(e, t) {
      let r = e.lastIndexOf(`
`);
      return r === -1 ? 0 : me$1(e.slice(r + 1).match(/^[\t ]*/u)[0], t);
    }
    function ur$1(e) {
      if (typeof e != "string") throw new TypeError("Expected a string");
      return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
    }
    function ti$1(e, t) {
      let r = e.match(new RegExp(`(${ur$1(t)})+`, "gu"));
      return r === null ? 0 : r.reduce((n, o) => Math.max(n, o.length / t.length), 0);
    }
    function ri$1(e, t) {
      let r = je$2(e, t);
      return r === !1 ? "" : e.charAt(r);
    }
    function ni$1(e, t, r) {
      for (let n = t; n < r; ++n) if (e.charAt(n) === `
`) return !0;
      return !1;
    }
    function ui$1(e, t, r = {}) {
      return T(e, r.backwards ? t - 1 : t, r) !== t;
    }
    function oi$1(e, t, r) {
      let n = t === "\"" ? "'" : "\"";
      return t + ne$1(!1, e, /\\(.)|(["'])/gsu, (i, s, a) => s === n ? s : a === t ? "\\" + a : a || (r && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/u.test(s) ? s : "\\" + s)) + t;
    }
    function ii$1(e, t, r) {
      return je$2(e, r(t));
    }
    function si$1(e, t) {
      return arguments.length === 2 || typeof t == "number" ? je$2(e, t) : ii$1(...arguments);
    }
    function ai$1(e, t, r) {
      return Le$1(e, r(t));
    }
    function Di$1(e, t) {
      return arguments.length === 2 || typeof t == "number" ? Le$1(e, t) : ai$1(...arguments);
    }
    function li$1(e, t, r) {
      return gt$1(e, r(t));
    }
    function ci$1(e, t) {
      return arguments.length === 2 || typeof t == "number" ? gt$1(e, t) : li$1(...arguments);
    }
    function fe$1(e, t = 1) {
      return async (...r) => {
        let n = r[t] ?? {},
          o = n.plugins ?? [];
        return r[t] = {
          ...n,
          plugins: Array.isArray(o) ? o : Object.values(o)
        }, e(...r);
      };
    }
    async function gu$1(e, t) {
      let {
        formatted: r
      } = await Cu$1(e, {
        ...t,
        cursorOffset: -1
      });
      return r;
    }
    async function fi$1(e, t) {
      return (await gu$1(e, t)) === e;
    }
    function Me$1(a) {
      return (t, e, s) => {
        let i = !!(s != null && s.backwards);
        if (e === !1) return !1;
        let {
            length: r
          } = t,
          n = e;
        for (; n >= 0 && n < r;) {
          let o = t.charAt(n);
          if (a instanceof RegExp) {
            if (!a.test(o)) return n;
          } else if (!a.includes(o)) return n;
          i ? n-- : n++;
        }
        return n === -1 || n === r ? n : !1;
      };
    }
    function dr$1(a, t) {
      if (t === !1) return !1;
      if (a.charAt(t) === "/" && a.charAt(t + 1) === "*") {
        for (let e = t + 2; e < a.length; ++e) if (a.charAt(e) === "*" && a.charAt(e + 1) === "/") return e + 2;
      }
      return t;
    }
    function mr$1(a, t, e) {
      let s = !!(e != null && e.backwards);
      if (t === !1) return !1;
      let i = a.charAt(t);
      if (s) {
        if (a.charAt(t - 1) === "\r" && i === `
`) return t - 2;
        if (i === `
` || i === "\r" || i === "\u2028" || i === "\u2029") return t - 1;
      } else {
        if (i === "\r" && a.charAt(t + 1) === `
`) return t + 2;
        if (i === `
` || i === "\r" || i === "\u2028" || i === "\u2029") return t + 1;
      }
      return t;
    }
    function yr$1(a, t) {
      return t === !1 ? !1 : a.charAt(t) === "/" && a.charAt(t + 1) === "/" ? cs$1(a, t) : t;
    }
    function xr$1(a, t) {
      let e = null,
        s = t;
      for (; s !== e;) e = s, s = ls$1(a, s), s = ps$1(a, s), s = fs$1(a, s), s = us$1(a, s);
      return s;
    }
    function Pr$1(a) {
      let t = [];
      for (let e of a) try {
        return e();
      } catch (s) {
        t.push(s);
      }
      throw Object.assign(/* @__PURE__ */new Error("All combinations failed"), {
        errors: t
      });
    }
    function gr$1(a) {
      if (!a.startsWith("#!")) return "";
      let t = a.indexOf(`
`);
      return t === -1 ? a : a.slice(0, t);
    }
    function br$1(a) {
      return Array.isArray(a) && a.length > 0;
    }
    function D(a) {
      var s, i, r;
      let t = ((s = a.range) == null ? void 0 : s[0]) ?? a.start,
        e = (r = ((i = a.declaration) == null ? void 0 : i.decorators) ?? a.decorators) == null ? void 0 : r[0];
      return e ? Math.min(D(e), t) : t;
    }
    function B(a) {
      var t;
      return ((t = a.range) == null ? void 0 : t[1]) ?? a.end;
    }
    function Ar$1(a) {
      let t = new Set(a);
      return e => t.has(e == null ? void 0 : e.type);
    }
    function wr$1(a) {
      let t = `*${a.value}*`.split(`
`);
      return t.length > 1 && t.every(e => e.trimStart()[0] === "*");
    }
    function Cr(a) {
      return ge$1(a) && a.value[0] === "*" && /@(?:type|satisfies)\b/u.test(a.value);
    }
    function be$1(a) {
      if (Te$1 !== null && typeof Te$1.property) {
        let t = Te$1;
        return Te$1 = be$1.prototype = null, t;
      }
      return Te$1 = be$1.prototype = a ?? Object.create(null), new be$1();
    }
    function Ct$1(a) {
      return be$1(a);
    }
    function Ir$1(a, t = "type") {
      Ct$1(a);
      function e(s) {
        let i = s[t],
          r = a[i];
        if (!Array.isArray(r)) throw Object.assign(/* @__PURE__ */new Error(`Missing visitor keys for '${i}'.`), {
          node: s
        });
        return r;
      }
      return e;
    }
    function Et$1(a, t) {
      if (!(a !== null && typeof a == "object")) return a;
      if (Array.isArray(a)) {
        for (let s = 0; s < a.length; s++) a[s] = Et$1(a[s], t);
        return a;
      }
      let e = Ts$1(a);
      for (let s = 0; s < e.length; s++) a[e[s]] = Et$1(a[e[s]], t);
      return t(a) || a;
    }
    function kr$1(a, t) {
      let {
        parser: e,
        text: s
      } = t;
      if (a.type === "File" && a.program.interpreter) {
        let {
          program: {
            interpreter: i
          },
          comments: r
        } = a;
        delete a.program.interpreter, r.unshift(i);
      }
      if (e === "babel") {
        let i = /* @__PURE__ */new Set();
        a = Fe(a, r => {
          var n;
          (n = r.leadingComments) != null && n.some(xs$1) && i.add(D(r));
        }), a = Fe(a, r => {
          if (r.type === "ParenthesizedExpression") {
            let {
              expression: n
            } = r;
            if (n.type === "TypeCastExpression") return n.range = [...r.range], n;
            let o = D(r);
            if (!i.has(o)) return n.extra = {
              ...n.extra,
              parenthesized: !0
            }, n;
          }
        });
      }
      if (a = Fe(a, i => {
        var r;
        switch (i.type) {
          case "LogicalExpression":
            if (bs$1(i)) return It(i);
            break;
          case "VariableDeclaration":
            {
              let n = St$1(!1, i.declarations, -1);
              n != null && n.init && s[B(n)] !== ";" && (i.range = [D(i), B(n)]);
              break;
            }
          case "TSParenthesizedType":
            return i.typeAnnotation;
          case "TSTypeParameter":
            if (typeof i.name == "string") {
              let n = D(i);
              i.name = {
                type: "Identifier",
                name: i.name,
                range: [n, n + i.name.length]
              };
            }
            break;
          case "TopicReference":
            a.extra = {
              ...a.extra,
              __isUsingHackPipeline: !0
            };
            break;
          case "ExportAllDeclaration":
            if (e === "meriyah" && ((r = i.exported) == null ? void 0 : r.type) === "Identifier") {
              let {
                  exported: n
                } = i,
                o = s.slice(D(n), B(n));
              (o.startsWith("\"") || o.startsWith("'")) && (i.exported = {
                ...i.exported,
                type: "Literal",
                value: i.exported.name,
                raw: o
              });
            }
            break;
          case "TSUnionType":
          case "TSIntersectionType":
            if (i.types.length === 1) return i.types[0];
            break;
        }
      }), Pe$1(a.comments)) {
        let i = St$1(!1, a.comments, -1);
        for (let r = a.comments.length - 2; r >= 0; r--) {
          let n = a.comments[r];
          B(n) === D(i) && ge$1(n) && ge$1(i) && wt$1(n) && wt$1(i) && (a.comments.splice(r + 1, 1), n.value += "*//*" + i.value, n.range = [D(n), B(i)]), i = n;
        }
      }
      return a.type === "Program" && (a.range = [0, s.length]), a;
    }
    function bs$1(a) {
      return a.type === "LogicalExpression" && a.right.type === "LogicalExpression" && a.operator === a.right.operator;
    }
    function It(a) {
      return bs$1(a) ? It({
        type: "LogicalExpression",
        operator: a.operator,
        left: It({
          type: "LogicalExpression",
          operator: a.operator,
          left: a.left,
          right: a.right.left,
          range: [D(a.left), B(a.right.left)]
        }),
        right: a.right.right,
        range: [D(a), B(a)]
      }) : a;
    }
    function vr$1(a, t) {
      let e = /* @__PURE__ */new SyntaxError(a + " (" + t.loc.start.line + ":" + t.loc.start.column + ")");
      return Object.assign(e, t);
    }
    function Lr$1(a) {
      let {
          message: t,
          loc: {
            line: e,
            column: s
          },
          reasonCode: i
        } = a,
        r = a;
      (i === "MissingPlugin" || i === "MissingOneOfPlugins") && (t = "Unexpected token.", r = void 0);
      let n = ` (${e}:${s})`;
      return t.endsWith(n) && (t = t.slice(0, -n.length)), Be$1(t, {
        loc: {
          start: {
            line: e,
            column: s + 1
          }
        },
        cause: r
      });
    }
    function Cs$1(a) {
      let t = a.match(Fr);
      return t ? t[0].trimStart() : "";
    }
    function Es$1(a) {
      let t = `
`;
      a = ie$1(!1, a.replace(Or$1, "").replace(Mr$1, ""), Ur$1, "$1");
      let e = "";
      for (; e !== a;) e = a, a = ie$1(!1, a, Rr$1, `${t}$1 $2${t}`);
      a = a.replace(Ss$1, "").trimEnd();
      let s = Object.create(null),
        i = ie$1(!1, a, ws$1, "").replace(Ss$1, "").trimEnd(),
        r;
      for (; r = ws$1.exec(a);) {
        let n = ie$1(!1, r[2], Br$1, "");
        if (typeof s[r[1]] == "string" || Array.isArray(s[r[1]])) {
          let o = s[r[1]];
          s[r[1]] = [..._r$1, ...(Array.isArray(o) ? o : [o]), n];
        } else s[r[1]] = n;
      }
      return {
        comments: i,
        pragmas: s
      };
    }
    function jr$1(a) {
      let t = Oe$1(a);
      t && (a = a.slice(t.length + 1));
      let {
        pragmas: s,
        comments: i
      } = Es$1(Cs$1(a));
      return {
        shebang: t,
        text: a,
        pragmas: s,
        comments: i
      };
    }
    function Is$1(a) {
      let {
        pragmas: t
      } = jr$1(a);
      return Object.prototype.hasOwnProperty.call(t, "prettier") || Object.prototype.hasOwnProperty.call(t, "format");
    }
    function $r$1(a) {
      return a = typeof a == "function" ? {
        parse: a
      } : a, {
        astFormat: "estree",
        hasPragma: Is$1,
        locStart: D,
        locEnd: B,
        ...a
      };
    }
    function Vr$1(a) {
      let {
        filepath: t
      } = a;
      if (t) {
        if (t = t.toLowerCase(), t.endsWith(".cjs")) return "script";
        if (t.endsWith(".mjs")) return "module";
      }
    }
    function qr$1(a, t) {
      let {
          type: e = "JsExpressionRoot",
          rootMarker: s,
          text: i
        } = t,
        {
          tokens: r,
          comments: n
        } = a;
      return delete a.tokens, delete a.comments, {
        tokens: r,
        comments: n,
        type: e,
        node: a,
        range: [0, i.length],
        rootMarker: s
      };
    }
    function Hr$1(a, t) {
      var i;
      if ((i = t.filepath) != null && i.endsWith(".js.flow")) return !0;
      let e = Oe$1(a);
      e && (a = a.slice(e.length));
      let s = ds$1(a, 0);
      return s !== !1 && (a = a.slice(0, s)), Kr$1.test(a);
    }
    function Wr$1(a, t, e) {
      let s = a(t, e),
        i = s.errors.find(r => !Xr$1.has(r.reasonCode));
      if (i) throw i;
      return s;
    }
    function Jr$1({
      isExpression: a = !1,
      optionsCombinations: t
    }) {
      return (e, s = {}) => {
        if ((s.parser === "babel" || s.parser === "__babel_estree") && Hr$1(e, s)) return s.parser = "babel-flow", Bs$1.parse(e, s);
        let i = t;
        (s.__babelSourceType ?? Ns$1(s)) === "script" && (i = i.map(c => ({
          ...c,
          sourceType: "script"
        })));
        let n = /%[A-Z]/u.test(e);
        e.includes("|>") ? i = (n ? [...vs, ks$1] : vs).flatMap(l$1 => i.map(u => V$1([l$1], u))) : n && (i = i.map(c => V$1([ks$1], c)));
        let o = a ? _e$1.parseExpression : _e$1.parse,
          h;
        try {
          h = ms$1(i.map(c => () => Wr$1(o, e, c)));
        } catch ({
          errors: [c]
        }) {
          throw Re$1(c);
        }
        return a && (h = Ue$1(h, {
          text: e,
          rootMarker: s.rootMarker
        })), As$1(h, {
          parser: "babel",
          text: e
        });
      };
    }
    function _s$1(a = {}) {
      let {
        allowComments: t = !0
      } = a;
      return function (s) {
        let i;
        try {
          i = (0, Us$1.parseExpression)(s, {
            tokens: !0,
            ranges: !0,
            attachComment: !1
          });
        } catch (r) {
          throw Re$1(r);
        }
        if (!t && Pe$1(i.comments)) throw H(i.comments[0], "Comment");
        return ae$1(i), Ue$1(i, {
          type: "JsonRoot",
          text: s
        });
      };
    }
    function H(a, t) {
      let [e, s] = [a.loc.start, a.loc.end].map(({
        line: i,
        column: r
      }) => ({
        line: i,
        column: r + 1
      }));
      return Be$1(`${t} is not allowed in JSON.`, {
        loc: {
          start: e,
          end: s
        }
      });
    }
    function ae$1(a) {
      switch (a.type) {
        case "ArrayExpression":
          for (let t of a.elements) t !== null && ae$1(t);
          return;
        case "ObjectExpression":
          for (let t of a.properties) ae$1(t);
          return;
        case "ObjectProperty":
          if (a.computed) throw H(a.key, "Computed key");
          if (a.shorthand) throw H(a.key, "Shorthand property");
          a.key.type !== "Identifier" && ae$1(a.key), ae$1(a.value);
          return;
        case "UnaryExpression":
          {
            let {
              operator: t,
              argument: e
            } = a;
            if (t !== "+" && t !== "-") throw H(a, `Operator '${a.operator}'`);
            if (e.type === "NumericLiteral" || e.type === "Identifier" && (e.name === "Infinity" || e.name === "NaN")) return;
            throw H(e, `Operator '${t}' before '${e.type}'`);
          }
        case "Identifier":
          if (a.name !== "Infinity" && a.name !== "NaN" && a.name !== "undefined") throw H(a, `Identifier '${a.name}'`);
          return;
        case "TemplateLiteral":
          if (Pe$1(a.expressions)) throw H(a.expressions[0], "'TemplateLiteral' with expression");
          for (let t of a.quasis) ae$1(t);
          return;
        case "NullLiteral":
        case "BooleanLiteral":
        case "NumericLiteral":
        case "StringLiteral":
        case "TemplateElement":
          return;
        default:
          throw H(a, `'${a.type}'`);
      }
    }
    function Na(e) {
      return e !== null && typeof e == "object";
    }
    function* Xa(e, t) {
      let {
          getVisitorKeys: r,
          filter: n = () => !0
        } = t,
        s = u => Ns(u) && n(u);
      for (let u of r(e)) {
        let i = e[u];
        if (Array.isArray(i)) for (let a of i) s(a) && (yield a);else s(i) && (yield i);
      }
    }
    function* Ya(e, t) {
      let r = [e];
      for (let n = 0; n < r.length; n++) {
        let s = r[n];
        for (let u of Xa(s, t)) yield u, r.push(u);
      }
    }
    function Xs(e, {
      getVisitorKeys: t,
      predicate: r
    }) {
      for (let n of Ya(e, {
        getVisitorKeys: t
      })) if (r(n)) return !0;
      return !1;
    }
    function Hs(e) {
      return e === 12288 || e >= 65281 && e <= 65376 || e >= 65504 && e <= 65510;
    }
    function Vs(e) {
      return e >= 4352 && e <= 4447 || e === 8986 || e === 8987 || e === 9001 || e === 9002 || e >= 9193 && e <= 9196 || e === 9200 || e === 9203 || e === 9725 || e === 9726 || e === 9748 || e === 9749 || e >= 9800 && e <= 9811 || e === 9855 || e === 9875 || e === 9889 || e === 9898 || e === 9899 || e === 9917 || e === 9918 || e === 9924 || e === 9925 || e === 9934 || e === 9940 || e === 9962 || e === 9970 || e === 9971 || e === 9973 || e === 9978 || e === 9981 || e === 9989 || e === 9994 || e === 9995 || e === 10024 || e === 10060 || e === 10062 || e >= 10067 && e <= 10069 || e === 10071 || e >= 10133 && e <= 10135 || e === 10160 || e === 10175 || e === 11035 || e === 11036 || e === 11088 || e === 11093 || e >= 11904 && e <= 11929 || e >= 11931 && e <= 12019 || e >= 12032 && e <= 12245 || e >= 12272 && e <= 12287 || e >= 12289 && e <= 12350 || e >= 12353 && e <= 12438 || e >= 12441 && e <= 12543 || e >= 12549 && e <= 12591 || e >= 12593 && e <= 12686 || e >= 12688 && e <= 12771 || e >= 12783 && e <= 12830 || e >= 12832 && e <= 12871 || e >= 12880 && e <= 19903 || e >= 19968 && e <= 42124 || e >= 42128 && e <= 42182 || e >= 43360 && e <= 43388 || e >= 44032 && e <= 55203 || e >= 63744 && e <= 64255 || e >= 65040 && e <= 65049 || e >= 65072 && e <= 65106 || e >= 65108 && e <= 65126 || e >= 65128 && e <= 65131 || e >= 94176 && e <= 94180 || e === 94192 || e === 94193 || e >= 94208 && e <= 100343 || e >= 100352 && e <= 101589 || e >= 101632 && e <= 101640 || e >= 110576 && e <= 110579 || e >= 110581 && e <= 110587 || e === 110589 || e === 110590 || e >= 110592 && e <= 110882 || e === 110898 || e >= 110928 && e <= 110930 || e === 110933 || e >= 110948 && e <= 110951 || e >= 110960 && e <= 111355 || e === 126980 || e === 127183 || e === 127374 || e >= 127377 && e <= 127386 || e >= 127488 && e <= 127490 || e >= 127504 && e <= 127547 || e >= 127552 && e <= 127560 || e === 127568 || e === 127569 || e >= 127584 && e <= 127589 || e >= 127744 && e <= 127776 || e >= 127789 && e <= 127797 || e >= 127799 && e <= 127868 || e >= 127870 && e <= 127891 || e >= 127904 && e <= 127946 || e >= 127951 && e <= 127955 || e >= 127968 && e <= 127984 || e === 127988 || e >= 127992 && e <= 128062 || e === 128064 || e >= 128066 && e <= 128252 || e >= 128255 && e <= 128317 || e >= 128331 && e <= 128334 || e >= 128336 && e <= 128359 || e === 128378 || e === 128405 || e === 128406 || e === 128420 || e >= 128507 && e <= 128591 || e >= 128640 && e <= 128709 || e === 128716 || e >= 128720 && e <= 128722 || e >= 128725 && e <= 128727 || e >= 128732 && e <= 128735 || e === 128747 || e === 128748 || e >= 128756 && e <= 128764 || e >= 128992 && e <= 129003 || e === 129008 || e >= 129292 && e <= 129338 || e >= 129340 && e <= 129349 || e >= 129351 && e <= 129535 || e >= 129648 && e <= 129660 || e >= 129664 && e <= 129672 || e >= 129680 && e <= 129725 || e >= 129727 && e <= 129733 || e >= 129742 && e <= 129755 || e >= 129760 && e <= 129768 || e >= 129776 && e <= 129784 || e >= 131072 && e <= 196605 || e >= 196608 && e <= 262141;
    }
    function Va(e) {
      if (!e) return 0;
      if (!Ha.test(e)) return e.length;
      e = e.replace(Ys(), "  ");
      let t = 0;
      for (let r of e) {
        let n = r.codePointAt(0);
        n <= 31 || n >= 127 && n <= 159 || n >= 768 && n <= 879 || (t += $s(n) ? 1 : 2);
      }
      return t;
    }
    function Tr(e) {
      return (t, r, n) => {
        let s = !!(n != null && n.backwards);
        if (r === !1) return !1;
        let {
            length: u
          } = t,
          i = r;
        for (; i >= 0 && i < u;) {
          let a = t.charAt(i);
          if (e instanceof RegExp) {
            if (!e.test(a)) return i;
          } else if (!e.includes(a)) return i;
          s ? i-- : i++;
        }
        return i === -1 || i === u ? i : !1;
      };
    }
    function $a(e, t, r) {
      let n = !!(r != null && r.backwards);
      if (t === !1) return !1;
      let s = e.charAt(t);
      if (n) {
        if (e.charAt(t - 1) === "\r" && s === `
`) return t - 2;
        if (s === `
` || s === "\r" || s === "\u2028" || s === "\u2029") return t - 1;
      } else {
        if (s === "\r" && e.charAt(t + 1) === `
`) return t + 2;
        if (s === `
` || s === "\r" || s === "\u2028" || s === "\u2029") return t + 1;
      }
      return t;
    }
    function Ka(e, t, r = {}) {
      let n = Ge(e, r.backwards ? t - 1 : t, r);
      return n !== Ue(e, n, r);
    }
    function za(e, t) {
      if (t === !1) return !1;
      if (e.charAt(t) === "/" && e.charAt(t + 1) === "*") {
        for (let r = t + 2; r < e.length; ++r) if (e.charAt(r) === "*" && e.charAt(r + 1) === "/") return r + 2;
      }
      return t;
    }
    function Qa(e, t) {
      return t === !1 ? !1 : e.charAt(t) === "/" && e.charAt(t + 1) === "/" ? zs(e, t) : t;
    }
    function Za(e, t) {
      let r = null,
        n = t;
      for (; n !== r;) r = n, n = Ks(e, n), n = Lt(e, n), n = Ge(e, n);
      return n = wt(e, n), n = Ue(e, n), n !== !1 && te(e, n);
    }
    function eo(e) {
      return Array.isArray(e) && e.length > 0;
    }
    function to(e, t) {
      let r = t === !0 || t === dr ? dr : Qs,
        n = r === dr ? Qs : dr,
        s = 0,
        u = 0;
      for (let i of e) i === r ? s++ : i === n && u++;
      return s > u ? n : r;
    }
    function ro(e, t, r) {
      let n = t === "\"" ? "'" : "\"";
      return t + N(!1, e, /\\(.)|(["'])/gsu, (i, a, o) => a === n ? a : o === t ? "\\" + o : o || (r && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/u.test(a) ? a : "\\" + a)) + t;
    }
    function no(e, t) {
      let r = e.slice(1, -1);
      return Zs(r, t.parser === "json" || t.parser === "jsonc" || t.parser === "json5" && t.quoteProps === "preserve" && !t.singleQuote ? "\"" : t.__isInHtmlAttribute ? "'" : xr(r, t.singleQuote), !(t.parser === "css" || t.parser === "less" || t.parser === "scss" || t.__embeddedInHtml));
    }
    function R(e) {
      var n, s, u;
      let t = ((n = e.range) == null ? void 0 : n[0]) ?? e.start,
        r = (u = ((s = e.declaration) == null ? void 0 : s.decorators) ?? e.decorators) == null ? void 0 : u[0];
      return r ? Math.min(R(r), t) : t;
    }
    function k(e) {
      var t;
      return ((t = e.range) == null ? void 0 : t[1]) ?? e.end;
    }
    function ht(e, t) {
      let r = R(e);
      return Number.isInteger(r) && r === R(t);
    }
    function so(e, t) {
      let r = k(e);
      return Number.isInteger(r) && r === k(t);
    }
    function eu(e, t) {
      return ht(e, t) && so(e, t);
    }
    function Zt(e) {
      if (Qt !== null && typeof Qt.property) {
        let t = Qt;
        return Qt = Zt.prototype = null, t;
      }
      return Qt = Zt.prototype = e ?? Object.create(null), new Zt();
    }
    function In(e) {
      return Zt(e);
    }
    function io(e, t = "type") {
      In(e);
      function r(n) {
        let s = n[t],
          u = e[s];
        if (!Array.isArray(u)) throw Object.assign(/* @__PURE__ */new Error(`Missing visitor keys for '${s}'.`), {
          node: n
        });
        return u;
      }
      return r;
    }
    function oo(e) {
      let t = new Set(e);
      return r => t.has(r == null ? void 0 : r.type);
    }
    function lo(e, t) {
      let r = t.split(".");
      for (let n = r.length - 1; n >= 0; n--) {
        let s = r[n];
        if (n === 0) return e.type === "Identifier" && e.name === s;
        if (e.type !== "MemberExpression" || e.optional || e.computed || e.property.type !== "Identifier" || e.property.name !== s) return !1;
        e = e.object;
      }
    }
    function mo(e, t) {
      return t.some(r => lo(e, r));
    }
    function yo({
      type: e
    }) {
      return e.startsWith("TS") && e.endsWith("Keyword");
    }
    function tr(e, t) {
      return t(e) || Xs(e, {
        getVisitorKeys: gr,
        predicate: t
      });
    }
    function jt(e) {
      return e.type === "AssignmentExpression" || e.type === "BinaryExpression" || e.type === "LogicalExpression" || e.type === "NGPipeExpression" || e.type === "ConditionalExpression" || L(e) || q(e) || e.type === "SequenceExpression" || e.type === "TaggedTemplateExpression" || e.type === "BindExpression" || e.type === "UpdateExpression" && !e.prefix || Te(e) || e.type === "TSNonNullExpression" || e.type === "ChainExpression";
    }
    function uu(e) {
      return e.expressions ? e.expressions[0] : e.left ?? e.test ?? e.callee ?? e.object ?? e.tag ?? e.argument ?? e.expression;
    }
    function Pr(e) {
      if (e.expressions) return ["expressions", 0];
      if (e.left) return ["left"];
      if (e.test) return ["test"];
      if (e.object) return ["object"];
      if (e.callee) return ["callee"];
      if (e.tag) return ["tag"];
      if (e.argument) return ["argument"];
      if (e.expression) return ["expression"];
      throw new Error("Unexpected node has no left side.");
    }
    function au(e) {
      return e.type === "LogicalExpression" && e.operator === "??";
    }
    function Ce(e) {
      return e.type === "NumericLiteral" || e.type === "Literal" && typeof e.value == "number";
    }
    function jn(e) {
      return e.type === "UnaryExpression" && (e.operator === "+" || e.operator === "-") && Ce(e.argument);
    }
    function Q(e) {
      return !!(e && (e.type === "StringLiteral" || e.type === "Literal" && typeof e.value == "string"));
    }
    function vn(e) {
      return e.type === "RegExpLiteral" || e.type === "Literal" && !!e.regex;
    }
    function fo(e) {
      return e.type === "FunctionExpression" || e.type === "ArrowFunctionExpression" && e.body.type === "BlockStatement";
    }
    function Ln(e) {
      return L(e) && e.callee.type === "Identifier" && ["async", "inject", "fakeAsync", "waitForAsync"].includes(e.callee.name);
    }
    function gt(e) {
      return e.method && e.kind === "init" || e.kind === "get" || e.kind === "set";
    }
    function Ir(e) {
      return (e.type === "ObjectTypeProperty" || e.type === "ObjectTypeInternalSlot") && !e.static && !e.method && e.kind !== "get" && e.kind !== "set" && e.value.type === "FunctionTypeAnnotation";
    }
    function ou(e) {
      return (e.type === "TypeAnnotation" || e.type === "TSTypeAnnotation") && e.typeAnnotation.type === "FunctionTypeAnnotation" && !e.static && !ht(e, e.typeAnnotation);
    }
    function Ft(e) {
      return q(e) || e.type === "BindExpression" && !!e.object;
    }
    function Mt(e) {
      return Br(e) || Sr(e) || Eo(e) || (e.type === "GenericTypeAnnotation" || e.type === "TSTypeReference") && !e.typeParameters && !e.typeArguments;
    }
    function Fo(e) {
      return e.type === "Identifier" && (e.name === "beforeEach" || e.name === "beforeAll" || e.name === "afterEach" || e.name === "afterAll");
    }
    function Ao(e) {
      return ru(e, Co);
    }
    function St(e, t) {
      if ((e == null ? void 0 : e.type) !== "CallExpression" || e.optional) return !1;
      let r = oe(e);
      if (r.length === 1) {
        if (Ln(e) && St(t)) return _t(r[0]);
        if (Fo(e.callee)) return Ln(r[0]);
      } else if ((r.length === 2 || r.length === 3) && (r[0].type === "TemplateLiteral" || Q(r[0])) && Ao(e.callee)) return r[2] && !Ce(r[2]) ? !1 : (r.length === 2 ? _t(r[1]) : fo(r[1]) && K(r[1]).length <= 1) || Ln(r[1]);
      return !1;
    }
    function Mn(e, t = 5) {
      return cu(e, t) <= t;
    }
    function cu(e, t) {
      let r = 0;
      for (let n in e) {
        let s = e[n];
        if (s && typeof s == "object" && typeof s.type == "string" && (r++, r += cu(s, t - r)), r > t) return r;
      }
      return r;
    }
    function rr(e, t) {
      let {
        printWidth: r
      } = t;
      if (d(e)) return !1;
      let n = r * To;
      if (e.type === "ThisExpression" || e.type === "Identifier" && e.name.length <= n || jn(e) && !d(e.argument)) return !0;
      let s = e.type === "Literal" && "regex" in e && e.regex.pattern || e.type === "RegExpLiteral" && e.pattern;
      return s ? s.length <= n : Q(e) ? tt(fe(e), t).length <= n : e.type === "TemplateLiteral" ? e.expressions.length === 0 && e.quasis[0].value.raw.length <= n && !e.quasis[0].value.raw.includes(`
`) : e.type === "UnaryExpression" ? rr(e.argument, {
        printWidth: r
      }) : e.type === "CallExpression" && e.arguments.length === 0 && e.callee.type === "Identifier" ? e.callee.name.length <= n - 2 : kr(e);
    }
    function Oe(e, t) {
      return X(t) ? Bt(t) : d(t, g.Leading, r => te(e, k(r)));
    }
    function nu(e) {
      return e.quasis.some(t => t.value.raw.includes(`
`));
    }
    function Lr(e, t) {
      return (e.type === "TemplateLiteral" && nu(e) || e.type === "TaggedTemplateExpression" && nu(e.quasi)) && !te(t, R(e), {
        backwards: !0
      });
    }
    function wr(e) {
      if (!d(e)) return !1;
      let t = O(!1, ct(e, g.Dangling), -1);
      return t && !re(t);
    }
    function lu(e) {
      if (e.length <= 1) return !1;
      let t = 0;
      for (let r of e) if (_t(r)) {
        if (t += 1, t > 1) return !0;
      } else if (L(r)) {
        for (let n of oe(r)) if (_t(n)) return !0;
      }
      return !1;
    }
    function Or(e) {
      let {
        node: t,
        parent: r,
        key: n
      } = e;
      return n === "callee" && L(t) && L(r) && r.arguments.length > 0 && t.arguments.length > r.arguments.length;
    }
    function be(e, t = 2) {
      if (t <= 0) return !1;
      if (e.type === "ChainExpression" || e.type === "TSNonNullExpression") return be(e.expression, t);
      let r = n => be(n, t - 1);
      if (vn(e)) return et(e.pattern ?? e.regex.pattern) <= 5;
      if (kr(e) || Do(e) || e.type === "ArgumentPlaceholder") return !0;
      if (e.type === "TemplateLiteral") return e.quasis.every(n => !n.value.raw.includes(`
`)) && e.expressions.every(r);
      if (se(e)) return e.properties.every(n => !n.computed && (n.shorthand || n.value && r(n.value)));
      if (U(e)) return e.elements.every(n => n === null || r(n));
      if (lt(e)) {
        if (e.type === "ImportExpression" || be(e.callee, t)) {
          let n = oe(e);
          return n.length <= t && n.every(r);
        }
        return !1;
      }
      return q(e) ? be(e.object, t) && be(e.property, t) : e.type === "UnaryExpression" && xo.has(e.operator) || e.type === "UpdateExpression" ? be(e.argument, t) : !1;
    }
    function fe(e) {
      var t;
      return ((t = e.extra) == null ? void 0 : t.raw) ?? e.raw;
    }
    function mu(e) {
      return e;
    }
    function ae(e, t = "es5") {
      return e.trailingComma === "es5" && t === "es5" || e.trailingComma === "all" && (t === "all" || t === "es5");
    }
    function ie(e, t) {
      switch (e.type) {
        case "BinaryExpression":
        case "LogicalExpression":
        case "AssignmentExpression":
        case "NGPipeExpression":
          return ie(e.left, t);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return ie(e.object, t);
        case "TaggedTemplateExpression":
          return e.tag.type === "FunctionExpression" ? !1 : ie(e.tag, t);
        case "CallExpression":
        case "OptionalCallExpression":
          return e.callee.type === "FunctionExpression" ? !1 : ie(e.callee, t);
        case "ConditionalExpression":
          return ie(e.test, t);
        case "UpdateExpression":
          return !e.prefix && ie(e.argument, t);
        case "BindExpression":
          return e.object && ie(e.object, t);
        case "SequenceExpression":
          return ie(e.expressions[0], t);
        case "ChainExpression":
        case "TSSatisfiesExpression":
        case "TSAsExpression":
        case "TSNonNullExpression":
        case "AsExpression":
        case "AsConstExpression":
        case "SatisfiesExpression":
          return ie(e.expression, t);
        default:
          return t(e);
      }
    }
    function nr(e, t) {
      return !(er(t) !== er(e) || e === "**" || su[e] && su[t] || t === "%" && br[e] || e === "%" && br[t] || t !== e && br[t] && br[e] || _n[e] && _n[t]);
    }
    function er(e) {
      return ho.get(e);
    }
    function yu(e) {
      return !!_n[e] || e === "|" || e === "^" || e === "&";
    }
    function Du(e) {
      var r;
      if (e.rest) return !0;
      return ((r = O(!1, K(e), -1)) == null ? void 0 : r.type) === "RestElement";
    }
    function K(e) {
      if (wn.has(e)) return wn.get(e);
      let t = [];
      return e.this && t.push(e.this), Array.isArray(e.parameters) ? t.push(...e.parameters) : Array.isArray(e.params) && t.push(...e.params), e.rest && t.push(e.rest), wn.set(e, t), t;
    }
    function fu(e, t) {
      let {
          node: r
        } = e,
        n = 0,
        s = u => t(u, n++);
      r.this && e.call(s, "this"), Array.isArray(r.parameters) ? e.each(s, "parameters") : Array.isArray(r.params) && e.each(s, "params"), r.rest && e.call(s, "rest");
    }
    function oe(e) {
      if (On.has(e)) return On.get(e);
      if (e.type === "ChainExpression") return oe(e.expression);
      let t = e.arguments;
      return e.type === "ImportExpression" && (t = [e.source], e.attributes && t.push(e.attributes), e.options && t.push(e.options)), On.set(e, t), t;
    }
    function Rt(e, t) {
      let {
        node: r
      } = e;
      if (r.type === "ChainExpression") return e.call(() => Rt(e, t), "expression");
      r.type === "ImportExpression" ? (e.call(n => t(n, 0), "source"), r.attributes && e.call(n => t(n, 1), "attributes"), r.options && e.call(n => t(n, 1), "options")) : e.each(t, "arguments");
    }
    function Rn(e, t) {
      let r = [];
      if (e.type === "ChainExpression" && (e = e.expression, r.push("expression")), e.type === "ImportExpression") {
        if (t === 0 || t === (e.attributes || e.options ? -2 : -1)) return [...r, "source"];
        if (e.attributes && (t === 1 || t === -1)) return [...r, "attributes"];
        if (e.options && (t === 1 || t === -1)) return [...r, "options"];
        throw new RangeError("Invalid argument index");
      }
      if (t < 0 && (t = e.arguments.length + t), t < 0 || t >= e.arguments.length) throw new RangeError("Invalid argument index");
      return [...r, "arguments", t];
    }
    function sr(e) {
      return e.value.trim() === "prettier-ignore" && !e.unignore;
    }
    function Bt(e) {
      return (e == null ? void 0 : e.prettierIgnore) || d(e, g.PrettierIgnore);
    }
    function d(e, t, r) {
      if (!w(e == null ? void 0 : e.comments)) return !1;
      let n = Eu(t, r);
      return n ? e.comments.some(n) : !0;
    }
    function ct(e, t, r) {
      if (!Array.isArray(e == null ? void 0 : e.comments)) return [];
      let n = Eu(t, r);
      return n ? e.comments.filter(n) : e.comments;
    }
    function lt(e) {
      return L(e) || e.type === "NewExpression" || e.type === "ImportExpression";
    }
    function Ae(e) {
      return e && (e.type === "ObjectProperty" || e.type === "Property" && !gt(e));
    }
    function Fu(e, t, r) {
      var s, u;
      if (e.type === "Program" && delete t.sourceType, (e.type === "BigIntLiteral" || e.type === "BigIntLiteralTypeAnnotation") && e.value && (t.value = e.value.toLowerCase()), (e.type === "BigIntLiteral" || e.type === "Literal") && e.bigint && (t.bigint = e.bigint.toLowerCase()), e.type === "DecimalLiteral" && (t.value = Number(e.value)), e.type === "Literal" && t.decimal && (t.decimal = Number(e.decimal)), e.type === "EmptyStatement" || e.type === "JSXText" || e.type === "JSXExpressionContainer" && (e.expression.type === "Literal" || e.expression.type === "StringLiteral") && e.expression.value === " ") return null;
      if ((e.type === "Property" || e.type === "ObjectProperty" || e.type === "MethodDefinition" || e.type === "ClassProperty" || e.type === "ClassMethod" || e.type === "PropertyDefinition" || e.type === "TSDeclareMethod" || e.type === "TSPropertySignature" || e.type === "ObjectTypeProperty" || e.type === "ImportAttribute") && e.key && !e.computed) {
        let {
          key: i
        } = e;
        Q(i) || Ce(i) ? t.key = String(i.value) : i.type === "Identifier" && (t.key = i.name);
      }
      if (e.type === "JSXElement" && e.openingElement.name.name === "style" && e.openingElement.attributes.some(i => i.type === "JSXAttribute" && i.name.name === "jsx")) for (let {
        type: i,
        expression: a
      } of t.children) i === "JSXExpressionContainer" && a.type === "TemplateLiteral" && Jt(a);
      e.type === "JSXAttribute" && e.name.name === "css" && e.value.type === "JSXExpressionContainer" && e.value.expression.type === "TemplateLiteral" && Jt(t.value.expression), e.type === "JSXAttribute" && ((s = e.value) == null ? void 0 : s.type) === "Literal" && /["']|&quot;|&apos;/u.test(e.value.value) && (t.value.value = N(!1, e.value.value, /["']|&quot;|&apos;/gu, "\""));
      let n = e.expression || e.callee;
      if (e.type === "Decorator" && n.type === "CallExpression" && n.callee.name === "Component" && n.arguments.length === 1) {
        let i = e.expression.arguments[0].properties;
        for (let [a, o] of t.expression.arguments[0].properties.entries()) switch (i[a].key.name) {
          case "styles":
            U(o.value) && Jt(o.value.elements[0]);
            break;
          case "template":
            o.value.type === "TemplateLiteral" && Jt(o.value);
            break;
        }
      }
      e.type === "TaggedTemplateExpression" && (e.tag.type === "MemberExpression" || e.tag.type === "Identifier" && (e.tag.name === "gql" || e.tag.name === "graphql" || e.tag.name === "css" || e.tag.name === "md" || e.tag.name === "markdown" || e.tag.name === "html") || e.tag.type === "CallExpression") && Jt(t.quasi), e.type === "TemplateLiteral" && ((u = e.leadingComments) != null && u.some(a => re(a) && ["GraphQL", "HTML"].some(o => a.value === ` ${o} `)) || r.type === "CallExpression" && r.callee.name === "graphql" || !e.leadingComments) && Jt(t), e.type === "ChainExpression" && e.expression.type === "TSNonNullExpression" && (t.type = "TSNonNullExpression", t.expression.type = "ChainExpression"), e.type === "TSMappedType" && (delete t.key, delete t.constraint), e.type === "TSEnumDeclaration" && delete t.body;
    }
    function So(e) {
      if (typeof e == "string") return rt;
      if (Array.isArray(e)) return _e;
      if (!e) return;
      let {
        type: t
      } = e;
      if (jr.has(t)) return t;
    }
    function bo(e) {
      let t = e === null ? "null" : typeof e;
      if (t !== "string" && t !== "object") return `Unexpected doc '${t}', 
Expected it to be 'string' or 'object'.`;
      if (ut(e)) throw new Error("doc is valid.");
      let r = Object.prototype.toString.call(e);
      if (r !== "[object Object]") return `Unexpected doc '${r}'.`;
      let n = Bo([...jr].map(s => `'${s}'`));
      return `Unexpected doc.type '${e.type}'.
Expected it to be ${n}.`;
    }
    function Po(e, t, r, n) {
      let s = [e];
      for (; s.length > 0;) {
        let u = s.pop();
        if (u === Au) {
          r(s.pop());
          continue;
        }
        r && s.push(u, Au);
        let i = ut(u);
        if (!i) throw new Ct(u);
        if ((t == null ? void 0 : t(u)) !== !1) switch (i) {
          case _e:
          case Pe:
            {
              let a = i === _e ? u : u.parts;
              for (let c = a.length - 1; c >= 0; --c) s.push(a[c]);
              break;
            }
          case xe:
            s.push(u.flatContents, u.breakContents);
            break;
          case le:
            if (n && u.expandedStates) for (let a = u.expandedStates.length, o = a - 1; o >= 0; --o) s.push(u.expandedStates[o]);else s.push(u.contents);
            break;
          case Ye:
          case Xe:
          case He:
          case je:
          case Ve:
            s.push(u.contents);
            break;
          case rt:
          case nt:
          case st:
          case $e:
          case me:
          case ve:
            break;
          default:
            throw new Ct(u);
        }
      }
    }
    function f(e) {
      return Ke(e), {
        type: Xe,
        contents: e
      };
    }
    function he(e, t) {
      return Ke(t), {
        type: Ye,
        contents: t,
        n: e
      };
    }
    function l(e, t = {}) {
      return Ke(e), vr(t.expandedStates, !0), {
        type: le,
        id: t.id,
        contents: e,
        break: !!t.shouldBreak,
        expandedStates: t.expandedStates
      };
    }
    function du(e) {
      return he(Number.NEGATIVE_INFINITY, e);
    }
    function Mr(e) {
      return he(-1, e);
    }
    function ze(e, t) {
      return l(e[0], {
        ...t,
        expandedStates: e
      });
    }
    function qt(e) {
      return vr(e), {
        type: Pe,
        parts: e
      };
    }
    function b(e, t = "", r = {}) {
      return Ke(e), t !== "" && Ke(t), {
        type: xe,
        breakContents: e,
        flatContents: t,
        groupId: r.groupId
      };
    }
    function At(e, t) {
      return Ke(e), {
        type: He,
        contents: e,
        groupId: t.groupId,
        negate: t.negate
      };
    }
    function Wn(e) {
      return Ke(e), {
        type: Ve,
        contents: e
      };
    }
    function P(e, t) {
      Ke(e), vr(t);
      let r = [];
      for (let n = 0; n < t.length; n++) n !== 0 && r.push(e), r.push(t[n]);
      return r;
    }
    function xu(e, t, r) {
      Ke(e);
      let n = e;
      if (t > 0) {
        for (let s = 0; s < Math.floor(t / r); ++s) n = f(n);
        n = he(t % r, n), n = he(Number.NEGATIVE_INFINITY, n);
      }
      return n;
    }
    function it(e, t) {
      return Ke(t), e ? {
        type: je,
        label: e,
        contents: t
      } : t;
    }
    function mt(e, t) {
      if (typeof e == "string") return t(e);
      let r = /* @__PURE__ */new Map();
      return n(e);
      function n(u) {
        if (r.has(u)) return r.get(u);
        let i = s(u);
        return r.set(u, i), i;
      }
      function s(u) {
        switch (ut(u)) {
          case _e:
            return t(u.map(n));
          case Pe:
            return t({
              ...u,
              parts: u.parts.map(n)
            });
          case xe:
            return t({
              ...u,
              breakContents: n(u.breakContents),
              flatContents: n(u.flatContents)
            });
          case le:
            {
              let {
                expandedStates: i,
                contents: a
              } = u;
              return i ? (i = i.map(n), a = i[0]) : a = n(a), t({
                ...u,
                contents: a,
                expandedStates: i
              });
            }
          case Ye:
          case Xe:
          case He:
          case je:
          case Ve:
            return t({
              ...u,
              contents: n(u.contents)
            });
          case rt:
          case nt:
          case st:
          case $e:
          case me:
          case ve:
            return t(u);
          default:
            throw new Ct(u);
        }
      }
    }
    function gu(e, t, r) {
      let n = r,
        s = !1;
      function u(i) {
        if (s) return !1;
        let a = t(i);
        a !== void 0 && (s = !0, n = a);
      }
      return qn(e, u), n;
    }
    function Io(e) {
      if (e.type === le && e.break || e.type === me && e.hard || e.type === ve) return !0;
    }
    function ne(e) {
      return gu(e, Io, !1);
    }
    function hu(e) {
      if (e.length > 0) {
        let t = O(!1, e, -1);
        !t.expandedStates && !t.break && (t.break = "propagated");
      }
      return null;
    }
    function Su(e) {
      let t = /* @__PURE__ */new Set(),
        r = [];
      function n(u) {
        if (u.type === ve && hu(r), u.type === le) {
          if (r.push(u), t.has(u)) return !1;
          t.add(u);
        }
      }
      function s(u) {
        u.type === le && r.pop().break && hu(r);
      }
      qn(e, n, s, !0);
    }
    function Lo(e) {
      return e.type === me && !e.hard ? e.soft ? "" : " " : e.type === xe ? e.flatContents : e;
    }
    function ur(e) {
      return mt(e, Lo);
    }
    function wo(e) {
      switch (ut(e)) {
        case Pe:
          if (e.parts.every(t => t === "")) return "";
          break;
        case le:
          if (!e.contents && !e.id && !e.break && !e.expandedStates) return "";
          if (e.contents.type === le && e.contents.id === e.id && e.contents.break === e.break && e.contents.expandedStates === e.expandedStates) return e.contents;
          break;
        case Ye:
        case Xe:
        case He:
        case Ve:
          if (!e.contents) return "";
          break;
        case xe:
          if (!e.flatContents && !e.breakContents) return "";
          break;
        case _e:
          {
            let t = [];
            for (let r of e) {
              if (!r) continue;
              let [n, ...s] = Array.isArray(r) ? r : [r];
              typeof n == "string" && typeof O(!1, t, -1) == "string" ? t[t.length - 1] += n : t.push(n), t.push(...s);
            }
            return t.length === 0 ? "" : t.length === 1 ? t[0] : t;
          }
        case rt:
        case nt:
        case st:
        case $e:
        case me:
        case je:
        case ve:
          break;
        default:
          throw new Ct(e);
      }
      return e;
    }
    function Wt(e) {
      return mt(e, t => wo(t));
    }
    function Ie(e, t = Rr) {
      return mt(e, r => typeof r == "string" ? P(t, r.split(`
`)) : r);
    }
    function Oo(e) {
      if (e.type === me) return !0;
    }
    function Bu(e) {
      return gu(e, Oo, !1);
    }
    function ir(e, t) {
      return e.type === je ? {
        ...e,
        contents: t(e.contents)
      } : t(e);
    }
    function _o(e) {
      let t = `*${e.value}*`.split(`
`);
      return t.length > 1 && t.every(r => r.trimStart()[0] === "*");
    }
    function Pu(e, t) {
      let r = e.node;
      if (vt(r)) return t.originalText.slice(R(r), k(r)).trimEnd();
      if (re(r)) return bu(r) ? jo(r) : ["/*", Ie(r.value), "*/"];
      throw new Error("Not a comment: " + JSON.stringify(r));
    }
    function jo(e) {
      let t = e.value.split(`
`);
      return ["/*", P(F, t.map((r, n) => n === 0 ? r.trimEnd() : " " + (n < t.length - 1 ? r.trim() : r.trimStart()))), "*/"];
    }
    function vo(e) {
      let t = e.type || e.kind || "(unknown type)",
        r = String(e.name || e.id && (typeof e.id == "object" ? e.id.name : e.id) || e.key && (typeof e.key == "object" ? e.key.name : e.key) || e.value && (typeof e.value == "object" ? "" : String(e.value)) || e.operator || "");
      return r.length > 20 && (r = r.slice(0, 19) + "…"), t + (r ? " " + r : "");
    }
    function Nn(e, t) {
      (e.comments ?? (e.comments = [])).push(t), t.printed = !1, t.nodeDescription = vo(e);
    }
    function ce(e, t) {
      t.leading = !0, t.trailing = !1, Nn(e, t);
    }
    function Le(e, t, r) {
      t.leading = !1, t.trailing = !1, r && (t.marker = r), Nn(e, t);
    }
    function z(e, t) {
      t.leading = !1, t.trailing = !0, Nn(e, t);
    }
    function Mo(e, t) {
      let r = null,
        n = t;
      for (; n !== r;) r = n, n = Ge(e, n), n = Lt(e, n), n = wt(e, n), n = Ue(e, n);
      return n;
    }
    function Ro(e, t) {
      let r = yt(e, t);
      return r === !1 ? "" : e.charAt(r);
    }
    function Jo(e, t, r) {
      for (let n = t; n < r; ++n) if (e.charAt(n) === `
`) return !0;
      return !1;
    }
    function qo(e) {
      return re(e) && e.value[0] === "*" && /@(?:type|satisfies)\b/u.test(e.value);
    }
    function Wo(e) {
      return [Mu, Lu, _u, ep, Xo, Yn, Hn, Iu, wu, sp, rp, $n, vu, up, Ou, ju, Vn, Yo, yp].some(t => t(e));
    }
    function Go(e) {
      return [No, _u, Lu, vu, Yn, Hn, Iu, wu, ju, tp, np, $n, op, Vn, lp, mp].some(t => t(e));
    }
    function Uo(e) {
      return [Mu, Yn, Hn, Ho, Zo, Ou, $n, Qo, zo, cp, Vn, pp].some(t => t(e));
    }
    function bt(e, t) {
      let r = (e.body || e.properties).find(({
        type: n
      }) => n !== "EmptyStatement");
      r ? ce(r, t) : Le(e, t);
    }
    function Xn(e, t) {
      e.type === "BlockStatement" ? bt(e, t) : ce(e, t);
    }
    function No({
      comment: e,
      followingNode: t
    }) {
      return t && ku(e) ? (ce(t, e), !0) : !1;
    }
    function Yn({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n,
      text: s
    }) {
      if ((r == null ? void 0 : r.type) !== "IfStatement" || !n) return !1;
      if (ge(s, k(e)) === ")") return z(t, e), !0;
      if (t === r.consequent && n === r.alternate) {
        if (t.type === "BlockStatement") z(t, e);else {
          let i = vt(e) || e.loc.start.line === e.loc.end.line,
            a = e.loc.start.line === t.loc.start.line;
          i && a ? z(t, e) : Le(r, e);
        }
        return !0;
      }
      return n.type === "BlockStatement" ? (bt(n, e), !0) : n.type === "IfStatement" ? (Xn(n.consequent, e), !0) : r.consequent === n ? (ce(n, e), !0) : !1;
    }
    function Hn({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n,
      text: s
    }) {
      return (r == null ? void 0 : r.type) !== "WhileStatement" || !n ? !1 : ge(s, k(e)) === ")" ? (z(t, e), !0) : n.type === "BlockStatement" ? (bt(n, e), !0) : r.body === n ? (ce(n, e), !0) : !1;
    }
    function Iu({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n
    }) {
      return (r == null ? void 0 : r.type) !== "TryStatement" && (r == null ? void 0 : r.type) !== "CatchClause" || !n ? !1 : r.type === "CatchClause" && t ? (z(t, e), !0) : n.type === "BlockStatement" ? (bt(n, e), !0) : n.type === "TryStatement" ? (Xn(n.finalizer, e), !0) : n.type === "CatchClause" ? (Xn(n.body, e), !0) : !1;
    }
    function Xo({
      comment: e,
      enclosingNode: t,
      followingNode: r
    }) {
      return q(t) && (r == null ? void 0 : r.type) === "Identifier" ? (ce(t, e), !0) : !1;
    }
    function Yo({
      comment: e,
      enclosingNode: t,
      followingNode: r,
      options: n
    }) {
      return !n.experimentalTernaries || !((t == null ? void 0 : t.type) === "ConditionalExpression" || (t == null ? void 0 : t.type) === "ConditionalTypeAnnotation" || (t == null ? void 0 : t.type) === "TSConditionalType") ? !1 : (r == null ? void 0 : r.type) === "ConditionalExpression" || (r == null ? void 0 : r.type) === "ConditionalTypeAnnotation" || (r == null ? void 0 : r.type) === "TSConditionalType" ? (Le(t, e), !0) : !1;
    }
    function Lu({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n,
      text: s,
      options: u
    }) {
      let i = t && !de(s, k(t), R(e));
      return (!t || !i) && ((r == null ? void 0 : r.type) === "ConditionalExpression" || (r == null ? void 0 : r.type) === "ConditionalTypeAnnotation" || (r == null ? void 0 : r.type) === "TSConditionalType") && n ? u.experimentalTernaries && r.alternate === n && !(re(e) && !de(u.originalText, R(e), k(e))) ? (Le(r, e), !0) : (ce(n, e), !0) : !1;
    }
    function Ho({
      comment: e,
      precedingNode: t,
      enclosingNode: r
    }) {
      return Ae(r) && r.shorthand && r.key === t && r.value.type === "AssignmentPattern" ? (z(r.value.left, e), !0) : !1;
    }
    function wu({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n
    }) {
      if (Vo.has(r == null ? void 0 : r.type)) {
        if (w(r.decorators) && (n == null ? void 0 : n.type) !== "Decorator") return z(O(!1, r.decorators, -1), e), !0;
        if (r.body && n === r.body) return bt(r.body, e), !0;
        if (n) {
          if (r.superClass && n === r.superClass && t && (t === r.id || t === r.typeParameters)) return z(t, e), !0;
          for (let s of ["implements", "extends", "mixins"]) if (r[s] && n === r[s][0]) return t && (t === r.id || t === r.typeParameters || t === r.superClass) ? z(t, e) : Le(r, e, s), !0;
        }
      }
      return !1;
    }
    function Ou({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      text: n
    }) {
      return r && t && ge(n, k(e)) === "(" && (r.type === "Property" || r.type === "TSDeclareMethod" || r.type === "TSAbstractMethodDefinition") && t.type === "Identifier" && r.key === t && ge(n, k(t)) !== ":" ? (z(t, e), !0) : (t == null ? void 0 : t.type) === "Decorator" && $o.has(r == null ? void 0 : r.type) ? (z(t, e), !0) : !1;
    }
    function zo({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      text: n
    }) {
      return ge(n, k(e)) !== "(" ? !1 : t && Ko.has(r == null ? void 0 : r.type) ? (z(t, e), !0) : !1;
    }
    function Qo({
      comment: e,
      enclosingNode: t,
      text: r
    }) {
      if ((t == null ? void 0 : t.type) !== "ArrowFunctionExpression") return !1;
      let n = yt(r, k(e));
      return n !== !1 && r.slice(n, n + 2) === "=>" ? (Le(t, e), !0) : !1;
    }
    function Zo({
      comment: e,
      enclosingNode: t,
      text: r
    }) {
      return ge(r, k(e)) !== ")" ? !1 : t && (Ru(t) && K(t).length === 0 || lt(t) && oe(t).length === 0) ? (Le(t, e), !0) : ((t == null ? void 0 : t.type) === "MethodDefinition" || (t == null ? void 0 : t.type) === "TSAbstractMethodDefinition") && K(t.value).length === 0 ? (Le(t.value, e), !0) : !1;
    }
    function ep({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n,
      text: s
    }) {
      return (t == null ? void 0 : t.type) === "ComponentTypeParameter" && ((r == null ? void 0 : r.type) === "DeclareComponent" || (r == null ? void 0 : r.type) === "ComponentTypeAnnotation") && (n == null ? void 0 : n.type) !== "ComponentTypeParameter" ? (z(t, e), !0) : ((t == null ? void 0 : t.type) === "ComponentParameter" || (t == null ? void 0 : t.type) === "RestElement") && (r == null ? void 0 : r.type) === "ComponentDeclaration" && ge(s, k(e)) === ")" ? (z(t, e), !0) : !1;
    }
    function _u({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n,
      text: s
    }) {
      return (t == null ? void 0 : t.type) === "FunctionTypeParam" && (r == null ? void 0 : r.type) === "FunctionTypeAnnotation" && (n == null ? void 0 : n.type) !== "FunctionTypeParam" ? (z(t, e), !0) : ((t == null ? void 0 : t.type) === "Identifier" || (t == null ? void 0 : t.type) === "AssignmentPattern" || (t == null ? void 0 : t.type) === "ObjectPattern" || (t == null ? void 0 : t.type) === "ArrayPattern" || (t == null ? void 0 : t.type) === "RestElement" || (t == null ? void 0 : t.type) === "TSParameterProperty") && Ru(r) && ge(s, k(e)) === ")" ? (z(t, e), !0) : !re(e) && ((r == null ? void 0 : r.type) === "FunctionDeclaration" || (r == null ? void 0 : r.type) === "FunctionExpression" || (r == null ? void 0 : r.type) === "ObjectMethod") && (n == null ? void 0 : n.type) === "BlockStatement" && r.body === n && yt(s, k(e)) === R(n) ? (bt(n, e), !0) : !1;
    }
    function ju({
      comment: e,
      enclosingNode: t
    }) {
      return (t == null ? void 0 : t.type) === "LabeledStatement" ? (ce(t, e), !0) : !1;
    }
    function Vn({
      comment: e,
      enclosingNode: t
    }) {
      return ((t == null ? void 0 : t.type) === "ContinueStatement" || (t == null ? void 0 : t.type) === "BreakStatement") && !t.label ? (z(t, e), !0) : !1;
    }
    function tp({
      comment: e,
      precedingNode: t,
      enclosingNode: r
    }) {
      return L(r) && t && r.callee === t && r.arguments.length > 0 ? (ce(r.arguments[0], e), !0) : !1;
    }
    function rp({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n
    }) {
      return Ne(r) ? (sr(e) && (n.prettierIgnore = !0, e.unignore = !0), t ? (z(t, e), !0) : !1) : (Ne(n) && sr(e) && (n.types[0].prettierIgnore = !0, e.unignore = !0), !1);
    }
    function np({
      comment: e,
      enclosingNode: t
    }) {
      return Ae(t) ? (ce(t, e), !0) : !1;
    }
    function $n({
      comment: e,
      enclosingNode: t,
      ast: r,
      isLastComment: n
    }) {
      var s;
      return ((s = r == null ? void 0 : r.body) == null ? void 0 : s.length) === 0 ? (n ? Le(r, e) : ce(r, e), !0) : (t == null ? void 0 : t.type) === "Program" && t.body.length === 0 && !w(t.directives) ? (n ? Le(t, e) : ce(t, e), !0) : !1;
    }
    function sp({
      comment: e,
      enclosingNode: t
    }) {
      return (t == null ? void 0 : t.type) === "ForInStatement" || (t == null ? void 0 : t.type) === "ForOfStatement" ? (ce(t, e), !0) : !1;
    }
    function vu({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      text: n
    }) {
      if ((r == null ? void 0 : r.type) === "ImportSpecifier" || (r == null ? void 0 : r.type) === "ExportSpecifier") return ce(r, e), !0;
      let s = (t == null ? void 0 : t.type) === "ImportSpecifier" && (r == null ? void 0 : r.type) === "ImportDeclaration",
        u = (t == null ? void 0 : t.type) === "ExportSpecifier" && (r == null ? void 0 : r.type) === "ExportNamedDeclaration";
      return (s || u) && te(n, k(e)) ? (z(t, e), !0) : !1;
    }
    function up({
      comment: e,
      enclosingNode: t
    }) {
      return (t == null ? void 0 : t.type) === "AssignmentPattern" ? (ce(t, e), !0) : !1;
    }
    function op({
      comment: e,
      enclosingNode: t,
      followingNode: r
    }) {
      return ip.has(t == null ? void 0 : t.type) && r && (ap.has(r.type) || re(e)) ? (ce(r, e), !0) : !1;
    }
    function pp({
      comment: e,
      enclosingNode: t,
      followingNode: r,
      text: n
    }) {
      return !r && ((t == null ? void 0 : t.type) === "TSMethodSignature" || (t == null ? void 0 : t.type) === "TSDeclareFunction" || (t == null ? void 0 : t.type) === "TSAbstractMethodDefinition") && ge(n, k(e)) === ";" ? (z(t, e), !0) : !1;
    }
    function Mu({
      comment: e,
      enclosingNode: t,
      followingNode: r
    }) {
      if (sr(e) && (t == null ? void 0 : t.type) === "TSMappedType" && (r == null ? void 0 : r.type) === "TSTypeParameter" && r.constraint) return t.prettierIgnore = !0, e.unignore = !0, !0;
    }
    function cp({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n
    }) {
      return (r == null ? void 0 : r.type) !== "TSMappedType" ? !1 : (n == null ? void 0 : n.type) === "TSTypeParameter" && n.name ? (ce(n.name, e), !0) : (t == null ? void 0 : t.type) === "TSTypeParameter" && t.constraint ? (z(t.constraint, e), !0) : !1;
    }
    function lp({
      comment: e,
      enclosingNode: t,
      followingNode: r
    }) {
      return !t || t.type !== "SwitchCase" || t.test || !r || r !== t.consequent[0] ? !1 : (r.type === "BlockStatement" && vt(e) ? bt(r, e) : Le(t, e), !0);
    }
    function mp({
      comment: e,
      precedingNode: t,
      enclosingNode: r,
      followingNode: n
    }) {
      return Ne(t) && ((r.type === "TSArrayType" || r.type === "ArrayTypeAnnotation") && !n || _r(r)) ? (z(O(!1, t.types, -1), e), !0) : !1;
    }
    function yp({
      comment: e,
      enclosingNode: t,
      precedingNode: r,
      followingNode: n
    }) {
      if (((t == null ? void 0 : t.type) === "ObjectPattern" || (t == null ? void 0 : t.type) === "ArrayPattern") && (n == null ? void 0 : n.type) === "TSTypeAnnotation") return r ? z(r, e) : Le(t, e), !0;
    }
    function fp(e) {
      return !Dp.has(e.type);
    }
    function Ep(e, t) {
      var r;
      if ((t.parser === "typescript" || t.parser === "flow" || t.parser === "acorn" || t.parser === "espree" || t.parser === "meriyah" || t.parser === "__babel_estree") && e.type === "MethodDefinition" && ((r = e.value) == null ? void 0 : r.type) === "FunctionExpression" && K(e.value).length === 0 && !e.value.returnType && !w(e.value.typeParameters) && e.value.body) return [...(e.decorators || []), e.key, e.value.body];
    }
    function zn(e) {
      let {
        node: t,
        parent: r
      } = e;
      return (X(t) || r && (r.type === "JSXSpreadAttribute" || r.type === "JSXSpreadChild" || Ne(r) || (r.type === "ClassDeclaration" || r.type === "ClassExpression") && r.superClass === t)) && (!Bt(t) || Ne(r));
    }
    function Fp(e, {
      parser: t
    }) {
      if (t === "flow" || t === "babel-flow") return e = N(!1, e, /[\s(]/gu, ""), e === "" || e === "/*" || e === "/*::";
    }
    function Ju(e) {
      switch (e) {
        case "cr":
          return "\r";
        case "crlf":
          return `\r
`;
        default:
          return `
`;
      }
    }
    function qu() {
      return {
        value: "",
        length: 0,
        queue: []
      };
    }
    function Cp(e, t) {
      return Qn(e, {
        type: "indent"
      }, t);
    }
    function Ap(e, t, r) {
      return t === Number.NEGATIVE_INFINITY ? e.root || qu() : t < 0 ? Qn(e, {
        type: "dedent"
      }, r) : t ? t.type === "root" ? {
        ...e,
        root: e
      } : Qn(e, {
        type: typeof t == "string" ? "stringAlign" : "numberAlign",
        n: t
      }, r) : e;
    }
    function Qn(e, t, r) {
      let n = t.type === "dedent" ? e.queue.slice(0, -1) : [...e.queue, t],
        s = "",
        u = 0,
        i = 0,
        a = 0;
      for (let p of n) switch (p.type) {
        case "indent":
          m(), r.useTabs ? o(1) : c(r.tabWidth);
          break;
        case "stringAlign":
          m(), s += p.n, u += p.n.length;
          break;
        case "numberAlign":
          i += 1, a += p.n;
          break;
        default:
          throw new Error(`Unexpected type '${p.type}'`);
      }
      return y$1(), {
        ...e,
        value: s,
        length: u,
        queue: n
      };
      function o(p) {
        s += "	".repeat(p), u += r.tabWidth * p;
      }
      function c(p) {
        s += " ".repeat(p), u += p;
      }
      function m() {
        r.useTabs ? D$1() : y$1();
      }
      function D$1() {
        i > 0 && o(i), C();
      }
      function y$1() {
        a > 0 && c(a), C();
      }
      function C() {
        i = 0, a = 0;
      }
    }
    function Zn(e) {
      let t = 0,
        r = 0,
        n = e.length;
      e: for (; n--;) {
        let s = e[n];
        if (s === ar) {
          r++;
          continue;
        }
        for (let u = s.length - 1; u >= 0; u--) {
          let i = s[u];
          if (i === " " || i === "	") t++;else {
            e[n] = s.slice(0, u + 1);
            break e;
          }
        }
      }
      if (t > 0 || r > 0) for (e.length = n + 1; r-- > 0;) e.push(ar);
      return t;
    }
    function Jr(e, t, r, n, s, u) {
      if (r === Number.POSITIVE_INFINITY) return !0;
      let i = t.length,
        a = [e],
        o = [];
      for (; r >= 0;) {
        if (a.length === 0) {
          if (i === 0) return !0;
          a.push(t[--i]);
          continue;
        }
        let {
            mode: c,
            doc: m
          } = a.pop(),
          D$1 = ut(m);
        switch (D$1) {
          case rt:
            o.push(m), r -= et(m);
            break;
          case _e:
          case Pe:
            {
              let y$1 = D$1 === _e ? m : m.parts;
              for (let C = y$1.length - 1; C >= 0; C--) a.push({
                mode: c,
                doc: y$1[C]
              });
              break;
            }
          case Xe:
          case Ye:
          case He:
          case je:
            a.push({
              mode: c,
              doc: m.contents
            });
            break;
          case st:
            r += Zn(o);
            break;
          case le:
            {
              if (u && m.break) return !1;
              let y$1 = m.break ? Se : c,
                C = m.expandedStates && y$1 === Se ? O(!1, m.expandedStates, -1) : m.contents;
              a.push({
                mode: y$1,
                doc: C
              });
              break;
            }
          case xe:
            {
              let C = (m.groupId ? s[m.groupId] || at : c) === Se ? m.breakContents : m.flatContents;
              C && a.push({
                mode: c,
                doc: C
              });
              break;
            }
          case me:
            if (c === Se || m.hard) return !0;
            m.soft || (o.push(" "), r--);
            break;
          case Ve:
            n = !0;
            break;
          case $e:
            if (n) return !1;
            break;
        }
      }
      return !1;
    }
    function es(e, t) {
      let r = {},
        n = t.printWidth,
        s = Ju(t.endOfLine),
        u = 0,
        i = [{
          ind: qu(),
          mode: Se,
          doc: e
        }],
        a = [],
        o = !1,
        c = [],
        m = 0;
      for (Su(e); i.length > 0;) {
        let {
          ind: y$1,
          mode: C,
          doc: p
        } = i.pop();
        switch (ut(p)) {
          case rt:
            {
              let A = s !== `
` ? N(!1, p, `
`, s) : p;
              a.push(A), i.length > 0 && (u += et(A));
              break;
            }
          case _e:
            for (let A = p.length - 1; A >= 0; A--) i.push({
              ind: y$1,
              mode: C,
              doc: p[A]
            });
            break;
          case nt:
            if (m >= 2) throw new Error("There are too many 'cursor' in doc.");
            a.push(ar), m++;
            break;
          case Xe:
            i.push({
              ind: Cp(y$1, t),
              mode: C,
              doc: p.contents
            });
            break;
          case Ye:
            i.push({
              ind: Ap(y$1, p.n, t),
              mode: C,
              doc: p.contents
            });
            break;
          case st:
            u -= Zn(a);
            break;
          case le:
            switch (C) {
              case at:
                if (!o) {
                  i.push({
                    ind: y$1,
                    mode: p.break ? Se : at,
                    doc: p.contents
                  });
                  break;
                }
              case Se:
                {
                  o = !1;
                  let A = {
                      ind: y$1,
                      mode: at,
                      doc: p.contents
                    },
                    T$1 = n - u,
                    S$1 = c.length > 0;
                  if (!p.break && Jr(A, i, T$1, S$1, r)) i.push(A);else if (p.expandedStates) {
                    let B$2 = O(!1, p.expandedStates, -1);
                    if (p.break) {
                      i.push({
                        ind: y$1,
                        mode: Se,
                        doc: B$2
                      });
                      break;
                    } else for (let _$1 = 1; _$1 < p.expandedStates.length + 1; _$1++) if (_$1 >= p.expandedStates.length) {
                      i.push({
                        ind: y$1,
                        mode: Se,
                        doc: B$2
                      });
                      break;
                    } else {
                      let j$1 = {
                        ind: y$1,
                        mode: at,
                        doc: p.expandedStates[_$1]
                      };
                      if (Jr(j$1, i, T$1, S$1, r)) {
                        i.push(j$1);
                        break;
                      }
                    }
                  } else i.push({
                    ind: y$1,
                    mode: Se,
                    doc: p.contents
                  });
                  break;
                }
            }
            p.id && (r[p.id] = O(!1, i, -1).mode);
            break;
          case Pe:
            {
              let A = n - u,
                {
                  parts: T$1
                } = p;
              if (T$1.length === 0) break;
              let [S$1, B$2] = T$1,
                _$1 = {
                  ind: y$1,
                  mode: at,
                  doc: S$1
                },
                J$1 = {
                  ind: y$1,
                  mode: Se,
                  doc: S$1
                },
                j$1 = Jr(_$1, [], A, c.length > 0, r, !0);
              if (T$1.length === 1) {
                j$1 ? i.push(_$1) : i.push(J$1);
                break;
              }
              let h = {
                  ind: y$1,
                  mode: at,
                  doc: B$2
                },
                W$1 = {
                  ind: y$1,
                  mode: Se,
                  doc: B$2
                };
              if (T$1.length === 2) {
                j$1 ? i.push(h, _$1) : i.push(W$1, J$1);
                break;
              }
              T$1.splice(0, 2);
              let Fe$2 = {
                  ind: y$1,
                  mode: C,
                  doc: qt(T$1)
                },
                H$2 = T$1[0];
              Jr({
                ind: y$1,
                mode: at,
                doc: [S$1, B$2, H$2]
              }, [], A, c.length > 0, r, !0) ? i.push(Fe$2, h, _$1) : j$1 ? i.push(Fe$2, W$1, _$1) : i.push(Fe$2, W$1, J$1);
              break;
            }
          case xe:
          case He:
            {
              let A = p.groupId ? r[p.groupId] : C;
              if (A === Se) {
                let T$1 = p.type === xe ? p.breakContents : p.negate ? p.contents : f(p.contents);
                T$1 && i.push({
                  ind: y$1,
                  mode: C,
                  doc: T$1
                });
              }
              if (A === at) {
                let T$1 = p.type === xe ? p.flatContents : p.negate ? f(p.contents) : p.contents;
                T$1 && i.push({
                  ind: y$1,
                  mode: C,
                  doc: T$1
                });
              }
              break;
            }
          case Ve:
            c.push({
              ind: y$1,
              mode: C,
              doc: p.contents
            });
            break;
          case $e:
            c.length > 0 && i.push({
              ind: y$1,
              mode: C,
              doc: Gn
            });
            break;
          case me:
            switch (C) {
              case at:
                if (p.hard) o = !0;else {
                  p.soft || (a.push(" "), u += 1);
                  break;
                }
              case Se:
                if (c.length > 0) {
                  i.push({
                    ind: y$1,
                    mode: C,
                    doc: p
                  }, ...c.reverse()), c.length = 0;
                  break;
                }
                p.literal ? y$1.root ? (a.push(s, y$1.root.value), u = y$1.root.length) : (a.push(s), u = 0) : (u -= Zn(a), a.push(s + y$1.value), u = y$1.length);
                break;
            }
            break;
          case je:
            i.push({
              ind: y$1,
              mode: C,
              doc: p.contents
            });
            break;
          case ve:
            break;
          default:
            throw new Ct(p);
        }
        i.length === 0 && c.length > 0 && (i.push(...c.reverse()), c.length = 0);
      }
      let D$1 = a.indexOf(ar);
      if (D$1 !== -1) {
        let y$1 = a.indexOf(ar, D$1 + 1),
          C = a.slice(0, D$1).join(""),
          p = a.slice(D$1 + 1, y$1).join(""),
          A = a.slice(y$1 + 1).join("");
        return {
          formatted: C + p + A,
          cursorNodeStart: C.length,
          cursorNodeText: p
        };
      }
      return {
        formatted: a.join("")
      };
    }
    function Tp(e, t, r = 0) {
      let n = 0;
      for (let s = r; s < e.length; ++s) e[s] === "	" ? n = n + t - n % t : n++;
      return n;
    }
    function dp(e, t) {
      let r = e.lastIndexOf(`
`);
      return r === -1 ? 0 : Wu(e.slice(r + 1).match(/^[\t ]*/u)[0], t);
    }
    function qr(e, t, r) {
      let {
        node: n
      } = e;
      if (n.type === "TemplateLiteral" && gp(e)) {
        let c = xp(e, r, t);
        if (c) return c;
      }
      let u = "expressions";
      n.type === "TSTemplateLiteralType" && (u = "types");
      let i = [],
        a = e.map(t, u);
      i.push(ke, "`");
      let o = 0;
      return e.each(({
        index: c,
        node: m
      }) => {
        if (i.push(t()), m.tail) return;
        let {
            tabWidth: D$1
          } = r,
          y$1 = m.value.raw,
          C = y$1.includes(`
`) ? Gu(y$1, D$1) : o;
        o = C;
        let p = a[c],
          A = n[u][c],
          T$1 = de(r.originalText, k(m), R(n.quasis[c + 1]));
        if (!T$1) {
          let B$2 = es(p, {
            ...r,
            printWidth: Number.POSITIVE_INFINITY
          }).formatted;
          B$2.includes(`
`) ? T$1 = !0 : p = B$2;
        }
        T$1 && (d(A) || A.type === "Identifier" || q(A) || A.type === "ConditionalExpression" || A.type === "SequenceExpression" || Te(A) || De(A)) && (p = [f([E, p]), E]);
        let S$1 = C === 0 && y$1.endsWith(`
`) ? he(Number.NEGATIVE_INFINITY, p) : xu(p, C, D$1);
        i.push(l(["${", S$1, ke, "}"]));
      }, "quasis"), i.push("`"), i;
    }
    function Uu(e, t) {
      let r = t("quasi");
      return it(r.label && {
        tagged: !0,
        ...r.label
      }, [t("tag"), t(e.node.typeArguments ? "typeArguments" : "typeParameters"), ke, r]);
    }
    function xp(e, t, r) {
      let {
          node: n
        } = e,
        s = n.quasis[0].value.raw.trim().split(/\s*\|\s*/u);
      if (s.length > 1 || s.some(u => u.length > 0)) {
        t.__inJestEach = !0;
        let u = e.map(r, "expressions");
        t.__inJestEach = !1;
        let i = [],
          a = u.map(y$1 => "${" + es(y$1, {
            ...t,
            printWidth: Number.POSITIVE_INFINITY,
            endOfLine: "lf"
          }).formatted + "}"),
          o = [{
            hasLineBreak: !1,
            cells: []
          }];
        for (let y$1 = 1; y$1 < n.quasis.length; y$1++) {
          let C = O(!1, o, -1),
            p = a[y$1 - 1];
          C.cells.push(p), p.includes(`
`) && (C.hasLineBreak = !0), n.quasis[y$1].value.raw.includes(`
`) && o.push({
            hasLineBreak: !1,
            cells: []
          });
        }
        let c = Math.max(s.length, ...o.map(y$1 => y$1.cells.length)),
          m = Array.from({
            length: c
          }).fill(0),
          D$1 = [{
            cells: s
          }, ...o.filter(y$1 => y$1.cells.length > 0)];
        for (let {
          cells: y$1
        } of D$1.filter(C => !C.hasLineBreak)) for (let [C, p] of y$1.entries()) m[C] = Math.max(m[C], et(p));
        return i.push(ke, "`", f([F, P(F, D$1.map(y$1 => P(" | ", y$1.cells.map((C, p) => y$1.hasLineBreak ? C : C + " ".repeat(m[p] - et(C))))))]), F, "`"), i;
      }
    }
    function hp(e, t) {
      let {
          node: r
        } = e,
        n = t();
      return d(r) && (n = l([f([E, n]), E])), ["${", n, ke, "}"];
    }
    function Gt(e, t) {
      return e.map(r => hp(r, t), "expressions");
    }
    function Wr(e, t) {
      return mt(e, r => typeof r == "string" ? t ? N(!1, r, /(\\*)`/gu, "$1$1\\`") : ts(r) : r);
    }
    function ts(e) {
      return N(!1, e, /([\\`]|\$\{)/gu, String.raw`\$1`);
    }
    function gp({
      node: e,
      parent: t
    }) {
      let r = /^[fx]?(?:describe|it|test)$/u;
      return t.type === "TaggedTemplateExpression" && t.quasi === e && t.tag.type === "MemberExpression" && t.tag.property.type === "Identifier" && t.tag.property.name === "each" && (t.tag.object.type === "Identifier" && r.test(t.tag.object.name) || t.tag.object.type === "MemberExpression" && t.tag.object.property.type === "Identifier" && (t.tag.object.property.name === "only" || t.tag.object.property.name === "skip") && t.tag.object.object.type === "Identifier" && r.test(t.tag.object.object.name));
    }
    function Nu(e) {
      let t = n => n.type === "TemplateLiteral",
        r = (n, s) => Ae(n) && !n.computed && n.key.type === "Identifier" && n.key.name === "styles" && s === "value";
      return e.match(t, (n, s) => U(n) && s === "elements", r, ...ns) || e.match(t, r, ...ns);
    }
    function Xu(e) {
      return e.match(t => t.type === "TemplateLiteral", (t, r) => Ae(t) && !t.computed && t.key.type === "Identifier" && t.key.name === "template" && r === "value", ...ns);
    }
    function rs(e, t) {
      return d(e, g.Block | g.Leading, ({
        value: r
      }) => r === ` ${t} `);
    }
    function Gr({
      node: e,
      parent: t
    }, r) {
      return rs(e, r) || Sp(t) && rs(t, r) || t.type === "ExpressionStatement" && rs(t, r);
    }
    function Sp(e) {
      return e.type === "AsConstExpression" || e.type === "TSAsExpression" && e.typeAnnotation.type === "TSTypeReference" && e.typeAnnotation.typeName.type === "Identifier" && e.typeAnnotation.typeName.name === "const";
    }
    async function Bp(e, t, r) {
      let {
          node: n
        } = r,
        s = n.quasis.map(m => m.value.raw),
        u = 0,
        c = bp(await e(s.reduce((m, D$1, y$1) => y$1 === 0 ? D$1 : m + "@prettier-placeholder-" + u++ + "-id" + D$1, ""), {
          parser: "scss"
        }), Gt(r, t));
      if (!c) throw new Error("Couldn't insert all the expressions");
      return ["`", f([F, c]), E, "`"];
    }
    function bp(e, t) {
      if (!w(t)) return e;
      let r = 0,
        n = mt(Wt(e), s => typeof s != "string" || !s.includes("@prettier-placeholder") ? s : s.split(/@prettier-placeholder-(\d+)-id/u).map((u, i) => i % 2 === 0 ? Ie(u) : (r++, t[u])));
      return t.length === r ? n : null;
    }
    function Pp({
      node: e,
      parent: t,
      grandparent: r
    }) {
      return r && e.quasis && t.type === "JSXExpressionContainer" && r.type === "JSXElement" && r.openingElement.name.name === "style" && r.openingElement.attributes.some(n => n.type === "JSXAttribute" && n.name.name === "jsx") || (t == null ? void 0 : t.type) === "TaggedTemplateExpression" && t.tag.type === "Identifier" && t.tag.name === "css" || (t == null ? void 0 : t.type) === "TaggedTemplateExpression" && t.tag.type === "MemberExpression" && t.tag.object.name === "css" && (t.tag.property.name === "global" || t.tag.property.name === "resolve");
    }
    function Ur(e) {
      return e.type === "Identifier" && e.name === "styled";
    }
    function Yu(e) {
      return /^[A-Z]/u.test(e.object.name) && e.property.name === "extend";
    }
    function kp({
      parent: e
    }) {
      if (!e || e.type !== "TaggedTemplateExpression") return !1;
      let t = e.tag.type === "ParenthesizedExpression" ? e.tag.expression : e.tag;
      switch (t.type) {
        case "MemberExpression":
          return Ur(t.object) || Yu(t);
        case "CallExpression":
          return Ur(t.callee) || t.callee.type === "MemberExpression" && (t.callee.object.type === "MemberExpression" && (Ur(t.callee.object.object) || Yu(t.callee.object)) || t.callee.object.type === "CallExpression" && Ur(t.callee.object.callee));
        case "Identifier":
          return t.name === "css";
        default:
          return !1;
      }
    }
    function Ip({
      parent: e,
      grandparent: t
    }) {
      return (t == null ? void 0 : t.type) === "JSXAttribute" && e.type === "JSXExpressionContainer" && t.name.type === "JSXIdentifier" && t.name.name === "css";
    }
    function Lp(e) {
      if (Pp(e) || kp(e) || Ip(e) || Nu(e)) return Bp;
    }
    async function wp(e, t, r) {
      let {
          node: n
        } = r,
        s = n.quasis.length,
        u = Gt(r, t),
        i = [];
      for (let a = 0; a < s; a++) {
        let o = n.quasis[a],
          c = a === 0,
          m = a === s - 1,
          D$1 = o.value.cooked,
          y$1 = D$1.split(`
`),
          C = y$1.length,
          p = u[a],
          A = C > 2 && y$1[0].trim() === "" && y$1[1].trim() === "",
          T$1 = C > 2 && y$1[C - 1].trim() === "" && y$1[C - 2].trim() === "",
          S$1 = y$1.every(_$1 => /^\s*(?:#[^\n\r]*)?$/u.test(_$1));
        if (!m && /#[^\n\r]*$/u.test(y$1[C - 1])) return null;
        let B$2 = null;
        S$1 ? B$2 = Op(y$1) : B$2 = await e(D$1, {
          parser: "graphql"
        }), B$2 ? (B$2 = Wr(B$2, !1), !c && A && i.push(""), i.push(B$2), !m && T$1 && i.push("")) : !c && !m && A && i.push(""), p && i.push(p);
      }
      return ["`", f([F, P(F, i)]), F, "`"];
    }
    function Op(e) {
      let t = [],
        r = !1,
        n = e.map(s => s.trim());
      for (let [s, u] of n.entries()) u !== "" && (n[s - 1] === "" && r ? t.push([F, u]) : t.push(u), r = !0);
      return t.length === 0 ? null : P(F, t);
    }
    function _p({
      node: e,
      parent: t
    }) {
      return Gr({
        node: e,
        parent: t
      }, "GraphQL") || t && (t.type === "TaggedTemplateExpression" && (t.tag.type === "MemberExpression" && t.tag.object.name === "graphql" && t.tag.property.name === "experimental" || t.tag.type === "Identifier" && (t.tag.name === "gql" || t.tag.name === "graphql")) || t.type === "CallExpression" && t.callee.type === "Identifier" && t.callee.name === "graphql");
    }
    function jp(e) {
      if (_p(e)) return wp;
    }
    async function $u(e, t, r, n, s) {
      let {
          node: u
        } = n,
        i = ss;
      ss = ss + 1 >>> 0;
      let a = S$1 => `PRETTIER_HTML_PLACEHOLDER_${S$1}_${i}_IN_JS`,
        o = u.quasis.map((S$1, B$2, _$1) => B$2 === _$1.length - 1 ? S$1.value.cooked : S$1.value.cooked + a(B$2)).join(""),
        c = Gt(n, r),
        m = new RegExp(a(String.raw`(\d+)`), "gu"),
        D$1 = 0,
        C = mt(await t(o, {
          parser: e,
          __onHtmlRoot(S$1) {
            D$1 = S$1.children.length;
          }
        }), S$1 => {
          if (typeof S$1 != "string") return S$1;
          let B$2 = [],
            _$1 = S$1.split(m);
          for (let J$1 = 0; J$1 < _$1.length; J$1++) {
            let j$1 = _$1[J$1];
            if (J$1 % 2 === 0) {
              j$1 && (j$1 = ts(j$1), s.__embeddedInHtml && (j$1 = N(!1, j$1, /<\/(?=script\b)/giu, String.raw`<\/`)), B$2.push(j$1));
              continue;
            }
            let h = Number(j$1);
            B$2.push(c[h]);
          }
          return B$2;
        }),
        p = /^\s/u.test(o) ? " " : "",
        A = /\s$/u.test(o) ? " " : "",
        T$1 = s.htmlWhitespaceSensitivity === "ignore" ? F : p && A ? x : null;
      return T$1 ? l(["`", f([T$1, l(C)]), T$1, "`"]) : it({
        hug: !1
      }, l(["`", p, D$1 > 1 ? f(l(C)) : l(C), A, "`"]));
    }
    function vp(e) {
      return Gr(e, "HTML") || e.match(t => t.type === "TemplateLiteral", (t, r) => t.type === "TaggedTemplateExpression" && t.tag.type === "Identifier" && t.tag.name === "html" && r === "quasi");
    }
    function Jp(e) {
      if (vp(e)) return Mp;
      if (Xu(e)) return Rp;
    }
    async function qp(e, t, r) {
      let {
          node: n
        } = r,
        s = N(!1, n.quasis[0].value.raw, /((?:\\\\)*)\\`/gu, (o, c) => "\\".repeat(c.length / 2) + "`"),
        u = Wp(s),
        i = u !== "";
      i && (s = N(!1, s, new RegExp(`^${u}`, "gmu"), ""));
      let a = Wr(await e(s, {
        parser: "markdown",
        __inJsTemplate: !0
      }), !0);
      return ["`", i ? f([E, a]) : [Rr, du(a)], E, "`"];
    }
    function Wp(e) {
      let t = e.match(/^([^\S\n]*)\S/mu);
      return t === null ? "" : t[1];
    }
    function Gp(e) {
      if (Up(e)) return qp;
    }
    function Up({
      node: e,
      parent: t
    }) {
      return (t == null ? void 0 : t.type) === "TaggedTemplateExpression" && e.quasis.length === 1 && t.tag.type === "Identifier" && (t.tag.name === "md" || t.tag.name === "markdown");
    }
    function Np(e) {
      let {
        node: t
      } = e;
      if (t.type !== "TemplateLiteral" || Xp(t)) return;
      let r;
      for (let n of [Hu, Vu, Ku, zu]) if (r = n(e), !!r) return t.quasis.length === 1 && t.quasis[0].value.raw.trim() === "" ? "``" : async (...s) => {
        let u = await r(...s);
        return u && it({
          embed: !0,
          ...u.label
        }, u);
      };
    }
    function Xp({
      quasis: e
    }) {
      return e.some(({
        value: {
          cooked: t
        }
      }) => t === null);
    }
    function si(e) {
      let t = e.match(ri);
      return t ? t[0].trimStart() : "";
    }
    function ui(e) {
      let t = e.match(ri),
        r = t == null ? void 0 : t[0];
      return r == null ? e : e.slice(r.length);
    }
    function ii(e) {
      let t = `
`;
      e = N(!1, e.replace(Hp, "").replace(Yp, ""), Kp, "$1");
      let r = "";
      for (; r !== e;) r = e, e = N(!1, e, $p, `${t}$1 $2${t}`);
      e = e.replace(Zu, "").trimEnd();
      let n = Object.create(null),
        s = N(!1, e, ei, "").replace(Zu, "").trimEnd(),
        u;
      for (; u = ei.exec(e);) {
        let i = N(!1, u[2], Vp, "");
        if (typeof n[u[1]] == "string" || Array.isArray(n[u[1]])) {
          let a = n[u[1]];
          n[u[1]] = [...ni, ...(Array.isArray(a) ? a : [a]), i];
        } else n[u[1]] = i;
      }
      return {
        comments: s,
        pragmas: n
      };
    }
    function ai({
      comments: e = "",
      pragmas: t = {}
    }) {
      let r = `
`,
        n = "/**",
        s = " *",
        u = " */",
        i = Object.keys(t),
        a = i.flatMap(c => ti(c, t[c])).map(c => `${s} ${c}${r}`).join("");
      if (!e) {
        if (i.length === 0) return "";
        if (i.length === 1 && !Array.isArray(t[i[0]])) {
          let c = t[i[0]];
          return `${n} ${ti(i[0], c)[0]}${u}`;
        }
      }
      let o = e.split(r).map(c => `${s} ${c}`).join(r) + r;
      return n + r + (e ? o : "") + (e && i.length > 0 ? s + r : "") + a + u;
    }
    function ti(e, t) {
      return [...ni, ...(Array.isArray(t) ? t : [t])].map(r => `@${e} ${r}`.trim());
    }
    function zp(e) {
      if (!e.startsWith("#!")) return "";
      let t = e.indexOf(`
`);
      return t === -1 ? e : e.slice(0, t);
    }
    function Qp(e) {
      let t = oi(e);
      t && (e = e.slice(t.length + 1));
      let {
        pragmas: n,
        comments: s
      } = ii(si(e));
      return {
        shebang: t,
        text: e,
        pragmas: n,
        comments: s
      };
    }
    function pi(e) {
      let {
          shebang: t,
          text: r,
          pragmas: n,
          comments: s
        } = Qp(e),
        u = ui(r),
        i = ai({
          pragmas: {
            format: "",
            ...n
          },
          comments: s.trimStart()
        });
      return (t ? `${t}
` : "") + i + (u.startsWith(`
`) ? `
` : `

`) + u;
    }
    function Zp(e, t) {
      let {
          originalText: r,
          [Symbol.for("comments")]: n,
          locStart: s,
          locEnd: u,
          [Symbol.for("printedComments")]: i
        } = t,
        {
          node: a
        } = e,
        o = s(a),
        c = u(a);
      for (let m of n) s(m) >= o && u(m) <= c && i.add(m);
      return r.slice(o, c);
    }
    function us(e, t) {
      var u, i, a, o, c, m, D$1, y$1, C;
      if (e.isRoot) return !1;
      let {
        node: r,
        key: n,
        parent: s
      } = e;
      if (t.__isInHtmlInterpolation && !t.bracketSpacing && nc(r) && or(e)) return !0;
      if (ec(r)) return !1;
      if (r.type === "Identifier") {
        if ((u = r.extra) != null && u.parenthesized && /^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/u.test(r.name) || n === "left" && (r.name === "async" && !s.await || r.name === "let") && s.type === "ForOfStatement") return !0;
        if (r.name === "let") {
          let p = (i = e.findAncestor(A => A.type === "ForOfStatement")) == null ? void 0 : i.left;
          if (p && ie(p, A => A === r)) return !0;
        }
        if (n === "object" && r.name === "let" && s.type === "MemberExpression" && s.computed && !s.optional) {
          let p = e.findAncestor(T$1 => T$1.type === "ExpressionStatement" || T$1.type === "ForStatement" || T$1.type === "ForInStatement"),
            A = p ? p.type === "ExpressionStatement" ? p.expression : p.type === "ForStatement" ? p.init : p.left : void 0;
          if (A && ie(A, T$1 => T$1 === r)) return !0;
        }
        if (n === "expression") switch (r.name) {
          case "await":
          case "interface":
          case "module":
          case "using":
          case "yield":
          case "let":
          case "component":
          case "hook":
          case "type":
            {
              let p = e.findAncestor(A => !Te(A));
              if (p !== s && p.type === "ExpressionStatement") return !0;
            }
        }
        return !1;
      }
      if (r.type === "ObjectExpression" || r.type === "FunctionExpression" || r.type === "ClassExpression" || r.type === "DoExpression") {
        let p = (a = e.findAncestor(A => A.type === "ExpressionStatement")) == null ? void 0 : a.expression;
        if (p && ie(p, A => A === r)) return !0;
      }
      if (r.type === "ObjectExpression") {
        let p = (o = e.findAncestor(A => A.type === "ArrowFunctionExpression")) == null ? void 0 : o.body;
        if (p && p.type !== "SequenceExpression" && p.type !== "AssignmentExpression" && ie(p, A => A === r)) return !0;
      }
      switch (s.type) {
        case "ParenthesizedExpression":
          return !1;
        case "ClassDeclaration":
        case "ClassExpression":
          if (n === "superClass" && (r.type === "ArrowFunctionExpression" || r.type === "AssignmentExpression" || r.type === "AwaitExpression" || r.type === "BinaryExpression" || r.type === "ConditionalExpression" || r.type === "LogicalExpression" || r.type === "NewExpression" || r.type === "ObjectExpression" || r.type === "SequenceExpression" || r.type === "TaggedTemplateExpression" || r.type === "UnaryExpression" || r.type === "UpdateExpression" || r.type === "YieldExpression" || r.type === "TSNonNullExpression" || r.type === "ClassExpression" && w(r.decorators))) return !0;
          break;
        case "ExportDefaultDeclaration":
          return li(e, t) || r.type === "SequenceExpression";
        case "Decorator":
          if (n === "expression" && !uc(r)) return !0;
          break;
        case "TypeAnnotation":
          if (e.match(void 0, void 0, (p, A) => A === "returnType" && p.type === "ArrowFunctionExpression") && rc(r)) return !0;
          break;
        case "BinaryExpression":
          if (n === "left" && (s.operator === "in" || s.operator === "instanceof") && r.type === "UnaryExpression") return !0;
          break;
        case "VariableDeclarator":
          if (n === "init" && e.match(void 0, void 0, (p, A) => A === "declarations" && p.type === "VariableDeclaration", (p, A) => A === "left" && p.type === "ForInStatement")) return !0;
          break;
      }
      switch (r.type) {
        case "UpdateExpression":
          if (s.type === "UnaryExpression") return r.prefix && (r.operator === "++" && s.operator === "+" || r.operator === "--" && s.operator === "-");
        case "UnaryExpression":
          switch (s.type) {
            case "UnaryExpression":
              return r.operator === s.operator && (r.operator === "+" || r.operator === "-");
            case "BindExpression":
              return !0;
            case "MemberExpression":
            case "OptionalMemberExpression":
              return n === "object";
            case "TaggedTemplateExpression":
              return !0;
            case "NewExpression":
            case "CallExpression":
            case "OptionalCallExpression":
              return n === "callee";
            case "BinaryExpression":
              return n === "left" && s.operator === "**";
            case "TSNonNullExpression":
              return !0;
            default:
              return !1;
          }
        case "BinaryExpression":
          if (s.type === "UpdateExpression" || r.operator === "in" && tc(e)) return !0;
          if (r.operator === "|>" && (c = r.extra) != null && c.parenthesized) {
            let p = e.grandparent;
            if (p.type === "BinaryExpression" && p.operator === "|>") return !0;
          }
        case "TSTypeAssertion":
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "AsExpression":
        case "AsConstExpression":
        case "SatisfiesExpression":
        case "LogicalExpression":
          switch (s.type) {
            case "TSAsExpression":
            case "TSSatisfiesExpression":
            case "AsExpression":
            case "AsConstExpression":
            case "SatisfiesExpression":
              return !Te(r);
            case "ConditionalExpression":
              return Te(r) || au(r);
            case "CallExpression":
            case "NewExpression":
            case "OptionalCallExpression":
              return n === "callee";
            case "ClassExpression":
            case "ClassDeclaration":
              return n === "superClass";
            case "TSTypeAssertion":
            case "TaggedTemplateExpression":
            case "UnaryExpression":
            case "JSXSpreadAttribute":
            case "SpreadElement":
            case "BindExpression":
            case "AwaitExpression":
            case "TSNonNullExpression":
            case "UpdateExpression":
              return !0;
            case "MemberExpression":
            case "OptionalMemberExpression":
              return n === "object";
            case "AssignmentExpression":
            case "AssignmentPattern":
              return n === "left" && (r.type === "TSTypeAssertion" || Te(r));
            case "LogicalExpression":
              if (r.type === "LogicalExpression") return s.operator !== r.operator;
            case "BinaryExpression":
              {
                let {
                  operator: p,
                  type: A
                } = r;
                if (!p && A !== "TSTypeAssertion") return !0;
                let T$1 = er(p),
                  S$1 = s.operator,
                  B$2 = er(S$1);
                return B$2 > T$1 || n === "right" && B$2 === T$1 || B$2 === T$1 && !nr(S$1, p) ? !0 : B$2 < T$1 && p === "%" ? S$1 === "+" || S$1 === "-" : !!yu(S$1);
              }
            default:
              return !1;
          }
        case "SequenceExpression":
          switch (s.type) {
            case "ReturnStatement":
              return !1;
            case "ForStatement":
              return !1;
            case "ExpressionStatement":
              return n !== "expression";
            case "ArrowFunctionExpression":
              return n !== "body";
            default:
              return !0;
          }
        case "YieldExpression":
          if (s.type === "AwaitExpression" || s.type === "TSTypeAssertion") return !0;
        case "AwaitExpression":
          switch (s.type) {
            case "TaggedTemplateExpression":
            case "UnaryExpression":
            case "LogicalExpression":
            case "SpreadElement":
            case "TSAsExpression":
            case "TSSatisfiesExpression":
            case "TSNonNullExpression":
            case "AsExpression":
            case "AsConstExpression":
            case "SatisfiesExpression":
            case "BindExpression":
              return !0;
            case "MemberExpression":
            case "OptionalMemberExpression":
              return n === "object";
            case "NewExpression":
            case "CallExpression":
            case "OptionalCallExpression":
              return n === "callee";
            case "ConditionalExpression":
              return n === "test";
            case "BinaryExpression":
              return !(!r.argument && s.operator === "|>");
            default:
              return !1;
          }
        case "TSFunctionType":
          if (e.match(p => p.type === "TSFunctionType", (p, A) => A === "typeAnnotation" && p.type === "TSTypeAnnotation", (p, A) => A === "returnType" && p.type === "ArrowFunctionExpression")) return !0;
        case "TSConditionalType":
        case "TSConstructorType":
          if (n === "extendsType" && s.type === "TSConditionalType") {
            if (r.type === "TSConditionalType") return !0;
            let {
              typeAnnotation: p
            } = r.returnType || r.typeAnnotation;
            if (p.type === "TSTypePredicate" && p.typeAnnotation && (p = p.typeAnnotation.typeAnnotation), p.type === "TSInferType" && p.typeParameter.constraint) return !0;
          }
          if (n === "checkType" && s.type === "TSConditionalType") return !0;
        case "TSUnionType":
        case "TSIntersectionType":
          if ((s.type === "TSUnionType" || s.type === "TSIntersectionType") && s.types.length > 1 && (!r.types || r.types.length > 1)) return !0;
        case "TSInferType":
          if (r.type === "TSInferType") {
            if (s.type === "TSRestType") return !1;
            if (n === "types" && (s.type === "TSUnionType" || s.type === "TSIntersectionType") && r.typeParameter.type === "TSTypeParameter" && r.typeParameter.constraint) return !0;
          }
        case "TSTypeOperator":
          return s.type === "TSArrayType" || s.type === "TSOptionalType" || s.type === "TSRestType" || n === "objectType" && s.type === "TSIndexedAccessType" || s.type === "TSTypeOperator" || s.type === "TSTypeAnnotation" && e.grandparent.type.startsWith("TSJSDoc");
        case "TSTypeQuery":
          return n === "objectType" && s.type === "TSIndexedAccessType" || n === "elementType" && s.type === "TSArrayType";
        case "TypeOperator":
          return s.type === "ArrayTypeAnnotation" || s.type === "NullableTypeAnnotation" || n === "objectType" && (s.type === "IndexedAccessType" || s.type === "OptionalIndexedAccessType") || s.type === "TypeOperator";
        case "TypeofTypeAnnotation":
          return n === "objectType" && (s.type === "IndexedAccessType" || s.type === "OptionalIndexedAccessType") || n === "elementType" && s.type === "ArrayTypeAnnotation";
        case "ArrayTypeAnnotation":
          return s.type === "NullableTypeAnnotation";
        case "IntersectionTypeAnnotation":
        case "UnionTypeAnnotation":
          return s.type === "TypeOperator" || s.type === "ArrayTypeAnnotation" || s.type === "NullableTypeAnnotation" || s.type === "IntersectionTypeAnnotation" || s.type === "UnionTypeAnnotation" || n === "objectType" && (s.type === "IndexedAccessType" || s.type === "OptionalIndexedAccessType");
        case "InferTypeAnnotation":
        case "NullableTypeAnnotation":
          return s.type === "ArrayTypeAnnotation" || n === "objectType" && (s.type === "IndexedAccessType" || s.type === "OptionalIndexedAccessType");
        case "ComponentTypeAnnotation":
        case "FunctionTypeAnnotation":
          {
            if (r.type === "ComponentTypeAnnotation" && (r.rendersType === null || r.rendersType === void 0)) return !1;
            if (e.match(void 0, (A, T$1) => T$1 === "typeAnnotation" && A.type === "TypeAnnotation", (A, T$1) => T$1 === "returnType" && A.type === "ArrowFunctionExpression") || e.match(void 0, (A, T$1) => T$1 === "typeAnnotation" && A.type === "TypePredicate", (A, T$1) => T$1 === "typeAnnotation" && A.type === "TypeAnnotation", (A, T$1) => T$1 === "returnType" && A.type === "ArrowFunctionExpression")) return !0;
            let p = s.type === "NullableTypeAnnotation" ? e.grandparent : s;
            return p.type === "UnionTypeAnnotation" || p.type === "IntersectionTypeAnnotation" || p.type === "ArrayTypeAnnotation" || n === "objectType" && (p.type === "IndexedAccessType" || p.type === "OptionalIndexedAccessType") || n === "checkType" && s.type === "ConditionalTypeAnnotation" || n === "extendsType" && s.type === "ConditionalTypeAnnotation" && ((m = r.returnType) == null ? void 0 : m.type) === "InferTypeAnnotation" && ((D$1 = r.returnType) == null ? void 0 : D$1.typeParameter.bound) || p.type === "NullableTypeAnnotation" || s.type === "FunctionTypeParam" && s.name === null && K(r).some(A => {
              var T$1;
              return ((T$1 = A.typeAnnotation) == null ? void 0 : T$1.type) === "NullableTypeAnnotation";
            });
          }
        case "ConditionalTypeAnnotation":
          if (n === "extendsType" && s.type === "ConditionalTypeAnnotation" && r.type === "ConditionalTypeAnnotation" || n === "checkType" && s.type === "ConditionalTypeAnnotation") return !0;
        case "OptionalIndexedAccessType":
          return n === "objectType" && s.type === "IndexedAccessType";
        case "StringLiteral":
        case "NumericLiteral":
        case "Literal":
          if (typeof r.value == "string" && s.type === "ExpressionStatement" && !s.directive) {
            let p = e.grandparent;
            return p.type === "Program" || p.type === "BlockStatement";
          }
          return n === "object" && s.type === "MemberExpression" && typeof r.value == "number";
        case "AssignmentExpression":
          {
            let p = e.grandparent;
            return n === "body" && s.type === "ArrowFunctionExpression" ? !0 : n === "key" && (s.type === "ClassProperty" || s.type === "PropertyDefinition") && s.computed || (n === "init" || n === "update") && s.type === "ForStatement" ? !1 : s.type === "ExpressionStatement" ? r.left.type === "ObjectPattern" : !(n === "key" && s.type === "TSPropertySignature" || s.type === "AssignmentExpression" || s.type === "SequenceExpression" && p.type === "ForStatement" && (p.init === s || p.update === s) || n === "value" && s.type === "Property" && p.type === "ObjectPattern" && p.properties.includes(s) || s.type === "NGChainedExpression");
          }
        case "ConditionalExpression":
          switch (s.type) {
            case "TaggedTemplateExpression":
            case "UnaryExpression":
            case "SpreadElement":
            case "BinaryExpression":
            case "LogicalExpression":
            case "NGPipeExpression":
            case "ExportDefaultDeclaration":
            case "AwaitExpression":
            case "JSXSpreadAttribute":
            case "TSTypeAssertion":
            case "TypeCastExpression":
            case "TSAsExpression":
            case "TSSatisfiesExpression":
            case "AsExpression":
            case "AsConstExpression":
            case "SatisfiesExpression":
            case "TSNonNullExpression":
              return !0;
            case "NewExpression":
            case "CallExpression":
            case "OptionalCallExpression":
              return n === "callee";
            case "ConditionalExpression":
              return t.experimentalTernaries ? !1 : n === "test";
            case "MemberExpression":
            case "OptionalMemberExpression":
              return n === "object";
            default:
              return !1;
          }
        case "FunctionExpression":
          switch (s.type) {
            case "NewExpression":
            case "CallExpression":
            case "OptionalCallExpression":
              return n === "callee";
            case "TaggedTemplateExpression":
              return !0;
            default:
              return !1;
          }
        case "ArrowFunctionExpression":
          switch (s.type) {
            case "BinaryExpression":
              return s.operator !== "|>" || ((y$1 = r.extra) == null ? void 0 : y$1.parenthesized);
            case "NewExpression":
            case "CallExpression":
            case "OptionalCallExpression":
              return n === "callee";
            case "MemberExpression":
            case "OptionalMemberExpression":
              return n === "object";
            case "TSAsExpression":
            case "TSSatisfiesExpression":
            case "AsExpression":
            case "AsConstExpression":
            case "SatisfiesExpression":
            case "TSNonNullExpression":
            case "BindExpression":
            case "TaggedTemplateExpression":
            case "UnaryExpression":
            case "LogicalExpression":
            case "AwaitExpression":
            case "TSTypeAssertion":
              return !0;
            case "ConditionalExpression":
              return n === "test";
            default:
              return !1;
          }
        case "ClassExpression":
          switch (s.type) {
            case "NewExpression":
              return n === "callee";
            default:
              return !1;
          }
        case "OptionalMemberExpression":
        case "OptionalCallExpression":
        case "CallExpression":
        case "MemberExpression":
          if (sc(e)) return !0;
        case "TaggedTemplateExpression":
        case "TSNonNullExpression":
          if (n === "callee" && (s.type === "BindExpression" || s.type === "NewExpression")) {
            let p = r;
            for (; p;) switch (p.type) {
              case "CallExpression":
              case "OptionalCallExpression":
                return !0;
              case "MemberExpression":
              case "OptionalMemberExpression":
              case "BindExpression":
                p = p.object;
                break;
              case "TaggedTemplateExpression":
                p = p.tag;
                break;
              case "TSNonNullExpression":
                p = p.expression;
                break;
              default:
                return !1;
            }
          }
          return !1;
        case "BindExpression":
          return n === "callee" && (s.type === "BindExpression" || s.type === "NewExpression") || n === "object" && q(s);
        case "NGPipeExpression":
          return !(s.type === "NGRoot" || s.type === "NGMicrosyntaxExpression" || s.type === "ObjectProperty" && !((C = r.extra) != null && C.parenthesized) || U(s) || n === "arguments" && L(s) || n === "right" && s.type === "NGPipeExpression" || n === "property" && s.type === "MemberExpression" || s.type === "AssignmentExpression");
        case "JSXFragment":
        case "JSXElement":
          return n === "callee" || n === "left" && s.type === "BinaryExpression" && s.operator === "<" || !U(s) && s.type !== "ArrowFunctionExpression" && s.type !== "AssignmentExpression" && s.type !== "AssignmentPattern" && s.type !== "BinaryExpression" && s.type !== "NewExpression" && s.type !== "ConditionalExpression" && s.type !== "ExpressionStatement" && s.type !== "JsExpressionRoot" && s.type !== "JSXAttribute" && s.type !== "JSXElement" && s.type !== "JSXExpressionContainer" && s.type !== "JSXFragment" && s.type !== "LogicalExpression" && !L(s) && !Ae(s) && s.type !== "ReturnStatement" && s.type !== "ThrowStatement" && s.type !== "TypeCastExpression" && s.type !== "VariableDeclarator" && s.type !== "YieldExpression";
        case "TSInstantiationExpression":
          return n === "object" && q(s);
      }
      return !1;
    }
    function tc(e) {
      let t = 0,
        {
          node: r
        } = e;
      for (; r;) {
        let n = e.getParentNode(t++);
        if ((n == null ? void 0 : n.type) === "ForStatement" && n.init === r) return !0;
        r = n;
      }
      return !1;
    }
    function rc(e) {
      return tr(e, t => t.type === "ObjectTypeAnnotation" && tr(t, r => r.type === "FunctionTypeAnnotation"));
    }
    function nc(e) {
      return se(e);
    }
    function or(e) {
      let {
        parent: t,
        key: r
      } = e;
      switch (t.type) {
        case "NGPipeExpression":
          if (r === "arguments" && e.isLast) return e.callParent(or);
          break;
        case "ObjectProperty":
          if (r === "value") return e.callParent(() => e.key === "properties" && e.isLast);
          break;
        case "BinaryExpression":
        case "LogicalExpression":
          if (r === "right") return e.callParent(or);
          break;
        case "ConditionalExpression":
          if (r === "alternate") return e.callParent(or);
          break;
        case "UnaryExpression":
          if (t.prefix) return e.callParent(or);
          break;
      }
      return !1;
    }
    function li(e, t) {
      let {
        node: r,
        parent: n
      } = e;
      return r.type === "FunctionExpression" || r.type === "ClassExpression" ? n.type === "ExportDefaultDeclaration" || !us(e, t) : !jt(r) || n.type !== "ExportDefaultDeclaration" && us(e, t) ? !1 : e.call(() => li(e, t), ...Pr(r));
    }
    function sc(e) {
      let {
        node: t,
        parent: r,
        grandparent: n,
        key: s
      } = e;
      return !!((t.type === "OptionalMemberExpression" || t.type === "OptionalCallExpression") && (s === "object" && r.type === "MemberExpression" || s === "callee" && (r.type === "CallExpression" || r.type === "NewExpression") || r.type === "TSNonNullExpression" && n.type === "MemberExpression" && n.object === r) || e.match(() => t.type === "CallExpression" || t.type === "MemberExpression", (u, i) => i === "expression" && u.type === "ChainExpression") && (e.match(void 0, void 0, (u, i) => i === "callee" && (u.type === "CallExpression" && !u.optional || u.type === "NewExpression") || i === "object" && u.type === "MemberExpression" && !u.optional) || e.match(void 0, void 0, (u, i) => i === "expression" && u.type === "TSNonNullExpression", (u, i) => i === "object" && u.type === "MemberExpression")) || e.match(() => t.type === "CallExpression" || t.type === "MemberExpression", (u, i) => i === "expression" && u.type === "TSNonNullExpression", (u, i) => i === "expression" && u.type === "ChainExpression", (u, i) => i === "object" && u.type === "MemberExpression"));
    }
    function is(e) {
      return e.type === "Identifier" ? !0 : q(e) ? !e.computed && !e.optional && e.property.type === "Identifier" && is(e.object) : !1;
    }
    function uc(e) {
      return e.type === "ChainExpression" && (e = e.expression), is(e) || L(e) && !e.optional && is(e.callee);
    }
    function ic(e, t) {
      let r = t - 1;
      r = Ge(e, r, {
        backwards: !0
      }), r = Ue(e, r, {
        backwards: !0
      }), r = Ge(e, r, {
        backwards: !0
      });
      let n = Ue(e, r, {
        backwards: !0
      });
      return r !== n;
    }
    function as(e, t) {
      let r = e.node;
      return r.printed = !0, t.printer.printComment(e, t);
    }
    function oc(e, t) {
      var m;
      let r = e.node,
        n = [as(e, t)],
        {
          printer: s,
          originalText: u,
          locStart: i,
          locEnd: a
        } = t;
      if ((m = s.isBlockComment) == null ? void 0 : m.call(s, r)) {
        let D$1 = te(u, a(r)) ? te(u, i(r), {
          backwards: !0
        }) ? F : x : " ";
        n.push(D$1);
      } else n.push(F);
      let c = Ue(u, Ge(u, a(r)));
      return c !== !1 && te(u, c) && n.push(F), n;
    }
    function pc(e, t, r) {
      var c;
      let n = e.node,
        s = as(e, t),
        {
          printer: u,
          originalText: i,
          locStart: a
        } = t,
        o = (c = u.isBlockComment) == null ? void 0 : c.call(u, n);
      if (r != null && r.hasLineSuffix && !(r != null && r.isBlock) || te(i, a(n), {
        backwards: !0
      })) return {
        doc: Wn([F, mi(i, a(n)) ? F : "", s]),
        isBlock: o,
        hasLineSuffix: !0
      };
      return !o || r != null && r.hasLineSuffix ? {
        doc: [Wn([" ", s]), Ee],
        isBlock: o,
        hasLineSuffix: !0
      } : {
        doc: [" ", s],
        isBlock: o,
        hasLineSuffix: !1
      };
    }
    function M(e, t, r = {}) {
      let {
        node: n
      } = e;
      if (!w(n == null ? void 0 : n.comments)) return "";
      let {
          indent: s = !1,
          marker: u,
          filter: i = ac
        } = r,
        a = [];
      if (e.each(({
        node: c
      }) => {
        c.leading || c.trailing || c.marker !== u || !i(c) || a.push(as(e, t));
      }, "comments"), a.length === 0) return "";
      let o = P(F, a);
      return s ? f([F, o]) : o;
    }
    function os(e, t) {
      let r = e.node;
      if (!r) return {};
      let n = t[Symbol.for("printedComments")];
      if ((r.comments || []).filter(o => !n.has(o)).length === 0) return {
        leading: "",
        trailing: ""
      };
      let u = [],
        i = [],
        a;
      return e.each(() => {
        let o = e.node;
        if (n != null && n.has(o)) return;
        let {
          leading: c,
          trailing: m
        } = o;
        c ? u.push(oc(e, t)) : m && (a = pc(e, t, a), i.push(a.doc));
      }, "comments"), {
        leading: u,
        trailing: i
      };
    }
    function ye(e, t, r) {
      let {
        leading: n,
        trailing: s
      } = os(e, r);
      return !n && !s ? t : ir(t, u => [n, u, s]);
    }
    function cs(e) {
      if (typeof e != "string") throw new TypeError("Expected a string");
      return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
    }
    function cc(e, t, r) {
      var _$1, J$1, j$1;
      let {
        node: n
      } = e;
      if (n.type === "JSXElement" && gc(n)) return [r("openingElement"), r("closingElement")];
      let s = n.type === "JSXElement" ? r("openingElement") : r("openingFragment"),
        u = n.type === "JSXElement" ? r("closingElement") : r("closingFragment");
      if (n.children.length === 1 && n.children[0].type === "JSXExpressionContainer" && (n.children[0].expression.type === "TemplateLiteral" || n.children[0].expression.type === "TaggedTemplateExpression")) return [s, ...e.map(r, "children"), u];
      n.children = n.children.map(h => Sc(h) ? {
        type: "JSXText",
        value: " ",
        raw: " "
      } : h);
      let i = n.children.some(X),
        a = n.children.filter(h => h.type === "JSXExpressionContainer").length > 1,
        o = n.type === "JSXElement" && n.openingElement.attributes.length > 1,
        c = ne(s) || i || o || a,
        m = e.parent.rootMarker === "mdx",
        D$1 = t.singleQuote ? "{' '}" : "{\" \"}",
        y$1 = m ? " " : b([D$1, E], " "),
        p = lc(e, t, r, y$1, ((J$1 = (_$1 = n.openingElement) == null ? void 0 : _$1.name) == null ? void 0 : J$1.name) === "fbt"),
        A = n.children.some(h => pr(h));
      for (let h = p.length - 2; h >= 0; h--) {
        let W$1 = p[h] === "" && p[h + 1] === "",
          Fe$2 = p[h] === F && p[h + 1] === "" && p[h + 2] === F,
          H$2 = (p[h] === E || p[h] === F) && p[h + 1] === "" && p[h + 2] === y$1,
          ue$1 = p[h] === y$1 && p[h + 1] === "" && (p[h + 2] === E || p[h + 2] === F),
          Z$1 = p[h] === y$1 && p[h + 1] === "" && p[h + 2] === y$1,
          It$2 = p[h] === E && p[h + 1] === "" && p[h + 2] === F || p[h] === F && p[h + 1] === "" && p[h + 2] === E;
        Fe$2 && A || W$1 || H$2 || Z$1 || It$2 ? p.splice(h, 2) : ue$1 && p.splice(h + 1, 2);
      }
      for (; p.length > 0 && ms(O(!1, p, -1));) p.pop();
      for (; p.length > 1 && ms(p[0]) && ms(p[1]);) p.shift(), p.shift();
      let T$1 = [];
      for (let [h, W$1] of p.entries()) {
        if (W$1 === y$1) {
          if (h === 1 && p[h - 1] === "") {
            if (p.length === 2) {
              T$1.push(D$1);
              continue;
            }
            T$1.push([D$1, F]);
            continue;
          } else if (h === p.length - 1) {
            T$1.push(D$1);
            continue;
          } else if (p[h - 1] === "" && p[h - 2] === F) {
            T$1.push(D$1);
            continue;
          }
        }
        T$1.push(W$1), ne(W$1) && (c = !0);
      }
      let S$1 = A ? qt(T$1) : l(T$1, {
        shouldBreak: !0
      });
      if (((j$1 = t.cursorNode) == null ? void 0 : j$1.type) === "JSXText" && n.children.includes(t.cursorNode) && (S$1 = [Un, S$1, Un]), m) return S$1;
      let B$2 = l([s, f([F, S$1]), F, u]);
      return c ? B$2 : ze([l([s, ...p, u]), B$2]);
    }
    function lc(e, t, r, n, s) {
      let u = [];
      return e.each(({
        node: i,
        next: a
      }) => {
        if (i.type === "JSXText") {
          let o = fe(i);
          if (pr(i)) {
            let c = Nr.split(o, !0);
            c[0] === "" && (u.push(""), c.shift(), /\n/u.test(c[0]) ? u.push(fi(s, c[1], i, a)) : u.push(n), c.shift());
            let m;
            if (O(!1, c, -1) === "" && (c.pop(), m = c.pop()), c.length === 0) return;
            for (let [D$1, y$1] of c.entries()) D$1 % 2 === 1 ? u.push(x) : u.push(y$1);
            m !== void 0 ? /\n/u.test(m) ? u.push(fi(s, O(!1, u, -1), i, a)) : u.push(n) : u.push(Di(s, O(!1, u, -1), i, a));
          } else /\n/u.test(o) ? o.match(/\n/gu).length > 1 && u.push("", F) : u.push("", n);
        } else {
          let o = r();
          if (u.push(o), a && pr(a)) {
            let m = Nr.trim(fe(a)),
              [D$1] = Nr.split(m);
            u.push(Di(s, D$1, i, a));
          } else u.push(F);
        }
      }, "children"), u;
    }
    function Di(e, t, r, n) {
      return e ? "" : r.type === "JSXElement" && !r.closingElement || (n == null ? void 0 : n.type) === "JSXElement" && !n.closingElement ? t.length === 1 ? E : F : E;
    }
    function fi(e, t, r, n) {
      return e ? F : t.length === 1 ? r.type === "JSXElement" && !r.closingElement || (n == null ? void 0 : n.type) === "JSXElement" && !n.closingElement ? F : E : F;
    }
    function yc(e, t, r) {
      let {
        parent: n
      } = e;
      if (mc.has(n.type)) return t;
      let s = e.match(void 0, i => i.type === "ArrowFunctionExpression", L, i => i.type === "JSXExpressionContainer"),
        u = Be(e, r);
      return l([u ? "" : b("("), f([E, t]), E, u ? "" : b(")")], {
        shouldBreak: s
      });
    }
    function Dc(e, t, r) {
      let {
          node: n
        } = e,
        s = [];
      if (s.push(r("name")), n.value) {
        let u;
        if (Q(n.value)) {
          let a = N(!1, N(!1, fe(n.value).slice(1, -1), "&apos;", "'"), "&quot;", "\""),
            o = xr(a, t.jsxSingleQuote);
          a = o === "\"" ? N(!1, a, "\"", "&quot;") : N(!1, a, "'", "&apos;"), u = e.call(() => ye(e, Ie(o + a + o), t), "value");
        } else u = r("value");
        s.push("=", u);
      }
      return s;
    }
    function fc(e, t, r) {
      let {
          node: n
        } = e,
        s = (u, i) => u.type === "JSXEmptyExpression" || !d(u) && (U(u) || se(u) || u.type === "ArrowFunctionExpression" || u.type === "AwaitExpression" && (s(u.argument, u) || u.argument.type === "JSXElement") || L(u) || u.type === "ChainExpression" && L(u.expression) || u.type === "FunctionExpression" || u.type === "TemplateLiteral" || u.type === "TaggedTemplateExpression" || u.type === "DoExpression" || X(i) && (u.type === "ConditionalExpression" || De(u)));
      return s(n.expression, e.parent) ? l(["{", r("expression"), ke, "}"]) : l(["{", f([E, r("expression")]), E, ke, "}"]);
    }
    function Ec(e, t, r) {
      var a, o;
      let {
          node: n
        } = e,
        s = d(n.name) || d(n.typeParameters) || d(n.typeArguments);
      if (n.selfClosing && n.attributes.length === 0 && !s) return ["<", r("name"), n.typeArguments ? r("typeArguments") : r("typeParameters"), " />"];
      if (((a = n.attributes) == null ? void 0 : a.length) === 1 && Q(n.attributes[0].value) && !n.attributes[0].value.value.includes(`
`) && !s && !d(n.attributes[0])) return l(["<", r("name"), n.typeArguments ? r("typeArguments") : r("typeParameters"), " ", ...e.map(r, "attributes"), n.selfClosing ? " />" : ">"]);
      let u = (o = n.attributes) == null ? void 0 : o.some(c => Q(c.value) && c.value.value.includes(`
`)),
        i = t.singleAttributePerLine && n.attributes.length > 1 ? F : x;
      return l(["<", r("name"), n.typeArguments ? r("typeArguments") : r("typeParameters"), f(e.map(() => [i, r()], "attributes")), ...Fc(n, t, s)], {
        shouldBreak: u
      });
    }
    function Fc(e, t, r) {
      return e.selfClosing ? [x, "/>"] : Cc(e, t, r) ? [">"] : [E, ">"];
    }
    function Cc(e, t, r) {
      let n = e.attributes.length > 0 && d(O(!1, e.attributes, -1), g.Trailing);
      return e.attributes.length === 0 && !r || (t.bracketSameLine || t.jsxBracketSameLine) && (!r || e.attributes.length > 0) && !n;
    }
    function Ac(e, t, r) {
      let {
          node: n
        } = e,
        s = [];
      s.push("</");
      let u = r("name");
      return d(n.name, g.Leading | g.Line) ? s.push(f([F, u]), F) : d(n.name, g.Leading | g.Block) ? s.push(" ", u) : s.push(u), s.push(">"), s;
    }
    function Tc(e, t) {
      let {
          node: r
        } = e,
        n = d(r),
        s = d(r, g.Line),
        u = r.type === "JSXOpeningFragment";
      return [u ? "<" : "</", f([s ? F : n && !u ? " " : "", M(e, t)]), s ? F : "", ">"];
    }
    function dc(e, t, r) {
      return yc(e, ye(e, cc(e, t, r), t), t);
    }
    function xc(e, t) {
      let {
          node: r
        } = e,
        n = d(r, g.Line);
      return [M(e, t, {
        indent: n
      }), n ? F : ""];
    }
    function hc(e, t, r) {
      let {
        node: n
      } = e;
      return ["{", e.call(({
        node: s
      }) => {
        let u = ["...", r()];
        return !d(s) || !zn(e) ? u : [f([E, ye(e, u, t)]), E];
      }, n.type === "JSXSpreadAttribute" ? "argument" : "expression"), "}"];
    }
    function Ei(e, t, r) {
      let {
        node: n
      } = e;
      if (n.type.startsWith("JSX")) switch (n.type) {
        case "JSXAttribute":
          return Dc(e, t, r);
        case "JSXIdentifier":
          return n.name;
        case "JSXNamespacedName":
          return P(":", [r("namespace"), r("name")]);
        case "JSXMemberExpression":
          return P(".", [r("object"), r("property")]);
        case "JSXSpreadAttribute":
        case "JSXSpreadChild":
          return hc(e, t, r);
        case "JSXExpressionContainer":
          return fc(e, t, r);
        case "JSXFragment":
        case "JSXElement":
          return dc(e, t, r);
        case "JSXOpeningElement":
          return Ec(e, t, r);
        case "JSXClosingElement":
          return Ac(e, t, r);
        case "JSXOpeningFragment":
        case "JSXClosingFragment":
          return Tc(e, t);
        case "JSXEmptyExpression":
          return xc(e, t);
        case "JSXText":
          throw new Error("JSXText should be handled by JSXElement");
        default:
          throw new Me(n, "JSX");
      }
    }
    function gc(e) {
      if (e.children.length === 0) return !0;
      if (e.children.length > 1) return !1;
      let t = e.children[0];
      return t.type === "JSXText" && !pr(t);
    }
    function pr(e) {
      return e.type === "JSXText" && (Nr.hasNonWhitespaceCharacter(fe(e)) || !/\n/u.test(fe(e)));
    }
    function Sc(e) {
      return e.type === "JSXExpressionContainer" && Q(e.expression) && e.expression.value === " " && !d(e.expression);
    }
    function Fi(e) {
      let {
        node: t,
        parent: r
      } = e;
      if (!X(t) || !X(r)) return !1;
      let {
          index: n,
          siblings: s
        } = e,
        u;
      for (let i = n; i > 0; i--) {
        let a = s[i - 1];
        if (!(a.type === "JSXText" && !pr(a))) {
          u = a;
          break;
        }
      }
      return (u == null ? void 0 : u.type) === "JSXExpressionContainer" && u.expression.type === "JSXEmptyExpression" && Bt(u.expression);
    }
    function Bc(e) {
      return Bt(e.node) || Fi(e);
    }
    function Yr(e, t, r) {
      var J$1;
      let {
          node: n,
          parent: s,
          grandparent: u,
          key: i
        } = e,
        a = i !== "body" && (s.type === "IfStatement" || s.type === "WhileStatement" || s.type === "SwitchStatement" || s.type === "DoWhileStatement"),
        o = n.operator === "|>" && ((J$1 = e.root.extra) == null ? void 0 : J$1.__isUsingHackPipeline),
        c = ys(e, r, t, !1, a);
      if (a) return c;
      if (o) return l(c);
      if (L(s) && s.callee === n || s.type === "UnaryExpression" || q(s) && !s.computed) return l([f([E, ...c]), E]);
      let m = s.type === "ReturnStatement" || s.type === "ThrowStatement" || s.type === "JSXExpressionContainer" && u.type === "JSXAttribute" || n.operator !== "|" && s.type === "JsExpressionRoot" || n.type !== "NGPipeExpression" && (s.type === "NGRoot" && t.parser === "__ng_binding" || s.type === "NGMicrosyntaxExpression" && u.type === "NGMicrosyntax" && u.body.length === 1) || n === s.body && s.type === "ArrowFunctionExpression" || n !== s.body && s.type === "ForStatement" || s.type === "ConditionalExpression" && u.type !== "ReturnStatement" && u.type !== "ThrowStatement" && !L(u) || s.type === "TemplateLiteral",
        D$1 = s.type === "AssignmentExpression" || s.type === "VariableDeclarator" || s.type === "ClassProperty" || s.type === "PropertyDefinition" || s.type === "TSAbstractPropertyDefinition" || s.type === "ClassPrivateProperty" || Ae(s),
        y$1 = De(n.left) && nr(n.operator, n.left.operator);
      if (m || Ut(n) && !y$1 || !Ut(n) && D$1) return l(c);
      if (c.length === 0) return "";
      let C = X(n.right),
        p = c.findIndex(j$1 => typeof j$1 != "string" && !Array.isArray(j$1) && j$1.type === le),
        A = c.slice(0, p === -1 ? 1 : p + 1),
        T$1 = c.slice(A.length, C ? -1 : void 0),
        S$1 = Symbol("logicalChain-" + ++bc),
        B$2 = l([...A, f(T$1)], {
          id: S$1
        });
      if (!C) return B$2;
      return l([B$2, At(O(!1, c, -1), {
        groupId: S$1
      })]);
    }
    function ys(e, t, r, n, s) {
      var A;
      let {
        node: u
      } = e;
      if (!De(u)) return [l(t())];
      let i = [];
      nr(u.operator, u.left.operator) ? i = e.call(T$1 => ys(T$1, t, r, !0, s), "left") : i.push(l(t("left")));
      let a = Ut(u),
        o = (u.operator === "|>" || u.type === "NGPipeExpression" || Pc(e, r)) && !Oe(r.originalText, u.right),
        c = u.type === "NGPipeExpression" ? "|" : u.operator,
        m = u.type === "NGPipeExpression" && u.arguments.length > 0 ? l(f([E, ": ", P([x, ": "], e.map(() => he(2, l(t())), "arguments"))])) : "",
        D$1;
      if (a) D$1 = [c, " ", t("right"), m];else {
        let S$1 = c === "|>" && ((A = e.root.extra) == null ? void 0 : A.__isUsingHackPipeline) ? e.call(B$2 => ys(B$2, t, r, !0, s), "right") : t("right");
        D$1 = [o ? x : "", c, o ? " " : x, S$1, m];
      }
      let {
          parent: y$1
        } = e,
        C = d(u.left, g.Trailing | g.Line),
        p = C || !(s && u.type === "LogicalExpression") && y$1.type !== u.type && u.left.type !== u.type && u.right.type !== u.type;
      if (i.push(o ? "" : " ", p ? l(D$1, {
        shouldBreak: C
      }) : D$1), n && d(u)) {
        let T$1 = Wt(ye(e, i, r));
        return T$1.type === Pe ? T$1.parts : Array.isArray(T$1) ? T$1 : [T$1];
      }
      return i;
    }
    function Ut(e) {
      return e.type !== "LogicalExpression" ? !1 : !!(se(e.right) && e.right.properties.length > 0 || U(e.right) && e.right.elements.length > 0 || X(e.right));
    }
    function Pc(e, t) {
      return (t.parser === "__vue_expression" || t.parser === "__vue_ts_expression") && Ci(e.node) && !e.hasAncestor(r => !Ci(r) && r.type !== "JsExpressionRoot");
    }
    function Ti(e, t, r) {
      let {
        node: n
      } = e;
      if (n.type.startsWith("NG")) switch (n.type) {
        case "NGRoot":
          return [r("node"), d(n.node) ? " //" + ct(n.node)[0].value.trimEnd() : ""];
        case "NGPipeExpression":
          return Yr(e, t, r);
        case "NGChainedExpression":
          return l(P([";", x], e.map(() => Ic(e) ? r() : ["(", r(), ")"], "expressions")));
        case "NGEmptyExpression":
          return "";
        case "NGMicrosyntax":
          return e.map(() => [e.isFirst ? "" : Ai(e) ? " " : [";", x], r()], "body");
        case "NGMicrosyntaxKey":
          return /^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/iu.test(n.name) ? n.name : JSON.stringify(n.name);
        case "NGMicrosyntaxExpression":
          return [r("expression"), n.alias === null ? "" : [" as ", r("alias")]];
        case "NGMicrosyntaxKeyedExpression":
          {
            let {
                index: s,
                parent: u
              } = e,
              i = Ai(e) || (s === 1 && (n.key.name === "then" || n.key.name === "else" || n.key.name === "as") || (s === 2 || s === 3) && (n.key.name === "else" && u.body[s - 1].type === "NGMicrosyntaxKeyedExpression" && u.body[s - 1].key.name === "then" || n.key.name === "track")) && u.body[0].type === "NGMicrosyntaxExpression";
            return [r("key"), i ? " " : ": ", r("expression")];
          }
        case "NGMicrosyntaxLet":
          return ["let ", r("key"), n.value === null ? "" : [" = ", r("value")]];
        case "NGMicrosyntaxAs":
          return [r("key"), " as ", r("alias")];
        default:
          throw new Me(n, "Angular");
      }
    }
    function Ai({
      node: e,
      index: t
    }) {
      return e.type === "NGMicrosyntaxKeyedExpression" && e.key.name === "of" && t === 1;
    }
    function Ic({
      node: e
    }) {
      return tr(e, kc);
    }
    function Ds(e, t, r) {
      let {
        node: n
      } = e;
      return l([P(x, e.map(r, "decorators")), hi(n, t) ? F : x]);
    }
    function di(e, t, r) {
      return gi(e.node) ? [P(F, e.map(r, "declaration", "decorators")), F] : "";
    }
    function xi(e, t, r) {
      let {
          node: n,
          parent: s
        } = e,
        {
          decorators: u
        } = n;
      if (!w(u) || gi(s) || Xr(e)) return "";
      let i = n.type === "ClassExpression" || n.type === "ClassDeclaration" || hi(n, t);
      return [e.key === "declaration" && iu(s) ? F : i ? Ee : "", P(x, e.map(r, "decorators")), x];
    }
    function hi(e, t) {
      return e.decorators.some(r => te(t.originalText, k(r)));
    }
    function gi(e) {
      var r;
      if (e.type !== "ExportDefaultDeclaration" && e.type !== "ExportNamedDeclaration" && e.type !== "DeclareExportDeclaration") return !1;
      let t = (r = e.declaration) == null ? void 0 : r.decorators;
      return w(t) && ht(e, t[0]);
    }
    function Lc(e, t, r) {
      let {
          node: n
        } = e,
        s = oe(n);
      if (s.length === 0) return ["(", M(e, t), ")"];
      let u = s.length - 1;
      if (_c(s)) {
        let y$1 = ["("];
        return Rt(e, (C, p) => {
          y$1.push(r()), p !== u && y$1.push(", ");
        }), y$1.push(")"), y$1;
      }
      let i = !1,
        a = [];
      Rt(e, ({
        node: y$1
      }, C) => {
        let p = r();
        C === u || (pe(y$1, t) ? (i = !0, p = [p, ",", F, F]) : p = [p, ",", x]), a.push(p);
      });
      let o = n.type === "ImportExpression" || n.callee.type === "Import",
        c = !t.parser.startsWith("__ng_") && !o && ae(t, "all") ? "," : "";
      function m() {
        return l(["(", f([x, ...a]), c, x, ")"], {
          shouldBreak: !0
        });
      }
      if (i || e.parent.type !== "Decorator" && lu(s)) return m();
      if (Oc(s)) {
        let y$1 = a.slice(1);
        if (y$1.some(ne)) return m();
        let C;
        try {
          C = r(Rn(n, 0), {
            expandFirstArg: !0
          });
        } catch (p) {
          if (p instanceof Dt) return m();
          throw p;
        }
        return ne(C) ? [Ee, ze([["(", l(C, {
          shouldBreak: !0
        }), ", ", ...y$1, ")"], m()])] : ze([["(", C, ", ", ...y$1, ")"], ["(", l(C, {
          shouldBreak: !0
        }), ", ", ...y$1, ")"], m()]);
      }
      if (wc(s, a, t)) {
        let y$1 = a.slice(0, -1);
        if (y$1.some(ne)) return m();
        let C;
        try {
          C = r(Rn(n, -1), {
            expandLastArg: !0
          });
        } catch (p) {
          if (p instanceof Dt) return m();
          throw p;
        }
        return ne(C) ? [Ee, ze([["(", ...y$1, l(C, {
          shouldBreak: !0
        }), ")"], m()])] : ze([["(", ...y$1, C, ")"], ["(", ...y$1, l(C, {
          shouldBreak: !0
        }), ")"], m()]);
      }
      let D$1 = ["(", f([E, ...a]), b(c), E, ")"];
      return Or(e) ? D$1 : l(D$1, {
        shouldBreak: a.some(ne) || i
      });
    }
    function cr(e, t = !1) {
      return se(e) && (e.properties.length > 0 || d(e)) || U(e) && (e.elements.length > 0 || d(e)) || e.type === "TSTypeAssertion" && cr(e.expression) || Te(e) && cr(e.expression) || e.type === "FunctionExpression" || e.type === "ArrowFunctionExpression" && (!e.returnType || !e.returnType.typeAnnotation || e.returnType.typeAnnotation.type !== "TSTypeReference" || jc(e.body)) && (e.body.type === "BlockStatement" || e.body.type === "ArrowFunctionExpression" && cr(e.body, !0) || se(e.body) || U(e.body) || !t && (L(e.body) || e.body.type === "ConditionalExpression") || X(e.body)) || e.type === "DoExpression" || e.type === "ModuleExpression";
    }
    function wc(e, t, r) {
      var u, i;
      let n = O(!1, e, -1);
      if (e.length === 1) {
        let a = O(!1, t, -1);
        if ((u = a.label) != null && u.embed && ((i = a.label) == null ? void 0 : i.hug) !== !1) return !0;
      }
      let s = O(!1, e, -2);
      return !d(n, g.Leading) && !d(n, g.Trailing) && cr(n) && (!s || s.type !== n.type) && (e.length !== 2 || s.type !== "ArrowFunctionExpression" || !U(n)) && !(e.length > 1 && fs(n, r));
    }
    function Oc(e) {
      if (e.length !== 2) return !1;
      let [t, r] = e;
      return t.type === "ModuleExpression" && vc(r) ? !0 : !d(t) && (t.type === "FunctionExpression" || t.type === "ArrowFunctionExpression" && t.body.type === "BlockStatement") && r.type !== "FunctionExpression" && r.type !== "ArrowFunctionExpression" && r.type !== "ConditionalExpression" && Bi(r) && !cr(r);
    }
    function Bi(e) {
      if (e.type === "ParenthesizedExpression") return Bi(e.expression);
      if (Te(e) || e.type === "TypeCastExpression") {
        let {
          typeAnnotation: t
        } = e;
        if (t.type === "TypeAnnotation" && (t = t.typeAnnotation), t.type === "TSArrayType" && (t = t.elementType, t.type === "TSArrayType" && (t = t.elementType)), t.type === "GenericTypeAnnotation" || t.type === "TSTypeReference") {
          let r = t.typeArguments ?? t.typeParameters;
          (r == null ? void 0 : r.params.length) === 1 && (t = r.params[0]);
        }
        return Mt(t) && be(e.expression, 1);
      }
      return lt(e) && oe(e).length > 1 ? !1 : De(e) ? be(e.left, 1) && be(e.right, 1) : vn(e) || be(e);
    }
    function _c(e) {
      return e.length === 2 ? Si(e, 0) : e.length === 3 ? e[0].type === "Identifier" && Si(e, 1) : !1;
    }
    function Si(e, t) {
      let r = e[t],
        n = e[t + 1];
      return r.type === "ArrowFunctionExpression" && K(r).length === 0 && r.body.type === "BlockStatement" && n.type === "ArrayExpression" && !e.some(s => d(s));
    }
    function jc(e) {
      return e.type === "BlockStatement" && (e.body.some(t => t.type !== "EmptyStatement") || d(e, g.Dangling));
    }
    function vc(e) {
      return e.type === "ObjectExpression" && e.properties.length === 1 && Ae(e.properties[0]) && e.properties[0].key.type === "Identifier" && e.properties[0].key.name === "type" && Q(e.properties[0].value) && e.properties[0].value.value === "module";
    }
    function bi(e, t, r) {
      var c;
      let n = r("object"),
        s = Es(e, t, r),
        {
          node: u
        } = e,
        i = e.findAncestor(m => !(q(m) || m.type === "TSNonNullExpression")),
        a = e.findAncestor(m => !(m.type === "ChainExpression" || m.type === "TSNonNullExpression")),
        o = i && (i.type === "NewExpression" || i.type === "BindExpression" || i.type === "AssignmentExpression" && i.left.type !== "Identifier") || u.computed || u.object.type === "Identifier" && u.property.type === "Identifier" && !q(a) || (a.type === "AssignmentExpression" || a.type === "VariableDeclarator") && (Mc(u.object) || ((c = n.label) == null ? void 0 : c.memberChain));
      return it(n.label, [n, o ? s : l(f([E, s]))]);
    }
    function Es(e, t, r) {
      let n = r("property"),
        {
          node: s
        } = e,
        u = V(e);
      return s.computed ? !s.property || Ce(s.property) ? [u, "[", n, "]"] : l([u, "[", f([E, n]), E, "]"]) : [u, ".", n];
    }
    function Pi(e, t, r) {
      if (e.node.type === "ChainExpression") return e.call(() => Pi(e, t, r), "expression");
      let {
          parent: n
        } = e,
        s = !n || n.type === "ExpressionStatement",
        u = [];
      function i(I$1) {
        let {
            originalText: G$2
          } = t,
          ee$1 = yt(G$2, k(I$1));
        return G$2.charAt(ee$1) === ")" ? ee$1 !== !1 && Ot(G$2, ee$1 + 1) : pe(I$1, t);
      }
      function a(I$1) {
        let {
          node: G$2
        } = I$1;
        if (G$2.type === "ChainExpression") return I$1.call(() => a(I$1), "expression");
        if (L(G$2) && (Ft(G$2.callee) || L(G$2.callee))) {
          let ee$1 = i(G$2);
          u.unshift({
            node: G$2,
            hasTrailingEmptyLine: ee$1,
            printed: [ye(I$1, [V(I$1), Qe(I$1, t, r), lr(I$1, t, r)], t), ee$1 ? F : ""]
          }), I$1.call(qe$1 => a(qe$1), "callee");
        } else Ft(G$2) ? (u.unshift({
          node: G$2,
          needsParens: Be(I$1, t),
          printed: ye(I$1, q(G$2) ? Es(I$1, t, r) : Hr(I$1, t, r), t)
        }), I$1.call(ee$1 => a(ee$1), "object")) : G$2.type === "TSNonNullExpression" ? (u.unshift({
          node: G$2,
          printed: ye(I$1, "!", t)
        }), I$1.call(ee$1 => a(ee$1), "expression")) : u.unshift({
          node: G$2,
          printed: r()
        });
      }
      let {
        node: o
      } = e;
      u.unshift({
        node: o,
        printed: [V(e), Qe(e, t, r), lr(e, t, r)]
      }), o.callee && e.call(I$1 => a(I$1), "callee");
      let c = [],
        m = [u[0]],
        D$1 = 1;
      for (; D$1 < u.length && (u[D$1].node.type === "TSNonNullExpression" || L(u[D$1].node) || q(u[D$1].node) && u[D$1].node.computed && Ce(u[D$1].node.property)); ++D$1) m.push(u[D$1]);
      if (!L(u[0].node)) for (; D$1 + 1 < u.length && Ft(u[D$1].node) && Ft(u[D$1 + 1].node); ++D$1) m.push(u[D$1]);
      c.push(m), m = [];
      let y$1 = !1;
      for (; D$1 < u.length; ++D$1) {
        if (y$1 && Ft(u[D$1].node)) {
          if (u[D$1].node.computed && Ce(u[D$1].node.property)) {
            m.push(u[D$1]);
            continue;
          }
          c.push(m), m = [], y$1 = !1;
        }
        (L(u[D$1].node) || u[D$1].node.type === "ImportExpression") && (y$1 = !0), m.push(u[D$1]), d(u[D$1].node, g.Trailing) && (c.push(m), m = [], y$1 = !1);
      }
      m.length > 0 && c.push(m);
      function C(I$1) {
        return /^[A-Z]|^[$_]+$/u.test(I$1);
      }
      function p(I$1) {
        return I$1.length <= t.tabWidth;
      }
      function A(I$1) {
        var qe$1;
        let G$2 = (qe$1 = I$1[1][0]) == null ? void 0 : qe$1.node.computed;
        if (I$1[0].length === 1) {
          let xt$1 = I$1[0][0].node;
          return xt$1.type === "ThisExpression" || xt$1.type === "Identifier" && (C(xt$1.name) || s && p(xt$1.name) || G$2);
        }
        let ee$1 = O(!1, I$1[0], -1).node;
        return q(ee$1) && ee$1.property.type === "Identifier" && (C(ee$1.property.name) || G$2);
      }
      let T$1 = c.length >= 2 && !d(c[1][0].node) && A(c);
      function S$1(I$1) {
        let G$2 = I$1.map(ee$1 => ee$1.printed);
        return I$1.length > 0 && O(!1, I$1, -1).needsParens ? ["(", ...G$2, ")"] : G$2;
      }
      function B$2(I$1) {
        return I$1.length === 0 ? "" : f([F, P(F, I$1.map(S$1))]);
      }
      let _$1 = c.map(S$1),
        J$1 = _$1,
        j$1 = T$1 ? 3 : 2,
        h = c.flat(),
        W$1 = h.slice(1, -1).some(I$1 => d(I$1.node, g.Leading)) || h.slice(0, -1).some(I$1 => d(I$1.node, g.Trailing)) || c[j$1] && d(c[j$1][0].node, g.Leading);
      if (c.length <= j$1 && !W$1 && !c.some(I$1 => O(!1, I$1, -1).hasTrailingEmptyLine)) return Or(e) ? J$1 : l(J$1);
      let Fe$2 = O(!1, c[T$1 ? 1 : 0], -1).node,
        H$2 = !L(Fe$2) && i(Fe$2),
        ue$1 = [S$1(c[0]), T$1 ? c.slice(1, 2).map(S$1) : "", H$2 ? F : "", B$2(c.slice(T$1 ? 2 : 1))],
        Z$1 = u.map(({
          node: I$1
        }) => I$1).filter(L);
      function It$2() {
        let I$1 = O(!1, O(!1, c, -1), -1).node,
          G$2 = O(!1, _$1, -1);
        return L(I$1) && ne(G$2) && Z$1.slice(0, -1).some(ee$1 => ee$1.arguments.some(_t));
      }
      let $t$1;
      return W$1 || Z$1.length > 2 && Z$1.some(I$1 => !I$1.arguments.every(G$2 => be(G$2))) || _$1.slice(0, -1).some(ne) || It$2() ? $t$1 = l(ue$1) : $t$1 = [ne(J$1) || H$2 ? Ee : "", ze([J$1, ue$1])], it({
        memberChain: !0
      }, $t$1);
    }
    function Vr(e, t, r) {
      var m;
      let {
          node: n
        } = e,
        s = n.type === "NewExpression",
        u = n.type === "ImportExpression",
        i = V(e),
        a = oe(n),
        o = a.length === 1 && Lr(a[0], t.originalText);
      if (o || Rc(e) || St(n, e.parent)) {
        let D$1 = [];
        if (Rt(e, () => {
          D$1.push(r());
        }), !(o && (m = D$1[0].label) != null && m.embed)) return [s ? "new " : "", Ii(e, r), i, Qe(e, t, r), "(", P(", ", D$1), ")"];
      }
      if (!u && !s && Ft(n.callee) && !e.call(D$1 => Be(D$1, t), "callee", ...(n.callee.type === "ChainExpression" ? ["expression"] : []))) return ki(e, t, r);
      let c = [s ? "new " : "", Ii(e, r), i, Qe(e, t, r), lr(e, t, r)];
      return u || L(n.callee) ? l(c) : c;
    }
    function Ii(e, t) {
      let {
        node: r
      } = e;
      return r.type === "ImportExpression" ? `import${r.phase ? `.${r.phase}` : ""}` : t("callee");
    }
    function Rc(e) {
      let {
        node: t
      } = e;
      if (t.type !== "CallExpression" || t.optional || t.callee.type !== "Identifier") return !1;
      let r = oe(t);
      return t.callee.name === "require" ? r.length === 1 && Q(r[0]) || r.length > 1 : t.callee.name === "define" && e.parent.type === "ExpressionStatement" ? r.length === 1 || r.length === 2 && r[0].type === "ArrayExpression" || r.length === 3 && Q(r[0]) && r[1].type === "ArrayExpression" : !1;
    }
    function Tt(e, t, r, n, s, u) {
      let i = Jc(e, t, r, n, u),
        a = u ? r(u, {
          assignmentLayout: i
        }) : "";
      switch (i) {
        case "break-after-operator":
          return l([l(n), s, l(f([x, a]))]);
        case "never-break-after-operator":
          return l([l(n), s, " ", a]);
        case "fluid":
          {
            let o = Symbol("assignment");
            return l([l(n), s, l(f(x), {
              id: o
            }), ke, At(a, {
              groupId: o
            })]);
          }
        case "break-lhs":
          return l([n, s, " ", l(a)]);
        case "chain":
          return [l(n), s, x, a];
        case "chain-tail":
          return [l(n), s, f([x, a])];
        case "chain-tail-arrow-chain":
          return [l(n), s, a];
        case "only-left":
          return n;
      }
    }
    function wi(e, t, r) {
      let {
        node: n
      } = e;
      return Tt(e, t, r, r("left"), [" ", n.operator], "right");
    }
    function Oi(e, t, r) {
      return Tt(e, t, r, r("id"), " =", "init");
    }
    function Jc(e, t, r, n, s) {
      let {
          node: u
        } = e,
        i = u[s];
      if (!i) return "only-left";
      let a = !$r(i);
      if (e.match($r, _i, y$1 => !a || y$1.type !== "ExpressionStatement" && y$1.type !== "VariableDeclaration")) return a ? i.type === "ArrowFunctionExpression" && i.body.type === "ArrowFunctionExpression" ? "chain-tail-arrow-chain" : "chain-tail" : "chain";
      if (!a && $r(i.right) || Oe(t.originalText, i)) return "break-after-operator";
      if (u.type === "ImportAttribute" || i.type === "CallExpression" && i.callee.name === "require" || t.parser === "json5" || t.parser === "jsonc" || t.parser === "json") return "never-break-after-operator";
      let m = Bu(n);
      if (Wc(u) || Xc(u) || Fs(u) && m) return "break-lhs";
      let D$1 = Hc(u, n, t);
      return e.call(() => qc(e, t, r, D$1), s) ? "break-after-operator" : Gc(u) ? "break-lhs" : !m && (D$1 || i.type === "TemplateLiteral" || i.type === "TaggedTemplateExpression" || i.type === "BooleanLiteral" || Ce(i) || i.type === "ClassExpression") ? "never-break-after-operator" : "fluid";
    }
    function qc(e, t, r, n) {
      let s = e.node;
      if (De(s) && !Ut(s)) return !0;
      switch (s.type) {
        case "StringLiteralTypeAnnotation":
        case "SequenceExpression":
          return !0;
        case "TSConditionalType":
        case "ConditionalTypeAnnotation":
          if (!t.experimentalTernaries && !Kc(s)) break;
          return !0;
        case "ConditionalExpression":
          {
            if (!t.experimentalTernaries) {
              let {
                test: c
              } = s;
              return De(c) && !Ut(c);
            }
            let {
              consequent: a,
              alternate: o
            } = s;
            return a.type === "ConditionalExpression" || o.type === "ConditionalExpression";
          }
        case "ClassExpression":
          return w(s.decorators);
      }
      if (n) return !1;
      let u = s,
        i = [];
      for (;;) if (u.type === "UnaryExpression" || u.type === "AwaitExpression" || u.type === "YieldExpression" && u.argument !== null) u = u.argument, i.push("argument");else if (u.type === "TSNonNullExpression") u = u.expression, i.push("expression");else break;
      return !!(Q(u) || e.call(() => ji(e, t, r), ...i));
    }
    function Wc(e) {
      if (_i(e)) {
        let t = e.left || e.id;
        return t.type === "ObjectPattern" && t.properties.length > 2 && t.properties.some(r => {
          var n;
          return Ae(r) && (!r.shorthand || ((n = r.value) == null ? void 0 : n.type) === "AssignmentPattern");
        });
      }
      return !1;
    }
    function $r(e) {
      return e.type === "AssignmentExpression";
    }
    function _i(e) {
      return $r(e) || e.type === "VariableDeclarator";
    }
    function Gc(e) {
      let t = Nc(e);
      if (w(t)) {
        let r = e.type === "TSTypeAliasDeclaration" ? "constraint" : "bound";
        if (t.length > 1 && t.some(n => n[r] || n.default)) return !0;
      }
      return !1;
    }
    function Nc(e) {
      var t;
      if (Uc(e)) return (t = e.typeParameters) == null ? void 0 : t.params;
    }
    function Xc(e) {
      if (e.type !== "VariableDeclarator") return !1;
      let {
        typeAnnotation: t
      } = e.id;
      if (!t || !t.typeAnnotation) return !1;
      let r = Li(t.typeAnnotation);
      return w(r) && r.length > 1 && r.some(n => w(Li(n)) || n.type === "TSConditionalType");
    }
    function Fs(e) {
      var t;
      return e.type === "VariableDeclarator" && ((t = e.init) == null ? void 0 : t.type) === "ArrowFunctionExpression";
    }
    function Li(e) {
      var t;
      if (Yc(e)) return (t = e.typeArguments ?? e.typeParameters) == null ? void 0 : t.params;
    }
    function ji(e, t, r, n = !1) {
      var i;
      let {
          node: s
        } = e,
        u = () => ji(e, t, r, !0);
      if (s.type === "ChainExpression" || s.type === "TSNonNullExpression") return e.call(u, "expression");
      if (L(s)) {
        if ((i = Vr(e, t, r).label) != null && i.memberChain) return !1;
        let o = oe(s);
        return !(o.length === 0 || o.length === 1 && rr(o[0], t)) || Vc(s, r) ? !1 : e.call(u, "callee");
      }
      return q(s) ? e.call(u, "object") : n && (s.type === "Identifier" || s.type === "ThisExpression");
    }
    function Hc(e, t, r) {
      return Ae(e) ? (t = Wt(t), typeof t == "string" && et(t) < r.tabWidth + 3) : !1;
    }
    function Vc(e, t) {
      let r = $c(e);
      if (w(r)) {
        if (r.length > 1) return !0;
        if (r.length === 1) {
          let s = r[0];
          if (Ne(s) || _r(s) || s.type === "TSTypeLiteral" || s.type === "ObjectTypeAnnotation") return !0;
        }
        if (ne(t(e.typeParameters ? "typeParameters" : "typeArguments"))) return !0;
      }
      return !1;
    }
    function $c(e) {
      var t;
      return (t = e.typeParameters ?? e.typeArguments) == null ? void 0 : t.params;
    }
    function Kc(e) {
      function t(r) {
        switch (r.type) {
          case "FunctionTypeAnnotation":
          case "GenericTypeAnnotation":
          case "TSFunctionType":
            return !!r.typeParameters;
          case "TSTypeReference":
            return !!(r.typeArguments ?? r.typeParameters);
          default:
            return !1;
        }
      }
      return t(e.checkType) || t(e.extendsType);
    }
    function Je(e, t, r, n, s) {
      let u = e.node,
        i = K(u),
        a = s ? Qe(e, r, t) : "";
      if (i.length === 0) return [a, "(", M(e, r, {
        filter: p => ge(r.originalText, k(p)) === ")"
      }), ")"];
      let {
          parent: o
        } = e,
        c = St(o),
        m = Cs(u),
        D$1 = [];
      if (fu(e, (p, A) => {
        let T$1 = A === i.length - 1;
        T$1 && u.rest && D$1.push("..."), D$1.push(t()), !T$1 && (D$1.push(","), c || m ? D$1.push(" ") : pe(i[A], r) ? D$1.push(F, F) : D$1.push(x));
      }), n && !Qc(e)) {
        if (ne(a) || ne(D$1)) throw new Dt();
        return l([ur(a), "(", ur(D$1), ")"]);
      }
      let y$1 = i.every(p => !w(p.decorators));
      return m && y$1 ? [a, "(", ...D$1, ")"] : c ? [a, "(", ...D$1, ")"] : (Ir(o) || ou(o) || o.type === "TypeAlias" || o.type === "UnionTypeAnnotation" || o.type === "IntersectionTypeAnnotation" || o.type === "FunctionTypeAnnotation" && o.returnType === u) && i.length === 1 && i[0].name === null && u.this !== i[0] && i[0].typeAnnotation && u.typeParameters === null && Mt(i[0].typeAnnotation) && !u.rest ? r.arrowParens === "always" || u.type === "HookTypeAnnotation" ? ["(", ...D$1, ")"] : D$1 : [a, "(", f([E, ...D$1]), b(!Du(u) && ae(r, "all") ? "," : ""), E, ")"];
    }
    function Cs(e) {
      if (!e) return !1;
      let t = K(e);
      if (t.length !== 1) return !1;
      let [r] = t;
      return !d(r) && (r.type === "ObjectPattern" || r.type === "ArrayPattern" || r.type === "Identifier" && r.typeAnnotation && (r.typeAnnotation.type === "TypeAnnotation" || r.typeAnnotation.type === "TSTypeAnnotation") && we(r.typeAnnotation.typeAnnotation) || r.type === "FunctionTypeParam" && we(r.typeAnnotation) && r !== e.rest || r.type === "AssignmentPattern" && (r.left.type === "ObjectPattern" || r.left.type === "ArrayPattern") && (r.right.type === "Identifier" || se(r.right) && r.right.properties.length === 0 || U(r.right) && r.right.elements.length === 0));
    }
    function zc(e) {
      let t;
      return e.returnType ? (t = e.returnType, t.typeAnnotation && (t = t.typeAnnotation)) : e.typeAnnotation && (t = e.typeAnnotation), t;
    }
    function ot(e, t) {
      var s;
      let r = zc(e);
      if (!r) return !1;
      let n = (s = e.typeParameters) == null ? void 0 : s.params;
      if (n) {
        if (n.length > 1) return !1;
        if (n.length === 1) {
          let u = n[0];
          if (u.constraint || u.default) return !1;
        }
      }
      return K(e).length === 1 && (we(r) || ne(t));
    }
    function Qc(e) {
      return e.match(t => t.type === "ArrowFunctionExpression" && t.body.type === "BlockStatement", (t, r) => {
        if (t.type === "CallExpression" && r === "arguments" && t.arguments.length === 1 && t.callee.type === "CallExpression") {
          let n = t.callee.callee;
          return n.type === "Identifier" || n.type === "MemberExpression" && !n.computed && n.object.type === "Identifier" && n.property.type === "Identifier";
        }
        return !1;
      }, (t, r) => t.type === "VariableDeclarator" && r === "init" || t.type === "ExportDefaultDeclaration" && r === "declaration" || t.type === "TSExportAssignment" && r === "expression" || t.type === "AssignmentExpression" && r === "right" && t.left.type === "MemberExpression" && t.left.object.type === "Identifier" && t.left.object.name === "module" && t.left.property.type === "Identifier" && t.left.property.name === "exports", t => t.type !== "VariableDeclaration" || t.kind === "const" && t.declarations.length === 1);
    }
    function vi(e) {
      let t = K(e);
      return t.length > 1 && t.some(r => r.type === "TSParameterProperty");
    }
    function tl(e) {
      let {
        types: t
      } = e;
      if (t.some(n => d(n))) return !1;
      let r = t.find(n => el(n));
      return r ? t.every(n => n === r || Zc(n)) : !1;
    }
    function As(e) {
      return Mt(e) || we(e) ? !0 : Ne(e) ? tl(e) : !1;
    }
    function Mi(e, t, r) {
      let n = t.semi ? ";" : "",
        {
          node: s
        } = e,
        u = [$(e), "opaque type ", r("id"), r("typeParameters")];
      return s.supertype && u.push(": ", r("supertype")), s.impltype && u.push(" = ", r("impltype")), u.push(n), u;
    }
    function Kr(e, t, r) {
      let n = t.semi ? ";" : "",
        {
          node: s
        } = e,
        u = [$(e)];
      u.push("type ", r("id"), r("typeParameters"));
      return [Tt(e, t, r, u, " =", s.type === "TSTypeAliasDeclaration" ? "typeAnnotation" : "right"), n];
    }
    function zr(e, t, r) {
      let n = !1;
      return l(e.map(({
        isFirst: s,
        previous: u,
        node: i,
        index: a
      }) => {
        let o = r();
        if (s) return o;
        let c = we(i),
          m = we(u);
        return m && c ? [" & ", n ? f(o) : o] : !m && !c ? f([" &", x, o]) : (a > 1 && (n = !0), [" & ", a > 1 ? f(o) : o]);
      }, "types"));
    }
    function Qr(e, t, r) {
      let {
          node: n
        } = e,
        {
          parent: s
        } = e,
        u = s.type !== "TypeParameterInstantiation" && (s.type !== "TSConditionalType" || !t.experimentalTernaries) && (s.type !== "ConditionalTypeAnnotation" || !t.experimentalTernaries) && s.type !== "TSTypeParameterInstantiation" && s.type !== "GenericTypeAnnotation" && s.type !== "TSTypeReference" && s.type !== "TSTypeAssertion" && s.type !== "TupleTypeAnnotation" && s.type !== "TSTupleType" && !(s.type === "FunctionTypeParam" && !s.name && e.grandparent.this !== s) && !((s.type === "TypeAlias" || s.type === "VariableDeclarator" || s.type === "TSTypeAliasDeclaration") && Oe(t.originalText, n)),
        i = As(n),
        a = e.map(m => {
          let D$1 = r();
          return i || (D$1 = he(2, D$1)), ye(m, D$1, t);
        }, "types");
      if (i) return P(" | ", a);
      let c = [b([u && !Oe(t.originalText, n) ? x : "", "| "]), P([x, "| "], a)];
      return Be(e, t) ? l([f(c), E]) : (s.type === "TupleTypeAnnotation" || s.type === "TSTupleType") && s[s.type === "TupleTypeAnnotation" && s.types ? "types" : "elementTypes"].length > 1 ? l([f([b(["(", E]), c]), E, b(")")]) : l(u ? f(c) : c);
    }
    function rl(e) {
      var n;
      let {
        node: t,
        parent: r
      } = e;
      return t.type === "FunctionTypeAnnotation" && (Ir(r) || !((r.type === "ObjectTypeProperty" || r.type === "ObjectTypeInternalSlot") && !r.variance && !r.optional && ht(r, t) || r.type === "ObjectTypeCallProperty" || ((n = e.getParentNode(2)) == null ? void 0 : n.type) === "DeclareFunction"));
    }
    function Zr(e, t, r) {
      let {
          node: n
        } = e,
        s = [Nt(e)];
      (n.type === "TSConstructorType" || n.type === "TSConstructSignatureDeclaration") && s.push("new ");
      let u = Je(e, r, t, !1, !0),
        i = [];
      return n.type === "FunctionTypeAnnotation" ? i.push(rl(e) ? " => " : ": ", r("returnType")) : i.push(Y(e, r, n.returnType ? "returnType" : "typeAnnotation")), ot(n, i) && (u = l(u)), s.push(u, i), l(s);
    }
    function en(e, t, r) {
      return [r("objectType"), V(e), "[", r("indexType"), "]"];
    }
    function tn(e, t, r) {
      return ["infer ", r("typeParameter")];
    }
    function Ts(e, t, r) {
      let {
        node: n
      } = e;
      return [n.postfix ? "" : r, Y(e, t), n.postfix ? r : ""];
    }
    function rn(e, t, r) {
      let {
        node: n
      } = e;
      return ["...", ...(n.type === "TupleTypeSpreadElement" && n.label ? [r("label"), ": "] : []), r("typeAnnotation")];
    }
    function nn(e, t, r) {
      let {
        node: n
      } = e;
      return [n.variance ? r("variance") : "", r("label"), n.optional ? "?" : "", ": ", r("elementType")];
    }
    function Y(e, t, r = "typeAnnotation") {
      let {
        node: {
          [r]: n
        }
      } = e;
      if (!n) return "";
      let s = !1;
      if (n.type === "TSTypeAnnotation" || n.type === "TypeAnnotation") {
        let u = e.call(Ri, r);
        (u === "=>" || u === ":" && d(n, g.Leading)) && (s = !0), nl.add(n);
      }
      return s ? [" ", t(r)] : t(r);
    }
    function sn(e, t, r) {
      let n = Ri(e);
      return n ? [n, " ", r("typeAnnotation")] : r("typeAnnotation");
    }
    function un(e) {
      return [e("elementType"), "[]"];
    }
    function an({
      node: e
    }, t) {
      let r = e.type === "TSTypeQuery" ? "exprName" : "argument",
        n = e.type === "TypeofTypeAnnotation" || e.typeArguments ? "typeArguments" : "typeParameters";
      return ["typeof ", t(r), t(n)];
    }
    function on(e, t) {
      let {
        node: r
      } = e;
      return [r.type === "TSTypePredicate" && r.asserts ? "asserts " : r.type === "TypePredicate" && r.kind ? `${r.kind} ` : "", t("parameterName"), r.typeAnnotation ? [" is ", Y(e, t)] : ""];
    }
    function V(e) {
      let {
        node: t
      } = e;
      return !t.optional || t.type === "Identifier" && t === e.parent.key ? "" : L(t) || q(t) && t.computed || t.type === "OptionalIndexedAccessType" ? "?." : "?";
    }
    function pn(e) {
      return e.node.definite || e.match(void 0, (t, r) => r === "id" && t.type === "VariableDeclarator" && t.definite) ? "!" : "";
    }
    function $(e) {
      let {
        node: t
      } = e;
      return t.declare || sl.has(t.type) && e.parent.type !== "DeclareExportDeclaration" ? "declare " : "";
    }
    function Nt({
      node: e
    }) {
      return e.abstract || ul.has(e.type) ? "abstract " : "";
    }
    function Qe(e, t, r) {
      let n = e.node;
      return n.typeArguments ? r("typeArguments") : n.typeParameters ? r("typeParameters") : "";
    }
    function Hr(e, t, r) {
      return ["::", r("callee")];
    }
    function ft(e, t, r) {
      return e.type === "EmptyStatement" ? ";" : e.type === "BlockStatement" || r ? [" ", t] : f([x, t]);
    }
    function cn(e, t) {
      return ["...", t("argument"), Y(e, t)];
    }
    function Xt(e) {
      return e.accessibility ? e.accessibility + " " : "";
    }
    function il(e, t, r, n) {
      let {
          node: s
        } = e,
        u = s.inexact ? "..." : "";
      return d(s, g.Dangling) ? l([r, u, M(e, t, {
        indent: !0
      }), E, n]) : [r, u, n];
    }
    function Yt(e, t, r) {
      let {
          node: n
        } = e,
        s = [],
        u = n.type === "TupleExpression" ? "#[" : "[",
        i = "]",
        a = n.type === "TupleTypeAnnotation" && n.types ? "types" : n.type === "TSTupleType" || n.type === "TupleTypeAnnotation" ? "elementTypes" : "elements",
        o = n[a];
      if (o.length === 0) s.push(il(e, t, u, i));else {
        let c = O(!1, o, -1),
          m = (c == null ? void 0 : c.type) !== "RestElement" && !n.inexact,
          D$1 = c === null,
          y$1 = Symbol("array"),
          C = !t.__inJestEach && o.length > 1 && o.every((T$1, S$1, B$2) => {
            let _$1 = T$1 == null ? void 0 : T$1.type;
            if (!U(T$1) && !se(T$1)) return !1;
            let J$1 = B$2[S$1 + 1];
            if (J$1 && _$1 !== J$1.type) return !1;
            let j$1 = U(T$1) ? "elements" : "properties";
            return T$1[j$1] && T$1[j$1].length > 1;
          }),
          p = fs(n, t),
          A = m ? D$1 ? "," : ae(t) ? p ? b(",", "", {
            groupId: y$1
          }) : b(",") : "" : "";
        s.push(l([u, f([E, p ? ol(e, t, r, A) : [al(e, t, a, n.inexact, r), A], M(e, t)]), E, i], {
          shouldBreak: C,
          id: y$1
        }));
      }
      return s.push(V(e), Y(e, r)), s;
    }
    function fs(e, t) {
      return U(e) && e.elements.length > 1 && e.elements.every(r => r && (Ce(r) || jn(r) && !d(r.argument)) && !d(r, g.Trailing | g.Line, n => !te(t.originalText, R(n), {
        backwards: !0
      })));
    }
    function Ji({
      node: e
    }, {
      originalText: t
    }) {
      let r = s => Lt(t, wt(t, s)),
        n = s => t[s] === "," ? s : n(r(s + 1));
      return Ot(t, n(k(e)));
    }
    function al(e, t, r, n, s) {
      let u = [];
      return e.each(({
        node: i,
        isLast: a
      }) => {
        u.push(i ? l(s()) : ""), (!a || n) && u.push([",", x, i && Ji(e, t) ? E : ""]);
      }, r), n && u.push("..."), u;
    }
    function ol(e, t, r, n) {
      let s = [];
      return e.each(({
        isLast: u,
        next: i
      }) => {
        s.push([r(), u ? n : ","]), u || s.push(Ji(e, t) ? [F, F] : d(i, g.Leading | g.Line) ? F : x);
      }, "elements"), qt(s);
    }
    function ll(e) {
      return e.length === 1 ? e : e.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(?=\d)/u, "$1$2").replace(/^([+-]?[\d.]+)e[+-]?0+$/u, "$1").replace(/^([+-])?\./u, "$10.").replace(/(\.\d+?)0+(?=e|$)/u, "$1").replace(/\.(?=e|$)/u, "");
    }
    function Ui(e) {
      return /^(?:\d+|\d+\.\d+)$/u.test(e);
    }
    function Gi(e, t) {
      return t.parser === "json" || t.parser === "jsonc" || !Q(e.key) || tt(fe(e.key), t).slice(1, -1) !== e.key.value ? !1 : !!(Wi(e.key.value) && !(t.parser === "babel-ts" && e.type === "ClassProperty" || t.parser === "typescript" && e.type === "PropertyDefinition") || Ui(e.key.value) && String(Number(e.key.value)) === e.key.value && e.type !== "ImportAttribute" && (t.parser === "babel" || t.parser === "acorn" || t.parser === "espree" || t.parser === "meriyah" || t.parser === "__babel_estree"));
    }
    function ml(e, t) {
      let {
        key: r
      } = e.node;
      return (r.type === "Identifier" || Ce(r) && Ui(Ze(fe(r))) && String(r.value) === Ze(fe(r)) && !(t.parser === "typescript" || t.parser === "babel-ts")) && (t.parser === "json" || t.parser === "jsonc" || t.quoteProps === "consistent" && mn.get(e.parent));
    }
    function Et(e, t, r) {
      let {
        node: n
      } = e;
      if (n.computed) return ["[", r("key"), "]"];
      let {
          parent: s
        } = e,
        {
          key: u
        } = n;
      if (t.quoteProps === "consistent" && !mn.has(s)) {
        let i = e.siblings.some(a => !a.computed && Q(a.key) && !Gi(a, t));
        mn.set(s, i);
      }
      if (ml(e, t)) {
        let i = tt(JSON.stringify(u.type === "Identifier" ? u.name : u.value.toString()), t);
        return e.call(a => ye(a, i, t), "key");
      }
      return Gi(n, t) && (t.quoteProps === "as-needed" || t.quoteProps === "consistent" && !mn.get(s)) ? e.call(i => ye(i, /^\d/u.test(u.value) ? Ze(u.value) : u.value, t), "key") : r("key");
    }
    function yn(e, t, r) {
      let {
        node: n
      } = e;
      return n.shorthand ? r("value") : Tt(e, t, r, Et(e, t, r), ":", "value");
    }
    function Dn(e, t, r, n) {
      if (yl(e)) return fn(e, r, t);
      let {
          node: s
        } = e,
        u = !1;
      if ((s.type === "FunctionDeclaration" || s.type === "FunctionExpression") && n != null && n.expandLastArg) {
        let {
          parent: m
        } = e;
        L(m) && (oe(m).length > 1 || K(s).every(D$1 => D$1.type === "Identifier" && !D$1.typeAnnotation)) && (u = !0);
      }
      let i = [$(e), s.async ? "async " : "", `function${s.generator ? "*" : ""} `, s.id ? t("id") : ""],
        a = Je(e, t, r, u),
        o = Ht(e, t),
        c = ot(s, o);
      return i.push(Qe(e, r, t), l([c ? l(a) : a, o]), s.body ? " " : "", t("body")), r.semi && (s.declare || !s.body) && i.push(";"), i;
    }
    function mr(e, t, r) {
      let {
          node: n
        } = e,
        {
          kind: s
        } = n,
        u = n.value || n,
        i = [];
      return !s || s === "init" || s === "method" || s === "constructor" ? u.async && i.push("async ") : (ln.ok(s === "get" || s === "set"), i.push(s, " ")), u.generator && i.push("*"), i.push(Et(e, t, r), n.optional || n.key.optional ? "?" : "", n === u ? fn(e, t, r) : r("value")), i;
    }
    function fn(e, t, r) {
      let {
          node: n
        } = e,
        s = Je(e, r, t),
        u = Ht(e, r),
        i = vi(n),
        a = ot(n, u),
        o = [Qe(e, t, r), l([i ? l(s, {
          shouldBreak: !0
        }) : a ? l(s) : s, u])];
      return n.body ? o.push(" ", r("body")) : o.push(t.semi ? ";" : ""), o;
    }
    function Dl(e) {
      let t = K(e);
      return t.length === 1 && !e.typeParameters && !d(e, g.Dangling) && t[0].type === "Identifier" && !t[0].typeAnnotation && !d(t[0]) && !t[0].optional && !e.predicate && !e.returnType;
    }
    function En(e, t) {
      if (t.arrowParens === "always") return !1;
      if (t.arrowParens === "avoid") {
        let {
          node: r
        } = e;
        return Dl(r);
      }
      return !1;
    }
    function Ht(e, t) {
      let {
          node: r
        } = e,
        s = [Y(e, t, "returnType")];
      return r.predicate && s.push(t("predicate")), s;
    }
    function Ni(e, t, r) {
      let {
          node: n
        } = e,
        s = t.semi ? ";" : "",
        u = [];
      if (n.argument) {
        let o = r("argument");
        fl(t, n.argument) ? o = ["(", f([F, o]), F, ")"] : (De(n.argument) || n.argument.type === "SequenceExpression" || t.experimentalTernaries && n.argument.type === "ConditionalExpression" && (n.argument.consequent.type === "ConditionalExpression" || n.argument.alternate.type === "ConditionalExpression")) && (o = l([b("("), f([E, o]), E, b(")")])), u.push(" ", o);
      }
      let i = d(n, g.Dangling),
        a = s && i && d(n, g.Last | g.Line);
      return a && u.push(s), i && u.push(" ", M(e, t)), a || u.push(s), u;
    }
    function Xi(e, t, r) {
      return ["return", Ni(e, t, r)];
    }
    function Yi(e, t, r) {
      return ["throw", Ni(e, t, r)];
    }
    function fl(e, t) {
      if (Oe(e.originalText, t) || d(t, g.Leading, r => de(e.originalText, R(r), k(r))) && !X(t)) return !0;
      if (jt(t)) {
        let r = t,
          n;
        for (; n = uu(r);) if (r = n, Oe(e.originalText, r)) return !0;
      }
      return !1;
    }
    function Hi(e) {
      return ds.has(e) || ds.set(e, e.type === "ConditionalExpression" && !ie(e, t => t.type === "ObjectExpression")), ds.get(e);
    }
    function $i(e, t, r, n = {}) {
      let s = [],
        u,
        i = [],
        a = !1,
        o = !n.expandLastArg && e.node.body.type === "ArrowFunctionExpression",
        c;
      (function T$1() {
        let {
            node: S$1
          } = e,
          B$2 = El(e, t, r, n);
        if (s.length === 0) s.push(B$2);else {
          let {
            leading: _$1,
            trailing: J$1
          } = os(e, t);
          s.push([_$1, B$2]), i.unshift(J$1);
        }
        o && (a || (a = S$1.returnType && K(S$1).length > 0 || S$1.typeParameters || K(S$1).some(_$1 => _$1.type !== "Identifier"))), !o || S$1.body.type !== "ArrowFunctionExpression" ? (u = r("body", n), c = S$1.body) : e.call(T$1, "body");
      })();
      let m = !Oe(t.originalText, c) && (Vi(c) || Fl(c, u, t) || !a && Hi(c)),
        D$1 = e.key === "callee" && lt(e.parent),
        y$1 = Symbol("arrow-chain"),
        C = Cl(e, n, {
          signatureDocs: s,
          shouldBreak: a
        }),
        p,
        A = !1;
      return o && (D$1 || n.assignmentLayout) && (A = !0, p = n.assignmentLayout === "chain-tail-arrow-chain" || D$1 && !m), u = Al(e, t, n, {
        bodyDoc: u,
        bodyComments: i,
        functionBody: c,
        shouldPutBodyOnSameLine: m
      }), l([l(A ? f([E, C]) : C, {
        shouldBreak: p,
        id: y$1
      }), " =>", o ? At(u, {
        groupId: y$1
      }) : l(u), o && D$1 ? b(E, "", {
        groupId: y$1
      }) : ""]);
    }
    function El(e, t, r, n) {
      let {
          node: s
        } = e,
        u = [];
      if (s.async && u.push("async "), En(e, t)) u.push(r(["params", 0]));else {
        let a = n.expandLastArg || n.expandFirstArg,
          o = Ht(e, r);
        if (a) {
          if (ne(o)) throw new Dt();
          o = l(ur(o));
        }
        u.push(l([Je(e, r, t, a, !0), o]));
      }
      let i = M(e, t, {
        filter(a) {
          let o = yt(t.originalText, k(a));
          return o !== !1 && t.originalText.slice(o, o + 2) === "=>";
        }
      });
      return i && u.push(" ", i), u;
    }
    function Fl(e, t, r) {
      var n, s;
      return U(e) || se(e) || e.type === "ArrowFunctionExpression" || e.type === "DoExpression" || e.type === "BlockStatement" || X(e) || ((n = t.label) == null ? void 0 : n.hug) !== !1 && (((s = t.label) == null ? void 0 : s.embed) || Lr(e, r.originalText));
    }
    function Cl(e, t, {
      signatureDocs: r,
      shouldBreak: n
    }) {
      if (r.length === 1) return r[0];
      let {
        parent: s,
        key: u
      } = e;
      return u !== "callee" && lt(s) || De(s) ? l([r[0], " =>", f([x, P([" =>", x], r.slice(1))])], {
        shouldBreak: n
      }) : u === "callee" && lt(s) || t.assignmentLayout ? l(P([" =>", x], r), {
        shouldBreak: n
      }) : l(f(P([" =>", x], r)), {
        shouldBreak: n
      });
    }
    function Al(e, t, r, {
      bodyDoc: n,
      bodyComments: s,
      functionBody: u,
      shouldPutBodyOnSameLine: i
    }) {
      let {
          node: a,
          parent: o
        } = e,
        c = r.expandLastArg && ae(t, "all") ? b(",") : "",
        m = (r.expandLastArg || o.type === "JSXExpressionContainer") && !d(a) ? E : "";
      return i && Hi(u) ? [" ", l([b("", "("), f([E, n]), b("", ")"), c, m]), s] : (Vi(u) && (n = l(["(", f([E, n]), E, ")"])), i ? [" ", n, s] : [f([x, n, s]), c, m]);
    }
    function yr(e, t, r, n) {
      let {
          node: s
        } = e,
        u = [],
        i = Ki(!1, s[n], a => a.type !== "EmptyStatement");
      return e.each(({
        node: a
      }) => {
        a.type !== "EmptyStatement" && (u.push(r()), a !== i && (u.push(F), pe(a, t) && u.push(F)));
      }, n), u;
    }
    function Fn(e, t, r) {
      let n = dl(e, t, r),
        {
          node: s,
          parent: u
        } = e;
      if (s.type === "Program" && (u == null ? void 0 : u.type) !== "ModuleExpression") return n ? [n, F] : "";
      let i = [];
      if (s.type === "StaticBlock" && i.push("static "), i.push("{"), n) i.push(f([F, n]), F);else {
        let a = e.grandparent;
        u.type === "ArrowFunctionExpression" || u.type === "FunctionExpression" || u.type === "FunctionDeclaration" || u.type === "ComponentDeclaration" || u.type === "HookDeclaration" || u.type === "ObjectMethod" || u.type === "ClassMethod" || u.type === "ClassPrivateMethod" || u.type === "ForStatement" || u.type === "WhileStatement" || u.type === "DoWhileStatement" || u.type === "DoExpression" || u.type === "ModuleExpression" || u.type === "CatchClause" && !a.finalizer || u.type === "TSModuleDeclaration" || s.type === "StaticBlock" || i.push(F);
      }
      return i.push("}"), i;
    }
    function dl(e, t, r) {
      let {
          node: n
        } = e,
        s = w(n.directives),
        u = n.body.some(o => o.type !== "EmptyStatement"),
        i = d(n, g.Dangling);
      if (!s && !u && !i) return "";
      let a = [];
      return s && (a.push(yr(e, t, r, "directives")), (u || i) && (a.push(F), pe(O(!1, n.directives, -1), t) && a.push(F))), u && a.push(yr(e, t, r, "body")), i && a.push(M(e, t)), a;
    }
    function xl(e) {
      let t = /* @__PURE__ */new WeakMap();
      return function (r) {
        return t.has(r) || t.set(r, Symbol(e)), t.get(r);
      };
    }
    function hl(e) {
      switch (e) {
        case null:
          return "";
        case "PlusOptional":
          return "+?";
        case "MinusOptional":
          return "-?";
        case "Optional":
          return "?";
      }
    }
    function zi(e, t, r) {
      let {
        node: n
      } = e;
      return l([n.variance ? r("variance") : "", "[", f([r("keyTparam"), " in ", r("sourceType")]), "]", hl(n.optional), ": ", r("propType")]);
    }
    function xs(e, t) {
      return e === "+" || e === "-" ? e + t : t;
    }
    function Qi(e, t, r) {
      let {
          node: n
        } = e,
        s = de(t.originalText, R(n), R(n.typeParameter));
      return l(["{", f([t.bracketSpacing ? x : E, l([r("typeParameter"), n.optional ? xs(n.optional, "?") : "", n.typeAnnotation ? ": " : "", r("typeAnnotation")]), t.semi ? b(";") : ""]), M(e, t), t.bracketSpacing ? x : E, "}"], {
        shouldBreak: s
      });
    }
    function gl(e, t, r) {
      let {
        node: n
      } = e;
      return K(n).length === 1 && n.type.startsWith("TS") && !n[r][0].constraint && e.parent.type === "ArrowFunctionExpression" && !(t.filepath && /\.ts$/u.test(t.filepath));
    }
    function Pt(e, t, r, n) {
      let {
        node: s
      } = e;
      if (!s[n]) return "";
      if (!Array.isArray(s[n])) return r(n);
      let u = St(e.grandparent),
        i = e.match(c => !(c[n].length === 1 && we(c[n][0])), void 0, (c, m) => m === "typeAnnotation", c => c.type === "Identifier", Fs);
      if (s[n].length === 0 || !i && (u || s[n].length === 1 && (s[n][0].type === "NullableTypeAnnotation" || As(s[n][0])))) return ["<", P(", ", e.map(r, n)), Sl(e, t), ">"];
      let o = s.type === "TSTypeParameterInstantiation" ? "" : gl(e, t, n) ? "," : ae(t) ? b(",") : "";
      return l(["<", f([E, P([",", x], e.map(r, n))]), o, E, ">"], {
        id: Dr(s)
      });
    }
    function Sl(e, t) {
      let {
        node: r
      } = e;
      if (!d(r, g.Dangling)) return "";
      let n = !d(r, g.Line),
        s = M(e, t, {
          indent: !n
        });
      return n ? s : [s, F];
    }
    function An(e, t, r) {
      let {
          node: n,
          parent: s
        } = e,
        u = [n.type === "TSTypeParameter" && n.const ? "const " : ""],
        i = n.type === "TSTypeParameter" ? r("name") : n.name;
      if (s.type === "TSMappedType") return s.readonly && u.push(xs(s.readonly, "readonly"), " "), u.push("[", i), n.constraint && u.push(" in ", r("constraint")), s.nameType && u.push(" as ", e.callParent(() => r("nameType"))), u.push("]"), u;
      if (n.variance && u.push(r("variance")), n.in && u.push("in "), n.out && u.push("out "), u.push(i), n.bound && (n.usesExtendsBound && u.push(" extends "), u.push(Y(e, r, "bound"))), n.constraint) {
        let a = Symbol("constraint");
        u.push(" extends", l(f(x), {
          id: a
        }), ke, At(r("constraint"), {
          groupId: a
        }));
      }
      return n.default && u.push(" = ", r("default")), l(u);
    }
    function Tn(e, t, r) {
      let {
          node: n
        } = e,
        s = [$(e), Nt(e), "class"],
        u = d(n.id, g.Trailing) || d(n.typeParameters, g.Trailing) || d(n.superClass) || w(n.extends) || w(n.mixins) || w(n.implements),
        i = [],
        a = [];
      if (n.id && i.push(" ", r("id")), i.push(r("typeParameters")), n.superClass) {
        let o = [bl(e, t, r), r(n.superTypeArguments ? "superTypeArguments" : "superTypeParameters")],
          c = e.call(m => ["extends ", ye(m, o, t)], "superClass");
        u ? a.push(x, l(c)) : a.push(" ", c);
      } else a.push(hs(e, t, r, "extends"));
      if (a.push(hs(e, t, r, "mixins"), hs(e, t, r, "implements")), u) {
        let o;
        ta(n) ? o = [...i, f(a)] : o = f([...i, a]), s.push(l(o, {
          id: ea(n)
        }));
      } else s.push(...i, ...a);
      return s.push(" ", r("body")), s;
    }
    function gs(e) {
      return b(F, "", {
        groupId: ea(e)
      });
    }
    function Bl(e) {
      return ["extends", "mixins", "implements"].reduce((t, r) => t + (Array.isArray(e[r]) ? e[r].length : 0), e.superClass ? 1 : 0) > 1;
    }
    function ta(e) {
      return e.typeParameters && !d(e.typeParameters, g.Trailing | g.Line) && !Bl(e);
    }
    function hs(e, t, r, n) {
      let {
        node: s
      } = e;
      if (!w(s[n])) return "";
      let u = M(e, t, {
        marker: n
      });
      return [ta(s) ? b(" ", x, {
        groupId: Dr(s.typeParameters)
      }) : x, u, u && F, n, l(f([x, P([",", x], e.map(r, n))]))];
    }
    function bl(e, t, r) {
      let n = r("superClass"),
        {
          parent: s
        } = e;
      return s.type === "AssignmentExpression" ? l(b(["(", f([E, n]), E, ")"], n)) : n;
    }
    function dn(e, t, r) {
      let {
          node: n
        } = e,
        s = [];
      return w(n.decorators) && s.push(Ds(e, t, r)), s.push(Xt(n)), n.static && s.push("static "), s.push(Nt(e)), n.override && s.push("override "), s.push(mr(e, t, r)), s;
    }
    function xn(e, t, r) {
      let {
          node: n
        } = e,
        s = [],
        u = t.semi ? ";" : "";
      w(n.decorators) && s.push(Ds(e, t, r)), s.push(Xt(n), $(e)), n.static && s.push("static "), s.push(Nt(e)), n.override && s.push("override "), n.readonly && s.push("readonly "), n.variance && s.push(r("variance")), (n.type === "ClassAccessorProperty" || n.type === "AccessorProperty" || n.type === "TSAbstractAccessorProperty") && s.push("accessor "), s.push(Et(e, t, r), V(e), pn(e), Y(e, r));
      return [Tt(e, t, r, s, " =", n.type === "TSAbstractPropertyDefinition" || n.type === "TSAbstractAccessorProperty" ? void 0 : "value"), u];
    }
    function ra(e, t, r) {
      let {
          node: n
        } = e,
        s = [];
      return e.each(({
        node: u,
        next: i,
        isLast: a
      }) => {
        s.push(r()), !t.semi && Zi(u) && Pl(u, i) && s.push(";"), a || (s.push(F), pe(u, t) && s.push(F));
      }, "body"), d(n, g.Dangling) && s.push(M(e, t)), [w(n.body) ? gs(e.parent) : "", "{", s.length > 0 ? [f([F, s]), F] : "", "}"];
    }
    function Pl(e, t) {
      var s;
      let {
        type: r,
        name: n
      } = e.key;
      if (!e.computed && r === "Identifier" && (n === "static" || n === "get" || n === "set") && !e.value && !e.typeAnnotation) return !0;
      if (!t || t.static || t.accessibility || t.readonly) return !1;
      if (!t.computed) {
        let u = (s = t.key) == null ? void 0 : s.name;
        if (u === "in" || u === "instanceof") return !0;
      }
      if (Zi(t) && t.variance && !t.static && !t.declare) return !0;
      switch (t.type) {
        case "ClassProperty":
        case "PropertyDefinition":
        case "TSAbstractPropertyDefinition":
          return t.computed;
        case "MethodDefinition":
        case "TSAbstractMethodDefinition":
        case "ClassMethod":
        case "ClassPrivateMethod":
          {
            if ((t.value ? t.value.async : t.async) || t.kind === "get" || t.kind === "set") return !1;
            let i = t.value ? t.value.generator : t.generator;
            return !!(t.computed || i);
          }
        case "TSIndexSignature":
          return !0;
      }
      return !1;
    }
    function na(e, t) {
      if (t.semi || Ss(e, t) || bs(e, t)) return !1;
      let {
        node: r,
        key: n,
        parent: s
      } = e;
      return !!(r.type === "ExpressionStatement" && (n === "body" && (s.type === "Program" || s.type === "BlockStatement" || s.type === "StaticBlock" || s.type === "TSModuleBlock") || n === "consequent" && s.type === "SwitchCase") && e.call(() => sa(e, t), "expression"));
    }
    function sa(e, t) {
      let {
        node: r
      } = e;
      switch (r.type) {
        case "ParenthesizedExpression":
        case "TypeCastExpression":
        case "ArrayExpression":
        case "ArrayPattern":
        case "TemplateLiteral":
        case "TemplateElement":
        case "RegExpLiteral":
          return !0;
        case "ArrowFunctionExpression":
          if (!En(e, t)) return !0;
          break;
        case "UnaryExpression":
          {
            let {
              prefix: n,
              operator: s
            } = r;
            if (n && (s === "+" || s === "-")) return !0;
            break;
          }
        case "BindExpression":
          if (!r.object) return !0;
          break;
        case "Literal":
          if (r.regex) return !0;
          break;
        default:
          if (X(r)) return !0;
      }
      return Be(e, t) ? !0 : jt(r) ? e.call(() => sa(e, t), ...Pr(r)) : !1;
    }
    function Ss({
      node: e,
      parent: t
    }, r) {
      return (r.parentParser === "markdown" || r.parentParser === "mdx") && e.type === "ExpressionStatement" && X(e.expression) && t.type === "Program" && t.body.length === 1;
    }
    function Bs(e) {
      switch (e.type) {
        case "MemberExpression":
          switch (e.property.type) {
            case "Identifier":
            case "NumericLiteral":
            case "StringLiteral":
              return Bs(e.object);
          }
          return !1;
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    function bs({
      node: e,
      parent: t
    }, r) {
      return (r.parser === "__vue_event_binding" || r.parser === "__vue_ts_event_binding") && e.type === "ExpressionStatement" && t.type === "Program" && t.body.length === 1;
    }
    function ua(e, t, r) {
      let n = [r("expression")];
      return bs(e, t) ? Bs(e.node.expression) && n.push(";") : Ss(e, t) || t.semi && n.push(";"), n;
    }
    function ia(e, t, r) {
      if (t.__isVueBindings || t.__isVueForBindingLeft) {
        let n = e.map(r, "program", "body", 0, "params");
        if (n.length === 1) return n[0];
        let s = P([",", x], n);
        return t.__isVueForBindingLeft ? ["(", f([E, l(s)]), E, ")"] : s;
      }
      if (t.__isEmbeddedTypescriptGenericParameters) {
        let n = e.map(r, "program", "body", 0, "typeParameters", "params");
        return P([",", x], n);
      }
    }
    function pa(e, t) {
      let {
        node: r
      } = e;
      switch (r.type) {
        case "RegExpLiteral":
          return aa(r);
        case "BigIntLiteral":
          return hn(r.extra.raw);
        case "NumericLiteral":
          return Ze(r.extra.raw);
        case "StringLiteral":
          return Ie(tt(r.extra.raw, t));
        case "NullLiteral":
          return "null";
        case "BooleanLiteral":
          return String(r.value);
        case "DecimalLiteral":
          return Ze(r.value) + "m";
        case "DirectiveLiteral":
          return oa(r.extra.raw, t);
        case "Literal":
          {
            if (r.regex) return aa(r.regex);
            if (r.bigint) return hn(r.raw);
            if (r.decimal) return Ze(r.decimal) + "m";
            let {
              value: n
            } = r;
            return typeof n == "number" ? Ze(r.raw) : typeof n == "string" ? kl(e) ? oa(r.raw, t) : Ie(tt(r.raw, t)) : String(n);
          }
      }
    }
    function kl(e) {
      if (e.key !== "expression") return;
      let {
        parent: t
      } = e;
      return t.type === "ExpressionStatement" && t.directive;
    }
    function hn(e) {
      return e.toLowerCase();
    }
    function aa({
      pattern: e,
      flags: t
    }) {
      return t = [...t].sort().join(""), `/${e}/${t}`;
    }
    function oa(e, t) {
      let r = e.slice(1, -1);
      if (r.includes("\"") || r.includes("'")) return e;
      let n = t.singleQuote ? "'" : "\"";
      return n + r + n;
    }
    function Il(e, t, r) {
      let n = e.originalText.slice(t, r);
      for (let s of e[Symbol.for("comments")]) {
        let u = R(s);
        if (u > r) break;
        let i = k(s);
        if (i < t) continue;
        let a = i - u;
        n = n.slice(0, u - t) + " ".repeat(a) + n.slice(i - t);
      }
      return n;
    }
    function ca(e, t, r) {
      let {
        node: n
      } = e;
      return ["import", n.module ? " module" : "", n.phase ? ` ${n.phase}` : "", ks(n), ya(e, t, r), ma(e, t, r), fa(e, t, r), t.semi ? ";" : ""];
    }
    function gn(e, t, r) {
      let {
          node: n
        } = e,
        s = [di(e, t, r), $(e), "export", la(n) ? " default" : ""],
        {
          declaration: u,
          exported: i
        } = n;
      return d(n, g.Dangling) && (s.push(" ", M(e, t)), wr(n) && s.push(F)), u ? s.push(" ", r("declaration")) : (s.push(Ol(n)), n.type === "ExportAllDeclaration" || n.type === "DeclareExportAllDeclaration" ? (s.push(" *"), i && s.push(" as ", r("exported"))) : s.push(ya(e, t, r)), s.push(ma(e, t, r), fa(e, t, r))), s.push(wl(n, t)), s;
    }
    function wl(e, t) {
      return t.semi && (!e.declaration || la(e) && !Ll(e.declaration)) ? ";" : "";
    }
    function Ps(e, t = !0) {
      return e && e !== "value" ? `${t ? " " : ""}${e}${t ? "" : " "}` : "";
    }
    function ks(e, t) {
      return Ps(e.importKind, t);
    }
    function Ol(e) {
      return Ps(e.exportKind);
    }
    function ma(e, t, r) {
      let {
        node: n
      } = e;
      if (!n.source) return "";
      let s = [];
      return Da(n, t) && s.push(" from"), s.push(" ", r("source")), s;
    }
    function ya(e, t, r) {
      let {
        node: n
      } = e;
      if (!Da(n, t)) return "";
      let s = [" "];
      if (w(n.specifiers)) {
        let u = [],
          i = [];
        e.each(() => {
          let a = e.node.type;
          if (a === "ExportNamespaceSpecifier" || a === "ExportDefaultSpecifier" || a === "ImportNamespaceSpecifier" || a === "ImportDefaultSpecifier") u.push(r());else if (a === "ExportSpecifier" || a === "ImportSpecifier") i.push(r());else throw new Me(n, "specifier");
        }, "specifiers"), s.push(P(", ", u)), i.length > 0 && (u.length > 0 && s.push(", "), i.length > 1 || u.length > 0 || n.specifiers.some(o => d(o)) ? s.push(l(["{", f([t.bracketSpacing ? x : E, P([",", x], i)]), b(ae(t) ? "," : ""), t.bracketSpacing ? x : E, "}"])) : s.push(["{", t.bracketSpacing ? " " : "", ...i, t.bracketSpacing ? " " : "", "}"]));
      } else s.push("{}");
      return s;
    }
    function Da(e, t) {
      return e.type !== "ImportDeclaration" || w(e.specifiers) || e.importKind === "type" ? !0 : fr(t, R(e), R(e.source)).trimEnd().endsWith("from");
    }
    function _l(e, t) {
      var n, s;
      if ((n = e.extra) != null && n.deprecatedAssertSyntax) return "assert";
      let r = fr(t, k(e.source), (s = e.attributes) != null && s[0] ? R(e.attributes[0]) : k(e)).trimStart();
      return r.startsWith("assert") ? "assert" : r.startsWith("with") || w(e.attributes) ? "with" : void 0;
    }
    function fa(e, t, r) {
      let {
        node: n
      } = e;
      if (!n.source) return "";
      let s = _l(n, t);
      if (!s) return "";
      let u = [` ${s} {`];
      return w(n.attributes) && (t.bracketSpacing && u.push(" "), u.push(P(", ", e.map(r, "attributes"))), t.bracketSpacing && u.push(" ")), u.push("}"), u;
    }
    function Ea(e, t, r) {
      let {
          node: n
        } = e,
        {
          type: s
        } = n,
        u = s.startsWith("Import"),
        i = u ? "imported" : "local",
        a = u ? "local" : "exported",
        o = n[i],
        c = n[a],
        m = "",
        D$1 = "";
      return s === "ExportNamespaceSpecifier" || s === "ImportNamespaceSpecifier" ? m = "*" : o && (m = r(i)), c && !jl(n) && (D$1 = r(a)), [Ps(s === "ImportSpecifier" ? n.importKind : n.exportKind, !1), m, m && D$1 ? " as " : "", D$1];
    }
    function jl(e) {
      if (e.type !== "ImportSpecifier" && e.type !== "ExportSpecifier") return !1;
      let {
        local: t,
        [e.type === "ImportSpecifier" ? "imported" : "exported"]: r
      } = e;
      if (t.type !== r.type || !eu(t, r)) return !1;
      if (Q(t)) return t.value === r.value && fe(t) === fe(r);
      switch (t.type) {
        case "Identifier":
          return t.name === r.name;
        default:
          return !1;
      }
    }
    function dt(e, t, r) {
      var j$1;
      let n = t.semi ? ";" : "",
        {
          node: s
        } = e,
        u = s.type === "ObjectTypeAnnotation",
        i = s.type === "TSEnumDeclaration" || s.type === "EnumBooleanBody" || s.type === "EnumNumberBody" || s.type === "EnumBigIntBody" || s.type === "EnumStringBody" || s.type === "EnumSymbolBody",
        a = [s.type === "TSTypeLiteral" || i ? "members" : s.type === "TSInterfaceBody" ? "body" : "properties"];
      u && a.push("indexers", "callProperties", "internalSlots");
      let o = a.flatMap(h => e.map(({
        node: W$1
      }) => ({
        node: W$1,
        printed: r(),
        loc: R(W$1)
      }), h));
      a.length > 1 && o.sort((h, W$1) => h.loc - W$1.loc);
      let {
          parent: c,
          key: m
        } = e,
        D$1 = u && m === "body" && (c.type === "InterfaceDeclaration" || c.type === "DeclareInterface" || c.type === "DeclareClass"),
        y$1 = s.type === "TSInterfaceBody" || i || D$1 || s.type === "ObjectPattern" && c.type !== "FunctionDeclaration" && c.type !== "FunctionExpression" && c.type !== "ArrowFunctionExpression" && c.type !== "ObjectMethod" && c.type !== "ClassMethod" && c.type !== "ClassPrivateMethod" && c.type !== "AssignmentPattern" && c.type !== "CatchClause" && s.properties.some(h => h.value && (h.value.type === "ObjectPattern" || h.value.type === "ArrayPattern")) || s.type !== "ObjectPattern" && o.length > 0 && de(t.originalText, R(s), o[0].loc),
        C = D$1 ? ";" : s.type === "TSInterfaceBody" || s.type === "TSTypeLiteral" ? b(n, ";") : ",",
        p = s.type === "RecordExpression" ? "#{" : s.exact ? "{|" : "{",
        A = s.exact ? "|}" : "}",
        T$1 = [],
        S$1 = o.map(h => {
          let W$1 = [...T$1, l(h.printed)];
          return T$1 = [C, x], (h.node.type === "TSPropertySignature" || h.node.type === "TSMethodSignature" || h.node.type === "TSConstructSignatureDeclaration" || h.node.type === "TSCallSignatureDeclaration") && d(h.node, g.PrettierIgnore) && T$1.shift(), pe(h.node, t) && T$1.push(F), W$1;
        });
      if (s.inexact || s.hasUnknownMembers) {
        let h;
        if (d(s, g.Dangling)) {
          let W$1 = d(s, g.Line);
          h = [M(e, t), W$1 || te(t.originalText, k(O(!1, ct(s), -1))) ? F : x, "..."];
        } else h = ["..."];
        S$1.push([...T$1, ...h]);
      }
      let B$2 = (j$1 = O(!1, o, -1)) == null ? void 0 : j$1.node,
        _$1 = !(s.inexact || s.hasUnknownMembers || B$2 && (B$2.type === "RestElement" || (B$2.type === "TSPropertySignature" || B$2.type === "TSCallSignatureDeclaration" || B$2.type === "TSMethodSignature" || B$2.type === "TSConstructSignatureDeclaration") && d(B$2, g.PrettierIgnore))),
        J$1;
      if (S$1.length === 0) {
        if (!d(s, g.Dangling)) return [p, A, Y(e, r)];
        J$1 = l([p, M(e, t, {
          indent: !0
        }), E, A, V(e), Y(e, r)]);
      } else J$1 = [D$1 && w(s.properties) ? gs(c) : "", p, f([t.bracketSpacing ? x : E, ...S$1]), b(_$1 && (C !== "," || ae(t)) ? C : ""), t.bracketSpacing ? x : E, A, V(e), Y(e, r)];
      return e.match(h => h.type === "ObjectPattern" && !w(h.decorators), Is) || we(s) && (e.match(void 0, (h, W$1) => W$1 === "typeAnnotation", (h, W$1) => W$1 === "typeAnnotation", Is) || e.match(void 0, (h, W$1) => h.type === "FunctionTypeParam" && W$1 === "typeAnnotation", Is)) || !y$1 && e.match(h => h.type === "ObjectPattern", h => h.type === "AssignmentExpression" || h.type === "VariableDeclarator") ? J$1 : l(J$1, {
        shouldBreak: y$1
      });
    }
    function Is(e, t) {
      return (t === "params" || t === "parameters" || t === "this" || t === "rest") && Cs(e);
    }
    function vl(e) {
      let t = [e];
      for (let r = 0; r < t.length; r++) {
        let n = t[r];
        for (let s of ["test", "consequent", "alternate"]) {
          let u = n[s];
          if (X(u)) return !0;
          u.type === "ConditionalExpression" && t.push(u);
        }
      }
      return !1;
    }
    function Ml(e, t, r) {
      let {
          node: n
        } = e,
        s = n.type === "ConditionalExpression",
        u = s ? "alternate" : "falseType",
        {
          parent: i
        } = e,
        a = s ? r("test") : [r("checkType"), " ", "extends", " ", r("extendsType")];
      return i.type === n.type && i[u] === n ? he(2, a) : a;
    }
    function Jl(e) {
      let {
        node: t
      } = e;
      if (t.type !== "ConditionalExpression") return !1;
      let r,
        n = t;
      for (let s = 0; !r; s++) {
        let u = e.getParentNode(s);
        if (u.type === "ChainExpression" && u.expression === n || L(u) && u.callee === n || q(u) && u.object === n || u.type === "TSNonNullExpression" && u.expression === n) {
          n = u;
          continue;
        }
        u.type === "NewExpression" && u.callee === n || Te(u) && u.expression === n ? (r = e.getParentNode(s + 1), n = u) : r = u;
      }
      return n === t ? !1 : r[Rl.get(r.type)] === n;
    }
    function Fa(e, t, r) {
      let {
          node: n
        } = e,
        s = n.type === "ConditionalExpression",
        u = s ? "consequent" : "trueType",
        i = s ? "alternate" : "falseType",
        a = s ? ["test"] : ["checkType", "extendsType"],
        o = n[u],
        c = n[i],
        m = [],
        D$1 = !1,
        {
          parent: y$1
        } = e,
        C = y$1.type === n.type && a.some(H$2 => y$1[H$2] === n),
        p = y$1.type === n.type && !C,
        A,
        T$1,
        S$1 = 0;
      do T$1 = A || n, A = e.getParentNode(S$1), S$1++; while (A && A.type === n.type && a.every(H$2 => A[H$2] !== T$1));
      let B$2 = A || y$1,
        _$1 = T$1;
      if (s && (X(n[a[0]]) || X(o) || X(c) || vl(_$1))) {
        D$1 = !0, p = !0;
        let H$2 = Z$1 => [b("("), f([E, Z$1]), E, b(")")],
          ue$1 = Z$1 => Z$1.type === "NullLiteral" || Z$1.type === "Literal" && Z$1.value === null || Z$1.type === "Identifier" && Z$1.name === "undefined";
        m.push(" ? ", ue$1(o) ? r(u) : H$2(r(u)), " : ", c.type === n.type || ue$1(c) ? r(i) : H$2(r(i)));
      } else {
        let H$2 = Z$1 => t.useTabs ? f(r(Z$1)) : he(2, r(Z$1)),
          ue$1 = [x, "? ", o.type === n.type ? b("", "(") : "", H$2(u), o.type === n.type ? b("", ")") : "", x, ": ", H$2(i)];
        m.push(y$1.type !== n.type || y$1[i] === n || C ? ue$1 : t.useTabs ? Mr(f(ue$1)) : he(Math.max(0, t.tabWidth - 2), ue$1));
      }
      let J$1 = [u, i, ...a].some(H$2 => d(n[H$2], ue$1 => re(ue$1) && de(t.originalText, R(ue$1), k(ue$1)))),
        j$1 = H$2 => y$1 === B$2 ? l(H$2, {
          shouldBreak: J$1
        }) : J$1 ? [H$2, Ee] : H$2,
        h = !D$1 && (q(y$1) || y$1.type === "NGPipeExpression" && y$1.left === n) && !y$1.computed,
        W$1 = Jl(e),
        Fe$2 = j$1([Ml(e, t, r), p ? m : f(m), s && h && !W$1 ? E : ""]);
      return C || W$1 ? l([f([E, Fe$2]), E]) : Fe$2;
    }
    function ql(e, t) {
      return (q(t) || t.type === "NGPipeExpression" && t.left === e) && !t.computed;
    }
    function Wl(e, t, r, n) {
      return [...e.map(u => ct(u)), ct(t), ct(r)].flat().some(u => re(u) && de(n.originalText, R(u), k(u)));
    }
    function Ul(e) {
      let {
        node: t
      } = e;
      if (t.type !== "ConditionalExpression") return !1;
      let r,
        n = t;
      for (let s = 0; !r; s++) {
        let u = e.getParentNode(s);
        if (u.type === "ChainExpression" && u.expression === n || L(u) && u.callee === n || q(u) && u.object === n || u.type === "TSNonNullExpression" && u.expression === n) {
          n = u;
          continue;
        }
        u.type === "NewExpression" && u.callee === n || Te(u) && u.expression === n ? (r = e.getParentNode(s + 1), n = u) : r = u;
      }
      return n === t ? !1 : r[Gl.get(r.type)] === n;
    }
    function Vt(e, t, r, n) {
      if (!t.experimentalTernaries) return Fa(e, t, r);
      let {
          node: s
        } = e,
        u = s.type === "ConditionalExpression",
        i = s.type === "TSConditionalType" || s.type === "ConditionalTypeAnnotation",
        a = u ? "consequent" : "trueType",
        o = u ? "alternate" : "falseType",
        c = u ? ["test"] : ["checkType", "extendsType"],
        m = s[a],
        D$1 = s[o],
        y$1 = c.map(We$1 => s[We$1]),
        {
          parent: C
        } = e,
        p = C.type === s.type,
        A = p && c.some(We$1 => C[We$1] === s),
        T$1 = p && C[o] === s,
        S$1 = m.type === s.type,
        B$2 = D$1.type === s.type,
        _$1 = B$2 || T$1,
        J$1 = t.tabWidth > 2 || t.useTabs,
        j$1,
        h,
        W$1 = 0;
      do h = j$1 || s, j$1 = e.getParentNode(W$1), W$1++; while (j$1 && j$1.type === s.type && c.every(We$1 => j$1[We$1] !== h));
      let Fe$2 = j$1 || C,
        H$2 = n && n.assignmentLayout && n.assignmentLayout !== "break-after-operator" && (C.type === "AssignmentExpression" || C.type === "VariableDeclarator" || C.type === "ClassProperty" || C.type === "PropertyDefinition" || C.type === "ClassPrivateProperty" || C.type === "ObjectProperty" || C.type === "Property"),
        ue$1 = (C.type === "ReturnStatement" || C.type === "ThrowStatement") && !(S$1 || B$2),
        Z$1 = u && Fe$2.type === "JSXExpressionContainer" && e.grandparent.type !== "JSXAttribute",
        It$2 = Ul(e),
        $t$1 = ql(s, C),
        I$1 = i && Be(e, t),
        G$2 = J$1 ? t.useTabs ? "	" : " ".repeat(t.tabWidth - 1) : "",
        ee$1 = Wl(y$1, m, D$1, t) || S$1 || B$2,
        qe$1 = !_$1 && !p && !i && (Z$1 ? m.type === "NullLiteral" || m.type === "Literal" && m.value === null : rr(m, t) && Mn(s.test, 3)),
        xt$1 = _$1 || T$1 || i && !p || p && u && Mn(s.test, 1) || qe$1,
        js$1 = [];
      !S$1 && d(m, g.Dangling) && e.call(We$1 => {
        js$1.push(M(We$1, t), F);
      }, "consequent");
      let Kt$1 = [];
      d(s.test, g.Dangling) && e.call(We$1 => {
        Kt$1.push(M(We$1, t));
      }, "test"), !B$2 && d(D$1, g.Dangling) && e.call(We$1 => {
        Kt$1.push(M(We$1, t));
      }, "alternate"), d(s, g.Dangling) && Kt$1.push(M(e, t));
      let vs$1 = Symbol("test"),
        Ma = Symbol("consequent"),
        Fr$2 = Symbol("test-and-consequent"),
        Ms$1 = l([u ? [Ls(r("test")), s.test.type === "ConditionalExpression" ? Ee : ""] : [r("checkType"), " ", "extends", " ", s.extendsType.type === "TSConditionalType" || s.extendsType.type === "ConditionalTypeAnnotation" || s.extendsType.type === "TSMappedType" ? r("extendsType") : l(Ls(r("extendsType")))], " ?"], {
          id: vs$1
        }),
        Ja = r(a),
        Cr$2 = f([S$1 || Z$1 && (X(m) || p || _$1) ? F : x, js$1, Ja]),
        qa = xt$1 ? l([Ms$1, _$1 ? Cr$2 : b(Cr$2, l(Cr$2, {
          id: Ma
        }), {
          groupId: vs$1
        })], {
          id: Fr$2
        }) : [Ms$1, Cr$2],
        kn$1 = r(o),
        Rs$1 = qe$1 ? b(kn$1, Mr(Ls(kn$1)), {
          groupId: Fr$2
        }) : kn$1,
        zt$1 = [qa, Kt$1.length > 0 ? [f([F, Kt$1]), F] : B$2 ? F : qe$1 ? b(x, " ", {
          groupId: Fr$2
        }) : x, ":", B$2 ? " " : J$1 ? xt$1 ? b(G$2, b(_$1 || qe$1 ? " " : G$2, " "), {
          groupId: Fr$2
        }) : b(G$2, " ") : " ", B$2 ? Rs$1 : l([f(Rs$1), Z$1 && !qe$1 ? E : ""]), $t$1 && !It$2 ? E : "", ee$1 ? Ee : ""];
      return H$2 && !ee$1 ? l(f([E, l(zt$1)])) : H$2 || ue$1 ? l(f(zt$1)) : It$2 || i && A ? l([f([E, zt$1]), I$1 ? E : ""]) : C === Fe$2 ? l(zt$1) : zt$1;
    }
    function Ca(e, t, r, n) {
      let {
        node: s
      } = e;
      if (kr(s)) return pa(e, t);
      let u = t.semi ? ";" : "",
        i = [];
      switch (s.type) {
        case "JsExpressionRoot":
          return r("node");
        case "JsonRoot":
          return [r("node"), F];
        case "File":
          return ia(e, t, r) ?? r("program");
        case "EmptyStatement":
          return "";
        case "ExpressionStatement":
          return ua(e, t, r);
        case "ChainExpression":
          return r("expression");
        case "ParenthesizedExpression":
          return !d(s.expression) && (se(s.expression) || U(s.expression)) ? ["(", r("expression"), ")"] : l(["(", f([E, r("expression")]), E, ")"]);
        case "AssignmentExpression":
          return wi(e, t, r);
        case "VariableDeclarator":
          return Oi(e, t, r);
        case "BinaryExpression":
        case "LogicalExpression":
          return Yr(e, t, r);
        case "AssignmentPattern":
          return [r("left"), " = ", r("right")];
        case "OptionalMemberExpression":
        case "MemberExpression":
          return bi(e, t, r);
        case "MetaProperty":
          return [r("meta"), ".", r("property")];
        case "BindExpression":
          return s.object && i.push(r("object")), i.push(l(f([E, Hr(e, t, r)]))), i;
        case "Identifier":
          return [s.name, V(e), pn(e), Y(e, r)];
        case "V8IntrinsicIdentifier":
          return ["%", s.name];
        case "SpreadElement":
        case "SpreadElementPattern":
        case "SpreadPropertyPattern":
        case "RestElement":
          return cn(e, r);
        case "FunctionDeclaration":
        case "FunctionExpression":
          return Dn(e, r, t, n);
        case "ArrowFunctionExpression":
          return $i(e, t, r, n);
        case "YieldExpression":
          return i.push("yield"), s.delegate && i.push("*"), s.argument && i.push(" ", r("argument")), i;
        case "AwaitExpression":
          if (i.push("await"), s.argument) {
            i.push(" ", r("argument"));
            let {
              parent: a
            } = e;
            if (L(a) && a.callee === s || q(a) && a.object === s) {
              i = [f([E, ...i]), E];
              let o = e.findAncestor(c => c.type === "AwaitExpression" || c.type === "BlockStatement");
              if ((o == null ? void 0 : o.type) !== "AwaitExpression" || !ie(o.argument, c => c === s)) return l(i);
            }
          }
          return i;
        case "ExportDefaultDeclaration":
        case "ExportNamedDeclaration":
        case "ExportAllDeclaration":
          return gn(e, t, r);
        case "ImportDeclaration":
          return ca(e, t, r);
        case "ImportSpecifier":
        case "ExportSpecifier":
        case "ImportNamespaceSpecifier":
        case "ExportNamespaceSpecifier":
        case "ImportDefaultSpecifier":
        case "ExportDefaultSpecifier":
          return Ea(e, t, r);
        case "ImportAttribute":
          return yn(e, t, r);
        case "Import":
          return "import";
        case "Program":
        case "BlockStatement":
        case "StaticBlock":
          return Fn(e, t, r);
        case "ClassBody":
          return ra(e, t, r);
        case "ThrowStatement":
          return Yi(e, t, r);
        case "ReturnStatement":
          return Xi(e, t, r);
        case "NewExpression":
        case "ImportExpression":
        case "OptionalCallExpression":
        case "CallExpression":
          return Vr(e, t, r);
        case "ObjectExpression":
        case "ObjectPattern":
        case "RecordExpression":
          return dt(e, t, r);
        case "Property":
          return gt(s) ? mr(e, t, r) : yn(e, t, r);
        case "ObjectProperty":
          return yn(e, t, r);
        case "ObjectMethod":
          return mr(e, t, r);
        case "Decorator":
          return ["@", r("expression")];
        case "ArrayExpression":
        case "ArrayPattern":
        case "TupleExpression":
          return Yt(e, t, r);
        case "SequenceExpression":
          {
            let {
              parent: a
            } = e;
            if (a.type === "ExpressionStatement" || a.type === "ForStatement") {
              let o = [];
              return e.each(({
                isFirst: c
              }) => {
                c ? o.push(r()) : o.push(",", f([x, r()]));
              }, "expressions"), l(o);
            }
            return l(P([",", x], e.map(r, "expressions")));
          }
        case "ThisExpression":
          return "this";
        case "Super":
          return "super";
        case "Directive":
          return [r("value"), u];
        case "UnaryExpression":
          return i.push(s.operator), /[a-z]$/u.test(s.operator) && i.push(" "), d(s.argument) ? i.push(l(["(", f([E, r("argument")]), E, ")"])) : i.push(r("argument")), i;
        case "UpdateExpression":
          return [s.prefix ? s.operator : "", r("argument"), s.prefix ? "" : s.operator];
        case "ConditionalExpression":
          return Vt(e, t, r, n);
        case "VariableDeclaration":
          {
            let a = e.map(r, "declarations"),
              o = e.parent,
              c = o.type === "ForStatement" || o.type === "ForInStatement" || o.type === "ForOfStatement",
              m = s.declarations.some(y$1 => y$1.init),
              D$1;
            return a.length === 1 && !d(s.declarations[0]) ? D$1 = a[0] : a.length > 0 && (D$1 = f(a[0])), i = [$(e), s.kind, D$1 ? [" ", D$1] : "", f(a.slice(1).map(y$1 => [",", m && !c ? F : x, y$1]))], c && o.body !== s || i.push(u), l(i);
          }
        case "WithStatement":
          return l(["with (", r("object"), ")", ft(s.body, r("body"))]);
        case "IfStatement":
          {
            let a = ft(s.consequent, r("consequent")),
              o = l(["if (", l([f([E, r("test")]), E]), ")", a]);
            if (i.push(o), s.alternate) {
              let c = d(s.consequent, g.Trailing | g.Line) || wr(s),
                m = s.consequent.type === "BlockStatement" && !c;
              i.push(m ? " " : F), d(s, g.Dangling) && i.push(M(e, t), c ? F : " "), i.push("else", l(ft(s.alternate, r("alternate"), s.alternate.type === "IfStatement")));
            }
            return i;
          }
        case "ForStatement":
          {
            let a = ft(s.body, r("body")),
              o = M(e, t),
              c = o ? [o, E] : "";
            return !s.init && !s.test && !s.update ? [c, l(["for (;;)", a])] : [c, l(["for (", l([f([E, r("init"), ";", x, r("test"), ";", x, r("update")]), E]), ")", a])];
          }
        case "WhileStatement":
          return l(["while (", l([f([E, r("test")]), E]), ")", ft(s.body, r("body"))]);
        case "ForInStatement":
          return l(["for (", r("left"), " in ", r("right"), ")", ft(s.body, r("body"))]);
        case "ForOfStatement":
          return l(["for", s.await ? " await" : "", " (", r("left"), " of ", r("right"), ")", ft(s.body, r("body"))]);
        case "DoWhileStatement":
          return i = [l(["do", ft(s.body, r("body"))])], s.body.type === "BlockStatement" ? i.push(" ") : i.push(F), i.push("while (", l([f([E, r("test")]), E]), ")", u), i;
        case "DoExpression":
          return [s.async ? "async " : "", "do ", r("body")];
        case "BreakStatement":
        case "ContinueStatement":
          return i.push(s.type === "BreakStatement" ? "break" : "continue"), s.label && i.push(" ", r("label")), i.push(u), i;
        case "LabeledStatement":
          return s.body.type === "EmptyStatement" ? [r("label"), ":;"] : [r("label"), ": ", r("body")];
        case "TryStatement":
          return ["try ", r("block"), s.handler ? [" ", r("handler")] : "", s.finalizer ? [" finally ", r("finalizer")] : ""];
        case "CatchClause":
          if (s.param) {
            let a = d(s.param, c => !re(c) || c.leading && te(t.originalText, k(c)) || c.trailing && te(t.originalText, R(c), {
                backwards: !0
              })),
              o = r("param");
            return ["catch ", a ? ["(", f([E, o]), E, ") "] : ["(", o, ") "], r("body")];
          }
          return ["catch ", r("body")];
        case "SwitchStatement":
          return [l(["switch (", f([E, r("discriminant")]), E, ")"]), " {", s.cases.length > 0 ? f([F, P(F, e.map(({
            node: a,
            isLast: o
          }) => [r(), !o && pe(a, t) ? F : ""], "cases"))]) : "", F, "}"];
        case "SwitchCase":
          {
            s.test ? i.push("case ", r("test"), ":") : i.push("default:"), d(s, g.Dangling) && i.push(" ", M(e, t));
            let a = s.consequent.filter(o => o.type !== "EmptyStatement");
            if (a.length > 0) {
              let o = yr(e, t, r, "consequent");
              i.push(a.length === 1 && a[0].type === "BlockStatement" ? [" ", o] : f([F, o]));
            }
            return i;
          }
        case "DebuggerStatement":
          return ["debugger", u];
        case "ClassDeclaration":
        case "ClassExpression":
          return Tn(e, t, r);
        case "ClassMethod":
        case "ClassPrivateMethod":
        case "MethodDefinition":
          return dn(e, t, r);
        case "ClassProperty":
        case "PropertyDefinition":
        case "ClassPrivateProperty":
        case "ClassAccessorProperty":
        case "AccessorProperty":
          return xn(e, t, r);
        case "TemplateElement":
          return Ie(s.value.raw);
        case "TemplateLiteral":
          return qr(e, r, t);
        case "TaggedTemplateExpression":
          return Uu(e, r);
        case "PrivateIdentifier":
          return ["#", s.name];
        case "PrivateName":
          return ["#", r("id")];
        case "TopicReference":
          return "%";
        case "ArgumentPlaceholder":
          return "?";
        case "ModuleExpression":
          return ["module ", r("body")];
        case "InterpreterDirective":
        default:
          throw new Me(s, "ESTree");
      }
    }
    function Sn(e, t, r) {
      let {
          parent: n,
          node: s,
          key: u
        } = e,
        i = [r("expression")];
      switch (s.type) {
        case "AsConstExpression":
          i.push(" as const");
          break;
        case "AsExpression":
        case "TSAsExpression":
          i.push(" as ", r("typeAnnotation"));
          break;
        case "SatisfiesExpression":
        case "TSSatisfiesExpression":
          i.push(" satisfies ", r("typeAnnotation"));
          break;
      }
      return u === "callee" && L(n) || u === "object" && q(n) ? l([f([E, ...i]), E]) : i;
    }
    function Aa(e, t, r) {
      let {
          node: n
        } = e,
        s = [$(e), "component"];
      n.id && s.push(" ", r("id")), s.push(r("typeParameters"));
      let u = Nl(e, r, t);
      return n.rendersType ? s.push(l([u, " ", r("rendersType")])) : s.push(l([u])), n.body && s.push(" ", r("body")), t.semi && n.type === "DeclareComponent" && s.push(";"), s;
    }
    function Nl(e, t, r) {
      let {
          node: n
        } = e,
        s = n.params;
      if (n.rest && (s = [...s, n.rest]), s.length === 0) return ["(", M(e, r, {
        filter: i => ge(r.originalText, k(i)) === ")"
      }), ")"];
      let u = [];
      return Yl(e, (i, a) => {
        let o = a === s.length - 1;
        o && n.rest && u.push("..."), u.push(t()), !o && (u.push(","), pe(s[a], r) ? u.push(F, F) : u.push(x));
      }), ["(", f([E, ...u]), b(ae(r, "all") && !Xl(n, s) ? "," : ""), E, ")"];
    }
    function Xl(e, t) {
      var r;
      return e.rest || ((r = O(!1, t, -1)) == null ? void 0 : r.type) === "RestElement";
    }
    function Yl(e, t) {
      let {
          node: r
        } = e,
        n = 0,
        s = u => t(u, n++);
      e.each(s, "params"), r.rest && e.call(s, "rest");
    }
    function Ta(e, t, r) {
      let {
        node: n
      } = e;
      return n.shorthand ? r("local") : [r("name"), " as ", r("local")];
    }
    function da(e, t, r) {
      let {
          node: n
        } = e,
        s = [];
      return n.name && s.push(r("name"), n.optional ? "?: " : ": "), s.push(r("typeAnnotation")), s;
    }
    function xa(e, t, r) {
      return dt(e, r, t);
    }
    function Bn(e, t) {
      let {
          node: r
        } = e,
        n = t("id");
      r.computed && (n = ["[", n, "]"]);
      let s = "";
      return r.initializer && (s = t("initializer")), r.init && (s = t("init")), s ? [n, " = ", s] : n;
    }
    function ha(e, t, r) {
      let {
          node: n
        } = e,
        s;
      if (n.type === "EnumSymbolBody" || n.explicitType) switch (n.type) {
        case "EnumBooleanBody":
          s = "boolean";
          break;
        case "EnumNumberBody":
          s = "number";
          break;
        case "EnumBigIntBody":
          s = "bigint";
          break;
        case "EnumStringBody":
          s = "string";
          break;
        case "EnumSymbolBody":
          s = "symbol";
          break;
      }
      return [s ? `of ${s} ` : "", xa(e, t, r)];
    }
    function bn(e, t, r) {
      let {
        node: n
      } = e;
      return [$(e), n.const ? "const " : "", "enum ", t("id"), " ", n.type === "TSEnumDeclaration" ? xa(e, t, r) : t("body")];
    }
    function Sa(e, t, r) {
      let {
          node: n
        } = e,
        s = ["hook"];
      n.id && s.push(" ", r("id"));
      let u = Je(e, r, t, !1, !0),
        i = Ht(e, r),
        a = ot(n, i);
      return s.push(l([a ? l(u) : u, i]), n.body ? " " : "", r("body")), s;
    }
    function Ba(e, t, r) {
      let {
          node: n
        } = e,
        s = [$(e), "hook"];
      return n.id && s.push(" ", r("id")), t.semi && s.push(";"), s;
    }
    function ga(e) {
      var r;
      let {
        node: t
      } = e;
      return t.type === "HookTypeAnnotation" && ((r = e.getParentNode(2)) == null ? void 0 : r.type) === "DeclareHook";
    }
    function ba(e, t, r) {
      let {
          node: n
        } = e,
        s = [];
      s.push(ga(e) ? "" : "hook ");
      let u = Je(e, r, t, !1, !0),
        i = [];
      return i.push(ga(e) ? ": " : " => ", r("returnType")), ot(n, i) && (u = l(u)), s.push(u, i), l(s);
    }
    function Pn(e, t, r) {
      let {
          node: n
        } = e,
        s = [$(e), "interface"],
        u = [],
        i = [];
      n.type !== "InterfaceTypeAnnotation" && u.push(" ", r("id"), r("typeParameters"));
      let a = n.typeParameters && !d(n.typeParameters, g.Trailing | g.Line);
      return w(n.extends) && i.push(a ? b(" ", x, {
        groupId: Dr(n.typeParameters)
      }) : x, "extends ", (n.extends.length === 1 ? mu : f)(P([",", x], e.map(r, "extends")))), d(n.id, g.Trailing) || w(n.extends) ? a ? s.push(l([...u, f(i)])) : s.push(l(f([...u, ...i]))) : s.push(...u, ...i), s.push(" ", r("body")), l(s);
    }
    function Pa(e, t, r) {
      let {
        node: n
      } = e;
      if (Sr(n)) return n.type.slice(0, -14).toLowerCase();
      let s = t.semi ? ";" : "";
      switch (n.type) {
        case "ComponentDeclaration":
        case "DeclareComponent":
        case "ComponentTypeAnnotation":
          return Aa(e, t, r);
        case "ComponentParameter":
          return Ta(e, t, r);
        case "ComponentTypeParameter":
          return da(e, t, r);
        case "HookDeclaration":
          return Sa(e, t, r);
        case "DeclareHook":
          return Ba(e, t, r);
        case "HookTypeAnnotation":
          return ba(e, t, r);
        case "DeclareClass":
          return Tn(e, t, r);
        case "DeclareFunction":
          return [$(e), "function ", r("id"), r("predicate"), s];
        case "DeclareModule":
          return ["declare module ", r("id"), " ", r("body")];
        case "DeclareModuleExports":
          return ["declare module.exports", Y(e, r), s];
        case "DeclareNamespace":
          return ["declare namespace ", r("id"), " ", r("body")];
        case "DeclareVariable":
          return [$(e), n.kind ?? "var", " ", r("id"), s];
        case "DeclareExportDeclaration":
        case "DeclareExportAllDeclaration":
          return gn(e, t, r);
        case "DeclareOpaqueType":
        case "OpaqueType":
          return Mi(e, t, r);
        case "DeclareTypeAlias":
        case "TypeAlias":
          return Kr(e, t, r);
        case "IntersectionTypeAnnotation":
          return zr(e, t, r);
        case "UnionTypeAnnotation":
          return Qr(e, t, r);
        case "ConditionalTypeAnnotation":
          return Vt(e, t, r);
        case "InferTypeAnnotation":
          return tn(e, t, r);
        case "FunctionTypeAnnotation":
          return Zr(e, t, r);
        case "TupleTypeAnnotation":
          return Yt(e, t, r);
        case "TupleTypeLabeledElement":
          return nn(e, t, r);
        case "TupleTypeSpreadElement":
          return rn(e, t, r);
        case "GenericTypeAnnotation":
          return [r("id"), Pt(e, t, r, "typeParameters")];
        case "IndexedAccessType":
        case "OptionalIndexedAccessType":
          return en(e, t, r);
        case "TypeAnnotation":
          return sn(e, t, r);
        case "TypeParameter":
          return An(e, t, r);
        case "TypeofTypeAnnotation":
          return an(e, r);
        case "ExistsTypeAnnotation":
          return "*";
        case "ArrayTypeAnnotation":
          return un(r);
        case "DeclareEnum":
        case "EnumDeclaration":
          return bn(e, r, t);
        case "EnumBooleanBody":
        case "EnumNumberBody":
        case "EnumBigIntBody":
        case "EnumStringBody":
        case "EnumSymbolBody":
          return ha(e, r, t);
        case "EnumBooleanMember":
        case "EnumNumberMember":
        case "EnumBigIntMember":
        case "EnumStringMember":
        case "EnumDefaultedMember":
          return Bn(e, r);
        case "FunctionTypeParam":
          {
            let u = n.name ? r("name") : e.parent.this === n ? "this" : "";
            return [u, V(e), u ? ": " : "", r("typeAnnotation")];
          }
        case "DeclareInterface":
        case "InterfaceDeclaration":
        case "InterfaceTypeAnnotation":
          return Pn(e, t, r);
        case "ClassImplements":
        case "InterfaceExtends":
          return [r("id"), r("typeParameters")];
        case "NullableTypeAnnotation":
          return ["?", r("typeAnnotation")];
        case "Variance":
          {
            let {
              kind: u
            } = n;
            return ln.ok(u === "plus" || u === "minus"), u === "plus" ? "+" : "-";
          }
        case "KeyofTypeAnnotation":
          return ["keyof ", r("argument")];
        case "ObjectTypeCallProperty":
          return [n.static ? "static " : "", r("value")];
        case "ObjectTypeMappedTypeProperty":
          return zi(e, t, r);
        case "ObjectTypeIndexer":
          return [n.static ? "static " : "", n.variance ? r("variance") : "", "[", r("id"), n.id ? ": " : "", r("key"), "]: ", r("value")];
        case "ObjectTypeProperty":
          {
            let u = "";
            return n.proto ? u = "proto " : n.static && (u = "static "), [u, n.kind !== "init" ? n.kind + " " : "", n.variance ? r("variance") : "", Et(e, t, r), V(e), gt(n) ? "" : ": ", r("value")];
          }
        case "ObjectTypeAnnotation":
          return dt(e, t, r);
        case "ObjectTypeInternalSlot":
          return [n.static ? "static " : "", "[[", r("id"), "]]", V(e), n.method ? "" : ": ", r("value")];
        case "ObjectTypeSpreadProperty":
          return cn(e, r);
        case "QualifiedTypeofIdentifier":
        case "QualifiedTypeIdentifier":
          return [r("qualification"), ".", r("id")];
        case "NullLiteralTypeAnnotation":
          return "null";
        case "BooleanLiteralTypeAnnotation":
          return String(n.value);
        case "StringLiteralTypeAnnotation":
          return Ie(tt(fe(n), t));
        case "NumberLiteralTypeAnnotation":
          return Ze(n.raw ?? n.extra.raw);
        case "BigIntLiteralTypeAnnotation":
          return hn(n.raw ?? n.extra.raw);
        case "TypeCastExpression":
          return ["(", r("expression"), Y(e, r), ")"];
        case "TypePredicate":
          return on(e, r);
        case "TypeOperator":
          return [n.operator, " ", r("typeAnnotation")];
        case "TypeParameterDeclaration":
        case "TypeParameterInstantiation":
          return Pt(e, t, r, "params");
        case "InferredPredicate":
        case "DeclaredPredicate":
          return [e.key === "predicate" && e.parent.type !== "DeclareFunction" && !e.parent.returnType ? ": " : " ", "%checks", ...(n.type === "DeclaredPredicate" ? ["(", r("value"), ")"] : [])];
        case "AsExpression":
        case "AsConstExpression":
        case "SatisfiesExpression":
          return Sn(e, t, r);
      }
    }
    function ka(e, t, r) {
      var i;
      let {
        node: n
      } = e;
      if (!n.type.startsWith("TS")) return;
      if (Br(n)) return n.type.slice(2, -7).toLowerCase();
      let s = t.semi ? ";" : "",
        u = [];
      switch (n.type) {
        case "TSThisType":
          return "this";
        case "TSTypeAssertion":
          {
            let a = !(U(n.expression) || se(n.expression)),
              o = l(["<", f([E, r("typeAnnotation")]), E, ">"]),
              c = [b("("), f([E, r("expression")]), E, b(")")];
            return a ? ze([[o, r("expression")], [o, l(c, {
              shouldBreak: !0
            })], [o, r("expression")]]) : l([o, r("expression")]);
          }
        case "TSDeclareFunction":
          return Dn(e, r, t);
        case "TSExportAssignment":
          return ["export = ", r("expression"), s];
        case "TSModuleBlock":
          return Fn(e, t, r);
        case "TSInterfaceBody":
        case "TSTypeLiteral":
          return dt(e, t, r);
        case "TSTypeAliasDeclaration":
          return Kr(e, t, r);
        case "TSQualifiedName":
          return [r("left"), ".", r("right")];
        case "TSAbstractMethodDefinition":
        case "TSDeclareMethod":
          return dn(e, t, r);
        case "TSAbstractAccessorProperty":
        case "TSAbstractPropertyDefinition":
          return xn(e, t, r);
        case "TSInterfaceHeritage":
        case "TSClassImplements":
        case "TSExpressionWithTypeArguments":
        case "TSInstantiationExpression":
          return [r("expression"), r(n.typeArguments ? "typeArguments" : "typeParameters")];
        case "TSTemplateLiteralType":
          return qr(e, r, t);
        case "TSNamedTupleMember":
          return nn(e, t, r);
        case "TSRestType":
          return rn(e, t, r);
        case "TSOptionalType":
          return [r("typeAnnotation"), "?"];
        case "TSInterfaceDeclaration":
          return Pn(e, t, r);
        case "TSTypeParameterDeclaration":
        case "TSTypeParameterInstantiation":
          return Pt(e, t, r, "params");
        case "TSTypeParameter":
          return An(e, t, r);
        case "TSAsExpression":
        case "TSSatisfiesExpression":
          return Sn(e, t, r);
        case "TSArrayType":
          return un(r);
        case "TSPropertySignature":
          return [n.readonly ? "readonly " : "", Et(e, t, r), V(e), Y(e, r)];
        case "TSParameterProperty":
          return [Xt(n), n.static ? "static " : "", n.override ? "override " : "", n.readonly ? "readonly " : "", r("parameter")];
        case "TSTypeQuery":
          return an(e, r);
        case "TSIndexSignature":
          {
            let a = n.parameters.length > 1 ? b(ae(t) ? "," : "") : "",
              o = l([f([E, P([", ", E], e.map(r, "parameters"))]), a, E]),
              c = e.parent.type === "ClassBody" && e.key === "body";
            return [c && n.static ? "static " : "", n.readonly ? "readonly " : "", "[", n.parameters ? o : "", "]", Y(e, r), c ? s : ""];
          }
        case "TSTypePredicate":
          return on(e, r);
        case "TSNonNullExpression":
          return [r("expression"), "!"];
        case "TSImportType":
          return [n.isTypeOf ? "typeof " : "", "import(", r("argument"), ")", n.qualifier ? [".", r("qualifier")] : "", Pt(e, t, r, n.typeArguments ? "typeArguments" : "typeParameters")];
        case "TSLiteralType":
          return r("literal");
        case "TSIndexedAccessType":
          return en(e, t, r);
        case "TSTypeOperator":
          return [n.operator, " ", r("typeAnnotation")];
        case "TSMappedType":
          return Qi(e, t, r);
        case "TSMethodSignature":
          {
            let a = n.kind && n.kind !== "method" ? `${n.kind} ` : "";
            u.push(Xt(n), a, n.computed ? "[" : "", r("key"), n.computed ? "]" : "", V(e));
            let o = Je(e, r, t, !1, !0),
              c = n.returnType ? "returnType" : "typeAnnotation",
              m = n[c],
              D$1 = m ? Y(e, r, c) : "",
              y$1 = ot(n, D$1);
            return u.push(y$1 ? l(o) : o), m && u.push(l(D$1)), l(u);
          }
        case "TSNamespaceExportDeclaration":
          return ["export as namespace ", r("id"), t.semi ? ";" : ""];
        case "TSEnumDeclaration":
          return bn(e, r, t);
        case "TSEnumMember":
          return Bn(e, r);
        case "TSImportEqualsDeclaration":
          return [n.isExport ? "export " : "", "import ", ks(n, !1), r("id"), " = ", r("moduleReference"), t.semi ? ";" : ""];
        case "TSExternalModuleReference":
          return ["require(", r("expression"), ")"];
        case "TSModuleDeclaration":
          {
            let {
                parent: a
              } = e,
              o = a.type === "TSModuleDeclaration",
              c = ((i = n.body) == null ? void 0 : i.type) === "TSModuleDeclaration";
            if (o) u.push(".");else if (u.push($(e)), !(n.kind === "global" || n.global)) {
              let D$1 = n.kind ?? (Q(n.id) || fr(t, R(n), R(n.id)).trim().endsWith("module") ? "module" : "namespace");
              u.push(D$1, " ");
            }
            return u.push(r("id")), c ? u.push(r("body")) : n.body ? u.push(" ", l(r("body"))) : u.push(s), u;
          }
        case "TSConditionalType":
          return Vt(e, t, r);
        case "TSInferType":
          return tn(e, t, r);
        case "TSIntersectionType":
          return zr(e, t, r);
        case "TSUnionType":
          return Qr(e, t, r);
        case "TSFunctionType":
        case "TSCallSignatureDeclaration":
        case "TSConstructorType":
        case "TSConstructSignatureDeclaration":
          return Zr(e, t, r);
        case "TSTupleType":
          return Yt(e, t, r);
        case "TSTypeReference":
          return [r("typeName"), Pt(e, t, r, n.typeArguments ? "typeArguments" : "typeParameters")];
        case "TSTypeAnnotation":
          return sn(e, t, r);
        case "TSEmptyBodyFunctionExpression":
          return fn(e, t, r);
        case "TSJSDocAllType":
          return "*";
        case "TSJSDocUnknownType":
          return "?";
        case "TSJSDocNullableType":
          return Ts(e, r, "?");
        case "TSJSDocNonNullableType":
          return Ts(e, r, "!");
        case "TSParenthesizedType":
        default:
          throw new Me(n, "TypeScript");
      }
    }
    function Hl(e, t, r, n) {
      if (Xr(e)) return ci(e, t);
      for (let s of [Ti, Ei, Pa, ka, Ca]) {
        let u = s(e, t, r, n);
        if (u !== void 0) return u;
      }
    }
    function $l(e, t, r, n) {
      var D$1;
      e.isRoot && ((D$1 = t.__onHtmlBindingRoot) == null || D$1.call(t, e.node, t));
      let s = Hl(e, t, r, n);
      if (!s) return "";
      let {
        node: u
      } = e;
      if (Vl(u)) return s;
      let i = w(u.decorators),
        a = xi(e, t, r),
        o = u.type === "ClassExpression";
      if (i && !o) return ir(s, y$1 => l([a, y$1]));
      let c = Be(e, t),
        m = na(e, t);
      return !a && !c && !m ? s : ir(s, y$1 => [m ? ";" : "", c ? "(" : "", c && o && i ? [f([x, a, y$1]), x] : [a, y$1], c ? ")" : ""]);
    }
    function Zl(e, t, r) {
      let {
        node: n
      } = e;
      switch (n.type) {
        case "JsonRoot":
          return [r("node"), F];
        case "ArrayExpression":
          {
            if (n.elements.length === 0) return "[]";
            let s = e.map(() => e.node === null ? "null" : r(), "elements");
            return ["[", f([F, P([",", F], s)]), F, "]"];
          }
        case "ObjectExpression":
          return n.properties.length === 0 ? "{}" : ["{", f([F, P([",", F], e.map(r, "properties"))]), F, "}"];
        case "ObjectProperty":
          return [r("key"), ": ", r("value")];
        case "UnaryExpression":
          return [n.operator === "+" ? "" : n.operator, r("argument")];
        case "NullLiteral":
          return "null";
        case "BooleanLiteral":
          return n.value ? "true" : "false";
        case "StringLiteral":
          return JSON.stringify(n.value);
        case "NumericLiteral":
          return _a(e) ? JSON.stringify(String(n.value)) : JSON.stringify(n.value);
        case "Identifier":
          return _a(e) ? JSON.stringify(n.name) : n.name;
        case "TemplateLiteral":
          return r(["quasis", 0]);
        case "TemplateElement":
          return JSON.stringify(n.value.cooked);
        default:
          throw new Me(n, "JSON");
      }
    }
    function _a(e) {
      return e.key === "key" && e.parent.type === "ObjectProperty";
    }
    function ja(e, t) {
      let {
        type: r
      } = e;
      if (r === "ObjectProperty") {
        let {
          key: n
        } = e;
        n.type === "Identifier" ? t.key = {
          type: "StringLiteral",
          value: n.name
        } : n.type === "NumericLiteral" && (t.key = {
          type: "StringLiteral",
          value: String(n.value)
        });
        return;
      }
      if (r === "UnaryExpression" && e.operator === "+") return t.argument;
      if (r === "ArrayExpression") {
        for (let [n, s] of e.elements.entries()) s === null && t.elements.splice(n, 0, {
          type: "NullLiteral"
        });
        return;
      }
      if (r === "TemplateLiteral") return {
        type: "StringLiteral",
        value: e.quasis[0].value.cooked
      };
    }
    _export("o", gu$1);
    return {
      setters: [function (_chunkLegacy001Js) {
        __export = _chunkLegacy001Js.r;
      }, function (_vueRuntimeEsmBundlerLegacy003Js) {
        toDisplayString = _vueRuntimeEsmBundlerLegacy003Js.Cn;
        createElementBlock = _vueRuntimeEsmBundlerLegacy003Js.D;
        createCommentVNode = _vueRuntimeEsmBundlerLegacy003Js.E;
        unref = _vueRuntimeEsmBundlerLegacy003Js.Gt;
        defineComponent = _vueRuntimeEsmBundlerLegacy003Js.P;
        createBlock = _vueRuntimeEsmBundlerLegacy003Js.T;
        renderSlot = _vueRuntimeEsmBundlerLegacy003Js.at;
        openBlock = _vueRuntimeEsmBundlerLegacy003Js.et;
        normalizeClass = _vueRuntimeEsmBundlerLegacy003Js.vn;
        createBaseVNode = _vueRuntimeEsmBundlerLegacy003Js.w;
      }, function (_srcLegacy007Js) {
        N8nIcon_default = _srcLegacy007Js.Wn;
      }, function (_pluginVue_exportHelperLegacy00fJs) {
        __plugin_vue_export_helper_default = _pluginVue_exportHelperLegacy00fJs.t;
      }],
      execute: function () {
        __vite_style__ = document.createElement('style');
        __vite_style__.textContent = "\n._empty_ylpfe_2 {\n\tdisplay: flex;\n\tflex-flow: column;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: var(--spacing--2xs);\n\n\tline-height: 2;\n\tcolor: var(--color--text);\n}\n._title_ylpfe_13 {\n\tfont-size: var(--font-size--md);\n\tfont-weight: var(--font-weight--bold);\n\tline-height: 145%;\n\tcolor: var(--color--text);\n\tmargin: 0;\n}\n._description_ylpfe_21 {\n\tfont-size: var(--font-size--sm);\n\tline-height: var(--line-height--xl);\n\tmargin: 0;\n\ttext-align: center;\n\tmax-width: 240px;\n._wide_ylpfe_28 & {\n\t\tmax-width: none;\n}\n}\n/*$vite$:1*/";
        document.head.appendChild(__vite_style__);
        //#region ../../../node_modules/.pnpm/prettier@3.3.3/node_modules/prettier/standalone.mjs
        yu$1 = Object.create;
        He$1 = Object.defineProperty;
        Au$1 = Object.getOwnPropertyDescriptor;
        Bu$1 = Object.getOwnPropertyNames;
        wu$1 = Object.getPrototypeOf, xu$1 = Object.prototype.hasOwnProperty;
        sr$1 = e => {
          throw TypeError(e);
        };
        _u$1 = (e, t) => () => (e && (t = e(e = 0)), t);
        At$2 = (e, t) => () => (t || e((t = {
          exports: {}
        }).exports, t), t.exports), We = (e, t) => {
          for (var r in t) He$1(e, r, {
            get: t[r],
            enumerable: !0
          });
        }, ar$1 = (e, t, r, n) => {
          if (t && typeof t == "object" || typeof t == "function") for (let o of Bu$1(t)) !xu$1.call(e, o) && o !== r && He$1(e, o, {
            get: () => t[o],
            enumerable: !(n = Au$1(t, o)) || n.enumerable
          });
          return e;
        };
        Me$2 = (e, t, r) => (r = e != null ? yu$1(wu$1(e)) : {}, ar$1(t || !e || !e.__esModule ? He$1(r, "default", {
          value: e,
          enumerable: !0
        }) : r, e)), vu$1 = e => ar$1(He$1({}, "__esModule", {
          value: !0
        }), e);
        bu$1 = (e, t, r) => t.has(e) || sr$1("Cannot " + r);
        Dr$2 = (e, t, r) => t.has(e) ? sr$1("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, r);
        pe$1 = (e, t, r) => (bu$1(e, t, "access private method"), r);
        it$1 = At$2((ia$1, sn$1) => {
          var on$1 = new Proxy(String, {
            get: () => on$1
          });
          sn$1.exports = on$1;
        });
        Tn$1 = {};
        We(Tn$1, {
          default: () => _o$1,
          shouldHighlight: () => xo$1
        });
        kn = _u$1(() => {
          xo$1 = () => !1, _o$1 = String;
        });
        Pn$1 = At$2((bD, Xt$1) => {
          var g$1 = String,
            Ln$2 = function () {
              return {
                isColorSupported: !1,
                reset: g$1,
                bold: g$1,
                dim: g$1,
                italic: g$1,
                underline: g$1,
                inverse: g$1,
                hidden: g$1,
                strikethrough: g$1,
                black: g$1,
                red: g$1,
                green: g$1,
                yellow: g$1,
                blue: g$1,
                magenta: g$1,
                cyan: g$1,
                white: g$1,
                gray: g$1,
                bgBlack: g$1,
                bgRed: g$1,
                bgGreen: g$1,
                bgYellow: g$1,
                bgBlue: g$1,
                bgMagenta: g$1,
                bgCyan: g$1,
                bgWhite: g$1
              };
            };
          Xt$1.exports = Ln$2();
          Xt$1.exports.createColors = Ln$2;
        });
        $n$1 = At$2(Ct$2 => {
          Object.defineProperty(Ct$2, "__esModule", {
            value: !0
          });
          Ct$2.codeFrameColumns = Mn$1;
          Ct$2.default = To$1;
          var In$1 = (kn(), vu$1(Tn$1)),
            Hn$1 = vo$1(Pn$1(), !0);
          function Wn$1(e) {
            if (typeof WeakMap != "function") return null;
            var t = /* @__PURE__ */new WeakMap(),
              r = /* @__PURE__ */new WeakMap();
            return (Wn$1 = function (n) {
              return n ? r : t;
            })(e);
          }
          function vo$1(e, t) {
            if (!t && e && e.__esModule) return e;
            if (e === null || typeof e != "object" && typeof e != "function") return {
              default: e
            };
            var r = Wn$1(t);
            if (r && r.has(e)) return r.get(e);
            var n = {
                __proto__: null
              },
              o = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var u in e) if (u !== "default" && {}.hasOwnProperty.call(e, u)) {
              var i = o ? Object.getOwnPropertyDescriptor(e, u) : null;
              i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
            }
            return n.default = e, r && r.set(e, n), n;
          }
          var bo$1 = Hn$1.default,
            Rn$1 = (e, t) => r => e(t(r)),
            Zt$1;
          function Oo$1(e) {
            if (e) return Zt$1 ??= (0, Hn$1.createColors)(!0), Zt$1;
            return bo$1;
          }
          var Yn$1 = !1;
          function So$1(e) {
            return {
              gutter: e.gray,
              marker: Rn$1(e.red, e.bold),
              message: Rn$1(e.red, e.bold)
            };
          }
          var jn$1 = /\r\n|[\n\r\u2028\u2029]/;
          function No$1(e, t, r) {
            let n = Object.assign({
                column: 0,
                line: -1
              }, e.start),
              o = Object.assign({}, n, e.end),
              {
                linesAbove: u = 2,
                linesBelow: i = 3
              } = r || {},
              s = n.line,
              a = n.column,
              D$1 = o.line,
              l$1 = o.column,
              d$1 = Math.max(s - (u + 1), 0),
              f$1 = Math.min(t.length, D$1 + i);
            s === -1 && (d$1 = 0), D$1 === -1 && (f$1 = t.length);
            let p = D$1 - s,
              c = {};
            if (p) for (let F$1 = 0; F$1 <= p; F$1++) {
              let m = F$1 + s;
              if (!a) c[m] = !0;else if (F$1 === 0) c[m] = [a, t[m - 1].length - a + 1];else if (F$1 === p) c[m] = [0, l$1];else c[m] = [0, t[m - F$1].length];
            } else a === l$1 ? a ? c[s] = [a, 0] : c[s] = !0 : c[s] = [a, l$1 - a];
            return {
              start: d$1,
              end: f$1,
              markerLines: c
            };
          }
          function Mn$1(e, t, r = {}) {
            let n = (r.highlightCode || r.forceColor) && (0, In$1.shouldHighlight)(r),
              o = Oo$1(r.forceColor),
              u = So$1(o),
              i = (F$1, m) => n ? F$1(m) : m,
              {
                start: a,
                end: D$1,
                markerLines: l$1
              } = No$1(t, e.split(jn$1), r),
              d$1 = t.start && typeof t.start.column == "number",
              f$1 = String(D$1).length,
              c = (n ? (0, In$1.default)(e, r) : e).split(jn$1, D$1).slice(a, D$1).map((F$1, m) => {
                let E$1 = a + 1 + m,
                  w$1 = ` ${` ${E$1}`.slice(-f$1)} |`,
                  h = l$1[E$1],
                  C = !l$1[E$1 + 1];
                if (h) {
                  let k$1 = "";
                  if (Array.isArray(h)) {
                    let v$1 = F$1.slice(0, Math.max(h[0] - 1, 0)).replace(/[^\t]/g, " "),
                      $$1 = h[1] || 1;
                    k$1 = [`
 `, i(u.gutter, w$1.replace(/\d/g, " ")), " ", v$1, i(u.marker, "^").repeat($$1)].join(""), C && r.message && (k$1 += " " + i(u.message, r.message));
                  }
                  return [i(u.marker, ">"), i(u.gutter, w$1), F$1.length > 0 ? ` ${F$1}` : "", k$1].join("");
                } else return ` ${i(u.gutter, w$1)}${F$1.length > 0 ? ` ${F$1}` : ""}`;
              }).join(`
`);
            return r.message && !d$1 && (c = `${" ".repeat(f$1 + 1)}${r.message}
${c}`), n ? o.reset(c) : c;
          }
          function To$1(e, t, r, n = {}) {
            if (!Yn$1) {
              Yn$1 = !0;
              let u = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
              {
                let i = new Error(u);
                i.name = "DeprecationWarning", console.warn(new Error(u));
              }
            }
            return r = Math.max(r, 0), Mn$1(e, {
              start: {
                column: r,
                line: t
              }
            }, n);
          }
        });
        ir$1 = {};
        We(ir$1, {
          __debug: () => di$1,
          check: () => fi$1,
          doc: () => nr$1,
          format: () => gu$1,
          formatWithCursor: () => Cu$1,
          getSupportInfo: () => pi$1,
          util: () => or$1,
          version: () => fu$1
        });
        Ou$1 = (e, t, r, n) => {
          if (!(e && t == null)) return t.replaceAll ? t.replaceAll(r, n) : r.global ? t.replace(r, n) : t.split(r).join(n);
        }, ne$1 = Ou$1;
        Z.prototype = {
          diff: function (t, r) {
            var n,
              o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {},
              u = o.callback;
            typeof o == "function" && (u = o, o = {}), this.options = o;
            var i = this;
            function s(h) {
              return u ? (setTimeout(function () {
                u(void 0, h);
              }, 0), !0) : h;
            }
            t = this.castInput(t), r = this.castInput(r), t = this.removeEmpty(this.tokenize(t)), r = this.removeEmpty(this.tokenize(r));
            var a = r.length,
              D$1 = t.length,
              l$1 = 1,
              d$1 = a + D$1;
            o.maxEditLength && (d$1 = Math.min(d$1, o.maxEditLength));
            var f$1 = (n = o.timeout) !== null && n !== void 0 ? n : Infinity,
              p = Date.now() + f$1,
              c = [{
                oldPos: -1,
                lastComponent: void 0
              }],
              F$1 = this.extractCommon(c[0], r, t, 0);
            if (c[0].oldPos + 1 >= D$1 && F$1 + 1 >= a) return s([{
              value: this.join(r),
              count: r.length
            }]);
            var m = -Infinity,
              E$1 = Infinity;
            function A() {
              for (var h = Math.max(m, -l$1); h <= Math.min(E$1, l$1); h += 2) {
                var C = void 0,
                  k$1 = c[h - 1],
                  v$1 = c[h + 1];
                k$1 && (c[h - 1] = void 0);
                var $$1 = !1;
                if (v$1) {
                  var ye$1 = v$1.oldPos - h;
                  $$1 = v$1 && 0 <= ye$1 && ye$1 < a;
                }
                var yt$1 = k$1 && k$1.oldPos + 1 < D$1;
                if (!$$1 && !yt$1) {
                  c[h] = void 0;
                  continue;
                }
                if (!yt$1 || $$1 && k$1.oldPos + 1 < v$1.oldPos ? C = i.addToPath(v$1, !0, void 0, 0) : C = i.addToPath(k$1, void 0, !0, 1), F$1 = i.extractCommon(C, r, t, h), C.oldPos + 1 >= D$1 && F$1 + 1 >= a) return s(Su$1(i, C.lastComponent, r, t, i.useLongestToken));
                c[h] = C, C.oldPos + 1 >= D$1 && (E$1 = Math.min(E$1, h - 1)), F$1 + 1 >= a && (m = Math.max(m, h + 1));
              }
              l$1++;
            }
            if (u) (function h() {
              setTimeout(function () {
                if (l$1 > d$1 || Date.now() > p) return u();
                A() || h();
              }, 0);
            })();else for (; l$1 <= d$1 && Date.now() <= p;) {
              var w$1 = A();
              if (w$1) return w$1;
            }
          },
          addToPath: function (t, r, n, o) {
            var u = t.lastComponent;
            return u && u.added === r && u.removed === n ? {
              oldPos: t.oldPos + o,
              lastComponent: {
                count: u.count + 1,
                added: r,
                removed: n,
                previousComponent: u.previousComponent
              }
            } : {
              oldPos: t.oldPos + o,
              lastComponent: {
                count: 1,
                added: r,
                removed: n,
                previousComponent: u
              }
            };
          },
          extractCommon: function (t, r, n, o) {
            for (var u = r.length, i = n.length, s = t.oldPos, a = s - o, D$1 = 0; a + 1 < u && s + 1 < i && this.equals(r[a + 1], n[s + 1]);) a++, s++, D$1++;
            return D$1 && (t.lastComponent = {
              count: D$1,
              previousComponent: t.lastComponent
            }), t.oldPos = s, a;
          },
          equals: function (t, r) {
            return this.options.comparator ? this.options.comparator(t, r) : t === r || this.options.ignoreCase && t.toLowerCase() === r.toLowerCase();
          },
          removeEmpty: function (t) {
            for (var r = [], n = 0; n < t.length; n++) t[n] && r.push(t[n]);
            return r;
          },
          castInput: function (t) {
            return t;
          },
          tokenize: function (t) {
            return t.split("");
          },
          join: function (t) {
            return t.join("");
          }
        };
        new Z();
        lr$1 = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/, cr$1 = /\S/, fr$1 = new Z();
        fr$1.equals = function (e, t) {
          return this.options.ignoreCase && (e = e.toLowerCase(), t = t.toLowerCase()), e === t || this.options.ignoreWhitespace && !cr$1.test(e) && !cr$1.test(t);
        };
        fr$1.tokenize = function (e) {
          for (var t = e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/), r = 0; r < t.length - 1; r++) !t[r + 1] && t[r + 2] && lr$1.test(t[r]) && lr$1.test(t[r + 2]) && (t[r] += t[r + 2], t.splice(r + 1, 2), r--);
          return t;
        };
        pr$1 = new Z();
        pr$1.tokenize = function (e) {
          this.options.stripTrailingCr && (e = e.replace(/\r\n/g, `
`));
          var t = [],
            r = e.split(/(\n|\r\n)/);
          r[r.length - 1] || r.pop();
          for (var n = 0; n < r.length; n++) {
            var o = r[n];
            n % 2 && !this.options.newlineIsToken ? t[t.length - 1] += o : (this.options.ignoreWhitespace && (o = o.trim()), t.push(o));
          }
          return t;
        };
        Nu$1 = new Z();
        Nu$1.tokenize = function (e) {
          return e.split(/(\S.+?[.!?])(?=\s+|$)/);
        };
        Tu$1 = new Z();
        Tu$1.tokenize = function (e) {
          return e.split(/([{}:;,]|\s+)/);
        };
        ku$1 = Object.prototype.toString, Ae$1 = new Z();
        Ae$1.useLongestToken = !0;
        Ae$1.tokenize = pr$1.tokenize;
        Ae$1.castInput = function (e) {
          var t = this.options,
            r = t.undefinedReplacement,
            n = t.stringifyReplacer,
            o = n === void 0 ? function (u, i) {
              return typeof i > "u" ? r : i;
            } : n;
          return typeof e == "string" ? e : JSON.stringify(Bt$1(e, null, null, o), o, "  ");
        };
        Ae$1.equals = function (e, t) {
          return Z.prototype.equals.call(Ae$1, e.replace(/,([\r\n])/g, "$1"), t.replace(/,([\r\n])/g, "$1"));
        };
        Ve$1 = new Z();
        Ve$1.tokenize = function (e) {
          return e.slice();
        };
        Ve$1.join = Ve$1.removeEmpty = function (e) {
          return e;
        };
        U$1 = "string", W = "array", z$1 = "cursor", L$1 = "indent", P$1 = "align", I = "trim", x$1 = "group", S = "fill", _ = "if-break", R$1 = "indent-if-break", Y$1 = "line-suffix", j = "line-suffix-boundary", B$1 = "line", N$1 = "label", b$1 = "break-parent", Ue$2 = new Set([z$1, L$1, P$1, I, x$1, S, _, R$1, Y$1, j, B$1, N$1, b$1]);
        G$1 = Lu$1;
        Pu$1 = e => new Intl.ListFormat("en-US", {
          type: "disjunction"
        }).format(e);
        xt = class extends Error {
          name = "InvalidDocError";
          constructor(t) {
            super(Iu$1(t)), this.doc = t;
          }
        }, Q$1 = xt;
        Er$2 = {};
        we$1 = Ru$1;
        hr$1 = () => {}, K$1 = hr$1, ze$1 = hr$1;
        xr$2 = {
          type: j
        }, de$1 = {
          type: b$1
        }, _r$2 = {
          type: I
        }, _e$2 = {
          type: B$1,
          hard: !0
        }, vt$2 = {
          type: B$1,
          hard: !0,
          literal: !0
        }, Ke$1 = {
          type: B$1
        }, vr$2 = {
          type: B$1,
          soft: !0
        }, q$1 = [_e$2, de$1], qe = [vt$2, de$1], ve$1 = {
          type: z$1
        };
        Yu$1 = (e, t, r) => {
          if (!(e && t == null)) return Array.isArray(t) || typeof t == "string" ? t[r < 0 ? t.length + r : r] : t.at(r);
        }, y = Yu$1;
        Sr$1 = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
        kr$2 = e => !(Nr$1(e) || Tr$2(e));
        ju$1 = /[^\x20-\x7F]/u;
        Oe$2 = Hu$1;
        H$1 = Symbol("MODE_BREAK"), J = Symbol("MODE_FLAT"), Te$2 = Symbol("cursor");
        me$1 = Ku$1;
        St$2 = class {
          constructor(t) {
            Dr$2(this, te$1);
            this.stack = [t];
          }
          get key() {
            let {
              stack: t,
              siblings: r
            } = this;
            return y(!1, t, r === null ? -2 : -4) ?? null;
          }
          get index() {
            return this.siblings === null ? null : y(!1, this.stack, -2);
          }
          get node() {
            return y(!1, this.stack, -1);
          }
          get parent() {
            return this.getNode(1);
          }
          get grandparent() {
            return this.getNode(2);
          }
          get isInArray() {
            return this.siblings !== null;
          }
          get siblings() {
            let {
                stack: t
              } = this,
              r = y(!1, t, -3);
            return Array.isArray(r) ? r : null;
          }
          get next() {
            let {
              siblings: t
            } = this;
            return t === null ? null : t[this.index + 1];
          }
          get previous() {
            let {
              siblings: t
            } = this;
            return t === null ? null : t[this.index - 1];
          }
          get isFirst() {
            return this.index === 0;
          }
          get isLast() {
            let {
              siblings: t,
              index: r
            } = this;
            return t !== null && r === t.length - 1;
          }
          get isRoot() {
            return this.stack.length === 1;
          }
          get root() {
            return this.stack[0];
          }
          get ancestors() {
            return [...pe$1(this, te$1, tt$1).call(this)];
          }
          getName() {
            let {
                stack: t
              } = this,
              {
                length: r
              } = t;
            return r > 1 ? y(!1, t, -2) : null;
          }
          getValue() {
            return y(!1, this.stack, -1);
          }
          getNode(t = 0) {
            let r = pe$1(this, te$1, Nt$2).call(this, t);
            return r === -1 ? null : this.stack[r];
          }
          getParentNode(t = 0) {
            return this.getNode(t + 1);
          }
          call(t, ...r) {
            let {
                stack: n
              } = this,
              {
                length: o
              } = n,
              u = y(!1, n, -1);
            for (let i of r) u = u[i], n.push(i, u);
            try {
              return t(this);
            } finally {
              n.length = o;
            }
          }
          callParent(t, r = 0) {
            let n = pe$1(this, te$1, Nt$2).call(this, r + 1),
              o = this.stack.splice(n + 1);
            try {
              return t(this);
            } finally {
              this.stack.push(...o);
            }
          }
          each(t, ...r) {
            let {
                stack: n
              } = this,
              {
                length: o
              } = n,
              u = y(!1, n, -1);
            for (let i of r) u = u[i], n.push(i, u);
            try {
              for (let i = 0; i < u.length; ++i) n.push(i, u[i]), t(this, i, u), n.length -= 2;
            } finally {
              n.length = o;
            }
          }
          map(t, ...r) {
            let n = [];
            return this.each((o, u, i) => {
              n[u] = t(o, u, i);
            }, ...r), n;
          }
          match(...t) {
            let r = this.stack.length - 1,
              n = null,
              o = this.stack[r--];
            for (let u of t) {
              if (o === void 0) return !1;
              let i = null;
              if (typeof n == "number" && (i = n, n = this.stack[r--], o = this.stack[r--]), u && !u(o, n, i)) return !1;
              n = this.stack[r--], o = this.stack[r--];
            }
            return !0;
          }
          findAncestor(t) {
            for (let r of pe$1(this, te$1, tt$1).call(this)) if (t(r)) return r;
          }
          hasAncestor(t) {
            for (let r of pe$1(this, te$1, tt$1).call(this)) if (t(r)) return !0;
            return !1;
          }
        };
        te$1 = /* @__PURE__ */new WeakSet(), Nt$2 = function (t) {
          let {
            stack: r
          } = this;
          for (let n = r.length - 1; n >= 0; n -= 2) if (!Array.isArray(r[n]) && --t < 0) return n;
          return -1;
        }, tt$1 = function* () {
          let {
            stack: t
          } = this;
          for (let r = t.length - 3; r >= 0; r -= 2) {
            let n = t[r];
            Array.isArray(n) || (yield n);
          }
        };
        Mr$2 = St$2;
        $r$2 = new Proxy(() => {}, {
          get: () => $r$2
        }), ke$1 = $r$2;
        Vr$2 = qu$1;
        zr$2 = Ee$1(/\s/u), T = Ee$1(" 	"), rt$1 = Ee$1(",; 	"), nt$1 = Ee$1(/[^\n\r]/u);
        M$1 = Ju$1;
        V$2 = Xu$1;
        kt$2 = Zu$1;
        Gr$2 = new Set(["tokens", "comments", "parent", "enclosingNode", "precedingNode", "followingNode"]), Qu$1 = e => Object.keys(e).filter(t => !Gr$2.has(t));
        X$1 = eo$1;
        Pt$1 = /* @__PURE__ */new WeakMap();
        It$1 = () => !1;
        Xr$2 = e => !/[\S\n\u2028\u2029]/u.test(e);
        Le$1 = uo$1;
        tn$1 = ao;
        Pe$2 = class extends Error {
          name = "ConfigError";
        }, Ie$1 = class extends Error {
          name = "UndefinedParserError";
        };
        rn$1 = {
          cursorOffset: {
            category: "Special",
            type: "int",
            default: -1,
            range: {
              start: -1,
              end: Infinity,
              step: 1
            },
            description: "Print (to stderr) where a cursor at the given position would move to after formatting.",
            cliCategory: "Editor"
          },
          endOfLine: {
            category: "Global",
            type: "choice",
            default: "lf",
            description: "Which end of line characters to apply.",
            choices: [{
              value: "lf",
              description: "Line Feed only (\\n), common on Linux and macOS as well as inside git repos"
            }, {
              value: "crlf",
              description: "Carriage Return + Line Feed characters (\\r\\n), common on Windows"
            }, {
              value: "cr",
              description: "Carriage Return character only (\\r), used very rarely"
            }, {
              value: "auto",
              description: `Maintain existing
(mixed values within one file are normalised by looking at what's used after the first line)`
            }]
          },
          filepath: {
            category: "Special",
            type: "path",
            description: "Specify the input filepath. This will be used to do parser inference.",
            cliName: "stdin-filepath",
            cliCategory: "Other",
            cliDescription: "Path to the file to pretend that stdin comes from."
          },
          insertPragma: {
            category: "Special",
            type: "boolean",
            default: !1,
            description: "Insert @format pragma into file's first docblock comment.",
            cliCategory: "Other"
          },
          parser: {
            category: "Global",
            type: "choice",
            default: void 0,
            description: "Which parser to use.",
            exception: e => typeof e == "string" || typeof e == "function",
            choices: [{
              value: "flow",
              description: "Flow"
            }, {
              value: "babel",
              description: "JavaScript"
            }, {
              value: "babel-flow",
              description: "Flow"
            }, {
              value: "babel-ts",
              description: "TypeScript"
            }, {
              value: "typescript",
              description: "TypeScript"
            }, {
              value: "acorn",
              description: "JavaScript"
            }, {
              value: "espree",
              description: "JavaScript"
            }, {
              value: "meriyah",
              description: "JavaScript"
            }, {
              value: "css",
              description: "CSS"
            }, {
              value: "less",
              description: "Less"
            }, {
              value: "scss",
              description: "SCSS"
            }, {
              value: "json",
              description: "JSON"
            }, {
              value: "json5",
              description: "JSON5"
            }, {
              value: "jsonc",
              description: "JSON with Comments"
            }, {
              value: "json-stringify",
              description: "JSON.stringify"
            }, {
              value: "graphql",
              description: "GraphQL"
            }, {
              value: "markdown",
              description: "Markdown"
            }, {
              value: "mdx",
              description: "MDX"
            }, {
              value: "vue",
              description: "Vue"
            }, {
              value: "yaml",
              description: "YAML"
            }, {
              value: "glimmer",
              description: "Ember / Handlebars"
            }, {
              value: "html",
              description: "HTML"
            }, {
              value: "angular",
              description: "Angular"
            }, {
              value: "lwc",
              description: "Lightning Web Components"
            }]
          },
          plugins: {
            type: "path",
            array: !0,
            default: [{
              value: []
            }],
            category: "Global",
            description: "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",
            exception: e => typeof e == "string" || typeof e == "object",
            cliName: "plugin",
            cliCategory: "Config"
          },
          printWidth: {
            category: "Global",
            type: "int",
            default: 80,
            description: "The line length where Prettier will try wrap.",
            range: {
              start: 0,
              end: Infinity,
              step: 1
            }
          },
          rangeEnd: {
            category: "Special",
            type: "int",
            default: Infinity,
            range: {
              start: 0,
              end: Infinity,
              step: 1
            },
            description: `Format code ending at a given character offset (exclusive).
The range will extend forwards to the end of the selected statement.`,
            cliCategory: "Editor"
          },
          rangeStart: {
            category: "Special",
            type: "int",
            default: 0,
            range: {
              start: 0,
              end: Infinity,
              step: 1
            },
            description: `Format code starting at a given character offset.
The range will extend backwards to the start of the first line containing the selected statement.`,
            cliCategory: "Editor"
          },
          requirePragma: {
            category: "Special",
            type: "boolean",
            default: !1,
            description: `Require either '@prettier' or '@format' to be present in the file's first docblock comment
in order for it to be formatted.`,
            cliCategory: "Other"
          },
          tabWidth: {
            type: "int",
            category: "Global",
            default: 2,
            description: "Number of spaces per indentation level.",
            range: {
              start: 0,
              end: Infinity,
              step: 1
            }
          },
          useTabs: {
            category: "Global",
            type: "boolean",
            default: !1,
            description: "Indent with tabs instead of spaces."
          },
          embeddedLanguageFormatting: {
            category: "Global",
            type: "choice",
            default: "auto",
            description: "Control how Prettier formats quoted code embedded in the file.",
            choices: [{
              value: "auto",
              description: "Format embedded code if Prettier can automatically identify it."
            }, {
              value: "off",
              description: "Never automatically format embedded code."
            }]
          }
        };
        co = e => String(e).split(/[/\\]/u).pop();
        un$1 = po;
        ie$2 = {
          key: e => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e) ? e : JSON.stringify(e),
          value(e) {
            if (e === null || typeof e != "object") return JSON.stringify(e);
            if (Array.isArray(e)) return `[${e.map(r => ie$2.value(r)).join(", ")}]`;
            let t = Object.keys(e);
            return t.length === 0 ? "{}" : `{ ${t.map(r => `${ie$2.key(r)}: ${ie$2.value(e[r])}`).join(", ")} }`;
          },
          pair: ({
            key: e,
            value: t
          }) => ie$2.value({
            [e]: t
          })
        };
        Yt$1 = Me$2(it$1(), 1), an$1 = (e, t, {
          descriptor: r
        }) => {
          let n = [`${Yt$1.default.yellow(typeof e == "string" ? r.key(e) : r.pair(e))} is deprecated`];
          return t && n.push(`we now treat it as ${Yt$1.default.blue(typeof t == "string" ? r.key(t) : r.pair(t))}`), n.join("; ") + ".";
        };
        le$1 = Me$2(it$1(), 1);
        st$1 = Symbol.for("vnopts.VALUE_NOT_EXIST"), he$1 = Symbol.for("vnopts.VALUE_UNCHANGED");
        Dn$1 = " ".repeat(2), cn$1 = (e, t, r) => {
          let {
              text: n,
              list: o
            } = r.normalizeExpectedResult(r.schemas[e].expected(r)),
            u = [];
          return n && u.push(ln$1(e, t, n, r.descriptor)), o && u.push([ln$1(e, t, o.title, r.descriptor)].concat(o.values.map(i => fn$1(i, r.loggerPrintWidth))).join(`
`)), pn$1(u, r.loggerPrintWidth);
        };
        Wt$1 = Me$2(it$1(), 1);
        jt$1 = [], dn$1 = [];
        at$1 = (e, t, {
          descriptor: r,
          logger: n,
          schemas: o
        }) => {
          let u = [`Ignored unknown option ${Wt$1.default.yellow(r.pair({
              key: e,
              value: t
            }))}.`],
            i = Object.keys(o).sort().find(s => Ht$1(e, s) < 3);
          i && u.push(`Did you mean ${Wt$1.default.blue(r.key(i))}?`), n.warn(u.join(" "));
        };
        Fo$1 = ["default", "expected", "validate", "deprecated", "forward", "redirect", "overlap", "preprocess", "postprocess"];
        O$1 = class {
          static create(t) {
            return mo$1(this, t);
          }
          constructor(t) {
            this.name = t.name;
          }
          default(t) {}
          expected(t) {
            return "nothing";
          }
          validate(t, r) {
            return !1;
          }
          deprecated(t, r) {
            return !1;
          }
          forward(t, r) {}
          redirect(t, r) {}
          overlap(t, r, n) {
            return t;
          }
          preprocess(t, r) {
            return t;
          }
          postprocess(t, r) {
            return he$1;
          }
        };
        Dt$1 = class extends O$1 {
          constructor(t) {
            super(t), this._sourceName = t.sourceName;
          }
          expected(t) {
            return t.schemas[this._sourceName].expected(t);
          }
          validate(t, r) {
            return r.schemas[this._sourceName].validate(t, r);
          }
          redirect(t, r) {
            return this._sourceName;
          }
        };
        lt$1 = class extends O$1 {
          expected() {
            return "anything";
          }
          validate() {
            return !0;
          }
        };
        ct$1 = class extends O$1 {
          constructor({
            valueSchema: t,
            name: r = t.name,
            ...n
          }) {
            super({
              ...n,
              name: r
            }), this._valueSchema = t;
          }
          expected(t) {
            let {
              text: r,
              list: n
            } = t.normalizeExpectedResult(this._valueSchema.expected(t));
            return {
              text: r && `an array of ${r}`,
              list: n && {
                title: "an array of the following values",
                values: [{
                  list: n
                }]
              }
            };
          }
          validate(t, r) {
            if (!Array.isArray(t)) return !1;
            let n = [];
            for (let o of t) {
              let u = r.normalizeValidateResult(this._valueSchema.validate(o, r), o);
              u !== !0 && n.push(u.value);
            }
            return n.length === 0 ? !0 : {
              value: n
            };
          }
          deprecated(t, r) {
            let n = [];
            for (let o of t) {
              let u = r.normalizeDeprecatedResult(this._valueSchema.deprecated(o, r), o);
              u !== !1 && n.push(...u.map(({
                value: i
              }) => ({
                value: [i]
              })));
            }
            return n;
          }
          forward(t, r) {
            let n = [];
            for (let o of t) {
              let u = r.normalizeForwardResult(this._valueSchema.forward(o, r), o);
              n.push(...u.map(Fn$1));
            }
            return n;
          }
          redirect(t, r) {
            let n = [],
              o = [];
            for (let u of t) {
              let i = r.normalizeRedirectResult(this._valueSchema.redirect(u, r), u);
              "remain" in i && n.push(i.remain), o.push(...i.redirect.map(Fn$1));
            }
            return n.length === 0 ? {
              redirect: o
            } : {
              redirect: o,
              remain: n
            };
          }
          overlap(t, r) {
            return t.concat(r);
          }
        };
        ft$1 = class extends O$1 {
          expected() {
            return "true or false";
          }
          validate(t) {
            return typeof t == "boolean";
          }
        };
        dt$1 = class extends O$1 {
          constructor(t) {
            super(t), this._choices = hn$1(t.choices.map(r => r && typeof r == "object" ? r : {
              value: r
            }), "value");
          }
          expected({
            descriptor: t
          }) {
            let r = Array.from(this._choices.keys()).map(i => this._choices.get(i)).filter(({
                hidden: i
              }) => !i).map(i => i.value).sort(An$1).map(t.value),
              n = r.slice(0, -2),
              o = r.slice(-2);
            return {
              text: n.concat(o.join(" or ")).join(", "),
              list: {
                title: "one of the following values",
                values: r
              }
            };
          }
          validate(t) {
            return this._choices.has(t);
          }
          deprecated(t) {
            let r = this._choices.get(t);
            return r && r.deprecated ? {
              value: t
            } : !1;
          }
          forward(t) {
            let r = this._choices.get(t);
            return r ? r.forward : void 0;
          }
          redirect(t) {
            let r = this._choices.get(t);
            return r ? r.redirect : void 0;
          }
        };
        Ft$1 = class extends O$1 {
          expected() {
            return "a number";
          }
          validate(t, r) {
            return typeof t == "number";
          }
        };
        mt$1 = class extends Ft$1 {
          expected() {
            return "an integer";
          }
          validate(t, r) {
            return r.normalizeValidateResult(super.validate(t, r), t) === !0 && yn$1(t);
          }
        };
        Re$2 = class extends O$1 {
          expected() {
            return "a string";
          }
          validate(t) {
            return typeof t == "string";
          }
        };
        wn$1 = ie$2, xn$1 = at$1, _n$1 = cn$1, vn$1 = an$1;
        Et$2 = class {
          constructor(t, r) {
            let {
              logger: n = console,
              loggerPrintWidth: o = 80,
              descriptor: u = wn$1,
              unknown: i = xn$1,
              invalid: s = _n$1,
              deprecated: a = vn$1,
              missing: D$1 = () => !1,
              required: l$1 = () => !1,
              preprocess: d$1 = p => p,
              postprocess: f$1 = () => he$1
            } = r || {};
            this._utils = {
              descriptor: u,
              logger: n || {
                warn: () => {}
              },
              loggerPrintWidth: o,
              schemas: En$1(t, "name"),
              normalizeDefaultResult: Mt$1,
              normalizeExpectedResult: $t,
              normalizeDeprecatedResult: Ut$1,
              normalizeForwardResult: pt$1,
              normalizeRedirectResult: zt,
              normalizeValidateResult: Vt$1
            }, this._unknownHandler = i, this._invalidHandler = Bn$1(s), this._deprecatedHandler = a, this._identifyMissing = (p, c) => !(p in c) || D$1(p, c), this._identifyRequired = l$1, this._preprocess = d$1, this._postprocess = f$1, this.cleanHistory();
          }
          cleanHistory() {
            this._hasDeprecationWarned = Cn$1();
          }
          normalize(t) {
            let r = {},
              o = [this._preprocess(t, this._utils)],
              u = () => {
                for (; o.length !== 0;) {
                  let i = o.shift(),
                    s = this._applyNormalization(i, r);
                  o.push(...s);
                }
              };
            u();
            for (let i of Object.keys(this._utils.schemas)) {
              let s = this._utils.schemas[i];
              if (!(i in r)) {
                let a = Mt$1(s.default(this._utils));
                "value" in a && o.push({
                  [i]: a.value
                });
              }
            }
            u();
            for (let i of Object.keys(this._utils.schemas)) {
              if (!(i in r)) continue;
              let s = this._utils.schemas[i],
                a = r[i],
                D$1 = s.postprocess(a, this._utils);
              D$1 !== he$1 && (this._applyValidation(D$1, i, s), r[i] = D$1);
            }
            return this._applyPostprocess(r), this._applyRequiredCheck(r), r;
          }
          _applyNormalization(t, r) {
            let n = [],
              {
                knownKeys: o,
                unknownKeys: u
              } = this._partitionOptionKeys(t);
            for (let i of o) {
              let s = this._utils.schemas[i],
                a = s.preprocess(t[i], this._utils);
              this._applyValidation(a, i, s);
              let D$1 = ({
                  from: p,
                  to: c
                }) => {
                  n.push(typeof c == "string" ? {
                    [c]: p
                  } : {
                    [c.key]: c.value
                  });
                },
                l$1 = ({
                  value: p,
                  redirectTo: c
                }) => {
                  let F$1 = Ut$1(s.deprecated(p, this._utils), a, !0);
                  if (F$1 !== !1) if (F$1 === !0) this._hasDeprecationWarned(i) || this._utils.logger.warn(this._deprecatedHandler(i, c, this._utils));else for (let {
                    value: m
                  } of F$1) {
                    let E$1 = {
                      key: i,
                      value: m
                    };
                    if (!this._hasDeprecationWarned(E$1)) {
                      let A = typeof c == "string" ? {
                        key: c,
                        value: m
                      } : c;
                      this._utils.logger.warn(this._deprecatedHandler(E$1, A, this._utils));
                    }
                  }
                };
              pt$1(s.forward(a, this._utils), a).forEach(D$1);
              let f$1 = zt(s.redirect(a, this._utils), a);
              if (f$1.redirect.forEach(D$1), "remain" in f$1) {
                let p = f$1.remain;
                r[i] = i in r ? s.overlap(r[i], p, this._utils) : p, l$1({
                  value: p
                });
              }
              for (let {
                from: p,
                to: c
              } of f$1.redirect) l$1({
                value: p,
                redirectTo: c
              });
            }
            for (let i of u) {
              let s = t[i];
              this._applyUnknownHandler(i, s, r, (a, D$1) => {
                n.push({
                  [a]: D$1
                });
              });
            }
            return n;
          }
          _applyRequiredCheck(t) {
            for (let r of Object.keys(this._utils.schemas)) if (this._identifyMissing(r, t) && this._identifyRequired(r)) throw this._invalidHandler(r, st$1, this._utils);
          }
          _partitionOptionKeys(t) {
            let [r, n] = gn$1(Object.keys(t).filter(o => !this._identifyMissing(o, t)), o => o in this._utils.schemas);
            return {
              knownKeys: r,
              unknownKeys: n
            };
          }
          _applyValidation(t, r, n) {
            let o = Vt$1(n.validate(t, this._utils), t);
            if (o !== !0) throw this._invalidHandler(r, o.value, this._utils);
          }
          _applyUnknownHandler(t, r, n, o) {
            let u = this._unknownHandler(t, r, this._utils);
            if (u) for (let i of Object.keys(u)) {
              if (this._identifyMissing(i, u)) continue;
              let s = u[i];
              i in this._utils.schemas ? o(i, s) : n[i] = s;
            }
          }
          _applyPostprocess(t) {
            let r = this._postprocess(t, this._utils);
            if (r !== he$1) {
              if (r.delete) for (let n of r.delete) delete t[n];
              if (r.override) {
                let {
                  knownKeys: n,
                  unknownKeys: o
                } = this._partitionOptionKeys(r.override);
                for (let u of n) {
                  let i = r.override[u];
                  this._applyValidation(i, u, this._utils.schemas[u]), t[u] = i;
                }
                for (let u of o) {
                  let i = r.override[u];
                  this._applyUnknownHandler(u, i, t, (s, a) => {
                    let D$1 = this._utils.schemas[s];
                    this._applyValidation(a, s, D$1), t[s] = a;
                  });
                }
              }
            }
          }
        };
        bn$1 = go$1;
        Bo$1 = (e, t, r) => {
          if (!(e && t == null)) {
            if (t.findLast) return t.findLast(r);
            for (let n = t.length - 1; n >= 0; n--) {
              let o = t[n];
              if (r(o, n, t)) return o;
            }
          }
        }, Kt = Bo$1;
        Nn$1 = {
          astFormat: "estree",
          printer: {},
          originalText: void 0,
          locStart: null,
          locEnd: null
        };
        se$1 = wo$1;
        Vn$1 = Me$2($n$1(), 1);
        ce$1 = ko$1;
        zn$1 = Io$1;
        Kn$1 = Ro$1;
        qn$1 = Yo$1;
        jo$1 = (e, t, r) => {
          if (!(e && t == null)) {
            if (t.findLastIndex) return t.findLastIndex(r);
            for (let n = t.length - 1; n >= 0; n--) {
              let o = t[n];
              if (r(o, n, t)) return n;
            }
            return -1;
          }
        }, Jn$1 = jo$1;
        Ho$1 = ({
          parser: e
        }) => e === "json" || e === "json5" || e === "jsonc" || e === "json-stringify";
        Qn$1 = new Set(["JsonRoot", "ObjectExpression", "ArrayExpression", "StringLiteral", "NumericLiteral", "BooleanLiteral", "NullLiteral", "UnaryExpression", "TemplateLiteral"]), Vo$1 = new Set(["OperationDefinition", "FragmentDefinition", "VariableDefinition", "TypeExtensionDefinition", "ObjectTypeDefinition", "FieldDefinition", "DirectiveDefinition", "EnumTypeDefinition", "EnumValueDefinition", "InputValueDefinition", "InputObjectTypeDefinition", "SchemaDefinition", "OperationTypeDefinition", "InterfaceTypeDefinition", "UnionTypeDefinition", "ScalarTypeDefinition"]);
        uu$1 = "", tu = Symbol("cursor");
        nr$1 = {};
        We(nr$1, {
          builders: () => Go$1,
          printer: () => Ko$1,
          utils: () => qo$1
        });
        Go$1 = {
          join: be$2,
          line: Ke$1,
          softline: vr$2,
          hardline: q$1,
          literalline: qe,
          group: _t$1,
          conditionalGroup: Ar$2,
          fill: Ge$1,
          lineSuffix: xe$1,
          lineSuffixBoundary: xr$2,
          cursor: ve$1,
          breakParent: de$1,
          ifBreak: Br$2,
          trim: _r$2,
          indent: De$1,
          indentIfBreak: wr$2,
          align: ae$2,
          addAlignmentToDoc: Je$1,
          markAsRoot: gr$2,
          dedentToRoot: Cr$1,
          dedent: yr$2,
          hardlineWithoutBreakParent: _e$2,
          literallineWithoutBreakParent: vt$2,
          label: br$2,
          concat: e => e
        }, Ko$1 = {
          printDocToString: Fe$1
        }, qo$1 = {
          willBreak: Ir$2,
          traverseDoc: we$1,
          findInDoc: Xe$1,
          mapDoc: Ne$1,
          removeLines: Yr$1,
          stripTrailingHardline: Ze$1,
          replaceEndOfLine: jr$2,
          canBreak: Hr$2
        };
        fu$1 = "3.3.3";
        or$1 = {};
        We(or$1, {
          addDanglingComment: () => re$2,
          addLeadingComment: () => ue,
          addTrailingComment: () => oe$1,
          getAlignmentSize: () => me$1,
          getIndentSize: () => pu$1,
          getMaxContinuousCount: () => du$1,
          getNextNonSpaceNonCommentCharacter: () => Fu$1,
          getNextNonSpaceNonCommentCharacterIndex: () => si$1,
          getStringWidth: () => Oe$2,
          hasNewline: () => V$2,
          hasNewlineInRange: () => mu$1,
          hasSpaces: () => Eu$1,
          isNextLineEmpty: () => ci$1,
          isNextLineEmptyAfterIndex: () => gt$1,
          isPreviousLineEmpty: () => Di$1,
          makeString: () => hu$1,
          skip: () => Ee$1,
          skipEverythingButNewLine: () => nt$1,
          skipInlineComment: () => Ce$1,
          skipNewline: () => M$1,
          skipSpaces: () => T,
          skipToLineEnd: () => rt$1,
          skipTrailingComment: () => ge$2,
          skipWhitespace: () => zr$2
        });
        Ce$1 = Jo$1;
        ge$2 = Xo$1;
        je$2 = Zo$1;
        gt$1 = Qo$1;
        pu$1 = ei$1;
        du$1 = ti$1;
        Fu$1 = ri$1;
        mu$1 = ni$1;
        Eu$1 = ui$1;
        hu$1 = oi$1;
        _export("a", Cu$1 = fe$1(rr$1));
        pi$1 = fe$1(ot$1, 0), di$1 = {
          parse: fe$1(su$1),
          formatAST: fe$1(au$1),
          formatDoc: fe$1(Du$1),
          printToDoc: fe$1(lu$1),
          printDocToString: fe$1(cu$1)
        }; //#endregion
        //#region ../../../node_modules/.pnpm/prettier@3.3.3/node_modules/prettier/plugins/babel.mjs
        $s$1 = Object.create;
        je$1 = Object.defineProperty;
        Vs$1 = Object.getOwnPropertyDescriptor;
        qs$1 = Object.getOwnPropertyNames;
        zs$1 = Object.getPrototypeOf, Ks$1 = Object.prototype.hasOwnProperty;
        Hs$1 = (a, t) => () => (t || a((t = {
          exports: {}
        }).exports, t), t.exports), Ws$1 = (a, t) => {
          for (var e in t) je$1(a, e, {
            get: t[e],
            enumerable: !0
          });
        }, Js$1 = (a, t, e, s) => {
          if (t && typeof t == "object" || typeof t == "function") for (let i of qs$1(t)) !Ks$1.call(a, i) && i !== e && je$1(a, i, {
            get: () => t[i],
            enumerable: !(s = Vs$1(t, i)) || s.enumerable
          });
          return a;
        };
        vt$1 = (a, t, e) => (e = a != null ? $s$1(zs$1(a)) : {}, Js$1(t || !a || !a.__esModule ? je$1(e, "default", {
          value: a,
          enumerable: !0
        }) : e, a));
        At$1 = Hs$1(xe$2 => {
          Object.defineProperty(xe$2, "__esModule", {
            value: !0
          });
          function Ht$2(a, t) {
            if (a == null) return {};
            var e = {},
              s = Object.keys(a),
              i,
              r;
            for (r = 0; r < s.length; r++) i = s[r], !(t.indexOf(i) >= 0) && (e[i] = a[i]);
            return e;
          }
          var F$1 = class {
              constructor(t, e, s) {
                this.line = void 0, this.column = void 0, this.index = void 0, this.line = t, this.column = e, this.index = s;
              }
            },
            ee$1 = class {
              constructor(t, e) {
                this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = t, this.end = e;
              }
            };
          function v$1(a, t) {
            let {
              line: e,
              column: s,
              index: i
            } = a;
            return new F$1(e, s + t, i + t);
          }
          var Lt$2 = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED",
            Xs$1 = {
              ImportMetaOutsideModule: {
                message: `import.meta may appear only with 'sourceType: "module"'`,
                code: Lt$2
              },
              ImportOutsideModule: {
                message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
                code: Lt$2
              }
            },
            Dt$2 = {
              ArrayPattern: "array destructuring pattern",
              AssignmentExpression: "assignment expression",
              AssignmentPattern: "assignment expression",
              ArrowFunctionExpression: "arrow function expression",
              ConditionalExpression: "conditional expression",
              CatchClause: "catch clause",
              ForOfStatement: "for-of statement",
              ForInStatement: "for-in statement",
              ForStatement: "for-loop",
              FormalParameters: "function parameter list",
              Identifier: "identifier",
              ImportSpecifier: "import specifier",
              ImportDefaultSpecifier: "import default specifier",
              ImportNamespaceSpecifier: "import namespace specifier",
              ObjectPattern: "object destructuring pattern",
              ParenthesizedExpression: "parenthesized expression",
              RestElement: "rest element",
              UpdateExpression: {
                true: "prefix operation",
                false: "postfix operation"
              },
              VariableDeclarator: "variable declaration",
              YieldExpression: "yield expression"
            },
            Ce$2 = a => a.type === "UpdateExpression" ? Dt$2.UpdateExpression[`${a.prefix}`] : Dt$2[a.type],
            Gs$1 = {
              AccessorIsGenerator: ({
                kind: a
              }) => `A ${a}ter cannot be a generator.`,
              ArgumentsInClass: "'arguments' is only allowed in functions and class methods.",
              AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.",
              AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.",
              AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.",
              AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.",
              AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.",
              AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.",
              AwaitNotInAsyncFunction: "'await' is only allowed within async functions.",
              BadGetterArity: "A 'get' accessor must not have any formal parameters.",
              BadSetterArity: "A 'set' accessor must have exactly one formal parameter.",
              BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.",
              ConstructorClassField: "Classes may not have a field named 'constructor'.",
              ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.",
              ConstructorIsAccessor: "Class constructor may not be an accessor.",
              ConstructorIsAsync: "Constructor can't be an async function.",
              ConstructorIsGenerator: "Constructor can't be a generator.",
              DeclarationMissingInitializer: ({
                kind: a
              }) => `Missing initializer in ${a} declaration.`,
              DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",
              DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",
              DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",
              DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
              DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",
              DecoratorSemicolon: "Decorators must not be followed by a semicolon.",
              DecoratorStaticBlock: "Decorators can't be used with a static block.",
              DeferImportRequiresNamespace: "Only `import defer * as x from \"./module\"` is valid.",
              DeletePrivateField: "Deleting a private field is not allowed.",
              DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
              DuplicateConstructor: "Duplicate constructor in the same class.",
              DuplicateDefaultExport: "Only one default export allowed per module.",
              DuplicateExport: ({
                exportName: a
              }) => `\`${a}\` has already been exported. Exported identifiers must be unique.`,
              DuplicateProto: "Redefinition of __proto__ property.",
              DuplicateRegExpFlags: "Duplicate regular expression flag.",
              DynamicImportPhaseRequiresImportExpressions: ({
                phase: a
              }) => `'import.${a}(...)' can only be parsed when using the 'createImportExpressions' option.`,
              ElementAfterRest: "Rest element must be last element.",
              EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
              ExportBindingIsString: ({
                localName: a,
                exportName: t
              }) => `A string literal cannot be used as an exported binding without \`from\`.
- Did you mean \`export { '${a}' as '${t}' } from 'some-module'\`?`,
              ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
              ForInOfLoopInitializer: ({
                type: a
              }) => `'${a === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`,
              ForInUsing: "For-in loop may not start with 'using' declaration.",
              ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.",
              ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.",
              GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.",
              IllegalBreakContinue: ({
                type: a
              }) => `Unsyntactic ${a === "BreakStatement" ? "break" : "continue"}.`,
              IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.",
              IllegalReturn: "'return' outside of function.",
              ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",
              ImportBindingIsString: ({
                importName: a
              }) => `A string literal cannot be used as an imported binding.
- Did you mean \`import { "${a}" as foo }\`?`,
              ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.",
              ImportCallArity: ({
                maxArgumentCount: a
              }) => `\`import()\` requires exactly ${a === 1 ? "one argument" : "one or two arguments"}.`,
              ImportCallNotNewExpression: "Cannot use new with import(...).",
              ImportCallSpreadArgument: "`...` is not allowed in `import()`.",
              ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.",
              ImportReflectionHasAssertion: "`import module x` cannot have assertions.",
              ImportReflectionNotBinding: "Only `import module x from \"./module\"` is valid.",
              IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.",
              InvalidBigIntLiteral: "Invalid BigIntLiteral.",
              InvalidCodePoint: "Code point out of bounds.",
              InvalidCoverInitializedName: "Invalid shorthand property initializer.",
              InvalidDecimal: "Invalid decimal.",
              InvalidDigit: ({
                radix: a
              }) => `Expected number in radix ${a}.`,
              InvalidEscapeSequence: "Bad character escape sequence.",
              InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
              InvalidEscapedReservedWord: ({
                reservedWord: a
              }) => `Escape sequence in keyword ${a}.`,
              InvalidIdentifier: ({
                identifierName: a
              }) => `Invalid identifier ${a}.`,
              InvalidLhs: ({
                ancestor: a
              }) => `Invalid left-hand side in ${Ce$2(a)}.`,
              InvalidLhsBinding: ({
                ancestor: a
              }) => `Binding invalid left-hand side in ${Ce$2(a)}.`,
              InvalidLhsOptionalChaining: ({
                ancestor: a
              }) => `Invalid optional chaining in the left-hand side of ${Ce$2(a)}.`,
              InvalidNumber: "Invalid number.",
              InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
              InvalidOrUnexpectedToken: ({
                unexpected: a
              }) => `Unexpected character '${a}'.`,
              InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
              InvalidPrivateFieldResolution: ({
                identifierName: a
              }) => `Private name #${a} is not defined.`,
              InvalidPropertyBindingPattern: "Binding member expression.",
              InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
              InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
              LabelRedeclaration: ({
                labelName: a
              }) => `Label '${a}' is already declared.`,
              LetInLexicalBinding: "'let' is disallowed as a lexically bound name.",
              LineTerminatorBeforeArrow: "No line break is allowed before '=>'.",
              MalformedRegExpFlags: "Invalid regular expression flag.",
              MissingClassName: "A class name is required.",
              MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
              MissingSemicolon: "Missing semicolon.",
              MissingPlugin: ({
                missingPlugin: a
              }) => `This experimental syntax requires enabling the parser plugin: ${a.map(t => JSON.stringify(t)).join(", ")}.`,
              MissingOneOfPlugins: ({
                missingPlugin: a
              }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${a.map(t => JSON.stringify(t)).join(", ")}.`,
              MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.",
              MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.",
              ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.",
              ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.",
              ModuleAttributesWithDuplicateKeys: ({
                key: a
              }) => `Duplicate key "${a}" is not allowed in module attributes.`,
              ModuleExportNameHasLoneSurrogate: ({
                surrogateCharCode: a
              }) => `An export name cannot include a lone surrogate, found '\\u${a.toString(16)}'.`,
              ModuleExportUndefined: ({
                localName: a
              }) => `Export '${a}' is not defined.`,
              MultipleDefaultsInSwitch: "Multiple default clauses.",
              NewlineAfterThrow: "Illegal newline after throw.",
              NoCatchOrFinally: "Missing catch or finally clause.",
              NumberIdentifier: "Identifier directly after number.",
              NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",
              ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.",
              OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.",
              OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.",
              OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.",
              ParamDupe: "Argument name clash.",
              PatternHasAccessor: "Object pattern can't contain getter or setter.",
              PatternHasMethod: "Object pattern can't contain methods.",
              PrivateInExpectedIn: ({
                identifierName: a
              }) => `Private names are only allowed in property accesses (\`obj.#${a}\`) or in \`in\` expressions (\`#${a} in obj\`).`,
              PrivateNameRedeclaration: ({
                identifierName: a
              }) => `Duplicate private name #${a}.`,
              RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
              RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
              RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
              RecordNoProto: "'__proto__' is not allowed in Record expressions.",
              RestTrailingComma: "Unexpected trailing comma after rest element.",
              SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.",
              SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
              SourcePhaseImportRequiresDefault: "Only `import source x from \"./module\"` is valid.",
              StaticPrototype: "Classes may not have static property named prototype.",
              SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
              SuperPrivateField: "Private fields can't be accessed on super.",
              TrailingDecorator: "Decorators must be attached to a class element.",
              TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
              TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
              TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
              UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.",
              UnexpectedAwaitAfterPipelineBody: "Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.",
              UnexpectedDigitAfterHash: "Unexpected digit after hash token.",
              UnexpectedImportExport: "'import' and 'export' may only appear at the top level.",
              UnexpectedKeyword: ({
                keyword: a
              }) => `Unexpected keyword '${a}'.`,
              UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.",
              UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.",
              UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.",
              UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.",
              UnexpectedPrivateField: "Unexpected private name.",
              UnexpectedReservedWord: ({
                reservedWord: a
              }) => `Unexpected reserved word '${a}'.`,
              UnexpectedSuper: "'super' is only allowed in object methods and classes.",
              UnexpectedToken: ({
                expected: a,
                unexpected: t
              }) => `Unexpected token${t ? ` '${t}'.` : ""}${a ? `, expected "${a}"` : ""}`,
              UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
              UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.",
              UnsupportedBind: "Binding should be performed on object property.",
              UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
              UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
              UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
              UnsupportedMetaProperty: ({
                target: a,
                onlyValidPropertyName: t
              }) => `The only valid meta property for ${a} is ${a}.${t}.`,
              UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.",
              UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.",
              UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",
              UnterminatedComment: "Unterminated comment.",
              UnterminatedRegExp: "Unterminated regular expression.",
              UnterminatedString: "Unterminated string constant.",
              UnterminatedTemplate: "Unterminated template.",
              UsingDeclarationExport: "Using declaration cannot be exported.",
              UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.",
              VarRedeclaration: ({
                identifierName: a
              }) => `Identifier '${a}' has already been declared.`,
              YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.",
              YieldInParameter: "Yield expression is not allowed in formal parameters.",
              ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0."
            },
            Ys$1 = {
              StrictDelete: "Deleting local variable in strict mode.",
              StrictEvalArguments: ({
                referenceName: a
              }) => `Assigning to '${a}' in strict mode.`,
              StrictEvalArgumentsBinding: ({
                bindingName: a
              }) => `Binding '${a}' in strict mode.`,
              StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.",
              StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.",
              StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.",
              StrictWith: "'with' in strict mode."
            },
            Qs$1 = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]),
            Zs$1 = {
              PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",
              PipeTopicRequiresHackPipes: "Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.",
              PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
              PipeTopicUnconfiguredToken: ({
                token: a
              }) => `Invalid topic token ${a}. In order to use ${a} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${a}" }.`,
              PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
              PipeUnparenthesizedBody: ({
                type: a
              }) => `Hack-style pipe body cannot be an unparenthesized ${Ce$2({
                type: a
              })}; please wrap it in parentheses.`,
              PipelineBodyNoArrow: "Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.",
              PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.",
              PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.",
              PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.",
              PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
              PrimaryTopicRequiresSmartPipeline: "Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option."
            },
            ei$2 = ["toMessage"],
            ti$2 = ["message"];
          function Mt$2(a, t, e) {
            Object.defineProperty(a, t, {
              enumerable: !1,
              configurable: !0,
              value: e
            });
          }
          function si$2(a) {
            let {
                toMessage: t
              } = a,
              e = Ht$2(a, ei$2);
            return function s(i, r) {
              let n = /* @__PURE__ */new SyntaxError();
              return Object.assign(n, e, {
                loc: i,
                pos: i.index
              }), "missingPlugin" in r && Object.assign(n, {
                missingPlugin: r.missingPlugin
              }), Mt$2(n, "clone", function (h = {}) {
                var c;
                let {
                  line: l$1,
                  column: u,
                  index: f$1
                } = (c = h.loc) != null ? c : i;
                return s(new F$1(l$1, u, f$1), Object.assign({}, r, h.details));
              }), Mt$2(n, "details", r), Object.defineProperty(n, "message", {
                configurable: !0,
                get() {
                  let o = `${t(r)} (${i.line}:${i.column})`;
                  return this.message = o, o;
                },
                set(o) {
                  Object.defineProperty(this, "message", {
                    value: o,
                    writable: !0
                  });
                }
              }), n;
            };
          }
          function j$1(a, t) {
            if (Array.isArray(a)) return s => j$1(s, a[0]);
            let e = {};
            for (let s of Object.keys(a)) {
              let i = a[s],
                r = typeof i == "string" ? {
                  message: () => i
                } : typeof i == "function" ? {
                  message: i
                } : i,
                {
                  message: n
                } = r,
                o = Ht$2(r, ti$2),
                h = typeof n == "string" ? () => n : n;
              e[s] = si$2(Object.assign({
                code: "BABEL_PARSER_SYNTAX_ERROR",
                reasonCode: s,
                toMessage: h
              }, t ? {
                syntaxPlugin: t
              } : {}, o));
            }
            return e;
          }
          var p = Object.assign({}, j$1(Xs$1), j$1(Gs$1), j$1(Ys$1), j$1`pipelineOperator`(Zs$1)),
            {
              defineProperty: ii$2
            } = Object,
            Ot$2 = (a, t) => {
              a && ii$2(a, t, {
                enumerable: !1,
                value: a[t]
              });
            };
          function oe$2(a) {
            return Ot$2(a.loc.start, "index"), Ot$2(a.loc.end, "index"), a;
          }
          var ri$2 = a => class extends a {
              parse() {
                let e = oe$2(super.parse());
                return this.options.tokens && (e.tokens = e.tokens.map(oe$2)), e;
              }
              parseRegExpLiteral({
                pattern: e,
                flags: s
              }) {
                let i = null;
                try {
                  i = new RegExp(e, s);
                } catch {}
                let r = this.estreeParseLiteral(i);
                return r.regex = {
                  pattern: e,
                  flags: s
                }, r;
              }
              parseBigIntLiteral(e) {
                let s;
                try {
                  s = BigInt(e);
                } catch {
                  s = null;
                }
                let i = this.estreeParseLiteral(s);
                return i.bigint = String(i.value || e), i;
              }
              parseDecimalLiteral(e) {
                let i = this.estreeParseLiteral(null);
                return i.decimal = String(i.value || e), i;
              }
              estreeParseLiteral(e) {
                return this.parseLiteral(e, "Literal");
              }
              parseStringLiteral(e) {
                return this.estreeParseLiteral(e);
              }
              parseNumericLiteral(e) {
                return this.estreeParseLiteral(e);
              }
              parseNullLiteral() {
                return this.estreeParseLiteral(null);
              }
              parseBooleanLiteral(e) {
                return this.estreeParseLiteral(e);
              }
              directiveToStmt(e) {
                let s = e.value;
                delete e.value, s.type = "Literal", s.raw = s.extra.raw, s.value = s.extra.expressionValue;
                let i = e;
                return i.type = "ExpressionStatement", i.expression = s, i.directive = s.extra.rawValue, delete s.extra, i;
              }
              initFunction(e, s) {
                super.initFunction(e, s), e.expression = !1;
              }
              checkDeclaration(e) {
                e != null && this.isObjectProperty(e) ? this.checkDeclaration(e.value) : super.checkDeclaration(e);
              }
              getObjectOrClassMethodParams(e) {
                return e.value.params;
              }
              isValidDirective(e) {
                var s;
                return e.type === "ExpressionStatement" && e.expression.type === "Literal" && typeof e.expression.value == "string" && !((s = e.expression.extra) != null && s.parenthesized);
              }
              parseBlockBody(e, s, i, r, n) {
                super.parseBlockBody(e, s, i, r, n);
                e.body = e.directives.map(h => this.directiveToStmt(h)).concat(e.body), delete e.directives;
              }
              pushClassMethod(e, s, i, r, n, o) {
                this.parseMethod(s, i, r, n, o, "ClassMethod", !0), s.typeParameters && (s.value.typeParameters = s.typeParameters, delete s.typeParameters), e.body.push(s);
              }
              parsePrivateName() {
                let e = super.parsePrivateName();
                return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(e) : e;
              }
              convertPrivateNameToPrivateIdentifier(e) {
                let s = super.getPrivateNameSV(e);
                return e = e, delete e.id, e.name = s, e.type = "PrivateIdentifier", e;
              }
              isPrivateName(e) {
                return this.getPluginOption("estree", "classFeatures") ? e.type === "PrivateIdentifier" : super.isPrivateName(e);
              }
              getPrivateNameSV(e) {
                return this.getPluginOption("estree", "classFeatures") ? e.name : super.getPrivateNameSV(e);
              }
              parseLiteral(e, s) {
                let i = super.parseLiteral(e, s);
                return i.raw = i.extra.raw, delete i.extra, i;
              }
              parseFunctionBody(e, s, i = !1) {
                super.parseFunctionBody(e, s, i), e.expression = e.body.type !== "BlockStatement";
              }
              parseMethod(e, s, i, r, n, o, h = !1) {
                let c = this.startNode();
                return c.kind = e.kind, c = super.parseMethod(c, s, i, r, n, o, h), c.type = "FunctionExpression", delete c.kind, e.value = c, o === "ClassPrivateMethod" && (e.computed = !1), this.finishNode(e, "MethodDefinition");
              }
              nameIsConstructor(e) {
                return e.type === "Literal" ? e.value === "constructor" : super.nameIsConstructor(e);
              }
              parseClassProperty(...e) {
                let s = super.parseClassProperty(...e);
                return this.getPluginOption("estree", "classFeatures") && (s.type = "PropertyDefinition"), s;
              }
              parseClassPrivateProperty(...e) {
                let s = super.parseClassPrivateProperty(...e);
                return this.getPluginOption("estree", "classFeatures") && (s.type = "PropertyDefinition", s.computed = !1), s;
              }
              parseObjectMethod(e, s, i, r, n) {
                let o = super.parseObjectMethod(e, s, i, r, n);
                return o && (o.type = "Property", o.kind === "method" && (o.kind = "init"), o.shorthand = !1), o;
              }
              parseObjectProperty(e, s, i, r) {
                let n = super.parseObjectProperty(e, s, i, r);
                return n && (n.kind = "init", n.type = "Property"), n;
              }
              isValidLVal(e, s, i) {
                return e === "Property" ? "value" : super.isValidLVal(e, s, i);
              }
              isAssignable(e, s) {
                return e != null && this.isObjectProperty(e) ? this.isAssignable(e.value, s) : super.isAssignable(e, s);
              }
              toAssignable(e, s = !1) {
                if (e != null && this.isObjectProperty(e)) {
                  let {
                    key: i,
                    value: r
                  } = e;
                  this.isPrivateName(i) && this.classScope.usePrivateName(this.getPrivateNameSV(i), i.loc.start), this.toAssignable(r, s);
                } else super.toAssignable(e, s);
              }
              toAssignableObjectExpressionProp(e, s, i) {
                e.type === "Property" && (e.kind === "get" || e.kind === "set") ? this.raise(p.PatternHasAccessor, e.key) : e.type === "Property" && e.method ? this.raise(p.PatternHasMethod, e.key) : super.toAssignableObjectExpressionProp(e, s, i);
              }
              finishCallExpression(e, s) {
                let i = super.finishCallExpression(e, s);
                if (i.callee.type === "Import") {
                  if (i.type = "ImportExpression", i.source = i.arguments[0], this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) {
                    var r, n;
                    i.options = (r = i.arguments[1]) != null ? r : null, i.attributes = (n = i.arguments[1]) != null ? n : null;
                  }
                  delete i.arguments, delete i.callee;
                }
                return i;
              }
              toReferencedArguments(e) {
                e.type !== "ImportExpression" && super.toReferencedArguments(e);
              }
              parseExport(e, s) {
                let i = this.state.lastTokStartLoc,
                  r = super.parseExport(e, s);
                switch (r.type) {
                  case "ExportAllDeclaration":
                    r.exported = null;
                    break;
                  case "ExportNamedDeclaration":
                    r.specifiers.length === 1 && r.specifiers[0].type === "ExportNamespaceSpecifier" && (r.type = "ExportAllDeclaration", r.exported = r.specifiers[0].exported, delete r.specifiers);
                  case "ExportDefaultDeclaration":
                    {
                      var n;
                      let {
                        declaration: o
                      } = r;
                      (o == null ? void 0 : o.type) === "ClassDeclaration" && ((n = o.decorators) == null ? void 0 : n.length) > 0 && o.start === r.start && this.resetStartLocation(r, i);
                    }
                    break;
                }
                return r;
              }
              parseSubscript(e, s, i, r) {
                let n = super.parseSubscript(e, s, i, r);
                if (r.optionalChainMember) {
                  if ((n.type === "OptionalMemberExpression" || n.type === "OptionalCallExpression") && (n.type = n.type.substring(8)), r.stop) {
                    let o = this.startNodeAtNode(n);
                    return o.expression = n, this.finishNode(o, "ChainExpression");
                  }
                } else (n.type === "MemberExpression" || n.type === "CallExpression") && (n.optional = !1);
                return n;
              }
              isOptionalMemberExpression(e) {
                return e.type === "ChainExpression" ? e.expression.type === "MemberExpression" : super.isOptionalMemberExpression(e);
              }
              hasPropertyAsPrivateName(e) {
                return e.type === "ChainExpression" && (e = e.expression), super.hasPropertyAsPrivateName(e);
              }
              isObjectProperty(e) {
                return e.type === "Property" && e.kind === "init" && !e.method;
              }
              isObjectMethod(e) {
                return e.type === "Property" && (e.method || e.kind === "get" || e.kind === "set");
              }
              finishNodeAt(e, s, i) {
                return oe$2(super.finishNodeAt(e, s, i));
              }
              resetStartLocation(e, s) {
                super.resetStartLocation(e, s), oe$2(e);
              }
              resetEndLocation(e, s = this.state.lastTokEndLoc) {
                super.resetEndLocation(e, s), oe$2(e);
              }
            },
            X$2 = class {
              constructor(t, e) {
                this.token = void 0, this.preserveSpace = void 0, this.token = t, this.preserveSpace = !!e;
              }
            },
            C = {
              brace: new X$2("{"),
              j_oTag: new X$2("<tag"),
              j_cTag: new X$2("</tag"),
              j_expr: new X$2("<tag>...</tag>", !0)
            };
          C.template = new X$2("`", !0);
          var b$2 = !0,
            m = !0,
            $e$2 = !0,
            he$2 = !0,
            q$2 = !0,
            ai$2 = !0,
            ke$2 = class {
              constructor(t, e = {}) {
                this.label = void 0, this.keyword = void 0, this.beforeExpr = void 0, this.startsExpr = void 0, this.rightAssociative = void 0, this.isLoop = void 0, this.isAssign = void 0, this.prefix = void 0, this.postfix = void 0, this.binop = void 0, this.label = t, this.keyword = e.keyword, this.beforeExpr = !!e.beforeExpr, this.startsExpr = !!e.startsExpr, this.rightAssociative = !!e.rightAssociative, this.isLoop = !!e.isLoop, this.isAssign = !!e.isAssign, this.prefix = !!e.prefix, this.postfix = !!e.postfix, this.binop = e.binop != null ? e.binop : null, this.updateContext = null;
              }
            },
            ut$2 = /* @__PURE__ */new Map();
          function A(a, t = {}) {
            t.keyword = a;
            let e = P$2(a, t);
            return ut$2.set(a, e), e;
          }
          function k$1(a, t) {
            return P$2(a, {
              beforeExpr: b$2,
              binop: t
            });
          }
          var ue$1 = -1,
            U$2 = [],
            ft$2 = [],
            dt$2 = [],
            mt$2 = [],
            yt$1 = [],
            xt$1 = [];
          function P$2(a, t = {}) {
            var e, s, i, r;
            return ++ue$1, ft$2.push(a), dt$2.push((e = t.binop) != null ? e : -1), mt$2.push((s = t.beforeExpr) != null ? s : !1), yt$1.push((i = t.startsExpr) != null ? i : !1), xt$1.push((r = t.prefix) != null ? r : !1), U$2.push(new ke$2(a, t)), ue$1;
          }
          function T$1(a, t = {}) {
            var e, s, i, r;
            return ++ue$1, ut$2.set(a, ue$1), ft$2.push(a), dt$2.push((e = t.binop) != null ? e : -1), mt$2.push((s = t.beforeExpr) != null ? s : !1), yt$1.push((i = t.startsExpr) != null ? i : !1), xt$1.push((r = t.prefix) != null ? r : !1), U$2.push(new ke$2("name", t)), ue$1;
          }
          var ni$2 = {
            bracketL: P$2("[", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            bracketHashL: P$2("#[", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            bracketBarL: P$2("[|", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            bracketR: P$2("]"),
            bracketBarR: P$2("|]"),
            braceL: P$2("{", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            braceBarL: P$2("{|", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            braceHashL: P$2("#{", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            braceR: P$2("}"),
            braceBarR: P$2("|}"),
            parenL: P$2("(", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            parenR: P$2(")"),
            comma: P$2(",", {
              beforeExpr: b$2
            }),
            semi: P$2(";", {
              beforeExpr: b$2
            }),
            colon: P$2(":", {
              beforeExpr: b$2
            }),
            doubleColon: P$2("::", {
              beforeExpr: b$2
            }),
            dot: P$2("."),
            question: P$2("?", {
              beforeExpr: b$2
            }),
            questionDot: P$2("?."),
            arrow: P$2("=>", {
              beforeExpr: b$2
            }),
            template: P$2("template"),
            ellipsis: P$2("...", {
              beforeExpr: b$2
            }),
            backQuote: P$2("`", {
              startsExpr: m
            }),
            dollarBraceL: P$2("${", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            templateTail: P$2("...`", {
              startsExpr: m
            }),
            templateNonTail: P$2("...${", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            at: P$2("@"),
            hash: P$2("#", {
              startsExpr: m
            }),
            interpreterDirective: P$2("#!..."),
            eq: P$2("=", {
              beforeExpr: b$2,
              isAssign: he$2
            }),
            assign: P$2("_=", {
              beforeExpr: b$2,
              isAssign: he$2
            }),
            slashAssign: P$2("_=", {
              beforeExpr: b$2,
              isAssign: he$2
            }),
            xorAssign: P$2("_=", {
              beforeExpr: b$2,
              isAssign: he$2
            }),
            moduloAssign: P$2("_=", {
              beforeExpr: b$2,
              isAssign: he$2
            }),
            incDec: P$2("++/--", {
              prefix: q$2,
              postfix: ai$2,
              startsExpr: m
            }),
            bang: P$2("!", {
              beforeExpr: b$2,
              prefix: q$2,
              startsExpr: m
            }),
            tilde: P$2("~", {
              beforeExpr: b$2,
              prefix: q$2,
              startsExpr: m
            }),
            doubleCaret: P$2("^^", {
              startsExpr: m
            }),
            doubleAt: P$2("@@", {
              startsExpr: m
            }),
            pipeline: k$1("|>", 0),
            nullishCoalescing: k$1("??", 1),
            logicalOR: k$1("||", 1),
            logicalAND: k$1("&&", 2),
            bitwiseOR: k$1("|", 3),
            bitwiseXOR: k$1("^", 4),
            bitwiseAND: k$1("&", 5),
            equality: k$1("==/!=/===/!==", 6),
            lt: k$1("</>/<=/>=", 7),
            gt: k$1("</>/<=/>=", 7),
            relational: k$1("</>/<=/>=", 7),
            bitShift: k$1("<</>>/>>>", 8),
            bitShiftL: k$1("<</>>/>>>", 8),
            bitShiftR: k$1("<</>>/>>>", 8),
            plusMin: P$2("+/-", {
              beforeExpr: b$2,
              binop: 9,
              prefix: q$2,
              startsExpr: m
            }),
            modulo: P$2("%", {
              binop: 10,
              startsExpr: m
            }),
            star: P$2("*", {
              binop: 10
            }),
            slash: k$1("/", 10),
            exponent: P$2("**", {
              beforeExpr: b$2,
              binop: 11,
              rightAssociative: !0
            }),
            _in: A("in", {
              beforeExpr: b$2,
              binop: 7
            }),
            _instanceof: A("instanceof", {
              beforeExpr: b$2,
              binop: 7
            }),
            _break: A("break"),
            _case: A("case", {
              beforeExpr: b$2
            }),
            _catch: A("catch"),
            _continue: A("continue"),
            _debugger: A("debugger"),
            _default: A("default", {
              beforeExpr: b$2
            }),
            _else: A("else", {
              beforeExpr: b$2
            }),
            _finally: A("finally"),
            _function: A("function", {
              startsExpr: m
            }),
            _if: A("if"),
            _return: A("return", {
              beforeExpr: b$2
            }),
            _switch: A("switch"),
            _throw: A("throw", {
              beforeExpr: b$2,
              prefix: q$2,
              startsExpr: m
            }),
            _try: A("try"),
            _var: A("var"),
            _const: A("const"),
            _with: A("with"),
            _new: A("new", {
              beforeExpr: b$2,
              startsExpr: m
            }),
            _this: A("this", {
              startsExpr: m
            }),
            _super: A("super", {
              startsExpr: m
            }),
            _class: A("class", {
              startsExpr: m
            }),
            _extends: A("extends", {
              beforeExpr: b$2
            }),
            _export: A("export"),
            _import: A("import", {
              startsExpr: m
            }),
            _null: A("null", {
              startsExpr: m
            }),
            _true: A("true", {
              startsExpr: m
            }),
            _false: A("false", {
              startsExpr: m
            }),
            _typeof: A("typeof", {
              beforeExpr: b$2,
              prefix: q$2,
              startsExpr: m
            }),
            _void: A("void", {
              beforeExpr: b$2,
              prefix: q$2,
              startsExpr: m
            }),
            _delete: A("delete", {
              beforeExpr: b$2,
              prefix: q$2,
              startsExpr: m
            }),
            _do: A("do", {
              isLoop: $e$2,
              beforeExpr: b$2
            }),
            _for: A("for", {
              isLoop: $e$2
            }),
            _while: A("while", {
              isLoop: $e$2
            }),
            _as: T$1("as", {
              startsExpr: m
            }),
            _assert: T$1("assert", {
              startsExpr: m
            }),
            _async: T$1("async", {
              startsExpr: m
            }),
            _await: T$1("await", {
              startsExpr: m
            }),
            _defer: T$1("defer", {
              startsExpr: m
            }),
            _from: T$1("from", {
              startsExpr: m
            }),
            _get: T$1("get", {
              startsExpr: m
            }),
            _let: T$1("let", {
              startsExpr: m
            }),
            _meta: T$1("meta", {
              startsExpr: m
            }),
            _of: T$1("of", {
              startsExpr: m
            }),
            _sent: T$1("sent", {
              startsExpr: m
            }),
            _set: T$1("set", {
              startsExpr: m
            }),
            _source: T$1("source", {
              startsExpr: m
            }),
            _static: T$1("static", {
              startsExpr: m
            }),
            _using: T$1("using", {
              startsExpr: m
            }),
            _yield: T$1("yield", {
              startsExpr: m
            }),
            _asserts: T$1("asserts", {
              startsExpr: m
            }),
            _checks: T$1("checks", {
              startsExpr: m
            }),
            _exports: T$1("exports", {
              startsExpr: m
            }),
            _global: T$1("global", {
              startsExpr: m
            }),
            _implements: T$1("implements", {
              startsExpr: m
            }),
            _intrinsic: T$1("intrinsic", {
              startsExpr: m
            }),
            _infer: T$1("infer", {
              startsExpr: m
            }),
            _is: T$1("is", {
              startsExpr: m
            }),
            _mixins: T$1("mixins", {
              startsExpr: m
            }),
            _proto: T$1("proto", {
              startsExpr: m
            }),
            _require: T$1("require", {
              startsExpr: m
            }),
            _satisfies: T$1("satisfies", {
              startsExpr: m
            }),
            _keyof: T$1("keyof", {
              startsExpr: m
            }),
            _readonly: T$1("readonly", {
              startsExpr: m
            }),
            _unique: T$1("unique", {
              startsExpr: m
            }),
            _abstract: T$1("abstract", {
              startsExpr: m
            }),
            _declare: T$1("declare", {
              startsExpr: m
            }),
            _enum: T$1("enum", {
              startsExpr: m
            }),
            _module: T$1("module", {
              startsExpr: m
            }),
            _namespace: T$1("namespace", {
              startsExpr: m
            }),
            _interface: T$1("interface", {
              startsExpr: m
            }),
            _type: T$1("type", {
              startsExpr: m
            }),
            _opaque: T$1("opaque", {
              startsExpr: m
            }),
            name: P$2("name", {
              startsExpr: m
            }),
            string: P$2("string", {
              startsExpr: m
            }),
            num: P$2("num", {
              startsExpr: m
            }),
            bigint: P$2("bigint", {
              startsExpr: m
            }),
            decimal: P$2("decimal", {
              startsExpr: m
            }),
            regexp: P$2("regexp", {
              startsExpr: m
            }),
            privateName: P$2("#name", {
              startsExpr: m
            }),
            eof: P$2("eof"),
            jsxName: P$2("jsxName"),
            jsxText: P$2("jsxText", {
              beforeExpr: !0
            }),
            jsxTagStart: P$2("jsxTagStart", {
              startsExpr: !0
            }),
            jsxTagEnd: P$2("jsxTagEnd"),
            placeholder: P$2("%%", {
              startsExpr: !0
            })
          };
          function w$1(a) {
            return a >= 93 && a <= 132;
          }
          function oi$2(a) {
            return a <= 92;
          }
          function M$2(a) {
            return a >= 58 && a <= 132;
          }
          function Wt$2(a) {
            return a >= 58 && a <= 136;
          }
          function hi$1(a) {
            return mt$2[a];
          }
          function He$2(a) {
            return yt$1[a];
          }
          function li$2(a) {
            return a >= 29 && a <= 33;
          }
          function Ft$2(a) {
            return a >= 129 && a <= 131;
          }
          function ci$2(a) {
            return a >= 90 && a <= 92;
          }
          function Pt$2(a) {
            return a >= 58 && a <= 92;
          }
          function pi$2(a) {
            return a >= 39 && a <= 59;
          }
          function ui$2(a) {
            return a === 34;
          }
          function fi$2(a) {
            return xt$1[a];
          }
          function di$2(a) {
            return a >= 121 && a <= 123;
          }
          function mi$1(a) {
            return a >= 124 && a <= 130;
          }
          function K$2(a) {
            return ft$2[a];
          }
          function Ee$2(a) {
            return dt$2[a];
          }
          function yi(a) {
            return a === 57;
          }
          function ve$2(a) {
            return a >= 24 && a <= 25;
          }
          function R$2(a) {
            return U$2[a];
          }
          U$2[8].updateContext = a => {
            a.pop();
          }, U$2[5].updateContext = U$2[7].updateContext = U$2[23].updateContext = a => {
            a.push(C.brace);
          }, U$2[22].updateContext = a => {
            a[a.length - 1] === C.template ? a.pop() : a.push(C.template);
          }, U$2[142].updateContext = a => {
            a.push(C.j_expr, C.j_oTag);
          };
          var gt$2 = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",
            Jt$2 = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・",
            xi$1 = /* @__PURE__ */new RegExp("[" + gt$2 + "]"),
            Pi$1 = /* @__PURE__ */new RegExp("[" + gt$2 + Jt$2 + "]");
          gt$2 = Jt$2 = null;
          var Xt$1 = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191],
            gi$1 = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
          function We$1(a, t) {
            let e = 65536;
            for (let s = 0, i = t.length; s < i; s += 2) {
              if (e += t[s], e > a) return !1;
              if (e += t[s + 1], e >= a) return !0;
            }
            return !1;
          }
          function _$1(a) {
            return a < 65 ? a === 36 : a <= 90 ? !0 : a < 97 ? a === 95 : a <= 122 ? !0 : a <= 65535 ? a >= 170 && xi$1.test(String.fromCharCode(a)) : We$1(a, Xt$1);
          }
          function Q$2(a) {
            return a < 48 ? a === 36 : a < 58 ? !0 : a < 65 ? !1 : a <= 90 ? !0 : a < 97 ? a === 95 : a <= 122 ? !0 : a <= 65535 ? a >= 170 && Pi$1.test(String.fromCharCode(a)) : We$1(a, Xt$1) || We$1(a, gi$1);
          }
          var Tt$2 = {
              keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
              strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
              strictBind: ["eval", "arguments"]
            },
            Ti$1 = new Set(Tt$2.keyword),
            bi$1 = new Set(Tt$2.strict),
            Ai$1 = new Set(Tt$2.strictBind);
          function Gt$2(a, t) {
            return t && a === "await" || a === "enum";
          }
          function Yt$2(a, t) {
            return Gt$2(a, t) || bi$1.has(a);
          }
          function Qt$2(a) {
            return Ai$1.has(a);
          }
          function Zt$1(a, t) {
            return Yt$2(a, t) || Qt$2(a);
          }
          function Si$1(a) {
            return Ti$1.has(a);
          }
          function wi$1(a, t, e) {
            return a === 64 && t === 64 && _$1(e);
          }
          var Ci$1 = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
          function Ei$1(a) {
            return Ci$1.has(a);
          }
          var de$2 = class {
              constructor(t) {
                this.flags = 0, this.names = /* @__PURE__ */new Map(), this.firstLexicalName = "", this.flags = t;
              }
            },
            me$2 = class {
              constructor(t, e) {
                this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */new Map(), this.parser = t, this.inModule = e;
              }
              get inTopLevel() {
                return (this.currentScope().flags & 1) > 0;
              }
              get inFunction() {
                return (this.currentVarScopeFlags() & 2) > 0;
              }
              get allowSuper() {
                return (this.currentThisScopeFlags() & 16) > 0;
              }
              get allowDirectSuper() {
                return (this.currentThisScopeFlags() & 32) > 0;
              }
              get inClass() {
                return (this.currentThisScopeFlags() & 64) > 0;
              }
              get inClassAndNotInNonArrowFunction() {
                let t = this.currentThisScopeFlags();
                return (t & 64) > 0 && (t & 2) === 0;
              }
              get inStaticBlock() {
                for (let t = this.scopeStack.length - 1;; t--) {
                  let {
                    flags: e
                  } = this.scopeStack[t];
                  if (e & 128) return !0;
                  if (e & 451) return !1;
                }
              }
              get inNonArrowFunction() {
                return (this.currentThisScopeFlags() & 2) > 0;
              }
              get treatFunctionsAsVar() {
                return this.treatFunctionsAsVarInScope(this.currentScope());
              }
              createScope(t) {
                return new de$2(t);
              }
              enter(t) {
                this.scopeStack.push(this.createScope(t));
              }
              exit() {
                return this.scopeStack.pop().flags;
              }
              treatFunctionsAsVarInScope(t) {
                return !!(t.flags & 130 || !this.parser.inModule && t.flags & 1);
              }
              declareName(t, e, s) {
                let i = this.currentScope();
                if (e & 8 || e & 16) {
                  this.checkRedeclarationInScope(i, t, e, s);
                  let r = i.names.get(t) || 0;
                  e & 16 ? r = r | 4 : (i.firstLexicalName || (i.firstLexicalName = t), r = r | 2), i.names.set(t, r), e & 8 && this.maybeExportDefined(i, t);
                } else if (e & 4) for (let r = this.scopeStack.length - 1; r >= 0 && (i = this.scopeStack[r], this.checkRedeclarationInScope(i, t, e, s), i.names.set(t, (i.names.get(t) || 0) | 1), this.maybeExportDefined(i, t), !(i.flags & 387)); --r);
                this.parser.inModule && i.flags & 1 && this.undefinedExports.delete(t);
              }
              maybeExportDefined(t, e) {
                this.parser.inModule && t.flags & 1 && this.undefinedExports.delete(e);
              }
              checkRedeclarationInScope(t, e, s, i) {
                this.isRedeclaredInScope(t, e, s) && this.parser.raise(p.VarRedeclaration, i, {
                  identifierName: e
                });
              }
              isRedeclaredInScope(t, e, s) {
                if (!(s & 1)) return !1;
                if (s & 8) return t.names.has(e);
                let i = t.names.get(e);
                return s & 16 ? (i & 2) > 0 || !this.treatFunctionsAsVarInScope(t) && (i & 1) > 0 : (i & 2) > 0 && !(t.flags & 8 && t.firstLexicalName === e) || !this.treatFunctionsAsVarInScope(t) && (i & 4) > 0;
              }
              checkLocalExport(t) {
                let {
                  name: e
                } = t;
                this.scopeStack[0].names.has(e) || this.undefinedExports.set(e, t.loc.start);
              }
              currentScope() {
                return this.scopeStack[this.scopeStack.length - 1];
              }
              currentVarScopeFlags() {
                for (let t = this.scopeStack.length - 1;; t--) {
                  let {
                    flags: e
                  } = this.scopeStack[t];
                  if (e & 387) return e;
                }
              }
              currentThisScopeFlags() {
                for (let t = this.scopeStack.length - 1;; t--) {
                  let {
                    flags: e
                  } = this.scopeStack[t];
                  if (e & 451 && !(e & 4)) return e;
                }
              }
            },
            Je$2 = class extends de$2 {
              constructor(...t) {
                super(...t), this.declareFunctions = /* @__PURE__ */new Set();
              }
            },
            Xe$2 = class extends me$2 {
              createScope(t) {
                return new Je$2(t);
              }
              declareName(t, e, s) {
                let i = this.currentScope();
                if (e & 2048) {
                  this.checkRedeclarationInScope(i, t, e, s), this.maybeExportDefined(i, t), i.declareFunctions.add(t);
                  return;
                }
                super.declareName(t, e, s);
              }
              isRedeclaredInScope(t, e, s) {
                if (super.isRedeclaredInScope(t, e, s)) return !0;
                if (s & 2048 && !t.declareFunctions.has(e)) {
                  let i = t.names.get(e);
                  return (i & 4) > 0 || (i & 2) > 0;
                }
                return !1;
              }
              checkLocalExport(t) {
                this.scopeStack[0].declareFunctions.has(t.name) || super.checkLocalExport(t);
              }
            },
            Ge$2 = class {
              constructor() {
                this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
              }
              hasPlugin(t) {
                if (typeof t == "string") return this.plugins.has(t);
                {
                  let [e, s] = t;
                  if (!this.hasPlugin(e)) return !1;
                  let i = this.plugins.get(e);
                  for (let r of Object.keys(s)) if ((i == null ? void 0 : i[r]) !== s[r]) return !1;
                  return !0;
                }
              }
              getPluginOption(t, e) {
                var s;
                return (s = this.plugins.get(t)) == null ? void 0 : s[e];
              }
            };
          function es$1(a, t) {
            a.trailingComments === void 0 ? a.trailingComments = t : a.trailingComments.unshift(...t);
          }
          function Ii$1(a, t) {
            a.leadingComments === void 0 ? a.leadingComments = t : a.leadingComments.unshift(...t);
          }
          function ye$1(a, t) {
            a.innerComments === void 0 ? a.innerComments = t : a.innerComments.unshift(...t);
          }
          function le$2(a, t, e) {
            let s = null,
              i = t.length;
            for (; s === null && i > 0;) s = t[--i];
            s === null || s.start > e.start ? ye$1(a, e.comments) : es$1(s, e.comments);
          }
          var Ye$2 = class extends Ge$2 {
              addComment(t) {
                this.filename && (t.loc.filename = this.filename);
                let {
                  commentsLen: e
                } = this.state;
                this.comments.length !== e && (this.comments.length = e), this.comments.push(t), this.state.commentsLen++;
              }
              processComment(t) {
                let {
                    commentStack: e
                  } = this.state,
                  s = e.length;
                if (s === 0) return;
                let i = s - 1,
                  r = e[i];
                r.start === t.end && (r.leadingNode = t, i--);
                let {
                  start: n
                } = t;
                for (; i >= 0; i--) {
                  let o = e[i],
                    h = o.end;
                  if (h > n) o.containingNode = t, this.finalizeComment(o), e.splice(i, 1);else {
                    h === n && (o.trailingNode = t);
                    break;
                  }
                }
              }
              finalizeComment(t) {
                let {
                  comments: e
                } = t;
                if (t.leadingNode !== null || t.trailingNode !== null) t.leadingNode !== null && es$1(t.leadingNode, e), t.trailingNode !== null && Ii$1(t.trailingNode, e);else {
                  let {
                    containingNode: s,
                    start: i
                  } = t;
                  if (this.input.charCodeAt(i - 1) === 44) switch (s.type) {
                    case "ObjectExpression":
                    case "ObjectPattern":
                    case "RecordExpression":
                      le$2(s, s.properties, t);
                      break;
                    case "CallExpression":
                    case "OptionalCallExpression":
                      le$2(s, s.arguments, t);
                      break;
                    case "FunctionDeclaration":
                    case "FunctionExpression":
                    case "ArrowFunctionExpression":
                    case "ObjectMethod":
                    case "ClassMethod":
                    case "ClassPrivateMethod":
                      le$2(s, s.params, t);
                      break;
                    case "ArrayExpression":
                    case "ArrayPattern":
                    case "TupleExpression":
                      le$2(s, s.elements, t);
                      break;
                    case "ExportNamedDeclaration":
                    case "ImportDeclaration":
                      le$2(s, s.specifiers, t);
                      break;
                    default:
                      ye$1(s, e);
                  } else ye$1(s, e);
                }
              }
              finalizeRemainingComments() {
                let {
                  commentStack: t
                } = this.state;
                for (let e = t.length - 1; e >= 0; e--) this.finalizeComment(t[e]);
                this.state.commentStack = [];
              }
              resetPreviousNodeTrailingComments(t) {
                let {
                    commentStack: e
                  } = this.state,
                  {
                    length: s
                  } = e;
                if (s === 0) return;
                let i = e[s - 1];
                i.leadingNode === t && (i.leadingNode = null);
              }
              resetPreviousIdentifierLeadingComments(t) {
                let {
                    commentStack: e
                  } = this.state,
                  {
                    length: s
                  } = e;
                s !== 0 && (e[s - 1].trailingNode === t ? e[s - 1].trailingNode = null : s >= 2 && e[s - 2].trailingNode === t && (e[s - 2].trailingNode = null));
              }
              takeSurroundingComments(t, e, s) {
                let {
                    commentStack: i
                  } = this.state,
                  r = i.length;
                if (r === 0) return;
                let n = r - 1;
                for (; n >= 0; n--) {
                  let o = i[n],
                    h = o.end;
                  if (o.start === s) o.leadingNode = t;else if (h === e) o.trailingNode = t;else if (h < e) break;
                }
              }
            },
            ts$1 = /\r\n?|[\n\u2028\u2029]/,
            Se$2 = new RegExp(ts$1.source, "g");
          function fe$2(a) {
            switch (a) {
              case 10:
              case 13:
              case 8232:
              case 8233:
                return !0;
              default:
                return !1;
            }
          }
          var Ve$2 = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,
            Ie$2 = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g,
            Bt$2 = new RegExp("(?=(" + Ie$2.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y");
          function Ni$1(a) {
            switch (a) {
              case 9:
              case 11:
              case 12:
              case 32:
              case 160:
              case 5760:
              case 8192:
              case 8193:
              case 8194:
              case 8195:
              case 8196:
              case 8197:
              case 8198:
              case 8199:
              case 8200:
              case 8201:
              case 8202:
              case 8239:
              case 8287:
              case 12288:
              case 65279:
                return !0;
              default:
                return !1;
            }
          }
          var Qe$2 = class a {
              constructor() {
                this.flags = 1024, this.curLine = void 0, this.lineStart = void 0, this.startLoc = void 0, this.endLoc = void 0, this.errors = [], this.potentialArrowAt = -1, this.noArrowAt = [], this.noArrowParamsConversionAt = [], this.topicContext = {
                  maxNumOfResolvableTopics: 0,
                  maxTopicIndex: null
                }, this.labels = [], this.commentsLen = 0, this.commentStack = [], this.pos = 0, this.type = 139, this.value = null, this.start = 0, this.end = 0, this.lastTokEndLoc = null, this.lastTokStartLoc = null, this.context = [C.brace], this.firstInvalidTemplateEscapePos = null, this.strictErrors = /* @__PURE__ */new Map(), this.tokensLength = 0;
              }
              get strict() {
                return (this.flags & 1) > 0;
              }
              set strict(t) {
                t ? this.flags |= 1 : this.flags &= -2;
              }
              init({
                strictMode: t,
                sourceType: e,
                startLine: s,
                startColumn: i
              }) {
                this.strict = t === !1 ? !1 : t === !0 ? !0 : e === "module", this.curLine = s, this.lineStart = -i, this.startLoc = this.endLoc = new F$1(s, i, 0);
              }
              get maybeInArrowParameters() {
                return (this.flags & 2) > 0;
              }
              set maybeInArrowParameters(t) {
                t ? this.flags |= 2 : this.flags &= -3;
              }
              get inType() {
                return (this.flags & 4) > 0;
              }
              set inType(t) {
                t ? this.flags |= 4 : this.flags &= -5;
              }
              get noAnonFunctionType() {
                return (this.flags & 8) > 0;
              }
              set noAnonFunctionType(t) {
                t ? this.flags |= 8 : this.flags &= -9;
              }
              get hasFlowComment() {
                return (this.flags & 16) > 0;
              }
              set hasFlowComment(t) {
                t ? this.flags |= 16 : this.flags &= -17;
              }
              get isAmbientContext() {
                return (this.flags & 32) > 0;
              }
              set isAmbientContext(t) {
                t ? this.flags |= 32 : this.flags &= -33;
              }
              get inAbstractClass() {
                return (this.flags & 64) > 0;
              }
              set inAbstractClass(t) {
                t ? this.flags |= 64 : this.flags &= -65;
              }
              get inDisallowConditionalTypesContext() {
                return (this.flags & 128) > 0;
              }
              set inDisallowConditionalTypesContext(t) {
                t ? this.flags |= 128 : this.flags &= -129;
              }
              get soloAwait() {
                return (this.flags & 256) > 0;
              }
              set soloAwait(t) {
                t ? this.flags |= 256 : this.flags &= -257;
              }
              get inFSharpPipelineDirectBody() {
                return (this.flags & 512) > 0;
              }
              set inFSharpPipelineDirectBody(t) {
                t ? this.flags |= 512 : this.flags &= -513;
              }
              get canStartJSXElement() {
                return (this.flags & 1024) > 0;
              }
              set canStartJSXElement(t) {
                t ? this.flags |= 1024 : this.flags &= -1025;
              }
              get containsEsc() {
                return (this.flags & 2048) > 0;
              }
              set containsEsc(t) {
                t ? this.flags |= 2048 : this.flags &= -2049;
              }
              curPosition() {
                return new F$1(this.curLine, this.pos - this.lineStart, this.pos);
              }
              clone() {
                let t = new a();
                return t.flags = this.flags, t.curLine = this.curLine, t.lineStart = this.lineStart, t.startLoc = this.startLoc, t.endLoc = this.endLoc, t.errors = this.errors.slice(), t.potentialArrowAt = this.potentialArrowAt, t.noArrowAt = this.noArrowAt.slice(), t.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), t.topicContext = this.topicContext, t.labels = this.labels.slice(), t.commentsLen = this.commentsLen, t.commentStack = this.commentStack.slice(), t.pos = this.pos, t.type = this.type, t.value = this.value, t.start = this.start, t.end = this.end, t.lastTokEndLoc = this.lastTokEndLoc, t.lastTokStartLoc = this.lastTokStartLoc, t.context = this.context.slice(), t.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, t.strictErrors = this.strictErrors, t.tokensLength = this.tokensLength, t;
              }
            },
            ki$1 = function (t) {
              return t >= 48 && t <= 57;
            },
            Rt$2 = {
              decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),
              hex: new Set([46, 88, 95, 120])
            },
            we$2 = {
              bin: a => a === 48 || a === 49,
              oct: a => a >= 48 && a <= 55,
              dec: a => a >= 48 && a <= 57,
              hex: a => a >= 48 && a <= 57 || a >= 65 && a <= 70 || a >= 97 && a <= 102
            };
          function Ut$2(a, t, e, s, i, r) {
            let n = e,
              o = s,
              h = i,
              c = "",
              l$1 = null,
              u = e,
              {
                length: f$1
              } = t;
            for (;;) {
              if (e >= f$1) {
                r.unterminated(n, o, h), c += t.slice(u, e);
                break;
              }
              let d$1 = t.charCodeAt(e);
              if (vi$1(a, d$1, t, e)) {
                c += t.slice(u, e);
                break;
              }
              if (d$1 === 92) {
                c += t.slice(u, e);
                let y$1 = Li$1(t, e, s, i, a === "template", r);
                y$1.ch === null && !l$1 ? l$1 = {
                  pos: e,
                  lineStart: s,
                  curLine: i
                } : c += y$1.ch, {
                  pos: e,
                  lineStart: s,
                  curLine: i
                } = y$1, u = e;
              } else d$1 === 8232 || d$1 === 8233 ? (++e, ++i, s = e) : d$1 === 10 || d$1 === 13 ? a === "template" ? (c += t.slice(u, e) + `
`, ++e, d$1 === 13 && t.charCodeAt(e) === 10 && ++e, ++i, u = s = e) : r.unterminated(n, o, h) : ++e;
            }
            return {
              pos: e,
              str: c,
              firstInvalidLoc: l$1,
              lineStart: s,
              curLine: i,
              containsInvalid: !!l$1
            };
          }
          function vi$1(a, t, e, s) {
            return a === "template" ? t === 96 || t === 36 && e.charCodeAt(s + 1) === 123 : t === (a === "double" ? 34 : 39);
          }
          function Li$1(a, t, e, s, i, r) {
            let n = !i;
            t++;
            let o = c => ({
                pos: t,
                ch: c,
                lineStart: e,
                curLine: s
              }),
              h = a.charCodeAt(t++);
            switch (h) {
              case 110:
                return o(`
`);
              case 114:
                return o("\r");
              case 120:
                {
                  let c;
                  return {
                    code: c,
                    pos: t
                  } = Ze$2(a, t, e, s, 2, !1, n, r), o(c === null ? null : String.fromCharCode(c));
                }
              case 117:
                {
                  let c;
                  return {
                    code: c,
                    pos: t
                  } = is$1(a, t, e, s, n, r), o(c === null ? null : String.fromCodePoint(c));
                }
              case 116:
                return o("	");
              case 98:
                return o("\b");
              case 118:
                return o("\v");
              case 102:
                return o("\f");
              case 13:
                a.charCodeAt(t) === 10 && ++t;
              case 10:
                e = t, ++s;
              case 8232:
              case 8233:
                return o("");
              case 56:
              case 57:
                if (i) return o(null);
                r.strictNumericEscape(t - 1, e, s);
              default:
                if (h >= 48 && h <= 55) {
                  let c = t - 1,
                    u = /^[0-7]+/.exec(a.slice(c, t + 2))[0],
                    f$1 = parseInt(u, 8);
                  f$1 > 255 && (u = u.slice(0, -1), f$1 = parseInt(u, 8)), t += u.length - 1;
                  let d$1 = a.charCodeAt(t);
                  if (u !== "0" || d$1 === 56 || d$1 === 57) {
                    if (i) return o(null);
                    r.strictNumericEscape(c, e, s);
                  }
                  return o(String.fromCharCode(f$1));
                }
                return o(String.fromCharCode(h));
            }
          }
          function Ze$2(a, t, e, s, i, r, n, o) {
            let h = t,
              c;
            return {
              n: c,
              pos: t
            } = ss$1(a, t, e, s, 16, i, r, !1, o, !n), c === null && (n ? o.invalidEscapeSequence(h, e, s) : t = h - 1), {
              code: c,
              pos: t
            };
          }
          function ss$1(a, t, e, s, i, r, n, o, h, c) {
            let l$1 = t,
              u = i === 16 ? Rt$2.hex : Rt$2.decBinOct,
              f$1 = i === 16 ? we$2.hex : i === 10 ? we$2.dec : i === 8 ? we$2.oct : we$2.bin,
              d$1 = !1,
              y$1 = 0;
            for (let E$1 = 0, L$2 = r ?? Infinity; E$1 < L$2; ++E$1) {
              let S$1 = a.charCodeAt(t),
                I$1;
              if (S$1 === 95 && o !== "bail") {
                let Ae$2 = a.charCodeAt(t - 1),
                  ne$2 = a.charCodeAt(t + 1);
                if (o) {
                  if (Number.isNaN(ne$2) || !f$1(ne$2) || u.has(Ae$2) || u.has(ne$2)) {
                    if (c) return {
                      n: null,
                      pos: t
                    };
                    h.unexpectedNumericSeparator(t, e, s);
                  }
                } else {
                  if (c) return {
                    n: null,
                    pos: t
                  };
                  h.numericSeparatorInEscapeSequence(t, e, s);
                }
                ++t;
                continue;
              }
              if (S$1 >= 97 ? I$1 = S$1 - 97 + 10 : S$1 >= 65 ? I$1 = S$1 - 65 + 10 : ki$1(S$1) ? I$1 = S$1 - 48 : I$1 = Infinity, I$1 >= i) {
                if (I$1 <= 9 && c) return {
                  n: null,
                  pos: t
                };
                if (I$1 <= 9 && h.invalidDigit(t, e, s, i)) I$1 = 0;else if (n) I$1 = 0, d$1 = !0;else break;
              }
              ++t, y$1 = y$1 * i + I$1;
            }
            return t === l$1 || r != null && t - l$1 !== r || d$1 ? {
              n: null,
              pos: t
            } : {
              n: y$1,
              pos: t
            };
          }
          function is$1(a, t, e, s, i, r) {
            let n = a.charCodeAt(t),
              o;
            if (n === 123) {
              if (++t, {
                code: o,
                pos: t
              } = Ze$2(a, t, e, s, a.indexOf("}", t) - t, !0, i, r), ++t, o !== null && o > 1114111) if (i) r.invalidCodePoint(t, e, s);else return {
                code: null,
                pos: t
              };
            } else ({
              code: o,
              pos: t
            } = Ze$2(a, t, e, s, 4, !1, i, r));
            return {
              code: o,
              pos: t
            };
          }
          function ce$2(a, t, e) {
            return new F$1(e, a - t, a);
          }
          var Di$2 = new Set([103, 109, 115, 105, 121, 117, 100, 118]),
            O$2 = class {
              constructor(t) {
                this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, this.loc = new ee$1(t.startLoc, t.endLoc);
              }
            },
            et$2 = class extends Ye$2 {
              constructor(t, e) {
                super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
                  invalidDigit: (s, i, r, n) => this.options.errorRecovery ? (this.raise(p.InvalidDigit, ce$2(s, i, r), {
                    radix: n
                  }), !0) : !1,
                  numericSeparatorInEscapeSequence: this.errorBuilder(p.NumericSeparatorInEscapeSequence),
                  unexpectedNumericSeparator: this.errorBuilder(p.UnexpectedNumericSeparator)
                }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
                  invalidEscapeSequence: this.errorBuilder(p.InvalidEscapeSequence),
                  invalidCodePoint: this.errorBuilder(p.InvalidCodePoint)
                }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
                  strictNumericEscape: (s, i, r) => {
                    this.recordStrictModeErrors(p.StrictNumericEscape, ce$2(s, i, r));
                  },
                  unterminated: (s, i, r) => {
                    throw this.raise(p.UnterminatedString, ce$2(s - 1, i, r));
                  }
                }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
                  strictNumericEscape: this.errorBuilder(p.StrictNumericEscape),
                  unterminated: (s, i, r) => {
                    throw this.raise(p.UnterminatedTemplate, ce$2(s, i, r));
                  }
                }), this.state = new Qe$2(), this.state.init(t), this.input = e, this.length = e.length, this.comments = [], this.isLookahead = !1;
              }
              pushToken(t) {
                this.tokens.length = this.state.tokensLength, this.tokens.push(t), ++this.state.tokensLength;
              }
              next() {
                this.checkKeywordEscapes(), this.options.tokens && this.pushToken(new O$2(this.state)), this.state.lastTokEndLoc = this.state.endLoc, this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
              }
              eat(t) {
                return this.match(t) ? (this.next(), !0) : !1;
              }
              match(t) {
                return this.state.type === t;
              }
              createLookaheadState(t) {
                return {
                  pos: t.pos,
                  value: null,
                  type: t.type,
                  start: t.start,
                  end: t.end,
                  context: [this.curContext()],
                  inType: t.inType,
                  startLoc: t.startLoc,
                  lastTokEndLoc: t.lastTokEndLoc,
                  curLine: t.curLine,
                  lineStart: t.lineStart,
                  curPosition: t.curPosition
                };
              }
              lookahead() {
                let t = this.state;
                this.state = this.createLookaheadState(t), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
                let e = this.state;
                return this.state = t, e;
              }
              nextTokenStart() {
                return this.nextTokenStartSince(this.state.pos);
              }
              nextTokenStartSince(t) {
                return Ve$2.lastIndex = t, Ve$2.test(this.input) ? Ve$2.lastIndex : t;
              }
              lookaheadCharCode() {
                return this.input.charCodeAt(this.nextTokenStart());
              }
              nextTokenInLineStart() {
                return this.nextTokenInLineStartSince(this.state.pos);
              }
              nextTokenInLineStartSince(t) {
                return Ie$2.lastIndex = t, Ie$2.test(this.input) ? Ie$2.lastIndex : t;
              }
              lookaheadInLineCharCode() {
                return this.input.charCodeAt(this.nextTokenInLineStart());
              }
              codePointAtPos(t) {
                let e = this.input.charCodeAt(t);
                if ((e & 64512) === 55296 && ++t < this.input.length) {
                  let s = this.input.charCodeAt(t);
                  (s & 64512) === 56320 && (e = 65536 + ((e & 1023) << 10) + (s & 1023));
                }
                return e;
              }
              setStrict(t) {
                this.state.strict = t, t && (this.state.strictErrors.forEach(([e, s]) => this.raise(e, s)), this.state.strictErrors.clear());
              }
              curContext() {
                return this.state.context[this.state.context.length - 1];
              }
              nextToken() {
                if (this.skipSpace(), this.state.start = this.state.pos, this.isLookahead || (this.state.startLoc = this.state.curPosition()), this.state.pos >= this.length) {
                  this.finishToken(139);
                  return;
                }
                this.getTokenFromCode(this.codePointAtPos(this.state.pos));
              }
              skipBlockComment(t) {
                let e;
                this.isLookahead || (e = this.state.curPosition());
                let s = this.state.pos,
                  i = this.input.indexOf(t, s + 2);
                if (i === -1) throw this.raise(p.UnterminatedComment, this.state.curPosition());
                for (this.state.pos = i + t.length, Se$2.lastIndex = s + 2; Se$2.test(this.input) && Se$2.lastIndex <= i;) ++this.state.curLine, this.state.lineStart = Se$2.lastIndex;
                if (this.isLookahead) return;
                let r = {
                  type: "CommentBlock",
                  value: this.input.slice(s + 2, i),
                  start: s,
                  end: i + t.length,
                  loc: new ee$1(e, this.state.curPosition())
                };
                return this.options.tokens && this.pushToken(r), r;
              }
              skipLineComment(t) {
                let e = this.state.pos,
                  s;
                this.isLookahead || (s = this.state.curPosition());
                let i = this.input.charCodeAt(this.state.pos += t);
                if (this.state.pos < this.length) for (; !fe$2(i) && ++this.state.pos < this.length;) i = this.input.charCodeAt(this.state.pos);
                if (this.isLookahead) return;
                let r = this.state.pos,
                  o = {
                    type: "CommentLine",
                    value: this.input.slice(e + t, r),
                    start: e,
                    end: r,
                    loc: new ee$1(s, this.state.curPosition())
                  };
                return this.options.tokens && this.pushToken(o), o;
              }
              skipSpace() {
                let t = this.state.pos,
                  e = [];
                e: for (; this.state.pos < this.length;) {
                  let s = this.input.charCodeAt(this.state.pos);
                  switch (s) {
                    case 32:
                    case 160:
                    case 9:
                      ++this.state.pos;
                      break;
                    case 13:
                      this.input.charCodeAt(this.state.pos + 1) === 10 && ++this.state.pos;
                    case 10:
                    case 8232:
                    case 8233:
                      ++this.state.pos, ++this.state.curLine, this.state.lineStart = this.state.pos;
                      break;
                    case 47:
                      switch (this.input.charCodeAt(this.state.pos + 1)) {
                        case 42:
                          {
                            let i = this.skipBlockComment("*/");
                            i !== void 0 && (this.addComment(i), this.options.attachComment && e.push(i));
                            break;
                          }
                        case 47:
                          {
                            let i = this.skipLineComment(2);
                            i !== void 0 && (this.addComment(i), this.options.attachComment && e.push(i));
                            break;
                          }
                        default:
                          break e;
                      }
                      break;
                    default:
                      if (Ni$1(s)) ++this.state.pos;else if (s === 45 && !this.inModule && this.options.annexB) {
                        let i = this.state.pos;
                        if (this.input.charCodeAt(i + 1) === 45 && this.input.charCodeAt(i + 2) === 62 && (t === 0 || this.state.lineStart > t)) {
                          let r = this.skipLineComment(3);
                          r !== void 0 && (this.addComment(r), this.options.attachComment && e.push(r));
                        } else break e;
                      } else if (s === 60 && !this.inModule && this.options.annexB) {
                        let i = this.state.pos;
                        if (this.input.charCodeAt(i + 1) === 33 && this.input.charCodeAt(i + 2) === 45 && this.input.charCodeAt(i + 3) === 45) {
                          let r = this.skipLineComment(4);
                          r !== void 0 && (this.addComment(r), this.options.attachComment && e.push(r));
                        } else break e;
                      } else break e;
                  }
                }
                if (e.length > 0) {
                  let i = {
                    start: t,
                    end: this.state.pos,
                    comments: e,
                    leadingNode: null,
                    trailingNode: null,
                    containingNode: null
                  };
                  this.state.commentStack.push(i);
                }
              }
              finishToken(t, e) {
                this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
                let s = this.state.type;
                this.state.type = t, this.state.value = e, this.isLookahead || this.updateContext(s);
              }
              replaceToken(t) {
                this.state.type = t, this.updateContext();
              }
              readToken_numberSign() {
                if (this.state.pos === 0 && this.readToken_interpreter()) return;
                let t = this.state.pos + 1,
                  e = this.codePointAtPos(t);
                if (e >= 48 && e <= 57) throw this.raise(p.UnexpectedDigitAfterHash, this.state.curPosition());
                if (e === 123 || e === 91 && this.hasPlugin("recordAndTuple")) {
                  if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar") throw this.raise(e === 123 ? p.RecordExpressionHashIncorrectStartSyntaxType : p.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition());
                  this.state.pos += 2, e === 123 ? this.finishToken(7) : this.finishToken(1);
                } else _$1(e) ? (++this.state.pos, this.finishToken(138, this.readWord1(e))) : e === 92 ? (++this.state.pos, this.finishToken(138, this.readWord1())) : this.finishOp(27, 1);
              }
              readToken_dot() {
                let t = this.input.charCodeAt(this.state.pos + 1);
                if (t >= 48 && t <= 57) {
                  this.readNumber(!0);
                  return;
                }
                t === 46 && this.input.charCodeAt(this.state.pos + 2) === 46 ? (this.state.pos += 3, this.finishToken(21)) : (++this.state.pos, this.finishToken(16));
              }
              readToken_slash() {
                this.input.charCodeAt(this.state.pos + 1) === 61 ? this.finishOp(31, 2) : this.finishOp(56, 1);
              }
              readToken_interpreter() {
                if (this.state.pos !== 0 || this.length < 2) return !1;
                let t = this.input.charCodeAt(this.state.pos + 1);
                if (t !== 33) return !1;
                let e = this.state.pos;
                for (this.state.pos += 1; !fe$2(t) && ++this.state.pos < this.length;) t = this.input.charCodeAt(this.state.pos);
                let s = this.input.slice(e + 2, this.state.pos);
                return this.finishToken(28, s), !0;
              }
              readToken_mult_modulo(t) {
                let e = t === 42 ? 55 : 54,
                  s = 1,
                  i = this.input.charCodeAt(this.state.pos + 1);
                t === 42 && i === 42 && (s++, i = this.input.charCodeAt(this.state.pos + 2), e = 57), i === 61 && !this.state.inType && (s++, e = t === 37 ? 33 : 30), this.finishOp(e, s);
              }
              readToken_pipe_amp(t) {
                let e = this.input.charCodeAt(this.state.pos + 1);
                if (e === t) {
                  this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(t === 124 ? 41 : 42, 2);
                  return;
                }
                if (t === 124) {
                  if (e === 62) {
                    this.finishOp(39, 2);
                    return;
                  }
                  if (this.hasPlugin("recordAndTuple") && e === 125) {
                    if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") throw this.raise(p.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
                    this.state.pos += 2, this.finishToken(9);
                    return;
                  }
                  if (this.hasPlugin("recordAndTuple") && e === 93) {
                    if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") throw this.raise(p.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
                    this.state.pos += 2, this.finishToken(4);
                    return;
                  }
                }
                if (e === 61) {
                  this.finishOp(30, 2);
                  return;
                }
                this.finishOp(t === 124 ? 43 : 45, 1);
              }
              readToken_caret() {
                let t = this.input.charCodeAt(this.state.pos + 1);
                t === 61 && !this.state.inType ? this.finishOp(32, 2) : t === 94 && this.hasPlugin(["pipelineOperator", {
                  proposal: "hack",
                  topicToken: "^^"
                }]) ? (this.finishOp(37, 2), this.input.codePointAt(this.state.pos) === 94 && this.unexpected()) : this.finishOp(44, 1);
              }
              readToken_atSign() {
                this.input.charCodeAt(this.state.pos + 1) === 64 && this.hasPlugin(["pipelineOperator", {
                  proposal: "hack",
                  topicToken: "@@"
                }]) ? this.finishOp(38, 2) : this.finishOp(26, 1);
              }
              readToken_plus_min(t) {
                let e = this.input.charCodeAt(this.state.pos + 1);
                if (e === t) {
                  this.finishOp(34, 2);
                  return;
                }
                e === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
              }
              readToken_lt() {
                let {
                    pos: t
                  } = this.state,
                  e = this.input.charCodeAt(t + 1);
                if (e === 60) {
                  if (this.input.charCodeAt(t + 2) === 61) {
                    this.finishOp(30, 3);
                    return;
                  }
                  this.finishOp(51, 2);
                  return;
                }
                if (e === 61) {
                  this.finishOp(49, 2);
                  return;
                }
                this.finishOp(47, 1);
              }
              readToken_gt() {
                let {
                    pos: t
                  } = this.state,
                  e = this.input.charCodeAt(t + 1);
                if (e === 62) {
                  let s = this.input.charCodeAt(t + 2) === 62 ? 3 : 2;
                  if (this.input.charCodeAt(t + s) === 61) {
                    this.finishOp(30, s + 1);
                    return;
                  }
                  this.finishOp(52, s);
                  return;
                }
                if (e === 61) {
                  this.finishOp(49, 2);
                  return;
                }
                this.finishOp(48, 1);
              }
              readToken_eq_excl(t) {
                let e = this.input.charCodeAt(this.state.pos + 1);
                if (e === 61) {
                  this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
                  return;
                }
                if (t === 61 && e === 62) {
                  this.state.pos += 2, this.finishToken(19);
                  return;
                }
                this.finishOp(t === 61 ? 29 : 35, 1);
              }
              readToken_question() {
                let t = this.input.charCodeAt(this.state.pos + 1),
                  e = this.input.charCodeAt(this.state.pos + 2);
                t === 63 ? e === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : t === 46 && !(e >= 48 && e <= 57) ? (this.state.pos += 2, this.finishToken(18)) : (++this.state.pos, this.finishToken(17));
              }
              getTokenFromCode(t) {
                switch (t) {
                  case 46:
                    this.readToken_dot();
                    return;
                  case 40:
                    ++this.state.pos, this.finishToken(10);
                    return;
                  case 41:
                    ++this.state.pos, this.finishToken(11);
                    return;
                  case 59:
                    ++this.state.pos, this.finishToken(13);
                    return;
                  case 44:
                    ++this.state.pos, this.finishToken(12);
                    return;
                  case 91:
                    if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
                      if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") throw this.raise(p.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
                      this.state.pos += 2, this.finishToken(2);
                    } else ++this.state.pos, this.finishToken(0);
                    return;
                  case 93:
                    ++this.state.pos, this.finishToken(3);
                    return;
                  case 123:
                    if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
                      if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") throw this.raise(p.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
                      this.state.pos += 2, this.finishToken(6);
                    } else ++this.state.pos, this.finishToken(5);
                    return;
                  case 125:
                    ++this.state.pos, this.finishToken(8);
                    return;
                  case 58:
                    this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58 ? this.finishOp(15, 2) : (++this.state.pos, this.finishToken(14));
                    return;
                  case 63:
                    this.readToken_question();
                    return;
                  case 96:
                    this.readTemplateToken();
                    return;
                  case 48:
                    {
                      let e = this.input.charCodeAt(this.state.pos + 1);
                      if (e === 120 || e === 88) {
                        this.readRadixNumber(16);
                        return;
                      }
                      if (e === 111 || e === 79) {
                        this.readRadixNumber(8);
                        return;
                      }
                      if (e === 98 || e === 66) {
                        this.readRadixNumber(2);
                        return;
                      }
                    }
                  case 49:
                  case 50:
                  case 51:
                  case 52:
                  case 53:
                  case 54:
                  case 55:
                  case 56:
                  case 57:
                    this.readNumber(!1);
                    return;
                  case 34:
                  case 39:
                    this.readString(t);
                    return;
                  case 47:
                    this.readToken_slash();
                    return;
                  case 37:
                  case 42:
                    this.readToken_mult_modulo(t);
                    return;
                  case 124:
                  case 38:
                    this.readToken_pipe_amp(t);
                    return;
                  case 94:
                    this.readToken_caret();
                    return;
                  case 43:
                  case 45:
                    this.readToken_plus_min(t);
                    return;
                  case 60:
                    this.readToken_lt();
                    return;
                  case 62:
                    this.readToken_gt();
                    return;
                  case 61:
                  case 33:
                    this.readToken_eq_excl(t);
                    return;
                  case 126:
                    this.finishOp(36, 1);
                    return;
                  case 64:
                    this.readToken_atSign();
                    return;
                  case 35:
                    this.readToken_numberSign();
                    return;
                  case 92:
                    this.readWord();
                    return;
                  default:
                    if (_$1(t)) {
                      this.readWord(t);
                      return;
                    }
                }
                throw this.raise(p.InvalidOrUnexpectedToken, this.state.curPosition(), {
                  unexpected: String.fromCodePoint(t)
                });
              }
              finishOp(t, e) {
                let s = this.input.slice(this.state.pos, this.state.pos + e);
                this.state.pos += e, this.finishToken(t, s);
              }
              readRegexp() {
                let t = this.state.startLoc,
                  e = this.state.start + 1,
                  s,
                  i,
                  {
                    pos: r
                  } = this.state;
                for (;; ++r) {
                  if (r >= this.length) throw this.raise(p.UnterminatedRegExp, v$1(t, 1));
                  let c = this.input.charCodeAt(r);
                  if (fe$2(c)) throw this.raise(p.UnterminatedRegExp, v$1(t, 1));
                  if (s) s = !1;else {
                    if (c === 91) i = !0;else if (c === 93 && i) i = !1;else if (c === 47 && !i) break;
                    s = c === 92;
                  }
                }
                let n = this.input.slice(e, r);
                ++r;
                let o = "",
                  h = () => v$1(t, r + 2 - e);
                for (; r < this.length;) {
                  let c = this.codePointAtPos(r),
                    l$1 = String.fromCharCode(c);
                  if (Di$2.has(c)) c === 118 ? o.includes("u") && this.raise(p.IncompatibleRegExpUVFlags, h()) : c === 117 && o.includes("v") && this.raise(p.IncompatibleRegExpUVFlags, h()), o.includes(l$1) && this.raise(p.DuplicateRegExpFlags, h());else if (Q$2(c) || c === 92) this.raise(p.MalformedRegExpFlags, h());else break;
                  ++r, o += l$1;
                }
                this.state.pos = r, this.finishToken(137, {
                  pattern: n,
                  flags: o
                });
              }
              readInt(t, e, s = !1, i = !0) {
                let {
                  n: r,
                  pos: n
                } = ss$1(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, e, s, i, this.errorHandlers_readInt, !1);
                return this.state.pos = n, r;
              }
              readRadixNumber(t) {
                let e = this.state.curPosition(),
                  s = !1;
                this.state.pos += 2;
                let i = this.readInt(t);
                i ?? this.raise(p.InvalidDigit, v$1(e, 2), {
                  radix: t
                });
                let r = this.input.charCodeAt(this.state.pos);
                if (r === 110) ++this.state.pos, s = !0;else if (r === 109) throw this.raise(p.InvalidDecimal, e);
                if (_$1(this.codePointAtPos(this.state.pos))) throw this.raise(p.NumberIdentifier, this.state.curPosition());
                if (s) {
                  let n = this.input.slice(e.index, this.state.pos).replace(/[_n]/g, "");
                  this.finishToken(135, n);
                  return;
                }
                this.finishToken(134, i);
              }
              readNumber(t) {
                let e = this.state.pos,
                  s = this.state.curPosition(),
                  i = !1,
                  r = !1,
                  n = !1,
                  o = !1,
                  h = !1;
                !t && this.readInt(10) === null && this.raise(p.InvalidNumber, this.state.curPosition());
                let c = this.state.pos - e >= 2 && this.input.charCodeAt(e) === 48;
                if (c) {
                  let d$1 = this.input.slice(e, this.state.pos);
                  if (this.recordStrictModeErrors(p.StrictOctalLiteral, s), !this.state.strict) {
                    let y$1 = d$1.indexOf("_");
                    y$1 > 0 && this.raise(p.ZeroDigitNumericSeparator, v$1(s, y$1));
                  }
                  h = c && !/[89]/.test(d$1);
                }
                let l$1 = this.input.charCodeAt(this.state.pos);
                if (l$1 === 46 && !h && (++this.state.pos, this.readInt(10), i = !0, l$1 = this.input.charCodeAt(this.state.pos)), (l$1 === 69 || l$1 === 101) && !h && (l$1 = this.input.charCodeAt(++this.state.pos), (l$1 === 43 || l$1 === 45) && ++this.state.pos, this.readInt(10) === null && this.raise(p.InvalidOrMissingExponent, s), i = !0, o = !0, l$1 = this.input.charCodeAt(this.state.pos)), l$1 === 110 && ((i || c) && this.raise(p.InvalidBigIntLiteral, s), ++this.state.pos, r = !0), l$1 === 109 && (this.expectPlugin("decimal", this.state.curPosition()), (o || c) && this.raise(p.InvalidDecimal, s), ++this.state.pos, n = !0), _$1(this.codePointAtPos(this.state.pos))) throw this.raise(p.NumberIdentifier, this.state.curPosition());
                let u = this.input.slice(e, this.state.pos).replace(/[_mn]/g, "");
                if (r) {
                  this.finishToken(135, u);
                  return;
                }
                if (n) {
                  this.finishToken(136, u);
                  return;
                }
                let f$1 = h ? parseInt(u, 8) : parseFloat(u);
                this.finishToken(134, f$1);
              }
              readCodePoint(t) {
                let {
                  code: e,
                  pos: s
                } = is$1(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, this.errorHandlers_readCodePoint);
                return this.state.pos = s, e;
              }
              readString(t) {
                let {
                  str: e,
                  pos: s,
                  curLine: i,
                  lineStart: r
                } = Ut$2(t === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
                this.state.pos = s + 1, this.state.lineStart = r, this.state.curLine = i, this.finishToken(133, e);
              }
              readTemplateContinuation() {
                this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
              }
              readTemplateToken() {
                let t = this.input[this.state.pos],
                  {
                    str: e,
                    firstInvalidLoc: s,
                    pos: i,
                    curLine: r,
                    lineStart: n
                  } = Ut$2("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
                this.state.pos = i + 1, this.state.lineStart = n, this.state.curLine = r, s && (this.state.firstInvalidTemplateEscapePos = new F$1(s.curLine, s.pos - s.lineStart, s.pos)), this.input.codePointAt(i) === 96 ? this.finishToken(24, s ? null : t + e + "`") : (this.state.pos++, this.finishToken(25, s ? null : t + e + "${"));
              }
              recordStrictModeErrors(t, e) {
                let s = e.index;
                this.state.strict && !this.state.strictErrors.has(s) ? this.raise(t, e) : this.state.strictErrors.set(s, [t, e]);
              }
              readWord1(t) {
                this.state.containsEsc = !1;
                let e = "",
                  s = this.state.pos,
                  i = this.state.pos;
                for (t !== void 0 && (this.state.pos += t <= 65535 ? 1 : 2); this.state.pos < this.length;) {
                  let r = this.codePointAtPos(this.state.pos);
                  if (Q$2(r)) this.state.pos += r <= 65535 ? 1 : 2;else if (r === 92) {
                    this.state.containsEsc = !0, e += this.input.slice(i, this.state.pos);
                    let n = this.state.curPosition(),
                      o = this.state.pos === s ? _$1 : Q$2;
                    if (this.input.charCodeAt(++this.state.pos) !== 117) {
                      this.raise(p.MissingUnicodeEscape, this.state.curPosition()), i = this.state.pos - 1;
                      continue;
                    }
                    ++this.state.pos;
                    let h = this.readCodePoint(!0);
                    h !== null && (o(h) || this.raise(p.EscapedCharNotAnIdentifier, n), e += String.fromCodePoint(h)), i = this.state.pos;
                  } else break;
                }
                return e + this.input.slice(i, this.state.pos);
              }
              readWord(t) {
                let e = this.readWord1(t),
                  s = ut$2.get(e);
                s !== void 0 ? this.finishToken(s, K$2(s)) : this.finishToken(132, e);
              }
              checkKeywordEscapes() {
                let {
                  type: t
                } = this.state;
                Pt$2(t) && this.state.containsEsc && this.raise(p.InvalidEscapedReservedWord, this.state.startLoc, {
                  reservedWord: K$2(t)
                });
              }
              raise(t, e, s = {}) {
                let r = t(e instanceof F$1 ? e : e.loc.start, s);
                if (!this.options.errorRecovery) throw r;
                return this.isLookahead || this.state.errors.push(r), r;
              }
              raiseOverwrite(t, e, s = {}) {
                let i = e instanceof F$1 ? e : e.loc.start,
                  r = i.index,
                  n = this.state.errors;
                for (let o = n.length - 1; o >= 0; o--) {
                  let h = n[o];
                  if (h.loc.index === r) return n[o] = t(i, s);
                  if (h.loc.index < r) break;
                }
                return this.raise(t, e, s);
              }
              updateContext(t) {}
              unexpected(t, e) {
                throw this.raise(p.UnexpectedToken, t ?? this.state.startLoc, {
                  expected: e ? K$2(e) : null
                });
              }
              expectPlugin(t, e) {
                if (this.hasPlugin(t)) return !0;
                throw this.raise(p.MissingPlugin, e ?? this.state.startLoc, {
                  missingPlugin: [t]
                });
              }
              expectOnePlugin(t) {
                if (!t.some(e => this.hasPlugin(e))) throw this.raise(p.MissingOneOfPlugins, this.state.startLoc, {
                  missingPlugin: t
                });
              }
              errorBuilder(t) {
                return (e, s, i) => {
                  this.raise(t, ce$2(e, s, i));
                };
              }
            },
            tt$2 = class {
              constructor() {
                this.privateNames = /* @__PURE__ */new Set(), this.loneAccessors = /* @__PURE__ */new Map(), this.undefinedPrivateNames = /* @__PURE__ */new Map();
              }
            },
            st$2 = class {
              constructor(t) {
                this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */new Map(), this.parser = t;
              }
              current() {
                return this.stack[this.stack.length - 1];
              }
              enter() {
                this.stack.push(new tt$2());
              }
              exit() {
                let t = this.stack.pop(),
                  e = this.current();
                for (let [s, i] of Array.from(t.undefinedPrivateNames)) e ? e.undefinedPrivateNames.has(s) || e.undefinedPrivateNames.set(s, i) : this.parser.raise(p.InvalidPrivateFieldResolution, i, {
                  identifierName: s
                });
              }
              declarePrivateName(t, e, s) {
                let {
                    privateNames: i,
                    loneAccessors: r,
                    undefinedPrivateNames: n
                  } = this.current(),
                  o = i.has(t);
                if (e & 3) {
                  let h = o && r.get(t);
                  if (h) {
                    let c = h & 4,
                      l$1 = e & 4;
                    o = (h & 3) === (e & 3) || c !== l$1, o || r.delete(t);
                  } else o || r.set(t, e);
                }
                o && this.parser.raise(p.PrivateNameRedeclaration, s, {
                  identifierName: t
                }), i.add(t), n.delete(t);
              }
              usePrivateName(t, e) {
                let s;
                for (s of this.stack) if (s.privateNames.has(t)) return;
                s ? s.undefinedPrivateNames.set(t, e) : this.parser.raise(p.InvalidPrivateFieldResolution, e, {
                  identifierName: t
                });
              }
            },
            te$2 = class {
              constructor(t = 0) {
                this.type = t;
              }
              canBeArrowParameterDeclaration() {
                return this.type === 2 || this.type === 1;
              }
              isCertainlyParameterDeclaration() {
                return this.type === 3;
              }
            },
            Le$2 = class extends te$2 {
              constructor(t) {
                super(t), this.declarationErrors = /* @__PURE__ */new Map();
              }
              recordDeclarationError(t, e) {
                let s = e.index;
                this.declarationErrors.set(s, [t, e]);
              }
              clearDeclarationError(t) {
                this.declarationErrors.delete(t);
              }
              iterateErrors(t) {
                this.declarationErrors.forEach(t);
              }
            },
            it$2 = class {
              constructor(t) {
                this.parser = void 0, this.stack = [new te$2()], this.parser = t;
              }
              enter(t) {
                this.stack.push(t);
              }
              exit() {
                this.stack.pop();
              }
              recordParameterInitializerError(t, e) {
                let s = e.loc.start,
                  {
                    stack: i
                  } = this,
                  r = i.length - 1,
                  n = i[r];
                for (; !n.isCertainlyParameterDeclaration();) {
                  if (n.canBeArrowParameterDeclaration()) n.recordDeclarationError(t, s);else return;
                  n = i[--r];
                }
                this.parser.raise(t, s);
              }
              recordArrowParameterBindingError(t, e) {
                let {
                    stack: s
                  } = this,
                  i = s[s.length - 1],
                  r = e.loc.start;
                if (i.isCertainlyParameterDeclaration()) this.parser.raise(t, r);else if (i.canBeArrowParameterDeclaration()) i.recordDeclarationError(t, r);else return;
              }
              recordAsyncArrowParametersError(t) {
                let {
                    stack: e
                  } = this,
                  s = e.length - 1,
                  i = e[s];
                for (; i.canBeArrowParameterDeclaration();) i.type === 2 && i.recordDeclarationError(p.AwaitBindingIdentifier, t), i = e[--s];
              }
              validateAsPattern() {
                let {
                    stack: t
                  } = this,
                  e = t[t.length - 1];
                e.canBeArrowParameterDeclaration() && e.iterateErrors(([s, i]) => {
                  this.parser.raise(s, i);
                  let r = t.length - 2,
                    n = t[r];
                  for (; n.canBeArrowParameterDeclaration();) n.clearDeclarationError(i.index), n = t[--r];
                });
              }
            };
          function Mi$1() {
            return new te$2(3);
          }
          function Oi$1() {
            return new Le$2(1);
          }
          function Fi$1() {
            return new Le$2(2);
          }
          function rs$1() {
            return new te$2();
          }
          var rt$2 = class {
            constructor() {
              this.stacks = [];
            }
            enter(t) {
              this.stacks.push(t);
            }
            exit() {
              this.stacks.pop();
            }
            currentFlags() {
              return this.stacks[this.stacks.length - 1];
            }
            get hasAwait() {
              return (this.currentFlags() & 2) > 0;
            }
            get hasYield() {
              return (this.currentFlags() & 1) > 0;
            }
            get hasReturn() {
              return (this.currentFlags() & 4) > 0;
            }
            get hasIn() {
              return (this.currentFlags() & 8) > 0;
            }
          };
          function Ne$2(a, t) {
            return (a ? 2 : 0) | (t ? 1 : 0);
          }
          var at$2 = class extends et$2 {
              addExtra(t, e, s, i = !0) {
                if (!t) return;
                let r = t.extra = t.extra || {};
                i ? r[e] = s : Object.defineProperty(r, e, {
                  enumerable: i,
                  value: s
                });
              }
              isContextual(t) {
                return this.state.type === t && !this.state.containsEsc;
              }
              isUnparsedContextual(t, e) {
                let s = t + e.length;
                if (this.input.slice(t, s) === e) {
                  let i = this.input.charCodeAt(s);
                  return !(Q$2(i) || (i & 64512) === 55296);
                }
                return !1;
              }
              isLookaheadContextual(t) {
                let e = this.nextTokenStart();
                return this.isUnparsedContextual(e, t);
              }
              eatContextual(t) {
                return this.isContextual(t) ? (this.next(), !0) : !1;
              }
              expectContextual(t, e) {
                if (!this.eatContextual(t)) {
                  if (e != null) throw this.raise(e, this.state.startLoc);
                  this.unexpected(null, t);
                }
              }
              canInsertSemicolon() {
                return this.match(139) || this.match(8) || this.hasPrecedingLineBreak();
              }
              hasPrecedingLineBreak() {
                return ts$1.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start));
              }
              hasFollowingLineBreak() {
                return Bt$2.lastIndex = this.state.end, Bt$2.test(this.input);
              }
              isLineTerminator() {
                return this.eat(13) || this.canInsertSemicolon();
              }
              semicolon(t = !0) {
                (t ? this.isLineTerminator() : this.eat(13)) || this.raise(p.MissingSemicolon, this.state.lastTokEndLoc);
              }
              expect(t, e) {
                this.eat(t) || this.unexpected(e, t);
              }
              tryParse(t, e = this.state.clone()) {
                let s = {
                  node: null
                };
                try {
                  let i = t((r = null) => {
                    throw s.node = r, s;
                  });
                  if (this.state.errors.length > e.errors.length) {
                    let r = this.state;
                    return this.state = e, this.state.tokensLength = r.tokensLength, {
                      node: i,
                      error: r.errors[e.errors.length],
                      thrown: !1,
                      aborted: !1,
                      failState: r
                    };
                  }
                  return {
                    node: i,
                    error: null,
                    thrown: !1,
                    aborted: !1,
                    failState: null
                  };
                } catch (i) {
                  let r = this.state;
                  if (this.state = e, i instanceof SyntaxError) return {
                    node: null,
                    error: i,
                    thrown: !0,
                    aborted: !1,
                    failState: r
                  };
                  if (i === s) return {
                    node: s.node,
                    error: null,
                    thrown: !1,
                    aborted: !0,
                    failState: r
                  };
                  throw i;
                }
              }
              checkExpressionErrors(t, e) {
                if (!t) return !1;
                let {
                    shorthandAssignLoc: s,
                    doubleProtoLoc: i,
                    privateKeyLoc: r,
                    optionalParametersLoc: n
                  } = t,
                  o = !!s || !!i || !!n || !!r;
                if (!e) return o;
                s != null && this.raise(p.InvalidCoverInitializedName, s), i != null && this.raise(p.DuplicateProto, i), r != null && this.raise(p.UnexpectedPrivateField, r), n != null && this.unexpected(n);
              }
              isLiteralPropertyName() {
                return Wt$2(this.state.type);
              }
              isPrivateName(t) {
                return t.type === "PrivateName";
              }
              getPrivateNameSV(t) {
                return t.id.name;
              }
              hasPropertyAsPrivateName(t) {
                return (t.type === "MemberExpression" || t.type === "OptionalMemberExpression") && this.isPrivateName(t.property);
              }
              isObjectProperty(t) {
                return t.type === "ObjectProperty";
              }
              isObjectMethod(t) {
                return t.type === "ObjectMethod";
              }
              initializeScopes(t = this.options.sourceType === "module") {
                let e = this.state.labels;
                this.state.labels = [];
                let s = this.exportedIdentifiers;
                this.exportedIdentifiers = /* @__PURE__ */new Set();
                let i = this.inModule;
                this.inModule = t;
                let r = this.scope;
                this.scope = new (this.getScopeHandler())(this, t);
                let o = this.prodParam;
                this.prodParam = new rt$2();
                let h = this.classScope;
                this.classScope = new st$2(this);
                let c = this.expressionScope;
                return this.expressionScope = new it$2(this), () => {
                  this.state.labels = e, this.exportedIdentifiers = s, this.inModule = i, this.scope = r, this.prodParam = o, this.classScope = h, this.expressionScope = c;
                };
              }
              enterInitialScopes() {
                let t = 0;
                this.inModule && (t |= 2), this.scope.enter(1), this.prodParam.enter(t);
              }
              checkDestructuringPrivate(t) {
                let {
                  privateKeyLoc: e
                } = t;
                e !== null && this.expectPlugin("destructuringPrivate", e);
              }
            },
            Z$1 = class {
              constructor() {
                this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
              }
            },
            se$2 = class {
              constructor(t, e, s) {
                this.type = "", this.start = e, this.end = 0, this.loc = new ee$1(s), t != null && t.options.ranges && (this.range = [e, 0]), t != null && t.filename && (this.loc.filename = t.filename);
              }
            },
            bt$2 = se$2.prototype;
          bt$2.__clone = function () {
            let a = new se$2(void 0, this.start, this.loc.start),
              t = Object.keys(this);
            for (let e = 0, s = t.length; e < s; e++) {
              let i = t[e];
              i !== "leadingComments" && i !== "trailingComments" && i !== "innerComments" && (a[i] = this[i]);
            }
            return a;
          };
          function Bi$1(a) {
            return $$1(a);
          }
          function $$1(a) {
            let {
                type: t,
                start: e,
                end: s,
                loc: i,
                range: r,
                extra: n,
                name: o
              } = a,
              h = Object.create(bt$2);
            return h.type = t, h.start = e, h.end = s, h.loc = i, h.range = r, h.extra = n, h.name = o, t === "Placeholder" && (h.expectedNode = a.expectedNode), h;
          }
          function Ri$1(a) {
            let {
              type: t,
              start: e,
              end: s,
              loc: i,
              range: r,
              extra: n
            } = a;
            if (t === "Placeholder") return Bi$1(a);
            let o = Object.create(bt$2);
            return o.type = t, o.start = e, o.end = s, o.loc = i, o.range = r, a.raw !== void 0 ? o.raw = a.raw : o.extra = n, o.value = a.value, o;
          }
          var nt$2 = class extends at$2 {
              startNode() {
                let t = this.state.startLoc;
                return new se$2(this, t.index, t);
              }
              startNodeAt(t) {
                return new se$2(this, t.index, t);
              }
              startNodeAtNode(t) {
                return this.startNodeAt(t.loc.start);
              }
              finishNode(t, e) {
                return this.finishNodeAt(t, e, this.state.lastTokEndLoc);
              }
              finishNodeAt(t, e, s) {
                return t.type = e, t.end = s.index, t.loc.end = s, this.options.ranges && (t.range[1] = s.index), this.options.attachComment && this.processComment(t), t;
              }
              resetStartLocation(t, e) {
                t.start = e.index, t.loc.start = e, this.options.ranges && (t.range[0] = e.index);
              }
              resetEndLocation(t, e = this.state.lastTokEndLoc) {
                t.end = e.index, t.loc.end = e, this.options.ranges && (t.range[1] = e.index);
              }
              resetStartLocationFromNode(t, e) {
                this.resetStartLocation(t, e.loc.start);
              }
            },
            Ui$1 = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]),
            g$1 = j$1`flow`({
              AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
              AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",
              AssignReservedType: ({
                reservedType: a
              }) => `Cannot overwrite reserved type ${a}.`,
              DeclareClassElement: "The `declare` modifier can only appear on class fields.",
              DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
              DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.",
              EnumBooleanMemberNotInitialized: ({
                memberName: a,
                enumName: t
              }) => `Boolean enum members need to be initialized. Use either \`${a} = true,\` or \`${a} = false,\` in enum \`${t}\`.`,
              EnumDuplicateMemberName: ({
                memberName: a,
                enumName: t
              }) => `Enum member names need to be unique, but the name \`${a}\` has already been used before in enum \`${t}\`.`,
              EnumInconsistentMemberValues: ({
                enumName: a
              }) => `Enum \`${a}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,
              EnumInvalidExplicitType: ({
                invalidEnumType: a,
                enumName: t
              }) => `Enum type \`${a}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${t}\`.`,
              EnumInvalidExplicitTypeUnknownSupplied: ({
                enumName: a
              }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${a}\`.`,
              EnumInvalidMemberInitializerPrimaryType: ({
                enumName: a,
                memberName: t,
                explicitType: e
              }) => `Enum \`${a}\` has type \`${e}\`, so the initializer of \`${t}\` needs to be a ${e} literal.`,
              EnumInvalidMemberInitializerSymbolType: ({
                enumName: a,
                memberName: t
              }) => `Symbol enum members cannot be initialized. Use \`${t},\` in enum \`${a}\`.`,
              EnumInvalidMemberInitializerUnknownType: ({
                enumName: a,
                memberName: t
              }) => `The enum member initializer for \`${t}\` needs to be a literal (either a boolean, number, or string) in enum \`${a}\`.`,
              EnumInvalidMemberName: ({
                enumName: a,
                memberName: t,
                suggestion: e
              }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${t}\`, consider using \`${e}\`, in enum \`${a}\`.`,
              EnumNumberMemberNotInitialized: ({
                enumName: a,
                memberName: t
              }) => `Number enum members need to be initialized, e.g. \`${t} = 1\` in enum \`${a}\`.`,
              EnumStringMemberInconsistentlyInitialized: ({
                enumName: a
              }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${a}\`.`,
              GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.",
              ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.",
              ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",
              InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.",
              InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.",
              InexactVariance: "Explicit inexact syntax cannot have variance.",
              InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.",
              MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
              NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.",
              NestedFlowComment: "Cannot have a flow comment inside another flow comment.",
              PatternIsOptional: Object.assign({
                message: "A binding pattern parameter cannot be optional in an implementation signature."
              }, {
                reasonCode: "OptionalBindingPattern"
              }),
              SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.",
              SpreadVariance: "Spread properties cannot have variance.",
              ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.",
              ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",
              ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.",
              ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.",
              ThisParamNoDefault: "The `this` parameter may not have a default value.",
              TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
              TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.",
              UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.",
              UnexpectedReservedType: ({
                reservedType: a
              }) => `Unexpected reserved type ${a}.`,
              UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.",
              UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
              UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.",
              UnexpectedSubtractionOperand: "Unexpected token, expected \"number\" or \"bigint\".",
              UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.",
              UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",
              UnsupportedDeclareExportKind: ({
                unsupportedExportKind: a,
                suggestion: t
              }) => `\`declare export ${a}\` is not supported. Use \`${t}\` instead.`,
              UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
              UnterminatedFlowComment: "Unterminated flow-comment."
            });
          function _i$1(a) {
            return a.type === "DeclareExportAllDeclaration" || a.type === "DeclareExportDeclaration" && (!a.declaration || a.declaration.type !== "TypeAlias" && a.declaration.type !== "InterfaceDeclaration");
          }
          function _t$2(a) {
            return a.importKind === "type" || a.importKind === "typeof";
          }
          var ji$1 = {
            const: "declare export var",
            let: "declare export var",
            type: "export type",
            interface: "export interface"
          };
          function $i$1(a, t) {
            let e = [],
              s = [];
            for (let i = 0; i < a.length; i++) (t(a[i], i, a) ? e : s).push(a[i]);
            return [e, s];
          }
          var Vi$1 = /\*?\s*@((?:no)?flow)\b/,
            qi$1 = a => class extends a {
              constructor(...e) {
                super(...e), this.flowPragma = void 0;
              }
              getScopeHandler() {
                return Xe$2;
              }
              shouldParseTypes() {
                return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
              }
              shouldParseEnums() {
                return !!this.getPluginOption("flow", "enums");
              }
              finishToken(e, s) {
                e !== 133 && e !== 13 && e !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(e, s);
              }
              addComment(e) {
                if (this.flowPragma === void 0) {
                  let s = Vi$1.exec(e.value);
                  if (s) if (s[1] === "flow") this.flowPragma = "flow";else if (s[1] === "noflow") this.flowPragma = "noflow";else throw new Error("Unexpected flow pragma");
                }
                super.addComment(e);
              }
              flowParseTypeInitialiser(e) {
                let s = this.state.inType;
                this.state.inType = !0, this.expect(e || 14);
                let i = this.flowParseType();
                return this.state.inType = s, i;
              }
              flowParsePredicate() {
                let e = this.startNode(),
                  s = this.state.startLoc;
                return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > s.index + 1 && this.raise(g$1.UnexpectedSpaceBetweenModuloChecks, s), this.eat(10) ? (e.value = super.parseExpression(), this.expect(11), this.finishNode(e, "DeclaredPredicate")) : this.finishNode(e, "InferredPredicate");
              }
              flowParseTypeAndPredicateInitialiser() {
                let e = this.state.inType;
                this.state.inType = !0, this.expect(14);
                let s = null,
                  i = null;
                return this.match(54) ? (this.state.inType = e, i = this.flowParsePredicate()) : (s = this.flowParseType(), this.state.inType = e, this.match(54) && (i = this.flowParsePredicate())), [s, i];
              }
              flowParseDeclareClass(e) {
                return this.next(), this.flowParseInterfaceish(e, !0), this.finishNode(e, "DeclareClass");
              }
              flowParseDeclareFunction(e) {
                this.next();
                let s = e.id = this.parseIdentifier(),
                  i = this.startNode(),
                  r = this.startNode();
                this.match(47) ? i.typeParameters = this.flowParseTypeParameterDeclaration() : i.typeParameters = null, this.expect(10);
                let n = this.flowParseFunctionTypeParams();
                return i.params = n.params, i.rest = n.rest, i.this = n._this, this.expect(11), [i.returnType, e.predicate] = this.flowParseTypeAndPredicateInitialiser(), r.typeAnnotation = this.finishNode(i, "FunctionTypeAnnotation"), s.typeAnnotation = this.finishNode(r, "TypeAnnotation"), this.resetEndLocation(s), this.semicolon(), this.scope.declareName(e.id.name, 2048, e.id.loc.start), this.finishNode(e, "DeclareFunction");
              }
              flowParseDeclare(e, s) {
                if (this.match(80)) return this.flowParseDeclareClass(e);
                if (this.match(68)) return this.flowParseDeclareFunction(e);
                if (this.match(74)) return this.flowParseDeclareVariable(e);
                if (this.eatContextual(127)) return this.match(16) ? this.flowParseDeclareModuleExports(e) : (s && this.raise(g$1.NestedDeclareModule, this.state.lastTokStartLoc), this.flowParseDeclareModule(e));
                if (this.isContextual(130)) return this.flowParseDeclareTypeAlias(e);
                if (this.isContextual(131)) return this.flowParseDeclareOpaqueType(e);
                if (this.isContextual(129)) return this.flowParseDeclareInterface(e);
                if (this.match(82)) return this.flowParseDeclareExportDeclaration(e, s);
                this.unexpected();
              }
              flowParseDeclareVariable(e) {
                return this.next(), e.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(e.id.name, 5, e.id.loc.start), this.semicolon(), this.finishNode(e, "DeclareVariable");
              }
              flowParseDeclareModule(e) {
                this.scope.enter(0), this.match(133) ? e.id = super.parseExprAtom() : e.id = this.parseIdentifier();
                let s = e.body = this.startNode(),
                  i = s.body = [];
                for (this.expect(5); !this.match(8);) {
                  let o = this.startNode();
                  this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(g$1.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc), super.parseImport(o)) : (this.expectContextual(125, g$1.UnsupportedStatementInDeclareModule), o = this.flowParseDeclare(o, !0)), i.push(o);
                }
                this.scope.exit(), this.expect(8), this.finishNode(s, "BlockStatement");
                let r = null,
                  n = !1;
                return i.forEach(o => {
                  _i$1(o) ? (r === "CommonJS" && this.raise(g$1.AmbiguousDeclareModuleKind, o), r = "ES") : o.type === "DeclareModuleExports" && (n && this.raise(g$1.DuplicateDeclareModuleExports, o), r === "ES" && this.raise(g$1.AmbiguousDeclareModuleKind, o), r = "CommonJS", n = !0);
                }), e.kind = r || "CommonJS", this.finishNode(e, "DeclareModule");
              }
              flowParseDeclareExportDeclaration(e, s) {
                if (this.expect(82), this.eat(65)) return this.match(68) || this.match(80) ? e.declaration = this.flowParseDeclare(this.startNode()) : (e.declaration = this.flowParseType(), this.semicolon()), e.default = !0, this.finishNode(e, "DeclareExportDeclaration");
                if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !s) {
                  let i = this.state.value;
                  throw this.raise(g$1.UnsupportedDeclareExportKind, this.state.startLoc, {
                    unsupportedExportKind: i,
                    suggestion: ji$1[i]
                  });
                }
                if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) return e.declaration = this.flowParseDeclare(this.startNode()), e.default = !1, this.finishNode(e, "DeclareExportDeclaration");
                if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) return e = this.parseExport(e, null), e.type === "ExportNamedDeclaration" && (e.type = "ExportDeclaration", e.default = !1, delete e.exportKind), e.type = "Declare" + e.type, e;
                this.unexpected();
              }
              flowParseDeclareModuleExports(e) {
                return this.next(), this.expectContextual(111), e.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(e, "DeclareModuleExports");
              }
              flowParseDeclareTypeAlias(e) {
                this.next();
                let s = this.flowParseTypeAlias(e);
                return s.type = "DeclareTypeAlias", s;
              }
              flowParseDeclareOpaqueType(e) {
                this.next();
                let s = this.flowParseOpaqueType(e, !0);
                return s.type = "DeclareOpaqueType", s;
              }
              flowParseDeclareInterface(e) {
                return this.next(), this.flowParseInterfaceish(e, !1), this.finishNode(e, "DeclareInterface");
              }
              flowParseInterfaceish(e, s) {
                if (e.id = this.flowParseRestrictedIdentifier(!s, !0), this.scope.declareName(e.id.name, s ? 17 : 8201, e.id.loc.start), this.match(47) ? e.typeParameters = this.flowParseTypeParameterDeclaration() : e.typeParameters = null, e.extends = [], this.eat(81)) do e.extends.push(this.flowParseInterfaceExtends()); while (!s && this.eat(12));
                if (s) {
                  if (e.implements = [], e.mixins = [], this.eatContextual(117)) do e.mixins.push(this.flowParseInterfaceExtends()); while (this.eat(12));
                  if (this.eatContextual(113)) do e.implements.push(this.flowParseInterfaceExtends()); while (this.eat(12));
                }
                e.body = this.flowParseObjectType({
                  allowStatic: s,
                  allowExact: !1,
                  allowSpread: !1,
                  allowProto: s,
                  allowInexact: !1
                });
              }
              flowParseInterfaceExtends() {
                let e = this.startNode();
                return e.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? e.typeParameters = this.flowParseTypeParameterInstantiation() : e.typeParameters = null, this.finishNode(e, "InterfaceExtends");
              }
              flowParseInterface(e) {
                return this.flowParseInterfaceish(e, !1), this.finishNode(e, "InterfaceDeclaration");
              }
              checkNotUnderscore(e) {
                e === "_" && this.raise(g$1.UnexpectedReservedUnderscore, this.state.startLoc);
              }
              checkReservedType(e, s, i) {
                Ui$1.has(e) && this.raise(i ? g$1.AssignReservedType : g$1.UnexpectedReservedType, s, {
                  reservedType: e
                });
              }
              flowParseRestrictedIdentifier(e, s) {
                return this.checkReservedType(this.state.value, this.state.startLoc, s), this.parseIdentifier(e);
              }
              flowParseTypeAlias(e) {
                return e.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(e.id.name, 8201, e.id.loc.start), this.match(47) ? e.typeParameters = this.flowParseTypeParameterDeclaration() : e.typeParameters = null, e.right = this.flowParseTypeInitialiser(29), this.semicolon(), this.finishNode(e, "TypeAlias");
              }
              flowParseOpaqueType(e, s) {
                return this.expectContextual(130), e.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(e.id.name, 8201, e.id.loc.start), this.match(47) ? e.typeParameters = this.flowParseTypeParameterDeclaration() : e.typeParameters = null, e.supertype = null, this.match(14) && (e.supertype = this.flowParseTypeInitialiser(14)), e.impltype = null, s || (e.impltype = this.flowParseTypeInitialiser(29)), this.semicolon(), this.finishNode(e, "OpaqueType");
              }
              flowParseTypeParameter(e = !1) {
                let s = this.state.startLoc,
                  i = this.startNode(),
                  r = this.flowParseVariance(),
                  n = this.flowParseTypeAnnotatableIdentifier();
                return i.name = n.name, i.variance = r, i.bound = n.typeAnnotation, this.match(29) ? (this.eat(29), i.default = this.flowParseType()) : e && this.raise(g$1.MissingTypeParamDefault, s), this.finishNode(i, "TypeParameter");
              }
              flowParseTypeParameterDeclaration() {
                let e = this.state.inType,
                  s = this.startNode();
                s.params = [], this.state.inType = !0, this.match(47) || this.match(142) ? this.next() : this.unexpected();
                let i = !1;
                do {
                  let r = this.flowParseTypeParameter(i);
                  s.params.push(r), r.default && (i = !0), this.match(48) || this.expect(12);
                } while (!this.match(48));
                return this.expect(48), this.state.inType = e, this.finishNode(s, "TypeParameterDeclaration");
              }
              flowParseTypeParameterInstantiation() {
                let e = this.startNode(),
                  s = this.state.inType;
                e.params = [], this.state.inType = !0, this.expect(47);
                let i = this.state.noAnonFunctionType;
                for (this.state.noAnonFunctionType = !1; !this.match(48);) e.params.push(this.flowParseType()), this.match(48) || this.expect(12);
                return this.state.noAnonFunctionType = i, this.expect(48), this.state.inType = s, this.finishNode(e, "TypeParameterInstantiation");
              }
              flowParseTypeParameterInstantiationCallOrNew() {
                let e = this.startNode(),
                  s = this.state.inType;
                for (e.params = [], this.state.inType = !0, this.expect(47); !this.match(48);) e.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
                return this.expect(48), this.state.inType = s, this.finishNode(e, "TypeParameterInstantiation");
              }
              flowParseInterfaceType() {
                let e = this.startNode();
                if (this.expectContextual(129), e.extends = [], this.eat(81)) do e.extends.push(this.flowParseInterfaceExtends()); while (this.eat(12));
                return e.body = this.flowParseObjectType({
                  allowStatic: !1,
                  allowExact: !1,
                  allowSpread: !1,
                  allowProto: !1,
                  allowInexact: !1
                }), this.finishNode(e, "InterfaceTypeAnnotation");
              }
              flowParseObjectPropertyKey() {
                return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(!0);
              }
              flowParseObjectTypeIndexer(e, s, i) {
                return e.static = s, this.lookahead().type === 14 ? (e.id = this.flowParseObjectPropertyKey(), e.key = this.flowParseTypeInitialiser()) : (e.id = null, e.key = this.flowParseType()), this.expect(3), e.value = this.flowParseTypeInitialiser(), e.variance = i, this.finishNode(e, "ObjectTypeIndexer");
              }
              flowParseObjectTypeInternalSlot(e, s) {
                return e.static = s, e.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (e.method = !0, e.optional = !1, e.value = this.flowParseObjectTypeMethodish(this.startNodeAt(e.loc.start))) : (e.method = !1, this.eat(17) && (e.optional = !0), e.value = this.flowParseTypeInitialiser()), this.finishNode(e, "ObjectTypeInternalSlot");
              }
              flowParseObjectTypeMethodish(e) {
                for (e.params = [], e.rest = null, e.typeParameters = null, e.this = null, this.match(47) && (e.typeParameters = this.flowParseTypeParameterDeclaration()), this.expect(10), this.match(78) && (e.this = this.flowParseFunctionTypeParam(!0), e.this.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21);) e.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
                return this.eat(21) && (e.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), e.returnType = this.flowParseTypeInitialiser(), this.finishNode(e, "FunctionTypeAnnotation");
              }
              flowParseObjectTypeCallProperty(e, s) {
                let i = this.startNode();
                return e.static = s, e.value = this.flowParseObjectTypeMethodish(i), this.finishNode(e, "ObjectTypeCallProperty");
              }
              flowParseObjectType({
                allowStatic: e,
                allowExact: s,
                allowSpread: i,
                allowProto: r,
                allowInexact: n
              }) {
                let o = this.state.inType;
                this.state.inType = !0;
                let h = this.startNode();
                h.callProperties = [], h.properties = [], h.indexers = [], h.internalSlots = [];
                let c,
                  l$1,
                  u = !1;
                for (s && this.match(6) ? (this.expect(6), c = 9, l$1 = !0) : (this.expect(5), c = 8, l$1 = !1), h.exact = l$1; !this.match(c);) {
                  let d$1 = !1,
                    y$1 = null,
                    E$1 = null,
                    L$2 = this.startNode();
                  if (r && this.isContextual(118)) {
                    let I$1 = this.lookahead();
                    I$1.type !== 14 && I$1.type !== 17 && (this.next(), y$1 = this.state.startLoc, e = !1);
                  }
                  if (e && this.isContextual(106)) {
                    let I$1 = this.lookahead();
                    I$1.type !== 14 && I$1.type !== 17 && (this.next(), d$1 = !0);
                  }
                  let S$1 = this.flowParseVariance();
                  if (this.eat(0)) y$1 != null && this.unexpected(y$1), this.eat(0) ? (S$1 && this.unexpected(S$1.loc.start), h.internalSlots.push(this.flowParseObjectTypeInternalSlot(L$2, d$1))) : h.indexers.push(this.flowParseObjectTypeIndexer(L$2, d$1, S$1));else if (this.match(10) || this.match(47)) y$1 != null && this.unexpected(y$1), S$1 && this.unexpected(S$1.loc.start), h.callProperties.push(this.flowParseObjectTypeCallProperty(L$2, d$1));else {
                    let I$1 = "init";
                    if (this.isContextual(99) || this.isContextual(104)) Wt$2(this.lookahead().type) && (I$1 = this.state.value, this.next());
                    let Ae$2 = this.flowParseObjectTypeProperty(L$2, d$1, y$1, S$1, I$1, i, n ?? !l$1);
                    Ae$2 === null ? (u = !0, E$1 = this.state.lastTokStartLoc) : h.properties.push(Ae$2);
                  }
                  this.flowObjectTypeSemicolon(), E$1 && !this.match(8) && !this.match(9) && this.raise(g$1.UnexpectedExplicitInexactInObject, E$1);
                }
                this.expect(c), i && (h.inexact = u);
                let f$1 = this.finishNode(h, "ObjectTypeAnnotation");
                return this.state.inType = o, f$1;
              }
              flowParseObjectTypeProperty(e, s, i, r, n, o, h) {
                if (this.eat(21)) return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (o ? h || this.raise(g$1.InexactInsideExact, this.state.lastTokStartLoc) : this.raise(g$1.InexactInsideNonObject, this.state.lastTokStartLoc), r && this.raise(g$1.InexactVariance, r), null) : (o || this.raise(g$1.UnexpectedSpreadType, this.state.lastTokStartLoc), i != null && this.unexpected(i), r && this.raise(g$1.SpreadVariance, r), e.argument = this.flowParseType(), this.finishNode(e, "ObjectTypeSpreadProperty"));
                {
                  e.key = this.flowParseObjectPropertyKey(), e.static = s, e.proto = i != null, e.kind = n;
                  let c = !1;
                  return this.match(47) || this.match(10) ? (e.method = !0, i != null && this.unexpected(i), r && this.unexpected(r.loc.start), e.value = this.flowParseObjectTypeMethodish(this.startNodeAt(e.loc.start)), (n === "get" || n === "set") && this.flowCheckGetterSetterParams(e), !o && e.key.name === "constructor" && e.value.this && this.raise(g$1.ThisParamBannedInConstructor, e.value.this)) : (n !== "init" && this.unexpected(), e.method = !1, this.eat(17) && (c = !0), e.value = this.flowParseTypeInitialiser(), e.variance = r), e.optional = c, this.finishNode(e, "ObjectTypeProperty");
                }
              }
              flowCheckGetterSetterParams(e) {
                let s = e.kind === "get" ? 0 : 1,
                  i = e.value.params.length + (e.value.rest ? 1 : 0);
                e.value.this && this.raise(e.kind === "get" ? g$1.GetterMayNotHaveThisParam : g$1.SetterMayNotHaveThisParam, e.value.this), i !== s && this.raise(e.kind === "get" ? p.BadGetterArity : p.BadSetterArity, e), e.kind === "set" && e.value.rest && this.raise(p.BadSetterRestParameter, e);
              }
              flowObjectTypeSemicolon() {
                !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
              }
              flowParseQualifiedTypeIdentifier(e, s) {
                e ??= this.state.startLoc;
                let r = s || this.flowParseRestrictedIdentifier(!0);
                for (; this.eat(16);) {
                  let n = this.startNodeAt(e);
                  n.qualification = r, n.id = this.flowParseRestrictedIdentifier(!0), r = this.finishNode(n, "QualifiedTypeIdentifier");
                }
                return r;
              }
              flowParseGenericType(e, s) {
                let i = this.startNodeAt(e);
                return i.typeParameters = null, i.id = this.flowParseQualifiedTypeIdentifier(e, s), this.match(47) && (i.typeParameters = this.flowParseTypeParameterInstantiation()), this.finishNode(i, "GenericTypeAnnotation");
              }
              flowParseTypeofType() {
                let e = this.startNode();
                return this.expect(87), e.argument = this.flowParsePrimaryType(), this.finishNode(e, "TypeofTypeAnnotation");
              }
              flowParseTupleType() {
                let e = this.startNode();
                for (e.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (e.types.push(this.flowParseType()), !this.match(3));) this.expect(12);
                return this.expect(3), this.finishNode(e, "TupleTypeAnnotation");
              }
              flowParseFunctionTypeParam(e) {
                let s = null,
                  i = !1,
                  r = null,
                  n = this.startNode(),
                  o = this.lookahead(),
                  h = this.state.type === 78;
                return o.type === 14 || o.type === 17 ? (h && !e && this.raise(g$1.ThisParamMustBeFirst, n), s = this.parseIdentifier(h), this.eat(17) && (i = !0, h && this.raise(g$1.ThisParamMayNotBeOptional, n)), r = this.flowParseTypeInitialiser()) : r = this.flowParseType(), n.name = s, n.optional = i, n.typeAnnotation = r, this.finishNode(n, "FunctionTypeParam");
              }
              reinterpretTypeAsFunctionTypeParam(e) {
                let s = this.startNodeAt(e.loc.start);
                return s.name = null, s.optional = !1, s.typeAnnotation = e, this.finishNode(s, "FunctionTypeParam");
              }
              flowParseFunctionTypeParams(e = []) {
                let s = null,
                  i = null;
                for (this.match(78) && (i = this.flowParseFunctionTypeParam(!0), i.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21);) e.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
                return this.eat(21) && (s = this.flowParseFunctionTypeParam(!1)), {
                  params: e,
                  rest: s,
                  _this: i
                };
              }
              flowIdentToTypeAnnotation(e, s, i) {
                switch (i.name) {
                  case "any":
                    return this.finishNode(s, "AnyTypeAnnotation");
                  case "bool":
                  case "boolean":
                    return this.finishNode(s, "BooleanTypeAnnotation");
                  case "mixed":
                    return this.finishNode(s, "MixedTypeAnnotation");
                  case "empty":
                    return this.finishNode(s, "EmptyTypeAnnotation");
                  case "number":
                    return this.finishNode(s, "NumberTypeAnnotation");
                  case "string":
                    return this.finishNode(s, "StringTypeAnnotation");
                  case "symbol":
                    return this.finishNode(s, "SymbolTypeAnnotation");
                  default:
                    return this.checkNotUnderscore(i.name), this.flowParseGenericType(e, i);
                }
              }
              flowParsePrimaryType() {
                let e = this.state.startLoc,
                  s = this.startNode(),
                  i,
                  r,
                  n = !1,
                  o = this.state.noAnonFunctionType;
                switch (this.state.type) {
                  case 5:
                    return this.flowParseObjectType({
                      allowStatic: !1,
                      allowExact: !1,
                      allowSpread: !0,
                      allowProto: !1,
                      allowInexact: !0
                    });
                  case 6:
                    return this.flowParseObjectType({
                      allowStatic: !1,
                      allowExact: !0,
                      allowSpread: !0,
                      allowProto: !1,
                      allowInexact: !1
                    });
                  case 0:
                    return this.state.noAnonFunctionType = !1, r = this.flowParseTupleType(), this.state.noAnonFunctionType = o, r;
                  case 47:
                    {
                      let h = this.startNode();
                      return h.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), i = this.flowParseFunctionTypeParams(), h.params = i.params, h.rest = i.rest, h.this = i._this, this.expect(11), this.expect(19), h.returnType = this.flowParseType(), this.finishNode(h, "FunctionTypeAnnotation");
                    }
                  case 10:
                    {
                      let h = this.startNode();
                      if (this.next(), !this.match(11) && !this.match(21)) if (w$1(this.state.type) || this.match(78)) {
                        let c = this.lookahead().type;
                        n = c !== 17 && c !== 14;
                      } else n = !0;
                      if (n) {
                        if (this.state.noAnonFunctionType = !1, r = this.flowParseType(), this.state.noAnonFunctionType = o, this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) return this.expect(11), r;
                        this.eat(12);
                      }
                      return r ? i = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(r)]) : i = this.flowParseFunctionTypeParams(), h.params = i.params, h.rest = i.rest, h.this = i._this, this.expect(11), this.expect(19), h.returnType = this.flowParseType(), h.typeParameters = null, this.finishNode(h, "FunctionTypeAnnotation");
                    }
                  case 133:
                    return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
                  case 85:
                  case 86:
                    return s.value = this.match(85), this.next(), this.finishNode(s, "BooleanLiteralTypeAnnotation");
                  case 53:
                    if (this.state.value === "-") {
                      if (this.next(), this.match(134)) return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", s);
                      if (this.match(135)) return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", s);
                      throw this.raise(g$1.UnexpectedSubtractionOperand, this.state.startLoc);
                    }
                    this.unexpected();
                    return;
                  case 134:
                    return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
                  case 135:
                    return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
                  case 88:
                    return this.next(), this.finishNode(s, "VoidTypeAnnotation");
                  case 84:
                    return this.next(), this.finishNode(s, "NullLiteralTypeAnnotation");
                  case 78:
                    return this.next(), this.finishNode(s, "ThisTypeAnnotation");
                  case 55:
                    return this.next(), this.finishNode(s, "ExistsTypeAnnotation");
                  case 87:
                    return this.flowParseTypeofType();
                  default:
                    if (Pt$2(this.state.type)) {
                      let h = K$2(this.state.type);
                      return this.next(), super.createIdentifier(s, h);
                    } else if (w$1(this.state.type)) return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(e, s, this.parseIdentifier());
                }
                this.unexpected();
              }
              flowParsePostfixType() {
                let e = this.state.startLoc,
                  s = this.flowParsePrimaryType(),
                  i = !1;
                for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon();) {
                  let r = this.startNodeAt(e),
                    n = this.eat(18);
                  i = i || n, this.expect(0), !n && this.match(3) ? (r.elementType = s, this.next(), s = this.finishNode(r, "ArrayTypeAnnotation")) : (r.objectType = s, r.indexType = this.flowParseType(), this.expect(3), i ? (r.optional = n, s = this.finishNode(r, "OptionalIndexedAccessType")) : s = this.finishNode(r, "IndexedAccessType"));
                }
                return s;
              }
              flowParsePrefixType() {
                let e = this.startNode();
                return this.eat(17) ? (e.typeAnnotation = this.flowParsePrefixType(), this.finishNode(e, "NullableTypeAnnotation")) : this.flowParsePostfixType();
              }
              flowParseAnonFunctionWithoutParens() {
                let e = this.flowParsePrefixType();
                if (!this.state.noAnonFunctionType && this.eat(19)) {
                  let s = this.startNodeAt(e.loc.start);
                  return s.params = [this.reinterpretTypeAsFunctionTypeParam(e)], s.rest = null, s.this = null, s.returnType = this.flowParseType(), s.typeParameters = null, this.finishNode(s, "FunctionTypeAnnotation");
                }
                return e;
              }
              flowParseIntersectionType() {
                let e = this.startNode();
                this.eat(45);
                let s = this.flowParseAnonFunctionWithoutParens();
                for (e.types = [s]; this.eat(45);) e.types.push(this.flowParseAnonFunctionWithoutParens());
                return e.types.length === 1 ? s : this.finishNode(e, "IntersectionTypeAnnotation");
              }
              flowParseUnionType() {
                let e = this.startNode();
                this.eat(43);
                let s = this.flowParseIntersectionType();
                for (e.types = [s]; this.eat(43);) e.types.push(this.flowParseIntersectionType());
                return e.types.length === 1 ? s : this.finishNode(e, "UnionTypeAnnotation");
              }
              flowParseType() {
                let e = this.state.inType;
                this.state.inType = !0;
                let s = this.flowParseUnionType();
                return this.state.inType = e, s;
              }
              flowParseTypeOrImplicitInstantiation() {
                if (this.state.type === 132 && this.state.value === "_") {
                  let e = this.state.startLoc,
                    s = this.parseIdentifier();
                  return this.flowParseGenericType(e, s);
                } else return this.flowParseType();
              }
              flowParseTypeAnnotation() {
                let e = this.startNode();
                return e.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(e, "TypeAnnotation");
              }
              flowParseTypeAnnotatableIdentifier(e) {
                let s = e ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
                return this.match(14) && (s.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(s)), s;
              }
              typeCastToParameter(e) {
                return e.expression.typeAnnotation = e.typeAnnotation, this.resetEndLocation(e.expression, e.typeAnnotation.loc.end), e.expression;
              }
              flowParseVariance() {
                let e = null;
                return this.match(53) ? (e = this.startNode(), this.state.value === "+" ? e.kind = "plus" : e.kind = "minus", this.next(), this.finishNode(e, "Variance")) : e;
              }
              parseFunctionBody(e, s, i = !1) {
                if (s) {
                  this.forwardNoArrowParamsConversionAt(e, () => super.parseFunctionBody(e, !0, i));
                  return;
                }
                super.parseFunctionBody(e, !1, i);
              }
              parseFunctionBodyAndFinish(e, s, i = !1) {
                if (this.match(14)) {
                  let r = this.startNode();
                  [r.typeAnnotation, e.predicate] = this.flowParseTypeAndPredicateInitialiser(), e.returnType = r.typeAnnotation ? this.finishNode(r, "TypeAnnotation") : null;
                }
                return super.parseFunctionBodyAndFinish(e, s, i);
              }
              parseStatementLike(e) {
                if (this.state.strict && this.isContextual(129)) {
                  if (M$2(this.lookahead().type)) {
                    let r = this.startNode();
                    return this.next(), this.flowParseInterface(r);
                  }
                } else if (this.shouldParseEnums() && this.isContextual(126)) {
                  let i = this.startNode();
                  return this.next(), this.flowParseEnumDeclaration(i);
                }
                let s = super.parseStatementLike(e);
                return this.flowPragma === void 0 && !this.isValidDirective(s) && (this.flowPragma = null), s;
              }
              parseExpressionStatement(e, s, i) {
                if (s.type === "Identifier") {
                  if (s.name === "declare") {
                    if (this.match(80) || w$1(this.state.type) || this.match(68) || this.match(74) || this.match(82)) return this.flowParseDeclare(e);
                  } else if (w$1(this.state.type)) {
                    if (s.name === "interface") return this.flowParseInterface(e);
                    if (s.name === "type") return this.flowParseTypeAlias(e);
                    if (s.name === "opaque") return this.flowParseOpaqueType(e, !1);
                  }
                }
                return super.parseExpressionStatement(e, s, i);
              }
              shouldParseExportDeclaration() {
                let {
                  type: e
                } = this.state;
                return Ft$2(e) || this.shouldParseEnums() && e === 126 ? !this.state.containsEsc : super.shouldParseExportDeclaration();
              }
              isExportDefaultSpecifier() {
                let {
                  type: e
                } = this.state;
                return Ft$2(e) || this.shouldParseEnums() && e === 126 ? this.state.containsEsc : super.isExportDefaultSpecifier();
              }
              parseExportDefaultExpression() {
                if (this.shouldParseEnums() && this.isContextual(126)) {
                  let e = this.startNode();
                  return this.next(), this.flowParseEnumDeclaration(e);
                }
                return super.parseExportDefaultExpression();
              }
              parseConditional(e, s, i) {
                if (!this.match(17)) return e;
                if (this.state.maybeInArrowParameters) {
                  let f$1 = this.lookaheadCharCode();
                  if (f$1 === 44 || f$1 === 61 || f$1 === 58 || f$1 === 41) return this.setOptionalParametersError(i), e;
                }
                this.expect(17);
                let r = this.state.clone(),
                  n = this.state.noArrowAt,
                  o = this.startNodeAt(s),
                  {
                    consequent: h,
                    failed: c
                  } = this.tryParseConditionalConsequent(),
                  [l$1, u] = this.getArrowLikeExpressions(h);
                if (c || u.length > 0) {
                  let f$1 = [...n];
                  if (u.length > 0) {
                    this.state = r, this.state.noArrowAt = f$1;
                    for (let d$1 = 0; d$1 < u.length; d$1++) f$1.push(u[d$1].start);
                    ({
                      consequent: h,
                      failed: c
                    } = this.tryParseConditionalConsequent()), [l$1, u] = this.getArrowLikeExpressions(h);
                  }
                  c && l$1.length > 1 && this.raise(g$1.AmbiguousConditionalArrow, r.startLoc), c && l$1.length === 1 && (this.state = r, f$1.push(l$1[0].start), this.state.noArrowAt = f$1, {
                    consequent: h,
                    failed: c
                  } = this.tryParseConditionalConsequent());
                }
                return this.getArrowLikeExpressions(h, !0), this.state.noArrowAt = n, this.expect(14), o.test = e, o.consequent = h, o.alternate = this.forwardNoArrowParamsConversionAt(o, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(o, "ConditionalExpression");
              }
              tryParseConditionalConsequent() {
                this.state.noArrowParamsConversionAt.push(this.state.start);
                let e = this.parseMaybeAssignAllowIn(),
                  s = !this.match(14);
                return this.state.noArrowParamsConversionAt.pop(), {
                  consequent: e,
                  failed: s
                };
              }
              getArrowLikeExpressions(e, s) {
                let i = [e],
                  r = [];
                for (; i.length !== 0;) {
                  let n = i.pop();
                  n.type === "ArrowFunctionExpression" && n.body.type !== "BlockStatement" ? (n.typeParameters || !n.returnType ? this.finishArrowValidation(n) : r.push(n), i.push(n.body)) : n.type === "ConditionalExpression" && (i.push(n.consequent), i.push(n.alternate));
                }
                return s ? (r.forEach(n => this.finishArrowValidation(n)), [r, []]) : $i$1(r, n => n.params.every(o => this.isAssignable(o, !0)));
              }
              finishArrowValidation(e) {
                var s;
                this.toAssignableList(e.params, (s = e.extra) == null ? void 0 : s.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(e, !1, !0), this.scope.exit();
              }
              forwardNoArrowParamsConversionAt(e, s) {
                let i;
                return this.state.noArrowParamsConversionAt.includes(e.start) ? (this.state.noArrowParamsConversionAt.push(this.state.start), i = s(), this.state.noArrowParamsConversionAt.pop()) : i = s(), i;
              }
              parseParenItem(e, s) {
                let i = super.parseParenItem(e, s);
                if (this.eat(17) && (i.optional = !0, this.resetEndLocation(e)), this.match(14)) {
                  let r = this.startNodeAt(s);
                  return r.expression = i, r.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(r, "TypeCastExpression");
                }
                return i;
              }
              assertModuleNodeAllowed(e) {
                e.type === "ImportDeclaration" && (e.importKind === "type" || e.importKind === "typeof") || e.type === "ExportNamedDeclaration" && e.exportKind === "type" || e.type === "ExportAllDeclaration" && e.exportKind === "type" || super.assertModuleNodeAllowed(e);
              }
              parseExportDeclaration(e) {
                if (this.isContextual(130)) {
                  e.exportKind = "type";
                  let s = this.startNode();
                  return this.next(), this.match(5) ? (e.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(e), null) : this.flowParseTypeAlias(s);
                } else if (this.isContextual(131)) {
                  e.exportKind = "type";
                  let s = this.startNode();
                  return this.next(), this.flowParseOpaqueType(s, !1);
                } else if (this.isContextual(129)) {
                  e.exportKind = "type";
                  let s = this.startNode();
                  return this.next(), this.flowParseInterface(s);
                } else if (this.shouldParseEnums() && this.isContextual(126)) {
                  e.exportKind = "value";
                  let s = this.startNode();
                  return this.next(), this.flowParseEnumDeclaration(s);
                } else return super.parseExportDeclaration(e);
              }
              eatExportStar(e) {
                return super.eatExportStar(e) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (e.exportKind = "type", this.next(), this.next(), !0) : !1;
              }
              maybeParseExportNamespaceSpecifier(e) {
                let {
                    startLoc: s
                  } = this.state,
                  i = super.maybeParseExportNamespaceSpecifier(e);
                return i && e.exportKind === "type" && this.unexpected(s), i;
              }
              parseClassId(e, s, i) {
                super.parseClassId(e, s, i), this.match(47) && (e.typeParameters = this.flowParseTypeParameterDeclaration());
              }
              parseClassMember(e, s, i) {
                let {
                  startLoc: r
                } = this.state;
                if (this.isContextual(125)) {
                  if (super.parseClassMemberFromModifier(e, s)) return;
                  s.declare = !0;
                }
                super.parseClassMember(e, s, i), s.declare && (s.type !== "ClassProperty" && s.type !== "ClassPrivateProperty" && s.type !== "PropertyDefinition" ? this.raise(g$1.DeclareClassElement, r) : s.value && this.raise(g$1.DeclareClassFieldInitializer, s.value));
              }
              isIterator(e) {
                return e === "iterator" || e === "asyncIterator";
              }
              readIterator() {
                let e = super.readWord1(),
                  s = "@@" + e;
                (!this.isIterator(e) || !this.state.inType) && this.raise(p.InvalidIdentifier, this.state.curPosition(), {
                  identifierName: s
                }), this.finishToken(132, s);
              }
              getTokenFromCode(e) {
                let s = this.input.charCodeAt(this.state.pos + 1);
                e === 123 && s === 124 ? this.finishOp(6, 2) : this.state.inType && (e === 62 || e === 60) ? this.finishOp(e === 62 ? 48 : 47, 1) : this.state.inType && e === 63 ? s === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : wi$1(e, s, this.input.charCodeAt(this.state.pos + 2)) ? (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(e);
              }
              isAssignable(e, s) {
                return e.type === "TypeCastExpression" ? this.isAssignable(e.expression, s) : super.isAssignable(e, s);
              }
              toAssignable(e, s = !1) {
                !s && e.type === "AssignmentExpression" && e.left.type === "TypeCastExpression" && (e.left = this.typeCastToParameter(e.left)), super.toAssignable(e, s);
              }
              toAssignableList(e, s, i) {
                for (let r = 0; r < e.length; r++) {
                  let n = e[r];
                  (n == null ? void 0 : n.type) === "TypeCastExpression" && (e[r] = this.typeCastToParameter(n));
                }
                super.toAssignableList(e, s, i);
              }
              toReferencedList(e, s) {
                for (let r = 0; r < e.length; r++) {
                  var i;
                  let n = e[r];
                  n && n.type === "TypeCastExpression" && !((i = n.extra) != null && i.parenthesized) && (e.length > 1 || !s) && this.raise(g$1.TypeCastInPattern, n.typeAnnotation);
                }
                return e;
              }
              parseArrayLike(e, s, i, r) {
                let n = super.parseArrayLike(e, s, i, r);
                return s && !this.state.maybeInArrowParameters && this.toReferencedList(n.elements), n;
              }
              isValidLVal(e, s, i) {
                return e === "TypeCastExpression" || super.isValidLVal(e, s, i);
              }
              parseClassProperty(e) {
                return this.match(14) && (e.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(e);
              }
              parseClassPrivateProperty(e) {
                return this.match(14) && (e.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(e);
              }
              isClassMethod() {
                return this.match(47) || super.isClassMethod();
              }
              isClassProperty() {
                return this.match(14) || super.isClassProperty();
              }
              isNonstaticConstructor(e) {
                return !this.match(14) && super.isNonstaticConstructor(e);
              }
              pushClassMethod(e, s, i, r, n, o) {
                if (s.variance && this.unexpected(s.variance.loc.start), delete s.variance, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassMethod(e, s, i, r, n, o), s.params && n) {
                  let h = s.params;
                  h.length > 0 && this.isThisParam(h[0]) && this.raise(g$1.ThisParamBannedInConstructor, s);
                } else if (s.type === "MethodDefinition" && n && s.value.params) {
                  let h = s.value.params;
                  h.length > 0 && this.isThisParam(h[0]) && this.raise(g$1.ThisParamBannedInConstructor, s);
                }
              }
              pushClassPrivateMethod(e, s, i, r) {
                s.variance && this.unexpected(s.variance.loc.start), delete s.variance, this.match(47) && (s.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassPrivateMethod(e, s, i, r);
              }
              parseClassSuper(e) {
                if (super.parseClassSuper(e), e.superClass && this.match(47) && (e.superTypeParameters = this.flowParseTypeParameterInstantiation()), this.isContextual(113)) {
                  this.next();
                  let s = e.implements = [];
                  do {
                    let i = this.startNode();
                    i.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? i.typeParameters = this.flowParseTypeParameterInstantiation() : i.typeParameters = null, s.push(this.finishNode(i, "ClassImplements"));
                  } while (this.eat(12));
                }
              }
              checkGetterSetterParams(e) {
                super.checkGetterSetterParams(e);
                let s = this.getObjectOrClassMethodParams(e);
                if (s.length > 0) {
                  let i = s[0];
                  this.isThisParam(i) && e.kind === "get" ? this.raise(g$1.GetterMayNotHaveThisParam, i) : this.isThisParam(i) && this.raise(g$1.SetterMayNotHaveThisParam, i);
                }
              }
              parsePropertyNamePrefixOperator(e) {
                e.variance = this.flowParseVariance();
              }
              parseObjPropValue(e, s, i, r, n, o, h) {
                e.variance && this.unexpected(e.variance.loc.start), delete e.variance;
                let c;
                this.match(47) && !o && (c = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
                let l$1 = super.parseObjPropValue(e, s, i, r, n, o, h);
                return c && ((l$1.value || l$1).typeParameters = c), l$1;
              }
              parseAssignableListItemTypes(e) {
                return this.eat(17) && (e.type !== "Identifier" && this.raise(g$1.PatternIsOptional, e), this.isThisParam(e) && this.raise(g$1.ThisParamMayNotBeOptional, e), e.optional = !0), this.match(14) ? e.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(e) && this.raise(g$1.ThisParamAnnotationRequired, e), this.match(29) && this.isThisParam(e) && this.raise(g$1.ThisParamNoDefault, e), this.resetEndLocation(e), e;
              }
              parseMaybeDefault(e, s) {
                let i = super.parseMaybeDefault(e, s);
                return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(g$1.TypeBeforeInitializer, i.typeAnnotation), i;
              }
              checkImportReflection(e) {
                super.checkImportReflection(e), e.module && e.importKind !== "value" && this.raise(g$1.ImportReflectionHasImportType, e.specifiers[0].loc.start);
              }
              parseImportSpecifierLocal(e, s, i) {
                s.local = _t$2(e) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), e.specifiers.push(this.finishImportSpecifier(s, i));
              }
              isPotentialImportPhase(e) {
                if (super.isPotentialImportPhase(e)) return !0;
                if (this.isContextual(130)) {
                  if (!e) return !0;
                  let s = this.lookaheadCharCode();
                  return s === 123 || s === 42;
                }
                return !e && this.isContextual(87);
              }
              applyImportPhase(e, s, i, r) {
                if (super.applyImportPhase(e, s, i, r), s) {
                  if (!i && this.match(65)) return;
                  e.exportKind = i === "type" ? i : "value";
                } else i === "type" && this.match(55) && this.unexpected(), e.importKind = i === "type" || i === "typeof" ? i : "value";
              }
              parseImportSpecifier(e, s, i, r, n) {
                let o = e.imported,
                  h = null;
                o.type === "Identifier" && (o.name === "type" ? h = "type" : o.name === "typeof" && (h = "typeof"));
                let c = !1;
                if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
                  let u = this.parseIdentifier(!0);
                  h !== null && !M$2(this.state.type) ? (e.imported = u, e.importKind = h, e.local = $$1(u)) : (e.imported = o, e.importKind = null, e.local = this.parseIdentifier());
                } else {
                  if (h !== null && M$2(this.state.type)) e.imported = this.parseIdentifier(!0), e.importKind = h;else {
                    if (s) throw this.raise(p.ImportBindingIsString, e, {
                      importName: o.value
                    });
                    e.imported = o, e.importKind = null;
                  }
                  this.eatContextual(93) ? e.local = this.parseIdentifier() : (c = !0, e.local = $$1(e.imported));
                }
                let l$1 = _t$2(e);
                return i && l$1 && this.raise(g$1.ImportTypeShorthandOnlyInPureImport, e), (i || l$1) && this.checkReservedType(e.local.name, e.local.loc.start, !0), c && !i && !l$1 && this.checkReservedWord(e.local.name, e.loc.start, !0, !0), this.finishImportSpecifier(e, "ImportSpecifier");
              }
              parseBindingAtom() {
                switch (this.state.type) {
                  case 78:
                    return this.parseIdentifier(!0);
                  default:
                    return super.parseBindingAtom();
                }
              }
              parseFunctionParams(e, s) {
                let i = e.kind;
                i !== "get" && i !== "set" && this.match(47) && (e.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(e, s);
              }
              parseVarId(e, s) {
                super.parseVarId(e, s), this.match(14) && (e.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(e.id));
              }
              parseAsyncArrowFromCallExpression(e, s) {
                if (this.match(14)) {
                  let i = this.state.noAnonFunctionType;
                  this.state.noAnonFunctionType = !0, e.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = i;
                }
                return super.parseAsyncArrowFromCallExpression(e, s);
              }
              shouldParseAsyncArrow() {
                return this.match(14) || super.shouldParseAsyncArrow();
              }
              parseMaybeAssign(e, s) {
                var i;
                let r = null,
                  n;
                if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
                  if (r = this.state.clone(), n = this.tryParse(() => super.parseMaybeAssign(e, s), r), !n.error) return n.node;
                  let {
                      context: c
                    } = this.state,
                    l$1 = c[c.length - 1];
                  (l$1 === C.j_oTag || l$1 === C.j_expr) && c.pop();
                }
                if ((i = n) != null && i.error || this.match(47)) {
                  var o, h;
                  r = r || this.state.clone();
                  let c,
                    l$1 = this.tryParse(f$1 => {
                      var d$1;
                      c = this.flowParseTypeParameterDeclaration();
                      let y$1 = this.forwardNoArrowParamsConversionAt(c, () => {
                        let L$2 = super.parseMaybeAssign(e, s);
                        return this.resetStartLocationFromNode(L$2, c), L$2;
                      });
                      (d$1 = y$1.extra) != null && d$1.parenthesized && f$1();
                      let E$1 = this.maybeUnwrapTypeCastExpression(y$1);
                      return E$1.type !== "ArrowFunctionExpression" && f$1(), E$1.typeParameters = c, this.resetStartLocationFromNode(E$1, c), y$1;
                    }, r),
                    u = null;
                  if (l$1.node && this.maybeUnwrapTypeCastExpression(l$1.node).type === "ArrowFunctionExpression") {
                    if (!l$1.error && !l$1.aborted) return l$1.node.async && this.raise(g$1.UnexpectedTypeParameterBeforeAsyncArrowFunction, c), l$1.node;
                    u = l$1.node;
                  }
                  if ((o = n) != null && o.node) return this.state = n.failState, n.node;
                  if (u) return this.state = l$1.failState, u;
                  throw (h = n) != null && h.thrown ? n.error : l$1.thrown ? l$1.error : this.raise(g$1.UnexpectedTokenAfterTypeParameter, c);
                }
                return super.parseMaybeAssign(e, s);
              }
              parseArrow(e) {
                if (this.match(14)) {
                  let s = this.tryParse(() => {
                    let i = this.state.noAnonFunctionType;
                    this.state.noAnonFunctionType = !0;
                    let r = this.startNode();
                    return [r.typeAnnotation, e.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = i, this.canInsertSemicolon() && this.unexpected(), this.match(19) || this.unexpected(), r;
                  });
                  if (s.thrown) return null;
                  s.error && (this.state = s.failState), e.returnType = s.node.typeAnnotation ? this.finishNode(s.node, "TypeAnnotation") : null;
                }
                return super.parseArrow(e);
              }
              shouldParseArrow(e) {
                return this.match(14) || super.shouldParseArrow(e);
              }
              setArrowFunctionParameters(e, s) {
                this.state.noArrowParamsConversionAt.includes(e.start) ? e.params = s : super.setArrowFunctionParameters(e, s);
              }
              checkParams(e, s, i, r = !0) {
                if (!(i && this.state.noArrowParamsConversionAt.includes(e.start))) {
                  for (let n = 0; n < e.params.length; n++) this.isThisParam(e.params[n]) && n > 0 && this.raise(g$1.ThisParamMustBeFirst, e.params[n]);
                  super.checkParams(e, s, i, r);
                }
              }
              parseParenAndDistinguishExpression(e) {
                return super.parseParenAndDistinguishExpression(e && !this.state.noArrowAt.includes(this.state.start));
              }
              parseSubscripts(e, s, i) {
                if (e.type === "Identifier" && e.name === "async" && this.state.noArrowAt.includes(s.index)) {
                  this.next();
                  let r = this.startNodeAt(s);
                  r.callee = e, r.arguments = super.parseCallExpressionArguments(11, !1), e = this.finishNode(r, "CallExpression");
                } else if (e.type === "Identifier" && e.name === "async" && this.match(47)) {
                  let r = this.state.clone(),
                    n = this.tryParse(h => this.parseAsyncArrowWithTypeParameters(s) || h(), r);
                  if (!n.error && !n.aborted) return n.node;
                  let o = this.tryParse(() => super.parseSubscripts(e, s, i), r);
                  if (o.node && !o.error) return o.node;
                  if (n.node) return this.state = n.failState, n.node;
                  if (o.node) return this.state = o.failState, o.node;
                  throw n.error || o.error;
                }
                return super.parseSubscripts(e, s, i);
              }
              parseSubscript(e, s, i, r) {
                if (this.match(18) && this.isLookaheadToken_lt()) {
                  if (r.optionalChainMember = !0, i) return r.stop = !0, e;
                  this.next();
                  let n = this.startNodeAt(s);
                  return n.callee = e, n.typeArguments = this.flowParseTypeParameterInstantiation(), this.expect(10), n.arguments = this.parseCallExpressionArguments(11, !1), n.optional = !0, this.finishCallExpression(n, !0);
                } else if (!i && this.shouldParseTypes() && this.match(47)) {
                  let n = this.startNodeAt(s);
                  n.callee = e;
                  let o = this.tryParse(() => (n.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), n.arguments = super.parseCallExpressionArguments(11, !1), r.optionalChainMember && (n.optional = !1), this.finishCallExpression(n, r.optionalChainMember)));
                  if (o.node) return o.error && (this.state = o.failState), o.node;
                }
                return super.parseSubscript(e, s, i, r);
              }
              parseNewCallee(e) {
                super.parseNewCallee(e);
                let s = null;
                this.shouldParseTypes() && this.match(47) && (s = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), e.typeArguments = s;
              }
              parseAsyncArrowWithTypeParameters(e) {
                let s = this.startNodeAt(e);
                if (this.parseFunctionParams(s, !1), !!this.parseArrow(s)) return super.parseArrowExpression(s, void 0, !0);
              }
              readToken_mult_modulo(e) {
                let s = this.input.charCodeAt(this.state.pos + 1);
                if (e === 42 && s === 47 && this.state.hasFlowComment) {
                  this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
                  return;
                }
                super.readToken_mult_modulo(e);
              }
              readToken_pipe_amp(e) {
                let s = this.input.charCodeAt(this.state.pos + 1);
                if (e === 124 && s === 125) {
                  this.finishOp(9, 2);
                  return;
                }
                super.readToken_pipe_amp(e);
              }
              parseTopLevel(e, s) {
                let i = super.parseTopLevel(e, s);
                return this.state.hasFlowComment && this.raise(g$1.UnterminatedFlowComment, this.state.curPosition()), i;
              }
              skipBlockComment() {
                if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
                  if (this.state.hasFlowComment) throw this.raise(g$1.NestedFlowComment, this.state.startLoc);
                  this.hasFlowCommentCompletion();
                  let e = this.skipFlowComment();
                  e && (this.state.pos += e, this.state.hasFlowComment = !0);
                  return;
                }
                return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
              }
              skipFlowComment() {
                let {
                    pos: e
                  } = this.state,
                  s = 2;
                for (; [32, 9].includes(this.input.charCodeAt(e + s));) s++;
                let i = this.input.charCodeAt(s + e),
                  r = this.input.charCodeAt(s + e + 1);
                return i === 58 && r === 58 ? s + 2 : this.input.slice(s + e, s + e + 12) === "flow-include" ? s + 12 : i === 58 && r !== 58 ? s : !1;
              }
              hasFlowCommentCompletion() {
                if (this.input.indexOf("*/", this.state.pos) === -1) throw this.raise(p.UnterminatedComment, this.state.curPosition());
              }
              flowEnumErrorBooleanMemberNotInitialized(e, {
                enumName: s,
                memberName: i
              }) {
                this.raise(g$1.EnumBooleanMemberNotInitialized, e, {
                  memberName: i,
                  enumName: s
                });
              }
              flowEnumErrorInvalidMemberInitializer(e, s) {
                return this.raise(s.explicitType ? s.explicitType === "symbol" ? g$1.EnumInvalidMemberInitializerSymbolType : g$1.EnumInvalidMemberInitializerPrimaryType : g$1.EnumInvalidMemberInitializerUnknownType, e, s);
              }
              flowEnumErrorNumberMemberNotInitialized(e, s) {
                this.raise(g$1.EnumNumberMemberNotInitialized, e, s);
              }
              flowEnumErrorStringMemberInconsistentlyInitialized(e, s) {
                this.raise(g$1.EnumStringMemberInconsistentlyInitialized, e, s);
              }
              flowEnumMemberInit() {
                let e = this.state.startLoc,
                  s = () => this.match(12) || this.match(8);
                switch (this.state.type) {
                  case 134:
                    {
                      let i = this.parseNumericLiteral(this.state.value);
                      return s() ? {
                        type: "number",
                        loc: i.loc.start,
                        value: i
                      } : {
                        type: "invalid",
                        loc: e
                      };
                    }
                  case 133:
                    {
                      let i = this.parseStringLiteral(this.state.value);
                      return s() ? {
                        type: "string",
                        loc: i.loc.start,
                        value: i
                      } : {
                        type: "invalid",
                        loc: e
                      };
                    }
                  case 85:
                  case 86:
                    {
                      let i = this.parseBooleanLiteral(this.match(85));
                      return s() ? {
                        type: "boolean",
                        loc: i.loc.start,
                        value: i
                      } : {
                        type: "invalid",
                        loc: e
                      };
                    }
                  default:
                    return {
                      type: "invalid",
                      loc: e
                    };
                }
              }
              flowEnumMemberRaw() {
                let e = this.state.startLoc;
                return {
                  id: this.parseIdentifier(!0),
                  init: this.eat(29) ? this.flowEnumMemberInit() : {
                    type: "none",
                    loc: e
                  }
                };
              }
              flowEnumCheckExplicitTypeMismatch(e, s, i) {
                let {
                  explicitType: r
                } = s;
                r !== null && r !== i && this.flowEnumErrorInvalidMemberInitializer(e, s);
              }
              flowEnumMembers({
                enumName: e,
                explicitType: s
              }) {
                let i = /* @__PURE__ */new Set(),
                  r = {
                    booleanMembers: [],
                    numberMembers: [],
                    stringMembers: [],
                    defaultedMembers: []
                  },
                  n = !1;
                for (; !this.match(8);) {
                  if (this.eat(21)) {
                    n = !0;
                    break;
                  }
                  let o = this.startNode(),
                    {
                      id: h,
                      init: c
                    } = this.flowEnumMemberRaw(),
                    l$1 = h.name;
                  if (l$1 === "") continue;
                  /^[a-z]/.test(l$1) && this.raise(g$1.EnumInvalidMemberName, h, {
                    memberName: l$1,
                    suggestion: l$1[0].toUpperCase() + l$1.slice(1),
                    enumName: e
                  }), i.has(l$1) && this.raise(g$1.EnumDuplicateMemberName, h, {
                    memberName: l$1,
                    enumName: e
                  }), i.add(l$1);
                  let u = {
                    enumName: e,
                    explicitType: s,
                    memberName: l$1
                  };
                  switch (o.id = h, c.type) {
                    case "boolean":
                      this.flowEnumCheckExplicitTypeMismatch(c.loc, u, "boolean"), o.init = c.value, r.booleanMembers.push(this.finishNode(o, "EnumBooleanMember"));
                      break;
                    case "number":
                      this.flowEnumCheckExplicitTypeMismatch(c.loc, u, "number"), o.init = c.value, r.numberMembers.push(this.finishNode(o, "EnumNumberMember"));
                      break;
                    case "string":
                      this.flowEnumCheckExplicitTypeMismatch(c.loc, u, "string"), o.init = c.value, r.stringMembers.push(this.finishNode(o, "EnumStringMember"));
                      break;
                    case "invalid":
                      throw this.flowEnumErrorInvalidMemberInitializer(c.loc, u);
                    case "none":
                      switch (s) {
                        case "boolean":
                          this.flowEnumErrorBooleanMemberNotInitialized(c.loc, u);
                          break;
                        case "number":
                          this.flowEnumErrorNumberMemberNotInitialized(c.loc, u);
                          break;
                        default:
                          r.defaultedMembers.push(this.finishNode(o, "EnumDefaultedMember"));
                      }
                  }
                  this.match(8) || this.expect(12);
                }
                return {
                  members: r,
                  hasUnknownMembers: n
                };
              }
              flowEnumStringMembers(e, s, {
                enumName: i
              }) {
                if (e.length === 0) return s;
                if (s.length === 0) return e;
                if (s.length > e.length) {
                  for (let r of e) this.flowEnumErrorStringMemberInconsistentlyInitialized(r, {
                    enumName: i
                  });
                  return s;
                } else {
                  for (let r of s) this.flowEnumErrorStringMemberInconsistentlyInitialized(r, {
                    enumName: i
                  });
                  return e;
                }
              }
              flowEnumParseExplicitType({
                enumName: e
              }) {
                if (!this.eatContextual(102)) return null;
                if (!w$1(this.state.type)) throw this.raise(g$1.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
                  enumName: e
                });
                let {
                  value: s
                } = this.state;
                return this.next(), s !== "boolean" && s !== "number" && s !== "string" && s !== "symbol" && this.raise(g$1.EnumInvalidExplicitType, this.state.startLoc, {
                  enumName: e,
                  invalidEnumType: s
                }), s;
              }
              flowEnumBody(e, s) {
                let i = s.name,
                  r = s.loc.start,
                  n = this.flowEnumParseExplicitType({
                    enumName: i
                  });
                this.expect(5);
                let {
                  members: o,
                  hasUnknownMembers: h
                } = this.flowEnumMembers({
                  enumName: i,
                  explicitType: n
                });
                switch (e.hasUnknownMembers = h, n) {
                  case "boolean":
                    return e.explicitType = !0, e.members = o.booleanMembers, this.expect(8), this.finishNode(e, "EnumBooleanBody");
                  case "number":
                    return e.explicitType = !0, e.members = o.numberMembers, this.expect(8), this.finishNode(e, "EnumNumberBody");
                  case "string":
                    return e.explicitType = !0, e.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
                      enumName: i
                    }), this.expect(8), this.finishNode(e, "EnumStringBody");
                  case "symbol":
                    return e.members = o.defaultedMembers, this.expect(8), this.finishNode(e, "EnumSymbolBody");
                  default:
                    {
                      let c = () => (e.members = [], this.expect(8), this.finishNode(e, "EnumStringBody"));
                      e.explicitType = !1;
                      let l$1 = o.booleanMembers.length,
                        u = o.numberMembers.length,
                        f$1 = o.stringMembers.length,
                        d$1 = o.defaultedMembers.length;
                      if (!l$1 && !u && !f$1 && !d$1) return c();
                      if (!l$1 && !u) return e.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
                        enumName: i
                      }), this.expect(8), this.finishNode(e, "EnumStringBody");
                      if (!u && !f$1 && l$1 >= d$1) {
                        for (let y$1 of o.defaultedMembers) this.flowEnumErrorBooleanMemberNotInitialized(y$1.loc.start, {
                          enumName: i,
                          memberName: y$1.id.name
                        });
                        return e.members = o.booleanMembers, this.expect(8), this.finishNode(e, "EnumBooleanBody");
                      } else if (!l$1 && !f$1 && u >= d$1) {
                        for (let y$1 of o.defaultedMembers) this.flowEnumErrorNumberMemberNotInitialized(y$1.loc.start, {
                          enumName: i,
                          memberName: y$1.id.name
                        });
                        return e.members = o.numberMembers, this.expect(8), this.finishNode(e, "EnumNumberBody");
                      } else return this.raise(g$1.EnumInconsistentMemberValues, r, {
                        enumName: i
                      }), c();
                    }
                }
              }
              flowParseEnumDeclaration(e) {
                let s = this.parseIdentifier();
                return e.id = s, e.body = this.flowEnumBody(this.startNode(), s), this.finishNode(e, "EnumDeclaration");
              }
              isLookaheadToken_lt() {
                let e = this.nextTokenStart();
                if (this.input.charCodeAt(e) === 60) {
                  let s = this.input.charCodeAt(e + 1);
                  return s !== 60 && s !== 61;
                }
                return !1;
              }
              maybeUnwrapTypeCastExpression(e) {
                return e.type === "TypeCastExpression" ? e.expression : e;
              }
            },
            W$1 = j$1`jsx`({
              AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
              MissingClosingTagElement: ({
                openingTagName: a
              }) => `Expected corresponding JSX closing tag for <${a}>.`,
              MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.",
              UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",
              UnexpectedToken: ({
                unexpected: a,
                HTMLEntity: t
              }) => `Unexpected token \`${a}\`. Did you mean \`${t}\` or \`{'${a}'}\`?`,
              UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.",
              UnterminatedJsxContent: "Unterminated JSX contents.",
              UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"
            });
          function z$2(a) {
            return a ? a.type === "JSXOpeningFragment" || a.type === "JSXClosingFragment" : !1;
          }
          function Y$2(a) {
            if (a.type === "JSXIdentifier") return a.name;
            if (a.type === "JSXNamespacedName") return a.namespace.name + ":" + a.name.name;
            if (a.type === "JSXMemberExpression") return Y$2(a.object) + "." + Y$2(a.property);
            throw new Error("Node had unexpected type: " + a.type);
          }
          var zi$1 = a => class extends a {
              jsxReadToken() {
                let e = "",
                  s = this.state.pos;
                for (;;) {
                  if (this.state.pos >= this.length) throw this.raise(W$1.UnterminatedJsxContent, this.state.startLoc);
                  let i = this.input.charCodeAt(this.state.pos);
                  switch (i) {
                    case 60:
                    case 123:
                      if (this.state.pos === this.state.start) {
                        i === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(142)) : super.getTokenFromCode(i);
                        return;
                      }
                      e += this.input.slice(s, this.state.pos), this.finishToken(141, e);
                      return;
                    case 38:
                      e += this.input.slice(s, this.state.pos), e += this.jsxReadEntity(), s = this.state.pos;
                      break;
                    case 62:
                    case 125:
                    default:
                      fe$2(i) ? (e += this.input.slice(s, this.state.pos), e += this.jsxReadNewLine(!0), s = this.state.pos) : ++this.state.pos;
                  }
                }
              }
              jsxReadNewLine(e) {
                let s = this.input.charCodeAt(this.state.pos),
                  i;
                return ++this.state.pos, s === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, i = e ? `
` : `\r
`) : i = String.fromCharCode(s), ++this.state.curLine, this.state.lineStart = this.state.pos, i;
              }
              jsxReadString(e) {
                let s = "",
                  i = ++this.state.pos;
                for (;;) {
                  if (this.state.pos >= this.length) throw this.raise(p.UnterminatedString, this.state.startLoc);
                  let r = this.input.charCodeAt(this.state.pos);
                  if (r === e) break;
                  r === 38 ? (s += this.input.slice(i, this.state.pos), s += this.jsxReadEntity(), i = this.state.pos) : fe$2(r) ? (s += this.input.slice(i, this.state.pos), s += this.jsxReadNewLine(!1), i = this.state.pos) : ++this.state.pos;
                }
                s += this.input.slice(i, this.state.pos++), this.finishToken(133, s);
              }
              jsxReadEntity() {
                let e = ++this.state.pos;
                if (this.codePointAtPos(this.state.pos) === 35) {
                  ++this.state.pos;
                  let s = 10;
                  this.codePointAtPos(this.state.pos) === 120 && (s = 16, ++this.state.pos);
                  let i = this.readInt(s, void 0, !1, "bail");
                  if (i !== null && this.codePointAtPos(this.state.pos) === 59) return ++this.state.pos, String.fromCodePoint(i);
                } else {
                  let s = 0,
                    i = !1;
                  for (; s++ < 10 && this.state.pos < this.length && !(i = this.codePointAtPos(this.state.pos) === 59);) ++this.state.pos;
                  if (i) {
                    this.input.slice(e, this.state.pos);
                    if (++this.state.pos, void 0) ;
                  }
                }
                return this.state.pos = e, "&";
              }
              jsxReadWord() {
                let e,
                  s = this.state.pos;
                do e = this.input.charCodeAt(++this.state.pos); while (Q$2(e) || e === 45);
                this.finishToken(140, this.input.slice(s, this.state.pos));
              }
              jsxParseIdentifier() {
                let e = this.startNode();
                return this.match(140) ? e.name = this.state.value : Pt$2(this.state.type) ? e.name = K$2(this.state.type) : this.unexpected(), this.next(), this.finishNode(e, "JSXIdentifier");
              }
              jsxParseNamespacedName() {
                let e = this.state.startLoc,
                  s = this.jsxParseIdentifier();
                if (!this.eat(14)) return s;
                let i = this.startNodeAt(e);
                return i.namespace = s, i.name = this.jsxParseIdentifier(), this.finishNode(i, "JSXNamespacedName");
              }
              jsxParseElementName() {
                let e = this.state.startLoc,
                  s = this.jsxParseNamespacedName();
                if (s.type === "JSXNamespacedName") return s;
                for (; this.eat(16);) {
                  let i = this.startNodeAt(e);
                  i.object = s, i.property = this.jsxParseIdentifier(), s = this.finishNode(i, "JSXMemberExpression");
                }
                return s;
              }
              jsxParseAttributeValue() {
                let e;
                switch (this.state.type) {
                  case 5:
                    return e = this.startNode(), this.setContext(C.brace), this.next(), e = this.jsxParseExpressionContainer(e, C.j_oTag), e.expression.type === "JSXEmptyExpression" && this.raise(W$1.AttributeIsEmpty, e), e;
                  case 142:
                  case 133:
                    return this.parseExprAtom();
                  default:
                    throw this.raise(W$1.UnsupportedJsxValue, this.state.startLoc);
                }
              }
              jsxParseEmptyExpression() {
                let e = this.startNodeAt(this.state.lastTokEndLoc);
                return this.finishNodeAt(e, "JSXEmptyExpression", this.state.startLoc);
              }
              jsxParseSpreadChild(e) {
                return this.next(), e.expression = this.parseExpression(), this.setContext(C.j_expr), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(e, "JSXSpreadChild");
              }
              jsxParseExpressionContainer(e, s) {
                if (this.match(8)) e.expression = this.jsxParseEmptyExpression();else e.expression = this.parseExpression();
                return this.setContext(s), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(e, "JSXExpressionContainer");
              }
              jsxParseAttribute() {
                let e = this.startNode();
                return this.match(5) ? (this.setContext(C.brace), this.next(), this.expect(21), e.argument = this.parseMaybeAssignAllowIn(), this.setContext(C.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(e, "JSXSpreadAttribute")) : (e.name = this.jsxParseNamespacedName(), e.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(e, "JSXAttribute"));
              }
              jsxParseOpeningElementAt(e) {
                let s = this.startNodeAt(e);
                return this.eat(143) ? this.finishNode(s, "JSXOpeningFragment") : (s.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(s));
              }
              jsxParseOpeningElementAfterName(e) {
                let s = [];
                for (; !this.match(56) && !this.match(143);) s.push(this.jsxParseAttribute());
                return e.attributes = s, e.selfClosing = this.eat(56), this.expect(143), this.finishNode(e, "JSXOpeningElement");
              }
              jsxParseClosingElementAt(e) {
                let s = this.startNodeAt(e);
                return this.eat(143) ? this.finishNode(s, "JSXClosingFragment") : (s.name = this.jsxParseElementName(), this.expect(143), this.finishNode(s, "JSXClosingElement"));
              }
              jsxParseElementAt(e) {
                let s = this.startNodeAt(e),
                  i = [],
                  r = this.jsxParseOpeningElementAt(e),
                  n = null;
                if (!r.selfClosing) {
                  e: for (;;) switch (this.state.type) {
                    case 142:
                      if (e = this.state.startLoc, this.next(), this.eat(56)) {
                        n = this.jsxParseClosingElementAt(e);
                        break e;
                      }
                      i.push(this.jsxParseElementAt(e));
                      break;
                    case 141:
                      i.push(this.parseLiteral(this.state.value, "JSXText"));
                      break;
                    case 5:
                      {
                        let o = this.startNode();
                        this.setContext(C.brace), this.next(), this.match(21) ? i.push(this.jsxParseSpreadChild(o)) : i.push(this.jsxParseExpressionContainer(o, C.j_expr));
                        break;
                      }
                    default:
                      this.unexpected();
                  }
                  z$2(r) && !z$2(n) && n !== null ? this.raise(W$1.MissingClosingTagFragment, n) : !z$2(r) && z$2(n) ? this.raise(W$1.MissingClosingTagElement, n, {
                    openingTagName: Y$2(r.name)
                  }) : !z$2(r) && !z$2(n) && Y$2(n.name) !== Y$2(r.name) && this.raise(W$1.MissingClosingTagElement, n, {
                    openingTagName: Y$2(r.name)
                  });
                }
                if (z$2(r) ? (s.openingFragment = r, s.closingFragment = n) : (s.openingElement = r, s.closingElement = n), s.children = i, this.match(47)) throw this.raise(W$1.UnwrappedAdjacentJSXElements, this.state.startLoc);
                return z$2(r) ? this.finishNode(s, "JSXFragment") : this.finishNode(s, "JSXElement");
              }
              jsxParseElement() {
                let e = this.state.startLoc;
                return this.next(), this.jsxParseElementAt(e);
              }
              setContext(e) {
                let {
                  context: s
                } = this.state;
                s[s.length - 1] = e;
              }
              parseExprAtom(e) {
                return this.match(142) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(142), this.jsxParseElement()) : super.parseExprAtom(e);
              }
              skipSpace() {
                this.curContext().preserveSpace || super.skipSpace();
              }
              getTokenFromCode(e) {
                let s = this.curContext();
                if (s === C.j_expr) {
                  this.jsxReadToken();
                  return;
                }
                if (s === C.j_oTag || s === C.j_cTag) {
                  if (_$1(e)) {
                    this.jsxReadWord();
                    return;
                  }
                  if (e === 62) {
                    ++this.state.pos, this.finishToken(143);
                    return;
                  }
                  if ((e === 34 || e === 39) && s === C.j_oTag) {
                    this.jsxReadString(e);
                    return;
                  }
                }
                if (e === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
                  ++this.state.pos, this.finishToken(142);
                  return;
                }
                super.getTokenFromCode(e);
              }
              updateContext(e) {
                let {
                  context: s,
                  type: i
                } = this.state;
                if (i === 56 && e === 142) s.splice(-2, 2, C.j_cTag), this.state.canStartJSXElement = !1;else if (i === 142) s.push(C.j_oTag);else if (i === 143) {
                  let r = s[s.length - 1];
                  r === C.j_oTag && e === 56 || r === C.j_cTag ? (s.pop(), this.state.canStartJSXElement = s[s.length - 1] === C.j_expr) : (this.setContext(C.j_expr), this.state.canStartJSXElement = !0);
                } else this.state.canStartJSXElement = hi$1(i);
              }
            },
            ot$2 = class extends de$2 {
              constructor(...t) {
                super(...t), this.tsNames = /* @__PURE__ */new Map();
              }
            },
            ht$2 = class extends me$2 {
              constructor(...t) {
                super(...t), this.importsStack = [];
              }
              createScope(t) {
                return this.importsStack.push(/* @__PURE__ */new Set()), new ot$2(t);
              }
              enter(t) {
                t === 256 && this.importsStack.push(/* @__PURE__ */new Set()), super.enter(t);
              }
              exit() {
                let t = super.exit();
                return t === 256 && this.importsStack.pop(), t;
              }
              hasImport(t, e) {
                let s = this.importsStack.length;
                if (this.importsStack[s - 1].has(t)) return !0;
                if (!e && s > 1) {
                  for (let i = 0; i < s - 1; i++) if (this.importsStack[i].has(t)) return !0;
                }
                return !1;
              }
              declareName(t, e, s) {
                if (e & 4096) {
                  this.hasImport(t, !0) && this.parser.raise(p.VarRedeclaration, s, {
                    identifierName: t
                  }), this.importsStack[this.importsStack.length - 1].add(t);
                  return;
                }
                let i = this.currentScope(),
                  r = i.tsNames.get(t) || 0;
                if (e & 1024) {
                  this.maybeExportDefined(i, t), i.tsNames.set(t, r | 16);
                  return;
                }
                super.declareName(t, e, s), e & 2 && (e & 1 || (this.checkRedeclarationInScope(i, t, e, s), this.maybeExportDefined(i, t)), r = r | 1), e & 256 && (r = r | 2), e & 512 && (r = r | 4), e & 128 && (r = r | 8), r && i.tsNames.set(t, r);
              }
              isRedeclaredInScope(t, e, s) {
                let i = t.tsNames.get(e);
                if ((i & 2) > 0) {
                  if (s & 256) return !!(s & 512) !== (i & 4) > 0;
                  return !0;
                }
                return s & 128 && (i & 8) > 0 ? t.names.get(e) & 2 ? !!(s & 1) : !1 : s & 2 && (i & 1) > 0 ? !0 : super.isRedeclaredInScope(t, e, s);
              }
              checkLocalExport(t) {
                let {
                  name: e
                } = t;
                if (this.hasImport(e)) return;
                let s = this.scopeStack.length;
                for (let i = s - 1; i >= 0; i--) {
                  let n = this.scopeStack[i].tsNames.get(e);
                  if ((n & 1) > 0 || (n & 16) > 0) return;
                }
                super.checkLocalExport(t);
              }
            },
            Ki$1 = (a, t) => hasOwnProperty.call(a, t) && a[t],
            as$1 = a => a.type === "ParenthesizedExpression" ? as$1(a.expression) : a,
            lt$2 = class extends nt$2 {
              toAssignable(t, e = !1) {
                var s, i;
                let r;
                switch ((t.type === "ParenthesizedExpression" || (s = t.extra) != null && s.parenthesized) && (r = as$1(t), e ? r.type === "Identifier" ? this.expressionScope.recordArrowParameterBindingError(p.InvalidParenthesizedAssignment, t) : r.type !== "MemberExpression" && !this.isOptionalMemberExpression(r) && this.raise(p.InvalidParenthesizedAssignment, t) : this.raise(p.InvalidParenthesizedAssignment, t)), t.type) {
                  case "Identifier":
                  case "ObjectPattern":
                  case "ArrayPattern":
                  case "AssignmentPattern":
                  case "RestElement":
                    break;
                  case "ObjectExpression":
                    t.type = "ObjectPattern";
                    for (let o = 0, h = t.properties.length, c = h - 1; o < h; o++) {
                      var n;
                      let l$1 = t.properties[o],
                        u = o === c;
                      this.toAssignableObjectExpressionProp(l$1, u, e), u && l$1.type === "RestElement" && (n = t.extra) != null && n.trailingCommaLoc && this.raise(p.RestTrailingComma, t.extra.trailingCommaLoc);
                    }
                    break;
                  case "ObjectProperty":
                    {
                      let {
                        key: o,
                        value: h
                      } = t;
                      this.isPrivateName(o) && this.classScope.usePrivateName(this.getPrivateNameSV(o), o.loc.start), this.toAssignable(h, e);
                      break;
                    }
                  case "SpreadElement":
                    throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");
                  case "ArrayExpression":
                    t.type = "ArrayPattern", this.toAssignableList(t.elements, (i = t.extra) == null ? void 0 : i.trailingCommaLoc, e);
                    break;
                  case "AssignmentExpression":
                    t.operator !== "=" && this.raise(p.MissingEqInAssignment, t.left.loc.end), t.type = "AssignmentPattern", delete t.operator, this.toAssignable(t.left, e);
                    break;
                  case "ParenthesizedExpression":
                    this.toAssignable(r, e);
                    break;
                }
              }
              toAssignableObjectExpressionProp(t, e, s) {
                if (t.type === "ObjectMethod") this.raise(t.kind === "get" || t.kind === "set" ? p.PatternHasAccessor : p.PatternHasMethod, t.key);else if (t.type === "SpreadElement") {
                  t.type = "RestElement";
                  let i = t.argument;
                  this.checkToRestConversion(i, !1), this.toAssignable(i, s), e || this.raise(p.RestTrailingComma, t);
                } else this.toAssignable(t, s);
              }
              toAssignableList(t, e, s) {
                let i = t.length - 1;
                for (let r = 0; r <= i; r++) {
                  let n = t[r];
                  if (n) {
                    if (n.type === "SpreadElement") {
                      n.type = "RestElement";
                      let o = n.argument;
                      this.checkToRestConversion(o, !0), this.toAssignable(o, s);
                    } else this.toAssignable(n, s);
                    n.type === "RestElement" && (r < i ? this.raise(p.RestTrailingComma, n) : e && this.raise(p.RestTrailingComma, e));
                  }
                }
              }
              isAssignable(t, e) {
                switch (t.type) {
                  case "Identifier":
                  case "ObjectPattern":
                  case "ArrayPattern":
                  case "AssignmentPattern":
                  case "RestElement":
                    return !0;
                  case "ObjectExpression":
                    {
                      let s = t.properties.length - 1;
                      return t.properties.every((i, r) => i.type !== "ObjectMethod" && (r === s || i.type !== "SpreadElement") && this.isAssignable(i));
                    }
                  case "ObjectProperty":
                    return this.isAssignable(t.value);
                  case "SpreadElement":
                    return this.isAssignable(t.argument);
                  case "ArrayExpression":
                    return t.elements.every(s => s === null || this.isAssignable(s));
                  case "AssignmentExpression":
                    return t.operator === "=";
                  case "ParenthesizedExpression":
                    return this.isAssignable(t.expression);
                  case "MemberExpression":
                  case "OptionalMemberExpression":
                    return !e;
                  default:
                    return !1;
                }
              }
              toReferencedList(t, e) {
                return t;
              }
              toReferencedListDeep(t, e) {
                this.toReferencedList(t, e);
                for (let s of t) (s == null ? void 0 : s.type) === "ArrayExpression" && this.toReferencedListDeep(s.elements);
              }
              parseSpread(t) {
                let e = this.startNode();
                return this.next(), e.argument = this.parseMaybeAssignAllowIn(t, void 0), this.finishNode(e, "SpreadElement");
              }
              parseRestBinding() {
                let t = this.startNode();
                return this.next(), t.argument = this.parseBindingAtom(), this.finishNode(t, "RestElement");
              }
              parseBindingAtom() {
                switch (this.state.type) {
                  case 0:
                    {
                      let t = this.startNode();
                      return this.next(), t.elements = this.parseBindingList(3, 93, 1), this.finishNode(t, "ArrayPattern");
                    }
                  case 5:
                    return this.parseObjectLike(8, !0);
                }
                return this.parseIdentifier();
              }
              parseBindingList(t, e, s) {
                let i = s & 1,
                  r = [],
                  n = !0;
                for (; !this.eat(t);) if (n ? n = !1 : this.expect(12), i && this.match(12)) r.push(null);else {
                  if (this.eat(t)) break;
                  if (this.match(21)) {
                    if (r.push(this.parseAssignableListItemTypes(this.parseRestBinding(), s)), !this.checkCommaAfterRest(e)) {
                      this.expect(t);
                      break;
                    }
                  } else {
                    let o = [];
                    for (this.match(26) && this.hasPlugin("decorators") && this.raise(p.UnsupportedParameterDecorator, this.state.startLoc); this.match(26);) o.push(this.parseDecorator());
                    r.push(this.parseAssignableListItem(s, o));
                  }
                }
                return r;
              }
              parseBindingRestProperty(t) {
                return this.next(), t.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(t, "RestElement");
              }
              parseBindingProperty() {
                let {
                  type: t,
                  startLoc: e
                } = this.state;
                if (t === 21) return this.parseBindingRestProperty(this.startNode());
                let s = this.startNode();
                return t === 138 ? (this.expectPlugin("destructuringPrivate", e), this.classScope.usePrivateName(this.state.value, e), s.key = this.parsePrivateName()) : this.parsePropertyName(s), s.method = !1, this.parseObjPropValue(s, e, !1, !1, !0, !1);
              }
              parseAssignableListItem(t, e) {
                let s = this.parseMaybeDefault();
                this.parseAssignableListItemTypes(s, t);
                let i = this.parseMaybeDefault(s.loc.start, s);
                return e.length && (s.decorators = e), i;
              }
              parseAssignableListItemTypes(t, e) {
                return t;
              }
              parseMaybeDefault(t, e) {
                var i;
                if (t ??= this.state.startLoc, e = (i = e) != null ? i : this.parseBindingAtom(), !this.eat(29)) return e;
                let r = this.startNodeAt(t);
                return r.left = e, r.right = this.parseMaybeAssignAllowIn(), this.finishNode(r, "AssignmentPattern");
              }
              isValidLVal(t, e, s) {
                return Ki$1({
                  AssignmentPattern: "left",
                  RestElement: "argument",
                  ObjectProperty: "value",
                  ParenthesizedExpression: "expression",
                  ArrayPattern: "elements",
                  ObjectPattern: "properties"
                }, t);
              }
              isOptionalMemberExpression(t) {
                return t.type === "OptionalMemberExpression";
              }
              checkLVal(t, {
                in: e,
                binding: s = 64,
                checkClashes: i = !1,
                strictModeChanged: r = !1,
                hasParenthesizedAncestor: n = !1
              }) {
                var o;
                let h = t.type;
                if (this.isObjectMethod(t)) return;
                let c = this.isOptionalMemberExpression(t);
                if (c || h === "MemberExpression") {
                  c && (this.expectPlugin("optionalChainingAssign", t.loc.start), e.type !== "AssignmentExpression" && this.raise(p.InvalidLhsOptionalChaining, t, {
                    ancestor: e
                  })), s !== 64 && this.raise(p.InvalidPropertyBindingPattern, t);
                  return;
                }
                if (h === "Identifier") {
                  this.checkIdentifier(t, s, r);
                  let {
                    name: y$1
                  } = t;
                  i && (i.has(y$1) ? this.raise(p.ParamDupe, t) : i.add(y$1));
                  return;
                }
                let l$1 = this.isValidLVal(h, !(n || (o = t.extra) != null && o.parenthesized) && e.type === "AssignmentExpression", s);
                if (l$1 === !0) return;
                if (l$1 === !1) {
                  let y$1 = s === 64 ? p.InvalidLhs : p.InvalidLhsBinding;
                  this.raise(y$1, t, {
                    ancestor: e
                  });
                  return;
                }
                let [u, f$1] = Array.isArray(l$1) ? l$1 : [l$1, h === "ParenthesizedExpression"],
                  d$1 = h === "ArrayPattern" || h === "ObjectPattern" ? {
                    type: h
                  } : e;
                for (let y$1 of [].concat(t[u])) y$1 && this.checkLVal(y$1, {
                  in: d$1,
                  binding: s,
                  checkClashes: i,
                  strictModeChanged: r,
                  hasParenthesizedAncestor: f$1
                });
              }
              checkIdentifier(t, e, s = !1) {
                this.state.strict && (s ? Zt$1(t.name, this.inModule) : Qt$2(t.name)) && (e === 64 ? this.raise(p.StrictEvalArguments, t, {
                  referenceName: t.name
                }) : this.raise(p.StrictEvalArgumentsBinding, t, {
                  bindingName: t.name
                })), e & 8192 && t.name === "let" && this.raise(p.LetInLexicalBinding, t), e & 64 || this.declareNameFromIdentifier(t, e);
              }
              declareNameFromIdentifier(t, e) {
                this.scope.declareName(t.name, e, t.loc.start);
              }
              checkToRestConversion(t, e) {
                switch (t.type) {
                  case "ParenthesizedExpression":
                    this.checkToRestConversion(t.expression, e);
                    break;
                  case "Identifier":
                  case "MemberExpression":
                    break;
                  case "ArrayExpression":
                  case "ObjectExpression":
                    if (e) break;
                  default:
                    this.raise(p.InvalidRestAssignmentPattern, t);
                }
              }
              checkCommaAfterRest(t) {
                return this.match(12) ? (this.raise(this.lookaheadCharCode() === t ? p.RestTrailingComma : p.ElementAfterRest, this.state.startLoc), !0) : !1;
              }
            },
            Hi$1 = (a, t) => hasOwnProperty.call(a, t) && a[t];
          function Wi$1(a) {
            if (a == null) throw new Error(`Unexpected ${a} value.`);
            return a;
          }
          function jt$2(a) {
            if (!a) throw new Error("Assert fail");
          }
          var x$2 = j$1`typescript`({
            AbstractMethodHasImplementation: ({
              methodName: a
            }) => `Method '${a}' cannot have an implementation because it is marked abstract.`,
            AbstractPropertyHasInitializer: ({
              propertyName: a
            }) => `Property '${a}' cannot have an initializer because it is marked abstract.`,
            AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.",
            AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.",
            AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.",
            ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.",
            ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.",
            ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",
            ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
            DeclareAccessor: ({
              kind: a
            }) => `'declare' is not allowed in ${a}ters.`,
            DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
            DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
            DuplicateAccessibilityModifier: ({
              modifier: a
            }) => "Accessibility modifier already seen.",
            DuplicateModifier: ({
              modifier: a
            }) => `Duplicate modifier: '${a}'.`,
            EmptyHeritageClauseType: ({
              token: a
            }) => `'${a}' list cannot be empty.`,
            EmptyTypeArguments: "Type argument list cannot be empty.",
            EmptyTypeParameters: "Type parameter list cannot be empty.",
            ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.",
            ImportAliasHasImportType: "An import alias can not use 'import type'.",
            ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier",
            IncompatibleModifiers: ({
              modifiers: a
            }) => `'${a[0]}' modifier cannot be used with '${a[1]}' modifier.`,
            IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
            IndexSignatureHasAccessibility: ({
              modifier: a
            }) => `Index signatures cannot have an accessibility modifier ('${a}').`,
            IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.",
            IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.",
            IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.",
            InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.",
            InvalidModifierOnTypeMember: ({
              modifier: a
            }) => `'${a}' modifier cannot appear on a type member.`,
            InvalidModifierOnTypeParameter: ({
              modifier: a
            }) => `'${a}' modifier cannot appear on a type parameter.`,
            InvalidModifierOnTypeParameterPositions: ({
              modifier: a
            }) => `'${a}' modifier can only appear on a type parameter of a class, interface or type alias.`,
            InvalidModifiersOrder: ({
              orderedModifiers: a
            }) => `'${a[0]}' modifier must precede '${a[1]}' modifier.`,
            InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",
            InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.",
            MissingInterfaceName: "'interface' declarations must be followed by an identifier.",
            NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.",
            NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.",
            OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
            OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.",
            PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
            PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
            PrivateElementHasAccessibility: ({
              modifier: a
            }) => `Private elements cannot have an accessibility modifier ('${a}').`,
            ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.",
            ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",
            ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",
            SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.",
            SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.",
            SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.",
            SingleTypeParameterWithoutTrailingComma: ({
              typeParameterName: a
            }) => `Single type parameter ${a} should have a trailing comma. Example usage: <${a},>.`,
            StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.",
            TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",
            TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
            TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.",
            TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",
            TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",
            UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.",
            UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
            UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
            UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
            UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.",
            UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
            UnsupportedSignatureParameterKind: ({
              type: a
            }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${a}.`
          });
          function Ji$1(a) {
            switch (a) {
              case "any":
                return "TSAnyKeyword";
              case "boolean":
                return "TSBooleanKeyword";
              case "bigint":
                return "TSBigIntKeyword";
              case "never":
                return "TSNeverKeyword";
              case "number":
                return "TSNumberKeyword";
              case "object":
                return "TSObjectKeyword";
              case "string":
                return "TSStringKeyword";
              case "symbol":
                return "TSSymbolKeyword";
              case "undefined":
                return "TSUndefinedKeyword";
              case "unknown":
                return "TSUnknownKeyword";
              default:
                return;
            }
          }
          function $t$1(a) {
            return a === "private" || a === "public" || a === "protected";
          }
          function Xi$1(a) {
            return a === "in" || a === "out";
          }
          var Gi$1 = a => class extends a {
            constructor(...e) {
              super(...e), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
                allowedModifiers: ["in", "out"],
                disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
                errorTemplate: x$2.InvalidModifierOnTypeParameter
              }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
                allowedModifiers: ["const"],
                disallowedModifiers: ["in", "out"],
                errorTemplate: x$2.InvalidModifierOnTypeParameterPositions
              }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
                allowedModifiers: ["in", "out", "const"],
                disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
                errorTemplate: x$2.InvalidModifierOnTypeParameter
              });
            }
            getScopeHandler() {
              return ht$2;
            }
            tsIsIdentifier() {
              return w$1(this.state.type);
            }
            tsTokenCanFollowModifier() {
              return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak();
            }
            tsNextTokenCanFollowModifier() {
              return this.next(), this.tsTokenCanFollowModifier();
            }
            tsParseModifier(e, s) {
              if (!w$1(this.state.type) && this.state.type !== 58 && this.state.type !== 75) return;
              let i = this.state.value;
              if (e.includes(i)) {
                if (s && this.tsIsStartOfStaticBlocks()) return;
                if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) return i;
              }
            }
            tsParseModifiers({
              allowedModifiers: e,
              disallowedModifiers: s,
              stopOnStartOfClassStaticBlock: i,
              errorTemplate: r = x$2.InvalidModifierOnTypeMember
            }, n) {
              let o = (c, l$1, u, f$1) => {
                  l$1 === u && n[f$1] && this.raise(x$2.InvalidModifiersOrder, c, {
                    orderedModifiers: [u, f$1]
                  });
                },
                h = (c, l$1, u, f$1) => {
                  (n[u] && l$1 === f$1 || n[f$1] && l$1 === u) && this.raise(x$2.IncompatibleModifiers, c, {
                    modifiers: [u, f$1]
                  });
                };
              for (;;) {
                let {
                    startLoc: c
                  } = this.state,
                  l$1 = this.tsParseModifier(e.concat(s ?? []), i);
                if (!l$1) break;
                $t$1(l$1) ? n.accessibility ? this.raise(x$2.DuplicateAccessibilityModifier, c, {
                  modifier: l$1
                }) : (o(c, l$1, l$1, "override"), o(c, l$1, l$1, "static"), o(c, l$1, l$1, "readonly"), n.accessibility = l$1) : Xi$1(l$1) ? (n[l$1] && this.raise(x$2.DuplicateModifier, c, {
                  modifier: l$1
                }), n[l$1] = !0, o(c, l$1, "in", "out")) : (hasOwnProperty.call(n, l$1) ? this.raise(x$2.DuplicateModifier, c, {
                  modifier: l$1
                }) : (o(c, l$1, "static", "readonly"), o(c, l$1, "static", "override"), o(c, l$1, "override", "readonly"), o(c, l$1, "abstract", "override"), h(c, l$1, "declare", "override"), h(c, l$1, "static", "abstract")), n[l$1] = !0), s != null && s.includes(l$1) && this.raise(r, c, {
                  modifier: l$1
                });
              }
            }
            tsIsListTerminator(e) {
              switch (e) {
                case "EnumMembers":
                case "TypeMembers":
                  return this.match(8);
                case "HeritageClauseElement":
                  return this.match(5);
                case "TupleElementTypes":
                  return this.match(3);
                case "TypeParametersOrArguments":
                  return this.match(48);
              }
            }
            tsParseList(e, s) {
              let i = [];
              for (; !this.tsIsListTerminator(e);) i.push(s());
              return i;
            }
            tsParseDelimitedList(e, s, i) {
              return Wi$1(this.tsParseDelimitedListWorker(e, s, !0, i));
            }
            tsParseDelimitedListWorker(e, s, i, r) {
              let n = [],
                o = -1;
              for (; !this.tsIsListTerminator(e);) {
                o = -1;
                let h = s();
                if (h == null) return;
                if (n.push(h), this.eat(12)) {
                  o = this.state.lastTokStartLoc.index;
                  continue;
                }
                if (this.tsIsListTerminator(e)) break;
                i && this.expect(12);
                return;
              }
              return r && (r.value = o), n;
            }
            tsParseBracketedList(e, s, i, r, n) {
              r || (i ? this.expect(0) : this.expect(47));
              let o = this.tsParseDelimitedList(e, s, n);
              return i ? this.expect(3) : this.expect(48), o;
            }
            tsParseImportType() {
              let e = this.startNode();
              return this.expect(83), this.expect(10), this.match(133) || this.raise(x$2.UnsupportedImportTypeArgument, this.state.startLoc), e.argument = super.parseExprAtom(), (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) && (e.options = null), this.eat(12) && (this.expectImportAttributesPlugin(), this.match(11) || (e.options = super.parseMaybeAssignAllowIn(), this.eat(12))), this.expect(11), this.eat(16) && (e.qualifier = this.tsParseEntityName()), this.match(47) && (e.typeParameters = this.tsParseTypeArguments()), this.finishNode(e, "TSImportType");
            }
            tsParseEntityName(e = !0) {
              let s = this.parseIdentifier(e);
              for (; this.eat(16);) {
                let i = this.startNodeAtNode(s);
                i.left = s, i.right = this.parseIdentifier(e), s = this.finishNode(i, "TSQualifiedName");
              }
              return s;
            }
            tsParseTypeReference() {
              let e = this.startNode();
              return e.typeName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (e.typeParameters = this.tsParseTypeArguments()), this.finishNode(e, "TSTypeReference");
            }
            tsParseThisTypePredicate(e) {
              this.next();
              let s = this.startNodeAtNode(e);
              return s.parameterName = e, s.typeAnnotation = this.tsParseTypeAnnotation(!1), s.asserts = !1, this.finishNode(s, "TSTypePredicate");
            }
            tsParseThisTypeNode() {
              let e = this.startNode();
              return this.next(), this.finishNode(e, "TSThisType");
            }
            tsParseTypeQuery() {
              let e = this.startNode();
              return this.expect(87), this.match(83) ? e.exprName = this.tsParseImportType() : e.exprName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (e.typeParameters = this.tsParseTypeArguments()), this.finishNode(e, "TSTypeQuery");
            }
            tsParseTypeParameter(e) {
              let s = this.startNode();
              return e(s), s.name = this.tsParseTypeParameterName(), s.constraint = this.tsEatThenParseType(81), s.default = this.tsEatThenParseType(29), this.finishNode(s, "TSTypeParameter");
            }
            tsTryParseTypeParameters(e) {
              if (this.match(47)) return this.tsParseTypeParameters(e);
            }
            tsParseTypeParameters(e) {
              let s = this.startNode();
              this.match(47) || this.match(142) ? this.next() : this.unexpected();
              let i = {
                value: -1
              };
              return s.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, e), !1, !0, i), s.params.length === 0 && this.raise(x$2.EmptyTypeParameters, s), i.value !== -1 && this.addExtra(s, "trailingComma", i.value), this.finishNode(s, "TSTypeParameterDeclaration");
            }
            tsFillSignature(e, s) {
              let i = e === 19,
                r = "parameters",
                n = "typeAnnotation";
              s.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), s[r] = this.tsParseBindingListForSignature(), i ? s[n] = this.tsParseTypeOrTypePredicateAnnotation(e) : this.match(e) && (s[n] = this.tsParseTypeOrTypePredicateAnnotation(e));
            }
            tsParseBindingListForSignature() {
              let e = super.parseBindingList(11, 41, 2);
              for (let s of e) {
                let {
                  type: i
                } = s;
                (i === "AssignmentPattern" || i === "TSParameterProperty") && this.raise(x$2.UnsupportedSignatureParameterKind, s, {
                  type: i
                });
              }
              return e;
            }
            tsParseTypeMemberSemicolon() {
              !this.eat(12) && !this.isLineTerminator() && this.expect(13);
            }
            tsParseSignatureMember(e, s) {
              return this.tsFillSignature(14, s), this.tsParseTypeMemberSemicolon(), this.finishNode(s, e);
            }
            tsIsUnambiguouslyIndexSignature() {
              return this.next(), w$1(this.state.type) ? (this.next(), this.match(14)) : !1;
            }
            tsTryParseIndexSignature(e) {
              if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) return;
              this.expect(0);
              let s = this.parseIdentifier();
              s.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(s), this.expect(3), e.parameters = [s];
              let i = this.tsTryParseTypeAnnotation();
              return i && (e.typeAnnotation = i), this.tsParseTypeMemberSemicolon(), this.finishNode(e, "TSIndexSignature");
            }
            tsParsePropertyOrMethodSignature(e, s) {
              this.eat(17) && (e.optional = !0);
              let i = e;
              if (this.match(10) || this.match(47)) {
                s && this.raise(x$2.ReadonlyForMethodSignature, e);
                let r = i;
                r.kind && this.match(47) && this.raise(x$2.AccesorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, r), this.tsParseTypeMemberSemicolon();
                let n = "parameters",
                  o = "typeAnnotation";
                if (r.kind === "get") r[n].length > 0 && (this.raise(p.BadGetterArity, this.state.curPosition()), this.isThisParam(r[n][0]) && this.raise(x$2.AccesorCannotDeclareThisParameter, this.state.curPosition()));else if (r.kind === "set") {
                  if (r[n].length !== 1) this.raise(p.BadSetterArity, this.state.curPosition());else {
                    let h = r[n][0];
                    this.isThisParam(h) && this.raise(x$2.AccesorCannotDeclareThisParameter, this.state.curPosition()), h.type === "Identifier" && h.optional && this.raise(x$2.SetAccesorCannotHaveOptionalParameter, this.state.curPosition()), h.type === "RestElement" && this.raise(x$2.SetAccesorCannotHaveRestParameter, this.state.curPosition());
                  }
                  r[o] && this.raise(x$2.SetAccesorCannotHaveReturnType, r[o]);
                } else r.kind = "method";
                return this.finishNode(r, "TSMethodSignature");
              } else {
                let r = i;
                s && (r.readonly = !0);
                let n = this.tsTryParseTypeAnnotation();
                return n && (r.typeAnnotation = n), this.tsParseTypeMemberSemicolon(), this.finishNode(r, "TSPropertySignature");
              }
            }
            tsParseTypeMember() {
              let e = this.startNode();
              if (this.match(10) || this.match(47)) return this.tsParseSignatureMember("TSCallSignatureDeclaration", e);
              if (this.match(77)) {
                let i = this.startNode();
                return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", e) : (e.key = this.createIdentifier(i, "new"), this.tsParsePropertyOrMethodSignature(e, !1));
              }
              this.tsParseModifiers({
                allowedModifiers: ["readonly"],
                disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
              }, e);
              return this.tsTryParseIndexSignature(e) || (super.parsePropertyName(e), !e.computed && e.key.type === "Identifier" && (e.key.name === "get" || e.key.name === "set") && this.tsTokenCanFollowModifier() && (e.kind = e.key.name, super.parsePropertyName(e)), this.tsParsePropertyOrMethodSignature(e, !!e.readonly));
            }
            tsParseTypeLiteral() {
              let e = this.startNode();
              return e.members = this.tsParseObjectTypeMembers(), this.finishNode(e, "TSTypeLiteral");
            }
            tsParseObjectTypeMembers() {
              this.expect(5);
              let e = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
              return this.expect(8), e;
            }
            tsIsStartOfMappedType() {
              return this.next(), this.eat(53) ? this.isContextual(122) : (this.isContextual(122) && this.next(), !this.match(0) || (this.next(), !this.tsIsIdentifier()) ? !1 : (this.next(), this.match(58)));
            }
            tsParseMappedTypeParameter() {
              let e = this.startNode();
              return e.name = this.tsParseTypeParameterName(), e.constraint = this.tsExpectThenParseType(58), this.finishNode(e, "TSTypeParameter");
            }
            tsParseMappedType() {
              let e = this.startNode();
              return this.expect(5), this.match(53) ? (e.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) && (e.readonly = !0), this.expect(0), e.typeParameter = this.tsParseMappedTypeParameter(), e.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (e.optional = this.state.value, this.next(), this.expect(17)) : this.eat(17) && (e.optional = !0), e.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(8), this.finishNode(e, "TSMappedType");
            }
            tsParseTupleType() {
              let e = this.startNode();
              e.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
              let s = !1;
              return e.elementTypes.forEach(i => {
                let {
                  type: r
                } = i;
                s && r !== "TSRestType" && r !== "TSOptionalType" && !(r === "TSNamedTupleMember" && i.optional) && this.raise(x$2.OptionalTypeBeforeRequired, i), s || (s = r === "TSNamedTupleMember" && i.optional || r === "TSOptionalType");
              }), this.finishNode(e, "TSTupleType");
            }
            tsParseTupleElementType() {
              let {
                  startLoc: e
                } = this.state,
                s = this.eat(21),
                i,
                r,
                n,
                o,
                c = M$2(this.state.type) ? this.lookaheadCharCode() : null;
              if (c === 58) i = !0, n = !1, r = this.parseIdentifier(!0), this.expect(14), o = this.tsParseType();else if (c === 63) {
                n = !0;
                let l$1 = this.state.startLoc,
                  u = this.state.value,
                  f$1 = this.tsParseNonArrayType();
                this.lookaheadCharCode() === 58 ? (i = !0, r = this.createIdentifier(this.startNodeAt(l$1), u), this.expect(17), this.expect(14), o = this.tsParseType()) : (i = !1, o = f$1, this.expect(17));
              } else o = this.tsParseType(), n = this.eat(17), i = this.eat(14);
              if (i) {
                let l$1;
                r ? (l$1 = this.startNodeAtNode(r), l$1.optional = n, l$1.label = r, l$1.elementType = o, this.eat(17) && (l$1.optional = !0, this.raise(x$2.TupleOptionalAfterType, this.state.lastTokStartLoc))) : (l$1 = this.startNodeAtNode(o), l$1.optional = n, this.raise(x$2.InvalidTupleMemberLabel, o), l$1.label = o, l$1.elementType = this.tsParseType()), o = this.finishNode(l$1, "TSNamedTupleMember");
              } else if (n) {
                let l$1 = this.startNodeAtNode(o);
                l$1.typeAnnotation = o, o = this.finishNode(l$1, "TSOptionalType");
              }
              if (s) {
                let l$1 = this.startNodeAt(e);
                l$1.typeAnnotation = o, o = this.finishNode(l$1, "TSRestType");
              }
              return o;
            }
            tsParseParenthesizedType() {
              let e = this.startNode();
              return this.expect(10), e.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(e, "TSParenthesizedType");
            }
            tsParseFunctionOrConstructorType(e, s) {
              let i = this.startNode();
              return e === "TSConstructorType" && (i.abstract = !!s, s && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, i)), this.finishNode(i, e);
            }
            tsParseLiteralTypeNode() {
              let e = this.startNode();
              switch (this.state.type) {
                case 134:
                case 135:
                case 133:
                case 85:
                case 86:
                  e.literal = super.parseExprAtom();
                  break;
                default:
                  this.unexpected();
              }
              return this.finishNode(e, "TSLiteralType");
            }
            tsParseTemplateLiteralType() {
              let e = this.startNode();
              return e.literal = super.parseTemplate(!1), this.finishNode(e, "TSLiteralType");
            }
            parseTemplateSubstitution() {
              return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
            }
            tsParseThisTypeOrThisTypePredicate() {
              let e = this.tsParseThisTypeNode();
              return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(e) : e;
            }
            tsParseNonArrayType() {
              switch (this.state.type) {
                case 133:
                case 134:
                case 135:
                case 85:
                case 86:
                  return this.tsParseLiteralTypeNode();
                case 53:
                  if (this.state.value === "-") {
                    let e = this.startNode(),
                      s = this.lookahead();
                    return s.type !== 134 && s.type !== 135 && this.unexpected(), e.literal = this.parseMaybeUnary(), this.finishNode(e, "TSLiteralType");
                  }
                  break;
                case 78:
                  return this.tsParseThisTypeOrThisTypePredicate();
                case 87:
                  return this.tsParseTypeQuery();
                case 83:
                  return this.tsParseImportType();
                case 5:
                  return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
                case 0:
                  return this.tsParseTupleType();
                case 10:
                  return this.tsParseParenthesizedType();
                case 25:
                case 24:
                  return this.tsParseTemplateLiteralType();
                default:
                  {
                    let {
                      type: e
                    } = this.state;
                    if (w$1(e) || e === 88 || e === 84) {
                      let s = e === 88 ? "TSVoidKeyword" : e === 84 ? "TSNullKeyword" : Ji$1(this.state.value);
                      if (s !== void 0 && this.lookaheadCharCode() !== 46) {
                        let i = this.startNode();
                        return this.next(), this.finishNode(i, s);
                      }
                      return this.tsParseTypeReference();
                    }
                  }
              }
              this.unexpected();
            }
            tsParseArrayTypeOrHigher() {
              let e = this.tsParseNonArrayType();
              for (; !this.hasPrecedingLineBreak() && this.eat(0);) if (this.match(3)) {
                let s = this.startNodeAtNode(e);
                s.elementType = e, this.expect(3), e = this.finishNode(s, "TSArrayType");
              } else {
                let s = this.startNodeAtNode(e);
                s.objectType = e, s.indexType = this.tsParseType(), this.expect(3), e = this.finishNode(s, "TSIndexedAccessType");
              }
              return e;
            }
            tsParseTypeOperator() {
              let e = this.startNode(),
                s = this.state.value;
              return this.next(), e.operator = s, e.typeAnnotation = this.tsParseTypeOperatorOrHigher(), s === "readonly" && this.tsCheckTypeAnnotationForReadOnly(e), this.finishNode(e, "TSTypeOperator");
            }
            tsCheckTypeAnnotationForReadOnly(e) {
              switch (e.typeAnnotation.type) {
                case "TSTupleType":
                case "TSArrayType":
                  return;
                default:
                  this.raise(x$2.UnexpectedReadonly, e);
              }
            }
            tsParseInferType() {
              let e = this.startNode();
              this.expectContextual(115);
              let s = this.startNode();
              return s.name = this.tsParseTypeParameterName(), s.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), e.typeParameter = this.finishNode(s, "TSTypeParameter"), this.finishNode(e, "TSInferType");
            }
            tsParseConstraintForInferType() {
              if (this.eat(81)) {
                let e = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
                if (this.state.inDisallowConditionalTypesContext || !this.match(17)) return e;
              }
            }
            tsParseTypeOperatorOrHigher() {
              return di$2(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
            }
            tsParseUnionOrIntersectionType(e, s, i) {
              let r = this.startNode(),
                n = this.eat(i),
                o = [];
              do o.push(s()); while (this.eat(i));
              return o.length === 1 && !n ? o[0] : (r.types = o, this.finishNode(r, e));
            }
            tsParseIntersectionTypeOrHigher() {
              return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45);
            }
            tsParseUnionTypeOrHigher() {
              return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43);
            }
            tsIsStartOfFunctionType() {
              return this.match(47) ? !0 : this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
            }
            tsSkipParameterStart() {
              if (w$1(this.state.type) || this.match(78)) return this.next(), !0;
              if (this.match(5)) {
                let {
                    errors: e
                  } = this.state,
                  s = e.length;
                try {
                  return this.parseObjectLike(8, !0), e.length === s;
                } catch {
                  return !1;
                }
              }
              if (this.match(0)) {
                this.next();
                let {
                    errors: e
                  } = this.state,
                  s = e.length;
                try {
                  return super.parseBindingList(3, 93, 1), e.length === s;
                } catch {
                  return !1;
                }
              }
              return !1;
            }
            tsIsUnambiguouslyStartOfFunctionType() {
              return this.next(), !!(this.match(11) || this.match(21) || this.tsSkipParameterStart() && (this.match(14) || this.match(12) || this.match(17) || this.match(29) || this.match(11) && (this.next(), this.match(19))));
            }
            tsParseTypeOrTypePredicateAnnotation(e) {
              return this.tsInType(() => {
                let s = this.startNode();
                this.expect(e);
                let i = this.startNode(),
                  r = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
                if (r && this.match(78)) {
                  let h = this.tsParseThisTypeOrThisTypePredicate();
                  return h.type === "TSThisType" ? (i.parameterName = h, i.asserts = !0, i.typeAnnotation = null, h = this.finishNode(i, "TSTypePredicate")) : (this.resetStartLocationFromNode(h, i), h.asserts = !0), s.typeAnnotation = h, this.finishNode(s, "TSTypeAnnotation");
                }
                let n = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
                if (!n) return r ? (i.parameterName = this.parseIdentifier(), i.asserts = r, i.typeAnnotation = null, s.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(s, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, s);
                let o = this.tsParseTypeAnnotation(!1);
                return i.parameterName = n, i.typeAnnotation = o, i.asserts = r, s.typeAnnotation = this.finishNode(i, "TSTypePredicate"), this.finishNode(s, "TSTypeAnnotation");
              });
            }
            tsTryParseTypeOrTypePredicateAnnotation() {
              if (this.match(14)) return this.tsParseTypeOrTypePredicateAnnotation(14);
            }
            tsTryParseTypeAnnotation() {
              if (this.match(14)) return this.tsParseTypeAnnotation();
            }
            tsTryParseType() {
              return this.tsEatThenParseType(14);
            }
            tsParseTypePredicatePrefix() {
              let e = this.parseIdentifier();
              if (this.isContextual(116) && !this.hasPrecedingLineBreak()) return this.next(), e;
            }
            tsParseTypePredicateAsserts() {
              if (this.state.type !== 109) return !1;
              let e = this.state.containsEsc;
              return this.next(), !w$1(this.state.type) && !this.match(78) ? !1 : (e && this.raise(p.InvalidEscapedReservedWord, this.state.lastTokStartLoc, {
                reservedWord: "asserts"
              }), !0);
            }
            tsParseTypeAnnotation(e = !0, s = this.startNode()) {
              return this.tsInType(() => {
                e && this.expect(14), s.typeAnnotation = this.tsParseType();
              }), this.finishNode(s, "TSTypeAnnotation");
            }
            tsParseType() {
              jt$2(this.state.inType);
              let e = this.tsParseNonConditionalType();
              if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) return e;
              let s = this.startNodeAtNode(e);
              return s.checkType = e, s.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(17), s.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), s.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.finishNode(s, "TSConditionalType");
            }
            isAbstractConstructorSignature() {
              return this.isContextual(124) && this.lookahead().type === 77;
            }
            tsParseNonConditionalType() {
              return this.tsIsStartOfFunctionType() ? this.tsParseFunctionOrConstructorType("TSFunctionType") : this.match(77) ? this.tsParseFunctionOrConstructorType("TSConstructorType") : this.isAbstractConstructorSignature() ? this.tsParseFunctionOrConstructorType("TSConstructorType", !0) : this.tsParseUnionTypeOrHigher();
            }
            tsParseTypeAssertion() {
              this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(x$2.ReservedTypeAssertion, this.state.startLoc);
              let e = this.startNode();
              return e.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.expect(48), e.expression = this.parseMaybeUnary(), this.finishNode(e, "TSTypeAssertion");
            }
            tsParseHeritageClause(e) {
              let s = this.state.startLoc,
                i = this.tsParseDelimitedList("HeritageClauseElement", () => {
                  let r = this.startNode();
                  return r.expression = this.tsParseEntityName(), this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSExpressionWithTypeArguments");
                });
              return i.length || this.raise(x$2.EmptyHeritageClauseType, s, {
                token: e
              }), i;
            }
            tsParseInterfaceDeclaration(e, s = {}) {
              if (this.hasFollowingLineBreak()) return null;
              this.expectContextual(129), s.declare && (e.declare = !0), w$1(this.state.type) ? (e.id = this.parseIdentifier(), this.checkIdentifier(e.id, 130)) : (e.id = null, this.raise(x$2.MissingInterfaceName, this.state.startLoc)), e.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers), this.eat(81) && (e.extends = this.tsParseHeritageClause("extends"));
              let i = this.startNode();
              return i.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), e.body = this.finishNode(i, "TSInterfaceBody"), this.finishNode(e, "TSInterfaceDeclaration");
            }
            tsParseTypeAliasDeclaration(e) {
              return e.id = this.parseIdentifier(), this.checkIdentifier(e.id, 2), e.typeAnnotation = this.tsInType(() => {
                if (e.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().type !== 16) {
                  let s = this.startNode();
                  return this.next(), this.finishNode(s, "TSIntrinsicKeyword");
                }
                return this.tsParseType();
              }), this.semicolon(), this.finishNode(e, "TSTypeAliasDeclaration");
            }
            tsInNoContext(e) {
              let s = this.state.context;
              this.state.context = [s[0]];
              try {
                return e();
              } finally {
                this.state.context = s;
              }
            }
            tsInType(e) {
              let s = this.state.inType;
              this.state.inType = !0;
              try {
                return e();
              } finally {
                this.state.inType = s;
              }
            }
            tsInDisallowConditionalTypesContext(e) {
              let s = this.state.inDisallowConditionalTypesContext;
              this.state.inDisallowConditionalTypesContext = !0;
              try {
                return e();
              } finally {
                this.state.inDisallowConditionalTypesContext = s;
              }
            }
            tsInAllowConditionalTypesContext(e) {
              let s = this.state.inDisallowConditionalTypesContext;
              this.state.inDisallowConditionalTypesContext = !1;
              try {
                return e();
              } finally {
                this.state.inDisallowConditionalTypesContext = s;
              }
            }
            tsEatThenParseType(e) {
              if (this.match(e)) return this.tsNextThenParseType();
            }
            tsExpectThenParseType(e) {
              return this.tsInType(() => (this.expect(e), this.tsParseType()));
            }
            tsNextThenParseType() {
              return this.tsInType(() => (this.next(), this.tsParseType()));
            }
            tsParseEnumMember() {
              let e = this.startNode();
              return e.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (e.initializer = super.parseMaybeAssignAllowIn()), this.finishNode(e, "TSEnumMember");
            }
            tsParseEnumDeclaration(e, s = {}) {
              return s.const && (e.const = !0), s.declare && (e.declare = !0), this.expectContextual(126), e.id = this.parseIdentifier(), this.checkIdentifier(e.id, e.const ? 8971 : 8459), this.expect(5), e.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(e, "TSEnumDeclaration");
            }
            tsParseModuleBlock() {
              let e = this.startNode();
              return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(e.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(e, "TSModuleBlock");
            }
            tsParseModuleOrNamespaceDeclaration(e, s = !1) {
              if (e.id = this.parseIdentifier(), s || this.checkIdentifier(e.id, 1024), this.eat(16)) {
                let i = this.startNode();
                this.tsParseModuleOrNamespaceDeclaration(i, !0), e.body = i;
              } else this.scope.enter(256), this.prodParam.enter(0), e.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
              return this.finishNode(e, "TSModuleDeclaration");
            }
            tsParseAmbientExternalModuleDeclaration(e) {
              return this.isContextual(112) ? (e.global = !0, e.id = this.parseIdentifier()) : this.match(133) ? e.id = super.parseStringLiteral(this.state.value) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0), e.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(e, "TSModuleDeclaration");
            }
            tsParseImportEqualsDeclaration(e, s, i) {
              e.isExport = i || !1, e.id = s || this.parseIdentifier(), this.checkIdentifier(e.id, 4096), this.expect(29);
              let r = this.tsParseModuleReference();
              return e.importKind === "type" && r.type !== "TSExternalModuleReference" && this.raise(x$2.ImportAliasHasImportType, r), e.moduleReference = r, this.semicolon(), this.finishNode(e, "TSImportEqualsDeclaration");
            }
            tsIsExternalModuleReference() {
              return this.isContextual(119) && this.lookaheadCharCode() === 40;
            }
            tsParseModuleReference() {
              return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(!1);
            }
            tsParseExternalModuleReference() {
              let e = this.startNode();
              return this.expectContextual(119), this.expect(10), this.match(133) || this.unexpected(), e.expression = super.parseExprAtom(), this.expect(11), this.sawUnambiguousESM = !0, this.finishNode(e, "TSExternalModuleReference");
            }
            tsLookAhead(e) {
              let s = this.state.clone(),
                i = e();
              return this.state = s, i;
            }
            tsTryParseAndCatch(e) {
              let s = this.tryParse(i => e() || i());
              if (!(s.aborted || !s.node)) return s.error && (this.state = s.failState), s.node;
            }
            tsTryParse(e) {
              let s = this.state.clone(),
                i = e();
              if (i !== void 0 && i !== !1) return i;
              this.state = s;
            }
            tsTryParseDeclare(e) {
              if (this.isLineTerminator()) return;
              let s = this.state.type,
                i;
              return this.isContextual(100) && (s = 74, i = "let"), this.tsInAmbientContext(() => {
                switch (s) {
                  case 68:
                    return e.declare = !0, super.parseFunctionStatement(e, !1, !1);
                  case 80:
                    return e.declare = !0, this.parseClass(e, !0, !1);
                  case 126:
                    return this.tsParseEnumDeclaration(e, {
                      declare: !0
                    });
                  case 112:
                    return this.tsParseAmbientExternalModuleDeclaration(e);
                  case 75:
                  case 74:
                    return !this.match(75) || !this.isLookaheadContextual("enum") ? (e.declare = !0, this.parseVarStatement(e, i || this.state.value, !0)) : (this.expect(75), this.tsParseEnumDeclaration(e, {
                      const: !0,
                      declare: !0
                    }));
                  case 129:
                    {
                      let r = this.tsParseInterfaceDeclaration(e, {
                        declare: !0
                      });
                      if (r) return r;
                    }
                  default:
                    if (w$1(s)) return this.tsParseDeclaration(e, this.state.value, !0, null);
                }
              });
            }
            tsTryParseExportDeclaration() {
              return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
            }
            tsParseExpressionStatement(e, s, i) {
              switch (s.name) {
                case "declare":
                  {
                    let r = this.tsTryParseDeclare(e);
                    return r && (r.declare = !0), r;
                  }
                case "global":
                  if (this.match(5)) {
                    this.scope.enter(256), this.prodParam.enter(0);
                    let r = e;
                    return r.global = !0, r.id = s, r.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(), this.finishNode(r, "TSModuleDeclaration");
                  }
                  break;
                default:
                  return this.tsParseDeclaration(e, s.name, !1, i);
              }
            }
            tsParseDeclaration(e, s, i, r) {
              switch (s) {
                case "abstract":
                  if (this.tsCheckLineTerminator(i) && (this.match(80) || w$1(this.state.type))) return this.tsParseAbstractDeclaration(e, r);
                  break;
                case "module":
                  if (this.tsCheckLineTerminator(i)) {
                    if (this.match(133)) return this.tsParseAmbientExternalModuleDeclaration(e);
                    if (w$1(this.state.type)) return this.tsParseModuleOrNamespaceDeclaration(e);
                  }
                  break;
                case "namespace":
                  if (this.tsCheckLineTerminator(i) && w$1(this.state.type)) return this.tsParseModuleOrNamespaceDeclaration(e);
                  break;
                case "type":
                  if (this.tsCheckLineTerminator(i) && w$1(this.state.type)) return this.tsParseTypeAliasDeclaration(e);
                  break;
              }
            }
            tsCheckLineTerminator(e) {
              return e ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
            }
            tsTryParseGenericAsyncArrowFunction(e) {
              if (!this.match(47)) return;
              let s = this.state.maybeInArrowParameters;
              this.state.maybeInArrowParameters = !0;
              let i = this.tsTryParseAndCatch(() => {
                let r = this.startNodeAt(e);
                return r.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(r), r.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(), this.expect(19), r;
              });
              if (this.state.maybeInArrowParameters = s, !!i) return super.parseArrowExpression(i, null, !0);
            }
            tsParseTypeArgumentsInExpression() {
              if (this.reScan_lt() === 47) return this.tsParseTypeArguments();
            }
            tsParseTypeArguments() {
              let e = this.startNode();
              return e.params = this.tsInType(() => this.tsInNoContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this))))), e.params.length === 0 ? this.raise(x$2.EmptyTypeArguments, e) : !this.state.inType && this.curContext() === C.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(e, "TSTypeParameterInstantiation");
            }
            tsIsDeclarationStart() {
              return mi$1(this.state.type);
            }
            isExportDefaultSpecifier() {
              return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
            }
            parseAssignableListItem(e, s) {
              let i = this.state.startLoc,
                r = {};
              this.tsParseModifiers({
                allowedModifiers: ["public", "private", "protected", "override", "readonly"]
              }, r);
              let n = r.accessibility,
                o = r.override,
                h = r.readonly;
              !(e & 4) && (n || h || o) && this.raise(x$2.UnexpectedParameterModifier, i);
              let c = this.parseMaybeDefault();
              this.parseAssignableListItemTypes(c, e);
              let l$1 = this.parseMaybeDefault(c.loc.start, c);
              if (n || h || o) {
                let u = this.startNodeAt(i);
                return s.length && (u.decorators = s), n && (u.accessibility = n), h && (u.readonly = h), o && (u.override = o), l$1.type !== "Identifier" && l$1.type !== "AssignmentPattern" && this.raise(x$2.UnsupportedParameterPropertyKind, u), u.parameter = l$1, this.finishNode(u, "TSParameterProperty");
              }
              return s.length && (c.decorators = s), l$1;
            }
            isSimpleParameter(e) {
              return e.type === "TSParameterProperty" && super.isSimpleParameter(e.parameter) || super.isSimpleParameter(e);
            }
            tsDisallowOptionalPattern(e) {
              for (let s of e.params) s.type !== "Identifier" && s.optional && !this.state.isAmbientContext && this.raise(x$2.PatternIsOptional, s);
            }
            setArrowFunctionParameters(e, s, i) {
              super.setArrowFunctionParameters(e, s, i), this.tsDisallowOptionalPattern(e);
            }
            parseFunctionBodyAndFinish(e, s, i = !1) {
              this.match(14) && (e.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
              let r = s === "FunctionDeclaration" ? "TSDeclareFunction" : s === "ClassMethod" || s === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
              return r && !this.match(5) && this.isLineTerminator() ? this.finishNode(e, r) : r === "TSDeclareFunction" && this.state.isAmbientContext && (this.raise(x$2.DeclareFunctionHasImplementation, e), e.declare) ? super.parseFunctionBodyAndFinish(e, r, i) : (this.tsDisallowOptionalPattern(e), super.parseFunctionBodyAndFinish(e, s, i));
            }
            registerFunctionStatementId(e) {
              !e.body && e.id ? this.checkIdentifier(e.id, 1024) : super.registerFunctionStatementId(e);
            }
            tsCheckForInvalidTypeCasts(e) {
              e.forEach(s => {
                (s == null ? void 0 : s.type) === "TSTypeCastExpression" && this.raise(x$2.UnexpectedTypeAnnotation, s.typeAnnotation);
              });
            }
            toReferencedList(e, s) {
              return this.tsCheckForInvalidTypeCasts(e), e;
            }
            parseArrayLike(e, s, i, r) {
              let n = super.parseArrayLike(e, s, i, r);
              return n.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(n.elements), n;
            }
            parseSubscript(e, s, i, r) {
              if (!this.hasPrecedingLineBreak() && this.match(35)) {
                this.state.canStartJSXElement = !1, this.next();
                let o = this.startNodeAt(s);
                return o.expression = e, this.finishNode(o, "TSNonNullExpression");
              }
              let n = !1;
              if (this.match(18) && this.lookaheadCharCode() === 60) {
                if (i) return r.stop = !0, e;
                r.optionalChainMember = n = !0, this.next();
              }
              if (this.match(47) || this.match(51)) {
                let o,
                  h = this.tsTryParseAndCatch(() => {
                    if (!i && this.atPossibleAsyncArrow(e)) {
                      let f$1 = this.tsTryParseGenericAsyncArrowFunction(s);
                      if (f$1) return f$1;
                    }
                    let c = this.tsParseTypeArgumentsInExpression();
                    if (!c) return;
                    if (n && !this.match(10)) {
                      o = this.state.curPosition();
                      return;
                    }
                    if (ve$2(this.state.type)) {
                      let f$1 = super.parseTaggedTemplateExpression(e, s, r);
                      return f$1.typeParameters = c, f$1;
                    }
                    if (!i && this.eat(10)) {
                      let f$1 = this.startNodeAt(s);
                      return f$1.callee = e, f$1.arguments = this.parseCallExpressionArguments(11, !1), this.tsCheckForInvalidTypeCasts(f$1.arguments), f$1.typeParameters = c, r.optionalChainMember && (f$1.optional = n), this.finishCallExpression(f$1, r.optionalChainMember);
                    }
                    let l$1 = this.state.type;
                    if (l$1 === 48 || l$1 === 52 || l$1 !== 10 && He$2(l$1) && !this.hasPrecedingLineBreak()) return;
                    let u = this.startNodeAt(s);
                    return u.expression = e, u.typeParameters = c, this.finishNode(u, "TSInstantiationExpression");
                  });
                if (o && this.unexpected(o, 10), h) return h.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(x$2.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), h;
              }
              return super.parseSubscript(e, s, i, r);
            }
            parseNewCallee(e) {
              var s;
              super.parseNewCallee(e);
              let {
                callee: i
              } = e;
              i.type === "TSInstantiationExpression" && !((s = i.extra) != null && s.parenthesized) && (e.typeParameters = i.typeParameters, e.callee = i.expression);
            }
            parseExprOp(e, s, i) {
              let r;
              if (Ee$2(58) > i && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (r = this.isContextual(120)))) {
                let n = this.startNodeAt(s);
                return n.expression = e, n.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (r && this.raise(p.UnexpectedKeyword, this.state.startLoc, {
                  keyword: "const"
                }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(n, r ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(), this.parseExprOp(n, s, i);
              }
              return super.parseExprOp(e, s, i);
            }
            checkReservedWord(e, s, i, r) {
              this.state.isAmbientContext || super.checkReservedWord(e, s, i, r);
            }
            checkImportReflection(e) {
              super.checkImportReflection(e), e.module && e.importKind !== "value" && this.raise(x$2.ImportReflectionHasImportType, e.specifiers[0].loc.start);
            }
            checkDuplicateExports() {}
            isPotentialImportPhase(e) {
              if (super.isPotentialImportPhase(e)) return !0;
              if (this.isContextual(130)) {
                let s = this.lookaheadCharCode();
                return e ? s === 123 || s === 42 : s !== 61;
              }
              return !e && this.isContextual(87);
            }
            applyImportPhase(e, s, i, r) {
              super.applyImportPhase(e, s, i, r), s ? e.exportKind = i === "type" ? "type" : "value" : e.importKind = i === "type" || i === "typeof" ? i : "value";
            }
            parseImport(e) {
              if (this.match(133)) return e.importKind = "value", super.parseImport(e);
              let s;
              if (w$1(this.state.type) && this.lookaheadCharCode() === 61) return e.importKind = "value", this.tsParseImportEqualsDeclaration(e);
              if (this.isContextual(130)) {
                let i = this.parseMaybeImportPhase(e, !1);
                if (this.lookaheadCharCode() === 61) return this.tsParseImportEqualsDeclaration(e, i);
                s = super.parseImportSpecifiersAndAfter(e, i);
              } else s = super.parseImport(e);
              return s.importKind === "type" && s.specifiers.length > 1 && s.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(x$2.TypeImportCannotSpecifyDefaultAndNamed, s), s;
            }
            parseExport(e, s) {
              if (this.match(83)) {
                this.next();
                let i = e,
                  r = null;
                return this.isContextual(130) && this.isPotentialImportPhase(!1) ? r = this.parseMaybeImportPhase(i, !1) : i.importKind = "value", this.tsParseImportEqualsDeclaration(i, r, !0);
              } else if (this.eat(29)) {
                let i = e;
                return i.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(i, "TSExportAssignment");
              } else if (this.eatContextual(93)) {
                let i = e;
                return this.expectContextual(128), i.id = this.parseIdentifier(), this.semicolon(), this.finishNode(i, "TSNamespaceExportDeclaration");
              } else return super.parseExport(e, s);
            }
            isAbstractClass() {
              return this.isContextual(124) && this.lookahead().type === 80;
            }
            parseExportDefaultExpression() {
              if (this.isAbstractClass()) {
                let e = this.startNode();
                return this.next(), e.abstract = !0, this.parseClass(e, !0, !0);
              }
              if (this.match(129)) {
                let e = this.tsParseInterfaceDeclaration(this.startNode());
                if (e) return e;
              }
              return super.parseExportDefaultExpression();
            }
            parseVarStatement(e, s, i = !1) {
              let {
                  isAmbientContext: r
                } = this.state,
                n = super.parseVarStatement(e, s, i || r);
              if (!r) return n;
              for (let {
                id: o,
                init: h
              } of n.declarations) h && (s !== "const" || o.typeAnnotation ? this.raise(x$2.InitializerNotAllowedInAmbientContext, h) : Qi$1(h, this.hasPlugin("estree")) || this.raise(x$2.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, h));
              return n;
            }
            parseStatementContent(e, s) {
              if (this.match(75) && this.isLookaheadContextual("enum")) {
                let i = this.startNode();
                return this.expect(75), this.tsParseEnumDeclaration(i, {
                  const: !0
                });
              }
              if (this.isContextual(126)) return this.tsParseEnumDeclaration(this.startNode());
              if (this.isContextual(129)) {
                let i = this.tsParseInterfaceDeclaration(this.startNode());
                if (i) return i;
              }
              return super.parseStatementContent(e, s);
            }
            parseAccessModifier() {
              return this.tsParseModifier(["public", "protected", "private"]);
            }
            tsHasSomeModifiers(e, s) {
              return s.some(i => $t$1(i) ? e.accessibility === i : !!e[i]);
            }
            tsIsStartOfStaticBlocks() {
              return this.isContextual(106) && this.lookaheadCharCode() === 123;
            }
            parseClassMember(e, s, i) {
              let r = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
              this.tsParseModifiers({
                allowedModifiers: r,
                disallowedModifiers: ["in", "out"],
                stopOnStartOfClassStaticBlock: !0,
                errorTemplate: x$2.InvalidModifierOnTypeParameterPositions
              }, s);
              let n = () => {
                this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(s, r) && this.raise(x$2.StaticBlockCannotHaveModifier, this.state.curPosition()), super.parseClassStaticBlock(e, s)) : this.parseClassMemberWithIsStatic(e, s, i, !!s.static);
              };
              s.declare ? this.tsInAmbientContext(n) : n();
            }
            parseClassMemberWithIsStatic(e, s, i, r) {
              let n = this.tsTryParseIndexSignature(s);
              if (n) {
                e.body.push(n), s.abstract && this.raise(x$2.IndexSignatureHasAbstract, s), s.accessibility && this.raise(x$2.IndexSignatureHasAccessibility, s, {
                  modifier: s.accessibility
                }), s.declare && this.raise(x$2.IndexSignatureHasDeclare, s), s.override && this.raise(x$2.IndexSignatureHasOverride, s);
                return;
              }
              !this.state.inAbstractClass && s.abstract && this.raise(x$2.NonAbstractClassHasAbstractMethod, s), s.override && (i.hadSuperClass || this.raise(x$2.OverrideNotInSubClass, s)), super.parseClassMemberWithIsStatic(e, s, i, r);
            }
            parsePostMemberNameModifiers(e) {
              this.eat(17) && (e.optional = !0), e.readonly && this.match(10) && this.raise(x$2.ClassMethodHasReadonly, e), e.declare && this.match(10) && this.raise(x$2.ClassMethodHasDeclare, e);
            }
            parseExpressionStatement(e, s, i) {
              return (s.type === "Identifier" ? this.tsParseExpressionStatement(e, s, i) : void 0) || super.parseExpressionStatement(e, s, i);
            }
            shouldParseExportDeclaration() {
              return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
            }
            parseConditional(e, s, i) {
              if (!this.state.maybeInArrowParameters || !this.match(17)) return super.parseConditional(e, s, i);
              let r = this.tryParse(() => super.parseConditional(e, s));
              return r.node ? (r.error && (this.state = r.failState), r.node) : (r.error && super.setOptionalParametersError(i, r.error), e);
            }
            parseParenItem(e, s) {
              let i = super.parseParenItem(e, s);
              if (this.eat(17) && (i.optional = !0, this.resetEndLocation(e)), this.match(14)) {
                let r = this.startNodeAt(s);
                return r.expression = e, r.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(r, "TSTypeCastExpression");
              }
              return e;
            }
            parseExportDeclaration(e) {
              if (!this.state.isAmbientContext && this.isContextual(125)) return this.tsInAmbientContext(() => this.parseExportDeclaration(e));
              let s = this.state.startLoc,
                i = this.eatContextual(125);
              if (i && (this.isContextual(125) || !this.shouldParseExportDeclaration())) throw this.raise(x$2.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
              let n = w$1(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(e);
              return n ? ((n.type === "TSInterfaceDeclaration" || n.type === "TSTypeAliasDeclaration" || i) && (e.exportKind = "type"), i && (this.resetStartLocation(n, s), n.declare = !0), n) : null;
            }
            parseClassId(e, s, i, r) {
              if ((!s || i) && this.isContextual(113)) return;
              super.parseClassId(e, s, i, e.declare ? 1024 : 8331);
              let n = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
              n && (e.typeParameters = n);
            }
            parseClassPropertyAnnotation(e) {
              e.optional || (this.eat(35) ? e.definite = !0 : this.eat(17) && (e.optional = !0));
              let s = this.tsTryParseTypeAnnotation();
              s && (e.typeAnnotation = s);
            }
            parseClassProperty(e) {
              if (this.parseClassPropertyAnnotation(e), this.state.isAmbientContext && !(e.readonly && !e.typeAnnotation) && this.match(29) && this.raise(x$2.DeclareClassFieldHasInitializer, this.state.startLoc), e.abstract && this.match(29)) {
                let {
                  key: s
                } = e;
                this.raise(x$2.AbstractPropertyHasInitializer, this.state.startLoc, {
                  propertyName: s.type === "Identifier" && !e.computed ? s.name : `[${this.input.slice(s.start, s.end)}]`
                });
              }
              return super.parseClassProperty(e);
            }
            parseClassPrivateProperty(e) {
              return e.abstract && this.raise(x$2.PrivateElementHasAbstract, e), e.accessibility && this.raise(x$2.PrivateElementHasAccessibility, e, {
                modifier: e.accessibility
              }), this.parseClassPropertyAnnotation(e), super.parseClassPrivateProperty(e);
            }
            parseClassAccessorProperty(e) {
              return this.parseClassPropertyAnnotation(e), e.optional && this.raise(x$2.AccessorCannotBeOptional, e), super.parseClassAccessorProperty(e);
            }
            pushClassMethod(e, s, i, r, n, o) {
              let h = this.tsTryParseTypeParameters(this.tsParseConstModifier);
              h && n && this.raise(x$2.ConstructorHasTypeParameters, h);
              let {
                declare: c = !1,
                kind: l$1
              } = s;
              c && (l$1 === "get" || l$1 === "set") && this.raise(x$2.DeclareAccessor, s, {
                kind: l$1
              }), h && (s.typeParameters = h), super.pushClassMethod(e, s, i, r, n, o);
            }
            pushClassPrivateMethod(e, s, i, r) {
              let n = this.tsTryParseTypeParameters(this.tsParseConstModifier);
              n && (s.typeParameters = n), super.pushClassPrivateMethod(e, s, i, r);
            }
            declareClassPrivateMethodInScope(e, s) {
              e.type !== "TSDeclareMethod" && (e.type === "MethodDefinition" && !hasOwnProperty.call(e.value, "body") || super.declareClassPrivateMethodInScope(e, s));
            }
            parseClassSuper(e) {
              super.parseClassSuper(e), e.superClass && (this.match(47) || this.match(51)) && (e.superTypeParameters = this.tsParseTypeArgumentsInExpression()), this.eatContextual(113) && (e.implements = this.tsParseHeritageClause("implements"));
            }
            parseObjPropValue(e, s, i, r, n, o, h) {
              let c = this.tsTryParseTypeParameters(this.tsParseConstModifier);
              return c && (e.typeParameters = c), super.parseObjPropValue(e, s, i, r, n, o, h);
            }
            parseFunctionParams(e, s) {
              let i = this.tsTryParseTypeParameters(this.tsParseConstModifier);
              i && (e.typeParameters = i), super.parseFunctionParams(e, s);
            }
            parseVarId(e, s) {
              super.parseVarId(e, s), e.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (e.definite = !0);
              let i = this.tsTryParseTypeAnnotation();
              i && (e.id.typeAnnotation = i, this.resetEndLocation(e.id));
            }
            parseAsyncArrowFromCallExpression(e, s) {
              return this.match(14) && (e.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(e, s);
            }
            parseMaybeAssign(e, s) {
              var i, r, n, o, h;
              let c, l$1, u;
              if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
                if (c = this.state.clone(), l$1 = this.tryParse(() => super.parseMaybeAssign(e, s), c), !l$1.error) return l$1.node;
                let {
                    context: y$1
                  } = this.state,
                  E$1 = y$1[y$1.length - 1];
                (E$1 === C.j_oTag || E$1 === C.j_expr) && y$1.pop();
              }
              if (!((i = l$1) != null && i.error) && !this.match(47)) return super.parseMaybeAssign(e, s);
              (!c || c === this.state) && (c = this.state.clone());
              let f$1,
                d$1 = this.tryParse(y$1 => {
                  var E$1, L$2;
                  f$1 = this.tsParseTypeParameters(this.tsParseConstModifier);
                  let S$1 = super.parseMaybeAssign(e, s);
                  return (S$1.type !== "ArrowFunctionExpression" || (E$1 = S$1.extra) != null && E$1.parenthesized) && y$1(), ((L$2 = f$1) == null ? void 0 : L$2.params.length) !== 0 && this.resetStartLocationFromNode(S$1, f$1), S$1.typeParameters = f$1, S$1;
                }, c);
              if (!d$1.error && !d$1.aborted) return f$1 && this.reportReservedArrowTypeParam(f$1), d$1.node;
              if (!l$1 && (jt$2(!this.hasPlugin("jsx")), u = this.tryParse(() => super.parseMaybeAssign(e, s), c), !u.error)) return u.node;
              if ((r = l$1) != null && r.node) return this.state = l$1.failState, l$1.node;
              if (d$1.node) return this.state = d$1.failState, f$1 && this.reportReservedArrowTypeParam(f$1), d$1.node;
              if ((n = u) != null && n.node) return this.state = u.failState, u.node;
              throw ((o = l$1) == null ? void 0 : o.error) || d$1.error || ((h = u) == null ? void 0 : h.error);
            }
            reportReservedArrowTypeParam(e) {
              var s;
              e.params.length === 1 && !e.params[0].constraint && !((s = e.extra) != null && s.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(x$2.ReservedArrowTypeParam, e);
            }
            parseMaybeUnary(e, s) {
              return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(e, s);
            }
            parseArrow(e) {
              if (this.match(14)) {
                let s = this.tryParse(i => {
                  let r = this.tsParseTypeOrTypePredicateAnnotation(14);
                  return (this.canInsertSemicolon() || !this.match(19)) && i(), r;
                });
                if (s.aborted) return;
                s.thrown || (s.error && (this.state = s.failState), e.returnType = s.node);
              }
              return super.parseArrow(e);
            }
            parseAssignableListItemTypes(e, s) {
              if (!(s & 2)) return e;
              this.eat(17) && (e.optional = !0);
              let i = this.tsTryParseTypeAnnotation();
              return i && (e.typeAnnotation = i), this.resetEndLocation(e), e;
            }
            isAssignable(e, s) {
              switch (e.type) {
                case "TSTypeCastExpression":
                  return this.isAssignable(e.expression, s);
                case "TSParameterProperty":
                  return !0;
                default:
                  return super.isAssignable(e, s);
              }
            }
            toAssignable(e, s = !1) {
              switch (e.type) {
                case "ParenthesizedExpression":
                  this.toAssignableParenthesizedExpression(e, s);
                  break;
                case "TSAsExpression":
                case "TSSatisfiesExpression":
                case "TSNonNullExpression":
                case "TSTypeAssertion":
                  s ? this.expressionScope.recordArrowParameterBindingError(x$2.UnexpectedTypeCastInParameter, e) : this.raise(x$2.UnexpectedTypeCastInParameter, e), this.toAssignable(e.expression, s);
                  break;
                case "AssignmentExpression":
                  !s && e.left.type === "TSTypeCastExpression" && (e.left = this.typeCastToParameter(e.left));
                default:
                  super.toAssignable(e, s);
              }
            }
            toAssignableParenthesizedExpression(e, s) {
              switch (e.expression.type) {
                case "TSAsExpression":
                case "TSSatisfiesExpression":
                case "TSNonNullExpression":
                case "TSTypeAssertion":
                case "ParenthesizedExpression":
                  this.toAssignable(e.expression, s);
                  break;
                default:
                  super.toAssignable(e, s);
              }
            }
            checkToRestConversion(e, s) {
              switch (e.type) {
                case "TSAsExpression":
                case "TSSatisfiesExpression":
                case "TSTypeAssertion":
                case "TSNonNullExpression":
                  this.checkToRestConversion(e.expression, !1);
                  break;
                default:
                  super.checkToRestConversion(e, s);
              }
            }
            isValidLVal(e, s, i) {
              return Hi$1({
                TSTypeCastExpression: !0,
                TSParameterProperty: "parameter",
                TSNonNullExpression: "expression",
                TSInstantiationExpression: "expression",
                TSAsExpression: (i !== 64 || !s) && ["expression", !0],
                TSSatisfiesExpression: (i !== 64 || !s) && ["expression", !0],
                TSTypeAssertion: (i !== 64 || !s) && ["expression", !0]
              }, e) || super.isValidLVal(e, s, i);
            }
            parseBindingAtom() {
              return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
            }
            parseMaybeDecoratorArguments(e) {
              if (this.match(47) || this.match(51)) {
                let s = this.tsParseTypeArgumentsInExpression();
                if (this.match(10)) {
                  let i = super.parseMaybeDecoratorArguments(e);
                  return i.typeParameters = s, i;
                }
                this.unexpected(null, 10);
              }
              return super.parseMaybeDecoratorArguments(e);
            }
            checkCommaAfterRest(e) {
              return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === e ? (this.next(), !1) : super.checkCommaAfterRest(e);
            }
            isClassMethod() {
              return this.match(47) || super.isClassMethod();
            }
            isClassProperty() {
              return this.match(35) || this.match(14) || super.isClassProperty();
            }
            parseMaybeDefault(e, s) {
              let i = super.parseMaybeDefault(e, s);
              return i.type === "AssignmentPattern" && i.typeAnnotation && i.right.start < i.typeAnnotation.start && this.raise(x$2.TypeAnnotationAfterAssign, i.typeAnnotation), i;
            }
            getTokenFromCode(e) {
              if (this.state.inType) {
                if (e === 62) {
                  this.finishOp(48, 1);
                  return;
                }
                if (e === 60) {
                  this.finishOp(47, 1);
                  return;
                }
              }
              super.getTokenFromCode(e);
            }
            reScan_lt_gt() {
              let {
                type: e
              } = this.state;
              e === 47 ? (this.state.pos -= 1, this.readToken_lt()) : e === 48 && (this.state.pos -= 1, this.readToken_gt());
            }
            reScan_lt() {
              let {
                type: e
              } = this.state;
              return e === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : e;
            }
            toAssignableList(e, s, i) {
              for (let r = 0; r < e.length; r++) {
                let n = e[r];
                (n == null ? void 0 : n.type) === "TSTypeCastExpression" && (e[r] = this.typeCastToParameter(n));
              }
              super.toAssignableList(e, s, i);
            }
            typeCastToParameter(e) {
              return e.expression.typeAnnotation = e.typeAnnotation, this.resetEndLocation(e.expression, e.typeAnnotation.loc.end), e.expression;
            }
            shouldParseArrow(e) {
              return this.match(14) ? e.every(s => this.isAssignable(s, !0)) : super.shouldParseArrow(e);
            }
            shouldParseAsyncArrow() {
              return this.match(14) || super.shouldParseAsyncArrow();
            }
            canHaveLeadingDecorator() {
              return super.canHaveLeadingDecorator() || this.isAbstractClass();
            }
            jsxParseOpeningElementAfterName(e) {
              if (this.match(47) || this.match(51)) {
                let s = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
                s && (e.typeParameters = s);
              }
              return super.jsxParseOpeningElementAfterName(e);
            }
            getGetterSetterExpectedParamCount(e) {
              let s = super.getGetterSetterExpectedParamCount(e),
                r = this.getObjectOrClassMethodParams(e)[0];
              return r && this.isThisParam(r) ? s + 1 : s;
            }
            parseCatchClauseParam() {
              let e = super.parseCatchClauseParam(),
                s = this.tsTryParseTypeAnnotation();
              return s && (e.typeAnnotation = s, this.resetEndLocation(e)), e;
            }
            tsInAmbientContext(e) {
              let {
                isAmbientContext: s,
                strict: i
              } = this.state;
              this.state.isAmbientContext = !0, this.state.strict = !1;
              try {
                return e();
              } finally {
                this.state.isAmbientContext = s, this.state.strict = i;
              }
            }
            parseClass(e, s, i) {
              let r = this.state.inAbstractClass;
              this.state.inAbstractClass = !!e.abstract;
              try {
                return super.parseClass(e, s, i);
              } finally {
                this.state.inAbstractClass = r;
              }
            }
            tsParseAbstractDeclaration(e, s) {
              if (this.match(80)) return e.abstract = !0, this.maybeTakeDecorators(s, this.parseClass(e, !0, !1));
              if (this.isContextual(129)) {
                if (!this.hasFollowingLineBreak()) return e.abstract = !0, this.raise(x$2.NonClassMethodPropertyHasAbstractModifer, e), this.tsParseInterfaceDeclaration(e);
              } else this.unexpected(null, 80);
            }
            parseMethod(e, s, i, r, n, o, h) {
              let c = super.parseMethod(e, s, i, r, n, o, h);
              if (c.abstract && (this.hasPlugin("estree") ? !!c.value.body : !!c.body)) {
                let {
                  key: u
                } = c;
                this.raise(x$2.AbstractMethodHasImplementation, c, {
                  methodName: u.type === "Identifier" && !c.computed ? u.name : `[${this.input.slice(u.start, u.end)}]`
                });
              }
              return c;
            }
            tsParseTypeParameterName() {
              return this.parseIdentifier().name;
            }
            shouldParseAsAmbientContext() {
              return !!this.getPluginOption("typescript", "dts");
            }
            parse() {
              return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.parse();
            }
            getExpression() {
              return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.getExpression();
            }
            parseExportSpecifier(e, s, i, r) {
              return !s && r ? (this.parseTypeOnlyImportExportSpecifier(e, !1, i), this.finishNode(e, "ExportSpecifier")) : (e.exportKind = "value", super.parseExportSpecifier(e, s, i, r));
            }
            parseImportSpecifier(e, s, i, r, n) {
              return !s && r ? (this.parseTypeOnlyImportExportSpecifier(e, !0, i), this.finishNode(e, "ImportSpecifier")) : (e.importKind = "value", super.parseImportSpecifier(e, s, i, r, i ? 4098 : 4096));
            }
            parseTypeOnlyImportExportSpecifier(e, s, i) {
              let r = s ? "imported" : "local",
                n = s ? "local" : "exported",
                o = e[r],
                h,
                c = !1,
                l$1 = !0,
                u = o.loc.start;
              if (this.isContextual(93)) {
                let d$1 = this.parseIdentifier();
                if (this.isContextual(93)) {
                  let y$1 = this.parseIdentifier();
                  M$2(this.state.type) ? (c = !0, o = d$1, h = s ? this.parseIdentifier() : this.parseModuleExportName(), l$1 = !1) : (h = y$1, l$1 = !1);
                } else M$2(this.state.type) ? (l$1 = !1, h = s ? this.parseIdentifier() : this.parseModuleExportName()) : (c = !0, o = d$1);
              } else M$2(this.state.type) && (c = !0, s ? (o = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(o.name, o.loc.start, !0, !0)) : o = this.parseModuleExportName());
              c && i && this.raise(s ? x$2.TypeModifierIsUsedInTypeImports : x$2.TypeModifierIsUsedInTypeExports, u), e[r] = o, e[n] = h;
              let f$1 = s ? "importKind" : "exportKind";
              e[f$1] = c ? "type" : "value", l$1 && this.eatContextual(93) && (e[n] = s ? this.parseIdentifier() : this.parseModuleExportName()), e[n] || (e[n] = $$1(e[r])), s && this.checkIdentifier(e[n], c ? 4098 : 4096);
            }
          };
          function Yi$1(a) {
            if (a.type !== "MemberExpression") return !1;
            let {
              computed: t,
              property: e
            } = a;
            return t && e.type !== "StringLiteral" && (e.type !== "TemplateLiteral" || e.expressions.length > 0) ? !1 : os$1(a.object);
          }
          function Qi$1(a, t) {
            var e;
            let {
              type: s
            } = a;
            if ((e = a.extra) != null && e.parenthesized) return !1;
            if (t) {
              if (s === "Literal") {
                let {
                  value: i
                } = a;
                if (typeof i == "string" || typeof i == "boolean") return !0;
              }
            } else if (s === "StringLiteral" || s === "BooleanLiteral") return !0;
            return !!(ns$1(a, t) || Zi$1(a, t) || s === "TemplateLiteral" && a.expressions.length === 0 || Yi$1(a));
          }
          function ns$1(a, t) {
            return t ? a.type === "Literal" && (typeof a.value == "number" || "bigint" in a) : a.type === "NumericLiteral" || a.type === "BigIntLiteral";
          }
          function Zi$1(a, t) {
            if (a.type === "UnaryExpression") {
              let {
                operator: e,
                argument: s
              } = a;
              if (e === "-" && ns$1(s, t)) return !0;
            }
            return !1;
          }
          function os$1(a) {
            return a.type === "Identifier" ? !0 : a.type !== "MemberExpression" || a.computed ? !1 : os$1(a.object);
          }
          var Vt$2 = j$1`placeholders`({
              ClassNameIsRequired: "A class name is required.",
              UnexpectedSpace: "Unexpected space in placeholder."
            }),
            er$2 = a => class extends a {
              parsePlaceholder(e) {
                if (this.match(144)) {
                  let s = this.startNode();
                  return this.next(), this.assertNoSpace(), s.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(144), this.finishPlaceholder(s, e);
                }
              }
              finishPlaceholder(e, s) {
                let i = e;
                return (!i.expectedNode || !i.type) && (i = this.finishNode(i, "Placeholder")), i.expectedNode = s, i;
              }
              getTokenFromCode(e) {
                e === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(144, 2) : super.getTokenFromCode(e);
              }
              parseExprAtom(e) {
                return this.parsePlaceholder("Expression") || super.parseExprAtom(e);
              }
              parseIdentifier(e) {
                return this.parsePlaceholder("Identifier") || super.parseIdentifier(e);
              }
              checkReservedWord(e, s, i, r) {
                e !== void 0 && super.checkReservedWord(e, s, i, r);
              }
              parseBindingAtom() {
                return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
              }
              isValidLVal(e, s, i) {
                return e === "Placeholder" || super.isValidLVal(e, s, i);
              }
              toAssignable(e, s) {
                e && e.type === "Placeholder" && e.expectedNode === "Expression" ? e.expectedNode = "Pattern" : super.toAssignable(e, s);
              }
              chStartsBindingIdentifier(e, s) {
                return !!(super.chStartsBindingIdentifier(e, s) || this.lookahead().type === 144);
              }
              verifyBreakContinue(e, s) {
                e.label && e.label.type === "Placeholder" || super.verifyBreakContinue(e, s);
              }
              parseExpressionStatement(e, s) {
                var i;
                if (s.type !== "Placeholder" || (i = s.extra) != null && i.parenthesized) return super.parseExpressionStatement(e, s);
                if (this.match(14)) {
                  let n = e;
                  return n.label = this.finishPlaceholder(s, "Identifier"), this.next(), n.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(), this.finishNode(n, "LabeledStatement");
                }
                this.semicolon();
                let r = e;
                return r.name = s.name, this.finishPlaceholder(r, "Statement");
              }
              parseBlock(e, s, i) {
                return this.parsePlaceholder("BlockStatement") || super.parseBlock(e, s, i);
              }
              parseFunctionId(e) {
                return this.parsePlaceholder("Identifier") || super.parseFunctionId(e);
              }
              parseClass(e, s, i) {
                let r = s ? "ClassDeclaration" : "ClassExpression";
                this.next();
                let n = this.state.strict,
                  o = this.parsePlaceholder("Identifier");
                if (o) {
                  if (this.match(81) || this.match(144) || this.match(5)) e.id = o;else {
                    if (i || !s) return e.id = null, e.body = this.finishPlaceholder(o, "ClassBody"), this.finishNode(e, r);
                    throw this.raise(Vt$2.ClassNameIsRequired, this.state.startLoc);
                  }
                } else this.parseClassId(e, s, i);
                return super.parseClassSuper(e), e.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!e.superClass, n), this.finishNode(e, r);
              }
              parseExport(e, s) {
                let i = this.parsePlaceholder("Identifier");
                if (!i) return super.parseExport(e, s);
                let r = e;
                if (!this.isContextual(98) && !this.match(12)) return r.specifiers = [], r.source = null, r.declaration = this.finishPlaceholder(i, "Declaration"), this.finishNode(r, "ExportNamedDeclaration");
                this.expectPlugin("exportDefaultFrom");
                let n = this.startNode();
                return n.exported = i, r.specifiers = [this.finishNode(n, "ExportDefaultSpecifier")], super.parseExport(r, s);
              }
              isExportDefaultSpecifier() {
                if (this.match(65)) {
                  let e = this.nextTokenStart();
                  if (this.isUnparsedContextual(e, "from") && this.input.startsWith(K$2(144), this.nextTokenStartSince(e + 4))) return !0;
                }
                return super.isExportDefaultSpecifier();
              }
              maybeParseExportDefaultSpecifier(e, s) {
                var i;
                return (i = e.specifiers) != null && i.length ? !0 : super.maybeParseExportDefaultSpecifier(e, s);
              }
              checkExport(e) {
                let {
                  specifiers: s
                } = e;
                s != null && s.length && (e.specifiers = s.filter(i => i.exported.type === "Placeholder")), super.checkExport(e), e.specifiers = s;
              }
              parseImport(e) {
                let s = this.parsePlaceholder("Identifier");
                if (!s) return super.parseImport(e);
                if (e.specifiers = [], !this.isContextual(98) && !this.match(12)) return e.source = this.finishPlaceholder(s, "StringLiteral"), this.semicolon(), this.finishNode(e, "ImportDeclaration");
                let i = this.startNodeAtNode(s);
                return i.local = s, e.specifiers.push(this.finishNode(i, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(e) || this.parseNamedImportSpecifiers(e)), this.expectContextual(98), e.source = this.parseImportSource(), this.semicolon(), this.finishNode(e, "ImportDeclaration");
              }
              parseImportSource() {
                return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
              }
              assertNoSpace() {
                this.state.start > this.state.lastTokEndLoc.index && this.raise(Vt$2.UnexpectedSpace, this.state.lastTokEndLoc);
              }
            },
            tr$2 = a => class extends a {
              parseV8Intrinsic() {
                if (this.match(54)) {
                  let e = this.state.startLoc,
                    s = this.startNode();
                  if (this.next(), w$1(this.state.type)) {
                    let i = this.parseIdentifierName(),
                      r = this.createIdentifier(s, i);
                    if (r.type = "V8IntrinsicIdentifier", this.match(10)) return r;
                  }
                  this.unexpected(e);
                }
              }
              parseExprAtom(e) {
                return this.parseV8Intrinsic() || super.parseExprAtom(e);
              }
            };
          function N$2(a, t) {
            let [e, s] = typeof t == "string" ? [t, {}] : t,
              i = Object.keys(s),
              r = i.length === 0;
            return a.some(n => {
              if (typeof n == "string") return r && n === e;
              {
                let [o, h] = n;
                if (o !== e) return !1;
                for (let c of i) if (h[c] !== s[c]) return !1;
                return !0;
              }
            });
          }
          function J$1(a, t, e) {
            let s = a.find(i => Array.isArray(i) ? i[0] === t : i === t);
            return s && Array.isArray(s) && s.length > 1 ? s[1][e] : null;
          }
          var qt$2 = ["minimal", "fsharp", "hack", "smart"],
            zt$1 = ["^^", "@@", "^", "%", "#"];
          function sr$2(a) {
            if (N$2(a, "decorators")) {
              if (N$2(a, "decorators-legacy")) throw new Error("Cannot use the decorators and decorators-legacy plugin together");
              let t = J$1(a, "decorators", "decoratorsBeforeExport");
              if (t != null && typeof t != "boolean") throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
              let e = J$1(a, "decorators", "allowCallParenthesized");
              if (e != null && typeof e != "boolean") throw new Error("'allowCallParenthesized' must be a boolean.");
            }
            if (N$2(a, "flow") && N$2(a, "typescript")) throw new Error("Cannot combine flow and typescript plugins.");
            if (N$2(a, "placeholders") && N$2(a, "v8intrinsic")) throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
            if (N$2(a, "pipelineOperator")) {
              let t = J$1(a, "pipelineOperator", "proposal");
              if (!qt$2.includes(t)) {
                let i = qt$2.map(r => `"${r}"`).join(", ");
                throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${i}.`);
              }
              let e = ["recordAndTuple", {
                  syntaxType: "hash"
                }],
                s = N$2(a, e);
              if (t === "hack") {
                if (N$2(a, "placeholders")) throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
                if (N$2(a, "v8intrinsic")) throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
                let i = J$1(a, "pipelineOperator", "topicToken");
                if (!zt$1.includes(i)) {
                  let r = zt$1.map(n => `"${n}"`).join(", ");
                  throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${r}.`);
                }
                if (i === "#" && s) throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(e)}\`.`);
              } else if (t === "smart" && s) throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(e)}\`.`);
            }
            if (N$2(a, "moduleAttributes")) {
              if (N$2(a, "importAssertions") || N$2(a, "importAttributes")) throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");
              if (J$1(a, "moduleAttributes", "version") !== "may-2020") throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.");
            }
            if (N$2(a, "importAssertions") && N$2(a, "importAttributes")) throw new Error("Cannot combine importAssertions and importAttributes plugins.");
            if (N$2(a, "recordAndTuple")) {
              let t = J$1(a, "recordAndTuple", "syntaxType");
              if (t != null) {
                let e = ["hash", "bar"];
                if (!e.includes(t)) throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + e.map(s => `'${s}'`).join(", "));
              }
            }
            if (N$2(a, "asyncDoExpressions") && !N$2(a, "doExpressions")) {
              let t = /* @__PURE__ */new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
              throw t.missingPlugins = "doExpressions", t;
            }
            if (N$2(a, "optionalChainingAssign") && J$1(a, "optionalChainingAssign", "version") !== "2023-07") throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.");
          }
          var hs$1 = {
              estree: ri$2,
              jsx: zi$1,
              flow: qi$1,
              typescript: Gi$1,
              v8intrinsic: tr$2,
              placeholders: er$2
            },
            ir$2 = Object.keys(hs$1),
            qe$1 = {
              sourceType: "script",
              sourceFilename: void 0,
              startColumn: 0,
              startLine: 1,
              allowAwaitOutsideFunction: !1,
              allowReturnOutsideFunction: !1,
              allowNewTargetOutsideFunction: !1,
              allowImportExportEverywhere: !1,
              allowSuperOutsideMethod: !1,
              allowUndeclaredExports: !1,
              plugins: [],
              strictMode: null,
              ranges: !1,
              tokens: !1,
              createImportExpressions: !1,
              createParenthesizedExpressions: !1,
              errorRecovery: !1,
              attachComment: !0,
              annexB: !0
            };
          function rr$2(a) {
            if (a == null) return Object.assign({}, qe$1);
            if (a.annexB != null && a.annexB !== !1) throw new Error("The `annexB` option can only be set to `false`.");
            let t = {};
            for (let s of Object.keys(qe$1)) {
              var e;
              t[s] = (e = a[s]) != null ? e : qe$1[s];
            }
            return t;
          }
          var ct$2 = class extends lt$2 {
              checkProto(t, e, s, i) {
                if (t.type === "SpreadElement" || this.isObjectMethod(t) || t.computed || t.shorthand) return;
                let r = t.key;
                if ((r.type === "Identifier" ? r.name : r.value) === "__proto__") {
                  if (e) {
                    this.raise(p.RecordNoProto, r);
                    return;
                  }
                  s.used && (i ? i.doubleProtoLoc === null && (i.doubleProtoLoc = r.loc.start) : this.raise(p.DuplicateProto, r)), s.used = !0;
                }
              }
              shouldExitDescending(t, e) {
                return t.type === "ArrowFunctionExpression" && t.start === e;
              }
              getExpression() {
                this.enterInitialScopes(), this.nextToken();
                let t = this.parseExpression();
                return this.match(139) || this.unexpected(), this.finalizeRemainingComments(), t.comments = this.comments, t.errors = this.state.errors, this.options.tokens && (t.tokens = this.tokens), t;
              }
              parseExpression(t, e) {
                return t ? this.disallowInAnd(() => this.parseExpressionBase(e)) : this.allowInAnd(() => this.parseExpressionBase(e));
              }
              parseExpressionBase(t) {
                let e = this.state.startLoc,
                  s = this.parseMaybeAssign(t);
                if (this.match(12)) {
                  let i = this.startNodeAt(e);
                  for (i.expressions = [s]; this.eat(12);) i.expressions.push(this.parseMaybeAssign(t));
                  return this.toReferencedList(i.expressions), this.finishNode(i, "SequenceExpression");
                }
                return s;
              }
              parseMaybeAssignDisallowIn(t, e) {
                return this.disallowInAnd(() => this.parseMaybeAssign(t, e));
              }
              parseMaybeAssignAllowIn(t, e) {
                return this.allowInAnd(() => this.parseMaybeAssign(t, e));
              }
              setOptionalParametersError(t, e) {
                var s;
                t.optionalParametersLoc = (s = e == null ? void 0 : e.loc) != null ? s : this.state.startLoc;
              }
              parseMaybeAssign(t, e) {
                let s = this.state.startLoc;
                if (this.isContextual(108) && this.prodParam.hasYield) {
                  let o = this.parseYield();
                  return e && (o = e.call(this, o, s)), o;
                }
                let i;
                t ? i = !1 : (t = new Z$1(), i = !0);
                let {
                  type: r
                } = this.state;
                (r === 10 || w$1(r)) && (this.state.potentialArrowAt = this.state.start);
                let n = this.parseMaybeConditional(t);
                if (e && (n = e.call(this, n, s)), li$2(this.state.type)) {
                  let o = this.startNodeAt(s);
                  if (o.operator = this.state.value, this.match(29)) {
                    this.toAssignable(n, !0), o.left = n;
                    let c = s.index;
                    t.doubleProtoLoc != null && t.doubleProtoLoc.index >= c && (t.doubleProtoLoc = null), t.shorthandAssignLoc != null && t.shorthandAssignLoc.index >= c && (t.shorthandAssignLoc = null), t.privateKeyLoc != null && t.privateKeyLoc.index >= c && (this.checkDestructuringPrivate(t), t.privateKeyLoc = null);
                  } else o.left = n;
                  return this.next(), o.right = this.parseMaybeAssign(), this.checkLVal(n, {
                    in: this.finishNode(o, "AssignmentExpression")
                  }), o;
                } else i && this.checkExpressionErrors(t, !0);
                return n;
              }
              parseMaybeConditional(t) {
                let e = this.state.startLoc,
                  s = this.state.potentialArrowAt,
                  i = this.parseExprOps(t);
                return this.shouldExitDescending(i, s) ? i : this.parseConditional(i, e, t);
              }
              parseConditional(t, e, s) {
                if (this.eat(17)) {
                  let i = this.startNodeAt(e);
                  return i.test = t, i.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), i.alternate = this.parseMaybeAssign(), this.finishNode(i, "ConditionalExpression");
                }
                return t;
              }
              parseMaybeUnaryOrPrivate(t) {
                return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(t);
              }
              parseExprOps(t) {
                let e = this.state.startLoc,
                  s = this.state.potentialArrowAt,
                  i = this.parseMaybeUnaryOrPrivate(t);
                return this.shouldExitDescending(i, s) ? i : this.parseExprOp(i, e, -1);
              }
              parseExprOp(t, e, s) {
                if (this.isPrivateName(t)) {
                  let r = this.getPrivateNameSV(t);
                  (s >= Ee$2(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(p.PrivateInExpectedIn, t, {
                    identifierName: r
                  }), this.classScope.usePrivateName(r, t.loc.start);
                }
                let i = this.state.type;
                if (pi$2(i) && (this.prodParam.hasIn || !this.match(58))) {
                  let r = Ee$2(i);
                  if (r > s) {
                    if (i === 39) {
                      if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody) return t;
                      this.checkPipelineAtInfixOperator(t, e);
                    }
                    let n = this.startNodeAt(e);
                    n.left = t, n.operator = this.state.value;
                    let o = i === 41 || i === 42,
                      h = i === 40;
                    if (h && (r = Ee$2(42)), this.next(), i === 39 && this.hasPlugin(["pipelineOperator", {
                      proposal: "minimal"
                    }]) && this.state.type === 96 && this.prodParam.hasAwait) throw this.raise(p.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
                    n.right = this.parseExprOpRightExpr(i, r);
                    let c = this.finishNode(n, o || h ? "LogicalExpression" : "BinaryExpression"),
                      l$1 = this.state.type;
                    if (h && (l$1 === 41 || l$1 === 42) || o && l$1 === 40) throw this.raise(p.MixingCoalesceWithLogical, this.state.startLoc);
                    return this.parseExprOp(c, e, s);
                  }
                }
                return t;
              }
              parseExprOpRightExpr(t, e) {
                let s = this.state.startLoc;
                switch (t) {
                  case 39:
                    switch (this.getPluginOption("pipelineOperator", "proposal")) {
                      case "hack":
                        return this.withTopicBindingContext(() => this.parseHackPipeBody());
                      case "smart":
                        return this.withTopicBindingContext(() => {
                          if (this.prodParam.hasYield && this.isContextual(108)) throw this.raise(p.PipeBodyIsTighter, this.state.startLoc);
                          return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t, e), s);
                        });
                      case "fsharp":
                        return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(e));
                    }
                  default:
                    return this.parseExprOpBaseRightExpr(t, e);
                }
              }
              parseExprOpBaseRightExpr(t, e) {
                let s = this.state.startLoc;
                return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), s, yi(t) ? e - 1 : e);
              }
              parseHackPipeBody() {
                var t;
                let {
                    startLoc: e
                  } = this.state,
                  s = this.parseMaybeAssign();
                return Qs$1.has(s.type) && !((t = s.extra) != null && t.parenthesized) && this.raise(p.PipeUnparenthesizedBody, e, {
                  type: s.type
                }), this.topicReferenceWasUsedInCurrentContext() || this.raise(p.PipeTopicUnused, e), s;
              }
              checkExponentialAfterUnary(t) {
                this.match(57) && this.raise(p.UnexpectedTokenUnaryExponentiation, t.argument);
              }
              parseMaybeUnary(t, e) {
                let s = this.state.startLoc,
                  i = this.isContextual(96);
                if (i && this.isAwaitAllowed()) {
                  this.next();
                  let h = this.parseAwait(s);
                  return e || this.checkExponentialAfterUnary(h), h;
                }
                let r = this.match(34),
                  n = this.startNode();
                if (fi$2(this.state.type)) {
                  n.operator = this.state.value, n.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
                  let h = this.match(89);
                  if (this.next(), n.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(t, !0), this.state.strict && h) {
                    let c = n.argument;
                    c.type === "Identifier" ? this.raise(p.StrictDelete, n) : this.hasPropertyAsPrivateName(c) && this.raise(p.DeletePrivateField, n);
                  }
                  if (!r) return e || this.checkExponentialAfterUnary(n), this.finishNode(n, "UnaryExpression");
                }
                let o = this.parseUpdate(n, r, t);
                if (i) {
                  let {
                    type: h
                  } = this.state;
                  if ((this.hasPlugin("v8intrinsic") ? He$2(h) : He$2(h) && !this.match(54)) && !this.isAmbiguousAwait()) return this.raiseOverwrite(p.AwaitNotInAsyncContext, s), this.parseAwait(s);
                }
                return o;
              }
              parseUpdate(t, e, s) {
                if (e) {
                  let n = t;
                  return this.checkLVal(n.argument, {
                    in: this.finishNode(n, "UpdateExpression")
                  }), t;
                }
                let i = this.state.startLoc,
                  r = this.parseExprSubscripts(s);
                if (this.checkExpressionErrors(s, !1)) return r;
                for (; ui$2(this.state.type) && !this.canInsertSemicolon();) {
                  let n = this.startNodeAt(i);
                  n.operator = this.state.value, n.prefix = !1, n.argument = r, this.next(), this.checkLVal(r, {
                    in: r = this.finishNode(n, "UpdateExpression")
                  });
                }
                return r;
              }
              parseExprSubscripts(t) {
                let e = this.state.startLoc,
                  s = this.state.potentialArrowAt,
                  i = this.parseExprAtom(t);
                return this.shouldExitDescending(i, s) ? i : this.parseSubscripts(i, e);
              }
              parseSubscripts(t, e, s) {
                let i = {
                  optionalChainMember: !1,
                  maybeAsyncArrow: this.atPossibleAsyncArrow(t),
                  stop: !1
                };
                do t = this.parseSubscript(t, e, s, i), i.maybeAsyncArrow = !1; while (!i.stop);
                return t;
              }
              parseSubscript(t, e, s, i) {
                let {
                  type: r
                } = this.state;
                if (!s && r === 15) return this.parseBind(t, e, s, i);
                if (ve$2(r)) return this.parseTaggedTemplateExpression(t, e, i);
                let n = !1;
                if (r === 18) {
                  if (s && (this.raise(p.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40)) return i.stop = !0, t;
                  i.optionalChainMember = n = !0, this.next();
                }
                if (!s && this.match(10)) return this.parseCoverCallAndAsyncArrowHead(t, e, i, n);
                {
                  let o = this.eat(0);
                  return o || n || this.eat(16) ? this.parseMember(t, e, i, o, n) : (i.stop = !0, t);
                }
              }
              parseMember(t, e, s, i, r) {
                let n = this.startNodeAt(e);
                return n.object = t, n.computed = i, i ? (n.property = this.parseExpression(), this.expect(3)) : this.match(138) ? (t.type === "Super" && this.raise(p.SuperPrivateField, e), this.classScope.usePrivateName(this.state.value, this.state.startLoc), n.property = this.parsePrivateName()) : n.property = this.parseIdentifier(!0), s.optionalChainMember ? (n.optional = r, this.finishNode(n, "OptionalMemberExpression")) : this.finishNode(n, "MemberExpression");
              }
              parseBind(t, e, s, i) {
                let r = this.startNodeAt(e);
                return r.object = t, this.next(), r.callee = this.parseNoCallExpr(), i.stop = !0, this.parseSubscripts(this.finishNode(r, "BindExpression"), e, s);
              }
              parseCoverCallAndAsyncArrowHead(t, e, s, i) {
                let r = this.state.maybeInArrowParameters,
                  n = null;
                this.state.maybeInArrowParameters = !0, this.next();
                let o = this.startNodeAt(e);
                o.callee = t;
                let {
                  maybeAsyncArrow: h,
                  optionalChainMember: c
                } = s;
                h && (this.expressionScope.enter(Fi$1()), n = new Z$1()), c && (o.optional = i), i ? o.arguments = this.parseCallExpressionArguments(11) : o.arguments = this.parseCallExpressionArguments(11, t.type === "Import", t.type !== "Super", o, n);
                let l$1 = this.finishCallExpression(o, c);
                return h && this.shouldParseAsyncArrow() && !i ? (s.stop = !0, this.checkDestructuringPrivate(n), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), l$1 = this.parseAsyncArrowFromCallExpression(this.startNodeAt(e), l$1)) : (h && (this.checkExpressionErrors(n, !0), this.expressionScope.exit()), this.toReferencedArguments(l$1)), this.state.maybeInArrowParameters = r, l$1;
              }
              toReferencedArguments(t, e) {
                this.toReferencedListDeep(t.arguments, e);
              }
              parseTaggedTemplateExpression(t, e, s) {
                let i = this.startNodeAt(e);
                return i.tag = t, i.quasi = this.parseTemplate(!0), s.optionalChainMember && this.raise(p.OptionalChainingNoTemplate, e), this.finishNode(i, "TaggedTemplateExpression");
              }
              atPossibleAsyncArrow(t) {
                return t.type === "Identifier" && t.name === "async" && this.state.lastTokEndLoc.index === t.end && !this.canInsertSemicolon() && t.end - t.start === 5 && t.start === this.state.potentialArrowAt;
              }
              expectImportAttributesPlugin() {
                this.hasPlugin("importAssertions") || this.expectPlugin("importAttributes");
              }
              finishCallExpression(t, e) {
                if (t.callee.type === "Import") if (t.arguments.length === 2 && (this.hasPlugin("moduleAttributes") || this.expectImportAttributesPlugin()), t.arguments.length === 0 || t.arguments.length > 2) this.raise(p.ImportCallArity, t, {
                  maxArgumentCount: this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1
                });else for (let s of t.arguments) s.type === "SpreadElement" && this.raise(p.ImportCallSpreadArgument, s);
                return this.finishNode(t, e ? "OptionalCallExpression" : "CallExpression");
              }
              parseCallExpressionArguments(t, e, s, i, r) {
                let n = [],
                  o = !0,
                  h = this.state.inFSharpPipelineDirectBody;
                for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(t);) {
                  if (o) o = !1;else if (this.expect(12), this.match(t)) {
                    e && !this.hasPlugin("importAttributes") && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes") && this.raise(p.ImportCallArgumentTrailingComma, this.state.lastTokStartLoc), i && this.addTrailingCommaExtraToNode(i), this.next();
                    break;
                  }
                  n.push(this.parseExprListItem(!1, r, s));
                }
                return this.state.inFSharpPipelineDirectBody = h, n;
              }
              shouldParseAsyncArrow() {
                return this.match(19) && !this.canInsertSemicolon();
              }
              parseAsyncArrowFromCallExpression(t, e) {
                var s;
                return this.resetPreviousNodeTrailingComments(e), this.expect(19), this.parseArrowExpression(t, e.arguments, !0, (s = e.extra) == null ? void 0 : s.trailingCommaLoc), e.innerComments && ye$1(t, e.innerComments), e.callee.trailingComments && ye$1(t, e.callee.trailingComments), t;
              }
              parseNoCallExpr() {
                let t = this.state.startLoc;
                return this.parseSubscripts(this.parseExprAtom(), t, !0);
              }
              parseExprAtom(t) {
                let e,
                  s = null,
                  {
                    type: i
                  } = this.state;
                switch (i) {
                  case 79:
                    return this.parseSuper();
                  case 83:
                    return e = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(e) : this.match(10) ? this.options.createImportExpressions ? this.parseImportCall(e) : this.finishNode(e, "Import") : (this.raise(p.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(e, "Import"));
                  case 78:
                    return e = this.startNode(), this.next(), this.finishNode(e, "ThisExpression");
                  case 90:
                    return this.parseDo(this.startNode(), !1);
                  case 56:
                  case 31:
                    return this.readRegexp(), this.parseRegExpLiteral(this.state.value);
                  case 134:
                    return this.parseNumericLiteral(this.state.value);
                  case 135:
                    return this.parseBigIntLiteral(this.state.value);
                  case 136:
                    return this.parseDecimalLiteral(this.state.value);
                  case 133:
                    return this.parseStringLiteral(this.state.value);
                  case 84:
                    return this.parseNullLiteral();
                  case 85:
                    return this.parseBooleanLiteral(!0);
                  case 86:
                    return this.parseBooleanLiteral(!1);
                  case 10:
                    {
                      let r = this.state.potentialArrowAt === this.state.start;
                      return this.parseParenAndDistinguishExpression(r);
                    }
                  case 2:
                  case 1:
                    return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
                  case 0:
                    return this.parseArrayLike(3, !0, !1, t);
                  case 6:
                  case 7:
                    return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
                  case 5:
                    return this.parseObjectLike(8, !1, !1, t);
                  case 68:
                    return this.parseFunctionOrFunctionSent();
                  case 26:
                    s = this.parseDecorators();
                  case 80:
                    return this.parseClass(this.maybeTakeDecorators(s, this.startNode()), !1);
                  case 77:
                    return this.parseNewOrNewTarget();
                  case 25:
                  case 24:
                    return this.parseTemplate(!1);
                  case 15:
                    {
                      e = this.startNode(), this.next(), e.object = null;
                      let r = e.callee = this.parseNoCallExpr();
                      if (r.type === "MemberExpression") return this.finishNode(e, "BindExpression");
                      throw this.raise(p.UnsupportedBind, r);
                    }
                  case 138:
                    return this.raise(p.PrivateInExpectedIn, this.state.startLoc, {
                      identifierName: this.state.value
                    }), this.parsePrivateName();
                  case 33:
                    return this.parseTopicReferenceThenEqualsSign(54, "%");
                  case 32:
                    return this.parseTopicReferenceThenEqualsSign(44, "^");
                  case 37:
                  case 38:
                    return this.parseTopicReference("hack");
                  case 44:
                  case 54:
                  case 27:
                    {
                      let r = this.getPluginOption("pipelineOperator", "proposal");
                      if (r) return this.parseTopicReference(r);
                      this.unexpected();
                      break;
                    }
                  case 47:
                    {
                      let r = this.input.codePointAt(this.nextTokenStart());
                      _$1(r) || r === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
                      break;
                    }
                  default:
                    if (w$1(i)) {
                      if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) return this.parseModuleExpression();
                      let r = this.state.potentialArrowAt === this.state.start,
                        n = this.state.containsEsc,
                        o = this.parseIdentifier();
                      if (!n && o.name === "async" && !this.canInsertSemicolon()) {
                        let {
                          type: h
                        } = this.state;
                        if (h === 68) return this.resetPreviousNodeTrailingComments(o), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(o));
                        if (w$1(h)) return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(o)) : o;
                        if (h === 90) return this.resetPreviousNodeTrailingComments(o), this.parseDo(this.startNodeAtNode(o), !0);
                      }
                      return r && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(o), [o], !1)) : o;
                    } else this.unexpected();
                }
              }
              parseTopicReferenceThenEqualsSign(t, e) {
                let s = this.getPluginOption("pipelineOperator", "proposal");
                if (s) return this.state.type = t, this.state.value = e, this.state.pos--, this.state.end--, this.state.endLoc = v$1(this.state.endLoc, -1), this.parseTopicReference(s);
                this.unexpected();
              }
              parseTopicReference(t) {
                let e = this.startNode(),
                  s = this.state.startLoc,
                  i = this.state.type;
                return this.next(), this.finishTopicReference(e, s, t, i);
              }
              finishTopicReference(t, e, s, i) {
                if (this.testTopicReferenceConfiguration(s, e, i)) {
                  let r = s === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
                  return this.topicReferenceIsAllowedInCurrentContext() || this.raise(s === "smart" ? p.PrimaryTopicNotAllowed : p.PipeTopicUnbound, e), this.registerTopicReference(), this.finishNode(t, r);
                } else throw this.raise(p.PipeTopicUnconfiguredToken, e, {
                  token: K$2(i)
                });
              }
              testTopicReferenceConfiguration(t, e, s) {
                switch (t) {
                  case "hack":
                    return this.hasPlugin(["pipelineOperator", {
                      topicToken: K$2(s)
                    }]);
                  case "smart":
                    return s === 27;
                  default:
                    throw this.raise(p.PipeTopicRequiresHackPipes, e);
                }
              }
              parseAsyncArrowUnaryFunction(t) {
                this.prodParam.enter(Ne$2(!0, this.prodParam.hasYield));
                let e = [this.parseIdentifier()];
                return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(p.LineTerminatorBeforeArrow, this.state.curPosition()), this.expect(19), this.parseArrowExpression(t, e, !0);
              }
              parseDo(t, e) {
                this.expectPlugin("doExpressions"), e && this.expectPlugin("asyncDoExpressions"), t.async = e, this.next();
                let s = this.state.labels;
                return this.state.labels = [], e ? (this.prodParam.enter(2), t.body = this.parseBlock(), this.prodParam.exit()) : t.body = this.parseBlock(), this.state.labels = s, this.finishNode(t, "DoExpression");
              }
              parseSuper() {
                let t = this.startNode();
                return this.next(), this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod ? this.raise(p.SuperNotAllowed, t) : !this.scope.allowSuper && !this.options.allowSuperOutsideMethod && this.raise(p.UnexpectedSuper, t), !this.match(10) && !this.match(0) && !this.match(16) && this.raise(p.UnsupportedSuper, t), this.finishNode(t, "Super");
              }
              parsePrivateName() {
                let t = this.startNode(),
                  e = this.startNodeAt(v$1(this.state.startLoc, 1)),
                  s = this.state.value;
                return this.next(), t.id = this.createIdentifier(e, s), this.finishNode(t, "PrivateName");
              }
              parseFunctionOrFunctionSent() {
                let t = this.startNode();
                if (this.next(), this.prodParam.hasYield && this.match(16)) {
                  let e = this.createIdentifier(this.startNodeAtNode(t), "function");
                  return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.parseMetaProperty(t, e, "sent");
                }
                return this.parseFunction(t);
              }
              parseMetaProperty(t, e, s) {
                t.meta = e;
                let i = this.state.containsEsc;
                return t.property = this.parseIdentifier(!0), (t.property.name !== s || i) && this.raise(p.UnsupportedMetaProperty, t.property, {
                  target: e.name,
                  onlyValidPropertyName: s
                }), this.finishNode(t, "MetaProperty");
              }
              parseImportMetaProperty(t) {
                let e = this.createIdentifier(this.startNodeAtNode(t), "import");
                if (this.next(), this.isContextual(101)) this.inModule || this.raise(p.ImportMetaOutsideModule, e), this.sawUnambiguousESM = !0;else if (this.isContextual(105) || this.isContextual(97)) {
                  let s = this.isContextual(105);
                  if (s || this.unexpected(), this.expectPlugin(s ? "sourcePhaseImports" : "deferredImportEvaluation"), !this.options.createImportExpressions) throw this.raise(p.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
                    phase: this.state.value
                  });
                  return this.next(), t.phase = s ? "source" : "defer", this.parseImportCall(t);
                }
                return this.parseMetaProperty(t, e, "meta");
              }
              parseLiteralAtNode(t, e, s) {
                return this.addExtra(s, "rawValue", t), this.addExtra(s, "raw", this.input.slice(s.start, this.state.end)), s.value = t, this.next(), this.finishNode(s, e);
              }
              parseLiteral(t, e) {
                let s = this.startNode();
                return this.parseLiteralAtNode(t, e, s);
              }
              parseStringLiteral(t) {
                return this.parseLiteral(t, "StringLiteral");
              }
              parseNumericLiteral(t) {
                return this.parseLiteral(t, "NumericLiteral");
              }
              parseBigIntLiteral(t) {
                return this.parseLiteral(t, "BigIntLiteral");
              }
              parseDecimalLiteral(t) {
                return this.parseLiteral(t, "DecimalLiteral");
              }
              parseRegExpLiteral(t) {
                let e = this.startNode();
                return this.addExtra(e, "raw", this.input.slice(e.start, this.state.end)), e.pattern = t.pattern, e.flags = t.flags, this.next(), this.finishNode(e, "RegExpLiteral");
              }
              parseBooleanLiteral(t) {
                let e = this.startNode();
                return e.value = t, this.next(), this.finishNode(e, "BooleanLiteral");
              }
              parseNullLiteral() {
                let t = this.startNode();
                return this.next(), this.finishNode(t, "NullLiteral");
              }
              parseParenAndDistinguishExpression(t) {
                let e = this.state.startLoc,
                  s;
                this.next(), this.expressionScope.enter(Oi$1());
                let i = this.state.maybeInArrowParameters,
                  r = this.state.inFSharpPipelineDirectBody;
                this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
                let n = this.state.startLoc,
                  o = [],
                  h = new Z$1(),
                  c = !0,
                  l$1,
                  u;
                for (; !this.match(11);) {
                  if (c) c = !1;else if (this.expect(12, h.optionalParametersLoc === null ? null : h.optionalParametersLoc), this.match(11)) {
                    u = this.state.startLoc;
                    break;
                  }
                  if (this.match(21)) {
                    let y$1 = this.state.startLoc;
                    if (l$1 = this.state.startLoc, o.push(this.parseParenItem(this.parseRestBinding(), y$1)), !this.checkCommaAfterRest(41)) break;
                  } else o.push(this.parseMaybeAssignAllowIn(h, this.parseParenItem));
                }
                let f$1 = this.state.lastTokEndLoc;
                this.expect(11), this.state.maybeInArrowParameters = i, this.state.inFSharpPipelineDirectBody = r;
                let d$1 = this.startNodeAt(e);
                return t && this.shouldParseArrow(o) && (d$1 = this.parseArrow(d$1)) ? (this.checkDestructuringPrivate(h), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), this.parseArrowExpression(d$1, o, !1), d$1) : (this.expressionScope.exit(), o.length || this.unexpected(this.state.lastTokStartLoc), u && this.unexpected(u), l$1 && this.unexpected(l$1), this.checkExpressionErrors(h, !0), this.toReferencedListDeep(o, !0), o.length > 1 ? (s = this.startNodeAt(n), s.expressions = o, this.finishNode(s, "SequenceExpression"), this.resetEndLocation(s, f$1)) : s = o[0], this.wrapParenthesis(e, s));
              }
              wrapParenthesis(t, e) {
                if (!this.options.createParenthesizedExpressions) return this.addExtra(e, "parenthesized", !0), this.addExtra(e, "parenStart", t.index), this.takeSurroundingComments(e, t.index, this.state.lastTokEndLoc.index), e;
                let s = this.startNodeAt(t);
                return s.expression = e, this.finishNode(s, "ParenthesizedExpression");
              }
              shouldParseArrow(t) {
                return !this.canInsertSemicolon();
              }
              parseArrow(t) {
                if (this.eat(19)) return t;
              }
              parseParenItem(t, e) {
                return t;
              }
              parseNewOrNewTarget() {
                let t = this.startNode();
                if (this.next(), this.match(16)) {
                  let e = this.createIdentifier(this.startNodeAtNode(t), "new");
                  this.next();
                  let s = this.parseMetaProperty(t, e, "target");
                  return !this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction && this.raise(p.UnexpectedNewTarget, s), s;
                }
                return this.parseNew(t);
              }
              parseNew(t) {
                if (this.parseNewCallee(t), this.eat(10)) {
                  let e = this.parseExprList(11);
                  this.toReferencedList(e), t.arguments = e;
                } else t.arguments = [];
                return this.finishNode(t, "NewExpression");
              }
              parseNewCallee(t) {
                let e = this.match(83),
                  s = this.parseNoCallExpr();
                t.callee = s, e && (s.type === "Import" || s.type === "ImportExpression") && this.raise(p.ImportCallNotNewExpression, s);
              }
              parseTemplateElement(t) {
                let {
                    start: e,
                    startLoc: s,
                    end: i,
                    value: r
                  } = this.state,
                  n = e + 1,
                  o = this.startNodeAt(v$1(s, 1));
                r === null && (t || this.raise(p.InvalidEscapeSequenceTemplate, v$1(this.state.firstInvalidTemplateEscapePos, 1)));
                let h = this.match(24),
                  c = h ? -1 : -2,
                  l$1 = i + c;
                o.value = {
                  raw: this.input.slice(n, l$1).replace(/\r\n?/g, `
`),
                  cooked: r === null ? null : r.slice(1, c)
                }, o.tail = h, this.next();
                let u = this.finishNode(o, "TemplateElement");
                return this.resetEndLocation(u, v$1(this.state.lastTokEndLoc, c)), u;
              }
              parseTemplate(t) {
                let e = this.startNode(),
                  s = this.parseTemplateElement(t),
                  i = [s],
                  r = [];
                for (; !s.tail;) r.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), i.push(s = this.parseTemplateElement(t));
                return e.expressions = r, e.quasis = i, this.finishNode(e, "TemplateLiteral");
              }
              parseTemplateSubstitution() {
                return this.parseExpression();
              }
              parseObjectLike(t, e, s, i) {
                s && this.expectPlugin("recordAndTuple");
                let r = this.state.inFSharpPipelineDirectBody;
                this.state.inFSharpPipelineDirectBody = !1;
                let n = Object.create(null),
                  o = !0,
                  h = this.startNode();
                for (h.properties = [], this.next(); !this.match(t);) {
                  if (o) o = !1;else if (this.expect(12), this.match(t)) {
                    this.addTrailingCommaExtraToNode(h);
                    break;
                  }
                  let l$1;
                  e ? l$1 = this.parseBindingProperty() : (l$1 = this.parsePropertyDefinition(i), this.checkProto(l$1, s, n, i)), s && !this.isObjectProperty(l$1) && l$1.type !== "SpreadElement" && this.raise(p.InvalidRecordProperty, l$1), l$1.shorthand && this.addExtra(l$1, "shorthand", !0), h.properties.push(l$1);
                }
                this.next(), this.state.inFSharpPipelineDirectBody = r;
                let c = "ObjectExpression";
                return e ? c = "ObjectPattern" : s && (c = "RecordExpression"), this.finishNode(h, c);
              }
              addTrailingCommaExtraToNode(t) {
                this.addExtra(t, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(t, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
              }
              maybeAsyncOrAccessorProp(t) {
                return !t.computed && t.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
              }
              parsePropertyDefinition(t) {
                let e = [];
                if (this.match(26)) for (this.hasPlugin("decorators") && this.raise(p.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26);) e.push(this.parseDecorator());
                let s = this.startNode(),
                  i = !1,
                  r = !1,
                  n;
                if (this.match(21)) return e.length && this.unexpected(), this.parseSpread();
                e.length && (s.decorators = e, e = []), s.method = !1, t && (n = this.state.startLoc);
                let o = this.eat(55);
                this.parsePropertyNamePrefixOperator(s);
                let h = this.state.containsEsc;
                if (this.parsePropertyName(s, t), !o && !h && this.maybeAsyncOrAccessorProp(s)) {
                  let {
                      key: c
                    } = s,
                    l$1 = c.name;
                  l$1 === "async" && !this.hasPrecedingLineBreak() && (i = !0, this.resetPreviousNodeTrailingComments(c), o = this.eat(55), this.parsePropertyName(s)), (l$1 === "get" || l$1 === "set") && (r = !0, this.resetPreviousNodeTrailingComments(c), s.kind = l$1, this.match(55) && (o = !0, this.raise(p.AccessorIsGenerator, this.state.curPosition(), {
                    kind: l$1
                  }), this.next()), this.parsePropertyName(s));
                }
                return this.parseObjPropValue(s, n, o, i, !1, r, t);
              }
              getGetterSetterExpectedParamCount(t) {
                return t.kind === "get" ? 0 : 1;
              }
              getObjectOrClassMethodParams(t) {
                return t.params;
              }
              checkGetterSetterParams(t) {
                var e;
                let s = this.getGetterSetterExpectedParamCount(t),
                  i = this.getObjectOrClassMethodParams(t);
                i.length !== s && this.raise(t.kind === "get" ? p.BadGetterArity : p.BadSetterArity, t), t.kind === "set" && ((e = i[i.length - 1]) == null ? void 0 : e.type) === "RestElement" && this.raise(p.BadSetterRestParameter, t);
              }
              parseObjectMethod(t, e, s, i, r) {
                if (r) {
                  let n = this.parseMethod(t, e, !1, !1, !1, "ObjectMethod");
                  return this.checkGetterSetterParams(n), n;
                }
                if (s || e || this.match(10)) return i && this.unexpected(), t.kind = "method", t.method = !0, this.parseMethod(t, e, s, !1, !1, "ObjectMethod");
              }
              parseObjectProperty(t, e, s, i) {
                if (t.shorthand = !1, this.eat(14)) return t.value = s ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(i), this.finishNode(t, "ObjectProperty");
                if (!t.computed && t.key.type === "Identifier") {
                  if (this.checkReservedWord(t.key.name, t.key.loc.start, !0, !1), s) t.value = this.parseMaybeDefault(e, $$1(t.key));else if (this.match(29)) {
                    let r = this.state.startLoc;
                    i != null ? i.shorthandAssignLoc === null && (i.shorthandAssignLoc = r) : this.raise(p.InvalidCoverInitializedName, r), t.value = this.parseMaybeDefault(e, $$1(t.key));
                  } else t.value = $$1(t.key);
                  return t.shorthand = !0, this.finishNode(t, "ObjectProperty");
                }
              }
              parseObjPropValue(t, e, s, i, r, n, o) {
                let h = this.parseObjectMethod(t, s, i, r, n) || this.parseObjectProperty(t, e, r, o);
                return h || this.unexpected(), h;
              }
              parsePropertyName(t, e) {
                if (this.eat(0)) t.computed = !0, t.key = this.parseMaybeAssignAllowIn(), this.expect(3);else {
                  let {
                      type: s,
                      value: i
                    } = this.state,
                    r;
                  if (M$2(s)) r = this.parseIdentifier(!0);else switch (s) {
                    case 134:
                      r = this.parseNumericLiteral(i);
                      break;
                    case 133:
                      r = this.parseStringLiteral(i);
                      break;
                    case 135:
                      r = this.parseBigIntLiteral(i);
                      break;
                    case 136:
                      r = this.parseDecimalLiteral(i);
                      break;
                    case 138:
                      {
                        let n = this.state.startLoc;
                        e != null ? e.privateKeyLoc === null && (e.privateKeyLoc = n) : this.raise(p.UnexpectedPrivateField, n), r = this.parsePrivateName();
                        break;
                      }
                    default:
                      this.unexpected();
                  }
                  t.key = r, s !== 138 && (t.computed = !1);
                }
              }
              initFunction(t, e) {
                t.id = null, t.generator = !1, t.async = e;
              }
              parseMethod(t, e, s, i, r, n, o = !1) {
                this.initFunction(t, s), t.generator = e, this.scope.enter(18 | (o ? 64 : 0) | (r ? 32 : 0)), this.prodParam.enter(Ne$2(s, t.generator)), this.parseFunctionParams(t, i);
                let h = this.parseFunctionBodyAndFinish(t, n, !0);
                return this.prodParam.exit(), this.scope.exit(), h;
              }
              parseArrayLike(t, e, s, i) {
                s && this.expectPlugin("recordAndTuple");
                let r = this.state.inFSharpPipelineDirectBody;
                this.state.inFSharpPipelineDirectBody = !1;
                let n = this.startNode();
                return this.next(), n.elements = this.parseExprList(t, !s, i, n), this.state.inFSharpPipelineDirectBody = r, this.finishNode(n, s ? "TupleExpression" : "ArrayExpression");
              }
              parseArrowExpression(t, e, s, i) {
                this.scope.enter(6);
                let r = Ne$2(s, !1);
                !this.match(5) && this.prodParam.hasIn && (r |= 8), this.prodParam.enter(r), this.initFunction(t, s);
                let n = this.state.maybeInArrowParameters;
                return e && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(t, e, i)), this.state.maybeInArrowParameters = !1, this.parseFunctionBody(t, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = n, this.finishNode(t, "ArrowFunctionExpression");
              }
              setArrowFunctionParameters(t, e, s) {
                this.toAssignableList(e, s, !1), t.params = e;
              }
              parseFunctionBodyAndFinish(t, e, s = !1) {
                return this.parseFunctionBody(t, !1, s), this.finishNode(t, e);
              }
              parseFunctionBody(t, e, s = !1) {
                let i = e && !this.match(5);
                if (this.expressionScope.enter(rs$1()), i) t.body = this.parseMaybeAssign(), this.checkParams(t, !1, e, !1);else {
                  let r = this.state.strict,
                    n = this.state.labels;
                  this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), t.body = this.parseBlock(!0, !1, o => {
                    let h = !this.isSimpleParamList(t.params);
                    o && h && this.raise(p.IllegalLanguageModeDirective, (t.kind === "method" || t.kind === "constructor") && t.key ? t.key.loc.end : t);
                    let c = !r && this.state.strict;
                    this.checkParams(t, !this.state.strict && !e && !s && !h, e, c), this.state.strict && t.id && this.checkIdentifier(t.id, 65, c);
                  }), this.prodParam.exit(), this.state.labels = n;
                }
                this.expressionScope.exit();
              }
              isSimpleParameter(t) {
                return t.type === "Identifier";
              }
              isSimpleParamList(t) {
                for (let e = 0, s = t.length; e < s; e++) if (!this.isSimpleParameter(t[e])) return !1;
                return !0;
              }
              checkParams(t, e, s, i = !0) {
                let r = !e && /* @__PURE__ */new Set(),
                  n = {
                    type: "FormalParameters"
                  };
                for (let o of t.params) this.checkLVal(o, {
                  in: n,
                  binding: 5,
                  checkClashes: r,
                  strictModeChanged: i
                });
              }
              parseExprList(t, e, s, i) {
                let r = [],
                  n = !0;
                for (; !this.eat(t);) {
                  if (n) n = !1;else if (this.expect(12), this.match(t)) {
                    i && this.addTrailingCommaExtraToNode(i), this.next();
                    break;
                  }
                  r.push(this.parseExprListItem(e, s));
                }
                return r;
              }
              parseExprListItem(t, e, s) {
                let i;
                if (this.match(12)) t || this.raise(p.UnexpectedToken, this.state.curPosition(), {
                  unexpected: ","
                }), i = null;else if (this.match(21)) {
                  let r = this.state.startLoc;
                  i = this.parseParenItem(this.parseSpread(e), r);
                } else if (this.match(17)) {
                  this.expectPlugin("partialApplication"), s || this.raise(p.UnexpectedArgumentPlaceholder, this.state.startLoc);
                  let r = this.startNode();
                  this.next(), i = this.finishNode(r, "ArgumentPlaceholder");
                } else i = this.parseMaybeAssignAllowIn(e, this.parseParenItem);
                return i;
              }
              parseIdentifier(t) {
                let e = this.startNode(),
                  s = this.parseIdentifierName(t);
                return this.createIdentifier(e, s);
              }
              createIdentifier(t, e) {
                return t.name = e, t.loc.identifierName = e, this.finishNode(t, "Identifier");
              }
              parseIdentifierName(t) {
                let e,
                  {
                    startLoc: s,
                    type: i
                  } = this.state;
                M$2(i) ? e = this.state.value : this.unexpected();
                let r = oi$2(i);
                return t ? r && this.replaceToken(132) : this.checkReservedWord(e, s, r, !1), this.next(), e;
              }
              checkReservedWord(t, e, s, i) {
                if (t.length > 10 || !Ei$1(t)) return;
                if (s && Si$1(t)) {
                  this.raise(p.UnexpectedKeyword, e, {
                    keyword: t
                  });
                  return;
                }
                if ((this.state.strict ? i ? Zt$1 : Yt$2 : Gt$2)(t, this.inModule)) {
                  this.raise(p.UnexpectedReservedWord, e, {
                    reservedWord: t
                  });
                  return;
                } else if (t === "yield") {
                  if (this.prodParam.hasYield) {
                    this.raise(p.YieldBindingIdentifier, e);
                    return;
                  }
                } else if (t === "await") {
                  if (this.prodParam.hasAwait) {
                    this.raise(p.AwaitBindingIdentifier, e);
                    return;
                  }
                  if (this.scope.inStaticBlock) {
                    this.raise(p.AwaitBindingIdentifierInStaticBlock, e);
                    return;
                  }
                  this.expressionScope.recordAsyncArrowParametersError(e);
                } else if (t === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
                  this.raise(p.ArgumentsInClass, e);
                  return;
                }
              }
              isAwaitAllowed() {
                return !!(this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction);
              }
              parseAwait(t) {
                let e = this.startNodeAt(t);
                return this.expressionScope.recordParameterInitializerError(p.AwaitExpressionFormalParameter, e), this.eat(55) && this.raise(p.ObsoleteAwaitStar, e), !this.scope.inFunction && !this.options.allowAwaitOutsideFunction && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM = !0), this.state.soloAwait || (e.argument = this.parseMaybeUnary(null, !0)), this.finishNode(e, "AwaitExpression");
              }
              isAmbiguousAwait() {
                if (this.hasPrecedingLineBreak()) return !0;
                let {
                  type: t
                } = this.state;
                return t === 53 || t === 10 || t === 0 || ve$2(t) || t === 102 && !this.state.containsEsc || t === 137 || t === 56 || this.hasPlugin("v8intrinsic") && t === 54;
              }
              parseYield() {
                let t = this.startNode();
                this.expressionScope.recordParameterInitializerError(p.YieldInParameter, t), this.next();
                let e = !1,
                  s = null;
                if (!this.hasPrecedingLineBreak()) switch (e = this.eat(55), this.state.type) {
                  case 13:
                  case 139:
                  case 8:
                  case 11:
                  case 3:
                  case 9:
                  case 14:
                  case 12:
                    if (!e) break;
                  default:
                    s = this.parseMaybeAssign();
                }
                return t.delegate = e, t.argument = s, this.finishNode(t, "YieldExpression");
              }
              parseImportCall(t) {
                return this.next(), t.source = this.parseMaybeAssignAllowIn(), (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) && (t.options = null), this.eat(12) && (this.expectImportAttributesPlugin(), this.match(11) || (t.options = this.parseMaybeAssignAllowIn(), this.eat(12))), this.expect(11), this.finishNode(t, "ImportExpression");
              }
              checkPipelineAtInfixOperator(t, e) {
                this.hasPlugin(["pipelineOperator", {
                  proposal: "smart"
                }]) && t.type === "SequenceExpression" && this.raise(p.PipelineHeadSequenceExpression, e);
              }
              parseSmartPipelineBodyInStyle(t, e) {
                if (this.isSimpleReference(t)) {
                  let s = this.startNodeAt(e);
                  return s.callee = t, this.finishNode(s, "PipelineBareFunction");
                } else {
                  let s = this.startNodeAt(e);
                  return this.checkSmartPipeTopicBodyEarlyErrors(e), s.expression = t, this.finishNode(s, "PipelineTopicExpression");
                }
              }
              isSimpleReference(t) {
                switch (t.type) {
                  case "MemberExpression":
                    return !t.computed && this.isSimpleReference(t.object);
                  case "Identifier":
                    return !0;
                  default:
                    return !1;
                }
              }
              checkSmartPipeTopicBodyEarlyErrors(t) {
                if (this.match(19)) throw this.raise(p.PipelineBodyNoArrow, this.state.startLoc);
                this.topicReferenceWasUsedInCurrentContext() || this.raise(p.PipelineTopicUnused, t);
              }
              withTopicBindingContext(t) {
                let e = this.state.topicContext;
                this.state.topicContext = {
                  maxNumOfResolvableTopics: 1,
                  maxTopicIndex: null
                };
                try {
                  return t();
                } finally {
                  this.state.topicContext = e;
                }
              }
              withSmartMixTopicForbiddingContext(t) {
                if (this.hasPlugin(["pipelineOperator", {
                  proposal: "smart"
                }])) {
                  let e = this.state.topicContext;
                  this.state.topicContext = {
                    maxNumOfResolvableTopics: 0,
                    maxTopicIndex: null
                  };
                  try {
                    return t();
                  } finally {
                    this.state.topicContext = e;
                  }
                } else return t();
              }
              withSoloAwaitPermittingContext(t) {
                let e = this.state.soloAwait;
                this.state.soloAwait = !0;
                try {
                  return t();
                } finally {
                  this.state.soloAwait = e;
                }
              }
              allowInAnd(t) {
                let e = this.prodParam.currentFlags();
                if (8 & ~e) {
                  this.prodParam.enter(e | 8);
                  try {
                    return t();
                  } finally {
                    this.prodParam.exit();
                  }
                }
                return t();
              }
              disallowInAnd(t) {
                let e = this.prodParam.currentFlags();
                if (8 & e) {
                  this.prodParam.enter(e & -9);
                  try {
                    return t();
                  } finally {
                    this.prodParam.exit();
                  }
                }
                return t();
              }
              registerTopicReference() {
                this.state.topicContext.maxTopicIndex = 0;
              }
              topicReferenceIsAllowedInCurrentContext() {
                return this.state.topicContext.maxNumOfResolvableTopics >= 1;
              }
              topicReferenceWasUsedInCurrentContext() {
                return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
              }
              parseFSharpPipelineBody(t) {
                let e = this.state.startLoc;
                this.state.potentialArrowAt = this.state.start;
                let s = this.state.inFSharpPipelineDirectBody;
                this.state.inFSharpPipelineDirectBody = !0;
                let i = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), e, t);
                return this.state.inFSharpPipelineDirectBody = s, i;
              }
              parseModuleExpression() {
                this.expectPlugin("moduleBlocks");
                let t = this.startNode();
                this.next(), this.match(5) || this.unexpected(null, 5);
                let e = this.startNodeAt(this.state.endLoc);
                this.next();
                let s = this.initializeScopes(!0);
                this.enterInitialScopes();
                try {
                  t.body = this.parseProgram(e, 8, "module");
                } finally {
                  s();
                }
                return this.finishNode(t, "ModuleExpression");
              }
              parsePropertyNamePrefixOperator(t) {}
            },
            ze$2 = {
              kind: 1
            },
            ar$2 = {
              kind: 2
            },
            nr$2 = /[\uD800-\uDFFF]/u,
            Ke$2 = /in(?:stanceof)?/y;
          function or$2(a, t) {
            for (let e = 0; e < a.length; e++) {
              let s = a[e],
                {
                  type: i
                } = s;
              if (typeof i == "number") {
                if (i === 138) {
                  let {
                      loc: r,
                      start: n,
                      value: o,
                      end: h
                    } = s,
                    c = n + 1,
                    l$1 = v$1(r.start, 1);
                  a.splice(e, 1, new O$2({
                    type: R$2(27),
                    value: "#",
                    start: n,
                    end: c,
                    startLoc: r.start,
                    endLoc: l$1
                  }), new O$2({
                    type: R$2(132),
                    value: o,
                    start: c,
                    end: h,
                    startLoc: l$1,
                    endLoc: r.end
                  })), e++;
                  continue;
                }
                if (ve$2(i)) {
                  let {
                      loc: r,
                      start: n,
                      value: o,
                      end: h
                    } = s,
                    c = n + 1,
                    l$1 = v$1(r.start, 1),
                    u;
                  t.charCodeAt(n) === 96 ? u = new O$2({
                    type: R$2(22),
                    value: "`",
                    start: n,
                    end: c,
                    startLoc: r.start,
                    endLoc: l$1
                  }) : u = new O$2({
                    type: R$2(8),
                    value: "}",
                    start: n,
                    end: c,
                    startLoc: r.start,
                    endLoc: l$1
                  });
                  let f$1, d$1, y$1, E$1;
                  i === 24 ? (d$1 = h - 1, y$1 = v$1(r.end, -1), f$1 = o === null ? null : o.slice(1, -1), E$1 = new O$2({
                    type: R$2(22),
                    value: "`",
                    start: d$1,
                    end: h,
                    startLoc: y$1,
                    endLoc: r.end
                  })) : (d$1 = h - 2, y$1 = v$1(r.end, -2), f$1 = o === null ? null : o.slice(1, -2), E$1 = new O$2({
                    type: R$2(23),
                    value: "${",
                    start: d$1,
                    end: h,
                    startLoc: y$1,
                    endLoc: r.end
                  })), a.splice(e, 1, u, new O$2({
                    type: R$2(20),
                    value: f$1,
                    start: c,
                    end: d$1,
                    startLoc: l$1,
                    endLoc: y$1
                  }), E$1), e += 2;
                  continue;
                }
                s.type = R$2(i);
              }
            }
            return a;
          }
          var pt$2 = class extends ct$2 {
              parseTopLevel(t, e) {
                return t.program = this.parseProgram(e), t.comments = this.comments, this.options.tokens && (t.tokens = or$2(this.tokens, this.input)), this.finishNode(t, "File");
              }
              parseProgram(t, e = 139, s = this.options.sourceType) {
                if (t.sourceType = s, t.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(t, !0, !0, e), this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) for (let [r, n] of Array.from(this.scope.undefinedExports)) this.raise(p.ModuleExportUndefined, n, {
                  localName: r
                });
                let i;
                return e === 139 ? i = this.finishNode(t, "Program") : i = this.finishNodeAt(t, "Program", v$1(this.state.startLoc, -1)), i;
              }
              stmtToDirective(t) {
                let e = t;
                e.type = "Directive", e.value = e.expression, delete e.expression;
                let s = e.value,
                  i = s.value,
                  r = this.input.slice(s.start, s.end),
                  n = s.value = r.slice(1, -1);
                return this.addExtra(s, "raw", r), this.addExtra(s, "rawValue", n), this.addExtra(s, "expressionValue", i), s.type = "DirectiveLiteral", e;
              }
              parseInterpreterDirective() {
                if (!this.match(28)) return null;
                let t = this.startNode();
                return t.value = this.state.value, this.next(), this.finishNode(t, "InterpreterDirective");
              }
              isLet() {
                return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
              }
              chStartsBindingIdentifier(t, e) {
                if (_$1(t)) {
                  if (Ke$2.lastIndex = e, Ke$2.test(this.input)) {
                    let s = this.codePointAtPos(Ke$2.lastIndex);
                    if (!Q$2(s) && s !== 92) return !1;
                  }
                  return !0;
                } else return t === 92;
              }
              chStartsBindingPattern(t) {
                return t === 91 || t === 123;
              }
              hasFollowingBindingAtom() {
                let t = this.nextTokenStart(),
                  e = this.codePointAtPos(t);
                return this.chStartsBindingPattern(e) || this.chStartsBindingIdentifier(e, t);
              }
              hasInLineFollowingBindingIdentifierOrBrace() {
                let t = this.nextTokenInLineStart(),
                  e = this.codePointAtPos(t);
                return e === 123 || this.chStartsBindingIdentifier(e, t);
              }
              startsUsingForOf() {
                let {
                  type: t,
                  containsEsc: e
                } = this.lookahead();
                if (t === 102 && !e) return !1;
                if (w$1(t) && !this.hasFollowingLineBreak()) return this.expectPlugin("explicitResourceManagement"), !0;
              }
              startsAwaitUsing() {
                let t = this.nextTokenInLineStart();
                if (this.isUnparsedContextual(t, "using")) {
                  t = this.nextTokenInLineStartSince(t + 5);
                  let e = this.codePointAtPos(t);
                  if (this.chStartsBindingIdentifier(e, t)) return this.expectPlugin("explicitResourceManagement"), !0;
                }
                return !1;
              }
              parseModuleItem() {
                return this.parseStatementLike(15);
              }
              parseStatementListItem() {
                return this.parseStatementLike(6 | (!this.options.annexB || this.state.strict ? 0 : 8));
              }
              parseStatementOrSloppyAnnexBFunctionDeclaration(t = !1) {
                let e = 0;
                return this.options.annexB && !this.state.strict && (e |= 4, t && (e |= 8)), this.parseStatementLike(e);
              }
              parseStatement() {
                return this.parseStatementLike(0);
              }
              parseStatementLike(t) {
                let e = null;
                return this.match(26) && (e = this.parseDecorators(!0)), this.parseStatementContent(t, e);
              }
              parseStatementContent(t, e) {
                let s = this.state.type,
                  i = this.startNode(),
                  r = !!(t & 2),
                  n = !!(t & 4),
                  o = t & 1;
                switch (s) {
                  case 60:
                    return this.parseBreakContinueStatement(i, !0);
                  case 63:
                    return this.parseBreakContinueStatement(i, !1);
                  case 64:
                    return this.parseDebuggerStatement(i);
                  case 90:
                    return this.parseDoWhileStatement(i);
                  case 91:
                    return this.parseForStatement(i);
                  case 68:
                    if (this.lookaheadCharCode() === 46) break;
                    return n || this.raise(this.state.strict ? p.StrictFunction : this.options.annexB ? p.SloppyFunctionAnnexB : p.SloppyFunction, this.state.startLoc), this.parseFunctionStatement(i, !1, !r && n);
                  case 80:
                    return r || this.unexpected(), this.parseClass(this.maybeTakeDecorators(e, i), !0);
                  case 69:
                    return this.parseIfStatement(i);
                  case 70:
                    return this.parseReturnStatement(i);
                  case 71:
                    return this.parseSwitchStatement(i);
                  case 72:
                    return this.parseThrowStatement(i);
                  case 73:
                    return this.parseTryStatement(i);
                  case 96:
                    if (!this.state.containsEsc && this.startsAwaitUsing()) return this.isAwaitAllowed() ? r || this.raise(p.UnexpectedLexicalDeclaration, i) : this.raise(p.AwaitUsingNotInAsyncContext, i), this.next(), this.parseVarStatement(i, "await using");
                    break;
                  case 107:
                    if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) break;
                    return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(p.UnexpectedUsingDeclaration, this.state.startLoc) : r || this.raise(p.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(i, "using");
                  case 100:
                    {
                      if (this.state.containsEsc) break;
                      let l$1 = this.nextTokenStart(),
                        u = this.codePointAtPos(l$1);
                      if (u !== 91 && (!r && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(u, l$1) && u !== 123)) break;
                    }
                  case 75:
                    r || this.raise(p.UnexpectedLexicalDeclaration, this.state.startLoc);
                  case 74:
                    {
                      let l$1 = this.state.value;
                      return this.parseVarStatement(i, l$1);
                    }
                  case 92:
                    return this.parseWhileStatement(i);
                  case 76:
                    return this.parseWithStatement(i);
                  case 5:
                    return this.parseBlock();
                  case 13:
                    return this.parseEmptyStatement(i);
                  case 83:
                    {
                      let l$1 = this.lookaheadCharCode();
                      if (l$1 === 40 || l$1 === 46) break;
                    }
                  case 82:
                    {
                      !this.options.allowImportExportEverywhere && !o && this.raise(p.UnexpectedImportExport, this.state.startLoc), this.next();
                      let l$1;
                      return s === 83 ? (l$1 = this.parseImport(i), l$1.type === "ImportDeclaration" && (!l$1.importKind || l$1.importKind === "value") && (this.sawUnambiguousESM = !0)) : (l$1 = this.parseExport(i, e), (l$1.type === "ExportNamedDeclaration" && (!l$1.exportKind || l$1.exportKind === "value") || l$1.type === "ExportAllDeclaration" && (!l$1.exportKind || l$1.exportKind === "value") || l$1.type === "ExportDefaultDeclaration") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(l$1), l$1;
                    }
                  default:
                    if (this.isAsyncFunction()) return r || this.raise(p.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(i, !0, !r && n);
                }
                let h = this.state.value,
                  c = this.parseExpression();
                return w$1(s) && c.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(i, h, c, t) : this.parseExpressionStatement(i, c, e);
              }
              assertModuleNodeAllowed(t) {
                !this.options.allowImportExportEverywhere && !this.inModule && this.raise(p.ImportOutsideModule, t);
              }
              decoratorsEnabledBeforeExport() {
                return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== !1;
              }
              maybeTakeDecorators(t, e, s) {
                return t && (e.decorators && e.decorators.length > 0 ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(p.DecoratorsBeforeAfterExport, e.decorators[0]), e.decorators.unshift(...t)) : e.decorators = t, this.resetStartLocationFromNode(e, t[0]), s && this.resetStartLocationFromNode(s, e)), e;
              }
              canHaveLeadingDecorator() {
                return this.match(80);
              }
              parseDecorators(t) {
                let e = [];
                do e.push(this.parseDecorator()); while (this.match(26));
                if (this.match(82)) t || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(p.DecoratorExportClass, this.state.startLoc);else if (!this.canHaveLeadingDecorator()) throw this.raise(p.UnexpectedLeadingDecorator, this.state.startLoc);
                return e;
              }
              parseDecorator() {
                this.expectOnePlugin(["decorators", "decorators-legacy"]);
                let t = this.startNode();
                if (this.next(), this.hasPlugin("decorators")) {
                  let e = this.state.startLoc,
                    s;
                  if (this.match(10)) {
                    let i = this.state.startLoc;
                    this.next(), s = this.parseExpression(), this.expect(11), s = this.wrapParenthesis(i, s);
                    let r = this.state.startLoc;
                    t.expression = this.parseMaybeDecoratorArguments(s), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && t.expression !== s && this.raise(p.DecoratorArgumentsOutsideParentheses, r);
                  } else {
                    for (s = this.parseIdentifier(!1); this.eat(16);) {
                      let i = this.startNodeAt(e);
                      i.object = s, this.match(138) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), i.property = this.parsePrivateName()) : i.property = this.parseIdentifier(!0), i.computed = !1, s = this.finishNode(i, "MemberExpression");
                    }
                    t.expression = this.parseMaybeDecoratorArguments(s);
                  }
                } else t.expression = this.parseExprSubscripts();
                return this.finishNode(t, "Decorator");
              }
              parseMaybeDecoratorArguments(t) {
                if (this.eat(10)) {
                  let e = this.startNodeAtNode(t);
                  return e.callee = t, e.arguments = this.parseCallExpressionArguments(11, !1), this.toReferencedList(e.arguments), this.finishNode(e, "CallExpression");
                }
                return t;
              }
              parseBreakContinueStatement(t, e) {
                return this.next(), this.isLineTerminator() ? t.label = null : (t.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(t, e), this.finishNode(t, e ? "BreakStatement" : "ContinueStatement");
              }
              verifyBreakContinue(t, e) {
                let s;
                for (s = 0; s < this.state.labels.length; ++s) {
                  let i = this.state.labels[s];
                  if ((t.label == null || i.name === t.label.name) && (i.kind != null && (e || i.kind === 1) || t.label && e)) break;
                }
                if (s === this.state.labels.length) {
                  let i = e ? "BreakStatement" : "ContinueStatement";
                  this.raise(p.IllegalBreakContinue, t, {
                    type: i
                  });
                }
              }
              parseDebuggerStatement(t) {
                return this.next(), this.semicolon(), this.finishNode(t, "DebuggerStatement");
              }
              parseHeaderExpression() {
                this.expect(10);
                let t = this.parseExpression();
                return this.expect(11), t;
              }
              parseDoWhileStatement(t) {
                return this.next(), this.state.labels.push(ze$2), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.expect(92), t.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(t, "DoWhileStatement");
              }
              parseForStatement(t) {
                this.next(), this.state.labels.push(ze$2);
                let e = null;
                if (this.isAwaitAllowed() && this.eatContextual(96) && (e = this.state.lastTokStartLoc), this.scope.enter(0), this.expect(10), this.match(13)) return e !== null && this.unexpected(e), this.parseFor(t, null);
                let s = this.isContextual(100);
                {
                  let h = this.isContextual(96) && this.startsAwaitUsing(),
                    c = h || this.isContextual(107) && this.startsUsingForOf(),
                    l$1 = s && this.hasFollowingBindingAtom() || c;
                  if (this.match(74) || this.match(75) || l$1) {
                    let u = this.startNode(),
                      f$1;
                    h ? (f$1 = "await using", this.isAwaitAllowed() || this.raise(p.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) : f$1 = this.state.value, this.next(), this.parseVar(u, !0, f$1);
                    let d$1 = this.finishNode(u, "VariableDeclaration"),
                      y$1 = this.match(58);
                    return y$1 && c && this.raise(p.ForInUsing, d$1), (y$1 || this.isContextual(102)) && d$1.declarations.length === 1 ? this.parseForIn(t, d$1, e) : (e !== null && this.unexpected(e), this.parseFor(t, d$1));
                  }
                }
                let i = this.isContextual(95),
                  r = new Z$1(),
                  n = this.parseExpression(!0, r),
                  o = this.isContextual(102);
                if (o && (s && this.raise(p.ForOfLet, n), e === null && i && n.type === "Identifier" && this.raise(p.ForOfAsync, n)), o || this.match(58)) {
                  this.checkDestructuringPrivate(r), this.toAssignable(n, !0);
                  let h = o ? "ForOfStatement" : "ForInStatement";
                  return this.checkLVal(n, {
                    in: {
                      type: h
                    }
                  }), this.parseForIn(t, n, e);
                } else this.checkExpressionErrors(r, !0);
                return e !== null && this.unexpected(e), this.parseFor(t, n);
              }
              parseFunctionStatement(t, e, s) {
                return this.next(), this.parseFunction(t, 1 | (s ? 2 : 0) | (e ? 8 : 0));
              }
              parseIfStatement(t) {
                return this.next(), t.test = this.parseHeaderExpression(), t.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), t.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(t, "IfStatement");
              }
              parseReturnStatement(t) {
                return !this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction && this.raise(p.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ? t.argument = null : (t.argument = this.parseExpression(), this.semicolon()), this.finishNode(t, "ReturnStatement");
              }
              parseSwitchStatement(t) {
                this.next(), t.discriminant = this.parseHeaderExpression();
                let e = t.cases = [];
                this.expect(5), this.state.labels.push(ar$2), this.scope.enter(0);
                let s;
                for (let i; !this.match(8);) if (this.match(61) || this.match(65)) {
                  let r = this.match(61);
                  s && this.finishNode(s, "SwitchCase"), e.push(s = this.startNode()), s.consequent = [], this.next(), r ? s.test = this.parseExpression() : (i && this.raise(p.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), i = !0, s.test = null), this.expect(14);
                } else s ? s.consequent.push(this.parseStatementListItem()) : this.unexpected();
                return this.scope.exit(), s && this.finishNode(s, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(t, "SwitchStatement");
              }
              parseThrowStatement(t) {
                return this.next(), this.hasPrecedingLineBreak() && this.raise(p.NewlineAfterThrow, this.state.lastTokEndLoc), t.argument = this.parseExpression(), this.semicolon(), this.finishNode(t, "ThrowStatement");
              }
              parseCatchClauseParam() {
                let t = this.parseBindingAtom();
                return this.scope.enter(this.options.annexB && t.type === "Identifier" ? 8 : 0), this.checkLVal(t, {
                  in: {
                    type: "CatchClause"
                  },
                  binding: 9
                }), t;
              }
              parseTryStatement(t) {
                if (this.next(), t.block = this.parseBlock(), t.handler = null, this.match(62)) {
                  let e = this.startNode();
                  this.next(), this.match(10) ? (this.expect(10), e.param = this.parseCatchClauseParam(), this.expect(11)) : (e.param = null, this.scope.enter(0)), e.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), t.handler = this.finishNode(e, "CatchClause");
                }
                return t.finalizer = this.eat(67) ? this.parseBlock() : null, !t.handler && !t.finalizer && this.raise(p.NoCatchOrFinally, t), this.finishNode(t, "TryStatement");
              }
              parseVarStatement(t, e, s = !1) {
                return this.next(), this.parseVar(t, !1, e, s), this.semicolon(), this.finishNode(t, "VariableDeclaration");
              }
              parseWhileStatement(t) {
                return this.next(), t.test = this.parseHeaderExpression(), this.state.labels.push(ze$2), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.finishNode(t, "WhileStatement");
              }
              parseWithStatement(t) {
                return this.state.strict && this.raise(p.StrictWith, this.state.startLoc), this.next(), t.object = this.parseHeaderExpression(), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(t, "WithStatement");
              }
              parseEmptyStatement(t) {
                return this.next(), this.finishNode(t, "EmptyStatement");
              }
              parseLabeledStatement(t, e, s, i) {
                for (let n of this.state.labels) n.name === e && this.raise(p.LabelRedeclaration, s, {
                  labelName: e
                });
                let r = ci$2(this.state.type) ? 1 : this.match(71) ? 2 : null;
                for (let n = this.state.labels.length - 1; n >= 0; n--) {
                  let o = this.state.labels[n];
                  if (o.statementStart === t.start) o.statementStart = this.state.start, o.kind = r;else break;
                }
                return this.state.labels.push({
                  name: e,
                  kind: r,
                  statementStart: this.state.start
                }), t.body = i & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), t.label = s, this.finishNode(t, "LabeledStatement");
              }
              parseExpressionStatement(t, e, s) {
                return t.expression = e, this.semicolon(), this.finishNode(t, "ExpressionStatement");
              }
              parseBlock(t = !1, e = !0, s) {
                let i = this.startNode();
                return t && this.state.strictErrors.clear(), this.expect(5), e && this.scope.enter(0), this.parseBlockBody(i, t, !1, 8, s), e && this.scope.exit(), this.finishNode(i, "BlockStatement");
              }
              isValidDirective(t) {
                return t.type === "ExpressionStatement" && t.expression.type === "StringLiteral" && !t.expression.extra.parenthesized;
              }
              parseBlockBody(t, e, s, i, r) {
                let n = t.body = [],
                  o = t.directives = [];
                this.parseBlockOrModuleBlockBody(n, e ? o : void 0, s, i, r);
              }
              parseBlockOrModuleBlockBody(t, e, s, i, r) {
                let n = this.state.strict,
                  o = !1,
                  h = !1;
                for (; !this.match(i);) {
                  let c = s ? this.parseModuleItem() : this.parseStatementListItem();
                  if (e && !h) {
                    if (this.isValidDirective(c)) {
                      let l$1 = this.stmtToDirective(c);
                      e.push(l$1), !o && l$1.value.value === "use strict" && (o = !0, this.setStrict(!0));
                      continue;
                    }
                    h = !0, this.state.strictErrors.clear();
                  }
                  t.push(c);
                }
                r?.call(this, o), n || this.setStrict(!1), this.next();
              }
              parseFor(t, e) {
                return t.init = e, this.semicolon(!1), t.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), t.update = this.match(11) ? null : this.parseExpression(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, "ForStatement");
              }
              parseForIn(t, e, s) {
                let i = this.match(58);
                return this.next(), i ? s !== null && this.unexpected(s) : t.await = s !== null, e.type === "VariableDeclaration" && e.declarations[0].init != null && (!i || !this.options.annexB || this.state.strict || e.kind !== "var" || e.declarations[0].id.type !== "Identifier") && this.raise(p.ForInOfLoopInitializer, e, {
                  type: i ? "ForInStatement" : "ForOfStatement"
                }), e.type === "AssignmentPattern" && this.raise(p.InvalidLhs, e, {
                  ancestor: {
                    type: "ForStatement"
                  }
                }), t.left = e, t.right = i ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, i ? "ForInStatement" : "ForOfStatement");
              }
              parseVar(t, e, s, i = !1) {
                let r = t.declarations = [];
                for (t.kind = s;;) {
                  let n = this.startNode();
                  if (this.parseVarId(n, s), n.init = this.eat(29) ? e ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, n.init === null && !i && (n.id.type !== "Identifier" && !(e && (this.match(58) || this.isContextual(102))) ? this.raise(p.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
                    kind: "destructuring"
                  }) : (s === "const" || s === "using" || s === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(p.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
                    kind: s
                  })), r.push(this.finishNode(n, "VariableDeclarator")), !this.eat(12)) break;
                }
                return t;
              }
              parseVarId(t, e) {
                let s = this.parseBindingAtom();
                (e === "using" || e === "await using") && (s.type === "ArrayPattern" || s.type === "ObjectPattern") && this.raise(p.UsingDeclarationHasBindingPattern, s.loc.start), this.checkLVal(s, {
                  in: {
                    type: "VariableDeclarator"
                  },
                  binding: e === "var" ? 5 : 8201
                }), t.id = s;
              }
              parseAsyncFunctionExpression(t) {
                return this.parseFunction(t, 8);
              }
              parseFunction(t, e = 0) {
                let s = e & 2,
                  i = !!(e & 1),
                  r = i && !(e & 4),
                  n = !!(e & 8);
                this.initFunction(t, n), this.match(55) && (s && this.raise(p.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), t.generator = !0), i && (t.id = this.parseFunctionId(r));
                let o = this.state.maybeInArrowParameters;
                return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(Ne$2(n, t.generator)), i || (t.id = this.parseFunctionId()), this.parseFunctionParams(t, !1), this.withSmartMixTopicForbiddingContext(() => {
                  this.parseFunctionBodyAndFinish(t, i ? "FunctionDeclaration" : "FunctionExpression");
                }), this.prodParam.exit(), this.scope.exit(), i && !s && this.registerFunctionStatementId(t), this.state.maybeInArrowParameters = o, t;
              }
              parseFunctionId(t) {
                return t || w$1(this.state.type) ? this.parseIdentifier() : null;
              }
              parseFunctionParams(t, e) {
                this.expect(10), this.expressionScope.enter(Mi$1()), t.params = this.parseBindingList(11, 41, 2 | (e ? 4 : 0)), this.expressionScope.exit();
              }
              registerFunctionStatementId(t) {
                t.id && this.scope.declareName(t.id.name, !this.options.annexB || this.state.strict || t.generator || t.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, t.id.loc.start);
              }
              parseClass(t, e, s) {
                this.next();
                let i = this.state.strict;
                return this.state.strict = !0, this.parseClassId(t, e, s), this.parseClassSuper(t), t.body = this.parseClassBody(!!t.superClass, i), this.finishNode(t, e ? "ClassDeclaration" : "ClassExpression");
              }
              isClassProperty() {
                return this.match(29) || this.match(13) || this.match(8);
              }
              isClassMethod() {
                return this.match(10);
              }
              nameIsConstructor(t) {
                return t.type === "Identifier" && t.name === "constructor" || t.type === "StringLiteral" && t.value === "constructor";
              }
              isNonstaticConstructor(t) {
                return !t.computed && !t.static && this.nameIsConstructor(t.key);
              }
              parseClassBody(t, e) {
                this.classScope.enter();
                let s = {
                    hadConstructor: !1,
                    hadSuperClass: t
                  },
                  i = [],
                  r = this.startNode();
                if (r.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
                  for (; !this.match(8);) {
                    if (this.eat(13)) {
                      if (i.length > 0) throw this.raise(p.DecoratorSemicolon, this.state.lastTokEndLoc);
                      continue;
                    }
                    if (this.match(26)) {
                      i.push(this.parseDecorator());
                      continue;
                    }
                    let n = this.startNode();
                    i.length && (n.decorators = i, this.resetStartLocationFromNode(n, i[0]), i = []), this.parseClassMember(r, n, s), n.kind === "constructor" && n.decorators && n.decorators.length > 0 && this.raise(p.DecoratorConstructor, n);
                  }
                }), this.state.strict = e, this.next(), i.length) throw this.raise(p.TrailingDecorator, this.state.startLoc);
                return this.classScope.exit(), this.finishNode(r, "ClassBody");
              }
              parseClassMemberFromModifier(t, e) {
                let s = this.parseIdentifier(!0);
                if (this.isClassMethod()) {
                  let i = e;
                  return i.kind = "method", i.computed = !1, i.key = s, i.static = !1, this.pushClassMethod(t, i, !1, !1, !1, !1), !0;
                } else if (this.isClassProperty()) {
                  let i = e;
                  return i.computed = !1, i.key = s, i.static = !1, t.body.push(this.parseClassProperty(i)), !0;
                }
                return this.resetPreviousNodeTrailingComments(s), !1;
              }
              parseClassMember(t, e, s) {
                let i = this.isContextual(106);
                if (i) {
                  if (this.parseClassMemberFromModifier(t, e)) return;
                  if (this.eat(5)) {
                    this.parseClassStaticBlock(t, e);
                    return;
                  }
                }
                this.parseClassMemberWithIsStatic(t, e, s, i);
              }
              parseClassMemberWithIsStatic(t, e, s, i) {
                let r = e,
                  n = e,
                  o = e,
                  h = e,
                  c = e,
                  l$1 = r,
                  u = r;
                if (e.static = i, this.parsePropertyNamePrefixOperator(e), this.eat(55)) {
                  l$1.kind = "method";
                  let S$1 = this.match(138);
                  if (this.parseClassElementName(l$1), S$1) {
                    this.pushClassPrivateMethod(t, n, !0, !1);
                    return;
                  }
                  this.isNonstaticConstructor(r) && this.raise(p.ConstructorIsGenerator, r.key), this.pushClassMethod(t, r, !0, !1, !1, !1);
                  return;
                }
                let f$1 = !this.state.containsEsc && w$1(this.state.type),
                  d$1 = this.parseClassElementName(e),
                  y$1 = f$1 ? d$1.name : null,
                  E$1 = this.isPrivateName(d$1),
                  L$2 = this.state.startLoc;
                if (this.parsePostMemberNameModifiers(u), this.isClassMethod()) {
                  if (l$1.kind = "method", E$1) {
                    this.pushClassPrivateMethod(t, n, !1, !1);
                    return;
                  }
                  let S$1 = this.isNonstaticConstructor(r),
                    I$1 = !1;
                  S$1 && (r.kind = "constructor", s.hadConstructor && !this.hasPlugin("typescript") && this.raise(p.DuplicateConstructor, d$1), S$1 && this.hasPlugin("typescript") && e.override && this.raise(p.OverrideOnConstructor, d$1), s.hadConstructor = !0, I$1 = s.hadSuperClass), this.pushClassMethod(t, r, !1, !1, S$1, I$1);
                } else if (this.isClassProperty()) E$1 ? this.pushClassPrivateProperty(t, h) : this.pushClassProperty(t, o);else if (y$1 === "async" && !this.isLineTerminator()) {
                  this.resetPreviousNodeTrailingComments(d$1);
                  let S$1 = this.eat(55);
                  u.optional && this.unexpected(L$2), l$1.kind = "method";
                  let I$1 = this.match(138);
                  this.parseClassElementName(l$1), this.parsePostMemberNameModifiers(u), I$1 ? this.pushClassPrivateMethod(t, n, S$1, !0) : (this.isNonstaticConstructor(r) && this.raise(p.ConstructorIsAsync, r.key), this.pushClassMethod(t, r, S$1, !0, !1, !1));
                } else if ((y$1 === "get" || y$1 === "set") && !(this.match(55) && this.isLineTerminator())) {
                  this.resetPreviousNodeTrailingComments(d$1), l$1.kind = y$1;
                  let S$1 = this.match(138);
                  this.parseClassElementName(r), S$1 ? this.pushClassPrivateMethod(t, n, !1, !1) : (this.isNonstaticConstructor(r) && this.raise(p.ConstructorIsAccessor, r.key), this.pushClassMethod(t, r, !1, !1, !1, !1)), this.checkGetterSetterParams(r);
                } else if (y$1 === "accessor" && !this.isLineTerminator()) {
                  this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(d$1);
                  let S$1 = this.match(138);
                  this.parseClassElementName(o), this.pushClassAccessorProperty(t, c, S$1);
                } else this.isLineTerminator() ? E$1 ? this.pushClassPrivateProperty(t, h) : this.pushClassProperty(t, o) : this.unexpected();
              }
              parseClassElementName(t) {
                let {
                  type: e,
                  value: s
                } = this.state;
                if ((e === 132 || e === 133) && t.static && s === "prototype" && this.raise(p.StaticPrototype, this.state.startLoc), e === 138) {
                  s === "constructor" && this.raise(p.ConstructorClassPrivateField, this.state.startLoc);
                  let i = this.parsePrivateName();
                  return t.key = i, i;
                }
                return this.parsePropertyName(t), t.key;
              }
              parseClassStaticBlock(t, e) {
                var s;
                this.scope.enter(208);
                let i = this.state.labels;
                this.state.labels = [], this.prodParam.enter(0);
                let r = e.body = [];
                this.parseBlockOrModuleBlockBody(r, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = i, t.body.push(this.finishNode(e, "StaticBlock")), (s = e.decorators) != null && s.length && this.raise(p.DecoratorStaticBlock, e);
              }
              pushClassProperty(t, e) {
                !e.computed && this.nameIsConstructor(e.key) && this.raise(p.ConstructorClassField, e.key), t.body.push(this.parseClassProperty(e));
              }
              pushClassPrivateProperty(t, e) {
                let s = this.parseClassPrivateProperty(e);
                t.body.push(s), this.classScope.declarePrivateName(this.getPrivateNameSV(s.key), 0, s.key.loc.start);
              }
              pushClassAccessorProperty(t, e, s) {
                !s && !e.computed && this.nameIsConstructor(e.key) && this.raise(p.ConstructorClassField, e.key);
                let i = this.parseClassAccessorProperty(e);
                t.body.push(i), s && this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
              }
              pushClassMethod(t, e, s, i, r, n) {
                t.body.push(this.parseMethod(e, s, i, r, n, "ClassMethod", !0));
              }
              pushClassPrivateMethod(t, e, s, i) {
                let r = this.parseMethod(e, s, i, !1, !1, "ClassPrivateMethod", !0);
                t.body.push(r);
                let n = r.kind === "get" ? r.static ? 6 : 2 : r.kind === "set" ? r.static ? 5 : 1 : 0;
                this.declareClassPrivateMethodInScope(r, n);
              }
              declareClassPrivateMethodInScope(t, e) {
                this.classScope.declarePrivateName(this.getPrivateNameSV(t.key), e, t.key.loc.start);
              }
              parsePostMemberNameModifiers(t) {}
              parseClassPrivateProperty(t) {
                return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassPrivateProperty");
              }
              parseClassProperty(t) {
                return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassProperty");
              }
              parseClassAccessorProperty(t) {
                return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassAccessorProperty");
              }
              parseInitializer(t) {
                this.scope.enter(80), this.expressionScope.enter(rs$1()), this.prodParam.enter(0), t.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
              }
              parseClassId(t, e, s, i = 8331) {
                if (w$1(this.state.type)) t.id = this.parseIdentifier(), e && this.declareNameFromIdentifier(t.id, i);else if (s || !e) t.id = null;else throw this.raise(p.MissingClassName, this.state.startLoc);
              }
              parseClassSuper(t) {
                t.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
              }
              parseExport(t, e) {
                let s = this.parseMaybeImportPhase(t, !0),
                  i = this.maybeParseExportDefaultSpecifier(t, s),
                  r = !i || this.eat(12),
                  n = r && this.eatExportStar(t),
                  o = n && this.maybeParseExportNamespaceSpecifier(t),
                  h = r && (!o || this.eat(12)),
                  c = i || n;
                if (n && !o) {
                  if (i && this.unexpected(), e) throw this.raise(p.UnsupportedDecoratorExport, t);
                  return this.parseExportFrom(t, !0), this.finishNode(t, "ExportAllDeclaration");
                }
                let l$1 = this.maybeParseExportNamedSpecifiers(t);
                i && r && !n && !l$1 && this.unexpected(null, 5), o && h && this.unexpected(null, 98);
                let u;
                if (c || l$1) {
                  if (u = !1, e) throw this.raise(p.UnsupportedDecoratorExport, t);
                  this.parseExportFrom(t, c);
                } else u = this.maybeParseExportDeclaration(t);
                if (c || l$1 || u) {
                  var f$1;
                  let d$1 = t;
                  if (this.checkExport(d$1, !0, !1, !!d$1.source), ((f$1 = d$1.declaration) == null ? void 0 : f$1.type) === "ClassDeclaration") this.maybeTakeDecorators(e, d$1.declaration, d$1);else if (e) throw this.raise(p.UnsupportedDecoratorExport, t);
                  return this.finishNode(d$1, "ExportNamedDeclaration");
                }
                if (this.eat(65)) {
                  let d$1 = t,
                    y$1 = this.parseExportDefaultExpression();
                  if (d$1.declaration = y$1, y$1.type === "ClassDeclaration") this.maybeTakeDecorators(e, y$1, d$1);else if (e) throw this.raise(p.UnsupportedDecoratorExport, t);
                  return this.checkExport(d$1, !0, !0), this.finishNode(d$1, "ExportDefaultDeclaration");
                }
                this.unexpected(null, 5);
              }
              eatExportStar(t) {
                return this.eat(55);
              }
              maybeParseExportDefaultSpecifier(t, e) {
                if (e || this.isExportDefaultSpecifier()) {
                  this.expectPlugin("exportDefaultFrom", e == null ? void 0 : e.loc.start);
                  let s = e || this.parseIdentifier(!0),
                    i = this.startNodeAtNode(s);
                  return i.exported = s, t.specifiers = [this.finishNode(i, "ExportDefaultSpecifier")], !0;
                }
                return !1;
              }
              maybeParseExportNamespaceSpecifier(t) {
                if (this.isContextual(93)) {
                  var e;
                  (e = t).specifiers ?? (e.specifiers = []);
                  let i = this.startNodeAt(this.state.lastTokStartLoc);
                  return this.next(), i.exported = this.parseModuleExportName(), t.specifiers.push(this.finishNode(i, "ExportNamespaceSpecifier")), !0;
                }
                return !1;
              }
              maybeParseExportNamedSpecifiers(t) {
                if (this.match(5)) {
                  let e = t;
                  e.specifiers || (e.specifiers = []);
                  let s = e.exportKind === "type";
                  return e.specifiers.push(...this.parseExportSpecifiers(s)), e.source = null, e.declaration = null, this.hasPlugin("importAssertions") && (e.assertions = []), !0;
                }
                return !1;
              }
              maybeParseExportDeclaration(t) {
                return this.shouldParseExportDeclaration() ? (t.specifiers = [], t.source = null, this.hasPlugin("importAssertions") && (t.assertions = []), t.declaration = this.parseExportDeclaration(t), !0) : !1;
              }
              isAsyncFunction() {
                if (!this.isContextual(95)) return !1;
                let t = this.nextTokenInLineStart();
                return this.isUnparsedContextual(t, "function");
              }
              parseExportDefaultExpression() {
                let t = this.startNode();
                if (this.match(68)) return this.next(), this.parseFunction(t, 5);
                if (this.isAsyncFunction()) return this.next(), this.next(), this.parseFunction(t, 13);
                if (this.match(80)) return this.parseClass(t, !0, !0);
                if (this.match(26)) return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(p.DecoratorBeforeExport, this.state.startLoc), this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1), this.startNode()), !0, !0);
                if (this.match(75) || this.match(74) || this.isLet()) throw this.raise(p.UnsupportedDefaultExport, this.state.startLoc);
                let e = this.parseMaybeAssignAllowIn();
                return this.semicolon(), e;
              }
              parseExportDeclaration(t) {
                return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
              }
              isExportDefaultSpecifier() {
                let {
                  type: t
                } = this.state;
                if (w$1(t)) {
                  if (t === 95 && !this.state.containsEsc || t === 100) return !1;
                  if ((t === 130 || t === 129) && !this.state.containsEsc) {
                    let {
                      type: i
                    } = this.lookahead();
                    if (w$1(i) && i !== 98 || i === 5) return this.expectOnePlugin(["flow", "typescript"]), !1;
                  }
                } else if (!this.match(65)) return !1;
                let e = this.nextTokenStart(),
                  s = this.isUnparsedContextual(e, "from");
                if (this.input.charCodeAt(e) === 44 || w$1(this.state.type) && s) return !0;
                if (this.match(65) && s) {
                  let i = this.input.charCodeAt(this.nextTokenStartSince(e + 4));
                  return i === 34 || i === 39;
                }
                return !1;
              }
              parseExportFrom(t, e) {
                this.eatContextual(98) ? (t.source = this.parseImportSource(), this.checkExport(t), this.maybeParseImportAttributes(t), this.checkJSONModuleImport(t)) : e && this.unexpected(), this.semicolon();
              }
              shouldParseExportDeclaration() {
                let {
                  type: t
                } = this.state;
                return t === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(p.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.raise(p.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(p.UsingDeclarationExport, this.state.startLoc), !0) : t === 74 || t === 75 || t === 68 || t === 80 || this.isLet() || this.isAsyncFunction();
              }
              checkExport(t, e, s, i) {
                if (e) {
                  var r;
                  if (s) {
                    if (this.checkDuplicateExports(t, "default"), this.hasPlugin("exportDefaultFrom")) {
                      var n;
                      let o = t.declaration;
                      o.type === "Identifier" && o.name === "from" && o.end - o.start === 4 && !((n = o.extra) != null && n.parenthesized) && this.raise(p.ExportDefaultFromAsIdentifier, o);
                    }
                  } else if ((r = t.specifiers) != null && r.length) for (let o of t.specifiers) {
                    let {
                        exported: h
                      } = o,
                      c = h.type === "Identifier" ? h.name : h.value;
                    if (this.checkDuplicateExports(o, c), !i && o.local) {
                      let {
                        local: l$1
                      } = o;
                      l$1.type !== "Identifier" ? this.raise(p.ExportBindingIsString, o, {
                        localName: l$1.value,
                        exportName: c
                      }) : (this.checkReservedWord(l$1.name, l$1.loc.start, !0, !1), this.scope.checkLocalExport(l$1));
                    }
                  } else if (t.declaration) {
                    let o = t.declaration;
                    if (o.type === "FunctionDeclaration" || o.type === "ClassDeclaration") {
                      let {
                        id: h
                      } = o;
                      if (!h) throw new Error("Assertion failure");
                      this.checkDuplicateExports(t, h.name);
                    } else if (o.type === "VariableDeclaration") for (let h of o.declarations) this.checkDeclaration(h.id);
                  }
                }
              }
              checkDeclaration(t) {
                if (t.type === "Identifier") this.checkDuplicateExports(t, t.name);else if (t.type === "ObjectPattern") for (let e of t.properties) this.checkDeclaration(e);else if (t.type === "ArrayPattern") for (let e of t.elements) e && this.checkDeclaration(e);else t.type === "ObjectProperty" ? this.checkDeclaration(t.value) : t.type === "RestElement" ? this.checkDeclaration(t.argument) : t.type === "AssignmentPattern" && this.checkDeclaration(t.left);
              }
              checkDuplicateExports(t, e) {
                this.exportedIdentifiers.has(e) && (e === "default" ? this.raise(p.DuplicateDefaultExport, t) : this.raise(p.DuplicateExport, t, {
                  exportName: e
                })), this.exportedIdentifiers.add(e);
              }
              parseExportSpecifiers(t) {
                let e = [],
                  s = !0;
                for (this.expect(5); !this.eat(8);) {
                  if (s) s = !1;else if (this.expect(12), this.eat(8)) break;
                  let i = this.isContextual(130),
                    r = this.match(133),
                    n = this.startNode();
                  n.local = this.parseModuleExportName(), e.push(this.parseExportSpecifier(n, r, t, i));
                }
                return e;
              }
              parseExportSpecifier(t, e, s, i) {
                return this.eatContextual(93) ? t.exported = this.parseModuleExportName() : e ? t.exported = Ri$1(t.local) : t.exported || (t.exported = $$1(t.local)), this.finishNode(t, "ExportSpecifier");
              }
              parseModuleExportName() {
                if (this.match(133)) {
                  let t = this.parseStringLiteral(this.state.value),
                    e = nr$2.exec(t.value);
                  return e && this.raise(p.ModuleExportNameHasLoneSurrogate, t, {
                    surrogateCharCode: e[0].charCodeAt(0)
                  }), t;
                }
                return this.parseIdentifier(!0);
              }
              isJSONModuleImport(t) {
                return t.assertions != null ? t.assertions.some(({
                  key: e,
                  value: s
                }) => s.value === "json" && (e.type === "Identifier" ? e.name === "type" : e.value === "type")) : !1;
              }
              checkImportReflection(t) {
                let {
                    specifiers: e
                  } = t,
                  s = e.length === 1 ? e[0].type : null;
                if (t.phase === "source") s !== "ImportDefaultSpecifier" && this.raise(p.SourcePhaseImportRequiresDefault, e[0].loc.start);else if (t.phase === "defer") s !== "ImportNamespaceSpecifier" && this.raise(p.DeferImportRequiresNamespace, e[0].loc.start);else if (t.module) {
                  var i;
                  s !== "ImportDefaultSpecifier" && this.raise(p.ImportReflectionNotBinding, e[0].loc.start), ((i = t.assertions) == null ? void 0 : i.length) > 0 && this.raise(p.ImportReflectionHasAssertion, e[0].loc.start);
                }
              }
              checkJSONModuleImport(t) {
                if (this.isJSONModuleImport(t) && t.type !== "ExportAllDeclaration") {
                  let {
                    specifiers: e
                  } = t;
                  if (e != null) {
                    let s = e.find(i => {
                      let r;
                      if (i.type === "ExportSpecifier" ? r = i.local : i.type === "ImportSpecifier" && (r = i.imported), r !== void 0) return r.type === "Identifier" ? r.name !== "default" : r.value !== "default";
                    });
                    s !== void 0 && this.raise(p.ImportJSONBindingNotDefault, s.loc.start);
                  }
                }
              }
              isPotentialImportPhase(t) {
                return t ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
              }
              applyImportPhase(t, e, s, i) {
                e || (s === "module" ? (this.expectPlugin("importReflection", i), t.module = !0) : this.hasPlugin("importReflection") && (t.module = !1), s === "source" ? (this.expectPlugin("sourcePhaseImports", i), t.phase = "source") : s === "defer" ? (this.expectPlugin("deferredImportEvaluation", i), t.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (t.phase = null));
              }
              parseMaybeImportPhase(t, e) {
                if (!this.isPotentialImportPhase(e)) return this.applyImportPhase(t, e, null), null;
                let s = this.parseIdentifier(!0),
                  {
                    type: i
                  } = this.state;
                return (M$2(i) ? i !== 98 || this.lookaheadCharCode() === 102 : i !== 12) ? (this.resetPreviousIdentifierLeadingComments(s), this.applyImportPhase(t, e, s.name, s.loc.start), null) : (this.applyImportPhase(t, e, null), s);
              }
              isPrecedingIdImportPhase(t) {
                let {
                  type: e
                } = this.state;
                return w$1(e) ? e !== 98 || this.lookaheadCharCode() === 102 : e !== 12;
              }
              parseImport(t) {
                return this.match(133) ? this.parseImportSourceAndAttributes(t) : this.parseImportSpecifiersAndAfter(t, this.parseMaybeImportPhase(t, !1));
              }
              parseImportSpecifiersAndAfter(t, e) {
                t.specifiers = [];
                let i = !this.maybeParseDefaultImportSpecifier(t, e) || this.eat(12),
                  r = i && this.maybeParseStarImportSpecifier(t);
                return i && !r && this.parseNamedImportSpecifiers(t), this.expectContextual(98), this.parseImportSourceAndAttributes(t);
              }
              parseImportSourceAndAttributes(t) {
                return t.specifiers ??= [], t.source = this.parseImportSource(), this.maybeParseImportAttributes(t), this.checkImportReflection(t), this.checkJSONModuleImport(t), this.semicolon(), this.finishNode(t, "ImportDeclaration");
              }
              parseImportSource() {
                return this.match(133) || this.unexpected(), this.parseExprAtom();
              }
              parseImportSpecifierLocal(t, e, s) {
                e.local = this.parseIdentifier(), t.specifiers.push(this.finishImportSpecifier(e, s));
              }
              finishImportSpecifier(t, e, s = 8201) {
                return this.checkLVal(t.local, {
                  in: {
                    type: e
                  },
                  binding: s
                }), this.finishNode(t, e);
              }
              parseImportAttributes() {
                this.expect(5);
                let t = [],
                  e = /* @__PURE__ */new Set();
                do {
                  if (this.match(8)) break;
                  let s = this.startNode(),
                    i = this.state.value;
                  if (e.has(i) && this.raise(p.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
                    key: i
                  }), e.add(i), this.match(133) ? s.key = this.parseStringLiteral(i) : s.key = this.parseIdentifier(!0), this.expect(14), !this.match(133)) throw this.raise(p.ModuleAttributeInvalidValue, this.state.startLoc);
                  s.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(s, "ImportAttribute"));
                } while (this.eat(12));
                return this.expect(8), t;
              }
              parseModuleAttributes() {
                let t = [],
                  e = /* @__PURE__ */new Set();
                do {
                  let s = this.startNode();
                  if (s.key = this.parseIdentifier(!0), s.key.name !== "type" && this.raise(p.ModuleAttributeDifferentFromType, s.key), e.has(s.key.name) && this.raise(p.ModuleAttributesWithDuplicateKeys, s.key, {
                    key: s.key.name
                  }), e.add(s.key.name), this.expect(14), !this.match(133)) throw this.raise(p.ModuleAttributeInvalidValue, this.state.startLoc);
                  s.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(s, "ImportAttribute"));
                } while (this.eat(12));
                return t;
              }
              maybeParseImportAttributes(t) {
                let e,
                  s = !1;
                if (this.match(76)) {
                  if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) return;
                  this.next(), this.hasPlugin("moduleAttributes") ? e = this.parseModuleAttributes() : (this.expectImportAttributesPlugin(), e = this.parseImportAttributes()), s = !0;
                } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) this.hasPlugin("importAttributes") ? (this.getPluginOption("importAttributes", "deprecatedAssertSyntax") !== !0 && this.raise(p.ImportAttributesUseAssert, this.state.startLoc), this.addExtra(t, "deprecatedAssertSyntax", !0)) : this.expectOnePlugin(["importAttributes", "importAssertions"]), this.next(), e = this.parseImportAttributes();else if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) e = [];else if (this.hasPlugin("moduleAttributes")) e = [];else return;
                !s && this.hasPlugin("importAssertions") ? t.assertions = e : t.attributes = e;
              }
              maybeParseDefaultImportSpecifier(t, e) {
                if (e) {
                  let s = this.startNodeAtNode(e);
                  return s.local = e, t.specifiers.push(this.finishImportSpecifier(s, "ImportDefaultSpecifier")), !0;
                } else if (M$2(this.state.type)) return this.parseImportSpecifierLocal(t, this.startNode(), "ImportDefaultSpecifier"), !0;
                return !1;
              }
              maybeParseStarImportSpecifier(t) {
                if (this.match(55)) {
                  let e = this.startNode();
                  return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(t, e, "ImportNamespaceSpecifier"), !0;
                }
                return !1;
              }
              parseNamedImportSpecifiers(t) {
                let e = !0;
                for (this.expect(5); !this.eat(8);) {
                  if (e) e = !1;else {
                    if (this.eat(14)) throw this.raise(p.DestructureNamedImport, this.state.startLoc);
                    if (this.expect(12), this.eat(8)) break;
                  }
                  let s = this.startNode(),
                    i = this.match(133),
                    r = this.isContextual(130);
                  s.imported = this.parseModuleExportName();
                  let n = this.parseImportSpecifier(s, i, t.importKind === "type" || t.importKind === "typeof", r, void 0);
                  t.specifiers.push(n);
                }
              }
              parseImportSpecifier(t, e, s, i, r) {
                if (this.eatContextual(93)) t.local = this.parseIdentifier();else {
                  let {
                    imported: n
                  } = t;
                  if (e) throw this.raise(p.ImportBindingIsString, t, {
                    importName: n.value
                  });
                  this.checkReservedWord(n.name, t.loc.start, !0, !0), t.local || (t.local = $$1(n));
                }
                return this.finishImportSpecifier(t, "ImportSpecifier", r);
              }
              isThisParam(t) {
                return t.type === "Identifier" && t.name === "this";
              }
            },
            De$2 = class extends pt$2 {
              constructor(t, e) {
                t = rr$2(t), super(t, e), this.options = t, this.initializeScopes(), this.plugins = hr$2(this.options.plugins), this.filename = t.sourceFilename;
              }
              getScopeHandler() {
                return me$2;
              }
              parse() {
                this.enterInitialScopes();
                let t = this.startNode(),
                  e = this.startNode();
                return this.nextToken(), t.errors = null, this.parseTopLevel(t, e), t.errors = this.state.errors, t.comments.length = this.state.commentsLen, t;
              }
            };
          function hr$2(a) {
            let t = /* @__PURE__ */new Map();
            for (let e of a) {
              let [s, i] = Array.isArray(e) ? e : [e, {}];
              t.has(s) || t.set(s, i || {});
            }
            return t;
          }
          function lr$2(a, t) {
            var e;
            if (((e = t) == null ? void 0 : e.sourceType) === "unambiguous") {
              t = Object.assign({}, t);
              try {
                t.sourceType = "module";
                let s = pe$2(t, a),
                  i = s.parse();
                if (s.sawUnambiguousESM) return i;
                if (s.ambiguousScriptDifferentAst) try {
                  return t.sourceType = "script", pe$2(t, a).parse();
                } catch {} else i.program.sourceType = "script";
                return i;
              } catch (s) {
                try {
                  return t.sourceType = "script", pe$2(t, a).parse();
                } catch {}
                throw s;
              }
            } else return pe$2(t, a).parse();
          }
          function cr$2(a, t) {
            let e = pe$2(t, a);
            return e.options.strictMode && (e.state.strict = !0), e.getExpression();
          }
          function pr$2(a) {
            let t = {};
            for (let e of Object.keys(a)) t[e] = R$2(a[e]);
            return t;
          }
          var ur$2 = pr$2(ni$2);
          function pe$2(a, t) {
            let e = De$2;
            return a != null && a.plugins && (sr$2(a.plugins), e = fr$2(a.plugins)), new e(a, t);
          }
          var Kt$1 = {};
          function fr$2(a) {
            let t = ir$2.filter(i => N$2(a, i)),
              e = t.join("/"),
              s = Kt$1[e];
            if (!s) {
              s = De$2;
              for (let i of t) s = hs$1[i](s);
              Kt$1[e] = s;
            }
            return s;
          }
          xe$2.parse = lr$2;
          xe$2.parseExpression = cr$2;
          xe$2.tokTypes = ur$2;
        });
        kt$1 = {};
        Ws$1(kt$1, {
          parsers: () => Qr$1
        });
        _e$1 = vt$1(At$1(), 1);
        Me$1(/\s/u);
        ls$1 = Me$1(" 	");
        Me$1(",; 	");
        cs$1 = Me$1(/[^\n\r]/u);
        ps$1 = dr$1;
        us$1 = mr$1;
        fs$1 = yr$1;
        ds$1 = xr$1;
        ms$1 = Pr$1;
        Oe$1 = gr$1;
        Tr$1 = (a, t, e) => {
          if (!(a && t == null)) return Array.isArray(t) || typeof t == "string" ? t[e < 0 ? t.length + e : e] : t.at(e);
        }, St$1 = Tr$1;
        Pe$1 = br$1;
        ge$1 = Ar$1(["Block", "CommentBlock", "MultiLine"]);
        wt$1 = wr$1;
        xs$1 = Cr;
        Te$1 = null;
        Er$1 = 10;
        for (let a = 0; a <= Er$1; a++) be$1();
        Ts$1 = Ir$1({
          ArrayExpression: ["elements"],
          AssignmentExpression: ["left", "right"],
          BinaryExpression: ["left", "right"],
          InterpreterDirective: [],
          Directive: ["value"],
          DirectiveLiteral: [],
          BlockStatement: ["directives", "body"],
          BreakStatement: ["label"],
          CallExpression: ["callee", "arguments", "typeParameters", "typeArguments"],
          CatchClause: ["param", "body"],
          ConditionalExpression: ["test", "consequent", "alternate"],
          ContinueStatement: ["label"],
          DebuggerStatement: [],
          DoWhileStatement: ["test", "body"],
          EmptyStatement: [],
          ExpressionStatement: ["expression"],
          File: ["program"],
          ForInStatement: ["left", "right", "body"],
          ForStatement: ["init", "test", "update", "body"],
          FunctionDeclaration: ["id", "params", "body", "returnType", "typeParameters", "predicate"],
          FunctionExpression: ["id", "params", "body", "returnType", "typeParameters"],
          Identifier: ["typeAnnotation", "decorators"],
          IfStatement: ["test", "consequent", "alternate"],
          LabeledStatement: ["label", "body"],
          StringLiteral: [],
          NumericLiteral: [],
          NullLiteral: [],
          BooleanLiteral: [],
          RegExpLiteral: [],
          LogicalExpression: ["left", "right"],
          MemberExpression: ["object", "property"],
          NewExpression: ["callee", "arguments", "typeParameters", "typeArguments"],
          Program: ["directives", "body"],
          ObjectExpression: ["properties"],
          ObjectMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
          ObjectProperty: ["key", "value", "decorators"],
          RestElement: ["argument", "typeAnnotation", "decorators"],
          ReturnStatement: ["argument"],
          SequenceExpression: ["expressions"],
          ParenthesizedExpression: ["expression"],
          SwitchCase: ["test", "consequent"],
          SwitchStatement: ["discriminant", "cases"],
          ThisExpression: [],
          ThrowStatement: ["argument"],
          TryStatement: ["block", "handler", "finalizer"],
          UnaryExpression: ["argument"],
          UpdateExpression: ["argument"],
          VariableDeclaration: ["declarations"],
          VariableDeclarator: ["id", "init"],
          WhileStatement: ["test", "body"],
          WithStatement: ["object", "body"],
          AssignmentPattern: ["left", "right", "decorators", "typeAnnotation"],
          ArrayPattern: ["elements", "typeAnnotation", "decorators"],
          ArrowFunctionExpression: ["params", "body", "returnType", "typeParameters", "predicate"],
          ClassBody: ["body"],
          ClassExpression: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"],
          ClassDeclaration: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"],
          ExportAllDeclaration: ["source", "attributes", "exported"],
          ExportDefaultDeclaration: ["declaration"],
          ExportNamedDeclaration: ["declaration", "specifiers", "source", "attributes"],
          ExportSpecifier: ["local", "exported"],
          ForOfStatement: ["left", "right", "body"],
          ImportDeclaration: ["specifiers", "source", "attributes"],
          ImportDefaultSpecifier: ["local"],
          ImportNamespaceSpecifier: ["local"],
          ImportSpecifier: ["local", "imported"],
          ImportExpression: ["source", "options", "attributes"],
          MetaProperty: ["meta", "property"],
          ClassMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
          ObjectPattern: ["properties", "typeAnnotation", "decorators"],
          SpreadElement: ["argument"],
          Super: [],
          TaggedTemplateExpression: ["tag", "quasi", "typeParameters", "typeArguments"],
          TemplateElement: [],
          TemplateLiteral: ["quasis", "expressions"],
          YieldExpression: ["argument"],
          AwaitExpression: ["argument"],
          Import: [],
          BigIntLiteral: [],
          ExportNamespaceSpecifier: ["exported"],
          OptionalMemberExpression: ["object", "property"],
          OptionalCallExpression: ["callee", "arguments", "typeParameters", "typeArguments"],
          ClassProperty: ["key", "value", "typeAnnotation", "decorators", "variance"],
          ClassAccessorProperty: ["key", "value", "typeAnnotation", "decorators"],
          ClassPrivateProperty: ["key", "value", "decorators", "typeAnnotation", "variance"],
          ClassPrivateMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
          PrivateName: ["id"],
          StaticBlock: ["body"],
          AnyTypeAnnotation: [],
          ArrayTypeAnnotation: ["elementType"],
          BooleanTypeAnnotation: [],
          BooleanLiteralTypeAnnotation: [],
          NullLiteralTypeAnnotation: [],
          ClassImplements: ["id", "typeParameters"],
          DeclareClass: ["id", "typeParameters", "extends", "mixins", "implements", "body"],
          DeclareFunction: ["id", "predicate"],
          DeclareInterface: ["id", "typeParameters", "extends", "body"],
          DeclareModule: ["id", "body"],
          DeclareModuleExports: ["typeAnnotation"],
          DeclareTypeAlias: ["id", "typeParameters", "right"],
          DeclareOpaqueType: ["id", "typeParameters", "supertype"],
          DeclareVariable: ["id"],
          DeclareExportDeclaration: ["declaration", "specifiers", "source"],
          DeclareExportAllDeclaration: ["source"],
          DeclaredPredicate: ["value"],
          ExistsTypeAnnotation: [],
          FunctionTypeAnnotation: ["typeParameters", "params", "rest", "returnType", "this"],
          FunctionTypeParam: ["name", "typeAnnotation"],
          GenericTypeAnnotation: ["id", "typeParameters"],
          InferredPredicate: [],
          InterfaceExtends: ["id", "typeParameters"],
          InterfaceDeclaration: ["id", "typeParameters", "extends", "body"],
          InterfaceTypeAnnotation: ["extends", "body"],
          IntersectionTypeAnnotation: ["types"],
          MixedTypeAnnotation: [],
          EmptyTypeAnnotation: [],
          NullableTypeAnnotation: ["typeAnnotation"],
          NumberLiteralTypeAnnotation: [],
          NumberTypeAnnotation: [],
          ObjectTypeAnnotation: ["properties", "indexers", "callProperties", "internalSlots"],
          ObjectTypeInternalSlot: ["id", "value"],
          ObjectTypeCallProperty: ["value"],
          ObjectTypeIndexer: ["id", "key", "value", "variance"],
          ObjectTypeProperty: ["key", "value", "variance"],
          ObjectTypeSpreadProperty: ["argument"],
          OpaqueType: ["id", "typeParameters", "supertype", "impltype"],
          QualifiedTypeIdentifier: ["id", "qualification"],
          StringLiteralTypeAnnotation: [],
          StringTypeAnnotation: [],
          SymbolTypeAnnotation: [],
          ThisTypeAnnotation: [],
          TupleTypeAnnotation: ["types", "elementTypes"],
          TypeofTypeAnnotation: ["argument", "typeArguments"],
          TypeAlias: ["id", "typeParameters", "right"],
          TypeAnnotation: ["typeAnnotation"],
          TypeCastExpression: ["expression", "typeAnnotation"],
          TypeParameter: ["bound", "default", "variance"],
          TypeParameterDeclaration: ["params"],
          TypeParameterInstantiation: ["params"],
          UnionTypeAnnotation: ["types"],
          Variance: [],
          VoidTypeAnnotation: [],
          EnumDeclaration: ["id", "body"],
          EnumBooleanBody: ["members"],
          EnumNumberBody: ["members"],
          EnumStringBody: ["members"],
          EnumSymbolBody: ["members"],
          EnumBooleanMember: ["id", "init"],
          EnumNumberMember: ["id", "init"],
          EnumStringMember: ["id", "init"],
          EnumDefaultedMember: ["id"],
          IndexedAccessType: ["objectType", "indexType"],
          OptionalIndexedAccessType: ["objectType", "indexType"],
          JSXAttribute: ["name", "value"],
          JSXClosingElement: ["name"],
          JSXElement: ["openingElement", "children", "closingElement"],
          JSXEmptyExpression: [],
          JSXExpressionContainer: ["expression"],
          JSXSpreadChild: ["expression"],
          JSXIdentifier: [],
          JSXMemberExpression: ["object", "property"],
          JSXNamespacedName: ["namespace", "name"],
          JSXOpeningElement: ["name", "attributes", "typeArguments", "typeParameters"],
          JSXSpreadAttribute: ["argument"],
          JSXText: [],
          JSXFragment: ["openingFragment", "children", "closingFragment"],
          JSXOpeningFragment: [],
          JSXClosingFragment: [],
          Noop: [],
          Placeholder: [],
          V8IntrinsicIdentifier: [],
          ArgumentPlaceholder: [],
          BindExpression: ["object", "callee"],
          ImportAttribute: ["key", "value"],
          Decorator: ["expression"],
          DoExpression: ["body"],
          ExportDefaultSpecifier: ["exported"],
          RecordExpression: ["properties"],
          TupleExpression: ["elements"],
          DecimalLiteral: [],
          ModuleExpression: ["body"],
          TopicReference: [],
          PipelineTopicExpression: ["expression"],
          PipelineBareFunction: ["callee"],
          PipelinePrimaryTopicReference: [],
          TSParameterProperty: ["parameter", "decorators"],
          TSDeclareFunction: ["id", "typeParameters", "params", "returnType", "body"],
          TSDeclareMethod: ["decorators", "key", "typeParameters", "params", "returnType"],
          TSQualifiedName: ["left", "right"],
          TSCallSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSConstructSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSPropertySignature: ["key", "typeAnnotation"],
          TSMethodSignature: ["key", "typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSIndexSignature: ["parameters", "typeAnnotation"],
          TSAnyKeyword: [],
          TSBooleanKeyword: [],
          TSBigIntKeyword: [],
          TSIntrinsicKeyword: [],
          TSNeverKeyword: [],
          TSNullKeyword: [],
          TSNumberKeyword: [],
          TSObjectKeyword: [],
          TSStringKeyword: [],
          TSSymbolKeyword: [],
          TSUndefinedKeyword: [],
          TSUnknownKeyword: [],
          TSVoidKeyword: [],
          TSThisType: [],
          TSFunctionType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSConstructorType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSTypeReference: ["typeName", "typeParameters", "typeArguments"],
          TSTypePredicate: ["parameterName", "typeAnnotation"],
          TSTypeQuery: ["exprName", "typeParameters", "typeArguments"],
          TSTypeLiteral: ["members"],
          TSArrayType: ["elementType"],
          TSTupleType: ["elementTypes"],
          TSOptionalType: ["typeAnnotation"],
          TSRestType: ["typeAnnotation"],
          TSNamedTupleMember: ["label", "elementType"],
          TSUnionType: ["types"],
          TSIntersectionType: ["types"],
          TSConditionalType: ["checkType", "extendsType", "trueType", "falseType"],
          TSInferType: ["typeParameter"],
          TSParenthesizedType: ["typeAnnotation"],
          TSTypeOperator: ["typeAnnotation"],
          TSIndexedAccessType: ["objectType", "indexType"],
          TSMappedType: ["typeParameter", "typeAnnotation", "nameType"],
          TSLiteralType: ["literal"],
          TSExpressionWithTypeArguments: ["expression", "typeParameters"],
          TSInterfaceDeclaration: ["id", "typeParameters", "extends", "body"],
          TSInterfaceBody: ["body"],
          TSTypeAliasDeclaration: ["id", "typeParameters", "typeAnnotation"],
          TSInstantiationExpression: ["expression", "typeParameters", "typeArguments"],
          TSAsExpression: ["expression", "typeAnnotation"],
          TSSatisfiesExpression: ["expression", "typeAnnotation"],
          TSTypeAssertion: ["typeAnnotation", "expression"],
          TSEnumDeclaration: ["id", "members"],
          TSEnumMember: ["id", "initializer"],
          TSModuleDeclaration: ["id", "body"],
          TSModuleBlock: ["body"],
          TSImportType: ["argument", "qualifier", "typeParameters", "typeArguments"],
          TSImportEqualsDeclaration: ["id", "moduleReference"],
          TSExternalModuleReference: ["expression"],
          TSNonNullExpression: ["expression"],
          TSExportAssignment: ["expression"],
          TSNamespaceExportDeclaration: ["id"],
          TSTypeAnnotation: ["typeAnnotation"],
          TSTypeParameterInstantiation: ["params"],
          TSTypeParameterDeclaration: ["params"],
          TSTypeParameter: ["constraint", "default", "name"],
          ChainExpression: ["expression"],
          ExperimentalRestProperty: ["argument"],
          ExperimentalSpreadProperty: ["argument"],
          Literal: [],
          MethodDefinition: ["decorators", "key", "value"],
          PrivateIdentifier: [],
          Property: ["key", "value"],
          PropertyDefinition: ["decorators", "key", "typeAnnotation", "value", "variance"],
          AccessorProperty: ["decorators", "key", "typeAnnotation", "value"],
          TSAbstractAccessorProperty: ["decorators", "key", "typeAnnotation"],
          TSAbstractKeyword: [],
          TSAbstractMethodDefinition: ["key", "value"],
          TSAbstractPropertyDefinition: ["decorators", "key", "typeAnnotation"],
          TSAsyncKeyword: [],
          TSClassImplements: ["expression", "typeArguments", "typeParameters"],
          TSDeclareKeyword: [],
          TSEmptyBodyFunctionExpression: ["id", "typeParameters", "params", "returnType"],
          TSEnumBody: ["members"],
          TSExportKeyword: [],
          TSInterfaceHeritage: ["expression", "typeArguments", "typeParameters"],
          TSPrivateKeyword: [],
          TSProtectedKeyword: [],
          TSPublicKeyword: [],
          TSReadonlyKeyword: [],
          TSStaticKeyword: [],
          TSTemplateLiteralType: ["quasis", "types"],
          AsConstExpression: ["expression"],
          AsExpression: ["expression", "typeAnnotation"],
          BigIntLiteralTypeAnnotation: [],
          BigIntTypeAnnotation: [],
          ComponentDeclaration: ["id", "params", "body", "typeParameters", "rendersType"],
          ComponentParameter: ["name", "local"],
          ComponentTypeAnnotation: ["params", "rest", "typeParameters", "rendersType"],
          ComponentTypeParameter: ["name", "typeAnnotation"],
          ConditionalTypeAnnotation: ["checkType", "extendsType", "trueType", "falseType"],
          DeclareComponent: ["id", "params", "rest", "typeParameters", "rendersType"],
          DeclareEnum: ["id", "body"],
          DeclareHook: ["id"],
          DeclareNamespace: ["id", "body"],
          EnumBigIntBody: ["members"],
          EnumBigIntMember: ["id", "init"],
          HookDeclaration: ["id", "params", "body", "typeParameters", "returnType"],
          HookTypeAnnotation: ["params", "returnType", "rest", "typeParameters"],
          InferTypeAnnotation: ["typeParameter"],
          KeyofTypeAnnotation: ["argument"],
          ObjectTypeMappedTypeProperty: ["keyTparam", "propType", "sourceType", "variance"],
          QualifiedTypeofIdentifier: ["qualification", "id"],
          TupleTypeLabeledElement: ["label", "elementType", "variance"],
          TupleTypeSpreadElement: ["label", "typeAnnotation"],
          TypeOperator: ["typeAnnotation"],
          TypePredicate: ["parameterName", "typeAnnotation", "asserts"],
          NGRoot: ["node"],
          NGPipeExpression: ["left", "right", "arguments"],
          NGChainedExpression: ["expressions"],
          NGEmptyExpression: [],
          NGMicrosyntax: ["body"],
          NGMicrosyntaxKey: [],
          NGMicrosyntaxExpression: ["expression", "alias"],
          NGMicrosyntaxKeyedExpression: ["key", "expression"],
          NGMicrosyntaxLet: ["key", "value"],
          NGMicrosyntaxAs: ["key", "alias"],
          JsExpressionRoot: ["node"],
          JsonRoot: ["node"],
          TSJSDocAllType: [],
          TSJSDocUnknownType: [],
          TSJSDocNullableType: ["typeAnnotation"],
          TSJSDocNonNullableType: ["typeAnnotation"],
          NeverTypeAnnotation: [],
          UndefinedTypeAnnotation: [],
          UnknownTypeAnnotation: [],
          SatisfiesExpression: ["expression", "typeAnnotation"]
        });
        Fe = Et$1;
        As$1 = kr$1;
        Be$1 = vr$1;
        Re$1 = Lr$1;
        Dr$1 = (a, t, e, s) => {
          if (!(a && t == null)) return t.replaceAll ? t.replaceAll(e, s) : e.global ? t.replace(e, s) : t.split(e).join(s);
        }, ie$1 = Dr$1;
        Mr$1 = /\*\/$/, Or$1 = /^\/\*\*?/, Fr = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/, Br$1 = /(^|\s+)\/\/([^\n\r]*)/g, Ss$1 = /^(\r?\n)+/, Rr$1 = /(?:^|\r?\n) *(@[^\n\r]*?) *\r?\n *(?![^\n\r@]*\/\/[^]*)([^\s@][^\n\r@]+?) *\r?\n/g, ws$1 = /(?:^|\r?\n) *@(\S+) *([^\n\r]*)/g, Ur$1 = /(\r?\n|^) *\* ?/g, _r$1 = [];
        G = $r$1;
        Ns$1 = Vr$1;
        Ue$1 = qr$1;
        re$1 = a => G(Jr$1(a)), zr$1 = {
          sourceType: "module",
          allowImportExportEverywhere: !0,
          allowReturnOutsideFunction: !0,
          allowNewTargetOutsideFunction: !0,
          allowSuperOutsideMethod: !0,
          allowUndeclaredExports: !0,
          errorRecovery: !0,
          createParenthesizedExpressions: !0,
          createImportExpressions: !0,
          plugins: ["doExpressions", "exportDefaultFrom", "functionBind", "functionSent", "throwExpressions", "partialApplication", "decorators", "decimal", "moduleBlocks", "asyncDoExpressions", "destructuringPrivate", "decoratorAutoAccessors", "importReflection", "explicitResourceManagement", ["importAttributes", {
            deprecatedAssertSyntax: !0
          }], "sourcePhaseImports", "deferredImportEvaluation", ["optionalChainingAssign", {
            version: "2023-07"
          }], "recordAndTuple"],
          tokens: !0,
          ranges: !0
        }, ks$1 = "v8intrinsic", vs = [["pipelineOperator", {
          proposal: "hack",
          topicToken: "%"
        }], ["pipelineOperator", {
          proposal: "minimal"
        }], ["pipelineOperator", {
          proposal: "fsharp"
        }]], V$1 = (a, t = zr$1) => ({
          ...t,
          plugins: [...t.plugins, ...a]
        }), Kr$1 = /@(?:no)?flow\b/u;
        Xr$1 = new Set(["StrictNumericEscape", "StrictWith", "StrictOctalLiteral", "StrictDelete", "StrictEvalArguments", "StrictEvalArgumentsBinding", "StrictFunction", "ForInOfLoopInitializer", "EmptyTypeArguments", "EmptyTypeParameters", "ConstructorHasTypeParameters", "UnsupportedParameterPropertyKind", "DecoratorExportClass", "ParamDupe", "InvalidDecimal", "RestTrailingComma", "UnsupportedParameterDecorator", "UnterminatedJsxContent", "UnexpectedReservedWord", "ModuleAttributesWithDuplicateKeys", "LineTerminatorBeforeArrow", "InvalidEscapeSequenceTemplate", "NonAbstractClassHasAbstractMethod", "OptionalTypeBeforeRequired", "PatternIsOptional", "OptionalBindingPattern", "DeclareClassFieldHasInitializer", "TypeImportCannotSpecifyDefaultAndNamed", "ConstructorClassField", "VarRedeclaration", "InvalidPrivateFieldResolution", "DuplicateExport"]), Fs$1 = [V$1(["jsx"])], Ls$1 = re$1({
          optionsCombinations: Fs$1
        }), Ds$1 = re$1({
          optionsCombinations: [V$1(["jsx", "typescript"]), V$1(["typescript"])]
        }), Ms = re$1({
          isExpression: !0,
          optionsCombinations: [V$1(["jsx"])]
        }), Os$1 = re$1({
          isExpression: !0,
          optionsCombinations: [V$1(["typescript"])]
        }), Bs$1 = re$1({
          optionsCombinations: [V$1(["jsx", ["flow", {
            all: !0,
            enums: !0
          }], "flowComments"])]
        }), Gr$1 = re$1({
          optionsCombinations: Fs$1.map(a => V$1(["estree"], a))
        }), Rs = {
          babel: Ls$1,
          "babel-flow": Bs$1,
          "babel-ts": Ds$1,
          __js_expression: Ms,
          __ts_expression: Os$1,
          __vue_expression: Ms,
          __vue_ts_expression: Os$1,
          __vue_event_binding: Ls$1,
          __vue_ts_event_binding: Ds$1,
          __babel_estree: Gr$1
        };
        Us$1 = vt$1(At$1(), 1);
        Nt$1 = _s$1(), js = {
          json: G({
            parse: Nt$1,
            hasPragma() {
              return !0;
            }
          }),
          json5: G(Nt$1),
          jsonc: G(Nt$1),
          "json-stringify": G({
            parse: _s$1({
              allowComments: !1
            }),
            astFormat: "estree-json"
          })
        };
        Qr$1 = {
          ...Rs,
          ...js
        };
        _export("i", Ln$1 = kt$1); //#endregion
        //#region ../../../node_modules/.pnpm/prettier@3.3.3/node_modules/prettier/plugins/estree.mjs
        _export("r", estree_exports = /* @__PURE__ */__export({
          default: () => $d,
          languages: () => nm,
          options: () => va,
          printers: () => rm
        }));
        Wa = Object.defineProperty;
        Js = e => {
          throw TypeError(e);
        };
        Ar = (e, t) => {
          for (var r in t) Wa(e, r, {
            get: t[r],
            enumerable: !0
          });
        };
        qs = (e, t, r) => t.has(e) || Js("Cannot " + r);
        pt = (e, t, r) => (qs(e, t, "read from private field"), r ? r.call(e) : t.get(e)), Ws = (e, t, r) => t.has(e) ? Js("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, r), Gs = (e, t, r, n) => (qs(e, t, "write to private field"), n ? n.call(e, r) : t.set(e, r), r);
        _s = {};
        Ar(_s, {
          languages: () => nm,
          options: () => va,
          printers: () => rm
        });
        Us = [{
          linguistLanguageId: 183,
          name: "JavaScript",
          type: "programming",
          tmScope: "source.js",
          aceMode: "javascript",
          codemirrorMode: "javascript",
          codemirrorMimeType: "text/javascript",
          color: "#f1e05a",
          aliases: ["js", "node"],
          extensions: [".js", "._js", ".bones", ".cjs", ".es", ".es6", ".frag", ".gs", ".jake", ".javascript", ".jsb", ".jscad", ".jsfl", ".jslib", ".jsm", ".jspre", ".jss", ".mjs", ".njs", ".pac", ".sjs", ".ssjs", ".xsjs", ".xsjslib", ".wxs"],
          filenames: ["Jakefile"],
          interpreters: ["chakra", "d8", "gjs", "js", "node", "nodejs", "qjs", "rhino", "v8", "v8-shell", "zx"],
          parsers: ["babel", "acorn", "espree", "meriyah", "babel-flow", "babel-ts", "flow", "typescript"],
          vscodeLanguageIds: ["javascript", "mongo"]
        }, {
          linguistLanguageId: 183,
          name: "Flow",
          type: "programming",
          tmScope: "source.js",
          aceMode: "javascript",
          codemirrorMode: "javascript",
          codemirrorMimeType: "text/javascript",
          color: "#f1e05a",
          aliases: [],
          extensions: [".js.flow"],
          filenames: [],
          interpreters: ["chakra", "d8", "gjs", "js", "node", "nodejs", "qjs", "rhino", "v8", "v8-shell"],
          parsers: ["flow", "babel-flow"],
          vscodeLanguageIds: ["javascript"]
        }, {
          linguistLanguageId: 183,
          name: "JSX",
          type: "programming",
          tmScope: "source.js.jsx",
          aceMode: "javascript",
          codemirrorMode: "jsx",
          codemirrorMimeType: "text/jsx",
          color: void 0,
          aliases: void 0,
          extensions: [".jsx"],
          filenames: void 0,
          interpreters: void 0,
          parsers: ["babel", "babel-flow", "babel-ts", "flow", "typescript", "espree", "meriyah"],
          vscodeLanguageIds: ["javascriptreact"],
          group: "JavaScript"
        }, {
          linguistLanguageId: 378,
          name: "TypeScript",
          type: "programming",
          color: "#3178c6",
          aliases: ["ts"],
          interpreters: ["deno", "ts-node"],
          extensions: [".ts", ".cts", ".mts"],
          tmScope: "source.ts",
          aceMode: "typescript",
          codemirrorMode: "javascript",
          codemirrorMimeType: "application/typescript",
          parsers: ["typescript", "babel-ts"],
          vscodeLanguageIds: ["typescript"]
        }, {
          linguistLanguageId: 94901924,
          name: "TSX",
          type: "programming",
          color: "#3178c6",
          group: "TypeScript",
          extensions: [".tsx"],
          tmScope: "source.tsx",
          aceMode: "javascript",
          codemirrorMode: "jsx",
          codemirrorMimeType: "text/jsx",
          parsers: ["typescript", "babel-ts"],
          vscodeLanguageIds: ["typescriptreact"]
        }];
        ws = {};
        Ar(ws, {
          canAttachComment: () => fp,
          embed: () => Qu,
          experimentalFeatures: () => Kl,
          getCommentChildNodes: () => Ep,
          getVisitorKeys: () => gr,
          handleComments: () => Kn,
          insertPragma: () => pi,
          isBlockComment: () => re,
          isGap: () => Fp,
          massageAstNode: () => Cu,
          print: () => Ia,
          printComment: () => Pu,
          willPrintOwnComments: () => zn
        });
        Ga = (e, t, r, n) => {
          if (!(e && t == null)) return t.replaceAll ? t.replaceAll(r, n) : r.global ? t.replace(r, n) : t.split(r).join(n);
        }, N = Ga;
        Ua = (e, t, r) => {
          if (!(e && t == null)) return Array.isArray(t) || typeof t == "string" ? t[r < 0 ? t.length + r : r] : t.at(r);
        }, O = Ua;
        Ns = Na;
        Ys = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
        $s = e => !(Hs(e) || Vs(e));
        Ha = /[^\x20-\x7F]/u;
        et = Va;
        Tr(/\s/u);
        Ge = Tr(" 	"), Ks = Tr(",; 	"), zs = Tr(/[^\n\r]/u);
        Ue = $a;
        te = Ka;
        Lt = za;
        wt = Qa;
        Ot = Za;
        w = eo;
        dr = "'", Qs = "\"";
        xr = to;
        Zs = ro;
        tt = no;
        Qt = null;
        uo = 10;
        for (let e = 0; e <= uo; e++) Zt();
        hr = io;
        gr = hr({
          ArrayExpression: ["elements"],
          AssignmentExpression: ["left", "right"],
          BinaryExpression: ["left", "right"],
          InterpreterDirective: [],
          Directive: ["value"],
          DirectiveLiteral: [],
          BlockStatement: ["directives", "body"],
          BreakStatement: ["label"],
          CallExpression: ["callee", "arguments", "typeParameters", "typeArguments"],
          CatchClause: ["param", "body"],
          ConditionalExpression: ["test", "consequent", "alternate"],
          ContinueStatement: ["label"],
          DebuggerStatement: [],
          DoWhileStatement: ["test", "body"],
          EmptyStatement: [],
          ExpressionStatement: ["expression"],
          File: ["program"],
          ForInStatement: ["left", "right", "body"],
          ForStatement: ["init", "test", "update", "body"],
          FunctionDeclaration: ["id", "params", "body", "returnType", "typeParameters", "predicate"],
          FunctionExpression: ["id", "params", "body", "returnType", "typeParameters"],
          Identifier: ["typeAnnotation", "decorators"],
          IfStatement: ["test", "consequent", "alternate"],
          LabeledStatement: ["label", "body"],
          StringLiteral: [],
          NumericLiteral: [],
          NullLiteral: [],
          BooleanLiteral: [],
          RegExpLiteral: [],
          LogicalExpression: ["left", "right"],
          MemberExpression: ["object", "property"],
          NewExpression: ["callee", "arguments", "typeParameters", "typeArguments"],
          Program: ["directives", "body"],
          ObjectExpression: ["properties"],
          ObjectMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
          ObjectProperty: ["key", "value", "decorators"],
          RestElement: ["argument", "typeAnnotation", "decorators"],
          ReturnStatement: ["argument"],
          SequenceExpression: ["expressions"],
          ParenthesizedExpression: ["expression"],
          SwitchCase: ["test", "consequent"],
          SwitchStatement: ["discriminant", "cases"],
          ThisExpression: [],
          ThrowStatement: ["argument"],
          TryStatement: ["block", "handler", "finalizer"],
          UnaryExpression: ["argument"],
          UpdateExpression: ["argument"],
          VariableDeclaration: ["declarations"],
          VariableDeclarator: ["id", "init"],
          WhileStatement: ["test", "body"],
          WithStatement: ["object", "body"],
          AssignmentPattern: ["left", "right", "decorators", "typeAnnotation"],
          ArrayPattern: ["elements", "typeAnnotation", "decorators"],
          ArrowFunctionExpression: ["params", "body", "returnType", "typeParameters", "predicate"],
          ClassBody: ["body"],
          ClassExpression: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"],
          ClassDeclaration: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"],
          ExportAllDeclaration: ["source", "attributes", "exported"],
          ExportDefaultDeclaration: ["declaration"],
          ExportNamedDeclaration: ["declaration", "specifiers", "source", "attributes"],
          ExportSpecifier: ["local", "exported"],
          ForOfStatement: ["left", "right", "body"],
          ImportDeclaration: ["specifiers", "source", "attributes"],
          ImportDefaultSpecifier: ["local"],
          ImportNamespaceSpecifier: ["local"],
          ImportSpecifier: ["local", "imported"],
          ImportExpression: ["source", "options", "attributes"],
          MetaProperty: ["meta", "property"],
          ClassMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
          ObjectPattern: ["properties", "typeAnnotation", "decorators"],
          SpreadElement: ["argument"],
          Super: [],
          TaggedTemplateExpression: ["tag", "quasi", "typeParameters", "typeArguments"],
          TemplateElement: [],
          TemplateLiteral: ["quasis", "expressions"],
          YieldExpression: ["argument"],
          AwaitExpression: ["argument"],
          Import: [],
          BigIntLiteral: [],
          ExportNamespaceSpecifier: ["exported"],
          OptionalMemberExpression: ["object", "property"],
          OptionalCallExpression: ["callee", "arguments", "typeParameters", "typeArguments"],
          ClassProperty: ["key", "value", "typeAnnotation", "decorators", "variance"],
          ClassAccessorProperty: ["key", "value", "typeAnnotation", "decorators"],
          ClassPrivateProperty: ["key", "value", "decorators", "typeAnnotation", "variance"],
          ClassPrivateMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
          PrivateName: ["id"],
          StaticBlock: ["body"],
          AnyTypeAnnotation: [],
          ArrayTypeAnnotation: ["elementType"],
          BooleanTypeAnnotation: [],
          BooleanLiteralTypeAnnotation: [],
          NullLiteralTypeAnnotation: [],
          ClassImplements: ["id", "typeParameters"],
          DeclareClass: ["id", "typeParameters", "extends", "mixins", "implements", "body"],
          DeclareFunction: ["id", "predicate"],
          DeclareInterface: ["id", "typeParameters", "extends", "body"],
          DeclareModule: ["id", "body"],
          DeclareModuleExports: ["typeAnnotation"],
          DeclareTypeAlias: ["id", "typeParameters", "right"],
          DeclareOpaqueType: ["id", "typeParameters", "supertype"],
          DeclareVariable: ["id"],
          DeclareExportDeclaration: ["declaration", "specifiers", "source"],
          DeclareExportAllDeclaration: ["source"],
          DeclaredPredicate: ["value"],
          ExistsTypeAnnotation: [],
          FunctionTypeAnnotation: ["typeParameters", "params", "rest", "returnType", "this"],
          FunctionTypeParam: ["name", "typeAnnotation"],
          GenericTypeAnnotation: ["id", "typeParameters"],
          InferredPredicate: [],
          InterfaceExtends: ["id", "typeParameters"],
          InterfaceDeclaration: ["id", "typeParameters", "extends", "body"],
          InterfaceTypeAnnotation: ["extends", "body"],
          IntersectionTypeAnnotation: ["types"],
          MixedTypeAnnotation: [],
          EmptyTypeAnnotation: [],
          NullableTypeAnnotation: ["typeAnnotation"],
          NumberLiteralTypeAnnotation: [],
          NumberTypeAnnotation: [],
          ObjectTypeAnnotation: ["properties", "indexers", "callProperties", "internalSlots"],
          ObjectTypeInternalSlot: ["id", "value"],
          ObjectTypeCallProperty: ["value"],
          ObjectTypeIndexer: ["id", "key", "value", "variance"],
          ObjectTypeProperty: ["key", "value", "variance"],
          ObjectTypeSpreadProperty: ["argument"],
          OpaqueType: ["id", "typeParameters", "supertype", "impltype"],
          QualifiedTypeIdentifier: ["id", "qualification"],
          StringLiteralTypeAnnotation: [],
          StringTypeAnnotation: [],
          SymbolTypeAnnotation: [],
          ThisTypeAnnotation: [],
          TupleTypeAnnotation: ["types", "elementTypes"],
          TypeofTypeAnnotation: ["argument", "typeArguments"],
          TypeAlias: ["id", "typeParameters", "right"],
          TypeAnnotation: ["typeAnnotation"],
          TypeCastExpression: ["expression", "typeAnnotation"],
          TypeParameter: ["bound", "default", "variance"],
          TypeParameterDeclaration: ["params"],
          TypeParameterInstantiation: ["params"],
          UnionTypeAnnotation: ["types"],
          Variance: [],
          VoidTypeAnnotation: [],
          EnumDeclaration: ["id", "body"],
          EnumBooleanBody: ["members"],
          EnumNumberBody: ["members"],
          EnumStringBody: ["members"],
          EnumSymbolBody: ["members"],
          EnumBooleanMember: ["id", "init"],
          EnumNumberMember: ["id", "init"],
          EnumStringMember: ["id", "init"],
          EnumDefaultedMember: ["id"],
          IndexedAccessType: ["objectType", "indexType"],
          OptionalIndexedAccessType: ["objectType", "indexType"],
          JSXAttribute: ["name", "value"],
          JSXClosingElement: ["name"],
          JSXElement: ["openingElement", "children", "closingElement"],
          JSXEmptyExpression: [],
          JSXExpressionContainer: ["expression"],
          JSXSpreadChild: ["expression"],
          JSXIdentifier: [],
          JSXMemberExpression: ["object", "property"],
          JSXNamespacedName: ["namespace", "name"],
          JSXOpeningElement: ["name", "attributes", "typeArguments", "typeParameters"],
          JSXSpreadAttribute: ["argument"],
          JSXText: [],
          JSXFragment: ["openingFragment", "children", "closingFragment"],
          JSXOpeningFragment: [],
          JSXClosingFragment: [],
          Noop: [],
          Placeholder: [],
          V8IntrinsicIdentifier: [],
          ArgumentPlaceholder: [],
          BindExpression: ["object", "callee"],
          ImportAttribute: ["key", "value"],
          Decorator: ["expression"],
          DoExpression: ["body"],
          ExportDefaultSpecifier: ["exported"],
          RecordExpression: ["properties"],
          TupleExpression: ["elements"],
          DecimalLiteral: [],
          ModuleExpression: ["body"],
          TopicReference: [],
          PipelineTopicExpression: ["expression"],
          PipelineBareFunction: ["callee"],
          PipelinePrimaryTopicReference: [],
          TSParameterProperty: ["parameter", "decorators"],
          TSDeclareFunction: ["id", "typeParameters", "params", "returnType", "body"],
          TSDeclareMethod: ["decorators", "key", "typeParameters", "params", "returnType"],
          TSQualifiedName: ["left", "right"],
          TSCallSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSConstructSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSPropertySignature: ["key", "typeAnnotation"],
          TSMethodSignature: ["key", "typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSIndexSignature: ["parameters", "typeAnnotation"],
          TSAnyKeyword: [],
          TSBooleanKeyword: [],
          TSBigIntKeyword: [],
          TSIntrinsicKeyword: [],
          TSNeverKeyword: [],
          TSNullKeyword: [],
          TSNumberKeyword: [],
          TSObjectKeyword: [],
          TSStringKeyword: [],
          TSSymbolKeyword: [],
          TSUndefinedKeyword: [],
          TSUnknownKeyword: [],
          TSVoidKeyword: [],
          TSThisType: [],
          TSFunctionType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSConstructorType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"],
          TSTypeReference: ["typeName", "typeParameters", "typeArguments"],
          TSTypePredicate: ["parameterName", "typeAnnotation"],
          TSTypeQuery: ["exprName", "typeParameters", "typeArguments"],
          TSTypeLiteral: ["members"],
          TSArrayType: ["elementType"],
          TSTupleType: ["elementTypes"],
          TSOptionalType: ["typeAnnotation"],
          TSRestType: ["typeAnnotation"],
          TSNamedTupleMember: ["label", "elementType"],
          TSUnionType: ["types"],
          TSIntersectionType: ["types"],
          TSConditionalType: ["checkType", "extendsType", "trueType", "falseType"],
          TSInferType: ["typeParameter"],
          TSParenthesizedType: ["typeAnnotation"],
          TSTypeOperator: ["typeAnnotation"],
          TSIndexedAccessType: ["objectType", "indexType"],
          TSMappedType: ["typeParameter", "typeAnnotation", "nameType"],
          TSLiteralType: ["literal"],
          TSExpressionWithTypeArguments: ["expression", "typeParameters"],
          TSInterfaceDeclaration: ["id", "typeParameters", "extends", "body"],
          TSInterfaceBody: ["body"],
          TSTypeAliasDeclaration: ["id", "typeParameters", "typeAnnotation"],
          TSInstantiationExpression: ["expression", "typeParameters", "typeArguments"],
          TSAsExpression: ["expression", "typeAnnotation"],
          TSSatisfiesExpression: ["expression", "typeAnnotation"],
          TSTypeAssertion: ["typeAnnotation", "expression"],
          TSEnumDeclaration: ["id", "members"],
          TSEnumMember: ["id", "initializer"],
          TSModuleDeclaration: ["id", "body"],
          TSModuleBlock: ["body"],
          TSImportType: ["argument", "qualifier", "typeParameters", "typeArguments"],
          TSImportEqualsDeclaration: ["id", "moduleReference"],
          TSExternalModuleReference: ["expression"],
          TSNonNullExpression: ["expression"],
          TSExportAssignment: ["expression"],
          TSNamespaceExportDeclaration: ["id"],
          TSTypeAnnotation: ["typeAnnotation"],
          TSTypeParameterInstantiation: ["params"],
          TSTypeParameterDeclaration: ["params"],
          TSTypeParameter: ["constraint", "default", "name"],
          ChainExpression: ["expression"],
          ExperimentalRestProperty: ["argument"],
          ExperimentalSpreadProperty: ["argument"],
          Literal: [],
          MethodDefinition: ["decorators", "key", "value"],
          PrivateIdentifier: [],
          Property: ["key", "value"],
          PropertyDefinition: ["decorators", "key", "typeAnnotation", "value", "variance"],
          AccessorProperty: ["decorators", "key", "typeAnnotation", "value"],
          TSAbstractAccessorProperty: ["decorators", "key", "typeAnnotation"],
          TSAbstractKeyword: [],
          TSAbstractMethodDefinition: ["key", "value"],
          TSAbstractPropertyDefinition: ["decorators", "key", "typeAnnotation"],
          TSAsyncKeyword: [],
          TSClassImplements: ["expression", "typeArguments", "typeParameters"],
          TSDeclareKeyword: [],
          TSEmptyBodyFunctionExpression: ["id", "typeParameters", "params", "returnType"],
          TSEnumBody: ["members"],
          TSExportKeyword: [],
          TSInterfaceHeritage: ["expression", "typeArguments", "typeParameters"],
          TSPrivateKeyword: [],
          TSProtectedKeyword: [],
          TSPublicKeyword: [],
          TSReadonlyKeyword: [],
          TSStaticKeyword: [],
          TSTemplateLiteralType: ["quasis", "types"],
          AsConstExpression: ["expression"],
          AsExpression: ["expression", "typeAnnotation"],
          BigIntLiteralTypeAnnotation: [],
          BigIntTypeAnnotation: [],
          ComponentDeclaration: ["id", "params", "body", "typeParameters", "rendersType"],
          ComponentParameter: ["name", "local"],
          ComponentTypeAnnotation: ["params", "rest", "typeParameters", "rendersType"],
          ComponentTypeParameter: ["name", "typeAnnotation"],
          ConditionalTypeAnnotation: ["checkType", "extendsType", "trueType", "falseType"],
          DeclareComponent: ["id", "params", "rest", "typeParameters", "rendersType"],
          DeclareEnum: ["id", "body"],
          DeclareHook: ["id"],
          DeclareNamespace: ["id", "body"],
          EnumBigIntBody: ["members"],
          EnumBigIntMember: ["id", "init"],
          HookDeclaration: ["id", "params", "body", "typeParameters", "returnType"],
          HookTypeAnnotation: ["params", "returnType", "rest", "typeParameters"],
          InferTypeAnnotation: ["typeParameter"],
          KeyofTypeAnnotation: ["argument"],
          ObjectTypeMappedTypeProperty: ["keyTparam", "propType", "sourceType", "variance"],
          QualifiedTypeofIdentifier: ["qualification", "id"],
          TupleTypeLabeledElement: ["label", "elementType", "variance"],
          TupleTypeSpreadElement: ["label", "typeAnnotation"],
          TypeOperator: ["typeAnnotation"],
          TypePredicate: ["parameterName", "typeAnnotation", "asserts"],
          NGRoot: ["node"],
          NGPipeExpression: ["left", "right", "arguments"],
          NGChainedExpression: ["expressions"],
          NGEmptyExpression: [],
          NGMicrosyntax: ["body"],
          NGMicrosyntaxKey: [],
          NGMicrosyntaxExpression: ["expression", "alias"],
          NGMicrosyntaxKeyedExpression: ["key", "expression"],
          NGMicrosyntaxLet: ["key", "value"],
          NGMicrosyntaxAs: ["key", "alias"],
          JsExpressionRoot: ["node"],
          JsonRoot: ["node"],
          TSJSDocAllType: [],
          TSJSDocUnknownType: [],
          TSJSDocNullableType: ["typeAnnotation"],
          TSJSDocNonNullableType: ["typeAnnotation"],
          NeverTypeAnnotation: [],
          UndefinedTypeAnnotation: [],
          UnknownTypeAnnotation: [],
          SatisfiesExpression: ["expression", "typeAnnotation"]
        });
        v = oo;
        re = v(["Block", "CommentBlock", "MultiLine"]);
        Sr = v(["AnyTypeAnnotation", "ThisTypeAnnotation", "NumberTypeAnnotation", "VoidTypeAnnotation", "BooleanTypeAnnotation", "BigIntTypeAnnotation", "SymbolTypeAnnotation", "StringTypeAnnotation", "NeverTypeAnnotation", "UndefinedTypeAnnotation", "UnknownTypeAnnotation", "EmptyTypeAnnotation", "MixedTypeAnnotation"]);
        ru = mo;
        Br = yo;
        vt = v(["Line", "CommentLine", "SingleLine", "HashbangComment", "HTMLOpen", "HTMLClose", "Hashbang", "InterpreterDirective"]), iu = v(["ExportDefaultDeclaration", "DeclareExportDeclaration", "ExportNamedDeclaration", "ExportAllDeclaration", "DeclareExportAllDeclaration"]), U = v(["ArrayExpression", "TupleExpression"]), se = v(["ObjectExpression", "RecordExpression"]);
        kr = v(["Literal", "BooleanLiteral", "BigIntLiteral", "DecimalLiteral", "DirectiveLiteral", "NullLiteral", "NumericLiteral", "RegExpLiteral", "StringLiteral"]), Do = v(["Identifier", "ThisExpression", "Super", "PrivateName", "PrivateIdentifier", "Import"]), we = v(["ObjectTypeAnnotation", "TSTypeLiteral", "TSMappedType"]), _t = v(["FunctionExpression", "ArrowFunctionExpression"]);
        X = v(["JSXElement", "JSXFragment"]);
        De = v(["BinaryExpression", "LogicalExpression", "NGPipeExpression"]);
        Eo = v(["TSThisType", "NullLiteralTypeAnnotation", "BooleanLiteralTypeAnnotation", "StringLiteralTypeAnnotation", "BigIntLiteralTypeAnnotation", "NumberLiteralTypeAnnotation", "TSLiteralType", "TSTemplateLiteralType"]);
        Co = ["it", "it.only", "it.skip", "describe", "describe.only", "describe.skip", "test", "test.only", "test.skip", "test.step", "test.describe", "test.describe.only", "test.describe.parallel", "test.describe.parallel.only", "test.describe.serial", "test.describe.serial.only", "skip", "xit", "xdescribe", "xtest", "fit", "fdescribe", "ftest"];
        pu = e => t => ((t == null ? void 0 : t.type) === "ChainExpression" && (t = t.expression), e(t)), L = pu(v(["CallExpression", "OptionalCallExpression"])), q = pu(v(["MemberExpression", "OptionalMemberExpression"]));
        To = .25;
        xo = new Set(["!", "-", "+", "~"]);
        su = {
          "==": !0,
          "!=": !0,
          "===": !0,
          "!==": !0
        }, br = {
          "*": !0,
          "/": !0,
          "%": !0
        }, _n = {
          ">>": !0,
          ">>>": !0,
          "<<": !0
        };
        ho = new Map([["|>"], ["??"], ["||"], ["&&"], ["|"], ["^"], ["&"], ["==", "===", "!=", "!=="], ["<", ">", "<=", ">=", "in", "instanceof"], [">>", "<<", ">>>"], ["+", "-"], ["*", "/", "%"], ["**"]].flatMap((e, t) => e.map(r => [r, t])));
        wn = /* @__PURE__ */new WeakMap();
        On = /* @__PURE__ */new WeakMap();
        g = {
          Leading: 2,
          Trailing: 4,
          Dangling: 8,
          Block: 16,
          Line: 32,
          PrettierIgnore: 64,
          First: 128,
          Last: 256
        }, Eu = (e, t) => {
          if (typeof e == "function" && (t = e, e = 0), e || t) return (r, n, s) => !(e & g.Leading && !r.leading || e & g.Trailing && !r.trailing || e & g.Dangling && (r.leading || r.trailing) || e & g.Block && !re(r) || e & g.Line && !vt(r) || e & g.First && n !== 0 || e & g.Last && n !== s.length - 1 || e & g.PrettierIgnore && !sr(r) || t && !t(r));
        };
        pe = (e, {
          originalText: t
        }) => Ot(t, k(e));
        Te = v(["TSAsExpression", "TSSatisfiesExpression", "AsExpression", "AsConstExpression", "SatisfiesExpression"]), Ne = v(["UnionTypeAnnotation", "TSUnionType"]), _r = v(["IntersectionTypeAnnotation", "TSIntersectionType"]);
        go = new Set(["range", "raw", "comments", "leadingComments", "trailingComments", "innerComments", "extra", "start", "end", "loc", "flags", "errors", "tokens"]), Jt = e => {
          for (let t of e.quasis) delete t.value;
        };
        Fu.ignoredProperties = go;
        Cu = Fu;
        rt = "string", _e = "array", nt = "cursor", Xe = "indent", Ye = "align", st = "trim", le = "group", Pe = "fill", xe = "if-break", He = "indent-if-break", Ve = "line-suffix", $e = "line-suffix-boundary", me = "line", je = "label", ve = "break-parent", jr = new Set([nt, Xe, Ye, st, le, Pe, xe, He, Ve, $e, me, je, ve]);
        ut = So;
        Bo = e => new Intl.ListFormat("en-US", {
          type: "disjunction"
        }).format(e);
        Jn = class extends Error {
          name = "InvalidDocError";
          constructor(t) {
            super(bo(t)), this.doc = t;
          }
        }, Ct = Jn;
        Au = {};
        qn = Po;
        Tu = () => {}, Ke = Tu, vr = Tu;
        ke = {
          type: $e
        }, Ee = {
          type: ve
        };
        Gn = {
          type: me,
          hard: !0
        }, ko = {
          type: me,
          hard: !0,
          literal: !0
        }, x = {
          type: me
        }, E = {
          type: me,
          soft: !0
        }, F = [Gn, Ee], Rr = [ko, Ee], Un = {
          type: nt
        };
        bu = _o;
        Kn = {};
        Ar(Kn, {
          endOfLine: () => Go,
          ownLine: () => Wo,
          remaining: () => Uo
        });
        yt = Mo;
        ge = Ro;
        de = Jo;
        ku = qo;
        Vo = new Set(["ClassDeclaration", "ClassExpression", "DeclareClass", "DeclareInterface", "InterfaceDeclaration", "TSInterfaceDeclaration"]);
        $o = new Set(["ClassMethod", "ClassProperty", "PropertyDefinition", "TSAbstractPropertyDefinition", "TSAbstractMethodDefinition", "TSDeclareMethod", "MethodDefinition", "ClassAccessorProperty", "AccessorProperty", "TSAbstractAccessorProperty"]);
        Ko = new Set(["FunctionDeclaration", "FunctionExpression", "ClassMethod", "MethodDefinition", "ObjectMethod"]);
        ip = new Set(["VariableDeclarator", "AssignmentExpression", "TypeAlias", "TSTypeAliasDeclaration"]), ap = new Set(["ObjectExpression", "RecordExpression", "ArrayExpression", "TupleExpression", "TemplateLiteral", "TaggedTemplateExpression", "ObjectTypeAnnotation", "TSTypeLiteral"]);
        Ru = v(["ArrowFunctionExpression", "FunctionExpression", "FunctionDeclaration", "ObjectMethod", "ClassMethod", "TSDeclareFunction", "TSCallSignatureDeclaration", "TSConstructSignatureDeclaration", "TSMethodSignature", "TSConstructorType", "TSFunctionType", "TSDeclareMethod"]);
        Dp = new Set(["EmptyStatement", "TemplateElement", "Import", "TSEmptyBodyFunctionExpression", "ChainExpression"]);
        Se = Symbol("MODE_BREAK"), at = Symbol("MODE_FLAT"), ar = Symbol("cursor");
        Wu = Tp;
        Gu = dp;
        ns = [(e, t) => e.type === "ObjectExpression" && t === "properties", (e, t) => e.type === "CallExpression" && e.callee.type === "Identifier" && e.callee.name === "Component" && t === "arguments", (e, t) => e.type === "Decorator" && t === "expression"];
        Hu = Lp;
        Vu = jp;
        ss = 0;
        Mp = $u.bind(void 0, "html"), Rp = $u.bind(void 0, "angular");
        Ku = Jp;
        zu = Gp;
        Qu = Np;
        Yp = /\*\/$/, Hp = /^\/\*\*?/, ri = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/, Vp = /(^|\s+)\/\/([^\n\r]*)/g, Zu = /^(\r?\n)+/, $p = /(?:^|\r?\n) *(@[^\n\r]*?) *\r?\n *(?![^\n\r@]*\/\/[^]*)([^\s@][^\n\r@]+?) *\r?\n/g, ei = /(?:^|\r?\n) *@(\S+) *([^\n\r]*)/g, Kp = /(\r?\n|^) *\* ?/g, ni = [];
        oi = zp;
        ci = Zp;
        ec = v(["BlockStatement", "BreakStatement", "ComponentDeclaration", "ClassBody", "ClassDeclaration", "ClassMethod", "ClassProperty", "PropertyDefinition", "ClassPrivateProperty", "ContinueStatement", "DebuggerStatement", "DeclareComponent", "DeclareClass", "DeclareExportAllDeclaration", "DeclareExportDeclaration", "DeclareFunction", "DeclareHook", "DeclareInterface", "DeclareModule", "DeclareModuleExports", "DeclareNamespace", "DeclareVariable", "DeclareEnum", "DoWhileStatement", "EnumDeclaration", "ExportAllDeclaration", "ExportDefaultDeclaration", "ExportNamedDeclaration", "ExpressionStatement", "ForInStatement", "ForOfStatement", "ForStatement", "FunctionDeclaration", "HookDeclaration", "IfStatement", "ImportDeclaration", "InterfaceDeclaration", "LabeledStatement", "MethodDefinition", "ReturnStatement", "SwitchStatement", "ThrowStatement", "TryStatement", "TSDeclareFunction", "TSEnumDeclaration", "TSImportEqualsDeclaration", "TSInterfaceDeclaration", "TSModuleDeclaration", "TSNamespaceExportDeclaration", "TypeAlias", "VariableDeclaration", "WhileStatement", "WithStatement"]);
        Be = us;
        mi = ic;
        ac = () => !0;
        ps = class extends Error {
          name = "UnexpectedNodeError";
          constructor(t, r, n = "type") {
            super(`Unexpected ${r} node ${n}: ${JSON.stringify(t[n])}.`), this.node = t;
          }
        }, Me = ps;
        ls = class {
          constructor(t) {
            Ws(this, Re);
            Gs(this, Re, new Set(t));
          }
          getLeadingWhitespaceCount(t) {
            let r = pt(this, Re),
              n = 0;
            for (let s = 0; s < t.length && r.has(t.charAt(s)); s++) n++;
            return n;
          }
          getTrailingWhitespaceCount(t) {
            let r = pt(this, Re),
              n = 0;
            for (let s = t.length - 1; s >= 0 && r.has(t.charAt(s)); s--) n++;
            return n;
          }
          getLeadingWhitespace(t) {
            let r = this.getLeadingWhitespaceCount(t);
            return t.slice(0, r);
          }
          getTrailingWhitespace(t) {
            let r = this.getTrailingWhitespaceCount(t);
            return t.slice(t.length - r);
          }
          hasLeadingWhitespace(t) {
            return pt(this, Re).has(t.charAt(0));
          }
          hasTrailingWhitespace(t) {
            return pt(this, Re).has(O(!1, t, -1));
          }
          trimStart(t) {
            let r = this.getLeadingWhitespaceCount(t);
            return t.slice(r);
          }
          trimEnd(t) {
            let r = this.getTrailingWhitespaceCount(t);
            return t.slice(0, t.length - r);
          }
          trim(t) {
            return this.trimEnd(this.trimStart(t));
          }
          split(t, r = !1) {
            let n = `[${cs([...pt(this, Re)].join(""))}]+`,
              s = new RegExp(r ? `(${n})` : n, "u");
            return t.split(s);
          }
          hasWhitespaceCharacter(t) {
            let r = pt(this, Re);
            return Array.prototype.some.call(t, n => r.has(n));
          }
          hasNonWhitespaceCharacter(t) {
            let r = pt(this, Re);
            return Array.prototype.some.call(t, n => !r.has(n));
          }
          isWhitespaceOnly(t) {
            let r = pt(this, Re);
            return Array.prototype.every.call(t, n => r.has(n));
          }
        };
        Re = /* @__PURE__ */new WeakMap();
        Nr = new ls(` 
\r	`), ms = e => e === "" || e === x || e === F || e === E;
        mc = new Set(["ArrayExpression", "TupleExpression", "JSXAttribute", "JSXElement", "JSXExpressionContainer", "JSXFragment", "ExpressionStatement", "CallExpression", "OptionalCallExpression", "ConditionalExpression", "JsExpressionRoot"]);
        Xr = Bc;
        bc = 0;
        Ci = e => e.type === "BinaryExpression" && e.operator === "|";
        kc = v(["CallExpression", "OptionalCallExpression", "AssignmentExpression"]);
        Dt = class extends Error {
          name = "ArgExpansionBailout";
        };
        lr = Lc;
        Mc = e => ((e.type === "ChainExpression" || e.type === "TSNonNullExpression") && (e = e.expression), L(e) && oe(e).length > 0);
        ki = Pi;
        Uc = v(["TSTypeAliasDeclaration", "TypeAlias"]);
        Yc = v(["TSTypeReference", "GenericTypeAnnotation"]);
        Zc = v(["VoidTypeAnnotation", "TSVoidKeyword", "NullLiteralTypeAnnotation", "TSNullKeyword"]), el = v(["ObjectTypeAnnotation", "TSTypeLiteral", "GenericTypeAnnotation", "TSTypeReference"]);
        nl = /* @__PURE__ */new WeakSet();
        Ri = e => e.match(t => t.type === "TSTypeAnnotation", (t, r) => (r === "returnType" || r === "typeAnnotation") && (t.type === "TSFunctionType" || t.type === "TSConstructorType")) ? "=>" : e.match(t => t.type === "TSTypeAnnotation", (t, r) => r === "typeAnnotation" && (t.type === "TSJSDocNullableType" || t.type === "TSJSDocNonNullableType" || t.type === "TSTypePredicate")) || e.match(t => t.type === "TypeAnnotation", (t, r) => r === "typeAnnotation" && t.type === "Identifier", (t, r) => r === "id" && t.type === "DeclareFunction") || e.match(t => t.type === "TypeAnnotation", (t, r) => r === "typeAnnotation" && t.type === "Identifier", (t, r) => r === "id" && t.type === "DeclareHook") || e.match(t => t.type === "TypeAnnotation", (t, r) => r === "bound" && t.type === "TypeParameter" && t.usesExtendsBound) ? "" : ":";
        sl = new Set(["DeclareClass", "DeclareComponent", "DeclareFunction", "DeclareHook", "DeclareVariable", "DeclareExportDeclaration", "DeclareExportAllDeclaration", "DeclareOpaqueType", "DeclareTypeAlias", "DeclareEnum", "DeclareInterface"]);
        ul = new Set(["TSAbstractMethodDefinition", "TSAbstractPropertyDefinition", "TSAbstractAccessorProperty"]);
        qi = new Proxy(() => {}, {
          get: () => qi
        }), ln = qi;
        pl = /^[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC][\$0-9A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]*$/, cl = e => pl.test(e), Wi = cl;
        Ze = ll;
        mn = /* @__PURE__ */new WeakMap();
        yl = ({
          node: e,
          key: t,
          parent: r
        }) => t === "value" && e.type === "FunctionExpression" && (r.type === "ObjectMethod" || r.type === "ClassMethod" || r.type === "ClassPrivateMethod" || r.type === "MethodDefinition" || r.type === "TSAbstractMethodDefinition" || r.type === "TSDeclareMethod" || r.type === "Property" && gt(r));
        ds = /* @__PURE__ */new WeakMap();
        Vi = e => e.type === "SequenceExpression";
        Tl = (e, t, r) => {
          if (!(e && t == null)) {
            if (t.findLast) return t.findLast(r);
            for (let n = t.length - 1; n >= 0; n--) {
              let s = t[n];
              if (r(s, n, t)) return s;
            }
          }
        }, Ki = Tl;
        Cn = xl;
        Dr = Cn("typeParameters");
        Zi = v(["ClassProperty", "PropertyDefinition", "ClassPrivateProperty", "ClassAccessorProperty", "AccessorProperty", "TSAbstractPropertyDefinition", "TSAbstractAccessorProperty"]);
        ea = Cn("heritageGroup");
        fr = Il;
        la = e => e.type === "ExportDefaultDeclaration" || e.type === "DeclareExportDeclaration" && e.default;
        Ll = v(["ClassDeclaration", "ComponentDeclaration", "FunctionDeclaration", "TSInterfaceDeclaration", "DeclareClass", "DeclareComponent", "DeclareFunction", "DeclareHook", "HookDeclaration", "TSDeclareFunction", "EnumDeclaration"]);
        Rl = new Map([["AssignmentExpression", "right"], ["VariableDeclarator", "init"], ["ReturnStatement", "argument"], ["ThrowStatement", "argument"], ["UnaryExpression", "argument"], ["YieldExpression", "argument"], ["AwaitExpression", "argument"]]);
        Gl = new Map([["AssignmentExpression", "right"], ["VariableDeclarator", "init"], ["ReturnStatement", "argument"], ["ThrowStatement", "argument"], ["UnaryExpression", "argument"], ["YieldExpression", "argument"], ["AwaitExpression", "argument"]]);
        Ls = e => [b("("), f([E, e]), E, b(")")];
        Vl = v(["ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassAccessorProperty", "AccessorProperty", "TSAbstractAccessorProperty", "PropertyDefinition", "TSAbstractPropertyDefinition", "ClassPrivateProperty", "MethodDefinition", "TSAbstractMethodDefinition", "TSDeclareMethod"]);
        Ia = $l;
        Kl = {
          avoidAstMutation: !0
        };
        La = [{
          linguistLanguageId: 174,
          name: "JSON.stringify",
          type: "data",
          color: "#292929",
          tmScope: "source.json",
          aceMode: "json",
          codemirrorMode: "javascript",
          codemirrorMimeType: "application/json",
          aliases: ["geojson", "jsonl", "topojson"],
          extensions: [".importmap"],
          filenames: ["package.json", "package-lock.json", "composer.json"],
          parsers: ["json-stringify"],
          vscodeLanguageIds: ["json"]
        }, {
          linguistLanguageId: 174,
          name: "JSON",
          type: "data",
          color: "#292929",
          tmScope: "source.json",
          aceMode: "json",
          codemirrorMode: "javascript",
          codemirrorMimeType: "application/json",
          aliases: ["geojson", "jsonl", "topojson"],
          extensions: [".json", ".4DForm", ".4DProject", ".avsc", ".geojson", ".gltf", ".har", ".ice", ".JSON-tmLanguage", ".mcmeta", ".tfstate", ".tfstate.backup", ".topojson", ".webapp", ".webmanifest", ".yy", ".yyp"],
          filenames: [".all-contributorsrc", ".arcconfig", ".auto-changelog", ".c8rc", ".htmlhintrc", ".imgbotconfig", ".nycrc", ".tern-config", ".tern-project", ".watchmanconfig", "Pipfile.lock", "composer.lock", "flake.lock", "mcmod.info", ".babelrc", ".jscsrc", ".jshintrc", ".jslintrc", ".swcrc"],
          parsers: ["json"],
          vscodeLanguageIds: ["json"]
        }, {
          linguistLanguageId: 423,
          name: "JSON with Comments",
          type: "data",
          color: "#292929",
          group: "JSON",
          tmScope: "source.js",
          aceMode: "javascript",
          codemirrorMode: "javascript",
          codemirrorMimeType: "text/javascript",
          aliases: ["jsonc"],
          extensions: [".jsonc", ".code-snippets", ".code-workspace", ".sublime-build", ".sublime-commands", ".sublime-completions", ".sublime-keymap", ".sublime-macro", ".sublime-menu", ".sublime-mousemap", ".sublime-project", ".sublime-settings", ".sublime-theme", ".sublime-workspace", ".sublime_metrics", ".sublime_session"],
          filenames: [],
          parsers: ["jsonc"],
          vscodeLanguageIds: ["jsonc"]
        }, {
          linguistLanguageId: 175,
          name: "JSON5",
          type: "data",
          color: "#267CB9",
          extensions: [".json5"],
          tmScope: "source.js",
          aceMode: "javascript",
          codemirrorMode: "javascript",
          codemirrorMimeType: "application/json",
          parsers: ["json5"],
          vscodeLanguageIds: ["json5"]
        }];
        Os = {};
        Ar(Os, {
          getVisitorKeys: () => Oa,
          massageAstNode: () => ja,
          print: () => Zl
        });
        Oa = hr({
          JsonRoot: ["node"],
          ArrayExpression: ["elements"],
          ObjectExpression: ["properties"],
          ObjectProperty: ["key", "value"],
          UnaryExpression: ["argument"],
          NullLiteral: [],
          BooleanLiteral: [],
          StringLiteral: [],
          NumericLiteral: [],
          Identifier: [],
          TemplateLiteral: ["quasis"],
          TemplateElement: []
        });
        em = new Set(["start", "end", "extra", "loc", "comments", "leadingComments", "trailingComments", "innerComments", "errors", "range", "tokens"]);
        ja.ignoredProperties = em;
        Er = {
          bracketSpacing: {
            category: "Common",
            type: "boolean",
            default: !0,
            description: "Print spaces between brackets.",
            oppositeDescription: "Do not print spaces between brackets."
          },
          singleQuote: {
            category: "Common",
            type: "boolean",
            default: !1,
            description: "Use single quotes instead of double quotes."
          },
          proseWrap: {
            category: "Common",
            type: "choice",
            default: "preserve",
            description: "How to wrap prose.",
            choices: [{
              value: "always",
              description: "Wrap prose if it exceeds the print width."
            }, {
              value: "never",
              description: "Do not wrap prose."
            }, {
              value: "preserve",
              description: "Wrap prose as-is."
            }]
          },
          bracketSameLine: {
            category: "Common",
            type: "boolean",
            default: !1,
            description: "Put > of opening tags on the last line instead of on a new line."
          },
          singleAttributePerLine: {
            category: "Common",
            type: "boolean",
            default: !1,
            description: "Enforce single attribute per line in HTML, Vue and JSX."
          }
        };
        kt = "JavaScript", va = {
          arrowParens: {
            category: kt,
            type: "choice",
            default: "always",
            description: "Include parentheses around a sole arrow function parameter.",
            choices: [{
              value: "always",
              description: "Always include parens. Example: `(x) => x`"
            }, {
              value: "avoid",
              description: "Omit parens when possible. Example: `x => x`"
            }]
          },
          bracketSameLine: Er.bracketSameLine,
          bracketSpacing: Er.bracketSpacing,
          jsxBracketSameLine: {
            category: kt,
            type: "boolean",
            description: "Put > on the last line instead of at a new line.",
            deprecated: "2.4.0"
          },
          semi: {
            category: kt,
            type: "boolean",
            default: !0,
            description: "Print semicolons.",
            oppositeDescription: "Do not print semicolons, except at the beginning of lines which may need them."
          },
          experimentalTernaries: {
            category: kt,
            type: "boolean",
            default: !1,
            description: "Use curious ternaries, with the question mark after the condition.",
            oppositeDescription: "Default behavior of ternaries; keep question marks on the same line as the consequent."
          },
          singleQuote: Er.singleQuote,
          jsxSingleQuote: {
            category: kt,
            type: "boolean",
            default: !1,
            description: "Use single quotes in JSX."
          },
          quoteProps: {
            category: kt,
            type: "choice",
            default: "as-needed",
            description: "Change when properties in objects are quoted.",
            choices: [{
              value: "as-needed",
              description: "Only add quotes around object properties where required."
            }, {
              value: "consistent",
              description: "If at least one property in an object requires quotes, quote all properties."
            }, {
              value: "preserve",
              description: "Respect the input use of quotes in object properties."
            }]
          },
          trailingComma: {
            category: kt,
            type: "choice",
            default: "all",
            description: "Print trailing commas wherever possible when multi-line.",
            choices: [{
              value: "all",
              description: "Trailing commas wherever possible (including function arguments)."
            }, {
              value: "es5",
              description: "Trailing commas where valid in ES5 (objects, arrays, etc.)"
            }, {
              value: "none",
              description: "No trailing commas."
            }]
          },
          singleAttributePerLine: Er.singleAttributePerLine
        };
        rm = {
          estree: ws,
          "estree-json": Os
        }, nm = [...Us, ...La];
        _export("n", $d = _s); //#endregion
        //#region src/features/ndv/panel/components/NDVEmptyState.vue?vue&type=script&setup=true&lang.ts
        NDVEmptyState_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
          __name: "NDVEmptyState",
          props: {
            title: {},
            wide: {
              type: Boolean
            },
            icon: {}
          },
          setup(__props) {
            return (_ctx, _cache) => {
              return openBlock(), createElementBlock("article", {
                class: normalizeClass([_ctx.$style.empty, {
                  [_ctx.$style.wide]: _ctx.wide
                }])
              }, [renderSlot(_ctx.$slots, "icon", {}, () => [_ctx.icon ? (openBlock(), createBlock(unref(N8nIcon_default), {
                key: 0,
                icon: _ctx.icon,
                size: "xlarge"
              }, null, 8, ["icon"])) : createCommentVNode("", true)]), _ctx.title ? (openBlock(), createElementBlock("h1", {
                key: 0,
                class: normalizeClass(_ctx.$style.title)
              }, toDisplayString(_ctx.title), 3)) : createCommentVNode("", true), createBaseVNode("p", {
                class: normalizeClass(_ctx.$style.description)
              }, [renderSlot(_ctx.$slots, "default")], 2)], 2);
            };
          }
        }); //#endregion
        //#region src/features/ndv/panel/components/NDVEmptyState.vue?vue&type=style&index=0&lang.module.css
        empty = "_empty_ylpfe_2";
        title = "_title_ylpfe_13";
        description = "_description_ylpfe_21";
        wide = "_wide_ylpfe_28";
        NDVEmptyState_vue_vue_type_style_index_0_lang_module_default = {
          empty,
          title,
          description,
          wide
        }; //#endregion
        //#region src/features/ndv/panel/components/NDVEmptyState.vue
        cssModules = {
          "$style": NDVEmptyState_vue_vue_type_style_index_0_lang_module_default
        };
        _export("t", NDVEmptyState_default = /* @__PURE__ */__plugin_vue_export_helper_default(NDVEmptyState_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules]])); //#endregion
      }
    };
  });
})();