woolball-client
Version:
Client-side library for Woolball enabling secure browser resource sharing for distributed AI task processing
1,017 lines (1,016 loc) • 13.2 MB
JavaScript
"use strict";
(() => {
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __require = /* @__PURE__ */ ((x3) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x3, {
get: (a3, b4) => (typeof require !== "undefined" ? require : a3)[b4]
}) : x3)(function(x3) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x3 + '" is not supported');
});
var __esm = (fn3, res) => function __init() {
return fn3 && (res = (0, fn3[__getOwnPropNames(fn3)[0]])(fn3 = 0)), res;
};
var __commonJS = (cb, mod) => function __require2() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to2, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to2, key) && key !== except)
__defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to2;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
// node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
var ort_webgpu_bundle_min_exports = {};
__export(ort_webgpu_bundle_min_exports, {
InferenceSession: () => nc,
TRACE: () => qa,
TRACE_EVENT_BEGIN: () => Ge,
TRACE_EVENT_END: () => $e,
TRACE_FUNC_BEGIN: () => tt,
TRACE_FUNC_END: () => rt,
Tensor: () => xe,
default: () => Ol,
env: () => ee,
registerBackend: () => Qe
});
async function is(a3 = {}) {
var r3 = a3, s4 = !!globalThis.window, f4 = !!globalThis.WorkerGlobalScope, i4 = f4 && self.name?.startsWith("em-pthread");
r3.mountExternalData = (e3, t3) => {
e3.startsWith("./") && (e3 = e3.substring(2)), (r3.Zc || (r3.Zc = /* @__PURE__ */ new Map())).set(e3, t3);
}, r3.unmountExternalData = () => {
delete r3.Zc;
}, globalThis.SharedArrayBuffer ?? new WebAssembly.Memory({ initial: 0, maximum: 0, Me: true }).buffer.constructor;
let d4 = () => {
let e3 = (t3) => (...n3) => {
let o4 = Be3;
return n3 = t3(...n3), Be3 != o4 ? new Promise((u4, c4) => {
Mr3 = { resolve: u4, reject: c4 };
}) : n3;
};
(() => {
for (let t3 of ["_OrtAppendExecutionProvider", "_OrtCreateSession", "_OrtRun", "_OrtRunWithBinding", "_OrtBindInput"]) r3[t3] = e3(r3[t3]);
})(), typeof jsepRunAsync < "u" && (r3._OrtRun = jsepRunAsync(r3._OrtRun), r3._OrtRunWithBinding = jsepRunAsync(r3._OrtRunWithBinding)), d4 = void 0;
};
r3.asyncInit = () => {
d4?.();
};
var p4, m4, y4 = (e3, t3) => {
throw t3;
}, w4 = import_meta.url, T3 = "";
if (s4 || f4) {
try {
T3 = new URL(".", w4).href;
} catch {
}
f4 && (m4 = (e3) => {
var t3 = new XMLHttpRequest();
return t3.open("GET", e3, false), t3.responseType = "arraybuffer", t3.send(null), new Uint8Array(t3.response);
}), p4 = async (e3) => {
if (oe3(e3)) return new Promise((n3, o4) => {
var u4 = new XMLHttpRequest();
u4.open("GET", e3, true), u4.responseType = "arraybuffer", u4.onload = () => {
u4.status == 200 || u4.status == 0 && u4.response ? n3(u4.response) : o4(u4.status);
}, u4.onerror = o4, u4.send(null);
});
var t3 = await fetch(e3, { credentials: "same-origin" });
if (t3.ok) return t3.arrayBuffer();
throw Error(t3.status + " : " + t3.url);
};
}
var g4, v4, S3, M5, R3, j3, P4 = console.log.bind(console), U4 = console.error.bind(console), Y3 = P4, O3 = U4, G4 = false, oe3 = (e3) => e3.startsWith("file://");
function l3() {
ke3.buffer != Z3.buffer && se4();
}
if (i4) {
let e3 = function(t3) {
try {
var n3 = t3.data, o4 = n3.Uc;
if (o4 === "load") {
let u4 = [];
self.onmessage = (c4) => u4.push(c4), j3 = () => {
postMessage({ Uc: "loaded" });
for (let c4 of u4) e3(c4);
self.onmessage = e3;
};
for (let c4 of n3.ne) r3[c4] && !r3[c4].proxy || (r3[c4] = (...h4) => {
postMessage({ Uc: "callHandler", me: c4, args: h4 });
}, c4 == "print" && (Y3 = r3[c4]), c4 == "printErr" && (O3 = r3[c4]));
ke3 = n3.we, se4(), v4 = n3.xe, wt2(), Vt3();
} else if (o4 === "run") {
(function(u4) {
var c4 = (l3(), A4)[u4 + 52 >>> 2 >>> 0];
u4 = (l3(), A4)[u4 + 56 >>> 2 >>> 0], Ro(c4, c4 - u4), C3(c4);
})(n3.Sc), $r3(n3.Sc, 0, 0, 1, 0, 0), Tn2(), Lr3(n3.Sc), ne4 || (wo2(), ne4 = true);
try {
Js2(n3.te, n3.ad);
} catch (u4) {
if (u4 != "unwind") throw u4;
}
} else n3.target !== "setimmediate" && (o4 === "checkMailbox" ? ne4 && Pt2() : o4 && (O3(`worker: received unknown command ${o4}`), O3(n3)));
} catch (u4) {
throw Uo(), u4;
}
};
var Mc = e3, ne4 = false;
self.onunhandledrejection = (t3) => {
throw t3.reason || t3;
}, self.onmessage = e3;
}
var Z3, J4, Ce3, K3, x3, A4, _4, ae3, le2, q3, ye2, re3 = false;
function se4() {
var e3 = ke3.buffer;
r3.HEAP8 = Z3 = new Int8Array(e3), Ce3 = new Int16Array(e3), r3.HEAPU8 = J4 = new Uint8Array(e3), K3 = new Uint16Array(e3), r3.HEAP32 = x3 = new Int32Array(e3), r3.HEAPU32 = A4 = new Uint32Array(e3), _4 = new Float32Array(e3), ae3 = new Float64Array(e3), le2 = new BigInt64Array(e3), q3 = new BigUint64Array(e3);
}
function wr3() {
re3 = true, i4 ? j3() : Ne3.dc();
}
function we2(e3) {
throw O3(e3 = "Aborted(" + e3 + ")"), G4 = true, e3 = new WebAssembly.RuntimeError(e3 + ". Build with -sASSERTIONS for more info."), R3?.(e3), e3;
}
function je3() {
return { a: { sa: lf2, g: Xs2, K: Zs2, f: Ks2, n: Qs2, h: ei2, wa: ti2, b: ri, ea: ni2, Ja: xn2, o: oi, fa: Mn3, Za: Un3, $b: Cn2, bc: Dn3, _a: Pn2, Xa: _n2, Qa: Rn3, Wa: Nn3, qa: Wn3, ac: kn2, Zb: Fn3, Ya: Gn3, _b: $n2, db: ai, Fa: ii, Ub: ui, Sb: ci, Ea: li, P: pi, J: mi, Tb: hi, ma: Ei, Vb: Si, Ta: Ai, Xb: xi, Ka: Li, Pb: Oi, Ha: Bi, Sa: Lr3, ab: Mi, W: Pi, r: ki, c: Ir3, tb: Fi2, y: Gi, N: $i, D: zi, m: Vi, s: Xn3, ub: Hi, I: ji2, V: Yi2, j: qi2, u: Ji2, q: Xi2, k: Zi2, Na: Ki2, Oa: Qi2, Pa: eu2, La: eo2, Ma: to2, Rb: ro2, fb: ru2, cb: au2, $: su2, sb: iu2, na: uu2, bb: nu2, Y: fu2, $a: cu2, Yb: du2, G: tu2, ib: lu2, _: pu2, ra: kt2, Wb: hu2, hb: mu2, gb: yu2, pb: Su2, F: Au2, va: Iu2, ua: xu2, rb: Lu2, Z: Ou2, w: Bu2, ob: Mu2, nb: Uu2, mb: Cu2, qb: Du2, lb: Pu2, kb: _u2, jb: Ru2, Ua: co2, Va: lo2, Ia: Tr3, ga: po2, pa: mo2, Ra: ho2, oa: yo2, Eb: Jf, za: $f2, Fb: qf2, Aa: Gf2, H: Cf2, e: yf2, t: mf2, x: pf2, B: xf2, Ib: Wf2, L: Bf2, v: wf2, Ba: kf2, ca: zf2, ja: Nf2, Gb: Yf2, Hb: jf2, Da: Df2, Ca: Rf2, Kb: Pf2, O: Mf2, da: Ff2, d: bf2, A: gf2, l: hf2, Db: Xf2, p: vf2, z: If3, C: Tf2, E: Ef2, M: Lf2, Lb: Uf2, U: Vf2, ka: Of2, ba: Hf2, Mb: Af2, Nb: Sf2, R: _f2, i: Wu2, a: ke3, eb: Ye3, Jb: ku2, la: Fu2, Q: Gu2, ta: $u2, Ob: zu2, S: Vu2, Ab: Hu2, Bb: ju2, xa: Yu2, ha: qu2, T: Ju2, Ga: Xu2, ya: Zu2, aa: Ku2, yb: Qu2, cc: ef2, X: tf2, Cb: rf, vb: nf2, wb: af2, xb: sf2, ia: uf2, zb: ff2, Qb: cf2 } };
}
async function wt2() {
function e3(o4, u4) {
var c4 = Ne3 = o4.exports;
o4 = {};
for (let [h4, b4] of Object.entries(c4)) typeof b4 == "function" ? (c4 = Ui(b4), o4[h4] = c4) : o4[h4] = b4;
return Ne3 = o4, Ne3 = function() {
var h4 = Ne3, b4 = (I3) => (N4) => I3(N4) >>> 0, E3 = (I3) => () => I3() >>> 0;
return (h4 = Object.assign({}, h4)).ec = b4(h4.ec), h4.Hc = E3(h4.Hc), h4.Jc = b4(h4.Jc), h4.vd = /* @__PURE__ */ ((I3) => (N4, W3) => I3(N4, W3) >>> 0)(h4.vd), h4.Ad = b4(h4.Ad), h4.Bd = E3(h4.Bd), h4.Fd = b4(h4.Fd), h4;
}(), wn2.push(Ne3.md), bo2 = (o4 = Ne3).ec, wo2 = o4.fc, r3._OrtInit = o4.gc, r3._OrtGetLastError = o4.hc, r3._OrtCreateSessionOptions = o4.ic, r3._OrtAppendExecutionProvider = o4.jc, r3._OrtAddFreeDimensionOverride = o4.kc, r3._OrtAddSessionConfigEntry = o4.lc, r3._OrtReleaseSessionOptions = o4.mc, r3._OrtCreateSession = o4.nc, r3._OrtReleaseSession = o4.oc, r3._OrtGetInputOutputCount = o4.pc, r3._OrtGetInputOutputMetadata = o4.qc, r3._OrtFree = o4.rc, r3._OrtCreateTensor = o4.sc, r3._OrtGetTensorData = o4.tc, r3._OrtReleaseTensor = o4.uc, r3._OrtCreateRunOptions = o4.vc, r3._OrtAddRunConfigEntry = o4.wc, r3._OrtReleaseRunOptions = o4.xc, r3._OrtCreateBinding = o4.yc, r3._OrtBindInput = o4.zc, r3._OrtBindOutput = o4.Ac, r3._OrtClearBoundOutputs = o4.Bc, r3._OrtReleaseBinding = o4.Cc, r3._OrtRunWithBinding = o4.Dc, r3._OrtRun = o4.Ec, r3._OrtEndProfiling = o4.Fc, Rr3 = r3._OrtGetWebGpuDevice = o4.Gc, $t3 = o4.Hc, Te2 = r3._free = o4.Ic, mt2 = r3._malloc = o4.Jc, go2 = r3._wgpuBufferRelease = o4.Kc, To2 = r3._wgpuCreateInstance = o4.Lc, vo2 = o4.Mc, Eo2 = o4.Nc, So2 = o4.Oc, Ao2 = o4.Pc, Io2 = o4.Qc, xo2 = o4.Tc, Lo = o4.bd, Oo = o4.cd, Bo = o4.dd, Nr3 = o4.fd, Wr3 = o4.gd, kr3 = o4.hd, Fr3 = o4.id, Et3 = o4.jd, Gr3 = o4.kd, Mo = o4.ld, $r3 = o4.od, Uo = o4.pd, Co2 = o4.qd, Do = o4.rd, zr3 = o4.sd, Po2 = o4.td, _o2 = o4.ud, Vr3 = o4.vd, k5 = o4.wd, St2 = o4.xd, Ro = o4.yd, C3 = o4.zd, zt2 = o4.Ad, D3 = o4.Bd, No = o4.Cd, Hr3 = o4.Dd, Wo = o4.Ed, ko2 = o4.Fd, Fo = o4.Gd, jr3 = o4.Hd, Go = o4.Id, $o2 = o4.Jd, zo = o4.Kd, Vo = o4.Ld, Ho = o4.Md, jo = o4.Nd, Yo = o4.Od, qo = o4.Pd, Jo = o4.Qd, Xo = o4.Rd, Zo = o4.Sd, Ko = o4.Td, Qo = o4.Ud, ea2 = o4.Vd, ta2 = o4.Wd, ra2 = o4.Yd, na2 = o4.Zd, oa2 = o4._d, aa2 = o4.$d, sa2 = o4.be, ia2 = o4.ce, ua2 = o4.de, fa2 = o4.ee, ca2 = o4.fe, da2 = o4.ge, la2 = o4.qe, pa2 = o4.ve, ma2 = o4.ye, ha2 = o4.ze, ya2 = o4.Ae, ba2 = o4.Be, wa2 = o4.Ce, ga2 = o4.De, Ta2 = o4.Ee, va2 = o4.Fe, Ea2 = o4.Ge, Sa2 = o4.ef, Aa2 = o4.ff, Ia2 = o4.gf, xa2 = o4.hf, v4 = u4, Ne3;
}
var t3, n3 = je3();
return r3.instantiateWasm ? new Promise((o4) => {
r3.instantiateWasm(n3, (u4, c4) => {
o4(e3(u4, c4));
});
}) : i4 ? e3(new WebAssembly.Instance(v4, je3()), v4) : (ye2 ?? (ye2 = r3.locateFile ? r3.locateFile ? r3.locateFile("ort-wasm-simd-threaded.asyncify.wasm", T3) : T3 + "ort-wasm-simd-threaded.asyncify.wasm" : new URL("ort-wasm-simd-threaded.asyncify.wasm", import_meta.url).href), t3 = await async function(o4) {
var u4 = ye2;
if (!g4 && !oe3(u4)) try {
var c4 = fetch(u4, { credentials: "same-origin" });
return await WebAssembly.instantiateStreaming(c4, o4);
} catch (h4) {
O3(`wasm streaming compile failed: ${h4}`), O3("falling back to ArrayBuffer instantiation");
}
return async function(h4, b4) {
try {
var E3 = await async function(I3) {
if (!g4) try {
var N4 = await p4(I3);
return new Uint8Array(N4);
} catch {
}
if (I3 == ye2 && g4) I3 = new Uint8Array(g4);
else {
if (!m4) throw "both async and sync fetching of the wasm failed";
I3 = m4(I3);
}
return I3;
}(h4);
return await WebAssembly.instantiate(E3, b4);
} catch (I3) {
O3(`failed to asynchronously prepare wasm: ${I3}`), we2(I3);
}
}(u4, o4);
}(n3), e3(t3.instance, t3.module));
}
class gt3 {
constructor(t3) {
__publicField(this, "name", "ExitStatus");
this.message = `Program terminated with exit(${t3})`, this.status = t3;
}
}
var Se3 = (e3) => {
e3.terminate(), e3.onmessage = () => {
};
}, Ae4 = [], Le3 = 0, te3 = null, Q4 = (e3) => {
We3.length == 0 && (En2(), vn2(We3[0]));
var t3 = We3.pop();
if (!t3) return 6;
Tt3.push(t3), qe3[e3.Sc] = t3, t3.Sc = e3.Sc;
var n3 = { Uc: "run", te: e3.se, ad: e3.ad, Sc: e3.Sc };
return t3.postMessage(n3, e3.he), 0;
}, $4 = 0, H3 = (e3, t3, ...n3) => {
var o4, u4 = 16 * n3.length, c4 = D3(), h4 = zt2(u4), b4 = h4 >>> 3;
for (o4 of n3) typeof o4 == "bigint" ? ((l3(), le2)[b4++ >>> 0] = 1n, (l3(), le2)[b4++ >>> 0] = o4) : ((l3(), le2)[b4++ >>> 0] = 0n, (l3(), ae3)[b4++ >>> 0] = o4);
return e3 = Co2(e3, 0, u4, h4, t3), C3(c4), e3;
};
function Ye3(e3) {
if (i4) return H3(0, 1, e3);
if (S3 = e3, !(0 < $4)) {
for (var t3 of Tt3) Se3(t3);
for (t3 of We3) Se3(t3);
We3 = [], Tt3 = [], qe3 = {}, G4 = true;
}
y4(0, new gt3(e3));
}
function gr3(e3) {
if (i4) return H3(1, 0, e3);
Tr3(e3);
}
var Tr3 = (e3) => {
if (S3 = e3, i4) throw gr3(e3), "unwind";
Ye3(e3);
}, We3 = [], Tt3 = [], wn2 = [], qe3 = {}, gn2 = (e3) => {
var t3 = e3.Sc;
delete qe3[t3], We3.push(e3), Tt3.splice(Tt3.indexOf(e3), 1), e3.Sc = 0, Do(t3);
};
function Tn2() {
wn2.forEach((e3) => e3());
}
var vn2 = (e3) => new Promise((t3) => {
e3.onmessage = (u4) => {
var c4 = u4.data;
if (u4 = c4.Uc, c4.$c && c4.$c != $t3()) {
var h4 = qe3[c4.$c];
h4 ? h4.postMessage(c4, c4.he) : O3(`Internal error! Worker sent a message "${u4}" to target pthread ${c4.$c}, but that thread no longer exists!`);
} else u4 === "checkMailbox" ? Pt2() : u4 === "spawnThread" ? Q4(c4) : u4 === "cleanupThread" ? Dt3(() => {
gn2(qe3[c4.ue]);
}) : u4 === "loaded" ? (e3.loaded = true, t3(e3)) : c4.target === "setimmediate" ? e3.postMessage(c4) : u4 === "uncaughtException" ? e3.onerror(c4.error) : u4 === "callHandler" ? r3[c4.me](...c4.args) : u4 && O3(`worker sent an unknown command ${u4}`);
}, e3.onerror = (u4) => {
throw O3(`worker sent an error! ${u4.filename}:${u4.lineno}: ${u4.message}`), u4;
};
var n3, o4 = [];
for (n3 of []) r3.propertyIsEnumerable(n3) && o4.push(n3);
e3.postMessage({ Uc: "load", ne: o4, we: ke3, xe: v4 });
});
function En2() {
var e3 = new Worker((() => {
let t3 = URL;
return import_meta.url > "file:" && import_meta.url < "file;" ? new t3("ort.webgpu.bundle.min.mjs", import_meta.url) : new URL(import_meta.url);
})(), { type: "module", workerData: "em-pthread", name: "em-pthread" });
We3.push(e3);
}
var ke3, Js2 = (e3, t3) => {
$4 = 0, e3 = jr3(e3, t3), 0 < $4 ? S3 = e3 : zr3(e3);
}, Ut3 = [], Ct3 = 0, pe3 = (e3) => -9007199254740992 > e3 || 9007199254740992 < e3 ? NaN : Number(e3);
function Xs2(e3) {
var t3 = new vr3(e3 >>>= 0);
return (l3(), Z3)[t3.Vc + 12 >>> 0] == 0 && (Sn2(t3, true), Ct3--), An2(t3, false), Ut3.push(t3), ko2(e3);
}
var ft2 = 0, Zs2 = () => {
k5(0, 0);
var e3 = Ut3.pop();
No(e3.nd), ft2 = 0;
};
function Sn2(e3, t3) {
t3 = t3 ? 1 : 0, (l3(), Z3)[e3.Vc + 12 >>> 0] = t3;
}
function An2(e3, t3) {
t3 = t3 ? 1 : 0, (l3(), Z3)[e3.Vc + 13 >>> 0] = t3;
}
class vr3 {
constructor(t3) {
this.nd = t3, this.Vc = t3 - 24;
}
}
var Er3 = (e3) => {
var t3 = ft2;
if (!t3) return St2(0), 0;
var n3 = new vr3(t3);
(l3(), A4)[n3.Vc + 16 >>> 2 >>> 0] = t3;
var o4 = (l3(), A4)[n3.Vc + 4 >>> 2 >>> 0];
if (!o4) return St2(0), t3;
for (var u4 of e3) {
if (u4 === 0 || u4 === o4) break;
if (Wo(u4, o4, n3.Vc + 16)) return St2(u4), t3;
}
return St2(o4), t3;
};
function Ks2() {
return Er3([]);
}
function Qs2(e3) {
return Er3([e3 >>> 0]);
}
function ei2(e3, t3, n3, o4) {
return Er3([e3 >>> 0, t3 >>> 0, n3 >>> 0, o4 >>> 0]);
}
var ti2 = () => {
var e3 = Ut3.pop();
e3 || we2("no exception to throw");
var t3 = e3.nd;
throw (l3(), Z3)[e3.Vc + 13 >>> 0] == 0 && (Ut3.push(e3), An2(e3, true), Sn2(e3, false), Ct3++), Hr3(t3), ft2 = t3;
};
function ri(e3, t3, n3) {
var o4 = new vr3(e3 >>>= 0);
throw t3 >>>= 0, n3 >>>= 0, (l3(), A4)[o4.Vc + 16 >>> 2 >>> 0] = 0, (l3(), A4)[o4.Vc + 4 >>> 2 >>> 0] = t3, (l3(), A4)[o4.Vc + 8 >>> 2 >>> 0] = n3, Hr3(e3), Ct3++, ft2 = e3;
}
var ni2 = () => Ct3;
function In2(e3, t3, n3, o4) {
return i4 ? H3(2, 1, e3, t3, n3, o4) : xn2(e3, t3, n3, o4);
}
function xn2(e3, t3, n3, o4) {
if (e3 >>>= 0, t3 >>>= 0, n3 >>>= 0, o4 >>>= 0, !globalThis.SharedArrayBuffer) return 6;
var u4 = [];
return i4 && u4.length === 0 ? In2(e3, t3, n3, o4) : (e3 = { se: n3, Sc: e3, ad: o4, he: u4 }, i4 ? (e3.Uc = "spawnThread", postMessage(e3, u4), 0) : Q4(e3));
}
function oi(e3) {
throw ft2 || (ft2 = e3 >>> 0), ft2;
}
var Ln3 = globalThis.TextDecoder && new TextDecoder(), On3 = (e3, t3, n3, o4) => {
if (n3 = t3 + n3, o4) return n3;
for (; e3[t3] && !(t3 >= n3); ) ++t3;
return t3;
}, Bn3 = (e3, t3 = 0, n3, o4) => {
if (16 < (n3 = On3(e3, t3 >>>= 0, n3, o4)) - t3 && e3.buffer && Ln3) return Ln3.decode(e3.buffer instanceof ArrayBuffer ? e3.subarray(t3, n3) : e3.slice(t3, n3));
for (o4 = ""; t3 < n3; ) {
var u4 = e3[t3++];
if (128 & u4) {
var c4 = 63 & e3[t3++];
if ((224 & u4) == 192) o4 += String.fromCharCode((31 & u4) << 6 | c4);
else {
var h4 = 63 & e3[t3++];
65536 > (u4 = (240 & u4) == 224 ? (15 & u4) << 12 | c4 << 6 | h4 : (7 & u4) << 18 | c4 << 12 | h4 << 6 | 63 & e3[t3++]) ? o4 += String.fromCharCode(u4) : (u4 -= 65536, o4 += String.fromCharCode(55296 | u4 >> 10, 56320 | 1023 & u4));
}
} else o4 += String.fromCharCode(u4);
}
return o4;
}, ct2 = (e3, t3, n3) => (e3 >>>= 0) ? Bn3((l3(), J4), e3, t3, n3) : "";
function Mn3(e3, t3, n3) {
return i4 ? H3(3, 1, e3, t3, n3) : 0;
}
function Un3(e3, t3) {
if (i4) return H3(4, 1, e3, t3);
}
function Cn2(e3, t3) {
if (i4) return H3(5, 1, e3, t3);
}
function Dn3(e3, t3, n3) {
if (i4) return H3(6, 1, e3, t3, n3);
}
function Pn2(e3, t3, n3) {
return i4 ? H3(7, 1, e3, t3, n3) : 0;
}
function _n2(e3, t3) {
if (i4) return H3(8, 1, e3, t3);
}
function Rn3(e3, t3, n3) {
if (i4) return H3(9, 1, e3, t3, n3);
}
function Nn3(e3, t3, n3, o4) {
if (i4) return H3(10, 1, e3, t3, n3, o4);
}
function Wn3(e3, t3, n3, o4) {
if (i4) return H3(11, 1, e3, t3, n3, o4);
}
function kn2(e3, t3, n3, o4) {
if (i4) return H3(12, 1, e3, t3, n3, o4);
}
function Fn3(e3) {
if (i4) return H3(13, 1, e3);
}
function Gn3(e3, t3) {
if (i4) return H3(14, 1, e3, t3);
}
function $n2(e3, t3, n3) {
if (i4) return H3(15, 1, e3, t3, n3);
}
var ai = () => we2(""), Oe3 = (e3) => {
e3 >>>= 0;
for (var t3 = ""; ; ) {
var n3 = (l3(), J4)[e3++ >>> 0];
if (!n3) return t3;
t3 += String.fromCharCode(n3);
}
}, Sr3 = {}, Ar3 = {}, si = {}, dt2 = class extends Error {
constructor(e3) {
super(e3), this.name = "BindingError";
}
};
function De2(e3, t3, n3 = {}) {
return function(o4, u4, c4 = {}) {
var h4 = u4.name;
if (!o4) throw new dt2(`type "${h4}" must have a positive integer typeid pointer`);
if (Ar3.hasOwnProperty(o4)) {
if (c4.oe) return;
throw new dt2(`Cannot register type '${h4}' twice`);
}
Ar3[o4] = u4, delete si[o4], Sr3.hasOwnProperty(o4) && (u4 = Sr3[o4], delete Sr3[o4], u4.forEach((b4) => b4()));
}(e3, t3, n3);
}
var zn3 = (e3, t3, n3) => {
switch (t3) {
case 1:
return n3 ? (o4) => (l3(), Z3)[o4 >>> 0] : (o4) => (l3(), J4)[o4 >>> 0];
case 2:
return n3 ? (o4) => (l3(), Ce3)[o4 >>> 1 >>> 0] : (o4) => (l3(), K3)[o4 >>> 1 >>> 0];
case 4:
return n3 ? (o4) => (l3(), x3)[o4 >>> 2 >>> 0] : (o4) => (l3(), A4)[o4 >>> 2 >>> 0];
case 8:
return n3 ? (o4) => (l3(), le2)[o4 >>> 3 >>> 0] : (o4) => (l3(), q3)[o4 >>> 3 >>> 0];
default:
throw new TypeError(`invalid integer width (${t3}): ${e3}`);
}
};
function ii(e3, t3, n3, o4, u4) {
e3 >>>= 0, n3 >>>= 0, t3 = Oe3(t3 >>> 0);
let c4 = (h4) => h4;
if (o4 = o4 === 0n) {
let h4 = 8 * n3;
c4 = (b4) => BigInt.asUintN(h4, b4), u4 = c4(u4);
}
De2(e3, { name: t3, Rc: c4, Xc: (h4, b4) => (typeof b4 == "number" && (b4 = BigInt(b4)), b4), Wc: zn3(t3, n3, !o4), Yc: null });
}
function ui(e3, t3, n3, o4) {
De2(e3 >>>= 0, { name: t3 = Oe3(t3 >>> 0), Rc: function(u4) {
return !!u4;
}, Xc: function(u4, c4) {
return c4 ? n3 : o4;
}, Wc: function(u4) {
return this.Rc((l3(), J4)[u4 >>> 0]);
}, Yc: null });
}
var Vn3 = [], Je3 = [0, 1, , 1, null, 1, true, 1, false, 1];
function Ir3(e3) {
9 < (e3 >>>= 0) && --Je3[e3 + 1] == 0 && (Je3[e3] = void 0, Vn3.push(e3));
}
var ge4 = (e3) => {
if (!e3) throw new dt2(`Cannot use deleted val. handle = ${e3}`);
return Je3[e3];
}, Ie4 = (e3) => {
switch (e3) {
case void 0:
return 2;
case null:
return 4;
case true:
return 6;
case false:
return 8;
default:
let t3 = Vn3.pop() || Je3.length;
return Je3[t3] = e3, Je3[t3 + 1] = 1, t3;
}
};
function xr3(e3) {
return this.Rc((l3(), A4)[e3 >>> 2 >>> 0]);
}
var fi = { name: "emscripten::val", Rc: (e3) => {
var t3 = ge4(e3);
return Ir3(e3), t3;
}, Xc: (e3, t3) => Ie4(t3), Wc: xr3, Yc: null };
function ci(e3) {
return De2(e3 >>> 0, fi);
}
var di = (e3, t3) => {
switch (t3) {
case 4:
return function(n3) {
return this.Rc((l3(), _4)[n3 >>> 2 >>> 0]);
};
case 8:
return function(n3) {
return this.Rc((l3(), ae3)[n3 >>> 3 >>> 0]);
};
default:
throw new TypeError(`invalid float width (${t3}): ${e3}`);
}
};
function li(e3, t3, n3) {
n3 >>>= 0, De2(e3 >>>= 0, { name: t3 = Oe3(t3 >>> 0), Rc: (o4) => o4, Xc: (o4, u4) => u4, Wc: di(t3, n3), Yc: null });
}
function pi(e3, t3, n3, o4, u4) {
e3 >>>= 0, n3 >>>= 0, t3 = Oe3(t3 >>> 0);
let c4 = (b4) => b4;
if (o4 === 0) {
var h4 = 32 - 8 * n3;
c4 = (b4) => b4 << h4 >>> h4, u4 = c4(u4);
}
De2(e3, { name: t3, Rc: c4, Xc: (b4, E3) => E3, Wc: zn3(t3, n3, o4 !== 0), Yc: null });
}
function mi(e3, t3, n3) {
function o4(c4) {
var h4 = (l3(), A4)[c4 >>> 2 >>> 0];
return c4 = (l3(), A4)[c4 + 4 >>> 2 >>> 0], new u4((l3(), Z3).buffer, c4, h4);
}
var u4 = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array][t3];
De2(e3 >>>= 0, { name: n3 = Oe3(n3 >>> 0), Rc: o4, Wc: o4 }, { oe: true });
}
var Pe3 = (e3, t3, n3) => {
var o4 = (l3(), J4);
if (t3 >>>= 0, 0 < n3) {
var u4 = t3;
n3 = t3 + n3 - 1;
for (var c4 = 0; c4 < e3.length; ++c4) {
var h4 = e3.codePointAt(c4);
if (127 >= h4) {
if (t3 >= n3) break;
o4[t3++ >>> 0] = h4;
} else if (2047 >= h4) {
if (t3 + 1 >= n3) break;
o4[t3++ >>> 0] = 192 | h4 >> 6, o4[t3++ >>> 0] = 128 | 63 & h4;
} else if (65535 >= h4) {
if (t3 + 2 >= n3) break;
o4[t3++ >>> 0] = 224 | h4 >> 12, o4[t3++ >>> 0] = 128 | h4 >> 6 & 63, o4[t3++ >>> 0] = 128 | 63 & h4;
} else {
if (t3 + 3 >= n3) break;
o4[t3++ >>> 0] = 240 | h4 >> 18, o4[t3++ >>> 0] = 128 | h4 >> 12 & 63, o4[t3++ >>> 0] = 128 | h4 >> 6 & 63, o4[t3++ >>> 0] = 128 | 63 & h4, c4++;
}
}
o4[t3 >>> 0] = 0, e3 = t3 - u4;
} else e3 = 0;
return e3;
}, _e2 = (e3) => {
for (var t3 = 0, n3 = 0; n3 < e3.length; ++n3) {
var o4 = e3.charCodeAt(n3);
127 >= o4 ? t3++ : 2047 >= o4 ? t3 += 2 : 55296 <= o4 && 57343 >= o4 ? (t3 += 4, ++n3) : t3 += 3;
}
return t3;
};
function hi(e3, t3) {
De2(e3 >>>= 0, { name: t3 = Oe3(t3 >>> 0), Rc(n3) {
var o4 = (l3(), A4)[n3 >>> 2 >>> 0];
return o4 = ct2(n3 + 4, o4, true), Te2(n3), o4;
}, Xc(n3, o4) {
o4 instanceof ArrayBuffer && (o4 = new Uint8Array(o4));
var u4 = typeof o4 == "string";
if (!(u4 || ArrayBuffer.isView(o4) && o4.BYTES_PER_ELEMENT == 1)) throw new dt2("Cannot pass non-string to std::string");
var c4 = u4 ? _e2(o4) : o4.length, h4 = mt2(4 + c4 + 1), b4 = h4 + 4;
return (l3(), A4)[h4 >>> 2 >>> 0] = c4, u4 ? Pe3(o4, b4, c4 + 1) : (l3(), J4).set(o4, b4 >>> 0), n3 !== null && n3.push(Te2, h4), h4;
}, Wc: xr3, Yc(n3) {
Te2(n3);
} });
}
var Hn3 = globalThis.TextDecoder ? new TextDecoder("utf-16le") : void 0, yi = (e3, t3, n3) => {
if (e3 >>>= 1, 16 < (t3 = On3((l3(), K3), e3, t3 / 2, n3)) - e3 && Hn3) return Hn3.decode((l3(), K3).slice(e3, t3));
for (n3 = ""; e3 < t3; ++e3) {
var o4 = (l3(), K3)[e3 >>> 0];
n3 += String.fromCharCode(o4);
}
return n3;
}, bi = (e3, t3, n3) => {
if (n3 ?? (n3 = 2147483647), 2 > n3) return 0;
var o4 = t3;
n3 = (n3 -= 2) < 2 * e3.length ? n3 / 2 : e3.length;
for (var u4 = 0; u4 < n3; ++u4) {
var c4 = e3.charCodeAt(u4);
(l3(), Ce3)[t3 >>> 1 >>> 0] = c4, t3 += 2;
}
return (l3(), Ce3)[t3 >>> 1 >>> 0] = 0, t3 - o4;
}, wi = (e3) => 2 * e3.length, gi = (e3, t3, n3) => {
var o4 = "";
e3 >>>= 2;
for (var u4 = 0; !(u4 >= t3 / 4); u4++) {
var c4 = (l3(), A4)[e3 + u4 >>> 0];
if (!c4 && !n3) break;
o4 += String.fromCodePoint(c4);
}
return o4;
}, Ti = (e3, t3, n3) => {
if (t3 >>>= 0, n3 ?? (n3 = 2147483647), 4 > n3) return 0;
var o4 = t3;
n3 = o4 + n3 - 4;
for (var u4 = 0; u4 < e3.length; ++u4) {
var c4 = e3.codePointAt(u4);
if (65535 < c4 && u4++, (l3(), x3)[t3 >>> 2 >>> 0] = c4, (t3 += 4) + 4 > n3) break;
}
return (l3(), x3)[t3 >>> 2 >>> 0] = 0, t3 - o4;
}, vi = (e3) => {
for (var t3 = 0, n3 = 0; n3 < e3.length; ++n3) 65535 < e3.codePointAt(n3) && n3++, t3 += 4;
return t3;
};
function Ei(e3, t3, n3) {
if (e3 >>>= 0, t3 >>>= 0, n3 = Oe3(n3 >>>= 0), t3 === 2) var o4 = yi, u4 = bi, c4 = wi;
else o4 = gi, u4 = Ti, c4 = vi;
De2(e3, { name: n3, Rc: (h4) => {
var b4 = (l3(), A4)[h4 >>> 2 >>> 0];
return b4 = o4(h4 + 4, b4 * t3, true), Te2(h4), b4;
}, Xc: (h4, b4) => {
if (typeof b4 != "string") throw new dt2(`Cannot pass non-string to C++ string type ${n3}`);
var E3 = c4(b4), I3 = mt2(4 + E3 + t3);
return (l3(), A4)[I3 >>> 2 >>> 0] = E3 / t3, u4(b4, I3 + 4, E3 + t3), h4 !== null && h4.push(Te2, I3), I3;
}, Wc: xr3, Yc(h4) {
Te2(h4);
} });
}
function Si(e3, t3) {
De2(e3 >>>= 0, { pe: true, name: t3 = Oe3(t3 >>> 0), Rc: () => {
}, Xc: () => {
} });
}
function Ai(e3) {
$r3(e3 >>> 0, !f4, 1, !s4, 131072, false), Tn2();
}
var Dt3 = (e3) => {
if (!G4) try {
if (e3(), !(0 < $4)) try {
i4 ? $t3() && zr3(S3) : Tr3(S3);
} catch (t3) {
t3 instanceof gt3 || t3 == "unwind" || y4(0, t3);
}
} catch (t3) {
t3 instanceof gt3 || t3 == "unwind" || y4(0, t3);
}
}, Ii = !Atomics.waitAsync || globalThis.navigator?.userAgent && 91 > Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./) || [])[2]);
function Lr3(e3) {
e3 >>>= 0, Ii || (Atomics.waitAsync((l3(), x3), e3 >>> 2, e3).value.then(Pt2), e3 += 128, Atomics.store((l3(), x3), e3 >>> 2, 1));
}
var Pt2 = () => Dt3(() => {
var e3 = $t3();
e3 && (Lr3(e3), _o2());
});
function xi(e3, t3) {
(e3 >>>= 0) == t3 >>> 0 ? setTimeout(Pt2) : i4 ? postMessage({ $c: e3, Uc: "checkMailbox" }) : (e3 = qe3[e3]) && e3.postMessage({ Uc: "checkMailbox" });
}
var Or3 = [];
function Li(e3, t3, n3, o4, u4) {
for (t3 >>>= 0, u4 >>>= 0, Or3.length = 0, n3 = u4 >>> 3, o4 = u4 + o4 >>> 3; n3 < o4; ) {
var c4;
c4 = (l3(), le2)[n3++ >>> 0] ? (l3(), le2)[n3++ >>> 0] : (l3(), ae3)[n3++ >>> 0], Or3.push(c4);
}
return (t3 ? Yr3[t3] : df2[e3])(...Or3);
}
var Oi = () => {
$4 = 0;
};
function Bi(e3) {
e3 >>>= 0, i4 ? postMessage({ Uc: "cleanupThread", ue: e3 }) : gn2(qe3[e3]);
}
function Mi(e3) {
}
var _t2 = (e3) => {
try {
e3();
} catch (t3) {
we2(t3);
}
};
function Ui(e3) {
var t3 = (...n3) => {
Rt3.push(e3);
try {
return e3(...n3);
} finally {
G4 || (Rt3.pop(), Be3 && Fe3 === 1 && Rt3.length === 0 && (Fe3 = 0, $4 += 1, _t2(Aa2), typeof Fibers < "u" && Fibers.Oe()));
}
};
return qn3.set(e3, t3), t3;
}
var Fe3 = 0, Be3 = null, jn3 = 0, Rt3 = [], Br3 = /* @__PURE__ */ new Map(), Yn3 = /* @__PURE__ */ new Map(), qn3 = /* @__PURE__ */ new Map(), Ci = 0, Mr3 = null, Di = [], Jn3 = (e3) => function(t3) {
if (!G4) {
if (Fe3 === 0) {
var n3 = false, o4 = false;
t3((u4 = 0) => {
if (!G4 && (jn3 = u4, n3 = true, o4)) {
Fe3 = 2, _t2(() => Ia2(Be3)), typeof MainLoop < "u" && MainLoop.le && MainLoop.resume(), u4 = false;
try {
var c4 = function() {
var E3 = (l3(), x3)[Be3 + 8 >>> 2 >>> 0];
return E3 = Yn3.get(E3), E3 = qn3.get(E3), --$4, E3();
}();
} catch (E3) {
c4 = E3, u4 = true;
}
var h4 = false;
if (!Be3) {
var b4 = Mr3;
b4 && (Mr3 = null, (u4 ? b4.reject : b4.resolve)(c4), h4 = true);
}
if (u4 && !h4) throw c4;
}
}), o4 = true, n3 || (Fe3 = 1, Be3 = function() {
var u4 = mt2(65548), c4 = u4 + 12;
if ((l3(), A4)[u4 >>> 2 >>> 0] = c4, (l3(), A4)[u4 + 4 >>> 2 >>> 0] = c4 + 65536, c4 = Rt3[0], !Br3.has(c4)) {
var h4 = Ci++;
Br3.set(c4, h4), Yn3.set(h4, c4);
}
return c4 = Br3.get(c4), (l3(), x3)[u4 + 8 >>> 2 >>> 0] = c4, u4;
}(), typeof MainLoop < "u" && MainLoop.le && MainLoop.pause(), _t2(() => Sa2(Be3)));
} else Fe3 === 2 ? (Fe3 = 0, _t2(xa2), Te2(Be3), Be3 = null, Di.forEach(Dt3)) : we2(`invalid state: ${Fe3}`);
return jn3;
}
}((t3) => {
e3().then(t3);
});
function Pi(e3) {
return e3 >>>= 0, Jn3(async () => {
var t3 = await ge4(e3);
return Ie4(t3);
});
}
var Ur3 = [], _i = (e3) => {
var t3 = Ur3.length;
return Ur3.push(e3), t3;
}, Ri = (e3, t3) => {
for (var n3 = Array(e3), o4 = 0; o4 < e3; ++o4) {
var u4 = o4, c4 = (l3(), A4)[t3 + 4 * o4 >>> 2 >>> 0], h4 = Ar3[c4];
if (h4 === void 0) throw e3 = `parameter ${o4}`, c4 = bo2(c4), t3 = Oe3(c4), Te2(c4), new dt2(`${e3} has unknown type ${t3}`);
n3[u4] = h4;
}
return n3;
}, Ni = (e3, t3, n3) => {
var o4 = [];
return e3 = e3(o4, n3), o4.length && ((l3(), A4)[t3 >>> 2 >>> 0] = Ie4(o4)), e3;
}, Wi = {}, Nt3 = (e3) => {
var t3 = Wi[e3];
return t3 === void 0 ? Oe3(e3) : t3;
};
function ki(e3, t3, n3) {
var [o4, ...u4] = Ri(e3, t3 >>> 0);
t3 = o4.Xc.bind(o4);
var c4 = u4.map((E3) => E3.Wc.bind(E3));
e3--;
var h4 = { toValue: ge4 };
switch (e3 = c4.map((E3, I3) => {
var N4 = `argFromPtr${I3}`;
return h4[N4] = E3, `${N4}(args${I3 ? "+" + 8 * I3 : ""})`;
}), n3) {
case 0:
var b4 = "toValue(handle)";
break;
case 2:
b4 = "new (toValue(handle))";
break;
case 3:
b4 = "";
break;
case 1:
h4.getStringOrSymbol = Nt3, b4 = "toValue(handle)[getStringOrSymbol(methodName)]";
}
return b4 += `(${e3})`, o4.pe || (h4.toReturnWire = t3, h4.emval_returnValue = Ni, b4 = `return emval_returnValue(toReturnWire, destructorsRef, ${b4})`), b4 = `return function (handle, methodName, destructorsRef, args) {
${b4}
}`, n3 = new Function(Object.keys(h4), b4)(...Object.values(h4)), b4 = `methodCaller<(${u4.map((E3) => E3.name)}) => ${o4.name}>`, _i(Object.defineProperty(n3, "name", { value: b4 }));
}
function Fi2(e3, t3) {
return t3 >>>= 0, (e3 = ge4(e3 >>> 0)) == ge4(t3);
}
function Gi(e3) {
return (e3 >>>= 0) ? (e3 = Nt3(e3), Ie4(globalThis[e3])) : Ie4(globalThis);
}
function $i(e3) {
return e3 = Nt3(e3 >>> 0), Ie4(r3[e3]);
}
function zi(e3, t3) {
return t3 >>>= 0, e3 = ge4(e3 >>> 0), t3 = ge4(t3), Ie4(e3[t3]);
}
function Vi(e3) {
9 < (e3 >>>= 0) && (Je3[e3 + 1] += 1);
}
function Xn3(e3, t3, n3, o4, u4) {
return Ur3[e3 >>> 0](t3 >>> 0, n3 >>> 0, o4 >>> 0, u4 >>> 0);
}
function Hi(e3, t3, n3, o4, u4) {
return Xn3(e3 >>> 0, t3 >>> 0, n3 >>> 0, o4 >>> 0, u4 >>> 0);
}
function ji2() {
return Ie4([]);
}
function Yi2(e3) {
e3 = ge4(e3 >>> 0);
for (var t3 = Array(e3.length), n3 = 0; n3 < e3.length; n3++) t3[n3] = e3[n3];
return Ie4(t3);
}
function qi2(e3) {
return Ie4(Nt3(e3 >>> 0));
}
function Ji2() {
return Ie4({});
}
function Xi2(e3) {
for (var t3 = ge4(e3 >>>= 0); t3.length; ) {
var n3 = t3.pop();
t3.pop()(n3);
}
Ir3(e3);
}
function Zi2(e3, t3, n3) {
t3 >>>= 0, n3 >>>= 0, e3 = ge4(e3 >>> 0), t3 = ge4(t3), n3 = ge4(n3), e3[t3] = n3;
}
function Ki2(e3, t3) {
e3 = pe3(e3), t3 >>>= 0, e3 = new Date(1e3 * e3), (l3(), x3)[t3 >>> 2 >>> 0] = e3.getUTCSeconds(), (l3(), x3)[t3 + 4 >>> 2 >>> 0] = e3.getUTCMinutes(), (l3(), x3)[t3 + 8 >>> 2 >>> 0] = e3.getUTCHours(), (l3(), x3)[t3 + 12 >>> 2 >>> 0] = e3.getUTCDate(), (l3(), x3)[t3 + 16 >>> 2 >>> 0] = e3.getUTCMonth(), (l3(), x3)[t3 + 20 >>> 2 >>> 0] = e3.getUTCFullYear() - 1900, (l3(), x3)[t3 + 24 >>> 2 >>> 0] = e3.getUTCDay(), e3 = (e3.getTime() - Date.UTC(e3.getUTCFullYear(), 0, 1, 0, 0, 0, 0)) / 864e5 | 0, (l3(), x3)[t3 + 28 >>> 2 >>> 0] = e3;
}
var Zn3 = (e3) => e3 % 4 == 0 && (e3 % 100 != 0 || e3 % 400 == 0), Kn3 = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], Qn3 = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
function Qi2(e3, t3) {
e3 = pe3(e3), t3 >>>= 0, e3 = new Date(1e3 * e3), (l3(), x3)[t3 >>> 2 >>> 0] = e3.getSeconds(), (l3(), x3)[t3 + 4 >>> 2 >>> 0] = e3.getMinutes(), (l3(), x3)[t3 + 8 >>> 2 >>> 0] = e3.getHours(), (l3(), x3)[t3 + 12 >>> 2 >>> 0] = e3.getDate(), (l3(), x3)[t3 + 16 >>> 2 >>> 0] = e3.getMonth(), (l3(), x3)[t3 + 20 >>> 2 >>> 0] = e3.getFullYear() - 1900, (l3(), x3)[t3 + 24 >>> 2 >>> 0] = e3.getDay();
var n3 = (Zn3(e3.getFullYear()) ? Kn3 : Qn3)[e3.getMonth()] + e3.getDate() - 1 | 0;
(l3(), x3)[t3 + 28 >>> 2 >>> 0] = n3, (l3(), x3)[t3 + 36 >>> 2 >>> 0] = -60 * e3.getTimezoneOffset(), n3 = new Date(e3.getFullYear(), 6, 1).getTimezoneOffset();
var o4 = new Date(e3.getFullYear(), 0, 1).getTimezoneOffset();
e3 = 0 | (n3 != o4 && e3.getTimezoneOffset() == Math.min(o4, n3)), (l3(), x3)[t3 + 32 >>> 2 >>> 0] = e3;
}
function eu2(e3) {
e3 >>>= 0;
var t3 = new Date((l3(), x3)[e3 + 20 >>> 2 >>> 0] + 1900, (l3(), x3)[e3 + 16 >>> 2 >>> 0], (l3(), x3)[e3 + 12 >>> 2 >>> 0], (l3(), x3)[e3 + 8 >>> 2 >>> 0], (l3(), x3)[e3 + 4 >>> 2 >>> 0], (l3(), x3)[e3 >>> 2 >>> 0], 0), n3 = (l3(), x3)[e3 + 32 >>> 2 >>> 0], o4 = t3.getTimezoneOffset(), u4 = new Date(t3.getFullYear(), 6, 1).getTimezoneOffset(), c4 = new Date(t3.getFullYear(), 0, 1).getTimezoneOffset(), h4 = Math.min(c4, u4);
return 0 > n3 ? (l3(), x3)[e3 + 32 >>> 2 >>> 0] = +(u4 != c4 && h4 == o4) : 0 < n3 != (h4 == o4) && (u4 = Math.max(c4, u4), t3.setTime(t3.getTime() + 6e4 * ((0 < n3 ? h4 : u4) - o4))), (l3(), x3)[e3 + 24 >>> 2 >>> 0] = t3.getDay(), n3 = (Zn3(t3.getFullYear()) ? Kn3 : Qn3)[t3.getMonth()] + t3.getDate() - 1 | 0, (l3(), x3)[e3 + 28 >>> 2 >>> 0] = n3, (l3(), x3)[e3 >>> 2 >>> 0] = t3.getSeconds(), (l3(), x3)[e3 + 4 >>> 2 >>> 0] = t3.getMinutes(), (l3(), x3)[e3 + 8 >>> 2 >>> 0] = t3.getHours(), (l3(), x3)[e3 + 12 >>> 2 >>> 0] = t3.getDate(), (l3(), x3)[e3 + 16 >>> 2 >>> 0] = t3.getMonth(), (l3(), x3)[e3 + 20 >>> 2 >>> 0] = t3.getYear(), e3 = t3.getTime(), BigInt(isNaN(e3) ? -1 : e3 / 1e3);
}
function eo2(e3, t3, n3, o4, u4, c4, h4) {
return i4 ? H3(16, 1, e3, t3, n3, o4, u4, c4, h4) : -52;
}
function to2(e3, t3, n3, o4, u4, c4) {
if (i4) return H3(17, 1, e3, t3, n3, o4, u4, c4);
}
var vt3 = {}, tu2 = () => performance.timeOrigin + performance.now();
function ro2(e3, t3) {
if (i4) return H3(18, 1, e3, t3);
if (vt3[e3] && (clearTimeout(vt3[e3].id), delete vt3[e3]), !t3) return 0;
var n3 = setTimeout(() => {
delete vt3[e3], Dt3(() => Po2(e3, performance.timeOrigin + performance.now()));
}, t3);
return vt3[e3] = { id: n3, Ne: t3 }, 0;
}
function ru2(e3, t3, n3, o4) {
e3 >>>= 0, t3 >>>= 0, n3 >>>= 0, o4 >>>= 0;
var u4 = (/* @__PURE__ */ new Date()).getFullYear(), c4 = new Date(u4, 0, 1).getTimezoneOffset();
u4 = new Date(u4, 6, 1).getTimezoneOffset();
var h4 = Math.max(c4, u4);
(l3(), A4)[e3 >>> 2 >>> 0] = 60 * h4, (l3(), x3)[t3 >>> 2 >>> 0] = +(c4 != u4), e3 = (t3 = (b4) => {
var E3 = Math.abs(b4);
return `UTC${0 <= b4 ? "-" : "+"}${String(Math.floor(E3 / 60)).padStart(2, "0")}${String(E3 % 60).padStart(2, "0")}`;
})(c4), t3 = t3(u4), u4 < c4 ? (Pe3(e3, n3, 17), Pe3(t3, o4, 17)) : (Pe3(e3, o4, 17), Pe3(t3, n3, 17));
}
var nu2 = () => Date.now(), ou2 = 1;
function au2(e3, t3, n3) {
if (n3 >>>= 0, !(0 <= e3 && 3 >= e3)) return 28;
if (e3 === 0) e3 = Date.now();
else {
if (!ou2) return 52;
e3 = performance.timeOrigin + performance.now();
}
return e3 = Math.round(1e6 * e3), (l3(), le2)[n3 >>> 3 >>> 0] = BigInt(e3), 0;
}
var Cr3 = [], no2 = (e3, t3) => {
Cr3.length = 0;
for (var n3; n3 = (l3(), J4)[e3++ >>> 0]; ) {
var o4 = n3 != 105;
t3 += (o4 &= n3 != 112) && t3 % 8 ? 4 : 0, Cr3.push(n3 == 112 ? (l3(), A4)[t3 >>> 2 >>> 0] : n3 == 106 ? (l3(), le2)[t3 >>> 3 >>> 0] : n3 == 105 ? (l3(), x3)[t3 >>> 2 >>> 0] : (l3(), ae3)[t3 >>> 3 >>> 0]), t3 += o4 ? 8 : 4;
}
return Cr3;
};
function su2(e3, t3, n3) {
return e3 >>>= 0, t3 = no2(t3 >>> 0, n3 >>> 0), Yr3[e3](...t3);
}
function iu2(e3, t3, n3) {
return e3 >>>= 0, t3 = no2(t3 >>> 0, n3 >>> 0), Yr3[e3](...t3);
}
var uu2 = () => {
};
function fu2(e3, t3) {
return O3(ct2(e3 >>> 0, t3 >>> 0));
}
var cu2 = () => {
throw $4 += 1, "unwind";
};
function du2() {
return 4294901760;
}
var lu2 = () => 1, pu2 = () => navigator.hardwareConcurrency, Xe3 = {}, oo2 = (e3) => {
var t3 = _e2(e3) + 1, n3 = mt2(t3);
return n3 && Pe3(e3, n3, t3), n3;
}, Wt3 = (e3) => {
var t3;
return (t3 = /\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(e3)) ? +t3[1] : (t3 = /:(\d+):\d+(?:\)|$)/.exec(e3)) ? 2147483648 | +t3[1] : 0;
}, ao2 = (e3) => {
for (var t3 of e3) (e3 = Wt3(t3)) && (Xe3[e3] = t3);
};
function mu2() {
var e3 = Error().stack.toString().split(`
`);
return e3[0] == "Error" && e3.shift(), ao2(e3), Xe3.Xd = Wt3(e3[3]), Xe3.re = e3, Xe3.Xd;
}
function kt2(e3) {
if (!(e3 = Xe3[e3 >>> 0])) return 0;
var t3;
if (t3 = /^\s+at .*\.wasm\.(.*) \(.*\)$/.exec(e3)) e3 = t3[1];
else if (t3 = /^\s+at (.*) \(.*\)$/.exec(e3)) e3 = t3[1];
else {
if (!(t3 = /^(.+?)@/.exec(e3))) return 0;
e3 = t3[1];
}
return Te2(kt2.ae ?? 0), kt2.ae = oo2(e3), kt2.ae;
}
function hu2(e3) {
e3 >>>= 0;
var t3 = (l3(), J4).length;
if (e3 <= t3 || 4294901760 < e3) return false;
for (var n3 = 1; 4 >= n3; n3 *= 2) {
var o4 = t3 * (1 + 0.2 / n3);
o4 = Math.min(o4, e3 + 100663296);
e: {
o4 = (Math.min(4294901760, 65536 * Math.ceil(Math.max(e3, o4) / 65536)) - ke3.buffer.byteLength + 65535) / 65536 | 0;
try {
ke3.grow(o4), se4();
var u4 = 1;
break e;
} catch {
}
u4 = void 0;
}
if (u4) return true;
}
return false;
}
function yu2(e3, t3, n3) {
if (e3 >>>= 0, t3 >>>= 0, Xe3.Xd == e3) var o4 = Xe3.re;
else (o4 = Error().stack.toString().split(`
`))[0] == "Error" && o4.shift(), ao2(o4);
for (var u4 = 3; o4[u4] && Wt3(o4[u4]) != e3; ) ++u4;
for (e3 = 0; e3 < n3 && o4[e3 + u4]; ++e3) (l3(), x3)[t3 + 4 * e3 >>> 2 >>> 0] = Wt3(o4[e3 + u4]);
return e3;
}
var Me3 = (e3) => {
var t3 = _e2(e3) + 1, n3 = zt2(t3);
return Pe3(e3, n3, t3), n3;
}, Dr3 = [], me3 = (e3, t3) => {
Dr3[e3 >>>= 0] = t3;
}, Ue3 = [], Ft3 = [], lt2 = (e3, t3) => {
Ft3[e3] = new Promise((n3) => t3.finally(() => n3(e3)));
}, B3 = (e3) => {
if (e3) return Dr3[e3 >>> 0];
}, Gt2 = (e3, t3, n3) => {
(l3(), A4)[e3 >>> 2 >>> 0] = t3, (l3(), A4)[e3 + 4 >>> 2 >>> 0] = n3;
}, so2 = (e3) => {
var t3 = (l3(), A4)[e3 >>> 2 >>> 0];
return e3 = (l3(), A4)[e3 + 4 >>> 2 >>> 0], ct2(t3, e3);
}, Re3 = (e3) => {
var t3 = (l3(), A4)[e3 >>> 2 >>> 0];
return e3 = (l3(), A4)[e3 + 4 >>> 2 >>> 0], t3 ? ct2(t3, e3) : e3 === 0 ? "" : void 0;
}, bu = (e3) => {
var t3 = Re3(e3 + 4), n3 = (n3 = (l3(), A4)[e3 + 12 >>> 2 >>> 0]) ? B3(n3) : "auto";
if (e3 += 16) {
var o4 = B3((l3(), A4)[e3 + 4 >>> 2 >>> 0]), u4 = (l3(), A4)[e3 + 16 >>> 2 >>> 0], c4 = (l3(), A4)[e3 + 20 >>> 2 >>> 0];
if (u4) {
for (var h4 = {}, b4 = 0; b4 < u4; ++b4) {
var E3 = c4 + 24 * b4;
h4[so2(E3 + 4)] = (l3(), ae3)[E3 + 16 >>> 3 >>> 0];
}
u4 = h4;
} else u4 = void 0;
e3 = { module: o4, constants: u4, entryPoint: Re3(e3 + 8) };
} else e3 = void 0;
return { label: t3, layout: n3, compute: e3 };
}, io2 = (e3, t3) => {
function n3(u4, c4) {
u4 = e3[u4], (l3(), x3)[t3 + c4 >>> 2 >>> 0] = u4;
}
function o4(u4, c4) {
u4 = e3[u4], (l3(), le2)[t3 + c4 >>> 3 >>> 0] = BigInt(u4);
}
n3("maxTextureDimension1D", 4), n3("maxTextureDimension2D", 8), n3("maxTextureDimension3D", 12), n3("maxTextureArrayLayers", 16), n3("maxBindGroups", 20), n3("maxBindGroupsPlusVertexBuffers", 24), n3("maxBindingsPerBindGroup", 28), n3("maxDynamicUniformBuffersPerPipelineLayout", 32), n3("maxDynamicStorageBuffersPerPipelineLayout", 36), n3("maxSampledTexturesPerShaderStage", 40), n3("maxSamplersPerShaderStage", 44), n3("maxStorageBuffersPerShaderStage", 48), n3("maxStorageTexturesPerShaderStage", 52), n3("maxUniformBuffersPerShaderStage", 56), n3("minUniformBufferOffsetAlignment", 80), n3("minStorageBufferOffsetAlignment", 84), o4("maxUniformBufferBindingSize", 64), o4("maxStorageBufferBindingSize", 72), n3("maxVertexBuffers", 88), o4("maxBufferSize", 96), n3("maxVertexAttributes", 104), n3("maxVertexBufferArrayStride", 108), n3("maxInterStageShaderVariables", 112), n3("maxColorAttachments", 116), n3("maxColorAttachmentBytesPerSample", 120), n3("maxComputeWorkgroupStorageSize", 124), n3("maxComputeInvocationsPerWorkgroup", 128), n3("maxComputeWorkgroupSizeX", 132), n3("maxComputeWorkgroupSizeY", 136), n3("maxComputeWorkgroupSizeZ", 140), n3("maxComputeWorkgroupsPerDimension", 144), e3.Le !== void 0 && n3("maxImmediateSize", 148);
}, wu2 = [, "validation", "out-of-memory", "internal"], gu2 = [, "compatibility", "core"], uo2 = { 1: "core-features-and-limits", 2: "depth-clip-control", 3: "depth32float-stencil8", 4: "texture-compression-bc", 5: "texture-compression-bc-sliced-3d", 6: "texture-compression-etc2", 7: "texture-compression-astc", 8: "texture-compression-astc-sliced-3d", 9: "timestamp-query", 10: "indirect-first-instance", 11: "shader-f16", 12: "rg11b10ufloat-renderable", 13: "bgra8unorm-storage", 14: "float32-filterable", 15: "float32-blendable", 16: "clip-distances", 17: "dual-source-blending", 18: "subgroups", 19: "texture-formats-tier1", 20: "texture-formats-tier2", 21: "primitive-index", 327692: "chromium-experimental-unorm16-texture-formats", 327693: "chromium-experimental-snorm16-texture-formats", 327732: "chromium-experimental-multi-draw-indirect" }, Tu2 = [, "low-power", "high-performance"], vu2 = [, "occlusion", "timestamp"], Eu2 = { undefined: 1, unknown: 1, destroyed: 2 };
function Su2(e3, t3, n3, o4, u4, c4) {
t3 = pe3(t3), n3 = pe3(n3), o4 >>>= 0, u4 >>>= 0, c4 >>>= 0;
var h4 = B3(e3 >>> 0);
if (e3 = {}, c4) {
var b4 = (l3(), A4)[c4 + 12 >>> 2 >>> 0];
if (b4) {
var E3 = (l3(), A4)[c4 + 16 >>> 2 >>> 0];
e3.requiredFeatures = Array.from((l3(), A4).subarray(E3 >>> 2 >>> 0, E3 + 4 * b4 >>> 2 >>> 0), (L3) => uo2[L3]);
}
var I3 = (l3(), A4)[c4 + 20 >>> 2 >>> 0];
if (I3) {
let L3 = function(ve2, ie4, Ze2 = false) {
ie4 = I3 + ie4, (ie4 = (l3(), A4)[ie4 >>> 2 >>> 0]) == 4294967295 || Ze2 && ie4 == 0 || (N4[ve2] = ie4);
}, fe4 = function(ve2, ie4) {
ie4 = I3 + ie4;
var Ze2 = (l3(), A4)[ie4 >>> 2 >>> 0], Zf2 = (l3(), A4)[ie4 + 4 >>> 2 >>> 0];
Ze2 == 4294967295 && Zf2 == 4294967295 || (N4[ve2] = 4294967296 * (l3(), A4)[ie4 + 4 >>> 2 >>> 0] + (l3(), A4)[ie4 >>> 2 >>> 0]);
};
var W3 = L3, X3 = fe4, N4 = {};
L3("maxTextureDimension1D", 4), L3("maxTextureDimension2D", 8), L3("maxTextureDimension3D", 12), L3("maxTextureArrayLayers", 16), L3("maxBindGroups", 20), L3("maxBindGroupsPlusVertexBuffers", 24), L3("maxDynamicUniformBuffersPerPipelineLayout", 32), L3("maxDynamicStorageBuffersPerPipelineLayout", 36), L3("maxSampledTexturesPerShaderStage", 40), L3("maxSamplersPerShaderStage", 44), L3("maxStorageBuffersPerShaderStage", 48), L3("maxStorageTexturesPerShaderStage", 52), L3("maxUniformBuffersPerShaderStage", 56), L3("minUniformBufferOffsetAlignment", 80), L3("minStorageBufferOffsetAlignment", 84), fe4("maxUniformBufferBindingSize", 64), fe4("maxStorageBufferBindingSize", 72), L3("maxVertexBuffers", 88), fe4("maxBufferSize", 96), L3("maxVertexAttributes", 104), L3("maxVertexBufferArrayStride", 108), L3("maxInterStageShaderVariables", 112), L3("maxColorAttachments", 116), L3("maxColorAttachmentBytesPerSample", 120), L3("maxComputeWorkgroupStorageSize", 124), L3("maxComputeInvocationsPerWorkgroup", 128), L3("maxComputeWorkgroupSizeX", 132), L3("maxComputeWorkgroupSizeY", 136), L3("maxComputeWorkgroupSizeZ", 140), L3("maxComputeWorkgroupsPerDimension", 144), L3("maxImmediateSize", 148, true), e3.requiredLimits = N4;
}
(b4 = (l3(), A4)[c4 + 24 >>> 2 >>> 0]) && (b4 = { label: Re3(b4 + 4) }, e3.defaultQueue = b4), e3.label = Re3(c4 + 4);
}
$4 += 1, lt2(t3, h4.requestDevice(e3).then((L3) => {
--$4, me3(u4, L3.queue), me3(o4, L3), n3 && ($4 += 1, lt2(n3, L3.lost.then((fe4) => {
--$4, L3.onuncapturederror = () => {
};
var ve2 = D3(), ie4 = Me3(fe4.message);
Wr3(n3, Eu2[fe4.reason], ie4), C3(ve2);
}))), L3.onuncapturederror = (fe4) => {
var ve2 = 5;
fe4.error instanceof GPUValidationError ? ve2 = 2 : fe4.error instanceof GPUOutOfMemoryError ? ve2 = 3 : fe4.error instanceof GPUInternalError && (ve2 = 4);
var ie4 = D3();
fe4 = Me3(fe4.error.message), Mo(o4, ve2, fe4), C3(ie4);
}, "adapterInfo" in L3 || (L3.adapterInfo = h4.info), Gr3(t3, 1, o4, 0);
}, (L3) => {
--$4;
var fe4 = D3();
L3 = Me3(L3.message), Gr3(t3, 3, o4, L3), n3 && Wr3(n3, 4, L3), C3(fe4);
}));
}
function Au2(e3) {
var t3 = B3(e3 >>>= 0), n3 = Ue3[e3];
if (n3) {
f