(function(Object){ typeof globalThis !== "object" && (this ? get() : (Object.defineProperty (Object.prototype, "_T_", {configurable: true, get: get}), _T_)); function get(){ var global = this || self; global.globalThis = global; delete Object.prototype._T_; } } (Object)); (js=> async args=>{ "use strict"; const {link, src, generated, disable_effects} = args, isNode = globalThis.process?.versions?.node, math = {cos: Math.cos, sin: Math.sin, tan: Math.tan, acos: Math.acos, asin: Math.asin, atan: Math.atan, cosh: Math.cosh, sinh: Math.sinh, tanh: Math.tanh, acosh: Math.acosh, asinh: Math.asinh, atanh: Math.atanh, cbrt: Math.cbrt, exp: Math.exp, expm1: Math.expm1, log: Math.log, log1p: Math.log1p, log2: Math.log2, log10: Math.log10, atan2: Math.atan2, hypot: Math.hypot, pow: Math.pow, fmod: (x, y)=>x % y}, typed_arrays = [Float32Array, Float64Array, Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Int32Array, Int32Array, Int32Array, Float32Array, Float64Array, Uint8Array, Uint16Array, Uint8ClampedArray], fs = isNode && require("node:fs"), fs_cst = fs?.constants, access_flags = fs ? [fs_cst.R_OK, fs_cst.W_OK, fs_cst.X_OK, fs_cst.F_OK] : [], open_flags = fs ? [fs_cst.O_RDONLY, fs_cst.O_WRONLY, fs_cst.O_RDWR, fs_cst.O_APPEND, fs_cst.O_CREAT, fs_cst.O_TRUNC, fs_cst.O_EXCL, fs_cst.O_NONBLOCK, fs_cst.O_NOCTTY, fs_cst.O_DSYNC, fs_cst.O_SYNC] : []; var out_channels = {map: new WeakMap(), set: new Set(), finalization: new FinalizationRegistry(ref=>out_channels.set.delete(ref))}; function register_channel(ch){ const ref = new WeakRef(ch); out_channels.map.set(ch, ref); out_channels.set.add(ref); out_channels.finalization.register(ch, ref, ch); } function unregister_channel(ch){ const ref = out_channels.map.get(ch); if(ref){ out_channels.map.delete(ch); out_channels.set.delete(ref); out_channels.finalization.unregister(ch); } } function channel_list(){ return [...out_channels.set].map(ref=>ref.deref()).filter(ch=>ch); } var start_fiber; function make_suspending(f){ return WebAssembly?.Suspending ? new WebAssembly.Suspending(f) : f; } function make_promising(f){ return ! disable_effects && WebAssembly?.promising && f ? WebAssembly.promising(f) : f; } const decoder = new TextDecoder("utf-8", {ignoreBOM: 1}), encoder = new TextEncoder(); function hash_int(h, d){ d = Math.imul(d, 0xcc9e2d51 | 0); d = d << 15 | d >>> 17; d = Math.imul(d, 0x1b873593); h ^= d; h = h << 13 | h >>> 19; return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0; } function hash_string(h, s){ for(var i = 0; i < s.length; i++) h = hash_int(h, s.charCodeAt(i)); return h ^ s.length; } function getenv(n){ if(isNode && globalThis.process.env[n] !== undefined) return globalThis.process.env[n]; return globalThis.jsoo_env?.[n]; } let record_backtrace_flag = 0; for(const l of getenv("OCAMLRUNPARAM")?.split(",") || []){ if(l === "b") record_backtrace_flag = 1; if(l.startsWith("b=")) record_backtrace_flag = + l.slice(2) ? 1 : 0; } function alloc_stat(s, large){ var kind; if(s.isFile()) kind = 0; else if(s.isDirectory()) kind = 1; else if(s.isCharacterDevice()) kind = 2; else if(s.isBlockDevice()) kind = 3; else if(s.isSymbolicLink()) kind = 4; else if(s.isFIFO()) kind = 5; else if(s.isSocket()) kind = 6; return caml_alloc_stat (large, s.dev, s.ino | 0, kind, s.mode, s.nlink, s.uid, s.gid, s.rdev, BigInt(s.size), s.atimeMs / 1000, s.mtimeMs / 1000, s.ctimeMs / 1000); } const on_windows = isNode && globalThis.process.platform === "win32", call = Function.prototype.call, DV = DataView.prototype, bindings = {jstag: WebAssembly.JSTag || new WebAssembly.Tag({parameters: ["externref"], results: []}), identity: x=>x, from_bool: x=>! ! x, get: (x, y)=>x[y], set: (x, y, z)=>x[y] = z, delete: (x, y)=>delete x[y], instanceof: (x, y)=>x instanceof y, typeof: x=>typeof x, equals: (x, y)=>x == y, strict_equals: (x, y)=>x === y, fun_call: (f, o, args)=>f.apply(o, args), meth_call: (o, f, args)=>o[f].apply(o, args), new_array: n=>new Array(n), new_obj: ()=>({}), new: (c, args)=>new c(...args), global_this: globalThis, iter_props: (o, f)=>{for(var nm in o) if(Object.hasOwn(o, nm)) f(nm);}, array_length: a=>a.length, array_get: (a, i)=>a[i], array_set: (a, i, v)=>a[i] = v, read_string: l=>decoder.decode(new Uint8Array(buffer, 0, l)), read_string_stream: (l, stream)=> decoder.decode(new Uint8Array(buffer, 0, l), {stream: stream}), append_string: (s1, s2)=>s1 + s2, write_string: s=>{ var start = 0, len = s.length; for(;;){ const {read, written} = encoder.encodeInto(s.slice(start), out_buffer); len -= read; if(! len) return written; caml_extract_bytes(written); start += read; }}, ta_create: (k, sz)=>new typed_arrays[k](sz), ta_normalize: a=> a instanceof Uint32Array ? new Int32Array(a.buffer, a.byteOffset, a.length) : a, ta_kind: a=>typed_arrays.findIndex(c=>a instanceof c), ta_length: a=>a.length, ta_get_i32: (a, i)=>a[i], ta_fill: (a, v)=>a.fill(v), ta_blit: (s, d)=>d.set(s), ta_subarray: (a, i, j)=>a.subarray(i, j), ta_set: (a, b, i)=>a.set(b, i), ta_new: len=>new Uint8Array(len), ta_copy: (ta, t, s, e)=>ta.copyWithin(t, s, e), ta_bytes: a=> new Uint8Array (a.buffer, a.byteOffset, a.length * a.BYTES_PER_ELEMENT), ta_blit_from_bytes: (s, p1, a, p2, l)=>{ for(let i = 0; i < l; i++) a[p2 + i] = bytes_get(s, p1 + i);}, ta_blit_to_bytes: (a, p1, s, p2, l)=>{ for(let i = 0; i < l; i++) bytes_set(s, p2 + i, a[p1 + i]);}, dv_make: a=>new DataView(a.buffer, a.byteOffset, a.byteLength), dv_get_f64: call.bind(DV.getFloat64), dv_get_f32: call.bind(DV.getFloat32), dv_get_i64: call.bind(DV.getBigInt64), dv_get_i32: call.bind(DV.getInt32), dv_get_i16: call.bind(DV.getInt16), dv_get_ui16: call.bind(DV.getUint16), dv_get_i8: call.bind(DV.getInt8), dv_get_ui8: call.bind(DV.getUint8), dv_set_f64: call.bind(DV.setFloat64), dv_set_f32: call.bind(DV.setFloat32), dv_set_i64: call.bind(DV.setBigInt64), dv_set_i32: call.bind(DV.setInt32), dv_set_i16: call.bind(DV.setInt16), dv_set_i8: call.bind(DV.setInt8), littleEndian: new Uint8Array(new Uint32Array([1]).buffer)[0], wrap_callback: f=> function(...args){ if(args.length === 0) args = [undefined]; return caml_callback(f, args.length, args, 1); }, wrap_callback_args: f=>function(...args){return caml_callback(f, 1, [args], 0);}, wrap_callback_strict: (arity, f)=> function(...args){ args.length = arity; return caml_callback(f, arity, args, 0); }, wrap_callback_unsafe: f=>function(...args){return caml_callback(f, args.length, args, 2);}, wrap_meth_callback: f=> function(...args){ args.unshift(this); return caml_callback(f, args.length, args, 1); }, wrap_meth_callback_args: f=>function(...args){return caml_callback(f, 2, [this, args], 0);}, wrap_meth_callback_strict: (arity, f)=> function(...args){ args.length = arity; args.unshift(this); return caml_callback(f, args.length, args, 0); }, wrap_meth_callback_unsafe: f=> function(...args){ args.unshift(this); return caml_callback(f, args.length, args, 2); }, wrap_fun_arguments: f=>function(...args){return f(args);}, format_float: (prec, conversion, pad, x)=>{ function toFixed(x, dp){ if(Math.abs(x) < 1.0) return x.toFixed(dp); else{ var e = Number.parseInt(x.toString().split("+")[1]); if(e > 20){ e -= 20; x /= Math.pow(10, e); x += new Array(e + 1).join("0"); if(dp > 0) x = x + "." + new Array(dp + 1).join("0"); return x; } else return x.toFixed(dp); } } switch(conversion){ case 0: var s = x.toExponential(prec), i = s.length; if(s.charAt(i - 3) === "e") s = s.slice(0, i - 1) + "0" + s.slice(i - 1); break; case 1: s = toFixed(x, prec); break; case 2: prec = prec ? prec : 1; s = x.toExponential(prec - 1); var j = s.indexOf("e"), exp = + s.slice(j + 1); if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec){ var i = j - 1; while(s.charAt(i) === "0") i--; if(s.charAt(i) === ".") i--; s = s.slice(0, i + 1) + s.slice(j); i = s.length; if(s.charAt(i - 3) === "e") s = s.slice(0, i - 1) + "0" + s.slice(i - 1); break; } else{ var p = prec; if(exp < 0){ p -= exp + 1; s = x.toFixed(p); } else while(s = x.toFixed(p), s.length > prec + 1) p--; if(p){ var i = s.length - 1; while(s.charAt(i) === "0") i--; if(s.charAt(i) === ".") i--; s = s.slice(0, i + 1); } } break; } return pad ? " " + s : s;}, gettimeofday: ()=>new Date().getTime() / 1000, times: ()=>{ if(globalThis.process?.cpuUsage){ var t = globalThis.process.cpuUsage(); return caml_alloc_times(t.user / 1e6, t.system / 1e6); } else{ var t = performance.now() / 1000; return caml_alloc_times(t, 0); }}, gmtime: t=>{ var d = new Date(t * 1000), d_num = d.getTime(), januaryfirst = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)).getTime(), doy = Math.floor((d_num - januaryfirst) / 86400000); return caml_alloc_tm (d.getUTCSeconds(), d.getUTCMinutes(), d.getUTCHours(), d.getUTCDate(), d.getUTCMonth(), d.getUTCFullYear() - 1900, d.getUTCDay(), doy, false);}, localtime: t=>{ var d = new Date(t * 1000), d_num = d.getTime(), januaryfirst = new Date(d.getFullYear(), 0, 1).getTime(), doy = Math.floor((d_num - januaryfirst) / 86400000), jan = new Date(d.getFullYear(), 0, 1), jul = new Date(d.getFullYear(), 6, 1), stdTimezoneOffset = Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); return caml_alloc_tm (d.getSeconds(), d.getMinutes(), d.getHours(), d.getDate(), d.getMonth(), d.getFullYear() - 1900, d.getDay(), doy, d.getTimezoneOffset() < stdTimezoneOffset);}, mktime: (year, month, day, h, m, s)=> new Date(year, month, day, h, m, s).getTime(), random_seed: ()=>crypto.getRandomValues(new Int32Array(12)), access: (p, flags)=> fs.accessSync (p, access_flags.reduce((f, v, i)=>flags & 1 << i ? f | v : f, 0)), open: (p, flags, perm)=> fs.openSync (p, open_flags.reduce((f, v, i)=>flags & 1 << i ? f | v : f, 0), perm), close: fd=>fs.closeSync(fd), write: (fd, b, o, l, p)=> fs ? fs.writeSync(fd, b, o, l, p === null ? p : Number(p)) : (console [fd === 2 ? "error" : "log"] (typeof b === "string" ? b : decoder.decode(b.slice(o, o + l))), l), read: (fd, b, o, l, p)=>fs.readSync(fd, b, o, l, p), fsync: fd=>fs.fsyncSync(fd), file_size: fd=>fs.fstatSync(fd, {bigint: true}).size, register_channel: register_channel, unregister_channel: unregister_channel, channel_list: channel_list, exit: n=>isNode && globalThis.process.exit(n), argv: ()=>isNode ? globalThis.process.argv.slice(1) : ["a.out"], on_windows: + on_windows, getenv: getenv, backtrace_status: ()=>record_backtrace_flag, record_backtrace: b=>record_backtrace_flag = b, system: c=>{ var res = require("node:child_process").spawnSync (c, {shell: true, stdio: "inherit"}); if(res.error) throw res.error; return res.signal ? 255 : res.status;}, isatty: fd=>+ require("node:tty").isatty(fd), time: ()=>performance.now(), getcwd: ()=>isNode ? globalThis.process.cwd() : "/static", chdir: x=>globalThis.process.chdir(x), mkdir: (p, m)=>fs.mkdirSync(p, m), rmdir: p=>fs.rmdirSync(p), link: (d, s)=>fs.linkSync(d, s), symlink: (t, p, kind)=>fs.symlinkSync(t, p, [null, "file", "dir"][kind]), readlink: p=>fs.readlinkSync(p), unlink: p=>fs.unlinkSync(p), read_dir: p=>fs.readdirSync(p), opendir: p=>fs.opendirSync(p), readdir: d=>{var n = d.readSync()?.name; return n === undefined ? null : n;}, closedir: d=>d.closeSync(), stat: (p, l)=>alloc_stat(fs.statSync(p), l), lstat: (p, l)=>alloc_stat(fs.lstatSync(p), l), fstat: (fd, l)=>alloc_stat(fs.fstatSync(fd), l), chmod: (p, perms)=>fs.chmodSync(p, perms), fchmod: (p, perms)=>fs.fchmodSync(p, perms), file_exists: p=>+ fs.existsSync(p), is_directory: p=>+ fs.lstatSync(p).isDirectory(), is_file: p=>+ fs.lstatSync(p).isFile(), utimes: (p, a, m)=>fs.utimesSync(p, a, m), truncate: (p, l)=>fs.truncateSync(p, l), ftruncate: (fd, l)=>fs.ftruncateSync(fd, l), rename: (o, n)=>{ var n_stat; if (on_windows && (n_stat = fs.statSync(n, {throwIfNoEntry: false})) && fs.statSync(o, {throwIfNoEntry: false})?.isDirectory()) if(n_stat.isDirectory()){ if(! n.startsWith(o)) try{fs.rmdirSync(n);}catch{} } else{ var e = new Error(`ENOTDIR: not a directory, rename '${o}' -> '${n}'`); throw Object.assign (e, {errno: - 20, code: "ENOTDIR", syscall: "rename", path: n}); } fs.renameSync(o, n);}, tmpdir: ()=>require("node:os").tmpdir(), start_fiber: x=>start_fiber(x), suspend_fiber: make_suspending((f, env)=>new Promise(k=>f(k, env))), resume_fiber: (k, v)=>k(v), weak_new: v=>new WeakRef(v), weak_deref: w=>{var v = w.deref(); return v === undefined ? null : v;}, weak_map_new: ()=>new WeakMap(), map_new: ()=>new Map(), map_get: (m, x)=>{var v = m.get(x); return v === undefined ? null : v;}, map_set: (m, x, v)=>m.set(x, v), map_delete: (m, x)=>m.delete(x), hash_string: hash_string, log: x=>console.log(x)}, string_ops = {test: v=>+ (typeof v === "string"), compare: (s1, s2)=>s1 < s2 ? - 1 : + (s1 > s2), decodeStringFromUTF8Array: ()=>"", encodeStringToUTF8Array: ()=>0, fromCharCodeArray: ()=>""}, imports = Object.assign ({Math: math, bindings: bindings, js: js, "wasm:js-string": string_ops, "wasm:text-decoder": string_ops, "wasm:text-encoder": string_ops, str: new globalThis.Proxy({}, {get(_, prop){return prop;}}), env: {}}, generated), options = {builtins: ["js-string", "text-decoder", "text-encoder"], importedStringConstants: "str"}; function loadRelative(src){ const path = require("node:path"), f = path.join(path.dirname(require.main.filename), src); return require("node:fs/promises").readFile(f); } const fetchBase = globalThis?.document?.currentScript?.src; function fetchRelative(src){ const url = fetchBase ? new URL(src, fetchBase) : src; return fetch(url); } const loadCode = isNode ? loadRelative : fetchRelative; async function instantiateModule(code){ return isNode ? WebAssembly.instantiate(await code, imports, options) : WebAssembly.instantiateStreaming(code, imports, options); } async function instantiateFromDir(){ imports.OCaml = {}; const deps = []; async function loadModule(module, isRuntime){ const sync = module[1].constructor !== Array; async function instantiate(){ const code = loadCode(src + "/" + module[0] + ".wasm"); await Promise.all(sync ? deps : module[1].map(i=>deps[i])); const wasmModule = await instantiateModule(code); Object.assign (isRuntime ? imports.env : imports.OCaml, wasmModule.instance.exports); } const promise = instantiate(); deps.push(promise); return promise; } async function loadModules(lst){ for(const module of lst) await loadModule(module); } await loadModule(link[0], 1); if(link.length > 1){ await loadModule(link[1]); const workers = new Array(20).fill(link.slice(2).values()).map(loadModules); await Promise.all(workers); } return {instance: {exports: Object.assign(imports.env, imports.OCaml)}}; } const wasmModule = await instantiateFromDir(); var {caml_callback, caml_alloc_times, caml_alloc_tm, caml_alloc_stat, caml_start_fiber, caml_handle_uncaught_exception, caml_buffer, caml_extract_bytes, bytes_get, bytes_set, _initialize} = wasmModule.instance.exports, buffer = caml_buffer?.buffer, out_buffer = buffer && new Uint8Array(buffer, 0, buffer.length); start_fiber = make_promising(caml_start_fiber); var _initialize = make_promising(_initialize); if(globalThis.process?.on) globalThis.process.on ("uncaughtException", (err, _origin)=>caml_handle_uncaught_exception(err)); else if(globalThis.addEventListener) globalThis.addEventListener ("error", event=>event.error && caml_handle_uncaught_exception(event.error)); await _initialize();}) (function(globalThis){ "use strict"; var blake2b = function(){ function ADD64AA(v, a, b){ const o0 = v[a] + v[b]; let o1 = v[a + 1] + v[b + 1]; if(o0 >= 0x100000000) o1++; v[a] = o0; v[a + 1] = o1; } function ADD64AC(v, a, b0, b1){ let o0 = v[a] + b0; if(b0 < 0) o0 += 0x100000000; let o1 = v[a + 1] + b1; if(o0 >= 0x100000000) o1++; v[a] = o0; v[a + 1] = o1; } function B2B_GET32(arr, i){ return arr[i] ^ arr[i + 1] << 8 ^ arr[i + 2] << 16 ^ arr[i + 3] << 24; } function B2B_G(a, b, c, d, ix, iy){ const x0 = m[ix], x1 = m[ix + 1], y0 = m[iy], y1 = m[iy + 1]; ADD64AA(v, a, b); ADD64AC(v, a, x0, x1); let xor0 = v[d] ^ v[a], xor1 = v[d + 1] ^ v[a + 1]; v[d] = xor1; v[d + 1] = xor0; ADD64AA(v, c, d); xor0 = v[b] ^ v[c]; xor1 = v[b + 1] ^ v[c + 1]; v[b] = xor0 >>> 24 ^ xor1 << 8; v[b + 1] = xor1 >>> 24 ^ xor0 << 8; ADD64AA(v, a, b); ADD64AC(v, a, y0, y1); xor0 = v[d] ^ v[a]; xor1 = v[d + 1] ^ v[a + 1]; v[d] = xor0 >>> 16 ^ xor1 << 16; v[d + 1] = xor1 >>> 16 ^ xor0 << 16; ADD64AA(v, c, d); xor0 = v[b] ^ v[c]; xor1 = v[b + 1] ^ v[c + 1]; v[b] = xor1 >>> 31 ^ xor0 << 1; v[b + 1] = xor0 >>> 31 ^ xor1 << 1; } const BLAKE2B_IV32 = new Uint32Array ([0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19]), SIGMA8 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3, 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4, 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8, 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13, 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9, 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5, 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3], SIGMA82 = new Uint8Array(SIGMA8.map(function(x){return x * 2;})), v = new Uint32Array(32), m = new Uint32Array(32); function blake2bCompress(ctx, last){ let i = 0; for(i = 0; i < 16; i++){ v[i] = ctx.h[i]; v[i + 16] = BLAKE2B_IV32[i]; } v[24] = v[24] ^ ctx.t; v[25] = v[25] ^ ctx.t / 0x100000000; if(last){v[28] = ~ v[28]; v[29] = ~ v[29];} for(i = 0; i < 32; i++) m[i] = B2B_GET32(ctx.b, 4 * i); for(i = 0; i < 12; i++){ B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1]); B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3]); B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5]); B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7]); B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9]); B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11]); B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13]); B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15]); } for(i = 0; i < 16; i++) ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]; } const parameterBlock = new Uint8Array ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); function blake2bInit(outlen, key){ if(outlen === 0 || outlen > 64) throw new Error("Illegal output length, expected 0 < length <= 64"); if(key.length > 64) throw new Error ("Illegal key, expected Uint8Array with 0 < length <= 64"); const ctx = {b: new Uint8Array(128), h: new Uint32Array(16), t: 0, c: 0, outlen: outlen}; parameterBlock.fill(0); parameterBlock[0] = outlen; parameterBlock[1] = key.length; parameterBlock[2] = 1; parameterBlock[3] = 1; for(let i = 0; i < 16; i++) ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4); if(key.length > 0){blake2bUpdate(ctx, key); ctx.c = 128;} return ctx; } function blake2bUpdate(ctx, input){ for(let i = 0; i < input.length; i++){ if(ctx.c === 128){ ctx.t += ctx.c; blake2bCompress(ctx, false); ctx.c = 0; } ctx.b[ctx.c++] = input[i]; } } function blake2bFinal(ctx){ ctx.t += ctx.c; while(ctx.c < 128) ctx.b[ctx.c++] = 0; blake2bCompress(ctx, true); const out = new Uint8Array(ctx.outlen); for(let i = 0; i < ctx.outlen; i++) out[i] = ctx.h[i >> 2] >> 8 * (i & 3); return out; } return {Init: blake2bInit, Update: blake2bUpdate, Final: blake2bFinal}; } (); function caml_ml_string_length(s){return s.length;} function caml_string_unsafe_get(s, i){return s.charCodeAt(i);} function caml_uint8_array_of_string(s){ var l = caml_ml_string_length(s), a = new Uint8Array(l), i = 0; for(; i < l; i++) a[i] = caml_string_unsafe_get(s, i); return a; } function caml_blake2_create(hashlen, key){ key = caml_uint8_array_of_string(key); if(key.length > 64) key.subarray(0, 64); return blake2b.Init(hashlen, key); } function caml_string_of_jsbytes(x){return x;} function blake2_js_for_wasm_create(hashlen, key){ const key_jsoo_string = caml_string_of_jsbytes(key); return caml_blake2_create(hashlen, key_jsoo_string); } function caml_sub_uint8_array_to_jsbytes(a, i, len){ var f = String.fromCharCode; if(i === 0 && len <= 4096 && len === a.length) return f.apply(null, a); var s = ""; for(; 0 < len; i += 1024, len -= 1024) s += f.apply(null, a.subarray(i, i + Math.min(len, 1024))); return s; } function caml_string_of_uint8_array(a){ return caml_sub_uint8_array_to_jsbytes(a, 0, a.length); } function caml_blake2_final(ctx, _hashlen){ var r = blake2b.Final(ctx); return caml_string_of_uint8_array(r); } function caml_jsbytes_of_string(x){return x;} function blake2_js_for_wasm_final(ctx, hashlen){ return caml_jsbytes_of_string(caml_blake2_final(ctx, hashlen)); } function caml_blake2_update(ctx, buf, ofs, len){ var input = caml_uint8_array_of_string(buf); input = input.subarray(ofs, ofs + len); blake2b.Update(ctx, input); return 0; } function blake2_js_for_wasm_update(ctx, buf, ofs, len){ const buf_jsoo_string = caml_string_of_jsbytes(buf); return caml_blake2_update(ctx, buf_jsoo_string, ofs, len); } function caml_js_html_entities(s){ var entity = /^&#?[0-9a-zA-Z]+;$/; if(s.match(entity)){ var str, temp = document.createElement("p"); temp.innerHTML = s; str = temp.textContent || temp.innerText; temp = null; return str; } else return null; } var caml_js_regexps = {amp: /&/g, lt: /= 0){ const code = unix_error[errno]; return util.getSystemErrorMap().entries().find(x=>x[1][0] === code)[1] [1]; } else return util.getSystemErrorMessage(errno); } var zstd_decompress = function(){ var ab = ArrayBuffer, u8 = Uint8Array, u16 = Uint16Array, i16 = Int16Array, i32 = Int32Array; function slc(v, s, e){ if(u8.prototype.slice) return u8.prototype.slice.call(v, s, e); if(s == null || s < 0) s = 0; if(e == null || e > v.length) e = v.length; var n = new u8(e - s); n.set(v.subarray(s, e)); return n; } function fill(v, n, s, e){ if(u8.prototype.fill) return u8.prototype.fill.call(v, n, s, e); if(s == null || s < 0) s = 0; if(e == null || e > v.length) e = v.length; for(; s < e; ++s) v[s] = n; return v; } function cpw(v, t, s, e){ if(u8.prototype.copyWithin) return u8.prototype.copyWithin.call(v, t, s, e); if(s == null || s < 0) s = 0; if(e == null || e > v.length) e = v.length; while(s < e) v[t++] = v[s++]; } var ec = ["invalid zstd data", "window size too large (>2046MB)", "invalid block type", "FSE accuracy too high", "match distance too far back", "unexpected EOF"]; function err(ind, msg, nt){ var e = new Error(msg || ec[ind]); e.code = ind; if(! nt) throw e; return e; } function rb(d, b, n){ var i = 0, o = 0; for(; i < n; ++i) o |= d[b++] << (i << 3); return o; } function b4(d, b){ return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; } function rzfh(dat, w){ var n3 = dat[0] | dat[1] << 8 | dat[2] << 16; if(n3 === 0x2fb528 && dat[3] === 253){ var flg = dat[4], ss = flg >> 5 & 1, cc = flg >> 2 & 1, df = flg & 3, fcf = flg >> 6; if(flg & 8) err(0); var bt = 6 - ss, db = df === 3 ? 4 : df, di = rb(dat, bt, db); bt += db; var fsb = fcf ? 1 << fcf : ss, fss = rb(dat, bt, fsb) + (fcf === 1 && 256), ws = fss; if(! ss){ var wb = 1 << 10 + (dat[5] >> 3); ws = wb + (wb >> 3) * (dat[5] & 7); } if(ws > 2145386496) err(1); var buf = new u8((w === 1 ? fss || ws : w ? 0 : ws) + 12); buf[0] = 1, buf[4] = 4, buf[8] = 8; return {b: bt + fsb, y: 0, l: 0, d: di, w: w && w !== 1 ? w : buf.subarray(12), e: ws, o: new i32(buf.buffer, 0, 3), u: fss, c: cc, m: Math.min(131072, ws)}; } else if((n3 >> 4 | dat[3] << 20) === 0x184d2a5) return b4(dat, 4) + 8; err(0); } function msb(val){ var bits = 0; for(; 1 << bits <= val; ++bits) ; return bits - 1; } function rfse(dat, bt, mal){ var tpos = (bt << 3) + 4, al = (dat[bt] & 15) + 5; if(al > mal) err(3); var sz = 1 << al, probs = sz, sym = - 1, re = - 1, i = - 1, ht = sz, buf = new ab(512 + (sz << 2)), freq = new i16(buf, 0, 256), dstate = new u16(buf, 0, 256), nstate = new u16(buf, 512, sz), bb1 = 512 + (sz << 1), syms = new u8(buf, bb1, sz), nbits = new u8(buf, bb1 + sz); while(sym < 255 && probs > 0){ var bits = msb(probs + 1), cbt = tpos >> 3, msk = (1 << bits + 1) - 1, val = (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (tpos & 7) & msk, msk1fb = (1 << bits) - 1, msv = msk - probs - 1, sval = val & msk1fb; if(sval < msv) tpos += bits, val = sval; else{tpos += bits + 1; if(val > msk1fb) val -= msv;} freq[++sym] = --val; if(val === - 1){probs += val; syms[--ht] = sym;} else probs -= val; if(! val) do{ var rbt = tpos >> 3; re = (dat[rbt] | dat[rbt + 1] << 8) >> (tpos & 7) & 3; tpos += 2; sym += re; } while (re === 3); } if(sym > 255 || probs) err(0); var sympos = 0, sstep = (sz >> 1) + (sz >> 3) + 3, smask = sz - 1; for(var s = 0; s <= sym; ++s){ var sf = freq[s]; if(sf < 1){dstate[s] = - sf; continue;} for(i = 0; i < sf; ++i){ syms[sympos] = s; do sympos = sympos + sstep & smask;while(sympos >= ht); } } if(sympos) err(0); for(i = 0; i < sz; ++i){ var ns = dstate[syms[i]]++, nb = nbits[i] = al - msb(ns); nstate[i] = (ns << nb) - sz; } return [tpos + 7 >> 3, {b: al, s: syms, n: nbits, t: nstate}]; } function rhu(dat, bt){ var i = 0, wc = - 1, buf = new u8(292), hb = dat[bt], hw = buf.subarray(0, 256), rc = buf.subarray(256, 268), ri = new u16(buf.buffer, 268); if(hb < 128){ var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1]; bt += hb; var epos = ebt << 3, lb = dat[bt]; if(! lb) err(0); var st1 = 0, st2 = 0, btr1 = fdt.b, btr2 = btr1, fpos = (++bt << 3) - 8 + msb(lb); for(;;){ fpos -= btr1; if(fpos < epos) break; var cbt = fpos >> 3; st1 += (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr1) - 1; hw[++wc] = fdt.s[st1]; fpos -= btr2; if(fpos < epos) break; cbt = fpos >> 3; st2 += (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr2) - 1; hw[++wc] = fdt.s[st2]; btr1 = fdt.n[st1]; st1 = fdt.t[st1]; btr2 = fdt.n[st2]; st2 = fdt.t[st2]; } if(++wc > 255) err(0); } else{ wc = hb - 127; for(; i < wc; i += 2){ var byte = dat[++bt]; hw[i] = byte >> 4; hw[i + 1] = byte & 15; } ++bt; } var wes = 0; for(i = 0; i < wc; ++i){ var wt = hw[i]; if(wt > 11) err(0); wes += wt && 1 << wt - 1; } var mb = msb(wes) + 1, ts = 1 << mb, rem = ts - wes; if(rem & rem - 1) err(0); hw[wc++] = msb(rem) + 1; for(i = 0; i < wc; ++i){ var wt = hw[i]; ++rc[hw[i] = wt && mb + 1 - wt]; } var hbuf = new u8(ts << 1), syms = hbuf.subarray(0, ts), nb = hbuf.subarray(ts); ri[mb] = 0; for(i = mb; i > 0; --i){ var pv = ri[i]; fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << mb - i)); } if(ri[0] !== ts) err(0); for(i = 0; i < wc; ++i){ var bits = hw[i]; if(bits){ var code = ri[bits]; fill(syms, i, code, ri[bits] = code + (1 << mb - bits)); } } return [bt, {n: nb, b: mb, s: syms}]; } var dllt = rfse (new u8 ([81, 16, 99, 140, 49, 198, 24, 99, 12, 33, 196, 24, 99, 102, 102, 134, 70, 146, 4]), 0, 6) [1], dmlt = rfse (new u8 ([33, 20, 196, 24, 99, 140, 33, 132, 16, 66, 8, 33, 132, 16, 66, 8, 33, 68, 68, 68, 68, 68, 68, 68, 68, 36, 9]), 0, 6) [1], doct = rfse (new u8([32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2]), 0, 5) [1]; function b2bl(b, s){ var len = b.length, bl = new i32(len); for(var i = 0; i < len; ++i){bl[i] = s; s += 1 << b[i];} return bl; } var llb = new u8 (new i32 ([0, 0, 0, 0, 16843009, 50528770, 134678020, 202050057, 269422093]).buffer, 0, 36), llbl = b2bl(llb, 0), mlb = new u8 (new i32 ([0, 0, 0, 0, 0, 0, 0, 0, 16843009, 50528770, 117769220, 185207048, 252579084, 16]).buffer, 0, 53), mlbl = b2bl(mlb, 3); function dhu(dat, out, hu){ var len = dat.length, ss = out.length, lb = dat[len - 1], msk = (1 << hu.b) - 1, eb = - hu.b; if(! lb) err(0); var st = 0, btr = hu.b, pos = (len << 3) - 8 + msb(lb) - btr, i = - 1; while(pos > eb && i < ss){ var cbt = pos >> 3, val = (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (pos & 7); st = (st << btr | val) & msk; out[++i] = hu.s[st]; pos -= btr = hu.n[st]; } if(pos !== eb || i + 1 !== ss) err(0); } function dhu4(dat, out, hu){ var bt = 6, ss = out.length, sz1 = ss + 3 >> 2, sz2 = sz1 << 1, sz3 = sz1 + sz2; dhu (dat.subarray(bt, bt += dat[0] | dat[1] << 8), out.subarray(0, sz1), hu); dhu (dat.subarray(bt, bt += dat[2] | dat[3] << 8), out.subarray(sz1, sz2), hu); dhu (dat.subarray(bt, bt += dat[4] | dat[5] << 8), out.subarray(sz2, sz3), hu); dhu(dat.subarray(bt), out.subarray(sz3), hu); } function rzb(dat, st, out){ var _a, bt = st.b, b0 = dat[bt], btype = b0 >> 1 & 3; st.l = b0 & 1; var sz = b0 >> 3 | dat[bt + 1] << 5 | dat[bt + 2] << 13, ebt = (bt += 3) + sz; if(btype === 1){ if(bt >= dat.length) return; st.b = bt + 1; if(out){fill(out, dat[bt], st.y, st.y += sz); return out;} return fill(new u8(sz), dat[bt]); } if(ebt > dat.length) return; if(btype === 0){ st.b = ebt; if(out){ out.set(dat.subarray(bt, ebt), st.y); st.y += sz; return out; } return slc(dat, bt, ebt); } if(btype === 2){ var b3 = dat[bt], lbt = b3 & 3, sf = b3 >> 2 & 3, lss = b3 >> 4, lcs = 0, s4 = 0; if(lbt < 2) if(sf & 1) lss |= dat[++bt] << 4 | (sf & 2 && dat[++bt] << 12); else lss = b3 >> 3; else{ s4 = sf; if(sf < 2) lss |= (dat[++bt] & 63) << 4, lcs = dat[bt] >> 6 | dat[++bt] << 2; else if(sf === 2) lss |= dat[++bt] << 4 | (dat[++bt] & 3) << 12, lcs = dat[bt] >> 2 | dat[++bt] << 6; else lss |= dat[++bt] << 4 | (dat[++bt] & 63) << 12, lcs = dat[bt] >> 6 | dat[++bt] << 2 | dat[++bt] << 10; } ++bt; var buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m), spl = buf.length - lss; if(lbt === 0) buf.set(dat.subarray(bt, bt += lss), spl); else if(lbt === 1) fill(buf, dat[bt++], spl); else{ var hu = st.h; if(lbt === 2){ var hud = rhu(dat, bt); lcs += bt - (bt = hud[0]); st.h = hu = hud[1]; } else if(! hu) err(0); (s4 ? dhu4 : dhu) (dat.subarray(bt, bt += lcs), buf.subarray(spl), hu); } var ns = dat[bt++]; if(ns){ if(ns === 255) ns = (dat[bt++] | dat[bt++] << 8) + 0x7f00; else if(ns > 127) ns = ns - 128 << 8 | dat[bt++]; var scm = dat[bt++]; if(scm & 3) err(0); var dts = [dmlt, doct, dllt]; for(var i = 2; i > - 1; --i){ var md = scm >> (i << 1) + 2 & 3; if(md === 1){ var rbuf = new u8([0, 0, dat[bt++]]); dts[i] = {s: rbuf.subarray(2, 3), n: rbuf.subarray(0, 1), t: new u16(rbuf.buffer, 0, 1), b: 0}; } else if(md === 2) _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1]; else if(md === 3){if(! st.t) err(0); dts[i] = st.t[i];} } var _b = st.t = dts, mlt = _b[0], oct = _b[1], llt = _b[2], lb = dat[ebt - 1]; if(! lb) err(0); var spos = (ebt << 3) - 8 + msb(lb) - llt.b, cbt = spos >> 3, oubt = 0, lst = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << llt.b) - 1; cbt = (spos -= oct.b) >> 3; var ost = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << oct.b) - 1; cbt = (spos -= mlt.b) >> 3; var mst = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mlt.b) - 1; for(++ns; --ns;){ var llc = llt.s[lst], lbtr = llt.n[lst], mlc = mlt.s[mst], mbtr = mlt.n[mst], ofc = oct.s[ost], obtr = oct.n[ost]; cbt = (spos -= ofc) >> 3; var ofp = 1 << ofc, off = ofp + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16 | dat[cbt + 3] << 24) >>> (spos & 7) & ofp - 1); cbt = (spos -= mlb[mlc]) >> 3; var ml = mlbl[mlc] + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (spos & 7) & (1 << mlb[mlc]) - 1); cbt = (spos -= llb[llc]) >> 3; var ll = llbl[llc] + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (spos & 7) & (1 << llb[llc]) - 1); cbt = (spos -= lbtr) >> 3; lst = llt.t[lst] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << lbtr) - 1); cbt = (spos -= mbtr) >> 3; mst = mlt.t[mst] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mbtr) - 1); cbt = (spos -= obtr) >> 3; ost = oct.t[ost] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << obtr) - 1); if(off > 3){ st.o[2] = st.o[1]; st.o[1] = st.o[0]; st.o[0] = off -= 3; } else{ var idx = off - (ll !== 0); if(idx){ off = idx === 3 ? st.o[0] - 1 : st.o[idx]; if(idx > 1) st.o[2] = st.o[1]; st.o[1] = st.o[0]; st.o[0] = off; } else off = st.o[0]; } for(var i = 0; i < ll; ++i) buf[oubt + i] = buf[spl + i]; oubt += ll, spl += ll; var stin = oubt - off; if(stin < 0){ var len = - stin, bs = st.e + stin; if(len > ml) len = ml; for(var i = 0; i < len; ++i) buf[oubt + i] = st.w[bs + i]; oubt += len, ml -= len, stin = 0; } for(var i = 0; i < ml; ++i) buf[oubt + i] = buf[stin + i]; oubt += ml; } if(oubt !== spl) while(spl < buf.length) buf[oubt++] = buf[spl++]; else oubt = buf.length; if(out) st.y += oubt; else buf = slc(buf, 0, oubt); } else if(out){ st.y += lss; if(spl) for(var i = 0; i < lss; ++i) buf[i] = buf[spl + i]; } else if(spl) buf = slc(buf, spl); st.b = ebt; return buf; } err(2); } function cct(bufs, ol){ if(bufs.length === 1) return bufs[0]; var buf = new u8(ol); for(var i = 0, b = 0; i < bufs.length; ++i){ var chk = bufs[i]; buf.set(chk, b); b += chk.length; } return buf; } return function(dat, buf){ var bt = 0, bufs = [], nb = + ! buf, ol = 0; while(dat.length){ var st = rzfh(dat, nb || buf); if(typeof st === "object"){ if(nb){ buf = null; if(st.w.length === st.u){bufs.push(buf = st.w); ol += st.u;} } else{bufs.push(buf); st.e = 0;} while(! st.l){ var blk = rzb(dat, st, buf); if(! blk) err(5); if(buf) st.e = st.y; else{ bufs.push(blk); ol += blk.length; cpw(st.w, 0, blk.length); st.w.set(blk, st.w.length - blk.length); } } bt = st.b + st.c * 4; } else bt = st; dat = dat.subarray(bt); } return cct(bufs, ol);}; } (); return {zstd_decompress: zstd_decompress, unix_error: unix_error, caml_strerror: caml_strerror, caml_js_html_escape: caml_js_html_escape, caml_js_html_entities: caml_js_html_entities, blake2_js_for_wasm_update: blake2_js_for_wasm_update, blake2_js_for_wasm_final: blake2_js_for_wasm_final, blake2_js_for_wasm_create: blake2_js_for_wasm_create}; } (globalThis)) ({"link":[["runtime-0db9b496",0],["prelude-d7e4b000",0],["stdlib-23ce0836",[]],["sx-b27f6cd5",[2]],["jsoo_runtime-f96b44a8",[2]],["js_of_ocaml-651f6707",[2,4]],["dune__exe__Sx_browser-1e7a5cbc",[2,3,5]],["std_exit-10fb8830",[2]],["start-80fdb768",0]],"generated":(b=>{var c=b,a=b?.module?.export||b;return{"env":{"caml_ba_kind_of_typed_array":()=>{throw new Error("caml_ba_kind_of_typed_array not implemented")},"caml_exn_with_js_backtrace":()=>{throw new Error("caml_exn_with_js_backtrace not implemented")},"caml_int64_create_lo_mi_hi":()=>{throw new Error("caml_int64_create_lo_mi_hi not implemented")},"caml_jsoo_flags_effects":()=>{throw new Error("caml_jsoo_flags_effects not implemented")},"caml_list_mount_point":()=>{throw new Error("caml_list_mount_point not implemented")},"caml_ml_set_channel_output":()=>{throw new Error("caml_ml_set_channel_output not implemented")},"caml_ml_set_channel_refill":()=>{throw new Error("caml_ml_set_channel_refill not implemented")},"caml_unmount":()=>{throw new Error("caml_unmount not implemented")}},"Js_of_ocaml__Js.fragments":{"fun_call_1":(a,b)=>a(b),"get_Array":a=>a.Array,"get_Date":a=>a.Date,"get_Error":a=>a.Error,"get_JSON":a=>a.JSON,"get_Math":a=>a.Math,"get_Object":a=>a.Object,"get_RegExp":a=>a.RegExp,"get_String":a=>a.String,"get_decodeURI":a=>a.decodeURI,"get_decodeURIComponent":a=>a.decodeURIComponent,"get_encodeURI":a=>a.encodeURI,"get_encodeURIComponent":a=>a.encodeURIComponent,"get_escape":a=>a.escape,"get_isNaN":a=>a.isNaN,"get_length":a=>a.length,"get_message":a=>a.message,"get_name":a=>a.name,"get_parseFloat":a=>a.parseFloat,"get_parseInt":a=>a.parseInt,"get_stack":a=>a.stack,"get_unescape":a=>a.unescape,"js_expr_12c48ca8":()=>b,"js_expr_21711c2a":()=>a,"js_expr_26f07992":()=>null,"js_expr_28647a4c":()=>false,"js_expr_34edcf72":()=>true,"js_expr_ba692c1":()=>undefined,"meth_call_0_toString":a=>a.toString(),"meth_call_1_forEach":(a,b)=>a.forEach(b),"meth_call_1_keys":(a,b)=>a.keys(b),"meth_call_1_map":(a,b)=>a.map(b)},"Js_of_ocaml__Dom.fragments":{"call_1":(a,b,c)=>a.call(b,c),"get_CustomEvent":a=>a.CustomEvent,"get_addEventListener":a=>a.addEventListener,"get_length":a=>a.length,"get_nodeType":a=>a.nodeType,"get_srcElement":a=>a.srcElement,"get_target":a=>a.target,"meth_call_0_preventDefault":a=>a.preventDefault(),"meth_call_1_appendChild":(a,b)=>a.appendChild(b),"meth_call_1_concat":(a,b)=>a.concat(b),"meth_call_1_item":(a,b)=>a.item(b),"meth_call_1_removeChild":(a,b)=>a.removeChild(b),"meth_call_2_attachEvent":(a,b,c)=>a.attachEvent(b,c),"meth_call_2_detachEvent":(a,b,c)=>a.detachEvent(b,c),"meth_call_2_insertBefore":(a,b,c)=>a.insertBefore(b,c),"meth_call_2_replaceChild":(a,b,c)=>a.replaceChild(b,c),"meth_call_3_addEventListener":(a,b,c,d)=>a.addEventListener(b,c,d),"meth_call_3_removeEventListener":(a,b,c,d)=>a.removeEventListener(b,c,d),"new_2":(a,b,c)=>new a(b,c),"obj_0":()=>({}),"obj_1":()=>({}),"set_bubbles":(a,b)=>a.bubbles=b,"set_cancelable":(a,b)=>a.cancelable=b,"set_capture":(a,b)=>a.capture=b,"set_detail":(a,b)=>a.detail=b,"set_once":(a,b)=>a.once=b,"set_passive":(a,b)=>a.passive=b},"Js_of_ocaml__Typed_array.fragments":{"get_ArrayBuffer":a=>a.ArrayBuffer,"get_DataView":a=>a.DataView,"get_Float32Array":a=>a.Float32Array,"get_Float64Array":a=>a.Float64Array,"get_Int16Array":a=>a.Int16Array,"get_Int32Array":a=>a.Int32Array,"get_Int8Array":a=>a.Int8Array,"get_Uint16Array":a=>a.Uint16Array,"get_Uint32Array":a=>a.Uint32Array,"get_Uint8Array":a=>a.Uint8Array,"new_1":(a,b)=>new a(b)},"Js_of_ocaml__File.fragments":{"get_Blob":a=>a.Blob,"get_Document":a=>a.Document,"get_FileReader":a=>a.FileReader,"get_fileName":a=>a.fileName,"get_name":a=>a.name,"new_2":(a,b,c)=>new a(b,c)},"Js_of_ocaml__Dom_html.fragments":{"fun_call_1":(a,b)=>a(b),"get_HTMLElement":a=>a.HTMLElement,"get_KeyboardEvent":a=>a.KeyboardEvent,"get_MessageEvent":a=>a.MessageEvent,"get_MouseEvent":a=>a.MouseEvent,"get_MouseScrollEvent":a=>a.MouseScrollEvent,"get_PopStateEvent":a=>a.PopStateEvent,"get_WheelEvent":a=>a.WheelEvent,"get_body":a=>a.body,"get_button":a=>a.button,"get_charCode":a=>a.charCode,"get_clientLeft":a=>a.clientLeft,"get_clientTop":a=>a.clientTop,"get_clientX":a=>a.clientX,"get_clientY":a=>a.clientY,"get_code":a=>a.code,"get_document":a=>a.document,"get_documentElement":a=>a.documentElement,"get_getContext":a=>a.getContext,"get_history":a=>a.history,"get_key":a=>a.key,"get_keyCode":a=>a.keyCode,"get_left":a=>a.left,"get_length":a=>a.length,"get_location":a=>a.location,"get_mozRequestAnimationFrame":a=>a.mozRequestAnimationFrame,"get_msRequestAnimationFrame":a=>a.msRequestAnimationFrame,"get_name":a=>a.name,"get_oRequestAnimationFrame":a=>a.oRequestAnimationFrame,"get_origin":a=>a.origin,"get_pageX":a=>a.pageX,"get_pageY":a=>a.pageY,"get_placeholder":a=>a.placeholder,"get_pushState":a=>a.pushState,"get_readyState":a=>a.readyState,"get_relatedTarget":a=>a.relatedTarget,"get_requestAnimationFrame":a=>a.requestAnimationFrame,"get_required":a=>a.required,"get_scrollLeft":a=>a.scrollLeft,"get_scrollTop":a=>a.scrollTop,"get_stopPropagation":a=>a.stopPropagation,"get_tagName":a=>a.tagName,"get_top":a=>a.top,"get_webkitRequestAnimationFrame":a=>a.webkitRequestAnimationFrame,"get_wheelDelta":a=>a.wheelDelta,"get_wheelDeltaX":a=>a.wheelDeltaX,"get_wheelDeltaY":a=>a.wheelDeltaY,"get_which":a=>a.which,"js_expr_4c8b1c6":()=>[].slice,"meth_call_0_getBoundingClientRect":a=>a.getBoundingClientRect(),"meth_call_0_getTime":a=>a.getTime(),"meth_call_0_stopPropagation":a=>a.stopPropagation(),"meth_call_0_toLowerCase":a=>a.toLowerCase(),"meth_call_1_call":(a,b)=>a.call(b),"meth_call_1_charCodeAt":(a,b)=>a.charCodeAt(b),"meth_call_1_clearTimeout":(a,b)=>a.clearTimeout(b),"meth_call_1_createElement":(a,b)=>a.createElement(b),"meth_call_1_getElementById":(a,b)=>a.getElementById(b),"meth_call_1_join":(a,b)=>a.join(b),"meth_call_1_push":(a,b)=>a.push(b),"meth_call_2_push":(a,b,c)=>a.push(b,c),"meth_call_2_setTimeout":(a,b,c)=>a.setTimeout(b,c),"meth_call_3_push":(a,b,c,d)=>a.push(b,c,d),"new_0":a=>new a(),"set_cancelBubble":(a,b)=>a.cancelBubble=b,"set_name":(a,b)=>a.name=b,"set_type":(a,b)=>a.type=b},"Js_of_ocaml__Form.fragments":{"get_FormData":a=>a.FormData,"get_checked":a=>a.checked,"get_disabled":a=>a.disabled,"get_elements":a=>a.elements,"get_files":a=>a.files,"get_length":a=>a.length,"get_multiple":a=>a.multiple,"get_name":a=>a.name,"get_options":a=>a.options,"get_selected":a=>a.selected,"get_type":a=>a.type,"get_value":a=>a.value,"meth_call_0_toLowerCase":a=>a.toLowerCase(),"meth_call_1_item":(a,b)=>a.item(b),"meth_call_2_append":(a,b,c)=>a.append(b,c),"new_0":a=>new a()},"Js_of_ocaml__Worker.fragments":{"get_Worker":a=>a.Worker,"get_data":a=>a.data,"get_importScripts":a=>a.importScripts,"get_onmessage":a=>a.onmessage,"get_postMessage":a=>a.postMessage,"meth_call_1_postMessage":(a,b)=>a.postMessage(b),"new_1":(a,b)=>new a(b),"set_onmessage":(a,b)=>a.onmessage=b},"Js_of_ocaml__WebSockets.fragments":{"get_WebSocket":a=>a.WebSocket},"Js_of_ocaml__WebGL.fragments":{"meth_call_1_getContext":(a,b)=>a.getContext(b),"meth_call_2_getContext":(a,b,c)=>a.getContext(b,c),"obj_2":(a,b,c,d,e,f,g,h)=>({alpha:a,depth:b,stencil:c,antialias:d,premultipliedAlpha:e,preserveDrawingBuffer:f,preferLowPowerToHighPerformance:g,failIfMajorPerformanceCaveat:h})},"Js_of_ocaml__Regexp.fragments":{"get_ignoreCase":a=>a.ignoreCase,"get_index":a=>a.index,"get_length":a=>a.length,"get_multiline":a=>a.multiline,"get_source":a=>a.source,"meth_call_1_exec":(a,b)=>a.exec(b),"meth_call_1_split":(a,b)=>a.split(b),"meth_call_2_replace":(a,b,c)=>a.replace(b,c),"meth_call_2_split":(a,b,c)=>a.split(b,c),"new_2":(a,b,c)=>new a(b,c),"set_lastIndex":(a,b)=>a.lastIndex=b},"Js_of_ocaml__Url.fragments":{"get_hash":a=>a.hash,"get_hostname":a=>a.hostname,"get_href":a=>a.href,"get_length":a=>a.length,"get_location":a=>a.location,"get_pathname":a=>a.pathname,"get_port":a=>a.port,"get_protocol":a=>a.protocol,"get_search":a=>a.search,"meth_call_0_toLowerCase":a=>a.toLowerCase(),"meth_call_1_charAt":(a,b)=>a.charAt(b),"meth_call_1_exec":(a,b)=>a.exec(b),"meth_call_1_indexOf":(a,b)=>a.indexOf(b),"meth_call_1_slice":(a,b)=>a.slice(b),"meth_call_1_split":(a,b)=>a.split(b),"meth_call_2_replace":(a,b,c)=>a.replace(b,c),"meth_call_2_slice":(a,b,c)=>a.slice(b,c),"new_1":(a,b)=>new a(b),"new_2":(a,b,c)=>new a(b,c),"obj_3":(a,b,c,d,e,f,g,h,i,j,k,l)=>({href:a,protocol:b,host:c,hostname:d,port:e,pathname:f,search:g,hash:h,origin:i,reload:j,replace:k,assign:l}),"set_hash":(a,b)=>a.hash=b,"set_href":(a,b)=>a.href=b,"set_lastIndex":(a,b)=>a.lastIndex=b},"Js_of_ocaml__ResizeObserver.fragments":{"get_ResizeObserver":a=>a.ResizeObserver,"meth_call_1_observe":(a,b)=>a.observe(b),"meth_call_2_observe":(a,b,c)=>a.observe(b,c),"new_1":(a,b)=>new a(b),"obj_4":()=>({}),"obj_5":()=>({}),"set_box":(a,b)=>a.box=b},"Js_of_ocaml__PerformanceObserver.fragments":{"get_PerformanceObserver":a=>a.PerformanceObserver,"meth_call_1_observe":(a,b)=>a.observe(b),"new_1":(a,b)=>new a(b),"obj_6":()=>({}),"set_entryTypes":(a,b)=>a.entryTypes=b},"Js_of_ocaml__MutationObserver.fragments":{"get_MutationObserver":a=>a.MutationObserver,"meth_call_2_observe":(a,b,c)=>a.observe(b,c),"new_1":(a,b)=>new a(b),"obj_7":()=>({}),"obj_8":()=>({}),"set_attributeFilter":(a,b)=>a.attributeFilter=b,"set_attributeOldValue":(a,b)=>a.attributeOldValue=b,"set_attributes":(a,b)=>a.attributes=b,"set_characterData":(a,b)=>a.characterData=b,"set_characterDataOldValue":(a,b)=>a.characterDataOldValue=b,"set_childList":(a,b)=>a.childList=b,"set_subtree":(a,b)=>a.subtree=b},"Js_of_ocaml__Jstable.fragments":{"get_Object":a=>a.Object,"get_length":a=>a.length,"meth_call_1_concat":(a,b)=>a.concat(b),"meth_call_1_keys":(a,b)=>a.keys(b),"meth_call_2_substring":(a,b,c)=>a.substring(b,c),"new_0":a=>new a()},"Js_of_ocaml__Json.fragments":{"get_JSON":a=>a.JSON,"get_constructor":a=>a.constructor,"get_hi":a=>a.hi,"get_length":a=>a.length,"get_lo":a=>a.lo,"get_mi":a=>a.mi,"meth_call_1_stringify":(a,b)=>a.stringify(b),"meth_call_2_parse":(a,b,c)=>a.parse(b,c),"meth_call_2_stringify":(a,b,c)=>a.stringify(b,c)},"Js_of_ocaml__CSS.fragments":{"meth_call_1_test":(a,b)=>a.test(b),"new_1":(a,b)=>new a(b)},"Js_of_ocaml__Dom_svg.fragments":{"get_SVGElement":a=>a.SVGElement,"get_document":a=>a.document,"get_tagName":a=>a.tagName,"meth_call_0_toLowerCase":a=>a.toLowerCase(),"meth_call_1_getElementById":(a,b)=>a.getElementById(b),"meth_call_2_createElementNS":(a,b,c)=>a.createElementNS(b,c)},"Js_of_ocaml__EventSource.fragments":{"get_EventSource":a=>a.EventSource,"obj_9":()=>({}),"set_withCredentials":(a,b)=>a.withCredentials=b},"Js_of_ocaml__Geolocation.fragments":{"get_geolocation":a=>a.geolocation,"get_navigator":a=>a.navigator,"obj_10":()=>({})},"Js_of_ocaml__IntersectionObserver.fragments":{"get_IntersectionObserver":a=>a.IntersectionObserver,"obj_11":()=>({})},"Js_of_ocaml__Intl.fragments":{"get_Collator":a=>a.Collator,"get_DateTimeFormat":a=>a.DateTimeFormat,"get_Intl":a=>a.Intl,"get_NumberFormat":a=>a.NumberFormat,"get_PluralRules":a=>a.PluralRules,"obj_12":a=>({localeMatcher:a}),"obj_13":(a,b,c,d,e,f)=>({localeMatcher:a,usage:b,sensitivity:c,ignorePunctuation:d,numeric:e,caseFirst:f}),"obj_14":(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t)=>({dateStyle:a,timeStyle:b,calendar:c,dayPeriod:d,numberingSystem:e,localeMatcher:f,timeZone:g,hour12:h,hourCycle:i,formatMatcher:j,weekday:k,era:l,year:m,month:n,day:o,hour:p,minute:q,second:r,fractionalSecondDigits:s,timeZoneName:t}),"obj_15":(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u)=>({compactDisplay:a,currency:b,currencyDisplay:c,currencySign:d,localeMatcher:e,notation:f,numberingSystem:g,signDisplay:h,style:i,unit:j,unitDisplay:k,useGrouping:l,roundingMode:m,roundingPriority:n,roundingIncrement:o,trailingZeroDisplay:p,minimumIntegerDigits:q,minimumFractionDigits:r,maximumFractionDigits:s,minimumSignificantDigits:t,maximumSignificantDigits:u}),"obj_16":(a,b)=>({localeMatcher:a,type:b})},"Dune__exe__Sx_browser.fragments":{"fun_call_1":(a,b)=>a(b),"fun_call_3":(a,b,c,d)=>a(b,c,d),"get_Array":a=>a.Array,"get_Object":a=>a.Object,"get___sx_handle":a=>a.__sx_handle,"get__type":a=>a._type,"get_console":a=>a.console,"get_items":a=>a.items,"get_length":a=>a.length,"get_name":a=>a.name,"js_expr_10d25c5c":()=>function(a){return function(){b.__sxR=undefined;var c=a.apply(null,arguments);return b.__sxR!==undefined?b.__sxR:c}},"js_expr_1ab4fffb":()=>function(){var b={},d=0;return{put:function(a){var c=d++;b[c]=a;return c},get:function(a){return b[a]}}}(),"js_expr_36506fc1":()=>function(a,b,c){a.__sx_handle=b;a._type=c;return a},"meth_call_1_error":(a,b)=>a.error(b),"meth_call_1_get":(a,b)=>a.get(b),"meth_call_1_isArray":(a,b)=>a.isArray(b),"meth_call_1_keys":(a,b)=>a.keys(b),"meth_call_1_put":(a,b)=>a.put(b),"obj_0":()=>({}),"obj_1":()=>({}),"obj_2":(a,b)=>({_type:a,items:b}),"obj_3":(a,b)=>({_type:a,name:b}),"obj_4":(a,b)=>({_type:a,name:b}),"obj_5":(a,b)=>({_type:a,__sx_handle:b}),"set_SxKernel":(a,b)=>a.SxKernel=b,"set___sxR":(a,b)=>a.__sxR=b,"set__type":(a,b)=>a._type=b,"set_beginModuleLoad":(a,b)=>a.beginModuleLoad=b,"set_callFn":(a,b)=>a.callFn=b,"set_compileModule":(a,b)=>a.compileModule=b,"set_debugEnv":(a,b)=>a.debugEnv=b,"set_endModuleLoad":(a,b)=>a.endModuleLoad=b,"set_engine":(a,b)=>a.engine=b,"set_eval":(a,b)=>a.eval=b,"set_evalExpr":(a,b)=>a.evalExpr=b,"set_evalVM":(a,b)=>a.evalVM=b,"set_fnArity":(a,b)=>a.fnArity=b,"set_inspect":(a,b)=>a.inspect=b,"set_isCallable":(a,b)=>a.isCallable=b,"set_load":(a,b)=>a.load=b,"set_loadModule":(a,b)=>a.loadModule=b,"set_loadSource":(a,b)=>a.loadSource=b,"set_parse":(a,b)=>a.parse=b,"set_registerNative":(a,b)=>a.registerNative=b,"set_renderToHtml":(a,b)=>a.renderToHtml=b,"set_scopeTraceDrain":(a,b)=>a.scopeTraceDrain=b,"set_scopeTraceOff":(a,b)=>a.scopeTraceOff=b,"set_scopeTraceOn":(a,b)=>a.scopeTraceOn=b,"set_stringify":(a,b)=>a.stringify=b,"set_typeOf":(a,b)=>a.typeOf=b}}})(globalThis),"src":"sx_browser.bc.wasm.assets"});