//#region node_modules/@vue/shared/dist/shared.esm-bundler.js // @__NO_SIDE_EFFECTS__ function e(e) { let t = /* @__PURE__ */ Object.create(null); for (let n of e.split(",")) t[n] = 1; return (e) => e in t; } var t = {}, n = [], r = () => {}, i = () => !1, a = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && (e.charCodeAt(2) > 122 || e.charCodeAt(2) < 97), o = (e) => e.startsWith("onUpdate:"), s = Object.assign, c = (e, t) => { let n = e.indexOf(t); n > -1 && e.splice(n, 1); }, l = Object.prototype.hasOwnProperty, u = (e, t) => l.call(e, t), d = Array.isArray, f = (e) => x(e) === "[object Map]", p = (e) => x(e) === "[object Set]", m = (e) => x(e) === "[object Date]", h = (e) => typeof e == "function", g = (e) => typeof e == "string", _ = (e) => typeof e == "symbol", v = (e) => typeof e == "object" && !!e, y = (e) => (v(e) || h(e)) && h(e.then) && h(e.catch), b = Object.prototype.toString, x = (e) => b.call(e), S = (e) => x(e).slice(8, -1), C = (e) => x(e) === "[object Object]", w = (e) => g(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, ee = /* @__PURE__ */ e(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"), te = (e) => { let t = /* @__PURE__ */ Object.create(null); return ((n) => t[n] || (t[n] = e(n))); }, ne = /-\w/g, T = te((e) => e.replace(ne, (e) => e.slice(1).toUpperCase())), re = /\B([A-Z])/g, E = te((e) => e.replace(re, "-$1").toLowerCase()), ie = te((e) => e.charAt(0).toUpperCase() + e.slice(1)), ae = te((e) => e ? `on${ie(e)}` : ""), oe = (e, t) => !Object.is(e, t), se = (e, ...t) => { for (let n = 0; n < e.length; n++) e[n](...t); }, D = (e, t, n, r = !1) => { Object.defineProperty(e, t, { configurable: !0, enumerable: !1, writable: r, value: n }); }, ce = (e) => { let t = parseFloat(e); return isNaN(t) ? e : t; }, le = (e) => { let t = g(e) ? Number(e) : NaN; return isNaN(t) ? e : t; }, ue, de = () => ue ||= typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {}; function fe(e) { if (d(e)) { let t = {}; for (let n = 0; n < e.length; n++) { let r = e[n], i = g(r) ? ge(r) : fe(r); if (i) for (let e in i) t[e] = i[e]; } return t; } if (g(e) || v(e)) return e; } var pe = /;(?![^(]*\))/g, me = /:([^]+)/, he = /\/\*[^]*?\*\//g; function ge(e) { let t = {}; return e.replace(he, "").split(pe).forEach((e) => { if (e) { let n = e.split(me); n.length > 1 && (t[n[0].trim()] = n[1].trim()); } }), t; } function O(e) { let t = ""; if (g(e)) t = e; else if (d(e)) for (let n = 0; n < e.length; n++) { let r = O(e[n]); r && (t += r + " "); } else if (v(e)) for (let n in e) e[n] && (t += n + " "); return t.trim(); } var _e = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", ve = /* @__PURE__ */ e(_e); _e + ""; function ye(e) { return !!e || e === ""; } function be(e, t) { if (e.length !== t.length) return !1; let n = !0; for (let r = 0; n && r < e.length; r++) n = xe(e[r], t[r]); return n; } function xe(e, t) { if (e === t) return !0; let n = m(e), r = m(t); if (n || r) return n && r ? e.getTime() === t.getTime() : !1; if (n = _(e), r = _(t), n || r) return e === t; if (n = d(e), r = d(t), n || r) return n && r ? be(e, t) : !1; if (n = v(e), r = v(t), n || r) { if (!n || !r || Object.keys(e).length !== Object.keys(t).length) return !1; for (let n in e) { let r = e.hasOwnProperty(n), i = t.hasOwnProperty(n); if (r && !i || !r && i || !xe(e[n], t[n])) return !1; } } return String(e) === String(t); } function Se(e, t) { return e.findIndex((e) => xe(e, t)); } var Ce = (e) => !!(e && e.__v_isRef === !0), k = (e) => g(e) ? e : e == null ? "" : d(e) || v(e) && (e.toString === b || !h(e.toString)) ? Ce(e) ? k(e.value) : JSON.stringify(e, we, 2) : String(e), we = (e, t) => Ce(t) ? we(e, t.value) : f(t) ? { [`Map(${t.size})`]: [...t.entries()].reduce((e, [t, n], r) => (e[Te(t, r) + " =>"] = n, e), {}) } : p(t) ? { [`Set(${t.size})`]: [...t.values()].map((e) => Te(e)) } : _(t) ? Te(t) : v(t) && !d(t) && !C(t) ? String(t) : t, Te = (e, t = "") => _(e) ? `Symbol(${e.description ?? t})` : e, A, Ee = class { constructor(e = !1) { this.detached = e, this._active = !0, this._on = 0, this.effects = [], this.cleanups = [], this._isPaused = !1, this._warnOnRun = !0, this.__v_skip = !0, !e && A && (A.active ? (this.parent = A, this.index = (A.scopes || (A.scopes = [])).push(this) - 1) : (this._active = !1, this._warnOnRun = !1)); } get active() { return this._active; } pause() { if (this._active) { this._isPaused = !0; let e, t; if (this.scopes) { let n = this.scopes.slice(); for (e = 0, t = n.length; e < t; e++) n[e].pause(); } for (e = 0, t = this.effects.length; e < t; e++) this.effects[e].pause(); } } resume() { if (this._active && this._isPaused) { this._isPaused = !1; let e, t; if (this.scopes) { let n = this.scopes.slice(); for (e = 0, t = n.length; e < t; e++) n[e].resume(); } let n = this.effects.slice(); for (e = 0, t = n.length; e < t; e++) n[e].resume(); } } run(e) { if (this._active) { let t = A; try { return A = this, e(); } finally { A = t; } } } on() { ++this._on === 1 && (this.prevScope = A, A = this); } off() { if (this._on > 0 && --this._on === 0) { if (A === this) A = this.prevScope; else { let e = A; for (; e;) { if (e.prevScope === this) { e.prevScope = this.prevScope; break; } e = e.prevScope; } } this.prevScope = void 0; } } stop(e) { if (this._active) { this._active = !1; let t, n; for (t = 0, n = this.effects.length; t < n; t++) this.effects[t].stop(); for (this.effects.length = 0, t = 0, n = this.cleanups.length; t < n; t++) this.cleanups[t](); if (this.cleanups.length = 0, this.scopes) { let e = this.scopes.slice(); for (t = 0, n = e.length; t < n; t++) e[t].stop(!0); this.scopes.length = 0; } if (!this.detached && this.parent && !e) { let e = this.parent.scopes.pop(); e && e !== this && (this.parent.scopes[this.index] = e, e.index = this.index); } this.parent = void 0; } } }; function De() { return A; } var j, Oe = /* @__PURE__ */ new WeakSet(), ke = class { constructor(e) { this.fn = e, this.deps = void 0, this.depsTail = void 0, this.flags = 5, this.next = void 0, this.cleanup = void 0, this.scheduler = void 0, A && (A.active ? A.effects.push(this) : this.flags &= -2); } pause() { this.flags |= 64; } resume() { this.flags & 64 && (this.flags &= -65, Oe.has(this) && (Oe.delete(this), this.trigger())); } notify() { this.flags & 2 && !(this.flags & 32) || this.flags & 8 || Ne(this); } run() { if (!(this.flags & 1)) return this.fn(); this.flags |= 2, Ke(this), Ie(this); let e = j, t = He; j = this, He = !0; try { return this.fn(); } finally { Le(this), j = e, He = t, this.flags &= -3; } } stop() { if (this.flags & 1) { for (let e = this.deps; e; e = e.nextDep) Be(e); this.deps = this.depsTail = void 0, Ke(this), this.onStop && this.onStop(), this.flags &= -2; } } trigger() { this.flags & 64 ? Oe.add(this) : this.scheduler ? this.scheduler() : this.runIfDirty(); } runIfDirty() { Re(this) && this.run(); } get dirty() { return Re(this); } }, Ae = 0, je, Me; function Ne(e, t = !1) { if (e.flags |= 8, t) { e.next = Me, Me = e; return; } e.next = je, je = e; } function Pe() { Ae++; } function Fe() { if (--Ae > 0) return; if (Me) { let e = Me; for (Me = void 0; e;) { let t = e.next; e.next = void 0, e.flags &= -9, e = t; } } let e; for (; je;) { let t = je; for (je = void 0; t;) { let n = t.next; if (t.next = void 0, t.flags &= -9, t.flags & 1) try { t.trigger(); } catch (t) { e ||= t; } t = n; } } if (e) throw e; } function Ie(e) { for (let t = e.deps; t; t = t.nextDep) t.version = -1, t.prevActiveLink = t.dep.activeLink, t.dep.activeLink = t; } function Le(e) { let t, n = e.depsTail, r = n; for (; r;) { let e = r.prevDep; r.version === -1 ? (r === n && (n = e), Be(r), Ve(r)) : t = r, r.dep.activeLink = r.prevActiveLink, r.prevActiveLink = void 0, r = e; } e.deps = t, e.depsTail = n; } function Re(e) { for (let t = e.deps; t; t = t.nextDep) if (t.dep.version !== t.version || t.dep.computed && (ze(t.dep.computed) || t.dep.version !== t.version)) return !0; return !!e._dirty; } function ze(e) { if (e.flags & 4 && !(e.flags & 16) || (e.flags &= -17, e.globalVersion === qe) || (e.globalVersion = qe, !e.isSSR && e.flags & 128 && (!e.deps && !e._dirty || !Re(e)))) return; e.flags |= 2; let t = e.dep, n = j, r = He; j = e, He = !0; try { Ie(e); let n = e.fn(e._value); (t.version === 0 || oe(n, e._value)) && (e.flags |= 128, e._value = n, t.version++); } catch (e) { throw t.version++, e; } finally { j = n, He = r, Le(e), e.flags &= -3; } } function Be(e, t = !1) { let { dep: n, prevSub: r, nextSub: i } = e; if (r && (r.nextSub = i, e.prevSub = void 0), i && (i.prevSub = r, e.nextSub = void 0), n.subs === e && (n.subs = r, !r && n.computed)) { n.computed.flags &= -5; for (let e = n.computed.deps; e; e = e.nextDep) Be(e, !0); } !t && !--n.sc && n.map && n.map.delete(n.key); } function Ve(e) { let { prevDep: t, nextDep: n } = e; t && (t.nextDep = n, e.prevDep = void 0), n && (n.prevDep = t, e.nextDep = void 0); } var He = !0, Ue = []; function We() { Ue.push(He), He = !1; } function Ge() { let e = Ue.pop(); He = e === void 0 || e; } function Ke(e) { let { cleanup: t } = e; if (e.cleanup = void 0, t) { let e = j; j = void 0; try { t(); } finally { j = e; } } } var qe = 0, Je = class { constructor(e, t) { this.sub = e, this.dep = t, this.version = t.version, this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; } }, Ye = class { constructor(e) { this.computed = e, this.version = 0, this.activeLink = void 0, this.subs = void 0, this.map = void 0, this.key = void 0, this.sc = 0, this.__v_skip = !0; } track(e) { if (!j || !He || j === this.computed) return; let t = this.activeLink; if (t === void 0 || t.sub !== j) t = this.activeLink = new Je(j, this), j.deps ? (t.prevDep = j.depsTail, j.depsTail.nextDep = t, j.depsTail = t) : j.deps = j.depsTail = t, Xe(t); else if (t.version === -1 && (t.version = this.version, t.nextDep)) { let e = t.nextDep; e.prevDep = t.prevDep, t.prevDep && (t.prevDep.nextDep = e), t.prevDep = j.depsTail, t.nextDep = void 0, j.depsTail.nextDep = t, j.depsTail = t, j.deps === t && (j.deps = e); } return t; } trigger(e) { this.version++, qe++, this.notify(e); } notify(e) { Pe(); try { for (let e = this.subs; e; e = e.prevSub) e.sub.notify() && e.sub.dep.notify(); } finally { Fe(); } } }; function Xe(e) { if (e.dep.sc++, e.sub.flags & 4) { let t = e.dep.computed; if (t && !e.dep.subs) { t.flags |= 20; for (let e = t.deps; e; e = e.nextDep) Xe(e); } let n = e.dep.subs; n !== e && (e.prevSub = n, n && (n.nextSub = e)), e.dep.subs = e; } } var Ze = /* @__PURE__ */ new WeakMap(), Qe = /* @__PURE__ */ Symbol(""), $e = /* @__PURE__ */ Symbol(""), et = /* @__PURE__ */ Symbol(""); function M(e, t, n) { if (He && j) { let t = Ze.get(e); t || Ze.set(e, t = /* @__PURE__ */ new Map()); let r = t.get(n); r || (t.set(n, r = new Ye()), r.map = t, r.key = n), r.track(); } } function tt(e, t, n, r, i, a) { let o = Ze.get(e); if (!o) { qe++; return; } let s = (e) => { e && e.trigger(); }; if (Pe(), t === "clear") o.forEach(s); else { let i = d(e), a = i && w(n); if (i && n === "length") { let e = Number(r); o.forEach((t, n) => { (n === "length" || n === et || !_(n) && n >= e) && s(t); }); } else switch ((n !== void 0 || o.has(void 0)) && s(o.get(n)), a && s(o.get(et)), t) { case "add": i ? a && s(o.get("length")) : (s(o.get(Qe)), f(e) && s(o.get($e))); break; case "delete": i || (s(o.get(Qe)), f(e) && s(o.get($e))); break; case "set": f(e) && s(o.get(Qe)); } } Fe(); } function nt(e) { let t = /* @__PURE__ */ N(e); return t === e ? t : (M(t, "iterate", et), /* @__PURE__ */ Vt(e) ? t : t.map(Wt)); } function rt(e) { return M(e = /* @__PURE__ */ N(e), "iterate", et), e; } function it(e, t) { return /* @__PURE__ */ Bt(e) ? Gt(/* @__PURE__ */ zt(e) ? Wt(t) : t) : Wt(t); } var at = { __proto__: null, [Symbol.iterator]() { return ot(this, Symbol.iterator, (e) => it(this, e)); }, concat(...e) { return nt(this).concat(...e.map((e) => d(e) ? nt(e) : e)); }, entries() { return ot(this, "entries", (e) => (e[1] = it(this, e[1]), e)); }, every(e, t) { return ct(this, "every", e, t, void 0, arguments); }, filter(e, t) { return ct(this, "filter", e, t, (e) => e.map((e) => it(this, e)), arguments); }, find(e, t) { return ct(this, "find", e, t, (e) => it(this, e), arguments); }, findIndex(e, t) { return ct(this, "findIndex", e, t, void 0, arguments); }, findLast(e, t) { return ct(this, "findLast", e, t, (e) => it(this, e), arguments); }, findLastIndex(e, t) { return ct(this, "findLastIndex", e, t, void 0, arguments); }, forEach(e, t) { return ct(this, "forEach", e, t, void 0, arguments); }, includes(...e) { return ut(this, "includes", e); }, indexOf(...e) { return ut(this, "indexOf", e); }, join(e) { return nt(this).join(e); }, lastIndexOf(...e) { return ut(this, "lastIndexOf", e); }, map(e, t) { return ct(this, "map", e, t, void 0, arguments); }, pop() { return dt(this, "pop"); }, push(...e) { return dt(this, "push", e); }, reduce(e, ...t) { return lt(this, "reduce", e, t); }, reduceRight(e, ...t) { return lt(this, "reduceRight", e, t); }, shift() { return dt(this, "shift"); }, some(e, t) { return ct(this, "some", e, t, void 0, arguments); }, splice(...e) { return dt(this, "splice", e); }, toReversed() { return nt(this).toReversed(); }, toSorted(e) { return nt(this).toSorted(e); }, toSpliced(...e) { return nt(this).toSpliced(...e); }, unshift(...e) { return dt(this, "unshift", e); }, values() { return ot(this, "values", (e) => it(this, e)); } }; function ot(e, t, n) { let r = rt(e), i = r[t](); return r !== e && !/* @__PURE__ */ Vt(e) && (i._next = i.next, i.next = () => { let e = i._next(); return e.done || (e.value = n(e.value)), e; }), i; } var st = Array.prototype; function ct(e, t, n, r, i, a) { let o = rt(e), s = o !== e && !/* @__PURE__ */ Vt(e), c = o[t]; if (c !== st[t]) { let t = c.apply(e, a); return s ? Wt(t) : t; } let l = n; o !== e && (s ? l = function(t, r) { return n.call(this, it(e, t), r, e); } : n.length > 2 && (l = function(t, r) { return n.call(this, t, r, e); })); let u = c.call(o, l, r); return s && i ? i(u) : u; } function lt(e, t, n, r) { let i = rt(e), a = i !== e && !/* @__PURE__ */ Vt(e), o = n, s = !1; i !== e && (a ? (s = r.length === 0, o = function(t, r, i) { return s && (s = !1, t = it(e, t)), n.call(this, t, it(e, r), i, e); }) : n.length > 3 && (o = function(t, r, i) { return n.call(this, t, r, i, e); })); let c = i[t](o, ...r); return s ? it(e, c) : c; } function ut(e, t, n) { let r = /* @__PURE__ */ N(e); M(r, "iterate", et); let i = r[t](...n); return (i === -1 || i === !1) && /* @__PURE__ */ Ht(n[0]) ? (n[0] = /* @__PURE__ */ N(n[0]), r[t](...n)) : i; } function dt(e, t, n = []) { We(), Pe(); let r = (/* @__PURE__ */ N(e))[t].apply(e, n); return Fe(), Ge(), r; } var ft = /* @__PURE__ */ e("__proto__,__v_isRef,__isVue"), pt = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((e) => e !== "arguments" && e !== "caller").map((e) => Symbol[e]).filter(_)); function mt(e) { _(e) || (e = String(e)); let t = /* @__PURE__ */ N(this); return M(t, "has", e), t.hasOwnProperty(e); } var ht = class { constructor(e = !1, t = !1) { this._isReadonly = e, this._isShallow = t; } get(e, t, n) { if (t === "__v_skip") return e.__v_skip; let r = this._isReadonly, i = this._isShallow; if (t === "__v_isReactive") return !r; if (t === "__v_isReadonly") return r; if (t === "__v_isShallow") return i; if (t === "__v_raw") return n === (r ? i ? Nt : Mt : i ? jt : At).get(e) || Object.getPrototypeOf(e) === Object.getPrototypeOf(n) ? e : void 0; let a = d(e); if (!r) { let e; if (a && (e = at[t])) return e; if (t === "hasOwnProperty") return mt; } let o = Reflect.get(e, t, /* @__PURE__ */ P(e) ? e : n); if ((_(t) ? pt.has(t) : ft(t)) || (r || M(e, "get", t), i)) return o; if (/* @__PURE__ */ P(o)) { let e = a && w(t) ? o : o.value; return r && v(e) ? /* @__PURE__ */ Lt(e) : e; } return v(o) ? r ? /* @__PURE__ */ Lt(o) : /* @__PURE__ */ Ft(o) : o; } }, gt = class extends ht { constructor(e = !1) { super(!1, e); } set(e, t, n, r) { let i = e[t], a = d(e) && w(t); if (!this._isShallow) { let e = /* @__PURE__ */ Bt(i); if (!/* @__PURE__ */ Vt(n) && !/* @__PURE__ */ Bt(n) && (i = /* @__PURE__ */ N(i), n = /* @__PURE__ */ N(n)), !a && /* @__PURE__ */ P(i) && !/* @__PURE__ */ P(n)) return e || (i.value = n), !0; } let o = a ? Number(t) < e.length : u(e, t), s = Reflect.set(e, t, n, /* @__PURE__ */ P(e) ? e : r); return e === /* @__PURE__ */ N(r) && s && (o ? oe(n, i) && tt(e, "set", t, n, i) : tt(e, "add", t, n)), s; } deleteProperty(e, t) { let n = u(e, t), r = e[t], i = Reflect.deleteProperty(e, t); return i && n && tt(e, "delete", t, void 0, r), i; } has(e, t) { let n = Reflect.has(e, t); return (!_(t) || !pt.has(t)) && M(e, "has", t), n; } ownKeys(e) { return M(e, "iterate", d(e) ? "length" : Qe), Reflect.ownKeys(e); } }, _t = class extends ht { constructor(e = !1) { super(!0, e); } set(e, t) { return !0; } deleteProperty(e, t) { return !0; } }, vt = /* @__PURE__ */ new gt(), yt = /* @__PURE__ */ new _t(), bt = /* @__PURE__ */ new gt(!0), xt = (e) => e, St = (e) => Reflect.getPrototypeOf(e); function Ct(e, t, n) { return function(...r) { let i = this.__v_raw, a = /* @__PURE__ */ N(i), o = f(a), c = e === "entries" || e === Symbol.iterator && o, l = e === "keys" && o, u = i[e](...r), d = n ? xt : t ? Gt : Wt; return !t && M(a, "iterate", l ? $e : Qe), s(Object.create(u), { next() { let { value: e, done: t } = u.next(); return t ? { value: e, done: t } : { value: c ? [d(e[0]), d(e[1])] : d(e), done: t }; } }); }; } function wt(e) { return function(...t) { return e === "delete" ? !1 : e === "clear" ? void 0 : this; }; } function Tt(e, t) { let n = { get(n) { let r = this.__v_raw, i = /* @__PURE__ */ N(r), a = /* @__PURE__ */ N(n); e || (oe(n, a) && M(i, "get", n), M(i, "get", a)); let { has: o } = St(i), s = t ? xt : e ? Gt : Wt; if (o.call(i, n)) return s(r.get(n)); if (o.call(i, a)) return s(r.get(a)); r !== i && r.get(n); }, get size() { let t = this.__v_raw; return !e && M(/* @__PURE__ */ N(t), "iterate", Qe), t.size; }, has(t) { let n = this.__v_raw, r = /* @__PURE__ */ N(n), i = /* @__PURE__ */ N(t); return e || (oe(t, i) && M(r, "has", t), M(r, "has", i)), t === i ? n.has(t) : n.has(t) || n.has(i); }, forEach(n, r) { let i = this, a = i.__v_raw, o = /* @__PURE__ */ N(a), s = t ? xt : e ? Gt : Wt; return !e && M(o, "iterate", Qe), a.forEach((e, t) => n.call(r, s(e), s(t), i)); } }; return s(n, e ? { add: wt("add"), set: wt("set"), delete: wt("delete"), clear: wt("clear") } : { add(e) { let n = /* @__PURE__ */ N(this), r = St(n), i = /* @__PURE__ */ N(e), a = !t && !/* @__PURE__ */ Vt(e) && !/* @__PURE__ */ Bt(e) ? i : e; return r.has.call(n, a) || oe(e, a) && r.has.call(n, e) || oe(i, a) && r.has.call(n, i) || (n.add(a), tt(n, "add", a, a)), this; }, set(e, n) { !t && !/* @__PURE__ */ Vt(n) && !/* @__PURE__ */ Bt(n) && (n = /* @__PURE__ */ N(n)); let r = /* @__PURE__ */ N(this), { has: i, get: a } = St(r), o = i.call(r, e); o ||= (e = /* @__PURE__ */ N(e), i.call(r, e)); let s = a.call(r, e); return r.set(e, n), o ? oe(n, s) && tt(r, "set", e, n, s) : tt(r, "add", e, n), this; }, delete(e) { let t = /* @__PURE__ */ N(this), { has: n, get: r } = St(t), i = n.call(t, e); i ||= (e = /* @__PURE__ */ N(e), n.call(t, e)); let a = r ? r.call(t, e) : void 0, o = t.delete(e); return i && tt(t, "delete", e, void 0, a), o; }, clear() { let e = /* @__PURE__ */ N(this), t = e.size !== 0, n = e.clear(); return t && tt(e, "clear", void 0, void 0, void 0), n; } }), [ "keys", "values", "entries", Symbol.iterator ].forEach((r) => { n[r] = Ct(r, e, t); }), n; } function Et(e, t) { let n = Tt(e, t); return (t, r, i) => r === "__v_isReactive" ? !e : r === "__v_isReadonly" ? e : r === "__v_raw" ? t : Reflect.get(u(n, r) && r in t ? n : t, r, i); } var Dt = { get: /* @__PURE__ */ Et(!1, !1) }, Ot = { get: /* @__PURE__ */ Et(!1, !0) }, kt = { get: /* @__PURE__ */ Et(!0, !1) }, At = /* @__PURE__ */ new WeakMap(), jt = /* @__PURE__ */ new WeakMap(), Mt = /* @__PURE__ */ new WeakMap(), Nt = /* @__PURE__ */ new WeakMap(); function Pt(e) { switch (e) { case "Object": case "Array": return 1; case "Map": case "Set": case "WeakMap": case "WeakSet": return 2; default: return 0; } } // @__NO_SIDE_EFFECTS__ function Ft(e) { return /* @__PURE__ */ Bt(e) ? e : Rt(e, !1, vt, Dt, At); } // @__NO_SIDE_EFFECTS__ function It(e) { return Rt(e, !1, bt, Ot, jt); } // @__NO_SIDE_EFFECTS__ function Lt(e) { return Rt(e, !0, yt, kt, Mt); } function Rt(e, t, n, r, i) { if (!v(e) || e.__v_raw && !(t && e.__v_isReactive) || e.__v_skip || !Object.isExtensible(e)) return e; let a = i.get(e); if (a) return a; let o = Pt(S(e)); if (o === 0) return e; let s = new Proxy(e, o === 2 ? r : n); return i.set(e, s), s; } // @__NO_SIDE_EFFECTS__ function zt(e) { return /* @__PURE__ */ Bt(e) ? /* @__PURE__ */ zt(e.__v_raw) : !!(e && e.__v_isReactive); } // @__NO_SIDE_EFFECTS__ function Bt(e) { return !!(e && e.__v_isReadonly); } // @__NO_SIDE_EFFECTS__ function Vt(e) { return !!(e && e.__v_isShallow); } // @__NO_SIDE_EFFECTS__ function Ht(e) { return e ? !!e.__v_raw : !1; } // @__NO_SIDE_EFFECTS__ function N(e) { let t = e && e.__v_raw; return t ? /* @__PURE__ */ N(t) : e; } function Ut(e) { return !u(e, "__v_skip") && Object.isExtensible(e) && D(e, "__v_skip", !0), e; } var Wt = (e) => v(e) ? /* @__PURE__ */ Ft(e) : e, Gt = (e) => v(e) ? /* @__PURE__ */ Lt(e) : e; // @__NO_SIDE_EFFECTS__ function P(e) { return e ? e.__v_isRef === !0 : !1; } // @__NO_SIDE_EFFECTS__ function F(e) { return Kt(e, !1); } function Kt(e, t) { return /* @__PURE__ */ P(e) ? e : new qt(e, t); } var qt = class { constructor(e, t) { this.dep = new Ye(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = t ? e : /* @__PURE__ */ N(e), this._value = t ? e : Wt(e), this.__v_isShallow = t; } get value() { return this.dep.track(), this._value; } set value(e) { let t = this._rawValue, n = this.__v_isShallow || /* @__PURE__ */ Vt(e) || /* @__PURE__ */ Bt(e); e = n ? e : /* @__PURE__ */ N(e), oe(e, t) && (this._rawValue = e, this._value = n ? e : Wt(e), this.dep.trigger()); } }; function I(e) { return /* @__PURE__ */ P(e) ? e.value : e; } var Jt = { get: (e, t, n) => t === "__v_raw" ? e : I(Reflect.get(e, t, n)), set: (e, t, n, r) => { let i = e[t]; return /* @__PURE__ */ P(i) && !/* @__PURE__ */ P(n) ? (i.value = n, !0) : Reflect.set(e, t, n, r); } }; function Yt(e) { return /* @__PURE__ */ zt(e) ? e : new Proxy(e, Jt); } var Xt = class { constructor(e, t, n) { this.fn = e, this.setter = t, this._value = void 0, this.dep = new Ye(this), this.__v_isRef = !0, this.deps = void 0, this.depsTail = void 0, this.flags = 16, this.globalVersion = qe - 1, this.next = void 0, this.effect = this, this.__v_isReadonly = !t, this.isSSR = n; } notify() { if (this.flags |= 16, !(this.flags & 8) && j !== this) return Ne(this, !0), !0; } get value() { let e = this.dep.track(); return ze(this), e && (e.version = this.dep.version), this._value; } set value(e) { this.setter && this.setter(e); } }; // @__NO_SIDE_EFFECTS__ function Zt(e, t, n = !1) { let r, i; return h(e) ? r = e : (r = e.get, i = e.set), new Xt(r, i, n); } var Qt = {}, $t = /* @__PURE__ */ new WeakMap(), en = void 0; function tn(e, t = !1, n = en) { if (n) { let t = $t.get(n); t || $t.set(n, t = []), t.push(e); } } function nn(e, n, i = t) { let { immediate: a, deep: o, once: s, scheduler: l, augmentJob: u, call: f } = i, p = (e) => o ? e : /* @__PURE__ */ Vt(e) || o === !1 || o === 0 ? rn(e, 1) : rn(e), m, g, _, v, y = !1, b = !1; if (/* @__PURE__ */ P(e) ? (g = () => e.value, y = /* @__PURE__ */ Vt(e)) : /* @__PURE__ */ zt(e) ? (g = () => p(e), y = !0) : d(e) ? (b = !0, y = e.some((e) => /* @__PURE__ */ zt(e) || /* @__PURE__ */ Vt(e)), g = () => e.map((e) => { if (/* @__PURE__ */ P(e)) return e.value; if (/* @__PURE__ */ zt(e)) return p(e); if (h(e)) return f ? f(e, 2) : e(); })) : g = h(e) ? n ? f ? () => f(e, 2) : e : () => { if (_) { We(); try { _(); } finally { Ge(); } } let t = en; en = m; try { return f ? f(e, 3, [v]) : e(v); } finally { en = t; } } : r, n && o) { let e = g, t = o === !0 ? Infinity : o; g = () => rn(e(), t); } let x = De(), S = () => { m.stop(), x && x.active && c(x.effects, m); }; if (s && n) { let e = n; n = (...t) => { let n = e(...t); return S(), n; }; } let C = b ? Array(e.length).fill(Qt) : Qt, w = (e) => { if (!(!(m.flags & 1) || !m.dirty && !e)) if (n) { let t = m.run(); if (e || o || y || (b ? t.some((e, t) => oe(e, C[t])) : oe(t, C))) { _ && _(); let e = en; en = m; try { let e = [ t, C === Qt ? void 0 : b && C[0] === Qt ? [] : C, v ]; C = t, f ? f(n, 3, e) : n(...e); } finally { en = e; } } } else m.run(); }; return u && u(w), m = new ke(g), m.scheduler = l ? () => l(w, !1) : w, v = (e) => tn(e, !1, m), _ = m.onStop = () => { let e = $t.get(m); if (e) { if (f) f(e, 4); else for (let t of e) t(); $t.delete(m); } }, n ? a ? w(!0) : C = m.run() : l ? l(w.bind(null, !0), !0) : m.run(), S.pause = m.pause.bind(m), S.resume = m.resume.bind(m), S.stop = S, S; } function rn(e, t = Infinity, n) { if (t <= 0 || !v(e) || e.__v_skip || (n ||= /* @__PURE__ */ new Map(), (n.get(e) || 0) >= t)) return e; if (n.set(e, t), t--, /* @__PURE__ */ P(e)) rn(e.value, t, n); else if (d(e)) for (let r = 0; r < e.length; r++) rn(e[r], t, n); else if (p(e) || f(e)) e.forEach((e) => { rn(e, t, n); }); else if (C(e)) { for (let r in e) rn(e[r], t, n); for (let r of Object.getOwnPropertySymbols(e)) Object.prototype.propertyIsEnumerable.call(e, r) && rn(e[r], t, n); } return e; } //#endregion //#region node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js function an(e, t, n, r) { try { return r ? e(...r) : e(); } catch (e) { sn(e, t, n); } } function on(e, t, n, r) { if (h(e)) { let i = an(e, t, n, r); return i && y(i) && i.catch((e) => { sn(e, t, n); }), i; } if (d(e)) { let i = []; for (let a = 0; a < e.length; a++) i.push(on(e[a], t, n, r)); return i; } } function sn(e, n, r, i = !0) { let a = n ? n.vnode : null, { errorHandler: o, throwUnhandledErrorInProduction: s } = n && n.appContext.config || t; if (n) { let t = n.parent, i = n.proxy, a = `https://vuejs.org/error-reference/#runtime-${r}`; for (; t;) { let n = t.ec; if (n) { for (let t = 0; t < n.length; t++) if (n[t](e, i, a) === !1) return; } t = t.parent; } if (o) { We(), an(o, null, 10, [ e, i, a ]), Ge(); return; } } cn(e, r, a, i, s); } function cn(e, t, n, r = !0, i = !1) { if (i) throw e; console.error(e); } var L = [], ln = -1, un = [], dn = null, fn = 0, pn = /* @__PURE__ */ Promise.resolve(), mn = null; function hn(e) { let t = mn || pn; return e ? t.then(this ? e.bind(this) : e) : t; } function gn(e) { let t = ln + 1, n = L.length; for (; t < n;) { let r = t + n >>> 1, i = L[r], a = Sn(i); a < e || a === e && i.flags & 2 ? t = r + 1 : n = r; } return t; } function _n(e) { if (!(e.flags & 1)) { let t = Sn(e), n = L[L.length - 1]; !n || !(e.flags & 2) && t >= Sn(n) ? L.push(e) : L.splice(gn(t), 0, e), e.flags |= 1, vn(); } } function vn() { mn ||= pn.then(Cn); } function yn(e) { d(e) ? un.push(...e) : dn && e.id === -1 ? dn.splice(fn + 1, 0, e) : e.flags & 1 || (un.push(e), e.flags |= 1), vn(); } function bn(e, t, n = ln + 1) { for (; n < L.length; n++) { let t = L[n]; if (t && t.flags & 2) { if (e && t.id !== e.uid) continue; L.splice(n, 1), n--, t.flags & 4 && (t.flags &= -2), t(), t.flags & 4 || (t.flags &= -2); } } } function xn(e) { if (un.length) { let e = [...new Set(un)].sort((e, t) => Sn(e) - Sn(t)); if (un.length = 0, dn) { dn.push(...e); return; } for (dn = e, fn = 0; fn < dn.length; fn++) { let e = dn[fn]; e.flags & 4 && (e.flags &= -2), e.flags & 8 || e(), e.flags &= -2; } dn = null, fn = 0; } } var Sn = (e) => e.id == null ? e.flags & 2 ? -1 : Infinity : e.id; function Cn(e) { try { for (ln = 0; ln < L.length; ln++) { let e = L[ln]; e && !(e.flags & 8) && (e.flags & 4 && (e.flags &= -2), an(e, e.i, e.i ? 15 : 14), e.flags & 4 || (e.flags &= -2)); } } finally { for (; ln < L.length; ln++) { let e = L[ln]; e && (e.flags &= -2); } ln = -1, L.length = 0, xn(e), mn = null, (L.length || un.length) && Cn(e); } } var wn = null, Tn = null; function En(e) { let t = wn; return wn = e, Tn = e && e.type.__scopeId || null, t; } function Dn(e, t = wn, n) { if (!t || e._n) return e; let r = (...n) => { r._d && ta(-1); let i = En(t), a = Zi.length, o; try { o = e(...n); } finally { for (let e = Zi.length; e > a; e--) $i(); En(i), r._d && ta(1); } return o; }; return r._n = !0, r._c = !0, r._d = !0, r; } function R(e, n) { if (wn === null) return e; let r = Ia(wn), i = e.dirs ||= []; for (let e = 0; e < n.length; e++) { let [a, o, s, c = t] = n[e]; a && (h(a) && (a = { mounted: a, updated: a }), a.deep && rn(o), i.push({ dir: a, instance: r, value: o, oldValue: void 0, arg: s, modifiers: c })); } return e; } function On(e, t, n, r) { let i = e.dirs, a = t && t.dirs; for (let o = 0; o < i.length; o++) { let s = i[o]; a && (s.oldValue = a[o].value); let c = s.dir[r]; c && (We(), on(c, n, 8, [ e.el, s, e, t ]), Ge()); } } function kn(e, t) { if (J) { let n = J.provides, r = J.parent && J.parent.provides; r === n && (n = J.provides = Object.create(r)), n[e] = t; } } function An(e, t, n = !1) { let r = xa(); if (r || oi) { let i = oi ? oi._context.provides : r ? r.parent == null || r.ce ? r.vnode.appContext && r.vnode.appContext.provides : r.parent.provides : void 0; if (i && e in i) return i[e]; if (arguments.length > 1) return n && h(t) ? t.call(r && r.proxy) : t; } } var jn = /* @__PURE__ */ Symbol.for("v-scx"), Mn = () => An(jn); function Nn(e, t, n) { return Pn(e, t, n); } function Pn(e, n, i = t) { let { immediate: a, deep: o, flush: c, once: l } = i, u = s({}, i), d = n && a || !n && c !== "post", f; if (Da) { if (c === "sync") { let e = Mn(); f = e.__watcherHandles ||= []; } else if (!d) { let e = () => {}; return e.stop = r, e.resume = r, e.pause = r, e; } } let p = J; u.call = (e, t, n) => on(e, p, t, n); let m = !1; c === "post" ? u.scheduler = (e) => { B(e, p && p.suspense); } : c !== "sync" && (m = !0, u.scheduler = (e, t) => { t ? e() : _n(e); }), u.augmentJob = (e) => { n && (e.flags |= 4), m && (e.flags |= 2, p && (e.id = p.uid, e.i = p)); }; let h = nn(e, n, u); return Da && (f ? f.push(h) : d && h()), h; } function Fn(e, t, n) { let r = this.proxy, i = g(e) ? e.includes(".") ? In(r, e) : () => r[e] : e.bind(r, r), a; h(t) ? a = t : (a = t.handler, n = t); let o = wa(this), s = Pn(i, a.bind(r), n); return o(), s; } function In(e, t) { let n = t.split("."); return () => { let t = e; for (let e = 0; e < n.length && t; e++) t = t[n[e]]; return t; }; } var Ln = /* @__PURE__ */ new WeakMap(), Rn = /* @__PURE__ */ Symbol("_vte"), zn = (e) => e.__isTeleport, Bn = (e) => e && (e.disabled || e.disabled === ""), Vn = (e) => e && (e.defer || e.defer === ""), Hn = (e) => typeof SVGElement < "u" && e instanceof SVGElement, Un = (e) => typeof MathMLElement == "function" && e instanceof MathMLElement, Wn = (e, t) => { let n = e && e.to; return g(n) ? t ? t(n) : null : n; }, Gn = { name: "Teleport", __isTeleport: !0, process(e, t, n, r, i, a, o, s, c, l) { let { mc: u, pc: d, pbc: f, o: { insert: p, querySelector: m, createText: h, createComment: g, parentNode: _ } } = l, v = Bn(t.props), { dynamicChildren: y } = t, b = (e, t, n) => { e.shapeFlag & 16 && u(e.children, t, n, i, a, o, s, c); }, x = (e = t) => { let n = Bn(e.props), r = e.target = Wn(e.props, m), a = Xn(r, e, h, p); r && (o !== "svg" && Hn(r) ? o = "svg" : o !== "mathml" && Un(r) && (o = "mathml"), i && i.isCE && (i.ce._teleportTargets || (i.ce._teleportTargets = /* @__PURE__ */ new Set())).add(r), n || (b(e, r, a), Yn(e, !1))); }, S = (e) => { let t = () => { if (Ln.get(e) === t) { if (Ln.delete(e), Bn(e.props)) { let t = _(e.el) || n; b(e, t, e.anchor), Yn(e, !0); } x(e); } }; Ln.set(e, t), B(t, a); }; if (e == null) { let e = t.el = h(""), i = t.anchor = h(""); if (p(e, n, r), p(i, n, r), Vn(t.props) || a && a.pendingBranch) { S(t); return; } v && (b(t, n, i), Yn(t, !0)), x(); } else { t.el = e.el; let r = t.anchor = e.anchor, u = Ln.get(e); if (u) { u.flags |= 8, Ln.delete(e), S(t); return; } t.targetStart = e.targetStart; let p = t.target = e.target, h = t.targetAnchor = e.targetAnchor, g = Bn(e.props), _ = g ? n : p, b = g ? r : h; if (o === "svg" || Hn(p) ? o = "svg" : (o === "mathml" || Un(p)) && (o = "mathml"), y ? (f(e.dynamicChildren, y, _, i, a, o, s), Hi(e, t, !0)) : c || d(e, t, _, b, i, a, o, s, !1), v) g ? t.props && e.props && t.props.to !== e.props.to && (t.props.to = e.props.to) : Kn(t, n, r, l, 1); else if ((t.props && t.props.to) !== (e.props && e.props.to)) { let e = Wn(t.props, m); e && (t.target = e, Kn(t, e, null, l, 0)); } else g && Kn(t, p, h, l, 1); Yn(t, v); } }, remove(e, t, n, { um: r, o: { remove: i } }, a) { let { shapeFlag: o, children: s, anchor: c, targetStart: l, targetAnchor: u, target: d, props: f } = e, p = Bn(f), m = a || !p, h = Ln.get(e); if (h && (h.flags |= 8, Ln.delete(e)), d && (i(l), i(u)), a && i(c), !h && (p || d) && o & 16) for (let e = 0; e < s.length; e++) { let i = s[e]; r(i, t, n, m, !!i.dynamicChildren); } }, move: Kn, hydrate: qn }; function Kn(e, t, n, { o: { insert: r }, m: i }, a = 2) { a === 0 && r(e.targetAnchor, t, n); let { el: o, anchor: s, shapeFlag: c, children: l, props: u } = e, d = a === 2; if (d && r(o, t, n), !Ln.has(e) && (!d || Bn(u)) && c & 16) for (let e = 0; e < l.length; e++) i(l[e], t, n, 2); d && r(s, t, n); } function qn(e, t, n, r, i, a, { o: { nextSibling: o, parentNode: s, querySelector: c, insert: l, createText: u } }, d) { function f(e, n) { let r = n; for (; r;) { if (r && r.nodeType === 8) { if (r.data === "teleport start anchor") t.targetStart = r; else if (r.data === "teleport anchor") { t.targetAnchor = r, e._lpa = t.targetAnchor && o(t.targetAnchor); break; } } r = o(r); } } function p(e, t) { t.anchor = d(o(e), t, s(e), n, r, i, a); } let m = t.target = Wn(t.props, c), h = Bn(t.props); if (m) { let c = m._lpa || m.firstChild; t.shapeFlag & 16 && (h ? (p(e, t), f(m, c), t.targetAnchor || Xn(m, t, u, l, s(e) === m ? e : null)) : (t.anchor = o(e), f(m, c), t.targetAnchor || Xn(m, t, u, l), d(c && o(c), t, m, n, r, i, a))), Yn(t, h); } else h && t.shapeFlag & 16 && (p(e, t), t.targetStart = e, t.targetAnchor = o(e)); return t.anchor && o(t.anchor); } var Jn = Gn; function Yn(e, t) { let n = e.ctx; if (n && n.ut) { let r, i; for (t ? (r = e.el, i = e.anchor) : (r = e.targetStart, i = e.targetAnchor); r && r !== i;) r.nodeType === 1 && r.setAttribute("data-v-owner", n.uid), r = r.nextSibling; n.ut(); } } function Xn(e, t, n, r, i = null) { let a = t.targetStart = n(""), o = t.targetAnchor = n(""); return a[Rn] = o, e && (r(a, e, i), r(o, e, i)), o; } var Zn = /* @__PURE__ */ Symbol("_leaveCb"), Qn = /* @__PURE__ */ Symbol("_enterCb"); function $n() { let e = { isMounted: !1, isLeaving: !1, isUnmounting: !1, leavingVNodes: /* @__PURE__ */ new Map() }; return Dr(() => { e.isMounted = !0; }), Ar(() => { e.isUnmounting = !0; }), e; } var er = [Function, Array], tr = { mode: String, appear: Boolean, persisted: Boolean, onBeforeEnter: er, onEnter: er, onAfterEnter: er, onEnterCancelled: er, onBeforeLeave: er, onLeave: er, onAfterLeave: er, onLeaveCancelled: er, onBeforeAppear: er, onAppear: er, onAfterAppear: er, onAppearCancelled: er }, nr = (e) => { let t = e.subTree; return t.component ? nr(t.component) : t; }, rr = { name: "BaseTransition", props: tr, setup(e, { slots: t }) { let n = xa(), r = $n(); return () => { let i = t.default && dr(t.default(), !0), a = i && i.length ? ir(i) : n.subTree ? q() : void 0; if (!a) return; let o = /* @__PURE__ */ N(e), { mode: s } = o; if (r.isLeaving) return cr(a); let c = lr(a); if (!c) return cr(a); let l = sr(c, o, r, n, (e) => l = e); c.type !== H && ur(c, l); let u = n.subTree && lr(n.subTree); if (u && u.type !== H && !aa(u, c) && nr(n).type !== H) { let e = sr(u, o, r, n); if (ur(u, e), s === "out-in" && c.type !== H) return r.isLeaving = !0, e.afterLeave = () => { r.isLeaving = !1, n.job.flags & 8 || n.update(), delete e.afterLeave, u = void 0; }, cr(a); s === "in-out" && c.type !== H ? e.delayLeave = (e, t, n) => { let i = or(r, u); i[String(u.key)] = u, e[Zn] = () => { t(), e[Zn] = void 0, delete l.delayedLeave, u = void 0; }, l.delayedLeave = () => { n(), delete l.delayedLeave, u = void 0; }; } : u = void 0; } else u &&= void 0; return a; }; } }; function ir(e) { let t = e[0]; if (e.length > 1) { for (let n of e) if (n.type !== H) { t = n; break; } } return t; } var ar = rr; function or(e, t) { let { leavingVNodes: n } = e, r = n.get(t.type); return r || (r = /* @__PURE__ */ Object.create(null), n.set(t.type, r)), r; } function sr(e, t, n, r, i) { let { appear: a, mode: o, persisted: s = !1, onBeforeEnter: c, onEnter: l, onAfterEnter: u, onEnterCancelled: f, onBeforeLeave: p, onLeave: m, onAfterLeave: h, onLeaveCancelled: g, onBeforeAppear: _, onAppear: v, onAfterAppear: y, onAppearCancelled: b } = t, x = String(e.key), S = or(n, e), C = (e, t) => { e && on(e, r, 9, t); }, w = (e, t) => { let n = t[1]; C(e, t), d(e) ? e.every((e) => e.length <= 1) && n() : e.length <= 1 && n(); }, ee = { mode: o, persisted: s, beforeEnter(t) { let r = c; if (!n.isMounted) if (a) r = _ || c; else return; t[Zn] && t[Zn](!0); let i = S[x]; i && aa(e, i) && i.el[Zn] && i.el[Zn](), C(r, [t]); }, enter(t) { if (S[x] === e) return; let r = l, i = u, o = f; if (!n.isMounted) if (a) r = v || l, i = y || u, o = b || f; else return; let s = !1; t[Qn] = (e) => { s || (s = !0, C(e ? o : i, [t]), ee.delayedLeave && ee.delayedLeave(), t[Qn] = void 0); }; let c = t[Qn].bind(null, !1); r ? w(r, [t, c]) : c(); }, leave(t, r) { let i = String(e.key); if (t[Qn] && t[Qn](!0), n.isUnmounting) return r(); C(p, [t]); let a = !1; t[Zn] = (n) => { a || (a = !0, r(), C(n ? g : h, [t]), t[Zn] = void 0, S[i] === e && delete S[i]); }; let o = t[Zn].bind(null, !1); S[i] = e, m ? w(m, [t, o]) : o(); }, clone(e) { let a = sr(e, t, n, r, i); return i && i(a), a; } }; return ee; } function cr(e) { if (yr(e)) return e = ua(e), e.children = null, e; } function lr(e) { if (!yr(e)) return zn(e.type) && e.children ? ir(e.children) : e; if (e.component) return e.component.subTree; let { shapeFlag: t, children: n } = e; if (n) { if (t & 16) return n[0]; if (t & 32 && h(n.default)) return n.default(); } } function ur(e, t) { e.shapeFlag & 6 && e.component ? (e.transition = t, ur(e.component.subTree, t)) : e.shapeFlag & 128 ? (e.ssContent.transition = t.clone(e.ssContent), e.ssFallback.transition = t.clone(e.ssFallback)) : e.transition = t; } function dr(e, t = !1, n) { let r = [], i = 0; for (let a = 0; a < e.length; a++) { let o = e[a], s = n == null ? o.key : String(n) + String(o.key == null ? a : o.key); o.type === V ? (o.patchFlag & 128 && i++, r = r.concat(dr(o.children, t, s))) : (t || o.type !== H) && r.push(s == null ? o : ua(o, { key: s })); } if (i > 1) for (let e = 0; e < r.length; e++) r[e].patchFlag = -2; return r; } // @__NO_SIDE_EFFECTS__ function fr(e, t) { return h(e) ? /* @__PURE__ */ s({ name: e.name }, t, { setup: e }) : e; } function pr(e) { e.ids = [ e.ids[0] + e.ids[2]++ + "-", 0, 0 ]; } function mr(e, t) { let n; return !!((n = Object.getOwnPropertyDescriptor(e, t)) && !n.configurable); } var hr = /* @__PURE__ */ new WeakMap(); function gr(e, n, r, a, o = !1) { if (d(e)) { e.forEach((e, t) => gr(e, n && (d(n) ? n[t] : n), r, a, o)); return; } if (vr(a) && !o) { a.shapeFlag & 512 && a.type.__asyncResolved && a.component.subTree.component && gr(e, n, r, a.component.subTree); return; } let s = a.shapeFlag & 4 ? Ia(a.component) : a.el, l = o ? null : s, { i: f, r: p } = e, m = n && n.r, _ = f.refs === t ? f.refs = {} : f.refs, v = f.setupState, y = /* @__PURE__ */ N(v), b = v === t ? i : (e) => !mr(_, e) && u(y, e), x = (e, t) => !(t && mr(_, t)); if (m != null && m !== p) { if (_r(n), g(m)) _[m] = null, b(m) && (v[m] = null); else if (/* @__PURE__ */ P(m)) { let e = n; x(m, e.k) && (m.value = null), e.k && (_[e.k] = null); } } if (h(p)) an(p, f, 12, [l, _]); else { let t = g(p), n = /* @__PURE__ */ P(p); if (t || n) { let i = () => { if (e.f) { let n = t ? b(p) ? v[p] : _[p] : x(p) || !e.k ? p.value : _[e.k]; if (o) d(n) && c(n, s); else if (d(n)) n.includes(s) || n.push(s); else if (t) _[p] = [s], b(p) && (v[p] = _[p]); else { let t = [s]; x(p, e.k) && (p.value = t), e.k && (_[e.k] = t); } } else t ? (_[p] = l, b(p) && (v[p] = l)) : n && (x(p, e.k) && (p.value = l), e.k && (_[e.k] = l)); }; if (l) { let t = () => { i(), hr.delete(e); }; t.id = -1, hr.set(e, t), B(t, r); } else _r(e), i(); } } } function _r(e) { let t = hr.get(e); t && (t.flags |= 8, hr.delete(e)); } de().requestIdleCallback, de().cancelIdleCallback; var vr = (e) => !!e.type.__asyncLoader, yr = (e) => e.type.__isKeepAlive; function br(e, t) { Sr(e, "a", t); } function xr(e, t) { Sr(e, "da", t); } function Sr(e, t, n = J) { let r = e.__wdc ||= () => { let t = n; for (; t;) { if (t.isDeactivated) return; t = t.parent; } return e(); }; if (wr(t, r, n), n) { let e = n.parent; for (; e && e.parent;) yr(e.parent.vnode) && Cr(r, t, n, e), e = e.parent; } } function Cr(e, t, n, r) { let i = wr(t, e, r, !0); jr(() => { c(r[t], i); }, n); } function wr(e, t, n = J, r = !1) { if (n) { let i = n[e] || (n[e] = []), a = t.__weh ||= (...r) => { We(); let i = wa(n), a = on(t, n, e, r); return i(), Ge(), a; }; return r ? i.unshift(a) : i.push(a), a; } } var Tr = (e) => (t, n = J) => { (!Da || e === "sp") && wr(e, (...e) => t(...e), n); }, Er = Tr("bm"), Dr = Tr("m"), Or = Tr("bu"), kr = Tr("u"), Ar = Tr("bum"), jr = Tr("um"), Mr = Tr("sp"), Nr = Tr("rtg"), Pr = Tr("rtc"); function Fr(e, t = J) { wr("ec", e, t); } var Ir = /* @__PURE__ */ Symbol.for("v-ndc"); function Lr(e, t, n, r) { let i, a = n && n[r], o = d(e); if (o || g(e)) { let n = o && /* @__PURE__ */ zt(e), r = !1, s = !1; n && (r = !/* @__PURE__ */ Vt(e), s = /* @__PURE__ */ Bt(e), e = rt(e)), i = Array(e.length); for (let n = 0, o = e.length; n < o; n++) i[n] = t(r ? s ? Gt(Wt(e[n])) : Wt(e[n]) : e[n], n, void 0, a && a[n]); } else if (typeof e == "number") { i = Array(e); for (let n = 0; n < e; n++) i[n] = t(n + 1, n, void 0, a && a[n]); } else if (v(e)) if (e[Symbol.iterator]) i = Array.from(e, (e, n) => t(e, n, void 0, a && a[n])); else { let n = Object.keys(e); i = Array(n.length); for (let r = 0, o = n.length; r < o; r++) { let o = n[r]; i[r] = t(e[o], o, r, a && a[r]); } } else i = []; return n && (n[r] = i), i; } var Rr = (e) => e ? Ea(e) ? Ia(e) : Rr(e.parent) : null, zr = /* @__PURE__ */ s(/* @__PURE__ */ Object.create(null), { $: (e) => e, $el: (e) => e.vnode.el, $data: (e) => e.data, $props: (e) => e.props, $attrs: (e) => e.attrs, $slots: (e) => e.slots, $refs: (e) => e.refs, $parent: (e) => Rr(e.parent), $root: (e) => Rr(e.root), $host: (e) => e.ce, $emit: (e) => e.emit, $options: (e) => Jr(e), $forceUpdate: (e) => e.f ||= () => { _n(e.update); }, $nextTick: (e) => e.n ||= hn.bind(e.proxy), $watch: (e) => Fn.bind(e) }), Br = (e, n) => e !== t && !e.__isScriptSetup && u(e, n), Vr = { get({ _: e }, n) { if (n === "__v_skip") return !0; let { ctx: r, setupState: i, data: a, props: o, accessCache: s, type: c, appContext: l } = e; if (n[0] !== "$") { let e = s[n]; if (e !== void 0) switch (e) { case 1: return i[n]; case 2: return a[n]; case 4: return r[n]; case 3: return o[n]; } else if (Br(i, n)) return s[n] = 1, i[n]; else if (a !== t && u(a, n)) return s[n] = 2, a[n]; else if (u(o, n)) return s[n] = 3, o[n]; else if (r !== t && u(r, n)) return s[n] = 4, r[n]; else Ur && (s[n] = 0); } let d = zr[n], f, p; if (d) return n === "$attrs" && M(e.attrs, "get", ""), d(e); if ((f = c.__cssModules) && (f = f[n])) return f; if (r !== t && u(r, n)) return s[n] = 4, r[n]; if (p = l.config.globalProperties, u(p, n)) return p[n]; }, set({ _: e }, n, r) { let { data: i, setupState: a, ctx: o } = e; return Br(a, n) ? (a[n] = r, !0) : i !== t && u(i, n) ? (i[n] = r, !0) : u(e.props, n) || n[0] === "$" && n.slice(1) in e ? !1 : (o[n] = r, !0); }, has({ _: { data: e, setupState: n, accessCache: r, ctx: i, appContext: a, props: o, type: s } }, c) { let l; return !!(r[c] || e !== t && c[0] !== "$" && u(e, c) || Br(n, c) || u(o, c) || u(i, c) || u(zr, c) || u(a.config.globalProperties, c) || (l = s.__cssModules) && l[c]); }, defineProperty(e, t, n) { return n.get == null ? u(n, "value") && this.set(e, t, n.value, null) : e._.accessCache[t] = 0, Reflect.defineProperty(e, t, n); } }; function Hr(e) { return d(e) ? e.reduce((e, t) => (e[t] = null, e), {}) : e; } var Ur = !0; function Wr(e) { let t = Jr(e), n = e.proxy, i = e.ctx; Ur = !1, t.beforeCreate && Kr(t.beforeCreate, e, "bc"); let { data: a, computed: o, methods: s, watch: c, provide: l, inject: u, created: f, beforeMount: p, mounted: m, beforeUpdate: g, updated: _, activated: y, deactivated: b, beforeDestroy: x, beforeUnmount: S, destroyed: C, unmounted: w, render: ee, renderTracked: te, renderTriggered: ne, errorCaptured: T, serverPrefetch: re, expose: E, inheritAttrs: ie, components: ae, directives: oe, filters: se } = t; if (u && Gr(u, i, null), s) for (let e in s) { let t = s[e]; h(t) && (i[e] = t.bind(n)); } if (a) { let t = a.call(n, n); v(t) && (e.data = /* @__PURE__ */ Ft(t)); } if (Ur = !0, o) for (let e in o) { let t = o[e], a = Y({ get: h(t) ? t.bind(n, n) : h(t.get) ? t.get.bind(n, n) : r, set: !h(t) && h(t.set) ? t.set.bind(n) : r }); Object.defineProperty(i, e, { enumerable: !0, configurable: !0, get: () => a.value, set: (e) => a.value = e }); } if (c) for (let e in c) qr(c[e], i, n, e); if (l) { let e = h(l) ? l.call(n) : l; Reflect.ownKeys(e).forEach((t) => { kn(t, e[t]); }); } f && Kr(f, e, "c"); function D(e, t) { d(t) ? t.forEach((t) => e(t.bind(n))) : t && e(t.bind(n)); } if (D(Er, p), D(Dr, m), D(Or, g), D(kr, _), D(br, y), D(xr, b), D(Fr, T), D(Pr, te), D(Nr, ne), D(Ar, S), D(jr, w), D(Mr, re), d(E)) if (E.length) { let t = e.exposed ||= {}; E.forEach((e) => { Object.defineProperty(t, e, { get: () => n[e], set: (t) => n[e] = t, enumerable: !0 }); }); } else e.exposed ||= {}; ee && e.render === r && (e.render = ee), ie != null && (e.inheritAttrs = ie), ae && (e.components = ae), oe && (e.directives = oe), re && pr(e); } function Gr(e, t, n = r) { d(e) && (e = $r(e)); for (let n in e) { let r = e[n], i; i = v(r) ? "default" in r ? An(r.from || n, r.default, !0) : An(r.from || n) : An(r), /* @__PURE__ */ P(i) ? Object.defineProperty(t, n, { enumerable: !0, configurable: !0, get: () => i.value, set: (e) => i.value = e }) : t[n] = i; } } function Kr(e, t, n) { on(d(e) ? e.map((e) => e.bind(t.proxy)) : e.bind(t.proxy), t, n); } function qr(e, t, n, r) { let i = r.includes(".") ? In(n, r) : () => n[r]; if (g(e)) { let n = t[e]; h(n) && Nn(i, n); } else if (h(e)) Nn(i, e.bind(n)); else if (v(e)) if (d(e)) e.forEach((e) => qr(e, t, n, r)); else { let r = h(e.handler) ? e.handler.bind(n) : t[e.handler]; h(r) && Nn(i, r, e); } } function Jr(e) { let t = e.type, { mixins: n, extends: r } = t, { mixins: i, optionsCache: a, config: { optionMergeStrategies: o } } = e.appContext, s = a.get(t), c; return s ? c = s : !i.length && !n && !r ? c = t : (c = {}, i.length && i.forEach((e) => Yr(c, e, o, !0)), Yr(c, t, o)), v(t) && a.set(t, c), c; } function Yr(e, t, n, r = !1) { let { mixins: i, extends: a } = t; a && Yr(e, a, n, !0), i && i.forEach((t) => Yr(e, t, n, !0)); for (let i in t) if (!(r && i === "expose")) { let r = Xr[i] || n && n[i]; e[i] = r ? r(e[i], t[i]) : t[i]; } return e; } var Xr = { data: Zr, props: ti, emits: ti, methods: ei, computed: ei, beforeCreate: z, created: z, beforeMount: z, mounted: z, beforeUpdate: z, updated: z, beforeDestroy: z, beforeUnmount: z, destroyed: z, unmounted: z, activated: z, deactivated: z, errorCaptured: z, serverPrefetch: z, components: ei, directives: ei, watch: ni, provide: Zr, inject: Qr }; function Zr(e, t) { return t ? e ? function() { return s(h(e) ? e.call(this, this) : e, h(t) ? t.call(this, this) : t); } : t : e; } function Qr(e, t) { return ei($r(e), $r(t)); } function $r(e) { if (d(e)) { let t = {}; for (let n = 0; n < e.length; n++) t[e[n]] = e[n]; return t; } return e; } function z(e, t) { return e ? [...new Set([].concat(e, t))] : t; } function ei(e, t) { return e ? s(/* @__PURE__ */ Object.create(null), e, t) : t; } function ti(e, t) { return e ? d(e) && d(t) ? [.../* @__PURE__ */ new Set([...e, ...t])] : s(/* @__PURE__ */ Object.create(null), Hr(e), Hr(t ?? {})) : t; } function ni(e, t) { if (!e) return t; if (!t) return e; let n = s(/* @__PURE__ */ Object.create(null), e); for (let r in t) n[r] = z(e[r], t[r]); return n; } function ri() { return { app: null, config: { isNativeTag: i, performance: !1, globalProperties: {}, optionMergeStrategies: {}, errorHandler: void 0, warnHandler: void 0, compilerOptions: {} }, mixins: [], components: {}, directives: {}, provides: /* @__PURE__ */ Object.create(null), optionsCache: /* @__PURE__ */ new WeakMap(), propsCache: /* @__PURE__ */ new WeakMap(), emitsCache: /* @__PURE__ */ new WeakMap() }; } var ii = 0; function ai(e, t) { return function(n, r = null) { h(n) || (n = s({}, n)), r != null && !v(r) && (r = null); let i = ri(), a = /* @__PURE__ */ new WeakSet(), o = [], c = !1, l = i.app = { _uid: ii++, _component: n, _props: r, _container: null, _context: i, _instance: null, version: za, get config() { return i.config; }, set config(e) {}, use(e, ...t) { return a.has(e) || (e && h(e.install) ? (a.add(e), e.install(l, ...t)) : h(e) && (a.add(e), e(l, ...t))), l; }, mixin(e) { return i.mixins.includes(e) || i.mixins.push(e), l; }, component(e, t) { return t ? (i.components[e] = t, l) : i.components[e]; }, directive(e, t) { return t ? (i.directives[e] = t, l) : i.directives[e]; }, mount(a, o, s) { if (!c) { let u = l._ceVNode || K(n, r); return u.appContext = i, s === !0 ? s = "svg" : s === !1 && (s = void 0), o && t ? t(u, a) : e(u, a, s), c = !0, l._container = a, a.__vue_app__ = l, Ia(u.component); } }, onUnmount(e) { o.push(e); }, unmount() { c && (on(o, l._instance, 16), e(null, l._container), delete l._container.__vue_app__); }, provide(e, t) { return i.provides[e] = t, l; }, runWithContext(e) { let t = oi; oi = l; try { return e(); } finally { oi = t; } } }; return l; }; } var oi = null, si = (e, t) => t === "modelValue" || t === "model-value" ? e.modelModifiers : e[`${t}Modifiers`] || e[`${T(t)}Modifiers`] || e[`${E(t)}Modifiers`]; function ci(e, n, ...r) { if (e.isUnmounted) return; let i = e.vnode.props || t, a = r, o = n.startsWith("update:"), s = o && si(i, n.slice(7)); s && (s.trim && (a = r.map((e) => g(e) ? e.trim() : e)), s.number && (a = r.map(ce))); let c, l = i[c = ae(n)] || i[c = ae(T(n))]; !l && o && (l = i[c = ae(E(n))]), l && on(l, e, 6, a); let u = i[c + "Once"]; if (u) { if (!e.emitted) e.emitted = {}; else if (e.emitted[c]) return; e.emitted[c] = !0, on(u, e, 6, a); } } var li = /* @__PURE__ */ new WeakMap(); function ui(e, t, n = !1) { let r = n ? li : t.emitsCache, i = r.get(e); if (i !== void 0) return i; let a = e.emits, o = {}, c = !1; if (!h(e)) { let r = (e) => { let n = ui(e, t, !0); n && (c = !0, s(o, n)); }; !n && t.mixins.length && t.mixins.forEach(r), e.extends && r(e.extends), e.mixins && e.mixins.forEach(r); } return !a && !c ? (v(e) && r.set(e, null), null) : (d(a) ? a.forEach((e) => o[e] = null) : s(o, a), v(e) && r.set(e, o), o); } function di(e, t) { return !e || !a(t) ? !1 : (t = t.slice(2), t = t === "Once" ? t : t.replace(/Once$/, ""), u(e, t[0].toLowerCase() + t.slice(1)) || u(e, E(t)) || u(e, t)); } function fi(e) { let { type: t, vnode: n, proxy: r, withProxy: i, propsOptions: [a], slots: s, attrs: c, emit: l, render: u, renderCache: d, props: f, data: p, setupState: m, ctx: h, inheritAttrs: g } = e, _ = En(e), v, y; try { if (n.shapeFlag & 4) { let e = i || r, t = e; v = pa(u.call(t, e, d, f, m, p, h)), y = c; } else { let e = t; v = pa(e.length > 1 ? e(f, { attrs: c, slots: s, emit: l }) : e(f, null)), y = t.props ? c : pi(c); } } catch (t) { Zi.length = 0, sn(t, e, 1), v = K(H); } let b = v; if (y && g !== !1) { let e = Object.keys(y), { shapeFlag: t } = b; e.length && t & 7 && (a && e.some(o) && (y = mi(y, a)), b = ua(b, y, !1, !0)); } return n.dirs && (b = ua(b, null, !1, !0), b.dirs = b.dirs ? b.dirs.concat(n.dirs) : n.dirs), n.transition && ur(b, n.transition), v = b, En(_), v; } var pi = (e) => { let t; for (let n in e) (n === "class" || n === "style" || a(n)) && ((t ||= {})[n] = e[n]); return t; }, mi = (e, t) => { let n = {}; for (let r in e) (!o(r) || !(r.slice(9) in t)) && (n[r] = e[r]); return n; }; function hi(e, t, n) { let { props: r, children: i, component: a } = e, { props: o, children: s, patchFlag: c } = t, l = a.emitsOptions; if (t.dirs || t.transition) return !0; if (n && c >= 0) { if (c & 1024) return !0; if (c & 16) return r ? gi(r, o, l) : !!o; if (c & 8) { let e = t.dynamicProps; for (let t = 0; t < e.length; t++) { let n = e[t]; if (_i(o, r, n) && !di(l, n)) return !0; } } } else return (i || s) && (!s || !s.$stable) ? !0 : r === o ? !1 : r ? !o || gi(r, o, l) : !!o; return !1; } function gi(e, t, n) { let r = Object.keys(t); if (r.length !== Object.keys(e).length) return !0; for (let i = 0; i < r.length; i++) { let a = r[i]; if (_i(t, e, a) && !di(n, a)) return !0; } return !1; } function _i(e, t, n) { let r = e[n], i = t[n]; return n === "style" && v(r) && v(i) ? !xe(r, i) : r !== i; } function vi({ vnode: e, parent: t, suspense: n }, r) { for (; t;) { let n = t.subTree; if (n.suspense && n.suspense.activeBranch === e && (n.suspense.vnode.el = n.el = r, e = n), n === e) (e = t.vnode).el = r, t = t.parent; else break; } n && n.activeBranch === e && (n.vnode.el = r); } var yi = {}, bi = () => Object.create(yi), xi = (e) => Object.getPrototypeOf(e) === yi; function Si(e, t, n, r = !1) { let i = {}, a = bi(); e.propsDefaults = /* @__PURE__ */ Object.create(null), wi(e, t, i, a); for (let t in e.propsOptions[0]) t in i || (i[t] = void 0); e.props = n ? r ? i : /* @__PURE__ */ It(i) : e.type.props ? i : a, e.attrs = a; } function Ci(e, t, n, r) { let { props: i, attrs: a, vnode: { patchFlag: o } } = e, s = /* @__PURE__ */ N(i), [c] = e.propsOptions, l = !1; if ((r || o > 0) && !(o & 16)) { if (o & 8) { let n = e.vnode.dynamicProps; for (let r = 0; r < n.length; r++) { let o = n[r]; if (di(e.emitsOptions, o)) continue; let d = t[o]; if (c) if (u(a, o)) d !== a[o] && (a[o] = d, l = !0); else { let t = T(o); i[t] = Ti(c, s, t, d, e, !1); } else d !== a[o] && (a[o] = d, l = !0); } } } else { wi(e, t, i, a) && (l = !0); let r; for (let a in s) (!t || !u(t, a) && ((r = E(a)) === a || !u(t, r))) && (c ? n && (n[a] !== void 0 || n[r] !== void 0) && (i[a] = Ti(c, s, a, void 0, e, !0)) : delete i[a]); if (a !== s) for (let e in a) (!t || !u(t, e)) && (delete a[e], l = !0); } l && tt(e.attrs, "set", ""); } function wi(e, n, r, i) { let [a, o] = e.propsOptions, s = !1, c; if (n) for (let t in n) { if (ee(t)) continue; let l = n[t], d; a && u(a, d = T(t)) ? !o || !o.includes(d) ? r[d] = l : (c ||= {})[d] = l : di(e.emitsOptions, t) || (!(t in i) || l !== i[t]) && (i[t] = l, s = !0); } if (o) { let n = /* @__PURE__ */ N(r), i = c || t; for (let t = 0; t < o.length; t++) { let s = o[t]; r[s] = Ti(a, n, s, i[s], e, !u(i, s)); } } return s; } function Ti(e, t, n, r, i, a) { let o = e[n]; if (o != null) { let e = u(o, "default"); if (e && r === void 0) { let e = o.default; if (o.type !== Function && !o.skipFactory && h(e)) { let { propsDefaults: a } = i; if (n in a) r = a[n]; else { let o = wa(i); r = a[n] = e.call(null, t), o(); } } else r = e; i.ce && i.ce._setProp(n, r); } o[0] && (a && !e ? r = !1 : o[1] && (r === "" || r === E(n)) && (r = !0)); } return r; } var Ei = /* @__PURE__ */ new WeakMap(); function Di(e, r, i = !1) { let a = i ? Ei : r.propsCache, o = a.get(e); if (o) return o; let c = e.props, l = {}, f = [], p = !1; if (!h(e)) { let t = (e) => { p = !0; let [t, n] = Di(e, r, !0); s(l, t), n && f.push(...n); }; !i && r.mixins.length && r.mixins.forEach(t), e.extends && t(e.extends), e.mixins && e.mixins.forEach(t); } if (!c && !p) return v(e) && a.set(e, n), n; if (d(c)) for (let e = 0; e < c.length; e++) { let n = T(c[e]); Oi(n) && (l[n] = t); } else if (c) for (let e in c) { let t = T(e); if (Oi(t)) { let n = c[e], r = l[t] = d(n) || h(n) ? { type: n } : s({}, n), i = r.type, a = !1, o = !0; if (d(i)) for (let e = 0; e < i.length; ++e) { let t = i[e], n = h(t) && t.name; if (n === "Boolean") { a = !0; break; } n === "String" && (o = !1); } else a = h(i) && i.name === "Boolean"; r[0] = a, r[1] = o, (a || u(r, "default")) && f.push(t); } } let m = [l, f]; return v(e) && a.set(e, m), m; } function Oi(e) { return e[0] !== "$" && !ee(e); } var ki = (e) => e === "_" || e === "_ctx" || e === "$stable", Ai = (e) => d(e) ? e.map(pa) : [pa(e)], ji = (e, t, n) => { if (t._n) return t; let r = Dn((...e) => Ai(t(...e)), n); return r._c = !1, r; }, Mi = (e, t, n) => { let r = e._ctx; for (let n in e) { if (ki(n)) continue; let i = e[n]; if (h(i)) t[n] = ji(n, i, r); else if (i != null) { let e = Ai(i); t[n] = () => e; } } }, Ni = (e, t) => { let n = Ai(t); e.slots.default = () => n; }, Pi = (e, t, n) => { for (let r in t) (n || !ki(r)) && (e[r] = t[r]); }, Fi = (e, t, n) => { let r = e.slots = bi(); if (e.vnode.shapeFlag & 32) { let e = t._; e ? (Pi(r, t, n), n && D(r, "_", e, !0)) : Mi(t, r); } else t && Ni(e, t); }, Ii = (e, n, r) => { let { vnode: i, slots: a } = e, o = !0, s = t; if (i.shapeFlag & 32) { let e = n._; e ? r && e === 1 ? o = !1 : Pi(a, n, r) : (o = !n.$stable, Mi(n, a)), s = n; } else n && (Ni(e, n), s = { default: 1 }); if (o) for (let e in a) !ki(e) && s[e] == null && delete a[e]; }, B = Ji; function Li(e) { return Ri(e); } function Ri(e, i) { let a = de(); a.__VUE__ = !0; let { insert: o, remove: s, patchProp: c, createElement: l, createText: u, createComment: d, setText: f, setElementText: p, parentNode: m, nextSibling: h, setScopeId: g = r, insertStaticContent: _ } = e, v = (e, t, n, r = null, i = null, a = null, o = void 0, s = null, c = !!t.dynamicChildren) => { if (e === t) return; e && !aa(e, t) && (r = be(e), ge(e, i, a, !0), e = null), t.patchFlag === -2 && (c = !1, t.dynamicChildren = null); let { type: l, ref: u, shapeFlag: d } = t; switch (l) { case Yi: y(e, t, n, r); break; case H: b(e, t, n, r); break; case Xi: e ?? x(t, n, r, o); break; case V: ae(e, t, n, r, i, a, o, s, c); break; default: d & 1 ? w(e, t, n, r, i, a, o, s, c) : d & 6 ? oe(e, t, n, r, i, a, o, s, c) : (d & 64 || d & 128) && l.process(e, t, n, r, i, a, o, s, c, Ce); } u != null && i ? gr(u, e && e.ref, a, t || e, !t) : u == null && e && e.ref != null && gr(e.ref, null, a, e, !0); }, y = (e, t, n, r) => { if (e == null) o(t.el = u(t.children), n, r); else { let n = t.el = e.el; t.children !== e.children && f(n, t.children); } }, b = (e, t, n, r) => { e == null ? o(t.el = d(t.children || ""), n, r) : t.el = e.el; }, x = (e, t, n, r) => { [e.el, e.anchor] = _(e.children, t, n, r, e.el, e.anchor); }, S = ({ el: e, anchor: t }, n, r) => { let i; for (; e && e !== t;) i = h(e), o(e, n, r), e = i; o(t, n, r); }, C = ({ el: e, anchor: t }) => { let n; for (; e && e !== t;) n = h(e), s(e), e = n; s(t); }, w = (e, t, n, r, i, a, o, s, c) => { if (t.type === "svg" ? o = "svg" : t.type === "math" && (o = "mathml"), e == null) te(t, n, r, i, a, o, s, c); else { let n = e.el && e.el._isVueCE ? e.el : null; try { n && n._beginPatch(), re(e, t, i, a, o, s, c); } finally { n && n._endPatch(); } } }, te = (e, t, n, r, i, a, s, u) => { let d, f, { props: m, shapeFlag: h, transition: g, dirs: _ } = e; if (d = e.el = l(e.type, a, m && m.is, m), h & 8 ? p(d, e.children) : h & 16 && T(e.children, d, null, r, i, zi(e, a), s, u), _ && On(e, null, r, "created"), ne(d, e, e.scopeId, s, r), m) { for (let e in m) e !== "value" && !ee(e) && c(d, e, null, m[e], a, r); "value" in m && c(d, "value", null, m.value, a), (f = m.onVnodeBeforeMount) && _a(f, r, e); } _ && On(e, null, r, "beforeMount"); let v = Vi(i, g); v && g.beforeEnter(d), o(d, t, n), ((f = m && m.onVnodeMounted) || v || _) && B(() => { try { f && _a(f, r, e), v && g.enter(d), _ && On(e, null, r, "mounted"); } finally {} }, i); }, ne = (e, t, n, r, i) => { if (n && g(e, n), r) for (let t = 0; t < r.length; t++) g(e, r[t]); if (i) { let n = i.subTree; if (t === n || qi(n.type) && (n.ssContent === t || n.ssFallback === t)) { let t = i.vnode; ne(e, t, t.scopeId, t.slotScopeIds, i.parent); } } }, T = (e, t, n, r, i, a, o, s, c = 0) => { for (let l = c; l < e.length; l++) { let c = e[l] = s ? ma(e[l]) : pa(e[l]); v(null, c, t, n, r, i, a, o, s); } }, re = (e, n, r, i, a, o, s) => { let l = n.el = e.el, { patchFlag: u, dynamicChildren: d, dirs: f } = n; u |= e.patchFlag & 16; let m = e.props || t, h = n.props || t, g; if (r && Bi(r, !1), (g = h.onVnodeBeforeUpdate) && _a(g, r, n, e), f && On(n, e, r, "beforeUpdate"), r && Bi(r, !0), d && (!e.dynamicChildren || e.dynamicChildren.length !== d.length) && (u = 0, s = !1, d = null), (m.innerHTML && h.innerHTML == null || m.textContent && h.textContent == null) && p(l, ""), d ? E(e.dynamicChildren, d, l, r, i, zi(n, a), o) : s || fe(e, n, l, null, r, i, zi(n, a), o, !1), u > 0) { if (u & 16) ie(l, m, h, r, a); else if (u & 2 && m.class !== h.class && c(l, "class", null, h.class, a), u & 4 && c(l, "style", m.style, h.style, a), u & 8) { let e = n.dynamicProps; for (let t = 0; t < e.length; t++) { let n = e[t], i = m[n], o = h[n]; (o !== i || n === "value") && c(l, n, i, o, a, r); } } u & 1 && e.children !== n.children && p(l, n.children); } else !s && d == null && ie(l, m, h, r, a); ((g = h.onVnodeUpdated) || f) && B(() => { g && _a(g, r, n, e), f && On(n, e, r, "updated"); }, i); }, E = (e, t, n, r, i, a, o) => { for (let s = 0; s < t.length; s++) { let c = e[s], l = t[s], u = c.el && (c.type === V || !aa(c, l) || c.shapeFlag & 198) ? m(c.el) : n; v(c, l, u, null, r, i, a, o, !0); } }, ie = (e, n, r, i, a) => { if (n !== r) { if (n !== t) for (let t in n) !ee(t) && !(t in r) && c(e, t, n[t], null, a, i); for (let t in r) { if (ee(t)) continue; let o = r[t], s = n[t]; o !== s && t !== "value" && c(e, t, s, o, a, i); } "value" in r && c(e, "value", n.value, r.value, a); } }, ae = (e, t, n, r, i, a, s, c, l) => { let d = t.el = e ? e.el : u(""), f = t.anchor = e ? e.anchor : u(""), { patchFlag: p, dynamicChildren: m, slotScopeIds: h } = t; h && (c = c ? c.concat(h) : h), e == null ? (o(d, n, r), o(f, n, r), T(t.children || [], n, f, i, a, s, c, l)) : p > 0 && p & 64 && m && e.dynamicChildren && e.dynamicChildren.length === m.length ? (E(e.dynamicChildren, m, n, i, a, s, c), (t.key != null || i && t === i.subTree) && Hi(e, t, !0)) : fe(e, t, n, f, i, a, s, c, l); }, oe = (e, t, n, r, i, a, o, s, c) => { t.slotScopeIds = s, e == null ? t.shapeFlag & 512 ? i.ctx.activate(t, n, r, o, c) : D(t, n, r, i, a, o, c) : ce(e, t, c); }, D = (e, t, n, r, i, a, o) => { let s = e.component = ba(e, r, i); if (yr(e) && (s.ctx.renderer = Ce), Oa(s, !1, o), s.asyncDep) { if (i && i.registerDep(s, le, o), !e.el) { let r = s.subTree = K(H); b(null, r, t, n), e.placeholder = r.el; } } else le(s, e, t, n, i, a, o); }, ce = (e, t, n) => { let r = t.component = e.component; if (hi(e, t, n)) if (r.asyncDep && !r.asyncResolved) { ue(r, t, n); return; } else r.next = t, r.update(); else t.el = e.el, r.vnode = t; }, le = (e, t, n, r, i, a, o) => { let s = () => { if (e.isMounted) { let { next: t, bu: n, u: r, parent: s, vnode: c } = e; { let n = Wi(e); if (n) { t && (t.el = c.el, ue(e, t, o)), n.asyncDep.then(() => { B(() => { e.isUnmounted || l(); }, i); }); return; } } let u = t, d; Bi(e, !1), t ? (t.el = c.el, ue(e, t, o)) : t = c, n && se(n), (d = t.props && t.props.onVnodeBeforeUpdate) && _a(d, s, t, c), Bi(e, !0); let f = fi(e), p = e.subTree; e.subTree = f, v(p, f, m(p.el), be(p), e, i, a), t.el = f.el, u === null && vi(e, f.el), r && B(r, i), (d = t.props && t.props.onVnodeUpdated) && B(() => _a(d, s, t, c), i); } else { let o, { el: s, props: c } = t, { bm: l, m: u, parent: d, root: f, type: p } = e, m = vr(t); if (Bi(e, !1), l && se(l), !m && (o = c && c.onVnodeBeforeMount) && _a(o, d, t), Bi(e, !0), s && we) { let t = () => { e.subTree = fi(e), we(s, e.subTree, e, i, null); }; m && p.__asyncHydrate ? p.__asyncHydrate(s, e, t) : t(); } else { f.ce && f.ce._hasShadowRoot() && f.ce._injectChildStyle(p, e.parent ? e.parent.type : void 0); let o = e.subTree = fi(e); v(null, o, n, r, e, i, a), t.el = o.el; } if (u && B(u, i), !m && (o = c && c.onVnodeMounted)) { let e = t; B(() => _a(o, d, e), i); } (t.shapeFlag & 256 || d && vr(d.vnode) && d.vnode.shapeFlag & 256) && e.a && B(e.a, i), e.isMounted = !0, t = n = r = null; } }; e.scope.on(); let c = e.effect = new ke(s); e.scope.off(); let l = e.update = c.run.bind(c), u = e.job = c.runIfDirty.bind(c); u.i = e, u.id = e.uid, c.scheduler = () => _n(u), Bi(e, !0), l(); }, ue = (e, t, n) => { t.component = e; let r = e.vnode.props; e.vnode = t, e.next = null, Ci(e, t.props, r, n), Ii(e, t.children, n), We(), bn(e), Ge(); }, fe = (e, t, n, r, i, a, o, s, c = !1) => { let l = e && e.children, u = e ? e.shapeFlag : 0, d = t.children, { patchFlag: f, shapeFlag: m } = t; if (f > 0) { if (f & 128) { me(l, d, n, r, i, a, o, s, c); return; } if (f & 256) { pe(l, d, n, r, i, a, o, s, c); return; } } m & 8 ? (u & 16 && ye(l, i, a), d !== l && p(n, d)) : u & 16 ? m & 16 ? me(l, d, n, r, i, a, o, s, c) : ye(l, i, a, !0) : (u & 8 && p(n, ""), m & 16 && T(d, n, r, i, a, o, s, c)); }, pe = (e, t, r, i, a, o, s, c, l) => { e ||= n, t ||= n; let u = e.length, d = t.length, f = Math.min(u, d), p; for (p = 0; p < f; p++) { let n = t[p] = l ? ma(t[p]) : pa(t[p]); v(e[p], n, r, null, a, o, s, c, l); } u > d ? ye(e, a, o, !0, !1, f) : T(t, r, i, a, o, s, c, l, f); }, me = (e, t, r, i, a, o, s, c, l) => { let u = 0, d = t.length, f = e.length - 1, p = d - 1; for (; u <= f && u <= p;) { let n = e[u], i = t[u] = l ? ma(t[u]) : pa(t[u]); if (aa(n, i)) v(n, i, r, null, a, o, s, c, l); else break; u++; } for (; u <= f && u <= p;) { let n = e[f], i = t[p] = l ? ma(t[p]) : pa(t[p]); if (aa(n, i)) v(n, i, r, null, a, o, s, c, l); else break; f--, p--; } if (u > f) { if (u <= p) { let e = p + 1, n = e < d ? t[e].el : i; for (; u <= p;) v(null, t[u] = l ? ma(t[u]) : pa(t[u]), r, n, a, o, s, c, l), u++; } } else if (u > p) for (; u <= f;) ge(e[u], a, o, !0), u++; else { let m = u, h = u, g = /* @__PURE__ */ new Map(); for (u = h; u <= p; u++) { let e = t[u] = l ? ma(t[u]) : pa(t[u]); e.key != null && g.set(e.key, u); } let _, y = 0, b = p - h + 1, x = !1, S = 0, C = Array(b); for (u = 0; u < b; u++) C[u] = 0; for (u = m; u <= f; u++) { let n = e[u]; if (y >= b) { ge(n, a, o, !0); continue; } let i; if (n.key != null) i = g.get(n.key); else for (_ = h; _ <= p; _++) if (C[_ - h] === 0 && aa(n, t[_])) { i = _; break; } i === void 0 ? ge(n, a, o, !0) : (C[i - h] = u + 1, i >= S ? S = i : x = !0, v(n, t[i], r, null, a, o, s, c, l), y++); } let w = x ? Ui(C) : n; for (_ = w.length - 1, u = b - 1; u >= 0; u--) { let e = h + u, n = t[e], f = t[e + 1], p = e + 1 < d ? f.el || Ki(f) : i; C[u] === 0 ? v(null, n, r, p, a, o, s, c, l) : x && (_ < 0 || u !== w[_] ? he(n, r, p, 2) : _--); } } }, he = (e, t, n, r, i = null) => { let { el: a, type: c, transition: l, children: u, shapeFlag: d } = e; if (d & 6) { he(e.component.subTree, t, n, r); return; } if (d & 128) { e.suspense.move(t, n, r); return; } if (d & 64) { c.move(e, t, n, Ce); return; } if (c === V) { o(a, t, n); for (let e = 0; e < u.length; e++) he(u[e], t, n, r); o(e.anchor, t, n); return; } if (c === Xi) { S(e, t, n); return; } if (r !== 2 && d & 1 && l) if (r === 0) l.persisted && !a[Zn] ? o(a, t, n) : (l.beforeEnter(a), o(a, t, n), B(() => l.enter(a), i)); else { let { leave: r, delayLeave: i, afterLeave: c } = l, u = () => { e.ctx.isUnmounted ? s(a) : o(a, t, n); }, d = () => { let e = a._isLeaving || !!a[Zn]; a._isLeaving && a[Zn](!0), l.persisted && !e ? u() : r(a, () => { u(), c && c(); }); }; i ? i(a, u, d) : d(); } else o(a, t, n); }, ge = (e, t, n, r = !1, i = !1) => { let { type: a, props: o, ref: s, children: c, dynamicChildren: l, shapeFlag: u, patchFlag: d, dirs: f, cacheIndex: p, memo: m } = e; if (d === -2 && (i = !1), s != null && (We(), gr(s, null, n, e, !0), Ge()), p != null && (t.renderCache[p] = void 0), u & 256) { t.ctx.deactivate(e); return; } let h = u & 1 && f, g = !vr(e), _; if (g && (_ = o && o.onVnodeBeforeUnmount) && _a(_, t, e), u & 6) ve(e.component, n, r); else { if (u & 128) { e.suspense.unmount(n, r); return; } h && On(e, null, t, "beforeUnmount"), u & 64 ? e.type.remove(e, t, n, Ce, r) : l && !l.hasOnce && (a !== V || d > 0 && d & 64) ? ye(l, t, n, !1, !0) : (a === V && d & 384 || !i && u & 16) && ye(c, t, n), r && O(e); } let v = m != null && p == null; (g && (_ = o && o.onVnodeUnmounted) || h || v) && B(() => { _ && _a(_, t, e), h && On(e, null, t, "unmounted"), v && (e.el = null); }, n); }, O = (e) => { let { type: t, el: n, anchor: r, transition: i } = e; if (t === V) { _e(n, r); return; } if (t === Xi) { C(e); return; } let a = () => { s(n), i && !i.persisted && i.afterLeave && i.afterLeave(); }; if (e.shapeFlag & 1 && i && !i.persisted) { let { leave: t, delayLeave: r } = i, o = () => t(n, a); r ? r(e.el, a, o) : o(); } else a(); }, _e = (e, t) => { let n; for (; e !== t;) n = h(e), s(e), e = n; s(t); }, ve = (e, t, n) => { let { bum: r, scope: i, job: a, subTree: o, um: s, m: c, a: l } = e; Gi(c), Gi(l), r && se(r), i.stop(), a && (a.flags |= 8, ge(o, e, t, n)), s && B(s, t), B(() => { e.isUnmounted = !0; }, t); }, ye = (e, t, n, r = !1, i = !1, a = 0) => { for (let o = a; o < e.length; o++) ge(e[o], t, n, r, i); }, be = (e) => { if (e.shapeFlag & 6) return be(e.component.subTree); if (e.shapeFlag & 128) return e.suspense.next(); let t = h(e.anchor || e.el), n = t && t[Rn]; return n ? h(n) : t; }, xe = !1, Se = (e, t, n) => { let r; e == null ? t._vnode && (ge(t._vnode, null, null, !0), r = t._vnode.component) : v(t._vnode || null, e, t, null, null, null, n), t._vnode = e, xe ||= (xe = !0, bn(r), xn(), !1); }, Ce = { p: v, um: ge, m: he, r: O, mt: D, mc: T, pc: fe, pbc: E, n: be, o: e }, k, we; return i && ([k, we] = i(Ce)), { render: Se, hydrate: k, createApp: ai(Se, k) }; } function zi({ type: e, props: t }, n) { return n === "svg" && e === "foreignObject" || n === "mathml" && e === "annotation-xml" && t && t.encoding && t.encoding.includes("html") ? void 0 : n; } function Bi({ effect: e, job: t }, n) { n ? (e.flags |= 32, t.flags |= 4) : (e.flags &= -33, t.flags &= -5); } function Vi(e, t) { return (!e || e && !e.pendingBranch) && t && !t.persisted; } function Hi(e, t, n = !1) { let r = e.children, i = t.children; if (d(r) && d(i)) for (let e = 0; e < r.length; e++) { let t = r[e], a = i[e]; a.shapeFlag & 1 && !a.dynamicChildren && ((a.patchFlag <= 0 || a.patchFlag === 32) && (a = i[e] = ma(i[e]), a.el = t.el), !n && a.patchFlag !== -2 && Hi(t, a)), a.type === Yi && (a.patchFlag === -1 && (a = i[e] = ma(a)), a.el = t.el), a.type === H && !a.el && (a.el = t.el); } } function Ui(e) { let t = e.slice(), n = [0], r, i, a, o, s, c = e.length; for (r = 0; r < c; r++) { let c = e[r]; if (c !== 0) { if (i = n[n.length - 1], e[i] < c) { t[r] = i, n.push(r); continue; } for (a = 0, o = n.length - 1; a < o;) s = a + o >> 1, e[n[s]] < c ? a = s + 1 : o = s; c < e[n[a]] && (a > 0 && (t[r] = n[a - 1]), n[a] = r); } } for (a = n.length, o = n[a - 1]; a-- > 0;) n[a] = o, o = t[o]; return n; } function Wi(e) { let t = e.subTree.component; if (t) return t.asyncDep && !t.asyncResolved ? t : Wi(t); } function Gi(e) { if (e) for (let t = 0; t < e.length; t++) e[t].flags |= 8; } function Ki(e) { if (e.placeholder) return e.placeholder; let t = e.component; return t ? Ki(t.subTree) : null; } var qi = (e) => e.__isSuspense; function Ji(e, t) { t && t.pendingBranch ? d(e) ? t.effects.push(...e) : t.effects.push(e) : yn(e); } var V = /* @__PURE__ */ Symbol.for("v-fgt"), Yi = /* @__PURE__ */ Symbol.for("v-txt"), H = /* @__PURE__ */ Symbol.for("v-cmt"), Xi = /* @__PURE__ */ Symbol.for("v-stc"), Zi = [], Qi = null; function U(e = !1) { Zi.push(Qi = e ? null : []); } function $i() { Zi.pop(), Qi = Zi[Zi.length - 1] || null; } var ea = 1; function ta(e, t = !1) { ea += e, e < 0 && Qi && t && (Qi.hasOnce = !0); } function na(e) { return e.dynamicChildren = ea > 0 ? Qi || n : null, $i(), ea > 0 && Qi && Qi.push(e), e; } function W(e, t, n, r, i, a) { return na(G(e, t, n, r, i, a, !0)); } function ra(e, t, n, r, i) { return na(K(e, t, n, r, i, !0)); } function ia(e) { return e ? e.__v_isVNode === !0 : !1; } function aa(e, t) { return e.type === t.type && e.key === t.key; } var oa = ({ key: e }) => e ?? null, sa = ({ ref: e, ref_key: t, ref_for: n }) => (typeof e == "number" && (e = "" + e), e == null ? null : g(e) || /* @__PURE__ */ P(e) || h(e) ? { i: wn, r: e, k: t, f: !!n } : e); function G(e, t = null, n = null, r = 0, i = null, a = e === V ? 0 : 1, o = !1, s = !1) { let c = { __v_isVNode: !0, __v_skip: !0, type: e, props: t, key: t && oa(t), ref: t && sa(t), scopeId: Tn, slotScopeIds: null, children: n, component: null, suspense: null, ssContent: null, ssFallback: null, dirs: null, transition: null, el: null, anchor: null, target: null, targetStart: null, targetAnchor: null, staticCount: 0, shapeFlag: a, patchFlag: r, dynamicProps: i, dynamicChildren: null, appContext: null, ctx: wn }; return s ? (ha(c, n), a & 128 && e.normalize(c)) : n && (c.shapeFlag |= g(n) ? 8 : 16), ea > 0 && !o && Qi && (c.patchFlag > 0 || a & 6) && c.patchFlag !== 32 && Qi.push(c), c; } var K = ca; function ca(e, t = null, n = null, r = 0, i = null, a = !1) { if ((!e || e === Ir) && (e = H), ia(e)) { let r = ua(e, t, !0); return n && ha(r, n), ea > 0 && !a && Qi && (r.shapeFlag & 6 ? Qi[Qi.indexOf(e)] = r : Qi.push(r)), r.patchFlag = -2, r; } if (La(e) && (e = e.__vccOpts), t) { t = la(t); let { class: e, style: n } = t; e && !g(e) && (t.class = O(e)), v(n) && (/* @__PURE__ */ Ht(n) && !d(n) && (n = s({}, n)), t.style = fe(n)); } let o = g(e) ? 1 : qi(e) ? 128 : zn(e) ? 64 : v(e) ? 4 : h(e) ? 2 : 0; return G(e, t, n, r, i, o, a, !0); } function la(e) { return e ? /* @__PURE__ */ Ht(e) || xi(e) ? s({}, e) : e : null; } function ua(e, t, n = !1, r = !1) { let { props: i, ref: a, patchFlag: o, children: s, transition: c } = e, l = t ? ga(i || {}, t) : i, u = { __v_isVNode: !0, __v_skip: !0, type: e.type, props: l, key: l && oa(l), ref: t && t.ref ? n && a ? d(a) ? a.concat(sa(t)) : [a, sa(t)] : sa(t) : a, scopeId: e.scopeId, slotScopeIds: e.slotScopeIds, children: s, target: e.target, targetStart: e.targetStart, targetAnchor: e.targetAnchor, staticCount: e.staticCount, shapeFlag: e.shapeFlag, patchFlag: t && e.type !== V ? o === -1 ? 16 : o | 16 : o, dynamicProps: e.dynamicProps, dynamicChildren: e.dynamicChildren, appContext: e.appContext, dirs: e.dirs, transition: c, component: e.component, suspense: e.suspense, ssContent: e.ssContent && ua(e.ssContent), ssFallback: e.ssFallback && ua(e.ssFallback), placeholder: e.placeholder, el: e.el, anchor: e.anchor, ctx: e.ctx, ce: e.ce }; return c && r && ur(u, c.clone(u)), u; } function da(e = " ", t = 0) { return K(Yi, null, e, t); } function fa(e, t) { let n = K(Xi, null, e); return n.staticCount = t, n; } function q(e = "", t = !1) { return t ? (U(), ra(H, null, e)) : K(H, null, e); } function pa(e) { return e == null || typeof e == "boolean" ? K(H) : d(e) ? K(V, null, e.slice()) : ia(e) ? ma(e) : K(Yi, null, String(e)); } function ma(e) { return e.el === null && e.patchFlag !== -1 || e.memo ? e : ua(e); } function ha(e, t) { let n = 0, { shapeFlag: r } = e; if (t == null) t = null; else if (d(t)) n = 16; else if (typeof t == "object") if (r & 65) { let n = t.default; n && (n._c && (n._d = !1), ha(e, n()), n._c && (n._d = !0)); return; } else { n = 32; let r = t._; !r && !xi(t) ? t._ctx = wn : r === 3 && wn && (wn.slots._ === 1 ? t._ = 1 : (t._ = 2, e.patchFlag |= 1024)); } else if (h(t)) { if (r & 65) { ha(e, { default: t }); return; } t = { default: t, _ctx: wn }, n = 32; } else t = String(t), r & 64 ? (n = 16, t = [da(t)]) : n = 8; e.children = t, e.shapeFlag |= n; } function ga(...e) { let t = {}; for (let n = 0; n < e.length; n++) { let r = e[n]; for (let e in r) if (e === "class") t.class !== r.class && (t.class = O([t.class, r.class])); else if (e === "style") t.style = fe([t.style, r.style]); else if (a(e)) { let n = t[e], i = r[e]; i && n !== i && !(d(n) && n.includes(i)) ? t[e] = n ? [].concat(n, i) : i : i == null && n == null && !o(e) && (t[e] = i); } else e !== "" && (t[e] = r[e]); } return t; } function _a(e, t, n, r = null) { on(e, t, 7, [n, r]); } var va = ri(), ya = 0; function ba(e, n, r) { let i = e.type, a = (n ? n.appContext : e.appContext) || va, o = { uid: ya++, vnode: e, type: i, parent: n, appContext: a, root: null, next: null, subTree: null, effect: null, update: null, job: null, scope: new Ee(!0), render: null, proxy: null, exposed: null, exposeProxy: null, withProxy: null, provides: n ? n.provides : Object.create(a.provides), ids: n ? n.ids : [ "", 0, 0 ], accessCache: null, renderCache: [], components: null, directives: null, propsOptions: Di(i, a), emitsOptions: ui(i, a), emit: null, emitted: null, propsDefaults: t, inheritAttrs: i.inheritAttrs, ctx: t, data: t, props: t, attrs: t, slots: t, refs: t, setupState: t, setupContext: null, suspense: r, suspenseId: r ? r.pendingId : 0, asyncDep: null, asyncResolved: !1, isMounted: !1, isUnmounted: !1, isDeactivated: !1, bc: null, c: null, bm: null, m: null, bu: null, u: null, um: null, bum: null, da: null, a: null, rtg: null, rtc: null, ec: null, sp: null }; return o.ctx = { _: o }, o.root = n ? n.root : o, o.emit = ci.bind(null, o), e.ce && e.ce(o), o; } var J = null, xa = () => J || wn, Sa, Ca; { let e = de(), t = (t, n) => { let r; return (r = e[t]) || (r = e[t] = []), r.push(n), (e) => { r.length > 1 ? r.forEach((t) => t(e)) : r[0](e); }; }; Sa = t("__VUE_INSTANCE_SETTERS__", (e) => J = e), Ca = t("__VUE_SSR_SETTERS__", (e) => Da = e); } var wa = (e) => { let t = J; return Sa(e), e.scope.on(), () => { e.scope.off(), Sa(t); }; }, Ta = () => { J && J.scope.off(), Sa(null); }; function Ea(e) { return e.vnode.shapeFlag & 4; } var Da = !1; function Oa(e, t = !1, n = !1) { t && Ca(t); let { props: r, children: i } = e.vnode, a = Ea(e); Si(e, r, a, t), Fi(e, i, n || t); let o = a ? ka(e, t) : void 0; return t && Ca(!1), o; } function ka(e, t) { let n = e.type; e.accessCache = /* @__PURE__ */ Object.create(null), e.proxy = new Proxy(e.ctx, Vr); let { setup: r } = n; if (r) { We(); let n = e.setupContext = r.length > 1 ? Fa(e) : null, i = wa(e), a = an(r, e, 0, [e.props, n]), o = y(a); if (Ge(), i(), (o || e.sp) && !vr(e) && pr(e), o) { if (a.then(Ta, Ta), t) return a.then((n) => { Aa(e, n, t); }).catch((t) => { sn(t, e, 0); }); e.asyncDep = a; } else Aa(e, a, t); } else Na(e, t); } function Aa(e, t, n) { h(t) ? e.type.__ssrInlineRender ? e.ssrRender = t : e.render = t : v(t) && (e.setupState = Yt(t)), Na(e, n); } var ja, Ma; function Na(e, t, n) { let i = e.type; if (!e.render) { if (!t && ja && !i.render) { let t = i.template || Jr(e).template; if (t) { let { isCustomElement: n, compilerOptions: r } = e.appContext.config, { delimiters: a, compilerOptions: o } = i; i.render = ja(t, s(s({ isCustomElement: n, delimiters: a }, r), o)); } } e.render = i.render || r, Ma && Ma(e); } { let t = wa(e); We(); try { Wr(e); } finally { Ge(), t(); } } } var Pa = { get(e, t) { return M(e, "get", ""), e[t]; } }; function Fa(e) { return { attrs: new Proxy(e.attrs, Pa), slots: e.slots, emit: e.emit, expose: (t) => { e.exposed = t || {}; } }; } function Ia(e) { return e.exposed ? e.exposeProxy ||= new Proxy(Yt(Ut(e.exposed)), { get(t, n) { if (n in t) return t[n]; if (n in zr) return zr[n](e); }, has(e, t) { return t in e || t in zr; } }) : e.proxy; } function La(e) { return h(e) && "__vccOpts" in e; } var Y = (e, t) => /* @__PURE__ */ Zt(e, t, Da); function Ra(e, t, n) { try { ta(-1); let r = arguments.length; return r === 2 ? v(t) && !d(t) ? ia(t) ? K(e, null, [t]) : K(e, t) : K(e, null, t) : (r > 3 ? n = Array.prototype.slice.call(arguments, 2) : r === 3 && ia(n) && (n = [n]), K(e, t, n)); } finally { ta(1); } } var za = "3.5.40", Ba = void 0, Va = typeof window < "u" && window.trustedTypes; if (Va) try { Ba = /* @__PURE__ */ Va.createPolicy("vue", { createHTML: (e) => e }); } catch {} var Ha = Ba ? (e) => Ba.createHTML(e) : (e) => e, Ua = "http://www.w3.org/2000/svg", Wa = "http://www.w3.org/1998/Math/MathML", Ga = typeof document < "u" ? document : null, Ka = Ga && /* @__PURE__ */ Ga.createElement("template"), qa = { insert: (e, t, n) => { t.insertBefore(e, n || null); }, remove: (e) => { let t = e.parentNode; t && t.removeChild(e); }, createElement: (e, t, n, r) => { let i = t === "svg" ? Ga.createElementNS(Ua, e) : t === "mathml" ? Ga.createElementNS(Wa, e) : n ? Ga.createElement(e, { is: n }) : Ga.createElement(e); return e === "select" && r && r.multiple != null && i.setAttribute("multiple", r.multiple), i; }, createText: (e) => Ga.createTextNode(e), createComment: (e) => Ga.createComment(e), setText: (e, t) => { e.nodeValue = t; }, setElementText: (e, t) => { e.textContent = t; }, parentNode: (e) => e.parentNode, nextSibling: (e) => e.nextSibling, querySelector: (e) => Ga.querySelector(e), setScopeId(e, t) { e.setAttribute(t, ""); }, insertStaticContent(e, t, n, r, i, a) { let o = n ? n.previousSibling : t.lastChild; if (i && (i === a || i.nextSibling)) for (; t.insertBefore(i.cloneNode(!0), n), !(i === a || !(i = i.nextSibling));); else { Ka.innerHTML = Ha(r === "svg" ? `${e}` : r === "mathml" ? `${e}` : e); let i = Ka.content; if (r === "svg" || r === "mathml") { let e = i.firstChild; for (; e.firstChild;) i.appendChild(e.firstChild); i.removeChild(e); } t.insertBefore(i, n); } return [o ? o.nextSibling : t.firstChild, n ? n.previousSibling : t.lastChild]; } }, Ja = "transition", Ya = "animation", Xa = /* @__PURE__ */ Symbol("_vtc"), Za = { name: String, type: String, css: { type: Boolean, default: !0 }, duration: [ String, Number, Object ], enterFromClass: String, enterActiveClass: String, enterToClass: String, appearFromClass: String, appearActiveClass: String, appearToClass: String, leaveFromClass: String, leaveActiveClass: String, leaveToClass: String }, Qa = /* @__PURE__ */ s({}, tr, Za), $a = /* @__PURE__ */ ((e) => (e.displayName = "Transition", e.props = Qa, e))((e, { slots: t }) => Ra(ar, no(e), t)), eo = (e, t = []) => { d(e) ? e.forEach((e) => e(...t)) : e && e(...t); }, to = (e) => e ? d(e) ? e.some((e) => e.length > 1) : e.length > 1 : !1; function no(e) { let t = {}; for (let n in e) n in Za || (t[n] = e[n]); if (e.css === !1) return t; let { name: n = "v", type: r, duration: i, enterFromClass: a = `${n}-enter-from`, enterActiveClass: o = `${n}-enter-active`, enterToClass: c = `${n}-enter-to`, appearFromClass: l = a, appearActiveClass: u = o, appearToClass: d = c, leaveFromClass: f = `${n}-leave-from`, leaveActiveClass: p = `${n}-leave-active`, leaveToClass: m = `${n}-leave-to` } = e, h = ro(i), g = h && h[0], _ = h && h[1], { onBeforeEnter: v, onEnter: y, onEnterCancelled: b, onLeave: x, onLeaveCancelled: S, onBeforeAppear: C = v, onAppear: w = y, onAppearCancelled: ee = b } = t, te = (e, t, n, r) => { e._enterCancelled = r, oo(e, t ? d : c), oo(e, t ? u : o), n && n(); }, ne = (e, t) => { e._isLeaving = !1, oo(e, f), oo(e, m), oo(e, p), t && t(); }, T = (e) => (t, n) => { let i = e ? w : y, o = () => te(t, e, n); eo(i, [t, o]), so(() => { oo(t, e ? l : a), ao(t, e ? d : c), to(i) || lo(t, r, g, o); }); }; return s(t, { onBeforeEnter(e) { eo(v, [e]), ao(e, a), ao(e, o); }, onBeforeAppear(e) { eo(C, [e]), ao(e, l), ao(e, u); }, onEnter: T(!1), onAppear: T(!0), onLeave(e, t) { e._isLeaving = !0; let n = () => ne(e, t); ao(e, f), e._enterCancelled ? (ao(e, p), mo(e)) : (mo(e), ao(e, p)), so(() => { e._isLeaving && (oo(e, f), ao(e, m), to(x) || lo(e, r, _, n)); }), eo(x, [e, n]); }, onEnterCancelled(e) { te(e, !1, void 0, !0), eo(b, [e]); }, onAppearCancelled(e) { te(e, !0, void 0, !0), eo(ee, [e]); }, onLeaveCancelled(e) { ne(e), eo(S, [e]); } }); } function ro(e) { if (e == null) return null; if (v(e)) return [io(e.enter), io(e.leave)]; { let t = io(e); return [t, t]; } } function io(e) { return le(e); } function ao(e, t) { t.split(/\s+/).forEach((t) => t && e.classList.add(t)), (e[Xa] || (e[Xa] = /* @__PURE__ */ new Set())).add(t); } function oo(e, t) { t.split(/\s+/).forEach((t) => t && e.classList.remove(t)); let n = e[Xa]; n && (n.delete(t), n.size || (e[Xa] = void 0)); } function so(e) { requestAnimationFrame(() => { requestAnimationFrame(e); }); } var co = 0; function lo(e, t, n, r) { let i = e._endId = ++co, a = () => { i === e._endId && r(); }; if (n != null) return setTimeout(a, n); let { type: o, timeout: s, propCount: c } = uo(e, t); if (!o) return r(); let l = o + "end", u = 0, d = () => { e.removeEventListener(l, f), a(); }, f = (t) => { t.target === e && ++u >= c && d(); }; setTimeout(() => { u < c && d(); }, s + 1), e.addEventListener(l, f); } function uo(e, t) { let n = window.getComputedStyle(e), r = (e) => (n[e] || "").split(", "), i = r(`${Ja}Delay`), a = r(`${Ja}Duration`), o = fo(i, a), s = r(`${Ya}Delay`), c = r(`${Ya}Duration`), l = fo(s, c), u = null, d = 0, f = 0; t === Ja ? o > 0 && (u = Ja, d = o, f = a.length) : t === Ya ? l > 0 && (u = Ya, d = l, f = c.length) : (d = Math.max(o, l), u = d > 0 ? o > l ? Ja : Ya : null, f = u ? u === Ja ? a.length : c.length : 0); let p = u === Ja && /\b(?:transform|all)(?:,|$)/.test(r(`${Ja}Property`).toString()); return { type: u, timeout: d, propCount: f, hasTransform: p }; } function fo(e, t) { for (; e.length < t.length;) e = e.concat(e); return Math.max(...t.map((t, n) => po(t) + po(e[n]))); } function po(e) { return e === "auto" ? 0 : Number(e.slice(0, -1).replace(",", ".")) * 1e3; } function mo(e) { return (e ? e.ownerDocument : document).body.offsetHeight; } function ho(e, t, n) { let r = e[Xa]; r && (t = (t ? [t, ...r] : [...r]).join(" ")), t == null ? e.removeAttribute("class") : n ? e.setAttribute("class", t) : e.className = t; } var go = /* @__PURE__ */ Symbol("_vod"), _o = /* @__PURE__ */ Symbol("_vsh"), vo = /* @__PURE__ */ Symbol(""), yo = /(?:^|;)\s*display\s*:/; function bo(e, t, n) { let r = e.style, i = g(n), a = !1; if (n && !i) { if (t) if (g(t)) for (let e of t.split(";")) { let t = e.slice(0, e.indexOf(":")).trim(); n[t] ?? So(r, t, ""); } else for (let e in t) n[e] ?? So(r, e, ""); for (let i in n) { i === "display" && (a = !0); let o = n[i]; o == null ? So(r, i, "") : Eo(e, i, !g(t) && t ? t[i] : void 0, o) || So(r, i, o); } } else if (i) { if (t !== n) { let e = r[vo]; e && (n += ";" + e), r.cssText = n, a = yo.test(n); } } else t && e.removeAttribute("style"); go in e && (e[go] = a ? r.display : "", e[_o] && (r.display = "none")); } var xo = /\s*!important$/; function So(e, t, n) { if (d(n)) n.forEach((n) => So(e, t, n)); else if (n ??= "", t.startsWith("--")) e.setProperty(t, n); else { let r = To(e, t); xo.test(n) ? e.setProperty(E(r), n.replace(xo, ""), "important") : e[r] = n; } } var Co = [ "Webkit", "Moz", "ms" ], wo = {}; function To(e, t) { let n = wo[t]; if (n) return n; let r = T(t); if (r !== "filter" && r in e) return wo[t] = r; r = ie(r); for (let n = 0; n < Co.length; n++) { let i = Co[n] + r; if (i in e) return wo[t] = i; } return t; } function Eo(e, t, n, r) { return e.tagName === "TEXTAREA" && (t === "width" || t === "height") && g(r) && n === r; } var Do = "http://www.w3.org/1999/xlink"; function Oo(e, t, n, r, i, a = ve(t)) { r && t.startsWith("xlink:") ? n == null ? e.removeAttributeNS(Do, t.slice(6, t.length)) : e.setAttributeNS(Do, t, n) : n == null || a && !ye(n) ? e.removeAttribute(t) : e.setAttribute(t, a ? "" : _(n) ? String(n) : n); } function ko(e, t, n, r, i) { if (t === "innerHTML" || t === "textContent") { n != null && (e[t] = t === "innerHTML" ? Ha(n) : n); return; } let a = e.tagName; if (t === "value" && a !== "PROGRESS" && !a.includes("-")) { let r = a === "OPTION" ? e.getAttribute("value") || "" : e.value, i = n == null ? e.type === "checkbox" ? "on" : "" : String(n); (r !== i || !("_value" in e)) && (e.value = i), n ?? e.removeAttribute(t), e._value = n; return; } let o = !1; if (n === "" || n == null) { let r = typeof e[t]; r === "boolean" ? n = ye(n) : n == null && r === "string" ? (n = "", o = !0) : r === "number" && (n = 0, o = !0); } try { e[t] = n; } catch {} o && e.removeAttribute(i || t); } function Ao(e, t, n, r) { e.addEventListener(t, n, r); } function jo(e, t, n, r) { e.removeEventListener(t, n, r); } var Mo = /* @__PURE__ */ Symbol("_vei"); function No(e, t, n, r, i = null) { let a = e[Mo] || (e[Mo] = {}), o = a[t]; if (r && o) o.value = r; else { let [n, s] = Io(t); r ? Ao(e, n, a[t] = Bo(r, i), s) : o && (jo(e, n, o, s), a[t] = void 0); } } var Po = /(Once|Passive|Capture)$/, Fo = /^on:?(?:Once|Passive|Capture)$/; function Io(e) { let t, n; for (; (n = e.match(Po)) && !Fo.test(e);) t ||= {}, e = e.slice(0, e.length - n[1].length), t[n[1].toLowerCase()] = !0; return [e[2] === ":" ? e.slice(3) : E(e.slice(2)), t]; } var Lo = 0, Ro = /* @__PURE__ */ Promise.resolve(), zo = () => Lo ||= (Ro.then(() => Lo = 0), Date.now()); function Bo(e, t) { let n = (e) => { if (!e._vts) e._vts = Date.now(); else if (e._vts <= n.attached) return; let r = n.value; if (d(r)) { let n = e.stopImmediatePropagation; e.stopImmediatePropagation = () => { n.call(e), e._stopped = !0; }; let i = r.slice(), a = [e]; for (let n = 0; n < i.length && !e._stopped; n++) { let e = i[n]; e && on(e, t, 5, a); } } else on(r, t, 5, [e]); }; return n.value = e, n.attached = zo(), n; } var Vo = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && e.charCodeAt(2) > 96 && e.charCodeAt(2) < 123, Ho = (e, t, n, r, i, s) => { let c = i === "svg"; t === "class" ? ho(e, r, c) : t === "style" ? bo(e, n, r) : a(t) ? o(t) || No(e, t, n, r, s) : (t[0] === "." ? (t = t.slice(1), !0) : t[0] === "^" ? (t = t.slice(1), !1) : Uo(e, t, r, c)) ? (ko(e, t, r), !e.tagName.includes("-") && (t === "value" || t === "checked" || t === "selected") && Oo(e, t, r, c, s, t !== "value")) : e._isVueCE && (Wo(e, t) || e._def.__asyncLoader && (/[A-Z]/.test(t) || !g(r))) ? ko(e, T(t), r, s, t) : (t === "true-value" ? e._trueValue = r : t === "false-value" && (e._falseValue = r), Oo(e, t, r, c)); }; function Uo(e, t, n, r) { if (r) return !!(t === "innerHTML" || t === "textContent" || t in e && Vo(t) && h(n)); if (t === "spellcheck" || t === "draggable" || t === "translate" || t === "autocorrect" || t === "sandbox" && e.tagName === "IFRAME" || t === "form" || t === "list" && e.tagName === "INPUT" || t === "type" && e.tagName === "TEXTAREA") return !1; if (t === "width" || t === "height") { let t = e.tagName; if (t === "IMG" || t === "VIDEO" || t === "CANVAS" || t === "SOURCE") return !1; } return Vo(t) && g(n) ? !1 : t in e; } function Wo(e, t) { let n = e._def.props; if (!n) return !1; let r = T(t); return Array.isArray(n) ? n.some((e) => T(e) === r) : Object.keys(n).some((e) => T(e) === r); } var Go = (e) => { let t = e.props["onUpdate:modelValue"] || !1; return d(t) ? (e) => se(t, e) : t; }; function Ko(e) { e.target.composing = !0; } function qo(e) { let t = e.target; t.composing && (t.composing = !1, t.dispatchEvent(new Event("input"))); } var Jo = /* @__PURE__ */ Symbol("_assign"); function Yo(e, t, n) { return t && (e = e.trim()), n && (e = ce(e)), e; } var Xo = { created(e, { modifiers: { lazy: t, trim: n, number: r } }, i) { e[Jo] = Go(i); let a = r || i.props && i.props.type === "number"; Ao(e, t ? "change" : "input", (t) => { t.target.composing || e[Jo](Yo(e.value, n, a)); }), (n || a) && Ao(e, "change", () => { e.value = Yo(e.value, n, a); }), t || (Ao(e, "compositionstart", Ko), Ao(e, "compositionend", qo), Ao(e, "change", qo)); }, mounted(e, { value: t }) { e.value = t ?? ""; }, beforeUpdate(e, { value: t, oldValue: n, modifiers: { lazy: r, trim: i, number: a } }, o) { if (e[Jo] = Go(o), e.composing) return; let s = (a || e.type === "number") && !/^0\d/.test(e.value) ? ce(e.value) : e.value, c = t ?? ""; if (s === c) return; let l = e.getRootNode(); (l instanceof Document || l instanceof ShadowRoot) && l.activeElement === e && e.type !== "range" && (r && t === n || i && e.value.trim() === c) || (e.value = c); } }, Zo = { deep: !0, created(e, t, n) { e[Jo] = Go(n), Ao(e, "change", () => { let t = e._modelValue, n = ts(e), r = e.checked, i = e[Jo]; if (d(t)) { let e = Se(t, n), a = e !== -1; if (r && !a) i(t.concat(n)); else if (!r && a) { let n = [...t]; n.splice(e, 1), i(n); } } else if (p(t)) { let e = new Set(t); r ? e.add(n) : e.delete(n), i(e); } else i(ns(e, r)); }); }, mounted: Qo, beforeUpdate(e, t, n) { e[Jo] = Go(n), Qo(e, t, n); } }; function Qo(e, { value: t, oldValue: n }, r) { e._modelValue = t; let i; if (d(t)) i = Se(t, r.props.value) > -1; else if (p(t)) i = t.has(r.props.value); else { if (t === n) return; i = xe(t, ns(e, !0)); } e.checked !== i && (e.checked = i); } var $o = { deep: !0, created(e, { value: t, modifiers: { number: n } }, r) { e._modelValue = t, Ao(e, "change", () => { let t = Array.prototype.filter.call(e.options, (e) => e.selected).map((e) => n ? ce(ts(e)) : ts(e)); e[Jo](e.multiple ? p(e._modelValue) ? new Set(t) : t : t[0]), e._assigning = !0, hn(() => { e._assigning = !1; }); }), e[Jo] = Go(r); }, mounted(e, { value: t }) { es(e, t); }, beforeUpdate(e, { value: t }, n) { e._modelValue = t, e[Jo] = Go(n); }, updated(e, { value: t }) { e._assigning || es(e, t); } }; function es(e, t) { let n = e.multiple, r = d(t); if (!(n && !r && !p(t))) { for (let i = 0, a = e.options.length; i < a; i++) { let a = e.options[i], o = ts(a); if (n) if (r) { let e = typeof o; a.selected = e === "string" || e === "number" ? t.some((e) => String(e) === String(o)) : Se(t, o) > -1; } else a.selected = t.has(o); else if (xe(ts(a), t)) { e.selectedIndex !== i && (e.selectedIndex = i); return; } } !n && e.selectedIndex !== -1 && (e.selectedIndex = -1); } } function ts(e) { return "_value" in e ? e._value : e.value; } function ns(e, t) { let n = t ? "_trueValue" : "_falseValue"; return n in e ? e[n] : t; } var rs = [ "ctrl", "shift", "alt", "meta" ], is = { stop: (e) => e.stopPropagation(), prevent: (e) => e.preventDefault(), self: (e) => e.target !== e.currentTarget, ctrl: (e) => !e.ctrlKey, shift: (e) => !e.shiftKey, alt: (e) => !e.altKey, meta: (e) => !e.metaKey, left: (e) => "button" in e && e.button !== 0, middle: (e) => "button" in e && e.button !== 1, right: (e) => "button" in e && e.button !== 2, exact: (e, t) => rs.some((n) => e[`${n}Key`] && !t.includes(n)) }, as = (e, t) => { if (!e) return e; let n = e._withMods ||= {}, r = t.join("."); return n[r] || (n[r] = ((n, ...r) => { for (let e = 0; e < t.length; e++) { let r = is[t[e]]; if (r && r(n, t)) return; } return e(n, ...r); })); }, os = { esc: "escape", space: " ", up: "arrow-up", left: "arrow-left", right: "arrow-right", down: "arrow-down", delete: "backspace" }, ss = (e, t) => { let n = e._withKeys ||= {}, r = t.join("."); return n[r] || (n[r] = ((n) => { if (!("key" in n)) return; let r = E(n.key); if (t.some((e) => e === r || os[e] === r)) return e(n); })); }, cs = /* @__PURE__ */ s({ patchProp: Ho }, qa), ls; function us() { return ls ||= Li(cs); } var ds = ((...e) => { let t = us().createApp(...e), { mount: n } = t; return t.mount = (e) => { let r = ps(e); if (!r) return; let i = t._component; !h(i) && !i.render && !i.template && (i.template = r.innerHTML), r.nodeType === 1 && (r.textContent = ""); let a = n(r, !1, fs(r)); return r instanceof Element && (r.removeAttribute("v-cloak"), r.setAttribute("data-v-app", "")), a; }, t; }); function fs(e) { if (e instanceof SVGElement) return "svg"; if (typeof MathMLElement == "function" && e instanceof MathMLElement) return "mathml"; } function ps(e) { return g(e) ? document.querySelector(e) : e; } //#endregion //#region src/api.ts async function ms(e, t = {}) { let n = await fetch(e, { credentials: "same-origin", ...t, headers: { Accept: "application/json", ...t.headers || {} } }), r = (n.headers.get("content-type") || "").includes("application/json") ? await n.json() : await n.text(); if (!n.ok) { let e = typeof r == "object" && r ? r.error || r.detail || r.message : r; throw Error(String(e || `Request failed (${n.status})`)); } return r; } function hs(e) { return ms(e); } function gs(e, t = {}) { return ms(e, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(t) }); } function _s(e, t) { return ms(e, { method: "PUT", headers: { "Content-Type": "application/json" }, body: JSON.stringify(t) }); } //#endregion //#region src/trainerStore.ts var vs = () => ({ running: !1, exit_code: null, log_lines: [] }), ys = () => ({ personal: [], negative: [], personal_count: 0, negative_count: 0 }), bs = () => ({ items: [], captured_count: 0, personal_count: 0, negative_count: 0 }), xs = () => ({ items: [], total_size_bytes: 0, total_file_count: 0 }), Ss = () => ({ enabled: !1, wake_phrase: "", language: "en", english_accent: "mixed", stt_engine: "faster_whisper", minimum_transcript_chars: 2, delete_confirmed_wakes: !1, promote_close_misses: !1, schedule_hours: 24, minimum_new_negatives: 3, advertised_base_url: "", tater_url: "http://127.0.0.1:8501", notify_satellites: !0 }), X = /* @__PURE__ */ Ft({ activeView: "trainer", initialized: !1, busy: /* @__PURE__ */ new Set(), phrase: "", language: "en", englishAccent: "mixed", ttsMode: "hybrid", languages: [{ code: "en", label: "English (en)", engines: ["omnivoice"] }], englishAccents: [ { code: "mixed", label: "Mixed English" }, { code: "australian", label: "Australian" }, { code: "american", label: "American" }, { code: "british", label: "British" }, { code: "canadian", label: "Canadian" }, { code: "irish", label: "Irish" }, { code: "scottish", label: "Scottish" }, { code: "new_zealand", label: "New Zealand" }, { code: "indian", label: "Indian" }, { code: "south_african", label: "South African" } ], session: {}, samples: ys(), captured: bs(), training: vs(), auto: {}, autoForm: Ss(), wakeWords: [], managedData: xs(), selectedFiles: [], sampleBucket: "personal", samplePage: { personal: 0, negative: 0 }, uploadProgress: 0, uploadLabel: "No upload in progress", uploadDetail: "Choose files and upload when you are ready.", consoleOpen: !1, taterLinkOpen: !1, trimItem: null, trimBucket: "personal", toast: { message: "", tone: "success", serial: 0 } }), Cs = 0, ws = 0, Ts = Y(() => Number(X.samples.personal_count ?? X.session.takes_received ?? 0)), Es = Y(() => Number(X.samples.negative_count ?? X.captured.negative_count ?? 0)), Ds = Y(() => X.languages.find((e) => e.code === X.language) || X.languages[0]), Os = Y(() => { let e = Ds.value?.engines?.length ? Ds.value.engines : ["omnivoice"], t = X.ttsMode === "piper" ? e.filter((e) => e === "piper") : X.ttsMode === "hybrid" ? e : e.filter((e) => e !== "piper"), n = { omnivoice: "OmniVoice", qwen3: "Qwen3", moss: "MOSS", piper: "Piper" }, r = X.ttsMode === "piper" ? "Legacy" : Ns(Ds.value?.quality || "experimental"); return `${t.map((e) => n[e] || e).join(" + ") || "Unavailable"} · ${r}`; }), ks = Y(() => !!(X.training.running || X.training.exit_code !== null || X.training.log_lines?.length)), As = Y(() => X.samples[X.sampleBucket] || []), js = Y(() => !!X.auto.trainer_link?.linked), Ms = Y(() => { let e = X.auto.stt_engines; return Array.isArray(e) && e.length ? e : [{ id: "faster_whisper", label: "Faster Whisper" }, { id: "parakeet_onnx", label: "Parakeet ONNX" }]; }); function Ns(e) { return String(e || "").replaceAll("_", " ").replace(/\b\w/g, (e) => e.toUpperCase()); } function Z(e) { return e ? X.busy.has(e) : X.busy.size > 0; } function Q(e, t) { t ? X.busy.add(e) : X.busy.delete(e); } function $(e, t = "success") { X.toast = { message: String(e || ""), tone: t, serial: X.toast.serial + 1 }; } function Ps(e, t) { $(e instanceof Error ? e.message : t, "error"); } function Fs(e) { X.session = e || {}, Array.isArray(e.available_languages) && e.available_languages.length && (X.languages = e.available_languages), Array.isArray(e.available_english_accents) && e.available_english_accents.length && (X.englishAccents = e.available_english_accents), e.raw_phrase && (X.phrase = e.raw_phrase), e.language && (X.language = e.language), e.english_accent && (X.englishAccent = e.english_accent), e.tts_mode && (X.ttsMode = e.tts_mode), e.training && (X.training = e.training); } async function Is() { let e = await hs("/api/session"); return Fs(e), e; } async function Ls() { if (!X.phrase.trim()) { $("Enter a wake phrase first.", "warning"); return; } Q("session", !0); try { let e = await gs("/api/start_session", { phrase: X.phrase.trim(), language: X.language, english_accent: X.englishAccent, tts_mode: X.ttsMode }); Fs(e), $(`Session ${e.safe_word || "started"} is ready.`); } catch (e) { Ps(e, "Session failed to start."); } finally { Q("session", !1); } } async function Rs() { let e = !!X.training.running; if (!(e && !window.confirm("Training is running. Stop training cleanly and end this session?"))) { Q("session", !0), ws &&= (window.clearInterval(ws), 0); try { Fs(await gs("/api/stop_session")), $(e ? "Training stopped cleanly and the session ended." : "Session ended. You can edit the wake phrase now."); } catch (t) { e && sc(), Ps(t, "Session could not be stopped."); } finally { Q("session", !1); } } } function zs() { if (!X.phrase.trim() || !("speechSynthesis" in window)) return; let e = new SpeechSynthesisUtterance(X.phrase.trim()); e.lang = X.language, window.speechSynthesis.cancel(), window.speechSynthesis.speak(e); } function Bs() { let e = Ds.value?.engines || [], t = e.some((e) => e !== "piper"), n = e.includes("piper"); X.ttsMode === "modern" && !t && (X.ttsMode = "piper"), X.ttsMode === "hybrid" && !(t && n) && (X.ttsMode = t ? "modern" : "piper"), X.ttsMode === "piper" && !n && (X.ttsMode = "modern"), (X.language !== "en" || X.ttsMode === "piper") && (X.englishAccent = "mixed"); } async function Vs(e = !1) { e || Q("samples", !0); try { let e = await hs("/api/samples"); X.samples = { ...ys(), ...e }; for (let e of ["personal", "negative"]) { let t = Math.max(0, Math.ceil((X.samples[e]?.length || 0) / 50) - 1); X.samplePage[e] = Math.min(X.samplePage[e], t); } return e; } finally { e || Q("samples", !1); } } async function Hs(e = !1) { e || Q("captured", !0); try { let e = await hs("/api/captured_audio"); return X.captured = { ...bs(), ...e }, e; } finally { e || Q("captured", !1); } } function Us(e) { let t = e.target; X.selectedFiles = Array.from(t.files || []); } function Ws(e, t, n) { return new Promise((r, i) => { let a = new XMLHttpRequest(), o = new FormData(); o.append("file", e, e.name), a.open("POST", "/api/upload_personal_sample"), a.responseType = "json", a.upload.onprogress = (r) => { r.lengthComputable && (X.uploadProgress = Math.round((t + r.loaded / r.total) / n * 100), X.uploadLabel = `Uploading ${e.name} (${t + 1}/${n})`, X.uploadDetail = "Sending and normalizing the recording."); }, a.onload = () => { let t = a.response || {}; a.status >= 200 && a.status < 300 ? r(t) : i(Error(t.error || `Upload failed for ${e.name}`)); }, a.onerror = () => i(/* @__PURE__ */ Error(`Upload failed for ${e.name}`)), a.send(o); }); } async function Gs(e) { if (!X.session.safe_word) { $("Start a trainer session before uploading samples.", "warning"); return; } if (X.selectedFiles.length) { Q("upload", !0); try { let t = [...X.selectedFiles]; for (let e = 0; e < t.length; e += 1) await Ws(t[e], e, t.length); X.uploadProgress = 100, X.uploadLabel = "Upload complete", X.uploadDetail = `${t.length} sample${t.length === 1 ? "" : "s"} saved in the required training format.`, X.selectedFiles = [], e && (e.value = ""), await Promise.all([Is(), Vs(!0)]), $("Personal samples uploaded."); } catch (e) { X.uploadProgress = 0, Ps(e, "Sample upload failed."); } finally { Q("upload", !1); } } } async function Ks(e, t) { if (!(t === "discard" && !window.confirm(`Discard ${e.saved_as} from the captured-audio inbox?`))) { Q("review", !0); try { await gs(`/api/captured_audio/${encodeURIComponent(e.saved_as)}/${t}`), await Promise.all([ Is(), Hs(!0), Vs(!0) ]), $(t === "approve_personal" ? "Clip added to personal samples." : t === "mark_negative" ? "Clip marked negative." : "Clip discarded."); } catch (e) { Ps(e, "Review action failed."); } finally { Q("review", !1); } } } async function qs(e, t) { if (window.confirm(`Remove ${e.saved_as} from ${t} samples?`)) { Q("review", !0); try { await ms(`/api/samples/${t}/${encodeURIComponent(e.saved_as)}`, { method: "DELETE" }), await Vs(!0), $("Sample removed."); } catch (e) { Ps(e, "Sample removal failed."); } finally { Q("review", !1); } } } async function Js(e, t) { if (!window.confirm(`Revert ${e.saved_as} to its pre-trim version?`)) return; let n = new FormData(); n.append("bucket", t), n.append("file_name", e.saved_as), Q("review", !0); try { await ms("/api/samples/revert", { method: "POST", body: n }), await Vs(!0), $("Original sample restored."); } catch (e) { Ps(e, "Sample revert failed."); } finally { Q("review", !1); } } async function Ys(e) { let t = e === "personal" ? Ts.value : Es.value; if (!(!t || !window.confirm(`Clear ${t} ${e} sample${t === 1 ? "" : "s"}?`))) { Q("review", !0); try { await gs(e === "personal" ? "/api/reset_recordings" : "/api/reset_negative_samples"), await Promise.all([ Is(), Vs(!0), Hs(!0) ]), $(`${Ns(e)} samples cleared.`); } catch (e) { Ps(e, "Samples could not be cleared."); } finally { Q("review", !1); } } } function Xs(e, t) { X.auto = e || {}, t && (X.autoForm = { ...Ss(), ...e.config || {} }, X.autoForm.wake_phrase || (X.autoForm.wake_phrase = X.session.raw_phrase || ""), X.autoForm.language || (X.autoForm.language = X.session.language || "en"), X.autoForm.english_accent || (X.autoForm.english_accent = X.session.english_accent || "mixed"), String(X.autoForm.language).toLowerCase().startsWith("en") || (X.autoForm.english_accent = "mixed")); } async function Zs(e = !1) { let t = await hs("/api/auto_train"); return Xs(t, e), t; } async function Qs() { Q("auto", !0); try { let e = await _s("/api/auto_train", X.autoForm); Xs(e, !0), $(e.config?.enabled ? "Auto Training saved and enabled." : "Auto Training saved."); } catch (e) { Ps(e, "Auto Training settings failed to save."); } finally { Q("auto", !1); } } async function $s(e) { Q("auto", !0); try { let t = await gs("/api/auto_train/action", { action: e }); Xs(t, !1), e === "train_now" && (X.consoleOpen = !0, sc()), $(e === "review_now" ? `${Number(t.queued || 0)} clips queued for review.` : e === "train_now" ? "Training started." : "Wake word published."); } catch (e) { Ps(e, "Auto Training action failed."); } finally { Q("auto", !1); } } async function ec(e, t) { Q("link", !0); try { return await gs("/api/tater_link/claim", { tater_url: e.trim(), pairing_code: t.trim() }), X.autoForm.tater_url = e.trim(), await Zs(!1), $("Trainer linked securely to Tater."), !0; } catch (e) { return Ps(e, "Tater link failed."), !1; } finally { Q("link", !1); } } async function tc() { if (window.confirm("Unlink this trainer from Tater?")) { Q("auto", !0); try { await gs("/api/tater_link/unlink"), await Zs(!1), $("Trainer unlinked from Tater.", "warning"); } catch (e) { Ps(e, "Tater unlink failed."); } finally { Q("auto", !1); } } } async function nc(e = !1) { e || Q("firmware", !0); try { let e = await hs("/api/trained_wake_words/catalog"); X.wakeWords = Array.isArray(e.wake_words) ? e.wake_words : []; } finally { e || Q("firmware", !1); } } async function rc() { Q("data", !0); try { let e = await hs("/api/data"); return X.managedData = { ...xs(), ...e }, e; } finally { Q("data", !1); } } async function ic(e) { if (!e.file_count) return; let t = `${dc(e.size_bytes)} · ${Number(e.file_count).toLocaleString()} file${e.file_count === 1 ? "" : "s"}`, n = e.rebuild_note ? `\n\n${e.rebuild_note}` : ""; if (window.confirm(`Permanently delete ${e.label} (${t})?${n}\n\nThis cannot be undone.`)) { Q("data-delete", !0); try { let t = await ms(`/api/data/${encodeURIComponent(e.id)}`, { method: "DELETE" }); X.managedData = { ...xs(), ...t }, await Promise.allSettled([ Is(), Vs(!0), Hs(!0), nc(!0) ]), $(`${e.label} deleted. ${dc(e.size_bytes)} released.`); } catch (t) { Ps(t, `${e.label} could not be deleted.`); } finally { Q("data-delete", !1); } } } async function ac(e) { try { await navigator.clipboard.writeText(e), $("Wake-word JSON URL copied."); } catch (e) { Ps(e, "Clipboard unavailable."); } } async function oc() { await Promise.all([Is(), Vs(!0)]); let e = !1; if (!(!Ts.value && (e = window.confirm("No positive samples are saved. Train anyway without personal voices?"), !e))) { Q("training-start", !0), X.training = { running: !0, exit_code: null, log_lines: ["Waiting for training output…"] }, X.consoleOpen = !0; try { await gs("/api/train", { allow_no_personal: e }), sc(); } catch (e) { X.training = { running: !1, exit_code: 1, log_lines: [e instanceof Error ? e.message : String(e)] }, Ps(e, "Training could not start."); } finally { Q("training-start", !1); } } } function sc() { if (ws) return; let e = async () => { try { let e = await hs("/api/train_status"); X.training = { ...vs(), ...e.training || {} }, X.training.running || (window.clearInterval(ws), ws = 0, await Promise.all([Vs(!0), nc(!0)]), $(X.training.exit_code === 0 ? "Training finished successfully." : `Training ended with exit ${X.training.exit_code}.`, X.training.exit_code === 0 ? "success" : "error")); } catch {} }; e(), ws = window.setInterval(() => void e(), 1500); } async function cc() { Q("bootstrap", !0); try { await Promise.allSettled([ Is(), Vs(!0), Hs(!0), Zs(!0), nc(!0) ]), Bs(); try { let e = await hs("/api/train_status"); X.training = { ...vs(), ...e.training || {} }, X.training.running && (X.consoleOpen = !0, sc()); } catch {} Cs = window.setInterval(() => { X.activeView === "auto" && !Z("auto") && Zs(!1).catch(() => void 0); }, 2500), X.initialized = !0; } finally { Q("bootstrap", !1); } } function lc() { window.clearInterval(Cs), window.clearInterval(ws), Cs = 0, ws = 0; } function uc(e) { if (!e) return ""; let t = new Date(String(e)); return Number.isNaN(t.getTime()) ? String(e) : t.toLocaleString(); } function dc(e) { let t = Math.max(0, Number(e) || 0); if (t < 1024) return `${Math.round(t)} B`; let n = [ "KB", "MB", "GB", "TB" ], r = t / 1024, i = n[0]; for (let e = 1; e < n.length && r >= 1024; e += 1) r /= 1024, i = n[e]; return `${r >= 10 ? r.toFixed(1) : r.toFixed(2)} ${i}`; } function fc(e) { if (!e) return "16 kHz · mono · 16-bit WAV"; let t = Number(e.sample_rate || e.sample_rate_hz || 16e3), n = Number(e.channels || 1) === 1 ? "mono" : `${e.channels} channels`, r = Number(e.bits_per_sample || e.sample_width_bits || 16); return `${Math.round(t / 1e3)} kHz · ${n} · ${r}-bit`; } function pc(e) { if (e.blocked_by_vad) return { label: "Blocked by VAD", tone: "warning" }; let t = String(e.event_type || "").toLowerCase(); return t.includes("close") ? { label: e.capture_label || "Close miss", tone: "warning" } : t.includes("false") ? { label: e.capture_label || "False trigger", tone: "error" } : t.includes("wake") || t.includes("detect") ? { label: e.capture_label || "Wake trigger", tone: "success" } : { label: e.capture_label || "Captured", tone: "neutral" }; } function mc(e, t) { return e.audio_url || `/api/audio/${t}/${encodeURIComponent(e.saved_as)}`; } //#endregion //#region src/components/AudioTrimModal.vue?vue&type=script&setup=true&lang.ts var hc = { class: "modal trim-modal", role: "dialog", "aria-modal": "true", "aria-label": "Trim audio" }, gc = { class: "modal-head" }, _c = { key: 0, class: "empty-state" }, vc = { class: "range-grid" }, yc = ["max"], bc = ["min", "max"], xc = { class: "row space" }, Sc = { class: "pill" }, Cc = { key: 0, class: "pill success" }, wc = { class: "row modal-actions" }, Tc = ["disabled"], Ec = /* @__PURE__ */ fr({ __name: "AudioTrimModal", setup(e) { let t = /* @__PURE__ */ F(null), n = /* @__PURE__ */ F(null), r = /* @__PURE__ */ F(0), i = /* @__PURE__ */ F(0), a = /* @__PURE__ */ F(0), o = /* @__PURE__ */ F([]), s = /* @__PURE__ */ F(!1), c = /* @__PURE__ */ F(!1); Nn(() => X.trimItem, async (e) => { if (!e) { n.value = null; return; } s.value = !0; try { let t = `/api/audio/${encodeURIComponent(X.trimBucket)}/${encodeURIComponent(e.saved_as)}`, s = await fetch(t); if (!s.ok) throw Error("Audio could not be loaded."); let c = new (window.AudioContext || window.webkitAudioContext)(); n.value = await c.decodeAudioData(await s.arrayBuffer()), r.value = n.value.duration, i.value = 0, a.value = r.value, await c.close(); try { let t = await ms(`/api/samples/${encodeURIComponent(X.trimBucket)}/${encodeURIComponent(e.saved_as)}/vad`, { method: "POST" }); o.value = Array.isArray(t.segments) ? t.segments : [], o.value.length && (i.value = Math.max(0, Number(o.value[0].start || 0)), a.value = Math.min(r.value, Number(o.value[0].end || r.value))); } catch { o.value = []; } await hn(), d(); } catch (e) { $(e instanceof Error ? e.message : "Audio could not be loaded.", "error"), l(); } finally { s.value = !1; } }, { immediate: !0 }), Nn([i, a], () => d()); function l() { X.trimItem = null, n.value = null, o.value = []; } function u() { let e = o.value[0]; e && (i.value = Number(e.start), a.value = Number(e.end)); } function d() { let e = t.value, s = n.value; if (!e || !s || !r.value) return; let c = e.getBoundingClientRect(); if (!c.width || !c.height) return; let l = window.devicePixelRatio || 1; e.width = Math.round(c.width * l), e.height = Math.round(c.height * l); let u = e.getContext("2d"); if (!u) return; u.scale(l, l); let d = c.width, f = c.height, p = f / 2, m = s.getChannelData(0), h = Math.max(1, Math.floor(m.length / d)); u.clearRect(0, 0, d, f), u.strokeStyle = "rgba(222, 218, 212, .24)", u.lineWidth = 1, u.beginPath(); for (let e = 0; e < d; e += 1) { let t = 1, n = -1; for (let r = 0; r < h; r += 1) { let i = m[Math.floor(e) * h + r] || 0; t = Math.min(t, i), n = Math.max(n, i); } u.moveTo(e, p + t * p * .84), u.lineTo(e, p + n * p * .84); } u.stroke(); let g = i.value / r.value * d, _ = a.value / r.value * d; u.fillStyle = "rgba(8, 8, 9, .66)", u.fillRect(0, 0, g, f), u.fillRect(_, 0, d - _, f), u.fillStyle = "rgba(255, 145, 52, .12)", u.fillRect(g, 0, _ - g, f), u.strokeStyle = "#ff9134", u.lineWidth = 2; for (let e of [g, _]) u.beginPath(), u.moveTo(e, 0), u.lineTo(e, f), u.stroke(); u.strokeStyle = "rgba(68, 225, 165, .55)"; for (let e of o.value) { let t = e.start / r.value * d; u.beginPath(), u.moveTo(t, 0), u.lineTo(t, f), u.stroke(); } } function f() { let e = n.value; if (!e) return; let t = new (window.AudioContext || window.webkitAudioContext)(), r = t.createBufferSource(); r.buffer = e, r.connect(t.destination), r.start(0, i.value, Math.max(.01, a.value - i.value)), r.onended = () => void t.close(); } async function p() { let e = n.value; if (!e) throw Error("Audio is not loaded."); let t = Math.floor(i.value * e.sampleRate), r = Math.min(Math.floor(a.value * e.sampleRate), e.length), o = 16e3, s; if (e.sampleRate === o) s = e.getChannelData(0).slice(t, r); else { let n = Math.max(1, Math.floor((r - t) * o / e.sampleRate)), c = new OfflineAudioContext(1, n, o), l = c.createBufferSource(); l.buffer = e, l.connect(c.destination), l.start(0, i.value, a.value - i.value), s = (await c.startRendering()).getChannelData(0); } let c = /* @__PURE__ */ new ArrayBuffer(44 + s.length * 2), l = new DataView(c); l.setUint32(0, 1380533830, !1), l.setUint32(4, 36 + s.length * 2, !0), l.setUint32(8, 1463899717, !1), l.setUint32(12, 1718449184, !1), l.setUint32(16, 16, !0), l.setUint16(20, 1, !0), l.setUint16(22, 1, !0), l.setUint32(24, o, !0), l.setUint32(28, o * 2, !0), l.setUint16(32, 2, !0), l.setUint16(34, 16, !0), l.setUint32(36, 1684108385, !1), l.setUint32(40, s.length * 2, !0); for (let e = 0; e < s.length; e += 1) l.setInt16(44 + e * 2, Math.max(-32768, Math.min(32767, Math.round(s[e] * 32767))), !0); return new Blob([c], { type: "audio/wav" }); } async function m() { let e = X.trimItem; if (e) { c.value = !0; try { let t = new FormData(); t.append("file", await p(), "trimmed.wav"), t.append("bucket", X.trimBucket), t.append("source_file", e.saved_as), t.append("start_time", i.value.toFixed(3)), t.append("end_time", a.value.toFixed(3)); let n = await ms("/api/samples/trim", { method: "POST", body: t }); l(), await Vs(!0), $(n.message || "Trimmed sample saved."); } catch (e) { $(e instanceof Error ? e.message : "Trim failed.", "error"); } finally { c.value = !1; } } } function h() { X.trimItem && d(); } return window.addEventListener("resize", h), Ar(() => window.removeEventListener("resize", h)), (e, n) => (U(), ra(Jn, { to: "body" }, [I(X).trimItem ? (U(), W("div", { key: 0, class: "modal-backdrop", onClick: as(l, ["self"]) }, [G("section", hc, [ G("header", gc, [G("div", null, [n[2] ||= G("span", { class: "eyebrow" }, "Audio editor", -1), G("h2", null, "Trim " + k(I(X).trimItem.saved_as), 1)]), G("button", { type: "button", class: "button ghost", onClick: l }, "Close")]), n[3] ||= G("p", { class: "muted" }, "Keep the spoken wake phrase and remove excess silence or noise. VAD markers appear in green.", -1), s.value ? (U(), W("div", _c, "Loading waveform…")) : (U(), W(V, { key: 1 }, [ G("canvas", { ref_key: "canvas", ref: t, class: "waveform" }, null, 512), G("div", vc, [G("label", null, [G("span", null, "Start · " + k(i.value.toFixed(2)) + "s", 1), R(G("input", { "onUpdate:modelValue": n[0] ||= (e) => i.value = e, type: "range", min: "0", max: Math.max(0, a.value - .01), step: ".01" }, null, 8, yc), [[ Xo, i.value, void 0, { number: !0 } ]])]), G("label", null, [G("span", null, "End · " + k(a.value.toFixed(2)) + "s", 1), R(G("input", { "onUpdate:modelValue": n[1] ||= (e) => a.value = e, type: "range", min: Math.min(r.value, i.value + .01), max: r.value, step: ".01" }, null, 8, bc), [[ Xo, a.value, void 0, { number: !0 } ]])])]), G("div", xc, [G("span", Sc, "Selection " + k(Math.max(0, a.value - i.value).toFixed(2)) + "s", 1), o.value.length ? (U(), W("span", Cc, k(o.value.length) + " speech segment" + k(o.value.length === 1 ? "" : "s"), 1)) : q("", !0)]), G("div", wc, [ G("button", { type: "button", onClick: f }, "Play selection"), o.value.length ? (U(), W("button", { key: 0, type: "button", onClick: u }, "Select first VAD")) : q("", !0), G("button", { type: "button", class: "button primary", disabled: c.value, onClick: m }, k(c.value ? "Saving…" : "Save trim"), 9, Tc) ]) ], 64)) ])])) : q("", !0)])); } }), Dc = { class: "app-shell" }, Oc = { class: "app-header" }, kc = { class: "header-status" }, Ac = { key: 0, class: "session-chip" }, jc = { class: "tabs", "aria-label": "Trainer areas" }, Mc = ["onClick"], Nc = { class: "tab-full" }, Pc = { class: "tab-short" }, Fc = { key: 0 }, Ic = { class: "main-content" }, Lc = { key: 0, class: "loading-panel" }, Rc = { class: "panel" }, zc = { class: "panel-head" }, Bc = { class: "form-grid phrase-form" }, Vc = { class: "field wide" }, Hc = ["disabled"], Uc = { class: "field" }, Wc = ["disabled"], Gc = ["value"], Kc = { key: 0, class: "field" }, qc = ["disabled"], Jc = ["value"], Yc = { class: "field" }, Xc = ["disabled"], Zc = ["disabled"], Qc = ["disabled"], $c = ["disabled"], el = { class: "row form-actions" }, tl = ["disabled"], nl = ["disabled"], rl = ["disabled"], il = { class: "panel" }, al = { class: "panel-head" }, ol = { class: "stats" }, sl = { class: "train-action" }, cl = ["disabled"], ll = { class: "panel-footer" }, ul = ["disabled"], dl = { class: "hero auto-hero" }, fl = { class: "panel" }, pl = { class: "toggle-list" }, ml = { class: "form-grid" }, hl = { class: "field" }, gl = { class: "field" }, _l = { key: 0, class: "field" }, vl = ["value"], yl = { class: "field wide" }, bl = ["value"], xl = { class: "field" }, Sl = { class: "panel" }, Cl = { class: "form-grid" }, wl = { class: "field" }, Tl = { class: "field" }, El = { class: "stats" }, Dl = { class: "format-value" }, Ol = { class: "format-value" }, kl = { class: "panel" }, Al = { class: "form-grid" }, jl = { class: "field wide" }, Ml = { class: "field wide" }, Nl = { class: "link-row" }, Pl = ["disabled"], Fl = ["disabled"], Il = { class: "toggle-list compact" }, Ll = { class: "panel action-panel" }, Rl = { class: "action-grid" }, zl = ["disabled"], Bl = ["disabled"], Vl = ["disabled"], Hl = ["disabled"], Ul = { class: "audit" }, Wl = { class: "hero capture-hero" }, Gl = { class: "panel" }, Kl = { class: "panel-head" }, ql = ["disabled"], Jl = { class: "stats" }, Yl = { class: "panel" }, Xl = { key: 0, class: "empty-state" }, Zl = { key: 1, class: "audio-list" }, Ql = { key: 0, class: "meta-row" }, $l = { key: 1, class: "transcript" }, eu = { key: 2, class: "transcript" }, tu = ["src"], nu = ["disabled", "onClick"], ru = ["disabled", "onClick"], iu = ["disabled", "onClick"], au = { class: "hero samples-hero" }, ou = { class: "pill hero-pill" }, su = { class: "panel" }, cu = { class: "panel-head sample-head" }, lu = { class: "segment-control" }, uu = { class: "row toolbar" }, du = ["disabled"], fu = ["disabled"], pu = ["disabled"], mu = { key: 0, class: "empty-state" }, hu = { key: 1, class: "audio-list compact-list" }, gu = { class: "row" }, _u = { key: 0, class: "pill warning" }, vu = { key: 0, class: "transcript" }, yu = { key: 1, class: "transcript" }, bu = ["src"], xu = ["onClick"], Su = ["onClick"], Cu = ["disabled", "onClick"], wu = { key: 2, class: "pagination" }, Tu = ["disabled"], Eu = ["disabled"], Du = { class: "panel" }, Ou = { class: "dropzone" }, ku = ["disabled"], Au = { class: "progress-card" }, ju = { class: "progress-track" }, Mu = { class: "hero data-hero" }, Nu = { class: "pill hero-pill" }, Pu = { class: "panel" }, Fu = { class: "panel-head" }, Iu = ["disabled"], Lu = { class: "stats" }, Ru = { class: "format-value" }, zu = { key: 0, class: "data-warning" }, Bu = { class: "panel-head" }, Vu = { class: "number" }, Hu = { class: "data-list" }, Uu = { class: "data-copy" }, Wu = { class: "data-title" }, Gu = { key: 0, class: "data-note" }, Ku = { class: "data-usage" }, qu = ["disabled", "onClick"], Ju = { key: 0, class: "panel empty-state" }, Yu = { class: "hero firmware-hero" }, Xu = { class: "panel" }, Zu = { class: "panel-head" }, Qu = ["disabled"], $u = { key: 0, class: "empty-state" }, ed = { key: 1, class: "word-list" }, td = ["href"], nd = { key: 1, class: "muted" }, rd = ["href"], id = { class: "meta-row" }, ad = { key: 0 }, od = { key: 1 }, sd = { key: 2 }, cd = ["disabled", "onClick"], ld = { class: "panel compatibility-panel" }, ud = { key: 0, class: "empty-state" }, dd = { key: 1, class: "word-list" }, fd = ["href"], pd = { key: 1, class: "muted" }, md = ["disabled", "onClick"], hd = { class: "modal console-modal", role: "dialog", "aria-modal": "true", "aria-label": "Training console" }, gd = { class: "modal-head" }, _d = { class: "row console-actions" }, vd = { class: "modal link-modal", role: "dialog", "aria-modal": "true", "aria-label": "Link Tater" }, yd = { class: "modal-head" }, bd = { key: 0, class: "link-success" }, xd = { key: 1, class: "stack" }, Sd = { class: "field" }, Cd = { class: "field" }, wd = ["disabled"], Td = "/static/images/tater-wake-word-trainer.png", Ed = 50, Dd = /* @__PURE__ */ fr({ __name: "TrainerApp", setup(e) { let t = /* @__PURE__ */ F(null), n = /* @__PURE__ */ F(null), r = /* @__PURE__ */ F(!0), i = /* @__PURE__ */ F(""), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(!1), s = [ { id: "trainer", label: "Trainer", short: "Train" }, { id: "auto", label: "Auto Training", short: "Auto" }, { id: "firmware", label: "Wake Words", short: "Words" }, { id: "captured", label: "Captured Audio", short: "Inbox" }, { id: "samples", label: "Samples", short: "Samples" }, { id: "data", label: "Data", short: "Data" } ], c = Y(() => { let e = X.samplePage[X.sampleBucket]; return As.value.slice(e * Ed, (e + 1) * Ed); }), l = Y(() => Math.max(1, Math.ceil(As.value.length / Ed))), u = Y(() => X.auto.state || {}), d = Y(() => X.auto.runtime || {}), f = Y(() => { let e = u.value, t = []; return e.last_review_result && t.push(`Last review: ${String(e.last_review_result).replaceAll("_", " ")}`), e.last_review_file && t.push(String(e.last_review_file)), e.last_review_transcript && t.push(`STT: “${e.last_review_transcript}”`), e.last_review_error && t.push(`Error: ${e.last_review_error}`), e.last_stt_engine && t.push(`STT engine: ${String(e.last_stt_engine).replaceAll("_", " ")}`), e.last_notify_at && t.push(e.last_notify_error ? `Publish failed: ${e.last_notify_error}` : `Wake word published ${uc(e.last_notify_at)}`), t.join(" · ") || "No automatic review has run yet."; }), p = Y(() => X.training.running ? { text: "Training running", tone: "warning" } : X.training.exit_code === 0 ? { text: "Training finished", tone: "success" } : X.training.exit_code === null ? { text: "Not started", tone: "neutral" } : { text: `Exit ${X.training.exit_code}`, tone: "error" }), m = Y(() => d.value.review_running ? { text: `Transcribing ${d.value.review_file || "wake"}`, tone: "warning" } : X.training.running && X.auto.config?.enabled ? { text: "Training running", tone: "warning" } : X.auto.config?.enabled ? { text: "Enabled", tone: "success" } : { text: "Disabled", tone: "neutral" }), h = Y(() => X.training.log_lines?.length ? X.training.log_lines : ["No training output yet."]), g = Y(() => { let e = /* @__PURE__ */ new Map(); for (let t of X.managedData.items || []) { let n = e.get(t.category) || []; n.push(t), e.set(t.category, n); } return Array.from(e, ([e, t]) => ({ name: e, items: t })); }); Nn([() => X.language, () => X.ttsMode], Bs), Nn(() => X.toast.serial, () => window.setTimeout(() => { X.toast.message = ""; }, 4500)), Nn(h, async () => { r.value && (await hn(), r.value && n.value && (n.value.scrollTop = n.value.scrollHeight)); }), Nn(() => X.consoleOpen, async (e) => { e && (r.value = !0, await hn(), y()); }), Dr(() => { cc(), document.addEventListener("keydown", _); }), Ar(() => { lc(), document.removeEventListener("keydown", _); }); function _(e) { e.key === "Escape" && (X.consoleOpen = !1, X.taterLinkOpen = !1, X.trimItem = null); } function v() { let e = n.value; if (!e) return; let t = e.scrollHeight - e.clientHeight - e.scrollTop; r.value = t <= 32; } function y() { let e = n.value; e && (r.value = !0, e.scrollTop = e.scrollHeight); } function b(e) { X.activeView = e, (e === "auto" ? Zs(!1) : e === "captured" ? Hs() : e === "samples" ? Vs() : e === "firmware" ? nc() : e === "data" ? rc() : Promise.resolve()).catch((e) => $(e instanceof Error ? e.message : "Refresh failed.", "error")); } function x(e) { X.sampleBucket = e; } function S(e, t) { X.trimBucket = t, X.trimItem = e; } function C() { i.value = X.autoForm.tater_url || "http://127.0.0.1:8501", a.value = "", o.value = !1, X.taterLinkOpen = !0, hn(() => document.querySelector("#pairing-code")?.focus()); } function w() { let e = a.value.toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 8); a.value = e.length > 4 ? `${e.slice(0, 4)}-${e.slice(4)}` : e; } async function ee() { if (!i.value.trim() || !a.value.trim()) { $("Tater address and pairing code are required.", "warning"); return; } o.value = await ec(i.value, a.value); } function te(e) { let t = []; return e.source_device && t.push(String(e.source_device)), e.wake_word && t.push(String(e.wake_word)), e.max_probability !== null && e.max_probability !== void 0 && t.push(`max ${e.max_probability}`), e.average_probability !== null && e.average_probability !== void 0 && t.push(`avg ${e.average_probability}`), e.detection_profile && t.push(`profile ${String(e.detection_profile).replaceAll("_", " ")}`), e.auto_review_status && t.push(`auto ${String(e.auto_review_status).replaceAll("_", " ")}`), e.vad_max_probability !== null && e.vad_max_probability !== void 0 && t.push(`VAD ${e.vad_max_probability}`), t; } function ne(e) { let t = []; e.original_name && e.original_name !== e.saved_as && t.push(`From ${e.original_name}`); let n = uc(e.reviewed_at || e.received_at || e.created_at); return n && t.push(`Saved ${n}`), e.message && t.push(String(e.message)), e.auto_negative && t.push("Auto-reviewed false positive"), e.auto_positive && t.push("Auto-promoted close miss"), t.join(" · ") || "Training sample"; } function T(e) { return String(e.json_url || e.url || e.jsonUrl || ""); } function re(e) { return String(e.esphome_json_url || e.esphomeJsonUrl || ""); } function E(e) { return String(e.model_url || e.modelUrl || ""); } function ie(e) { let t = e.trim().toLowerCase(); return /^(✓|✅)|success|finished/.test(t) ? "success" : /^(✗|❌)|error|failed|traceback/.test(t) ? "error" : /^(⚠|warning)/.test(t) ? "warning" : /^={4,}|^-----|^=====/.test(t) ? "heading" : ""; } return (e, d) => (U(), W("div", Dc, [ d[124] ||= G("div", { class: "ambient ambient-one", "aria-hidden": "true" }, null, -1), d[125] ||= G("div", { class: "ambient ambient-two", "aria-hidden": "true" }, null, -1), G("header", Oc, [G("div", { class: "brand" }, [G("div", { class: "brand-mark", "aria-hidden": "true" }, [G("img", { src: Td, alt: "" })]), d[46] ||= G("div", null, [ G("span", { class: "eyebrow" }, "Tater tools"), G("h1", null, "Wake Word Studio"), G("p", null, "Generate voices, curate real recordings, train, and publish.") ], -1)]), G("div", kc, [d[47] ||= G("span", { class: "live-dot" }, [G("i"), da("Local trainer")], -1), I(X).session.safe_word ? (U(), W("span", Ac, k(I(X).session.safe_word) + " · " + k(I(X).language), 1)) : q("", !0)])]), G("nav", jc, [(U(), W(V, null, Lr(s, (e) => G("button", { key: e.id, type: "button", class: O({ active: I(X).activeView === e.id }), onClick: (t) => b(e.id) }, [ G("span", Nc, k(e.label), 1), G("span", Pc, k(e.short), 1), e.id === "captured" && I(X).captured.captured_count ? (U(), W("b", Fc, k(I(X).captured.captured_count), 1)) : q("", !0) ], 10, Mc)), 64))]), G("main", Ic, [I(X).initialized ? (U(), W(V, { key: 1 }, [I(X).activeView === "trainer" ? (U(), W(V, { key: 0 }, [ d[63] ||= fa("Training studioBuild a personal wake wordChoose a multilingual voice route, check your real samples, then follow the model pipeline live.1 Phrase2 Samples3 Train", 1), G("section", Rc, [ G("header", zc, [ d[49] ||= G("div", { class: "number" }, "1", -1), d[50] ||= G("div", null, [G("h3", null, "Phrase + voice"), G("p", null, "The phrase and voice route lock while a session is active.")], -1), G("span", { class: O(["pill", I(X).session.safe_word ? "success" : ""]) }, k(I(X).session.safe_word ? `Session · ${I(X).session.safe_word}` : "No session"), 3) ]), G("div", Bc, [ G("label", Vc, [d[51] ||= G("span", null, "Wake phrase", -1), R(G("input", { "onUpdate:modelValue": d[0] ||= (e) => I(X).phrase = e, type: "text", placeholder: "e.g. \"hey tater\"", disabled: !!I(X).session.safe_word || I(Z)("session"), onKeyup: d[1] ||= ss((...e) => I(Ls) && I(Ls)(...e), ["enter"]) }, null, 40, Hc), [[Xo, I(X).phrase]])]), G("label", Uc, [ d[52] ||= G("span", null, "Language", -1), R(G("select", { "onUpdate:modelValue": d[2] ||= (e) => I(X).language = e, disabled: !!I(X).session.safe_word || I(Z)("session") }, [(U(!0), W(V, null, Lr(I(X).languages, (e) => (U(), W("option", { key: e.code, value: e.code }, k(e.label), 9, Gc))), 128))], 8, Wc), [[$o, I(X).language]]), G("small", null, k(I(Os)), 1) ]), I(X).language === "en" && I(X).ttsMode !== "piper" ? (U(), W("label", Kc, [ d[53] ||= G("span", null, "English accent emphasis", -1), R(G("select", { "onUpdate:modelValue": d[3] ||= (e) => I(X).englishAccent = e, disabled: !!I(X).session.safe_word || I(Z)("session") }, [(U(!0), W(V, null, Lr(I(X).englishAccents, (e) => (U(), W("option", { key: e.code, value: e.code }, k(e.label), 9, Jc))), 128))], 8, qc), [[$o, I(X).englishAccent]]), d[54] ||= G("small", null, "Qwen emphasizes this accent; MOSS carries it through accepted references. OmniVoice and Piper keep broad English coverage.", -1) ])) : q("", !0), G("label", Yc, [ d[55] ||= G("span", null, "TTS source", -1), R(G("select", { "onUpdate:modelValue": d[4] ||= (e) => I(X).ttsMode = e, disabled: !!I(X).session.safe_word || I(Z)("session") }, [ G("option", { value: "hybrid", disabled: !I(X).languages.find((e) => e.code === I(X).language)?.engines?.includes("piper") }, "Four-provider ensemble · recommended", 8, Zc), G("option", { value: "modern", disabled: !I(X).languages.find((e) => e.code === I(X).language)?.engines?.some((e) => e !== "piper") }, "Modern only · no Piper", 8, Qc), G("option", { value: "piper", disabled: !I(X).languages.find((e) => e.code === I(X).language)?.engines?.includes("piper") }, "Piper only · legacy", 8, $c) ], 8, Xc), [[$o, I(X).ttsMode]]), d[56] ||= G("small", null, "Models download once and stay cached.", -1) ]) ]), G("div", el, [I(X).session.safe_word ? (U(), W("button", { key: 1, type: "button", class: "button danger", disabled: I(Z)("session"), onClick: d[6] ||= (...e) => I(Rs) && I(Rs)(...e) }, k(I(Z)("session") ? "Stopping…" : I(X).training.running ? "Stop session + training" : "Stop session"), 9, nl)) : (U(), W("button", { key: 0, type: "button", class: "button primary", disabled: I(Z)("session") || !I(X).phrase.trim(), onClick: d[5] ||= (...e) => I(Ls) && I(Ls)(...e) }, k(I(Z)("session") ? "Starting…" : "Start session"), 9, tl)), G("button", { type: "button", disabled: !I(X).phrase.trim(), onClick: d[7] ||= (...e) => I(zs) && I(zs)(...e) }, "System preview", 8, rl)]) ]), G("section", il, [ G("header", al, [ d[57] ||= G("div", { class: "number" }, "2", -1), d[58] ||= G("div", null, [G("h3", null, "Train wake word"), G("p", null, "Personal positives and reviewed false-wake negatives are automatically included.")], -1), G("span", { class: O(["pill", p.value.tone]) }, k(p.value.text), 3) ]), G("div", ol, [ G("article", null, [d[59] ||= G("span", null, "Positive samples", -1), G("strong", null, k(I(Ts)), 1)]), G("article", null, [d[60] ||= G("span", null, "Negative samples", -1), G("strong", null, k(I(Es)), 1)]), d[61] ||= G("article", null, [G("span", null, "Training format"), G("strong", { class: "format-value" }, "16 kHz · mono · WAV")], -1) ]), G("div", sl, [G("button", { type: "button", class: "button primary large", disabled: !I(X).session.safe_word || I(X).training.running || I(Z)("training-start"), onClick: d[8] ||= (...e) => I(oc) && I(oc)(...e) }, k(I(X).training.running ? "Training in progress" : "Start training"), 9, cl)]), G("footer", ll, [d[62] ||= G("span", null, "Training opens the console automatically and continues if the window is closed.", -1), G("button", { type: "button", disabled: !I(ks), onClick: d[9] ||= (e) => I(X).consoleOpen = !0 }, "Open console", 8, ul)]) ]) ], 64)) : I(X).activeView === "auto" ? (U(), W(V, { key: 1 }, [ G("section", dl, [d[64] ||= G("div", null, [ G("span", { class: "eyebrow" }, "False-positive loop"), G("h2", null, "Auto Training"), G("p", null, "Transcribe captures, sort negatives, recover close misses, retrain on schedule, and publish through Tater.") ], -1), G("span", { class: O(["pill hero-pill", m.value.tone]) }, k(m.value.text), 3)]), G("section", fl, [ d[74] ||= G("header", { class: "panel-head" }, [G("div", { class: "number" }, "1"), G("div", null, [G("h3", null, "Review rules"), G("p", null, "Conservative local STT keeps uncertain clips in the manual inbox.")])], -1), G("div", pl, [ G("label", null, [R(G("input", { "onUpdate:modelValue": d[10] ||= (e) => I(X).autoForm.enabled = e, type: "checkbox" }, null, 512), [[Zo, I(X).autoForm.enabled]]), d[65] ||= G("span", null, [G("strong", null, "Enable Auto Training"), G("small", null, "Queue eligible wake triggers for local transcription.")], -1)]), G("label", null, [R(G("input", { "onUpdate:modelValue": d[11] ||= (e) => I(X).autoForm.delete_confirmed_wakes = e, type: "checkbox" }, null, 512), [[Zo, I(X).autoForm.delete_confirmed_wakes]]), d[66] ||= G("span", null, [G("strong", null, "Delete confirmed good wakes"), G("small", null, "Remove normal triggers when STT confirms the phrase.")], -1)]), G("label", null, [R(G("input", { "onUpdate:modelValue": d[12] ||= (e) => I(X).autoForm.promote_close_misses = e, type: "checkbox" }, null, 512), [[Zo, I(X).autoForm.promote_close_misses]]), d[67] ||= G("span", null, [G("strong", null, "Promote confirmed close misses"), G("small", null, "Move verified close misses into positive samples.")], -1)]) ]), G("div", ml, [ G("label", hl, [d[68] ||= G("span", null, "Wake phrase", -1), R(G("input", { "onUpdate:modelValue": d[13] ||= (e) => I(X).autoForm.wake_phrase = e, type: "text" }, null, 512), [[Xo, I(X).autoForm.wake_phrase]])]), G("label", gl, [d[69] ||= G("span", null, "STT language", -1), R(G("input", { "onUpdate:modelValue": d[14] ||= (e) => I(X).autoForm.language = e, type: "text" }, null, 512), [[Xo, I(X).autoForm.language]])]), String(I(X).autoForm.language).toLowerCase().startsWith("en") ? (U(), W("label", _l, [ d[70] ||= G("span", null, "English accent emphasis", -1), R(G("select", { "onUpdate:modelValue": d[15] ||= (e) => I(X).autoForm.english_accent = e }, [(U(!0), W(V, null, Lr(I(X).englishAccents, (e) => (U(), W("option", { key: e.code, value: e.code }, k(e.label), 9, vl))), 128))], 512), [[$o, I(X).autoForm.english_accent]]), d[71] ||= G("small", null, "Used when Auto Training needs to regenerate English TTS.", -1) ])) : q("", !0), G("label", yl, [ d[72] ||= G("span", null, "STT engine", -1), R(G("select", { "onUpdate:modelValue": d[16] ||= (e) => I(X).autoForm.stt_engine = e }, [(U(!0), W(V, null, Lr(I(Ms), (e) => (U(), W("option", { key: e.id || e.value, value: e.id || e.value }, k(e.label || e.name || e.id), 9, bl))), 128))], 512), [[$o, I(X).autoForm.stt_engine]]), G("small", null, k(I(Ms).find((e) => (e.id || e.value) === I(X).autoForm.stt_engine)?.description || "Runs locally on this trainer."), 1) ]), G("label", xl, [d[73] ||= G("span", null, "Minimum transcript characters", -1), R(G("input", { "onUpdate:modelValue": d[17] ||= (e) => I(X).autoForm.minimum_transcript_chars = e, min: "1", max: "100", type: "number" }, null, 512), [[ Xo, I(X).autoForm.minimum_transcript_chars, void 0, { number: !0 } ]])]) ]) ]), G("section", Sl, [ d[81] ||= G("header", { class: "panel-head" }, [G("div", { class: "number" }, "2"), G("div", null, [G("h3", null, "Training schedule"), G("p", null, "A run starts only after enough newly reviewed negatives accumulate.")])], -1), G("div", Cl, [G("label", wl, [d[76] ||= G("span", null, "Run training", -1), R(G("select", { "onUpdate:modelValue": d[18] ||= (e) => I(X).autoForm.schedule_hours = e }, [...d[75] ||= [ G("option", { value: 0 }, "Manually only", -1), G("option", { value: 6 }, "Every 6 hours", -1), G("option", { value: 12 }, "Every 12 hours", -1), G("option", { value: 24 }, "Every day", -1), G("option", { value: 48 }, "Every 2 days", -1), G("option", { value: 168 }, "Every week", -1) ]], 512), [[ $o, I(X).autoForm.schedule_hours, void 0, { number: !0 } ]])]), G("label", Tl, [d[77] ||= G("span", null, "Minimum new negatives", -1), R(G("input", { "onUpdate:modelValue": d[19] ||= (e) => I(X).autoForm.minimum_new_negatives = e, min: "1", max: "10000", type: "number" }, null, 512), [[ Xo, I(X).autoForm.minimum_new_negatives, void 0, { number: !0 } ]])])]), G("div", El, [ G("article", null, [d[78] ||= G("span", null, "Pending negatives", -1), G("strong", null, k(Number(u.value.pending_negative_count || 0)), 1)]), G("article", null, [d[79] ||= G("span", null, "Next check", -1), G("strong", Dl, k(u.value.next_run_at ? I(uc)(u.value.next_run_at) : "Manual"), 1)]), G("article", null, [d[80] ||= G("span", null, "Last training", -1), G("strong", Ol, k(u.value.last_train_finished_at ? I(uc)(u.value.last_train_finished_at) : "Never"), 1)]) ]) ]), G("section", kl, [ d[85] ||= G("header", { class: "panel-head" }, [G("div", { class: "number" }, "3"), G("div", null, [G("h3", null, "Publish to Tater"), G("p", null, "Securely activate successful models across every connected satellite.")])], -1), G("div", Al, [G("label", jl, [ d[82] ||= G("span", null, "Trainer public URL", -1), R(G("input", { "onUpdate:modelValue": d[20] ||= (e) => I(X).autoForm.advertised_base_url = e, type: "text", placeholder: "Auto-detect LAN address" }, null, 512), [[Xo, I(X).autoForm.advertised_base_url]]), G("small", null, k(I(X).autoForm.advertised_base_url ? `Configured: ${I(X).autoForm.advertised_base_url}` : `Detected: ${I(X).auto.advertised_base_url || "unavailable"}`), 1) ]), G("label", Ml, [d[83] ||= G("span", null, "Tater URL", -1), R(G("input", { "onUpdate:modelValue": d[21] ||= (e) => I(X).autoForm.tater_url = e, type: "text" }, null, 512), [[Xo, I(X).autoForm.tater_url]])])]), G("div", Nl, [ G("span", { class: O(["pill", I(js) ? "success" : "warning"]) }, k(I(js) ? `Linked${I(X).auto.trainer_link?.tater_name ? ` · ${I(X).auto.trainer_link.tater_name}` : ""}` : "Not linked"), 3), G("button", { type: "button", class: "button primary", disabled: I(Z)("auto"), onClick: C }, k(I(js) ? "Relink Tater" : "Link Tater"), 9, Pl), I(js) ? (U(), W("button", { key: 0, type: "button", class: "button danger", disabled: I(Z)("auto"), onClick: d[22] ||= (...e) => I(tc) && I(tc)(...e) }, "Unlink", 8, Fl)) : q("", !0) ]), G("div", Il, [G("label", null, [R(G("input", { "onUpdate:modelValue": d[23] ||= (e) => I(X).autoForm.notify_satellites = e, type: "checkbox" }, null, 512), [[Zo, I(X).autoForm.notify_satellites]]), d[84] ||= G("span", null, [G("strong", null, "Activate after successful training"), G("small", null, "Tater applies the new word globally.")], -1)])]) ]), G("section", Ll, [G("div", Rl, [ G("button", { type: "button", class: "button primary", disabled: I(Z)("auto"), onClick: d[24] ||= (...e) => I(Qs) && I(Qs)(...e) }, "Save Auto Training", 8, zl), G("button", { type: "button", disabled: I(Z)("auto"), onClick: d[25] ||= (e) => I($s)("review_now") }, "Review inbox now", 8, Bl), G("button", { type: "button", disabled: I(Z)("auto") || I(X).training.running, onClick: d[26] ||= (e) => I($s)("train_now") }, "Train now", 8, Vl), G("button", { type: "button", disabled: I(Z)("auto") || !I(js), onClick: d[27] ||= (e) => I($s)("notify_now") }, "Publish current word", 8, Hl) ]), G("p", Ul, k(f.value), 1)]) ], 64)) : I(X).activeView === "captured" ? (U(), W(V, { key: 2 }, [ G("section", Wl, [d[86] ||= G("div", null, [ G("span", { class: "eyebrow" }, "Capture review"), G("h2", null, "Captured Audio"), G("p", null, "Listen to clips from your satellites and turn every real-world event into a better model.") ], -1), G("span", { class: O(["pill hero-pill", I(X).captured.captured_count ? "warning" : ""]) }, k(I(X).captured.captured_count ? `${I(X).captured.captured_count} waiting` : "Inbox idle"), 3)]), G("section", Gl, [G("header", Kl, [ d[87] ||= G("div", { class: "number" }, "1", -1), d[88] ||= G("div", null, [G("h3", null, "Review queue"), G("p", null, "Approve good phrases, keep false positives as negatives, or discard noise.")], -1), G("button", { type: "button", disabled: I(Z)("captured"), onClick: d[28] ||= (e) => I(Hs)() }, k(I(Z)("captured") ? "Refreshing…" : "Refresh inbox"), 9, ql) ]), G("div", Jl, [ G("article", null, [d[89] ||= G("span", null, "Inbox", -1), G("strong", null, k(I(X).captured.captured_count), 1)]), G("article", null, [d[90] ||= G("span", null, "Reviewed negatives", -1), G("strong", null, k(I(Es)), 1)]), G("article", null, [d[91] ||= G("span", null, "Personal samples", -1), G("strong", null, k(I(Ts)), 1)]) ])]), G("section", Yl, [d[94] ||= G("header", { class: "panel-head" }, [G("div", { class: "number" }, "2"), G("div", null, [G("h3", null, "Listen + sort"), G("p", null, "Metadata remains visible so borderline detections are easy to understand.")])], -1), I(X).captured.items?.length ? (U(), W("div", Zl, [(U(!0), W(V, null, Lr(I(X).captured.items, (e) => (U(), W("article", { key: e.saved_as, class: "audio-card" }, [ G("header", null, [G("div", null, [G("strong", null, k(e.original_name || e.saved_as), 1), G("small", null, k(I(uc)(e.captured_at || e.received_at)) + " " + k(e.message || ""), 1)]), G("span", { class: O(["pill", I(pc)(e).tone]) }, k(I(pc)(e).label), 3)]), te(e).length ? (U(), W("div", Ql, [(U(!0), W(V, null, Lr(te(e), (e) => (U(), W("span", { key: e }, k(e), 1))), 128))])) : q("", !0), e.transcript ? (U(), W("div", $l, [d[92] ||= G("b", null, "STT", -1), da(" " + k(e.transcript), 1)])) : q("", !0), e.auto_review_guided_transcript ? (U(), W("div", eu, [d[93] ||= G("b", null, "Guided wake check", -1), da(" " + k(e.auto_review_guided_transcript), 1)])) : q("", !0), G("audio", { controls: "", preload: "none", src: I(mc)(e, "captured") }, null, 8, tu), G("footer", null, [G("span", null, k(e.saved_as) + " · " + k(I(fc)(e.final_format)), 1), G("div", null, [ G("button", { type: "button", disabled: I(Z)("review"), onClick: (t) => I(Ks)(e, "approve_personal") }, "Add positive", 8, nu), G("button", { type: "button", disabled: I(Z)("review"), onClick: (t) => I(Ks)(e, "mark_negative") }, "Mark negative", 8, ru), G("button", { type: "button", class: "button danger ghost", disabled: I(Z)("review"), onClick: (t) => I(Ks)(e, "discard") }, "Discard", 8, iu) ])]) ]))), 128))])) : (U(), W("div", Xl, "No captured audio yet. Clips sent by satellites will appear here."))]) ], 64)) : I(X).activeView === "samples" ? (U(), W(V, { key: 3 }, [ G("section", au, [d[95] ||= G("div", null, [ G("span", { class: "eyebrow" }, "Sample library"), G("h2", null, "Current Training Samples"), G("p", null, "Audit positives and negatives, trim recordings precisely, and import seed audio.") ], -1), G("span", ou, k(I(Ts) + I(Es)) + " total", 1)]), G("section", su, [ G("header", cu, [ d[98] ||= G("div", { class: "number" }, "1", -1), d[99] ||= G("div", null, [G("h3", null, "Saved samples"), G("p", null, "Personal clips are positives. Negative clips are false wakes and hard negatives.")], -1), G("div", lu, [G("button", { type: "button", class: O({ active: I(X).sampleBucket === "personal" }), onClick: d[29] ||= (e) => x("personal") }, [d[96] ||= da("Personal ", -1), G("b", null, k(I(Ts)), 1)], 2), G("button", { type: "button", class: O({ active: I(X).sampleBucket === "negative" }), onClick: d[30] ||= (e) => x("negative") }, [d[97] ||= da("Negative ", -1), G("b", null, k(I(Es)), 1)], 2)]) ]), G("div", uu, [ G("button", { type: "button", disabled: I(Z)("samples"), onClick: d[31] ||= (e) => I(Vs)() }, "Refresh", 8, du), G("button", { type: "button", class: "button danger ghost", disabled: I(Z)("review") || I(Ts) === 0, onClick: d[32] ||= (e) => I(Ys)("personal") }, "Clear positives", 8, fu), G("button", { type: "button", class: "button danger ghost", disabled: I(Z)("review") || I(Es) === 0, onClick: d[33] ||= (e) => I(Ys)("negative") }, "Clear negatives", 8, pu) ]), I(As).length ? (U(), W("div", hu, [(U(!0), W(V, null, Lr(c.value, (e) => (U(), W("article", { key: e.saved_as, class: "audio-card" }, [ G("header", null, [G("div", null, [G("strong", null, k(e.saved_as), 1), G("small", null, k(ne(e)), 1)]), G("div", gu, [e.trimmed ? (U(), W("span", _u, "Trimmed")) : q("", !0), G("span", { class: O(["pill", I(X).sampleBucket === "personal" ? "success" : "error"]) }, k(I(X).sampleBucket === "personal" ? "Positive" : "Negative"), 3)])]), e.transcript ? (U(), W("div", vu, [d[100] ||= G("b", null, "STT", -1), da(" " + k(e.transcript), 1)])) : q("", !0), e.auto_review_guided_transcript ? (U(), W("div", yu, [d[101] ||= G("b", null, "Guided wake check", -1), da(" " + k(e.auto_review_guided_transcript), 1)])) : q("", !0), G("audio", { controls: "", preload: "none", src: I(mc)(e, I(X).sampleBucket) }, null, 8, bu), G("footer", null, [G("span", null, k(I(fc)(e.final_format)), 1), G("div", null, [ G("button", { type: "button", onClick: (t) => S(e, I(X).sampleBucket) }, "Trim", 8, xu), e.trimmed ? (U(), W("button", { key: 0, type: "button", onClick: (t) => I(Js)(e, I(X).sampleBucket) }, "Revert", 8, Su)) : q("", !0), G("button", { type: "button", class: "button danger ghost", disabled: I(Z)("review"), onClick: (t) => I(qs)(e, I(X).sampleBucket) }, "Remove", 8, Cu) ])]) ]))), 128))])) : (U(), W("div", mu, "No " + k(I(X).sampleBucket) + " samples saved yet.", 1)), l.value > 1 ? (U(), W("div", wu, [ G("button", { type: "button", disabled: I(X).samplePage[I(X).sampleBucket] === 0, onClick: d[34] ||= (e) => I(X).samplePage[I(X).sampleBucket]-- }, "Previous", 8, Tu), G("span", null, "Page " + k(I(X).samplePage[I(X).sampleBucket] + 1) + " of " + k(l.value), 1), G("button", { type: "button", disabled: I(X).samplePage[I(X).sampleBucket] >= l.value - 1, onClick: d[35] ||= (e) => I(X).samplePage[I(X).sampleBucket]++ }, "Next", 8, Eu) ])) : q("", !0) ]), G("section", Du, [ d[103] ||= G("header", { class: "panel-head" }, [G("div", { class: "number" }, "2"), G("div", null, [G("h3", null, "Manual sample import"), G("p", null, "Optional seed recordings are normalized to the trainer’s required WAV format.")])], -1), G("label", Ou, [ G("input", { ref_key: "uploadInput", ref: t, type: "file", multiple: "", accept: "audio/*,.wav,.mp3,.m4a,.flac,.ogg,.aac,.webm,.opus", onChange: d[36] ||= (...e) => I(Us) && I(Us)(...e) }, null, 544), d[102] ||= G("span", null, [G("strong", null, "Choose one or many audio files"), G("small", null, "WAV, MP3, M4A, FLAC, OGG, AAC, OPUS, and WEBM")], -1), G("b", null, k(I(X).selectedFiles.length ? `${I(X).selectedFiles.length} selected` : "Browse"), 1) ]), G("button", { type: "button", class: "button primary", disabled: !I(X).session.safe_word || !I(X).selectedFiles.length || I(Z)("upload"), onClick: d[37] ||= (e) => I(Gs)(t.value) }, k(I(Z)("upload") ? "Uploading…" : "Upload selected samples"), 9, ku), G("div", Au, [ G("div", null, [G("strong", null, k(I(X).uploadLabel), 1), G("span", null, k(I(X).uploadProgress) + "%", 1)]), G("div", ju, [G("i", { style: fe({ width: `${I(X).uploadProgress}%` }) }, null, 4)]), G("small", null, k(I(X).uploadDetail), 1) ]) ]) ], 64)) : I(X).activeView === "data" ? (U(), W(V, { key: 4 }, [ G("section", Mu, [d[104] ||= G("div", null, [ G("span", { class: "eyebrow" }, "Local storage"), G("h2", null, "Data Management"), G("p", null, "See exactly what the trainer has downloaded, generated, recorded, and produced.") ], -1), G("span", Nu, k(I(dc)(I(X).managedData.total_size_bytes)) + " total", 1)]), G("section", Pu, [ G("header", Fu, [ d[105] ||= G("div", { class: "number" }, "i", -1), d[106] ||= G("div", null, [G("h3", null, "Trainer storage"), G("p", null, "Deleting an item is permanent. Required downloads and generated caches will be rebuilt the next time training needs them.")], -1), G("button", { type: "button", disabled: I(Z)("data") || I(Z)("data-delete"), onClick: d[38] ||= (e) => I(rc)() }, k(I(Z)("data") ? "Scanning…" : "Refresh sizes"), 9, Iu) ]), G("div", Lu, [ G("article", null, [d[107] ||= G("span", null, "Space used", -1), G("strong", Ru, k(I(dc)(I(X).managedData.total_size_bytes)), 1)]), G("article", null, [d[108] ||= G("span", null, "Files", -1), G("strong", null, k(Number(I(X).managedData.total_file_count || 0).toLocaleString()), 1)]), G("article", null, [d[109] ||= G("span", null, "Individual items", -1), G("strong", null, k(I(X).managedData.items.length), 1)]) ]), I(X).training.running ? (U(), W("p", zu, "Stop the active training session before deleting data.")) : q("", !0) ]), (U(!0), W(V, null, Lr(g.value, (e, t) => (U(), W("section", { key: e.name, class: "panel data-panel" }, [G("header", Bu, [G("div", Vu, k(t + 1), 1), G("div", null, [G("h3", null, k(e.name), 1), G("p", null, k(e.items.length) + " separately managed item" + k(e.items.length === 1 ? "" : "s"), 1)])]), G("div", Hu, [(U(!0), W(V, null, Lr(e.items, (e) => (U(), W("article", { key: e.id, class: O(["data-row", { empty: !e.file_count }]) }, [ G("div", Uu, [ G("div", Wu, [G("strong", null, k(e.label), 1), G("code", null, k(e.location), 1)]), G("small", null, k(e.description), 1), e.rebuild_note ? (U(), W("span", Gu, k(e.rebuild_note), 1)) : q("", !0) ]), G("div", Ku, [G("strong", null, k(I(dc)(e.size_bytes)), 1), G("span", null, k(Number(e.file_count || 0).toLocaleString()) + " file" + k(e.file_count === 1 ? "" : "s"), 1)]), G("button", { type: "button", class: "button danger ghost", disabled: !e.file_count || I(X).training.running || I(Z)("data") || I(Z)("data-delete"), onClick: (t) => I(ic)(e) }, k(I(Z)("data-delete") ? "Please wait…" : "Delete"), 9, qu) ], 2))), 128))])]))), 128)), !I(Z)("data") && !I(X).managedData.items.length ? (U(), W("section", Ju, "No managed trainer data was found.")) : q("", !0) ], 64)) : I(X).activeView === "firmware" ? (U(), W(V, { key: 5 }, [ G("section", Yu, [d[110] ||= G("div", null, [ G("span", { class: "eyebrow" }, "Wake-word catalog"), G("h2", null, "Trained Wake Words"), G("p", null, "Copy a local JSON package URL into Tater to switch every native satellite live.") ], -1), G("span", { class: O(["pill hero-pill", I(X).wakeWords.length ? "success" : "warning"]) }, k(I(X).wakeWords.length ? `${I(X).wakeWords.length} trained` : "Catalog empty"), 3)]), d[115] ||= G("div", { class: "native-notice" }, [G("strong", null, "Tater Native"), G("span", null, "These packages include model metadata and a direct model URL for live satellite updates.")], -1), G("section", Xu, [G("header", Zu, [ d[111] ||= G("div", { class: "number" }, "v1", -1), d[112] ||= G("div", null, [G("h3", null, "Published model URLs"), G("p", null, "URLs stay local and are refreshed after each successful run.")], -1), G("button", { type: "button", disabled: I(Z)("firmware"), onClick: d[39] ||= (e) => I(nc)() }, "Refresh", 8, Qu) ]), I(X).wakeWords.length ? (U(), W("div", ed, [(U(!0), W(V, null, Lr(I(X).wakeWords, (e) => (U(), W("article", { key: e.key || T(e) }, [G("div", null, [ G("strong", null, k(e.label || e.name || "Trained wake word"), 1), T(e) ? (U(), W("a", { key: 0, href: T(e), target: "_blank", rel: "noreferrer" }, "JSON · " + k(T(e)), 9, td)) : (U(), W("span", nd, "JSON package URL unavailable")), E(e) ? (U(), W("a", { key: 2, href: E(e), target: "_blank", rel: "noreferrer" }, "Model · " + k(E(e)), 9, rd)) : q("", !0), G("div", id, [ e.language ? (U(), W("span", ad, k(e.language), 1)) : q("", !0), e.trained_at ? (U(), W("span", od, k(I(uc)(e.trained_at)), 1)) : q("", !0), e.recall === void 0 ? q("", !0) : (U(), W("span", sd, "recall " + k(e.recall), 1)) ]) ]), G("button", { type: "button", disabled: !T(e), onClick: (t) => I(ac)(T(e)) }, "Copy URL", 8, cd)]))), 128))])) : (U(), W("div", $u, "Train a wake word and its package will appear here."))]), d[116] ||= G("div", { class: "native-notice esphome-notice" }, [G("strong", null, "ESPHome"), G("span", null, "Strict micro_wake_word manifest without Tater Native or calibration extensions.")], -1), G("section", ld, [d[114] ||= G("header", { class: "panel-head" }, [G("div", { class: "number" }, "ESP"), G("div", null, [G("h3", null, "ESPHome JSON"), G("p", null, "Use this URL as the model in an ESPHome micro_wake_word configuration.")])], -1), I(X).wakeWords.length ? (U(), W("div", dd, [(U(!0), W(V, null, Lr(I(X).wakeWords, (e) => (U(), W("article", { key: `esphome-${e.key || re(e)}` }, [G("div", null, [ G("strong", null, k(e.label || e.name || "Trained wake word"), 1), re(e) ? (U(), W("a", { key: 0, href: re(e), target: "_blank", rel: "noreferrer" }, "ESPHome JSON · " + k(re(e)), 9, fd)) : (U(), W("span", pd, "ESPHome package URL unavailable")), d[113] ||= G("div", { class: "meta-row" }, [G("span", null, "Schema v2"), G("span", null, "Same TFLite model")], -1) ]), G("button", { type: "button", disabled: !re(e), onClick: (t) => I(ac)(re(e)) }, "Copy ESPHome URL", 8, md)]))), 128))])) : (U(), W("div", ud, "ESPHome links appear after a wake word is trained."))]) ], 64)) : q("", !0)], 64)) : (U(), W("div", Lc, [...d[48] ||= [G("span", { class: "spinner" }, null, -1), G("strong", null, "Connecting to the local trainer…", -1)]]))]), (U(), ra(Jn, { to: "body" }, [I(X).consoleOpen ? (U(), W("div", { key: 0, class: "modal-backdrop console-backdrop", onClick: d[41] ||= as((e) => I(X).consoleOpen = !1, ["self"]) }, [G("section", hd, [G("header", gd, [d[117] ||= G("div", null, [ G("span", { class: "eyebrow" }, "Live pipeline"), G("h2", null, "Training Console"), G("p", null, "Closing this window does not interrupt training.") ], -1), G("div", _d, [ r.value ? q("", !0) : (U(), W("button", { key: 0, type: "button", class: "console-follow", onClick: y }, "Jump to latest")), G("span", { class: O(["pill", p.value.tone]) }, k(p.value.text), 3), G("button", { type: "button", onClick: d[40] ||= (e) => I(X).consoleOpen = !1 }, "Close") ])]), G("pre", { ref_key: "consoleLog", ref: n, class: "console-log", onScrollPassive: v }, [(U(!0), W(V, null, Lr(h.value, (e, t) => (U(), W("span", { key: `${t}-${e}`, class: O(ie(e)) }, k(e), 3))), 128))], 544)])])) : q("", !0)])), (U(), ra(Jn, { to: "body" }, [I(X).taterLinkOpen ? (U(), W("div", { key: 0, class: "modal-backdrop", onClick: d[45] ||= as((e) => I(X).taterLinkOpen = !1, ["self"]) }, [G("section", vd, [G("header", yd, [G("div", null, [ d[118] ||= G("span", { class: "eyebrow" }, "Secure pairing", -1), G("h2", null, k(o.value ? "Tater linked" : "Link Tater"), 1), G("p", null, k(o.value ? "This trainer can securely publish wake-word updates." : "Enter the short-lived code shown in Tater Voice Settings."), 1) ]), G("button", { type: "button", onClick: d[42] ||= (e) => I(X).taterLinkOpen = !1 }, "Close")]), o.value ? (U(), W("div", bd, [ d[119] ||= G("i", null, "✓", -1), G("strong", null, "Successfully linked" + k(I(X).auto.trainer_link?.tater_name ? ` to ${I(X).auto.trainer_link.tater_name}` : ""), 1), d[120] ||= G("span", null, "The private link key is stored locally and is never displayed.", -1) ])) : (U(), W("div", xd, [ G("label", Sd, [d[121] ||= G("span", null, "Tater address", -1), R(G("input", { "onUpdate:modelValue": d[43] ||= (e) => i.value = e, type: "text" }, null, 512), [[Xo, i.value]])]), G("label", Cd, [d[122] ||= G("span", null, "Tater pairing code", -1), R(G("input", { id: "pairing-code", "onUpdate:modelValue": d[44] ||= (e) => a.value = e, class: "pairing-code", maxlength: "9", placeholder: "ABCD-EFGH", autocomplete: "off", onInput: w }, null, 544), [[Xo, a.value]])]), d[123] ||= G("small", null, "In Tater, open Voice Settings → Wake Word Trainer → Link Trainer.", -1), G("button", { type: "button", class: "button primary", disabled: I(Z)("link"), onClick: ee }, k(I(Z)("link") ? "Linking securely…" : "Link Tater"), 9, wd) ]))])])) : q("", !0)])), K(Ec), K($a, { name: "toast" }, { default: Dn(() => [I(X).toast.message ? (U(), W("div", { key: 0, class: O(["toast", I(X).toast.tone]), role: "status" }, k(I(X).toast.message), 3)) : q("", !0)]), _: 1 }) ])); } }), Od = document.getElementById("trainer-app"); if (!Od) throw Error("Missing #trainer-app mount point"); ds(Dd).mount(Od); //#endregion
Choose a multilingual voice route, check your real samples, then follow the model pipeline live.