UNPKG

svgfusion

Version:

Convert SVG files into blazing-fast React and Vue 3 components with automatic color extraction, full TypeScript support, and seamless integration into any modern workflow.

1,093 lines (1,090 loc) 4.93 MB
#!/usr/bin/env node "use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // ../../node_modules/.pnpm/tsup@8.5.0_jiti@1.21.7_postcss@8.5.6_typescript@5.6.3_yaml@2.8.0/node_modules/tsup/assets/cjs_shims.js var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href; var importMetaUrl = /* @__PURE__ */ getImportMetaUrl(); // ../../node_modules/.pnpm/svgfusion-cmd@1.3.3_prettier@3.6.2/node_modules/svgfusion-cmd/dist/index.mjs var z4 = __toESM(require("path"), 1); var import_path = __toESM(require("path"), 1); var qoe = __toESM(require("url"), 1); var import_url = __toESM(require("url"), 1); var import_module = require("module"); var RU = __toESM(require("fs/promises"), 1); var import_promises = __toESM(require("fs/promises"), 1); var import_process = __toESM(require("process"), 1); var import_assert = __toESM(require("assert"), 1); var import_fs = __toESM(require("fs"), 1); var import_v8 = __toESM(require("v8"), 1); var import_util = require("util"); var import_commander = require("commander"); var import_figlet = __toESM(require("figlet"), 1); var Ryt = Object.defineProperty; var pC = ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (t, r) => (typeof require < "u" ? require : t)[r] }) : e)(function(e) { if (typeof require < "u") return require.apply(this, arguments); throw Error('Dynamic require of "' + e + '" is not supported'); }); var xp = (e, t) => () => (e && (t = e(e = 0)), t); var o_ = (e, t) => { for (var r in t) Ryt(e, r, { get: t[r], enumerable: true }); }; var ms = xp(() => { }); var NM = {}; o_(NM, { builders: () => W1e, default: () => zgt, printer: () => z1e, utils: () => H1e }); function egt(e) { let t = e.length; for (; t > 0 && (e[t - 1] === "\r" || e[t - 1] === ` `); ) t--; return t < e.length ? e.slice(0, t) : e; } function tgt(e) { if (typeof e == "string") return _C; if (Array.isArray(e)) return Lx; if (!e) return; let { type: t } = e; if (M1e.has(t)) return t; } function ngt(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 (fC(e)) throw new Error("doc is valid."); let r = Object.prototype.toString.call(e); if (r !== "[object Object]") return `Unexpected doc '${r}'.`; let i = rgt([...M1e].map((a) => `'${a}'`)); return `Unexpected doc.type '${e.type}'. Expected it to be ${i}.`; } function agt(e, t, r, i) { let a = [e]; for (; a.length > 0; ) { let o = a.pop(); if (o === B1e) { r(a.pop()); continue; } r && a.push(o, B1e); let u = fC(o); if (!u) throw new ow(o); if (t?.(o) !== false) switch (u) { case Lx: case z6: { let c = u === Lx ? o : o.parts; for (let l = c.length, h = l - 1; h >= 0; --h) a.push(c[h]); break; } case im: a.push(o.flatContents, o.breakContents); break; case Eh: if (i && o.expandedStates) for (let c = o.expandedStates.length, l = c - 1; l >= 0; --l) a.push(o.expandedStates[l]); else a.push(o.contents); break; case J6: case V6: case H6: case X6: case G6: a.push(o.contents); break; case _C: case dC: case W6: case K6: case u_: case Nv: break; default: throw new ow(o); } } } function PM(e, t) { if (typeof e == "string") return t(e); let r = /* @__PURE__ */ new Map(); return i(e); function i(o) { if (r.has(o)) return r.get(o); let u = a(o); return r.set(o, u), u; } function a(o) { switch (fC(o)) { case Lx: return t(o.map(i)); case z6: return t({ ...o, parts: o.parts.map(i) }); case im: return t({ ...o, breakContents: i(o.breakContents), flatContents: i(o.flatContents) }); case Eh: { let { expandedStates: u, contents: c } = o; return u ? (u = u.map(i), c = u[0]) : c = i(c), t({ ...o, contents: c, expandedStates: u }); } case J6: case V6: case H6: case X6: case G6: return t({ ...o, contents: i(o.contents) }); case _C: case dC: case W6: case K6: case u_: case Nv: return t(o); default: throw new ow(o); } } } function hZ(e, t, r) { let i = r, a = false; function o(u) { if (a) return false; let c = t(u); c !== void 0 && (a = true, i = c); } return fZ(e, o), i; } function sgt(e) { if (e.type === Eh && e.break || e.type === u_ && e.hard || e.type === Nv) return true; } function ogt(e) { return hZ(e, sgt, false); } function I1e(e) { if (e.length > 0) { let t = $6(false, e, -1); !t.expandedStates && !t.break && (t.break = "propagated"); } return null; } function ugt(e) { let t = /* @__PURE__ */ new Set(), r = []; function i(o) { if (o.type === Nv && I1e(r), o.type === Eh) { if (r.push(o), t.has(o)) return false; t.add(o); } } function a(o) { o.type === Eh && r.pop().break && I1e(r); } fZ(e, i, a, true); } function lgt(e) { return e.type === u_ && !e.hard ? e.soft ? "" : " " : e.type === im ? e.flatContents : e; } function cgt(e) { return PM(e, lgt); } function O1e(e) { for (e = [...e]; e.length >= 2 && $6(false, e, -2).type === u_ && $6(false, e, -1).type === Nv; ) e.length -= 2; if (e.length > 0) { let t = fS($6(false, e, -1)); e[e.length - 1] = t; } return e; } function fS(e) { switch (fC(e)) { case V6: case H6: case Eh: case G6: case X6: { let t = fS(e.contents); return { ...e, contents: t }; } case im: return { ...e, breakContents: fS(e.breakContents), flatContents: fS(e.flatContents) }; case z6: return { ...e, parts: O1e(e.parts) }; case Lx: return O1e(e); case _C: return egt(e); case J6: case dC: case W6: case K6: case u_: case Nv: break; default: throw new ow(e); } return e; } function pgt(e) { return fS(dgt(e)); } function _gt(e) { switch (fC(e)) { case z6: if (e.parts.every((t) => t === "")) return ""; break; case Eh: if (!e.contents && !e.id && !e.break && !e.expandedStates) return ""; if (e.contents.type === Eh && e.contents.id === e.id && e.contents.break === e.break && e.contents.expandedStates === e.expandedStates) return e.contents; break; case J6: case V6: case H6: case G6: if (!e.contents) return ""; break; case im: if (!e.flatContents && !e.breakContents) return ""; break; case Lx: { let t = []; for (let r of e) { if (!r) continue; let [i, ...a] = Array.isArray(r) ? r : [r]; typeof i == "string" && typeof $6(false, t, -1) == "string" ? t[t.length - 1] += i : t.push(i), t.push(...a); } return t.length === 0 ? "" : t.length === 1 ? t[0] : t; } case _C: case dC: case W6: case K6: case u_: case X6: case Nv: break; default: throw new ow(e); } return e; } function dgt(e) { return PM(e, (t) => _gt(t)); } function fgt(e, t = U1e) { return PM(e, (r) => typeof r == "string" ? $1e(t, r.split(` `)) : r); } function hgt(e) { if (e.type === u_) return true; } function mgt(e) { return hZ(e, hgt, false); } function FM(e) { return Pv(e), { type: V6, contents: e }; } function uw(e, t) { return Pv(t), { type: J6, contents: t, n: e }; } function j1e(e, t = {}) { return Pv(e), R1e(t.expandedStates, true), { type: Eh, id: t.id, contents: e, break: !!t.shouldBreak, expandedStates: t.expandedStates }; } function ggt(e) { return uw(Number.NEGATIVE_INFINITY, e); } function vgt(e) { return uw({ type: "root" }, e); } function bgt(e) { return uw(-1, e); } function xgt(e, t) { return j1e(e[0], { ...t, expandedStates: e }); } function Dgt(e) { return ygt(e), { type: z6, parts: e }; } function Egt(e, t = "", r = {}) { return Pv(e), t !== "" && Pv(t), { type: im, breakContents: e, flatContents: t, groupId: r.groupId }; } function Cgt(e, t) { return Pv(e), { type: H6, contents: e, groupId: t.groupId, negate: t.negate }; } function Agt(e) { return Pv(e), { type: G6, contents: e }; } function $1e(e, t) { Pv(e), R1e(t); let r = []; for (let i = 0; i < t.length; i++) i !== 0 && r.push(e), r.push(t[i]); return r; } function Ngt(e, t, r) { Pv(e); let i = e; if (t > 0) { for (let a = 0; a < Math.floor(t / r); ++a) i = FM(i); i = uw(t % r, i), i = uw(Number.NEGATIVE_INFINITY, i); } return i; } function Bgt(e, t) { return Pv(t), e ? { type: X6, label: e, contents: t } : t; } function Lgt(e) { switch (e) { case "cr": return "\r"; case "crlf": return `\r `; default: return ` `; } } function Rgt(e) { return e === 12288 || e >= 65281 && e <= 65376 || e >= 65504 && e <= 65510; } function jgt(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 >= 9776 && e <= 9783 || e >= 9800 && e <= 9811 || e === 9855 || e >= 9866 && e <= 9871 || 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 <= 12773 || e >= 12783 && e <= 12830 || e >= 12832 && e <= 12871 || e >= 12880 && 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 >= 101631 && 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 >= 119552 && e <= 119638 || e >= 119648 && e <= 119670 || 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 <= 129673 || e >= 129679 && e <= 129734 || e >= 129742 && e <= 129756 || e >= 129759 && e <= 129769 || e >= 129776 && e <= 129784 || e >= 131072 && e <= 196605 || e >= 196608 && e <= 262141; } function $gt(e) { if (!e) return 0; if (!Ugt.test(e)) return e.length; e = e.replace(Mgt(), " "); let t = 0; for (let r of e) { let i = r.codePointAt(0); i <= 31 || i >= 127 && i <= 159 || i >= 768 && i <= 879 || (t += qgt(i) ? 1 : 2); } return t; } function J1e() { return { value: "", length: 0, queue: [] }; } function Vgt(e, t) { return _Z(e, { type: "indent" }, t); } function Jgt(e, t, r) { return t === Number.NEGATIVE_INFINITY ? e.root || J1e() : t < 0 ? _Z(e, { type: "dedent" }, r) : t ? t.type === "root" ? { ...e, root: e } : _Z(e, { type: typeof t == "string" ? "stringAlign" : "numberAlign", n: t }, r) : e; } function _Z(e, t, r) { let i = t.type === "dedent" ? e.queue.slice(0, -1) : [...e.queue, t], a = "", o = 0, u = 0, c = 0; for (let A of i) switch (A.type) { case "indent": p(), r.useTabs ? l(1) : h(r.tabWidth); break; case "stringAlign": p(), a += A.n, o += A.n.length; break; case "numberAlign": u += 1, c += A.n; break; default: throw new Error(`Unexpected type '${A.type}'`); } return v(), { ...e, value: a, length: o, queue: i }; function l(A) { a += " ".repeat(A), o += r.tabWidth * A; } function h(A) { a += " ".repeat(A), o += A; } function p() { r.useTabs ? f() : v(); } function f() { u > 0 && l(u), x(); } function v() { c > 0 && h(c), x(); } function x() { u = 0, c = 0; } } function dZ(e) { let t = 0, r = 0, i = e.length; e: for (; i--; ) { let a = e[i]; if (a === sw) { r++; continue; } for (let o = a.length - 1; o >= 0; o--) { let u = a[o]; if (u === " " || u === " ") t++; else { e[i] = a.slice(0, o + 1); break e; } } } if (t > 0 || r > 0) for (e.length = i + 1; r-- > 0; ) e.push(sw); return t; } function SM(e, t, r, i, a, o) { if (r === Number.POSITIVE_INFINITY) return true; let u = t.length, c = [e], l = []; for (; r >= 0; ) { if (c.length === 0) { if (u === 0) return true; c.push(t[--u]); continue; } let { mode: h, doc: p } = c.pop(), f = fC(p); switch (f) { case _C: l.push(p), r -= V1e(p); break; case Lx: case z6: { let v = f === Lx ? p : p.parts, x = p[pZ] ?? 0; for (let A = v.length - 1; A >= x; A--) c.push({ mode: h, doc: v[A] }); break; } case V6: case J6: case H6: case X6: c.push({ mode: h, doc: p.contents }); break; case W6: r += dZ(l); break; case Eh: { if (o && p.break) return false; let v = p.break ? id : h, x = p.expandedStates && v === id ? $6(false, p.expandedStates, -1) : p.contents; c.push({ mode: v, doc: x }); break; } case im: { let x = (p.groupId ? a[p.groupId] || Fv : h) === id ? p.breakContents : p.flatContents; x && c.push({ mode: h, doc: x }); break; } case u_: if (h === id || p.hard) return true; p.soft || (l.push(" "), r--); break; case G6: i = true; break; case K6: if (i) return false; break; } } return false; } function Wgt(e, t) { let r = {}, i = t.printWidth, a = Lgt(t.endOfLine), o = 0, u = [{ ind: J1e(), mode: id, doc: e }], c = [], l = false, h = [], p = 0; for (ugt(e); u.length > 0; ) { let { ind: v, mode: x, doc: A } = u.pop(); switch (fC(A)) { case _C: { let P = a !== ` ` ? Ogt(false, A, ` `, a) : A; c.push(P), u.length > 0 && (o += V1e(P)); break; } case Lx: for (let P = A.length - 1; P >= 0; P--) u.push({ ind: v, mode: x, doc: A[P] }); break; case dC: if (p >= 2) throw new Error("There are too many 'cursor' in doc."); c.push(sw), p++; break; case V6: u.push({ ind: Vgt(v, t), mode: x, doc: A.contents }); break; case J6: u.push({ ind: Jgt(v, A.n, t), mode: x, doc: A.contents }); break; case W6: o -= dZ(c); break; case Eh: switch (x) { case Fv: if (!l) { u.push({ ind: v, mode: A.break ? id : Fv, doc: A.contents }); break; } case id: { l = false; let P = { ind: v, mode: Fv, doc: A.contents }, U = i - o, $ = h.length > 0; if (!A.break && SM(P, u, U, $, r)) u.push(P); else if (A.expandedStates) { let F = $6(false, A.expandedStates, -1); if (A.break) { u.push({ ind: v, mode: id, doc: F }); break; } else for (let S = 1; S < A.expandedStates.length + 1; S++) if (S >= A.expandedStates.length) { u.push({ ind: v, mode: id, doc: F }); break; } else { let O = A.expandedStates[S], T = { ind: v, mode: Fv, doc: O }; if (SM(T, u, U, $, r)) { u.push(T); break; } } } else u.push({ ind: v, mode: id, doc: A.contents }); break; } } A.id && (r[A.id] = $6(false, u, -1).mode); break; case z6: { let P = i - o, U = A[pZ] ?? 0, { parts: $ } = A, F = $.length - U; if (F === 0) break; let S = $[U + 0], O = $[U + 1], T = { ind: v, mode: Fv, doc: S }, B = { ind: v, mode: id, doc: S }, L = SM(T, [], P, h.length > 0, r, true); if (F === 1) { L ? u.push(T) : u.push(B); break; } let q = { ind: v, mode: Fv, doc: O }, H = { ind: v, mode: id, doc: O }; if (F === 2) { L ? u.push(q, T) : u.push(H, B); break; } let te = $[U + 2], Z = { ind: v, mode: x, doc: { ...A, [pZ]: U + 2 } }; SM({ ind: v, mode: Fv, doc: [S, O, te] }, [], P, h.length > 0, r, true) ? u.push(Z, q, T) : L ? u.push(Z, H, T) : u.push(Z, H, B); break; } case im: case H6: { let P = A.groupId ? r[A.groupId] : x; if (P === id) { let U = A.type === im ? A.breakContents : A.negate ? A.contents : FM(A.contents); U && u.push({ ind: v, mode: x, doc: U }); } if (P === Fv) { let U = A.type === im ? A.flatContents : A.negate ? FM(A.contents) : A.contents; U && u.push({ ind: v, mode: x, doc: U }); } break; } case G6: h.push({ ind: v, mode: x, doc: A.contents }); break; case K6: h.length > 0 && u.push({ ind: v, mode: x, doc: gZ }); break; case u_: switch (x) { case Fv: if (A.hard) l = true; else { A.soft || (c.push(" "), o += 1); break; } case id: if (h.length > 0) { u.push({ ind: v, mode: x, doc: A }, ...h.reverse()), h.length = 0; break; } A.literal ? v.root ? (c.push(a, v.root.value), o = v.root.length) : (c.push(a), o = 0) : (o -= dZ(c), c.push(a + v.value), o = v.length); break; } break; case X6: u.push({ ind: v, mode: x, doc: A.contents }); break; case Nv: break; default: throw new ow(A); } u.length === 0 && h.length > 0 && (u.push(...h.reverse()), h.length = 0); } let f = c.indexOf(sw); if (f !== -1) { let v = c.indexOf(sw, f + 1); if (v === -1) return { formatted: c.filter((U) => U !== sw).join("") }; let x = c.slice(0, f).join(""), A = c.slice(f + 1, v).join(""), P = c.slice(v + 1).join(""); return { formatted: x + A + P, cursorNodeStart: x.length, cursorNodeText: A }; } return { formatted: c.join("") }; } var Yyt; var Qyt; var L1e; var _C; var Lx; var dC; var V6; var J6; var W6; var Eh; var z6; var im; var H6; var G6; var K6; var u_; var X6; var Nv; var M1e; var Zyt; var $6; var fC; var rgt; var igt; var ow; var B1e; var fZ; var mZ; var Pv; var R1e; var ygt; var wgt; var yZ; var kgt; var gZ; var q1e; var Tgt; var Sgt; var Fgt; var U1e; var Pgt; var Igt; var Ogt; var Mgt; var qgt; var Ugt; var V1e; var id; var Fv; var sw; var pZ; var W1e; var z1e; var H1e; var zgt; var G1e = xp(() => { ms(); Yyt = Object.defineProperty, Qyt = (e, t) => { for (var r in t) Yyt(e, r, { get: t[r], enumerable: true }); }, L1e = {}; Qyt(L1e, { builders: () => W1e, printer: () => z1e, utils: () => H1e }); _C = "string", Lx = "array", dC = "cursor", V6 = "indent", J6 = "align", W6 = "trim", Eh = "group", z6 = "fill", im = "if-break", H6 = "indent-if-break", G6 = "line-suffix", K6 = "line-suffix-boundary", u_ = "line", X6 = "label", Nv = "break-parent", M1e = /* @__PURE__ */ new Set([dC, V6, J6, W6, Eh, z6, im, H6, G6, K6, u_, X6, Nv]), Zyt = (e, t, r) => { if (!(e && t == null)) return Array.isArray(t) || typeof t == "string" ? t[r < 0 ? t.length + r : r] : t.at(r); }, $6 = Zyt; fC = tgt, rgt = (e) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e); igt = class extends Error { name = "InvalidDocError"; constructor(e) { super(ngt(e)), this.doc = e; } }, ow = igt, B1e = {}; fZ = agt; mZ = () => { }, Pv = mZ, R1e = mZ, ygt = mZ; wgt = { type: K6 }, yZ = { type: Nv }, kgt = { type: W6 }, gZ = { type: u_, hard: true }, q1e = { type: u_, hard: true, literal: true }, Tgt = { type: u_ }, Sgt = { type: u_, soft: true }, Fgt = [gZ, yZ], U1e = [q1e, yZ], Pgt = { type: dC }; Igt = (e, t, r, i) => { if (!(e && t == null)) return t.replaceAll ? t.replaceAll(r, i) : r.global ? t.replace(r, i) : t.split(r).join(i); }, Ogt = Igt; Mgt = () => /[#*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](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\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(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\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](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\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-\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](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\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(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\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-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\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; qgt = (e) => !(Rgt(e) || jgt(e)), Ugt = /[^\x20-\x7F]/u; V1e = $gt, id = Symbol("MODE_BREAK"), Fv = Symbol("MODE_FLAT"), sw = Symbol("cursor"), pZ = Symbol("DOC_FILL_PRINTED_LENGTH"); W1e = { join: $1e, line: Tgt, softline: Sgt, hardline: Fgt, literalline: U1e, group: j1e, conditionalGroup: xgt, fill: Dgt, lineSuffix: Agt, lineSuffixBoundary: wgt, cursor: Pgt, breakParent: yZ, ifBreak: Egt, trim: kgt, indent: FM, indentIfBreak: Cgt, align: uw, addAlignmentToDoc: Ngt, markAsRoot: vgt, dedentToRoot: ggt, dedent: bgt, hardlineWithoutBreakParent: gZ, literallineWithoutBreakParent: q1e, label: Bgt, concat: (e) => e }, z1e = { printDocToString: Wgt }, H1e = { willBreak: ogt, traverseDoc: fZ, findInDoc: hZ, mapDoc: PM, removeLines: cgt, stripTrailingHardline: pgt, replaceEndOfLine: fgt, canBreak: mgt }, zgt = L1e; }); var XZ = {}; o_(XZ, { __parsePrettierYamlConfig: () => o2e, default: () => Ebt, languages: () => Wme, options: () => zme, parsers: () => zZ, printers: () => s2e }); function s7t(e) { if (typeof e == "string") return Eme; if (Array.isArray(e)) return Cme; if (!e) return; let { type: t } = e; if (Pme.has(t)) return t; } function u7t(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 (Nme(e)) throw new Error("doc is valid."); let r = Object.prototype.toString.call(e); if (r !== "[object Object]") return `Unexpected doc '${r}'.`; let i = o7t([...Pme].map((a) => `'${a}'`)); return `Unexpected doc.type '${e.type}'. Expected it to be ${i}.`; } function p7t(e, t) { if (typeof e == "string") return t(e); let r = /* @__PURE__ */ new Map(); return i(e); function i(o) { if (r.has(o)) return r.get(o); let u = a(o); return r.set(o, u), u; } function a(o) { switch (Nme(o)) { case Cme: return t(o.map(i)); case qZ: return t({ ...o, parts: o.parts.map(i) }); case UZ: return t({ ...o, breakContents: i(o.breakContents), flatContents: i(o.flatContents) }); case jZ: { let { expandedStates: u, contents: c } = o; return u ? (u = u.map(i), c = u[0]) : c = i(c), t({ ...o, contents: c, expandedStates: u }); } case RZ: case wme: case Tme: case Fme: case $Z: return t({ ...o, contents: i(o.contents) }); case Eme: case Ame: case kme: case Sme: case fw: case VZ: return t(o); default: throw new c7t(o); } } } function _7t(e, t = PZ) { return p7t(e, (r) => typeof r == "string" ? ad(t, r.split(` `)) : r); } function UM(e, t) { return dw(t), { type: RZ, contents: t, n: e }; } function LM(e, t = {}) { return dw(e), Bme(t.expandedStates, true), { type: jZ, id: t.id, contents: e, break: !!t.shouldBreak, expandedStates: t.expandedStates }; } function X1e(e) { return UM(Number.NEGATIVE_INFINITY, e); } function f7t(e) { return UM({ type: "root" }, e); } function h7t(e) { return UM(-1, e); } function Y1e(e, t) { return LM(e[0], { ...t, expandedStates: e }); } function Ime(e) { return d7t(e), { type: qZ, parts: e }; } function FZ(e, t = "", r = {}) { return dw(e), t !== "" && dw(t), { type: UZ, breakContents: e, flatContents: t, groupId: r.groupId }; } function m7t(e) { return dw(e), { type: $Z, contents: e }; } function ad(e, t) { dw(e), Bme(t); let r = []; for (let i = 0; i < t.length; i++) i !== 0 && r.push(e), r.push(t[i]); return r; } function $M(e) { return (t, r, i) => { let a = !!(i != null && i.backwards); if (r === false) return false; let { length: o } = t, u = r; for (; u >= 0 && u < o; ) { let c = t.charAt(u); if (e instanceof RegExp) { if (!e.test(c)) return u; } else if (!e.includes(c)) return u; a ? u-- : u++; } return u === -1 || u === o ? u : false; }; } function v7t(e, t, r) { let i = !!(r != null && r.backwards); if (t === false) return false; let a = e.charAt(t); if (i) { if (e.charAt(t - 1) === "\r" && a === ` `) return t - 2; if (a === ` ` || a === "\r" || a === "\u2028" || a === "\u2029") return t - 1; } else { if (a === "\r" && e.charAt(t + 1) === ` `) return t + 2; if (a === ` ` || a === "\r" || a === "\u2028" || a === "\u2029") return t + 1; } return t; } function b7t(e, t) { let r = t - 1; r = Q1e(e, r, { backwards: true }), r = Z1e(e, r, { backwards: true }), r = Q1e(e, r, { backwards: true }); let i = Z1e(e, r, { backwards: true }); return r !== i; } function Lme(e, t) { let { node: r } = e; if (r.type === "root" && t.filepath && /(?:[/\\]|^)\.(?:prettier|stylelint|lintstaged)rc$/u.test(t.filepath)) return async (i) => { let a = await i(t.originalText, { parser: "json" }); return a ? [a, Co] : void 0; }; } function bS(e) { if (hS !== null && typeof hS.property) { let t = hS; return hS = bS.prototype = null, t; } return hS = bS.prototype = e ?? /* @__PURE__ */ Object.create(null), new bS(); } function w7t(e) { return bS(e); } function k7t(e, t = "type") { w7t(e); function r(i) { let a = i[t], o = e[a]; if (!Array.isArray(o)) throw Object.assign(new Error(`Missing visitor keys for '${a}'.`), { node: i }); return o; } return r; } function MM(e) { return e.position.start.offset; } function B7t(e) { return e.position.end.offset; } function R7t(e) { return M7t.test(e); } function j7t(e) { return L7t.test(e); } function q7t(e) { return O7t.test(e); } function U7t(e) { return `# @${I7t} ${e}`; } function $7t(e) { return Array.isArray(e) && e.length > 0; } function Bv(e, t) { return typeof e?.type == "string" && (!t || t.includes(e.type)); } function Mme(e, t, r) { return t("children" in e ? { ...e, children: e.children.map((i) => Mme(i, t, e)) } : e, r); } function mS(e, t, r) { Object.defineProperty(e, t, { get: r, enumerable: false }); } function V7t(e, t) { let r = 0, i = t.length; for (let a = e.position.end.offset - 1; a < i; a++) { let o = t[a]; if (o === ` ` && r++, r === 1 && /\S/u.test(o)) return false; if (r === 2) return true; } return false; } function Rme(e) { let { node: t } = e; switch (t.type) { case "tag": case "anchor": case "comment": return false; } let r = e.stack.length; for (let i = 1; i < r; i++) { let a = e.stack[i], o = e.stack[i - 1]; if (Array.isArray(o) && typeof a == "number" && a !== o.length - 1) return false; } return true; } function NZ(e) { return ES(e.children) ? NZ(Ah(false, e.children, -1)) : e; } function eme(e) { return e.value.trim() === "prettier-ignore"; } function J7t(e) { let { node: t } = e; if (t.type === "documentBody") { let r = e.parent.head; return wh(r) && eme(Ah(false, r.endComments, -1)); } return Y6(t) && eme(Ah(false, t.leadingComments, -1)); } function RM(e) { return !ES(e.children) && !W7t(e); } function W7t(e) { return Y6(e) || cw(e) || jme(e) || am(e) || wh(e); } function Y6(e) { return ES(e?.leadingComments); } function cw(e) { return ES(e?.middleComments); } function jme(e) { return e?.indicatorComment; } function am(e) { return e?.trailingComment; } function wh(e) { return ES(e?.endComments); } function qme(e) { let t = [], r; for (let i of e.split(/( +)/u)) i !== " " ? r === " " ? t.push(i) : t.push((t.pop() || "") + i) : r === void 0 && t.unshift(""), r = i; return r === " " && t.push((t.pop() || "") + " "), t[0] === "" && (t.shift(), t.unshift(" " + (t.shift() || ""))), t; } function z7t(e, t, r) { let i = t.split(` `).map((a, o, u) => o === 0 && o === u.length - 1 ? a : o !== 0 && o !== u.length - 1 ? a.trim() : o === 0 ? a.trimEnd() : a.trimStart()); return r.proseWrap === "preserve" ? i.map((a) => a.length === 0 ? [] : [a]) : i.map((a) => a.length === 0 ? [] : qme(a)).reduce((a, o, u) => u !== 0 && i[u - 1].length > 0 && o.length > 0 && !(e === "quoteDouble" && Ah(false, Ah(false, a, -1), -1).endsWith("\\")) ? [...a.slice(0, -1), [...Ah(false, a, -1), ...o]] : [...a, o], []).map((a) => r.proseWrap === "never" ? [a.join(" ")] : a); } function H7t(e, { parentIndent: t, isLastDescendant: r, options: i }) { let a = e.position.start.line === e.position.end.line ? "" : i.originalText.slice(e.position.start.offset, e.position.end.offset).match(/^[^\n]*\n(.*)$/su)[1], o; if (e.indent === null) { let l = a.match(/^(?<leadingSpace> *)[^\n\r ]/mu); o = l ? l.groups.leadingSpace.length : Number.POSITIVE_INFINITY; } else o = e.indent - 1 + t; let u = a.split(` `).map((l) => l.slice(o)); if (i.proseWrap === "preserve" || e.type === "blockLiteral") return c(u.map((l) => l.length === 0 ? [] : [l])); return c(u.map((l) => l.length === 0 ? [] : qme(l)).reduce((l, h, p) => p !== 0 && u[p - 1].length > 0 && h.length > 0 && !/^\s/u.test(h[0]) && !/^\s|\s$/u.test(Ah(false, l, -1)) ? [...l.slice(0, -1), [...Ah(false, l, -1), ...h]] : [...l, h], []).map((l) => l.reduce((h, p) => h.length > 0 && /\s$/u.test(Ah(false, h, -1)) ? [...h.slice(0, -1), Ah(false, h, -1) + " " + p] : [...h, p], [])).map((l) => i.proseWrap === "never" ? [l.join(" ")] : l)); function c(l) { if (e.chomping === "keep") return Ah(false, l, -1).length === 0 ? l.slice(0, -1) : l; let h = 0; for (let p = l.length - 1; p >= 0 && l[p].length === 0; p--) h++; return h === 0 ? l : h >= 2 && !r ? l.slice(0, -(h - 1)) : l.slice(0, -h); } } function BZ(e) { if (!e) return true; switch (e.type) { case "plain": case "quoteDouble": case "quoteSingle": case "alias": case "flowMapping": case "flowSequence": return true; default: return false; } } function Ume(e, t) { let { node: r, root: i } = e, a; return xZ.has(i) ? a = xZ.get(i) : (a = /* @__PURE__ */ new Set(), xZ.set(i, a)), !a.has(r.position.end.line) && (a.add(r.position.end.line), V7t(r, t) && !$me(e.parent)) ? Ome : ""; } function $me(e) { return wh(e) && !Bv(e, ["documentHead", "documentBody", "flowMapping", "flowSequence"]); } function Ch(e, t) { return UM(" ".repeat(e), t); } function G7t(e, t, r) { let { node: i } = e, a = e.ancestors.filter((h) => h.type === "sequence" || h.type === "mapping").length, o = Rme(e), u = [i.type === "blockFolded" ? ">" : "|"]; i.indent !== null && u.push(i.indent.toString()), i.chomping !== "clip" && u.push(i.chomping === "keep" ? "+" : "-"), jme(i) && u.push(" ", r("indicatorComment")); let c = H7t(i, { parentIndent: a, isLastDescendant: o, options: t }), l = []; for (let [h, p] of c.entries()) h === 0 && l.push(Co), l.push(Ime(ad(DS, p))), h !== c.length - 1 ? l.push(p.length === 0 ? Co : f7t(PZ)) : i.chomping === "keep" && o && l.push(X1e(p.length === 0 ? Co : PZ)); return i.indent === null ? u.push(h7t(Ch(t.tabWidth, l))) : u.push(X1e(Ch(i.indent - 1 + a, l))), u; } function tme(e, t, r) { let { node: i } = e, a = i.type === "flowMapping", o = a ? "{" : "[", u = a ? "}" : "]", c = Ome; a && i.children.length > 0 && t.bracketSpacing && (c = DS); let l = Ah(false, i.children, -1), h = l?.type === "flowMappingItem" && RM(l.key) && RM(l.value); return [o, Ch(t.tabWidth, [c, X7t(e, t, r), t.trailingComma === "none" ? "" : FZ(","), wh(i) ? [Co, ad(Co, e.map(r, "endComments"))] : ""]), h ? "" : c, u]; } function X7t(e, t, r) { return e.map(({ isLast: i, node: a, next: o }) => [r(), i ? "" : [",", DS, a.position.start.line !== o.position.start.line ? Ume(e, t.originalText) : ""]], "children"); } function Y7t(e, t, r) { var i; let { node: a, parent: o } = e, { key: u, value: c } = a, l = RM(u), h = RM(c); if (l && h) return ": "; let p = r("key"), f = Q7t(a) ? " " : ""; if (h) return a.type === "flowMappingItem" && o.type === "flowMapping" ? p : a.type === "mappingItem" && DZ(u.content, t) && !am(u.content) && ((i = o.tag) == null ? void 0 : i.value) !== "tag:yaml.org,2002:set" ? [p, f, ":"] : ["? ", Ch(2, p)]; let v = r("value"); if (l) return [": ", Ch(2, v)]; if (Y6(c) || !BZ(u.content)) return ["? ", Ch(2, p), Co, ...e.map(() => [r(), Co], "value", "leadingComments"), ": ", Ch(2, v)]; if (Z7t(u.content) && !Y6(u.content) && !cw(u.content) && !am(u.content) && !wh(u) && !Y6(c.content) && !cw(c.content) && !wh(c) && DZ(c.content, t)) return [p, f, ": ", v]; let x = Symbol("mappingKey"), A = LM([FZ("? "), LM(Ch(2, p), { id: x })]), P = [Co, ": ", Ch(2, v)], U = [f, ":"]; wh(c) && c.content && Bv(c.content, ["flowMapping", "flowSequence"]) && c.content.children.length === 0 ? U.push(" ") : Y6(c.content) || wh(c) && c.content && !Bv(c.content, ["mapping", "sequence"]) || o.type === "mapping" && am(u.content) && BZ(c.content) || Bv(c.content, ["mapping", "sequence"]) && c.content.tag === null && c.content.anchor === null ? U.push(Co) : c.content ? U.push(DS) : am(c) && U.push(" "), U.push(v); let $ = Ch(t.tabWidth, U); return DZ(u.content, t) && !Y6(u.content) && !cw(u.content) && !wh(u) ? Y1e([[p, $]]) : Y1e([[A, FZ(P, $, { groupId: x })]]); } function DZ(e, t) { if (!e) return true; switch (e.type) { case "plain": case "quoteSingle": case "quoteDouble": break; case "alias": return true; default: return false; } if (t.proseWrap === "preserve") return e.position.start.line === e.position.end.line; if (/\\$/mu.test(t.originalText.slice(e.position.start.offset, e.position.end.offset))) return false; switch (t.proseWrap) { case "never": return !e.value.includes(` `); case "always": return !/[\n ]/u.test(e.value); default: return false; } } function Q7t(e) { var t; return ((t = e.key.content) == null ? void 0 : t.type) === "alias"; } function Z7t(e) { if (!e) return true; switch (e.type) { case "plain": case "quoteDouble": case "quoteSingle": return e.position.start.line === e.position.end.line; case "alias": return true; default: return false; } } function tvt(e) { return Mme(e, rvt); } function rvt(e) { switch (e.type) { case "docum